
Servidor de comando y control basado en HTTP con cifrado de extremo a extremo, gestión de agentes y una interfaz web integrada para enviar comandos y ver los resultados.

$\textcolor{red}{\text{¡ESTA HERRAMIENTA ES SOLO PARA USO ÉTICO!}}$
Mothership C2 es un servidor de comando y control escrito en Python
Aquí hay una captura de pantalla de muestra del frontend. Terminal integrada y forma de crear y eliminar agentes. Para ejecutar el frontend, ve a webapp y ejecuta docker compose up
documentación para la API
Todos los endpoints del lado del cliente requieren el JWT de administrador.
/api/configconfigurar la base de datos si la base de datos está en un host diferente al predeterminado
{
"host": "localhost",
"port": "6379",
"db": "0"
}
ejemplo de respuesta:
{"response": "config updated!"}
/api/db/priv_keyobtener la clave privada de la base de datos para permitir el descifrado de las respuestas de los comandos.
Ejemplo de respuesta:
{"response": "server private key"}
/api/connections/<agent_id>/commandenviar un comando a un agente.
{
"command": "string",
"directory": ""
}
Ejemplo de salida:
200
/api/connections/listlistar todas las conexiones en la base de datos.
Ejemplo de respuesta:
{"response": ["agent1", "agent2"]}
/api/connections/<agent_id>/outputObtener la salida del comando.
Ejemplo de respuesta:
{"response": decrypted}
/api/connections/<agent_id>/closeCerrar una conexión con un agente.
Ejemplo de respuesta:
{"response": "deleted agent123!"}
/api/connections/createCrear un nuevo ID de agente para que un nuevo agente se conecte.
Ejemplo de respuesta:
{"response": "a52a7cca-5ca9-46ed-98c0-3ee694a97e45"}
/api/connections/<agent_id>/infoObtener información de una conexión como SO, clave pública, comando, salida del comando, historial de comandos, clave pública del servidor.
Ejemplo de respuesta:
{"response":
{
"history": "",
"OS": "linux",
"pubKey": "0x000000",
"serverKey": "0x00000"
}
}
/api/connections/registerRegistrar un agente
{
"hashedID": "string",
"public_key": "string",
"target_os": "string"
}
/api/connections/<hashed_agent_id>/commandEl agente obtiene un comando de shell para ejecutar. Los comandos que recibe el agente están cifrados; consulte el código del agente para saber cómo descifra los comandos.
Ejemplo de respuesta:
{"response": "command"}
/api/connections/<hashed_agent_id>/outputEnviar la salida del comando; las salidas son cifradas y descifradas por la API cuando un cliente las solicita.
{
"command_output": "string"
}