Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
OneDrive-UDC2 — OneDrive comme transport C2 dissimulé pour Cobalt Strike | Kitploit
Outils/GitHubGitHub/nmht3t/onedrive-udc2
Outils DéfensifsFrameworks de Tests d'IntrusionPost-ExploitationSécurité CloudCommandement et ContrôleRed TeamingDéveloppement de Charges Utiles
GitHubnmht3t/onedrive-udc2

OneDrive-UDC2

OneDrive comme transport C2 dissimulé pour Cobalt Strike

Voir le dépôt
34843il y a 5 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

OneDrive UDC2

Un canal C2 défini par l'utilisateur pour Cobalt Strike qui utilise OneDrive comme couche de transport.

Architecture

Ce dont vous avez besoin

  • Un tenant Microsoft Entra ID avec un utilisateur disposant de OneDrive for Business.
  • Une inscription d'application avec la permission d'application Files.ReadWrite.All.

Configuration

1. Enregistrer une application

Dans le portail Azure, accédez à App registrations et créez une nouvelle application :

  • Type de compte : Single tenant.
  • URI de redirection : Laissez vide.

Notez le tenant ID et le client ID depuis la page de vue d'ensemble.

2. Ajouter la permission Graph

Sous API permissions :

  1. Ajoutez Microsoft Graph, puis Application permissions, puis Files.ReadWrite.All.
Télécharger l’outil
  • Cliquez sur Grant admin consent.
  • 3. Créer un secret client

    Sous Certificates & secrets, créez un nouveau secret et copiez sa valeur.

    4. Créer les dossiers OneDrive

    Dans le OneDrive de l'utilisateur, créez deux dossiers, un pour la boîte de réception et un pour la boîte d'envoi (par exemple c2inbox et c2outbox).

    5. Obtenir les IDs du drive et des dossiers

    Ouvrez Graph Explorer, connectez-vous en tant que cet utilisateur, et exécutez :

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

    Récupérez l'id de chaque dossier et le driveId depuis n'importe quelle entrée de la réponse JSON.

    Compilation

    root@kitploit:~
    cp server/config.json.example server/config.json
    

    Remplissez server/config.json :

    ChampValeur
    tenant_idID du tenant Microsoft Entra ID
    client_idID client de l'application
    client_secretValeur du secret client
    drive_idID du drive OneDrive
    inbox_folder_idID du dossier de réception
    outbox_folder_idID du dossier d'envoi

    Puis compilez le client :

    root@kitploit:~
    make
    

    Exécution

    Démarrez le relais (utilisez screen ou tmux pour qu'il reste actif si votre terminal se déconnecte) :

    root@kitploit:~
    python3 server/relay.py --config server/config.json --ts-addr <teamserver-ip> --ts-port <udc2-port>
    

    Dans Cobalt Strike, créez un listener UDC2 sur le même port et chargez client/bof.o.

    Options du relais

    OptionDescription
    --configChemin vers config.json (requis)
    --ts-addrIP du teamserver
    --ts-portPort du listener UDC2
    --pollIntervalle de polling en secondes (par défaut 2.0)
    --stateChemin vers le fichier d'état (par défaut : <config>.state.json)
    --debugActiver la journalisation de débogage
    --cleanSupprimer le fichier d'état et le répertoire spool, puis quitter

    Fichier d'état, spool et verrou

    Le relais crée quelques fichiers à côté de votre config pour suivre les choses entre les redémarrages :

    • Fichier d'état (config.json.state.json) - suit quels fichiers de la boîte de réception ont été traités, les uploads en attente, et les informations de session du beacon. Définissez un chemin personnalisé avec --state.
    • Répertoire spool (config.json.state.json.spool/) - contient les données de réponse qui n'ont pas encore été uploadées vers OneDrive. Si le relais plante en plein upload, le spool conserve les données pour qu'il puisse réessayer au prochain démarrage.
    • Fichier de verrou (config.json.state.json.lock) - empêche deux instances du relais de s'exécuter sur le même état. Si vous voyez Another relay holds the lock et qu'aucun autre relais ne tourne, le verrou est obsolète suite à un crash.

    Réinitialiser l'état du relais

    Si l'état local du relais est corrompu ou qu'un verrou obsolète bloque le démarrage, utilisez --clean pour effacer le fichier d'état et le répertoire spool afin que le relais reparte de zéro :

    root@kitploit:~
    python3 server/relay.py --config server/config.json --clean
    

    Le fichier de verrou est conservé. Le relais ne nettoiera pas tant qu'une autre instance est en cours d'exécution. Au prochain démarrage normal, il se réinitialise et ignore les fichiers de la boîte de réception datant de plus de 30 minutes.

    Vous pouvez aussi réinitialiser manuellement en supprimant vous-même le fichier d'état et le répertoire spool. Si le fichier de verrou est obsolète (aucun relais en cours d'exécution), supprimez-le également.

    Démo

    POC

    Références

    • Documentation Cobalt Strike UDC2
    • Cobalt Strike ICMP UDC2
    • WKL Slack UDC2