Japan
サイト内の現在位置
脆弱なEntra IDの環境構築ツール「EntraGoat」を試してみた
NECセキュリティブログ2025年11月21日
昨今、企業のクラウド移行が進む中、オンプレミスのActive DirectoryからMicrosoft Entra ID(以降、Entra ID)へ移行するケースが増えてきています。それに伴い、ペネトレーションテストの対象としてEntra IDを扱う機会も多くなってきました。こうした変化に対応するため、ペネトレーションテストを行う検査員にもEntra IDに対する攻撃手法を身につけることが求められています。
Entra IDの攻撃手法を学ぶうえで有用なツールとして「EntraGoat
[1]
[2]」があります。EntraGoatを利用すると、脆弱な設定を持つEntra ID環境を容易に構築でき、CTF(Capture the Flag)形式で複数の攻撃シナリオを検証できます。
本ブログでは、EntraGoatの概要と使用方法を紹介するとともに、用意されている6つのシナリオの中からシナリオ4「I (Eligibly) Own That」の内容を解説します。
- 注意:本ブログの内容の悪用は厳禁です。また、本ブログの内容を使用したことによって発生する不利益等について筆者はいかなる責任も負いません。
目次
EntraGoatについて
- Scenario 1: Misowned and Dangerous - Owner's Manual to Global Admin
- Scenario 2: Graph Me the Crown (and Roles)
- Scenario 3: Group MemberShipwreck - Sailed into Admin Waters
- Scenario 4: I (Eligibly) Own That
- Scenario 5: Department of Escalations - AU Ready for This?
- Scenario 6: CBA (Certificate Bypass Authority) - Root Access Granted
また、CTF形式のWebインターフェース(図 1参照)が用意されています。各シナリオには「背景」「前提情報」「ヒント」「Flag入力フォーム」などが提示されます。これらを参照しながらシナリオを進めていく構成となっています。

EntraGoatの使用方法
EntraGoatを用いて脆弱なEntra ID環境を構築するうえで、最低限必要なものは以下の4つです。
- 検証用のEntra IDテナント
- グローバル管理者権限
- PowerShell 7+
- Microsoft Graph PowerShell SDK
起動方法は非常に簡単で、準備したEntra IDテナントに対し、グローバル管理者権限を持つユーザで、図 2のように起動したいシナリオのセットアップスクリプトを実行するだけです。

設定を元に戻したい場合は、図 3のように該当シナリオのクリーンアップスクリプトを実行することで、環境を元の状態に戻すことができます。

また、CTF形式のWebのフロントエンドを起動するには、以下の2つが必要です。
- Node.js
- npm
フロントエンドの起動も簡単で、図 4のコマンドを実行するだけで開始できます。起動後、「http://localhost:3000」にアクセスすることで、CTF形式の問題ページを参照できます。

「シナリオ 4: I (Eligibly) Own That」の紹介
本ブログでは、EntraGoatに含まれるシナリオの中から、Privileged Identity Management(以下、PIM)を悪用するシナリオ4について紹介します。
シナリオ4の概要
シナリオ4の問題文は、図 5の通りです。日本語に意訳すると、以下の内容が示されています。
「あなたは“何かありそうな”Entra IDアカウントにアクセスしました。グループメンバーシップやロール割り当てを確認すると、権限昇格につながる手掛かりがあるように見えます。ただし、初期状態ではいずれの権限もアクティブになっていません。Privileged Identity Managementのステータスを確認し、適切なアクセスを有効化して、グローバル管理者権限の取得を目指しましょう。」
さらに、シナリオ4で使用する初期アクセス用のユーザ名とパスワードが提示されています。
- woody.chen@<テナントドメイン>
- GoatAccess!123

EntraGoatのシナリオ解答者は、これらの情報を基に、最終的にグローバル管理者権限の取得を目指して権限昇格を進めていきます。
シナリオ4の解説
まずは、初期アクセス用に与えられたユーザ「woody.chen」を用いて情報収集を行います。現状の設定を把握するため、AzureHound(図 6)とROADrecon(図 7)の2つのツールを用いてユーザ、グループ、ロールなどの情報を列挙しました。


高い権限を持つユーザやグループ、サービスプリンシパルなどが確認できたものの、現状の設定では初期アクセス用ユーザ「woody.chen」から、ゴールであるグローバル管理者「EntraGoat Administrator S4」へ権限昇格できる経路は見つかりませんでした(図 8、図 9を参照)。

拡大する
拡大する次に、問題文に記載されている通り、PIMの設定状況を確認します。PIMは、特権ロールや特権グループへのアクセスを必要なときだけ一時的に有効化して利用するための仕組みです。しかし、PIMの設定が不十分な場合、利用者自身が事前に割り当てられた特権ロールや特権グループを任意にアクティブ化できてしまう可能性があります。
以下の手順でPIMの設定を確認します。
-
https://entra.microsoft.com にアクセスします。 -
初期アクセス用のユーザでログインします。
-
「IDガバナンス」→「Privileged Identity Management」を開きます。
-
「タスク」→「自分のロール」を開きます。
-
「Microsoft Entra ロール」や「グループ」を開き、「資格のある割り当て」にアクティブ化可能な設定がないかを確認します。
この操作の結果、PIMにより「Application Operations Team」グループのOwnerロールを初期アクセス用ユーザ「woody.chen」に一時的に付与できることが判明しました(図 10参照)。

拡大する続いて、該当グループのアクティブ化を行います。右側の「操作」欄にある「アクティブ化」からグループをアクティブ化できます(図 11参照)。

以上の操作により、「Application Operations Team」グループのOwnerロールを一時的に取得できました。グループのOwner権限を持つ場合、自身をそのグループにメンバーとして追加できるため、グループが保有する権限を利用した操作が可能となります。
次に、「Application Operations Team」グループの設定および権限を確認します。「割り当てられたロール」に権限昇格につながる設定が含まれていました。
以下の手順で「割り当てられたロール」を確認します。
-
https://entra.microsoft.com にアクセスします。 -
初期アクセス用のユーザでログインします。
-
「Entra ID」→「グループ」を開きます。
-
「すべてのグループ」→「Application Operations Team」を開きます。
-
「管理」→「割り当てられたロール」→「資格のある割り当て」を開きます。
この結果、PIMにより「アプリケーション管理者」ロールを一時的に利用可能であることが判明しました(図 12参照)。

拡大するPIMを用いて「アプリケーション管理者」ロールをアクティブ化するため、自身を「Application Operations Team」グループに所属させます。
以下の手順でグループメンバーを追加することができます。
-
https://entra.microsoft.com にアクセスします。 -
初期アクセス用のユーザでログインします。
-
「Entra ID」→「グループ」を開きます。
-
「すべてのグループ」→「Application Operations Team」を開きます。
-
「メンバー」→「メンバーの追加」から初期アクセス用のユーザである「woody.chen」を追加します。
以上の操作により、図 13の通り、グループメンバーにユーザが追加されます。

拡大する続いて、再度PIMの設定画面を開き、「アプリケーション管理者」ロールをアクティブ化します。
以下の手順でアクティブ化します。
-
https://entra.microsoft.com にアクセスします。 -
初期アクセス用のユーザでログインします。
-
「IDガバナンス」→「Privileged Identity Management」を開きます。
-
「タスク」→「自分のロール」を開きます。
-
「Microsoft Entra ロール」→「資格のある割り当て」を開きます。
-
「アプリケーション管理者」ロールの「アクティブ化」を選択します(図 14参照)。
-
「期間」と「理由」を設定して、アクティブ化します(図 15参照)。

拡大する
以上の操作により、初期アクセスユーザ「woody.chen」は「アプリケーション管理者」権限を一時的に利用できるようになりました。
ここで改めて、AzureHoundにより確認された権限関係を整理します(図 16参照)。
- 「Application Administrator(アプリケーション管理者)」ロールは、「Infrastructure Monitoring Tool」サービスプリンシパルに対してAZAddSecret権限を持つ
→ クライアントシークレットを追加し、このサービスプリンシパルとして認証可能 - 「Infrastructure Monitoring Tool」サービスプリンシパルはAZGlobalAdmin権限を持つ
→ 「EntraGoat Administrator S4」ユーザのパスワード変更や一時アクセスパス発行が可能
この結果、攻撃者は「EntraGoat Administrator S4」ユーザとしてログイン可能になります。

拡大するまず、「Infrastructure Monitoring Tool」サービスプリンシパルにクライアントシークレットを追加し、そのサービスプリンシパルとしてログインします。これは図 17のコマンドにより実行できます。必要なobjectIDとappIdは、ROADreconから確認できます(図 18参照)。


図 17の実行後、図 19の出力から「Infrastructure Monitoring Tool」サービスプリンシパルとしてログインできていることが確認できます。

最後に、「EntraGoat Administrator S4」ユーザに対して一時アクセスパスを発行します。一時アクセスパスは、認証不能となったユーザを一時的に回復させるための機能であり、発行後は一定期間パスワードレスでログインできます。
図 20のコマンドで一時アクセスパスを発行でき、成功すると図 21のように一時アクセスパスが出力されます。


発行した一時アクセスパスを用いてログインを行います。図 22の通り、一時アクセスパスの入力を求められますので、発行された値を入力します。図 23の画面から、ログインが成功したことを確認できます。


以上で、初期アクセス用のユーザ「woody.chen」からグローバル管理者である「EntraGoat Administrator S4」ユーザに昇格することができました。EntraGoatのフラグは、「EntraGoat Administrator S4」ユーザのプロパティにある拡張属性に記載されています(図 24参照)。

拡大するまとめ
本ブログでは、脆弱なEntra ID環境を構築できるツール「EntraGoat」について紹介しました。「EntraGoat」を使用することで検証環境を容易に構築でき、シナリオに沿って攻撃手法を実際に試すことが可能です。また、本ブログではPIMを悪用した権限昇格のシナリオについて解説しました。PIMの設定が不十分な場合、本シナリオのように権限昇格に悪用される恐れがあり、適切な設定と管理が重要です。今回紹介したもの以外にも、EntraGoatには5つのシナリオが用意されており、いずれも学習用途として非常に有用ですので、ぜひ併せて試していただくことをお勧めします。
参考文献
- [1]Semperis/EntraGoat - GitHub
https://github.com/Semperis/EntraGoat - [2]What Is EntraGoat Entra ID Simulation Environment? | Semperis Research
https://www.semperis.com/blog/what-is-entragoat-entra-id-simulation-environment/ - [3]EntraGoat - A Deliberately Vulnerable Entra ID Environment - Black Hat USA 2025
https://blackhat.com/us-25/arsenal/schedule/#entragoat---a-deliberately-vulnerable-entra-id-environment-45459 - [4]Black Hat USA 2025・DEF CON 33 参加報告 - NECセキュリティブログ
https://jpn.nec.com/cybersecurity/blog/250926/index.html
執筆者プロフィール
松本 隆志(まつもと たかし)
セキュリティ技術センター リスクハンティング・アナリシスグループ
マルウェア解析や攻撃者の行動分析などの業務を経て、現在はペネトレーションテスト、脆弱性診断などに従事。これまでに Botconf、JSAC、CODE BLUEで講演。
CISSP、情報処理安全確保支援士(RISS)、CPENT、LPT Master、SANS FOR710 メダルを保持。
趣味は、CTFとコーヒーを飲むこと。

執筆者の他の記事を読む
アクセスランキング