_ 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_createloginprofile_abuse // SEC_LEVEL: 01 // STATUS: CONFIDENTIAL

>

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

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

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

Зміст

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

Про IAM: CreateLoginProfile

CreateLoginProfile в AWS IAM — це дія API, яка створює пароль (профіль входу) для користувача IAM, щоб він міг увійти в Консоль управління AWS (AWS Management Console).

Ви можете використовувати AWS CLI, AWS API або сторінку Користувачі (Users) у консолі IAM, щоб створити пароль для будь-якого користувача IAM.

Налаштування лабораторії:

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

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

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

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

  • lgt_sanjeet: Користувач із низькими привілеями, до якого приєднані ризиковані дозволи.
  • lgt_admin: Високопривілейований користувач із доступом адміністратора.

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

  • lgt_LoginProfile-PrivEsc

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

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

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

  • У розділі Permissions options виберіть Add user to group (Додати користувача до групи) та натисніть Next.

IAM CreateLoginProfile abuse

  • Натисніть на створене ім’я користувача, тобто lgt_sanjeet.

  • Створіть ключі доступу (Create access key) для цього користувача.

  • Виберіть Command Line Interface (CLI) як сценарій використання (use case).

IAM CreateLoginProfile abuse

  • Поставте галочку у відповідному полі (підтвердження розуміння рекомендацій щодо безпеки) та продовжуйте.

  • Тепер завантажте .csv файл, що містить Access Key ID та Secret Access Key. Зберігайте ці облікові дані в безпеці.

IAM CreateLoginProfile abuse

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

Тепер створіть потужного користувача IAM. Цей користувач уособлює розширені права, які lgt_sanjeet (низькопривілейований користувач) тимчасово отримає під час нашої демонстрації.

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

  • Вкажіть ім’я користувача lgt_admin і натисніть Next.

  • На етапі Set permissions (Встановлення дозволів) виберіть Attach policies directly (Приєднати політики безпосередньо).

  • У розділі Permissions policies знайдіть і виберіть “AdministratorAccess”. Ця політика надає повний контроль практично над усіма сервісами та ресурсами AWS, що робить цього користувача нашою «високопривілейованою» ціллю для лабораторної роботи.

  • Натисніть Next.

IAM CreateLoginProfile abuse

Створення групи користувачів із політикою CreateLoginProfile

  • По-перше, перейдіть до IAM > User groups > Create group.

  • Вкажіть деталі, наприклад, ім’я групи: create-loginprofile-group.

  • Після створення групи натисніть на її назву.

IAM CreateLoginProfile abuse

  • Натисніть Add permissions → Create inline policy (Додати дозволи → Створити вбудовану політику), щоб визначити та приєднати власну політику безпосередньо до групи create-loginprofile-group.

  • У редакторі політик (Policy Editor) вкажіть дозволи. Створіть політику для однієї ідентичності IAM (користувача, групи або ролі), яка пізніше буде використана як шлях для ескалації привілеїв (escalation path).
  • iam:CreateLoginProfile — дозволяє встановити пароль для входу в консоль для користувача IAM, щоб він міг увійти в Консоль управління AWS.
  • iam:ListAccessKeys — дозволяє переглядати існуючі ключі доступу для конкретного користувача IAM.
  • iam:ListAttachedUserPolicies — показує, які керовані політики приєднані до користувача.
  • iam:ListUsers — виводить список усіх користувачів IAM в акаунті.
  • iam:ListGroups — виводить список усіх груп IAM в акаунті.
  • iam:ListGroupPolicies — виводить назви вбудованих політик, інтегрованих у групу.
  • iam:GetGroupPolicy — отримує фактичний JSON-документ вбудованої політики групи.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:CreateLoginProfile",
        "iam:ListAccessKeys",
        "iam:ListAttachedUserPolicies"
      ],
      "Resource": [
        "arn:aws:iam::*:user/Igt_sanjeet",
        "arn:aws:iam::*:user/Igt_admin"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:ListUsers",
        "iam:ListGroups",
        "iam:ListGroupPolicies",
        "iam:GetGroupPolicy"
      ],
      "Resource": "*"
    }
  ]
}

Ось як виглядає політика в редакторі політик у форматі JSON:

  • Вкажіть деталі політики, наприклад її назву lgt_LoginProfile-PrivEsc, і натисніть Create policy (Створити політику).

IAM CreateLoginProfile abuse

  • Тепер виберіть назву групи в розділі User groups і натисніть Add users (Додати користувачів).

  • Виберіть користувача lgt_sanjeet, після чого він стане частиною групи create-loginprofile-group.

Частина 2: Перерахунок та експлуатація (Enumeration and Exploitation)

Сценарій використання CreateLoginProfile

У реальних сценаріях ця функція використовується для онбордингу (створення облікових записів нових співробітників), але в межах лабораторії безпеки вона демонструє, як неправильно налаштовані дозволи можуть призвести до ескалації привілеїв.

Перерахунок профілів за допомогою Python-скрипту

python enumerate-iam.py --access-key AKI*********** --secret-key ISN*************

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

IAM CreateLoginProfile abuse

Налаштування та перерахунок профілів за допомогою AWS CLI

Тепер налаштуйте AWS CLI з обліковими даними користувача IAM, щоб безпосередньо взаємодіяти з середовищем AWS з вашої машини Kali.

  • Налаштуйте профіль з назвою lgt_sanjeet в AWS CLI.
aws configure --profile Igt_sanjeet
  • Призначте Access Key ID, Secret Access Key та регіон за замовчуванням для цього профілю.

  • Наступна команда отримає інформацію про ідентифікацію (UserId, Account ID, ARN) для поточного автентифікованого користувача через цей профіль.
aws sts get-caller-identity --profile Igt_sanjeet

IAM CreateLoginProfile abuse

  • Тут ми спробуємо виконати команду для створення нового користувача.
aws s3 ls --profile Igt_sanjeet

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

  • Виведіть список усіх груп IAM в акаунті, які профіль lgt_sanjeet має дозвіл бачити.

Ця команда не фільтрує лише ті групи, до яких належить lgt_sanjeet; вона повертає кожну групу в акаунті (якщо це не заблоковано правами доступу).

aws iam list-groups —profile Igt_sanjeet

  • Ця команда виведе назви вбудованих політик, приєднаних до групи IAM create-loginprofile-group. Зверніть увагу на вивід, виділений червоною рамкою.
aws iam list-group-policies --group-name create-loginprofile-group --profile Igt_sanjeet

IAM CreateLoginProfile abuse

  • Тепер ця команда отримає та відобразить повний JSON-документ вбудованої політики з назвою lgt_LoginProfile-PrivEsc, яка приєднана до групи create-loginprofile-group. Це дозволяє побачити реальні дозволи замість простої назви політики.
 aws iam get-group-policy --group-name create-loginprofile-group --policy-name Igt_LoginProfile-PrivEsc --profile Igt_sanjeet

  • Виконання цієї команди виведе список усіх користувачів IAM в акаунті AWS, яких облікові дані профілю lgt_sanjeet мають дозвіл бачити.
aws iam list-users --profile Igt_sanjeet

  • Ця команда створює профіль входу в консоль (ім’я користувача + пароль) для користувача IAM lgt_admin.

ПРИМІТКА: Оскільки користувач lgt_admin має політику AdministratorAccess, будь-хто, хто володіє цим паролем, може увійти в консоль AWS як повний адміністратор. У середовищі з неправильною конфігурацією це означає ескалацію привілеїв до рівня адміністратора.

aws iam create-login-profile --user-name Igt_admin --password 'YourStrongP@ssw0rd!' --password-reset-required --profile Igt_sanjeet

IAM CreateLoginProfile abuse

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

По-перше, відкрийте сторінку входу в консоль AWS. Введіть свій Account ID, ім’я користувача IAM lgt_admin, пароль, який ви щойно встановили за допомогою create-login-profile, і натисніть Sign in (Увійти).

Після входу перевірте панель навігації: вона має відображати користувача lgt_admin із повним доступом. Тепер користувач володіє привілеями адміністратора завдяки успішній ескалації.

У консолі (пошук зверху зліва) введіть S3 і перейдіть до сервісу. Переконайтеся, що ви ввійшли саме як lgt_admin (верхній правий кут).

IAM CreateLoginProfile abuse

У розділі General purpose buckets (Кошики загального призначення) виберіть бакет з назвою lgt_bucket.

Натисніть на назву вашого бакета (lgt_bucket), і в розділі Objects (Об’єкти) ви побачите текстовий файл secrets.txt. Натисніть Download, щоб завантажити його.

В AWS CLI (на вашій машині Kali) скористайтеся цією командою, щоб перевірити працездатність профілю адміністратора. Цього разу операція пройде успішно:

ls secrets.txt

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

cat secrets.txt

IAM CreateLoginProfile abuse

Аналіз

Ця лабораторна робота демонструє, як користувач IAM із початково низькими привілеями (lgt_sanjeet) зловживає дозволом iam:CreateLoginProfile щодо користувача lgt_admin (який уже мав приєднану політику AdministratorAccess). Встановивши пароль для адміністратора, зловмисник отримав прямий доступ до консолі від імені lgt_admin, що призвело до повного захоплення акаунта.

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

  • Обмежте iam:CreateLoginProfile

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

  • Використовуйте межі дозволів (Permissions Boundaries):

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

  • Обмежте права на перерахунок

Мінімізуйте можливість користувачів переглядати список усіх користувачів, груп та політик акаунта.

  • Увімкніть MFA для всіх адміністраторів:

Багатофакторна автентифікація є критичним бар’єром, який зупинить атаку, навіть якщо пароль було скомпрометовано або змінено.

  • Моніторинг за допомогою CloudTrail:

Налаштуйте алерти на виклики CreateLoginProfile, особливо якщо вони спрямовані на адміністративні облікові записи.

  • Дотримуйтесь принципу найменших привілеїв (Least Privilege).

Висновок

Ця лабораторна робота показує, як один неправильно налаштований дозвіл IAM (CreateLoginProfile) може призвести до повної компрометації акаунта в поєднанні з правами на перерахунок. Помилки в конфігурації IAM — це “легка здобич” для зловмисників. Превентивні заходи контролю, детекція та грамотне управління (governance) є критично важливими для зупинки ескалації привілеїв у хмарі.

[!] 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...