AWS - CloudFront Enum

Support HackTricks

CloudFront

CloudFrontはAWSのコンテンツ配信ネットワークで、静的および動的コンテンツの配信を加速します。Amazon CloudFrontを通じてホスティングしているリクエストコンテンツを使用すると、リクエストは最も近いエッジロケーションにルーティングされ、最も低いレイテンシで最高のパフォーマンスを提供します。CloudFrontアクセスログが有効になっていると、ウェブサイトや配信にアクセスをリクエストする各ユーザーからのリクエストを記録できます。S3アクセスログと同様に、これらのログも耐久性と永続的なストレージのためにAmazon S3に保存されます。ログ自体を有効にすることに対して料金は発生しませんが、ログがS3に保存されるため、S3によって使用されたストレージに対して料金が発生します。

ログファイルは一定期間のデータをキャプチャし、Amazon CloudFrontがその配信に対して受信するリクエストの量に応じて生成されるログファイルの数が決まります。これらのログファイルはS3上で作成または書き込まれないことを知っておくことが重要です。S3は、ログファイルが満杯になったときに配信される場所に過ぎません。Amazon CloudFrontは、これらのログをS3に配信する準備ができるまで保持します。再度、これらのログファイルのサイズに応じて、この配信には1時間から24時間かかることがあります。

デフォルトではクッキーロギングは無効になっていますが、これを有効にすることができます。

Functions

CloudFrontで関数を作成できます。これらの関数はcloudfrontにエンドポイントが定義され、宣言されたNodeJSコードを実行します。このコードは、AWSが管理するマシン上で実行されるサンドボックス内で実行されます(基盤となるOSに逃げるにはサンドボックスバイパスが必要です)。

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