
FestIn - Сканер открытых S3-бакетов

FestIN — мощный инструмент для поиска S3-корзин и обнаружения контентаFestInFestIn — это инструмент для обнаружения открытых S3-корзин, начиная с доменов.
Он выполняет множество тестов и собирает информацию из:
Существует множество S3-инструментов для перечисления и обнаружения S3-корзин. Некоторые из них отличные, но ни один из них не имеет полного набора функций, которые есть у Festin.
Основные функции, которые делают Festin отличным:
Требуется Python 3.8 и выше!
$ 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
По умолчанию FestIn принимает начальный домен как параметр командной строки:
> festin mydomain.com
Но вы также можете настроить внешний файл со списком доменов:
> cat domains.txt
domain1.com
domain2.com
domain3.com
> festin -f domains.txt
FestIn выполняет много тестов для одного домена. Каждый тест выполняется параллельно. По умолчанию параллельность установлена на 5. Если вы хотите увеличить количество параллельных тестов, установите параметр -c
> festin -c 10 mydomain.com
Будьте осторожны с количеством параллельных тестов, иначе на некоторых сайтах могут возникнуть «тревоги».
FestIn содержит небольшой краулер для обнаружения ссылок на S3-корзины. Краулер принимает следующие параметры:
-T или --http-timeout): настройка тайм-аута для HTTP-соединиений. Если веб-сайт домена, который вы хотите проанализировать, медленный, мы рекомендуем увеличить это значение. По умолчанию тайм-аут составляет 5 секунд.-H или --http-max-recursion): это значение устанавливает предел рекурсии краулера. В противном случае FestIn просканирует весь интернет. По умолчанию это значение равно 3. Это означает, что будет следовать только: domain1.com -> [link] -> domain2.com -> [link] -> domain3.com -> [link] -> Достигнута максимальная рекурсия. Остановка.-dr или --domain-regex): установите этот параметр, чтобы ограничить краулер только теми доменами, которые соответствуют этому регулярному выражению.Пример:
> echo "cdn" > blacklist.txt
> echo "photos" >> blacklist.txt
> festin -T 20 -M 8 -B blacklist.txt -dr .mydomain. mydomain.com
БУДЬТЕ ВНИМАТЕЛЬНЫ: -dr (или --domain-regex) принимает только корректные POSIX-регулярные выражения.
*mydomain.com* -> не является корректным POSIX-регулярным выражением
.mydomain\.com. -> является корректным POSIX-регулярным выражением
При запуске FestIn обнаруживает много полезной информации. Не только об S3-корзинах, но и о других проверках, которые мы можем провести. Например:
После использования FestIn мы можем использовать обнаруженную информацию (домены, ссылки, ресурсы, другие корзины...) в качестве входных данных для других инструментов, таких как nmap.
По этой причине FestIn имеет 3 различных режима для сохранения обнаруженной информации, и мы можем комбинировать их:
FestIn (-rr или --result-file): этот файл содержит одну JSON-строку на каждую найденную корзину. Каждый JSON включает: исходный домен, имя корзины и список объектов в корзине.-rd или --discovered-domains): этот файл содержит один домен на строку. Эти домены обнаружены краулером, DNS или S3-проверками, но сохраняются только те домены, которые соответствуют пользовательским и внутренним фильтрам.-ra или --raw-discovered-domains): этот файл содержит все домены, по одному на строку, обнаруженные FestIn без каких-либо фильтров. Этот параметр полезен для последующей обработки и анализа.Пример:
> festin -rr festin.results -rd discovered-domains.txt -ra raw-domains.txt mydomain.txt
И, в связке с Nmap:
> festin -rd domains.txt && nmap -Pn -A -iL domains.txt -oN nmap-domains.txt
FestIn включает параметр --tor. При использовании этого параметра вам нужен локальный Tor-прокси, работающий на порту 9050 на 127.0.0.1.
> tor &
> festin --tor mydomain.com
Некоторые тесты, выполняемые FestIn, включают DNS. Он поддерживает следующие параметры:
-dn или --no-dnsdiscover)-ds или --dns-resolver): настройка пользовательского DNS-сервера. Если вы планируете выполнять много тестов, вам следует использовать другой DNS-сервер, отличный от того, который использует ваш браузер.Пример:
> festin -ds 8.8.8.8 mydomain.com
FestIn может не только обнаруживать открытые S3-корзины. Он также может загружать всё содержимое и сохранять его в движок полнотекстового поиска. Это означает, что вы можете выполнять полнотекстовые запросы к содержимому корзины!
FestIn использует в качестве движка полнотекстового поиска проект с открытым исходным кодом Redis Search.
Эта функция имеет два параметра:
--index): чтобы включить индексацию в поисковом движке, установите этот флаг.--index-server): вам нужно настроить этот параметр только в том случае, если ваш сервер работает на другом IP/порту, отличном от localhost:6379.Пример:
> docker run --rm -p 6700:6379 redislabs/redisearch:latest -d
> festin --index --index-server redis://127.0.0.1:6700 mydomain.com
Обратите внимание: параметр `--index-server` должен иметь префикс **redis://**
Иногда мы не хотим останавливать FestIn и запускать его каждый раз, когда появляется новый домен для проверки, или когда какой-либо внешний инструмент обнаруживает новые домены, которые мы хотим проверить.
FestIn поддерживает режим наблюдения. Это означает, что FestIn запустится и будет прослушивать новые домены. Способ «отправить» новые домены в FestIn — это файл доменов. Он отслеживает изменения этого файла.
Эта функция полезна для комбинирования FestIn с другими инструментами, например dnsrecon
Пример:
> festin --watch -f domains.txt
В другом терминале мы можем написать:
> echo "my-second-domain.com" >> domains.txt
> echo "another-domain.com" >> domains.txt
Каждый новый домен, добавленный в domains.txt, будет пробуждать FestIn.
Использование DnsRecon
В этом примере выбран домен target.com.
> dnsrecon -d target.com -t crt -c target.com.csv
С помощью этой команды мы узнаем другие домены, связанные с target.com. Это поможет максимизировать наши шансы на успех.
FestIn> tail -n +2 target.com.csv | sort -u | cut -d "," -f 2 >> target.com.domains
С помощью этой команды мы создаём файл с одним доменом на строку. Это входные данные, которые требуются 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
В этом примере результирующие файлы:
Для упрощения обработки нескольких доменов мы предоставляем простой скрипт examples/loop.sh, который автоматизирует это.
Использование FestIn с результатами DnsRecon
Запуск против target.com с параметрами по умолчанию и сохранением результата в файл 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
В: AWS блокирует мой IP
О:
Когда вы выполняете много тестов против AWS S3, AWS заносит ваш IP в чёрный список. Затем каждый раз, когда вы попытаетесь получить доступ к любой S3-корзине с помощью FestIn или вашего браузера, доступ будет заблокирован.
Мы рекомендуем настроить прокси при использовании FestIn.

Они анализируют и оценивают подверженность рискам вашей компании в реальном времени. Веб-сайт
Этот проект распространяется под лицензией BSD