
FestIn - Offener S3-Bucket-Scanner

FestIN – der leistungsstarke S3-Bucket-Finder und Content-DiscoverFestInFestIn ist ein Werkzeug zur Entdeckung offener S3-Buckets, ausgehend von Domänen.
Es führt zahlreiche Tests durch und sammelt Informationen von:
Es gibt viele S3-Tools zur Aufzählung und Entdeckung von S3-Buckets. Einige davon sind großartig, aber keines hat eine vollständige Liste der Funktionen, die Festin bietet.
Hauptfunktionen, die Festin großartig machen:
Python 3.8 oder höher erforderlich!
$ 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 - der leistungsstarke S3-Bucket-Finder und 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
Standardmäßig akzeptiert FestIn eine Startdomäne als Kommandozeilenparameter:
> festin mydomain.com
Sie können aber auch eine externe Datei mit einer Liste von Domänen einrichten:
> cat domains.txt
domain1.com
domain2.com
domain3.com
> festin -f domains.txt
FestIn führt für eine Domäne viele Tests durch. Jeder Test wird parallel ausgeführt. Die Standardparallelität beträgt 5. Wenn Sie die Anzahl der parallelen Tests erhöhen möchten, setzen Sie die Option -c
> festin -c 10 mydomain.com
Seien Sie vorsichtig mit der Anzahl der Parallelitätstests, da sonst in einigen Websites „Alarme“ ausgelöst werden könnten.
FestIn enthält einen kleinen Crawler, um Links zu S3-Buckets zu entdecken. Der Crawler akzeptiert diese Optionen:
-T oder --http-timeout): Konfiguriert ein Timeout für HTTP-Verbindungen. Wenn die Website der zu analysierenden Domäne langsam ist, empfehlen wir, diesen Wert zu erhöhen. Standardmäßig beträgt das Timeout 5 Sekunden.-H oder --http-max-recursion): Dieser Wert legt ein Limit für die Crawling-Rekursion fest. Andernfalls würde FestIn das gesamte Internet durchsuchen. Der Standardwert ist 3. Das bedeutet, dass nur gefolgt wird: domain1.com -> [Link] -> domain2.com -> [Link] -> domain3.com -> [Link] -> Maximale Rekursion erreicht. Stopp.-dr oder --domain-regex): Mit dieser Option können Sie den Crawler auf Domänen beschränken, die diesem regulären Ausdruck entsprechen.Beispiel:
> echo "cdn" > blacklist.txt
> echo "photos" >> blacklist.txt
> festin -T 20 -M 8 -B blacklist.txt -dr .mydomain. mydomain.com
SEIEN SIE VORSICHTIG: -dr (oder --domain-regex) akzeptiert nur gültige POSIX-Reguläre Ausdrücke.
*mydomain.com* -> ist kein gültiger POSIX-Regulärer Ausdruck
.mydomain\.com. -> ist ein gültiger POSIX-Regulärer Ausdruck
Wenn FestIn läuft, entdeckt es viele nützliche Informationen. Nicht nur über S3-Buckets, sondern auch über andere Prüfungen, die wir durchführen könnten. Zum Beispiel:
Nachdem wir FestIn verwendet haben, können wir die entdeckten Informationen (Domänen, Links, Ressourcen, andere Buckets …) als Eingabe für andere Tools wie nmap verwenden.
Aus diesem Grund hat FestIn 3 verschiedene Modi zum Speichern entdeckter Informationen, die wir kombinieren können:
FestIn-Ergebnisdatei (-rr oder --result-file): Diese Datei enthält ein JSON pro Zeile mit den gefundenen Buckets. Jedes JSON enthält: Ursprungsdomäne, Bucket-Name und die Liste der Objekte des Buckets.-rd oder --discovered-domains): Diese Datei enthält eine Domäne pro Zeile. Diese Domänen werden vom Crawler, DNS oder S3-Prüfungen entdeckt, aber nur die Domänen werden gespeichert, die den Benutzer- und internen Filtern entsprechen.-ra oder --raw-discovered-domains): Diese Datei enthält alle Domänen, eine pro Zeile, die von FestIn ohne Filter entdeckt wurden. Diese Option ist nützlich für die Nachbearbeitung und Analyse.Beispiel:
> festin -rr festin.results -rd discovered-domains.txt -ra raw-domains.txt mydomain.txt
Und in Kombination mit Nmap:
> festin -rd domains.txt && nmap -Pn -A -iL domains.txt -oN nmap-domains.txt
FestIn enthält die Option --tor. Wenn Sie diesen Parameter verwenden, benötigen Sie einen lokalen Tor-Proxy, der auf Port 9050 unter 127.0.0.1 läuft.
> tor &
> festin --tor mydomain.com
Einige von FestIn durchgeführte Tests betreffen DNS. Es unterstützt diese Optionen:
-dn oder --no-dnsdiscover)-ds oder --dns-resolver): Richten Sie benutzerdefinierte DNS-Server ein. Wenn Sie viele Tests durchführen möchten, sollten Sie einen anderen DNS-Server als den für Ihren Browser verwenden.Beispiel:
> festin -ds 8.8.8.8 mydomain.com
FestIn kann nicht nur offene S3-Buckets entdecken. Es kann auch sämtliche Inhalte herunterladen und in einer Volltext-Suchmaschine speichern. Das bedeutet, dass Sie Volltextabfragen auf den Inhalt des Buckets durchführen können!
FestIn verwendet als Volltext-Engine das Open-Source-Projekt Redis Search.
Diese Funktion bietet zwei Optionen:
--index): Um die Indizierung in der Suchmaschine zu aktivieren, müssen Sie dieses Flag setzen.--index-server): Sie müssen diese Option nur einrichten, wenn Ihr Server unter einer anderen IP/Port als localhost:6379 läuft.Beispiel:
> docker run --rm -p 6700:6379 redislabs/redisearch:latest -d
> festin --index --index-server redis://127.0.0.1:6700 mydomain.com
Achten Sie auf die Option `--index-server` – sie muss das Präfix **redis://** enthalten.
Manchmal möchten wir FestIn nicht beenden und starten, wenn wir eine neue Domäne untersuchen müssen oder ein externes Tool neue Domänen entdeckt hat, die wir überprüfen möchten.
FestIn unterstützt den Watching-Modus. Das bedeutet, dass FestIn startet und auf neue Domänen lauscht. Die Möglichkeit, „neue“ Domänen an FestIn zu senden, erfolgt über die Domänendatei. Es überwacht diese Datei auf Änderungen.
Diese Funktion ist nützlich, um FestIn mit anderen Tools wie dnsrecon zu kombinieren.
Beispiel:
> festin --watch -f domains.txt
In einem anderen Terminal können Sie schreiben:
> echo "my-second-domain.com" >> domains.txt
> echo "another-domain.com" >> domains.txt
Jede neue Domäne, die zu domains.txt hinzugefügt wird, weckt FestIn.
Verwendung von DnsRecon
Die für dieses Beispiel ausgewählte Domäne ist target.com.
> dnsrecon -d target.com -t crt -c target.com.csv
Mit diesem Befehl werden wir andere Domänen finden, die mit target.com verwandt sind. Dies hilft, unsere Erfolgschancen zu maximieren.
FestIn> tail -n +2 target.com.csv | sort -u | cut -d "," -f 2 >> target.com.domains
Mit diesem Befehl wird eine Datei mit einer Domäne pro Zeile erstellt. Dies ist die Eingabe, die FestIn benötigt.
> 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
In diesem Beispiel sind die resultierenden Dateien:
Um die Verarbeitung mehrerer Domänen zu erleichtern, stellen wir ein einfaches Skript examples/loop.sh bereit, das diesen Prozess automatisiert.
Verwendung von FestIn mit DnsRecon-Ergebnissen
Ausführen gegen target.com mit Standardoptionen und Ergebnis in target.com.result-Datei speichern:
> festin target.com -rr target.com.result.json
> festin target.com -c 5 -rr target.com.result.json --tor -ds 212.166.64.1
F: AWS sperrt meine IP A:
Wenn Sie viele Tests gegen AWS S3 durchführen, wird Ihre IP in eine schwarze Liste aufgenommen. Danach wird jeder Zugriff auf jeden S3-Bucket mit FestIn oder mit Ihrem Browser blockiert.
Wir empfehlen, einen Proxy zu verwenden, wenn Sie FestIn nutzen.

Sie analysieren und bewerten die Risikoexposition Ihres Unternehmens in Echtzeit. Website
Dieses Projekt wird unter der BSD-Lizenz vertrieben.