
Open-Source-Implementierung von Cobalt Strikes Malleable C2
Open-Source-Implementierung von Cobalt Strikes Malleable C2
OpenMalleableC2 ist eine framework-unabhängige Bibliothek, die das Malleable-C2-Profilformat von Cobalt Strike für HTTP-Transformationen implementiert. Sie ermöglicht es Sicherheitsforschern und Red Teams, einfach malleable C2-Kommunikation in benutzerdefinierten Tools und C2-Frameworks zu implementieren.
Die Bibliothek erlaubt die vollständige Nutzung von Malleable-C2-Profilen, um beliebige Daten über HTTP zu senden – transparent und (hoffentlich) stabil.
Es gibt viele Open-Source-C2-Frameworks mit unterschiedlichen Graden an HTTP-Traffic-Anpassungsfunktionen. Jedoch fehlt selbst den weiterentwickelten Frameworks wie Mythic, Havoc, Adaptix usw. noch die Tiefe der HTTP-Traffic-Anpassung, die Cobalt Strikes Malleable C2 ermöglicht – insbesondere im Hinblick auf das Einbetten von Callback-Daten in scheinbar harmlose HTTP-Anfragen. Das Ziel dieses Projekts ist es, Open-Source-Tools sowohl von der Anpassungstiefe des Malleable-C2-Systems als auch von den bestehenden darauf angewiesenen Ressourcen (z. B. Profile, Profil-Generatoren usw.) profitieren zu lassen.
Es funktioniert größtenteils, aber ich gebe derzeit keine Garantie für Stabilität. Bitte melden Sie Fehler, falls welche auftreten :)
Das bereitgestellte Beispiel ist ein einfacher „Ping-Pong“-Agent und -Server, der den typischen Beacon-Rückruf demonstriert. Der Agent sendet einen GET-Rückruf, um Aufgaben abzurufen, und dann einen POST-Rückruf, um die Aufgabenausgabe an den Server zurückzusenden.
In diesem Beispiel sind die Aufgaben nur ein Platzhalter-Zufallsstring, den der Agent abruft, umkehrt und als Ergebnis zurücksendet. Der Server überprüft, ob der umgekehrte String korrekt ist, und sendet entsprechend eine Antwort.
Ping-Pong-Beispiel ausführen:
# Python-Server starten
python Server\Python\examples\pingpong_server.py profiles\gmail.profile
# Oder Go-Server starten
cd Server\Go
go run .\cmd\pingpong-server ..\..\profiles\gmail.profile
# Agent ausführen (in einem anderen Terminal)
.\Client\C\examples\pingpong_agent.exe profiles\gmail.profile
C-Client-Beispiel erstellen:
cd Client\C\examples
build.bat
Repository-Struktur:
Client\C\lib C-Client-Bibliothek
Client\C\examples C-Ping-Pong-Agent-Beispiel
Server\Python\lib Python-Server-Bibliothek
Server\Python\examples Python-Ping-Pong-Server-Beispiel
Server\Go\openmalleable Go-Server-Bibliothek
Server\Go\cmd\pingpong-server Go-Ping-Pong-Server-Beispiel
Beispielausgabe:
pingpong_server.py:
