Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
BOF_RunPe — BOF zum Ausführen von PE in Cobalt Strike Beacon ohne Konsolenerstellung | Kitploit
Tools/GitHubGitHub/ntdallas/bof_runpe
SpeicherforensikShellcodePost-ExploitationRed Teaming
GitHubntdallas/bof_runpe

BOF_RunPe

BOF zum Ausführen von PE in Cobalt Strike Beacon ohne Konsolenerstellung

Repository anzeigen
200252vor 9 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

BOF_RunPE

BOF RunPE ist eine Beacon-Objektdatei für Cobalt Strike, die PE-Dateien vollständig im Speicher innerhalb des Beacon-Prozesses ausführt. Anders als beim traditionellen fork&run wird kein untergeordneter Prozess erzeugt, keine Konsole erstellt und keine Pipe verwendet – die gesamte Ausgabe wird über IAT-Hooking erfasst und an die Beacon-Konsole umgeleitet.

Architektur: nur x64

Übersicht

root@kitploit:~
┌──────────────────────────────────────────────────────────────┐
│                   Cobalt Strike Beacon                       │
│                    (Current Process)                         │
└────────────────────────┬─────────────────────────────────────┘
                         │
                         │  beacon_inline_execute()
                         │
                         ▼
┌──────────────────────────────────────────────────────────────┐
│                    BOF RunPE                                 │
│  ┌────────────────────────────────────────────────────────┐  │
│  │  VxTable + Draugr Initialization                       │  │
│  │  (Syscall Resolution + Stack Spoofing)                 │  │
│  └──────────────────────┬─────────────────────────────────┘  │
│                         │                                    │
│  ┌──────────────────────▼─────────────────────────────────┐  │
│  │  PE Mapping                                            │  │
│  │  - Section Copy    - IAT Patching (with hooks)         │  │
│  │  - Relocations     - Memory Protection                 │  │
│  └──────────────────────┬─────────────────────────────────┘  │
│                         │                                    │
│  ┌──────────────────────▼─────────────────────────────────┐  │
│  │  Thread Execution                                      │  │
│  │  - Spoofed Start Address                               │  │
│  │  - RIP Hijacking to Entry Point                        │  │
│  │  - Output Redirection via Hooks                        │  │
│  └────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────┘

Hauptfunktionen

  • Keine Prozesserstellung: Die PE läuft innerhalb des Beacon-Prozesses
  • Keine Konsole/Pipe: Ausgabe wird über printf/WriteConsole-Hooks erfasst
  • Mehrere Allokationsmethoden: Heap, VirtualAlloc, Module Stomping
  • Proxy-Laden: Timer Queue, RegisterWait oder direkte Aufrufe
  • Ntdll-Unhooking: Optional frische Kopie von der Festplatte
  • RWX : Optional Speicher als RWX allozieren
  • Thread-Start-Spoofing: Legitime Startadresse mit RIP-Hijacking

Konfigurationsoptionen

Das Verhalten des BOF kann bearbeitet werden in Additionals postex -> RunPe Config

Benutzerdefiniertes BOF

Proxy-Methoden

MethodeBeschreibung
NoneDirekte API-Aufrufe
DraugrStack-gespoofte API-Aufrufe
Regwait

Allokationsmethoden

MethodeBeschreibung
HeapPrivater Heap über RtlCreateHeap mit Draugr
VirtualAllocNtAllocateVirtualMemory mit Draugr
Module stompingÜberschreibt den .text-Abschnitt einer legitimen DLL

Allgemeine Optionen

OptionBeschreibung

Thread-Spoofing

OptionBeschreibung
ModuleNameLegitimes Modul für die Startadresse (z. B. Kernel32.dll)
ProcedureNameFunktionsname innerhalb des Moduls (z. B. )

Ausgabeerfassung

Die gesamte PE-Ausgabe wird über IAT-Hooks an die Beacon-Konsole umgeleitet. Es wird kein Konsolenfenster und keine Named Pipe erstellt.

Evasion-Techniken

Erkennungsvektoren

Kernel-Telemetrie (ETW-TI)

NtGetContextThread / NtSetContextThread:

  • Manipulation des Thread-Kontexts bei angehaltenen Threads und anschließendes Fortsetzen

Speicheroperationen:

  • NtAllocateMemory-Allokation, kann RWX sein (abhängig von der Konfiguration)
  • NtProtectVirtualMemory-Übergänge (RW → RX)
  • Ausführbarer Speicher in Heap-Bereichen ist verdächtig (abhängig von der Konfiguration)
  • Module Stomping erkennbar über Abschnitt-Hash-Abweichung (abhängig von der Konfiguration)

Verhaltensindikatoren

  • Angehaltener Thread erstellt, Kontext auslesen und dann den Wert von RIP ändern
  • Heap-Speicher als ausführbar markiert (wenn der Speicherallokator Heap ist)
  • DLL mit DONT_RESOLVE_DLL_REFERENCES geladen (wenn der Speicherallokator Module Stomping ist)
  • ntdll .text-Abschnitt modifiziert (wenn Unhooking aktiviert ist)

Verwendung

Laden des Skripts

root@kitploit:~
Cobalt Strike → Script Manager → Load → BOF_RunPe.cna

Aggressor-Befehle

root@kitploit:~
beacon> runpe /path/to/binary.exe --arg1 value1

Mimikatz

root@kitploit:~
beacon> help runpe

Hilfe

Kompilierung

Erfordert GCC 13 (mingw-w64). Verwenden Sie das bereitgestellte Dockerfile:

root@kitploit:~
sudo docker build -t ubuntu-gcc-13 .
sudo docker run --rm -it -v "$PWD":/work -w /work ubuntu-gcc-13:latest make

Ausgabe: Bin/runpe.o

Einschränkungen

EinschränkungBeschreibung
CETControl-flow Enforcement Technology kann synthetische Stack-Frames blockieren

Credits / Ressourcen für die Entwicklung

Repos/Blogposts

  • https://github.com/susMdT/LoudSunRun
  • https://github.com/Octoberfest7/Inline-Execute-PE
  • https://www.coresecurity.com/core-labs/articles/running-pes-inline-without-console
  • https://0xdarkvortex.dev/proxying-dll-loads-for-hiding-etwti-stack-tracing/

Bücher

  • Windows Native API Programming von Pavel Yosifovich
  • Windows Internals, Part 1 von Pavel Yosifovich
  • Windows Internals, Part 2 von Andrea Allievi
Tool herunterladen
RegisterWaitForSingleObject-Callback
TimerTimer-Queue-Callback
AllocRWXAls RWX allozieren (statt RW→RX-Übergang)
UnhookNtdllntdll.dll .text durch eine frische Kopie von der Festplatte ersetzen
TimeoutAusführungs-Timeout in Millisekunden (0 = unendlich)
StompModuleDLL-Pfad für Module Stomping (z. B. chakra.dll)
BaseThreadInitThunk
OffsetOffset vom Funktionsbeginn
Abgefangene FunktionZiel
GetCommandLineA/WGibt gespoofte Argumente zurück
__getmainargs / __wgetmainargsCRT-Argumentinitialisierung
printf / wprintfBeaconPrintf-Weiterleitung
WriteConsoleA/WBeaconPrintf-Weiterleitung
__stdio_common_vfprintfUCRT-Druckfunktionen
ExitProcess / exitIn ExitThread umgewandelt
TechnikUmgeht
Indirekte SyscallsUserland-API-Hooks (EDR/AV)
Draugr Stack SpoofingCall-Stack-Inspektion
Thread Start SpoofingAnalyse der Thread-Startadresse
Module StompingErkennung von nicht hinterlegtem Speicher
Private Heap AllocationVirtualAlloc-Überwachung
Ntdll Unhookingntdll im Speicher durch ntdll von der Festplatte ersetzen
IAT-Hooking (keine Pipes)Named-Pipe-Überwachung
Nur x64Keine x86/WoW64-Unterstützung
Kernel-SichtbarkeitThread-Erstellung für Kernel-Callbacks sichtbar
.NETVerwaltete ausführbare Dateien werden nicht unterstützt