Scansioni di Base
Target di Scansione
nmap 192.168.1.1 # host singolo nmap 192.168.1.0/24 # intera sottorete nmap 192.168.1.1-50 # intervallo IP nmap -iL targets.txt # host da file
Specificare i Target
192.168.1.1Indirizzo IP singolo
192.168.1.0/24Notazione CIDR (256 host)
192.168.1.1-254Intervallo IP
example.comHostname (risolto in IP)
-iL file.txtLegge i target da file
--exclude 192.168.1.1Esclude host specifici
--excludefile skip.txtEsclude host da file
Scansione delle Porte
Tipi di Scansione
-sSScansione TCP SYN (default, discreta, richiede root)
-sTScansione TCP connect (handshake completo, senza root)
-sUScansione UDP (lenta, spesso filtrata)
-sAScansione TCP ACK (rileva firewall)
-sNScansione TCP NULL (nessun flag)
-sFScansione TCP FIN (solo flag FIN)
-sXScansione Xmas (flag FIN+PSH+URG)
Selezione delle Porte
nmap -p 80,443 target # porte specifiche nmap -p 1-1000 target # intervallo di porte nmap -p- target # tutte le 65535 porte nmap --top-ports 100 target # le 100 porte più comuni
Stati delle Porte
openL'applicazione accetta connessioni
closedPorta raggiungibile ma nessun servizio in ascolto
filteredFirewall blocca, impossibile determinare lo stato
unfilteredPorta accessibile, stato aperto/chiuso sconosciuto
open|filteredImpossibile determinare se aperta o filtrata
Scoperta degli Host
Metodi di Scoperta
-snSolo ping scan (senza scansione porte)
-PnSalta la scoperta host (tratta tutti come attivi)
-PS 80,443Scoperta TCP SYN sulle porte
-PA 80Scoperta TCP ACK
-PU 53Scoperta UDP
-PERichiesta echo ICMP
-PRScoperta ARP (rete locale)
Sweep di Rete
nmap -sn 192.168.1.0/24 # ping sweep sottorete nmap -sn -n 10.0.0.0/24 # sweep, salta DNS nmap -sn -PR 192.168.1.0/24 # scansione ARP (più veloce)
Rilevamento dei Servizi
Rilevamento della Versione
nmap -sV target # rileva versioni dei servizi nmap -sV --version-intensity 5 target # probing più approfondito nmap -sV --version-all target # prova ogni probe (lento) nmap -A target # OS + versione + script + traceroute
Flag dei Servizi
-sVInterroga le porte aperte per servizio/versione
--version-intensity 0-9Intensità del probing (default 7)
--version-lightProbing leggero (intensità 2)
--version-allProva ogni probe (intensità 9)
-AAggressivo: -sV -O --script=default -traceroute
-sCEsegue gli script NSE predefiniti
Rilevamento OS
Fingerprinting OS
nmap -O target # rilevamento OS (richiede root) nmap -O --osscan-limit target # solo host promettenti nmap -O --osscan-guess target # supposizione aggressiva OS nmap -A target # include rilevamento OS
Flag per il Rilevamento OS
-OAbilita il rilevamento OS
--osscan-limitSalta host senza porte TCP aperte+chiuse
--osscan-guessIndovina OS in modo più aggressivo
--max-os-tries NTentativi massimi di rilevamento OS per host
Script (NSE)
Utilizzo degli Script
nmap --script=default target # categoria predefinita nmap --script=vuln target # script di vulnerabilità nmap --script=http-headers target nmap --script="http-*" target # corrispondenza con wildcard
Categorie degli Script
defaultScript sicuri e utili (scorciatoia -sC)
vulnControlla vulnerabilità note
safeScript non intrusivi
intrusivePuò causare crash o attivare IDS
discoveryScoperta di rete e servizi
authControlli relativi all'autenticazione
bruteTest di credenziali a forza bruta
exploitTentativi di sfruttamento attivo
Script Utili
http-titleRecupera i titoli delle pagine web
ssl-certMostra i dettagli del certificato SSL
ssh-hostkeyMostra le impronte delle chiavi host SSH
dns-bruteEnumera i sottodomini DNS
smb-os-discoveryRileva OS Windows tramite SMB
vulnEsegue tutti i controlli di vulnerabilità
Formati di Output
Opzioni di Output
nmap -oN scan.txt target # output testo normale nmap -oX scan.xml target # output XML nmap -oG scan.gnmap target # output grepabile nmap -oA scan_all target # tutti i formati insieme
Flag di Output
-oN fileOutput normale su file
-oX fileOutput XML (per strumenti/parsing)
-oG fileOutput grepabile (un host per riga)
-oA basenameTutti e tre i formati (basename.nmap/xml/gnmap)
-vAumenta la verbosità (-vv per di più)
-dOutput di debug (-dd per di più)
--openMostra solo le porte aperte
--reasonMostra il motivo dello stato della porta
Timing e Prestazioni
Template di Timing
-T0 (paranoid)Molto lento, evasione IDS (5 min tra i probe)
-T1 (sneaky)Lento, evasione IDS (15 sec tra i probe)
-T2 (polite)Velocità ridotta, meno banda
-T3 (normal)Timing predefinito
-T4 (aggressive)Veloce, presuppone rete affidabile
-T5 (insane)Massima velocità, può perdere risultati
Regolazione Fine
--min-rate 1000Invia almeno 1000 pacchetti/sec
--max-rate 500Limite a 500 pacchetti/sec
--max-retries 2Max ritrasmissioni dei probe
--host-timeout 30mSalta host se la scansione supera 30 min
--scan-delay 1sRitardo tra i probe
--min-parallelism 10Gruppi minimi di probe paralleli
Evasione Firewall
Tecniche di Evasione
-fFrammenta i pacchetti (blocchi da 8 byte)
-D RND:5Scansione con 5 IP casuali come decoy
-S spoof_ipFalsifica IP sorgente (richiede raw packets)
-e eth0Usa un'interfaccia di rete specifica
--source-port 53Usa porta sorgente specifica (es. DNS)
--data-length 25Aggiunge dati casuali ai pacchetti
--spoof-mac 0Randomizza l'indirizzo MAC
Esempi di Evasione
nmap -f -D RND:3 target # frammenti + decoy nmap --source-port 53 target # porta DNS (spesso consentita) nmap -T1 --scan-delay 5s target # lento per eludere IDS
Pattern Comuni
Ricognizione Rapida
nmap -T4 -F target # porte comuni veloci nmap -T4 -A -v target # rilevamento OS + servizi nmap -sV --top-ports 1000 target # top 1000 + versioni
Scansione Completa
# TCP completo + servizi + OS + script nmap -sS -sV -O -sC -p- -T4 -oA full target # Scansione UDP sulle porte comuni nmap -sU --top-ports 50 target
Audit Server Web
nmap -p 80,443 --script=http-title,http-headers,\ ssl-cert,http-methods target # Controlla proxy aperti e vulnerabilità nmap -p 80,443,8080 --script=http-open-proxy,vuln target
Inventario di Rete
# Scopri tutti gli host attivi con info OS nmap -sn 192.168.1.0/24 -oG - | grep "Up" # Inventario servizi per sottorete nmap -sV -T4 192.168.1.0/24 -oX inventory.xml