Penetration Testing. Бакеты Amazon S3
Тестировал недавно сайт какой-то музыкальной группы в Miami, а работал собственно этот сайт в CDN Amazon, на самом сайте ничего интересного не нашел, а вот когда начал исследовать bucket'ы....
Что такое Amazon S3?
Интернет-сервис Amazon Simple Storage Service (S3) — это веб-хранилище. Оно спроектировано с целью упрощения веб вычислений и предназначено для хранения и извлечения любых объемов данных из любых источников: веб-сайтов и мобильных приложений, корпоративных приложений, а также данных с датчиков или устройств IoT.
Что такое AWS Bucket?
S3 хранит произвольные объекты размером до 5 терабайт, каждый из которых содержит до 2 килобайт метаданных. Объекты организованы в бакеты (каждый из которых принадлежит учетной записи Amazon) и идентифицируются в каждом бакете с помощью уникального назначенного пользователем ключа. Виртуальные машины Amazon (AMI) которые используются в EC2, могут быть экспортированы в S3 в виде пакетов.
Бакеты и объекты могут быть созданы, перечислены и извлечены с использованием HTTP-интерфейса, REST-стиля или интерфейса SOAP. Кроме того, объекты могут быть загружены с использованием протокола BitTorrent.
Запросы разрешаются с использованием списка управления доступом, связанного с каждым бакетом и объектом.
Названия и ключи bucket выбираются так, чтобы объекты могли быть адресованы с использованием URL-адресов:
- http://s3.amazonaws.com/bucket/key
- http://bucket.s3.amazonaws.com/key
- http://bucket/key (где бакет - это DNS CNAME указывающий на bucket.s3.amazonaws.com)
1) Поиск бакетов.
Для поиска бакетов, я воспользовался этой тулзой.
./find_public_buckets.py -p -s company.com
По окончании процесса смотрим файл buckets_found.txt:
Из списка лога видно что нашли 4 бакета, но доступ к ним запрещен, один бакет публичный, и включим редирект. Значит напрямую по адресу, мы ничего не получим, а если спросим у Гугла?
site:s3.amazonaws.com inurl:company filetype:xls password
Бинго! Получаем логины и пароли от аккаунтов организации.
Company - вымышленное название, любые совпадения случайны!
Вывод:
Иногда бывает, где-то, за каким-то сервисом админы не доглядели, или вообще *** положили, ведь у амазон нет встроенной функции поиска бакетов, но зато какой-нибудь хакер напишет или уже написал скрипт для автоматизации поиска, и все, приплыли!
Все действия в этой статье были произведены при реальном пентесте, грамотно расставляйте права на файлы и включайте доступ только по ключу, и тогда уровень вероятности что ваш сайт в амазоне похакает какой-нибудь скрипт-кидди будет стремиться ближе к нулю (если сами ключи не светить).