Que fait Analyse des profils CobaltStrike Malleable C2 ?
Présentation
Les profils Malleable C2 de Cobalt Strike sont des scripts dans un langage spécifique au domaine qui personnalisent la communication entre Beacon et le serveur d'équipe. Ils définissent les transformations des requêtes/réponses HTTP, les intervalles de sleep, les valeurs de jitter, les User-Agent, les chemins d'URI et les comportements d'injection de processus. Les acteurs malveillants utilisent les profils Malleable pour déguiser le trafic C2 en services légitimes (Amazon, Google, Slack). L'analyse de ces profils révèle des indicateurs réseau pour la détection : motifs URI, en-têtes HTTP, transformations POST/GET, paramètres DNS et techniques d'injection de processus. La bibliothèque dissect.cobaltstrike peut analyser à la fois les fichiers de profil et extraire les configurations des payloads Beacon, tandis que pyMalleableC2 offre une analyse basée sur AST utilisant la grammaire Lark pour la manipulation et la validation programmatique des profils.
Quand utiliser
- Lors d'enquêtes sur des incidents de sécurité nécessitant l'analyse de profils Malleable C2 de CobaltStrike
- Lors de la construction de règles de détection ou de requêtes de threat hunting pour ce domaine
- Lorsque les analystes SOC ont besoin de procédures structurées pour ce type d'analyse
- Lors de la validation de la couverture de surveillance pour les techniques d'attaque associées
Prérequis
- Python 3.9+ avec
dissect.cobaltstrikeet/oupyMalleableC2 - Échantillons de profils Malleable C2 (disponibles dans des dépôts publics)
- Compréhension du protocole HTTP et du modèle de communication Beacon de Cobalt Strike
- Outils de surveillance réseau (Suricata/Snort) pour le déploiement de signatures
- Outils d'analyse PCAP pour la validation du trafic
Étapes
- Installer les bibliothèques :
pip install dissect.cobaltstrikeoupip install pyMalleableC2 - Analyser le profil avec
C2Profile.from_path("profile.profile") - Extraire les configurations des blocs HTTP GET/POST (URI, en-têtes, paramètres)
- Identifier les chaînes User-Agent et les cibles usurpées
- Extraire le temps de sleep, le pourcentage de jitter et les paramètres DNS Beacon
- Analyser les paramètres d'injection de processus (spawn-to, technique d'allocation)
- Générer des signatures Suricata/Snort à partir des indicateurs réseau extraits
- Comparer le profil avec les collections de profils d'acteurs malveillants connus
- Extraire les URI de staging et les mécanismes de livraison de payload
- Produire un rapport de détection avec les IOCs et les signatures réseau recommandées
Résultat attendu
Un rapport JSON contenant les URI C2 extraites, les en-têtes HTTP, les User-Agent, les paramètres sleep/jitter, la configuration d'injection de processus, les chemins de processus spawnés, les paramètres DNS et les règles de détection générées compatibles avec Suricata.