
NetExec-Modul: alle standardmäßigen Windows-Schwachstellenprüfungen in einem Durchlauf ausführen (nur Prüfung, kein Exploit)
Ein NetExec-Modul. Jeder Windows-Schwachstellen-Check.
Wie coerce_plus, für den gesamten Standard-Check-Satz — und nichts, was ausnutzt.
vulnscan ist ein Benutzermodul für NetExec (nxc). Es lädt die Standard-Module zur Prüfung von Windows-Schwachstellen und führt sie in einem Durchlauf gegen jeden Host aus.
Es implementiert die Checks nicht neu. Es nutzt nichts aus.
| Es wird | Es wird nicht |
|---|---|
zerologon, ms17-010, smbghost, nopac, printnightmare, coerce_plus, … aufrufen | Ein DC-Maschinenkennwort zurücksetzen |
coerce_plus ohne Listener aufrufen | PetitPotam / PrinterBug-Coercion zu deiner IP |
wdigest mit ACTION=check aufrufen | WDigest, RDP oder Remote-UAC aktivieren |
Eine [HIT] / [----]-Zusammenfassung ausgeben | NTDS, lsass dumpen oder Dateien ablegen |
Entfernte NetExec-Stubs (petitpotam, printerbug, dfscoerce, shadowcoerce) werden übersprungen — coerce_plus deckt diese Angriffsfläche bereits ab.
Der Dateiname muss vulnscan.py lauten. NetExec lehnt ein Modul ab, dessen Name nicht mit der Datei übereinstimmt.
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
Oder klonen:
git clone https://github.com/rvsh3ll/nxc-vulnscan.git
cp nxc-vulnscan/vulnscan.py ~/.nxc/modules/vulnscan.py
Benötigt eine funktionierende NetExec-Installation. Der Wrapper importiert Module aus nxc/modules/, die mit Ihrer Kopie ausgeliefert werden.
# 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
Admin-only-Prüfungen werden nur ausgeführt, wenn NetExec bereits eine privilegierte Sitzung hat (Pwn3d!).
| Option | Bedeutung |
|---|---|
CHECKS | Kommagetrennte Namen der Standardmodule. Standard: alle zutreffenden |
SKIP | Kommagetrennte Namen, die übersprungen werden sollen |
LIST | Gibt die integrierte Prüfungstabelle aus und beendet den Vorgang |
LISTENER | Ignoriert. Dieses Modul dient nur zur Prüfung |
Hosts, Domains und Konten unten sind Platzhalter.
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 =================================
Untergeordnete Module behalten ihren eigenen Namen in der ersten Spalte. vulnscan gibt am Ende eine Zusammenfassung aus.
| Modul | Prüfung |
|---|---|
ms17-010 | EternalBlue |
smbghost | SMBGhost (CVE-2020-0796) |
zerologon | Zerologon (CVE-2020-1472) — nur Prüfung, setzt kein leeres Passwort |
ntlm_reflection | NTLM-Reflexion (CVE-2025-33073) |
remove-mic | Drop-the-MIC (CVE-2019-1040) |
printnightmare | PrintNightmare |
spooler | Print Spooler erreichbar |
webdav | WebClient / DAV RPC (WebDAV-Coerce) |
coerce_plus | PetitPotam, PrinterBug, DFSCoerce, ShadowCoerce, MS-EVEN — kein Listener |
nopac | noPac (CVE-2021-42278 / 42287) — benötigt einen Domänenbenutzer |
enum_av | Endpoint-Schutz |
enum_ca | ADCS-CA über RPC |
sccm-recon6 | SCCM-Standort / Verteilungspunkt |
ioxidresolver | Zusätzliche Netzwerkschnittstellen |
Pwn3d!-Sitzung)| Modul | Prüfung |
|---|---|
ntlmv1 | LmCompatibilityLevel (NTLMv1 erlaubt) |
runasppl | LSA RunAsPPL |
uac | UAC EnableLUA |
install_elevated | AlwaysInstallElevated |
bitlocker | BitLocker-Status |
wdigest | WDigest UseLogonCredential — nur ACTION=check |
wcc | Windows-Sicherheitskonfiguration |
presence | Domänen-/Enterprise-Admin-Sitzungen |
Bewusst nicht enthalten: Credential-Dump (lsassy, ntdsutil, …), Exec (web_delivery, met_inject), Dateiablage (slinky, scuffy) und Aktivierungs-/Deaktivierungsmodule (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
Jedes Kind wird aus NetExecs eigenem Baum mit einer eindeutigen importlib-Spezifikation instanziiert (damit sie sich nicht gegenseitig überschreiben). LISTENER wird niemals weitergegeben. wdigest erhält immer ACTION=check.
-o SKIP=zerologon, wenn du zuerst den Rest des Pakets haben möchtest.wcc ist laut und kommuniziert mit RemoteRegistry. Überspringe es mit -o SKIP=wcc, wenn du nur CVE-Prüfungen möchtest.-M coerce_plus -o LISTENER=<your-ip> selbst aus. vulnscan wird das nicht tun.MIT © rvsh3ll