AWS - CloudFront Enum

Reading time: 3 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: 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. Знову ж таки, залежно від розміру цих журналів, ця доставка може зайняти від одного до 24 годин.

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

Functions

Ви можете створювати функції в CloudFront. Ці функції матимуть свій кінцевий пункт у cloudfront, визначений, і виконуватимуть оголошений NodeJS код. Цей код буде виконуватися в пісочниці на машині, що працює під управлінням AWS (вам знадобиться обхід пісочниці, щоб вийти на базову ОС).

Оскільки функції не виконуються в обліковому записі 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 Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks