В этой статье я покажу, как получить содержимое бакетов Amazon S3 AWS с помощью AWS CLI.
Еще по теме: Взлом удаленного хоста через Git
Получение содержимого бакетов AWS S3
После обнаружения максимального числа бакетов, пора переходить к перечислению их содержимого. С этим отлично справляется AWS CLI:
1 |
aws configure |
Дальше вводим данные любой действительной учетной записи AWS.
Существует флаг --no-sign-request, который позволяет получать анонимный доступ, но я рекомендую все‑таки вводить хоть какие‑нибудь учетные данные.
Иногда бывает, что от анонима ничего не найти, но разведка от лица какого‑нибудь пользователя раскрывает интересную информацию. Подчеркиваю: требуется ввести данные любой учетной записи AWS. Абсолютно любой.
Предлагаю начать с получения полного списка объектов в бакете:
1 |
aws aws s3 ls s3://<имя бакета> --recursive |
Либо:
1 |
aws s3api list-objects-v2 --bucket <имя бакета> |
Пример:
1 2 |
aws s3 ls s3://flaws.cloud --recursive aws s3api list-objects-v2 --bucket flaws.cloud |
Если объектов очень много, то можно покопаться в них с помощью стандартных регулярок.
1 2 3 4 5 6 |
# Извлечение имен файлов из параметра Key (имя файла) grep '"Key"' object.txt | sed 's/[",]//g' > list_keys.txt # Указываем интересующие нас расширения patterns='\.sh$|\.sql$|\.tar\.gz$\.properties$|\.config$|\.tgz$\.conf$|\.zip$|\.7z$|\.rar$|\.txt$|\.ps1$|\.bat$|\.word$|\.xlsx$|\.xls$|\.pdf$' # Находим файлы, соответствующие шаблону egrep $patterns list_keys.txt |
Когда список возможных объектов получен, можно скачать их вот так:
1 |
aws s3api get-object --bucket --key <имя файла> |
Например:
1 |
aws s3api get-object --bucket flaws.cloud --key aws.txt C:\Users\User\Desktop\downloaded.txt |
Также можно скачать бакет целиком:
1 |
aws s3 sync s3:/// . |
Очень много бакетов содержат репозитории на GitHub. Если такой найдется, обязательно попытайтесь достать интересную информацию с помощью Gitleaks или TruffleHog. В следующей статье поговорим о перечисление и эксфильтрации бакетов AWS S3.
РЕКОМЕНДУЕМ: