
CVE-2021-38647 के बारे में जानने के लिए एक Vagrant VM परीक्षण प्रयोगशाला, जो Open Management Infrastructure agent (उर्फ "omigod") में है।
9.6 CVSS वाले Open Management Infrastructure सॉफ्टवेयर (CVE-2021-38647) में अप्रमाणित रिमोट कोड निष्पादन (RCE) भेद्यता के बारे में जानने के लिए एक शैक्षिक लैब VM।
प्रकटीकरण (मूल शोध): 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) सेटअप करेगा। Vagrant बॉक्स के लिए Roboxes का धन्यवाद।
Ansible playbook.yml द्वारा स्थापित:
sha256:2e0813ee3f2a71028f071d9933ca2f336faaaf9b6126d5f1767ffcbc7e803279sha256:1cba16e3b307177cbe15bd3fd8a2a87ab8d638846988202be8a17981b5e900c9इस VM को इंटरनेट पर न रखें :-)
Vagrant के कारण, localhost:5986 से VM में 5986 पर एक पोर्ट फ़ॉरवर्ड बॉक्स को चालू करने के बाद खुला रहेगा। अब हमारे पास परीक्षण के लिए एक लैब VM है।
हमें केवल कमजोर OMI सर्वर पर एक SOAP अनुरोध भेजने की आवश्यकता है, इस XML पेलोड को पोस्ट करने के लिए ansible uri मॉड्यूल का उपयोग किया जा सकता है:
cd /vagrant
ansible-playbook attack-play.yml -e "rcecmd=uptime"
आपको <p:StdOut> में uptime कमांड का आउटपुट देखना चाहिए।
यदि आप कमांड को id में बदलते हैं, तो आप uid=0(root) gid=0(root) groups=0(root) आउटपुट देख सकते हैं।
😬😬😬
अन्य सार्वजनिक शोषण कोड:
MS से आरंभिक दस्तावेज़: https://github.com/microsoft/omi/blob/master/Unix/doc/omi/omi.pdf
VM के अंदर 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" में पहचान के बारे में टिप्पणी की है: