
Correção do PowerShell para CVE-2013-3900 (WinVerifyTrust) / Tenable Plugin 166555 usando EnableCertPaddingCheck.
Este repositório contém um script de remediação + verificação em PowerShell que aborda o achado do Tenable/Nessus:
O script aplica a verificação de preenchimento de certificado WinVerifyTrust definindo:
EnableCertPaddingCheck (DWORD) = 1Em sistemas de 64 bits, os scanners exigem que o valor seja definido tanto no caminho de registro nativo quanto no caminho de registro Wow6432Node (visão de 32 bits).
CVE-2013-3900 está relacionado a como o Windows valida assinaturas Authenticode usando WinVerifyTrust.
Se as verificações de preenchimento de certificado não forem aplicadas, certas assinaturas falsificadas podem ser tratadas como válidas em cenários inseguros, e os scanners de vulnerabilidade sinalizarão o host como não conforme.

✅ Garante que seja executado como Administrador
✅ Detecta se o SO é 64 bits
✅ Garante que as chaves de registro necessárias existam
✅ Define EnableCertPaddingCheck para:
1 quando $secureEnvironment = $true (seguro / recomendado)0 quando $secureEnvironment = $false (inseguro / laboratório/teste)✅ Exibe uma tabela clara Antes/Depois e o resultado de conformidade
Localização do script:
scripts/Set-WinVerifyTrustCertPadding.ps1
O script aplica a configuração a:
HKLM:\Software\Microsoft\Cryptography\Wintrust\ConfigHKLM:\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config (SO de 64 bits)Valor aplicado:
EnableCertPaddingCheck (DWORD)$secureEnvironment = $true → aplicar mitigação (recomendado)$secureEnvironment = $false → desabilitar mitigação (apenas laboratório/teste).\scripts\Set-WinVerifyTrustCertPadding.ps1
O script verifica a configuração ao:
0 em caso de sucessoAchado de alta severidade presente (Plugin 166555 – CVE-2013-3900).
Total de achados: 5

Achado de alta severidade removido.
Total de achados reduzido: 5 → 4
