Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
OneDrive-UDC2 — OneDrive als verdeckter C2-Transport für Cobalt Strike | Kitploit
Tools/GitHubGitHub/nmht3t/onedrive-udc2
DefensivwerkzeugePenetrationstest-FrameworksPost-ExploitationCloud-SicherheitCommand and ControlRed TeamingPayload-Entwicklung
GitHubnmht3t/onedrive-udc2

OneDrive-UDC2

OneDrive als verdeckter C2-Transport für Cobalt Strike

Repository anzeigen
721085vor 26 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

OneDrive UDC2

Ein benutzerdefinierter C2-Kanal (User-Defined C2) für Cobalt Strike, der OneDrive als Transportschicht verwendet.

Architecture

Was du brauchst

  • Einen Microsoft Entra ID-Mandanten mit einem Benutzer, der über OneDrive for Business verfügt.
  • Eine App-Registrierung mit der Anwendungsberechtigung Files.ReadWrite.All.

Einrichtung

1. Eine Anwendung registrieren

Gehe im Azure-Portal zu App-Registrierungen und erstelle eine neue App:

  • Kontotyp: Einzelner Mandant.
  • Umleitungs-URI: Leer lassen.

Notiere die Mandanten-ID und die Client-ID von der Übersichtsseite.

2. Die Graph-Berechtigung hinzufügen

Unter API-Berechtigungen:

  1. Füge Microsoft Graph hinzu, dann Anwendungsberechtigungen, dann Files.ReadWrite.All.
  2. Klicke auf Administratorzustimmung erteilen.

3. Ein Client-Geheimnis erstellen

Erstelle unter Zertifikate & Geheimnisse ein neues Geheimnis und kopiere dessen Wert.

4. Die OneDrive-Ordner erstellen

Erstelle im OneDrive des Benutzers zwei Ordner, einen für den Posteingang und einen für den Postausgang (z. B. c2inbox und c2outbox).

5. Die Laufwerk- und Ordner-IDs abrufen

Öffne den Graph Explorer, melde dich als dieser Benutzer an und führe Folgendes aus:

GET https://graph.microsoft.com/v1.0/me/drive/root/children

Nimm die id jedes Ordners und die driveId aus einem beliebigen Eintrag der JSON-Antwort.

Build

cp server/config.json.example server/config.json

Fülle server/config.json aus:

FeldWert
tenant_idMicrosoft Entra ID-Mandanten-ID
client_idClient-ID der Anwendung
client_secretWert des Client-Geheimnisses
drive_idOneDrive-Laufwerk-ID
inbox_folder_idID des Posteingangsordners
outbox_folder_idID des Postausgangsordners

Dann baue den Client:

make

Ausführen

Starte das Relay (verwende screen oder tmux, damit es weiterläuft, wenn dein Terminal die Verbindung trennt):

python3 server/relay.py --config server/config.json --ts-addr <teamserver-ip> --ts-port <udc2-port>

Erstelle in Cobalt Strike einen UDC2-Listener auf demselben Port und lade client/bof.o.

Relay-Optionen

FlagBeschreibung
--configPfad zu config.json (erforderlich)
--ts-addrTeamserver-IP
--ts-portPort des UDC2-Listeners
--pollAbfrageintervall in Sekunden (Standard 2.0)
--statePfad zur Statusdatei (Standard: <config>.state.json)
--debugDebug-Logging aktivieren
--cleanStatusdatei und Spool-Verzeichnis löschen, dann beenden

Status-, Spool- & Sperrdatei

Das Relay erstellt ein paar Dateien neben deiner Konfiguration, um den Überblick zwischen Neustarts zu behalten:

  • Statusdatei (config.json.state.json) – verfolgt, welche Posteingangsdateien verarbeitet wurden, ausstehende Uploads und Beacon-Sitzungsinformationen. Lege mit --state einen benutzerdefinierten Pfad fest.
  • Spool-Verzeichnis (config.json.state.json.spool/) – enthält Antwortdaten, die noch nicht zu OneDrive hochgeladen wurden. Wenn das Relay mitten im Upload abstürzt, bewahrt der Spool die Daten auf, damit sie beim nächsten Start erneut versucht werden können.
  • Sperrdatei (config.json.state.json.lock) – verhindert, dass zwei Relay-Instanzen gegen denselben Status laufen. Wenn du Another relay holds the lock siehst und kein anderes Relay läuft, ist die Sperre von einem Absturz veraltet.

Relay-Status zurücksetzen

Wenn der lokale Status des Relays beschädigt ist oder eine veraltete Sperre den Start blockiert, verwende --clean, um die Statusdatei und das Spool-Verzeichnis zu löschen, damit das Relay neu startet:

python3 server/relay.py --config server/config.json --clean

Die Sperrdatei bleibt erhalten. Das Relay bereinigt nicht, während eine andere Instanz läuft. Beim nächsten normalen Start initialisiert es sich neu und überspringt alle Posteingangsdateien, die älter als 30 Minuten sind.

Du kannst auch manuell zurücksetzen, indem du die Statusdatei und das Spool-Verzeichnis selbst löschst. Wenn die Sperrdatei veraltet ist (kein Relay läuft), lösche sie ebenfalls.

Demo

POC

Referenzen

  • Cobalt Strike UDC2 docs
  • Cobalt Strike ICMP UDC2
  • WKL Slack UDC2
Tool herunterladen