
CVE PoC
Данный PoC предоставлен исключительно в образовательных и исследовательских целях. Автор не несет ответственности за неправомерное использование или ущерб, причиненный данным кодом.
Данный скрипт PowerShell является инструментом для тестирования атаки, описанной в CVE-2013-3900.
CVE-2013-3900 касается механизма Authenticode в Windows, при котором подпись PE (файлы EXE/DLL) может содержать дополнительные данные (padding) в разделе сертификата. В старых или стандартных настройках 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