AWS - CloudFront Enum

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

CloudFront

CloudFront es la red de entrega de contenido de AWS que acelera la distribución de tu contenido estático y dinámico a través de su red mundial de ubicaciones de borde. Cuando utilizas un contenido solicitado que estás alojando a través de Amazon CloudFront, la solicitud se dirige a la ubicación de borde más cercana que proporciona la latencia más baja para ofrecer el mejor rendimiento. Cuando se habilitan los registros de acceso de CloudFront, puedes registrar la solicitud de cada usuario que solicita acceso a tu sitio web y distribución. Al igual que con los registros de acceso de S3, estos registros también se almacenan en Amazon S3 para un almacenamiento duradero y persistente. No hay cargos por habilitar el registro en sí, sin embargo, como los registros se almacenan en S3, se almacenarán por el almacenamiento utilizado por S3.

Los archivos de registro capturan datos durante un período de tiempo y dependiendo de la cantidad de solicitudes que recibe Amazon CloudFront para esa distribución, dependerá de la cantidad de archivos de registro que se generen. Es importante saber que estos archivos de registro no se crean ni se escriben en S3. S3 es simplemente donde se entregan una vez que el archivo de registro está lleno. Amazon CloudFront retiene estos registros hasta que estén listos para ser entregados a S3. Nuevamente, dependiendo del tamaño de estos archivos de registro, esta entrega puede tardar entre una y 24 horas.

Por defecto, el registro de cookies está deshabilitado pero puedes habilitarlo.

Funciones

Puedes crear funciones en CloudFront. Estas funciones tendrán su punto final en cloudfront definido y ejecutarán un código NodeJS declarado. Este código se ejecutará dentro de un sandbox en una máquina que se ejecuta en una máquina administrada por AWS (necesitarías un bypass de sandbox para lograr escapar al sistema operativo subyacente).

Dado que las funciones no se ejecutan en la cuenta de AWS del usuario, no se adjunta ningún rol de IAM, por lo que no es posible realizar un privesc directo abusando de esta característica.

Enumeración

aws cloudfront list-distributions
aws cloudfront get-distribution --id <id> # Just get 1
aws cloudfront get-distribution-config --id <id>

aws cloudfront list-functions
aws cloudfront get-function --name TestFunction function_code.js

aws cloudfront list-distributions | jq ".DistributionList.Items[] | .Id, .Origins.Items[].Id, .Origins.Items[].DomainName, .AliasICPRecordals[].CNAME"

Acceso no autenticado

pageAWS - Cloudfront Unauthenticated Enum

Post Explotación

pageAWS - CloudFront Post Exploitation
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización