
Remote BOF Runner es un marco de extensión de Havoc para la ejecución remota de Beacon Object Files (BOFs) utilizando un cargador PIC creado con Crystal Palace.
Un framework de extensión de Havoc para ejecución remota de Beacon Object Files (BOFs) utilizando un cargador PIC hecho con Crystal Palace.
Remote BOF Runner permite la ejecución segura de BOFs en procesos arbitrarios aprovechando el cargador PIC de Crystal Palace. Este framework implementa un sofisticado mecanismo de comunicación entre procesos (IPC) a través de tuberías con nombre para reenviar de forma transparente la salida del beacon desde procesos inyectados de vuelta al servidor de comando y control (C2).
Asegúrese de que la extensión esté instalada en el directorio de extensiones de Havoc:
YOUR_HAVOC_FOLDER + /data/extensions/
Para compilar el cargador PIC, las siguientes herramientas y bibliotecas deben estar instaladas en su sistema:
Para instrucciones detalladas de configuración, consulte la Guía de configuración de WSL.
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
El componente BOF es responsable de:
El cargador PIC consta de:
┌───────────────────────────────────────────────────────────────────┐
│ 1. Beacon Process (Havoc) │
│ ├─ Execute BOF Injector │
│ ├─ Create dummy process (suspended) │
│ ├─ Inject PIC Loader + Remote BOF │
│ └─ Create IPC named pipe │
└────────────┬──────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────┐
│ 2. PIC Loader Execution │
│ ├─ Crystal Palace loader │
│ ├─ Performs BSS section allocation │
│ ├─ Initializes UI context (for .NET compatibility) │
│ └─ Hooks beacon functions (BeaconPrintf, BeaconOutput, etc.) │
└────────────┬──────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────┐
│ 3. Remote BOF Execution │
│ ├─ Execute target BOF (whoami, ipconfig, etc.) │
│ ├─ BOF calls hooked beacon functions │
│ ├─ Hooked functions redirect output to IPC pipe │
│ └─ Output accumulates in beacon process via pipe │
└────────────┬──────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────┐
│ 4. Output Collection & Transmission │
│ ├─ Beacon waits for remote process termination │
│ ├─ Accumulates all output from IPC pipe │
│ ├─ Aggregates fragmented messages (8KB buffer) │
│ ├─ Filters protocol delimiters (@START@, @END@) │
│ └─ Transmits consolidated output to Team Server │
└───────────────────────────────────────────────────────────────────┘
El caso de uso principal es ejecutar BOFs en procesos .NET nativos:
Por qué es riesgosa la carga directa de CLR en Beacon: Cargar ensamblados .NET directamente en el proceso beacon es inherentemente inseguro y detectable:
Una posible solución: Inyección en proceso .NET nativo: En lugar de cargar CLR en el beacon, inyectamos y ejecutamos nuestro BOF inline-execute-assembly en un proceso que ya es nativo .NET:
// ❌ DETECTABLE: Ejecución directa en beacon
beacon.exe (native) → load ClrCreateInstance → load .NET assembly → EDR ALERT
// ✅ STEALTHY: Ejecución en proceso .NET nativo
dotnet.exe (native .NET) → inject BOF → inline-execute-assembly →
ejecutar ensamblado .NET en contexto CLR ya cargado → comportamiento normal
Este enfoque aprovecha el hecho de que ejecutar .NET dentro de un proceso .NET es indistinguible del comportamiento normal de la aplicación.
remote-bof-runner whoami
remote-bof-runner ipconfig
remote-bof-runner cacls C:\Windows\System32
remote-bof-runner reg-query DC01 HKLM SYSTEM\CurrentControlSet
remote-bof-runner reg-query HKLM SYSTEM\CurrentControlSet\Control\Lsa
remote-bof-runner reg-query HKLM SYSTEM\CurrentControlSet\Control\Lsa RunAsPPL
remote-bof-runner execute-assembly --dotnetassembly "/Payloads/Rubeus.exe" --assemblyargs "triage"
Ejemplo de salida:

⚠️ Importante: Este proyecto es una Prueba de Concepto y NO prioriza OPSEC por defecto.
Tanto el Inyector de BOF como el Cargador PIC requieren un endurecimiento significativo para simulaciones de adversarios:
Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas. El acceso no autorizado a sistemas informáticos es ilegal. Los usuarios son responsables de garantizar el cumplimiento de todas las leyes y regulaciones aplicables.