
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/포트에서 실행 중인 경우에만 이 옵션을 설정하면 됩니다.예제:
> 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를 제공합니다.
DnsRecon 결과로 FestIn 사용
기본 옵션으로 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
Q: AWS가 제 IP를 차단합니다. A:
AWS S3에 대해 많은 테스트를 수행하면 AWS가 사용자의 IP를 블랙리스트에 포함시킵니다. 그러면 FestIn이나 브라우저로 모든 S3 버킷에 액세스하려고 할 때마다 차단됩니다.
FestIn을 사용할 때는 프록시를 설정하는 것이 좋습니다.

그들은 실시간으로 회사의 위험 노출을 분석하고 평가합니다. 웹사이트
이 프로젝트는 BSD 라이선스에 따라 배포됩니다.