
نص برمجي تجريبي (PoC) لثغرة Kr00k (CVE-2019-15126)
هذا السكريبت عبارة عن تجربة بسيطة لاستغلال ثغرة KR00K (CVE-2019-15126)، والتي تسمح بفك تشفير بعض بيانات WPA2 CCMP على الأجهزة المعرّضة للخطر (نقاط الوصول أو العملاء). بشكل أكثر تحديدًا، يحاول هذا السكريبت استرجاع البيانات المفكوكة التشفير لحزم WPA2 CCMP مع معرفة:
حيث:
يعمل هذا الإثبات المفاهيمي (PoC) على شبكات WLAN بتردد 2.4GHz وباستخدام تشفير WPA2 AES CCMP. (ملاحظة: تم اختباره فقط باستخدام محول اللاسلكي الخاص بي TPLINK TL-WN722N، لكنني أعتقد أنه سيعمل أيضًا مع محولات لاسلكية أخرى قادرة على حقن الحزم).
للتحقق من ثغرة Kr00k قد يكون من الضروري تشغيل الإثبات المفاهيمي (PoC) عدة مرات، لأنه (يبدو أنه) لا يتم دائمًا تخزين كمية كافية من البيانات في الأجهزة المعرّضة للخطر (تلميح: جرّب استخدام تطبيقات البث، مكالمات الفيديو، إلخ).
يجب تشغيل هذا السكريبت كمستخدم بصلاحيات كاملة ومع واجهة لاسلكية مضبوطة على وضع المراقبة (monitor mode)
مطلوب تثبيت حزم Python "scapy" و"Cryptodome". السكريبت متوافق مع Python 3.
فيما يلي بعض الأمثلة على استخدام الأداة. يجب عليك إدخال عناوين MAC الخاصة بنقطة الوصول (AP) والعميل (Client)، ومن المهم أيضًا ضبط قناة WiFi الصحيحة لشبكة WLAN بتشفير WPA2 CCMP وتحديد معرّف الهدف. استخدم الخيار "--help" للحصول على قائمة أكثر تفصيلاً.
# python3 kr00ker.py -i <interface-name> -b <BSSID> -c <MAC-client> -n <num-packets> -r <reason-id> -t <target-id> -w <wifi-channel> -d <delay>
بعض الأمثلة أدناه.
شغّل هجوم Kr00k باستخدام الواجهة wlan0mon ضد جهاز العميل (-t client)، مع reason 3، وتأخير ثانيتين، وعدد إطارات قطع الاتصال 5، على قناة wifi 2:
# python3 kr00ker.py -i wlan0mon -b XX:XX:XX:XX:XX:XX -c ZZ:ZZ:ZZ:ZZ:ZZ:ZZ -n 5 -r 3 -t client -w 2 -d 2
شغّل هجوم Kr00k باستخدام الواجهة wlan0mon ضد جهاز نقطة الوصول (-t ap)، مع reason الافتراضي 7، وتأخير افتراضي 4 ثوانٍ، وعدد افتراضي لإطارات قطع الاتصال 1، على قناة wifi 11:
$ sudo python3 kr00ker.py -i wlan0mon -b XX:XX:XX:XX:XX:XX -c ZZ:ZZ:ZZ:ZZ:ZZ:ZZ -t ap -w 11
عندما يتم تفعيل ثغرة Kr00k على الجهاز الهدف، تظهر البيانات المفكوكة التشفير بصيغة hexdump في المخرجات، كما يتم حفظ هذه البيانات أيضًا في ملف pcap.
فيما يلي مثال على مخرجات جهاز معرّض لثغرة KR00K:

تم تطوير kr00ker بواسطة Maurizio Siddu
حقوق النشر (c) 2020 kr00ker
هذا البرنامج برنامج حر: يمكنك إعادة توزيعه و/أو تعديله وفقًا لشروط رخصة جنو العامة (GNU General Public License) كما نشرتها مؤسسة البرمجيات الحرة، إما الإصدار 3 من الرخصة، أو (وفقًا لاختيارك) أي إصدار لاحق.
يُوزَّع هذا البرنامج على أمل أن يكون مفيدًا، ولكن دون أي ضمان؛ حتى بدون الضمان الضمني للقابلية للتسويق أو الملاءمة لغرض معين. راجع رخصة جنو العامة لمزيد من التفاصيل.
يجب أن تكون قد تلقيت نسخة من رخصة جنو العامة مع هذا البرنامج. إذا لم تكن كذلك، فاطلع على http://www.gnu.org/licenses/.