Remote BOF Runner è un framework di estensione Havoc per l'esecuzione remota di Beacon Object Files (BOF) utilizzando un loader PIC realizzato con Crystal Palace.
Un'estensione per Havoc per l'esecuzione remota di Beacon Object Files (BOF) tramite un loader PIC realizzato con Crystal Palace.
Remote BOF Runner consente l'esecuzione sicura di BOF in processi arbitrari sfruttando il loader PIC di Crystal Palace. Questo framework implementa un sofisticato meccanismo di comunicazione inter-processo (IPC) tramite named pipe per inoltrare in modo trasparente l'output del beacon dai processi iniettati di nuovo al server di comando e controllo (C2).
Assicurati che l'estensione sia installata nella directory delle estensioni di Havoc:
YOUR_HAVOC_FOLDER + /data/extensions/
Per compilare il loader PIC, i seguenti strumenti e librerie devono essere installati sul sistema:
Per istruzioni dettagliate sulla configurazione, consulta la Guida all'installazione di 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
Il componente BOF è responsabile di:
Il loader PIC è composto da:
┌───────────────────────────────────────────────────────────────────┐
│ 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 │
└───────────────────────────────────────────────────────────────────┘
Il caso d'uso principale è l'esecuzione di BOF in processi .NET nativi:
Perché il Caricamento Diretto del CLR nel Beacon è Rischioso: Caricare assembly .NET direttamente nel processo beacon è intrinsecamente insicuro e rilevabile:
Una Possibile Soluzione: Iniezione in Processi .NET Nativi: Invece di caricare il CLR nel beacon, iniettiamo ed eseguiamo il nostro BOF inline-execute-assembly in un processo che è già nativo .NET:
// ❌ RILEVABILE: Esecuzione diretta nel beacon
beacon.exe (nativo) → carica ClrCreateInstance → carica assembly .NET → ALLARME EDR
// ✅ FURTIVO: Esecuzione in un processo .NET nativo
dotnet.exe (.NET nativo) → inietta BOF → inline-execute-assembly →
esegui assembly .NET in un contesto CLR già presente → comportamento normale
Questo approccio sfrutta il fatto che eseguire .NET all'interno di un processo .NET è indistinguibile dal normale comportamento dell'applicazione.
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"
Esempio di Output:

⚠️ Importante: Questo progetto è una Proof-of-Concept e NON dà priorità all'OPSEC per impostazione predefinita.
Sia il BOF Injector che il PIC Loader richiedono un rafforzamento significativo per simulazioni di avversari:
Questo strumento è fornito esclusivamente a scopo educativo e per test di sicurezza autorizzati. L'accesso non autorizzato a sistemi informatici è illegale. Gli utenti sono responsabili di garantire la conformità con tutte le leggi e i regolamenti applicabili.