
CVE PoC
本PoC仅用于教育和研究目的。 作者不对因使用此代码而导致的滥用或损害承担任何责任。
此PowerShell脚本是一个用于模拟CVE-2013-3900所描述攻击的测试工具。 CVE-2013-3900涉及Windows中的Authenticode机制,其中PE签名(EXE/DLL文件)可能在证书部分包含额外数据(填充)。在旧版或默认的Windows设置中,此类修改不会使签名失效,从而允许在文件中添加恶意代码,同时保留其“已签名”状态。 通过在注册表中启用EnableCertPaddingCheck=1,系统开始将额外填充视为违反完整性,从而拒绝此类文件。
脚本:
如果启用了防护,修改后的文件将被拒绝(0x800B0100);如果未启用,则会被接受(0x00000000)。
我使用MSBuild.exe,因为它是Windows系统文件,带有嵌入式Authenticode签名(而非目录签名),这样我们可以直接修改其证书部分,并可靠地模拟CVE-2013-3900漏洞。 这使得测试具有可重复性,并且无需下载额外文件即可在任何Windows Server安装上运行。
要运行脚本:
CMD C:\>powershell -ExecutionPolicy Bypass -File C:\CVE-2013-3900-PoC-padding-injection.ps1
链接: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2013-3900