eJPT · Metasploit Framework
Msfconsole Basics
Difficoltà: Beginner Time to Master: 2h Prerequisiti: ../04-Vulnerability-Assessment/03-CVE-CVSS-Scoring.md Lab: INE PTS, Metasploit Framework labs
Obiettivo
Metasploit è il tool con cui probabilmente passerai più tempo in assoluto durante l’esame, quindi vale la pena non trattarlo come una scatola nera da cui copiare comandi. Qui impari a padroneggiare l’interfaccia msfconsole davvero: navigazione tra moduli, ricerca, configurazione opzioni, gestione workspace/database. È il punto d’ingresso obbligato per tutto ciò che riguarda auxiliary/exploit/meterpreter — sbagliare le basi qui si ripercuote su ogni file successivo.
Concetti chiave
Struttura dei moduli Metasploit
| Tipo modulo | Path esempio | Scopo |
|---|---|---|
| exploit | exploit/windows/smb/ms17_010_eternalblue |
sfrutta una vulnerabilità specifica |
| auxiliary | auxiliary/scanner/smb/smb_version |
scanning, enumeration, brute force (non da accesso diretto) |
| post | post/windows/gather/hashdump |
azioni post-exploitation su una sessione già aperta |
| payload | windows/x64/meterpreter/reverse_tcp |
codice eseguito sul target dopo l’exploit |
| encoder/nop | vari | offuscamento payload (uso limitato con AV moderni) |
Database Metasploit (msfdb)
Un dettaglio che si sottovaluta all’inizio: Metasploit può salvare host, servizi, credenziali e loot in un database PostgreSQL, condiviso tra tutte le sessioni msfconsole aperte sullo stesso workspace. Se lo inizializzi fin da subito, ogni comando successivo ti restituisce qualcosa di riusabile invece di sparire nello scroll del terminale.
Strumenti
| Tool | Comando base | Output | Note |
|---|---|---|---|
| msfconsole | msfconsole -q |
shell interattiva | -q sopprime il banner |
| msfdb | sudo msfdb init |
inizializza il database | va fatto una volta sola per macchina |
| workspace | workspace -a cliente1 |
crea/passa a un workspace | isola i dati tra engagement diversi |
Payload / Esempi
Esempio 1: ricerca ed esplorazione di un modulo
msf6 > search type:exploit smb ms17
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
msf6 exploit(windows/smb/ms17_010_eternalblue) > show targets
msf6 exploit(windows/smb/ms17_010_eternalblue) > info
Output atteso:
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- ---------------- ---- ----- -----------
0 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
Spiegazione: search filtra per tipo e keyword, use seleziona il modulo, show options elenca i parametri richiesti (marcati yes in colonna Required), info da la descrizione completa e i riferimenti CVE.
Esempio 2: configurazione opzioni e variabili globali
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 10.10.10.5
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 10.10.14.2
msf6 exploit(windows/smb/ms17_010_eternalblue) > setg LHOST 10.10.14.2
Spiegazione: set vale solo per il modulo corrente, setg imposta la variabile globalmente per tutti i moduli caricati nella sessione: utile per LHOST che resta lo stesso durante l’intero engagement.
Esempio 3: workspace e database
msf6 > workspace -a lab-network
msf6 > workspace
msf6 > db_status
msf6 > hosts
msf6 > services
Output atteso:
[*] Added workspace: lab-network
* lab-network
[*] connected to msf. Connection type: postgresql.
Spiegazione: ogni host/servizio scoperto da moduli auxiliary/nmap import viene salvato nel workspace corrente, consultabile in seguito con hosts/services/creds.
Lab Hands-On
Lab 1: INE PTS, Metasploit Framework Fundamentals
Obiettivo: familiarizzare con search/use/set/show/info su almeno 5 moduli diversi Difficulty: Facile Time: 45 min
Walkthrough breve:
- Inizializza il database con
msfdb init - Crea un workspace dedicato al lab
- Cerca ed esplora moduli auxiliary e exploit per i servizi già enumerati in 03-Enumeration
Common Mistakes
- Non inizializzare il database (
msfdb init) -> perdi tracking di host/servizi/credenziali tra sessioni - Confondere
setesetg-> variabili che “spariscono” cambiando modulo - Non leggere
show optionsper intero -> RPORT o SMBUser lasciati al default causano fallimenti silenziosi
Link Utili
Connessioni
- Prerequisito: ../04-Vulnerability-Assessment/03-CVE-CVSS-Scoring.md
- Prossimo Step: 02-Auxiliary-Modules.md
- Combinazione con: ../03-Enumeration/01-SMB-NetBIOS-Enumeration.md
Checklist di padronanza
- So cercare e caricare un modulo con search/use
- So configurare opzioni con set/setg e verificarle con show options
- So usare workspace per isolare engagement diversi
- So consultare hosts/services/creds dal database