
Utility Python per verificare se un server TLS richiede certificati client e per analizzare i binari ELF locali alla ricerca di codice OpenSSL 3.x vulnerabile collegato a CVE-2022-3602 e CVE-2022-3786.
Questa è una raccolta di semplici utilità nel contesto delle CVE-2022-3602 e CVE-2022-3786 recentemente scoperte, che consentono di rispondere alle seguenti domande:
Eseguendo il seguente comando
python openssl_req_client_cert.py HOST_NAME PORT
si determinerà se l'autenticazione del client è richiesta dal server SSL, nel qual caso i server basati su OpenSSL 3.0.0..3.0.6 saranno vulnerabili alle CVE sopra citate [https://jfrog.com/knowledge-base/upcoming-openssl-3-x-critical-vulnerability/]
Ad esempio:
|ψ> python openssl_req_client_cert.py 127.0.0.1 12345
127.0.0.1:12345 -> Client certificate not required
Le applicazioni che eseguono OpenSSL sono facili da trascurare se la libreria è collegata staticamente nel binario dell'applicazione. Eseguendo il seguente comando
python scan_vulnerable_openssl_code.py ROOT_DIR
si eseguirà una scansione ricorsiva di ROOT_DIR alla ricerca di file ELF e si segnaleranno i file che contengono il pattern ossl_punycode_decode (indicativo di versioni >=3.0.0), mentre i file che contengono inoltre il pattern ripemd160_newctx, indicativo della versione aggiornata (3.0.7), saranno segnalati come tali.