Automatisation & mise à l'échelle

Laissez les outils faire le travail répétitif pendant que vous vous concentrez sur la recherche de bugs

Automatisation de reconSurveillance continueScripting

Ce que vous allez découvrir

🎯 Pourquoi c'est important

Les chasseurs les plus performants travaillent efficacement, pas de manière exhaustive. La recon automatisée fonctionne pendant que vous dormez. La surveillance continue attrape les nouveaux assets avant que les concurrents ne les voient. Le scripting gère les tests répétitifs sur des centaines d'endpoints. L'automatisation vous permet de mettre à l'échelle vos efforts au-delà de ce que les tests manuels permettent.

🔍 Ce que vous allez apprendre

  • Pipelines de reconnaissance automatisés (et comment chaque partie fonctionne)
  • Surveillance continue des sous-domaines pour attraper les nouveaux assets en premier
  • Systèmes de notification qui vous alertent des découvertes
  • Concepts fondamentaux de scripting pour les tests
  • Nuclei pour le scan de vulnérabilités à grande échelle
  • Pratiques d'automatisation responsables

🚀 Votre première victoire

À la fin de ce chapitre, vous aurez un pipeline de recon automatisé qui découvre des assets pendant que vous vous concentrez sur les tests réels - et vous comprendrez chaque ligne de code.

🔧 Votre premier pipeline automatisé

Chaînez des outils ensemble pour la découverte automatisée. Créez ce script et exécutez-le :

#!/bin/bash
# recon.sh - Pipeline de reconnaissance automatisé
# Utilisation : ./recon.sh target.com

# --- CE QUE FAIT CE SCRIPT ---
# 1. Prend un domaine en entrée
# 2. Trouve tous les sous-domaines
# 3. Vérifie lesquels sont actifs
# 4. Récupère les URLs historiques
# 5. Sauvegarde tout dans des fichiers organisés

# --- LE CODE ---

TARGET=$1  # $1 signifie "premier argument passé au script"

# Vérification de sécurité : S'assurer qu'une cible a été fournie
if [ -z "$TARGET" ]; then
    echo "Utilisation : ./recon.sh target.com"
    exit 1  # Quitter avec un code d'erreur
fi

# Créer le répertoire de sortie pour cette cible
OUTPUT_DIR="./recon/$TARGET"
mkdir -p $OUTPUT_DIR  # -p crée les répertoires parents si nécessaire

echo "[*] Démarrage de la recon pour $TARGET"
echo "[*] Les résultats seront sauvegardés dans $OUTPUT_DIR"

# Étape 1 : Énumération des sous-domaines
echo "[+] Recherche des sous-domaines..."
subfinder -d $TARGET -silent -o $OUTPUT_DIR/subdomains.txt
SUBDOMAIN_COUNT=$(wc -l < $OUTPUT_DIR/subdomains.txt)
echo "    Trouvé $SUBDOMAIN_COUNT sous-domaines"

# Étape 2 : Sonder les hôtes actifs
echo "[+] Vérification des hôtes actifs..."
cat $OUTPUT_DIR/subdomains.txt | httpx -silent -o $OUTPUT_DIR/live_hosts.txt
LIVE_COUNT=$(wc -l < $OUTPUT_DIR/live_hosts.txt)
echo "    Trouvé $LIVE_COUNT hôtes actifs"

# Étape 3 : Récupérer les URLs historiques de Wayback Machine
echo "[+] Récupération des URLs historiques..."
echo $TARGET | waybackurls > $OUTPUT_DIR/wayback_urls.txt
WAYBACK_COUNT=$(wc -l < $OUTPUT_DIR/wayback_urls.txt)
echo "    Trouvé $WAYBACK_COUNT URLs historiques"

# Étape 4 : Résumé
echo ""
echo "=== RECON TERMINÉE ==="
echo "Cible :        $TARGET"
echo "Sous-domaines: $SUBDOMAIN_COUNT"
echo "Hôtes actifs:  $LIVE_COUNT"
echo "Wayback:       $WAYBACK_COUNT URLs"
echo "Sortie:        $OUTPUT_DIR/"

Pour utiliser ce script :

# 1. Sauvegardez le script comme recon.sh
# 2. Rendez-le exécutable :
chmod +x recon.sh

# 3. Exécutez-le :
./recon.sh target.com

# Les résultats apparaissent dans ./recon/target.com/

Compétences que vous maîtriserez

Scripting shell

Écrivez des scripts bash qui automatisent les tâches répétitives

Conception de pipeline

Chaînez des outils pour des workflows efficaces

Surveillance continue

Configurez des scans automatisés qui s'exécutent selon un planning

Intégration d'alertes

Recevez des notifications quand l'automatisation trouve quelque chose

Comprendre l'automatisation dans le bug bounty

"L'automatisation gère la quantité. Vous gérez la qualité."

Pourquoi l'automatisation vous donne un avantage

Considérez ce scénario : Une entreprise ajoute un nouveau sous-domaine à 2h du matin. Un chasseur avec surveillance continue le capte à 2h05 et commence à tester. Un chasseur sans automatisation pourrait ne pas le découvrir avant des jours - d'ici là, d'autres chasseurs ont déjà trouvé les bugs faciles.

Avantages de l'automatisation :

  • Vitesse : Soyez le premier à tester les nouveaux assets
  • Couverture : Testez des centaines de sous-domaines pendant que vous dormez
  • Cohérence : N'oubliez jamais de vérifier quelque chose
  • Gain de temps : Passez du temps à tester, pas à exécuter des commandes répétitives

Quoi automatiser vs quoi faire manuellement

Automatisez ceci (répétitif, scalable) :

  • Énumération et surveillance des sous-domaines
  • Détection des hôtes actifs
  • Collection de captures d'écran
  • Fingerprinting technologique
  • Scan de vulnérabilités connues (templates Nuclei)
  • Collection d'URLs historiques

Gardez manuel (nécessite du jugement humain) :

  • Tests de logique métier - l'automatisation ne peut pas comprendre le but de l'application
  • Flux d'authentification complexes - nécessitent une compréhension de la gestion de session
  • Vulnérabilités chaînées - nécessitent une pensée créative pour connecter les bugs
  • Rédaction de rapports - les rapports de qualité nécessitent une explication humaine
  • Évaluation d'impact - déterminer les conséquences réelles

Techniques d'automatisation

Surveillance continue des sous-domaines

Ce script s'exécute quotidiennement, compare les sous-domaines d'aujourd'hui avec ceux d'hier et vous alerte des nouvelles découvertes :

#!/bin/bash
# monitor.sh - Alerter sur les nouveaux sous-domaines
# Exécuter quotidiennement via cron job

TARGET=$1
DATA_DIR="./monitor/$TARGET"
mkdir -p $DATA_DIR

# Chemins des fichiers
OLD_SUBS="$DATA_DIR/subs_previous.txt"
NEW_SUBS="$DATA_DIR/subs_current.txt"
DIFF_FILE="$DATA_DIR/subs_new.txt"

# Obtenir les sous-domaines actuels
echo "[*] Scan de $TARGET pour les sous-domaines..."
subfinder -d $TARGET -silent -o $NEW_SUBS

# Première exécution ? Sauvegarder la baseline
if [ ! -f "$OLD_SUBS" ]; then
    cp $NEW_SUBS $OLD_SUBS
    echo "[*] Première exécution - baseline sauvegardée"
    exit 0
fi

# Comparer : Trouver les sous-domaines dans NEW qui ne sont pas dans OLD
# comm -13 montre les lignes uniques au fichier 2 (nouveaux sous-domaines)
comm -13 <(sort $OLD_SUBS) <(sort $NEW_SUBS) > $DIFF_FILE

# Vérifier si on a trouvé quelque chose de nouveau
if [ -s "$DIFF_FILE" ]; then  # -s vérifie si le fichier a du contenu
    NEW_COUNT=$(wc -l < $DIFF_FILE)
    echo "[!] Trouvé $NEW_COUNT NOUVEAUX sous-domaines !"
    echo ""
    cat $DIFF_FILE
    echo ""

    # Optionnel : Envoyer une notification (décommentez et configurez)
    # notify_discord "Nouveaux sous-domaines pour $TARGET : $(cat $DIFF_FILE)"
else
    echo "[*] Aucun nouveau sous-domaine trouvé"
fi

# Mettre à jour la baseline pour la prochaine exécution
cp $NEW_SUBS $OLD_SUBS

# --- POUR EXÉCUTER QUOTIDIENNEMENT ---
# Ajouter à crontab (exécuter : crontab -e)
# 0 6 * * * /chemin/vers/monitor.sh target.com >> /chemin/vers/monitor.log 2>&1
#
# Ceci s'exécute à 6h du matin chaque jour
# Format cron : minute heure jour mois jour_semaine commande

Scan de vulnérabilités avec Nuclei

Nuclei utilise des templates pour scanner les vulnérabilités connues. C'est comme avoir des milliers de vérifications de sécurité automatisées :

# INSTALLATION
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Mettre à jour les templates (exécuter régulièrement - nouvelles vulnérabilités ajoutées souvent)
nuclei -update-templates
# Ce que ça fait : Télécharge les derniers templates de détection de vulnérabilités
# Les templates couvrent : CVEs, misconfigs, panneaux exposés, takeovers, etc.

# ─────────────────────────────────────────────────────────

# EXEMPLES DE SCAN

# Scanner tous les hôtes actifs avec tous les templates
nuclei -l live_hosts.txt -o all_findings.txt
# Attention : Cela peut prendre des heures sur de grandes listes. Commencez ciblé.

# Scanner uniquement les subdomain takeovers
nuclei -l live_hosts.txt -t takeovers/ -o takeovers.txt
# Ce que ça fait : Vérifie les takeovers GitHub Pages, Heroku, S3, etc.
# Scan rapide, découvertes à haute valeur

# Scanner les panneaux admin exposés
nuclei -l live_hosts.txt -t exposed-panels/ -o panels.txt
# Ce que ça fait : Trouve les pages de connexion, interfaces admin, tableaux de bord
# Bon pour trouver les panneaux admin oubliés

# Scanner uniquement les sévérités critiques et élevées
nuclei -l live_hosts.txt -severity critical,high -o critical_findings.txt
# Utilisez quand vous voulez vous concentrer sur les problèmes impactants

# Scanner des CVEs spécifiques
nuclei -l live_hosts.txt -t cves/2024/ -o cve_findings.txt
# Teste les vulnérabilités connues de 2024

# ─────────────────────────────────────────────────────────

# INTERPRÉTER LES RÉSULTATS

# Format de sortie Nuclei :
# [template-id] [severity] [protocol] [matched-url] [extracted-info]
#
# Exemple :
# [git-config-exposure] [medium] [http] [https://target.com/.git/config]
#
# Cela vous dit :
# - Ce qui a été trouvé (le template git-config-exposure a matché)
# - Sévérité (medium)
# - Où (https://target.com/.git/config)
#
# IMPORTANT : Nuclei trouve des problèmes POTENTIELS
# Vérifiez toujours les découvertes manuellement avant de signaler

Intégration de notifications

Recevez des alertes quand l'automatisation trouve quelque chose d'intéressant :

# Notification Webhook Discord
# 1. Créer un webhook : Paramètres serveur → Intégrations → Webhooks → Nouveau Webhook
# 2. Copier l'URL du webhook

notify_discord() {
    local MESSAGE="$1"
    local WEBHOOK_URL="https://discord.com/api/webhooks/VOTRE_WEBHOOK_ID/VOTRE_TOKEN"

    # Envoyer une requête POST à Discord
    curl -s -X POST "$WEBHOOK_URL" \
        -H "Content-Type: application/json" \
        -d "{\"content\": \"$MESSAGE\"}"
}

# Utilisation dans vos scripts :
if [ -s "$DIFF_FILE" ]; then
    notify_discord "🔔 Nouveaux sous-domaines trouvés pour $TARGET : $(cat $DIFF_FILE | tr '\n' ' ')"
fi

# ─────────────────────────────────────────────────────────

# Webhook Slack (approche similaire)
notify_slack() {
    local MESSAGE="$1"
    local WEBHOOK_URL="https://hooks.slack.com/services/VOTRE/SLACK/WEBHOOK"

    curl -s -X POST "$WEBHOOK_URL" \
        -H "Content-Type: application/json" \
        -d "{\"text\": \"$MESSAGE\"}"
}

# ─────────────────────────────────────────────────────────

# Notification Bot Telegram
notify_telegram() {
    local MESSAGE="$1"
    local BOT_TOKEN="VOTRE_TOKEN_BOT"
    local CHAT_ID="VOTRE_CHAT_ID"

    curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
        -d "chat_id=${CHAT_ID}" \
        -d "text=${MESSAGE}"
}

# Astuce : Gardez les URLs de webhook dans un fichier de config séparé, pas dans les scripts
# source ~/.config/notify_config.sh

Histoires de succès d'automatisation

🏆 Premier sur un nouveau sous-domaine

Le script de surveillance d'un chasseur a détecté un nouveau sous-domaine (staging-api.target.com) à 3h du matin. À 3h15, les scans Nuclei automatisés ont trouvé le mode debug activé. À 4h, le chasseur avait écrit et soumis un rapport pour des credentials de base de données exposés. 5000$ de récompense - tout cela parce que l'automatisation tournait pendant qu'il dormait.

Leçon : Surveillance continue + scan automatisé = avantage de premier arrivé sur les nouveaux assets.

🏆 Mise à l'échelle sur 50 programmes

Un chasseur à temps partiel ne pouvait pas concurrencer les chercheurs à temps plein manuellement. Il a construit un pipeline qui surveillait 50 programmes, exécutait la recon chaque nuit et alertait sur les nouveaux sous-domaines ou découvertes Nuclei. En 6 mois, il a gagné plus de 30000$ - tout cela grâce à des découvertes automatisées qu'il vérifiait manuellement et signalait.

Leçon : L'automatisation vous permet de surveiller des programmes à grande échelle. Vous devenez votre propre équipe de sécurité.

Pratiques d'automatisation responsables

⚠️ Règles pour les tests automatisés

1. Respectez les limites de débit. Ne submergez pas les cibles de requêtes. Utilisez des nombres de threads raisonnables (10-50, pas 1000). Ajoutez des délais si nécessaire. Se faire bloquer n'aide personne.

2. Vérifiez les politiques des programmes. Certains programmes interdisent totalement le scan automatisé. D'autres ont des règles spécifiques sur l'intensité des scans. Lisez avant d'exécuter.

3. Ne scannez pas hors scope. Assurez-vous que votre automatisation ne touche que les assets dans le scope. Un wildcard (*.target.com) ne signifie pas que vous pouvez scanner leurs fournisseurs.

4. Vérifiez avant de signaler. Les découvertes Nuclei sont des problèmes potentiels, pas des vulnérabilités confirmées. Vérifiez toujours manuellement que le problème existe et est exploitable avant de soumettre un rapport.

Questions fréquemment posées

Dois-je savoir programmer pour automatiser ?

Le scripting bash fondamental suffit pour commencer - les exemples de ce chapitre fonctionnent tels quels. Vous pouvez copier, modifier et combiner ces scripts sans connaissance approfondie en programmation. Au fur et à mesure que vous progressez, apprendre Python ouvre plus de possibilités pour les outils personnalisés. Commencez avec bash, apprenez en modifiant des scripts existants et évoluez à partir de là.

Où dois-je exécuter mon automatisation ?

VPS (recommandé) : Un serveur à 5-10$/mois de DigitalOcean, Linode ou Vultr fonctionne 24/7, a une bande passante stable et garde votre IP personnelle séparée des tests. Idéal pour la surveillance continue.

Machine locale : Bien pour les scans à la demande. Utilisez les cron jobs pour les tâches planifiées. Gardez à l'esprit que votre ordinateur doit être allumé et connecté.

Fonctions cloud : AWS Lambda, Google Cloud Functions pour les tâches périodiques légères. Plus complexe à configurer mais scale bien.

L'automatisation ne va-t-elle pas me faire bloquer ?

Ça peut si vous êtes agressif. Bonnes pratiques pour éviter les blocages :
- Utilisez des nombres de threads raisonnables (commencez avec 10-20)
- Ajoutez des délais entre les requêtes (flag -delay dans beaucoup d'outils)
- Utilisez un VPS avec une IP propre (les IPs résidentielles se font bloquer plus vite)
- Tournez entre plusieurs programmes plutôt que de marteler un seul
- La recon passive (subfinder) ne touche pas la cible, donc ne peut pas causer de blocages

Puis-je signaler directement les découvertes Nuclei ?

Non - vérifiez toujours d'abord. Les templates Nuclei peuvent avoir des faux positifs. Avant de signaler :
1. Visitez manuellement l'URL et confirmez le problème
2. Comprenez ce que vous regardez (ne signalez pas "Nuclei a dit")
3. Évaluez l'impact réel (certaines découvertes ont un impact faible/nul)
4. Écrivez un rapport approprié expliquant la vulnérabilité

Les programmes perdent vite patience avec les chasseurs qui spamment des sorties de scanner non vérifiées.

Qu'est-ce qu'un cron job ?

Cron est un planificateur Linux qui exécute des commandes à des heures spécifiées. Pour éditer votre planning cron :

crontab -e

Format : minute heure jour mois jour_semaine commande

Exemples :
0 6 * * * /chemin/vers/script.sh - S'exécute quotidiennement à 6h
0 */4 * * * /chemin/vers/script.sh - S'exécute toutes les 4 heures
0 0 * * 0 /chemin/vers/script.sh - S'exécute le dimanche chaque semaine

🎯 Vous pouvez automatiser votre chasse !

Pipelines de recon, surveillance continue, scan Nuclei, notifications - vous avez maintenant les outils pour mettre à l'échelle vos efforts de bug bounty. Votre automatisation tourne pendant que vous dormez, attrapant les nouveaux assets avant les concurrents.

Automatisation Nuclei Surveillance Notifications

Prêt à construire votre carrière de bug bounty →

Validation des Connaissances

Démontrez votre compréhension pour gagner des points et progresser

1
Question du Chapitre

Quelle chaîne d'outils est couramment utilisée pour la découverte automatisée de sous-domaines et le sondage ?

1
Lire
2
Valider
3
Terminer

Prêt à suivre votre progression?

Créez un compte gratuit pour sauvegarder votre progression, gagner des points et accéder à plus de 170 labs pratiques de cybersécurité.

Commencer à Apprendre Gratuitement
Rejoignez 5 000+ hackers qui apprennent la cybersécurité avec des labs pratiques. Créer un Compte