擷取憑證
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”指令來清除事件日志: