
Исправление с помощью PowerShell для CVE-2013-3900 (WinVerifyTrust) / плагин Tenable 166555 с использованием EnableCertPaddingCheck.
Этот репозиторий содержит скрипт PowerShell для исправления и проверки, который закрывает уязвимость, обнаруженную Tenable/Nessus:
Скрипт принудительно включает проверку отступов сертификата WinVerifyTrust, устанавливая:
EnableCertPaddingCheck (DWORD) = 1На 64-битных системах сканеры требуют, чтобы значение было задано как в собственном пути реестра, так и в пути реестра Wow6432Node (32-битное представление).
CVE-2013-3900 связана с тем, как Windows проверяет подписи Authenticode с помощью WinVerifyTrust.
Если проверка отступов сертификата не включена, некоторые специально сформированные подписи могут быть признаны действительными в небезопасных сценариях, и сканеры уязвимостей пометят хост как несоответствующий требованиям.

✅ Проверяет, что запущен от имени Администратора
✅ Определяет, является ли ОС 64-битной
✅ Создает необходимые ветки реестра, если они отсутствуют
✅ Устанавливает EnableCertPaddingCheck в:
1, когда $secureEnvironment = $true (безопасный / рекомендуемый)0, когда $secureEnvironment = $false (небезопасный / лабораторное тестирование)✅ Выводит четкую таблицу До/После и результат проверки соответствия
Расположение скрипта:
scripts/Set-WinVerifyTrustCertPadding.ps1
Скрипт применяет настройку к:
HKLM:\Software\Microsoft\Cryptography\Wintrust\ConfigHKLM:\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config (64-битная ОС)Устанавливаемое значение:
EnableCertPaddingCheck (DWORD)$secureEnvironment = $true → включить смягчение (рекомендуется)$secureEnvironment = $false → отключить смягчение (только лабораторное тестирование).\scripts\Set-WinVerifyTrustCertPadding.ps1
Скрипт проверяет конфигурацию, выполняя:
0 в случае успехаОбнаружена уязвимость высокой степени серьезности (Плагин 166555 – CVE-2013-3900).
Всего обнаружений: 5

Уязвимость высокой степени серьезности устранена.
Количество обнаружений уменьшено: 5 → 4
