
FestIn - Scanner per bucket S3 aperti

FestIN il potente cercatore di bucket S3 e scopritore di contenutiFestInFestIn è uno strumento per scoprire bucket S3 aperti partendo da un dominio.
Esegue molti test e raccoglie informazioni da:
Esistono molti strumenti S3 per l'enumerazione e la scoperta di bucket S3. Alcuni sono ottimi, ma nessuno ha una lista completa di funzionalità come Festin.
Le caratteristiche principali che rendono Festin eccezionale:
Richiede Python 3.8 o superiore!
$ pip install festin
$ festin -h
$ docker run --rm -it cr0hn/festin -h
$ festin -h
usage: __main__.py [-h] [--version] [-f FILE_DOMAINS] [-w] [-c CONCURRENCY] [--no-links] [-T HTTP_TIMEOUT] [-M HTTP_MAX_RECURSION] [-dr DOMAIN_REGEX] [-rr RESULT_FILE] [-rd DISCOVERED_DOMAINS] [-ra RAW_DISCOVERED_DOMAINS]
[--tor] [--debug] [--no-print] [-q] [--index] [--index-server INDEX_SERVER] [-dn] [-ds DNS_RESOLVER]
[domains [domains ...]]
Festin - the powered S3 bucket finder and content discover
positional arguments:
domains
optional arguments:
-h, --help show this help message and exit
--version show version
-f FILE_DOMAINS, --file-domains FILE_DOMAINS
file with domains
-w, --watch watch for new domains in file domains '-f' option
-c CONCURRENCY, --concurrency CONCURRENCY
max concurrency
HTTP Probes:
--no-links extract web site links
-T HTTP_TIMEOUT, --http-timeout HTTP_TIMEOUT
set timeout for http connections
-M HTTP_MAX_RECURSION, --http-max-recursion HTTP_MAX_RECURSION
maximum recursison when follow links
-dr DOMAIN_REGEX, --domain-regex DOMAIN_REGEX
only follow domains that matches this regex
Results:
-rr RESULT_FILE, --result-file RESULT_FILE
results file
-rd DISCOVERED_DOMAINS, --discovered-domains DISCOVERED_DOMAINS
file name for storing new discovered after apply filters
-ra RAW_DISCOVERED_DOMAINS, --raw-discovered-domains RAW_DISCOVERED_DOMAINS
file name for storing any domain without filters
Connectivity:
--tor Use Tor as proxy
Display options:
--debug enable debug mode
--no-print doesn't print results in screen
-q, --quiet Use quiet mode
Redis Search:
--index Download and index documents into Redis
--index-server INDEX_SERVER
Redis Search ServerDefault: redis://localhost:6379
DNS options:
-dn, --no-dnsdiscover
not follow dns cnames
-ds DNS_RESOLVER, --dns-resolver DNS_RESOLVER
comma separated custom domain name servers
Di default FestIn accetta un dominio iniziale come parametro da riga di comando:
> festin mydomain.com
Ma puoi anche impostare un file esterno con una lista di domini:
> cat domains.txt
domain1.com
domain2.com
domain3.com
> festin -f domains.txt
FestIn esegue molti test per un dominio. Ogni test viene eseguito in modo concorrente. Di default la concorrenza è impostata a 5. Se vuoi aumentare il numero di test concorrenti, devi impostare l'opzione -c
> festin -c 10 mydomain.com
Fai attenzione al numero di test concorrenti o potrebbero scattare "allarmi" su alcuni siti web.
FestIn incorpora un piccolo crawler per scoprire collegamenti a bucket S3. Il crawler accetta queste opzioni:
-T o --http-timeout): configura un timeout per le connessioni HTTP. Se il sito web del dominio che vuoi analizzare è lento, ti consigliamo di aumentare questo valore. Di default il timeout è di 5 secondi.-H o --http-max-recursion): questo valore imposta un limite alla ricorsione del crawling. Altrimenti FestIn scansionerebbe tutto Internet. Di default questo valore è 3. Significa che seguirà solo: domain1.com -> [link] -> domain2.com -> [link] -> domain3.com -> [link] -> Ricorsione massima raggiunta. Stop.-dr o --domain-regex): imposta questa opzione per limitare il crawler ai soli domini che corrispondono a questa regex.Esempio:
> echo "cdn" > blacklist.txt
> echo "photos" >> blacklist.txt
> festin -T 20 -M 8 -B blacklist.txt -dr .mydomain. mydomain.com
ATTENZIONE: -dr (o --domain-regex) accetta solo regex POSIX valide.
*mydomain.com* -> non è una regex POSIX valida
.mydomain\.com. -> è una regex POSIX valida
Quando FestIn viene eseguito, scopre molte informazioni utili. Non solo sui bucket S3, ma anche per altri controlli che potremmo fare. Ad esempio:
Dopo aver usato FestIn, possiamo usare le informazioni scoperte (domini, link, risorse, altri bucket...) come input per altri strumenti, come nmap.
Per questo motivo FestIn ha 3 diverse modalità per memorizzare le informazioni scoperte e possiamo combinarle:
FestIn (-rr o --result-file): questo file contiene un JSON per riga con i bucket trovati. Ogni JSON include: dominio di origine, nome del bucket e la lista degli oggetti per quel bucket.-rd o --discovered-domains): questo file contiene un dominio per riga. Questi domini sono scoperti dal crawler, DNS o dai probe S3, ma vengono salvati solo i domini che corrispondono ai filtri dell'utente e interni.-ra o --raw-discovered-domains): questo file contiene tutti i domini, uno per riga, scoperti da FestIn senza alcun filtro. Questa opzione è utile per la post-elaborazione e l'analisi.Esempio:
> festin -rr festin.results -rd discovered-domains.txt -ra raw-domains.txt mydomain.txt
E, concatenando con Nmap:
> festin -rd domains.txt && nmap -Pn -A -iL domains.txt -oN nmap-domains.txt
FestIn include l'opzione --tor. Usando questo parametro, è necessario un proxy Tor locale in esecuzione sulla porta 9050 su 127.0.0.1.
> tor &
> festin --tor mydomain.com
Alcuni test eseguiti da FestIn coinvolgono il DNS. Supporta queste opzioni:
-dn o --no-dnsdiscover)-ds o --dns-resolver): imposta un server DNS personalizzato. Se prevedi di eseguire molti test, dovresti usare un server DNS diverso da quello che usi per il tuo browser.Esempio:
> festin -ds 8.8.8.8 mydomain.com
FestIn non solo può scoprire bucket S3 aperti. Può anche scaricare tutto il contenuto e memorizzarlo in un motore di ricerca testuale completa. Ciò significa che puoi eseguire query di testo completo sul contenuto del bucket!
FestIn utilizza come motore di testo completo il progetto Open Source Redis Search.
Questa funzionalità ha due opzioni:
--index): per abilitare l'indicizzazione nel motore di ricerca, devi impostare questo flag.--index-server): devi impostare questa opzione solo se il tuo server è in esecuzione su un IP/Porta diverso da: localhost:6379.Esempio:
> docker run --rm -p 6700:6379 redislabs/redisearch:latest -d
> festin --index --index-server redis://127.0.0.1:6700 mydomain.com
Presta attenzione all'opzione `--index-server`: deve avere il prefisso **redis://**
A volte non vogliamo fermare FestIn e avviarlo ogni volta che abbiamo un nuovo dominio da ispezionare o quando uno strumento esterno scopre nuovi domini che vogliamo controllare.
FestIn supporta la modalità watch. Questo significa che FestIn si avvia e rimane in ascolto per nuovi domini. Il modo per "inviare" nuovi domini a FestIn è tramite il file dei domini. Monitora questo file per rilevare modifiche.
Questa funzionalità è utile per combinare FestIn con altri strumenti, come dnsrecon.
Esempio:
> festin --watch -f domains.txt
In un terminale diverso possiamo scrivere:
> echo "my-second-domain.com" >> domains.txt
> echo "another-domain.com" >> domains.txt
Ogni nuovo dominio aggiunto a domains.txt risveglierà FestIn.
Usando DnsRecon
Il dominio scelto per questo esempio è target.com.
> dnsrecon -d target.com -t crt -c target.com.csv
Con questo comando andremo a scoprire altri domini correlati a target.com. Questo ci aiuterà a massimizzare le possibilità di successo.
FestIn> tail -n +2 target.com.csv | sort -u | cut -d "," -f 2 >> target.com.domains
Con questo comando generiamo un file con un dominio per riga. Questo è l'input di cui FestIn ha bisogno.
> festin -f target.com.domains -c 5 -rr target.com.result.json --tor -ds 212.166.64.1 >target.com.stdout 2>target.com.stderr
In questo esempio i file risultanti sono:
Per facilitare l'elaborazione di più domini, forniamo un semplice script examples/loop.sh che automatizza questo processo.
Usare FestIn con i risultati di DnsRecon
Eseguire contro target.com con opzioni predefinite e salvare i risultati nel file target.com.result:
> festin target.com -rr target.com.result.json
> festin target.com -c 5 -rr target.com.result.json --tor -ds 212.166.64.1
D: AWS blocca il mio IP R:
Quando esegui molti test contro AWS S3, AWS include il tuo IP in una black list. Quindi ogni volta che vuoi accedere a qualsiasi bucket S3 con FestIn o con il tuo browser verrai bloccato.
Ti consigliamo di impostare un proxy quando usi FestIn.

Analizzano e valutano l'esposizione al rischio della tua azienda in tempo reale. Sito web
Questo progetto è distribuito sotto licenza BSD