
CVE-2013-3900을 완화하기 위해 Windows 시스템에서 레지스트리 강화를 통해 인증서 패딩 검사를 활성화하는 PowerShell 스크립트
# CVE-2013-3900 수정 스크립트
# 32비트 및 64비트 구성에 대한 레지스트리 경로 정의
$regPaths = @(
"HKLM:\Software\Microsoft\Cryptography\Wintrust\Config",
"HKLM:\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config"
)
# 레지스트리 키를 추가하거나 업데이트하는 함수
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
}
# 두 레지스트리 경로 모두에 수정 적용
foreach ($path in $regPaths) {
Set-EnableCertPaddingCheck -path $path
}
# 변경 사항 확인
Write-Host "레지스트리 키가 성공적으로 업데이트되었습니다!" -ForegroundColor Green
# 변경 사항 확인
foreach ($path in $regPaths) {
$value = Get-ItemProperty -Path $path | Select-Object -ExpandProperty EnableCertPaddingCheck -ErrorAction SilentlyContinue
if ($value -eq 1) {
Write-Host "확인 성공 - $path: EnableCertPaddingCheck = 1" -ForegroundColor Green
} else {
Write-Host "확인 실패 - $path!" -ForegroundColor Red
}
}
# 변경 사항 적용을 위해 시스템 재시작
Write-Host "10초 후 시스템을 재시작하여 변경 사항을 적용합니다..." -ForegroundColor Yellow
Start-Sleep -Seconds 10
Restart-Computer -Force