Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
SynthAPT — Marco de simulación de adversarios basado en playbooks que compila rutas de ataque definidas en JSON en payloads de shellcode independientes de posición para validar detecciones avanzadas y agentes de investigación basados en IA. | Kitploit
Herramientas/GitHubGitHub/acedef/synthapt
Frameworks de Pruebas de PenetraciónEscalada de PrivilegiosFrameworks de ExploitsGeneración de PayloadsMovimiento LateralShellcodePost-ExplotaciónComando y ControlRed TeamingSeguridad de IAAtaque Adversario
2314715hace 5 mesesRevisado por Kitploit
GitHubacedef/synthapt

SynthAPT

Marco de simulación de adversarios basado en playbooks que compila rutas de ataque definidas en JSON en payloads de shellcode independientes de posición para validar detecciones avanzadas y agentes de investigación basados en IA.

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

SynthAPT

Resumen

SynthAPT es un marco de simulación de adversarios basado en playbooks para replicar rutas de ataque complejas. Está diseñado para validar detecciones avanzadas y agentes de investigación basados en IA. La idea central es que el comportamiento del malware puede expresarse en JSON y compilarse en malware funcional, permitiendo el desarrollo rápido de escenarios realistas utilizando LLMs.

El implante central es una carga útil de shellcode controlada por un intérprete de playbook. Un playbook predefine toda la ruta de ataque y el implante la sigue, moviéndose por el entorno mediante inyección de procesos, movimiento lateral, etc. Cada implante se genera como un hilo independiente con su propio conjunto de instrucciones, por lo que los ataques de múltiples etapas (por ejemplo, acceso inicial → escalada de privilegios → movimiento lateral → exfiltración) se expresan como un gráfico de implantes cooperantes, todos definidos de antemano en el playbook. Esto tiene tres ventajas principales:

  1. Las cargas útiles pueden imitar malware real sin infraestructura C2: toda la ruta de ataque está incrustada en la carga útil y las interacciones C2 pueden simularse
  2. Las cargas útiles son repetibles: ejecutan toda la ruta de ataque de manera idéntica cada vez, lo que las hace adecuadas para pruebas de regresión de detecciones
  3. Los LLMs pueden traducir informes de inteligencia de amenazas y blogs directamente en cargas útiles funcionales, sin requerir experiencia ofensiva ni construir malware desde cero

Características

  • Shellcode independiente de la posición - el implante es completamente PIC y se puede integrar en cualquier cargador o inyector
  • Amplia biblioteca de códigos de operación - ejecución, manipulación de tokens, inyección de procesos, vaciado de procesos (process hollowing), movimiento lateral, enumeración y modificación de AD, registro, servicios, y más
  • Cargas útiles autorreplicantes - el implante puede soltarse a sí mismo como EXE o DLL con un conjunto de tareas diferente, permitiendo la entrega en múltiples etapas sin un C2
  • Formatos de salida flexibles - compilar un playbook a shellcode sin formato, un PE EXE o un PE DLL
  • Python en memoria - se puede cargar de forma reflectiva un intérprete de Python en tiempo de ejecución, exponiendo todas las capacidades del implante como un módulo de Python para scripting flexible
  • Simulación de NPC - los códigos de operación 'explorer' permiten descomprimir y lanzar cargas útiles automáticamente de una manera que reproduce automáticamente artefactos de interacción del usuario (cuando se inyecta en Explorer.exe)
  • Editor TUI con agente LLM - un editor de playbooks basado en terminal con un agente Claude integrado que puede generar y editar playbooks a partir de lenguaje natural o inteligencia de amenazas
  • Cargador BOF - la funcionalidad puede extenderse con archivos Beacon Object estándar

Compilación desde el código fuente

Si no desea usar la versión precompilada, puede compilarlo de la siguiente manera:

  1. cargo
  2. rustup
  3. binutils-mingw-w64-x86-64```bash cargo install cargo-make rustup toolchain install nightly rustup target add x86_64-pc-windows-gnu --toolchain nightly
    sudo apt install gcc-mingw-w64-x86-64
Construir con cargo make:```bash
cargo make build
./target/release/synthapt

Esto compilará el shellcode y el editor.

Uso

Ejecutar SynthAPT sin ningún comando te llevará al editor. Puedes proporcionar una clave API de Claude y ver los cambios a medida que indicas.```bash SynthAPT playbook editor and compiler

Usage: synthapt [COMMAND]

Commands: edit Open the TUI editor with a playbook loaded from PATH validate Validate a playbook JSON file and print any errors export-skill Export the agent system prompt as a Claude Code slash command skill compile Compile a playbook to a payload

Si quieres usar otro LLM o una suscripción, puedes ejecutar `synthapt export-skill` y usarlo con cualquier configuración de codificación que tengas.

Debería generar un playbook JSON. Compílalo en un payload con el comando compile:```bash
Compile a playbook to a payload

Usage: synthapt compile [OPTIONS] <PLAYBOOK> [OUTPUT]

Arguments:
  <PLAYBOOK>  Path to the playbook JSON file
  [OUTPUT]    Output file path (default: payload.bin / payload.exe / payload.dll)

Options:
  -e, --exe          Compile to PE EXE
  -d, --dll          Compile to PE DLL
  -b, --base <BASE>  Override the embedded base shellcode with a custom binary
  -h, --help         Print help

Referencia de Opcodes

Las constantes se pueden definir como cadenas, objetos hexadecimales u objetos base64:```json "constants": [ "c:\windows\temp\file.txt", { "hex": "deadbeef" }, { "base64": "SGVsbG8=" } ]

---

### end (0x00)
Fin del conjunto de tareas. Añadido automáticamente por el compilador – no es necesario que lo agregues.

---

### store_result (0x01)
Almacena el último resultado de la operación en una variable.

| Campo | Tipo | |
|-------|------|-|
| var | u16 | **obligatorio** |```json
{ "op": "store_result", "var": 0 }

get_shellcode (0x02)

Devuelve los bytes de shellcode actuales con un ID de tarea opcional y/o un valor mágico insertado.

CampoTipo
tasku8opcional
magicu32 cadena hexadecimal o númeroopcional
{ "op": "get_shellcode" }
{ "op": "get_shellcode", "task": 5, "magic": "0x18181818" }
### sleep (0x03)
Espera durante el número especificado de milisegundos.

| Campo | Tipo | |
|-------|------|-|
| ms | u32 | **requerido** |```json
{ "op": "sleep", "ms": 5000 }

run_command (0x04)

Ejecuta un comando a través de cmd.exe.

CampoTipo
commandstringrequerido
{ "op": "run_command", "command": "whoami /all" }
---

### get_cwd (0x05)
Obtener el directorio de trabajo actual. Sin argumentos.```json
{ "op": "get_cwd" }

read_file (0x06)

Lee un archivo y devuelve su contenido.

CampoTipo
pathstringobligatorio
{ "op": "read_file", "path": "c:\users\public\data.txt" }
{ "op": "read_file", "path": "%0" }
---

### write_file (0x07)
Escribir bytes en un archivo.

| Campo | Tipo | |
|-------|------|-|
| path | string | **requerido** |
| content | bytes | *opcional* (archivo vacío si se omite) |```json
{ "op": "write_file", "path": "c:\\temp\\out.txt", "content": "hello" }
{ "op": "write_file", "path": "%0", "content": "$1" }

check_error (0x08)

Imprime el código de estado de una variable (0 = éxito, distinto de cero = error).

CampoTipo
varu16requerido
{ "op": "check_error", "var": 0 }
---

### condicional (0x09)
Salta a diferentes índices de tarea según el estado de la variable.

| Field | Type | |
|-------|------|-|
| mode | `"data"` o `"error"` | **requerido** |
| var1 | u16 | **requerido** |
| var2 | u16 | *opcional* (compara dos variables en lugar de una única verificación) |
| true | u16 | **requerido** (índice de tarea si la condición es verdadera) |
| false | u16 | **requerido** (índice de tarea si la condición es falsa) |

`true_target` y `false_target` se aceptan como alias de `true` y `false`.

Modos de una variable:
- `"data"` — verdadero si var1 tiene datos no vacíos
- `"error"` — verdadero si el estado de var1 es 0 (éxito)
Descargar herramienta