AWS - CloudFront Enum

Unterstützen Sie HackTricks

CloudFront

CloudFront ist AWS's Content Delivery Network, 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 liefern. Wenn CloudFront-Zugriffsprotokolle aktiviert sind, können Sie die Anfragen von jedem Benutzer aufzeichnen, der Zugriff auf Ihre Website und Verteilung anfordert. Wie bei S3-Zugriffsprotokollen werden diese Protokolle ebenfalls 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 Kosten für den von S3 genutzten Speicher in Rechnung gestellt.

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 unter AWS verwalteten Maschine ausgeführt (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 Privilegieneskalation durch den Missbrauch dieser Funktion möglich ist.

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"

Unauthenticated Access

AWS - Cloudfront Unauthenticated Enum

Post Exploitation

AWS - CloudFront Post Exploitation
Support HackTricks

Last updated