Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
TrollDump — 通过 SetWindowsHook 将 x64 托管 DLL 注入 GUI 进程,配备模块化 C# 载荷运行器,并提供 LSASS 转储 POC,用于红队/进攻性 Windows 测试。 | Kitploit
工具/GitHubGitHub/cybersectroll/trolldump
权限提升后渗透利用红队Payload 开发
GitHubcybersectroll/trolldump

TrollDump

通过 SetWindowsHook 将 x64 托管 DLL 注入 GUI 进程,配备模块化 C# 载荷运行器,并提供 LSASS 转储 POC,用于红队/进攻性 Windows 测试。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

TrollDump

  • 使用 setwindowshook 将 x64 托管 DLL 注入 x64 托管/非托管进程(进程必须具有 GUI,因为我们需要获取其窗口句柄)
  • 在这里,作为 TROLL(恶搞),我们注入到隐藏窗口的 taskmgr 进程中,以 不被检测 的方式执行 lsass dump(请参阅下方的“测试用例”部分)
  • 注入器 DLL 与被注入的 DLL 是同一个 DLL,因此无需额外的 DLL
  • 目标进程的完整性级别必须与注入器进程相同或更低

致谢(项目的升级/重写)

原始项目:https://github.com/enkomio/ManagedInjector

  • 将代码移植为可注入 64 位二进制程序 ---> 原始项目只允许将 DLL 注入 32 位二进制程序
  • 移除了 IPC 逻辑,因为它过于繁重
  • 创建了样板代码,让你可以直接在 RunOnRemoteProcess() 函数中运行你的 payload,取代之前复杂曲折的方式
  • 项目仍然使用 DLLExport 来让 .NET DLL 导出函数
    • 注意:这不是项目的依赖项,而更像是一种后处理。DLLExport 会修改你最终的 .NET DLL,使其导出一个函数。
    • 如果你愿意,也可以手动完成函数导出:https://blog.xpnsec.com/rundll32-your-dotnet/

编译

  • 下载项目,并按 X64、Release 编译解决方案
  • 无需外部依赖

用法

root@kitploit:~
> Requires High Integrity depending on use case
> [System.Reflection.Assembly]::LoadFrom("C:\Users\public\TrollDump.dll")
> [TrollDump.ForFun]::Main("C:\windows\system32\taskmgr.exe")
  • 在这个 POC 中,我们执行 lsass dump;你可以通过修改 RunOnRemoteProcess() 函数并重新编译,来运行任何你想要的“DLL 导出函数逻辑”。
  • 如前所述,该代码是 DLL 注入的样板代码,之后你想做什么都可以方便地用 C# 托管代码编写。

测试用例

  • Win 2019 build 17763.737,带有最新的 Windows Defender 补丁
    • DLL 注入和 lsass dump 均成功
  • 其他杀毒软件(未具名)
    • DLL 注入正常工作
    • 显然,lsass dump 是否成功取决于杀毒软件是否允许 taskmgr 转储 lsass
  • 未在任何 EDR 上测试 -> 我怀疑 DLL 注入在特定 EDR 上仍然有效

OPSEC

  • DLL 必须落在磁盘上,因此应该进行混淆
  • DLL 只应用于执行注入,实际 payload 绝不应嵌入 DLL 中,而应进行反射加载
  • 显然,将 CLR 注入非托管进程很可疑,但又能怎样!
  • setwindowshook 虽然是经典技术,但通常与键盘记录(keylogging)联系在一起,而我们的用例并非如此
  • 你可以对想注入的任何 GUI 进程发挥极大的创意(如果以系统身份运行,还可以注入 dwm.exe)

愿望清单 - 这个项目是在周末完成的,我没有时间/打算去实现以下内容:

  • 注入无 GUI 的进程
    • 目前 setwindowshook 使用 WH_CALLWNDPROC,你可以将其修改为使用 WH_GETMESSAGE,但目标进程必须运行消息循环(GetMessage())
    • 如果你能找到实现了消息循环的非 GUI 二进制程序(我怀疑不太可能),那么你也可以注入无 GUI 的二进制程序
    • GUI 进程通常都会运行 GetMessage()
  • 完全反射加载且无需落盘
    • 基于 setwindowshook,似乎 DLL 必须落盘?
    • 我尝试使用 C# 委托传递函数指针来运行,而不是使用导出的 DLL 函数,但没有成功(这是针对本地进程的经典 C# 键盘记录技术,但我们做的是远程进程)
    • 你可以结合其他技术试试,我认为这是可行的
  • 即使我们当前进程是 Medium,taskmgr 也会自动以 High Integrity 启动(所以从技术上讲,如果我们向它注入 DLL,就是一种 UAC 绕过)
    • 根据 WIN API 返回结果,注入似乎正常工作
      • 尽管 sendMessage() 成功返回,消息仍被静默丢弃。此处有解释:https://stackoverflow.com/questions/40122964/cross-process-postmessage-uipi-restrictions-and-uiaccess-true
    • 然而,taskmgr 未能调用导出的函数

免责声明

仅应出于教育目的使用!

下载工具