本项目演示了一个真实的漏洞管理工作流程。通过使用Azure VM,我追踪了一个高严重性的签名验证漏洞,通过PowerShell手动确认,并部署了基于注册表的修复措施,以加固系统防止未经授权的代码执行。
Windows中的WinVerifyTrust函数存在一个隐蔽漏洞(CVE-2013-3900)。攻击者可以将恶意代码“搭便车”到已签名的文件上而不会破坏数字签名。这意味着即使文件携带恶意代码,它也可能看起来是“可信的”,从而绕过安全检查。
我首先在Azure VM(主机:Kaddy)上运行了Tenable扫描。扫描标记了一个“高”严重性漏洞(VPR 9.0),因为系统缺少一个名为EnableCertPaddingCheck的特定安全设置。

我不只是相信扫描仪的结果。我使用PowerShell检查注册表键是否实际存在
Get-ItemProperty -Path "HKLM:\Software\Microsoft\Cryptography\Wintrust\Config" -Name EnableCertPaddingCheck
结果:命令失败,出现"Path does not exist"错误。这确认了系统对此特定漏洞是彻底开放的。

我没有手动编辑注册表(RegEdit),而是使用PowerShell脚本应用修复。这更快、可重复且更安全,尤其适用于数百台机器。
我将修复应用于两者:

脚本完成后,我再次运行了验证检查。如最终日志所示,EnableCertPaddingCheck值现在设置为1。系统现在严格验证证书填充,有效关闭了安全漏洞。
