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

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

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

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

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

Категории

Все категории
Loading categories
BlackBerryC2 — Зашифрованная исследовательская платформа командования и управления (C2) для обучения кибербезопасности, лабораторных работ red team и экспериментов по безопасной связи клиент-сервер. | Kitploit
Инструменты/GitHubGitHub/dereeqw/blackberryc2
Инструменты шифрования/дешифрованияГенерация полезной нагрузкиОбход IDS/IPSСетевая безопасностьКриптографияТестирование на ПроникновениеКомандование и УправлениеОбучение и ОбразованиеRed TeamingИнструмент Удаленного Доступа
GitHubdereeqw/blackberryc2
31255 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

BlackBerryC2

Зашифрованная исследовательская платформа командования и управления (C2) для обучения кибербезопасности, лабораторных работ red team и экспериментов по безопасной связи клиент-сервер.

Репозиторий

BlackBerryC2 2.0.0-beta

BlackBerryC2 — это зашифрованная платформа для удаленного администрирования и C2, разработанная исключительно для образовательных целей, исследований в области безопасности и контролируемых лабораторных сред. BlackBerryC2 Demo

Проект демонстрирует, как построить пользовательский сервер управления и контроля с криптографией на уровне приложения, управлением сессиями и безопасной связью с клиентом без использования внешних TLS-стеков.


⚠️ Важное уведомление

Этот проект НЕ является вредоносным ПО и НЕ предназначен для несанкционированного доступа.

BlackBerryC2:

  • Не самораспространяется
  • Не использует уязвимости автоматически
  • Не включает механизмы сохранения
  • Не пытается обходить антивирусное ПО

Используйте только на системах и сетях, которыми вы владеете или на тестирование которых имеете явное разрешение.


Python-зависимости:

root@kitploit:~
pip install cryptography prompt_toolkit zstandard

zstandard опционален, но рекомендуется для передачи файлов размером более 1 ГБ.


Ключевые возможности

  • Пользовательский зашифрованный C2-сервер на основе TCP (v2.0)
  • Обмен ключами ECDHE (secp256r1) — эфемерный или постоянный
  • Аутентифицированное шифрование AES-256-GCM для каждой сессии
  • Аутентификация каждого пакета с помощью HMAC-SHA256 + номера последовательности для защиты от повторного воспроизведения
  • Несколько одновременных клиентских сессий
  • Интерактивная консоль оператора с автодополнением (prompt_toolkit)
  • Зашифрованное удаленное выполнение команд
  • Зашифрованная передача файлов со сжатием zlib / Zstandard
  • Рекурсивная загрузка/выгрузка директорий (get -r, put -r)
  • Фоновые передачи (-b) — неблокирующие, отменяемые
  • Поддержка возобновления передачи (файлы .partial + .resume)
  • Генератор клиентской полезной нагрузки (generate-payload)
  • Блокировка IP: постоянный список блокировки + временные авто-баны
  • Обнаружение сканирования / флуда: сканирование подключений, захват баннера, сбои рукопожатия, флуд heartbeat
  • Опциональная поддержка HTTP(S)/TLS-прокси (BlackBerryHTTPs_TLSProxyGUI)
  • SPA (Single Packet Authorization) и Port-Knocking предварительная аутентификация
  • Режим BerryTransfer — выделенный сервер только для передачи файлов (без оболочки)
  • Зашифрованный журнал сессии (AES-256-GCM + PBKDF2, 600k итераций)
  • Зашифрованный журнал сервера со встроенным просмотрщиком (команда log)

Криптографический дизайн

BlackBerryC2 v2.0 устанавливает безопасную связь следующим образом:

  1. Клиент подключается через TCP; сервер отправляет баннер службы.
  2. Клиент отправляет REQUEST_PUBKEY.
  3. Сервер отправляет свой эфемерный открытый ключ ECDHE (secp256r1).
  4. Клиент отправляет свой открытый ключ ECDHE + тег аутентификации HMAC-SHA256.
  5. Сервер проверяет HMAC по предварительно общему секрету (HMAC_PRE_SHARED_SECRET).
  6. Обе стороны выводят 256-битный ключ сессии AES через HKDF-SHA256 на основе общего секрета.
  7. Все дальнейшее общение использует AES-256-GCM с по-пакетным HMAC-SHA256 и номерами последовательности для защиты от повторного воспроизведения.

Каждая сессия поддерживает:

  • Собственный ключ AES-256 и ключ HMAC
  • Независимые nonce (12-байтовые случайные для каждого сообщения)
  • Изолированный трекер защиты от повторного воспроизведения (окно последовательности ±100)
  • Ограничитель скорости для защиты от флуда (настраиваемое количество команд/сек)

Все криптографические ключи генерируются во время выполнения и никогда не повторяются между перезапусками (если не установлен --persistente).


Запуск сервера

root@kitploit:~
python3 BlackBerryC2_server.py

Конфигурация по умолчанию:

  • Хост: 0.0.0.0
  • Порт: 9949

Аргументы командной строки

Примеры:

root@kitploit:~
# Базовый запуск (запрашивает парольную фразу для журнала)
python3 BlackBerryC2_server.py

# Постоянные ключи ECDHE + подробный режим
python3 BlackBerryC2_server.py -p -vv

# Пользовательский порт, без проверки HMAC
python3 BlackBerryC2_server.py -P 8080 --no-secure

# Port-knocking на пользовательских портах
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 9001,9002,9003

# Режим BerryTransfer с авто-подтверждением
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm

# Просмотр/расшифровка журналов без запуска сервера
python3 BlackBerryC2_server.py --logs

Команды консоли оператора

Управление сервером

Прокси


Команды сессии (внутри select <ID>)

Общие

Передача файлов


Режим BerryTransfer

BerryTransfer — это выделенный режим сервера только для передачи файлов, вдохновленный scp. При активации сервер отклоняет любой доступ к оболочке и принимает только команды протокола BT:*.

Запуск:

root@kitploit:~
python3 BlackBerryC2_server.py --berrytransfer
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm  # без запроса оператора для GET

Команды оболочки BerryTransfer:

Журнал передачи записывается в logs/bt_transfer.jsonl (опционально зашифрован AES-256-GCM).


SPA / Port-Knocking

Когда активен --spa, клиенты должны пройти аутентификацию через UDP до того, как TCP-соединение будет принято.

Режим SPA (по умолчанию): Клиент отправляет 32-байтовый токен HMAC-SHA256 на SPA_UDP_PORT.

root@kitploit:~
token = HMAC-SHA256(HMAC_SECRET, "{ip}:{time_window_30s}")

Режим Knock: Клиент последовательно стучит по UDP-портам в течение временного окна.

root@kitploit:~
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 7001,7002,7003 --knock-timeout 10

Авторизованные IP-адреса действительны в течение --spa-ttl секунд (по умолчанию 60).


Функции безопасности


Логирование

Просмотр журналов со встроенным просмотрщиком:

root@kitploit:~
BlackBerry> log

Или отдельно (без сервера):

root@kitploit:~
python3 BlackBerryC2_server.py --logs

Предполагаемое использование

Этот проект предназначен только для:

  • Образовательных демонстраций
  • Исследований в области безопасности
  • Контролируемых лабораторных сред
  • Авторизованного тестирования на проникновение

Несанкционированное использование против систем без разрешения строго запрещено.


Лицензия

См. файл LICENSE для получения полной информации о лицензии.


Отказ от ответственности

Данное программное обеспечение предоставляется "как есть", без каких-либо гарантий.
Авторы не несут ответственности за неправильное использование или ущерб, причиненный данным программным обеспечением.

Скачать инструмент
  • Конфигурация запуска сохраняется в logs/last_start.json
  • ФлагОписание
    -p / --persistenteИспользовать постоянные ключи ECDHE из ecdhe-cert/ (запрашивает парольную фразу)
    -vОтладка логирования
    -vvПодробное (расслабленное) логирование
    -H <host>Прослушиваемый хост (по умолчанию: 0.0.0.0)
    -P <port>Прослушиваемый порт (по умолчанию: 9949)
    --no-secureПринимать любого клиента ECDHE без проверки HMAC
    --hmac <secret>Пользовательский предварительно общий секрет HMAC (hex или строка)
    --log-passphrase <pass>Шифровать журнал сервера с помощью AES-256-GCM (PBKDF2 600k итераций)
    --logsИнтерактивный просмотрщик журналов — сервер не запускается
    --spaВключить предварительную аутентификацию SPA / port-knocking
    --spa-mode <spa|knock>spa = одиночный UDP-токен, knock = последовательность портов
    --spa-port <port>UDP-порт для SPA-слушателя (по умолчанию: 7331)
    --knock-seq <ports>Последовательность портов для режима knock (по умолчанию: 7001,7002,7003)
    --knock-timeout <sec>Секунды для завершения последовательности knock (по умолчанию: 10)
    --spa-ttl <sec>Секунды, в течение которых авторизованный IP остается действительным (по умолчанию: 60)
    --berrytransferРежим BerryTransfer: только передача файлов, без оболочки
    --transfer-root <dir>Корневая директория для BerryTransfer (по умолчанию: ./berry_transfers)
    --auto-confirmАвтоматически подтверждать все GET-запросы в BerryTransfer (без запроса оператора)
    КомандаОписание
    listСписок активных сессий со статистикой и именем хоста
    select <ID>Взаимодействие с клиентской сессией
    all <cmd>Отправить команду всем подключенным клиентам
    reportПолный отчет о состоянии сервера (аптайм, сессии, передачи)
    set host <HOST>Изменить прослушиваемый хост (перезапускает сервер)
    set port <PORT>Изменить прослушиваемый порт (перезапускает сервер)
    sVbanner "<text>"Изменить баннер службы
    generate-payloadСгенерировать клиентскую полезную нагрузку
    fingerprintПоказать отпечаток серверного ключа ECDHE (SHA-256)
    ecdhe-keysПоказать текущую пару ключей ECDHE (PEM)
    kill <id|ip>Завершить сессию по ID или IP
    block <IP>Постоянно заблокировать IP
    unblock <IP>Разблокировать IP (постоянный + временный)
    blocklistПоказать заблокированные IP (постоянные и временные)
    logИнтерактивный просмотрщик журналов (поддерживает зашифрованные журналы)
    reportСводка состояния: аптайм, сессии, передачи
    bannerПовторно отобразить стартовый баннер
    cleanУдалить файлы журналов сервера
    vПереключить отладку DEBUG
    vvПереключить подробное логирование VERBOSE
    cd <dir>Изменить рабочую директорию сервера
    E <cmd>Выполнить команду через os.system локально
    <любая команда>Выполнить локально на сервере
    exitОстановить сервер и выйти
    КомандаОписание
    proxyЗапустить демона TLS/HTTP-прокси (авто режим)
    proxy --mode <mode>Режимы: auto, tls, http, https, both, all
    proxy --statsПоказать статистику прокси
    proxy guiЗапустить GUI прокси (отдельный процесс)
    stop-proxyОстановить демона прокси
    stop-proxy-guiОстановить GUI прокси
    proxy-helpПолная справка по прокси
    КомандаОписание
    helpПоказать справку сессии
    exitВернуться в главную оболочку
    !<cmd>Выполнить команду локально на сервере
    <cmd>Выполнить команду на удаленном клиенте
    cmd1 && cmd2Цепочка: выполнить cmd2 только если cmd1 успешна
    cmd1 || cmd2Цепочка: выполнить cmd2 только если cmd1 не удалась
    cmd1 ; cmd2Цепочка: всегда выполнять cmd2
    КомандаОписание
    get <file>Скачать файл с клиента
    get <dir> -rРекурсивная загрузка директории
    get <file> -bФоновая загрузка (неблокирующая)
    get <dir> -r -bФоновая рекурсивная загрузка
    put <file>Выгрузить файл на клиент
    put <file> -excВыгрузить и выполнить в памяти (скрипты)
    put <dir> -rРекурсивная выгрузка директории
    put <file> -bФоновая выгрузка
    transfersСписок всех активных и завершенных передач
    stop <ID>Отменить фоновую передачу (например, stop T1)
    resume <local_file>Возобновить прерванную загрузку
    screenshotЗахват экрана клиента
    КомандаОписание
    confirm <ID>Подтвердить ожидающий GET-запрос
    deny <ID>Отклонить ожидающий GET-запрос
    pendingСписок GET-запросов, ожидающих подтверждения
    auto [on|off]Включить/выключить/установить авто-подтверждение
    clientsПоказать активные сессии BerryTransfer
    ls [dir]Список файлов в корне передачи
    tree [dir]Дерево файлов корня передачи
    find <name>Поиск файла в корне передачи
    rm <file>Удалить файл из корня передачи (с подтверждением)
    log [N]Показать последние N записей журнала передачи (по умолч. 30)
    cd <dir>Изменить локальную рабочую директорию
    pwdПоказать текущую локальную директорию
    !<cmd>Выполнить локальную системную команду
    exitОстановить сервер BerryTransfer
    ФункцияДетали
    Обмен ключамиECDHE secp256r1 эфемерный или постоянный
    Шифрование сессииAES-256-GCM, случайный 12-байтовый nonce на сообщение
    Аутентификация клиентаHMAC-SHA256 по общему секрету во время рукопожатия
    Целостность сообщенийHMAC-SHA256 на каждый пакет (покрывает seq + nonce + шифротекст)
    Защита от повторного воспроизведенияТрекер окна номеров последовательности на сессию
    Защита от понижения версииМинимальный размер ключа AES — 256 бит
    Ограничение частоты heartbeatМинимум 3 секунды между heartbeats; нарушения отслеживаются
    Защита от флуда командамиОграничитель скорости; авто-отключение после порога
    Обнаружение сканированияСчетчики сканирования подключений, захвата баннера, сбоев рукопожатия
    Управление IPПостоянный список блокировки + временные баны (авто и ручные)
    Шифрование журналаAES-256-GCM + PBKDF2-HMAC-SHA256 (600k итераций)
    Джиттер ответов10–50 мс случайный джиттер для защиты от атак по времени
    Предварительная аутентификацияSPA-токен или port-knocking до принятия TCP
    Файл журналаСодержимое
    logs/BlackBerryC2_Server.logОбычный ротируемый журнал сервера (INFO+)
    logs/BlackBerryC2_enc.logЗашифрованный журнал сервера (если установлен --log-passphrase)
    logs/sessions.jsonlСобытия сессий: подключение, отключение, байты
    logs/bt_transfer.jsonlЖурнал передачи файлов BerryTransfer
    logs/last_start.jsonСнимок конфигурации запуска (хост, порт, токен, PID)