Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
reconftw — reconFTW est un outil conçu pour effectuer des reconnaissances automatisées sur un domaine cible en exécutant le meilleur ensemble d'outils pour réaliser des scans et découvrir des vulnérabilités. | Kitploit
Outils/GitHubGitHub/six2dez/reconftw
OSINT (Renseignement de Sources Ouvertes)ReconnaissanceScanners de VulnérabilitésScan de PortsCollecte d'InformationsSécurité WebTests d'IntrusionSécurité CloudÉnumération de Sous-domainesAnalyse DNSTop en OSINT (Renseignement de Sources Ouvertes) n°17
8.0k1.2k1il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Top en Reconnaissance n°4
GitHubsix2dez/reconftw

reconftw

reconFTW est un outil conçu pour effectuer des reconnaissances automatisées sur un domaine cible en exécutant le meilleur ensemble d'outils pour réaliser des scans et découvrir des vulnérabilités.

Voir le dépôtSite web


bannière reconftw
reconFTW

Version Licence Problèmes fermés Discord Telegram Twitter

Documentation Script Bash Linux macOS GitHub

Actions GitHub Docker Terraform Ansible Go Python

Offrez-moi un café Sponsors GitHub PayPal

reconFTW est un outil de reconnaissance automatisé puissant conçu pour les chercheurs en sécurité et les testeurs d'intrusion. Il rationalise le processus de collecte de renseignements sur une cible en effectuant une énumération de sous-domaines, une analyse de vulnérabilités, des opérations OSINT et plus encore. Grâce à une conception modulaire, des options de configuration étendues et le support des scans distribués via AX Framework, reconFTW est conçu pour fournir des résultats complets et efficaces.

reconFTW exploite un large éventail de techniques, notamment la découverte passive et active de sous-domaines, les vérifications de vulnérabilités web (par ex., XSS, SSRF, SQLi), l'OSINT, le fuzzing de répertoires, le scan de ports et la capture d'écran. Il s'intègre avec des outils et API de pointe pour maximiser la couverture et la précision, vous assurant de rester en tête dans vos efforts de reconnaissance.

Fonctionnalités clés :

  • Énumération complète des sous-domaines (passive, bruteforce, permutations, transparence des certificats, etc.)
  • Analyse des vulnérabilités pour XSS, SSRF, SQLi, LFI, SSTI, etc.
  • OSINT pour les e-mails, métadonnées, fuites d'API et mauvaises configurations tierces
  • Scans distribués avec AX Framework pour une exécution plus rapide
  • Flux de travail personnalisables avec un fichier de configuration détaillé
  • Intégration avec Faraday pour le reporting et la visualisation
  • Prise en charge des déploiements Docker, Terraform et Ansible

Avertissement : L'utilisation de reconFTW pour attaquer des cibles sans consentement préalable est illégale. Il est de la responsabilité de l'utilisateur de respecter toutes les lois applicables. Les développeurs déclinent toute responsabilité en cas d'utilisation abusive ou de dommages causés par cet outil. Utilisez-le de manière responsable.


📔 Table des matières

  • 📔 Table des matières
  • ✨ Fonctionnalités
    • OSINT
    • Sous-domaines
    • Hôtes
    • Analyse web
    • Vérifications de vulnérabilités
    • Suppléments
  • 🏗️ Architecture
  • 💿 Installation
    • Installation locale (PC/VPS/VM)
    • Docker
    • Terraform + Ansible
  • ⚙️ Configuration
  • 🚀 Utilisation
    • Options de cible
    • Options de mode
    • Options générales
    • Exemples d'utilisation
  • ☁️ Support du framework AX (anciennement Axiom)
  • 💻 Support Faraday
  • 🧠 Intégration IA
  • 🗂️ Gestion des données
    • Makefile
    • Manuelle
  • 🧪 Tests
  • Mindmap/Flux de travail
  • Vidéo d'exemple
  • 🤝 Comment contribuer
  • 🔒 Sécurité
  • ❓ Besoin d'aide ?
  • 💖 Soutenir ce projet
  • 🙏 Remerciements
  • 📝 Journal des modifications
  • 🛠️ Développement
  • 📜 Licence
  • ⭐ Historique des étoiles

✨ Fonctionnalités

reconFTW regorge de fonctionnalités pour rendre la reconnaissance complète et efficace. Vous trouverez ci-dessous une ventilation détaillée de ses capacités, mise à jour pour refléter les dernières fonctionnalités du script et de la configuration.

OSINT

  • Informations sur le domaine : recherche WHOIS pour les détails d'enregistrement de domaine (whois).
  • Fuite d'e-mails et de mots de passe : recherche d'e-mails et d'identifiants divulgués (emailfinder et LeakSearch).
  • Cartographie Microsoft 365/Azure : identifie les locataires Microsoft 365 et Azure (msftrecon).
  • Extraction de métadonnées : extrait les métadonnées des documents bureautiques indexés (metagoofil).
  • Fuites d'API : détecte les API exposées dans des sources publiques (porch-pirate, SwaggerSpy et postleaksNg).
  • Google Dorking : requêtes Google dork automatisées pour des informations sensibles (dorks_hunter et xnldorker).
  • Analyse GitHub : scanne les organisations GitHub pour les dépôts et secrets avec des moteurs sélectionnables (enumerepo, trufflehog, gitleaks, titus, noseyparker).
  • Audit des actions GitHub (optionnel) : audite les artefacts de workflow et l'exposition CI/CD avec gato.
  • Mauvaises configurations tierces : identifie les services tiers mal configurés (misconfig-mapper).
  • Hygiène du courrier : examine la configuration SPF/DMARC pour signaler les problèmes d'usurpation ou de délivrabilité.

Sous-domaines

  • Énumération passive : utilise des API et des sources publiques pour la découverte de sous-domaines (subfinder et github-subdomains).
  • Transparence des certificats : interroge les journaux de transparence des certificats (crt).
  • Découverte NOERROR : identifie les sous-domaines avec des réponses DNS NOERROR (dnsx, plus d'infos ici).
  • Bruteforce : effectue un bruteforce DNS avec des wordlists personnalisables (puredns et des wordlists personnalisées).
  • Permutations : génère des permutations de sous-domaines en utilisant l'IA, des expressions régulières et des outils (Gotator comme unique moteur de permutation, plus regulator et subwiz).
  • Web Scraping : extrait les sous-domaines à partir de sources d'URL passives et de métadonnées web en direct (urlfinder, waymore, httpx, csprecon).
  • Enregistrements DNS : résout les enregistrements DNS pour les sous-domaines (dnsx).
  • Google Analytics : identifie les sous-domaines via les identifiants Analytics (AnalyticsRelationships).
  • Poignée de main TLS : découvre les sous-domaines via les ports TLS (tlsx).
  • Recherche récursive : effectue une énumération passive ou par bruteforce récursive combinée ().

Hôtes

  • Informations IP : récupère la géolocalisation et les données WHOIS (ipinfo).
  • Détection CDN : identifie les IP derrière des CDN (cdncheck).
  • Détection WAF : détecte les pare-feu d'application web (wafw00f).
  • Scan de ports : scan actif avec nmap (éventuellement précédé de naabu) et scan passif avec smap.
  • Empreinte de service : identifie les services exposés sur les paires hôte:port découvertes avec nerva.
  • Vulnérabilités de service (optionnel) : le profil de scan de ports approfondi peut enrichir les résultats avec la correspondance CVE via vulners.
  • Pulvérisation de mots de passe : tente la pulvérisation de mots de passe sur les services identifiés avec sélection du moteur (brutespray ou brutus).
  • Géolocalisation : associe les adresses IP à des emplacements géographiques (ipinfo).
  • Découverte IPv6 : énumère et scanne éventuellement les cibles IPv6 découvertes lorsque IPV6_SCAN est activé.

Analyse web

  • Probing web : détecte les serveurs web actifs sur les ports standard et non standard (httpx).
  • Captures d'écran : prend des captures d'écran des pages web (nuclei).
  • Fuzzing d'hôte virtuel : identifie les hôtes virtuels en fuzzant les en-têtes HTTP (VhostFinder).
  • Détection CMS : identifie les systèmes de gestion de contenu (CMSeeK).
  • Extraction d'URL : collecte les URL de manière passive et active (urlfinder, waymore, katana, github-endpoints et JSA).
  • Analyse de motifs d'URL : classe les URL à l'aide de motifs (urless, gf et gf-patterns).
  • Reconnaissance technologique par favicon : identifie les technologies à partir des hachages de favicon (favirecon).
  • Analyse JavaScript : extrait les secrets et points de terminaison des fichiers JS (subjs, JSA, xnLinkFinder, getjswords, mantra, jsluice).
  • Extraction de source maps : récupère les données sensibles des source maps JavaScript (sourcemapper).

Vérifications de vulnérabilités

  • CVE : vérifie les CVE et vulnérabilités courantes nuclei
  • Nuclei DAST : exécute les modèles nuclei -dast sur les URL collectées et les candidats GF pour une couverture DAST supplémentaire.
  • XSS : teste les vulnérabilités de cross-site scripting (dalfox).
  • SSL/TLS : vérifie les mauvaises configurations SSL/TLS (testssl).
  • SSRF : teste les falsifications de requête côté serveur (interactsh, valeurs de paramètres avec ffuf, et charges utiles de protocole alternatif optionnelles).
  • CRLF : vérifie les vulnérabilités d'injection CRLF (crlfuzz).
  • LFI : teste l'inclusion de fichiers locaux via fuzzing (ffuf).
  • SSTI : détecte l'injection de modèles côté serveur (TInjA).
  • SQLi : teste l'injection SQL (SQLMap et ghauri).
  • Liens brisés : identifie les liens brisés et les références externes susceptibles d'être sujettes à reprise (second-order).
  • Injection de commandes : teste les vulnérabilités d'injection de commandes (commix).
  • Contrebande de requêtes HTTP : vérifie les vulnérabilités de contrebande de requêtes (smugglex).
  • Cache web : identifie les vulnérabilités de cache web (Web-Cache-Vulnerability-Scanner et ).

Suppléments- Multithreading : Optimise les performances (Interlace).

  • Résolveurs personnalisés : Génère des résolveurs DNS (dnsvalidator).
  • Support Docker : Image Docker officielle sur DockerHub.
  • Déploiement AWS : Déploie via Terraform et Ansible.
  • Support IP/CIDR : Analyse des plages IP et blocs CIDR.
  • Reprise d’analyse : Reprend les analyses depuis la dernière étape terminée.
  • Sortie personnalisée : Sauvegarde les résultats dans un répertoire défini par l’utilisateur.
  • Mode Diff : Met en évidence les nouvelles découvertes lors des analyses suivantes.
  • Filtrage de périmètre : Prend en charge les listes dans le périmètre et hors périmètre (inscope).
  • Notifications : Envoie des alertes via Slack, Discord ou Telegram (notify).
  • Compression des résultats : Compresse et envoie les résultats.
  • Intégration Faraday : Exporte les résultats vers Faraday pour le rapport .
  • Génération de rapport IA : Génère des rapports à l’aide de modèles IA locaux (reconftw_ai).
  • Mode re-scan rapide : Ignore automatiquement les étapes lourdes lorsqu’aucun nouvel actif n’est découvert (--quick-rescan / QUICK_RESCAN).
  • Constructeur de hotlist : Note et met en évidence les actifs les plus risqués (hotlist.txt) en fonction des nouvelles découvertes.
  • Traçage des commandes : Active SHOW_COMMANDS pour journaliser chaque commande exécutée dans les journaux cibles pour le débogage.

🏗️ Architecture

reconFTW utilise une architecture modulaire. Le point d’entrée principal (reconftw.sh) gère l’analyse des arguments et charge 8 modules spécialisés depuis le répertoire modules/.

Directory Layout```

reconftw/ ├── reconftw.sh # Entry point — arg parsing, module loading, dispatch ├── reconftw.cfg # Default configuration ├── install.sh # Installer ├── Makefile # Data management, lint, fmt, test targets ├── modules/ │ ├── core.sh # Lifecycle, logging, notifications, cleanup (1024 lines) │ ├── modes.sh # Scan modes, argument parsing, help (902 lines) │ ├── subdomains.sh # Subdomain enumeration (1938 lines) │ ├── web.sh # Web analysis, fuzzing, JS checks (1712 lines) │ ├── vulns.sh # Vulnerability scanning (926 lines) │ ├── osint.sh # OSINT functions (500 lines) │ ├── axiom.sh # Ax/Axiom fleet helpers (143 lines) │ └── utils.sh # Utilities, sanitization, validation (508 lines) ├── tests/ │ ├── run_tests.sh # Test runner │ ├── unit/ # bats-core unit tests │ ├── integration/ # Integration tests │ └── fixtures/ # Test data ├── Docker/ │ └── Dockerfile # Official Docker image └── Terraform/ # AWS deployment

root@kitploit:~
### Référence des modules

| Module | Lignes | Objectif |
|--------|------:|---------|
| `core.sh` | 1024 | Gestion du cycle de vie, journalisation, notifications, pièges de nettoyage |
| `modes.sh` | 902 | Définitions des modes de scan, analyse des arguments, sortie d'aide |
| `subdomains.sh` | 1938 | Toutes les fonctions d'énumération de sous-domaines |
| `web.sh` | 1712 | Analyse web, fuzzing, analyse JS, détection CMS |
| `vulns.sh` | 926 | Scan de vulnérabilités (XSS, SQLi, SSRF, etc.) |
| `osint.sh` | 500 | Fonctions OSINT (WHOIS, emails, dorks, métadonnées) |
| `utils.sh` | 508 | Utilitaires partagés, nettoyage des entrées, validation |
| `axiom.sh` | 143 | Gestion de flotte distribuée Ax/Axiom |

Le flag `--source-only` permet de sourcer `reconftw.sh` sans exécuter la logique principale, permettant les tests unitaires de fonctions individuelles.

---

## 💿 Installation

reconFTW prend en charge plusieurs méthodes d'installation adaptées à différents environnements. Assurez-vous de disposer d'un espace disque suffisant (au moins 10 Go recommandé) et d'une connexion Internet stable.

### Quickstart

1) Clonez et installez```yaml
git clone https://github.com/six2dez/reconftw
cd reconftw
./install.sh --verbose
  1. Lancer un scan (complet + reprise)```bash ./reconftw.sh -d example.com -r
root@kitploit:~
3) Exécution minimale (empreinte passive uniquement)```bash
./reconftw.sh -d example.com -p

Astuce : exécutez à nouveau ./install.sh --tools plus tard pour actualiser la chaîne d'outils sans réinstaller les paquets système.

Installation locale (PC/VPS/VM)

  1. Prérequis :

    • Golang : Dernière version (install_golang activé par défaut dans reconftw.cfg).
    • Permissions système : Si vous n'exécutez pas en tant que root, configurez sudo pour éviter les invites :
      root@kitploit:~
      sudo echo "${USERNAME} ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers.d/reconFTW
      
  2. Étapes : ```bash git clone https://github.com/six2dez/reconftw cd reconftw ./install.sh ./reconftw.sh -d target.com -r

    root@kitploit:~
  3. Notes:

  • Le script install.sh installe les dépendances, les outils et configure les chemins (GOROOT, GOPATH, PATH).
  • Définissez install_golang=false dans reconftw.cfg si Golang est déjà configuré.
  • Pour les installations existantes, exécutez ./install.sh --tools pour actualiser les binaires Go, les paquets pipx et les dépôts sans toucher aux paquets système.
  • Consultez le Guide d'installation pour des instructions détaillées.

Docker

  1. Tirer l'image: ```bash docker pull six2dez/reconftw:main
    root@kitploit:~
  2. Exécuter le conteneur: ```bash docker run -it --rm
    -v "${PWD}/OutputFolder/:/reconftw/Recon/"
    six2dez/reconftw:main -d example.com -r
    root@kitploit:~

Pour une liste de cibles, montez le fichier de liste dans le conteneur et faites référence au chemin à l'intérieur du conteneur : ```bash docker run -it --rm
-v "${PWD}/domains.txt:/reconftw/domains.txt:ro"
-v "${PWD}/OutputFolder/:/reconftw/Recon/"
six2dez/reconftw:main -l /reconftw/domains.txt -r

root@kitploit:~
3. **Voir les résultats** :

- Les résultats sont enregistrés dans le répertoire `OutputFolder` sur l'hôte (pas à l'intérieur du conteneur).

4. **Personnalisation** :
- Modifiez l'image Docker ou construisez la vôtre ; voir le [Guide Docker](https://github.com/six2dez/reconftw/wiki/4.-Docker).
- Pour ignorer l'outillage Ax dans les constructions personnalisées, passez `--build-arg INSTALL_AXIOM=false`.
- Montez votre configuration notify dans `~/.config/notify/provider-config.yaml` à l'intérieur du conteneur si vous utilisez les notifications.

5. **Secrets au moment de l'exécution** :

Passez les clés API et les secrets via des variables d'environnement — ne les intégrez jamais dans l'image :   ```bash
docker run -it --rm \
  -e SHODAN_API_KEY="your-key" \
  -e PDCP_API_KEY="your-projectdiscovery-key" \
  -e COLLAB_SERVER="your-server" \
  -e XSS_SERVER="your-server" \
  -v "${PWD}/OutputFolder/:/reconftw/Recon/" \
  six2dez/reconftw:main -d example.com -r

Voir SECURITY.md pour les instructions complètes sur la gestion des secrets.

  1. Vérification de l'état de santé:

    L'image Docker inclut un HEALTHCHECK intégré qui exécute ./reconftw.sh --health-check toutes les 60 secondes. Vous pouvez également l'exécuter manuellement : ```bash docker exec ./reconftw.sh --health-check

    root@kitploit:~

Terraform + Ansible

  • Déployez reconFTW sur AWS en utilisant Terraform et Ansible.
  • Suivez le guide dans Terraform/README.md pour les instructions de configuration.

🛠️ Dépannage

  • Bash 4+ sur macOS : Les scripts se relancent automatiquement sous Homebrew Bash. Si vous voyez un message concernant Bash < 4, exécutez brew install bash, ouvrez un nouveau terminal, et relancez ./install.sh.
  • timeout sur macOS : macOS fournit gtimeout via brew install coreutils. Les scripts le détectent et l'utilisent désormais automatiquement.
  • Problèmes réseau : Les installateurs masquent la plupart des sorties de commandes. Si quelque chose échoue, relancez avec upgrade_tools=true dans reconftw.cfg, exécutez ./install.sh --tools, ou installez manuellement l'outil manquant (l'erreur le nommera).
  • Binaires GOPATH : Les binaires sont copiés dans /usr/local/bin. Si vous préférez ne pas le faire, assurez-vous que ~/go/bin est dans votre PATH.
  • Modèles Nuclei : Si les modèles n'ont pas été clonés, supprimez ~/nuclei-templates et relancez ./install.sh.

🔑 Liste de vérification des API (Optionnel)

  • subfinder : ~/.config/subfinder/provider-config.yaml
  • Jetons GitHub : ~/Tools/.github_tokens (un par ligne)
  • Jetons GitLab : ~/Tools/.gitlab_tokens (un par ligne)
  • WHOISXML : définissez WHOISXML_API dans reconftw.cfg ou en variable d'environnement
  • Énumération ASN (asnmap) : définissez PDCP_API_KEY dans l'environnement/la configuration (ASN_ENUM ignoré si non défini)
  • Slack/Discord/Telegram : configurez notify dans ~/.config/notify/provider-config.yaml
  • Serveur SSRF : définissez COLLAB_SERVER dans env/cfg si utilisé
  • Serveur XSS aveugle : définissez XSS_SERVER dans env/cfg si utilisé

💾 Prérequis

  • Disque : 10–20 Go libres recommandés (chaîne d'outils + données)
  • Réseau : connexion stable pendant l'installation et les mises à jour
  • OS : Linux/macOS avec Bash ≥ 4
  • Suppléments : shellcheck et shfmt (optionnels) pour make lint/make fmt

⚙️ Configuration

Le fichier reconftw.cfg contrôle l'intégralité de l'exécution de reconFTW. Il permet une personnalisation fine de :

  • Chemins des outils : Définissez les chemins pour les outils, les résolveurs et les listes de mots (tools, resolvers, fuzz_wordlist).
  • Clés API : Configurez les clés pour Shodan, WHOISXML, etc. via des variables d'environnement ou secrets.cfg (voir SECURITY.md).
  • Modes de scan : Activez/désactivez des modules (par ex., OSINT, SUBDOMAINS_GENERAL, VULNS_GENERAL).
  • Performances : Ajustez les threads, les limites de débit et les timeouts (par ex., FFUF_THREADS, HTTPX_RATELIMIT).
  • Limitation adaptative du débit : Réduisez automatiquement la cadence en cas d'erreurs 429/503 (ADAPTIVE_RATE_LIMIT, MIN_RATE_LIMIT, MAX_RATE_LIMIT).

Exemple de configuration :```bash #############################################

reconFTW config file

#############################################

General values

tools=$HOME/Tools # Path installed tools if [[ -z "${SCRIPTPATH:-}" ]]; then if [[ -n "${BASH_SOURCE[0]:-}" ]]; then SCRIPTPATH="$( cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 ; pwd -P )" # Get current script's path else SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" # Get current script's path fi fi _detected_shell="${SHELL:-/bin/bash}" profile_shell=".$(basename "${_detected_shell}")rc" # Get current shell profile if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then reconftw_version="$(git rev-parse --abbrev-ref HEAD)-$(git describe --tags 2>/dev/null || git rev-parse --short HEAD)" else reconftw_version="standalone" fi # Fetch current reconftw version DATA_DIR="${SCRIPTPATH}/data" WORDLISTS_DIR="${DATA_DIR}/wordlists" PATTERNS_DIR="${DATA_DIR}/patterns" generate_resolvers=false # Generate custom resolvers with dnsvalidator update_resolvers=true # Fetch and rewrite resolvers from trickest/resolvers before DNS resolution resolvers_url="https://raw.githubusercontent.com/trickest/resolvers/main/resolvers.txt" resolvers_trusted_url="https://gist.githubusercontent.com/six2dez/ae9ed7e5c786461868abd3f2344401b6/raw/trusted_resolvers.txt" RESOLVER_DOWNLOAD_CONNECT_TIMEOUT=10 # Seconds to wait for resolver download TCP connection RESOLVER_DOWNLOAD_MAX_TIME=120 # Hard cap in seconds for resolver downloads RESOLVER_DOWNLOAD_RETRY=2 # Retry count for resolver downloads RESOLVER_DOWNLOAD_RETRY_DELAY=2 # Delay in seconds between resolver download retries fuzzing_remote_list="https://raw.githubusercontent.com/six2dez/OneListForAll/main/onelistforallmicro.txt" # Used to send to Ax (if used) on fuzzing proxy_url="http://127.0.0.1:8080/" # Proxy url install_golang=true # Set it to false if you already have Golang configured and ready upgrade_tools=true upgrade_before_running=false # Upgrade tools before running #dir_output=/custom/output/path SHOW_COMMANDS=false # Set true to log every executed command to the per-target log (verbose; may include sensitive data) MIN_DISK_SPACE_GB=0 # Minimum required disk space in GB before starting reconnaissance (0 to disable check)

Incremental mode configuration

INCREMENTAL_MODE=false # Only scan new findings since last run (use --incremental flag to enable) MONITOR_MODE=false # Continuous monitor mode (enabled by --monitor) MONITOR_INTERVAL_MIN=60 # Minutes between monitoring cycles MONITOR_MAX_CYCLES=0 # 0 = run forever until interrupted ALERT_SUPPRESSION=true # Suppress repeated monitor alerts by fingerprint history ALERT_SEEN_FILE=".incremental/alerts_seen.hashes" # Store of seen alert fingerprints

Adaptive rate limiting configuration

ADAPTIVE_RATE_LIMIT=false # Automatically adjust rate limits when encountering 429/503 errors (use --adaptive-rate flag to enable) MIN_RATE_LIMIT=10 # Minimum rate limit (requests per second) MAX_RATE_LIMIT=500 # Maximum rate limit (requests per second) RATE_LIMIT_BACKOFF_FACTOR=0.5 # Multiply rate by this when errors occur (0.5 = half speed) RATE_LIMIT_INCREASE_FACTOR=1.2 # Multiply rate by this on success (1.2 = 20% faster)

Cache configuration

CACHE_MAX_AGE_DAYS=30 # Maximum age in days for cached wordlists/resolvers (30 = 1 month) CACHE_MAX_AGE_DAYS_RESOLVERS=7 # Resolver cache TTL CACHE_MAX_AGE_DAYS_WORDLISTS=30 # Wordlist cache TTL CACHE_MAX_AGE_DAYS_TOOLS=14 # Tool cache TTL CACHE_REFRESH=false # Force-refresh cache (or use --refresh-cache)

Log rotation

MAX_LOG_FILES=10 # Maximum number of log files to keep per target MAX_LOG_AGE_DAYS=30 # Delete log files older than this many days

Structured logging configuration (JSON format)

STRUCTURED_LOGGING=false # Enable JSON structured logging for advanced log analysis

Golang Vars (Comment or change on your own)

export GOROOT="${GOROOT:-/usr/local/go}" export GOPATH="${GOPATH:-$HOME/go}" case ":${PATH}:" in ":$GOPATH/bin:") ;; *) PATH="$GOPATH/bin:$PATH" ;; esac case ":${PATH}:" in ":$GOROOT/bin:") ;; *) PATH="$GOROOT/bin:$PATH" ;; esac case ":${PATH}:" in ":$HOME/.local/bin:") ;; *) PATH="$HOME/.local/bin:$PATH" ;; esac export PATH

Rust Vars (Comment or change on your own)

export PATH="$HOME/.cargo/bin:$PATH"

Tools config files

#NOTIFY_CONFIG=~/.config/notify/provider-config.yaml # No need to define GITHUB_TOKENS=${tools}/.github_tokens GITLAB_TOKENS=${tools}/.gitlab_tokens #CUSTOM_CONFIG=custom_config_path.txt # In case you use a custom config file, uncomment this line and set your files path

APIs/TOKENS - Set via environment variables (preferred) or uncomment and edit below.

Environment variables take precedence if set.

SHODAN_API_KEY="${SHODAN_API_KEY:-}" WHOISXML_API="${WHOISXML_API:-}" PDCP_API_KEY="${PDCP_API_KEY:-}" XSS_SERVER="${XSS_SERVER:-}" COLLAB_SERVER="${COLLAB_SERVER:-}" slack_channel="${slack_channel:-}" slack_auth="${slack_auth:-}"

For additional secrets, create a secrets.cfg file (gitignored) and it will be auto-sourced

File descriptors

DEBUG_STD="&>/dev/null" # Skips STD output on installer DEBUG_ERROR="2>/dev/null" # Skips ERR output on installer

Osint

OSINT=true # Enable or disable the whole OSINT module GOOGLE_DORKS=true GITHUB_DORKS=true GITHUB_REPOS=true METADATA=true # Fetch metadata from indexed office documents EMAILS=true # Fetch emails from differents sites DOMAIN_INFO=true # whois info IP_INFO=true # Reverse IP search, geolocation and whois API_LEAKS=true # Check for API leaks API_LEAKS_POSTLEAKS=true # Enhance API leaks with postleaksNg THIRD_PARTIES=true # Check for 3rd parties misconfigs SPOOF=true # Check spoofable domains MAIL_HYGIENE=true # Check DMARC/SPF records CLOUD_ENUM=true # Enumerate cloud storage across providers with cloud_enum GITHUB_LEAKS=true # Search for leaked secrets across GitHub with ghleaks GHLEAKS_THREADS=5 # Concurrent download threads for ghleaks SECRETS_ENGINE="gitleaks" # gitleaks|titus|noseyparker|hybrid SECRETS_SCAN_GIT_HISTORY=false # Include git history scans when supported SECRETS_VALIDATE=false # Validate detected secrets when supported (titus) GITHUB_ACTIONS_AUDIT=false # Audit GitHub Actions artifacts/workflows with gato GATO_INCLUDE_ALL_ARTIFACT_SECRETS=false # Include noisy artifact secret matches in gato output

Subdomains

SUBDOMAINS_GENERAL=true # Enable or disable the whole Subdomains module SUBPASSIVE=true # Passive subdomains search SUBCRT=true # crtsh search CTR_LIMIT=999999 # Limit the number of results SUBNOERROR=false # Check DNS NOERROR response and BF on them SUBANALYTICS=true # Google Analytics search SUBBRUTE=true # DNS bruteforcing SUBSCRAPING=true # Subdomains extraction from passive URLs and live web metadata SUBPERMUTE=true # DNS permutations SUBIAPERMUTE=true # Permutations by AI analysis SUBREGEXPERMUTE=true # Permutations by regex analysis GOTATOR_FLAGS=" -depth 1 -numbers 3 -mindup -adv -md" # Flags for gotator PERMUTATIONS_WORDLIST_MODE=auto # auto|full|short (auto: short if subs > threshold, full if DEEP) PERMUTATIONS_SHORT_THRESHOLD=100 # Use short wordlist when subdomain count exceeds this SUBTAKEOVER=true # Check subdomain takeovers, false by default cuz nuclei already check this SUB_RECURSIVE_PASSIVE=false # Uses a lot of API keys queries DEEP_RECURSIVE_PASSIVE=10 # Number of top subdomains for recursion SUB_RECURSIVE_BRUTE=false # Needs big disk space and time to resolve ZONETRANSFER=true # Check zone transfer S3BUCKETS=true # Check S3 buckets misconfigs REVERSE_IP=false # Check reverse IP subdomain search (set True if your target is CIDR/IP) TLS_PORTS="21,22,25,80,110,135,143,261,271,324,443,448,465,563,614,631,636,664,684,695,832,853,854,990,993,989,992,994,995,1129,1131,1184,2083,2087,2089,2096,2221,2252,2376,2381,2478,2479,2482,2484,2679,2762,3077,3078,3183,3191,3220,3269,3306,3410,3424,3471,3496,3509,3529,3539,3535,3660,36611,3713,3747,3766,3864,3885,3995,3896,4031,4036,4062,4064,4081,4083,4116,4335,4336,4536,4590,4740,4843,4849,5443,5007,5061,5321,5349,5671,5783,5868,5986,5989,5990,6209,6251,6443,6513,6514,6619,6697,6771,7202,7443,7673,7674,7677,7775,8243,8443,8991,8989,9089,9295,9318,9443,9444,9614,9802,10161,10162,11751,12013,12109,14143,15002,16995,41230,16993,20003" INSCOPE=false # Uses inscope tool to filter the scope, requires .scope file in reconftw folder

Web detection

WEBPROBEFULL=true # Unified web probing over configured ports WEBSCREENSHOT=true # Webs screenshooting VIRTUALHOSTS=false # Check virtualhosts by fuzzing HOST header UNCOMMON_PORTS_WEB="81,300,591,593,832,981,1010,1311,1099,2082,2095,2096,2480,3000,3001,3002,3003,3128,3333,4243,4567,4711,4712,4993,5000,5104,5108,5280,5281,5601,5800,6543,7000,7001,7396,7474,8000,8001,8008,8014,8042,8060,8069,8080,8081,8083,8088,8090,8091,8095,8118,8123,8172,8181,8222,8243,8280,8281,8333,8337,8443,8500,8834,8880,8888,8983,9000,9001,9043,9060,9080,9090,9091,9092,9200,9443,9502,9800,9981,10000,10250,11371,12443,15672,16080,17778,18091,18092,20720,32000,55440,55672" WEBPROBE_PORTS="80,443,${UNCOMMON_PORTS_WEB}" # Ports used by webprobe_full

Host

FAVIRECON=true # Favicon-based technology recon for discovered web targets PORTSCANNER=true # Enable or disable the whole Port scanner module GEO_INFO=true # Fetch Geolocalization info PORTSCAN_PASSIVE=true # Port scanner with Shodan PORTSCAN_ACTIVE=true # Port scanner with nmap PORTSCAN_ACTIVE_OPTIONS="--top-ports 200 -sV -n -Pn --open --max-retries 2" PORTSCAN_DEEP_OPTIONS="--top-ports 1000 -sV -n -Pn --open --max-retries 2 --script vulners" PORTSCAN_STRATEGY=legacy # legacy|naabu_nmap NAABU_ENABLE=true NAABU_RATE=1000 NAABU_PORTS="--top-ports 1000" SERVICE_FINGERPRINT=true # Fingerprint exposed services with nerva SERVICE_FINGERPRINT_ENGINE="nerva" # nerva SERVICE_FINGERPRINT_TIMEOUT_MS=2000 # nerva timeout per target (ms) PORTSCAN_UDP=false PORTSCAN_UDP_OPTIONS="--top-ports 20 -sU -sV -n -Pn --open" CDN_IP=true # Check which IPs belongs to CDN CDN_BYPASS=true # Try origin IP discovery on CDN-fronted hosts with hakoriginfinder

Web analysis

WAF_DETECTION=true # Detect WAFs NUCLEICHECK=true # Enable or disable nuclei NUCLEI_TEMPLATES_PATH="$HOME/nuclei-templates" # Set nuclei templates path NUCLEI_SEVERITY="info,low,medium,high,critical" # Set templates criticity NUCLEI_EXTRA_ARGS="" # Additional nuclei extra flags, don't set the severity here but the exclusions like " -etags openssh" #NUCLEI_EXTRA_ARGS="-etags openssh,ssl -eid node-express-dev-env,keycloak-xss,CVE-2023-24044,CVE-2021-20323,header-sql,header-reflection" # Additional nuclei extra flags, don't set the severity here but the exclusions like " -etags openssh" NUCLEI_DAST=true # Run additional nuclei -dast module over webs/urls/gf candidates (forced on when VULNS_GENERAL=true, e.g. -a) URL_CHECK=true # Enable or disable URL collection URL_CHECK_PASSIVE=true # Search for urls, passive methods from Archive, OTX, CommonCrawl, etc URL_CHECK_ACTIVE=true # Search for urls by crawling the websites WAYMORE_TIMEOUT=30m # Timeout for waymore passive URL collection WAYMORE_LIMIT=5000 # Optional URL collection limit for waymore URL_GF=true # Url patterns classification URL_EXT=true # Returns a list of files divided by extension JSCHECKS=true # JS analysis FUZZ=true # Web fuzzing FUZZ_RECURSION_DEPTH=2 # ffuf recursion depth used in DEEP mode IIS_SHORTNAME=true CMS_SCANNER=true # CMS scanner WORDLIST=true # Wordlist generation ROBOTSWORDLIST=true # Check historic disallow entries on waybackMachine (DEEP mode only) PASSWORD_DICT=true # Generate password dictionary PASSWORD_DICT_ENGINE=cewler # cewler|pydictor PASSWORD_MIN_LENGTH=5 # Min password length PASSWORD_MAX_LENGTH=14 # Max password length KATANA_HEADLESS_PROFILE=off # off|smart|full CLOUD_ENUM_S3_PROFILE=optimized # optimized: quickscan (-qs + safe -m/-b paths) | exhaustive: -m/-b ${tools}/cloud_enum/enum_tools/fuzz.txt (missing fuzz => optimized) CLOUD_ENUM_S3_THREADS=20 # Threads used by cloud_enum in s3buckets/cloud enumeration

Vulns

VULNS_GENERAL=false # Enable or disable the vulnerability module (very intrusive and slow) XSS=true # Check for xss with dalfox TEST_SSL=true # SSL misconfigs SSRF_CHECKS=true # SSRF checks CRLF_CHECKS=true # CRLF checks LFI=true # LFI by fuzzing LFI_MAX_URLS=150 # Max single-parameter LFI candidates to test per target (0 = unlimited) SSTI=true # SSTI by fuzzing SSTI_ENGINE="TInjA" # SSTI engine SQLI=true # Check SQLI SQLMAP=true # Check SQLI with sqlmap GHAURI=false # Check SQLI with ghauri BROKENLINKS=true # Check for brokenlinks BROKENLINKS_ENGINE="second-order" # Broken links engine SPRAY=true # Performs password spraying SPRAY_ENGINE="brutespray" # brutespray|brutus SPRAY_BRUTUS_ONLY_DEEP=true # Run brutus only in DEEP mode unless disabled BRUTUS_USERNAMES="" # Optional comma-separated usernames for brutus BRUTUS_PASSWORDS="" # Optional comma-separated passwords for brutus BRUTUS_KEY_FILE="" # Optional SSH private key path for brutus COMM_INJ=true # Check for command injections with commix SMUGGLING=true # Check for HTTP request smuggling flaws WEBCACHE=true # Check for Web Cache issues WEBCACHE_TOXICACHE=true # Complement web cache checks with toxicache BYPASSER4XX=true # Check for 4XX bypasses FUZZPARAMS=true # Fuzz parameters values

Extra features

NOTIFICATION=false # Notification for every function SOFT_NOTIFICATION=false # Only for start/end DEEP=false # DEEP mode, really slow and don't care about the number of results DEEP_LIMIT=500 # First limit to not run unless you run DEEP DEEP_LIMIT2=1500 # Second limit to not run unless you run DEEP DIFF=false # Diff function, run every module over an already scanned target, printing only new findings (but save everything) REMOVETMP=false # Delete temporary files after execution (to free up space) REMOVELOG=false # Delete logs after execution PROXY=false # Send to proxy the websites found SENDZIPNOTIFY=false # Send to zip the results (over notify) PRESERVE=true # set to true to avoid deleting the .called_fn files on really large scans FFUF_FLAGS=" -mc all -fc 404 -sf -noninteractive -of json" # Ffuf flags

HTTP options

HEADER="User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0" # Default header

Threads (auto-scaled based on CPU cores, override to set fixed values)

AVAILABLE_CORES=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4) FFUF_THREADS=$((AVAILABLE_CORES * 10)) HTTPX_THREADS=$((AVAILABLE_CORES * 12)) HTTPX_UNCOMMONPORTS_THREADS=$((AVAILABLE_CORES * 25)) KATANA_THREADS=$((AVAILABLE_CORES * 5)) BRUTESPRAY_CONCURRENCE=$((AVAILABLE_CORES * 2)) DNSTAKE_THREADS=$((AVAILABLE_CORES * 25)) DALFOX_THREADS=$((AVAILABLE_CORES * 50)) DNS_RESOLVER=auto # auto|puredns|dnsx (auto: detects NAT/CGNAT → dnsx for home, puredns for VPS) PUREDNS_PUBLIC_LIMIT=0 # Set between 2000 - 10000 if your router blows up, 0 means unlimited PUREDNS_TRUSTED_LIMIT=400 PUREDNS_WILDCARDTEST_LIMIT=30 PUREDNS_WILDCARDBATCH_LIMIT=1500000 DNSX_THREADS=25 # Threads for dnsx when behind NAT (safe for home routers) DNSX_RATE_LIMIT=100 # QPS for dnsx DNSVALIDATOR_THREADS=200 INTERLACE_THREADS=10 LFI_INTERLACE_THREADS=4 # Dedicated interlace concurrency for LFI TLSX_THREADS=1000 XNLINKFINDER_DEPTH=3

Rate limits

HTTPX_RATELIMIT=150 NUCLEI_RATELIMIT=150 FFUF_RATELIMIT=0 LFI_FFUF_THREADS=20 # Dedicated ffuf threads for LFI LFI_FFUF_RATELIMIT=50 # Dedicated ffuf rate limit for LFI

Timeouts

SUBFINDER_ENUM_TIMEOUT=180 # Minutes CMSSCAN_TIMEOUT=3600 # Seconds FFUF_MAXTIME=900 # Seconds LFI_INTERLACE_TIMEOUT=180 # Seconds per LFI interlace worker LFI_FFUF_TIMEOUT=10 # Seconds per LFI HTTP request LFI_FFUF_MAXTIME=90 # Seconds per single LFI ffuf job LFI_FOLLOW_REDIRECTS=false # Follow redirects during LFI fuzzing HTTPX_TIMEOUT=10 # Seconds HTTPX_UNCOMMONPORTS_TIMEOUT=10 # Seconds PERMUTATIONS_LIMIT=21474836480 # Bytes, default is 20 GB DNS_BRUTE_TIMEOUT=0 # timeout/gtimeout duration for DNS bruteforce (0 disables hard-timeout, e.g. 4h) DNS_RESOLVE_TIMEOUT=0 # timeout/gtimeout duration for DNS resolve (0 disables hard-timeout, e.g. 6h) DNS_HEARTBEAT_INTERVAL_SECONDS=20 # Progress heartbeat interval for long DNS jobs

lists

fuzz_wordlist=${WORDLISTS_DIR}/fuzz_wordlist.txt lfi_wordlist=${WORDLISTS_DIR}/lfi_wordlist.txt ssti_wordlist=${WORDLISTS_DIR}/ssti_wordlist.txt subs_wordlist=${WORDLISTS_DIR}/subdomains.txt subs_wordlist_big=${tools}/subdomains_n0kovo_big.txt headers_inject=${WORDLISTS_DIR}/headers_inject.txt resolvers=${tools}/resolvers.txt resolvers_trusted=${tools}/resolvers_trusted.txt

Ax Fleet (formerly Axiom — uses attacksurge/ax)

Resolver paths on Ax instances (change if your fleet uses a different home dir)

AXIOM_RESOLVERS_PATH="/home/op/lists/resolvers.txt" AXIOM_RESOLVERS_TRUSTED_PATH="/home/op/lists/resolvers_trusted.txt"

Will not start a new fleet if one exist w/ same name and size (or larger)

AXIOM=false Uncomment only to overwrite command line flags

AXIOM_FLEET_LAUNCH=true # Enable or disable spin up a new fleet, if false it will use the current fleet with the AXIOM_FLEET_NAME prefix AXIOM_FLEET_NAME="reconFTW" # Fleet's prefix name AXIOM_FLEET_COUNT=10 # Fleet's number AXIOM_FLEET_REGIONS="eu-central" # Fleet's region AXIOM_FLEET_SHUTDOWN=true # # Enable or disable delete the fleet after the execution AXIOM_AUTO_FIX_HOSTKEY=true # Auto-repair known_hosts entries on SSH host-key mismatch before fallback to local mode

This is a script on your reconftw host that might prep things your way...

#AXIOM_POST_START="~/Tools/axiom_config.sh" # Useful to send your config files to the fleet AXIOM_EXTRA_ARGS="" # Leave empty if you don't want to add extra arguments #AXIOM_EXTRA_ARGS=" --rm-logs" # Example

Faraday-Server

FARADAY=false # Enable or disable Faraday integration FARADAY_WORKSPACE="reconftw" # Faraday workspace

AI

AI_EXECUTABLE="python3" # Python executable fallback if reconftw_ai venv python is not available AI_MODEL="llama3:8b" # Model to use AI_REPORT_TYPE="md" # Report type to use (md, txt) AI_REPORT_PROFILE="bughunter" # Report profile to use (executive, brief, or bughunter) AI_PROMPTS_FILE="" # Optional custom prompts file (empty uses reconftw_ai default) AI_MAX_CHARS_PER_FILE=50000 # Max chars loaded per file before truncation AI_MAX_FILES_PER_CATEGORY=200 # Max files loaded per category for AI context AI_REDACT=true # Redact sensitive indicators before AI analysis AI_ALLOW_MODEL_PULL=false # Allow reconftw_ai to auto-pull missing model AI_STRICT=false # Fail AI analysis if one or more categories have no data

API & Advanced Web Checks

GRAPHQL_CHECK=true # Detect GraphQL endpoints and introspection GQLSPECTION=false # Run GQLSpection deep introspection on detected GraphQL endpoints (heavier) PARAM_DISCOVERY=true # Parameter discovery with arjun GRPC_SCAN=false # Attempt basic gRPC reflection on common ports LLM_PROBE=false # Probe discovered web/API endpoints for LLM services with julius LLM_PROBE_AUGUSTUS=false # Include augustus generator config in julius output

IPv6

IPV6_SCAN=true # Attempt IPv6 discovery/portscan where addresses exist

Wordlists / threads for new modules

ARJUN_THREADS=10

Data & Automation

ASSET_STORE=true # Append assets/findings to assets.jsonl EXPORT_FORMAT="" # Optional exporter at end of scan: json|html|csv|all REPORT_ONLY=false # Rebuild report artifacts from existing results (or use --report-only) QUICK_RESCAN=false # Skip heavy steps if no new subdomains/webs CHUNK_LIMIT=2000 # Split very large lists into chunks (urls, webs) HOTLIST_TOP=50 # Number of top risky assets to highlight

Performance

RESOLVER_IQ=false # Prefer fast/healthy resolvers (experimental) PERF_PROFILE="balanced" # low|balanced|max

Estimated durations for skipped heavy modules (seconds)

TIME_EST_NUCLEI=600 TIME_EST_FUZZ=900 TIME_EST_URLCHECKS=300 TIME_EST_JSCHECKS=300 TIME_EST_API=300 TIME_EST_GQL=180 TIME_EST_PARAM=240 TIME_EST_GRPC=120 TIME_EST_IIS=60

TERM COLORS

bred='\033[1;31m' bblue='\033[1;34m' bgreen='\033[1;32m' byellow='\033[1;33m' red='\033[0;31m' blue='\033[0;34m' green='\033[0;32m' cyan='\033[0;36m' yellow='\033[0;33m' reset='\033[0m'

root@kitploit:~
**Gardes-fous du résolveur DNS** :

- Les fichiers de résolveur manquants/vides échouent maintenant rapidement avant que le brute/résolution DNS ne commence.
- Les téléchargements de résolveur sont configurables avec `RESOLVER_DOWNLOAD_CONNECT_TIMEOUT`, `RESOLVER_DOWNLOAD_MAX_TIME`, `RESOLVER_DOWNLOAD_RETRY` et `RESOLVER_DOWNLOAD_RETRY_DELAY`.
- `DNS_BRUTE_TIMEOUT=0` et `DNS_RESOLVE_TIMEOUT=0` désactivent le timeout strict par défaut (recommandé pour de très grands ensembles de cibles). La progression du heartbeat continue de s'afficher toutes les `DNS_HEARTBEAT_INTERVAL_SECONDS`.```bash
DNS_BRUTE_TIMEOUT=4h
DNS_RESOLVE_TIMEOUT=6h
DNS_HEARTBEAT_INTERVAL_SECONDS=20

Détails complets : Voir le Guide de configuration.


🚀 Utilisation

reconFTW prend en charge plusieurs modes et options pour une reconnaissance flexible. Utilisez l'option -h pour afficher le menu d'aide.

Options de cible

Options de mode

Options générales

Exemples d'utilisation

  1. Reconnaissance complète sur une cible unique : ```bash ./reconftw.sh -d target.com -r
    root@kitploit:~
  2. Reconnaissance sur plusieurs cibles: ```bash ./reconftw.sh -l targets.txt -r -o /path/to/output/
    root@kitploit:~
  3. Reconnaissance approfondie (VPS recommandé) : ```bash ./reconftw.sh -d target.com -r --deep
    root@kitploit:~
  4. Mode parallèle (Plus rapide, nécessite plus de RAM): ```bash ./reconftw.sh -d target.com -r --parallel
    root@kitploit:~
  5. Mode séquentiel forcé: ```bash ./reconftw.sh -d target.com -r --no-parallel
    root@kitploit:~
  6. Reconnaissance multi-domaines: ```bash ./reconftw.sh -m company -l domains.txt -r
    root@kitploit:~
  7. Intégration d'Ax: ```bash ./reconftw.sh -d target.com -r -v
    root@kitploit:~
  8. Intégration Ax avec fleet override : ```bash ./reconftw.sh -d target.com -r -v 30
    root@kitploit:~
  9. Reconnaissance complète avec attaques (YOLO Mode): ```bash ./reconftw.sh -d target.com -a
    root@kitploit:~
  10. Afficher l'aide : ```bash ./reconftw.sh -h
root@kitploit:~
11. **Forcer le rafraîchissement du cache** :   ```bash
./reconftw.sh -d target.com -r --refresh-cache
  1. Exporter tous les artefacts du rapport : ```bash ./reconftw.sh -d target.com -r --export all
root@kitploit:~
13. **Surveillance continue (toutes les 30 minutes, 48 cycles)** :   ```bash
./reconftw.sh -d target.com -r --monitor --monitor-interval 30 --monitor-cycles 48
  1. Reconstruire uniquement les rapports (pas d'analyse): ```bash ./reconftw.sh -d target.com --report-only --export all
root@kitploit:~
**Guide complet** : Voir le [Guide d'utilisation](https://github.com/six2dez/reconftw/wiki/2.-Usage-Guide).

---

## ☁️ Support de l'Ax Framework (anciennement Axiom)

reconFTW s'intègre avec [Ax](https://github.com/attacksurge/ax) pour le scan distribué, réduisant le temps d'exécution en répartissant les tâches sur plusieurs instances cloud.

- **Configuration** : Sélectionnez `reconftw` comme provisionneur lors de la configuration d'Ax (`axiom-configure`).
- **Gestion des flottes** : Créez et détruisez automatiquement des flottes (`AXIOM_FLEET_LAUNCH`, `AXIOM_FLEET_SHUTDOWN`) ou utilisez une flotte existante.
- **Configuration** : Définissez la taille, la région et le nom de la flotte dans `reconftw.cfg` (`AXIOM_FLEET_COUNT`, `AXIOM_FLEET_REGIONS`, `AXIOM_FLEET_NAME`).

**Exemple** :```bash
./reconftw.sh -d target.com -r -v

Détails : Voir la documentation officielle d'Ax et le dépôt attacksurge/ax.


💻 Support Faraday

reconFTW s'intègre avec Faraday pour le reporting Web et la gestion des vulnérabilités.

  • Configuration : Installer Faraday, s'authentifier via faraday-cli et configurer l'espace de travail dans reconftw.cfg (FARADAY_WORKSPACE).
  • Utilisation : Activer avec FARADAY=true dans reconftw.cfg.

🧠 Intégration IA

reconFTW utilise l'IA pour générer des rapports détaillés à partir des résultats de scan avec l'outil reconftw_ai.

  • Modèle : Modèle d'IA configurable (ex. llama3:8b via AI_MODEL).
  • Types de rapports : Markdown ou texte brut (AI_REPORT_TYPE).
  • Profils : Executive, bref ou chasseur de bogues (AI_REPORT_PROFILE).
  • Sortie structurée : reconftw stocke un rapport lisible par machine dans ai_result/reconftw_analysis.json.
  • Contrôles de contexte : Limiter la taille d'entrée avec AI_MAX_CHARS_PER_FILE et AI_MAX_FILES_PER_CATEGORY.
  • Contrôles de sécurité : Activer/désactiver la rédaction et le mode strict avec AI_REDACT et AI_STRICT.

Exemple :```yaml AI_EXECUTABLE="python3" AI_MODEL="llama3:8b" AI_REPORT_TYPE="md" AI_REPORT_PROFILE="bughunter" AI_MAX_CHARS_PER_FILE=50000 AI_MAX_FILES_PER_CATEGORY=200 AI_REDACT=true AI_ALLOW_MODEL_PULL=false AI_STRICT=false

root@kitploit:~
---

## 🗂️ Gestion des données

Gérez les données de scan et les clés API de manière sécurisée en utilisant un dépôt privé.

Lorsque `ASSET_STORE=true`, reconFTW agrège les résultats clés dans `assets.jsonl` lors de chaque exécution, facilitant la synchronisation des seuls deltas exploitables vers votre dépôt privé.

### Makefile

Utilisez le `Makefile` fourni pour une gestion facile du dépôt (nécessite [GitHub CLI](https://cli.github.com/)).

1. **Amorçage** :   ```bash
   export PRIV_REPO="$HOME/reconftw-data"
   make bootstrap
  1. Synchroniser avec l'amont: ```bash make sync
    root@kitploit:~
  2. Télécharger les données: ```bash make upload
    root@kitploit:~
  3. Lint / Scripts de formatage : ```bash make lint # shellcheck for reconftw.sh, modules/*.sh & install.sh make fmt # shfmt with project defaults
    root@kitploit:~
  4. Exécuter les tests : ```bash make test # unit tests (bats-core) make test-all # unit + integration tests
    root@kitploit:~

Manuel

  1. Créez un dépôt privé sur GitHub/GitLab.
  2. Clonez et configurez : ```bash git clone https://github.com/yourusername/reconftw-data cd reconftw-data git commit --allow-empty -m "Initial commit" git remote add upstream https://github.com/six2dez/reconftw git fetch upstream git rebase upstream/main master
    root@kitploit:~
  3. Téléverser les modifications : ```bash git add . git commit -m "Data upload" git push origin master
    root@kitploit:~
  4. Mettre à jour l'outil: ```bash git fetch upstream git rebase upstream/main master
    root@kitploit:~

🧪 Tests

reconFTW utilise bats-core pour les tests automatisés.

Installer bats-core```bash

macOS

brew install bats-core

Debian/Ubuntu

apt install bats

From source

git clone https://github.com/bats-core/bats-core.git /tmp/bats sudo /tmp/bats/install.sh /usr/local

root@kitploit:~
### Exécution des tests```bash
# Unit tests only
make test

# Unit + integration tests
make test-all

# Via the runner script
./tests/run_tests.sh         # unit only
./tests/run_tests.sh --all   # unit + integration

Structure du répertoire de test```

tests/ ├── run_tests.sh # Test runner script ├── unit/ # Unit tests (fast, no network) │ ├── test_sanitize.bats │ ├── test_utils.bats │ └── test_validation.bats ├── integration/ # Integration tests (require installed tools) │ └── test_smoke.bats ├── security/ # Security tests (injection, etc.) │ └── test_injection.bats ├── mocks/ # Mock tools for offline testing └── fixtures/ # Shared test data files

root@kitploit:~
### Exécution des tests de sécurité```bash
# Test command injection prevention
make test-security

# Or directly
bats tests/security/

Rédaction de tests

Les tests utilisent le motif --source-only pour charger les fonctions sans exécuter le script principal :```bash #!/usr/bin/env bats

setup() { source ./reconftw.sh --source-only }

@test "sanitize_domain strips invalid chars" { result="$(sanitize_domain 'exam;ple.com')" [ "$result" = "example.com" ] }

root@kitploit:~
### Pipeline CI

Le workflow GitHub Actions (`.github/workflows/tests.yml`) s'exécute à chaque push et pull request :

1. **ShellCheck** — vérifie `reconftw.sh`, `modules/*.sh` et `install.sh`
2. **Tests unitaires** — exécute tous les fichiers `tests/unit/*.bats`
3. **Tests d'intégration** — installe reconFTW et valide la disponibilité des outils

---

## Mindmap/Workflow

![Mindmap](https://assets.kitploit.com/production/public/readmes/670/935e9af062e82113e5ca06f4b13e80f243430684e8ece2643e868f3d2afa1403.png)

---

## Vidéo d'exemple

![Video](https://raw.githubusercontent.com/six2dez/reconftw/HEAD/images/reconFTW.gif)

---

## 🤝 Comment contribuer

Consultez [CONTRIBUTING.md](https://github.com/six2dez/reconftw/blob/HEAD/CONTRIBUTING.md) pour le guide complet de contribution, incluant la configuration de développement, le style de code, les tests et le processus de PR.

Liens rapides :

- [Signaler un bug](https://github.com/six2dez/reconftw/issues/new/choose)
- [Soumettre une Pull Request](https://github.com/six2dez/reconftw/tree/dev) (cibler la branche `dev`)
- [Code de conduite](https://github.com/six2dez/reconftw/blob/HEAD/CODE_OF_CONDUCT.md)

---

## 🔒 Sécurité

Pour la politique de sécurité, la gestion des secrets et le signalement des vulnérabilités, consultez [SECURITY.md](https://github.com/six2dez/reconftw/blob/HEAD/SECURITY.md).

---

## ❓ Besoin d'aide ?

- **Wiki** : Explorez le [Wiki de reconFTW](https://github.com/six2dez/reconftw/wiki).
- **FAQ** : Consultez la [FAQ](https://github.com/six2dez/reconftw/wiki/7.-FAQs).
- **Communauté** : Rejoignez le [serveur Discord](https://discord.gg/R5DdXVEdTy) ou le [groupe Telegram](https://t.me/joinchat/TO_R8NYFhhbmI5co).

---

## 💖 Soutenir ce projet

Soutenez le développement de reconFTW via :

- **Buy Me a Coffee** : [buymeacoffee.com/six2dez](https://www.buymeacoffee.com/six2dez)

[<img src="https://assets.kitploit.com/production/public/readmes/670/1177bf77de4c288d45b816dd405a8b5027116f0b1893449986cf200c765707ad.webp">](https://www.buymeacoffee.com/six2dez)

- **Parrainage DigitalOcean** : [Lien de parrainage](https://www.digitalocean.com/?refcode=f362a6e193a1&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge)

<a href="https://www.digitalocean.com/?refcode=f362a6e193a1&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%201.svg" alt="DigitalOcean Referral Badge" /></a>

- **Sponsorisation GitHub** : [github.com/sponsors/six2dez](https://github.com/sponsors/six2dez)

---

## 🙏 Remerciements

Remerciements particuliers aux services suivants pour leur soutien à reconFTW :

- [C99](https://api.c99.nl/)
- [CIRCL](https://www.circl.lu/)
- [NetworksDB](https://networksdb.io/)
- [ipinfo](https://ipinfo.io/)
- [hackertarget](https://hackertarget.com/)
- [Censys](https://censys.io/)
- [Fofa](https://fofa.info/)
- [intelx](https://intelx.io/)
- [Whoxy](https://www.whoxy.com/)

---

## 📝 Journal des modifications

Consultez [CHANGELOG.md](https://github.com/six2dez/reconftw/blob/HEAD/CHANGELOG.md) pour une liste détaillée des changements dans chaque version.

---

## 🛠️ Développement

### Structure du projet```
reconftw/
├── reconftw.sh          # Main entry point (~500 lines)
├── reconftw.cfg         # Configuration file
├── modules/             # Phase modules
│   ├── utils.sh         # Utilities, sanitization, caching, circuit breaker
│   ├── core.sh          # Framework core, logging, lifecycle, health check
│   ├── modes.sh         # Scan modes, argument parsing
│   ├── subdomains.sh    # Subdomain enumeration
│   ├── web.sh           # Web analysis, nuclei scans
│   ├── vulns.sh         # Vulnerability scanning
│   ├── osint.sh         # OSINT functions
│   └── axiom.sh         # Ax/Axiom fleet helpers
├── lib/                 # Pure utility libraries
│   └── validation.sh    # Input validation functions
├── tests/               # Test suite (100+ tests)
│   ├── unit/            # Unit tests (bats)
│   ├── integration/     # Integration/smoke tests
│   └── security/        # Injection prevention tests
├── docs/                # Documentation
│   └── ARCHITECTURE.md  # Detailed architecture guide
└── secrets.cfg.example  # Template for API keys

Exécution des tests```bash

make test # Unit tests make test-security # Security tests make test-all # All tests make lint # Shellcheck make lint-fix # Auto-fix with shfmt

root@kitploit:~
### Flux de développement```bash
# 1. Source without executing (for testing)
source ./reconftw.sh --source-only

# 2. Test individual functions
sanitize_domain "test;domain.com"

# 3. Run health check
./reconftw.sh --health-check

# 4. Dry run to preview
./reconftw.sh -d example.com -r --dry-run

Contribuer

Consultez CONTRIBUTING.md pour les directives de développement et docs/ARCHITECTURE.md pour les détails techniques.


📜 Licence

reconFTW est sous licence MIT License.


⭐ Historique des étoiles

Graphique de l'historique des étoiles

Télécharger l’outil
  • Énumération de stockage cloud : examine les buckets des principaux fournisseurs pour détecter les expositions (cloud_enum).
  • Domaines usurpables : vérifie les domaines vulnérables à l'usurpation (spoofcheck).
  • dsieve
  • Reprise de sous-domaine : détecte les sous-domaines vulnérables (nuclei et dnstake).
  • Transfert de zone DNS : vérifie les transferts de zone DNS mal configurés (dig).
  • Buckets cloud : identifie les buckets cloud mal configurés et les actifs de stockage exposés (S3Scanner et cloud_enum).
  • Note sur la couverture cloud : les vérifications des buckets cloud n'incluent plus la couverture Alibaba OSS après le remplacement de CloudHunter par cloud_enum.
  • Migration des sorties cloud : les artefacts de buckets cloudhunter_* hérités ont été supprimés ; utilisez subdomains/cloud_enum_buckets_trufflehog.txt à la place.
  • Recherche IP inversée : découvre les sous-domaines via des plages IP (hakip2host).
  • Détection GraphQL : découvre les points de terminaison GraphQL avec nuclei et effectue éventuellement une introspection approfondie (GQLSpection).
  • Découverte de paramètres : force brute des paramètres cachés sur les points de terminaison (arjun).
  • Audit WebSocket : valide les poignées de main de mise à niveau et la gestion d'origine sur les points de terminaison ws:// et wss://.
  • Réflexion gRPC : sonde les ports gRPC courants pour détecter une réflexion de service exposée (grpcurl).
  • Empreinte de service LLM (optionnel) : sonde les points de terminaison web/API découverts pour les services LLM exposés avec julius.
  • Fuzzing : effectue du fuzzing de répertoires et de paramètres (ffuf).
  • Tri par extension de fichier : organise les URL par extensions de fichier.
  • Génération de wordlists : crée des wordlists personnalisées pour le fuzzing.
  • Dictionnaire de mots de passe : génère des dictionnaires de mots de passe à partir de contenu en direct (cewler).
  • Scan de noms courts IIS : détecte les vulnérabilités de noms courts IIS (shortscan).
  • toxicache
  • Contournement 4XX : tente de contourner les réponses 4XX (nomore403).
  • Fuzzing de paramètres : fuzz les paramètres d'URL pour les vulnérabilités (nuclei).
  • Stockage d’actifs : Ajoute les découvertes à assets.jsonl pour l’automatisation en aval lorsque ASSET_STORE est activé.
  • Rapport consolidé : Génère automatiquement report/report.json et report/index.html à la fin de l’analyse.
  • Support ARM : Compatible avec Raspberry Pi et architectures ARM (y compris MacOS MX).
  • Vérification de santé : Vérification de santé système intégrée via --health-check (également utilisée par Docker HEALTHCHECK).
  • Mode incrémental : Analyse uniquement les nouvelles découvertes depuis la dernière exécution (--incremental).
  • Limitation adaptative du débit : Ralentit automatiquement en cas d’erreurs 429/503 (--adaptive-rate).
  • Journalisation structurée : Sortie de journal JSON optionnelle pour une analyse avancée (STRUCTURED_LOGGING).
  • Assainissement des entrées : Toute entrée utilisateur est assainie pour empêcher les injections de commandes.
  • Mode simulation : Prévisualise ce qui serait exécuté sans lancer les commandes (--dry-run).
  • Mode parallèle : Exécute les fonctions indépendantes en parallèle pour des analyses plus rapides (--parallel, désactivable avec --no-parallel).
  • Architecture modulaire : Base de code divisée en 8 modules ciblés pour la maintenabilité.
  • Gestion des secrets : Variables d’environnement, secrets.cfg et secrets d’exécution Docker (voir SECURITY.md).
  • Coupe-circuit : Ignore automatiquement les outils après des échecs répétés pour éviter les blocages d’analyse.
  • Système de points de contrôle : Reprend les analyses interrompues depuis la dernière phase réussie.
  • Support natif macOS : Compatibilité totale avec macOS (coreutils BSD, Homebrew Bash 4+).
  • Analyse incrémentielle : Analysez uniquement les nouvelles découvertes depuis la dernière exécution (INCREMENTAL_MODE).
  • Notifications : Configurez les notifications Slack, Discord ou Telegram (NOTIFY_CONFIG).
  • Ax (anciennement Axiom) : Configurez les chemins de scan distribué et de résolveur (AXIOM_FLEET_NAME, AXIOM_FLEET_COUNT, AXIOM_RESOLVERS_PATH).
  • Rapports IA : Configurez le modèle/le profil/le format et les contrôles de contexte (AI_MODEL, AI_REPORT_PROFILE, AI_REPORT_TYPE, AI_MAX_CHARS_PER_FILE).
  • Vérifications Web avancées : Activez/désactivez l'introspection GraphQL, la découverte de paramètres, les tests WebSocket, le sondage gRPC et l'analyse IPv6.
  • Automatisation et données : Contrôlez les heuristiques de re-scan rapide, la journalisation des actifs, les tailles de fragments, les listes de suivi et le traçage de débogage (QUICK_RESCAN, ASSET_STORE, CHUNK_LIMIT, HOTLIST_TOP, SHOW_COMMANDS).
  • Disque et journalisation : Vérification de l'espace disque avant exécution (MIN_DISK_SPACE_GB), rotation des journaux (MAX_LOG_FILES, MAX_LOG_AGE_DAYS), journalisation JSON structurée (STRUCTURED_LOGGING).
  • Mise en cache : Configurez l'expiration du cache pour les listes de mots et les résolveurs (CACHE_MAX_AGE_DAYS).
  • Sécurité des résolveurs DNS : Les fichiers de résolveurs manquants échouent rapidement, les téléchargements de résolveurs utilisent des paramètres configurables de tentatives et de timeout (RESOLVER_DOWNLOAD_*), et le timeout DNS brute/résolution est désactivé par défaut (DNS_*_TIMEOUT=0) avec une progression par battement de cœur.
  • Secrets : Utilisez secrets.cfg pour les surcharges locales ou les variables d'environnement pour CI/Docker (voir SECURITY.md).
  • FlagDescription
    -dDomaine cible unique (ex. example.com)
    -lFichier contenant une liste de domaines cibles (un par ligne)
    -mCible multi-domaines (ex. nom d'entreprise pour les domaines associés)
    -xExclure les sous-domaines (liste hors périmètre)
    -iInclure les sous-domaines (liste dans le périmètre)
    FlagDescription
    -rRecon : Reconnaissance complète sans attaques actives
    -sSubdomains : Énumération des sous-domaines, sondage web et prises de contrôle
    -pPassive : Reconnaissance passive uniquement
    -aAll : Reconnaissance complète avec vérifications de vulnérabilités actives
    -wWeb : Vérifications de vulnérabilités sur des cibles web spécifiques
    -nOSINT : Scan OSINT sans énumération de sous-domaines ni attaques
    -zZen : Reconnaissance légère avec vérifications de base et quelques vulnérabilités
    -cCustom : Exécuter une fonction spécifique (nécessite des arguments supplémentaires)
    -hAfficher le menu d'aide
    FlagDescription
    --deepActiver l'analyse approfondie (plus lent, VPS recommandé)
    -fChemin du fichier de configuration personnalisé
    -oRépertoire de sortie pour les résultats
    -vActiver l'analyse distribuée Ax
    --vps-countRemplacer le nombre d'instances de la flotte Ax pour cette exécution
    -qDéfinir la limite de débit (requêtes par seconde)
    -yActive l'analyse des résultats par IA
    --check-toolsQuitter si les outils requis sont manquants
    --quick-rescanIgnorer les modules lourds lorsqu'aucun nouveau sous-domaine/site web n'est trouvé
    --health-checkExécuter une vérification de l'état du système et quitter
    --incrementalAnalyser uniquement les nouvelles découvertes depuis la dernière exécution
    --adaptive-rateAjuster automatiquement les limites de débit en cas d'erreurs (429/503)
    --dry-runAfficher ce qui serait exécuté sans lancer les commandes
    --parallelExécuter les fonctions indépendantes en parallèle (plus rapide, plus de RAM)
    --no-parallelForcer l'exécution séquentielle même si le parallèle est activé
    --monitorMode de surveillance continue (cible unique ; -w prend en charge -l)
    --monitor-intervalMinutes entre les cycles de surveillance
    --monitor-cyclesArrêter après N cycles (0 = infini)
    --report-onlyReconstruire les artefacts de rapport sans analyse
    --refresh-cacheForcer l'actualisation des résolveurs/listes de mots en cache
    --exportExporter les artefacts : json, html, csv ou all