獲取憑證
hashdump模塊(post)可以從SAM數據庫中導出本地用戶賬號,credential_collector腳本(post/windows/gather/credentials)也可以從目標設備中收集令牌信息。
腳本和post模塊都需要通過“run”命令執行,我在測試環境中運行hashdump模塊后的結果如下:
數據的輸出格式為:用戶名: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:在給定會話中執行進程
屏幕截圖
我們可以使用“screenshot”命令來進行屏幕截圖並存儲在我們的系統之中。
截取的效果如下所示:
創建一個新賬號
接下來,我們可以在目標系統中創建一個新的用戶賬號(getgui腳本,使用-u和-p參數),並給它分配管理員權限(使用),然后將其添加到”遠程桌面用戶”組中。
當然了,你也可以嘗試將這個新添加的用戶Hacker在Windows登錄界面中隱藏。
啟用遠程桌面(rdesktop 192.168.192.xxx)
當我們新添加的用戶已經擁有遠程桌面權限之后,我們就可以使用這個賬號憑證來開啟遠程桌面會話了。
首先,我們需要確保目標Windows設備開啟了遠程桌面功能(需要開啟多個服務),不過我們的getgui腳本可以幫我們搞定。我們可以使用-e參數確保目標設備開啟了遠程桌面功能(重啟之后同樣會自動開啟):
在開啟遠程桌面會話之前,我們還需要使用“idletime”命令檢查遠程用戶的空閑時長:
這樣可以降低你被發現的概率,因為當目標用戶登錄之后,它將會看到如下圖所示的信息:
下圖顯示的是攻擊者使用新創建的“Hacker”賬號連接到遠程桌面的畫面:
鍵盤記錄
Meterpreter還可以在目標設備上實現鍵盤記錄功能,鍵盤記錄主要涉及以下三種命令:
keyscan_start:開啟鍵盤記錄功能
keyscan_dump:顯示捕捉到的鍵盤記錄信息
keyscan_stop:停止鍵盤記錄功能
首先,我們需要啟動鍵盤記錄進程:
啟動之后,我們需要等待一段時間后再導出記錄信息:
不過在使用鍵盤記錄功能時,通常需要跟目標進程進行綁定,接下來我們介紹如何綁定進程。
綁定進程
Meterpreter既可以單獨運行,也可以與其他進程進行綁定。因此,我們可以讓Meterpreter與類似explorer.exe這樣的進程進行綁定,並以此來實現持久化。
在下面的例子中,我們會將Meterpreter跟winlogon.exe綁定,並在登錄進程中捕獲鍵盤記錄。
首先,我們需要使用“ps”命令查看目標設備中運行的進程:
接下來,使用“getpid”找出需要綁定的進程,接下來,使用migrate命令+pid來綁定進程。
綁定完成之后,我們就可以開始捕獲鍵盤數據了:
接下來,我們可以選擇導出鍵盤記錄,或者使用命令“enum_logged_on_users”來檢查用戶是否成功登錄:
等待片刻之后,使用keyscan_dump命令導出記錄信息:
捕捉到的用戶密碼為trustno1。
清除事件日志
完成攻擊操作之后,千萬別忘了“打掃戰場”。我們的所有操作都會被記錄在目標系統的日志文件之中,因此我們需要在完成攻擊之后使用命令“clearev”命令來清除事件日志: