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が管理するマシンで実行されるマシン内のサンドボックスで実行されます(アンダーレイのOSに脱出するにはサンドボックスバイパスが必要です)。

関数はユーザーの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