
FestIn - 오픈 S3 버킷 스캐너

FestIN 강력한 S3 버킷 파인더 및 콘텐츠 발견 도구FestIn은 도메인을 시작점으로 공개된 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 -> [링크] -> domain2.com -> [링크] -> domain3.com -> [링크] -> 최대 재귀 도달. 중지.-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은 발견된 정보를 저장하는 세 가지 모드를 제공하며, 이를 조합할 수 있습니다:
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 프록시가 127.0.0.1의 포트 9050에서 실행 중이어야 합니다.
> tor &
> festin --tor mydomain.com
FestIn이 수행하는 일부 테스트에는 DNS가 포함됩니다. 다음 옵션을 지원합니다:
-dn 또는 --no-dnsdiscover)-ds 또는 --dns-resolver): 사용자 정의 DNS 서버를 설정합니다. 많은 테스트를 수행하려는 경우 브라우저에서 사용하는 DNS 서버와 다른 DNS 서버를 사용해야 합니다.예제:
> festin -ds 8.8.8.8 mydomain.com
FestIn은 공개 S3 버킷을 발견할 수 있을 뿐만 아니라 모든 콘텐츠를 다운로드하여 전문 검색 엔진에 저장할 수도 있습니다. 즉, 버킷 콘텐츠에 대해 전문 검색 질의를 수행할 수 있습니다!
FestIn은 전문 검색 엔진으로 오픈소스 프로젝트 Redis Search를 사용합니다.
이 기능에는 두 가지 옵션이 있습니다:
--index): 검색 엔진에 인덱싱을 활성화하려면 이 플래그를 설정해야 합니다.--index-server): 서버가 기본값인 localhost:6379와 다른 IP/포트에서 실행 중인 경우에만 이 옵션을 설정하면 됩니다.예제: