
Implémentation Open Source du Malleable C2 de Cobalt Strike
Implémentation Open Source de Malleable C2 de Cobalt Strike
OpenMalleableC2 est une bibliothèque indépendante du framework qui implémente le format de profil Malleable C2 de Cobalt Strike pour les transformations HTTP. Elle permet aux chercheurs en sécurité et aux red teams de mettre facilement en œuvre des communications C2 malléables dans des outils personnalisés et des frameworks C2.
Elle permet une utilisation en gros des profils Malleable C2 pour envoyer des données arbitraires via HTTP, de manière transparente et (espérons-le) stable.
Il existe de nombreux frameworks C2 open source qui offrent différents degrés de personnalisation du trafic HTTP. Cependant, même les frameworks les plus développés comme Mythic, Havoc, Adaptix, etc., manquent encore de la profondeur de personnalisation du trafic HTTP que permet Malleable C2 de Cobalt Strike, en termes d’intégration de données de rappel dans des requêtes HTTP d’apparence inoffensive et convaincante. L’objectif de ce projet est de permettre aux outils open source de bénéficier à la fois de la profondeur de personnalisation du système Malleable C2 et des ressources existantes qui en dépendent (par exemple, les profils, les outils générateurs de profils, etc.)
C’est généralement fonctionnel, mais je ne garantis pas sa stabilité pour le moment. Signalez les bogues si vous en trouvez :)
L’exemple fourni est un simple agent et serveur « ping pong » qui illustre le rappel Beacon typique. L’agent enverra un rappel GET pour vérifier les tâches, puis un rappel POST pour renvoyer le résultat de la tâche au serveur.
Dans cet exemple, les tâches sont simplement une chaîne aléatoire de substitution que l’agent récupère, inverse et renvoie comme résultat. Le serveur vérifie que la chaîne inversée est correcte et envoie une réponse en conséquence.
Exécution de l’exemple ping-pong :
# Démarrer le serveur Python
python Server\Python\examples\pingpong_server.py profiles\gmail.profile
# Ou démarrer le serveur Go
cd Server\Go
go run .\cmd\pingpong-server ..\..\profiles\gmail.profile
# Lancer l’agent (dans un autre terminal)
.\Client\C\examples\pingpong_agent.exe profiles\gmail.profile
Construction de l’exemple client C :
cd Client\C\examples
build.bat
Structure du dépôt :
Client\C\lib Bibliothèque client C
Client\C\examples Exemple d’agent ping-pong C
Server\Python\lib Bibliothèque serveur Python
Server\Python\examples Exemple de serveur ping-pong Python
Server\Go\openmalleable Bibliothèque serveur Go
Server\Go\cmd\pingpong-server Exemple de serveur ping-pong Go
Exemple de sortie :
pingpong_server.py :
