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Ëùʾ¡£¡£¡£¡£¡£¡£
ͼ1 CVE-2020-0796±¾µØÌáȨ
·ì϶¸ù»ùµÀÀí
CVE-2020-0796·ì϶´æÔÚÓÚÊÜÓ°Ïì°æ±¾µÄWindowsÇý¶¯srv2.sysÖÓ×£¡£¡£¡£¡£¡£Windows SMB v3.1.1 °æ±¾Ôö³¤Á˶ÔѹËõÊý¾ÝµÄÖ§³Ö¡£¡£¡£¡£¡£¡£Í¼2ËùʾΪ´øÑ¹ËõÊý¾ÝµÄSMBÊý¾Ý±¨ÎĵÄ×é³É¡£¡£¡£¡£¡£¡£
ͼ2 ´øÑ¹ËõÊý¾ÝµÄSMBÊý¾Ý±¨ÎĽṹ
ƾ¾Ý΢ÈíMS-SMB2ºÍ̸Îĵµ£¬£¬£¬£¬£¬SMB Compression Transform HeaderµÄ½á¹¹Èçͼ3Ëùʾ¡£¡£¡£¡£¡£¡£
ͼ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ÀàÐÍ£©¡£¡£¡£¡£¡£¡£
ͼ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Ëùʾ¡£¡£¡£¡£¡£¡£
ͼ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¡£¡£¡£¡£¡£¡£
ͼ6 SrvNetAllocateBufferÄÚ´æ·ÖÅä¹ý³Ì
ÓÉÓÚ´«¸øSrvNetAllocateBufferµÄ²ÎÊýΪ0xf£¬£¬£¬£¬£¬Æ¾¾ÝSrvNetAllocateBufferµÄ´¦ÖÃÁ÷³Ì¿ÉÖª£¬£¬£¬£¬£¬¸ÃÒªÇóÄڴ潫´ÓSrvNetBufferLookasides±íÖзÖÅä¡£¡£¡£¡£¡£¡£ÕâÀï±ØÒª°ÑÎȵÄÊÇ£¬£¬£¬£¬£¬±äÁ¿SrvDisableNetBufferLookAsideList¸ú×¢²á±íÏîÓйأ¬£¬£¬£¬£¬ÏµÍ³Ä¬ÈÏ״̬ÏÂSrvDisableNetBufferLookAsideListΪ0¡£¡£¡£¡£¡£¡£
ͼ7 SrvDisableNetBufferLookAsideList±äÁ¿³õʼ»¯¹ý³Ì
SrvNetBufferLookasides±íͨ¹ýº¯ÊýSrvNetCreateBuffer³õʼ»¯£¬£¬£¬£¬£¬ÏÖʵSrvNetCreateBufferÑ»·Å²ÓÃÁËSrvNetBufferLookasideAllocate·ÖÅäÄڴ棬£¬£¬£¬£¬Å²ÓÃSrvNetBufferLookasideAllocateµÄ²ÎÊý±ðÀëΪ[¡®0x1100¡¯, ¡®0x2100¡¯, ¡®0x4100¡¯, ¡®0x8100¡¯, ¡®0x10100¡¯, ¡®0x20100¡¯, ¡®0x40100¡¯, ¡®0x80100¡¯, ¡®0x100100¡¯]¡£¡£¡£¡£¡£¡£ÔÚÕâÀ£¬£¬£¬£¬ÄÚ´æ·ÖÅä²ÎÊýΪ0xf£¬£¬£¬£¬£¬¶ÔÓ¦µÄlookaside±íΪ0x1100´óÓ׵ıíÏî¡£¡£¡£¡£¡£¡£
ͼ8 SrvNetCreateBuffer·´±àÒë´úÂë
SrvNetBufferLookasideAllocateº¯ÊýÏÖʵÊÇŲÓÃSrvNetAllocateBufferFromPoolÀ´·ÖÅäÄڴ棬£¬£¬£¬£¬Èçͼ9Ëùʾ¡£¡£¡£¡£¡£¡£
ͼ9 SrvNetBufferLookasideAllocate·´±àÒë´úÂë
ÔÚº¯ÊýSrvNetAllocateBufferFromPoolÖУ¬£¬£¬£¬£¬¶ÔÓÚÓû§ÒªÇóµÄÄÚ´æ·ÖÅä´óÓ×£¡£¡£¡£¡£¡£¬£¬£¬£¬£¬ÄÚ²¿Í¨¹ýExAllocatePoolWithTagº¯Êý·ÖÅäµÄÄÚ´æÏÖʵҪ´óÓÚÒªÇóÖµ£¨¶à³ö²¿ÃÅÓÃÓÚ´æ´¢²¿ÃÅÄÚ´æÓйØÊý¾Ý½á¹¹£©¡£¡£¡£¡£¡£¡£ÒÔÒªÇó·ÖÅä0x1100´óÓ×ΪÀý£¬£¬£¬£¬£¬¾¹ýһϵÁÐÅжϺ󣬣¬£¬£¬£¬×îºó·ÖÅäµÄÄÚ´æ´óÓ×allocate_size = 0x1100 + E8 + 2*(MmSizeOfMdl + 8)¡£¡£¡£¡£¡£¡£
ͼ10 SrvNetAllocateBufferFromPoolº¯Êý·´±àÒë´úÂë
ÄÚ´æ·ÖÅä½áÊøÖ®ºó£¬£¬£¬£¬£¬SrvNetAllocateBufferFromPoolº¯Êý»¹¶Ô·ÖÅäµÄÄÚ´æ½øÐÐÁËһϵÁгõʼ»¯²Ù×÷£¬£¬£¬£¬£¬×îºó·µ»ØÁËÒ»¸öÄÚ´æÐÅÏ¢½á¹¹ÌåÖ¸Õë×÷Ϊº¯ÊýµÄ·µ»ØÖµ¡£¡£¡£¡£¡£¡£
ͼ11 SrvNetAllocateBufferFromPool³õʼ»¯ÄÚ´æÊý¾Ý
ÕâÀï±ØÒª°ÑÎÈÈçϵÄÊý¾Ý¹ØÏµ£ºSrvNetAllocateBufferFromPoolº¯Êý·µ»ØÖµreturn_bufferÖ¸ÏòÒ»¸öÄÚ´æÊý¾Ý½á¹¹£¬£¬£¬£¬£¬¸ÃÄÚ´æÊý¾Ý½á¹¹ÕØÊ¼µØÖ·Í¬ÏÖʵ·ÖÅäÄڴ棨º¯ÊýExAllocatePoolWithTag·ÖÅäµÄÄÚ´æ£©ÕØÊ¼µØÖ·µÄµÄÆ«ÒÆÎª0x1150£»£»£»£»£»£»£»return_buffer+0x18µØÎ»Ö¸ÏòÁËÏÖʵ·ÖÅäÄÚ´æÕØÊ¼µØÖ·Æ«ÒÆ0x50µØÎ»´¦£¬£¬£¬£¬£¬¶ø×îÖÕreturn_buffer»á×÷Ϊº¯ÊýSrvNetAllocateBufferµÄ·µ»ØÖµ¡£¡£¡£¡£¡£¡£ÆäÄÚ´æ²¼¾Ö¹ØÏµÈçͼ12¡£¡£¡£¡£¡£¡£
ͼ12 SrvNetAllocateBuffer£¨0xf)·µ»ØµÄÄÚ´æÊý¾Ý²¼¾Ö
·ì϶ÄÚ´æ·ÛËé·ÖÎö
»Øµ½·ì϶½âѹº¯ÊýSrv2DecompressData£¬£¬£¬£¬£¬ÔÚ½øÐÐÄÚ´æ·ÖÅäÖ®ºó£¬£¬£¬£¬£¬Srv2DecompressDataŲÓú¯ÊýSmbCompressionDecompressÆðÍ·½âѹ±»Ñ¹ËõµÄÊý¾Ý¡£¡£¡£¡£¡£¡£Æäº¯ÊýÂß¼Èçͼ13Ëùʾ¡£¡£¡£¡£¡£¡£
ͼ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Ëùʾ¡£¡£¡£¡£¡£¡£
ͼ14 ½âѹ¿½±´¹ý³Ì
ͼ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Ëùʾ¡£¡£¡£¡£¡£¡£
ͼ16 Srv2DecompressData²é³Ñ¹ËõÊý¾Ý´óÓ×
°´ÀíÀ´ËµÏÖʵ½âѹºóµÄÊý¾Ý´óÓ×Ϊ0x1100£¬£¬£¬£¬£¬²»µÅ×ÚÊý¾Ý°üÖеÄÔʼѹËõÊý¾Ý´óÓ×0xffffffff£¬£¬£¬£¬£¬ÕâÀïÓ¦¸Ã½øÈëµ½ºóÃæÄڴ濪Ê͵ÄÁ÷³Ì¡£¡£¡£¡£¡£¡£È»¶ø£¬£¬£¬£¬£¬ÏÖʵÉÏÔÚº¯ÊýSmbCompressionDecompressÖУ¬£¬£¬£¬£¬Å²ÓÃRtlDecompressBufferEx2³É¹¦ºó»áÖ±½Ó½«OriginalCompressedSegmentSize¸³Öµ¸øFinalUnCompressedSize¡£¡£¡£¡£¡£¡£ÕâÒ²ÊǸ÷ì϶¹ØÓÚËÁÒâµØÖ·Ð´Èë³É¹¦µÄ¹Ø¼üÖ®Ò»¡£¡£¡£¡£¡£¡£
ͼ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


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