# Az - PTA - Authentification Pass-through

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

## Informations de base

[Selon la documentation :](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) L'authentification Pass-through d'Azure Active Directory (Azure AD) permet à vos utilisateurs de **se connecter à la fois aux applications sur site et basées sur le cloud en utilisant les mêmes mots de passe**. Cette fonctionnalité offre à vos utilisateurs une meilleure expérience - un mot de passe de moins à retenir, et réduit les coûts du support informatique car vos utilisateurs sont moins susceptibles d'oublier comment se connecter. Lorsque les utilisateurs se connectent en utilisant Azure AD, cette fonctionnalité **valide les mots de passe des utilisateurs directement contre votre Active Directory sur site**.

Dans PTA, les **identités** sont **synchronisées** mais les **mots de passe** **ne le sont pas** comme dans PHS.

L'authentification est validée dans l'AD sur site et la communication avec le cloud est effectuée par un **agent d'authentification** fonctionnant sur un **serveur sur site** (il n'a pas besoin d'être sur le DC sur site).

### Flux d'authentification

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

1. Pour **se connecter**, l'utilisateur est redirigé vers **Azure AD**, où il envoie le **nom d'utilisateur** et le **mot de passe**
2. Les **identifiants** sont **chiffrés** et placés dans une **file d'attente** dans Azure AD
3. L'**agent d'authentification sur site** récupère les **identifiants** de la file d'attente et les **déchiffre**. Cet agent est appelé **"agent d'authentification Pass-through"** ou **agent PTA.**
4. L'**agent** **valide** les identifiants contre l'**AD sur site** et envoie la **réponse** **de retour** à Azure AD qui, si la réponse est positive, **termine la connexion** de l'utilisateur.

> [!WARNING]
> Si un attaquant **compromet** le **PTA**, il peut **voir** tous les **identifiants** de la file d'attente (en **texte clair**).\
> Il peut également **valider n'importe quels identifiants** auprès d'AzureAD (attaque similaire à la clé skeleton).

### Sur site -> cloud

Si vous avez un accès **administrateur** au **serveur Azure AD Connect** avec l'**agent PTA** en cours d'exécution, vous pouvez utiliser le module **AADInternals** pour **insérer une porte dérobée** qui **validera TOUS les mots de passe** introduits (donc tous les mots de passe seront valides pour l'authentification) :
```bash
Install-AADIntPTASpy
```
> [!NOTE]
> Si l'**installation échoue**, cela est probablement dû à l'absence de [Microsoft Visual C++ 2015 Redistributables](https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe).

Il est également possible de **voir les mots de passe en clair envoyés à l'agent PTA** en utilisant le cmdlet suivant sur la machine où le backdoor précédent a été installé :
```bash
Get-AADIntPTASpyLog -DecodePasswords
```
Cette porte dérobée va :

- Créer un dossier caché `C:\PTASpy`
- Copier un `PTASpy.dll` dans `C:\PTASpy`
- Injecter `PTASpy.dll` dans le processus `AzureADConnectAuthenticationAgentService`

> [!NOTE]
> Lorsque le service AzureADConnectAuthenticationAgent est redémarré, PTASpy est "déchargé" et doit être réinstallé.

### Cloud -> On-Prem

> [!CAUTION]
> Après avoir obtenu des **privileges GA** sur le cloud, il est possible de **enregistrer un nouvel agent PTA** en le configurant sur une **machine contrôlée par l'attaquant**. Une fois l'agent **configuré**, nous pouvons **répéter** les **étapes précédentes** pour **s'authentifier en utilisant n'importe quel mot de passe** et également, **obtenir les mots de passe en texte clair.**

### Seamless SSO

Il est possible d'utiliser Seamless SSO avec PTA, qui est vulnérable à d'autres abus. Vérifiez-le dans :

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

## Références

- [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}}
