mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-13 21:36:23 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-unauthenticated-enum-
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
## Cubos Públicos de S3
|
||||
|
||||
Un cubo se considera **“público”** si **cualquier usuario puede listar el contenido** del cubo, y **“privado”** si el contenido del cubo **solo puede ser listado o escrito por ciertos usuarios**.
|
||||
Un cubo se considera **“público”** si **cualquier usuario puede listar los contenidos** del cubo, y **“privado”** si los contenidos del cubo **solo pueden ser listados o escritos por ciertos usuarios**.
|
||||
|
||||
Las empresas pueden tener **permisos de cubos mal configurados** que dan acceso ya sea a todo o a todos los autenticados en AWS en cualquier cuenta (es decir, a cualquiera). Ten en cuenta que incluso con tales configuraciones erróneas, algunas acciones pueden no poder realizarse, ya que los cubos pueden tener sus propias listas de control de acceso (ACL).
|
||||
|
||||
@@ -26,10 +26,11 @@ http://[bucket_name].s3.amazonaws.com/
|
||||
```
|
||||
|
||||
- Verifica los **CNAMES** ya que `resources.domain.com` podría tener el CNAME `bucket.s3.amazonaws.com`
|
||||
- **[s3dns](https://github.com/olizimmermann/s3dns)** – Un servidor DNS ligero que identifica pasivamente cubos de almacenamiento en la nube (S3, GCP, Azure) analizando el tráfico DNS. Detecta CNAMEs, sigue cadenas de resolución y coincide con patrones de cubos, ofreciendo una alternativa silenciosa a la búsqueda por fuerza bruta o basada en API. Perfecto para flujos de trabajo de reconocimiento y OSINT.
|
||||
- Verifica [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), una web con **cubos abiertos ya descubiertos**.
|
||||
- El **nombre del cubo** y el **nombre de dominio del cubo** deben ser **los mismos.**
|
||||
- **flaws.cloud** está en **IP** 52.92.181.107 y si vas allí te redirige a [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/). Además, `dig -x 52.92.181.107` da `s3-website-us-west-2.amazonaws.com`.
|
||||
- Para verificar que es un cubo, también puedes **visitar** [https://flaws.cloud.s3.amazonaws.com/](https://flaws.cloud.s3.amazonaws.com/).
|
||||
- Para verificar que es un cubo también puedes **visitar** [https://flaws.cloud.s3.amazonaws.com/](https://flaws.cloud.s3.amazonaws.com/).
|
||||
|
||||
#### Fuerza Bruta
|
||||
|
||||
@@ -58,7 +59,7 @@ cat subdomains.txt | tr "." "\n" | sort -u >> /tmp/words-hosts-s3.txt
|
||||
|
||||
# Crear permutaciones basadas en una lista con los dominios y subdominios a atacar
|
||||
goaltdns -l /tmp/words-hosts-s3.txt -w /tmp/words-s3.txt -o /tmp/final-words-s3.txt.temp
|
||||
## La herramienta anterior está especializada en crear permutaciones para subdominios, vamos a filtrar esa lista
|
||||
## La herramienta anterior está especializada en crear permutaciones para subdominios, filtramos esa lista
|
||||
<strong>### Eliminar líneas que terminan con "."
|
||||
</strong>cat /tmp/final-words-s3.txt.temp | grep -Ev "\.$" > /tmp/final-words-s3.txt.temp2
|
||||
### Crear lista sin TLD
|
||||
@@ -77,7 +78,7 @@ s3scanner --threads 100 scan --buckets-file /tmp/final-words-s3.txt | grep buck
|
||||
|
||||
#### Saquear Cubos S3
|
||||
|
||||
Dado los cubos abiertos de S3, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) puede **buscar automáticamente información interesante**.
|
||||
Dado cubos S3 abiertos, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) puede **buscar automáticamente información interesante**.
|
||||
|
||||
### Encontrar la Región
|
||||
|
||||
@@ -99,6 +100,8 @@ Verifica que el dominio resuelto tenga la palabra "website".\
|
||||
Puedes acceder al sitio web estático yendo a: `flaws.cloud.s3-website-us-west-2.amazonaws.com`\
|
||||
o puedes acceder al bucket visitando: `flaws.cloud.s3-us-west-2.amazonaws.com`
|
||||
|
||||
|
||||
|
||||
#### Intentando
|
||||
|
||||
Si intentas acceder a un bucket, pero en el **nombre de dominio especificas otra región** (por ejemplo, el bucket está en `bucket.s3.amazonaws.com` pero intentas acceder a `bucket.s3-website-us-west-2.amazonaws.com`, entonces se te **indicarán a la ubicación correcta**:
|
||||
@@ -158,11 +161,11 @@ curl -X GET "[bucketname].amazonaws.com/" \
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">...</ListBucketResult>
|
||||
```
|
||||
Si el error es "Acceso Denegado", significa que el ID de la cuenta era incorrecto.
|
||||
Si el error es "Acceso Denegado", significa que el ID de cuenta era incorrecto.
|
||||
|
||||
### Correos electrónicos utilizados como enumeración de cuentas raíz
|
||||
### Uso de correos electrónicos como enumeración de cuentas raíz
|
||||
|
||||
Como se explicó en [**esta publicación del blog**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), es posible verificar si una dirección de correo electrónico está relacionada con alguna cuenta de AWS al **intentar otorgar permisos a un correo electrónico** sobre un bucket de S3 a través de ACLs. Si esto no genera un error, significa que el correo electrónico es un usuario raíz de alguna cuenta de AWS:
|
||||
Como se explica en [**esta publicación del blog**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), es posible verificar si una dirección de correo electrónico está relacionada con alguna cuenta de AWS al **intentar otorgar permisos a un correo electrónico** sobre un bucket S3 a través de ACLs. Si esto no genera un error, significa que el correo electrónico es un usuario raíz de alguna cuenta de AWS:
|
||||
```python
|
||||
s3_client.put_bucket_acl(
|
||||
Bucket=bucket_name,
|
||||
|
||||
Reference in New Issue
Block a user