AWS - CloudFront Enum

Support HackTricks

CloudFront

CloudFront to sieć dostarczania treści AWS, która przyspiesza dystrybucję Twoich statycznych i dynamicznych treści za pośrednictwem swojej globalnej sieci lokalizacji brzegowych. Gdy korzystasz z treści, którą hostujesz za pośrednictwem Amazon CloudFront, żądanie jest kierowane do najbliższej lokalizacji brzegowej, co zapewnia najniższą latencję, aby dostarczyć najlepszą wydajność. Gdy dzienniki dostępu CloudFront są włączone, możesz rejestrować żądania od każdego użytkownika żądającego dostępu do Twojej witryny i dystrybucji. Podobnie jak w przypadku dzienników dostępu S3, te dzienniki są również przechowywane na Amazon S3 dla trwałego i stałego przechowywania. Nie ma opłat za włączenie samego logowania, jednak ponieważ dzienniki są przechowywane w S3, będziesz obciążony za przechowywanie używane przez S3.

Pliki dzienników rejestrują dane przez pewien czas, a w zależności od liczby żądań otrzymywanych przez Amazon CloudFront dla tej dystrybucji, zależy to od liczby generowanych plików dzienników. Ważne jest, aby wiedzieć, że te pliki dzienników nie są tworzone ani zapisywane na S3. S3 to po prostu miejsce, do którego są dostarczane, gdy plik dziennika jest pełny. Amazon CloudFront przechowuje te dzienniki, aż będą gotowe do dostarczenia do S3. Ponownie, w zależności od rozmiaru tych plików dzienników, dostarczenie to może zająć od jednej do 24 godzin.

Domyślnie logowanie ciasteczek jest wyłączone, ale możesz je włączyć.

Functions

Możesz tworzyć funkcje w CloudFront. Te funkcje będą miały swój punkt końcowy w cloudfront zdefiniowany i będą uruchamiać zadeklarowany kod NodeJS. Ten kod będzie działał w piaskownicy na maszynie działającej pod zarządzaną przez AWS maszyną (musisz mieć obejście piaskownicy, aby udało się uciec do podstawowego systemu operacyjnego).

Ponieważ funkcje nie są uruchamiane w koncie AWS użytkownika, nie jest dołączona żadna rola IAM, więc nie ma możliwości bezpośredniego podniesienia uprawnień, wykorzystując tę funkcję.

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"

Nieautoryzowany dostęp

Po eksploatacji

Wsparcie dla HackTricks

Last updated