
Эксплуатация CVE CurveBall
Этот скрипт на Ruby можно использовать для подмены легитимного центра сертификации и генерации сертификата, который будет считаться действительным для компьютеров Windows, затронутых уязвимостью CurveBall.
Вам необходимо получить сертификат от центра сертификации, который вы хотите подменить.
Затем вы можете запустить скрипт следующей командой:
ruby gen-rogue-cert.rb -in=ca.crt -subj="/C=France/ST=IleDeFrance/L=Paris/O=YoannDqr" -out=cert_rb.p12 -exe=DoNotDebugMe.exe -sh -type=exe -sh | bash
Скрипт можно использовать для генерации подписанных PE-файлов, а также TLS-серверов.
-in : обязательно ; путь к сертификату доверенного ЦС для подмены
-out : обязательно ; путь для сохранения сгенерированного сертификата
-type : обязательно ; может быть 'exe' для сертификата подписи кода или 'tls' для сертификата аутентификации сервера и клиента
-exe : необязательно ; имя исполняемого файла для подписи
-subj : опционально ; субъект сгенерированного сертификата
-sh : флаг опционально ; вернуть только команду bash, необходимую для использования сертификата (например, командная строка для подписи исполняемого файла)
Скрипт основан на библиотеке OpenSSL для Ruby https://github.com/ruby/openssl.
Он сгенерирует поддельный ЦС из открытого ключа, найденного во введенном сертификате. Затем он сгенерирует запрос на подпись сертификата и подпишет его сертификатом поддельного ЦС. Сертификат будет упакован в файл pcks12 и сохранен на вашем компьютере.
Чтобы добавить такие функции, как генерация TLS-сертификатов, просто измените расширения сертификата, созданного из запроса на подпись сертификата.
csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'codeSigning'))csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'serverAuth, clientAuth'))