
Utilitários em Python para verificar se um servidor TLS exige certificados de cliente e para escanear binários ELF locais em busca de código vulnerável do OpenSSL 3.x vinculado a CVE-2022-3602 e CVE-2022-3786.
Esta é uma coleção de utilitários simples no contexto das recentemente descobertas CVE-2022-3602 e CVE-2022-3786, que permitem responder às seguintes perguntas:
Executar o seguinte comando
python openssl_req_client_cert.py HOST_NAME PORT
determinará se a autenticação de cliente é exigida pelo servidor SSL, caso em que servidores baseados em OpenSSL 3.0.0..3.0.6 estarão vulneráveis às CVEs acima [https://jfrog.com/knowledge-base/upcoming-openssl-3-x-critical-vulnerability/]
Por exemplo:
|ψ> python openssl_req_client_cert.py 127.0.0.1 12345
127.0.0.1:12345 -> Client certificate not required
Aplicações que executam OpenSSL são fáceis de passar despercebidas se a biblioteca estiver vinculada estaticamente a um binário de aplicação. Executar o seguinte comando
python scan_vulnerable_openssl_code.py ROOT_DIR
fará uma varredura recursiva em ROOT_DIR em busca de arquivos ELF e reportará os arquivos que incluem o padrão ossl_punycode_decode (indicativo de versões >=3.0.0), enquanto os arquivos que também incluem o padrão ripemd160_newctx, indicativo da versão atualizada (3.0.7), são reportados como tal.