
Remote BOF Runner هو إطار عمل إضافات لـ Havoc للتنفيذ عن بُعد لملفات Beacon Object Files (BOFs) باستخدام مُحمِّل PIC مبني بـ Crystal Palace.
إطار عمل امتداد لـ Havoc للتنفيذ عن بُعد لملفات كائنات Beacon (BOFs) باستخدام مُحمّل PIC مبني باستخدام Crystal Palace.
يتيح مشغّل BOF عن بُعد تنفيذًا آمنًا لملفات BOF في عمليات عشوائية بالاستفادة من مُحمّل PIC الخاص بـ Crystal Palace. يطبّق هذا الإطار آلية اتصال متقدمة بين العمليات (IPC) عبر الأنابيب المسماة لإعادة توجيه مخرجات beacon من العمليات المحقونة بشفافية إلى خادم القيادة والتحكم (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 │
└───────────────────────────────────────────────────────────────────┘
حالة الاستخدام الأساسية هي تنفيذ BOFs في عمليات .NET أصلية:
لماذا يُعد تحميل CLR مباشرة في Beacon خطرًا: تحميل تجميعات .NET مباشرة في عملية beacon غير آمن بطبيعته ويمكن اكتشافه:
حل محتمل: الحقن في عملية .NET أصلية: بدلاً من تحميل CLR في beacon، نقوم بحقن وتنفيذ BOF الخاص بـ inline-execute-assembly في عملية هي بالفعل أصلية .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 تحصينًا كبيرًا لمحاكاة الخصوم:
تُقدَّم هذه الأداة لأغراض تعليمية واختبارات أمنية مصرّح بها فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. يتحمل المستخدمون مسؤولية ضمان الامتثال لجميع القوانين واللوائح المعمول بها.