مدقق ثغرة الاتصال حول Ivanti
نظرة عامة
تشكل سلسلة هجوم الاتصال حول (Connect Around)، التي تشمل CVE-2023-46805 و CVE-2024-21887، تهديدًا كبيرًا لأجهزة Ivanti Connect Secure و Policy Secure. تتيح سلسلة الهجوم هذه وصولًا غير مصرح به وتنفيذ أوامر على الأنظمة الضعيفة. يسمح CVE-2023-46805 للمهاجمين بتجاوز ضوابط المصادقة، بينما يمكن استغلال CVE-2024-21887، وهو ثغرة حقن أوامر، دون الحاجة إلى مصادقة عند دمجه مع الأول. يستدعي هذا الثنائي من الثغرات اهتمامًا عاجلاً من المؤسسات التي تستخدم منتجات Ivanti، محفزًا إياهم على تطبيق التخفيفات المتاحة كما هو مفصل في منتدى مجتمع Ivanti.
استجابةً لحاجة المؤسسات إلى التحقق من حالة التخفيف، تم تطوير مدقق ثغرة الاتصال حول Ivanti. هذا السكربت مصمم لتقييم أجهزة Ivanti Connect Secure و Policy Secure بحثًا عن الثغرات المرتبطة بسلسلة هجوم الاتصال حول. يقوم بإجراء فحوصات للتحقق من وجود هذه الثغرات ويخرج النتائج بتنسيق CSV. يتم استخدام منهجيات متعددة للتحقق من التخفيف لتوفير تقييم شامل وموثوق.
ملاحظة: لا يتحقق هذا السكربت من CVE-2024-21888 أو CVE-2024-21893.
الميزات
- طرق تحقق متعددة: لضمان شمولية التحقق، يتم إجراء طرق اختبار متعددة لكل هدف. يتم إرجاع النتائج لكل نهج.
- فحص متزامن للمضيفين: يقوم بمسح مضيفين متعددين في وقت واحد بكفاءة، مما يقلل الوقت اللازم لتقييم الثغرات عبر الشبكة.
- وسائط سطر أوامر قابلة للتخصيص: يوفر مرونة لتحديد معلمات محددة مثل مسارات ملفات الإدخال والإخراج، وعدد الخيوط المتزامنة للمسح، والمنافذ القابلة للاختيار، مما يضمن مسحًا مخصصًا ودقيقًا.
- إدارة مخرجات تكيفية: يقوم تلقائيًا بإنشاء ملفات مخرجات باستخدام اصطلاح تسمية افتراضي استنادًا إلى التاريخ والوقت الحاليين، مع السماح أيضًا للمستخدمين بتحديد أسماء ملفات مخصصة تناسب احتياجات مؤسستهم.
- معالجة متقدمة للأخطاء: يوفر تقارير شاملة عن الأخطاء، بما في ذلك رموز خطأ HTTP التفصيلية، ومشكلات الاتصال بالشبكة، وأخطاء أخرى غير متوقعة، مما يتيح تحديدًا دقيقًا واستكشاف الأخطاء وإصلاحها أثناء المسح.
- مرونة المنافذ: يسمح للمستخدمين بتحديد منافذ محددة للمسح (مع 80 و 443 كافتراضيين)، مما يلبي تكوينات الشبكة المتنوعة ويعزز عمق تقييم الثغرات.
- مخرجات وحدة تحكم مرمزة بالألوان: ميزة اختيارية لتحسين تجربة المستخدم، تقدم مخرجات مرمزة بالألوان في وحدة التحكم لسهولة وسرعة التعرف على حالات المسح المختلفة، مما يحسن قابلية قراءة النتائج وتفسيرها.
أنواع الفحوصات
يقوم السكربت بإجراء فحوصات متنوعة لتقييم الحالة الأمنية لأنظمة Ivanti Connect Secure. يعتمد كل فحص على منهجيات محددة مقتبسة من أبحاث مجتمع أمن المعلومات.
الوصول عبر الويب
- المنهجية: مقتبسة من أبحاث WatchTowr Labs.
- الوصف: يطلب نقطة النهاية
/api/v1/configuration/users/user-roles/user-role/rest-userrole1/web/web-bookmarks/bookmark دون مصادقة.
- النتيجة الإيجابية: الحالة المعروضة - "ضعيف".
- النتيجة السلبية: الحالة المعروضة - "مخفف".
- رابط البحث: أبحاث WatchTowr Labs.
معلومات النظام
- المنهجية: مقتبسة من أبحاث Stephen Fewer في Rapid7.
- الوصف: يحاول الوصول إلى URI
/api/v1/system/system-information.
- النتيجة الإيجابية: الحالة المعروضة - "ضعيف".
- النتيجة السلبية: الحالة المعروضة - "مخفف".
- رابط البحث: وحدة Metasploit Framework.
تم اكتشاف تجاوز
- المنهجية: مقتبسة من أبحاث Assetnote حول مسارات URI بديلة للتجاوز.
- الوصف: يحاول الوصول إلى URI
/admin/options/.
- النتيجة الإيجابية: الحالة المعروضة - "ضعيف (تم اكتشاف تجاوز)".
- النتيجة السلبية: الحالة المعروضة - "غير ضعيف".
- رابط البحث: Assetnote.
يوفر كل فحص رؤى حول الثغرات المحتملة. تشير "ضعيف" إلى وجود ثغرة مؤكدة، بينما تشير "مخفف" أو "غير ضعيف" إلى أن النظام يبدو آمنًا ضد الثغرة المحددة التي يتم اختبارها.
شرح أنواع الحالات
يقوم السكربت بتصنيف كل فحص بأنواع حالات محددة، مما يوفر نظرة عامة على الوضع الأمني للمضيف الممسوح ضوئيًا. فيما يلي أوصاف كل نوع حالة:
- مخفف: يشير إلى أن النظام لديه تخفيفات معمول بها ضد الثغرات التي تم فحصها. يتم إرجاع هذه الحالة عند اكتشاف استجابات نموذجية لنظام آمن ومصحح.
- ضعيف: تشير هذه الحالة إلى أن النظام ضعيف للفحوصات المحددة التي يقوم بها السكربت. يتم إرجاعها عندما يُظهر النظام أنماطًا أو استجابات معروفة تشير إلى وجود ثغرة.
- خطأ HTTP: يتم إرجاعه عندما يواجه السكربت استجابات خطأ HTTP قياسية (بخلاف 403 Forbidden) من النظام المستهدف. يشير عادةً إلى مشكلة في خادم الويب أو الطلب.
- مشكلة شبكة: تُستخدم هذه الحالة عندما يواجه السكربت مشكلات متعلقة بالشبكة، مثل عدم القدرة على الوصول إلى المضيف. تجمع بين حالات سابقة مثل "المضيف غير قابل للوصول" و"خطأ في الشبكة".
- خطأ انتهاء المهلة: يشير إلى أن الطلب إلى الهدف قد انتهت مهلة، مما يشير إلى مشكلات محتملة في الشبكة أو التكوين حالت دون إكمال السكربت لفحصه.
- خطأ اتصال: على غرار "خطأ انتهاء المهلة"، تُستخدم هذه الحالة عند وجود مشكلات في إنشاء اتصال بالمضيف، والتي قد تكون بسبب مشكلات في الشبكة أو أسماء مضيفين غير صحيحة، إلخ.
- عدم استنتاج وجود Ivanti: كانت تُعرف سابقًا باسم "مطلوب إثبات"، يتم إرجاع هذه الحالة عندما لا تنتج فحوصات السكربت أدلة قاطعة على وجود ثغرة أو تخفيف. يشير إلى أن مزيدًا من التحقيق اليدوي مطلوب لتحديد الحالة الأمنية للنظام.
- ضعيف (تم اكتشاف تجاوز): خاص بفحص ثغرة التجاوز، تشير هذه الحالة إلى أن النظام ضعيف لتقنية تجاوز المصادقة الموصوفة في منهجية السكربت.
توفر كل حالة لمحة عن الوضع الأمني للنظام فيما يتعلق بالثغرات التي تم فحصها. يجب على المستخدمين اعتبار هذه الحالات كمؤشرات أولية، وإذا لزم الأمر، إجراء مزيد من التحقيقات اليدوية لتأكيد الحالة الأمنية الفعلية للنظام.
بدء الاستخدام
المتطلبات
- Python 3
- وحدة
requests
- وحدة
urllib3
- اختياري: وحدة
colorama للمخرجات المرمزة بالألوان
الاستخدام
لتشغيل السكربت، استخدم الأمر التالي:
python ivanti_scan.py -i [ملف_الإدخال]
اختياريًا، قم بتشغيله مع وسائط إضافية:
python ivanti_scan.py -i [ملف_الإدخال] -o [ملف_الإخراج] -t [عدد_الخيوط] -p [منفذ1 منفذ2 ...] --color
الوسائط
تحديد الهدف
استخدم أحد هذه الخيارات لتحديد الهدف (الأهداف) للاختبار.
-i أو --input: مسار ملف الإدخال الذي يحتوي على قائمة الأهداف.
-u أو --url: سلسلة URL واحدة لاختبارها.
متغيرات مخصصة
-o أو --output: اختياري. اسم ملف CSV للإخراج. الافتراضي هو [التاريخ_الوقت_الحالي]_results.csv.
-t أو --threads: اختياري. عدد الخيوط للاستخدام للتنفيذ المتزامن. الافتراضي هو 20.
-p أو --ports: اختياري. حدد المنافذ للفحص (على سبيل المثال، 80 443). الافتراضي يفحص المنفذين 80 و 443.
-a أو --user-agent: اختياري. حدد سلسلة وكيل المستخدم. الافتراضي: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.3
تنسيق المخرجات
-c أو --color: اختياري. تمكين المخرجات المرمزة بالألوان إذا كانت colorama مثبتة.
قائمة المهام
إرشادات المساهمة