AWS - STS Privesc

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

STS

sts:AssumeRole

Кожна роль створюється з політикою довіри ролі, яка вказує хто може припускати створену роль. Якщо роль з того ж облікового запису вказує, що обліковий запис може її припускати, це означає, що обліковий запис зможе отримати доступ до ролі (і, можливо, підвищити привілеї).

Наприклад, наступна політика довіри ролі показує, що будь-хто може її припускати, тому будь-який користувач зможе підвищити привілеї до дозволів, пов'язаних з цією роллю.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "sts:AssumeRole"
}
]
}

Ви можете видаавати себе за роль, запустивши:

aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname

Потенційний вплив: Підвищення привілеїв до ролі.

Зверніть увагу, що у цьому випадку дозвіл sts:AssumeRole повинен бути вказаний у ролі для зловживання, а не в політиці, що належить зловмиснику. З одним винятком, для того щоб припустити роль з іншого облікового запису, обліковий запис зловмисника також повинен мати sts:AssumeRole над роллю.

sts:AssumeRoleWithSAML

Довіркова політика з цією роллю надає користувачам, які були автентифіковані через SAML, доступ до імітації ролі.

Приклад довіркової політики з цим дозволом:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "OneLogin",
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::290594632123:saml-provider/OneLogin"
},
"Action": "sts:AssumeRoleWithSAML",
"Condition": {
"StringEquals": {
"SAML:aud": "https://signin.aws.amazon.com/saml"
}
}
}
]
}

Для генерації облікових даних для підроблення ролі загалом ви можете використовувати щось на зразок:

aws sts  assume-role-with-saml --role-arn <value> --principal-arn <value>

Але постачальники можуть мати свої власні інструменти, щоб зробити це простіше, наприклад onelogin-aws-assume-role:

onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --aws-region eu-west-1 -z 3600

Потенційний вплив: Підвищення привілеїв до ролі.

sts:AssumeRoleWithWebIdentity

Ця дозвіл надає можливість отримати набір тимчасових облікових даних для користувачів, які були автентифіковані в мобільному, веб-додатку, EKS... з постачальником ідентичності веб-сервісу. Дізнайтеся більше тут.

Наприклад, якщо обліковий запис служби EKS повинен мати можливість імітувати роль IAM, у нього буде токен у /var/run/secrets/eks.amazonaws.com/serviceaccount/token і може припустити роль та отримати облікові дані, виконавши щось на зразок:

aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/<role_name> --role-session-name something --web-identity-token file:///var/run/secrets/eks.amazonaws.com/serviceaccount/token
# The role name can be found in the metadata of the configuration of the pod

Зловживання федерацією

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated