eJPT · Vulnerability Assessment
CVE e CVSS Scoring
Difficoltà: Beginner Time to Master: 1h Prerequisiti: nessuno Lab: riferimento teorico trasversale
Obiettivo
Uno scan Nessus può restituirti facilmente 50 findings in un colpo: se non sai leggere CVE, CWE e CVSS, ti ritrovi a scegliere a caso da dove partire, o peggio a inseguire il finding più “spaventoso” nel nome invece di quello più critico nei fatti. Qui impari a decodificare quei tre acronimi in modo da poter aprire un report e capire in trenta secondi cosa attaccare/riportare per primo.
Concetti chiave
CVE, CWE, CVSS: cosa sono
| Sigla | Significato | Esempio |
|---|---|---|
| CVE | Common Vulnerabilities and Exposures: identificativo univoco di una vulnerabilità specifica | CVE-2017-0143 (EternalBlue) |
| CWE | Common Weakness Enumeration: categoria generica del tipo di debolezza | CWE-89 (SQL Injection) |
| CVSS | Common Vulnerability Scoring System: punteggio numerico di severità (0-10) | 9.8 CRITICAL |
Il modo più semplice per non confonderli: un CVE descrive UNA vulnerabilità specifica in UN prodotto/versione; una CWE descrive la classe di debolezza in generale, indipendente dal prodotto; il CVSS assegna un punteggio comparabile a qualsiasi CVE, così puoi confrontare due bug completamente diversi sulla stessa scala.
Componenti principali CVSS v3.1
| Metrica | Valori | Significato |
|---|---|---|
| Attack Vector (AV) | Network/Adjacent/Local/Physical | da dove si può lanciare l’attacco |
| Attack Complexity (AC) | Low/High | quanto è difficile sfruttarla |
| Privileges Required (PR) | None/Low/High | privilegi necessari prima dell’attacco |
| User Interaction (UI) | None/Required | serve azione della vittima? |
| Scope (S) | Unchanged/Changed | l’exploit impatta solo il componente vulnerabile o anche altri |
| Confidentiality/Integrity/Availability (C/I/A) | None/Low/High | impatto su riservatezza/integrità/disponibilità |
Severity rating
| Score | Rating |
|---|---|
| 0.0 | None |
| 0.1 - 3.9 | Low |
| 4.0 - 6.9 | Medium |
| 7.0 - 8.9 | High |
| 9.0 - 10.0 | Critical |
Strumenti
| Tool | Comando base | Output | Note |
|---|---|---|---|
| NVD | ricerca su nvd.nist.gov | scheda CVE completa con vector string | fonte ufficiale |
| searchsploit | searchsploit <prodotto> <versione> |
exploit pubblici collegati | vedi ../08-Exploitation-PostEx/01-Manual-Exploitation-Searchsploit.md |
| CVSS Calculator | calculator.nvd.nist.gov | calcolo interattivo score da vector string | utile per capire come cambia lo score modificando una metrica |
Payload / Esempi
Esempio 1: leggere un vector string CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Spiegazione: attaccabile da rete (AV:N), bassa complessità (AC:L), nessun privilegio richiesto (PR:N), nessuna interazione utente (UI:N), scope cambiato (S:C), impatto alto su riservatezza/integrità/disponibilità (C:H/I:H/A:H): tipico di una RCE non autenticata critica come MS17-010, score 9.8.
Esempio 2: cercare il CVE di un servizio identificato
searchsploit vsftpd 2.3.4
Output atteso:
--------------------------------------------------- ---------------------------------
Exploit Title | Path
--------------------------------------------------- ---------------------------------
vsftpd 2.3.4 - Backdoor Command Execution | unix/remote/49757.py
Spiegazione: una volta identificata versione esatta di un servizio (vedi ../02-Footprinting-Scanning/04-Service-Version-OS-Detection.md), la si incrocia con database di exploit pubblici per capire se esiste un CVE sfruttabile.
Esempio 3: prioritizzare findings da un report Nessus
Finding A: CVSS 9.8 - SMB RCE non autenticata
Finding B: CVSS 5.3 - SSL certificate self-signed
Finding C: CVSS 7.5 - Directory listing abilitato con file sensibili
Spiegazione: in un esame/engagement con tempo limitato, si attacca prima A (RCE critica), poi si valuta C (accesso a informazioni sensibili), lasciando B come nota minore nel report finale.
Lab Hands-On
Lab 1: TryHackMe, Vulnerability Research
Obiettivo: dato un output di scan (nmap/Nessus), identificare CVE e calcolare/interpretare il CVSS score Difficulty: Facile Time: 30 min
Walkthrough breve:
- Prendi 3 servizi con versione nota da uno scan precedente
- Cerca CVE noti su NVD per ciascuno
- Confronta i CVSS score e ordina per priorità di sfruttamento
Common Mistakes
- Confondere CVE (istanza specifica) con CWE (categoria generale) nel report finale
- Ignorare la metrica Scope (S) -> uno score alto con S:C indica che l’impatto va oltre il componente vulnerabile, importante per la valutazione del rischio
- Fidarsi solo del punteggio senza leggere la descrizione -> due CVE con score simile possono avere impatti pratici molto diversi
Link Utili
Connessioni
- Prerequisito: nessuno
- Prossimo Step: Lab-Challenges.md
- Combinazione con: 01-Vulnerability-Scanning-Nessus.md, 02-Nmap-NSE-Scripts.md
Checklist di padronanza
- So distinguere CVE, CWE e CVSS
- So leggere un vector string CVSS v3.1
- So associare uno score a una severity rating
- So usare searchsploit/NVD per collegare un servizio a un CVE noto