
HTTP-basierter Command-and-Control-Server mit Ende-zu-Ende-Verschlüsselung, Agentenverwaltung und einem integrierten Web-Frontend zum Senden von Befehlen und Anzeigen von Ausgaben.

$\textcolor{red}{\text{DIESES WERKZEUG IST NUR FÜR ETHISCHE ZWECKE VORGESEHEN!}}$
Mothership C2 ist ein Command-and-Control-Server, der in Python geschrieben ist.
Hier ist ein Beispiel-Screenshot des Frontends. Integriertes Terminal und Möglichkeit zum Erstellen und Löschen von Agents! Um das Frontend auszuführen, gehen Sie in das Verzeichnis webapp und führen Sie docker compose up aus.
Dokumentation für die API
Alle Endpunkte für die Clientseite erfordern das Admin-JWT.
/api/configKonfigurieren Sie die Datenbank, falls die Datenbank auf einem anderen Host als dem Standard läuft.
{
"host": "localhost",
"port": "6379",
"db": "0"
}
Beispielantwort:
{"response": "config updated!"}
/api/db/priv_keyHolen Sie sich den privaten Schlüssel für die Datenbank, um die Entschlüsselung von Befehlsantworten zu ermöglichen.
Beispielantwort:
{"response": "server private key"}
/api/connections/<agent_id>/commandSenden Sie einen Befehl an einen Agenten.
{
"command": "string",
"directory": ""
}
Beispielausgabe:
200
/api/connections/listListen Sie alle Verbindungen in der Datenbank auf.
Beispielantwort:
{"response": ["agent1", "agent2"]}
/api/connections/<agent_id>/outputHolen Sie sich die Ausgabe des Befehls.
Beispielantwort:
{"response": decrypted}
/api/connections/<agent_id>/closeSchließen Sie eine Verbindung mit einem Agenten.
Beispielantwort:
{"response": "deleted agent123!"}
/api/connections/createErstellen Sie eine neue Agenten-ID, mit der ein neuer Agent verbinden kann.
Beispielantwort:
{"response": "a52a7cca-5ca9-46ed-98c0-3ee694a97e45"}
/api/connections/<agent_id>/infoHolen Sie sich Informationen zu einer Verbindung, wie Betriebssystem, öffentlicher Schlüssel, Befehl, Befehlsausgabe, Befehlshistorie, serverseitiger öffentlicher Schlüssel.
Beispielantwort:
{"response":
{
"history": "",
"OS": "linux",
"pubKey": "0x000000",
"serverKey": "0x00000"
}
}
/api/connections/registerRegistrieren Sie einen Agenten.
{
"hashedID": "string",
"public_key": "string",
"target_os": "string"
}
/api/connections/<hashed_agent_id>/commandAgent erhält einen Shell-Befehl zur Ausführung. Die Befehle, die der Agent erhält, sind verschlüsselt; siehe den Code des Agenten, um zu erfahren, wie er Befehle entschlüsselt.
Beispielantwort:
{"response": "command"}
/api/connections/<hashed_agent_id>/outputSenden Sie die Befehlsausgabe. Ausgaben werden von der API verschlüsselt und entschlüsselt, wenn ein Client sie anfordert.
{
"command_output": "string"
}