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

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

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

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

工具目录

分类

查看所有分类
Loading categories
Remote-BOF-Runner — Remote BOF Runner 是一个 Havoc 扩展框架,用于使用 Crystal Palace 构建的 PIC 加载器远程执行 Beacon Object Files (BOF)。 | Kitploit
工具/GitHubGitHub/pard0p/remote-bof-runner
渗透测试框架权限提升漏洞利用框架横向移动Shellcode后渗透利用命令与控制学习与教育红队Payload 开发二进制利用
GitHub
10257个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
pard0p/remote-bof-runner

Remote-BOF-Runner

Remote BOF Runner 是一个 Havoc 扩展框架,用于使用 Crystal Palace 构建的 PIC 加载器远程执行 Beacon Object Files (BOF)。

查看仓库

远程BOF运行器

一个Havoc扩展框架,用于通过使用Crystal Palace制作的PIC加载器远程执行Beacon对象文件(BOF)。

概述

远程BOF运行器通过利用Crystal Palace PIC加载器,能够在任意进程中安全执行BOF。该框架通过命名管道实现复杂的进程间通信(IPC)机制,将注入进程中的Beacon输出透明地转发回命令与控制(C2)服务器。

设置与安装

扩展安装

确保扩展安装在Havoc扩展目录中:

root@kitploit:~
你的HAVOC文件夹 + /data/extensions/

依赖项

要编译PIC加载器,系统上必须安装以下工具和库:

  • MinGW-w64:用于Windows目标的交叉编译器
  • Make:构建自动化工具
  • OpenJDK 11:Java开发工具包(Crystal Palace编译所需)
  • Zip:压缩工具

详细设置说明,请参考WSL设置指南。

安装命令

root@kitploit:~
sudo apt-get update
sudo apt-get install mingw-w64
sudo apt-get install make
sudo apt-get install openjdk-11-jdk
sudo apt-get install zip

架构

组件

1. BOF注入器

BOF组件负责:

  • 创建并挂起一个虚拟进程。
  • 将Crystal Palace加载器 + 目标BOF注入到虚拟进程中。
  • 建立用于输出通信的IPC通道(命名管道)。
  • 接收并聚合远程BOF执行的输出。

2. PIC加载器 (Crystal Palace)

PIC加载器包含:

  • Crystal Palace加载器:处理内存分配、BSS段管理以及安全执行上下文的初始化。
  • 远程BOF载荷:要执行的实际BOF代码(whoami、ipconfig、cacls、reg-query等)。
  • 参数编组:通过加载器传递的序列化参数,用于远程BOF执行。

执行流程

root@kitploit:~
┌───────────────────────────────────────────────────────────────────┐
│ 1. Beacon进程 (Havoc)                                             │
│    ├─ 执行BOF注入器                                               │
│    ├─ 创建虚拟进程(挂起)                                        │
│    ├─ 注入PIC加载器 + 远程BOF                                     │
│    └─ 创建IPC命名管道                                             │
└────────────┬──────────────────────────────────────────────────────┘
             │
             ▼
┌───────────────────────────────────────────────────────────────────┐
│ 2. PIC加载器执行                                                  │
│    ├─ Crystal Palace加载器                                        │
│    ├─ 执行BSS段分配                                               │
│    ├─ 初始化UI上下文(用于.NET兼容性)                            │
│    └─ 挂钩Beacon函数(BeaconPrintf、BeaconOutput等)               │
└────────────┬──────────────────────────────────────────────────────┘
             │
             ▼
┌───────────────────────────────────────────────────────────────────┐
│ 3. 远程BOF执行                                                    │
│    ├─ 执行目标BOF(whoami、ipconfig等)                           │
│    ├─ BOF调用被挂钩的Beacon函数                                   │
│    ├─ 挂钩函数将输出重定向到IPC管道                               │
│    └─ 输出通过管道在Beacon进程中累积                              │
└────────────┬──────────────────────────────────────────────────────┘
             │
             ▼
┌───────────────────────────────────────────────────────────────────┐
│ 4. 输出收集与传输                                                 │
│    ├─ Beacon等待远程进程终止                                      │
│    ├─ 从IPC管道累积所有输出                                       │
│    ├─ 聚合分片消息(8KB缓冲区)                                   │
│    ├─ 过滤协议分隔符(@START@, @END@)                            │
│    └─ 将合并后的输出发送到团队服务器                              │
└───────────────────────────────────────────────────────────────────┘

关键特性

1. 进程隔离

  • BOF执行发生在独立的隔离进程中。
  • 将影响Beacon进程稳定性的风险降至最低。
  • 支持在任意进程上下文中执行。

2. IPC输出转发

  • 基于命名管道的通信通道。
  • 从远程BOF透明地重定向输出。
  • 消息分片处理(8KB累积缓冲区)。
  • 协议分隔符过滤。

3. .NET进程执行

主要用例是在原生.NET进程中执行BOF:

为什么直接在Beacon中加载CLR存在风险: 在Beacon进程中直接加载.NET程序集本质上是危险且可被检测的:

  • Beacon进程(通常是原生二进制文件,如cmd.exe或rundll32.exe)通常不会启动CLR。
  • 当CLR被加载到非.NET进程中时,应立即触发EDR/XDR警报。

一个可能的解决方案:原生.NET进程注入: 与其在Beacon中加载CLR,不如将我们的inline-execute-assembly BOF注入到一个已经是.NET原生的进程中:

root@kitploit:~
// ❌ 可被检测:直接在Beacon中执行
beacon.exe(原生)→ 加载ClrCreateInstance → 加载.NET程序集 → EDR警报

// ✅ 隐蔽:在原生.NET进程中执行
dotnet.exe(原生.NET)→ 注入BOF → inline-execute-assembly → 
在已有CLR上下文中执行.NET程序集 → 正常行为

这种方法利用了以下事实:在.NET进程中执行.NET代码与正常应用程序行为难以区分。

4. Crystal Palace集成

  • 位置无关代码执行。
  • 通过基于哈希的函数查找实现动态API解析。
  • 无导入地址表依赖。
  • 适用于深度注入场景。

执行模式

本地执行

root@kitploit:~
remote-bof-runner whoami
remote-bof-runner ipconfig
remote-bof-runner cacls C:\Windows\System32

远程主机执行

root@kitploit:~
remote-bof-runner reg-query DC01 HKLM SYSTEM\CurrentControlSet

注册表查询

root@kitploit:~
remote-bof-runner reg-query HKLM SYSTEM\CurrentControlSet\Control\Lsa
remote-bof-runner reg-query HKLM SYSTEM\CurrentControlSet\Control\Lsa RunAsPPL

.NET程序集执行

root@kitploit:~
remote-bof-runner execute-assembly --dotnetassembly "/Payloads/Rubeus.exe" --assemblyargs "triage"

示例输出:

execute-assembly

可用BOF

  • whoami - 显示当前用户和组信息(CS-Situational-Awareness-BOF)。
  • ipconfig - 显示网络适配器配置(CS-Situational-Awareness-BOF)。
  • cacls - 列出文件权限(CS-Situational-Awareness-BOF)。
  • reg-query - 查询Windows注册表(CS-Situational-Awareness-BOF)。
  • execute-assembly - 将.NET程序集加载到实际进程中(https://github.com/VoldeSec/PatchlessInlineExecute-Assembly)。
  • bof - 执行自定义BOF二进制文件。

操作安全注意事项

⚠️ 重要:该项目是一个概念验证,默认情况下不优先考虑OPSEC。

建议的修改

BOF注入器和PIC加载器都需要针对对抗模拟进行显著加固:

BOF注入器加固

  • 实现自定义的进程创建方法(而非CreateProcessW)。
  • 使用超越标准WriteProcessMemory的替代注入技术。
  • 混淆IPC管道命名(随机化标识符)。

PIC加载器加固

  • 加密通信协议(管道消息)。
  • 实现对已知签名的YARA规则规避。
  • 添加规避进程挂钩的方法(间接系统调用、解除挂钩方法等)。
  • 添加加密方法以存储目标BOF + 参数。

参考资料

  • Crystal Palace
  • LibIPC - Crystal Palace共享库,用于基于命名管道的进程间通信。
  • PatchlessInlineExecute-Assembly - 用于在进程中加载.NET程序集的BOF InlineExecute-Assembly,采用无补丁的AMSI和ETW绕过(硬件断点)。
  • CS-Situational-Awareness-BOF - 使用Beacon对象文件实现的情境感知命令。

免责声明

本工具仅用于教育目的和授权的安全测试。未经授权访问计算机系统是非法的。用户有责任确保遵守所有适用的法律法规。

下载工具