
CurveBall CVE-Ausnutzung
Dieses Ruby-Skript kann verwendet werden, um eine legitime Zertifizierungsstelle zu spoofen und ein Zertifikat zu generieren, das auf Windows-Computern, die von der CurveBall-Schwachstelle betroffen sind, als gültig angesehen wird.
Sie benötigen ein Zertifikat von der Zertifizierungsstelle, die Sie spoofen möchten.
Dann können Sie das Skript mit folgendem Befehl ausführen:
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
Das Skript kann sowohl zum Generieren signierter PE-Dateien als auch für TLS-Server verwendet werden.
-in : obligatorisch; Pfad zum vertrauenswürdigen CA-Zertifikat, das gespooft werden soll
-out : obligatorisch; Pfad zum Speichern des generierten Zertifikats
-type : obligatorisch; kann 'exe' für Code-Signing-Zertifikat oder 'tls' für Server- und Client-Authentifizierungszertifikat sein
-exe : optional; Name der zu signierenden ausführbaren Datei
-subj : optional; Betreff des generierten Zertifikats
-sh : Flag optional; gibt nur den bash-Befehl zurück, der zur Verwendung des Zertifikats benötigt wird (z. B. Befehlszeile zum Signieren einer ausführbaren Datei)
Das Skript basiert auf der Ruby OpenSSL-Bibliothek https://github.com/ruby/openssl.
Es generiert eine gefälschte CA aus dem öffentlichen Schlüssel, der im eingegebenen Zertifikat gefunden wurde. Dann wird eine Zertifikatsignierungsanfrage (CSR) erstellt und mit dem gefälschten CA-Zertifikat signiert. Das Zertifikat wird in einer PKCS#12-Datei verpackt und auf Ihrem Computer gespeichert.
Um Funktionen wie das Generieren von TLS-Zertifikaten hinzuzufügen, ändern Sie einfach die Erweiterungen des Zertifikats, das aus der Zertifikatsignierungsanfrage generiert wurde.
csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'codeSigning'))csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'serverAuth, clientAuth'))