← Tutti i cheatsheet

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:

  1. Installa Nessus Essentials e completa l’attivazione
  2. Crea un Basic Network Scan sulla subnet assegnata
  3. Ordina i findings per severity e identifica il top 3 Critical/High
  4. 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


Connessioni


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