¼ÇÒ»´ÎVMwareµÄÍß½âµ÷ÊÔ·ÖÎö¹ý³Ì

Ðû²¼Ê±¼ä 2020-08-11

1.Ñо¿Åä¾°


VMware WorkstationÊÇÒ»¿îÖ÷Á÷µÄÐéÄâ»úÈí¼þ£¬½üÆÚ¶«É­Æ½Ì¨ADLabÄþ¾²Ñо¿Ô±ÔÚʹÓÃVMwareÐéÄâ»úµÄ¹ý³ÌÖÐÓöµ½ÐéÄâ»úÒì³£Íß½âµÄÎÊÌ⣬µ±´Ó7zipÖÐÖ±½Ó½«ÎļþÍÏקµ½VMwareÐéÄâ»úÖУ¬»áÔì³ÉÐéÄâ»úÒì³£¹Ø±Õ¡£Ä¿Ç°ÒѲâÊÔ¹ýVMware 15.5.0¡¢15.5.2¡¢15.5.5 ÒÔ¼°7zip 19.0¡¢20.02µÈ°æ±¾¡£±¾ÎĽ«Í¨¹ý¶ÔVMwareºÍ7zip·¨Ê½½øÐиú×Ù·ÖÎö£¬×îÖÕ¶¨Î»ÐéÄâ»úÒì³£¹Ø±ÕÔ­Òò¡£

2.VMware¶Ëµ÷ÊÔ·ÖÎö

ʹÓÃWinDbg-IÖ¸ÁWinDbgÉèÖÃΪ¼´Ê±µ÷ÊÔÆ÷£¬VMware-vmx.exe·¨Ê½Íß½âºó×Ôת¶¯³öWinDbg¡£¶ÑÕ»ÐÅÏ¢ÈçÏ£º



µ÷ÊÔÐÅÏ¢ÏÔʾstack buffer overrunÒì³££¬×î³õÍƶϿÉÄÜÊÇ»º³åÇøÒç³ö©¶´¡£



ͨ¹ý²éѯ×ÊÁϺó·¢ÏÖ£¬´ÓWindows 8¿ªÊ¼£¬WindowsÉè¼ÆÁËÒ»¸öеÄÖжÏINT 29H£¬ÓÃÒÔ¿ìËÙÅ׳öʧ°Ü£¬ÔÚsdkÖб»ÉùÃ÷Ϊ__fastfail£¬ __fastfailÄÚ²¿º¯Êý²»»á·µ»Ø¡£


Ìåϵ½á¹¹
Ö¸Áî
´úÂë²ÎÊýµÄλÖÃ
x86
int 0x29
ecx
x64
int 0x29
rcx
ARM
²Ù×÷Âë 0xDEFB
r0


ÔÚÉÏͼÖУ¬·¨Ê½ÖÕÖ¹ÓÚint 29h£¬¶øËüµÄ²ÎÊýΪ0xa£¬¶ÔÓ¦FAST_FAIL_GUARD_ICALL_CHECK_FAILURE£¬ÓÉ´ËÍƶÏÎÊÌâ¿ÉÄÜ·ºÆðÔÚCFGµÄ¼ì²é¹ý³ÌÖС£



´Óº¯Êýµ÷ÓÃÕ»ÖÐvmware_vmx+0x58b21µØÖ·ÏòÉÏ×·ËÝ£¬¶¯Ì¬µ÷ÊÔ·¨Ê½£¬±ÈÁ¦·¨Ê½Õý³£ÔËÐÐÓëÒì³£Íß½âµÄº¯Êýµ÷ÓÃÇø±ð£¬¶¨Î»µ½Ó뷨ʽÍß½âÏà¹ØµÄº¯Êýsub_1400965A0¡£


ʹÓÃWindbg Attach vmware-vmx.exe·¨Ê½£¬ÔÚsub_1400965A0º¯ÊýÉèÖöϵ㣬¿ªÊ¼¶¯Ì¬µ÷ÊÔ¡£´Ó7z´ò¿ªµÄѹËõÎļþÖÐÍÏקcdp.pcapngµÄÎļþ£¬·¨Ê½Ôڶϵ㴦ͣÏ¡£Í¨¹ý¶¯Ì¬µ÷ÊÔ¿ÉÖª¸Ãº¯ÊýÖÐcalloc·ÖÅäÁËÈý¸ö¶Ñ¿Õ¼ä£¬·Ö±ðÓÃÓÚ´æ·Å£ºÖ÷»úÁÙʱÎļþ·¾¶temp_path¡¢Ä¿±êÎļþÃûfile_nameÒÔ¼°VMwareÖеĻº´æĿ¼Ãûvm_cache_dir_name¡£



µ«ÊÇ´ò¿ªÖ÷»úTempĿ¼ÏÂȴûÓз¢ÏÖ¸ÃÎļþ£¬ÓÚÊÇ¿ª¶Ë¶Ï¶¨ÕâÊÇ·¨Ê½Íß½âÔ­Òò¡£¼ÌÐøÍùÏ¿´£¬3¸öÎļþÏà¹Ø²ÎÊýÈ«¶¼´«ÈëÁËsub_140579b30º¯Êý¡£



½øÈ뺯Êýsub_140579b30£¬¶¨Î»temp_path²ÎÊýµÄ´¦Öá£ÆäÖУ¬sub_14057FF90º¯Êý¶Ô´«ÈëµÄtemp_path½øÐÐÁËÖðÒ»±éÀú£¬sub_1405B2080º¯Êý¶Ô´«ÈëµÄtemp_path½øÐÐÁË·Ç·¨ÐÔ¼ì²é¡£ÏÂÃæÖصã·ÖÎösub_140576460º¯Êý¡£



sub_140576460º¯Êý½«Â·¾¶²ÎÊýtemp_path´«ÈëÁËsub_14049DA50¡£



Ê×ÏÈ£¬º¯Êýsub_14049DA50ͨ¹ýsub_140477C70¶Ô×Ö·û´®½øÐÐÁË´¦Öá£È»ºó£¬µ÷ÓÃwstat64»ñÈ¡ÏàӦ·¾¶µÄÎļþ״̬£¬Èç¹ûÀֳɻñÈ¡ÔòÉú´æµ½Ò»¸ö½á¹¹ÌåÖУ¬·ñÔò·µ»Ø0xffffffff¡£ÓÉÓÚTempĿ¼Ï²¢Î´·¢ÏÖ±¸·ÝÎļþ£¬µ¼Ö»ñȡ״̬ʧ°Ü£¬´Ó¶ø·µ»Ø0xffffffff¡£



·µ»Ø0xffffffffºó£¬ÖØлص½sub_140579b30º¯ÊýÖУ¬·¨Ê½Ìø³öwhileÑ­»·µ½´ïÈçÏÂλÖã¬Êä¶éÂäÎóÐÅÏ¢²¢ÌøתÖÁsub_140572A70¡£



´Ósub_140572A70×îÖÕÖ´Ðе½sub_1400960C0£¬µ½´ïÈçÏÂλÖý«vmware_vmx+0xb1ed90´¦µÄÖµ¸³¸øÁËrsi£¬¼´Îª0¡£



¼ÌÐøÍùÏÂÖ´ÐУ¬½«rsiÖÐ0Öµ¸³Öµµ½raxÖУ¬È»ºóµ÷ÓÃ0x7ff8fab0c510´¦£¬¼´ntdll!LdrpDispatchUserCallTarget¡£



´Ë´¦Ó뾲̬ϵĹý³ÌÓÐÒ»µã²îÒ죬¾²Ì¬Ï¸ô¦µ÷ÓÃÈçÏ£º



Èç¹ûƾ¾Ý¾²Ì¬¹ý³ÌÖ´ÐУ¬Ó¦µ±µ½´ïsub_1407C7650,¼´ÈçÏÂλÖãº


ÔÚntdll.dll±»¼ÓÔØ֮ǰ£¬¸Ã´¦Êý¾ÝÒÀ¾ÉΪÉÏͼËùʾµØÖ·£º



ºóÀ´ÔÚntdll.dllÖÐʵʩCFG£¨ControlFlowGuard£©± £»¤»úÖÆ£¬½«vmware_vmx+0x7c9668µØÖ·´¦Êý¾Ý½øÐÐÁ˸Äд£¬´Ó¶øÖ´Ðе½ntdll!LdrpDispatchUserCallTargetÖС£



ÔÚntdll!LdrpDispatchUserCallTargetº¯ÊýÖУ¬È¡r11+r10*8´¦µÄÖµ¸³Öµ¸ør11ʱ·ºÆðÁËÎÊÌ⣬¸ÃµØַΪ¿Õ£¬¾ÍÔì³ÉÁË¿ÕÖ¸ÕëÒýÓ㬴ӶøÖ´ÐÐÁËint 29h£¬Ôì³ÉÒì³£¡£È»¶ø£¬¼´Ê¹Ã»ÓÐCFG»úÖÆ£¬·¨Ê½Ò²»áÔÚÖ´ÐС°jmp rax¡±´¦Í߽⣬ͨ¹ýÏÂͼ¿ÉÒÔ¿´³ö£¬CFG»úÖƽö½öÊÇÔÚÔ­±¾·¨Ê½ÌøתָÁîÇ°Ìí¼ÓÁËһЩ¼ì²é¡£



ÖÁ´Ë£¬VMwareÍß½âµÄÔ­Òò»ùÌìÖ°ÎöÇå³þÁË¡£ÁíÒ»¸öÒÉÎÊÊÇ£¬ÎªÊ²Ã´7zipÒѾ­ÔÚϵͳTempÏÂÉú³ÉÁËÎļþ£¬¶øÇÒVMwareÒ²ÒѾ­»ñÈ¡µ½ÁË·¾¶²ÎÊý£¬È´ÔÚÒƶ¯Ç°×Ô¶¯É¾³ýÁËÎļþÄØ¡£Õâ¾ÍÐèÒª´Ó7zipÖÐÑ°ÕҴ𰸡£


3.7zip¶Ëµ÷ÊÔ·ÖÎö

ÓÉÉÏÒ»½Ú·ÖÎö¿ÉÖª£¬Vmware crashÔ­ÒòÊÇTempĿ¼ÏÂÎļþ±»É¾³ý¡£ÔĶÁ7zipÔ´Â룬Ëø¶¨ÁËCPP/Windows/FileDir.cppÖеÄÎļþɾ³ýº¯Êý¡£



ʹÓÃWinDbg¼ÓÔØ7zip£¬È»ºóÔÚRemoveº¯ÊýλÖýøÐÐ϶Ï£¬·¨Ê½ÔËÐкó½øÐÐÍÏק²Ù×÷£¬ÔÚRemoveº¯ÊýÖжϺó¶ÔÓ¦µÄµ÷ÓöÑÕ»ÈçÏÂËùʾ¡£



¶ÑÕ»ÖÐ7zFM+0x5b212µØַλÓÚº¯ÊýCPanel::OnDragÖУ¬¸Ãº¯ÊýΪÊó±êÍÏק²Ù×÷º¯Êý¡£µ±¼ì²âµ½¶Ô7zip´ò¿ªµÄĿ¼½øÐвÙ×÷ʱ£¬±ã»áÔÚTempĿ¼ÏÂÉú³ÉÒ»¸öÒÔ7zE¿ªÍ·µÄËæ»úÃüÃûÎļþ¼Ð¡£



È»ºó£¬½«¸ÃÎļþ¼ÐÉèÖÃΪĿ±êĿ¼£¬¶øÇÒÉèÖÃÁËһЩÊý¾Ý¼°IpDropSourse½á¹¹Ìå¡£



¼ÌÐøÍùÏ¿ÉÒÔ¿´µ½Ò»¸öDoDragDropº¯Êý£¬¸Ãº¯Êý¹¦Ð§ÊǽøÐÐOLEÍÏ·ÅÏà¹Ø²Ù×÷£¬Í¨¹ý¼ì²â¹â±êµÄÐÐΪ·Ö±ðµ÷ÓÃһЩҪÁì²¢·µ»Ø¶ÔÓ¦µÄÊýÖµ¡£



È»ºó£¬Æ¾¾ÝDoDragDropº¯ÊýµÄ·µ»ØÖµÀ´ÅжϹâ±êµÄÍÏקÊÇ·ñÓÐЧ£¬´Ó¶øÖ´ÐжÔÓ¦µÄ²Ù×÷¡£



´Ó7zipÖÐÍÏקÎļþµ½ÐéÄâ»ú£¬ÓÉÓÚÎÞ·¨»ñÖªÎļþÍÏקµÄÄ¿±ê·¾¶£¬Òò´ËDoDragDrop»á·µ»ØDRAGDROP_S_CANCEL(0x40101)£¬²»»áÖ´Ðп½±´²Ù×÷µÄ·ÖÖ§£¬¶øÊÇÖ±½Ó½«TempĿ¼ÏÂÉú³ÉµÄÁÙʱĿ¼ɾ³ý¡£



4.С ½á


7zipѹËõ°üÖÐÎļþÍÏק²Ù×÷»á´¥·¢DoDragDropº¯Êýµ÷Ó㬸ú¯Êý»á»ñÈ¡ÎļþÊý¾Ý¼°¹â±êÍ£Ö¹µÄλÖᣵ«Êǽ«ÎļþÍÏקµ½VMware´°¿Úʱ£¬DoDragDropº¯Êý²»ÄÜ»ñȡ׼ȷµÄÄ¿±ê·¾¶£¬Òò´ËÎÞ·¨½«Îļþ¿½±´µ½Ä¿±êλÖ㬴ӶøÖ±½Óɾ³ýÁÙʱÎļþ£¬×îÖÕµ¼ÖÂVMwareÎÞ·¨»ñÈ¡Îļþ״̬Ôì³ÉÍ߽⡣


²Î¿¼Á´½Ó£º

[1]https://0cch.com/2016/12/13/int29h/

[2]https://docs.microsoft.com/en-us/windows/win32/api/ole2/nf-ole2-dodragdrop

[3]https://github.com/kornelski/7z/tree/20e38032e62bd6bb3a176d51bce0558b16dd51e2



¶«É­Æ½Ì¨»ý¼«·ÀÓùʵÑéÊÒ£¨ADLab£©


ADLab½¨Á¢ÓÚ1999Ä꣬ÊÇÖйúÄþ¾²ÐÐÒµ×îÔ罨Á¢µÄ¹¥·À¼¼ÊõÑо¿ÊµÑéÊÒÖ®Ò»£¬Î¢ÈíMAPP¼Æ»®ºËÐijÉÔ±£¬¡°ºÚȸ¹¥»÷¡±¿´·¨Ê×ÍÆÕß¡£½ØֹĿǰ£¬ADLabÒÑͨ¹ýCVEÀÛ¼ÆÐû²¼Äþ¾²Â©¶´½ü1100¸ö£¬Í¨¹ý CNVD/CNNVDÀÛ¼ÆÐû²¼Äþ¾²Â©¶´900Óà¸ö£¬Á¬Ðø±£³Ö¹ú¼ÊÍøÂçÄþ¾²ÁìÓòÒ»Á÷Ë®×¼¡£ÊµÑéÊÒÑо¿Æ«Ïòº­¸Ç²Ù×÷ϵͳÓëÓ¦ÓÃϵͳÄþ¾²Ñо¿¡¢Òƶ¯ÖÇÄÜÖÕ¶ËÄþ¾²Ñо¿¡¢ÎïÁªÍøÖÇÄÜÉ豸Äþ¾²Ñо¿¡¢WebÄþ¾²Ñо¿¡¢¹¤¿ØϵͳÄþ¾²Ñо¿¡¢ÔÆÄþ¾²Ñо¿¡£Ñо¿½á¹ûÓ¦ÓÃÓÚ²úÎïºËÐļ¼ÊõÑо¿¡¢¹ú¼ÒÖصã¿Æ¼¼ÏîÄ¿¹¥¹Ø¡¢×¨ÒµÄþ¾²·þÎñµÈ¡£


lab.jpg