Home › Ricognizione › Scanning con Nmap
Scanning con Nmap
Fase 2: trovare host vivi, porte aperte e servizi in ascolto. Nmap è lo strumento numero uno.
Teoria: porte e come Nmap le "bussa"
Un server offre servizi su porte (numeri 0–65535). Es: 80/443 = web, 22 = SSH, 445 = SMB, 3306 = MySQL. Trovare quali porte sono aperte = trovare le "porte d'ingresso".
Come fa Nmap a sapere se una porta è aperta? Sfrutta il three-way handshake del TCP:
- SYN scan (
-sS, default da root): Nmap mandaSYN. Se il target rispondeSYN/ACK→ porta aperta. SeRST→ chiusa. Nmap non completa mai la connessione ("half-open"), quindi è veloce e discreto. - Connect scan (
-sT, da utente non-root): completa l'handshake. Più rumoroso. - Filtered: nessuna risposta → probabilmente c'è un firewall che scarta i pacchetti.
La scansione base (il flusso reale)
Passo 1 — scan veloce di tutte le porte. Prima scopri quali porte sono aperte, senza perdere tempo:
nmap -p- --min-rate 1000 -T4 10.10.123.45 -oN porte.txt
-p-→ tutte le 65535 porte (senza, ne fa solo 1000).--min-rate 1000→ almeno 1000 pacchetti/sec (velocità).-T4→ timing aggressivo (T0 lento/furtivo … T5 folle).-oN porte.txt→ salva l'output leggibile su file.
Passo 2 — scan approfondito solo sulle porte trovate. Diciamo che erano aperte 22,80,445:
nmap -p 22,80,445 -sC -sV -oN dettaglio.txt 10.10.123.45
-sV→ version detection: scopre quale software e quale versione (es.Apache 2.4.49). Fondamentale: la versione ti dice quali exploit cercare.-sC→ esegue gli script di default NSE (info extra, vulnerabilità comuni).
Flusso mentale: scan veloce tutte le porte → scan lento e dettagliato su quelle aperte. Non fare mai
-p- -sV insieme: ci mette un'eternità.Host discovery (trovare macchine vive in una rete)
# ping scan: quali IP sono vivi in una sottorete (nessuna scansione porte)
nmap -sn 10.10.123.0/24
Interpretare l'output
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu
80/tcp open http Apache httpd 2.4.49
445/tcp open microsoft-ds Samba smbd 4.6.2
Da qui: 80 aperta → vai a Enumeration web; 445 Samba → enumeration SMB; una versione vecchia → cerca l'exploit (Apache 2.4.49 = path traversal CVE-2021-41773!).
NSE — gli script di Nmap
# script di vulnerabilità note
nmap -p 445 --script vuln 10.10.123.45
# enumerare share SMB
nmap -p 445 --script smb-enum-shares,smb-os-discovery 10.10.123.45
Lab autorizzati
THMNmapFacileLa room completa su Nmap: tipi di scan, NSE, timing. Il riferimento. THMRP: NmapFacileEsercizi pratici di scansione guidati. THMVulnversityFacileScan → enum → upload → privesc: usa Nmap in un attacco completo reale. HTBStarting Point: Meow / FawnFacilePrime box HTB: tutto parte da una scansione Nmap. Sui tuoi libri: Nessus, Snort and Ethereal Power Tools, e i capitoli di scanning in Ethical Hacking and Penetration Testing Guide e The Basics of Hacking and Penetration Testing. Vedi Risorse.