實驗環境:
靶機: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模組
漏洞簡單形成介紹:
該漏洞是Windows10在處理SMB 3.1.1協議的壓縮訊息時,對頭部資料沒有做任何安全檢查,直接使用,從而引發記憶體破壞漏洞,達到任意命令執行。
漏洞攻擊目標:
漏洞主要攻擊埠為445,但也會有其他觸發方式如,構造惡意的SMB伺服器並通過網頁、壓縮包、共享目錄、OFFICE文件等多種方式傳遞給目標使用者
當使用者開啟惡意檔案,無需開啟445埠就可以觸發漏洞
漏洞影響版本:
通過此漏洞獲取到的許可權為系統最高許可權
不影響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://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要一致)