
Server di comando e controllo basato su HTTP con crittografia end-to-end, gestione degli agenti e un frontend web integrato per inviare comandi e visualizzare gli output.

$\textcolor{red}{\text{QUESTO STRUMENTO È SOLO PER USO ETICO!}}$
Mothership C2 è un server di comando e controllo scritto in Python
ecco un esempio di screenshot del frontend. Terminale integrato e modo per creare ed eliminare agenti! Per eseguire il frontend, vai in webapp ed esegui docker compose up
documentazione per l'API
Tutti gli endpoint lato client richiedono il JWT admin.
/api/configconfigura il database se il database si trova su un host diverso da quello predefinito
{
"host": "localhost",
"port": "6379",
"db": "0"
}
risposta di esempio:
{"response": "config updated!"}
/api/db/priv_keyottieni la chiave privata del database per permettere la decifratura delle risposte dei comandi.
Esempio di risposta:
{"response": "server private key"}
/api/connections/<agent_id>/commandinvia un comando a un agente.
{
"command": "string",
"directory": ""
}
Output di esempio:
200
/api/connections/listelenca tutte le connessioni nel database.
Esempio di risposta:
{"response": ["agent1", "agent2"]}
/api/connections/<agent_id>/outputOttieni l'output del comando.
Esempio di risposta:
{"response": decrypted}
/api/connections/<agent_id>/closeChiudi una connessione con un agente.
Esempio di risposta:
{"response": "deleted agent123!"}
/api/connections/createCrea un nuovo ID agente per un nuovo agente a cui connettersi.
Esempio di risposta:
{"response": "a52a7cca-5ca9-46ed-98c0-3ee694a97e45"}
/api/connections/<agent_id>/infoOttieni informazioni su una connessione come SO, chiave pubblica, comando, output del comando, storico dei comandi, chiave pubblica lato server.
Esempio di risposta:
{"response":
{
"history": "",
"OS": "linux",
"pubKey": "0x000000",
"serverKey": "0x00000"
}
}
/api/connections/registerRegistra un agente
{
"hashedID": "string",
"public_key": "string",
"target_os": "string"
}
/api/connections/<hashed_agent_id>/commandL'agente riceve il comando shell da eseguire. I comandi che l'agente riceve sono crittografati, consulta il codice dell'agente per sapere come decifrarli.
Esempio di risposta:
{"response": "command"}
/api/connections/<hashed_agent_id>/outputInvia l'output del comando, gli output sono crittografati e decifrati dall'API quando un client li richiede.
{
"command_output": "string"
}