
Servidor de comando e controle baseado em HTTP com criptografia de ponta a ponta, gerenciamento de agentes e um frontend web embutido para enviar comandos e visualizar saídas.

$\textcolor{red}{\text{ESTA FERRAMENTA É APENAS PARA USO ÉTICO!}}$
O Mothership C2 é um servidor de comando e controle escrito em python
aqui está uma captura de tela de exemplo do frontend. Terminal integrado e maneira de criar e excluir agentes! Para executar o frontend, vá para webapp e execute docker compose up
documentação para a API
Todos os endpoints do lado do cliente requerem o JWT de administrador.
/api/configconfigura o banco de dados se o banco estiver em outro host que não o padrão
{
"host": "localhost",
"port": "6379",
"db": "0"
}
exemplo de resposta:
{"response": "config updated!"}
/api/db/priv_keyobtém a chave privada do banco de dados para permitir a descriptografia das respostas dos comandos.
Exemplo de resposta:
{"response": "server private key"}
/api/connections/<agent_id>/commandenvia um comando para um agente.
{
"command": "string",
"directory": ""
}
Exemplo de saída:
200
/api/connections/listlista todas as conexões no banco de dados.
Exemplo de resposta:
{"response": ["agent1", "agent2"]}
/api/connections/<agent_id>/outputObtém a saída do comando.
Exemplo de resposta:
{"response": decrypted}
/api/connections/<agent_id>/closeFecha uma conexão com um agente.
Exemplo de resposta:
{"response": "deleted agent123!"}
/api/connections/createCria um novo ID de agente para um novo agente se conectar.
Exemplo de resposta:
{"response": "a52a7cca-5ca9-46ed-98c0-3ee694a97e45"}
/api/connections/<agent_id>/infoObtém informações sobre uma conexão, como SO, chave pública, comando, saída do comando, histórico de comandos, chave pública do lado do servidor.
Exemplo de resposta:
{"response":
{
"history": "",
"OS": "linux",
"pubKey": "0x000000",
"serverKey": "0x00000"
}
}
/api/connections/registerRegistra um agente
{
"hashedID": "string",
"public_key": "string",
"target_os": "string"
}
/api/connections/<hashed_agent_id>/commandO agente recebe o comando do shell para executar. Os comandos que o agente recebe são criptografados; veja o código do agente sobre como ele descriptografa os comandos.
Exemplo de resposta:
{"response": "command"}
/api/connections/<hashed_agent_id>/outputEnvia a saída do comando; as saídas são criptografadas e descriptografadas pela API quando um cliente as solicita.
{
"command_output": "string"
}