
Implementação de código aberto do Malleable C2 do Cobalt Strike
Implementação Open Source do Malleable C2 do Cobalt Strike
OpenMalleableC2 é uma biblioteca independente de framework que implementa o formato de perfil Malleable C2 do Cobalt Strike para transformações HTTP. Permite que pesquisadores de segurança e red teams implementem facilmente comunicações C2 maleáveis em ferramentas personalizadas e frameworks C2.
Permite o uso amplo de perfis Malleable C2 para enviar dados arbitrários via HTTP, de forma transparente e (espera-se) estável.
Existem muitos frameworks C2 de código aberto que possuem variados graus de recursos de personalização de tráfego HTTP. No entanto, mesmo os frameworks mais desenvolvidos, como Mythic, Havoc, Adaptix etc., ainda carecem da profundidade de personalização de tráfego HTTP que o Malleable C2 do Cobalt Strike permite, em termos de incorporar dados de callback em requisições HTTP aparentemente inofensivas. O objetivo deste projeto é permitir que ferramentas de código aberto se beneficiem tanto da profundidade de personalização do sistema Malleable C2 quanto dos recursos existentes dependentes dele (por exemplo, perfis, ferramentas geradoras de perfil etc.).
Está funcionando na maioria dos casos, mas não garanto sua estabilidade no momento. Reporte bugs se encontrar :)
O exemplo fornecido é um agente e servidor simples de "ping pong" que demonstra o callback típico do Beacon. O agente enviará um callback GET para fazer check-in de tarefas, e depois enviará um callback POST para postar a saída das tarefas de volta ao servidor.
Neste exemplo, as tarefas são apenas uma string aleatória de placeholder, que o agente recuperará, inverterá e postará de volta como resultado. O servidor verifica se a string invertida está correta e envia uma resposta correspondente.
Execute o exemplo ping-pong:
# Start Python server
python Server\Python\examples\pingpong_server.py profiles\gmail.profile
# Or start Go server
cd Server\Go
go run .\cmd\pingpong-server ..\..\profiles\gmail.profile
# Run agent (in another terminal)
.\Client\C\examples\pingpong_agent.exe profiles\gmail.profile
Compile o exemplo de cliente C:
cd Client\C\examples
build.bat
Estrutura do repositório:
Client\C\lib Biblioteca cliente C
Client\C\examples Exemplo de agente ping-pong em C
Server\Python\lib Biblioteca servidor Python
Server\Python\examples Exemplo de servidor ping-pong em Python
Server\Go\openmalleable Biblioteca servidor Go
Server\Go\cmd\pingpong-server Exemplo de servidor ping-pong em Go
Exemplo de saída:
pingpong_server.py:
