Amazon Web Services (AWS), Cloud, Google Cloud Platform (GCP), Microsoft Azure, Pentest, Пентест

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 для проверки открытых бакетов. Если доступ разрешён без аутентификации — это джекпот.
    • Команда:

Если бакет открыт, качай всё:

Поиск ключей в репах:
Используй truffleHog для поиска утёкших creds в GitHub или локальных репах.

  • Команда:
  • Ищи строки с AWS_ACCESS_KEY_ID или AWS_SECRET_ACCESS_KEY. Если нашёл — сохраняй для следующего шага.

2. IAM-перебор: Доступ через украденные ключи

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

  • Настройка ключей:
    • Команда:

Проверка доступов:
Используй инструмент Pacu для автоматизации анализа IAM.

  • Установка:

Запуск:

  • Результат: Часто IAM-роль даёт доступ к S3, EC2 или даже админские привилегии. Если права есть, переходи к эксплуатации.

3. Эксплуатация S3: Заливаем полезную нагрузку

Если S3-бакет доступен на запись, можно залить что-то вкусное, например, веб-шелл, и получить доступ через публичный URL.

  • Команда:
  • Результат: Если бакет публичный, заходишь через браузер на https://target-bucket.s3.amazonaws.com/public/shell.php и получаешь управление. Если там ещё и бэкэнд на PHP крутится — это прямой RCE.

4. Серверлесс-функции: RCE через Lambda

AWS Lambda или Azure Functions часто используются для обработки событий, но код там может быть уязвим к инъекциям. Если у тебя есть доступ к редактированию функции через IAM, можно впихнуть свой payload.

  • Шаг 1: Проверь доступ к Lambda через awscli:

Шаг 2: Если нашёл функцию, обнови код с вредоносным скриптом (например, reverse shell на Python):

  • Результат: Функция выполнит твой код при следующем вызове. Настрой слушатель на своём сервере через nc -lvp 4444 и жди коннект.

5. Бонус для GCP и Azure

  • GCP: Ищи открытые Cloud Storage бакеты через gsutil:
  • Также проверяй ключи в JSON-формате, которые могут утекать в репы.
  • Azure: Используй azcli для проверки доступа к Blob Storage:
  • Часто контейнеры открыты на чтение или запись.

Трюк: Автоматизация сканирования облака

Ручной перебор — это для лохов, автоматизируй всё! Используй готовые тулы или пиши свои скрипты.

  • CloudSploit: Готовый инструмент для поиска мисконфигов в AWS, Azure и GCP.
    • Установка:

Запуск:

  • Результат: Отчёт с кучей уязвимостей вроде открытых бакетов или кривых IAM-политик.
  • Boto3-скрипты: Для AWS пиши свои скрипты на Python с библиотекой boto3. Пример для проверки S3:
  • Это покажет, какие бакеты открыты для всех.

Советы

  1. OSINT глубже: Копай дольше через Shodan или Censys, ищи поддомены типа *.s3.amazonaws.com или *.blob.core.windows.net. Там часто висят бакеты.
  2. IAM-эскалация: Если IAM-политика даёт доступ к iam:CreatePolicy, создавай себе админские права через Pacu (модуль iam__backdoor_users_keys).
  3. Серверлесс-атаки: Проверяй триггеры Lambda или Functions на предмет инъекций через события. Иногда можно отправить вредоносный JSON через API Gateway.
  4. Логирование: Убедись, что CloudTrail (AWS) или аудит-логи (Azure/GCP) не пишут твои действия. Если есть доступ, отключай их.
  5. План атаки: Нашёл открытые бакеты или ключи? Лезь дальше — качай данные, ищи creds в файлах, эскалируй до админа через IAM. Мы в игре, братан, жги облако!
Cloud-пентест: как ломать AWS Azure и GCP

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