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

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

Дата публикации: 16 November 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. Клонирование и установка зависимостей сервера:
1
2
3
4
git clone https://github.com/boku7/venom
cd venom/server
pip3 install -r requirements.txt
python3 server.py

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

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

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

  1. Создание агента и обфускация:
1
2
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-запуски (пример)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<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-скриптов в необычных местах

1
2
3
4
5
6
7
8
9
<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.