[永恒之黑]CVE-2020-0796(漏洞复现)
实验环境:
靶机:windows10 1903 专业版
攻击机:kali 2020.3
VMware:vmware14
实验工具:
Python 3.8.5
msfconsole
实验PROC:
靶机镜像:ed2k://|file|cn_windows_10_business_editions_version_1903_x64_dvd_e001dd2c.iso|4815527936|47D4C57E638DF8BF74C59261E2CE702D|/
检测漏洞poc:https://github.com/ollypwn/SMBGhost
蓝屏proc:https://github.com/chompie1337/SMBGhost_RCE_PoC
实验前提:
靶机关闭防火墙
靶机安装完毕后注意创建快照
pip安装netaddr模块
漏洞介绍:(内容来自腾讯安全 https://s.tencent.com/research/bsafe/912.html)
该漏洞是Windows10在处理SMB 3.1.1协议的压缩消息时,对头部数据没有做任何安全检查,直接使用,从而引发内存破坏漏洞,达到任意命令执行。
漏洞目标:(内容来自腾讯安全 https://s.tencent.com/research/bsafe/912.html)
漏洞主要攻击端口为445,但也会有其他触发方式如,构造恶意的SMB服务器并通过网页、压缩包、共享目录、OFFICE文档等多种方式传递给目标用户
当用户打开恶意文件,无需开启445端口就可以触发漏洞
漏洞影响:(内容来自腾讯安全 https://guanjia.qq.com/avast/984/index.html)
通过此漏洞获取到的权限为系统最高权限
不影响win7,影响Windows 10 1903之后的各个32位、64位版Windows,包括家用版、专业版、企业版、教育版。
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)
漏洞复现:
首先判断是否存在漏洞
打开SMBGhost,利用scanner.py检测是否存在漏洞
CMD输入命令 python.exe scanner.py 192.168.1.140
出现 Vulnerable 则表示成功
打开SMBGhost_RCE_PoC文件夹通过exploit.py文件进行蓝屏攻击
输入命令 python.exe exploit.py -ip [IP]
出现以下回显表示攻击成功
如果没有成功可以进行多次尝试
多次失败可以尝试恢复快照
接着返回虚拟机发现已经蓝屏
靶机恢复快照
获取shell攻击
尝试使用exp反弹shell,打开kali虚拟机
通过msfvenom命令生成payload
执行完毕后会在当前工作目录下生成exploit文件
通过cat查看文件可以看到里面是定义了一个名为buf的变量并把payload赋值给buf
打开github下载的PROC文件夹
并把exploit.py文件里面USER_PAYLOAD的值替换为buf值
kali进入msf输入命令
注意: lport 要和msfvenom生成的payload保持一致
use exploit/multi/handler set payload windows/x64/meterpreter/bind_tcp set lport 8888 set rhost 192.168.1.140 run
启动监听,并等待再次攻击
之后再次运行替换过buf的exploit
如果不成功可以多次尝试或恢复快照
运行成功后返回kali
可以看到攻击成功
防御手段: (参考 https://www.cnblogs.com/kbhome/p/13073746.html)
打补丁:
https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-0796 (windows官方补丁)
禁用SMBv3压缩:
禁用SMB 3.0的压缩功能,是否使用需要结合自己业务进行判断。
使用以下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
注:利用以上命令进行更改后,无需重启即可生效;该方法仅可用来防护针对SMB服务器(SMB SERVER)的攻击,无法对SMB客户端(SMB Client)进行防护。
设置防火墙策略关闭相关端口:
SMB的TCP 445端口
NetBIOS名称解析的UDP 137端口
NetBIOS数据图服务的UDP 138端口
NetBIOS会话服务的TCP 139端口
通过IP安全策略屏蔽危险端口,bat执行添加防火墙策略,关闭危险服务:
http://www.piis.cn/news/new1614.asp
总结:
这次实验参考的比较多
https://blog.csdn.net/weixin_45006525/article/details/106553519 (主要攻击手段参考
https://guanjia.qq.com/avast/984/index.html (漏洞版本参考
https://s.tencent.com/research/bsafe/912.html (漏洞基本消息参考
https://www.cnblogs.com/kbhome/p/13073746.html (防御手段参考
攻击整体思路,通过445端口进行攻击,利用proc和msf攻击靶机并反弹shell,kali监听反弹的shell(注意反弹监听的shell要一致)