AWS - STS Enum

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

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

STS

Το AWS Security Token Service (STS) έχει σχεδιαστεί κυρίως για να εκδίδει προσωρινές, περιορισμένων δικαιωμάτων διαπιστευτήρια. Αυτά τα διαπιστευτήρια μπορούν να ζητηθούν για χρήστες του AWS Identity and Access Management (IAM) ή για εξουσιοδοτημένους χρήστες (εξουσιοδοτημένοι χρήστες).

Δεδομένου ότι ο σκοπός του STS είναι να εκδίδει διαπιστευτήρια για την παραπλάνηση της ταυτότητας, ο υπηρεσία είναι απίστευτα αξιοσημείωτη για την ανέλιξη δικαιωμάτων και τη διατήρηση της διαρκείας, ακόμα κι αν δεν έχει μια ευρεία γκάμα επιλογών.

Παραπλάνηση Ρόλου

Η ενέργεια AssumeRole που παρέχεται από το AWS STS είναι κρίσιμη καθώς επιτρέπει σε έναν αρχέτυπο να αποκτήσει διαπιστευτήρια για έναν άλλο αρχέτυπο, παραπλανώντας τον ουσιαστικά. Μετά την κλήση, απαντά με ένα αναγνωριστικό κλειδιού πρόσβασης, ένα μυστικό κλειδί και ένα διακριτικό συνεδρίας που αντιστοιχούν στον καθορισμένο ARN.

Για τους ελεγκτές διείσδυσης ή τα μέλη της Ερυθράς Ομάδας, αυτή η τεχνική είναι ουσιώδης για την ανέλιξη δικαιωμάτων (όπως αναλύεται εδώ). Ωστόσο, αξίζει να σημειωθεί ότι αυτή η τεχνική είναι αρκετά εμφανής και μπορεί να μην εκπλήξει έναν επιτιθέμενο.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:role/priv-role"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

Ο ρόλος priv-role σε αυτήν την περίπτωση, δεν χρειάζεται να επιτρέπεται ειδικά να υποθέσει αυτόν τον ρόλο (με αυτήν την άδεια είναι αρκετό).

Ωστόσο, αν ένας ρόλος επιτρέπει σε έναν λογαριασμό να τον υποθέσει, όπως στο:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:root"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

Ο ρόλος που προσπαθεί να υιοθετήσει θα χρειαστεί μια συγκεκριμένη άδεια sts:AssumeRole για αυτόν τον ρόλο για να τον υιοθετήσει.

Εάν προσπαθήσετε να υιοθετήσετε έναν ρόλο από ένα διαφορετικό λογαριασμό, ο υιοθετημένος ρόλος πρέπει να το επιτρέπει (δηλώνοντας το ρόλο ARN ή τον εξωτερικό λογαριασμό), και ο ρόλος που προσπαθεί να υιοθετήσει τον άλλο ΠΡΕΠΕΙ να έχει άδειες για να τον υιοθετήσει (σε αυτήν την περίπτωση αυτό δεν είναι προαιρετικό, ακόμα κι αν ο υιοθετημένος ρόλος καθορίζει ένα ARN).

Απαρίθμηση

# Get basic info of the creds
aws sts get-caller-identity
aws sts get-access-key-info --access-key-id <AccessKeyID>

# Get CLI a session token with current creds
## Using CLI creds
## You cannot get session creds using session creds
aws sts get-session-token
## MFA
aws sts get-session-token --serial-number <arn_device> --token-code <otp_code>

Ανέβασμα δικαιωμάτων

Στην παρακάτω σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα STS για να ανεβάσετε δικαιώματα:

pageAWS - STS Privesc

Μετά την εκμετάλλευση

pageAWS - STS Post Exploitation

Διατήρηση

pageAWS - IAM Persistence

Αναφορές

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

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

Last updated