0Pricing
Cyber Security Academy · Урок

Эксплуатация неправильных настроек IAM

Повышение привилегий в облаке

«Эксплуатация неправильных настроек IAM» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.

IAM как механизм повышения привилегий

В облаке повышение привилегий обычно означает злоупотребление разрешениями IAM, а не эксплуатацию ошибок памяти. Если идентичность с низкими привилегиями может изменять политики, создавать ключи или принимать роли, она может получить права администратора.

  • Разрешения на изменение IAM по своей природе опасны.
  • Пути повышения привилегий определяются логикой политик, а не уязвимостями.
  • Решение — минимальные привилегии, а не исправление ошибки.

Опасные разрешения

Некоторые действия IAM позволяют напрямую повысить привилегии. Ищите их у субъекта, которым вы управляете:

  • iam:CreateAccessKey для другого пользователя.
  • iam:AttachUserPolicy / iam:PutUserPolicy (присоединение AdministratorAccess).
  • iam:CreatePolicyVersion (перезапись существующей политики).
  • iam:PassRole + вычислительный сервис (запуск кода от имени привилегированной роли).
  • sts:AssumeRole со слабой политикой доверия.

Повышение привилегий через присоединение политики

Если ваша идентичность может присоединять политики к себе, для повышения привилегий достаточно одного вызова. Вы присоединяете управляемую административную политику и получаете все права.

# Attach AdministratorAccess to yourself
aws iam attach-user-policy \
  --user-name me \
  --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

Злоупотребление PassRole

iam:PassRole позволяет передать роль сервису. В сочетании с сервисом, который выполняет ваш код (EC2, Lambda, Glue), это позволяет выполнять код от имени этой роли, даже если у неё гораздо больше привилегий, чем у вас.

# Launch a Lambda that assumes a privileged role you can pass
aws lambda create-function --function-name esc \
  --role arn:aws:iam::111:role/AdminRole \
  --runtime python3.12 --handler h.run --zip-file fileb://code.zip

Откат версии политики

iam:CreatePolicyVersion или SetDefaultPolicyVersion позволяет заменить активный документ политики или откатить её к прошлой, более разрешительной версии, предоставив широкий доступ без изменения членства в группах.

# Make a new, permissive default version of an existing policy
aws iam create-policy-version \
  --policy-arn arn:aws:iam::111:policy/devs \
  --policy-document file://admin.json --set-as-default

Злоупотребление политикой доверия и AssumeRole

Политики доверия ролей определяют, кто может их принять. Слабые условия доверия позволяют захватить роль.

  • Роль, доверяющая * или целому аккаунту, может быть принята слишком широким кругом субъектов.
  • Если вы можете изменить политику доверия роли, добавьте себя в список доверенных субъектов.
  • Проблема замешанного заместителя: во внешних идентификаторах для ролей интеграции со сторонними сервисами отсутствуют необходимые значения.
# Assume a poorly-scoped role
aws sts assume-role \
  --role-arn arn:aws:iam::111:role/CrossAccountAdmin \
  --role-session-name pt

Аналоги в разных облаках

Такие же схемы встречаются у разных провайдеров.

  • Azure: назначение роли администратора доступа пользователей или владельца; злоупотребление управляемой идентичностью; добавление учётных данных субъекту-службе.
  • GCP: iam.serviceAccounts.actAs вместе с вычислительным сервисом; setIamPolicy для проекта; создание ключа учётной записи службы.
# GCP: impersonate a privileged service account
gcloud compute instances create esc --service-account priv@proj.iam.gserviceaccount.com --scopes cloud-platform

Инструменты поиска путей

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

# Pacu (AWS exploitation framework) escalation module
pacu
run iam__privesc_scan

# PMapper query for escalation
pmapper query 'preset privesc me'

Цепочка до плоскости управления

Повышение привилегий часто превращает доступ к плоскости данных в контроль над плоскостью управления.

  • Скомпрометируйте VM и украдите учётные данные её роли из метаданных.
  • Роль экземпляра имеет PassRole + Lambda, что позволяет выполнять код от имени роли администратора.
  • Получив права администратора, создайте постоянные ключи доступа для скрытного доступа.

Каждая связь в этой цепочке — отдельный результат, о котором следует сообщить.

Защита IAM

Предотвращение строится на минимальных привилегиях и защитных ограничениях.

  • Удаляйте подстановочные символы; жёстко ограничивайте область действий и ресурсов.
  • Используйте границы разрешений и политики управления сервисами (SCP), чтобы ограничить максимальные привилегии.
  • Требуйте внешние идентификаторы для ролей сторонних сервисов; ограничивайте политики доверия.
  • Отдавайте предпочтение краткоживущим учётным данным ролей, а не ключам с длительным сроком действия.
  • Используйте анализаторы доступа, чтобы выявлять опасные и неиспользуемые разрешения.

Этичное выполнение

Повышение привилегий IAM может предоставить контроль над всем аккаунтом. Остановитесь на подтверждении концепции: продемонстрируйте путь, не создавая постоянных лазеек и не изменяя рабочие политики, которые вы не сможете вернуть в исходное состояние. Всегда отменяйте внесённые изменения политик или ролей и удаляйте созданные ключи.

Заранее согласовывайте с заказчиком disruptive-действия (например, перезапись общей политики).

Быстрая проверка

Проверьте свои знания о повышении привилегий IAM.

Итоги

Вы узнали, как неправильные настройки IAM приводят к повышению привилегий.

  • Присоединение политик, PassRole, откат версии и AssumeRole — основные пути.
  • Такие же схемы встречаются в AWS, Azure и GCP.
  • Pacu и PMapper автоматически находят доступные пути.
  • Минимальные привилегии, границы разрешений и внешние идентификаторы — основные средства защиты.

Далее: закрепление и горизонтальное перемещение между облачными аккаунтами.

Часто задаваемые вопросы

Урок «Эксплуатация неправильных настроек IAM» бесплатный?

Да — полный текст урока «Эксплуатация неправильных настроек IAM» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.

Чему я научусь в уроке «Эксплуатация неправильных настроек IAM»?

Повышение привилегий в облаке Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cyber Security Academy?

Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Эксплуатация неправильных настроек IAM»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cyber Security Academy?

Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Поверхность атаки облака
  2. Перечисление облачных ресурсов
  3. Эксплуатация неправильных настроек IAM
  4. Закрепление и горизонтальное перемещение
← Назад к Cyber Security Academy