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
async-pico-hub — Async PICO Hub is a work-in-progress framework to extend Cobalt Strike with custom event monitoring and in-process Asynchronous BOFs | Kitploit
Tools/GitHubGitHub/nccgroup/async-pico-hub
Penetration Testing FrameworksPost-ExploitationCommand and ControlRed TeamingPayload Development
GitHubnccgroup/async-pico-hub

async-pico-hub

Async PICO Hub is a work-in-progress framework to extend Cobalt Strike with custom event monitoring and in-process Asynchronous BOFs

Repository anzeigen
263vor 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

Async PICO HUB

Async PICOs ist ein Framework zum Ausführen langlebiger, ereignisgesteuerter Beacon Object Files innerhalb eines Cobalt-Strike-Beacon-Prozesses. Es bietet asynchrone Ausführung, Aufgabenverfolgung, kontrolliertes Herunterfahren und sichere asynchrone Ausgabe durch die Kombination von Crystal-Palace-PICOs mit einem Beacon-seitigen Ausführungsmodell.

Im Gegensatz zu den nativen asynchronen BOFs von Cobalt Strike werden Async PICOs im Prozess des Beacons ausgeführt und können das Beacon aufwecken, um Ausgaben darzustellen, wenn Ereignisse auftreten.

Warum Async PICOs?

Die nativen asynchronen BOFs von Cobalt Strike lösen ein anderes Problem. Async PICOs sind für langlebige, ereignisgesteuerte Aufgaben gedacht, die innerhalb des Beacons ausgeführt werden und Ergebnisse sicher und unmittelbar an den Operator zurückmelden können.

Implementierungsdetails und Designüberlegungen finden Sie im zugehörigen Blogbeitrag:

https://www.nccgroup.com/research/async-picos-and-custom-beacon-wakeups-in-cobalt-strike/

Erstellen

Voraussetzungen

Vor dem Erstellen sind die folgenden Komponenten erforderlich:

  • Ein lokales Checkout dieses Repositorys

  • Eine erstellte Version von Crystal Palace

  • Visual Studio mit MSVC- und CMake-Unterstützung

  • Tradecraft Garden

  • Klonen Sie das Repository

Repository klonen oder kopieren

Klonen oder kopieren Sie das Repository lokal:

root@kitploit:~
git clone <repo-url>
cd async-pico-hub

Crystal Palace installieren

Async PICOs basieren auf Crystal Palace zur PICO-Erzeugung.

Laden Sie die neueste komprimierte Version von Crystal Palace herunter und erstellen Sie sie gemäß den Anweisungen. Platzieren Sie die Crystal-Palace-Binärdateien nach dem Erstellen in:

root@kitploit:~
pico-tools/crystal-palace/

Die erwartete Verzeichnisstruktur sollte ähnlich aussehen wie:

root@kitploit:~
pico-tools/
└── crystal-palace/
    ├── src/
    ├── lib/
    └── ...

Laden Sie die neueste Version von Tradecraft Garden herunter und platzieren Sie sie in

root@kitploit:~
pico-tools/tradecraftgarden

Die erwartete Verzeichnisstruktur sollte ähnlich aussehen wie:

root@kitploit:~
pico-tools/
└── tradecraftgarden/
    ├── libtcg/
    ├── simple_pic/
    └── ...

Stellen Sie sicher, dass Sie libtcg und das simple_pic-Beispiel erstellen, um Async PICOs bauen zu können.

Projekt in Visual Studio öffnen

Das Projekt verwendet CMake, um das Erstellen mit MSVC zu vereinfachen.

Klicken Sie im Repository-Stammverzeichnis mit der rechten Maustaste auf den Ordner und wählen Sie:

root@kitploit:~
Open with Visual Studio

Dadurch wird das CMake-Projekt geladen und die verfügbaren Build-Konfigurationen werden angezeigt.

Build-Konfigurationen

Die folgenden Build-Konfigurationen sind verfügbar:

x64 Debug

Erstellt lokale ausführbare Versionen von PICOs und BOFs zum Debuggen.

Verwenden Sie diese Konfiguration, wenn Sie Verhalten lokal debuggen oder Code in Visual Studio schrittweise durchgehen möchten.

x64 Release

Erstellt optimierte lokale ausführbare Versionen von PICOs und BOFs.

Verwenden Sie diese Konfiguration, um das Release-Verhalten außerhalb von Beacon zu testen.

x64 Release Objects

Erstellt Bereitstellungsartefakte:

  • Positionsunabhängige PICOs mit Crystal Palace
  • Standard-BOFs wie AsyncPICOMgr

Diese Konfiguration wird verwendet, um Objekte für Cobalt Strike zu erzeugen.

Build-Ausgabe

Nach Abschluss des Builds finden Sie die erzeugten Artefakte in:

build/x64-ReleaseObject/obj/

Dieses Verzeichnis enthält die kompilierten PICOs und BOFs, bereit zur Verwendung.

Schnellstart

Benutzerdefiniertes Sleepmask konfigurieren

Async PICOs erfordern, dass Beacon ein benutzerdefiniertes Sleepmask verwendet.

Aktivieren Sie in Ihrem Malleable-Profil die Unterstützung für ein benutzerdefiniertes Sleepmask, bevor Sie Async PICOs verwenden.

Das Skript picos-cna/sleepmask.cna lädt async-sleepmask, eine minimale Referenzimplementierung zur Unterstützung asynchroner Ausgabe und Beacon-Wake-Koordination.

Dieses Sleepmask ist bewusst einfach gehalten und bringt die im Abschnitt Einschränkungen beschriebenen Limitierungen mit sich. Es dient dazu, das Framework zu demonstrieren und das Testen zu vereinfachen, nicht als fertige, produktionsreife Komponente.

Wenn Sie bereits über ein benutzerdefiniertes Sleepmask mit OPSEC-Techniken wie Stack-Manipulation oder anderen verfügen, lesen Sie Modifizieren Ihres bestehenden Sleepmasks zu einem Async-Sleepmask, um die Async-PICO-Unterstützung in Ihre vorhandene Implementierung zu integrieren.

Aggressor-Skript laden

Nachdem Sie das Projekt mit der Konfiguration x64 Release Objects erstellt haben, laden Sie die Aggressor-Skripte picos.cna und sleepmask.cna in Cobalt Strike:

root@kitploit:~
Script Manager → Load → picos-cna/picos.cna
Script Manager → Load → picos-cna/sleepmask.cna

Nach dem Laden können Async PICOs über den Befehl picos verwaltet werden.

Async PICO starten

So starten Sie ein PICO:

root@kitploit:~
picos start [path to pico] [arguments]

Zum Beispiel:

root@kitploit:~
picos start C:\temp\MonitorTGT.pico

Oder mit Argumenten:

root@kitploit:~
picos start C:\temp\MonitorTGT.pico DOMAIN\serviceaccount

Laufende PICOs auflisten

So zeigen Sie laufende Async PICOs an:

root@kitploit:~
picos

Dies zeigt die aktuell laufenden Aufgaben und ihre Kennungen an.

Ein laufendes PICO stoppen

So stoppen Sie ein Async PICO:

root@kitploit:~
picos stop [pico id]

Zum Beispiel:

root@kitploit:~
picos stop 3

Das PICO empfängt ein Stoppsignal und beendet sich nach der Bereinigung ordnungsgemäß.

Hilfe

Weitere Nutzungsinformationen sind direkt in Cobalt Strike über die integrierten Hilfemenüs der picos-Befehle verfügbar.

Schreiben eines benutzerdefinierten Async PICO

Details finden Sie in docs/writing_custom_async_pico.md.

Modifizieren Ihres bestehenden Sleepmasks zu einem Async-Sleepmask

Details finden Sie in docs/modifying_existing_sleepmask.md.

Enthaltene Beispiele

  • tgt-monitor-pico: Async PICO, das auf Anmeldungen lauscht und Kerberos-Tickets ausgibt. Basierend auf https://github.com/jakobfriedl/tgt-monitor-bof
  • example-pico: Ein wirklich einfaches PICO, das asynchrone Fähigkeiten zeigt, wie das Öffnen eines Fensters, ohne den Hauptthread von Beacon zu blockieren, und das Senden von Ausgaben.

OPSEC-Überlegungen

Die öffentliche Implementierung ist bewusst einfach gehalten und verzichtet auf fortgeschrittene evasive Techniken. Sie ist als Grundlage zur Anpassung gedacht und nicht dafür, unverändert bereitgestellt zu werden.

Thread-Erstellung

Async PICOs werden mit CreateThread gestartet. Dies hält das Ausführungsmodell einfach und nachvollziehbar, führt aber auch eine Erkennungsoberfläche ein. In der öffentlichen Implementierung beginnt der Thread seine Ausführung aus Speicher, der nicht durch ein Modul-Image gestützt wird, was von Produkten oder Heuristiken erkannt werden kann, die Thread-Startadressen untersuchen.

Anwender sollten bewerten, ob alternative Thread-Erstellungs- oder Ausführungsstrategien für ihre Umgebung besser geeignet sind.

Sleepmask-Integration

Das Framework verlässt sich auf ein modifiziertes Sleepmask, um asynchrone Ausgaben an Beacon zurückzuleiten und Wake-Ereignisse zu koordinieren. Die hier enthaltene Implementierung ist bewusst minimal und sollte vor dem operativen Einsatz überprüft werden.

Das Sleepmask ist Teil des Ausführungsmodells und nicht nur eine Komfortschicht. Jegliche Änderungen daran, wie Ausgaben in die Warteschlange eingereiht, abgerufen oder signalisiert werden, sollten sorgfältig evaluiert werden, um Nebenläufigkeitsprobleme oder nicht unterstützte Interaktionen mit Beacon-Interna zu vermeiden.

Einschränkungen

Die öffentliche Implementierung bringt mehrere praktische Einschränkungen mit sich, die vor der Verwendung verstanden werden sollten.

Gemeinsame Speicherung globaler Variablen

Crystal Palace ermöglicht es PICOs, globale Variablen zu verwenden, aber die öffentliche Implementierung nutzt ein einfaches gemeinsames Speichermodell zur Ablage des globalen Zustands. Dadurch sind globale Variablen nicht pro Thread isoliert.

In der Praxis bedeutet dies, dass die gleichzeitige Ausführung mehrerer Async PICOs zusätzliche Sorgfalt erfordern kann, wenn diese von globalen Variablen abhängen.

Abhängigkeit vom Sleepmask

Async PICOs hängen für asynchrone Ausgabe und Beacon-Wake-Koordination von einem modifizierten Sleepmask ab. Das Framework ist daher nicht vollständig eigenständig und kann nicht als Drop-in-BOF behandelt werden.

Nicht als vollständig fertiges Bereitstellungsartefakt gedacht

Das Repository soll ein Framework und einen Implementierungsansatz demonstrieren und keine fertige, produktionsreife Komponente bereitstellen. Die enthaltenen Beispiele sind dafür gedacht, erweitert, modifiziert und an individuelle Anwendungsfälle angepasst zu werden.

Tool herunterladen