
Módulo de NetExec: ejecuta todas las comprobaciones de vulnerabilidades estándar de Windows en una sola pasada (solo comprobación, sin explotación)
Un módulo de NetExec. Todas las comprobaciones de vulnerabilidades de Windows.
Como coerce_plus, para todo el conjunto de comprobaciones estándar — y nada que explote.
vulnscan es un módulo de usuario para NetExec (nxc). Carga los módulos estándar de comprobación de vulnerabilidades de Windows y los ejecuta en una sola pasada contra cada host.
No reimplementa las comprobaciones. No explota.
| Hará | No hará |
|---|---|
Invocar zerologon, ms17-010, smbghost, nopac, printnightmare, coerce_plus, … | Restablecer la contraseña de equipo de un DC |
Invocar coerce_plus sin un listener | Coerción de PetitPotam / PrinterBug hacia tu IP |
Invocar wdigest con ACTION=check | Habilitar WDigest, RDP o UAC remoto |
Imprimir un resumen [HIT] / [----] | Volcar NTDS, lsass o dejar archivos |
Los stubs eliminados de NetExec (petitpotam, printerbug, dfscoerce, shadowcoerce) se omiten — coerce_plus ya cubre esa superficie.
El nombre del archivo debe ser vulnscan.py. NetExec rechaza un módulo cuyo nombre no coincida con el archivo.
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
O clona:
git clone https://github.com/rvsh3ll/nxc-vulnscan.git
cp nxc-vulnscan/vulnscan.py ~/.nxc/modules/vulnscan.py
Necesita una instalación funcional de NetExec. El wrapper importa módulos desde nxc/modules/ incluidos con tu 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
Las comprobaciones exclusivas de administrador solo se ejecutan cuando NetExec ya dispone de una sesión privilegiada (Pwn3d!).
| Opción | Significado |
|---|---|
CHECKS | Nombres de módulos estándar separados por comas. Predeterminado: todos los aplicables |
SKIP | Nombres separados por comas que se deben omitir |
LIST | Imprime la tabla de comprobaciones integradas y se detiene |
LISTENER | Ignorado. Este módulo es solo de comprobación |
Los hosts, dominios y cuentas a continuación son marcadores de posición.
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 =================================
Los módulos hijos conservan su propio nombre en la primera columna. vulnscan imprime un resumen al final.
| Módulo | Comprobación |
|---|---|
ms17-010 | EternalBlue |
smbghost | SMBGhost (CVE-2020-0796) |
zerologon | Zerologon (CVE-2020-1472) — solo comprobación, no establece una contraseña vacía |
ntlm_reflection | Reflexión NTLM (CVE-2025-33073) |
remove-mic | Drop-the-MIC (CVE-2019-1040) |
printnightmare | PrintNightmare |
spooler | Cola de impresión accesible |
webdav | WebClient / DAV RPC (coerción WebDAV) |
coerce_plus | PetitPotam, PrinterBug, DFSCoerce, ShadowCoerce, MS-EVEN — sin listener |
nopac | noPac (CVE-2021-42278 / 42287) — requiere un usuario de dominio |
enum_av | Protección de endpoint |
enum_ca | CA de ADCS vía RPC |
sccm-recon6 | Sitio / punto de distribución de SCCM |
ioxidresolver | Interfaces de red adicionales |
Pwn3d!)| Módulo | Comprobación |
|---|---|
ntlmv1 | LmCompatibilityLevel (NTLMv1 permitido) |
runasppl | LSA RunAsPPL |
uac | UAC EnableLUA |
install_elevated | AlwaysInstallElevated |
bitlocker | Estado de BitLocker |
wdigest | WDigest UseLogonCredential — solo ACTION=check |
wcc | Configuración de seguridad de Windows |
presence | Sesiones de Domain / Enterprise Admin |
No incluidos a propósito: volcado de credenciales (lsassy, ntdsutil, …), ejecución (web_delivery, met_inject), transferencia de archivos (slinky, scuffy) y módulos de habilitación/deshabilitación (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
Cada hijo se instancia desde el propio árbol de NetExec con una especificación importlib única (para que no se sobrescriban entre sí). LISTENER nunca se reenvía. wdigest siempre recibe ACTION=check.
-o SKIP=zerologon cuando quieras primero el resto del paquete.wcc es ruidoso y se comunica con RemoteRegistry. Omítelo con -o SKIP=wcc si solo quieres las comprobaciones de CVE.-M coerce_plus -o LISTENER=<your-ip>. vulnscan no hará eso.MIT © rvsh3ll