Как стать автором
Поиск
Написать публикацию
Обновить

От открытия до эксплуатации: Полное руководство по разведке S3 бакетов

Время на прочтение6 мин
Количество просмотров648
Автор оригинала: coffinxp

Пошаговое руководство по идентификации и эксплуатации неправильно настроенных AWS бакетов.

Еще больше познавательного контента в Telegram-канале — Life-Hack - Хакер

Введение  

Amazon S3 (Simple Storage Service) является одним из самых популярных решений для облачного хранения, но неправильные настройки могут привести к серьезным проблемам с безопасностью. В этом руководстве мы рассмотрим, как провести аудит S3-сред, обнаружить открытые бакеты, проанализировать разрешения и минимизировать риски безопасности. Используя инструменты AWS и сканеры, вы научитесь выявлять уязвимости, прежде чем они станут угрозами.

Что такое разведка S3 бакетов?

Разведка S3 бакетов - это процесс идентификации и исследования публично доступных или неправильно сконфигурированных AWS S3 бакетов, которые могут раскрывать чувствительные данные. Разработчики или специалисты по безопасности могут использовать эти методы, чтобы помочь организациям защитить их облачное хранилище.

Содержание

1. Понимание AWS S3 бакетов

2. Ручные методы для идентификации S3 бакетов

3. Google Dorking для AWS S3 бакетов

4. Автоматизация Google Dorking с помощью DorkEye

5. Использование инструмента S3Misconfig для быстрой энумерации бакетов

6. Поиск S3 бакетов с помощью HTTPX и Nuclei

7. Извлечение URL S3 из JavaScript файлов

8. Использование инструмента java2s3 для поиска URL S3 в js файлах

9. Брутфорс имен S3 бакетов с помощью LazyS3

10. Использование Cewl + S3Scanner для поиска открытых бакетов

11. Извлечение S3 бакетов из репозиториев GitHub

12. Вебсайты для поиска публичных S3 бакетов

13. Поиск скрытых URL S3 с помощью расширений

14. Перечисление содержимого AWS S3 бакетов и управление файлами

15. Эксплуатация неправильно сконфигурированных бакетов

16. Защита S3 бакетов для компаний

Ручные методы для идентификации S3 бакетов

Один из самых простых способов проверить, хостится ли вебсайт на AWS, - это ввести следующее в адресной строке браузера:

%c0

Если вы столкнулись с ошибкой XML, вероятно, сайт хостится на Amazon AWS. Для дальнейшей проверки используйте расширения браузера, такие как Wappalyzer, чтобы проверить наличие технологий, связанных с AWS.

Проверка исходного кода

Просмотрите исходный код сайта и поищите "s3", чтобы найти любые скрытые URL S3 бакетов. Если вы нашли такие, просто откройте их и проверьте, доступен ли просмотр бакетов.

Google Dorking для AWS S3 бакетов

Google dorking помогает выявить открытые S3 бакеты. Вы можете использовать следующий dork для поиска открытых S3 бакетов:

site:s3.amazonaws.com "target.com"

site:*.s3.amazonaws.com "target.com"

site:s3-external-1.amazonaws.com "target.com"

site:s3.dualstack.us-east-1.amazonaws.com "target.com"

site:amazonaws.com inurl:s3.amazonaws.com 

site:s3.amazonaws.com intitle:"index of"  

site:s3.amazonaws.com inurl:".s3.amazonaws.com/"  

site:s3.amazonaws.com intitle:"index of" "bucket"

(site:*.s3.amazonaws.com OR site:*.s3-external-1.amazonaws.com OR site:*.s3.dualstack.us-east-1.amazonaws.com OR site:*.s3.ap-south-1.amazonaws.com) "target.com"

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

Автоматизация Google Dorking с помощью DorkEye

DorkEye автоматизирует Google dorking, что делает разведку быстрее, он извлекает множество URL-адресов AWS для дальнейшего анализа.

Использование S3Misconfig для быстрой энумерации бакетов

S3Misconfig сканирует список URL-адресов на наличие открытых S3 бакетов с возможностью получить их содержимое и сохраняет результаты в удобном HTML-формате для легкого просмотра.

Поиск S3 бакетов с помощью HTTPX и Nuclei

Для быстрого определения всех S3 бакетов на поддоменах, вы можете воспользоваться HTTPX и Nuclei, это существенно сэкономит ваше время на разведку.

### using subfinder+HTTPX

subfinder -d target.com -all -silent | httpx-toolkit -sc -title -td | grep "Amazon S3"

  ### Nuclei template:

subfinder -d target.com -all -silent | nuclei -t /home/coffinxp/.local/nuclei-templates/http/technologies/s3-detect.yaml

Извлечение S3 URLs из JavaScript файлов 

Теперь мы воспользуемся инструментом Katana для загрузки JavaScript файлов с целевых поддоменов и извлечения S3 URL с помощью следующей команды grep:

katana -u https://site.com/ -d 5 -jc | grep '\.js$' | tee alljs.txt

cat alljs.txt | xargs -I {} curl -s {} | grep -oE 'http[s]?://[^"]*\.s3\.amazonaws\.com[^" ]*' | sort -u

Использование инструмента java2s3 для поиска S3 URLs в JS файлах

В качестве альтернативы вы можете использовать этот мощный метод для извлечения всех S3 URL из JavaScript файлов. Сначала объедините Subfinder и HTTPX, чтобы получить окончательный список поддоменов, а затем запустите инструмент java2s3 для извлечения.

subfinder -d target.com -all -silent | httpx-toolkit -o file.txt

cat file.txt | grep -oP '(?<=https?:\/\/).*'

python java2s3.py input.txt target.com output.txt

cat output3.txt | grep -E "S3 Buckets: \['[^]]+"

cat output.txt | grep -oP 'https?://[a-zA-Z0-9.-]*s3(\.dualstack)?\.ap-[a-z0-9-]+\.amazonaws\.com/[^\s"<>]+' | sort -u

cat output3.txt | grep -oP '([a-zA-Z0-9.-]+\.s3(\.dualstack)?\.[a-z0-9-]+\.amazonaws\.com)' | sort -u

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

https://github.com/mexploit30/java2s3

Брутфорс S3 бакета с помощью LazyS3

Вы также можете использовать инструмент LazyS3 — это, по сути, инструмент брутфорса для AWS S3 бакетов, использующий различные пермутации. Вы можете выполнить следующую команду, указав целевой домен.

ruby lazys3.rb <COMPANY> 

Использование Cewl + S3Scanner для нахождения открытых бакетов

Сначала используйте инструмент Cewl для генерации пользовательского словаря из целевого домена. Затем запустите S3Scanner с этим списком, чтобы идентифицировать действительные и недействительные S3 бакеты. Наконец, используйте команду grep для фильтрации действительных бакетов по разрешениям и размеру, а затем проверьте их содержимое с помощью AWS CLI.

cewl https://site.com/ -d 3 -w file.txt

s3scanner -bucket-file file.txt -enumerate -threads 10 | grep -aE 'AllUsers: \[.*(READ|WRITE|FULL).*]'

Извлечение S3 бакетов из GitHub репозиториев

Используйте GitHub dorks, чтобы найти ссылки на Amazon AWS в публичных репозиториях. Проверьте URL-адреса S3 на наличие списков бакетов и подтвердите доступ с помощью AWS CLI. Если вы обнаружите конфиденциальные данные, сообщите об этом в bug bounty программы.

org:target "amazonaws"

org:target "bucket_name" 

org:target "aws_access_key"

org:target "aws_access_key_id"

org:target "aws_key"

org:target "aws_secret"

org:target "aws_secret_key"

org:target "S3_BUCKET"

Сайты для поиска публичных S3 бакетов

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

https://buckets.grayhatwarfare.com/

https://osint.sh/buckets/

Поиск скрытых S3 URL с помощью расширений

Расширение S3BucketList для Chrome сканирует веб-страницы на предмет наличия открытых S3 URL, помогая исследователям быстро выявлять неправильно сконфигурированные бакеты без необходимости вручную проверять исходный код.

Просмотр AWS S3 бакетов и их содержимого

Команды для легкого управления AWS S3 бакетами. Эти AWS CLI команды помогают исследователям в области безопасности, тестировщикам на проникновение и администраторам просматривать, копировать, удалять и загружать файлы.

Чтение файлов:

aws s3 cp file.txt s3://[bucketname] --no-sign-request

Копирование:

aws s3 cp file.txt s3://[bucketname] --no-sign-request

Удаление:

aws s3 rm s3://[bucketname]/file.txt --no-sign-request

Загрузка:

aws s3 cp s3://[bucketname]/ ./ --recursive --no-sign-request

Бакеты с разрешением "Full Control" позволяют загружать и удалять файлы, что может привести к серьезным последствиям. Всегда следуйте политикам раскрытия информации при сообщении об уязвимостях.

Обеспечение безопасности S3 бакетов

Организации должны придерживаться лучших практик для предотвращения несанкционированного доступа:

- Включайте политики бакетов и ограничивайте доступ.

- Отключайте публичные ACL, если они не требуются.

- Следите за журналами с помощью AWS CloudTrail.

- Реализуйте шифрование для конфиденциальных данных.

Заключение

Поиск S3 бакетов имеет важное значение для этичных хакеров и специалистов по безопасности. Идентификация и защита неправильно настроенных бакетов помогает организациям укреплять свою облачную безопасность и предотвращать утечки данных.

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

Еще больше познавательного контента в Telegram-канале — Life-Hack - Хакер

Теги:
Хабы:
+1
Комментарии0

Публикации

Ближайшие события