
Sfruttamento della CVE CurveBall
Questo script ruby può essere utilizzato per falsificare una legittima autorità di certificazione e generare un certificato che sarà considerato valido per i computer Windows affetti dalla vulnerabilità CurveBall.
Devi procurarti un certificato proveniente dall'autorità di certificazione che vuoi falsificare.
Poi, puoi eseguire lo script con il seguente comando :
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
Lo script può essere utilizzato per generare sia eseguibili PE firmati che server TLS.
-in : obbligatoria ; percorso del certificato CA attendibile da falsificare
-out : obbligatoria ; percorso in cui salvare il certificato generato
-type : obbligatoria ; può essere 'exe' per il certificato di firma del codice o 'tls' per il certificato di autenticazione server e client
-exe : opzionale ; nome dell'eseguibile da firmare
-subj : opzionale ; soggetto del certificato generato
-sh : flag opzionale ; restituisce solo il comando bash necessario per utilizzare il certificato (es : riga di comando per firmare un eseguibile)
Lo script si basa sulla libreria OpenSSL di ruby https://github.com/ruby/openssl.
Genera una CA falsa a partire dalla chiave pubblica trovata nel certificato inserito. Poi genera una richiesta di firma del certificato e la firma con il certificato CA falso. Il certificato verrà incluso in un file pcks12 e salvato sul tuo computer.
Per aggiungere funzionalità come la generazione di certificati TLS, basta modificare le estensioni del certificato generato dalla richiesta di firma del certificato.
csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'codeSigning'))csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'serverAuth, clientAuth'))