AWS - CloudFront Enum

支持 HackTricks

CloudFront

CloudFront 是 AWS 的 内容分发网络,加速静态和动态内容的分发,通过其全球边缘位置网络。当您使用通过 Amazon CloudFront 托管的请求内容时,请求会路由到最近的边缘位置,从而提供最低延迟以实现最佳性能。当 CloudFront 访问日志 被启用时,您可以记录每个用户请求访问您网站和分发的请求。与 S3 访问日志一样,这些日志也 存储在 Amazon S3 中,以实现持久和耐用的存储。启用日志记录本身没有费用,但由于日志存储在 S3 中,因此您将为 S3 使用的存储付费。

日志文件在一段时间内捕获数据,具体取决于 Amazon CloudFront 为该分发接收到的请求数量,这将决定生成的日志文件数量。重要的是要知道,这些日志文件并不是在 S3 上创建或写入的。S3 只是它们在日志文件满时交付的地方。Amazon CloudFront 保留这些日志,直到它们准备好交付给 S3。同样,具体取决于这些日志文件的大小,这种交付可能需要 一到 24 小时

默认情况下,Cookie 日志记录是禁用的,但您可以启用它。

功能

您可以在 CloudFront 中创建函数。这些函数将在定义的 CloudFront 端点中运行声明的 NodeJS 代码。此代码将在 AWS 管理的机器上运行的 沙箱 内运行(您需要一个沙箱绕过才能逃逸到底层操作系统)。

由于函数不是在用户的 AWS 账户中运行,因此没有附加 IAM 角色,因此无法通过滥用此功能进行直接权限提升。

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"

未经身份验证的访问

利用后的操作

支持 HackTricks

Last updated