
FestIn - Scanner de Buckets S3 Abertos

FestIN - o poderoso localizador de buckets S3 e descoberta de conteúdoFestInFestIn é uma ferramenta para descobrir buckets S3 abertos a partir de domínios.
Ela realiza muitos testes e coleta informações de:
Existem muitas ferramentas S3 para enumeração e descoberta de buckets S3. Algumas são ótimas, mas nenhuma possui uma lista completa de recursos como o FestIn.
Principais características que tornam o FestIn excelente:
Python 3.8 ou superior necessário!
$ 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 padrão, o FestIn aceita um domínio inicial como parâmetro de linha de comando:
> festin mydomain.com
Mas você também pode configurar um arquivo externo com uma lista de domínios:
> cat domains.txt
domain1.com
domain2.com
domain3.com
> festin -f domains.txt
FestIn realiza muitos testes para um domínio. Cada teste é feito concorrentemente. Por padrão, a concorrência está definida como 5. Se você quiser aumentar o número de testes concorrentes, deve definir a opção -c
> festin -c 10 mydomain.com
Tome cuidado com o número de testes concorrentes, pois "alarmes" podem ser acionados em alguns sites.
FestIn incorpora um pequeno crawler para descobrir links para buckets S3. O crawler aceita estas opções:
-T ou --http-timeout): configura um timeout para conexões HTTP. Se o site do domínio que você deseja analisar for lento, recomendamos aumentar este valor. Por padrão, o timeout é de 5 segundos.-H ou --http-max-recursion): este valor define um limite para a recursão do crawling. Caso contrário, o FestIn irá escanear toda a internet. Por padrão, este valor é 3. Isso significa que só seguirá: domain1.com -> [link] -> domain2.com -> [link] -> domain3.com -> [link] -> Recursão máxima atingida. Pare.-dr ou --domain-regex): defina esta opção para limitar o crawler apenas aos domínios que correspondem a esta regex.Exemplo:
> echo "cdn" > blacklist.txt
> echo "photos" >> blacklist.txt
> festin -T 20 -M 8 -B blacklist.txt -dr .mydomain. mydomain.com
CUIDADO: -dr (ou --domain-regex) só aceita expressões regulares POSIX válidas.
*mydomain.com* -> não é uma regex POSIX válida
.mydomain\.com. -> é uma regex POSIX válida
Quando o FestIn é executado, ele descobre muitas informações úteis. Não apenas sobre buckets S3, mas também sobre outras sondagens que podemos fazer. Por exemplo:
Depois de usar o FestIn, podemos usar as informações descobertas (domínios, links, recursos, outros buckets...) como entrada para outras ferramentas, como nmap.
Por essa razão, o FestIn possui 3 modos diferentes para armazenar informações descobertas e podemos combiná-los:
FestIn (-rr ou --result-file): este arquivo contém um JSON por linha com os buckets encontrados. Cada JSON inclui: domínio de origem, nome do bucket e a lista de objetos do bucket.-rd ou --discovered-domains): este arquivo contém um domínio por linha. Esses domínios são descobertos pelo crawler, DNS ou sondagens S3, mas apenas são armazenados os domínios que correspondem aos filtros do usuário e internos.-ra ou --raw-discovered-domains): este arquivo contém todos os domínios, um por linha, descobertos pelo FestIn sem qualquer filtro. Esta opção é útil para pós-processamento e análise.Exemplo:
> festin -rr festin.results -rd discovered-domains.txt -ra raw-domains.txt mydomain.txt
E, encadeando com Nmap:
> festin -rd domains.txt && nmap -Pn -A -iL domains.txt -oN nmap-domains.txt
FestIn incorpora a opção --tor. Ao usar este parâmetro, você precisa de um proxy Tor local rodando na porta 9050 em 127.0.0.1.
> tor &
> festin --tor mydomain.com
Alguns testes feitos pelo FestIn envolvem DNS. Ele suporta estas opções:
-dn ou --no-dnsdiscover)-ds ou --dns-resolver): configure um servidor DNS personalizado. Se você planeja realizar muitos testes, deve usar um servidor DNS diferente daquele que usa no seu navegador.Exemplo:
> festin -ds 8.8.8.8 mydomain.com
FestIn não apenas pode descobrir buckets S3 abertos. Ele também pode baixar todo o conteúdo e armazená-lo em um Mecanismo de Busca de Texto Completo. Isso significa que você pode realizar consultas de texto completo ao conteúdo do bucket!
FestIn usa como Mecanismo de Texto Completo o projeto Open Source Redis Search.
Este recurso tem duas opções:
--index): para habilitar a indexação no mecanismo de busca, você deve definir esta flag.--index-server): você só precisa configurar esta opção se o seu servidor estiver rodando em um IP/Porta diferente de: localhost:6379.Exemplo:
> docker run --rm -p 6700:6379 redislabs/redisearch:latest -d
> festin --index --index-server redis://127.0.0.1:6700 mydomain.com
Preste atenção: a opção `--index-server` deve ter o prefixo **redis://**
Às vezes não queremos parar o FestIn e executá-lo várias vezes quando temos um novo domínio para inspecionar ou quando alguma ferramenta externa descobre novos domínios que queremos verificar.
FestIn suporta o modo watching (observação). Isso significa que o FestIn iniciará e escutará por novos domínios. A forma de "enviar" novos domínios para o FestIn é através do arquivo de domínios. Ele monitora este arquivo em busca de alterações.
Este recurso é útil para combinar o FestIn com outras ferramentas, como dnsrecon
Exemplo:
> festin --watch -f domains.txt
Em um terminal diferente, podemos escrever:
> echo "my-second-domain.com" >> domains.txt
> echo "another-domain.com" >> domains.txt
Cada novo domínio adicionado ao domains.txt irá ativar o FestIn.
Usando DnsRecon
O domínio escolhido para este exemplo é target.com.
> dnsrecon -d target.com -t crt -c target.com.csv
Com este comando, vamos descobrir outros domínios relacionados ao target.com. Isso ajudará a maximizar nossas chances de sucesso.
FestIn> tail -n +2 target.com.csv | sort -u | cut -d "," -f 2 >> target.com.domains
Com este comando, geramos um arquivo com um domínio por linha. Esta é a entrada que o FestIn precisa.
> 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
Neste exemplo, os arquivos resultantes são:
Para facilitar o processamento de múltiplos domínios, fornecemos um script simples examples/loop.sh que automatiza isso.
Usando FestIn com resultados do DnsRecon
Execute contra target.com com as opções padrão e deixe o resultado no arquivo 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 baniu meu IP R:
Quando você realiza muitos testes contra o AWS S3, a AWS inclui seu IP em uma lista negra. Então, toda vez que você tentar acessar qualquer bucket S3 com o FestIn ou com seu navegador, será bloqueado.
Recomendamos configurar um proxy ao usar o FestIn.

Eles analisam e avaliam a exposição ao risco da sua empresa em tempo real. Website
Este projeto é distribuído sob a licença BSD