SMBGhost漏洞(CVE2020-0796)简单分析

本文详细分析了SMBGhost漏洞(CVE2020-0796),该漏洞影响了SMB(Server Message Block)协议,允许远程攻击者执行任意代码。通过深入探讨其工作原理和利用方式,我们了解了其严重性以及如何防范此类安全威胁。
摘要由CSDN通过智能技术生成
0x00 漏洞描述

3 月 10 日:微软发布安全通告 ADV200005,称 SMBv3 协议在处理某些请求的方式中存在代码执行漏洞,并提供了缓解措施。
3 月 12 日:微软正式发布 CVE-2020-0796 安全通告和漏洞修复补丁。
 
CVE-2020-0796是Windows 10 1903/1909的新SMB3压缩功能中的错误。
SMB协议版本3.1.1引入了一种功能,即客户端或服务器可以发布压缩功能,并有选择地压缩SMB3消息。
使用此功能协商会话后,客户端或服务器可以选择压缩某些SMB消息。为此,整个SMB包会被压缩,并且生成的文件头会被前置。此标头是一个小的(16字节)结构:魔术值,未压缩的数据大小,使用的压缩算法和偏移值。
CVE-2020-0796是由该偏移量大小中缺少边界检查导致的,该偏移量大小会被直接传递给多个子例程。传入较大的值将导致缓冲区溢出,并使内核崩溃。通过进一步的工作,可以将其开发为远程代码执行类型等的漏洞利用程序。
 
漏洞影响版本:
  Windows 10 Version 1903 for 32-bit Systems
  Windows 10 Version 1903 for x64-based Systems
  Windows 10 Version 1903 for ARM64-based Systems
  Windows Server, Version 1903 (Server Core installation)
  Windows 10 Version 1909 for 32-bit Systems
  Windows 10 Version 1909 for x64-based Systems
  Windows 10 Version 1909 for ARM64-based Systems
  Windows Server, Version 1909 (Server Core installation)
 
0x01 漏洞分析

1.分析环境搭建及配置
配置目标机(虚拟机): Windows版本:1909,未安装安全更新补丁(KB4551762)
查看其ip:
配置内核调试,管理员权限启动cmd,输入以下命令
 
配置内核调试主机(宿主机):
配置符号表:
 
配置完成后,重启虚拟机即可开始调试内核
 
 
 
2.打开Wireshark,进行抓包
 
3.触发蓝屏,进行调试。
(将目标机关闭防火墙)
采用蓝屏poc:
触发蓝屏:虚拟机成功挂掉
 
Wireshark抓包如下:
 
使用!analyze -v
KEY_VALUES_STRING: 1


    Key  : Analysis.CPU.Sec
    Value: 5


    Key  : Analysis.DebugAnalysisProvider.CPP
    Value: Create: 8007007e on DESKTOP-JT38GVK


    Key  : Analysis.DebugData
    Value: CreateObject


    Key  : Analysis.DebugModel
    Value: CreateObject


    Key  : Analysis.Elapsed.Sec
    Value: 61


    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 61


    Key  : Analysis.System
    Value: CreateObject




ADDITIONAL_XML: 1


BUGCHECK_CODE:  50


BUGCHECK_P1: ffffc80d40cf0c1f


BUGCHECK_P2: 0


BUGCHECK_P3: fffff80414c3cee7


BUGCHECK_P4: 2


READ_ADDRESS:  ffffc80d40cf0c1f Nonpaged pool


MM_INTERNAL_CODE:  2


PROCESS_NAME:  System


TRAP_FRAME:  ffffc68f9c9b2b90 -- (.trap 0xffffc68f9c9b2b90)
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=ffffc68f9c9b2d58 rbx=0000000000000000 rcx=ffffc68f9c9b2d50
rdx=0000000000000001 rsi=0000000000000000 rdi=0000000000000000
rip=fffff80414c3cee7 rsp=ffffc68f9c9b2d20 rbp=ffffc68f9c9b2d70
r8=0000000000000000  r9=0000000000000033 r10=fffff80414c3ce90
r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei pl zr na po nc
nt!RtlDecompressBufferLZNT1+0x57:
fffff804`14c3cee7 0fb71e          movzx   ebx,word ptr [rsi] ds:00000000`00000000=????
Resetting default scope


STACK_TEXT:  
ffffc68f`9c9b2148 fffff804`148ad492 : ffffc80d`40cf0c1f 00000000`00000003 ffffc68f`9c9b22b0 fffff804`1472bf20 : nt!DbgBreakPointWithStatus
ffffc68f`9c9b2150 fffff804`148acb82 : fffff804`00000003 ffffc68f`9c9b22b0 fffff804`147d7ce0 00000000`00000050 : nt!KiBugCheckDebugBreak+0x12
ffffc68f`9c9b21b0 fffff804`147c3917 : fffff804`14a681b8 fffff804`148d6fe5 ffffc80d`40cf0c1f ffffc80d`40cf0c1f : nt!KeBugCheck2+0x952
ffffc68f`9c9b28b0 fffff804`14807b0a : 00000000`00000050 ffffc80d`40cf0c1f 00000000`00000000 ffffc68f`9c9b2b90 : nt!KeBugCheckEx+0x107
ffffc68f`9c9b28f0 fffff804`146d01df : ffffc80c`43764000 00000000`00000000 00000000`00000000 ffffc80d`40cf0c1f : nt!MiSystemFault+0x18fafa
ffffc68f`9c9b29f0 fffff804`147d169a : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000054 : nt!MmAccessFault+0x34f
ffffc68f`9c9b2b90 fffff804`14c3cee7 : 00000000`00000000 00000000`00001100 ffffc80c`3feff8c0 00000000`00001000 : nt!KiPageFault+0x35a
ffffc68f`9c9b2d20 fffff804`1466e666 : ffffc80d`417bc04f ffffc80c`3feff8c0 ffffc80d`417bc04f fffff804`1466e5da : nt!RtlDecompressBufferLZNT1+0x57
ffffc68f`9c9b2db0 fffff804`1944e0bd : 00000000`00000002 00000000`00000033 00000000`ffffffff fffff804`00000000 : nt!RtlDecompressBufferEx2+0x66
ffffc68f`9c9b2e00 fffff804`194f7f41 : ffffc80c`00010020 ffffc80c`417bd150 00000000`00000001 00000000`ffffffff : srvnet!SmbCompressionDecompress+0xdd
ffffc68f`9c9b2e70 fffff804`194f699e : 00000000`00000000 ffffc80c`40cf06a0 00000000	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CVE-2020-0796漏洞,也被称为"SMBGhost",是一个影响微软Windows操作系统的严重漏洞。该漏洞存在于Windows 10版本1903和1909之间的SMBv3协议中,攻击者可以利用此漏洞执行远程代码,从而控制受感染的系统。 对CVE-2020-0796漏洞进行逆向分析是为了深入了解其工作原理及漏洞利用的具体细节。逆向分析通常包括静态和动态分析两个方面。 首先,静态分析是通过对漏洞程序的反汇编、分析源代码或查看二进制文件等方法来了解漏洞的工作原理。这可以帮助研究人员识别漏洞的关键功能、漏洞的出现位置以及可能的漏洞利用方式。 其次,动态分析是在虚拟化环境中或实际受感染的系统上运行漏洞程序,监视其行为并捕获关键信息。通过动态分析,研究人员能够观察到漏洞利用的具体过程,从而理解攻击者是如何利用漏洞来执行远程代码或获取系统权限的。 在逆向分析过程中,研究人员需要使用一些特定的工具,如反汇编器、调试器以及网络分析工具等。这些工具可以帮助研究人员获取漏洞程序的内部结构、系统调用、网络通信等关键信息,有助于理解漏洞的利用方式和脆弱点。 通过逆向分析CVE-2020-0796漏洞,能够帮助安全专业人员更好地理解漏洞的工作原理,从而开发相应的补丁或安全措施以防止攻击者利用该漏洞入侵系统。此外,逆向分析还有助于提高安全分析人员的能力和知识,进一步提升网络安全的整体水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值