yandex metrika
Venom C2 — лёгкая, кроссплатформенная и понятная командами платформа C2
Venom C2 — лёгкая, кроссплатформенная и понятная командами платформа C2

Venom C2 — лёгкая, кроссплатформенная и понятная командами платформа C2

Дата публикации: 16 ноября 2025 г.

Venom C2 — лёгкая, кроссплатформенная и понятная командами платформа командного управления, написанная без внешних зависимостей на Python3. Проект автора boku7 позиционируется как утилитарный инструмент для постэксплуатации в условиях, где установка пакетов нежелательна: сервер на Flask, операторский GUI на Electron и однобайтовый (single-file) агент на чистом Python, который передаёт AES-зашифрованные JSON-сообщения по HTTP(S). Это делает Venom удобным вариантом для быстрых red-team-кампаний и для ситуаций, когда на целевых хостах доступен только базовый стек Python.

Архитектура Venom C2

Архитектура разделена на три части:

  • Сервер (Flask-приложение). Управляет соединениями агентов, хранит историю команд, предоставляет API для GUI и выдаёт конфигурации. Сервер умеет генерировать агентов и имеет скрипты для обфускации и настройки профилей (URI, заголовки, JSON-поля), что повышает уникальность каждого агента в сети.

  • Операторский клиент (Electron). Кроссплатформенная оболочка для работы с сервером: просмотр сессий, выполнение команд, загрузка/скачивание файлов и создание туннелей SSH. Клиент лёгкий и удобный — GUI представляет собой упрощённый интерфейс, похожий на Loki GUI по функционалу.

  • Агент (single-file Python). Минималистичный скрипт без внешних библиотек, выполняющий команды оболочки, работу с файлами, создание reverse-SSH, sleep с джиттером и пр. Все сообщения между агентом и сервером идут в виде POST-запросов с AES-шифрованием и случайными профилями URI/заголовков для минимизации обнаружения.

Ключевая идея — запуск агента на хосте без установки зависимостей. Это упрощает развертывание на экзотических дистрибутивах или минимальных образах, где инструментам вроде Go-бинарников найти место проблематично.

Быстрый старт и развёртывание

Репозиторий доступен на GitHub (boku7/venom). Типичная последовательность развёртывания:

  1. Клонирование и установка зависимостей сервера:
git clone https://github.com/boku7/venom cd venom/server pip3 install -r requirements.txt python3 server.py

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

  1. Подготовка клиента:
cd ../client npm install npm run start

В GUI прописываются адрес и креды сервера — клиент связывается с API и открывает рабочее пространство.

  1. Создание агента и обфускация:
python3 agent_create.py -H <server_host> -P <server_port> [-http] python3 agent_obfuscate.py agents/<generated_agent_file>.py

Результат — единый .py-файл, который можно запустить на целевой машине. Для запуска на целевой системе достаточно python3 /path/to/obfuscated_agent.py.

Особенность подхода — сервер не требует контейнеризации или сложной сборки. Всё держится на Flask + Electron + минимальном Python-агенте.

Генерация и профиль агента

Venom ориентирован на разнообразие сетевых профилей: при генерации агенту присваиваются случайные базовые пути (URI), наборы заголовков, имена параметров JSON и юзер-агенты. Это позволяет снизить шаблонность трафика и усложнить сигнатурное детектирование. Сообщения шифруются AES-ключом, который передаётся в конфигурации агента.

Поддерживаемые команды агента включают: ls, cd, cat, upload, download, shell, sshrev (reverse SSH), sleep, kill и ряд утилит для работы с правами и файловой системой. Ведётся история команд на сервере, что удобно для аудита действий оператора.

Транспорты и устойчивость

По умолчанию коммуникация идёт по HTTP(S), но гибкость профилей и возможность скрывать сообщения в JSON делают Venom устойчивым к простым анализаторам. Обфускация кода и вариативность сетевого маршрута усложняют создание универсальных сигнатур. При этом архитектура не даёт готовых wireguard/mTLS-модулей — упор сделан на простоту и беззависимость.

Примеры вывода и поведение агента

После установления сессии сервер отображает ID агента, метку, IP, ОС и время последней активности. Агент считывает основную телеметрию: текущую директорию, список пользователей, активные процессы. Оператор может запускать команды, скачивать файлы или инициировать обратные SSH-туннели. Удобный CLI/API позволяет интегрировать автоматизацию и сценарии запуска.

Детектирование Venom C2

Хотя Venom сделан для скрытного использования, реализация на Python и использование HTTP(S) оставляют характерные следы. Ниже представлены адаптированные примеры правил и сигнатур, которые помогут SOC и Blue Team обнаружить активность, сходную с Venom-агентом. Правила — шаблоны, требующие настройки под конкретную сеть.

Wazuh / Windows — подозрительные PowerShell-запуски (пример)

<group name="venom,"> <rule id="130100" level="12"> <if_sid>61603</if_sid> <field name="win.eventdata.image" type="pcre2">powershell.exe</field> <field name="win.eventdata.commandLine" type="pcre2">-NoProfile\s+-ExecutionPolicy\s+Bypass\s+-EncodedCommand</field> <description>Possible Venom-related loader via PowerShell encoded command: $(win.eventdata.commandLine).</description> <mitre> <id>T1059.001</id> </mitre> </rule> </group>

Причина: часто агенты доставляются через однострочники PowerShell, запускающие Python-скрипт или декодирующие payload.

Wazuh — запуск Python-скриптов в необычных местах

<rule id="130101" level="10"> <if_sid>61603</if_sid> <field name="win.eventdata.image" type="pcre2">python.exe</field> <field name="win.eventdata.commandLine" type="pcre2">.*obfuscated_agent_.*\.py</field> <description>Execution of obfuscated Python agent detected: $(win.eventdata.commandLine).</description> <mitre> <id>T1204.002</id> </mitre> </rule>

YARA — простая сигнатура агента (пример)

rule venom_agent_py : venom { meta: description = "Venom C2 Python agent (heuristic)" author = "SOC team" reference = "https://github.com/boku7/venom" strings: $s1 = "venom" ascii $s2 = "sshrev" ascii $s3 = "AES" ascii $s4 = "/api/" ascii condition: (any of ($s*) and filesize < 5MB) }

Пояснение: поиск ключевых строк в обфусцированных скриптах даёт сигнатуры, но требует контроля ложных срабатываний.

Suricata / IDS — HTTP аномалии и длинные JSON-ответы

alert http any any -> any any (msg:"VENOM-DETECT Suspicious HTTP POST - JSON beacon"; \ http.method; content:"POST"; http.uri; pcre:"/\/api\/(agent|check|cmd)/"; \ http.body; pcre:"{\"[A-Za-z0-9_]{1,20}\":.*\"[A-Za-z0-9_]{1,20}\":.*}"; \ sid:2000001; rev:1; classtype:trojan-activity; priority:2;)

Аномалии: необычные базовые пути /api/ с непрерванными JSON-полями, большие AES-зашифрованные блоки в теле запроса или ответов.

DNS-мониторинг — частые запросы и большие TXT-ответы

Если агент использует HTTP→DNS fallback или скрытую эксфильтрацию через DNS, стоит отслеживать:

  • Частые поддомен-запросы к одному домену за короткое время.
  • Большие TXT-ответы (возможная передача зашифрованных фрагментов).

Пример Suricata-правила для длинных поддоменов и TXT-ответов приводится в виде шаблона, адаптируемого к конкретной сети.

Отследить и ограничить риски

Venom выигрывает простотой и беззависимостью, что облегчает эксплуатацию в жёстких окружениях. Эти же плюсы создают и слабые места. Однофайловый Python-агент легче статически просканировать, а уникальность профилей уменьшает повторяемость, но не исключает корреляций по поведению: считывание аномалий HTTP, необычные PowerShell-инлайны, запуск obfuscated-скриптов и нестандартные подключения к портам. Всё это — ключи для обнаружения.

Выводы

Venom C2 — пример прагматичного инструмента, созданного под конкретную задачу: работать в условиях, где установка сторонних пакетов невозможна, а на целевых хостах доступен только базовый Python3. Архитектура проста и понятна: Flask-сервер, Electron-GUI и single-file агент. Профилизация сетевого трафика и обфускация агентов повышают скрытность, но использование Python даёт детектируемые следы, с которыми SOC может работать, опираясь на поведенческие правила, сетевой анализ и контроль запуска скриптов.

Репозиторий проекта: https://github.com/boku7/venom — в нём подробно описаны шаги по развертыванию сервера, генерации и обфускации агентов, список доступных команд и рекомендации по безопасности API.