Remote BOF Runner é um framework de extensão do Havoc para execução remota de Beacon Object Files (BOFs) usando um carregador PIC feito com Crystal Palace.
Um framework de extensão do Havoc para execução remota de Beacon Object Files (BOFs) usando um loader PIC feito com Crystal Palace.
O Remote BOF Runner permite a execução segura de BOFs em processos arbitrários ao alavancar o loader PIC do Crystal Palace. Este framework implementa um mecanismo sofisticado de comunicação entre processos (IPC) através de pipes nomeados para encaminhar de forma transparente a saída do beacon dos processos injetados de volta para o servidor de comando e controle (C2).
Certifique-se de que a extensão está instalada no diretório de extensões do Havoc:
YOUR_HAVOC_FOLDER + /data/extensions/
Para compilar o loader PIC, as seguintes ferramentas e bibliotecas devem estar instaladas no seu sistema:
Para instruções detalhadas de configuração, consulte o .
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
O componente BOF é responsável por:
O loader PIC consiste em:
┌───────────────────────────────────────────────────────────────────┐
│ 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 │
└───────────────────────────────────────────────────────────────────┘
O caso de uso principal é executar BOFs em processos .NET nativos:
Por que o Carregamento Direto do CLR no Beacon é Arriscado: Carregar assemblies .NET diretamente no processo beacon é inerentemente inseguro e detectável:
Uma Solução Possível: Injeção em Processo .NET Nativo: Em vez de carregar o CLR no beacon, injetamos e executamos nosso BOF inline-execute-assembly em um processo que já é nativo .NET:
// ❌ DETECTABLE: Direct execution in beacon
beacon.exe (native) → load ClrCreateInstance → load .NET assembly → EDR ALERT
// ✅ STEALTHY: Execution in native .NET process
dotnet.exe (native .NET) → inject BOF → inline-execute-assembly →
execute .NET assembly in already-CLR context → normal behavior
Esta abordagem aproveita o fato de que executar .NET dentro de um processo .NET é indistinguível do comportamento normal da aplicação.
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"
Exemplo de Saída:

⚠️ Importante: Este projeto é uma Prova de Conceito e NÃO prioriza OPSEC por padrão.
Tanto o BOF Injector quanto o PIC Loader exigem endurecimento significativo para simulações de adversários:
Esta ferramenta é fornecida apenas para fins educacionais e de teste de segurança autorizados. O acesso não autorizado a sistemas de computador é ilegal. Os usuários são responsáveis por garantir a conformidade com todas as leis e regulamentos aplicáveis.