
Exploitation de la CVE CurveBall
Ce script ruby peut être utilisé pour usurper une autorité de certification légitime et générer un certificat qui sera considéré comme valide pour les ordinateurs Windows affectés par la vulnérabilité CurveBall.
Vous devez obtenir un certificat provenant de l'autorité de certification que vous souhaitez usurper.
Ensuite, vous pouvez exécuter le script avec la commande suivante :
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
Le script peut être utilisé pour générer des PE signés ainsi que des serveurs TLS.
-in : obligatoire ; chemin vers le certificat CA de confiance à usurper
-out : obligatoire ; chemin pour stocker le certificat généré
-type : obligatoire ; peut être 'exe' pour un certificat de signature de code ou 'tls' pour un certificat d'authentification de serveur et de client
-exe : optionnel ; nom de l'exécutable à signer
-subj : optionnel ; sujet du certificat généré
-sh : indicateur optionnel ; renvoie uniquement la commande bash nécessaire pour utiliser le certificat (ex : ligne de commande pour signer un exécutable)
Le script est basé sur la bibliothèque ruby OpenSSL https://github.com/ruby/openssl.
Il générera une fausse CA à partir de la clé publique trouvée dans le certificat fourni. Ensuite, il générera une demande de signature de certificat et la signera avec le certificat de la fausse CA. Le certificat sera empaqueté dans un fichier pcks12 et enregistré sur votre ordinateur.
Pour ajouter des fonctionnalités comme la génération de certificats TLS, il suffit de modifier les extensions du certificat généré à partir de la demande de signature de certificat.
csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'codeSigning'))csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'serverAuth, clientAuth'))