🏴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.
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
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
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.
💲 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