AWS - S3 Unauthenticated Enum
Публічні відрахунки S3
Відро вважається "публічним", якщо будь-який користувач може переглядати вміст відра, і "приватним", якщо вміст відра може переглядати або записувати лише певні користувачі.
Компанії можуть мати неправильно налаштовані дозволи відра, надаючи доступ або до всього, або до всіх аутентифікованих користувачів AWS в будь-якому обліковому записі (таким чином, до будь-кого). Зверніть увагу, що навіть з такими неправильностями деякі дії можуть бути неможливі, оскільки відра можуть мати власні списки керування доступом (ACL).
Дізнайтеся про неправильну конфігурацію AWS-S3 тут: http://flaws.cloud і http://flaws2.cloud/
Пошук відра AWS
Різні методи для виявлення, коли веб-сторінка використовує AWS для зберігання деяких ресурсів:
Перелік та OSINT:
Використання додатка браузера wappalyzer
Використання burp (павукинг веб-сторінки) або шляхом ручного переходу по сторінці всі ресурси, завантажені будуть збережені в Історії.
Перевірте ресурси на доменах, подібних:
Перевірте CNAMES, оскільки
resources.domain.com
може мати CNAMEbucket.s3.amazonaws.com
Перевірте https://buckets.grayhatwarfare.com, веб-сайт з вже виявленими відкритими відрах.
Ім'я відра та доменне ім'я відра повинні бути однаковими.
flaws.cloud має IP 52.92.181.107 і якщо ви перейдете туди, вас перенаправить на https://aws.amazon.com/s3/. Також,
dig -x 52.92.181.107
даєs3-website-us-west-2.amazonaws.com
.Щоб перевірити, що це відро, ви також можете відвідати https://flaws.cloud.s3.amazonaws.com/.
Брутфорс
Ви можете знайти відра, брутфорсячи імена, пов'язані з компанією, яку ви тестуєте на проникнення:
https://github.com/jordanpotti/AWSBucketDump (Містить список потенційних імен відра)
Здійснюйте облік S3-ведер
З урахуванням відкритих ведер S3, BucketLoot може автоматично шукати цікаву інформацію.
Знайдіть регіон
Ви можете знайти всі підтримувані регіони AWS за посиланням https://docs.aws.amazon.com/general/latest/gr/s3.html
За допомогою DNS
Ви можете отримати регіон відра за допомогою dig
та nslookup
, виконавши DNS-запит виявленої IP-адреси:
Перевірте, що вирішений домен містить слово "website".
Ви можете отримати доступ до статичного веб-сайту, перейшовши за посиланням: flaws.cloud.s3-website-us-west-2.amazonaws.com
або ви можете отримати доступ до кошика, відвідавши: flaws.cloud.s3-us-west-2.amazonaws.com
Шляхом спроби
Якщо ви намагаєтеся отримати доступ до кошика, але в ім'я домену ви вказуєте інший регіон (наприклад, кошик знаходиться в bucket.s3.amazonaws.com
, але ви намагаєтеся отримати доступ до bucket.s3-website-us-west-2.amazonaws.com
), то вас спрямують до правильного місця:
Перелік кошика
Для перевірки відкритості кошика користувач може просто ввести URL-адресу у свій веб-переглядач. Приватний кошик відповість "Доступ заборонено". Громадський кошик перерахує перші 1 000 об'єктів, які були збережені.
Відкритий для всіх:
Приватний:
Ви також можете перевірити це за допомогою cli:
Якщо у відра немає доменного імені, при спробі переліку його лише вкажіть назву відра, а не весь домен AWSs3. Приклад: s3://<BUCKETNAME>
Шаблон публічного URL
Отримання ідентифікатора облікового запису з публічного Bucket
Можливо визначити обліковий запис AWS, скориставшись новим S3:ResourceAccount
Policy Condition Key. Ця умова обмежує доступ на основі Bucket S3, в якому знаходиться обліковий запис (інші політики, що базуються на обліковому записі запитуючого принципала).
І через те, що політика може містити шаблони, можливо знайти номер облікового запису лише по одному номеру за раз.
Цей інструмент автоматизує процес:
Ця техніка також працює з URL-адресами API Gateway, URL-адресами Lambda, наборами даних Data Exchange та навіть для отримання значення тегів (якщо ви знаєте ключ тегу). Ви можете знайти більше інформації у оригінальному дослідженні та у інструменті conditional-love для автоматизації цієї експлуатації.
References
Last updated