
Uno strumento per identificare domini CloudFront configurati erroneamente.
CloudFrunt è uno strumento per identificare domini CloudFront malconfigurati.
CloudFront è una rete di distribuzione dei contenuti (CDN) fornita da Amazon Web Services (AWS). Gli utenti di CloudFront creano "distribuzioni" che servono contenuti da fonti specifiche (ad esempio un bucket S3).
Ogni distribuzione CloudFront ha un endpoint univoco a cui gli utenti possono far puntare i loro record DNS (es. d111111abcdef8.cloudfront.net). Tutti i domini che utilizzano una specifica distribuzione devono essere elencati nel campo "Nomi di dominio alternativi (CNAME)" nelle opzioni di quella distribuzione.
Quando un endpoint CloudFront riceve una richiesta, NON serve automaticamente il contenuto dalla distribuzione corrispondente. Invece, CloudFront utilizza l'header HOST della richiesta per determinare quale distribuzione utilizzare. Ciò significa due cose:
Questo è ciò che permette il dirottamento dei domini. Ci sono molti casi in cui un utente CloudFront non elenca tutti i domini necessari che potrebbero essere ricevuti nell'header HOST. Ad esempio:
Ciò significa che l'endpoint univoco che CloudFront associa a una singola distribuzione è di fatto privo di significato. Una richiesta a un sottodominio CloudFront specifico non è limitata alla distribuzione a cui è associato.
QUESTO SOFTWARE È FORNITO DALL'AUTORE "COSÌ COM'È" E QUALSIASI GARANZIA ESPRESSA O IMPLICITA, INCLUSIVE, A TITOLO ESEMPLIFICATIVO, LE GARANZIE IMPLICITE DI COMMERCIABILITÀ E IDONEITÀ PER UN PARTICOLARE SCOPO SONO ESCLUSE. IN NESSUN CASO L'AUTORE SARÀ RESPONSABILE PER DANNI DIRETTI, INDIRETTI, INCIDENTALI, SPECIALI, ESEMPLARI O CONSEQUENZIALI (INCLUSI, A TITOLO ESEMPLIFICATIVO, LA SOSTITUZIONE DI BENI O SERVIZI; LA PERDITA DI UTILIZZO, DATI O PROFITTI; O L'INTERRUZIONE DELL'ATTIVITÀ) COMUNQUE CAUSATI E IN BASE A QUALSIASI TEORIA DI RESPONSABILITÀ, SIA CONTRATTUALE, OGGETTIVA O ILLECITA (INCLUSA LA NEGLIGENZA O ALTRO) DERIVANTI IN QUALSIASI MODO DALL'USO DI QUESTO SOFTWARE, ANCHE SE AVVISATI DELLA POSSIBILITÀ DI TALI DANNI.
$ git clone --recursive https://github.com/MindPointGroup/cloudfrunt
$ pip install -r requirements.txt
CloudFrunt si aspetta che lo script dnsrecon sia clonato in una sottodirectory chiamata dnsrecon.
cloudfrunt.py [-h] [-l TARGET_FILE] [-d DOMAINS] [-o ORIGIN] [-i ORIGIN_ID] [-s] [-N]
-h, --help Show this message and exit
-s, --save Save the results to results.txt
-N, --no-dns Do not use dnsrecon to expand scope
-l, --target-file TARGET_FILE File containing a list of domains (one per line)
-d, --domains DOMAINS Comma-separated list of domains to scan
-o, --origin ORIGIN Add vulnerable domains to new distributions with this origin
-i, --origin-id ORIGIN_ID The origin ID to use with new distributions
$ python cloudfrunt.py -o cloudfrunt.com.s3-website-us-east-1.amazonaws.com -i S3-cloudfrunt -l list.txt
CloudFrunt v1.0.4
[+] Enumerating DNS entries for google.com
[-] No issues found for google.com
[+] Enumerating DNS entries for disloops.com
[+] Found CloudFront domain --> cdn.disloops.com
[+] Found CloudFront domain --> test.disloops.com
[-] Potentially misconfigured CloudFront domains:
[#] --> test.disloops.com
[+] Created new CloudFront distribution EXBC12DE3F45G
[+] Added test.disloops.com to CloudFront distribution EXBC12DE3F45G