¼ÇÒ»´ÎVMwareµÄ±ÀÀ£µ÷ÊÔ·ÖÎö¹ý³Ì
°ä²¼¹¦·ò 2020-08-111.×êÑв¼¾°
ʹÓÃWinDbg-IÖ¸ÁWinDbgÉèÖÃΪ¼´Ê±µ÷ÊÔÆ÷£¬VMware-vmx.exe·¨Ê½±ÀÀ£ºó×Ô¶¯µ¯³öWinDbg¡£²Ö¿âÐÅÏ¢ÈçÏ£º

µ÷ÊÔÐÅÏ¢ÏÔʾstack buffer overrunÒì³££¬×î³õ´§¶È¿ÉÄÜÊÇ»º³åÇøÒç¶Âí½Å¡£

ͨ¹ý²éÎÊ×ÊÁϺó·¢ÏÖ£¬´ÓWindows 8ÆðÍ·£¬WindowsÉè¼ÆÁËÒ»¸öеÄÖжÏINT 29H£¬ÓÃÒÔ¼±¾çÅ׳öʧ°Ü£¬ÔÚsdkÖб»ÉêÃ÷Ϊ__fastfail£¬ __fastfailÄÚ²¿º¯Êý²»»á·µ»Ø¡£
ÔÚÉÏͼÖУ¬·¨Ê½ÖÕÖ¹ÓÚ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»ñÈ¡ÏàÓ¦õè¾¶µÄÎļþ״̬£¬ÈôÊdzɹ¦»ñÈ¡Ôò±£Áôµ½Ò»¸ö½á¹¹ÌåÖУ¬²»È»·µ»Ø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ÖÐѰÕҴ𰸡£
ÓÉÉÏÒ»½Ú·ÖÎö¿ÉÖª£¬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Ŀ¼ÏÂÌìÉúµÄһʱĿ¼ɾ³ý¡£

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
GA»Æ½ð¼×»ý¼«·ÀÓù³¢ÊÔÊÒ£¨ADLab£©
ADLab³ÉÁ¢ÓÚ1999Ä꣬ÊÇÖйú°²È«ÐÐÒµ×îÔç³ÉÁ¢µÄ¹¥·À¼¼Êõ×êÑг¢ÊÔÊÒÖ®Ò»£¬Î¢ÈíMAPP´òËãÖ÷Ìâ³ÉÔ±£¬¡°ºÚȸ¹¥»÷¡±¸ÅÏëÊ×ÍÆÕß¡£½ØÖ¹Ä¿Ç°£¬ADLabÒÑͨ¹ýCVEÀۼư䲼°²È«·ì϶½ü1100¸ö£¬Í¨¹ý CNVD/CNNVDÀۼư䲼°²È«·ì϶900Óà¸ö£¬³ÖÐøÎ¬³Ö¹ú¼ÊÍøÂ簲ȫÁìÓòÒ»Á÷Ë®×¼¡£³¢ÊÔÊÒ×êÑз½Ïòº¸Ç²Ù×÷ϵͳÓëÀûÓÃϵͳ°²È«×êÑÓ×¢ÒÆ¶¯ÖÇÄÜÖն˰²È«×êÑÓ×¢ÎïÁªÍøÖÇÄÜÉ豸°²È«×êÑÓ×¢Web°²È«×êÑÓ×¢¹¤¿ØÏµÍ³°²È«×êÑÓ×¢ÔÆ°²È«×êÑС£×êÑгɾÍÀûÓÃÓÚ²úÆ·Ö÷Ìâ¼¼Êõ×êÑÓ×¢¹ú¶È³Áµã¿Æ¼¼ÏîÄ¿¹¥¹Ø¡¢×¨Òµ°²È«·þÎñµÈ¡£



¾©¹«Íø°²±¸11010802024551ºÅ