
FestIn - Escáner de Buckets S3 Abiertos

FestIN el potente buscador de buckets S3 y descubridor de contenidoFestInFestIn es una herramienta para descubrir buckets S3 abiertos a partir de dominios.
Realiza muchas pruebas y recopila información de:
Hay muchas herramientas S3 para enumeración y descubrimiento de buckets S3. Algunas son geniales, pero ninguna tiene una lista completa de características como las que tiene Festin.
Principales características que hacen grande a Festin:
¡Se necesita Python 3.8 o superior!
$ 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
Por defecto FestIn acepta un dominio inicial como parámetro de línea de comandos:
> festin mydomain.com
Pero también puedes configurar un archivo externo con una lista de dominios:
> cat domains.txt
domain1.com
domain2.com
domain3.com
> festin -f domains.txt
FestIn realiza muchas pruebas para un dominio. Cada prueba se realiza de forma concurrente. Por defecto, la concurrencia está establecida en 5. Si deseas aumentar el número de pruebas concurrentes, debes configurar la opción -c
> festin -c 10 mydomain.com
Ten cuidado con el número de pruebas concurrentes, ya que podrían generarse "alarmas" en algunos sitios web.
FestIn incorpora un pequeño rastreador para descubrir enlaces a buckets S3. El rastreador acepta estas opciones:
-T o --http-timeout): configura un tiempo de espera para las conexiones HTTP. Si el sitio web del dominio que deseas analizar es lento, recomendamos aumentar este valor. Por defecto, el timeout es de 5 segundos.-H o --http-max-recursion): este valor establece un límite para la recursión del rastreo. De lo contrario, FestIn escanearía todo internet. Por defecto, este valor es 3. Significa que solo seguirá: domain1.com -> [enlace] -> domain2.com -> [enlace] -> domain3.com -> [enlace] -> Recursión máxima alcanzada. Detenerse.-dr o --domain-regex): configura esta opción para limitar el rastreador solo a aquellos dominios que coincidan con esta expresión regular.-B): configura un archivo de palabras de lista negra. Cada dominio que coincida con alguna palabra de la lista negra será omitido.-W): configura un archivo de palabras de lista blanca. Cada dominio que NO coincida con alguna palabra de la lista blanca será omitido.Ejemplo:
> echo "cdn" > blacklist.txt
> echo "photos" >> blacklist.txt
> festin -T 20 -M 8 -B blacklist.txt -dr .mydomain. mydomain.com
TEN CUIDADO: -dr (o --domain-regex) solo acepta expresiones regulares POSIX válidas.
*mydomain.com* -> no es una expresión regular POSIX válida
.mydomain\.com. -> es una expresión regular POSIX válida
Cuando FestIn se ejecuta, descubre mucha información útil. No solo sobre buckets S3, sino también sobre otras pruebas que podríamos realizar. Por ejemplo:
Después de usar FestIn, podemos usar la información descubierta (dominios, enlaces, recursos, otros buckets...) como entrada de otras herramientas, como nmap.
Por esta razón, FestIn tiene 3 modos diferentes para almacenar la información descubierta y podemos combinarlos:
FestIn (-rr o --result-file): este archivo contiene un JSON por línea con los buckets encontrados. Cada JSON incluye: dominio de origen, nombre del bucket y la lista de objetos del bucket.-rd o --discovered-domains): este archivo contiene un dominio por línea. Estos dominios son descubiertos por el rastreador, DNS o sondas S3, pero solo se almacenan aquellos que coinciden con los filtros del usuario e internos.-ra o --raw-discovered-domains): este archivo contiene todos los dominios, uno por línea, descubiertos por FestIn sin ningún filtro. Esta opción es útil para postprocesamiento y análisis.Ejemplo:
> festin -rr festin.results -rd discovered-domains.txt -ra raw-domains.txt mydomain.txt
Y, encadenando con Nmap:
> festin -rd domains.txt && nmap -Pn -A -iL domains.txt -oN nmap-domains.txt
FestIn incluye la opción --tor. Al usar este parámetro, necesitas un proxy Tor local ejecutándose en el puerto 9050 en 127.0.0.1.
> tor &
> festin --tor mydomain.com
Algunas pruebas realizadas por FestIn involucran DNS. Soporta estas opciones:
-dn o --no-dnsdiscover)-ds o --dns-resolver): configura un servidor DNS personalizado. Si planeas realizar muchas pruebas, deberías usar un servidor DNS diferente al que usas para tu navegador.Ejemplo:
> festin -ds 8.8.8.8 mydomain.com
FestIn no solo puede descubrir buckets S3 abiertos. También puede descargar todo el contenido y almacenarlo en un Motor de Búsqueda de Texto Completo. ¡Esto significa que puedes realizar consultas de texto completo sobre el contenido del bucket!
FestIn utiliza como motor de texto completo el proyecto de código abierto Redis Search.
Esta característica tiene dos opciones:
--index): para habilitar la indexación en el motor de búsqueda, debes configurar esta bandera.--index-server): solo necesitas configurar esta opción si tu servidor se ejecuta en una IP/Puerto diferente a: localhost:6379.Ejemplo:
> docker run --rm -p 6700:6379 redislabs/redisearch:latest -d
> festin --index --index-server redis://127.0.0.1:6700 mydomain.com
Presta atención a que la opción `--index-server` debe tener el prefijo **redis://**
A veces no queremos detener FestIn y lanzarlo varias veces cuando tenemos un nuevo dominio para inspeccionar o cuando alguna herramienta externa descubre nuevos dominios que queremos verificar.
FestIn admite el modo vigilancia. Esto significa que FestIn se iniciará y escuchará nuevos dominios. La forma de "enviar" nuevos dominios a FestIn es a través del archivo de dominios. Monitorea este archivo en busca de cambios.
Esta característica es útil para combinar FestIn con otras herramientas, como dnsrecon
Ejemplo:
> festin --watch -f domains.txt
En una terminal diferente podemos escribir:
> echo "my-second-domain.com" >> domains.txt
> echo "another-domain.com" >> domains.txt
Cada nuevo dominio añadido a domains.txt despertará a FestIn.
Usando DnsRecon
El dominio elegido para este ejemplo es target.com.
> dnsrecon -d target.com -t crt -c target.com.csv
Con este comando vamos a descubrir otros dominios relacionados con target.com. Esto ayudará a maximizar nuestras posibilidades de éxito.
FestIn> tail -n +2 target.com.csv | sort -u | cut -d "," -f 2 >> target.com.domains
Con este comando generamos un archivo con un dominio por línea. Esta es la entrada que necesita FestIn.
> 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
En este ejemplo, los archivos resultantes son:
Para facilitar el procesamiento de múltiples dominios, proporcionamos un script simple examples/loop.sh que automatiza esto.
Usando FestIn con resultados de DnsRecon
Ejecutar contra target.com con opciones predeterminadas y dejando el resultado en el archivo 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
P: AWS banea mi IP
R:
Cuando realizas muchas pruebas contra AWS S3, AWS incluye tu IP en una lista negra. Entonces, cada vez que quieras acceder a cualquier bucket S3 con FestIn o con tu navegador, serás bloqueado.
Recomendamos configurar un proxy cuando uses FestIn.

Analizan y evalúan la exposición al riesgo de tu empresa en tiempo real. Sitio web
Este proyecto se distribuye bajo licencia BSD