
Implementazione Open Source del Malleable C2 di Cobalt Strike
Implementazione Open Source di Malleable C2 di Cobalt Strike
OpenMalleableC2 è una libreria agnostica rispetto ai framework che implementa il formato dei profili Malleable C2 di Cobalt Strike per le trasformazioni HTTP. Consente a ricercatori di sicurezza e red team di implementare facilmente comunicazioni malleable C2 in strumenti personalizzati e framework C2.
Permette l'uso completo dei profili Malleable C2 per inviare dati arbitrari su HTTP, in modo trasparente e (si spera) stabile.
Esistono molti framework C2 open source con vari gradi di personalizzazione del traffico HTTP. Tuttavia, anche i framework più sviluppati come Mythic, Havoc, Adaptix, ecc. mancano ancora della profondità di personalizzazione del traffico HTTP che Malleable C2 di Cobalt Strike offre, in termini di incorporazione dei dati di callback all'interno di richieste HTTP dall'aspetto innocentemente convincente. L'obiettivo di questo progetto è consentire agli strumenti open source di beneficiare sia della profondità di personalizzazione del sistema Malleable C2 sia delle risorse esistenti che dipendono da esso (ad esempio profili, strumenti di generazione profili, ecc.)
Funziona abbastanza, ma non fornisco garanzie sulla sua stabilità al momento. Segnalate bug se ne trovate :)
L'esempio fornito è un semplice agente e server "ping pong" che dimostra il tipico callback Beacon. L'agente invierà un callback GET per registrarsi e ricevere task, poi un callback POST per inviare l'output del task al server.
In questo esempio, i task sono solo una stringa casuale segnaposto che l'agente recupera, inverte e reinvia come risultato. Il server verifica che la stringa invertita sia corretta e invia una risposta di conseguenza.
Esegui l'esempio ping-pong:
# Avvia il server Python
python Server\Python\examples\pingpong_server.py profiles\gmail.profile
# Oppure avvia il server Go
cd Server\Go
go run .\cmd\pingpong-server ..\..\profiles\gmail.profile
# Esegui l'agente (in un altro terminale)
.\Client\C\examples\pingpong_agent.exe profiles\gmail.profile
Compila l'esempio client C:
cd Client\C\examples
build.bat
**
**Struttura del repository:**
Client\C\lib Libreria client C Client\C\examples Esempio agente ping-pong in C Server\Python\lib Libreria server Python Server\Python\examples Esempio server ping-pong in Python Server\Go\openmalleable Libreria server Go Server\Go\cmd\pingpong-server Esempio server ping-pong in Go
Output di esempio:
pingpong_server.py:
<img width="2331" height="1865" alt="image" src="https://assets.kitploit.com/production/public/readmes/11229/4f7560386e2656b5fb75c12043937f61e21bf3188bfd38df06bd7e61f5041f55.png" />
## Riferimenti
- [Documentazione Malleable C2 di Cobalt Strike](https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics/malleable-c2_main.htm)
- [Repository dei profili Malleable C2](https://github.com/cobalt-strike/Malleable-C2-Profiles)
- Chet Jeepiti