# AWS - CloudFront Enum

{{#include ../../../banners/hacktricks-training.md}}

## CloudFront

CloudFront is AWS se **inhoudsverspreidingsnetwerk wat die verspreiding versnel** van jou statiese en dinamiese inhoud deur sy wêreldwye netwerk van randliggings. Wanneer jy 'n versoek inhoud gebruik wat jy deur Amazon CloudFront huisves, word die versoek na die naaste randligging gerouteer wat die laagste latensie bied om die beste prestasie te lewer. Wanneer **CloudFront-toeganglogs** geaktiveer is, kan jy die versoek van elke gebruiker wat toegang tot jou webwerf en verspreiding versoek, opneem. Soos met S3-toeganglogs, word hierdie logs ook **op Amazon S3 gestoor vir duursame en volgehoue berging**. Daar is geen koste verbonde aan die aktivering van logging self nie, egter, aangesien die logs in S3 gestoor word, sal jy koste hê vir die berging wat deur S3 gebruik word.

Die loglêers vang data oor 'n tydperk op en afhangende van die aantal versoeke wat deur Amazon CloudFront vir daardie verspreiding ontvang word, sal dit die aantal loglêers wat gegenereer word, bepaal. Dit is belangrik om te weet dat hierdie loglêers nie op S3 geskep of geskryf word nie. S3 is bloot waar hulle afgelewer word sodra die loglêer vol is. **Amazon CloudFront hou hierdie logs totdat hulle gereed is om aan S3 afgelewer te word**. Weer, afhangende van die grootte van hierdie loglêers kan hierdie aflewering **tussen een en 24 uur** neem.

**Standaard is koekie-logging gedeaktiveer** maar jy kan dit aktiveer.

### Funksies

Jy kan funksies in CloudFront skep. Hierdie funksies sal sy **eindpunt in cloudfront** gedefinieer hê en sal 'n verklaarde **NodeJS-kode** uitvoer. Hierdie kode sal binne 'n **sandbox** op 'n masjien wat onder 'n AWS bestuurde masjien loop, uitgevoer word (jy sal 'n sandbox-bypass nodig hê om te kan ontsnap na die onderliggende OS).

Aangesien die funksies nie in die gebruikers se AWS-rekening uitgevoer word nie, is daar geen IAM-rol aangeheg nie, so geen direkte privesc is moontlik deur hierdie funksie te misbruik nie.

### 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"
```
## Ongeauthentiseerde Toegang

{{#ref}}
../aws-unauthenticated-enum-access/aws-cloudfront-unauthenticated-enum/README.md
{{#endref}}

## Na Exploitatie

{{#ref}}
../aws-post-exploitation/aws-cloudfront-post-exploitation/README.md
{{#endref}}

{{#include ../../../banners/hacktricks-training.md}}
