
Module NetExec : exécute en une seule passe toutes les vérifications de vulnérabilités Windows standard (vérification seule, sans exploitation)
Un seul module NetExec. Toutes les vérifications de vulnérabilités Windows.
Comme coerce_plus, pour l'ensemble des vérifications standard — et rien qui exploite.
vulnscan est un module utilisateur pour NetExec (nxc). Il charge les modules de vérification de vulnérabilités Windows standard et les exécute en une seule passe contre chaque hôte.
Il ne réimplémente pas les vérifications. Il n'exploite pas.
| Il va | Il ne va pas |
|---|---|
Appeler zerologon, ms17-010, smbghost, nopac, printnightmare, coerce_plus, … | Réinitialiser le mot de passe machine d'un DC |
Appeler coerce_plus sans listener | Coercition PetitPotam / PrinterBug vers votre IP |
Appeler wdigest avec ACTION=check | Activer WDigest, RDP ou l'UAC distant |
Afficher un résumé [HIT] / [----] | Vider NTDS, lsass ou déposer des fichiers |
Les stubs NetExec supprimés (petitpotam, printerbug, dfscoerce, shadowcoerce) sont ignorés — coerce_plus couvre déjà cette surface.
Le nom de fichier doit être vulnscan.py. NetExec refuse un module dont le nom ne correspond pas au fichier.
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
Ou cloner :
git clone https://github.com/rvsh3ll/nxc-vulnscan.git
cp nxc-vulnscan/vulnscan.py ~/.nxc/modules/vulnscan.py
Nécessite une installation fonctionnelle de NetExec. Le wrapper importe les modules depuis nxc/modules/ fournis avec votre copie.
# 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
Les vérifications réservées aux administrateurs ne s'exécutent que lorsque NetExec dispose déjà d'une session privilégiée (Pwn3d!).
| Option | Signification |
|---|---|
CHECKS | Noms de modules standards séparés par des virgules. Par défaut : tous ceux applicables |
SKIP | Noms à ignorer, séparés par des virgules |
LIST | Affiche le tableau des vérifications intégrées et s'arrête |
LISTENER | Ignoré. Ce module est uniquement destiné aux vérifications |
Les hôtes, domaines et comptes ci-dessous sont des espaces réservés.
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 =================================
Les modules enfants conservent leur propre nom dans la première colonne. vulnscan affiche un récapitulatif à la fin.
| Module | Vérification |
|---|---|
ms17-010 | EternalBlue |
smbghost | SMBGhost (CVE-2020-0796) |
zerologon | Zerologon (CVE-2020-1472) — vérification uniquement, ne définit pas de mot de passe vide |
ntlm_reflection | Réflexion NTLM (CVE-2025-33073) |
remove-mic | Drop-the-MIC (CVE-2019-1040) |
printnightmare | PrintNightmare |
spooler | Spouleur d'impression accessible |
webdav | WebClient / DAV RPC (coercition WebDAV) |
coerce_plus | PetitPotam, PrinterBug, DFSCoerce, ShadowCoerce, MS-EVEN — sans écouteur |
nopac | noPac (CVE-2021-42278 / 42287) — nécessite un utilisateur du domaine |
enum_av | Protection des points de terminaison |
enum_ca | CA ADCS via RPC |
sccm-recon6 | Site / point de distribution SCCM |
ioxidresolver | Interfaces réseau supplémentaires |
Pwn3d!)| Module | Vérification |
|---|---|
ntlmv1 | LmCompatibilityLevel (NTLMv1 autorisé) |
runasppl | LSA RunAsPPL |
uac | UAC EnableLUA |
install_elevated | AlwaysInstallElevated |
bitlocker | État de BitLocker |
wdigest | WDigest UseLogonCredential — ACTION=check uniquement |
wcc | Configuration de sécurité Windows |
presence | Sessions Domain / Enterprise Admin |
Non inclus volontairement : extraction d'identifiants (lsassy, ntdsutil, …), exécution (web_delivery, met_inject), dépôt de fichiers (slinky, scuffy), et modules d'activation/désactivation (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
Chaque enfant est instancié à partir de l’arbre propre de NetExec avec une spécification importlib unique (afin qu’ils ne s’écrasent pas mutuellement). LISTENER n’est jamais transmis. wdigest reçoit toujours ACTION=check.
-o SKIP=zerologon lorsque vous voulez d’abord le reste du pack.wcc est bruyant et communique avec RemoteRegistry. Ignorez-le avec -o SKIP=wcc si vous ne voulez que les vérifications CVE.-M coerce_plus -o LISTENER=<your-ip>. vulnscan ne le fera pas.MIT © rvsh3ll