
Exploração da CVE CurveBall
Este script Ruby pode ser usado para falsificar uma autoridade de certificação legítima e gerar um certificado que será considerado válido para computadores Windows afetados pela vulnerabilidade CurveBall.
Você precisa obter um certificado proveniente da autoridade de certificação que deseja falsificar.
Em seguida, você pode executar o script com o seguinte 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
O script pode ser usado para gerar PE assinados, bem como servidores TLS.
-in : obrigatório ; caminho para o certificado CA confiável a ser falsificado
-out : obrigatório ; caminho para armazenar o certificado gerado
-type : obrigatório ; pode ser 'exe' para certificado de assinatura de código ou 'tls' para certificado de autenticação de servidor e cliente
-exe : opcional ; nome do executável a assinar
-subj : opcional ; assunto do certificado gerado
-sh : flag opcional ; retorna apenas o comando bash necessário para usar o certificado (ex : linha de comando para assinar um executável)
O script é baseado na biblioteca ruby OpenSSL https://github.com/ruby/openssl.
Ele gerará uma CA falsa a partir da chave pública encontrada no certificado informado. Em seguida, ele gerará uma solicitação de assinatura de certificado e a assinará com o certificado da CA falsa. O certificado será empacotado em um arquivo pcks12 e salvo no seu computador.
Para adicionar recursos como a geração de certificados TLS, basta modificar as extensões do certificado gerado a partir da solicitação de assinatura de certificado.
csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'codeSigning'))csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'serverAuth, clientAuth'))