Malleable C2 Profile
hackingDéfinition
Un Malleable C2 Profile est un fichier de configuration pour Cobalt Strike qui permet aux opérateurs de personnaliser en détail le comportement réseau du Beacon, depuis la structure des requêtes HTTP jusqu'aux métadonnées TLS, en passant par les délais de callback et le comportement en mémoire. Ces profils permettent d'imiter le trafic d'applications légitimes connues pour éviter la détection réseau. La syntaxe des Malleable C2 Profiles permet de définir : les URIs utilisés par le Beacon pour ses check-ins (ex: /jquery-3.3.1.min.js, /pixel.gif), les en-têtes HTTP avec des valeurs réalistes (User-Agent, Referer, Accept-Language), les cookies et leurs formats, le schéma de staging (comment le Beacon initial télécharge le Beacon complet), le comportement en mémoire (injection dans quel processus, nettoyage des en-têtes PE, masquage de la mémoire), et les paramètres de communication (jitter, sleep time, max-size). Des profils publics imitent des applications connues : jQuery updates (trafic similaire aux mises à jour jQuery), Amazon AWS (trafic similaire aux SDK AWS), Google Analytics (trafic similaire aux balises GA), et des navigateurs spécifiques. Des dépôts comme malleable-c2-profiles de rasta-mouse sur GitHub proposent des profils prêts à l'emploi. Le comportement en mémoire est particulièrement important : les options headersRemove_headers (supprimer les en-têtes PE après chargement), obfuscate (chiffrer le Beacon en mémoire pendant le sommeil), userwx false (utiliser des permissions RW plutôt que RWX, moins surveillées), et pe_header_optional_header_size permettent de réduire les artefacts mémoire détectables par les EDR. SleepMask est une extension du comportement mémoire qui chiffre le heap et le code du Beacon pendant les périodes de sommeil, rendant les scanners de mémoire EDR inefficaces lors de leurs analyses périodiques.
Fonctionnement
Un profil minimal définit les blocs http-get (communication client→serveur) et http-post (résultats serveur→client) avec les structures de requêtes. Les directives uri, header, parameter, et les blocs client/server spécifient exactement le format de chaque communication. Le Beacon génère des requêtes qui correspondent exactement à ce format, imitant le trafic de l'application spécifiée. Des outils comme c2lint vérifient la validité du profil avant déploiement.
Exploitation offensive
Un profil imitant les mises à jour Chrome (URIs /updates/chrome, User-Agent Chrome réaliste, Referer google.com) rend le trafic C2 très difficile à distinguer du trafic légitime pour les solutions de filtrage réseau basées sur des patterns. Combiné avec un domaine catégorisé comme 'technologie' et un certificat TLS légitime, le profil maximise la discrétion des communications C2.
Détection et mitigation
L'analyse comportementale des flux TLS (timing régulier malgré le jitter, connexions persistantes à des domaines récemment créés, volumes de données caractéristiques) peut détecter des Malleable C2 Profiles même bien configurés. Des projets comme c2-traffic sur GitHub documentent les patterns de Cobalt Strike pour alimenter les règles de détection Suricata/Snort.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h