Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
GraphStrike — Beaconing HTTPS de Cobalt Strike via l'API Microsoft Graph | Kitploit
Outils/GitHubGitHub/redsiege/graphstrike
Frameworks de Tests d'IntrusionFrameworks d'ExploitationSécurité CloudCommandement et ContrôleRed TeamingSécurité des API
GitHubredsiege/graphstrike

GraphStrike

Beaconing HTTPS de Cobalt Strike via l'API Microsoft Graph

Voir le dépôt
6359921il y a 2 ansVérifié par Kitploit

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

GraphStrike

gscolor

Blog de publication : GraphStrike : Utiliser l'API Microsoft Graph pour faire disparaître le trafic Beacon
Blog du développeur : GraphStrike : Anatomie du développement d'outils offensifs

Introduction

GraphStrike est une suite d'outils qui permet au Beacon HTTPS de Cobalt Strike d'utiliser l'API Microsoft Graph pour les communications C2. Tout le trafic Beacon est transmis via deux fichiers créés sur le site SharePoint de l'attaquant, et toutes les communications du Beacon sont routées vers https://graph.microsoft.com :

image

GraphStrike inclut un provisionneur pour créer les ressources Azure nécessaires à Cobalt Strike HTTPS via l'API Graph :

image

GraphStrike ne crée aucune ressource payante dans Azure, donc aucun coût supplémentaire n'est engendré par l'utilisation de GraphStrike ou de son provisionneur.

Pourquoi ?

Des renseignements sur les menaces ont été publiés concernant plusieurs APT différentes qui exploitent l'API Microsoft Graph et d'autres services Microsoft pour des campagnes offensives :

  1. BLUELIGHT - APT37/InkySquid/ScarCruft
  2. Graphite - APT28/Fancy Bear
  3. Graphican - APT15/Nickel/The Flea
  4. SiestaGraph - INCONNU

Les acteurs malveillants continuent d'utiliser des services légitimes à des fins illégitimes. Utiliser un domaine à haute réputation comme graph.microsoft.com pour les communications C2 est extrêmement efficace et souhaitable, mais souvent compliqué et prohibitif en termes de temps et d'efforts. La plupart des frameworks C2 ne prennent pas en charge les méthodes pour récupérer ou renouveler les jetons d'accès, ce qui les rend incapables d'utiliser l'API Graph. Cela peut rendre difficile pour les équipes rouges de reproduire ces techniques, et prive les défenseurs d'une chance d'observer et de développer des signatures pour ce type d'activité. GraphStrike cherche à alléger ce fardeau et à fournir un processus fiable et reproductible pour exploiter l'API Microsoft Graph tout en conservant la familiarité et la fiabilité de l'expérience utilisateur de Cobalt Strike.

S'agit-il d'un External C2 ?

Techniquement, non. Ayant déjà construit un véritable External C2 utilisant l'API Graph (qui envoyait le trafic Beacon sous forme de messages Microsoft Teams), le fardeau de devoir développer, maintenir et intégrer une sonde personnalisée répondant aux spécifications d'External C2 et faisant le travail est bien trop familier. GraphStrike exploite plutôt un Chargeur Réflexif Défini par l'Utilisateur (UDRL) open source appelé AceLdr par Kyle Avery (adapté sous le nom 'GraphLdr' dans ce projet) pour intercepter les appels à la bibliothèque WinINet que Beacon effectue normalement et les manipuler si nécessaire afin d'utiliser l'API Graph. Il n'y a pas de sonde personnalisée ni de processus supplémentaire à proprement parler, seulement le processus Beacon avec quelques API Windows interceptées. Côté serveur, un programme Python3 traduit le trafic du serveur d'équipe Cobalt Strike en trafic API Graph et vice-versa.

Fonctionnalités

GraphStrike prend en charge presque toutes les activités normales de Cobalt Strike, y compris :

  1. Utilisation de Proxychains via un proxy SOCKS de Cobalt Strike (bien que très lent...)
  2. Téléversement/Téléchargement de fichiers volumineux
  3. BOFs, execute-assembly, etc.

Cela inclut également l'intégration par GraphStrike des commandes sleep, exit et remove pour faire correspondre les temps de sommeil du serveur GraphStrike avec ceux du Beacon, ainsi que la suppression des fichiers dans SharePoint lorsqu'un Beacon est quitté ou supprimé.

GraphStrike intègre également toutes les fonctionnalités de l'AceLdr original, avec quelques API supplémentaires ajoutées pour utiliser également le spoofing de pile d'appels.

Prérequis

GraphStrike nécessite ce qui suit avant de commencer :

  1. Un locataire Microsoft Azure avec une licence SharePoint/O365 attribuée et un site créé. Le site par défaut convient.
  2. Un compte Azure avec des autorisations d'administrateur général dans ce locataire.
  3. Python 3.8-3.11Note #4 (et les dépendances supplémentaires qui seront installées lors du processus d'installation)

Règles de pare-feu

  1. Assurez-vous que chaque machine exécutant le client Cobalt Strike peut se connecter à la machine du serveur d'équipe Cobalt Strike sur les ports 443 et 5000.

Configuration

Prenez note de ce qui suit avant de poursuivre le processus de configuration :

1. Certains composants utilisent des chemins relatifs pour localiser d'autres ressources. Veuillez changer de répertoire comme indiqué ci-dessous.
2. Le profil Cobalt Strike ne peut être modifié qu'AVANT l'étape 5 du processus de configuration ci-dessousNote #1.

Sur la machine qui exécutera le serveur d'équipe Cobalt Strike :

  1. Clonez le dépôt.
  2. Depuis le répertoire du dépôt, exécutez sudo setup/install_dependencies.sh pour installer les dépendances système requises.
  3. Exécutez python3 -m venv virtual puis source virtual/bin/activate pour créer et entrer dans l'environnement virtuel.
  4. Changez dans le répertoire setup et exécutez pip3 install -r requirements.txt.
  5. Exécutez ./provisioner.py new et terminez le processus de configuration.
  6. Démarrez le serveur d'équipe Cobalt Strike en utilisant graphstrike.profile comme profil C2 malleable.
  7. Lancez une instance du client Cobalt Strike (vous pouvez le faire sur une machine cliente, ou sur la machine TS et la tuer ensuite) et créez un écouteur HTTPS Cobalt Strike sur le port 443 avec graph.microsoft.com dans les champs Hôtes HTTPS et Hôte HTTPS (Stager).
  8. Revenez au répertoire principal du dépôt et exécutez le serveur GraphStrike avec ./GraphStrike.py.

Sur TOUTES les machines qui exécuteront le client Cobalt Strike :

  1. Copiez le répertoire GraphStrike/client depuis la machine TS vers la machine cliente. Cela doit être fait UNIQUEMENT après avoir terminé le provisionnement !
  2. Importez GraphStrike.cna dans Cobalt Strike à l'aide du Gestionnaire de scripts.
  3. Créez des charges utiles Cobalt Strike, qu'il s'agisse de shellcode brut ou d'artefacts compilés avec Artifact Kit ou un autre framework de génération de charges utiles. Les utilisateurs d'Artifact Kit, voir ci-dessous !
  4. Profitez.
Télécharger l’outil