AWS - STS Enum

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

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

STS

Служба видачі тимчасових обмежених привілеїв (STS) AWS призначена в основному для видачі тимчасових обмежених облікових даних. Ці облікові дані можуть бути запитані для користувачів управління доступом та ідентифікації AWS (IAM) або для аутентифікованих користувачів (федерованих користувачів).

Оскільки основна мета STS полягає в видачі облікових даних для імітації ідентичності, ця служба надзвичайно цінна для підвищення привілеїв та збереження постійності, навіть якщо вона може не мати широкого спектру опцій.

Імітація ролі Assume Role

Дія AssumeRole, надана AWS STS, є критичною, оскільки вона дозволяє принципалу отримати облікові дані для іншого принципала, фактично імітуючи його. Після виклику він відповідає ідентифікатором ключа доступу, секретним ключем та токеном сеансу, що відповідає вказаному ARN.

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

Логіка Assume Role

Для імітації ролі в тому ж обліковому записі, якщо роль для імітації дозволяє конкретно 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

Посилання

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

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

Last updated