
Modulo NetExec: esegue tutti i controlli di vulnerabilità standard di Windows in un'unica passata (solo verifica, nessun exploit)
Un modulo NetExec. Ogni check di vulnerabilità Windows.
Come coerce_plus, per l'intero set di check standard — e nulla che sfrutti.
vulnscan è un modulo utente per NetExec (nxc). Carica i moduli di check di vulnerabilità Windows standard e li esegue in un'unica passata su ciascun host.
Non reimplementa i check. Non sfrutta.
| Farà | Non farà |
|---|---|
Chiamare zerologon, ms17-010, smbghost, nopac, printnightmare, coerce_plus, … | Reimpostare la password macchina di un DC |
Chiamare coerce_plus senza un listener | Coercizione PetitPotam / PrinterBug verso il tuo IP |
Chiamare wdigest con ACTION=check | Abilitare WDigest, RDP o UAC remoto |
Stampare un riepilogo [HIT] / [----] | Estrarre NTDS, lsass o rilasciare file |
Gli stub rimossi di NetExec (petitpotam, printerbug, dfscoerce, shadowcoerce) vengono saltati — coerce_plus copre già quella superficie.
Il nome del file deve essere vulnscan.py. NetExec rifiuta un modulo il cui nome non corrisponde al file.
mkdir -p ~/.nxc/modules
curl -fsSL https://raw.githubusercontent.com/rvsh3ll/nxc-vulnscan/main/vulnscan.py \
-o ~/.nxc/modules/vulnscan.py
nxc smb -L | grep vulnscan
Oppure clona:
git clone https://github.com/rvsh3ll/nxc-vulnscan.git
cp nxc-vulnscan/vulnscan.py ~/.nxc/modules/vulnscan.py
Richiede un'installazione funzionante di NetExec. Il wrapper importa i moduli da nxc/modules/ forniti con la tua copia.
# unauthenticated / null session
nxc smb 10.0.0.10 -M vulnscan
# domain user
nxc smb 10.0.0.10 -u jdoe -p 'Password' -d corp.local -M vulnscan
# SOCKS pivot
proxychains -q nxc smb 10.0.0.10 -u jdoe -p 'Password' -M vulnscan
# subset
nxc smb 10.0.0.10 -M vulnscan -o CHECKS=ms17-010,smbghost,zerologon,coerce_plus
# skip the slow Zerologon brute
nxc smb 10.0.0.10 -M vulnscan -o SKIP=zerologon
# list checks, do not scan
nxc smb 10.0.0.10 -M vulnscan -o LIST=1
I controlli solo amministratore vengono eseguiti solo quando NetExec dispone già di una sessione privilegiata (Pwn3d!).
| Opzione | Significato |
|---|---|
CHECKS | Nomi dei moduli standard separati da virgola. Predefinito: tutti quelli applicabili |
SKIP | Nomi da saltare, separati da virgola |
LIST | Stampa la tabella dei controlli integrati e termina |
LISTENER | Ignorato. Questo modulo è di sola verifica |
Gli host, i domini e gli account riportati di seguito sono segnaposto.
SMB 10.0.0.10 445 DC01 [*] Windows Server 2016 Standard (name:DC01) (domain:CORP.LOCAL) (signing:True)
SMB 10.0.0.10 445 DC01 [+] CORP.LOCAL\jdoe:Password
VULNSCAN 10.0.0.10 445 DC01 [*] Running 14 stock check modules (no exploit)
VULNSCAN 10.0.0.10 445 DC01 [*] --- ms17-010 ---
VULNSCAN 10.0.0.10 445 DC01 [*] --- smbghost ---
VULNSCAN 10.0.0.10 445 DC01 [*] --- zerologon ---
ZEROLOGON 10.0.0.10 445 DC01 VULNERABLE
ZEROLOGON 10.0.0.10 445 DC01 Next step: https://github.com/dirkjanm/CVE-2020-1472
VULNSCAN 10.0.0.10 445 DC01 [*] --- coerce_plus ---
COERCE_PLUS 10.0.0.10 445 DC01 VULNERABLE, DFSCoerce
COERCE_PLUS 10.0.0.10 445 DC01 VULNERABLE, PetitPotam
COERCE_PLUS 10.0.0.10 445 DC01 VULNERABLE, Printerbug
VULNSCAN 10.0.0.10 445 DC01 [*] --- spooler ---
SPOOLER 10.0.0.10 445 DC01 Spooler service enabled
VULNSCAN 10.0.0.10 445 DC01 ======== vulnscan summary ========
VULNSCAN 10.0.0.10 445 DC01 [HIT] zerologon VULNERABLE
VULNSCAN 10.0.0.10 445 DC01 [HIT] coerce_plus VULNERABLE, DFSCoerce | VULNERABLE, PetitPotam
VULNSCAN 10.0.0.10 445 DC01 [HIT] spooler Spooler service enabled
VULNSCAN 10.0.0.10 445 DC01 [*] [----] ms17-010 no highlight (not vulnerable / no signal)
VULNSCAN 10.0.0.10 445 DC01 [*] [----] smbghost no highlight (not vulnerable / no signal)
VULNSCAN 10.0.0.10 445 DC01 =================================
I moduli figli mantengono il proprio nome nella prima colonna. vulnscan stampa un riepilogo alla fine.
| Modulo | Controllo |
|---|---|
ms17-010 | EternalBlue |
smbghost | SMBGhost (CVE-2020-0796) |
zerologon | Zerologon (CVE-2020-1472) — solo controllo, non imposta una password vuota |
ntlm_reflection | Riflessione NTLM (CVE-2025-33073) |
remove-mic | Drop-the-MIC (CVE-2019-1040) |
printnightmare | PrintNightmare |
spooler | Print Spooler raggiungibile |
webdav | WebClient / DAV RPC (WebDAV coerce) |
coerce_plus | PetitPotam, PrinterBug, DFSCoerce, ShadowCoerce, MS-EVEN — nessun listener |
nopac | noPac (CVE-2021-42278 / 42287) — richiede un utente di dominio |
enum_av | Protezione endpoint |
enum_ca | ADCS CA via RPC |
sccm-recon6 | SCCM site / distribution point |
ioxidresolver | Interfacce di rete aggiuntive |
Pwn3d!)| Modulo | Controllo |
|---|---|
ntlmv1 | LmCompatibilityLevel (NTLMv1 consentito) |
runasppl | LSA RunAsPPL |
uac | UAC EnableLUA |
install_elevated | AlwaysInstallElevated |
bitlocker | Stato di BitLocker |
wdigest | WDigest UseLogonCredential — solo ACTION=check |
wcc | Configurazione di sicurezza di Windows |
presence | Sessioni Domain / Enterprise Admin |
Non inclusi di proposito: dump delle credenziali (lsassy, ntdsutil, …), exec (web_delivery, met_inject), file drops (slinky, scuffy) e moduli di abilitazione/disabilitazione (rdp, remote-uac).
nxc smb TARGET -M vulnscan
│
▼
~/.nxc/modules/vulnscan.py
│ importlib-load each stock module
▼
nxc/modules/ms17-010.py
nxc/modules/zerologon.py
nxc/modules/coerce_plus.py
...
│ on_login / on_admin_login
▼
per-check output + [HIT] summary
Ogni figlio viene istanziato dall'albero di NetExec stesso con una specifica importlib univoca (così non si sovrascrivono a vicenda). LISTENER non viene mai inoltrato. wdigest riceve sempre ACTION=check.
-o SKIP=zerologon quando vuoi prima il resto del pacchetto.wcc è rumoroso e comunica con RemoteRegistry. Salvalo con -o SKIP=wcc se vuoi solo i controlli CVE.-M coerce_plus -o LISTENER=<your-ip>. vulnscan non lo farà.MIT © rvsh3ll