![](https://habrastorage.org/getpro/habr/post_images/697/42e/0c3/69742e0c31f14fb8045b6adf563cc462.png)
ãã®èšäºã§ã¯ãVMware WorkStationãšVirtualBoxããã®æçœãªïŒããã§ã¯ãªãïŒãšã¹ã±ãŒãæ¹æ³ã«ã€ããŠã話ããããšãšãã«ãããã€ãã®èå³æ·±ãç¹å¥ãªã±ãŒã¹ãæ€èšããŸãã
VMware WorkStationãVirtualBoxïŒOracle VM VirtualBoxïŒ-ã³ã³ãã¥ãŒã¿ãŒã§è€æ°ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãåæã«å®è¡ã§ããä»®æ³åãœãããŠã§ã¢è£œåã
åå ãã代ããã«
VMãšã¹ã±ãŒãã¯ãå€ãã®ã»ãã¥ãªãã£ç 究è ã®å¿ãåºæ¿ããŸãã ããã«ãŒã®éã§ã¯ããããã®ãšã¯ã¹ããã€ãã¯éåžžã«é«åºŠã§è€éã§ãããšèããããŠããŸãã ãã®ãããªäŸã¯ãããŸãããéåžžã«å°æ°ã§ãïŒæãèå³æ·±ããã®ã®ããã€ãïŒ VMware CloudBurst ã Xen Hypervisor Sysret VM Escapeã®é«åºŠãªèåŒ±æ§ ïŒã ããããä»®æ³ãã·ã³ããã®ã³ãŒããå®éã«ïŒãŸãã¯èé¢ã«ïŒå°éããããã«ã¯ãäœããçºæããå¿ èŠããããšã¯éããŸããã ãã®ãããéåžžã®ãŠãŒã¶ãŒã«å¯Ÿããæ»æã®å Žåãaãåããæãäžè¬çãªãã®ãåãå»ãããšãã§ããŸãã ããã«èŠåŽããã«è¡ããŸãããã
ãããªãã¯ãã©ã«ãææ
ãããŸã§ã§æãç°¡åã§å¹æçãªæ¹æ³ã ãã®ãããªãã£ã«ã€ããŠç¹å¥ãªããšã¯äœããããŸãããå ±æãããã¯ãŒã¯ãªãœãŒã¹ãä»ããæªæã®ããã³ãŒãã®æ¡æ£ã¯ãNTã·ã¹ãã ã®å€ãã®ã¯ãŒã ã§æŽå²çã«å®è£ ãããŠããããšãããããŸãã
VMware Workstationã®å ±æãã©ã«ããŒãªãã·ã§ã³
![](https://habrastorage.org/getpro/habr/post_images/5a1/117/73f/5a111773f266acd684d0893904adac77.png)
VirtualBoxã®ãããªãã¯ãã©ã«ããŒãªãã·ã§ã³
![](https://habrastorage.org/getpro/habr/post_images/68c/9d4/cd6/68c9d4cd6792de5298eaaeb045d1bd3e.png)
ãã£ããã£ãããUSBããã€ã¹ã®ææ
æ€èšããã以åã®æ¹æ³ãããæå¹æ§ã«å£ããŸããã ãŸããå®è¡å¯èœãã¡ã€ã«ã®ææãäžå¹žãªautorun.infãã¡ã€ã«ã LNKè匱æ§ãªã©ã®è»¢éã«ãã£ãŠèªåçã«æ¡æ£ããUSBââããã€ã¹ã®æ¥ç¶ãç£èŠããçµã¿èŸŒã¿ã®ãŠââã©ããããã°ãåããITWãã«ãŠã§ã¢ïŒ Flameã®ãã㪠ïŒãããªãå®è£ ãããŠããŸãã
åœç¶ããã®æ¹æ³ã®äž»ãªæ¡ä»¶ã¯ãä»®æ³ãã·ã³çšã®ç¹å®ã®æ§æãæã€USBã³ã³ãããŒã©ãŒããã€ã¹ã®ååšã§ãã
VMware Workstationã§ã¯ãUSBã³ã³ãããŒã©ãŒã®èšå®ãæ£ããå®è£ ãããŠããªãããã§ãããã£ã«ã¿ãŒã¯ãã¹ãŠã®ããã€ã¹ã§ããã«åäœãããããã®å±éºãªèšå®ã¯æ°ããä»®æ³ãã·ã³ã®äœææã«ããã©ã«ãã§èšå®ãããŸãã
VMware Workstationã®USBã³ã³ãããŒã©ãŒãªãã·ã§ã³
![](https://habrastorage.org/getpro/habr/post_images/044/996/06c/04499606cb2a93f3fe2f6e1c0d70a83e.png)
ããã©ããããVirtualBoxã¯ããæè»æ§ãé«ããç¹å®ã®ããã€ã¹ã«ã³ã³ãããŒã©ãŒãã£ã«ã¿ãŒãèšå®ã§ããŸãããåæã«ç©ºã®ãã£ã«ã¿ãŒãã€ã³ã¹ããŒã«ããŠUSBããã£ããã£ããããšãã§ããŸãããããã¯ã»ãã¥ãªãã£ã®é¢ã§äžå©ã§ãã
VirtualBoxã®USBã³ã³ãããŒã©ãŒãªãã·ã§ã³
![](https://habrastorage.org/getpro/habr/post_images/839/25b/5d4/83925b5d49bb9aae58ec85daf4155bec.png)
å ±æã¯ãªããããŒããžã®æ»æ
VMwareã¯ãŒã¯ã¹ããŒã·ã§ã³
ä»®æ³ãã·ã³ã®èšå®
![](https://habrastorage.org/getpro/habr/post_images/33b/c44/3e5/33bc443e5b4569e8b440a8740eb6d6ea.png)
ã¯ããã«ãDnDïŒDrag'n'DropïŒã®ã¢ãŒããã¯ãã£ãšäžè¬çãªã¯ãªããããŒããèŠãŠã¿ãŸãããã ã²ã¹ããšãã¹ãéã®ããŒã¿è»¢éã¯ãGuestRpcã¡ã«ããºã ãä»ããŠå®è£ ãããŸããããã¯åºæ¬çã«BackDoor I / OïŒ0x1EïŒã³ãã³ãã§ãïŒVMware BackDoor I / Oãç¥ããªãããŸãã¯å¿ããå ŽåïŒ https : //sites.google.com/ site / chitchatvmback / backdoor ïŒã
DnDã®ã¢ãã«ãã¯ã©ã¹éå±€ã«åºã¥ããäžè¬çãªã¯ãªããããŒãïŒ OpenToolsãœãŒã¹ããååŸ ïŒïŒ
![](https://habrastorage.org/getpro/habr/post_images/cd9/304/5de/cd93045de1ad2ec4f0c3407f2603fd5d.png)
åæ§ã«ãGuestRpcã«ã¯ã³ãã³ãã®ããŒãã«ãããããã®ãªã¹ãå šäœã¯VMwareãå®å šã«å転ããåŸã«ã®ã¿ååŸã§ããŸãïŒã¡ãªã¿ã«ãRpcToolã¯ã²ã¹ããŠãŒãã£ãªãã£ã®æšæºã»ããã«å«ãŸããŠãããGuestRpcã³ãã³ããé©å®éä¿¡ã§ããŸãïŒã DnDãšå ±éã¯ãªããããŒãã®å Žåã次ã®ã³ãã³ãã䜿çšãããŸãïŒããã©ã³ã¹ããŒãã€ã³ã¿ãŒãã§ã€ã¹ããšãåŒã°ããŸãïŒã
dnd.transport
copypaste.transport
åãã©ã³ã¹ããŒãã€ã³ã¿ãŒãã§ã€ã¹ã«ã¯ç¬èªã®ã³ãã³ãã»ããããããããŒã¿ãã±ããã®ãµãŒãã¹ããããŒã§æ¢ã«éä¿¡ãããŠããŸãã
ãããã£ãŠãããšãã°ãcopypaste.transportã®ã³ãã³ãã»ããã¯æ¬¡ã®ããã«ãªããŸãã
typedef enum { CP_CMD_REQUEST_CLIPBOARD = 2000, CP_CMD_REQUEST_FILES, CP_CMD_RECV_CLIPBOARD, CP_CMD_SEND_CLIPBOARD, CP_CMD_GET_FILES_DONE, CP_CMD_SEND_FILES_DONE, } CopyPasteCmdV4;
ããã±ãŒãžCP_CMD_SEND_CLIPBOARDãã¯ãªããããŒããçŽæ¥èµ€ã§åŒ·èª¿è¡šç€ºãããŸã
ã¯ãã¹ãã©ãããã©ãŒã 圢åŒïŒ
![](https://habrastorage.org/getpro/habr/post_images/a0d/c67/45c/a0dc6745c0d78b20857c6020e1bd8197.png)
ãããã£ãŠãäžè¬çãªVMwareã¯ãªããããŒããã¹ããŒãã£ã³ã°ããããã®å¯èœãªã·ããªãªã¯æ¬¡ã®ãšããã§ãã
- ãŠãŒã¶ãŒãå®è¡ãã¡ã€ã«ãã²ã¹ããããã¹ãã«ã³ããŒãããšã;
- ãŠãŒã¶ãŒãã²ã¹ããã·ã³ã§äžéãã©ãŒã«ã¹ã䜿çšããŠå®è¡ãã¡ã€ã«ããã¹ãã«ã³ããŒãããšãã
ãããã£ãŠãããã¯ãã¯ãªããããŒãã¢ãã¿ãŒãäœæããïŒBackDoor I / Oãä»ããŠçŽæ¥ãªã¯ãšã¹ããéä¿¡ããïŒããå€æ°ã®ããã¯ãã€ã³ã¹ããŒã«ããæªæã®ããã³ãŒããã²ã¹ããŠãŒãã£ãªãã£vmtoolsd.exeããã»ã¹ã«ïŒNTã·ã¹ãã ã§ïŒæ¿å ¥ããããšã§å®çŸãããŸãã
æããã«ãå®è¡å¯èœãã¡ã€ã«ã®ä»£ããã«ãOfficeãšã¯ã¹ããã€ãããã¥ã¡ã³ããªã©ããããŸãã
ãã®æ»æã®ç°¡åãªãã¢ïŒã²ã¹ããŠãŒãã£ãªãã£ã«çŽæ¥æ³šå ¥ïŒïŒ
Virtualbox
æ®å¿µãªããïŒæ»æè ã«ãšã£ãŠïŒãVirtualBoxã¯å®è¡å¯èœãã¡ã€ã«ã®DnDããã³äžè¬çãªã¯ãªããããŒããžã®è»¢éãå ¬åŒã«ãµããŒãããŠããŸããã
![](https://habrastorage.org/getpro/habr/post_images/d22/c9a/755/d22c9a755237683f8aaea3945119437d.png)
ããããç§ã¯å ¬åŒã®VirtualBoxãã©ãŒã©ã ã«ãããµãŒãããŒãã£ã®ãããžã§ã¯ãVMTransferFilesã«ã€ããŠèšåããããåŸãŸããã
ãã¡ãããæ©èœãæ¡åŒµããŠãã¡ã€ã«ã転éããããšãã§ããŸãããåœç¶ã®ããšãªããèªåã®è²¬ä»»ãšãªã¹ã¯ã§è¡ã£ãŠãã ããã
ä»®æ³åã«éæ¥çã«é¢é£ãããœãããŠã§ã¢ãžã®æ»æ
æ å ±ã»ãã¥ãªãã£ã®åéã®å€ãã®å€æ§ãªç 究è ãä»äºã§ä»®æ³ãã·ã³ãäœããã®åœ¢ã§äœ¿çšããŠããããšã¯ãç§å¯ã§ã¯ãããŸããã ããšãã°ããã«ãŠã§ã¢ã¢ããªã¹ãã¯ãå€ãã®å Žåãä»®æ³åã®å©ç¹ã䜿çšããŠãã©ãã£ãã¯ãŸãã¯ãã«ãŠã§ã¢ã®åäœãåæããŸãã
ããããããã®ãµããããã¯ã®ã«ãŒããæé·ããŸãããã®äœæ¥äžãŸãã¯ãã®äœæ¥äžã«äœ¿çšãããœãããŠã§ã¢ã«å¿ããŠåã¡ãŸãã
Wireshark
ããŸããŸãªç 究ãœãããŠã§ã¢ã«ãã©ãã¯ãªã¹ãã䜿çšããããšã¯ãããããçš®é¡ã®ãã«ãŠã§ã¢ã«é·ãéå·»ã蟌ãŸããŠããŸãããå®éãWiresharkã¯ãã®ãªã¹ãã§æã人æ°ã®ããåè£ã®1ã€ã§ãã
RovnixããŒãããããã©ãã¯ãªã¹ãã®äŸïŒ
![](https://habrastorage.org/getpro/habr/post_images/5b8/a0f/c0e/5b8a0fc0e15847376a8066a741881fbd.png)
ãã®ãããWiresharkã®æ€åºããã€ãã¹ãããšããåçŽã§æ zyãªæ±ºå®ãé »ç¹ã«èŠ³å¯ããŸããããããåã«ãã¹ãã§å®è¡ããä»®æ³ãã·ã³ã®ãã©ãã£ãã¯ãåæããã ãã§ãã ããã«ãå€ãã®ãµã³ãããã¯ã¹ã·ã¹ãã ã¯ãã©ãã£ãã¯pcapãã¡ã€ã«ãèªåçã«çæããŸããããã¯éåžžãWiresharkã䜿çšããŠãã¹ãäžã§ãåæãããŸãã ãã®ãããVMãšã¹ã±ãŒãã®ç®çã§Wiresharkãã£ã»ã¯ã¿ã®ããŸããŸãªãªã¢ãŒããã°ãšããŒã«ã«ãã°ã䜿çšããããšããå§ãããŸãã
è匱æ§ã®äŸãšããŠã CVE-2014-2299 -MPEGãã¡ã€ã«ã®ããŒãµãŒã®ãããã¡ãªãŒããŒãããŒã䜿çšããããšã«ããŸããã MetaSploitã®ã¢ãžã¥ãŒã«ã§ãããšã¯ã¹ããã€ããœãŒã¹ã³ãŒããæ¢ã«ãããŸã ã
æŠéé»åã䜿çšãããããªãã¢ïŒ
Virtualkd
éå§ããåã«ãWinDbgãããã¬ãŒãæå¹ã«ãããªã¢ãŒãã«ãŒãã«ãããã°ãããã³ã«ãä»ããŠä»®æ³ãã·ã³ãããã¹ããæ»æããæ¹æ³ã«ã€ããŠã®å€ããŠèå³æ·±ãèšäºã«æ³šç®ããŸãã
VirtualKDã¯ãVMwareãŸãã¯VirtualBoxã§ã®ã«ãŒãã«ãããã°ããã©ãŒãã³ã¹ãåäžãããããã«èšèšããããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã§ãã ããã¯éåžžã«ã«ã¹ã¿ã ãªæ¹æ³ã§å®è£ ãããŸãïŒVMwareã§ã®å®è£ ãæ€èšããŸãïŒ-ãã¹ãåŽã§ã¯ãdllãvmware-vmxããã»ã¹ïŒä»®æ³ãã·ã³ã®ããã»ã¹ïŒã«æ¿å ¥ãããæ°ããã³ãã³ããšãã®ãã³ãã©ãŒãGuestRpcããŒãã«ã«ããã/è¿œå ãããŸãã ã²ã¹ãåŽãããKDVM.DLLãã©ã€ããŒã«å®è£ ãããå®è£ ã®ããã«ãå€ãã®Kd *é¢æ°ïŒKDCOM.DLLïŒãã€ã³ã¿ãŒã»ãããããŸãã
æ¬è³ªçã«ãã·ã³ãã«ãªã¹ããŒã ãåŸãããŸã-KDCOMãããã³ã«ã¯VMware BackDoor I / OïŒGuestRpcïŒãä»ããŠãã¹ãã«ãã³ããªã³ã°ãããWinDbgããªãã¹ã³ãããã€ããã£ãã«ã«çŽæ¥å±éãããŸãã
VirtulKDã¢ãŒããã¯ãã£ïŒVMwareã«åºæïŒïŒ
![](https://habrastorage.org/getpro/habr/post_images/11c/902/0d5/11c9020d5ab23a18a5aa978fb11c9200.png)
ãããŠããã¹ãŠãããŸãããã§ãããããŠãŒãã£ãªãã£ã¯æ¬åœã«åäœããŸãããç§ã®ããŒãã®ããã«ãç§ã¯ç°¡åãªãã°ãæ¢ããŠãã®ãœãŒã¹ã調ã¹ãããšã«ããŸããã å®éã1æé以å ã«äºçŽ°ãªæŽæ°ãªãŒããŒãããŒãèŠã€ãããŸããã
ãã®ãããããããŒãã¡ã€ã«rpcdisp.hã®KdRpcDispatcher :: SendPacketã¡ãœããã§ãè¿œå ã®ãµãŒãã¹æ å ±ã§ã©ãããããKDCOMãã±ããã®ããŒã¿ãåŠçãããŸãã
ãã®ããŒã¿ã®äžéšã¯æ£ããæ€èšŒãããŠããŸããã
![](https://habrastorage.org/getpro/habr/post_images/329/4f4/2d9/3294f42d9a6b07fb1225cb69a82dabbf.png)
å³ãããããããã«ãpParams [1]ãšpParams [2]ãè¿œå ããçµæã¯ç°¡åã«ãªãŒããŒãããŒããå¯èœæ§ããããŸãïŒããšãã°ãçµæãšããŠpParams1 == 0xFFFF0000ãšpParams2 == 0x18000ã0x8000ã«ãªããŸãïŒã ããã«ãã³ãŒãã«æ²¿ã£ãŠpParams [1]ãããŒã¿ãžã®ãªãã»ãããšããŠäœ¿çšããããã®çµæãäžè¬çãªèªã¿åããšã©ãŒãçºçããŸãã
ãã®ããŒã¿ã®åŠçã¯ãvmware-vmxä»®æ³ãã·ã³ã®ããã»ã¹å ã®jected.dllã¢ãžã¥ãŒã«ã®ã³ã³ããã¹ãã§è¡ãããããšãæãåºãããŠãã ãããVMwareä»®æ³ãã·ã³ããã»ã¹ãã¯ã©ãã·ã¥ããäŸå€çãªç¶æ³ã§ãã
åœç¶ã®ããšãªããããã®ãã°ã«ã€ããŠsysprogsããŒã ã«æžããŸããã圌ãã¯ãããããšãããããã圱é¿ãèŠãããªãã®ã§ãããããé©çšããŸããããšããã¹ã¿ã€ã«ã§è¿ä¿¡ããŸããã ããã«ãäœããã®çç±ã§ãã²ã¹ãã®äžã§ã«ãŒãã«ã¢ãŒãã§ã®ã¿ãã°ãæäœããããšæããŸããããå®éã«ã¯ãã¹ãŠãæ£å察ã§ãããããã«åªããŠããŸããæäœã«ã¯ç¹æš©ã¯ãŸã£ããå¿ èŠãããŸããã å®éãæªçšããã±ãŒãžã¯BackDoor I / Oã«æªæã®ããããã±ãŒãžãçŽæ¥éä¿¡ããŸããæŠå¿µã®ãµã€ãºã¯ååãšããŠéåžžã«å°ãããå¿ èŠã«å¿ããŠä»»æã®ãã«ãŠã§ã¢ã«ç°¡åã«å®è£ ã§ããŸãã
ãŸãããã®DoS VMã®ãã°ã¯éåžžã«è¿ éã«çºèŠãããVirtualKdã«ã¯ããé倧ãªè匱æ§ãæœãã§ãããå®éã®VMãšã¹ã±ãŒãã«ã€ãªããå¯èœæ§ããããŸãã ãšã¯ã¹ããã€ãã詳ãã調ã¹ãã人ã®ããã«ããã®ãœãŒã¹ã³ãŒãã瀺ããŸã ã
ãããŠããã®æ»æã®å°ããªãã¢ïŒ
ã¬ã¬ã·ãŒè匱æ§ãã¯ãããžãŒã®äœ¿çš
VMGL
ãã®ç¹å®ã®ã±ãŒã¹ã¯ãKVMãšXenã«é¢é£ããŠãããã®ã®ãç§ã«ã¯æãããããã®äž»é¡ãå®å šã«ç¹åŸŽã¥ããŠããã
VMGLã¯ãããã³ããšã³ãOpenGL 3dããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã«é¢ããé·ãéæŸæ£ããããããžã§ã¯ãã§ããã KVMãããžã§ã¯ãã®å ¬åŒããŒãžãªã©ã«ã¯ãŸã ãªã³ã¯ããããŸãã
ãœãŒã¹ã³ãŒããå ¥æã§ãããããžã§ã¯ããµã€ã ã
倧ãŸãã«èšããšãVMGLã¯ãã²ã¹ãä»®æ³ãã·ã³ãããã¹ãGPUã«çŽæ¥éä¿¡ãããTCP / IPãããã³ã«ã¹ã¿ãã¯GLã³ãã³ãããã³ããªã³ã°ããã¯ã©ã€ã¢ã³ããµãŒããŒãã¯ãããžãŒã§ãã
![](https://habrastorage.org/getpro/habr/post_images/420/1f6/95c/4201f695c187b338ad67189fa0d15267.png)
VMGLã¢ãŒããã¯ãã£
å®è£ ãããæ·±ãç 究ãããœãŒã¹ã³ãŒããèŠãŠã Chromiumãããžã§ã¯ããVMGLã®åºç€ã§ããããšãããããŸããã ãããã£ãŠããã®åãChromiumãããžã§ã¯ãã¯ãVirtualBoxä»®æ³ãã·ã³ã®3Dã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã®åºç€ã«ããªãããã°ã«ã€ããŠã¯ãã§ã«éåžžã«ããç 究ãããŠããŸãã
ãããã£ãŠãVMGLãã€ã³ã¹ããŒã«ãããšãChromiumãšã³ãžã³ã®èšèšã®å éã ãã§ãªããå°ãªããšã3ã€ã®æ¢ç¥ã®èåŒ±æ§ ïŒCVE-2014-0981; CVE-2014-0982; CVE-2014-0983ïŒãåŸãããŸãã
è匱æ§ã®ãããã³ãŒããçŽæ¥å®è¡ããããšã¯ã§ããŸããããçè«äžã®VMãšã¹ã±ãŒãã¯äŸç¶ãšããŠå¯èœã§ããäœããã®çç±ã§ãã®æŸæ£ããããããžã§ã¯ãã䜿çšããŠããå Žåã¯ã確å®ã«å¿é ããå¿ èŠããããŸãã
VirtualBoxã®äžéšãšããŠããããé©çšããChromiumïŒutil \ net.cïŒã®ãã©ã°ã¡ã³ãïŒçŸåšãè匱ãªã³ãã³ããã³ãã©ãŒã¯åã«ãã¹ãäžã«ç©ççã«ååšããŸããïŒïŒ
![](https://habrastorage.org/getpro/habr/post_images/788/a80/0ae/788a800ae7dd685c1683b3e3787d1c88.png)
ãããã«
ãããã®ã·ã³ãã«ã§ããªã䜿ããããæ¹æ³ã¯çµæããããããäžéšã®æ»æã§å®éã«ééããŸããã ãããã£ãŠãVMãšã¹ã±ãŒãã¯ãããŸããŸãªã»ãã¥ãªãã£ã¡ã«ããºã ãè¿åãããã€ããªè匱æ§ã®ããŒãã³ã¢ãªå©çšã§ããã ãã§ãªããå¿ããããŠããå€ããã®ã§ããããŸãã