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
Maverick — Adaptix C2-Agent mit Crystal Palace PIC-Linker und PICO-Modulsystem | Kitploit
Tools/GitHubGitHub/blacksnufkin/maverick
Verschlüsselungs-/EntschlüsselungstoolsExploit-FrameworksShellcodePost-ExploitationCommand and ControlBinäranalyseRed TeamingPayload-Entwicklung
GitHubblacksnufkin/maverick

Maverick

Adaptix C2-Agent mit Crystal Palace PIC-Linker und PICO-Modulsystem

Repository anzeigen
10913vor 2 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

Maverick

Maverick

Ein Adaptix C2-Agent, erstellt mit Crystal Palace – einem benutzerdefinierten PIC (Position Independent Code) Linker und PICO-Modulsystem. Demonstriert, wie modulare Shellcode-Agenten gebaut werden, bei denen jede Komponente (Transport, Aufgaben, Verschleierung) ein separates PICO-Blob ist, das zur Laufzeit geladen wird.

Hinweis

Dieser Agent enthält keine Umgehungstechniken und ist nicht dafür gedacht, unverändert in Einsätzen verwendet zu werden. Es handelt sich um eine Referenzimplementierung für den Bau von Agenten mit Crystal Palace und dem PICO-Modulsystem.

Crystal Palace & PICO-System

Crystal Palace ist ein PIC-Linker, der kompilierte COFF-Objekte entgegennimmt und positionsunabhängige ausführbare Dateien erzeugt. Kernkonzepte:

  • Core PIC (make pic +gofirst) – Der ausführbare Haupt-Shellcode. Enthält den Bootstrap-Code, den DFR-Resolver und Bereichsmarkierungen, an denen PICO-Module eingebunden werden. Wird direkt vom Loader aufgerufen.
  • PICO-Module (make object) – Eigenständige Code-Blöcke mit eigenen Code- und Datensektionen. Werden zur Laufzeit über PicoLoad() aus libtcg geladen. Jedes PICO hat einen Einstiegspunkt (go()), der über einen Funktionszeiger aufgerufen werden kann.
  • DFR (Dynamic Function Resolution) – Crystal Palace ersetzt MODULE$Funktion-Syntax (z.B. KERNEL32$VirtualAlloc) durch Aufrufe von resolve(mod_hash, func_hash) mittels ROR13-Hashing. Keine Importtabelle. Alle Zeichenkettenargumente (DLL-Namen, Funktionsnamen) werden als char-Arrays auf dem Stack aufgebaut, um Klartext im Binärformat zu vermeiden.
  • Sektionsverknüpfung – PICO-Blobs werden in den Core PIC an benannten Sektionen (entry_module, transport_module usw.) über die link-Direktive in der .spec-Datei eingebettet.
  • IMPORTFUNCS – Crystal Palace-Struktur {LoadLibraryA, GetProcAddress}, die an PicoLoad() übergeben wird, damit PICO-Module ihre eigenen DFR-Symbole auflösen können.

Build-Pipeline

root@kitploit:~
C source → mingw-gcc → COFF objects → Crystal Palace link → raw PIC shellcode → loader (Exe/Dll/Svc)

agent.spec

Die .spec-Datei definiert, wie Crystal Palace alles verknüpft:

root@kitploit:~
x64:
    load "Bin/obj/main.x64.o"           # Core PIC
        make pic +gofirst
        foreach %LIBS: mergelib %_       # Merge libtcg
        load "Bin/obj/entry.x64.o"       # Entry PICO
            make object
            load "Bin/obj/crypto.x64.o"  #   merge crypto into entry
                merge
            load "Bin/obj/packer.x64.o"  #   merge packer into entry
                merge
            export
            link "entry_module"          #   link at section marker
        load "Bin/obj/transport.x64.o"   # Transport PICO
            make object
            mergelib "lib/LibWinHttp/..."
            export
            link "transport_module"
        ...                              # task_module, obfuscation_module
        dfr "resolve" "ror13"            # resolve all DFR symbols
        export

Architektur

root@kitploit:~
Core PIC (main.c)
  │
  ├── resolve()              DFR-Brücke → libtcg Hash-Lookup
  ├── AllocateAndLoadModule() PicoLoad jedes PICO in gemeinsamen RWX-Bereich
  │
  └── ruft entry module go() mit Zeigern auf alle anderen Module auf
        │
        ├── Entry Module (entry.c)
        │     MvState, Check-in, Transaktion (RC4-Drahtformat), Aufgaben-Schleife
        │
        ├── Transport Module (transport.c)
        │     HTTP/HTTPS POST via LibWinHttp
        │
        ├── Task Module (tasks.c)
        │     Befehlsverteilung: whoami (0x30), sleep (0x20), exit (0x10)
        │
        └── Obfuscation Module (obfuscation.c)
              Ekko-Schlaf — Timer-Queue-ROP-Kette, die den Modulspeicher
              mit RC4 (SystemFunction033) während des Schlafs verschlüsselt
              und beim Aufwachen entschlüsselt

Speicherlayout zur Laufzeit

root@kitploit:~
┌─────────────────────────────┐
│ Gemeinsamer RWX-Bereich     │  VirtualAlloc(PAGE_EXECUTE_READWRITE)
│  ├── Entry-Code             │  PicoLoad → Code hier
│  ├── Transport-Code         │
│  ├── Task-Code              │
│  └── Verschleierungs-Code   │
├─────────────────────────────┤
│ Entry-Daten (RW)            │  PicoLoad → Daten hier (separate Allokation)
│ Transport-Daten (RW)        │
│ Task-Daten (RW)             │
│ Verschleierungs-Daten (RW)  │
├─────────────────────────────┤
│ Core PIC (nach Start freigegeben) │  Original-Shellcode, vom Entry-Modul freigegeben
└─────────────────────────────┘

Der gemeinsame RWX-Bereich wird von Ekko während der Schlafzyklen ver-/entschlüsselt.

Drahtformat

Der gesamte Verkehr wird mit RC4 (Stromchiffre, 16-Byte-Schlüssel) verschlüsselt.

root@kitploit:~
Senden:    [36B agent_id][RC4(payload)][16B key (nur beim ersten Check-in)]
Empfangen: [36B agent_id][RC4(response)]

Quelldateien

root@kitploit:~
src_beacon/Source/
├── main.c           Core PIC — DFR-Resolver, Modulladung, Bootstrap
├── entry.c          Entry PICO — Agentenstatus, Check-in, Aufgaben-Schleife, Transaktion
├── transport.c      Transport PICO — HTTP POST via LibWinHttp
├── tasks.c          Task PICO — whoami/sleep/exit-Verteilung
├── obfuscation.c    Verschleierungs-PICO — Ekko-Schlaf (Timer-Queue-ROP + RC4)
├── crypto.c         RC4-Stromchiffre (in Entry PICO eingebunden)
├── packer.c         Binärpacker BE / Parser LE (in Entry PICO eingebunden)
└── includes/
    ├── config.h     Build-Defines (UUID, Schlaf, Callback-Host/Port/URI/SSL)
    ├── crypto.h     RC4-API
    ├── packer.h     PackBuf / Parser-API
    ├── tcg.h        Crystal Palace libtcg (PicoLoad, findModuleByHash usw.)
    └── HTTP.h       LibWinHttp-API

Befehle

Befehl

Build & Bereitstellung

Voraussetzungen

  • x86_64-w64-mingw32-gcc (MinGW-Cross-Compiler)
  • Go 1.21+
  • Adaptix C2-Server

Bereitstellung auf Adaptix

root@kitploit:~
./setup.sh --ax ../AdaptixC2

Verwendung

  1. Starte den Adaptix-Server
  2. Erstelle einen MaverickHTTP-Listener (Host, Port, URI, SSL festlegen)
  3. Baue einen Agenten über die Adaptix-Client-Benutzeroberfläche (Format wählen: Exe/Dll/Bin)
  4. Führe den Agenten auf einem Windows-Zielsystem aus
  5. Verwende whoami, sleep, exit-Befehle über die Adaptix-Konsole

Referenzen

  • Kharon
  • PICO-Implant
  • Modular PIC C2 Agents

PoC

Maverick PoC

Tool herunterladen
ID
Beschreibung
whoami0x30Gibt COMPUTER\benutzername zurück
sleep <sekunden>0x20Aktualisiert das Callback-Intervall
exit thread|process0x10Beendet den Agenten