Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
PPLdump — 通过用户态漏洞利用转储PPL的内存 | Kitploit
工具/GitHubGitHub/itm4n/ppldump
权限提升内存取证漏洞利用红队Payload 开发二进制利用Archived
GitHubitm4n/ppldump

PPLdump

通过用户态漏洞利用转储PPL的内存

查看仓库
893142334年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PPLdump

⚠️ 2022-07-24 - 自 Windows 10 21H2 10.0.19044.1826(2022年7月更新)起,PPLdump 中实现的利用方法__已不再有效__。NTDLL 中的一个补丁现在阻止 PPL 加载 已知 DLL。更多信息请参见此处。

本工具实现了一个 用户态 漏洞利用,最初由 James Forshaw(即 @tiraniddo)在这篇博文中讨论,用于以管理员身份 转储任意 PPL 的内存。

我撰写了两篇关于此工具的博文。第一部分介绍受保护进程的概念,第二部分讨论绕过技术本身。

  • 博文第一部分:你真的了解 LSA 保护 (RunAsPPL) 吗?
  • 博文第二部分:在用户态绕过 LSA 保护

用法

直接运行可执行文件,无需任何参数,即可获得详细的帮助/使用说明。

c:\Temp>PPLdump64.exe
 _____ _____ __      _
|  _  |  _  |  |   _| |_ _ _____ ___
|   __|   __|  |__| . | | |     | . |  version 0.4
|__|  |__|  |_____|___|___|_|_|_|  _|  by @itm4n
                                |_|

描述:
  通过用户态漏洞利用转储受保护进程轻量级(PPL)的内存

用法:
  PPLdump.exe [-v] [-d] [-f] <进程名|进程ID> <转储文件>

参数:
  进程名  要转储的进程名称
  进程ID  要转储的进程ID
  转储文件  输出转储文件的路径

选项:
  -v         (详细)  启用详细模式
  -d         (调试)  启用调试模式(隐含详细模式)
  -f         (强制)  绕过 DefineDosDevice 错误检查

示例:
  PPLdump.exe lsass.exe lsass.dmp
  PPLdump.exe -v 720 out.dmp

常见问题

它能在所有 Windows 版本上工作吗?

首先,PPL 是在 Windows 8.1 中引入的,因此旧版 Windows 显然不受支持。本项目主要针对 Windows 10(及其服务器版本),但我也在旧版本上测试过。您可以在同名部分找到我进行的测试汇总表。

它与其他工具有何不同?

其他 PPL 绕过工具通常通过数字签名的驱动程序在内核中执行任意代码。而本工具只涉及用户态技巧,并且(几乎)是没有实体文件的。

“用户态”,你说?!

本工具利用了一个非常巧妙的技巧,最初由 James Forshaw 在 2018 年提出(见致谢)。它涉及使用 DefineDosDevice API 函数来欺骗系统创建任意的已知 DLL 条目。由于 PPL 不检查已知 DLL 的数字签名,因此稍后可用于执行 DLL 劫持攻击,在 PPL 内部执行任意代码。

它真的是“没有实体文件”的吗?

虽然本工具在第二阶段执行 DLL 劫持攻击,但它不会在磁盘上创建新的 DLL 文件。相反,它利用 NTFS 事务来虚拟替换现有 DLL 的内容,这一技术直接受到 @_ForrestOrr 工作的启发(见致谢)。

此工具会导致拒绝服务(DoS)吗?

简短的回答是“不会”。首先,它不涉及直接内核访问,因此从这一点上看没有蓝屏死机的风险。在最坏的情况下,工具可能无法删除创建的已知 DLL 条目,但这不会导致拒绝服务。它只会保留到下次机器重启。由于创建的条目只是一个指向不存在的节的符号链接,系统最终会回退到默认位置(即 System32 文件夹),因此不会影响机器上运行的其他程序。

测试

Windows 版本内部版本号版本架构管理员SYSTEM
Windows 10 20H219042Prox64✔️✔️
Windows 10 20H219042Prox86✔️✔️
Windows 10 190918363Prox64✔️✔️
Windows 10 150710240教育版x64✔️✔️
Windows 10 150710240家庭版x64✔️✔️
Windows 10 150710240Prox64✔️✔️
Windows Server 201917763Standardx64✔️✔️
Windows Server 201917763Essentialsx64✔️✔️
Windows 8.19600Prox64⚠️⚠️
Windows Server 2012 R29600Standardx64⚠️⚠️

⚠️ 该漏洞在完全更新的 Windows 8.1 / Server 2012 R2 上失败。我仍需找出是哪个补丁导致了错误。

[-] DefineDosDevice failed with error code 6 - The handle is invalid.

⚠️ 在 Windows 8.1 / Server 2012 R2 上,您可能还需要静态编译二进制文件(见下方“构建说明”)。

构建说明

此 Visual Studio 解决方案包含两个项目(可执行文件和有效载荷 DLL),需要按特定顺序编译。所有内容均已预配置,因此您只需遵循以下简单说明。编译后的有效载荷 DLL 会自动嵌入到最终可执行文件中。

  1. 使用 Visual Studio 2019 打开解决方案。
  2. 根据目标机器架构选择 Release / x64 或 Release / x86。
  3. 生成 > 生成解决方案。

在 Windows 8.1 / Server 2012 R2 上,您可能需要静态编译二进制文件。

  1. 右键单击 PPLdump 项目。
  2. 转到 配置属性 > C/C++ > 代码生成。
  3. 选择 多线程 (/MT) 作为 运行库 选项。
  4. 生成解决方案。

致谢

  • @tiraniddo - Windows 漏洞利用技巧:利用任意对象目录创建进行本地权限提升
    https://googleprojectzero.blogspot.com/2018/08/windows-exploitation-tricks-exploiting.html
  • @_ForrestOrr - 掩盖恶意内存痕迹 – 第一部分:幻影 DLL 空心化
    https://www.forrest-orr.net/post/malicious-memory-artifacts-part-i-dll-hollowing
下载工具