Windows SMB Ghost£¨CVE-2020-0796£©·ì϶·ÖÎö

°ä²¼¹¦·ò 2020-04-09

·ì϶½éÉÜ


2020Äê3ÔÂ10ÈÕ£¬£¬£¬£¬£¬Î¢ÈíÔÚÆä¹Ù·½SRC°ä²¼ÁËCVE-2020-0796µÄ°²È«²¼¸æ£¨ADV200005£¬£¬£¬£¬£¬Microsoft Guidance for Disabling SMBv3 Compression£©,²¼¸æ°µÊ¾ÔÚWindows SMBv3°æ±¾µÄ¿Í»§¶ËºÍ·þÎñ¶Ë´æÔÚÔ¶³Ì´úÂëÖ´Ðзì϶¡£¡£¡£ ¡£¡£¡£Í¬Ê±Ö¸³ö¸Ã·ì϶´æÔÚÓÚMicroSoft Server Message Block 3.1.1ºÍ̸´¦ÖÃÌØ¶¨ÒªÇó°üµÄÖ°ÄÜÖУ¬£¬£¬£¬£¬¹¥»÷ÕßÀûÓø÷ì϶¿ÉÔÚÖ¸±êSMB Server»òÕßClientÖÐÖ´ÐÐËÁÒâ´úÂë¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅADLab°²È«×êÑÐÈËÔ±ÔڶԸ÷ì϶½øÐÐ×êÑеĹý³ÌÖз¢ÏÖĿǰÁ÷´«µÄһЩ·ì϶·ÖÎö´æÔÚijЩÎÊÌ⣬£¬£¬£¬£¬Òò¶ø¶Ô¸Ã·ì϶½øÐÐÁËÉî¿ÌµÄ·ÖÎö£¬£¬£¬£¬£¬²¢ÔÚWindows 10ϵͳÉϽøÐÐÁ˸´ÏÖ¡£¡£¡£ ¡£¡£¡£



·ì϶¸´ÏÖ


ѡȡWindows 10 1903°æ±¾½øÐи´ÏÖ¡£¡£¡£ ¡£¡£¡£ÔÚ·ì϶ÀûÓú󣬣¬£¬£¬£¬ÑéÖ¤·¨Ê½ÌáȨʵÏÖºó´´½¨ÁËÒ»¸ösystemȨÏÞµÄcmd shell£¬£¬£¬£¬£¬Èçͼ1Ëùʾ¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ1 CVE-2020-0796±¾µØÌáȨ


·ì϶¸ù»ùµÀÀí


CVE-2020-0796·ì϶´æÔÚÓÚÊÜÓ°Ïì°æ±¾µÄWindowsÇý¶¯srv2.sysÖÓ×£¡£¡£ ¡£¡£¡£Windows SMB v3.1.1 °æ±¾Ôö³¤Á˶ÔѹËõÊý¾ÝµÄÖ§³Ö¡£¡£¡£ ¡£¡£¡£Í¼2ËùʾΪ´øÑ¹ËõÊý¾ÝµÄSMBÊý¾Ý±¨ÎĵÄ×é³É¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ2 ´øÑ¹ËõÊý¾ÝµÄSMBÊý¾Ý±¨ÎĽṹ


ƾ¾Ý΢ÈíMS-SMB2ºÍ̸Îĵµ£¬£¬£¬£¬£¬SMB Compression Transform HeaderµÄ½á¹¹Èçͼ3Ëùʾ¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ3 SMB Compression Transform HeaderÊý¾Ý½á¹¹


ProtocolId£º4×Ö½Ú£¬£¬£¬£¬£¬¹Ì¶¨Îª0x424D53FC

OriginalComressedSegmentSize£º4×Ö½Ú£¬£¬£¬£¬£¬Ô­Ê¼µÄδѹËõÊý¾Ý´óÓ×

CompressionAlgorithm£º2×Ö½Ú£¬£¬£¬£¬£¬Ñ¹ËõËã·¨

Flags £º2×Ö½Ú£¬£¬£¬£¬£¬Ïê¼ûºÍ̸Îĵµ

Offset/Length£ºÆ¾¾ÝFlagsµÄȡֵΪOffset»òÕßLength£¬£¬£¬£¬£¬Offset°µÊ¾Êý¾Ý°üÖÐѹËõÊý¾ÝÏà¶ÔÓÚµ±Ç°½á¹¹µÄÆ«ÒÆ

srv2.sysÖд¦ÖÃSMBv3ѹËõÊý¾Ý°üµÄ½âѹº¯ÊýSrv2DecompressDataδÑϸñУÑéÊý¾Ý°üÖÐOriginalCompressedSegmentSizeºÍOffset/Length×ֶεĺϷ¨ÐÔ¡£¡£¡£ ¡£¡£¡£¶øÕâÁ½¸ö×Ö¶ÎÓ°ÏìÁËSrv2DecompressDataÖÐÄÚ´æ·ÖÅ亯ÊýSrvNetAllocateBufferµÄ²ÎÊý¡£¡£¡£ ¡£¡£¡£Èçͼ4ËùʾµÄSrv2DecompressDataº¯Êý·´±àÒë´úÂ룬£¬£¬£¬£¬SrvNetAllocateBufferÏÖʵµÄ²ÎÊýΪOriginalCompressedSegmentSize+Offset¡£¡£¡£ ¡£¡£¡£ÕâÁ½¸ö²ÎÊý¶¼Ö±½ÓÆðÔ´ÓÚÊý¾Ý°üÖÐSMB Compression Transform HeaderÖеÄ×ֶΣ¬£¬£¬£¬£¬¶øº¯Êý²¢Î´ÅжÏÕâÁ½¸ö×Ö¶ÎÊÇ·ñºÏ·¨£¬£¬£¬£¬£¬¾ÍÖ±½Ó½«ÆäÏà¼Óºó×÷ΪÄÚ´æ·ÖÅäµÄ²ÎÊý(unsigned intÀàÐÍ£©¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ4 Srv2DecompressDataº¯ÊýµÄ¹Ø¼ü´úÂë


ÕâÀ£¬£¬£¬£¬OriginalCompressedSegmentSize+Offset¿ÉÄÜÓ×ÓÚÏÖʵ±ØÒª·ÖÅäµÄÄÚ´æ´óÓ×£¡£¡£ ¡£¡£¡£¬£¬£¬£¬£¬´Ó¶øÔÚºóÐøÅ²Óýâѹº¯ÊýSmbCompressionDecompress¹ý³ÌÖдæÔÚÔ½½ç¶ÁÈ¡»òÕßдÈëµÄ·çÏÕ¡£¡£¡£ ¡£¡£¡£


ÌáÈ¨ÊÆÓùý³Ì


ĿǰÒѹ«¿ªµÄÕë¶Ô¸Ã·ì϶µÄ±¾µØÌáÈ¨ÊÆÓÃÔ̺¬ÈçϵÄÖØÒª¹ý³Ì£º

£¨1£©ÑéÖ¤·¨Ê½Æð³õ´´½¨µ½SMS serverµÄ»á»°Ïνӣ¨¼ÇΪsession£©¡£¡£¡£ ¡£¡£¡£

£¨2£©ÑéÖ¤·¨Ê½»ñÈ¡×ÔÉítokenÊý¾Ý½á¹¹ÖÐprivilege³ÉÔ±ÔÚÄÚºËÖеĵØÖ·£¨¼ÇtokenAddr£©¡£¡£¡£ ¡£¡£¡£

£¨3£©ÑéÖ¤·¨Ê½Í¨¹ýsession·¢ËÍ»ûÐÎѹËõÊý¾Ý£¨¼ÇΪevilData£©¸øSMB server´¥·¢·ì϶¡£¡£¡£ ¡£¡£¡£ÆäÖУ¬£¬£¬£¬£¬evilDataÔ̺¬tokenAddr¡¢È¨ÏÞÊý¾Ý¡¢Òç³öռλÊý¾Ý¡£¡£¡£ ¡£¡£¡£

£¨4£©SMS serverÊÕµ½evilDataºó´¥·¢·ì϶£¬£¬£¬£¬£¬²¢Åú¸ÄtokenAddrµØÖ·´¦µÄȨÏÞÊý¾Ý£¬£¬£¬£¬£¬´Ó¶øÌáÉýÑéÖ¤·¨Ê½µÄȨÏÞ¡£¡£¡£ ¡£¡£¡£

£¨5£©ÑéÖ¤·¨Ê½»ñȡȨÏÞºó¶Ôwinlogon½øÐнÚÔ죬£¬£¬£¬£¬À´´´½¨systemÓû§shell¡£¡£¡£ ¡£¡£¡£


·ì϶ÄÚ´æ·ÖÅä·ÖÎö


Ê×ÏÈ£¬£¬£¬£¬£¬¿´Ò»ÏÂÒѹ«¿ªÀûÓõÄevilDataÊý¾Ý°üµÄÄÚÈÝ£¬£¬£¬£¬£¬Èçͼ5Ëùʾ¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ5 ÌáȨpoc·¢Ë͵ĴøÑ¹ËõÊý¾ÝµÄSMBÊý¾Ý°ü


Êý¾Ý°üµÄÄÚÈݺܵ¥Ò»£¬£¬£¬£¬£¬ÆäÖм¸¸ö¹Ø¼ü×Ö¶ÎÊý¾ÝÈçÏ£º

OriginalSize£º0xffffffff

Offset£º0x10

Real compressed data£º13×Ö½ÚµÄѹËõÊý¾Ý£¬£¬£¬£¬£¬½âѹºóӦΪ1108×Ö½Ú¡¯A¡¯¼Ó8×Ö½ÚµÄtokenµØÖ·¡£¡£¡£ ¡£¡£¡£

SMB3 raw data£ºÏÖʵÉÏÊÇÓÉ2¸ö8×Ö½ÚµÄ0x1FF2FFFFBC£¨×ܳ¤0x10)¼ÓÉÏ0x13×Ö½ÚµÄѹËõÊý¾Ý×é³É¡£¡£¡£ ¡£¡£¡£

´ÓÉÏÃæµÄ·ì϶µÀÀí·ÖÎö¿ÉÖª£¬£¬£¬£¬£¬·ì϶³ÉÒòÊÇSrv2DecompressDataº¯Êý¶Ô±¨ÎÄ×ֶβ»×ãºÏ·¨ÐÔÅжÏÔì³ÉÄÚ´æ·ÖÅä²»µ±¡£¡£¡£ ¡£¡£¡£Ôڸ÷ì϶Êý¾Ý°üÖУ¬£¬£¬£¬£¬OriginalSize ÊÇÒ»¸ö»ûÐÎÖµ¡£¡£¡£ ¡£¡£¡£OriginalSize + Offset = 0xffffffff + 0x10 = 0xf ÊÇÒ»¸öºÜÓ×µÄÖµ£¬£¬£¬£¬£¬Æä½«»á´«µÝ¸øSrvNetAllocateBuffer½øÐÐŲÓ㬣¬£¬£¬£¬ÏÂÃæ¾ßÌå·ÖÎöÄÚ´æ·ÖÅäÇé¿ö¡£¡£¡£ ¡£¡£¡£SrvNetAllocateBufferµÄ·´±àÒë´úÂëÈçͼ6¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ6 SrvNetAllocateBufferÄÚ´æ·ÖÅä¹ý³Ì


ÓÉÓÚ´«¸øSrvNetAllocateBufferµÄ²ÎÊýΪ0xf£¬£¬£¬£¬£¬Æ¾¾ÝSrvNetAllocateBufferµÄ´¦ÖÃÁ÷³Ì¿ÉÖª£¬£¬£¬£¬£¬¸ÃÒªÇóÄڴ潫´ÓSrvNetBufferLookasides±íÖзÖÅä¡£¡£¡£ ¡£¡£¡£ÕâÀï±ØÒª°ÑÎȵÄÊÇ£¬£¬£¬£¬£¬±äÁ¿SrvDisableNetBufferLookAsideList¸ú×¢²á±íÏîÓйأ¬£¬£¬£¬£¬ÏµÍ³Ä¬ÈÏ״̬ÏÂSrvDisableNetBufferLookAsideListΪ0¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ7 SrvDisableNetBufferLookAsideList±äÁ¿³õʼ»¯¹ý³Ì


SrvNetBufferLookasides±íͨ¹ýº¯ÊýSrvNetCreateBuffer³õʼ»¯£¬£¬£¬£¬£¬ÏÖʵSrvNetCreateBufferÑ­»·Å²ÓÃÁËSrvNetBufferLookasideAllocate·ÖÅäÄڴ棬£¬£¬£¬£¬Å²ÓÃSrvNetBufferLookasideAllocateµÄ²ÎÊý±ðÀëΪ[¡®0x1100¡¯, ¡®0x2100¡¯, ¡®0x4100¡¯, ¡®0x8100¡¯, ¡®0x10100¡¯, ¡®0x20100¡¯, ¡®0x40100¡¯, ¡®0x80100¡¯, ¡®0x100100¡¯]¡£¡£¡£ ¡£¡£¡£ÔÚÕâÀ£¬£¬£¬£¬ÄÚ´æ·ÖÅä²ÎÊýΪ0xf£¬£¬£¬£¬£¬¶ÔÓ¦µÄlookaside±íΪ0x1100´óÓ׵ıíÏî¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ8 SrvNetCreateBuffer·´±àÒë´úÂë


SrvNetBufferLookasideAllocateº¯ÊýÏÖʵÊÇŲÓÃSrvNetAllocateBufferFromPoolÀ´·ÖÅäÄڴ棬£¬£¬£¬£¬Èçͼ9Ëùʾ¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ9 SrvNetBufferLookasideAllocate·´±àÒë´úÂë


ÔÚº¯ÊýSrvNetAllocateBufferFromPoolÖУ¬£¬£¬£¬£¬¶ÔÓÚÓû§ÒªÇóµÄÄÚ´æ·ÖÅä´óÓ×£¡£¡£ ¡£¡£¡£¬£¬£¬£¬£¬ÄÚ²¿Í¨¹ýExAllocatePoolWithTagº¯Êý·ÖÅäµÄÄÚ´æÏÖʵҪ´óÓÚÒªÇóÖµ£¨¶à³ö²¿ÃÅÓÃÓÚ´æ´¢²¿ÃÅÄÚ´æÓйØÊý¾Ý½á¹¹£©¡£¡£¡£ ¡£¡£¡£ÒÔÒªÇó·ÖÅä0x1100´óÓ×ΪÀý£¬£¬£¬£¬£¬¾­¹ýһϵÁÐÅжϺ󣬣¬£¬£¬£¬×îºó·ÖÅäµÄÄÚ´æ´óÓ×allocate_size = 0x1100 + E8 + 2*(MmSizeOfMdl + 8)¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ10 SrvNetAllocateBufferFromPoolº¯Êý·´±àÒë´úÂë


ÄÚ´æ·ÖÅä½áÊøÖ®ºó£¬£¬£¬£¬£¬SrvNetAllocateBufferFromPoolº¯Êý»¹¶Ô·ÖÅäµÄÄÚ´æ½øÐÐÁËһϵÁгõʼ»¯²Ù×÷£¬£¬£¬£¬£¬×îºó·µ»ØÁËÒ»¸öÄÚ´æÐÅÏ¢½á¹¹ÌåÖ¸Õë×÷Ϊº¯ÊýµÄ·µ»ØÖµ¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ11  SrvNetAllocateBufferFromPool³õʼ»¯ÄÚ´æÊý¾Ý


ÕâÀï±ØÒª°ÑÎÈÈçϵÄÊý¾Ý¹ØÏµ£ºSrvNetAllocateBufferFromPoolº¯Êý·µ»ØÖµreturn_bufferÖ¸ÏòÒ»¸öÄÚ´æÊý¾Ý½á¹¹£¬£¬£¬£¬£¬¸ÃÄÚ´æÊý¾Ý½á¹¹ÕØÊ¼µØÖ·Í¬ÏÖʵ·ÖÅäÄڴ棨º¯ÊýExAllocatePoolWithTag·ÖÅäµÄÄÚ´æ£©ÕØÊ¼µØÖ·µÄµÄÆ«ÒÆÎª0x1150£»£»£»£»£»£»£»return_buffer+0x18µØÎ»Ö¸ÏòÁËÏÖʵ·ÖÅäÄÚ´æÕØÊ¼µØÖ·Æ«ÒÆ0x50µØÎ»´¦£¬£¬£¬£¬£¬¶ø×îÖÕreturn_buffer»á×÷Ϊº¯ÊýSrvNetAllocateBufferµÄ·µ»ØÖµ¡£¡£¡£ ¡£¡£¡£ÆäÄÚ´æ²¼¾Ö¹ØÏµÈçͼ12¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ͼ12 SrvNetAllocateBuffer£¨0xf)·µ»ØµÄÄÚ´æÊý¾Ý²¼¾Ö


·ì϶ÄÚ´æ·ÛËé·ÖÎö


»Øµ½·ì϶½âѹº¯ÊýSrv2DecompressData£¬£¬£¬£¬£¬ÔÚ½øÐÐÄÚ´æ·ÖÅäÖ®ºó£¬£¬£¬£¬£¬Srv2DecompressDataŲÓú¯ÊýSmbCompressionDecompressÆðÍ·½âѹ±»Ñ¹ËõµÄÊý¾Ý¡£¡£¡£ ¡£¡£¡£Æäº¯ÊýÂß¼­Èçͼ13Ëùʾ¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ13 Srv2DecompressData½âѹѹËõÊý¾Ý


ÏÖʵÉÏ£¬£¬£¬£¬£¬¸Ãº¯ÊýŲÓÃÁËWindows¿âº¯ÊýRtlDecompressBufferEx2À´ÊµÏÖ½âѹ£¬£¬£¬£¬£¬Æ¾¾ÝRtlDecompressBufferEx2µÄº¯ÊýÔ­ÐÍÀ´¶ÔÓ¦·ÖÎöSmbCompressionDecompressº¯ÊýµÄ¸÷¸ö²ÎÊý¡£¡£¡£ ¡£¡£¡£


SmbCompressionDecompress(CompressAlgo£¬£¬£¬£¬£¬//ѹËõËã·¨

Compressed_buf£¬£¬£¬£¬£¬//Ö¸ÏòÊý¾Ý°üÖеÄѹËõÊý¾Ý  

Compressed_size£¬£¬£¬£¬£¬//Êý¾Ý°üÖÐѹËõÊý¾Ý´óÓ×£¡£¡£ ¡£¡£¡£¬£¬£¬£¬£¬ÍÆËãµÃµ½  

UnCompressedBuf,//½âѹºóµÄÊý¾Ý´æ´¢µØÖ·£¬£¬£¬£¬£¬*(alloc_buffer+0x18)+0x10    

UnCompressedSize,//ѹËõÊý¾Ýԭʼ´óÓ×,Ô´ÓÚÊý¾Ý°üOriginalCompressedSegmentSize  

FinalUnCompressedSize)//×îÖÕ½âѹºóÊý¾Ý´óÓ×


´Ó·´±àÒë´úÂëÄܹ»¿´³ö£¬£¬£¬£¬£¬º¯ÊýSmbCompressionDecompressÖб£Áô½âѹºóÊý¾ÝµÄµØÖ·Îª*(alloc_buffer+0x18)+0x10µÄµØÎ»£¬£¬£¬£¬£¬Æ¾¾ÝÄÚ´æ·ÖÅä¹ý³Ì·ÖÎö£¬£¬£¬£¬£¬alloc_buffer + 0x18Ö¸ÏòÁËÏÖʵÄÚ´æ·ÖÅäÕØÊ¼µØÎ»Æ«ÒÆ0x50´¦£¬£¬£¬£¬£¬ËùÒÔ¿½±´Ö÷ÕŵØÖ·ÎªÏÖʵÄÚ´æ·ÖÅäÕØÊ¼µØÖ·Æ«ÒÆ0x60µØÎ»´¦¡£¡£¡£ ¡£¡£¡£


ÔÚ½âѹ¹ý³ÌÖУ¬£¬£¬£¬£¬Ñ¹ËõÊý¾Ý½âѹºó½«´æ´¢µ½Õâ¸öµØÖ·Ö¸ÏòµÄÄÚ´æÖÓ×£¡£¡£ ¡£¡£¡£Æ¾¾ÝevilDataÊý¾ÝµÄ»ú¹Ø¹ý³Ì£¬£¬£¬£¬£¬½âѹºóµÄÊý¾ÝΪռ¿ÓÊý¾ÝºÍtokenAddr¡£¡£¡£ ¡£¡£¡£¿£¿£¿£¿ £¿£¿£¿½±´µ½¸Ã´¦µØÖ·ºó£¬£¬£¬£¬£¬tokenAddr½«¸²¸ÇÔ­ÄÚ´æÊý¾Ý½á¹¹ÖÐalloc_buffer+0x18´¦µÄÊý¾Ý¡£¡£¡£ ¡£¡£¡£Ò²¾ÍÊǽâѹËõº¯ÊýSmbCompressionDecompress·µ»Øºó£¬£¬£¬£¬£¬alloc_buffer+0x18½«Ö¸ÏòÑéÖ¤·¨Ê½µÄtokenAddrÄں˵ØÖ·¡£¡£¡£ ¡£¡£¡£¿£¿£¿£¿ £¿£¿£¿½±´¹ý³ÌÈçͼ14ºÍ15Ëùʾ¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ14 ½âѹ¿½±´¹ý³Ì


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ15½âѹʵÏÖºóÄÚ´æ²¼¾Ö


³ÖÐø¿´Srv2DecompressDataµÄºóÐø´¦ÖÃÁ÷³Ì£¬£¬£¬£¬£¬½âѹ³É¹¦ºó£¬£¬£¬£¬£¬º¯ÊýÅжÏoffsetµÄÁ˾ֲ»Îª0¡£¡£¡£ ¡£¡£¡£²»Îª0Ôò½øÐÐÄÚ´æÒƶ¯£¬£¬£¬£¬£¬Äڴ濽±´µÄ²ÎÊýÈçÏ£º


memmove(*(alloc_buffer+0x18)£¬£¬£¬£¬£¬SMB_payload£¬£¬£¬£¬£¬offset)

´Ëʱ£¬£¬£¬£¬£¬alloc_buffer+0x18ÒѾ­Ö¸ÏòÑéÖ¤·¨Ê½µÄtokenAddrÄں˵ØÖ·£¬£¬£¬£¬£¬¶øSMB_payload´ËʱָÏòevilDataÖеÄȨÏÞÊý¾Ý£¬£¬£¬£¬£¬offsetÔòΪ0x10¡£¡£¡£ ¡£¡£¡£Òò¶ø£¬£¬£¬£¬£¬Õâ¸öÄÚ´æÒƶ¯ÊµÏֺ󣬣¬£¬£¬£¬È¨ÏÞÊý¾Ý½«Ð´ÈëtokenAddr´¦¡£¡£¡£ ¡£¡£¡£ÕâÒâζ×Å£¬£¬£¬£¬£¬SMS Server³É¹¦Åú¸ÄÁËÑéÖ¤·¨Ê½µÄȨÏÞ£¬£¬£¬£¬£¬´Ó¶øÊµÏÖÁËÑéÖ¤·¨Ê½µÄÌáȨ£¡


»¹ÓÐÒ»¸öϸ½Ú±ØÒª°ÑÎÈ£¬£¬£¬£¬£¬ÔÚ½âѹʱ£¬£¬£¬£¬£¬Srv2DecompressDataº¯Êý»áÅжÏÏÖʵµÄ½âѹºóÊý¾Ý´óÓ×FinalUnCompressedSizeÊÇ·ñºÍÊý¾Ý°üÖÐԭʼÊý¾Ý´óÓ×OriginalCompressedSegmentSizeÒ»Ö£¬£¬£¬£¬£¬Èçͼ16Ëùʾ¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ͼ16 Srv2DecompressData²é³­Ñ¹ËõÊý¾Ý´óÓ×


°´ÀíÀ´ËµÏÖʵ½âѹºóµÄÊý¾Ý´óÓ×Ϊ0x1100£¬£¬£¬£¬£¬²»µÅ×ÚÊý¾Ý°üÖеÄԭʼѹËõÊý¾Ý´óÓ×0xffffffff£¬£¬£¬£¬£¬ÕâÀïÓ¦¸Ã½øÈëµ½ºóÃæÄڴ濪Ê͵ÄÁ÷³Ì¡£¡£¡£ ¡£¡£¡£È»¶ø£¬£¬£¬£¬£¬ÏÖʵÉÏÔÚº¯ÊýSmbCompressionDecompressÖУ¬£¬£¬£¬£¬Å²ÓÃRtlDecompressBufferEx2³É¹¦ºó»áÖ±½Ó½«OriginalCompressedSegmentSize¸³Öµ¸øFinalUnCompressedSize¡£¡£¡£ ¡£¡£¡£ÕâÒ²ÊǸ÷ì϶¹ØÓÚËÁÒâµØÖ·Ð´Èë³É¹¦µÄ¹Ø¼üÖ®Ò»¡£¡£¡£ ¡£¡£¡£


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

ͼ17 SmbCompressionDecompres¸³ÖµFinalUnCompressedSize


·ì϶½¨¸´½¨Òé


CVE-2020-0796ÊÇÄÚ´æ·ÛËé·ì϶£¬£¬£¬£¬£¬¾«ÐÄÀûÓÿɵ¼ÖÂÔ¶³Ì´úÂëÖ´ÐУ¬£¬£¬£¬£¬Í¬Ê±ÍøÂçÉÏÒѾ­³öÏָ÷ì϶µÄ±¾µØÌáÈ¨ÊÆÓôúÂë¡£¡£¡£ ¡£¡£¡£ÔÚ´Ë£¬£¬£¬£¬£¬½¨ÒéÊÜÓ°Ïì°æ±¾WindowsÓû§ÊµÊ±Æ¾¾Ý΢Èí¹Ù·½·ì϶·À»¤²¼¸æ¶Ô¸Ã·ì϶½øÐзÀ»¤¡£¡£¡£ ¡£¡£¡£


²Î¿¼Á´½Ó£º

1.https://fortiguard.com/encyclopedia/ips/48773

2.https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV200005

3.https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796

4.https://www.catalog.update.microsoft.com/Search.aspx?q=KB4551762

5.https://github.com/danigargu/CVE-2020-0796

6.https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/5606ad47-5ee0-437a-817e-70c366052962

7.https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-rtldecompressbufferex2