
FestIn - Scanner de buckets S3 ouverts

FestIN le puissant outil de découverte et de recherche de buckets S3FestInFestIn est un outil pour découvrir des buckets S3 ouverts à partir de domaines.
Il effectue de nombreux tests et collecte des informations à partir de :
Il existe de nombreux outils S3 pour l'énumération et la découverte de buckets S3. Certains sont excellents mais aucun n'a la liste complète des fonctionnalités de Festin.
Les principales fonctionnalités qui rendent Festin génial :
Python 3.8 ou supérieur nécessaire !
$ 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 - le puissant outil de découverte et de recherche de buckets S3
positional arguments:
domains
optional arguments:
-h, --help affiche ce message d'aide et quitte
--version affiche la version
-f FILE_DOMAINS, --file-domains FILE_DOMAINS
fichier contenant les domaines
-w, --watch surveille les nouveaux domaines dans le fichier '-f'
-c CONCURRENCY, --concurrency CONCURRENCY
concurrence maximale
HTTP Probes:
--no-links extrait les liens des sites web
-T HTTP_TIMEOUT, --http-timeout HTTP_TIMEOUT
définit le délai d'attente pour les connexions HTTP
-M HTTP_MAX_RECURSION, --http-max-recursion HTTP_MAX_RECURSION
récursion maximale lors du suivi des liens
-dr DOMAIN_REGEX, --domain-regex DOMAIN_REGEX
ne suivre que les domaines correspondant à cette regex
Results:
-rr RESULT_FILE, --result-file RESULT_FILE
fichier de résultats
-rd DISCOVERED_DOMAINS, --discovered-domains DISCOVERED_DOMAINS
nom du fichier pour stocker les nouveaux domaines découverts après application des filtres
-ra RAW_DISCOVERED_DOMAINS, --raw-discovered-domains RAW_DISCOVERED_DOMAINS
nom du fichier pour stocker tous les domaines sans filtre
Connectivity:
--tor Utiliser Tor comme proxy
Display options:
--debug active le mode débogage
--no-print n'affiche pas les résultats à l'écran
-q, --quiet Utilise le mode silencieux
Redis Search:
--index Télécharge et indexe les documents dans Redis
--index-server INDEX_SERVER
Serveur Redis Search par défaut : redis://localhost:6379
DNS options:
-dn, --no-dnsdiscover
ne pas suivre les CNAME DNS
-ds DNS_RESOLVER, --dns-resolver DNS_RESOLVER
serveurs de noms de domaine personnalisés séparés par des virgules
Par défaut, FestIn accepte un domaine de départ comme paramètre de ligne de commande :
> festin mydomain.com
Mais vous pouvez aussi configurer un fichier externe avec une liste de domaines :
> cat domains.txt
domain1.com
domain2.com
domain3.com
> festin -f domains.txt
FestIn effectue de nombreux tests pour un domaine. Chaque test est effectué de manière concurrente. Par défaut, la concurrence est réglée à 5. Si vous souhaitez augmenter le nombre de tests concurrents, vous devez définir l'option -c
> festin -c 10 mydomain.com
Attention au nombre de tests concurrents, car des "alarmes" pourraient se déclencher sur certains sites web.
FestIn intègre un petit crawler pour découvrir des liens vers des buckets S3. Le crawler accepte ces options :
-T ou --http-timeout): configure un délai d'attente pour les connexions HTTP. Si le site web du domaine que vous souhaitez analyser est lent, nous vous recommandons d'augmenter cette valeur. Par défaut, le délai d'attente est de 5 secondes.-H ou --http-max-recursion): cette valeur définit une limite à la récursion du crawl. Sinon, FestIn analysera tout Internet. Par défaut, cette valeur est de 3. Cela signifie qu'il ne suivra que : domain1.com -> [lien] -> domain2.com -> [lien] -> domain3.com -> [lien] -> Récursion maximale atteinte. Stop.-dr ou --domain-regex): définissez cette option pour limiter le crawler aux domaines correspondant à cette regex.Exemple :
> echo "cdn" > blacklist.txt
> echo "photos" >> blacklist.txt
> festin -T 20 -M 8 -B blacklist.txt -dr .mydomain. mydomain.com
ATTENTION : -dr (ou --domain-regex) n'accepte que les expressions régulières POSIX valides.
*mydomain.com* -> n'est pas une regex POSIX valide
.mydomain\.com. -> est une regex POSIX valide
Lorsque FestIn s'exécute, il découvre de nombreuses informations utiles. Non seulement sur les buckets S3, mais aussi sur d'autres sondes que nous pourrions effectuer. Par exemple :
Après avoir utilisé FestIn, nous pouvons utiliser les informations découvertes (domaines, liens, ressources, autres buckets...) comme entrée d'autres outils, comme nmap.
Pour cette raison, FestIn dispose de 3 modes différents pour stocker les informations découvertes et nous pouvons les combiner :
FestIn (-rr ou --result-file): ce fichier contient une ligne JSON par bucket trouvé. Chaque JSON inclut : le domaine d'origine, le nom du bucket et la liste des objets du bucket.-rd ou --discovered-domains): ce fichier contient un domaine par ligne. Ces domaines sont découverts par le crawler, le DNS ou les sondes S3, mais seuls les domaines correspondant aux filtres utilisateur et internes sont stockés.-ra ou --raw-discovered-domains): ce fichier contient tous les domaines, un par ligne, découverts par FestIn sans aucun filtre. Cette option est utile pour le post-traitement et l'analyse.Exemple :
> festin -rr festin.results -rd discovered-domains.txt -ra raw-domains.txt mydomain.txt
Et, enchaîné avec Nmap :
> festin -rd domains.txt && nmap -Pn -A -iL domains.txt -oN nmap-domains.txt
FestIn intègre l'option --tor. En utilisant ce paramètre, vous devez avoir un proxy Tor local exécuté sur le port 9050 à 127.0.0.1.
> tor &
> festin --tor mydomain.com
Certains tests effectués par FestIn impliquent le DNS. Il supporte ces options :
-dn ou --no-dnsdiscover)-ds ou --dns-resolver): configurer un serveur DNS personnalisé. Si vous prévoyez d'effectuer de nombreux tests, vous devriez utiliser un serveur DNS différent de celui que vous utilisez pour votre navigateur.Exemple :
> festin -ds 8.8.8.8 mydomain.com
FestIn ne se contente pas de découvrir des buckets S3 ouverts. Il peut également télécharger tout le contenu et le stocker dans un moteur de recherche en texte intégral. Cela signifie que vous pouvez effectuer des requêtes en texte intégral sur le contenu du bucket !
FestIn utilise comme moteur de texte intégral le projet Open Source Redis Search.
Cette fonctionnalité comporte deux options :
--index): pour activer l'indexation vers le moteur de recherche, vous devez définir ce drapeau.--index-server): vous n'avez besoin de configurer cette option que si votre serveur s'exécute sur une adresse IP/port différente de : localhost:6379.Exemple :
> docker run --rm -p 6700:6379 redislabs/redisearch:latest -d
> festin --index --index-server redis://127.0.0.1:6700 mydomain.com
Attention à l'option `--index-server`, elle doit être préfixée par **redis://**
Parfois, nous ne voulons pas arrêter FestIn et le lancer plusieurs fois lorsque nous avons un nouveau domaine à inspecter ou qu'un outil externe a découvert de nouveaux domaines que nous voulons vérifier.
FestIn supporte un mode surveillance. Cela signifie que FestIn va démarrer et écouter les nouveaux domaines. La manière d'« envoyer » de nouveaux domaines à FestIn est par le fichier de domaines. Il surveille ce fichier pour détecter les modifications.
Cette fonctionnalité est utile pour combiner FestIn avec d'autres outils, comme dnsrecon.
Exemple :
> festin --watch -f domains.txt
Dans un terminal différent, nous pouvons écrire :
> echo "my-second-domain.com" >> domains.txt
> echo "another-domain.com" >> domains.txt
Chaque nouveau domaine ajouté à domains.txt réveillera FestIn.
Utilisation de DnsRecon
Le domaine choisi pour cet exemple est target.com.
> dnsrecon -d target.com -t crt -c target.com.csv
Avec cette commande, nous allons découvrir d'autres domaines liés à target.com. Cela nous aidera à maximiser nos chances de succès.
FestIn> tail -n +2 target.com.csv | sort -u | cut -d "," -f 2 >> target.com.domains
Avec cette commande, nous générons un fichier avec un domaine par ligne. C'est l'entrée dont FestIn a besoin.
> 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
Dans cet exemple, les fichiers résultants sont :
Afin de faciliter le traitement de plusieurs domaines, nous fournissons un script simple examples/loop.sh qui automatise cela.
Utilisation de FestIn avec les résultats de DnsRecon
Lancer contre target.com avec les options par défaut et laisser le résultat dans le fichier 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 bannit mon IP R :
Lorsque vous effectuez de nombreux tests contre AWS S3, AWS inclut votre IP dans une liste noire. Ensuite, chaque fois que vous voulez accéder à n'importe quel bucket S3 avec FestIn ou avec votre navigateur, vous serez bloqué.
Nous vous recommandons de configurer un proxy lorsque vous utilisez FestIn.

Ils analysent et évaluent l'exposition aux risques de votre entreprise en temps réel. Site Web
Ce projet est distribué sous licence BSD