AWS - CloudFront Enum

支持 HackTricks

CloudFront

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

日志文件会在一段时间内捕获数据,并根据 Amazon CloudFront 收到的请求量来确定生成的日志文件数量。重要的是要知道,这些日志文件不是在 S3 上创建或写入的。一旦日志文件已满,它们将被传送到 S3。Amazon CloudFront 会保留这些日志,直到准备好传送到 S3。再次强调,根据这些日志文件的大小,此传送可能需要1 到 24 小时

默认情况下,禁用了 cookie 记录,但您可以启用它。

函数

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

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

枚举

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"

未经身份验证的访问

AWS - Cloudfront Unauthenticated Enum

后渗透

AWS - CloudFront Post Exploitation
支持 HackTricks

Last updated