
Script de PowerShell para remediar CVE-2013-3900 mediante la habilitación de la comprobación de relleno de certificados a través del hardening del registro en sistemas Windows.
# Script de Corrección de CVE-2013-3900
# Definir rutas de registro para configuraciones de 32 bits y 64 bits
$regPaths = @(
"HKLM:\Software\Microsoft\Cryptography\Wintrust\Config",
"HKLM:\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config"
)
# Función para agregar o actualizar la clave de registro
function Set-EnableCertPaddingCheck {
param (
[string]$path
)
if (!(Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
}
Set-ItemProperty -Path $path -Name "EnableCertPaddingCheck" -Value 1 -Type DWord
}
# Aplicar la corrección a ambas rutas de registro
foreach ($path in $regPaths) {
Set-EnableCertPaddingCheck -path $path
}
# Confirmar cambios
Write-Host "¡Claves de registro actualizadas exitosamente!" -ForegroundColor Green
# Verificar los cambios
foreach ($path in $regPaths) {
$value = Get-ItemProperty -Path $path | Select-Object -ExpandProperty EnableCertPaddingCheck -ErrorAction SilentlyContinue
if ($value -eq 1) {
Write-Host "Verificación exitosa para $path: EnableCertPaddingCheck = 1" -ForegroundColor Green
} else {
Write-Host "¡Verificación fallida para $path!" -ForegroundColor Red
}
}
# Reiniciar el sistema para aplicar los cambios
Write-Host "Reiniciando el sistema en 10 segundos para aplicar los cambios..." -ForegroundColor Yellow
Start-Sleep -Seconds 10
Restart-Computer -Force