
vRealize RCE + Privesc (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
vRealize RCE + 権限昇格 (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
"理解するのと同じくらい、止めるのも難しい。"
「Reality Smasher」は、VMSA-2021-0004 で対処されたセキュリティ問題(CVE-2021-21975、CVE-2021-21983)に加えて、テスト中に発見された権限昇格の脆弱性を利用した vRealize 向けエクスプロイトです。
「Reality Smasher」は、CVE-2021-21975 を悪用して vRealize の "maintenanceAdmin" アカウントの資格情報を盗みます。これは、このリポジトリに含まれる鍵と証明書を使用して HTTPS リスナーをホストすることで実現されます。これらの資格情報は、後続のすべての認証済みリクエストで使用されます。まず、管理者アカウントのハッシュ化されたパスワードが要求され、後で使用するために保存されます。
次に、SSH サービスを有効にするリクエストが行われます。その後に、CVE-2021-21983 を使用して "admin.properties" ファイルを上書きします。次に、管理者ユーザーの初期パスワードを設定するリクエストが行われます。これは、管理者の資格情報が "admin.properties" に保存されていたため許可されます。このファイルがない場合、vRealize は資格情報が設定されたことがないとみなし、認証されていない "/security/adminpassword/initial" リクエストを受け入れます。
新しい管理者資格情報で SSH アクセスが可能であることを検証した後、SSH キーが生成されます。次に、権限昇格の脆弱性を使用して、root の SSH ログインを許可し、sshd サービスを再起動し、公開鍵を "/root/.ssh/authorized_keys" に追加します。root の SSH アクセスが検証された後、元のハッシュ化されたパスワードが復元され、ユーザーに root ユーザーとしての対話型 SSH シェルが付与されます。すべての SSH 操作は "golang.org/x/crypto/ssh" を使用して実行されます。
このエクスプロイトの信頼性と堅牢性を確保するために多大な努力が払われました。ただし、これは私の最初の golang プロジェクトですので、ご自身の責任でこのエクスプロイトを使用してください。ハッシュ化されたパスワードと生成された秘密鍵を取得するために、このエクスプロイトを詳細モードで実行することをお勧めします。
