eJPT · Vulnerability Assessment
Vulnerability Scanning con Nessus
Difficoltà: Beginner Time to Master: 2h Prerequisiti: ../02-Footprinting-Scanning/04-Service-Version-OS-Detection.md Lab: INE PTS labs / TryHackMe, Vulnerability Scanning con Nessus
Obiettivo
Fin qui hai enumerato servizi a mano, uno per uno. Ora cambi marcia: uno scanner come Nessus (o OpenVAS, se preferisci l’open source) fa lo stesso lavoro su un intero range di host in parallelo, incrociando ogni versione software con un database di CVE noti. Non sostituisce l’occhio umano — un finding automatico va sempre verificato — ma ti dà in pochi minuti una mappa di dove guardare prima, invece di sparare exploit a caso.
Concetti chiave
Scan autenticato vs non autenticato
| Tipo | Come funziona | Copertura |
|---|---|---|
| Non autenticato | lo scanner interroga i servizi dall’esterno, senza credenziali | vede solo ciò che è esposto in rete |
| Autenticato | lo scanner riceve credenziali (SSH/SMB/WinRM) e ispeziona l’host dall’interno | copertura molto più ampia: patch mancanti, software installato, config locali |
Regola pratica: se il cliente ti dà credenziali di test, usale sempre. Uno scan autenticato produce risultati molto più affidabili e con molti meno falsi positivi di uno scan alla cieca dall’esterno.
Policy di scan
Nessus organizza gli scan in policy: template predefiniti (Basic Network Scan, Advanced Scan, Web Application Tests, Credentialed Patch Audit) che definiscono quali plugin/porte usare. Per il primo giro su una rete lab non ti serve altro che “Basic Network Scan”: lascia i template più specifici a quando sai già cosa stai cercando.
Severity dei risultati
Nessus classifica ogni finding con una severity (Info/Low/Medium/High/Critical) derivata dal CVSS score del plugin: vedi 03-CVE-CVSS-Scoring.md per capire come si calcola.
Strumenti
| Tool | Comando base | Output | Note |
|---|---|---|---|
| Nessus Essentials/Pro | interfaccia web (https://localhost:8834) | report HTML/CSV/Nessus | free tier limitato a 16 IP, sufficiente per lab |
| OpenVAS/Greenbone | interfaccia web (https://localhost:9392) | report simile a Nessus | alternativa open source |
| nmap –script vuln | nmap --script vuln -p- target |
findings puntuali | leggero, no GUI, vedi 02-Nmap-NSE-Scripts.md |
Payload / Esempi
Esempio 1: creare e lanciare uno scan Nessus base
# dopo aver installato Nessus e fatto login sull'interfaccia web:
# 1. New Scan -> Basic Network Scan
# 2. Name: "lab-scan", Targets: 10.10.10.0/24
# 3. Save -> Launch
Output atteso: dashboard con host scansionati e conteggio findings per severity (es. 3 Critical, 12 Medium, 40 Info).
Spiegazione: uno scan di rete base interroga ogni host con i plugin di default (service detection + vuln check non invasivi), sufficiente per una prima mappa della superficie di rischio.
Esempio 2: scan autenticato SSH su host Linux
Nuova policy -> Credentials -> SSH
Username: labuser
Authentication method: password (o chiave privata)
Spiegazione: con credenziali valide Nessus esegue query locali (es. dpkg -l, rpm -qa) per confrontare le versioni installate con il proprio database di vulnerabilità, molto più preciso del solo banner grabbing esterno.
Esempio 3: alternativa leggera senza Nessus installato
nmap --script vuln -p 445,3389,21,22 -oN vuln-scan.txt 10.10.10.5
Output atteso:
445/tcp open microsoft-ds
| smb-vuln-ms17-010:
| VULNERABLE:
| Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
Spiegazione: quando Nessus non è disponibile (es. ambiente esame con tool limitati), gli script NSE vuln coprono i CVE più comuni e conosciuti direttamente da nmap.
Lab Hands-On
Lab 1: TryHackMe, Vulnerability Scanning con Nessus
Obiettivo: installare Nessus, lanciare uno scan su una rete lab, interpretare i findings Difficulty: Facile Time: 45 min
Walkthrough breve:
- Installa Nessus Essentials e completa l’attivazione
- Crea un Basic Network Scan sulla subnet assegnata
- Ordina i findings per severity e identifica il top 3 Critical/High
- Per ciascuno, cerca il CVE corrispondente su NVD/exploit-db
Common Mistakes
- Fidarsi ciecamente di uno scan non autenticato -> molti findings restano nascosti senza credenziali
- Lanciare scan aggressivi senza autorizzazione esplicita di scope/orari -> può causare instabilità su sistemi di produzione (in lab è meno critico, ma l’abitudine conta per l’esame reale)
- Ignorare i falsi positivi -> verifica sempre manualmente un finding Critical prima di riportarlo
Link Utili
Connessioni
- Prerequisito: ../02-Footprinting-Scanning/04-Service-Version-OS-Detection.md
- Prossimo Step: 02-Nmap-NSE-Scripts.md
- Combinazione con: 03-CVE-CVSS-Scoring.md
Checklist di padronanza
- So creare e lanciare uno scan Nessus base
- Capisco la differenza tra scan autenticato e non autenticato
- So leggere e prioritizzare i findings per severity
- Conosco un’alternativa leggera (nmap –script vuln) quando Nessus non è disponibile