Framework d'automatisation avancé pour les tests d'intrusion et le bug bounty, intégrant plus de 25 outils de sécurité avec des optimisations de performance et une architecture robuste.
- Workflow par Phases Intelligent : 9 phases structurées avec JavaScript Intelligence comme pivot central.
- Parallélisation Massive : Utilise
GNU ParalleletThreadPoolExecutorpour des scans ultra-rapides. - Système de Cache Robuste : Cache thread-safe avec TTL et gestion automatique de la mémoire.
- Architecture Exception-Safe : Exceptions personnalisées et gestion d'erreurs complète.
- Modules de Scan Avancés : Scanners dédiés pour l'OWASP Top 10, les API, SSRF, XSS, et la prise de contrôle de sous-domaines.
- Validation et Résilience : Utilise des résolveurs DNS publics et des logiques de fallback pour ne jamais se bloquer.
- Sécurité Intégrée : Protection contre les injections de commandes, path traversal, et vérifications de modules.
- Installation Assistée : Script
check_tools.shamélioré qui vérifie, installe et configure l'environnement.
Ce projet est conçu pour être installé et configuré en une seule commande.
# 1. Clonez le repository
git clone https://github.com/Steph-ux/pentest-automation.git
cd pentest-automation
# 2. Lancez l'assistant d'installation
chmod +x check_tools.sh
./check_tools.shLe script va :
- Vérifier tous les outils nécessaires (Go,
jq,parallel, etc.). - Vous proposer de les installer automatiquement s'ils sont manquants.
- Vous demander si vous souhaitez créer un environnement virtuel Python (recommandé).
- Installer les dépendances Python.
- Créer votre fichier de configuration
.envpersonnel. - Vous afficher les instructions finales pour commencer.
Une fois l'installation terminée et l'environnement virtuel activé (source venv/bin/activate), vous pouvez lancer les scans.
Lance les phases de découverte de sous-domaines, de ports, de services web, puis de vulnérabilités avec toutes les optimisations activées.
# Scan complet avec JavaScript Intelligence et OWASP Top 10
python3 pentest_automation.py -t exemple.com -p 1,2,3,3.5,4,5 --owasp-scan
# Scan rapide optimisé (phases principales seulement)
python3 pentest_automation.py -t exemple.com --quickPar défaut, le scan de ports est rapide (top 1000). Pour un scan complet des 65,535 ports, utilisez le drapeau --full-port-scan.
# Scan complet des ports sur la cible
python3 pentest_automation.py -t exemple.com -p 1,2 --full-port-scanVous pouvez lancer un module de scan unique sans passer par toutes les phases.
# Lancer uniquement le scanner OWASP sur une cible
python3 pentest_automation.py -t testphp.vulnweb.com --owasp-scan
# Lancer uniquement le fuzzer d'API avancé sur une cible
python3 pentest_automation.py -t jsonplaceholder.typicode.com --api-fuzz
# Lancer l'intelligence JavaScript avec traitement parallèle (Phase 3.5)
python3 pentest_automation.py -t exemple.com -p 3.5
# Scan complet avec toutes les optimisations activées
python3 pentest_automation.py -t exemple.com -p 1,2,3,3.5,4,5
# Scan avec modules de sécurité avancés (SSRF, XSS, Credential Stuffing)
python3 pentest_automation.py -t exemple.com --owasp-scan --credential-stuffing# Scan avec parallélisation maximale (threads augmentés)
python3 pentest_automation.py -t exemple.com -T 25 --aggressive
# Scan avec cache optimisé et timeouts ajustés
python3 pentest_automation.py -t exemple.com --quick --verbose
# Scan IP direct (saute la phase de sous-domaines)
python3 pentest_automation.py -t 192.168.1.1 --ip-mode -p 2,3,4Pour voir toutes les options disponibles :
python3 pentest_automation.py --helpLes résultats de chaque scan sont sauvegardés dans un dossier unique dans results/ avec une organisation optimisée.
results/
└── exemple.com/
└── 20251111_120000/
├── subdomains/ # Sous-domaines découverts
│ ├── all_subdomains.txt
│ ├── valid_subdomains.txt
│ └── resolved_ips.txt
├── ports/ # Rapports de scan de ports
│ ├── rustscan_results.txt
│ └── nmap_services.xml
├── urls/ # URLs et endpoints découverts
│ ├── httpx_results.txt
│ ├── all_urls.txt
│ └── gf_patterns/
├── vulnerabilities/ # Résultats de scans de vulnérabilités
│ ├── nuclei_results.json
│ ├── owasp_findings.json
│ ├── ssrf_results.txt
│ ├── xss_results.txt
│ └── javascript_analysis/
├── javascript_analysis/ # Analyse JavaScript avancée
│ ├── js_analysis_report.txt
│ ├── all_urls.json
│ ├── all_secrets.json
│ └── discovered_paths.txt
├── reports/ # Rapports finaux
│ ├── pentest_report.html
│ └── pentest_report.json
├── performance_report.json # Métriques de performance détaillées
├── performance_summary.txt # Résumé de performance
├── scan.log # Log complet avec timestamps
└── checkpoint.json # Point de reprise pour scans longs
Le framework utilise des constantes centralisées pour optimiser les performances :
# Limites et parallélisation
MAX_THREADS_DEFAULT = 25 # Threads concurrents
MAX_CONCURRENT_SCANS = 5 # Scans parallèles Phase 3.5
MAX_URLS_SAMPLE = 10 # Échantillonnage URLs
# Timeouts optimisés
TIMEOUT_ARJUN = 20 # Parameter discovery
TIMEOUT_FFUF = 10 # Directory bruteforce
TIMEOUT_NUCLEI = 600 # Vulnerability scanning
TIMEOUT_DOMAIN_JS = 300 # Par domaine JavaScript
# Taux limites
RATE_LIMIT_KATANA = 200 # Requests/seconde
RATE_LIMIT_NUCLEI = 1000 # Requests/seconde
RATE_LIMIT_FFUF = 500 # Requests/secondeLe système de cache intégré offre :
- Thread-Safety : Accès concurrent sécurisé
- TTL Automatique : Expiration des entrées anciennes
- Gestion Mémoire : Éviction LRU automatique
- Taille Configurable : Adaptable aux besoins
Le système de monitoring intégré fournit des métriques détaillées :
- Temps par Phase : Durée et débit de chaque phase
- Métriques Système : Utilisation CPU et mémoire en temps réel
- Compteurs de Requêtes : Nombre total de requêtes et taux d'erreur
- Rapports Détaillés : JSON et résumé texte sauvegardés automatiquement
Les rapports de performance sont générés dans :
performance_report.json: Métriques complètes au format JSONperformance_summary.txt: Résumé lisible par humain
Exceptions personnalisées pour une meilleure traçabilité :
PentestAutomationError: Erreur de baseConfigurationError: Problèmes de configurationModuleNotAvailableError: Dépendances manquantesNetworkError: Problèmes réseauParsingError: Erreurs d'analyse de données
Cet outil est destiné à un usage légal et éthique uniquement, dans le cadre de tests d'intrusion autorisés (pentest, bug bounty, audit de vos propres systèmes).
L'utilisation de cet outil sur des systèmes sans autorisation préalable est illégale. Les auteurs ne sauraient être tenus responsables d'une utilisation malveillante.