Skip to content

Steph-ux/pentest-automation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎯 Pentest Automation Framework v2.2

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.


✨ Fonctionnalités Clés

  • Workflow par Phases Intelligent : 9 phases structurées avec JavaScript Intelligence comme pivot central.
  • Parallélisation Massive : Utilise GNU Parallel et ThreadPoolExecutor pour 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.sh amélioré qui vérifie, installe et configure l'environnement.

🚀 Installation Rapide

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.sh

Le script va :

  1. Vérifier tous les outils nécessaires (Go, jq, parallel, etc.).
  2. Vous proposer de les installer automatiquement s'ils sont manquants.
  3. Vous demander si vous souhaitez créer un environnement virtuel Python (recommandé).
  4. Installer les dépendances Python.
  5. Créer votre fichier de configuration .env personnel.
  6. Vous afficher les instructions finales pour commencer.

📖 Usage

Une fois l'installation terminée et l'environnement virtuel activé (source venv/bin/activate), vous pouvez lancer les scans.

Scan de Domaine Complet (Recommandé)

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 --quick

Scan de Ports Approfondi

Par 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-scan

Lancer un Module Spécifique

Vous 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

Nouvelles Options de Performance

# 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,4

Afficher l'Aide

Pour voir toutes les options disponibles :

python3 pentest_automation.py --help

📂 Structure des Résultats

Les 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

⚙️ Configuration et Optimisation

Constantes de Performance

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/seconde

Cache Robuste

Le 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

Monitoring de Performance

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 JSON
  • performance_summary.txt : Résumé lisible par humain

Gestion d'Erreurs

Exceptions personnalisées pour une meilleure traçabilité :

  • PentestAutomationError : Erreur de base
  • ConfigurationError : Problèmes de configuration
  • ModuleNotAvailableError : Dépendances manquantes
  • NetworkError : Problèmes réseau
  • ParsingError : Erreurs d'analyse de données

⚠️ Avertissement Légal

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors