
HTTP-сервер управления и контроля (C2) с сквозным шифрованием, управлением агентами и встроенным веб-интерфейсом для отправки команд и просмотра результатов.

$\textcolor{red}{\text{ЭТОТ ИНСТРУМЕНТ ТОЛЬКО ДЛЯ ЭТИЧНОГО ИСПОЛЬЗОВАНИЯ!}}$
Mothership C2 — это сервер управления и контроля (C2), написанный на Python.
Вот пример скриншота фронтенда. Встроенный терминал и способ создания и удаления агентов! Чтобы запустить фронтенд, перейдите в webapp и выполните docker compose up.
документация для API
Все конечные точки на стороне клиента требуют JWT-токена администратора.
/api/configнастройка базы данных, если база данных находится на хосте, отличном от стандартного
{
"host": "localhost",
"port": "6379",
"db": "0"
}
пример ответа:
{"response": "config updated!"}
/api/db/priv_keyполучить приватный ключ базы данных для расшифровки ответов команд.
Пример ответа:
{"response": "server private key"}
/api/connections/<agent_id>/commandотправить команду агенту.
{
"command": "string",
"directory": ""
}
Пример вывода:
200
/api/connections/listсписок всех соединений в базе данных.
Пример ответа:
{"response": ["agent1", "agent2"]}
/api/connections/<agent_id>/outputПолучить вывод команды.
Пример ответа:
{"response": decrypted}
/api/connections/<agent_id>/closeЗакрыть соединение с агентом.
Пример ответа:
{"response": "deleted agent123!"}
/api/connections/createСоздать новый идентификатор агента для подключения нового агента.
Пример ответа:
{"response": "a52a7cca-5ca9-46ed-98c0-3ee694a97e45"}
/api/connections/<agent_id>/infoПолучить информацию о соединении: ОС, открытый ключ, команда, вывод команды, история команд, открытый ключ серверной стороны.
Пример ответа:
{"response":
{
"history": "",
"OS": "linux",
"pubKey": "0x000000",
"serverKey": "0x00000"
}
}
/api/connections/registerРегистрация агента
{
"hashedID": "string",
"public_key": "string",
"target_os": "string"
}
/api/connections/<hashed_agent_id>/commandАгент получает команду оболочки для выполнения. Команды, которые получает агент, зашифрованы — см. код агента для понимания того, как он расшифровывает команды.
Пример ответа:
{"response": "command"}
/api/connections/<hashed_agent_id>/outputОтправить вывод команды. Выводы шифруются и расшифровываются API, когда клиент их запрашивает.
{
"command_output": "string"
}