🏴󠁧󠁢󠁳󠁣󠁴󠁿Commande et Contrôle

Un C2 est essentiellement un serveur qui agit comme un hub pour superviser, et contrôler les activités malveillantes sur des systèmes compromis. Il permet aux attaquants de commander les actions des machines infectées, leur donnant ainsi un contrôle centralisé.

🚨 Fonctionnement des C2

  • Communication bidirectionnelle : Les C2 établissent une communication bidirectionnelle entre les systèmes compromis et les serveurs des attaquants, via différents protocoles comme HTTP, DNS ou IRC.

  • Infrastructure robuste : Les C2 sont généralement dotés d'une infrastructure solide, avec des serveurs dédiés, des canaux de communication chiffrés et des mécanismes de redondance.

🌐 Command and Control Structure

C2 Server : Le serveur C2 agit comme un hub pour les agents appelant.

Agents / Payloads : Un agent est un programme généré par le framework C2 qui appelle un listener sur un serveur C2.

Listener : Un listener est une application sur le serveur C2 qui attend un rappel sur un port ou un protocole spécifique.

Beacons : Un beacon est le processus d'un agent C2 appelant un listener sur un serveur C2.

Dropper : Un dropper est un composant de logiciel malveillant chargé de délivrer et d'exécuter la charge utile principale sur un système cible.

Obfuscation des Agents d'appel : Les Sleep Timers et le jitter sont utilisés pour rendre les appels d'agents moins détectables.

  • Les Sleep Timers sont des délais programmés entre les communications des agents avec le serveur C2. Ces délais peuvent être configurés pour simuler des comportements humains ou pour éviter la détection en espaçant les communications.

  • Jitter : Le jitter est une variation aléatoire ajoutée aux temporisateurs de sommeil pour rendre les communications encore plus imprévisibles. Plutôt que d'avoir des délais de sommeil fixes entre les communications, le jitter introduit des variations aléatoires dans ces délais.

Modules : Les modules ajoutent de la flexibilité aux agents et au serveur C2, avec des modules de post-exploitation et de pivotage.

🛑 Types de Payloads

Payloads Staged et Stageless sont les deux principaux types de payloads utilisés dans les C2 Frameworks.

Payload Stageless (sans étape) :

  • Un payload stageless est une charge utile autonome et complète qui peut fonctionner indépendamment, sans nécessiter de téléchargement ou d'exécution supplémentaire pour effectuer ses fonctions.

  • Lorsqu'un attaquant utilise un payload stageless, il n'a pas besoin d'envoyer une deuxième étape ou un module supplémentaire pour accomplir ses objectifs. La charge utile peut être exécutée directement sur la machine cible pour effectuer des actions telles que l'exécution de commandes système, le téléchargement de fichiers, l'exfiltration de données, etc.

  • Les payloads stageless sont généralement plus simples à utiliser et à déployer, mais peuvent être plus faciles à détecter pour les solutions de sécurité.

Payload Staged (étapé) :

  • Un payload staged est une charge utile qui nécessite plusieurs étapes pour être pleinement fonctionnelle. Il est souvent composé de deux parties : un "dropper" (déposeur) initial et une charge utile finale.

  • Lorsqu'un attaquant utilise un payload staged, le "dropper" est généralement envoyé et exécuté sur la machine cible en premier lieu. Le dropper est conçu pour télécharger et exécuter la charge utile finale à partir d'un serveur de commande et de contrôle (C2) distant.

  • Cette approche en deux étapes peut rendre la détection de la charge utile finale plus difficile pour les systèmes de sécurité, car le dropper peut être conçu pour être moins reconnaissable ou pour échapper à la détection initiale.

  • Les payloads staged offrent souvent une plus grande flexibilité et des fonctionnalités plus avancées, mais nécessitent une configuration supplémentaire et peuvent être plus complexes à mettre en œuvre.

C2 Profiles : Les C2 Profiles permettent de masquer le trafic C2, notamment grâce à la technique de "Domain Fronting" et aux profils de redirection.

Domain Fronting

Le Domain Fronting est une technique d'évasion de sécurité utilisée par les attaquants pour masquer le trafic réseau malveillant en le faisant passer par des services de confiance, tels que des fournisseurs de services cloud ou des réseaux de distribution de contenu (CDN), afin de contourner les systèmes de détection et de filtrage.

Voici comment fonctionne le Domain Fronting :

  1. Utilisation d'un service de confiance : L'attaquant utilise un service de confiance, comme Cloudflare ou Google App Engine, qui autorise l'hébergement de plusieurs domaines sur une même infrastructure.

  2. Falsification de l'en-tête Host : Lorsqu'un client (comme un logiciel malveillant ou un outil d'attaque) envoie une requête HTTP vers le domaine du service de confiance, il falsifie l'en-tête Host de la requête pour faire référence à un domaine différent, celui du serveur de commande et de contrôle (C2) de l'attaquant.

  3. Passage via le service de confiance : La requête est envoyée au service de confiance, qui examine uniquement l'en-tête Host pour déterminer où diriger le trafic. Puisqu'elle semble être destinée à un domaine autorisé, la requête est acceptée.

  4. Redirection vers le serveur de commande et de contrôle : Une fois à l'intérieur du réseau du service de confiance, la requête est redirigée vers le serveur de commande et de contrôle de l'attaquant, contournant ainsi les systèmes de détection qui pourraient bloquer directement le trafic vers ce serveur.

  5. Communication bidirectionnelle : Une fois établie, la communication entre l'agent malveillant sur le périphérique compromis et le serveur de commande et de contrôle peut être bidirectionnelle, permettant à l'attaquant d'exécuter des commandes à distance, de voler des données ou d'effectuer d'autres actions malveillantes.

Un exemple d'utilisation du "Domain Fronting" se déroule comme suit :

  1. Un ordinateur au sein du réseau d'une entreprise est infecté par un logiciel malveillant.

  2. Cette machine infectée envoie une requête DNS à un site Internet réputé et fiable, hébergé sur un CDN (Content Delivery Network) de confiance.

  3. Le pirate informatique, qui est également client du même , utilise ce réseau pour héberger son propre site Internet.

  4. L'ordinateur infecté établit une connexion chiffrée TLS (Transport Layer Security) avec le site Internet de confiance.

  5. Pendant cette connexion, le logiciel malveillant envoie une requête HTTP 1.1 au serveur Web du pirate informatique, qui se trouve également sur le même CDN.

  6. Le site Internet de confiance transmet cette requête aux serveurs du logiciel malveillant, car elle provient d'une connexion apparentée à son propre domaine.

  7. Ainsi, un canal de communication est établi entre l'ordinateur infecté et les serveurs du pirate informatique, tout en utilisant l'apparence d'une connexion légitime avec le site Internet de confiance.


Les frameworks C2 payants offrent généralement des fonctionnalités plus avancées, un support professionnel et une personnalisation étendue, tandis que les versions gratuites peuvent offrir des fonctionnalités de base avec un support limité et une personnalisation limitée.

Voici quelques exemples de frameworks C2 :

Pupy : Pupy est un autre framework open source de C2 qui se concentre principalement sur les environnements Windows. Il permet aux utilisateurs de contrôler à distance des systèmes compromis en utilisant Python comme langage de script.

🎁Gratuits

Développé et maintenu par Rapid7, est l'un des frameworks d'exploitation et de post-exploitation (C2) les plus populaires, disponibles publiquement et installé sur la plupart des distributions de test de pénétration.

Armitage est une extension du framework Metasploit. Il ajoute une interface utilisateur graphique et est écrit en Java. Armitage offre un moyen facile d'énumérer et de visualiser toutes vos cibles.

💡 Empire

Empire est un autre C2 très populaire, initialement créé par Harmjoy, Sixdub et Enigma0x3 de Veris Group. Actuellement, le projet a été abandonné et repris par l'équipe BC Security.

Covenant, développé par Ryan Cobb, est un autre framework C2 gratuit. Contrairement à Metasploit/Armitage, il est principalement utilisé pour l'exploitation postérieure et le mouvement latéral avec des écouteurs HTTP, HTTPS et SMB avec des agents hautement personnalisables.

💡 Sliver

Sliver de Bishop Fox est un framework C2 avancé, hautement personnalisable et basé sur l'interface utilisateur de la ligne de commande. Sliver est écrit en Go, ce qui rend la rétro-ingénierie des "implants" C2 incroyablement difficile.

💰 Payants

💡 Cobalt Strike

Cobalt Strike, désormais créé par Help Systems (anciennement par Raphael Mudge), est l'un des frameworks de Command and Control les plus célèbres, à côté de Metasploit. Tout comme Armitage, il est écrit en Java et conçu pour être aussi flexible que possible.

Site officiel de Cobalt Strike

💡 Brute Ratel

Brute Ratel de Chetan Nayak ou Paranoid Ninja est un framework de Command and Control commercialisé comme un "Centre de Commande et de Contrôle Personnalisable" ou "C4" qui offre une expérience de simulation d'adversaire véritablement unique.

Site officiel de Brute Ratel

💲 Autres Frameworks C2

Pour une liste plus complète des frameworks C2 et de leurs fonctionnalités, consultez la "Matrice C2", un projet maintenu par Jorge Orchilles et Bryson Bort. Elle contient une liste beaucoup plus complète de presque tous les frameworks C2 actuellement disponibles.

Last updated