Эксплуатация неправильных настроек 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 — локальная установка не требуется.
Все уроки этого курса
- Поверхность атаки облака
- Перечисление облачных ресурсов
- Эксплуатация неправильных настроек IAM
- Закрепление и горизонтальное перемещение