不正設定されたサービスプリンシパルを使用した権限のエスカレーション
2691 ワード
あなた自身の危険でのテスト
1 .マシン内の新しいPowerShellセッションを開きます.次のコマンドを使用してPowerZureモジュールをインポートします.
2 .現在のユーザが以下のコマンドでサービスプリンシパルの所有者として割り当てられているか確認しましょう.
get azureappownerコマンドはpowerzureの関数の一つです.それは再帰的にAzure広告の各登録されたアプリケーションを通して見て、所有者をリストします.出力は、ReaderUserがCustomAppと呼ばれるアプリケーションの所有権を割り当てられていることを示します.所有権は、新しい秘密を追加するなど、アプリケーション上のさまざまなアクセス許可を許可します.これはリーダーロールの固有のアクセス許可ではありませんが、アプリケーションの所有権を任意のアカウントに割り当てることができます.
3 . CustomAppに新しい秘密を追加するには、次のコマンドを使用してアプリケーションと認証することができます.私たちが読者役割を割り当てられるユーザとしてこれをしているのを思い出してください.
すごい!新しい秘密が正常に追加されました.つまり、このサービスプリンシパルとして認証することができます.サービスプリンシパルとして認証するために両方を必要とするので、表示されたアプリケーションIDとテナントIDの注意をしてください.
WSLに切り替えて、以下のコマンドを使用してサービスプリンシパルとして認証します.次のステップ3で注意したアプリケーションIDとAppRes IDを置き換えます.テナントレストIDをテインアントIDに置き換え、ステップ3でノートを作りました.Enterキーを押します.
現在、サービス校長としてログインされます.次に、このサービスプリンシパルが持つアクセス許可を確認します.
5 .次のコマンドを使用してサービスプリンシパルの役割の割り当てとスコープを確認します.次のステップ3で注意したアプリケーションIDとAppRes IDを置き換えます.
このサービスプリンシパルが購読範囲で貢献者役割を割り当てられるのを見ることができます.すごい!我々は、現在のユーザーのより多くのパーミッションを与える役割課題へのルートを見つけました!
Azure RBACのAzure ADとReaderのグローバルリーダーは通常、サービスプリンシパルの所有権の許可を持っていませんが、Azureの広告テナントのメンバーユーザーはアプリケーションを登録する権限を持っていることを覚えています.また、所有権がユーザーに与えられる場面が時々あります.これらの所有権がどんな役割レベルででも開くことができたので、我々は早めに彼らに対処するのが良いと思いました.
リーダロールのために常に利用可能な1つの許可は、Azureコンテナレジストリ(ACR)からのイメージに接続してプルする能力です.これらの権利は、読者がイメージに変更をするのを許しません、しかし、それは彼らがイメージをチェックするのを許します.
リファレンス
https://github.com/PacktPublishing/Penetration-Testing-Azure-for-Ethical-Hackers
1 .マシン内の新しいPowerShellセッションを開きます.次のコマンドを使用してPowerZureモジュールをインポートします.
PS C:\> cd C:\Users\$env:USERNAME\PowerZure
Import-Module .\PowerZure.ps1
現在のユーザーがサブスクリプションでリーダーロールを割り当てられていることがわかります.PowerZureのAzurecurrentUser機能を使用してこれを検証することもできます.2 .現在のユーザが以下のコマンドでサービスプリンシパルの所有者として割り当てられているか確認しましょう.
get azureappownerコマンドはpowerzureの関数の一つです.それは再帰的にAzure広告の各登録されたアプリケーションを通して見て、所有者をリストします.出力は、ReaderUserがCustomAppと呼ばれるアプリケーションの所有権を割り当てられていることを示します.所有権は、新しい秘密を追加するなど、アプリケーション上のさまざまなアクセス許可を許可します.これはリーダーロールの固有のアクセス許可ではありませんが、アプリケーションの所有権を任意のアカウントに割り当てることができます.
3 . CustomAppに新しい秘密を追加するには、次のコマンドを使用してアプリケーションと認証することができます.私たちが読者役割を割り当てられるユーザとしてこれをしているのを思い出してください.
すごい!新しい秘密が正常に追加されました.つまり、このサービスプリンシパルとして認証することができます.サービスプリンシパルとして認証するために両方を必要とするので、表示されたアプリケーションIDとテナントIDの注意をしてください.
WSLに切り替えて、以下のコマンドを使用してサービスプリンシパルとして認証します.次のステップ3で注意したアプリケーションIDとAppRes IDを置き換えます.テナントレストIDをテインアントIDに置き換え、ステップ3でノートを作りました.Enterキーを押します.
現在、サービス校長としてログインされます.次に、このサービスプリンシパルが持つアクセス許可を確認します.
5 .次のコマンドを使用してサービスプリンシパルの役割の割り当てとスコープを確認します.次のステップ3で注意したアプリケーションIDとAppRes IDを置き換えます.
このサービスプリンシパルが購読範囲で貢献者役割を割り当てられるのを見ることができます.すごい!我々は、現在のユーザーのより多くのパーミッションを与える役割課題へのルートを見つけました!
Azure RBACのAzure ADとReaderのグローバルリーダーは通常、サービスプリンシパルの所有権の許可を持っていませんが、Azureの広告テナントのメンバーユーザーはアプリケーションを登録する権限を持っていることを覚えています.また、所有権がユーザーに与えられる場面が時々あります.これらの所有権がどんな役割レベルででも開くことができたので、我々は早めに彼らに対処するのが良いと思いました.
リーダロールのために常に利用可能な1つの許可は、Azureコンテナレジストリ(ACR)からのイメージに接続してプルする能力です.これらの権利は、読者がイメージに変更をするのを許しません、しかし、それは彼らがイメージをチェックするのを許します.
リファレンス
https://github.com/PacktPublishing/Penetration-Testing-Azure-for-Ethical-Hackers
Reference
この問題について(不正設定されたサービスプリンシパルを使用した権限のエスカレーション), 我々は、より多くの情報をここで見つけました https://dev.to/cheahengsoon/escalating-privileges-using-a-misconfigured-service-principal-o66テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol