AWS - CloudFront Enum

Support 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 de solicitud que estás alojando a través de Amazon CloudFront, la solicitud se enruta a la ubicación de borde más cercana, lo que proporciona la menor latencia 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 son almacenados en Amazon S3 para un almacenamiento duradero y persistente. No hay cargos por habilitar el registro en sí, sin embargo, dado que los registros se almacenan en S3, se te cobrará por el almacenamiento utilizado por S3.

Los archivos de registro capturan datos durante un período de tiempo y 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á completo. 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.

Functions

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 funciona bajo una máquina administrada por AWS (necesitarías un bypass de sandbox para lograr escapar al sistema operativo subyacente).

Como 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 un privilegio de escalada directo abusando de esta función.

Enumeration

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

Post Explotación

Apoya a HackTricks

Last updated