mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-12 13:05:19 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-unauthenticated-enum-
This commit is contained in:
@@ -12,12 +12,12 @@
|
||||
|
||||
### Пошук AWS Бакетів
|
||||
|
||||
Різні методи для виявлення, коли веб-сторінка використовує AWS для зберігання деяких ресурсів:
|
||||
Різні методи для визначення, коли веб-сторінка використовує AWS для зберігання деяких ресурсів:
|
||||
|
||||
#### Перерахування та OSINT:
|
||||
|
||||
- Використання плагіна браузера **wappalyzer**
|
||||
- Використання burp (**спайдеринг** вебу) або ручна навігація по сторінці, всі **ресурси**, **завантажені** будуть збережені в Історії.
|
||||
- Використання burp (**спайдеринг** вебу) або ручного навігації по сторінці, всі **ресурси**, **завантажені** будуть збережені в Історії.
|
||||
- **Перевірте ресурси** в доменах, таких як:
|
||||
|
||||
```
|
||||
@@ -26,18 +26,19 @@ http://[bucket_name].s3.amazonaws.com/
|
||||
```
|
||||
|
||||
- Перевірте **CNAMES**, оскільки `resources.domain.com` може мати CNAME `bucket.s3.amazonaws.com`
|
||||
- **[s3dns](https://github.com/olizimmermann/s3dns)** – легкий DNS-сервер, який пасивно ідентифікує бакети хмарного зберігання (S3, GCP, Azure), аналізуючи DNS-трафік. Він виявляє CNAME, слідкує за ланцюгами розв'язання та співвідносить шаблони бакетів, пропонуючи тиху альтернативу брутфорсу або відкриттю через API. Ідеально підходить для розвідки та OSINT-робочих процесів.
|
||||
- Перевірте [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), веб-сайт з уже **виявленими відкритими бакетами**.
|
||||
- **Ім'я бакета** та **доменне ім'я бакета** повинні бути **однаковими.**
|
||||
- **flaws.cloud** знаходиться за **IP** 52.92.181.107, і якщо ви туди перейдете, вас перенаправить на [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/). Також, `dig -x 52.92.181.107` дає `s3-website-us-west-2.amazonaws.com`.
|
||||
- **Назва бакета** та **доменна назва бакета** повинні бути **однаковими.**
|
||||
- **flaws.cloud** знаходиться в **IP** 52.92.181.107, і якщо ви туди перейдете, він перенаправить вас на [https://aws.amazon.com/s3/](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://flaws.cloud.s3.amazonaws.com/).
|
||||
|
||||
#### Брутфорс
|
||||
|
||||
Ви можете знайти бакети, **брутфорсуючи імена**, пов'язані з компанією, яку ви тестуєте:
|
||||
Ви можете знайти бакети, **брутфорсуючи назви**, пов'язані з компанією, яку ви тестуєте:
|
||||
|
||||
- [https://github.com/sa7mon/S3Scanner](https://github.com/sa7mon/S3Scanner)
|
||||
- [https://github.com/clario-tech/s3-inspector](https://github.com/clario-tech/s3-inspector)
|
||||
- [https://github.com/jordanpotti/AWSBucketDump](https://github.com/jordanpotti/AWSBucketDump) (містить список потенційних імен бакетів)
|
||||
- [https://github.com/jordanpotti/AWSBucketDump](https://github.com/jordanpotti/AWSBucketDump) (містить список потенційних назв бакетів)
|
||||
- [https://github.com/fellchase/flumberboozle/tree/master/flumberbuckets](https://github.com/fellchase/flumberboozle/tree/master/flumberbuckets)
|
||||
- [https://github.com/smaranchand/bucky](https://github.com/smaranchand/bucky)
|
||||
- [https://github.com/tomdev/teh_s3_bucketeers](https://github.com/tomdev/teh_s3_bucketeers)
|
||||
@@ -75,7 +76,7 @@ cat /tmp/final-words-s3.txt.temp2 /tmp/final-words-s3.txt.temp3 /tmp/final-words
|
||||
s3scanner --threads 100 scan --buckets-file /tmp/final-words-s3.txt | grep bucket_exists
|
||||
</code></pre>
|
||||
|
||||
#### Лут S3 Бакети
|
||||
#### Здобуття S3 Бакетів
|
||||
|
||||
Даючи відкриті S3 бакети, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) може автоматично **шукати цікаву інформацію**.
|
||||
|
||||
@@ -85,7 +86,7 @@ s3scanner --threads 100 scan --buckets-file /tmp/final-words-s3.txt | grep buck
|
||||
|
||||
#### За DNS
|
||||
|
||||
Ви можете отримати регіон бакета за допомогою **`dig`** та **`nslookup`**, зробивши **DNS запит виявленої IP**:
|
||||
Ви можете отримати регіон бакета за допомогою **`dig`** та **`nslookup`**, зробивши **DNS-запит на виявлену IP-адресу**:
|
||||
```bash
|
||||
dig flaws.cloud
|
||||
;; ANSWER SECTION:
|
||||
@@ -95,19 +96,21 @@ nslookup 52.218.192.11
|
||||
Non-authoritative answer:
|
||||
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com.
|
||||
```
|
||||
Перевірте, чи має розв'язане доменне ім'я слово "website".\
|
||||
Перевірте, що в розв'язаному домені є слово "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`, тоді вам буде **вказано на правильне місце**:
|
||||
Якщо ви намагаєтеся отримати доступ до бакету, але в **імені домену вказуєте інший регіон** (наприклад, бакет знаходиться в `bucket.s3.amazonaws.com`, але ви намагаєтеся отримати доступ до `bucket.s3-website-us-west-2.amazonaws.com`, тоді вам буде **вказано на правильне місце**:
|
||||
|
||||
.png>)
|
||||
|
||||
### Перерахування бакету
|
||||
|
||||
Щоб перевірити відкритість бакету, користувач може просто ввести URL у своєму веб-браузері. Приватний бакет відповість "Access Denied". Публічний бакет відобразить перші 1,000 об'єктів, які були збережені.
|
||||
Щоб перевірити відкритість бакету, користувач може просто ввести URL у своєму веб-браузері. Приватний бакет відповість "Доступ заборонено". Публічний бакет відобразить перші 1,000 об'єктів, які були збережені.
|
||||
|
||||
Відкрито для всіх:
|
||||
|
||||
@@ -125,16 +128,16 @@ Non-authoritative answer:
|
||||
#Opcionally you can select the region if you now it
|
||||
aws s3 ls s3://flaws.cloud/ [--no-sign-request] [--profile <PROFILE_NAME>] [ --recursive] [--region us-west-2]
|
||||
```
|
||||
Якщо у бакета немає доменного імені, при спробі його перерахувати, **вкажіть лише ім'я бакета** і не вводьте ціле доменне ім'я AWSs3. Приклад: `s3://<BUCKETNAME>`
|
||||
Якщо бакет не має доменного імені, при спробі його перерахувати, **вкажіть лише ім'я бакета** і не вводьте ціле доменне ім'я AWSs3. Приклад: `s3://<BUCKETNAME>`
|
||||
|
||||
### Шаблон публічного URL
|
||||
```
|
||||
https://{user_provided}.s3.amazonaws.com
|
||||
```
|
||||
### Отримання ідентифікатора облікового запису з публічного бакету
|
||||
### Отримання ID облікового запису з публічного бакету
|
||||
|
||||
Можливо визначити обліковий запис AWS, скориставшись новим **`S3:ResourceAccount`** **ключем умови політики**. Ця умова **обмежує доступ на основі S3 бакету**, в якому знаходиться обліковий запис (інші політики, що базуються на облікових записах, обмежують доступ на основі облікового запису, в якому знаходиться запитуючий суб'єкт).\
|
||||
І оскільки політика може містити **символи підстановки**, можливо знайти номер облікового запису **лише по одному числу за раз**.
|
||||
І оскільки політика може містити **шаблони**, можливо знайти номер облікового запису **лише по одному числу за раз**.
|
||||
|
||||
Цей інструмент автоматизує процес:
|
||||
```bash
|
||||
@@ -160,9 +163,9 @@ curl -X GET "[bucketname].amazonaws.com/" \
|
||||
```
|
||||
Якщо помилка є "Доступ заборонено", це означає, що ідентифікатор облікового запису був неправильним.
|
||||
|
||||
### Використані електронні адреси для перерахунку облікових записів root
|
||||
### Використані електронні адреси для перерахунку кореневих облікових записів
|
||||
|
||||
Як пояснено в [**цьому блозі**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), можливо перевірити, чи пов'язана електронна адреса з будь-яким обліковим записом AWS, **спробувавши надати електронній адресі дозволи** на S3 бакет через ACL. Якщо це не викликає помилки, це означає, що електронна адреса є користувачем root деякого облікового запису AWS:
|
||||
Як пояснено в [**цьому блозі**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), можливо перевірити, чи пов'язана електронна адреса з будь-яким обліковим записом AWS, **спробувавши надати електронній адресі дозволи** на S3 бакет через ACL. Якщо це не викликає помилки, це означає, що електронна адреса є кореневим користувачем якогось облікового запису AWS:
|
||||
```python
|
||||
s3_client.put_bucket_acl(
|
||||
Bucket=bucket_name,
|
||||
|
||||
Reference in New Issue
Block a user