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

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

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

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

工具目录

分类

查看所有分类
Loading categories
PersistBOF — 一个用于自动化红队常见持久化任务的BOF | Kitploit
工具/GitHubGitHub/n4kedturtle/persistbof
权限提升Payload生成持久化机制后渗透利用红队
GitHubn4kedturtle/persistbof

PersistBOF

一个用于自动化红队常见持久化任务的BOF

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PersistBOF

一种帮助自动化常见持久化机制的工具。目前支持:打印监控器(SYSTEM)、时间提供者(Network Service)、启动文件夹快捷方式劫持(用户)、交接文件夹(用户)、Xll加载项(用户)。

使用方法

克隆仓库,运行 make,将 .cna 文件添加到 Cobalt Strike 客户端。

在 CS 控制台中运行:help persist-ice

语法:

  • persist-ice [PrintMon, TimeProv, Shortcut, Junction, Xll] [persist 或 clean] [arg1] [arg2]

技术概览

所有技术都依赖一个单独的 DLL 文件放置在磁盘上。该 DLL 有意不作为 BOF 的一部分包含在内。

Xll 加载项

创建包含导出函数 xlAutoOpen() 的 DLL。将 .dll 重命名为 .xll 并放置在 %appdata%\Microsoft\Addins 中。每次打开 Excel 时都会加载该加载项,且无任何通知。向注册表 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\{版本号}\Excel\Options 写入一个项,需要提供正确的版本号(可能存在多个版本)。

示例:

  • persist-ice Xll persist XllName.xll 16
  • persist-ice Xll clean XllName.xll 16 > 将删除注册表项并尝试删除 DLL。

打印监控器

在运行 BOF 之前,DLL 必须已放置在磁盘上且位于 PATH 路径(DLL 搜索顺序)中,否则会失败。DLL 会立即以 SYSTEM 权限由 spoolsv.exe 加载。这可用于从管理员权限提升到 SYSTEM 权限,也可用于持久化。系统启动时执行。必须以管理员权限运行。

  • 项目中包含演示打印监控器 DLL 的示例

示例:

  1. 将 NotMalware.dll 上传到 C:\Windows\NotMalware.dll
  2. persist-ice PrintMon persist TotesLegitMonitor NotMalware.dll
  3. 立即以 SYSTEM 权限执行
  4. 在删除前每次启动都会执行
  5. persist-ice PrintMon clean TotesLegitMonitor C:\Windows\NotMalware.dll > 将删除注册表项并卸载 DLL,如果提供了正确路径则尝试删除 DLL。应该能成功。

时间提供者

由 svchost.exe 以 NETWORK SERVICE 权限在运行 BOF 后启动时加载。必须以管理员权限运行。

  • 项目中包含演示时间提供者 DLL 的示例

示例:

  • persist-ice TimeProv persist TotesLegitTimeProvider C:\anywhere\NotMalware.dll
  • persist-ice TimeProv clean TotesLegitTimeProvider C:\anywhere\NotMalware.dll > 将删除注册表项,如果提供了正确路径则尝试删除 DLL。可能会失败,因为 DLL 未被进程卸载。

交接文件夹

与 Vault 7 泄露中展示的技术相同。用户登录时执行。无需管理员权限。DLL 将加载到 explorer.exe 中。

注意:这需要是一个 COM 服务器 DLL 才能正常运行。您可以根据需要从 DllRegisterServer、DllMain 或 DllGetClassObject 中执行代码。请确保实现其他必需的导出函数。

示例:

  • persist-ice Junction persist TotesLegitFolder C:\user-writeable-folder\NotMalware.dll 保存 CLSID
  • persist-ice Junction clean TotesLegitFolder C:\user-writeable-folder\NotMalware.dll 6be5e092-90cc-452d-be83-208029e259e0 > 将删除注册表项、交接文件夹并尝试删除 DLL。

启动文件夹劫持

创建一个新的、用户可写入的文件夹,将一个可被劫持的 Windows 二进制文件复制到该文件夹,然后在启动文件夹中创建一个快捷方式。用户登录时执行。无需管理员权限。

示例:

  • persist-ice Shortcut persist C:\TotesLegitFolder C:\Windows\System32\Dism.exe > 将您的 DLL 作为代理 DLL dismcore.dll 上传到 C:\TotesLegitFolder
  • persist-ice Shortcut clean C:\TotesLegitFolder C:\Windows\System32\Dism.exe > 将尝试删除新文件夹中的所有文件,然后删除该文件夹本身。如果 DLL 仍加载在进程中,则会失败。

参考

https://stmxcsr.com/persistence/print-monitor.html

https://stmxcsr.com/persistence/time-provider.html

https://pentestlab.blog/2019/10/28/persistence-port-monitors/

https://blog.f-secure.com/hunting-for-junction-folder-persistence/

https://attack.mitre.org/techniques/T1547/010/

https://attack.mitre.org/techniques/T1547/003/

https://attack.mitre.org/techniques/T1547/009/

下载工具