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

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

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

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

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

Категории

Все категории
Loading categories
CnaEmulator — Автономный стенд для эмуляции и тестирования Aggressor Scripts (.cna) Cobalt Strike, который проверяет синтаксис, эмулирует Beacon API и выполняет BOF через COFFLoader без teamserver. | Kitploit
Инструменты/GitHubGitHub/iterat0r/cnaemulator
Динамический анализ (песочница)ЭксплуатацияСкриптинг и автоматизацияПост-эксплуатацияТестирование на ПроникновениеКомандование и УправлениеУтилиты и фреймворкиОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки
GitHub
213137 дней назадЕщё не проверено
iterat0r/cnaemulator

CnaEmulator

Автономный стенд для эмуляции и тестирования Aggressor Scripts (.cna) Cobalt Strike, который проверяет синтаксис, эмулирует Beacon API и выполняет BOF через COFFLoader без teamserver.

Репозиторий

Популярное

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

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

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

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

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

CnaEmulator — эмулятор Aggressor Script для Cobalt Strike и тестовый стенд

CnaEmulator — это автономный универсальный стенд для разработки, эмуляции и тестирования Aggressor Scripts (.cna) для Cobalt Strike. Он позволяет исследователям в области безопасности, разработчикам инструментов и авторам BOF проверять синтаксис скриптов, имитировать псевдонимы команд консоли Beacon и выполнять Beacon Object Files (BOF) в памяти напрямую через COFFLoader64.exe без запуска teamserver или GUI-клиента.


[!WARNING] Отказ от ответственности: Этот код был полностью сгенерирован с помощью Antigravity и ещё не прошёл проверку.

Возможности

  1. Проверка синтаксиса (check):
    • Компилирует скрипты .cna с использованием базового движка Sleep 2.1.
    • Точно обнаруживает незакрытые строки, неэкранированные символы, синтаксические ошибки парсера и отсутствующие разделители с указанием точных номеров строк в файле.
  • Эмуляция функций Aggressor:
    • Эмулирует официальные функции Cobalt Strike Beacon из документации HelpSystems/Fortra по Aggressor Script.
    • Предоставляет реалистичные фиктивные значения или положительные (не ошибочные) возвращаемые значения для API инъекции процессов, манипуляции токенами, файловой системы, сети и GUI-колбэков.
  • Реальная упаковка бинарных данных BOF (bof_pack):
    • Реализует нативную Little-Endian сериализацию, соответствующую бинарному формату datap в Cobalt Strike:
      • 'i': 4-байтовое целое
      • 's': 2-байтовое короткое целое
      • 'z': строка с префиксом длины и нулевым терминатором (префикс strlen + 1)
      • 'Z': широкая строка UTF-16LE с префиксом длины
      • 'b': бинарный буфер с префиксом длины
  • Мост выполнения COFFLoader (beacon_inline_execute):
    • Автоматически перехватывает beacon_inline_execute($bid, $bof_data, "go", $packed_args).
    • Преобразует упакованные аргументы в шестнадцатеричный формат.
    • Запускает COFFLoader64.exe go <bof_path> <hex_args> как дочерний подпроцесс.
    • Передаёт вывод консоли BOF в реальном времени напрямую в stdout.
  • Универсальные сопутствующие наборы тестов и автоматическая проверка (test):
    • Автоматически обнаруживает и выполняет сопутствующие сценарии <script>.cna.tests или <script>.tests.
    • Поддерживает целевое тестирование сценариев через CLI и автоматическую проверку защитных условий псевдонимов.
  • Интерактивная консоль Beacon (console):
    • Интерактивная командная строка (beacon> ) с поддержкой зарегистрированных псевдонимов, аргументов, справки и живого выполнения.

  • Структура каталогов

    root@kitploit:~
    .
    ├── .gitignore                # Git ignore rules for compiled binaries & bytecode
    ├── COFFLoader64.exe          # 64-bit Standalone in-memory COFF relocator and loader
    ├── cna_emulator.bat          # Convenient CLI launcher script
    ├── README.md                 # Comprehensive documentation and usage guide
    ├── TESTING.md                # Component verification report & quality gates
    ├── TEST_SPEC.md              # 48-scenario 7-category test specification
    └── CnaEmulator/              # Java CNA Emulator component
        ├── .gitignore            # Git ignore rules for CnaEmulator subfolder
        ├── CnaEmulator.java      # Emulator source code and Sleep engine bridge
        ├── CnaEmulator.class     # Compiled bytecode
        ├── CnaEmulator.jar       # Packaged bytecode JAR
        ├── build.bat             # Build script to compile and package CnaEmulator
        ├── test.bat              # Standalone test runner script (48 scenarios)
        └── tests/                # Test suite and fixtures
            ├── TestCnaEmulator.java  # 48-scenario test harness
            └── fixtures/             # Universal test fixtures
                ├── sample_bof.cna        # Standalone sample Aggressor Script
                ├── sample_bof.cna.tests  # Companion test suite
                ├── multi_alias.cna       # Multi-alias sample script
                └── multi_alias.cna.tests # Multi-alias companion test suite
    

    Требования и предварительная настройка

    ТребованиеОписание и настройка
    Java JDK (17+)Бинарные файлы java и javac. Установите JAVA_HOME в путь к вашему JDK и убедитесь, что %JAVA_HOME%\bin присутствует в PATH.
    Sleep 2.1 (sleep.jar)Движок скриптов для Aggressor Scripts. Скачайте с Sleep 2.1 или скопируйте из Cobalt Strike. Задайте SLEEP_JAR (например, set "SLEEP_JAR=C:\path\to\sleep.jar") или поместите sleep.jar в корневую папку либо в CnaEmulator\.
    Загрузчик в памяти (COFFLoader64.exe)Автономный бинарный загрузчик (например, скомпилированный из trustedsec/COFFLoader). Размещается в корневом каталоге или переопределяется через COFFLOADER_PATH.

    Быстрая настройка окружения (cmd.exe):

    root@kitploit:~
    set "JAVA_HOME=C:\path\to\jdk-17"
    set "PATH=%JAVA_HOME%\bin;%PATH%"
    set "SLEEP_JAR=C:\path\to\sleep.jar"
    

    Руководство по использованию

    1. Компиляция из исходного кода

    Перед запуском скомпилированных классов или JAR скомпилируйте CnaEmulator.java:

    Использование скрипта сборки:

    root@kitploit:~
    CnaEmulator\build.bat
    

    Или ручная компиляция и упаковка:

    root@kitploit:~
    :: Compile source to bytecode
    javac -cp "%SLEEP_JAR%" -d CnaEmulator CnaEmulator\CnaEmulator.java
    
    :: Package into executable bytecode JAR
    cd CnaEmulator
    jar cfe CnaEmulator.jar CnaEmulator *.class
    cd ..
    

    2. Способы запуска

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

    Способ A: Запуск через batch-скрипт (рекомендуется)

    Скрипт-лаунчер автоматически выполняет поиск JDK, настройку classpath и разрешение путей:

    root@kitploit:~
    cna_emulator.bat <action> [arguments...]
    

    Способ B: Скомпилированный исполняемый JAR

    root@kitploit:~
    java -cp "CnaEmulator\CnaEmulator.jar;%SLEEP_JAR%" CnaEmulator <action> [arguments...]
    

    Способ C: Прямой запуск байт-кода класса

    root@kitploit:~
    java -cp "CnaEmulator;%SLEEP_JAR%" CnaEmulator <action> [arguments...]
    

    3. Основные действия и примеры использования

    A. Проверка синтаксиса скрипта (check)

    Проверяет синтаксис Aggressor Script и компилирует AST-деревья через Sleep 2.1 без выполнения кода:

    root@kitploit:~
    cna_emulator.bat check <path\to\script.cna>
    

    Пример со встроенным фикстуром:

    root@kitploit:~
    cna_emulator.bat check CnaEmulator\tests\fixtures\sample_bof.cna
    

    Пример вывода:

    root@kitploit:~
    [*] Checking syntax of: CnaEmulator\tests\fixtures\sample_bof.cna
    [+] sample_bof.cna syntax OK
    

    B. Выполнение команд с живой отправкой BOF (run)

    Выполняет объявленный псевдоним Aggressor, упаковывает аргументы в бинарный формат (bof_pack), разрешает путь к объектному файлу (script_resource) и вызывает COFFLoader64.exe для выполнения BOF в памяти вызывающего процесса:

    root@kitploit:~
    cna_emulator.bat run <path\to\script.cna> <alias_name> [arguments...]
    

    Пример со встроенным фикстуром:

    root@kitploit:~
    cna_emulator.bat run CnaEmulator\tests\fixtures\sample_bof.cna sample_bof run test_target
    

    Пример вывода:

    root@kitploit:~
    [*] Invoking: sample_bof 1 run test_target
    [*] Tasked beacon: Executing sample_bof with action: run
    
    [+] [COFFLoader Bridge] Executing: COFFLoader64.exe go sample_bof.o
        | Got contents of COFF file
        | Running/Parsing the COFF file
        | Ran/parsed the coff
        | Outdata Below:
        | ...
    [+] [COFFLoader Bridge] Completed with exit code: 0
    

    C. Автоматизированный набор тестов и регрессионное тестирование (test)

    CnaEmulator test обеспечивает автоматизированное выполнение тестов:

    root@kitploit:~
    cna_emulator.bat test <path\to\script.cna> [alias] [arguments...]
    

    Режимы выполнения:

    1. Целевое выполнение сценария: Если <alias> и [arguments...] указаны в командной строке, выполняется только этот конкретный сценарий.
    2. Обнаружение сопутствующего файла тестов: Если аргументы не указаны, CnaEmulator проверяет наличие сопутствующего файла тестов рядом со скриптом:
      • <script_dir>\<script_name>.cna.tests
      • <script_dir>\<script_name>.tests Если файл найден, все строки сценариев из сопутствующего файла выполняются последовательно.
    3. Динамическая инспекция псевдонимов и проверка защитных условий: Если сопутствующий файл тестов отсутствует, CnaEmulator проверяет все зарегистрированные псевдонимы команд и выполняет тест защитного условия, чтобы убедиться, что неверное количество аргументов выводит ошибку использования без выброса необработанных исключений.

    Примеры:

    root@kitploit:~
    :: Run automated tests on the bundled sample script (executes sample_bof.cna.tests)
    cna_emulator.bat test CnaEmulator\tests\fixtures\sample_bof.cna
    
    :: Run automated tests on the bundled multi-alias script (executes multi_alias.cna.tests)
    cna_emulator.bat test CnaEmulator\tests\fixtures\multi_alias.cna
    
    :: Run a targeted scenario directly via CLI
    cna_emulator.bat test CnaEmulator\tests\fixtures\sample_bof.cna sample_bof query
    

    Создание сопутствующих файлов тестов (<script>.cna.tests): Создайте текстовый файл рядом с вашим скриптом .cna. Каждая непустая строка, не являющаяся комментарием, задаёт псевдоним и его параметры:

    root@kitploit:~
    # Sample BOF Companion Test Suite
    # Format: <alias> [arguments...]
    sample_bof run test_target
    sample_bof query
    

    D. Интерактивная имитация консоли Beacon (console)

    Запускает интерактивную командную строку beacon> с поддержкой зарегистрированных псевдонимов, истории команд и имитации выполнения:

    root@kitploit:~
    cna_emulator.bat console <path\to\script.cna>
    

    Пример интерактивной сессии:

    root@kitploit:~
    ====================================================================
      CnaEmulator Interactive Beacon Console
      Loaded Script: sample_bof.cna
    ====================================================================
    Type 'help' to see registered commands, or 'exit' to quit.
    
    beacon> help
    Registered Beacon Commands:
      - sample_bof : Sample BOF execution command
    
    beacon> sample_bof run local_target
    [*] Tasked beacon: Executing sample_bof with action: run
    [+] [COFFLoader Bridge] Executing: COFFLoader64.exe go sample_bof.o
    ...
    beacon> exit
    

    4. Тестирование внешних BOF-проектов

    CnaEmulator полностью универсален и может тестировать Aggressor Scripts и бинарные файлы BOF, расположенные в любом каталоге или внешнем репозитории в вашей файловой системе:

    root@kitploit:~
    :: Validate any external script syntax
    cna_emulator.bat check C:\Projects\CustomBof\my_bof.cna
    
    :: Execute external BOF alias commands with live arguments
    cna_emulator.bat run C:\Projects\CustomBof\my_bof.cna my_command target_argument
    
    :: Run companion test suites for external scripts
    cna_emulator.bat test C:\Projects\CustomBof\my_bof.cna
    
    :: Open interactive console with external script
    cna_emulator.bat console C:\Projects\CustomBof\my_bof.cna
    

    5. Запуск набора самотестирования CnaEmulator

    Чтобы запустить полный набор тестов на соответствие спецификации из 48 сценариев для CnaEmulator:

    root@kitploit:~
    CnaEmulator\test.bat
    

    Ожидаемый результат:

    root@kitploit:~
    ====================================================================
      Execution Summary
    ====================================================================
      Total Scenarios : 48
      Passed          : 48
      Failed          : 0
      Assertions      : 172
      Elapsed Time    : ~2800 ms
    ====================================================================
    [+] ALL 48 TEST SCENARIOS PASSED CLEANLY (100% SPECIFICATION CONFORMANCE)
    

    Каталог эмулируемых функций

    Реальные реализации (функциональный движок и мост подпроцессов)

    Функция / Ключевое словоОписание
    bof_packУпаковывает бинарные аргументы Little-Endian (i, s, z, Z, b) с 4-байтовым префиксом длины буфера.
    beacon_inline_executeЗапускает подпроцесс COFFLoader64.exe go <bof.o> <hex_args> и передаёт stdout в реальном времени.
    script_resourceРазрешает относительные пути к ресурсам в каталоге скрипта, bin/, ../bin/ и относительных путях.
    openf, readb, closefНативный файловый ввод-вывод для чтения локальных .o файлов BOF в байтовые буферы.
    btask, berror, blog, blog2Форматирует и выводит сообщения о задачах, статусе и ошибках в stdout/stderr.
    beacon_command_registerРегистрирует псевдонимы, краткие описания и справку в живом каталоге команд.
    beacon_commands, beacon_command_detailЗапрашивает списки зарегистрированных команд и текст справки для интерактивного/консольного использования.
    barchВозвращает "x64".
    bdata, beacon_infoВозвращает фиктивный хеш метаданных Beacon (id: 1, pid: 13020, user: SYSTEM, arch: x64).
    beacons, beacon_idsВозвращает массив активных имитируемых beacon (["1"]).
    ,

    [!NOTE] Фиктивные / заглушечные реализации: Все остальные API Cobalt Strike — включая выполнение/инъекцию процессов (bshell, bpowershell, bexecute, bspawn, binject), манипуляцию токенами (bsteal_token, brev2self, bgetuid), навигацию по файловой системе (bpwd, bls, bupload, bdownload), пивотинг (socks, rportfwd), UI-запросы (prompt_text, prompt_confirm) и GUI-хуки (popup, menu, item, on) — реализованы как фиктивные заглушки, возвращающие положительные (не ошибочные) значения (1, "NT AUTHORITY\SYSTEM", "C:\Windows\System32", true) или пустые блоки, чтобы скрипты выполнялись в автономном режиме без сбоев.

    Скачать инструмент
    alias
    command
    Привязывает блоки команд как исполняемые замыкания для интерактивной отправки или отправки через CLI.