freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

PPLcontrol:一款功能强大的受保护进程安全控制工具
2023-08-24 21:30:27


关于PPLcontrol

PPLcontrol是一款功能强大的受保护进程安全控制工具,在该工具的帮助下,广大研究人员可以快速枚举出目标操作系统中受保护的进程,并获取指定进程的保护级别,或给目标进程设置任意保护级别。

工具下载

该工具基于C++开发,因此我们首先需要在本地设备上完成C++环境及代码构建工具的安装与配置,例如Visual Studio等。

广大研究人员可以使用下列命令将该项目源码克隆至本地,并手动完成代码构建:

git clone https://github.com/itm4n/PPLcontrol.git

代码构建

1、在Visual Studio中打开工具的解决方案.sln文件;

2、选择Release/x64(该工具不支持x86);

3、构建当前解决方案即可;

工具使用

1、下载MSI驱动程序

我们可以点击【这里】获取MSI驱动程序RTCore64.sys文件。

2、安装MSI驱动程序

注意事项:千万不要直接在你自己的本地主机中安装该驱动程序,请一定要使用虚拟机!!!

sc.exe create RTCore64 type= kernel start= auto binPath= C:\PATH\TO\RTCore64.sys DisplayName= "Micro - Star MSI Afterburner"

net start RTCore64

3、使用PPLcontrol

枚举受保护的进程:

PPLcontrol.exe list

获取指定进程的保护级别:

PPLcontrol.exe get 1234

给目标进程设置任意保护级别:

PPLcontrol.exe set 1234 PPL WinTcb

保护一个未受保护的进程,并设置任意保护级别。此时将会自动调整相应的签名等级:

PPLcontrol.exe protect 1234 PPL WinTcb

让一个受保护进程取消保护,此时会将保护级别设置为0,并将EXE/DLL签名等级设置为0:

PPLcontrol.exe unprotect 1234

4、卸载驱动程序

net stop RTCore64

sc.exe delete RTCore64

工具使用样例

使用WinDbg调试一个受保护进程

WinDbg只需要打开目标进程,因此我们可以使用PPLcontrol来给windbg.exe进程设置任意的保护级别:

1、获取windbg.exe进程的进程ID,即PID;

2、使用PPLcontrol设置任意保护级别;

C:\Temp>tasklist | findstr /i windbg

windbg.exe                    1232 Console                    1     24,840 K

C:\Temp>PPLcontrol.exe protect 1232 PPL WinTcb

[+] The Protection 'PPL-WinTcb' was set on the process with PID 1232, previous protection was: 'None-None'.

[+] The Signature level 'WindowsTcb' and the Section signature level 'Windows' were set on the process with PID 1232.

使用API Monitor(API监控工具)审查一个受保护的进程

除了打开目标进程外,API Monitor还会向其中注入DLL。因此,在apimonitor.exe进程上设置任意保护级别是不够的。由于注入的DLL没有正确的签名,因此目标进程的Section签名标志可能会阻止加载它。但是,我们可以暂时禁用目标进程上的保护,然后在监控完成后恢复保护即可。

Failed to load module in target process - Error: 577, Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source.

1、获取目标进程的进程ID,即PID;

2、使用PPLcontrol获取目标进程的保护级别;

3、取消进程保护;

4、使用API Monitor对进程执行监控;

5、恢复目标进程的保护;

C:\Temp>tasklist | findstr /i target

target.exe                    1337 Services                   1     14,160 K

C:\Temp>PPLcontrol.exe get 1337

[+] The process with PID 1337 is a PPL with the Signer type 'WinTcb' (6).

C:\Temp>PPLcontrol.exe unprotect 1337

[+] The process with PID 1337 is no longer a PP(L).

 

C:\Temp>PPLcontrol.exe protect 1337 PPL WinTcb

[+] The Protection 'PPL-WinTcb' was set on the process with PID 1337, previous protection was: 'None-None'.

[+] The Signature level 'WindowsTcb' and the Section signature level 'Windows' were set on the process with PID 1337.

项目地址

PPLcontrol:【GitHub传送门

参考资料

https://itm4n.github.io/debugging-protected-processes/

https://github.com/RedCursorSecurityConsulting/PPLKiller/tree/master/driver

# 系统安全 # 进程保护 # Windows系统安全 # 进程安全 # 安全控制
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录