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

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

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

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

工具目录

分类

查看所有分类
Loading categories
LibTP_Gadget — Crystal Palace 库,用于通过线程池代理 Nt API 调用。已针对调用 gadgets 进行更新。 | Kitploit
工具/GitHubGitHub/saerxcit/libtp_gadget
IDS/IPS规避后渗透利用红队Shellcode 生成Payload 开发对抗性攻击
GitHubsaerxcit/libtp_gadget

LibTP_Gadget

Crystal Palace 库,用于通过线程池代理 Nt API 调用。已针对调用 gadgets 进行更新。

查看仓库
2339个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

LibTP_Gadget

这是 https://github.com/AlmondOffSec/LibTPLoadLib 的泛化版本,用于代理具有任意数量(实际上最多 11 个,但已经够用)参数的 API。以 Crystal Palace 共享库的形式提供。API 与 @rasta-mouse 的 LibTP 兼容,方便通过 spec 文件切换。提供了一些钩子,用于展示最新的 Crystal Palace 特性。

警告 ⚠️ :本项目不能原样直接使用。我没有提供一个用于查找 call gadget 的模块。你需要自己寻找。阅读博客文章了解更多信息。

注意 :由于能够传递 11 个参数(其中 7 个会被压入栈),call gadget 必须位于具有足够大栈帧的函数中。寻找 add rsp 至少为 0x68 的代码。

警告 ⚠️ :由于此技术的内部工作原理,无法获取被代理函数的返回值。代理 NTAPI 通常更实用,因为它们的返回值“只是”NTSTATUS。不过这也使得难以判断函数是否真的成功执行了 🙃。

方法

  1. 在目标上可用的模块中找到一个可用的 gadget。在 src/tp_gadget.c 中,将其名称补丁到 LoadLibraryA 调用中,并修改 GetCallGadgetAddress 函数以获取其地址。如有必要,修补汇编存根(sub rsp 的值、gadget 将调用的寄存器)。

  2. 编译项目:make。输出为 Crystal Palace 共享库 libtp_gadget.x64.zip。

  3. 编译示例 COFF(该示例只会加载 wininet.dll,然后本地分配并执行 shellcode):make -C example_print。输出为 COFF 文件 example_print.x64.o。

  4. 创建一个 Crystal Palace spec 文件,指示链接器在 DFR 上使用我们的钩子:使用 Tradecraft Garden 的 Simple PIC spec 文件,并在 mergelib "../libtcg.x64.zip" 和 export 之间添加以下行:

root@kitploit:~
        mergelib "../libtp_gadget.x64.zip"

        attach "KERNEL32$LoadLibraryA"          "H_LoadLibraryA"
        optout "ProxyNtApi"                     "H_LoadLibraryA"
        attach "NTDLL$NtOpenProcess"            "H_NtOpenProcess"
        attach "NTDLL$NtAllocateVirtualMemory"  "H_NtAllocateVirtualMemory"
        attach "NTDLL$NtWriteVirtualMemory"     "H_NtWriteVirtualMemory"
        attach "NTDLL$NtProtectVirtualMemory"   "H_NtProtectVirtualMemory"
        attach "NTDLL$NtFreeVirtualMemory"      "H_NtFreeVirtualMemory"
        attach "NTDLL$NtClose"                  "H_NtClose"
        attach "NTDLL$NtCreateThreadEx"         "H_NtCreateThreadEx"
        attach "NTDLL$NtOpenThread"             "H_NtOpenThread"
        attach "NTDLL$NtSuspendThread"          "H_NtSuspendThread"
        attach "NTDLL$NtResumeThread"           "H_NtResumeThread"
        attach "NTDLL$NtGetContextThread"       "H_NtGetContextThread"
        attach "NTDLL$NtSetContextThread"       "H_NtSetContextThread"
        attach "NTDLL$NtWaitForSingleObject"    "H_NtWaitForSingleObject"
  1. 使用 Crystal Palace 链接整个工程以生成 PIC shellcode:path/to/crystalpalace/link simplepic_modified/loader.spec example_print/example_print.x64.o out.bin。

  2. 使用任意加载器运行 shellcode。

致谢

  • Raphael Mudge, Adversary Fan Fiction Writers Guild
  • Chetan Nayak, Dark Vortex
  • Daniel Duggan, Rasta Mouse
下载工具