# AWS S3

## Enumeration

Plusieurs outils présentés dans la partie "OSINT/Recon" => "Cloud" vous permettrons d'enumérer les buckets AWS S3 pour une entreprise.

{% content-ref url="/pages/qX4GlS5yoTnKI9IZGGcY" %}
[Cloud](/osint-recon/cloud.md)
{% endcontent-ref %}

### Sites:

* <https://buckets.grayhatwarfare.com/>

### Manuel

1. Rechercher dans les réponses HTTP des headers "Amazon S3"
2. Rechercher des urls random si elles donnent ou non un code 404 (bruteforce)
3. Essayer d'accèder à la racine de l'url (Si le directory indexing est autorisé, vous pourrez retrouver le nom du bucket).
4. [Google dork](/osint-recon/manuel-dorks/google-dorks.md)
5. Rechercher dans les metadatas et les liens dans le code source.
6. Utiliser la waybackmachine.

## Exploitation

1. Accès anonyme
2. listing de fichier arbitraire
3. File upload => File overwrite (autorisé par défaut)
4. Copie / Deplacement / Supression des données
5. Lecture / Ecriture arbitraire des objets

Interaction avec les S3 Buckets via AWS-CLI:

CP = COPY, MV = MOVE, RM = REMOVE

exemples:

```
aws s3api get-bucket-acl --bucket <BucketName> --no-sign-request
aws s3 ls s3://<BuckketName> --no-sign-request
aws s3 mv test.txt s3://<BucketName> --no-sign-request
aws s3 cp test.txt s3://<BucketName> --no-sign-request
aws s3 rm test.txt s3://<BucketName> --no-sign-request
```

## File Overwrite Amazon S3

Les buckets Amazon s3 autorisent par défaut le File Overwrite. Il est donc possible de réécrire les fichiers appelés par l'application testée ce qui peut mener à différents exploit tels que des xss en réécrivant un fichier .js par exemple.

## Ressources

{% embed url="<https://hackerone.com/reports/1598347>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.s1rn3tz.ovh/pentest-web/aws-s3.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
