
PowerShell-Toolkit zur Überprüfung, Härtung und Suche nach unsicherer NTLM-/SMB-Nutzung, das CVE-2025-50154 Risiken von Credential-Leaks mit Ereignisprotokollanalyse und Erkennungsabfragen adressiert.
Autor: w01f
Version: 1.0
Zweck: Überprüfen, härten und jagen nach unsicherer NTLM/SMB-Nutzung, um Risiken wie CVE-2025-50154 zu mindern.
Schweregrad: Hoch
Typ: NTLM-Anmeldeinformationsleck + Patch-Bypass (Zero-Click)
Betroffen: Windows 10/11, Windows Server
Zusammenfassung:
CVE-2025-50154 ist ein Bypass des früheren Patches von Microsoft für CVE-2025-24054. Selbst mit der vorherigen Absicherung kann eine präparierte Datei oder ein UNC-Pfad Windows Explorer dazu bringen, eine entfernte Ressource abzurufen und NTLM-Authentifizierung ohne Benutzerinteraktion (Zero-Click) auszulösen.
Dies kann zu Folgendem führen:
Warum es wichtig ist: Dieser Bypass zeigt, dass Angreifer weiterhin Legacy-Authentifizierungspfade über die Ressourcenverarbeitung des Explorers ausnutzen können. Die Härtung des NTLM- und SMB-Client-Verhaltens sowie die Überwachung verdächtiger, vom Explorer initiierter Verbindungen sind entscheidend.
.\NTLM_SMB_HardeningToolkit.ps1 -Mode Audit -AllowlistCIDRs "10.0.0.0/8,192.168.0.0/16" -HoursBack 24 -ExportJson .\ntlm_audit.json
.\NTLM_SMB_HardeningToolkit.ps1 -Mode Harden -AllowlistCIDRs "10.0.0.0/8,192.168.0.0/16" -SampleHosts "filesrv01.corp,10.0.5.20"
.\NTLM_SMB_HardeningToolkit.ps1 -Mode Revert
Nachfolgend finden Sie einsatzbereite Erkennungsabfragen, um verdächtige NTLM/SMB-Nutzung zu identifizieren, die möglicherweise mit CVE-2025-50154-Ausbeutungsmustern zusammenhängt.
DeviceNetworkEvents
| where InitiatingProcessFileName =~ "explorer.exe"
| where RemotePort in (445, 139)
| where not(RemoteIP in ("10.0.0.0/8","172.16.0.0/12","192.168.0.0/16"))
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName
let lnk = DeviceFileEvents
| where FileName endswith ".lnk"
| where FolderPath has @"\Users\" and FolderPath has @"\Desktop";
let smb = DeviceNetworkEvents
| where RemotePort in (445,139)
| where InitiatingProcessFileName =~ "explorer.exe";
lnk
| join kind=innerunique (smb) on DeviceId
| where smb.Timestamp between (lnk.Timestamp .. lnk.Timestamp + 5m)
| project DeviceName, lnk.Timestamp, smb.Timestamp, FolderPath, RemoteIP
DeviceLogonEvents
| where LogonType == "Network"
| where AuthenticationPackage =~ "NTLM"
| summarize count() by DeviceName, RemoteIP, AccountUpn, bin(Timestamp, 10m)
| order by count_ desc
explorer.exe zu TCP 445/139 außerhalb der Whitelist..lnk-Dateien auf Benutzerdesktops.Dieses Toolkit wird ausschließlich für Bildungs- und defensive Sicherheitszwecke bereitgestellt.
Nicht in Produktionsumgebungen ohne Änderungskontrolle und Tests verwenden.