0x00 简介
该漏洞是SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,直接使用会引发内存破坏环境,导致可呗攻击者利用远程执行任意代码。
国外研究员在近日放出了该漏洞的 “POC” ,本着学习的态度,参考大佬们的文章对该漏洞进行复现。
0x01 影响版本
漏洞暂不影响主流的服务器版本,只影响Windows 10 1903之后的各个32位、64位版Windows,包括家用版、专业版、企业版、教育版。(只影响 SMB v3.1.1,1903和1909)
Windows 10 Version 1903 for 32-bit Systems
Windows 10 Version 1903 for ARM64-based Systems
Windows 10 Version 1903 for x64-based Systems
Windows 10 Version 1909 for 32-bit Systems
Windows 10 Version 1909 for ARM64-based Systems
Windows 10 Version 1909 for x64-based Systems
Windows Server, version 1903 (Server Core installation)
Windows Server, version 1909 (Server Core installation)
0x02 漏洞复现
靶机:192.168.109.137 (Windows 10 1903)
攻击机:192.168.109.130 (Kali 4)
1)环境准备
靶机是一台win10环境,查看系统版本号(需要在上方的影响版本内)
查看系统补丁情况(需要未打KB4551762),以及IP信息(靶机IP:192.168.109.137)
2)POC检测
利用漏洞检测工具对该漏洞进行检测
其中,192.168.109.1是物理机,而192.168.109.137是我们的目标靶机(用的某公司的 POC ,字儿太多了,打个🐎)
3)EXP复现
首先在我们的KALI里生成 MSF
🐎
将 exploit.py
的 payload
替换为自己的(“POC”下载链接见参考文献)
根据该安全研究员在 GayHub
上的说明,该 exp
最大支持 600 bytes
的 Payload
替换,如果需要自己更改内核的 Shellcode
。但这不是咱能涉及的了 /(ㄒoㄒ)/~~
在MSF上打开一个监听,等目标机器来反向连接我们
执行替换后的 exp
,却发现出现了 socket
连接超时的请求,关闭靶机的防火墙后,才能成功 ping 通
再次执行替换后的 exp
成功弹回了shell(这里不知道是什么原因,在执行python脚本后,MSF并没有弹回一个 meterpreter
的 shell
,重新 run 一次,就直接弹回来了)😊😊
0x03 防御方案
1) 及时更新微软针对该漏洞所发布的的修复补丁(KB4551762)
- ADV200005 | Microsoft Guidance for Disabling SMBv3 Compression
- March 12, 2020—KB4551762 (OS Builds 18362.720 and 18363.720)
2)在注册表中建立一个名为 DisableCompression 的 DWORD (值为1) ,以禁用SMBv3的压缩功能:
powershell
中键入
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 -Force
3)与应对WannaCry的方法一样,在边界防火墙对 TCP 445端口进行封堵
参考文献
干货分享丨SMBv3客户端RCE(CVE-2020-0796)最新利用方式
Metasploit系列 -- CVE-2020-0796(永恒之黑)getshell
SMBGhost_RCE_PoC