Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CnaEmulator — Arnés de emulación y pruebas independiente para Cobalt Strike Aggressor Scripts (.cna) que valida la sintaxis, simula las APIs de Beacon y ejecuta BOFs mediante COFFLoader sin un teamserver. | Kitploit
Herramientas/GitHubGitHub/iterat0r/cnaemulator
Análisis Dinámico (Sandboxing)ExplotaciónScripting y AutomatizaciónPost-ExplotaciónPruebas de PenetraciónComando y ControlUtilidades y FrameworksAprendizaje y EducaciónRed TeamingDesarrollo de Payloads
GitHub
21313hace 7 díasAún no revisado
iterat0r/cnaemulator

CnaEmulator

Arnés de emulación y pruebas independiente para Cobalt Strike Aggressor Scripts (.cna) que valida la sintaxis, simula las APIs de Beacon y ejecuta BOFs mediante COFFLoader sin un teamserver.

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CnaEmulator - Emulador de Cobalt Strike Aggressor Script y Arnés de Simulación

CnaEmulator es un arnés de desarrollo, emulación y pruebas independiente y de propósito general para Cobalt Strike Aggressor Scripts (.cna). Permite a investigadores de seguridad, desarrolladores de herramientas y autores de BOF validar la sintaxis de scripts, simular comandos alias de la consola de Beacon y ejecutar Beacon Object Files (BOFs) en memoria directamente a través de COFFLoader64.exe sin necesidad de lanzar un teamserver o un cliente GUI.


[!WARNING] Descargo de responsabilidad: Este código fue generado completamente con Antigravity y aún no ha sido revisado.

Capacidades

  1. Validación de Sintaxis (check):
    • Compila scripts .cna utilizando el motor subyacente Sleep 2.1.
    • Detecta con precisión cadenas sin cerrar, caracteres sin escapar, errores de sintaxis del analizador y delimitadores faltantes con números de línea exactos del archivo.
  • Emulación de Funciones Aggressor:
    • Emula funciones oficiales de Cobalt Strike Beacon de la Documentación de HelpSystems/Fortra Aggressor Script.
    • Proporciona valores simulados realistas o valores de retorno positivos sin error para APIs de inyección de procesos, manipulación de tokens, sistema de archivos, red y callbacks de GUI.
  • Empaquetado Real de Binarios BOF (bof_pack):
    • Implementa serialización nativa Little-Endian que coincide con el formato binario datap de Cobalt Strike:
      • 'i': entero de 4 bytes
      • 's': short de 2 bytes
      • 'z': cadena terminada en nulo con prefijo de longitud (prefijo strlen + 1)
      • 'Z': cadena UTF-16LE ancha con prefijo de longitud
      • 'b': búfer binario con prefijo de longitud
  • Puente de Ejecución COFFLoader (beacon_inline_execute):
    • Intercepta automáticamente beacon_inline_execute($bid, $bof_data, "go", $packed_args).
    • Convierte los argumentos empaquetados a formato hexadecimal.
    • Ejecuta COFFLoader64.exe go <bof_path> <hex_args> como subproceso hijo.
    • Transmite la salida de consola del BOF en vivo directamente a stdout en tiempo real.
  • Suites de Pruebas Complementarias Universales y Verificación Automatizada (test):
    • Descubre y ejecuta automáticamente suites de escenarios complementarias <script>.cna.tests o <script>.tests.
    • Soporta pruebas de escenarios específicos por CLI y verificación automática de cláusulas de guarda de alias.
  • Consola Interactiva de Beacon (console):
    • Indicador de comandos interactivo (beacon> ) que soporta alias registrados, argumentos, documentación de ayuda y ejecución en vivo.

  • Estructura de Directorios

    root@kitploit:~
    .
    ├── .gitignore                # Reglas de Git ignore para binarios compilados y bytecode
    ├── COFFLoader64.exe          # Relocalizador y cargador COFF en memoria independiente de 64 bits
    ├── cna_emulator.bat          # Script lanzador de CLI conveniente
    ├── README.md                 # Documentación completa y guía de uso
    ├── TESTING.md                # Informe de verificación de componentes y puertas de calidad
    ├── TEST_SPEC.md              # Especificación de pruebas de 48 escenarios y 7 categorías
    └── CnaEmulator/              # Componente Java CNA Emulator
        ├── .gitignore            # Reglas de Git ignore para la subcarpeta CnaEmulator
        ├── CnaEmulator.java      # Código fuente del emulador y puente del motor Sleep
        ├── CnaEmulator.class     # Bytecode compilado
        ├── CnaEmulator.jar       # JAR de bytecode empaquetado
        ├── build.bat             # Script de compilación para compilar y empaquetar CnaEmulator
        ├── test.bat              # Script ejecutor de pruebas independiente (48 escenarios)
        └── tests/                # Suite de pruebas y fixtures
            ├── TestCnaEmulator.java  # Arnés de pruebas de 48 escenarios
            └── fixtures/             # Fixtures de prueba universales
                ├── sample_bof.cna        # Aggressor Script de ejemplo independiente
                ├── sample_bof.cna.tests  # Suite de pruebas complementaria
                ├── multi_alias.cna       # Script de ejemplo multi-alias
                └── multi_alias.cna.tests # Suite de pruebas complementaria multi-alias
    

    Requisitos y Prerrequisitos

    RequisitoDescripción y Configuración
    Java JDK (17+)Binarios java y javac. Configure JAVA_HOME con la ruta de su JDK y asegúrese de que %JAVA_HOME%\bin esté en PATH.
    Sleep 2.1 (sleep.jar)Motor de scripting para Aggressor Scripts. Descárguelo de Sleep 2.1 o cópielo de Cobalt Strike. Configure SLEEP_JAR (por ejemplo, set "SLEEP_JAR=C:\path\to\sleep.jar"), o coloque sleep.jar en la carpeta raíz o en CnaEmulator\.
    Cargador en Memoria (COFFLoader64.exe)Binario cargador independiente (por ejemplo, compilado de trustedsec/COFFLoader). Colocado en el directorio raíz o sobrescrito mediante COFFLOADER_PATH.

    Configuración Rápida del Entorno (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"
    

    Guía de Uso

    1. Compilación desde el Código Fuente

    Antes de ejecutar las clases compiladas o el JAR, compile CnaEmulator.java:

    Usando el Script de Compilación:

    root@kitploit:~
    CnaEmulator\build.bat
    

    O Compilación y Empaquetado Manual:

    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. Métodos de Ejecución

    Puede invocar CnaEmulator usando cualquiera de los siguientes métodos desde el directorio raíz del proyecto:

    Método A: Lanzador de Script por Lotes (Recomendado)

    El script lanzador maneja automáticamente el descubrimiento del JDK, la configuración del classpath y la resolución de rutas:

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

    Método B: JAR Ejecutable Compilado

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

    Método C: Bytecode de Clase Directo

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

    3. Acciones Principales y Ejemplos de Uso

    A. Validar Sintaxis de Script (check)

    Valida la sintaxis de Aggressor Script y compila árboles AST mediante Sleep 2.1 sin ejecutar código:

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

    Ejemplo con fixture incluido:

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

    Salida de Ejemplo:

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

    B. Ejecutar Comandos con Despacho BOF en Vivo (run)

    Ejecuta un alias Aggressor declarado, empaqueta argumentos en formato binario (bof_pack), resuelve el archivo objeto (script_resource) e invoca COFFLoader64.exe para ejecutar el BOF en la memoria del invocador:

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

    Ejemplo con fixture incluido:

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

    Salida de Ejemplo:

    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. Batería de Pruebas Automatizadas y Pruebas de Regresión (test)

    CnaEmulator test proporciona ejecución automatizada de pruebas:

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

    Modos de Ejecución:

    1. Ejecución de Escenario Específico: Si se especifican <alias> y [arguments...] en la línea de comandos, solo se ejecuta ese escenario específico.
    2. Descubrimiento de Archivo de Pruebas Complementario: Si no se proporcionan argumentos, CnaEmulator busca un archivo de pruebas complementario adyacente al script:
      • <script_dir>\<script_name>.cna.tests
      • <script_dir>\<script_name>.tests Si se encuentra, todas las líneas de escenario en el archivo complementario se ejecutan secuencialmente.
    3. Inspección Dinámica de Alias y Pruebas de Guarda: Si no existe un archivo de pruebas complementario, CnaEmulator inspecciona todos los alias de comando registrados y ejecuta una prueba de cláusula de guarda para asegurar que los conteos de argumentos inválidos produzcan errores de uso sin lanzar excepciones no controladas.

    Ejemplos:

    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
    

    Creación de Archivos de Pruebas Complementarios (<script>.cna.tests): Cree un archivo de texto plano adyacente a su script .cna. Cada línea no vacía y no comentada especifica un alias y sus parámetros:

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

    D. Consola Interactiva de Beacon Simulada (console)

    Lanza un indicador interactivo beacon> que soporta alias registrados, historial de comandos y ejecución simulada:

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

    Ejemplo de Sesión Interactiva:

    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. Pruebas de Proyectos BOF Externos

    CnaEmulator es completamente de propósito general y puede probar Aggressor Scripts y binarios BOF ubicados en cualquier directorio o repositorio externo en su sistema de archivos:

    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. Ejecución de la Suite de Autopruebas de CnaEmulator

    Para ejecutar la suite completa de pruebas de cumplimiento de especificación de 48 escenarios para CnaEmulator:

    root@kitploit:~
    CnaEmulator\test.bat
    

    Resultado Esperado:

    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)
    

    Catálogo de Funciones Emuladas

    Implementaciones Reales (Motor Funcional y Puente de Subprocesos)

    Función / Palabra claveDescripción
    bof_packEmpaqueta argumentos binarios Little-Endian (i, s, z, Z, b) con prefijo de longitud de búfer de 4 bytes.
    beacon_inline_executeGenera el subproceso COFFLoader64.exe go <bof.o> <hex_args> y transmite stdout en vivo.
    script_resourceResuelve rutas de recursos relativas en el directorio del script, bin/, ../bin/ y rutas relativas.
    openf, readb, closefE/S nativa del sistema de archivos para leer archivos .o BOF locales en búferes de bytes.
    btask, berror, blog, blog2Formatea y emite mensajes de tareas, estado y errores a stdout/stderr.
    beacon_command_registerRegistra alias, resúmenes y detalles de ayuda en el catálogo de comandos en vivo.
    beacon_commands, beacon_command_detailConsulta listados de comandos registrados y texto de ayuda para uso interactivo/consola.
    barchDevuelve "x64".
    bdata, beacon_infoDevuelve hash de metadatos de Beacon simulado (id: 1, pid: 13020, user: SYSTEM, arch: x64).
    beacons, beacon_idsDevuelve array de beacon simulado activo (["1"]).
    alias,

    [!NOTE] Implementaciones Ficticias / Stub: Todas las demás APIs de Cobalt Strike—incluyendo ejecución/inyección de procesos (bshell, bpowershell, bexecute, bspawn, binject), manipulación de tokens (bsteal_token, brev2self, bgetuid), navegación del sistema de archivos (bpwd, bls, bupload, bdownload), pivoting (socks, rportfwd), prompts de UI (prompt_text, prompt_confirm) y hooks de GUI (popup, menu, item, on)—están implementadas como stubs ficticios que devuelven valores positivos sin error (1, "NT AUTHORITY\SYSTEM", "C:\Windows\System32", true) o bloques no-op para que los scripts se ejecuten sin conexión sin fallar.

    Descargar herramienta
    command
    Vincula bloques de comandos como closures ejecutables para despacho interactivo o por CLI.