
Serveur de commande et contrôle basé sur HTTP avec chiffrement de bout en bout, gestion des agents et une interface web intégrée pour envoyer des commandes et visualiser les résultats.

$\textcolor{red}{\text{CET OUTIL EST À USAGE ÉTHIQUE UNIQUEMENT!}}$
Mothership C2 est un serveur de commande et de contrôle écrit en Python
Voici un exemple de capture d'écran de l'interface utilisateur. Terminal intégré et moyen de créer et supprimer des agents ! Pour exécuter l'interface utilisateur, allez dans webapp et exécutez docker compose up
documentation de l'API
Tous les points de terminaison côté client nécessitent le JWT admin.
/api/configconfigurez la base de données si la base de données est sur un hôte autre que celui par défaut
{
"host": "localhost",
"port": "6379",
"db": "0"
}
exemple de réponse :
{"response": "config updated!"}
/api/db/priv_keyobtenir la clé privée pour la base de données afin de permettre le déchiffrement des réponses aux commandes.
Exemple de réponse :
{"response": "server private key"}
/api/connections/<agent_id>/commandenvoyer une commande à un agent.
{
"command": "string",
"directory": ""
}
Exemple de sortie :
200
/api/connections/listlister toutes les connexions dans la base de données.
Exemple de réponse :
{"response": ["agent1", "agent2"]}
/api/connections/<agent_id>/outputObtenir la sortie de la commande.
Exemple de réponse :
{"response": decrypted}
/api/connections/<agent_id>/closeFermer une connexion avec un agent.
Exemple de réponse :
{"response": "deleted agent123!"}
/api/connections/createCréer un nouvel ID d'agent pour qu'un nouvel agent se connecte.
Exemple de réponse :
{"response": "a52a7cca-5ca9-46ed-98c0-3ee694a97e45"}
/api/connections/<agent_id>/infoObtenir des informations sur une connexion telles que le système d'exploitation, la clé publique, la commande, la sortie de la commande, l'historique des commandes, la clé publique côté serveur.
Exemple de réponse :
{"response":
{
"history": "",
"OS": "linux",
"pubKey": "0x000000",
"serverKey": "0x00000"
}
}
/api/connections/registerEnregistrer un agent
{
"hashedID": "string",
"public_key": "string",
"target_os": "string"
}
/api/connections/<hashed_agent_id>/commandL'agent reçoit la commande shell à exécuter. Les commandes reçues par l'agent sont chiffrées, consultez le code de l'agent pour savoir comment il déchiffre les commandes.
Exemple de réponse :
{"response": "command"}
/api/connections/<hashed_agent_id>/outputEnvoyer la sortie de la commande, les sorties sont chiffrées et déchiffrées par l'API lorsqu'un client les demande.
{
"command_output": "string"
}