
OMIGOD! OM I GOOD? ماسح مجاني لاكتشاف الأجهزة الافتراضية (VMs) المعرّضة لإحدى ثغرات "OMIGOD" التي اكتشفها فريق أبحاث التهديدات لدى Wiz، وتحديدًا CVE-2021-38647.
يحتوي هذا المستودع على ماسح ضوئي مجاني لاكتشاف الأجهزة الافتراضية (VMs) المعرّضة لإحدى ثغرات "OMIGOD" التي اكتشفها فريق أبحاث التهديدات في Wiz، وتحديدًا CVE-2021-38647.
المقال الأصلي من Wiz: https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure
يتطلب الماسح الضوئي بيانات اعتماد Azure للاتصال بواجهات برمجة تطبيقات Azure، وبالنظر إلى اشتراك ومجموعة موارد (أو افتراضيًا سيقوم بفحص جميع المتاحة)، يسترجع قائمة الأجهزة الافتراضية Linux ويُبلغ عما إذا كان الجهاز قد يكون معرّضًا للخطر.
تأكد أيضًا من الاطلاع على أداة Microsoft الخاصة لهذا الغرض: https://github.com/microsoft/OMS-Agent-for-Linux/tree/master/tools/OMIcheck
للمصادقة على واجهات Azure API، يتم دعم كل من azure cli (الافتراضي) ومصادقة المتصفح التفاعلية، راجع معلمة سطر الأوامر --auth.
لا توجد طريقة مباشرة لتحديد ما إذا كانت أجهزتك معرّضة لثغرة OMI دون تشغيل أوامر على جهاز Linux نفسه، وهو أمر مدعوم عبر واجهات Azure API باستخدام أمر RunShellScript من خلال ملحق. أداة Microsoft الخاصة (https://github.com/microsoft/OMS-Agent-for-Linux/tree/master/tools/OMIcheck) تستخدم هذا الأسلوب أيضًا.
تجدر الإشارة إلى أنه حتى إذا كان الجهاز الافتراضي معرّضًا للخطر، فقد لا يعرض خادم OMI عبر HTTP/HTTPS (وهو الوضع الافتراضي)، وحتى إذا فعل ذلك، فقد يتم حظر هذه المنافذ بواسطة مجموعات أمان الشبكة في Azure، وبالتالي لا يمكن الوصول إليها. هذا ليس سببًا لتجنب التصحيح، ولكن إذا كان لديك الكثير من أجهزة Linux الافتراضية المعرّضة للخطر، فقد يكون من المفيد معرفة أيها أكثر عرضة للخطر وتحديد أولويات جهودك.
يتبع omigood هذا الأسلوب الأكثر شمولاً وينتج مخرجات JSON تحتوي على عدد من الفحوصات التي يمكنك تشغيلها من خلال خيارات سطر الأوامر لتحديد سطح الهجوم لديك.
هذه هي الفحوصات التي ينفذها omigood:
1.13.40. يمكنك الاطلاع على البرنامج النصي الذي نُشغّله هنا.-e.-r. استخدمه على مسؤوليتك الخاصة!/usr/bin/id. هذا الفحص اختياري لأنه يتضمن محاولة استغلال الجهاز الافتراضي. قم بتمكينه باستخدام خيار سطر الأوامر -a. استخدمه فقط على الأهداف المصرح لك باختبارها. استخدمه على مسؤوليتك الخاصة!يحتوي ملف مخرجات JSON المُنشأ على جميع المعلومات حول الأجهزة الافتراضية الممسوحة: المعرّفات، نظام التشغيل، مجموعات أمان الشبكة، حالة الطاقة، إلخ.
الأعلام ('YES'/'NO') ذات الصلة بالفحوصات هي:
YES إذا تم العثور على ملحق وكيل OMS على الجهاز الافتراضي.YES إذا كان إصدار ملحق وكيل OMS أقل من 1.13.40.YES إذا كانت قواعد مجموعات أمان الشبكة تبدو وكأنها تسمح بالاتصالات بمنافذ OMI.YES إذا كانت قواعد الأمان الفعلية تبدو وكأنها تسمح بالاتصالات بمنافذ OMI. فقط مع خيار سطر الأوامر -e.YES إذا تم استرجاع إصدار خادم OMI عبر البرنامج النصي وتحديد أنه أقل من 1.6.8-1. فقط مع خيار سطر الأوامر -r.YES إذا تم استرجاع حالة خادم OMI عبر البرنامج النصي وتحديد أنه يستمع على TCP وليس فقط على مقابس UNIX. فقط مع خيار سطر الأوامر -r.YES إذا كان الهجوم على عنوان IP العام للجهاز الافتراضي ناجحًا. فقط مع خيار سطر الأوامر .usage: omigood_scanner.py [-h] [-v] [--auth {azurecli,interactivebrowser}] [-r] [-a] [-e] [-s SUBSCRIPTIONS]
[-g RESOURCEGROUPS] [-m VMS] -o OUTPUT
OMIGood scanner for CVE-2021-38647
optional arguments:
-h, --help show this help message and exit
-v, --verbose [OPTIONAL] Verbose mode: Displays additional debug details.
--auth {azurecli,interactivebrowser}
Authentication mode. Default: azurecli.
-r, --runscript [OPTIONAL] Run Script. Runs bash script on target VMs to check for OMI server, agent and
version. Disabled by default. Use at your own risk.
-a, --attack [OPTIONAL] Try to attack the host. Disabled by default. Use at your own risk.
-e, --effective [OPTIONAL] Check Effective Security Rules. Disabled by default. Requires higher permissions on
Azure.
-s SUBSCRIPTIONS, --subscriptions SUBSCRIPTIONS
[OPTIONAL] Comma separate list of subscriptions IDs. If not specified, it will try all.
-g RESOURCEGROUPS, --resourcegroups RESOURCEGROUPS
[OPTIONAL] Comma separated list of Resource Group names. If not specified, it will try all. If
specified, it will work only with a single subscription provided.
-m VMS, --vms VMS [OPTIONAL] Comma separated list of VM names. If not specified, it will try all. If specified,
it will work only with a single subscription and a single resource group provided.
-o OUTPUT, --output OUTPUT
JSON output file with results.
البرنامج وأمثلة التعليمات البرمجية المتاحة في هذا المستودع مقدمة "كما هي" دون أي ضمان من أي نوع، سواء كان صريحًا أو ضمنيًا. استخدمها على مسؤوليتك الخاصة.
-r