AWS - CloudFront Enum

Reading time: 4 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

CloudFront

CloudFront ist das Content Delivery Network von AWS, das die Verteilung Ihrer statischen und dynamischen Inhalte über sein weltweites Netzwerk von Edge-Standorten beschleunigt. Wenn Sie eine Anfrage für Inhalte stellen, die Sie über Amazon CloudFront hosten, wird die Anfrage an den nächstgelegenen Edge-Standort weitergeleitet, der die niedrigste Latenz bietet, um die beste Leistung zu gewährleisten. Wenn CloudFront-Zugriffsprotokolle aktiviert sind, können Sie die Anfragen jedes Benutzers aufzeichnen, der Zugriff auf Ihre Website und Verteilung anfordert. Wie bei S3-Zugriffsprotokollen werden auch diese Protokolle auf Amazon S3 für dauerhafte und persistente Speicherung gespeichert. Es fallen keine Gebühren für die Aktivierung des Protokollierens selbst an, jedoch werden Ihnen die Speicherkosten von S3 in Rechnung gestellt, da die Protokolle dort gespeichert werden.

Die Protokolldateien erfassen Daten über einen bestimmten Zeitraum, und die Anzahl der Protokolldateien, die generiert werden, hängt von der Anzahl der Anfragen ab, die Amazon CloudFront für diese Verteilung erhält. Es ist wichtig zu wissen, dass diese Protokolldateien nicht auf S3 erstellt oder geschrieben werden. S3 ist einfach der Ort, an den sie geliefert werden, sobald die Protokolldatei voll ist. Amazon CloudFront behält diese Protokolle, bis sie bereit sind, an S3 geliefert zu werden. Je nach Größe dieser Protokolldateien kann diese Lieferung zwischen ein und 24 Stunden dauern.

Standardmäßig ist das Cookie-Protokollieren deaktiviert, aber Sie können es aktivieren.

Funktionen

Sie können Funktionen in CloudFront erstellen. Diese Funktionen haben ihren Endpunkt in CloudFront definiert und führen einen deklarierten NodeJS-Code aus. Dieser Code wird in einer Sandbox auf einer Maschine ausgeführt, die unter einer von AWS verwalteten Maschine läuft (Sie benötigen einen Sandbox-Umgehung, um in das zugrunde liegende Betriebssystem zu entkommen).

Da die Funktionen nicht im AWS-Konto der Benutzer ausgeführt werden, ist keine IAM-Rolle angehängt, sodass kein direkter Privilegienausbau durch den Missbrauch dieser Funktion möglich ist.

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"

Unauthentifizierter Zugriff

AWS - Cloudfront Unauthenticated Enum

Nach der Ausnutzung

AWS - CloudFront Post Exploitation

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks