AWS - CloudFront Enum

Support HackTricks

CloudFront

CloudFront є мережею доставки контенту AWS, яка прискорює розповсюдження вашого статичного та динамічного контенту через свою всесвітню мережу крайових локацій. Коли ви використовуєте запит на контент, який ви хостите через Amazon CloudFront, запит маршрутизується до найближчої крайової локації, що забезпечує найнижчу затримку для досягнення найкращої продуктивності. Коли журнали доступу CloudFront увімкнені, ви можете записувати запити від кожного користувача, який запитує доступ до вашого веб-сайту та розповсюдження. Як і з журналами доступу S3, ці журнали також зберігаються на Amazon S3 для надійного та постійного зберігання. За увімкнення журналювання самі журнали не підлягають оплаті, однак, оскільки журнали зберігаються в S3, вам буде нараховано плату за використане зберігання S3.

Файли журналів захоплюють дані протягом певного періоду часу, і залежно від кількості запитів, які отримує Amazon CloudFront для цього розповсюдження, буде залежати кількість згенерованих файлів журналів. Важливо знати, що ці файли журналів не створюються і не записуються на S3. S3 - це просто місце, куди вони доставляються, коли файл журналу заповнений. Amazon CloudFront зберігає ці журнали до тих пір, поки вони не будуть готові до доставки в S3. Знову ж таки, залежно від розміру цих файлів журналів, ця доставка може зайняти від одного до 24 годин.

За замовчуванням журналювання cookie вимкнено, але ви можете його увімкнути.

Functions

Ви можете створювати функції в 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"

Неавтентифікований доступ

AWS - Cloudfront Unauthenticated Enum

Після експлуатації

AWS - CloudFront Post Exploitation
Підтримайте HackTricks

Last updated