AWS - STS Enum
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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
STS
AWS Security Token Service (STS) έχει σχεδιαστεί κυρίως για να εκδίδει ** προσωρινά, περιορισμένα δικαιώματα πρόσβασης**. Αυτά τα δικαιώματα μπορούν να ζητηθούν για AWS Identity and Access Management (IAM) χρήστες ή για αυθεντικοποιημένους χρήστες (ομοσπονδικούς χρήστες).
Δεδομένου ότι ο σκοπός του STS είναι να εκδίδει δικαιώματα για την προσποίηση ταυτότητας, η υπηρεσία είναι εξαιρετικά πολύτιμη για την κλιμάκωση δικαιωμάτων και τη διατήρηση της επιμονής, αν και μπορεί να μην έχει μια ευρεία γκάμα επιλογών.
Assume Role Impersonation
Η ενέργεια AssumeRole που παρέχεται από το AWS STS είναι κρίσιμη καθώς επιτρέπει σε έναν κύριο να αποκτήσει δικαιώματα για έναν άλλο κύριο, ουσιαστικά προσποιούμενος αυτόν. Κατά την κλήση, απαντά με ένα ID κλειδιού πρόσβασης, ένα μυστικό κλειδί και ένα διακριτικό συνεδρίας που αντιστοιχεί στο καθορισμένο ARN.
Για τους Δοκιμαστές Διείσδυσης ή τα μέλη της Κόκκινης Ομάδας, αυτή η τεχνική είναι καθοριστική για την κλιμάκωση δικαιωμάτων (όπως αναλύεται εδώ). Ωστόσο, αξίζει να σημειωθεί ότι αυτή η τεχνική είναι αρκετά προφανής και μπορεί να μην αιφνιδιάσει έναν επιτιθέμενο.
Assume Role Logic
Για να αναλάβετε έναν ρόλο στον ίδιο λογαριασμό αν ο ρόλος που πρέπει να αναληφθεί επιτρέπει συγκεκριμένα έναν ρόλο 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).
Enumeration
# 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>
Privesc
Στην παρακάτω σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα STS για να κλιμακώσετε τα προνόμια:
Post Exploitation
Persistence
References
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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

