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 manda SYN. Se il target risponde SYN/ACK → porta aperta. Se RST → 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
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.