本仓库包含一个 PowerShell 修复与验证脚本,用于解决 Tenable/Nessus 扫描发现的问题:
该脚本通过设置以下注册表值来强制启用 WinVerifyTrust 证书填充检查:
EnableCertPaddingCheck (DWORD) = 1在 64 位系统上,扫描器要求该值同时在本机注册表路径和 Wow6432Node(32 位视图)注册表路径中设置。
CVE-2013-3900 涉及 Windows 如何使用 WinVerifyTrust 验证 Authenticode 签名。
如果未强制启用证书填充检查,某些精心构造的签名可能会在不安全场景下被视为有效,漏洞扫描器会将主机标记为不合规。

✅ 确保以管理员身份运行
✅ 检测操作系统是否为64 位
✅ 确保所需注册表键存在
✅ 将 EnableCertPaddingCheck 设置为:
$secureEnvironment = $true 时为 1(安全 / 推荐)$secureEnvironment = $false 时为 0(不安全 / 实验室/测试)✅ 打印清晰的前后对比表格及合规性结果
脚本位置:
scripts/Set-WinVerifyTrustCertPadding.ps1
脚本将设置应用到:
HKLM:\Software\Microsoft\Cryptography\Wintrust\ConfigHKLM:\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config(64 位操作系统)强制设置的值:
EnableCertPaddingCheck (DWORD)$secureEnvironment = $true → 启用缓解措施(推荐)$secureEnvironment = $false → 禁用缓解措施(仅限实验室/测试).\scripts\Set-WinVerifyTrustCertPadding.ps1
脚本通过以下方式验证配置:
0存在高危漏洞(插件 166555 – CVE-2013-3900)。
漏洞总数:5

高危漏洞已移除。
漏洞总数减少:5 → 4
