AWS - CloudFront Enum

Reading time: 5 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

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

bash
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

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする