Vous êtes dans : Accueil > Tribunes libres >

Identification des serveurs Cobalt Strike : une information intéressante pour la détection et l’investigation

Charles Blanc-Rolin, MARDI 16 NOVEMBRE 2021

  

Cobalt Strike [1] est un outil commercial permettant de simplifier grandement la tâche aux équipes de sécurité offensive, généralement appelés « Red Team ». À l’image de Metasploit [2], qui lui dispose d’une version communautaire en plus de sa version commerciale, Cobalt Strike est « une sorte de couteau suisse » regroupant plusieurs fonctionnalités, telles que la génération de payload (Beacon) permettant la connexion vers le serveur de commande et de contrôle (C2), fonction également assurée par l’outil, reconnaissance du réseau, scanner de vulnérabilités, puis tout ce qui est post-exploitation avec des fonctionnalités telles qu’un shell distant, transfert de fichiers bidirectionnel, enregistrement des frappes clavier, captures d’écran, enregistrements audio et vidéo, auxquelles vient s’ajouter un important catalogue d’exploits pour tout un tas de vulnérabilités.

Vous me direz, quel est l’intérêt de détecter un tel outil ?
Tout simplement car il est le serveur de commande et de contrôle (C2) le plus utilisé par les attaquants, comme le souligne le rapport de Recorded Future sur l’année 2020 [3], avec 13,5 % de l’ensemble des serveurs C2 identifiés, soit 1141 serveurs utilisés en 2020. Il est à noter qu’une majorité des serveurs Cobalt Strike utilisés par les attaquants sont des versions d’essai ou des versions piratées.
Pour faire simple, les attaquants piratent des outils légitimes permettant de simuler les attaques de pirates, et les utilisent pour réaliser de véritables attaques…
Ça peut paraître tordu, mais l’outil est tellement bien ficelé, pourquoi s’embêter ?

Sur la partie détection, je ne peux que vous recommander l’excellente analyse (en anglais) d’Étienne Maynier, alias Tek [4]. Pour la version française, voir le magazine MISC N°116.
Il propose également, plusieurs outils intéressants comme des règles Yara pour la détection du Beacon sur une machine compromise, un script permettant d’analyser le Beacon et en extraire sa configuration, mais également un script permettant de scanner une liste d’adresses IP et d’extraire la configuration des serveurs Cobalt Strike. Pour les adeptes de Nmap, le script de whickey-r7 peut également permettre de réaliser cette opération [5]. Pour l’analyse en mémoire, vous pouvez également consulter l’article d’Elastic [6].

Il indique également comment trouver des serveurs Cobalt Strike sur Shodan avec une configuration par défaut à l’aide de signatures JARM [7].

Depuis une quinzaine de jours, Shodan recense directement les serveurs Cobalt Strike qu’il trouve.
Le nombre est assez faible pour l’instant, le temps de re-scanner Internet j’imagine, mais il a déjà bien augmenté et il continue sans cesse. En une semaine nous sommes passé de 260 à 633 au moment où j’écris ces lignes. Nous ne sommes pas encore au nombre de serveurs découverts grâce à la signature JARM pour les versions Java 11 par exemple, mais d’ici quelques semaines, nous devrions avoir quelque chose de plus exhaustif.

En plus des règles Yara dans son EDR, quand on a la chance d’en avoir un, pourquoi ne pas importer les adresses des serveurs identifiés par Shodan dans son IDS / IPS / NDR… Pour le coup, ce sont des IOCs qui ne coûtent rien...

[1] https://www.cobaltstrike.com/ 

[2] https://www.metasploit.com/ 

[3] https://www.recordedfuture.com/2020-adversary-infrastructure-report/ 

[4] https://www.randhome.io/blog/2020/12/20/analyzing-cobalt-strike-for-fun-and-profit/ 

[5] https://github.com/whickey-r7/grab_beacon_config 

[6] https://www.elastic.co./fr/blog/detecting-cobalt-strike-with-memory-signatures 

[7] https://blog.cobaltstrike.com/2020/12/08/a-red-teamer-plays-with-jarm/

https://securitytrails.com/blog/jarm-fingerprinting-tool