Capitolo: Gibson Cap 8 — Risk Management (Footprinting Versus Fingerprinting) Concetti: host discovery, port scan, service/version detection, OS fingerprinting, banner grabbing, log analysis lato target
Obiettivo#
Footprinting + fingerprinting di Ubuntu (192.168.64.3) da Kali (192.168.64.200): prima mappi tutta la superficie (footprinting — quali host, quali porte, quali servizi), poi identifichi le versioni esatte (fingerprinting). Poi giri la prospettiva: su Ubuntu guardi cosa resta nei log durante lo scan — è la domanda che ti farai ogni volta che analizzerai un alert.
Security angle: cap-08 distingue footprinting (mappatura generale) da fingerprinting (identificazione precisa di OS/servizio). Nmap fa entrambe le cose nello stesso comando (-sV, -O), ma sono due fasi logiche distinte — capirlo ti aiuta a leggere un report Nessus/Nmap sapendo "questa riga è footprinting, questa è fingerprinting".
Career correlation: "leggere i log come leggi un pcap" (CARRIERA.md) — qui lo fai al contrario: generi il traffico (Nmap) e poi vai a vedere cosa finisce nei log di Ubuntu (auth.log, journalctl, tcpdump). È la base di una detection rule per port scan.
Ambiente#
- Kali (192.168.64.200): attaccante/tester, esegue Nmap e Netcat
- Ubuntu (192.168.64.3): target, monitora i propri log durante lo scan
- Apri due terminali: uno su Kali, uno su Ubuntu
Traffico confinato alla rete host-only (192.168.64.0/24). Mai puntare Nmap fuori da questa rete senza autorizzazione — vedi Rules of Engagement.
Parte 1 — Footprinting: cosa c'è sulla rete?#
Obiettivo: scopri quali host sono attivi sulla subnet 192.168.64.0/24 (host discovery), poi su Ubuntu scopri quali porte sono aperte. Non preoccuparti ancora di COSA gira su quelle porte — solo "è aperta o no".
Come sai che hai finito: hai una lista di IP attivi + una lista di porte aperte su Ubuntu (es. 22, 80...). Questo è il footprint — la mappa grezza.
Parte 2 — Fingerprinting: cosa gira esattamente?#
Obiettivo: per ogni porta aperta trovata in Parte 1, identifica servizio e versione esatti, e identifica il sistema operativo di Ubuntu. Nmap ha opzioni dedicate per entrambe le cose — cercale.
Come sai che hai finito: sai dire "porta 22 = OpenSSH versione X.Y su Ubuntu kernel Z" — non solo "porta 22 aperta".
Parte 3 — Fingerprinting manuale con Netcat#
Obiettivo: su almeno una porta aperta, fai banner grabbing manuale con Netcat (nc <ip> <porta>) e confronta cosa restituisce il servizio "a mano" rispetto a quello che Nmap ha dedotto in Parte 2. Stesso netcat che usi per la reverse shell, ruolo diverso: qui sei tu il client che si connette e legge il banner.
Come sai che hai finito: hai visto un banner di testo (es. versione SSH) restituito direttamente dal servizio, senza che Nmap lo interpretasse per te.
Parte 4 — Lato difensore: cosa vede Ubuntu?#
Obiettivo: prima di rilanciare uno scan, su Ubuntu prepara un modo per osservare le connessioni in arrivo (tcpdump sull'interfaccia host-only, e/o journalctl/auth.log per i tentativi su SSH). Rilancia gli scan Nmap di Parte 1/2 e guarda cosa appare. Quali scan lasciano traccia nei log applicativi, e quali si vedono solo nel traffico di rete (tcpdump) ma non nei log?
Come sai che hai finito: sai indicare almeno una differenza concreta tra "quello che vede tcpdump" e "quello che finisce nei log" durante uno scan Nmap — è la base per capire perché un IDS di rete (Suricata) e un log-based detection (auth.log) non vedono la stessa cosa.
Per andare oltre (opzionale)#
- Dnsenum / AXFR zone transfer (cap-08): richiede un server DNS configurato sulla rete — se in futuro metti su un DNS locale (es. su Ubuntu), torna qui e prova
dnsenumper vedere se un AXFR non autenticato è permesso o bloccato (vedi zone transfer). - Sn1per: scanner all-in-one che combina molti di questi step automaticamente — utile DOPO aver fatto i singoli passaggi a mano, per capire cosa sta automatizzando.
Collegato a#
- Footprinting Versus Fingerprinting — la teoria di questo lab
- [[[TODO] lab-hping3-packet-crafting|lab-hping3-packet-crafting]] — altro modo di fare fingerprinting (TCP stack response)
- passive-reconnaissance — il lato "non engage" dello stesso processo
- reverse-shell — netcat, altro uso


