Translated ['src/pentesting-cloud/aws-security/aws-unauthenticated-enum-

This commit is contained in:
Translator
2025-04-30 15:35:20 +00:00
parent 4a3c0cc343
commit 38ec59b68f

View File

@@ -2,7 +2,7 @@
{{#include ../../../banners/hacktricks-training.md}}
## Buckets Públicos S3
## Buckets Públicos do S3
Um bucket é considerado **“público”** se **qualquer usuário pode listar o conteúdo** do bucket, e **“privado”** se o conteúdo do bucket pode **ser listado ou escrito apenas por certos usuários**.
@@ -10,7 +10,7 @@ As empresas podem ter **permissões de buckets mal configuradas**, dando acesso
**Saiba mais sobre a má configuração do AWS-S3 aqui:** [**http://flaws.cloud**](http://flaws.cloud/) **e** [**http://flaws2.cloud/**](http://flaws2.cloud)
### Encontrando Buckets AWS
### Encontrando Buckets da AWS
Diferentes métodos para encontrar quando uma página da web está usando AWS para armazenar alguns recursos:
@@ -18,17 +18,18 @@ Diferentes métodos para encontrar quando uma página da web está usando AWS pa
- Usando o plugin de navegador **wappalyzer**
- Usando burp (**spidering** a web) ou navegando manualmente pela página, todos os **recursos** **carregados** serão salvos no Histórico.
- **Verifique recursos** em domínios como:
- **Verifique os recursos** em domínios como:
```
http://s3.amazonaws.com/[bucket_name]/
http://[bucket_name].s3.amazonaws.com/
```
- Verifique por **CNAMES** como `resources.domain.com` que pode ter o CNAME `bucket.s3.amazonaws.com`
- Verifique por **CNAMES** já que `resources.domain.com` pode ter o CNAME `bucket.s3.amazonaws.com`
- **[s3dns](https://github.com/olizimmermann/s3dns)** Um servidor DNS leve que identifica passivamente buckets de armazenamento em nuvem (S3, GCP, Azure) analisando o tráfego DNS. Ele detecta CNAMEs, segue cadeias de resolução e combina padrões de buckets, oferecendo uma alternativa silenciosa à descoberta por força bruta ou baseada em API. Perfeito para recon e fluxos de trabalho de OSINT.
- Verifique [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), um site com **buckets abertos já descobertos**.
- O **nome do bucket** e o **nome do domínio do bucket** precisam ser **os mesmos.**
- **flaws.cloud** está em **IP** 52.92.181.107 e se você for lá, ele redireciona você para [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/). Além disso, `dig -x 52.92.181.107` retorna `s3-website-us-west-2.amazonaws.com`.
- **flaws.cloud** está no **IP** 52.92.181.107 e se você for lá, ele redireciona você para [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/). Além disso, `dig -x 52.92.181.107` retorna `s3-website-us-west-2.amazonaws.com`.
- Para verificar se é um bucket, você também pode **visitar** [https://flaws.cloud.s3.amazonaws.com/](https://flaws.cloud.s3.amazonaws.com/).
#### Força Bruta
@@ -50,7 +51,7 @@ curl -s https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt >
curl -s https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt >>/tmp/words-s3.txt.temp
cat /tmp/words-s3.txt.temp | sort -u > /tmp/words-s3.txt
# Gerar uma lista de palavras com base nos domínios e subdomínios para testar
# Gerar uma lista de palavras com base nos domínios e subdomínios a serem testados
## Escreva esses domínios e subdomínios em subdomains.txt
cat subdomains.txt > /tmp/words-hosts-s3.txt
cat subdomains.txt | tr "." "-" >> /tmp/words-hosts-s3.txt
@@ -85,7 +86,7 @@ Você pode encontrar todas as regiões suportadas pela AWS em [**https://docs.aw
#### Por DNS
Você pode obter a região de um bucket com um **`dig`** e **`nslookup`** fazendo uma **requisição DNS do IP descoberto**:
Você pode obter a região de um bucket com um **`dig`** e **`nslookup`** fazendo uma **solicitação DNS do IP descoberto**:
```bash
dig flaws.cloud
;; ANSWER SECTION:
@@ -99,9 +100,11 @@ Verifique se o domínio resolvido contém a palavra "website".\
Você pode acessar o site estático indo para: `flaws.cloud.s3-website-us-west-2.amazonaws.com`\
ou você pode acessar o bucket visitando: `flaws.cloud.s3-us-west-2.amazonaws.com`
#### Tentando
Se você tentar acessar um bucket, mas no **nome do domínio você especificar outra região** (por exemplo, o bucket está em `bucket.s3.amazonaws.com`, mas você tenta acessar `bucket.s3-website-us-west-2.amazonaws.com`), então você será **indicado para o local correto**:
Se você tentar acessar um bucket, mas no **nome do domínio você especificar outra região** (por exemplo, o bucket está em `bucket.s3.amazonaws.com`, mas você tenta acessar `bucket.s3-website-us-west-2.amazonaws.com`, então você será **indicado para o local correto**:
![](<../../../images/image (106).png>)
@@ -162,7 +165,7 @@ Se o erro for "Acesso Negado", isso significa que o ID da conta estava errado.
### Emails usados como enumeração de conta root
Como explicado em [**este post do blog**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), é possível verificar se um endereço de email está relacionado a alguma conta AWS **tentando conceder permissões a um email** sobre um bucket S3 via ACLs. Se isso não gerar um erro, significa que o email é um usuário root de alguma conta AWS:
Como explicado em [**este post do blog**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), é possível verificar se um endereço de e-mail está relacionado a alguma conta AWS **tentando conceder permissões a um e-mail** sobre um bucket S3 via ACLs. Se isso não gerar um erro, significa que o e-mail é um usuário root de alguma conta AWS:
```python
s3_client.put_bucket_acl(
Bucket=bucket_name,