手把手教你如何利用Meterpreter滲透Windows系統


在這篇文章中,我們將跟大家介紹如何使用Meterpreter來收集目標Windows系統中的信息,獲取用戶憑證,創建我們自己的賬號,啟用遠程桌面,進行屏幕截圖,以及獲取用戶鍵盤記錄等等。

手把手教你如何利用Meterpreter滲透Windows系統

相關Payload

Payload中包含有需要在遠程系統中運行的惡意代碼,而在Metasploit中Payload是一種特殊模塊,它們能夠以漏洞利用模塊運行,並能夠利用目標系統中的安全漏洞實施攻擊。簡而言之,這種漏洞利用模塊可以訪問目標系統,而其中的代碼定義了Payload在目標系統中的行為。

Metasploit中的Payload模塊主要有以下三種類型:

-Single

-Stager

-Stage

Single是一種完全獨立的Payload,而且使用起來就像運行calc.exe一樣簡單,例如添加一個系統用戶或刪除一份文件。由於Single Payload是完全獨立的,因此它們有可能會被類似netcat這樣的非metasploit處理工具所捕捉到。

Stager這種Payload負責建立目標用戶與攻擊者之間的網絡連接,並下載額外的組件或應用程序。一種常見的Stagers Payload就是reverse_tcp,它可以讓目標系統與攻擊者建立一條tcp連接。另一種常見的是bind_tcp,它可以讓目標系統開啟一個tcp監聽器,而攻擊者隨時可以與目標系統進行通信。

Stage是Stager Payload下載的一種Payload組件,這種Payload可以提供更加高級的功能,而且沒有大小限制。

在Metasploit中,我們可以通過Payload的名稱和使用格式來推斷它的類型:

 

Single Payload的格式為<target>/ <single> Stager/Stage Payload的格式為<target>/ <stage> / <stager>

 

當我們在Metasploit中執行“show payloads”命令之后,它會給我們顯示一個可使用的Payload列表:

手把手教你如何利用Meterpreter滲透Windows系統

在這個列表中,windows/powershell_bind_tcp就是一個Single Payload,它不包含Stage Payload。而windows/x64/meterpreter/reverse_tcp則由一個Stager Payload(reverse_tcp)和一個Stage Payload(meterpreter)組成。

Meterpreter是什么?

在Metasploit Framework中,Meterpreter是一種后滲透工具,它屬於一種在運行過程中可通過網絡進行功能擴展的動態可擴展型Payload。這種工具是基於“內存DLL注入”理念實現的,它能夠通過創建一個新進程並調用注入的DLL來讓目標系統運行注入的DLL文件。

其中,攻擊者與目標設備中Meterpreter的通信是通過Stager套接字實現的。

部署Meterpreter

在這里,我們選擇使用reverse_tcp(windows/x64/meterpreter/reverse_tcp)來作為Stager,配置和運行情況如下圖所示:

手把手教你如何利用Meterpreter滲透Windows系統

注意:運行了exploit命令之后,我們開啟了一個reverseTCP處理器來監聽192.168.198.196:4444,即我(攻擊者)的本地主機地址(LHOST)和端口號(LPORT)。運行成功之后,我們將會看到命令提示符meterpreter >出現。

接下來,我們就可以開始“做事”了。

訪問文件系統

Meterpreter支持非常多的文件系統命令(基本跟Linux系統命令類似),一些常用命令如下:

cd:切換目標目錄;

cat:讀取文件內容;

del:刪除文件;

edit:使用vim編輯文件

ls:獲取當前目錄下的文件;

mkdir:新建目錄;

rmdir:刪除目錄;

手把手教你如何利用Meterpreter滲透Windows系統

上傳/下載文件

“download”命令可以幫助我們從目標系統中下載文件,“upload”命令則能夠向目標系統上傳文件。

“download”命令的使用樣例如下所示:

手把手教你如何利用Meterpreter滲透Windows系統

權限提升

有的時候,你可能會發現自己的Meterpreter會話受到了用戶權限的限制,而這將會嚴重影響你在目標系統中的活動。比如說,修改注冊表、安裝后門或導出密碼等活動都需要提升用戶權限,而Meterpreter給我們提供了一個“getsystem”命令,它可以使用多種技術在目標系統中實現提權:

手把手教你如何利用Meterpreter滲透Windows系統

“getuid”命令可以獲取當前用戶的信息,在上面的例子中,用戶為“NT AUTHORITY\SYSTEM”,這個就是Windows本地系統賬號。

獲取憑證

hashdump模塊(post)可以從SAM數據庫中導出本地用戶賬號,credential_collector腳本(post/windows/gather/credentials)也可以從目標設備中收集令牌信息。

腳本和post模塊都需要通過“run”命令執行,我在測試環境中運行hashdump模塊后的結果如下:

手把手教你如何利用Meterpreter滲透Windows系統

數據的輸出格式為:用戶名:SID:LM哈希:NTLM哈希:::,所以我們得到了三個用戶賬號,分別為Administrator, Guest和Coen。

其中的LM哈希(aad3b435b51404eeaad3b435b51404ee)跟NTLM哈希(31d6cfe0d16ae931b73c59d7e0c089c0)對應的是一個空密碼。

接下來要處理的就是用戶Coen的密碼(f773c5db7ddebefa4b0dae7ee8c50aea)了。雖然我們可以使用類似John the Ripper這樣的工具來破解密碼,但是我們直接Google這個哈希之后,就直接得到了密碼明文trustno1

運行程序

我們還可以使用“execute”命令在目標系統中執行應用程序。這個命令的使用方法如下:

 

execute -f<file> [Options]

 

運行后它將執行file參數所指定的文件。可選參數如下:

-H:創建一個隱藏進程

-a:傳遞給命令的參數

-i:跟進程進行交互

-m:從內存中執行

-t:使用當前偽造的線程令牌運行進程

-s:在給定會話中執行進程

手把手教你如何利用Meterpreter滲透Windows系統

屏幕截圖

我們可以使用“screenshot”命令來進行屏幕截圖並存儲在我們的系統之中。

手把手教你如何利用Meterpreter滲透Windows系統

截取的效果如下所示:

手把手教你如何利用Meterpreter滲透Windows系統

創建一個新賬號

接下來,我們可以在目標系統中創建一個新的用戶賬號(getgui腳本,使用-u和-p參數),並給它分配管理員權限(使用),然后將其添加到”遠程桌面用戶”組中。

手把手教你如何利用Meterpreter滲透Windows系統

手把手教你如何利用Meterpreter滲透Windows系統

當然了,你也可以嘗試將這個新添加的用戶Hacker在Windows登錄界面中隱藏。

啟用遠程桌面

當我們新添加的用戶已經擁有遠程桌面權限之后,我們就可以使用這個賬號憑證來開啟遠程桌面會話了。

首先,我們需要確保目標Windows設備開啟了遠程桌面功能(需要開啟多個服務),不過我們的getgui腳本可以幫我們搞定。我們可以使用-e參數確保目標設備開啟了遠程桌面功能(重啟之后同樣會自動開啟):

手把手教你如何利用Meterpreter滲透Windows系統

在開啟遠程桌面會話之前,我們還需要使用“idletime”命令檢查遠程用戶的空閑時長:

手把手教你如何利用Meterpreter滲透Windows系統

這樣可以降低你被發現的概率,因為當目標用戶登錄之后,它將會看到如下圖所示的信息:

手把手教你如何利用Meterpreter滲透Windows系統

下圖顯示的是攻擊者使用新創建的“Hacker”賬號連接到遠程桌面的畫面:

手把手教你如何利用Meterpreter滲透Windows系統

鍵盤記錄

Meterpreter還可以在目標設備上實現鍵盤記錄功能,鍵盤記錄主要涉及以下三種命令:

keyscan_start:開啟鍵盤記錄功能

keyscan_dump:顯示捕捉到的鍵盤記錄信息

keyscan_stop:停止鍵盤記錄功能

首先,我們需要啟動鍵盤記錄進程:

手把手教你如何利用Meterpreter滲透Windows系統

啟動之后,我們需要等待一段時間后再導出記錄信息:

手把手教你如何利用Meterpreter滲透Windows系統

不過在使用鍵盤記錄功能時,通常需要跟目標進程進行綁定,接下來我們介紹如何綁定進程。

綁定進程

Meterpreter既可以單獨運行,也可以與其他進程進行綁定。因此,我們可以讓Meterpreter與類似explorer.exe這樣的進程進行綁定,並以此來實現持久化。

在下面的例子中,我們會將Meterpreter跟winlogon.exe綁定,並在登錄進程中捕獲鍵盤記錄。

首先,我們需要使用“ps”命令查看目標設備中運行的進程:

手把手教你如何利用Meterpreter滲透Windows系統

接下來,使用“getpid”找出需要綁定的進程,接下來,使用migrate命令+pid來綁定進程。

手把手教你如何利用Meterpreter滲透Windows系統

綁定完成之后,我們就可以開始捕獲鍵盤數據了:

手把手教你如何利用Meterpreter滲透Windows系統

接下來,我們可以選擇導出鍵盤記錄,或者使用命令“enum_logged_on_users”來檢查用戶是否成功登錄:

手把手教你如何利用Meterpreter滲透Windows系統

等待片刻之后,使用keyscan_dump命令導出記錄信息:

手把手教你如何利用Meterpreter滲透Windows系統

捕捉到的用戶密碼為trustno1。

清除事件日志

完成攻擊操作之后,千萬別忘了“打掃戰場”。我們的所有操作都會被記錄在目標系統的日志文件之中,因此我們需要在完成攻擊之后使用命令“clearev”命令來清除事件日志:

手把手教你如何利用Meterpreter滲透Windows系統

總結

當然了,Meterpreter的功能還遠不止如此,本文介紹的內容僅僅是冰山一角,感興趣的同學可以利用搜索引擎來了解更多的相關知識。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM