
PowerShell-Behebung für CVE-2013-3900 (WinVerifyTrust) / Tenable Plugin 166555 mittels EnableCertPaddingCheck.
Dieses Repository enthält ein PowerShell-Skript zur Behebung und Überprüfung, das den Tenable/Nessus-Fund adressiert:
Das Skript erzwingt die WinVerifyTrust-Zertifikat-Padding-Überprüfung durch Setzen von:
EnableCertPaddingCheck (DWORD) = 1Auf 64-Bit-Systemen verlangen Scanner, dass der Wert sowohl im nativen Registrierungspfad als auch im Wow6432Node (32-Bit-Ansicht) Registrierungspfad gesetzt ist.
CVE-2013-3900 bezieht sich darauf, wie Windows Authenticode-Signaturen mittels WinVerifyTrust überprüft.
Wenn die Zertifikat-Padding-Überprüfungen nicht erzwungen werden, können bestimmte manipulierte Signaturen in unsicheren Szenarien als gültig behandelt werden, und Schwachstellenscanner markieren den Host als nicht konform.

✅ Stellt sicher, dass es als Administrator ausgeführt wird
✅ Erkennt, ob das Betriebssystem 64-Bit ist
✅ Stellt sicher, dass erforderliche Registrierungsschlüssel vorhanden sind
✅ Setzt EnableCertPaddingCheck auf:
1, wenn $secureEnvironment = $true (sicher / empfohlen)0, wenn $secureEnvironment = $false (unsicher / Labor/Tests)✅ Gibt eine klare Vorher/Nachher-Tabelle und das Compliance-Ergebnis aus
Skript-Pfad:
scripts/Set-WinVerifyTrustCertPadding.ps1
Das Skript wendet die Einstellung an auf:
HKLM:\Software\Microsoft\Cryptography\Wintrust\ConfigHKLM:\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config (64-Bit-Betriebssystem)Erzwungener Wert:
EnableCertPaddingCheck (DWORD)$secureEnvironment = $true → Minderung erzwingen (empfohlen)$secureEnvironment = $false → Minderung deaktivieren (nur Labor/Tests).\scripts\Set-WinVerifyTrustCertPadding.ps1
Das Skript überprüft die Konfiguration durch:
0 bei ErfolgHoher Schweregrad-Fund vorhanden (Plugin 166555 – CVE-2013-3900).
Gesamtfunde: 5

Hoher Schweregrad-Fund entfernt.
Gesamtfunde reduziert: 5 → 4
