يقوم Scapy بإرسال حزمة DNS TSIG غير صالحة إلى BIND (انظر dns_exploit.py).
ب. تأكيد تعطل الحاوية
يظهر docker ps -a أن حاوية BIND قد خرجت بعد الاستغلال.
ج. دليل سجل التعطل
فشل التأكيد ذو الصلة وسجل التعطل من docker logs vulnerable_bind.
2. فشل تدوير سر NHI
يفشل عميل NHI (client_nhi_rotation.py) في تدوير السر بسبب انقطاع DNS، ويعود إلى استخدام بيانات اعتماد ثابتة.
3. تجاوز الثقة الصفرية
عرض توضيحي للتجاوز (bypass_demo.py): يتم قبول بيانات الاعتماد الثابتة من قبل واجهة برمجة التطبيقات المحمية، متجاوزًا ضوابط الثقة الصفرية.
الهدف
إظهار كيف يمكن للمهاجم استغلال ثغرة DNS حرجة (CVE-2025-40775) لتعطيل خوادم DNS، وتعطيل سير عمل تدوير أسرار الهويات غير البشرية (NHI)، واختطاف هويات الآلات – وبالتالي تجاوز أطر الثقة الصفرية. يركز هذا المشروع على ثغرات مستوى البروتوكول وفجوات دورة حياة NHI، متجنبًا الاعتماد على الذكاء الاصطناعي/التعلم الآلي.
الخلفية والأهمية
ثغرات DNS: استكشاف ثغرات DNS الحرجة (مثل رفض الخدمة في BIND عبر سجلات TSIG غير صالحة).
إدارة NHI: تحليل نقاط الضعف الشائعة في إدارة ودورة حياة الهويات غير البشرية (مفاتيح API، حسابات الخدمة، هويات الآلات) في البيئات السحابية.
أطر الثقة الصفرية: فهم كيف تعتمد مبادئ الثقة الصفرية على المصادقة المستمرة وتدوير الأسرار، وكيف يمكن للتعطيل أن يبطل هذه الافتراضات.
سلسلة الهجوم
المرحلة 1: التسبب في تعطل خادم DNS
الهدف: تعطيل تحليل DNS للخدمات السحابية المستهدفة.
الطريقة: صياغة استعلامات DNS غير صالحة تستغل ثغرة معروفة في BIND تتعلق بسجلات TSIG (CVE-2025-40775).
الأداة:Scapy لتوليد الحزم.
المرحلة 2: استغلال فشل تدوير أسرار NHI
الهدف: إجبار الأنظمة على الاعتماد على NHI ثابتة/احتياطية والاستيلاء عليها.
الطريقة: تعطيل الاتصال بمديري الأسرار (مثل HashiCorp Vault) عبر هجوم رفض الخدمة على DNS، مما يسبب إعادة محاولات تدوير الأسرار. التحقق مما إذا كانت الأسرار الاحتياطية النصية تُنقل أثناء هذه المحاولات، أو إذا كان الاعتماد على أسرار قديمة يخلق فرصة.
الهدف: استخدام NHI المسروقة/المكشوفة لانتحال هوية الخدمات واستخراج البيانات.
الطريقة: تزوير رموز المصادقة (مثل JWTs) أو استخدام مفاتيح API مباشرة للوصول إلى الموارد المحظورة.
الأداة: نص Python للوصول إلى نقطة نهاية API المحمية.
ملخص العرض التوضيحي
استغلال BIND 9.20.8 بحزمة DNS TSIG غير صالحة (باستخدام dns_exploit.py و Scapy) لتعطيل خادم DNS.
مراقبة فشل تدوير سر NHI في العميل (client_nhi_rotation.py) بسبب انقطاع DNS، مما يؤدي إلى العودة إلى بيانات اعتماد ثابتة/طارئة.
عرض توضيحي لتجاوز الثقة الصفرية باستخدام بيانات الاعتماد الثابتة (STATIC_BREAK_GLASS_KEY_XYZABC) للوصول إلى API المحمية (bypass_demo.py)، مما يمنح الوصول ويتجاوز السياسة.
الملفات الرئيسية
dns_exploit.py: نص Scapy لتحفيز رفض الخدمة في BIND.
client_nhi_rotation.py: يحاكي تدوير سر NHI والعودة إلى البيانات الثابتة.
bypass_demo.py: يوضح التجاوز باستخدام NHI ثابت.
api-service-mock/app.py: نقطة نهاية API محمية.
secrets-manager-mock/app.py: مدير أسرار محاكي.
docker-compose.yml: ينسق البيئة.
كيفية التشغيل
بناء البيئة وتشغيلها:
root@kitploit:~
docker-compose up -d --build
تشغيل استغلال DNS:
root@kitploit:~
python .\dns_exploit.py
تشغيل محاكاة عميل NHI:
root@kitploit:~
python .\client_nhi_rotation.py
تشغيل عرض التجاوز:
root@kitploit:~
python .\bypass_demo.py
التأثير
سلسلة استغلال من البداية إلى النهاية: رفض خدمة DNS → فشل تدوير NHI → كشف بيانات اعتماد ثابتة → تجاوز الثقة الصفرية.
سيناريو واقعي في السحابة الأصلية: يوضح كيف يمكن لهجمات طبقة البروتوكول تقويض أطر الأمان الحديثة.
التوصيات
التخلص من بيانات الاعتماد الثابتة/الطارئة قدر الإمكان.
تعزيز بنية DNS التحتية ومراقبة الحالات الشاذة في البروتوكول.
ضمان تعطل مديري الأسرار والعملاء بأمان تحت فشل البنية التحتية.
الإفصاح عن الثغرات
يوضح هذا المشروع تأثير CVE-2025-40775، وهي ثغرة رفض خدمة في BIND 9.20.0–9.20.8. يقوم المختبر ببناء وتشغيل BIND 9.20.8 عن قصد لمحاكاة هذا السيناريو. تم إجراء جميع الاختبارات في بيئة خاضعة للرقابة لأغراض البحث والتعليم فقط.
الوصف: عندما تتضمن رسالة DNS واردة توقيع معاملة (TSIG)، يتحقق BIND منها دائمًا. إذا احتوى TSIG على قيمة غير صالحة في حقل الخوارزمية، ينهي BIND فورًا مع فشل تأكيد.
الإصدارات المتأثرة: 9.20.0–9.20.8، 9.21.0–9.21.7
التأثير: رفض خدمة عن بعد غير مصادق عليه (CVSS 7.5 HIGH)