
إثبات المفهوم لرفض الخدمة لـ CVE-2020-1350 (SIGRed)
يحتوي هذا المستودع على نسختي من استغلال إثبات المفهوم لرفض الخدمة لثغرة SIGRed التي كشفت عنها مايكروسوفت وبحوث تشيك بوينت في 14 يوليو 2020.
كما كتب @maxpl0it إثبات مفهوم نشره في 15 يوليو، لكنني بنيت استغلالي بشكل مختلف قليلاً عما فعلوه لذا اعتقدت أنه لا يزال يقدم قيمة لإصداره لفرق الأزرق (Blue Teams) لزيادة قدراتهم على الكشف وتوفير قطعة أخرى من البيانات للاختبار.
يحتوي هذا المستودع أيضًا على ملف PCAP يوضح شكل هذا الاستغلال على الشبكة.
حاولت تجهيز النطاقات اللازمة للقيام بذلك علنًا لكن واجهت بعض المشكلات في مزامنة سجلات NS بشكل صحيح لذا قمت بإعداد ذلك داخليًا في خدمة DNS. على حد علمي، لا ينبغي أن يؤثر ذلك على فعالية الاستغلال.
dnsexploitvm.lan في C:\Windows\System32\drivers\etc\hosts)lol لأنني لم أهتم باختطاف ذلك النطاق محليًا)hax.lol)، واجعل NS هو خادم DNS المارققبل تشغيل السكريبت، تأكد من ضبط الصف DNS_SERVER_ADDR في أعلى السكريبت ليكون به عنوان IP الخاص بك الصحيح، وقم بتثبيت التبعيات (dnspython)
ثم قم بتشغيل السكريبت (Python 3 فقط):
$ sudo ./cve-2020-1350-dos.py [victim DNS server] [DNS record]
لقد أجريت اختباراتي باستخدام 9.hax.lol، وكانت موثوقة جدًا. أسماء النطاقات الأطول والسجلات التي تحتوي على العديد من التسميات لا تعمل بشكل جيد.
مثال على مخرجات السكريبت:
$ sudo ./exploit.py 192.168.117.36 9.hax.lol
UDP server waiting for connection
TCP server waiting for connection
making DNS SIG request to 192.168.117.36: 9.hax.lol
got UDP connection from 192.168.117.36:54721
sending UDP response (len=27)
got TCP connection from 192.168.117.36:49804
sending TCP response (len=65523)

بعض الأمور الغريبة التي يجب الانتباه إليها: