Взлом облака: повышение привилегий в AWS

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
В предыдущем уроке мы изучили облачные технологии и способы сбора данных. Пользователь, доступ к которому вам удалось получить, не всегда будет администратором, поэтому стоит изучить, как выполнять повышение привилегий в среде IAM.

6a4a49_3e8264a17ce143d58d74fdcd2ec3e1aa~mv2.png

Рекомендуется начать с политик: наша цель — получить неограниченный доступ к как можно большему количеству ресурсов. Политика с параметрами Действие: , Ресурс: , Эффект: Разрешить .

IAM предоставляет широкий спектр возможностей, что приводит к многообразию векторов атак. Давайте рассмотрим некоторые из них.

Создание новой версии политики

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

Чтобы проверить политики, прикрепленные к пользователю, используйте следующие команды:

kali> aws iam list-attached-user-policies –user-name <имя пользователя>

kali> aws iam list-user-policies –user-name <имя пользователя>


6a4a49_b653594803bc4e5db901e7ecddb40d3f~mv2.png

Для этого можно воспользоваться следующим методом.

Создайте json-файл, в моем случае это MyPolicy.json:

Хотя для установки новой версии политики в качестве версии по умолчанию обычно требуется разрешение iam:SetDefaultPolicyVersion, использование флага –set-as-default во время создания автоматически назначает ее новой версией по умолчанию без необходимости получения этого разрешения.

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

Прикрепление политики к пользователю/группе

Если у нашего пользователя IAM есть разрешение iam:AttachUserPolicy, то мы можем повысить привилегии, прикрепив политику и получив разрешения, указанные в этой политике.

Это можно сделать следующим образом:

kali> aws iam attach-user-policy –user-name my_username –policy-arn arn:aws:iam::aws:policy/AdministratorAccess

Как вы могли догадаться, пользователь получит права администратора. Добавление политики в группу работает аналогично, но требует разрешения iam:AttachGroupPolicy:

kali> aws iam attach-group-policy –group-name my_group –policy-arn arn:aws:iam::aws:policy/AdministratorAccess

Установка версии политики по умолчанию

Предположим, вы обнаружили, что в облаке, которое вы исследуете, существует несколько версий одной и той же политики. Причём первая версия предоставляет несколько более продвинутые функции, чем вторая. В этом случае, используя привилегию iam:SetDefaultPolicyVersion, мы можем изменить версию политики на нужную.

Например, вы заметили, что политика PolicyToChange имеет несколько версий:

kali> aws iam list-policy-versions –policy-arn arn:aws:iam::123456789012:policy/PolicyToChange

Для глубокого анализа конкретной версии используйте следующую команду:

kali> aws iam get-policy-version –policy-arn arn:aws:iam::

123456789012:policy/PolicyToChange –version-id v1


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

kali> aws iam set-default-policy-version –policy-arn arn:aws:iam:: 123456789012:policy/PolicyToChange –version-id v1

Создание экземпляра EC2 с существующим профилем экземпляра

С разрешениями iam:PassRole и ec2:RunInstances мы можем создать новый экземпляр EC2 с доступом к ОС. Затем мы передаём ему существующий профиль/роль сервиса экземпляра EC2. Войдя в экземпляр, мы запрашиваем связанные ключи AWS из метаданных экземпляра EC2, получая доступ ко всем разрешениям профиля/роли сервиса.

Мы можем получить доступ к экземпляру, создав/импортировав ключ SSH или предоставив скрипт в данных пользователя EC2 или полезную нагрузку обратной оболочки.

После того как экземпляр запущен и доступен, запрос метаданных EC2 предоставляет временные учетные данные для связанного профиля экземпляра, предоставляя доступ к любой службе AWS, имеющейся у прикрепленной роли.

Пример команды для использования этого метода может выглядеть так:

kali> aws ec2 run-instances –image-id 12345 –instance-type t2.micro –iam-instance-profile Name=iam-full-access-ip –key-name my_ssh_key –security-group-ids sg-123456

У нас есть доступ к my_ssh_key, а группа безопасности sg-123456 разрешает доступ по SSH. Другая команда, которую можно выполнить без ключа SSH или группы безопасности, разрешающей доступ по SSH, может выглядеть так:

kali> aws ec2 run-instances –image-id 12345 –instance-type t2.micro –iam-instance-profile Name=iam-full-access-ip –user-data file://reverse_shell.sh

Где файл скрипта .sh содержит скрипт для открытия обратной оболочки тем или иным способом.

Автоматизированные проверки

Существуют различные инструменты для сканирования политик и поиска векторов повышения привилегий. Один из них — aws_escalate.py ( https://github.com/RhinoSecurityLabs/Security-Research/blob/master/tools/aws-pentest-tools/aws_escalate.py ).

Для начала укажите следующие параметры:

kali> python3 aws_escalate.py –имя-пользователя Пользователь –идентификатор-ключа-доступа 12345 –секретный-ключ 12345

6a4a49_ef6c179509df485e9bd213f1b83734fc~mv2.png

Вы также можете не указывать конкретного пользователя и использовать параметр -all-users для сканирования всех доступных пользователей.

Стоит отметить, что само повышение привилегий через IAM — относительно простая процедура. Главное — понимать, что всегда требуется перечислять политики. Чаще всего уязвимая конфигурация находится именно там.

Краткое содержание

С помощью этих простых методов мы можем повысить ваши привилегии IAM и получить полные права администратора.

Продолжение следует…
 
зачем уже облако взламывать скажи мне
 
взломать облако же сложно
 
Назад
Сверху Снизу