From 0d47952611198ef6b1163f366dc03922d20b1475 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 09:42:04 +0200 Subject: Adding upstream version 7.94+git20230807.3be01efb1+dfsg. Signed-off-by: Daniel Baumann --- docs/man-xlate/nmap-man-it.xml | 4858 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4858 insertions(+) create mode 100644 docs/man-xlate/nmap-man-it.xml (limited to 'docs/man-xlate/nmap-man-it.xml') diff --git a/docs/man-xlate/nmap-man-it.xml b/docs/man-xlate/nmap-man-it.xml new file mode 100644 index 0000000..894203e --- /dev/null +++ b/docs/man-xlate/nmap-man-it.xml @@ -0,0 +1,4858 @@ + +
+ + Guida di riferimento di Nmap (pagina del manuale) + + + + + nmap + + 1 + Nmap + Guida di riferimento di Nmap + + + + nmap + + Strumento di network exploration e security / port + scanner + + + + + + + nmap + + + Tipo di Scansione + + + + Opzioni + + + + Obiettivo + + + + + + Descrizione + + + Questo documento descrive la versione di Nmap 6.47. L'ultima + documentazione è disponibile in inglese all'indirizzo + . + + + Nmap (Network Mapper) è uno strumento open-source + per la network exploration e l'auditing. È stato progettato per + scansionare rapidamente reti di grandi dimensioni, ma è indicato anche + per l'utilizzo verso singoli host. Nmap usa pacchetti IP "raw" (grezzi, + non formattati) in varie modalità per determinare quali host sono + disponibili su una rete, che servizi (nome dell'applicazione e versione) + vengono offerti da questi host, che sistema operativo (e che versione + del sistema operativo) è in esecuzione, che tipo di firewall e packet + filters sono usati, e molte altre caratteristiche. Nonostante Nmap sia + comunemente usato per audits di sicurezza, molti sistemisti e + amministratori di rete lo trovano utile per tutte le attività + giornaliere come ad esempio l'inventario delle macchine presenti in + rete, per gestire gli aggiornamenti programmati dei servizi e per + monitorare gli host o il loro uptime. + + L'output di Nmap è un elenco di obiettivi scansionati, con + informazioni supplementari per ognuno a seconda delle opzioni usate. Tra + queste informazioni è vitale la tabella delle porte interessanti + . Questa tabella elenca il numero della porta e il protocollo, + il nome del servizio e lo stato attuale. Lo stato può essere open (aperto), filtered (filtrato), closed (chiuso), o unfiltered (non filtrato). Aperto significa + che vi è sulla macchina obiettivo un'applicazione in ascolto su quella + porta per connessioni o pacchetti in entrata. Filtrato significa che un firewall, un filtro + o qualche altro ostacolo di rete sta bloccando la porta al punto che + Nmap non riesce a distinguere tra aperta o chiusa. Le porte chiuse non hanno alcuna applicazione in + ascolto, anche se potrebbero aprirsi in ogni momento. Le porte vengono + classificate come non filtrate quando + rispondono ad una scansione di Nmap, ma non è stato possibile + determinare se sono aperte o chiuse. Nmap mostra le combinazioni + aperta|filtrata e chiusa|filtrata quando non può determinare + quale dei due stati descrive una porta. La tabella delle porte può + anche includere dettagli quali le versioni dei software disponibili se + è stata usata l'opzione appropriata. Quando viene richiesta una + scansione IP (), Nmap fornisce informazioni sui + protocolli IP supportati anziché sulle porte in ascolto. + + In aggiunta alla tabella delle porte notevoli, Nmap può fornire + ulteriori informazioni sugli obiettivi come ad esempio i nomi DNS + risolti (reverse DNS names), il probabile sistema operativo in uso, il + tipo di device e l'indirizzo fisico (MAC address). + + Una tipica scansione con Nmap è mostrata su . Le uniche opzioni usate di Nmap in questo + esempio sono , per abilitare la rilevazione del + sistema operativo e della versione, lo script scanning e il traceroute, + per un'esecuzione più rapida e infine l'host + obiettivo. + + + Una scansione di esempio + + +# nmap -A -T4 scanme.nmap.org + +Nmap scan report for scanme.nmap.org (74.207.244.221) +Host is up (0.029s latency). +rDNS record for 74.207.244.221: li86-221.members.linode.com +Not shown: 995 closed ports +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0) +| ssh-hostkey: 1024 8d:60:f1:7c:ca:b7:3d:0a:d6:67:54:9d:69:d9:b9:dd (DSA) +|_2048 79:f8:09:ac:d4:e2:32:42:10:49:d3:bd:20:82:85:ec (RSA) +80/tcp open http Apache httpd 2.2.14 ((Ubuntu)) +|_http-title: Go ahead and ScanMe! +646/tcp filtered ldp +1720/tcp filtered H.323/Q.931 +9929/tcp open nping-echo Nping echo +Device type: general purpose +Running: Linux 2.6.X +OS CPE: cpe:/o:linux:linux_kernel:2.6.39 +OS details: Linux 2.6.39 +Network Distance: 11 hops +Service Info: OS: Linux; CPE: cpe:/o:linux:kernel + +TRACEROUTE (using port 53/tcp) +HOP RTT ADDRESS +[Cut first 10 hops for brevity] +11 17.65 ms li86-221.members.linode.com (74.207.244.221) + +Nmap done: 1 IP address (1 host up) scanned in 14.40 seconds + + + + L'ultima versione di Nmap si può ottenere dal sito . L'ultima versione di questa pagina del manuale + è disponibile al sito . È + anche inclusa come capitolo di Nmap Network Scanning: The Official + Nmap Project Guide to Network Discovery and Security Scanning + (). + + + + Elenco delle opzioni + + Questo elenco delle possibili opzioni viene stampato quando Nmap + viene eseguito senza argomenti; una versione aggiornata di questo elenco + è sempre disponibile sul sito . È utile per + ricordarsi le opzioni più comuni ma non dev'essere inteso come + un'alternativa alla documentazione approfondita presente in questa + pagina di manuale. Alcune opzioni "oscure" non sono neanche incluse + qui. + + + Nmap 6.47SVN ( https://nmap.org ) +Usage: nmap [Scan Type(s)] [Options] {target specification} +TARGET SPECIFICATION: + Can pass hostnames, IP addresses, networks, etc. + Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 + -iL <inputfilename>: Input from list of hosts/networks + -iR <num hosts>: Choose random targets + --exclude <host1[,host2][,host3],...>: Exclude hosts/networks + --excludefile <exclude_file>: Exclude list from file +HOST DISCOVERY: + -sL: List Scan - simply list targets to scan + -sn: Ping Scan - disable port scan + -Pn: Treat all hosts as online -- skip host discovery + -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports + -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes + -PO[protocol list]: IP Protocol Ping + -n/-R: Never do DNS resolution/Always resolve [default: sometimes] + --dns-servers <serv1[,serv2],...>: Specify custom DNS servers + --system-dns: Use OS's DNS resolver + --traceroute: Trace hop path to each host +SCAN TECHNIQUES: + -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans + -sU: UDP Scan + -sN/sF/sX: TCP Null, FIN, and Xmas scans + --scanflags <flags>: Customize TCP scan flags + -sI <zombie host[:probeport]>: Idle scan + -sY/sZ: SCTP INIT/COOKIE-ECHO scans + -sO: IP protocol scan + -b <FTP relay host>: FTP bounce scan +PORT SPECIFICATION AND SCAN ORDER: + -p <port ranges>: Only scan specified ports + Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9 + --exclude-ports <port ranges>: Exclude the specified ports from scanning + -F: Fast mode - Scan fewer ports than the default scan + -r: Scan ports sequentially - don't randomize + --top-ports <number>: Scan <number> most common ports + --port-ratio <ratio>: Scan ports more common than <ratio> +SERVICE/VERSION DETECTION: + -sV: Probe open ports to determine service/version info + --version-intensity <level>: Set from 0 (light) to 9 (try all probes) + --version-light: Limit to most likely probes (intensity 2) + --version-all: Try every single probe (intensity 9) + --version-trace: Show detailed version scan activity (for debugging) +SCRIPT SCAN: + -sC: equivalent to --script=default + --script=<Lua scripts>: <Lua scripts> is a comma separated list of + directories, script-files or script-categories + --script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts + --script-args-file=filename: provide NSE script args in a file + --script-trace: Show all data sent and received + --script-updatedb: Update the script database. + --script-help=<Lua scripts>: Show help about scripts. + <Lua scripts> is a comma-separated list of script-files or + script-categories. +OS DETECTION: + -O: Enable OS detection + --osscan-limit: Limit OS detection to promising targets + --osscan-guess: Guess OS more aggressively +TIMING AND PERFORMANCE: + Options which take <time> are in seconds, or append 'ms' (milliseconds), + 's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m). + -T<0-5>: Set timing template (higher is faster) + --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes + --min-parallelism/max-parallelism <numprobes>: Probe parallelization + --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies + probe round trip time. + --max-retries <tries>: Caps number of port scan probe retransmissions. + --host-timeout <time>: Give up on target after this long + --scan-delay/--max-scan-delay <time>: Adjust delay between probes + --min-rate <number>: Send packets no slower than <number> per second + --max-rate <number>: Send packets no faster than <number> per second +FIREWALL/IDS EVASION AND SPOOFING: + -f; --mtu <val>: fragment packets (optionally w/given MTU) + -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys + -S <IP_Address>: Spoof source address + -e <iface>: Use specified interface + -g/--source-port <portnum>: Use given port number + --proxies <url1,[url2],...>: Relay connections through HTTP/SOCKS4 proxies + --data <hex string>: Append a custom payload to sent packets + --data-string <string>: Append a custom ASCII string to sent packets + --data-length <num>: Append random data to sent packets + --ip-options <options>: Send packets with specified ip options + --ttl <val>: Set IP time-to-live field + --spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address + --badsum: Send packets with a bogus TCP/UDP/SCTP checksum +OUTPUT: + -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3, + and Grepable format, respectively, to the given filename. + -oA <basename>: Output in the three major formats at once + -v: Increase verbosity level (use -vv or more for greater effect) + -d: Increase debugging level (use -dd or more for greater effect) + --reason: Display the reason a port is in a particular state + --open: Only show open (or possibly open) ports + --packet-trace: Show all packets sent and received + --iflist: Print host interfaces and routes (for debugging) + --log-errors: Log errors/warnings to the normal-format output file + --append-output: Append to rather than clobber specified output files + --resume <filename>: Resume an aborted scan + --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML + --webxml: Reference stylesheet from Nmap.Org for more portable XML + --no-stylesheet: Prevent associating of XSL stylesheet w/XML output +MISC: + -6: Enable IPv6 scanning + -A: Enable OS detection, version detection, script scanning, and traceroute + --datadir <dirname>: Specify custom Nmap data file location + --send-eth/--send-ip: Send using raw ethernet frames or IP packets + --privileged: Assume that the user is fully privileged + --unprivileged: Assume the user lacks raw socket privileges + -V: Print version number + -h: Print this help summary page. +EXAMPLES: + nmap -v -A scanme.nmap.org + nmap -v -sn 192.168.0.0/16 10.0.0.0/8 + nmap -v -iR 10000 -Pn -p 80 +SEE THE MAN PAGE (https://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES + + + + + + Target Specification (Specifica degli obiettivi) + + Ogni cosa sulla linea di comando di Nmap che non è un'opzione (o + un argomento di un'opzione) è considerato come una specifica di un host + obiettivo. Il caso più semplice consiste nello specificare + semplicemente un indirizzo IP o un nome di host per la scansione. + + A volte può essere utile scansionare un'intera rete di host + adiacenti. Per questo, Nmap supporta l'indirizzamento CIDR. Si possono + aggiungere /numero di bit a un indirizzo IP o + a un nome di host e Nmap eseguirà la scansione su ogni indirizzo IP per + il quale i primi numero di bit sono identici a + quelli specificati nell'IP o nel nome di host fornito. Ad esempio, + 192.168.10.0/24 eseguirà la scansione sui primi 256 host tra + 192.168.10.0 (in binario: 11000000 10101000 + 00001010 00000000) e 192.168.10.255 (in binario: 11000000 10101000 00001010 11111111), estremi + inclusi. 192.168.10.40/24 fa esattamente la stessa cosa. Dato che l'host + scanme.nmap.org corrisponde all'indirizzo IP 205.217.153.62, la + specifica scanme.nmap.org/16 eseguirebbe la scansione sui 65.536 + indirizzi IP tra 205.217.0.0 e 205.217.255.255. Il più piccolo valore + permesso è /1, che effettua la scansione su metà Internet. Il valore + maggiore è 32, che effettua la scansione solo sull'host o sull'IP + specificato poiché tutti i bit di indirizzo sono fissati. + + La notazione CIDR è breve ma non sempre abbastanza flessibile. Ad + esempio, si potrebbe voler controllare 192.168.0.0/16 ma saltando + qualsiasi IP termini con .0 o con .255 perché sono usati generalmente + come indirizzi di broadcast. Nmap supporta questa funzione attraverso + l'indirizzamento per intervalli di ottetti. Anziché specificare un + normale indirizzo IP è possibile specificare una lista di valori o + intervalli di valori separati da virgola per ogni ottetto. Ad esempio, + 192.168.0-255.1-254 salterà tutti gli indirizzi nell'intervallo che + termina per .0 o .255, mentre 192.168.3-5,7.1 eseguirà la scansione dei + quattro indirizzi 192.168.3.1, 192.168.4.1, 192.168.5.1 e 192.168.7.1. + Entrambi i valori limite possono essere omessi; i valori di default sono + 0 a sinistra e 255 a destra. Usare - da solo equivale a 0-255, ma ricorda + di usare 0- nel primo ottetto così da non fare sembrare l'obiettivo + un'opzione sulla riga di comando. Gli intervalli non devono + necessariamente essere limitati agli ottetti finali: una specifica come + 0-255.0-255.13.37 effettuerà una scansione su tutta Internet per ogni + indirizzo IP che termina per 13.37. Questa tipologia di campionamento può + essere utile per ricerche e sondaggi su tutta la rete Internet. + + Indirizzi IPV6 possono essere indicati solo mediante il loro + indirizzo IPv6 completo o il loro hostname. L'indirizzamento CIDR e gli + intervalli di ottetti non sono ancora supportati per IPv6. + + Gli indirizzi IPv6 con un non-global scope hanno bisogno di un ID + di zona come suffisso. Sui sistemi Unix, questo è rappresentato dal + simbolo percentuale (%) seguito dal nome di un'interfaccia; un indirizzo + completo potrebbe essere fe80::a8bb:ccff:fedd:eeff%eth0. Su Windows, si + usa l'identificativo numerico dell'interfaccia al posto del suo nome: + fe80::a8bb:ccff:fedd:eeff%1. Puoi vedere la lista degli identificativi + numerici con il comando netsh.exe interface ipv6 show interface. + + Nmap accetta più indirizzi di obiettivi sulla linea di comando + ed essi non devono essere necessariamente indicati nello stesso modo. Il + comando nmap scanme.nmap.org 192.168.0.0/8 + 10.0.0,1,3-7.- fa esattamente ciò che ci si aspetta. + + Così come gli obiettivi sono generalmente indicati sulla linea di + comando, anche le seguenti opzioni sono disponibili per la selezione + degli obiettivi: + + + + (Input from + list) + + + Legge gli obiettivi da + inputfilename. Inserire una grossa + lista di host è spesso scomodo sulla linea di comando, anche se + spesso è una necessità comune. Ad esempio, un server DHCP + potrebbe esportare un elenco di 10.000 leases che si potrebbero + voler controllare. Oppure si vogliono controllare tutti gli + indirizzi IP di una rete tranne quelli + presenti nel DHCP per individuare eventuali IP statici non + autorizzati. È sufficiente generare la lista di host da + controllare e passarla a Nmap come argomento dell'opzione + . Ogni elemento può essere in uno qualsiasi + dei formati accettati da Nmap sulla linea di comando (indirizzo + IP, nome dell'host, notazione CIDR, IPv6 o intervalli di + indirizzi). Ogni elemento dev'essere separato da uno o più spazi, + indentazioni (tabulazioni) o caratteri di a-capo. Si può usare un + trattino (-) come nome di file + se si vuole che Nmap legga gli host dallo standard input piuttosto + che da un file esistente. + + L'inputfilename può contenere + commenti. Ogni commento inizia con # e finisce con un carattere di + a-capo. + + + + + (Choose random + targets) + + + Durante certe indagini su tutta Internet o altri tipi di + ricerca, si potrebbe desiderare di scegliere gli obiettivi in + maniera casuale. L'argomento num hosts + indica a Nmap quanti indirizzi IP generare. Gli indirizzi privati, + multicast o i pool di indirizzi non allocati vengono + automaticamente saltati. Si può specificare l'argomento 0 per una scansione senza fine. Va + ricordato che alcuni amministratori di rete non apprezzano + scansioni non autorizzate delle loro reti e potrebbero lamentarsi. + Usare questa opzione a proprio rischio e pericolo! Se in un + pomeriggio piovoso ci si trova ad essere annoiati, si può provare + questo comando nmap -sS -PS80 -iR 0 -p + 80 per trovare in maniera casuale dei server web sui + quali navigare. + + + + + + (Exclude hosts/networks) + + + Questa opzione specifica un elenco, separato da virgola, di + obiettivi da escludere dalla scansione anche se sono parte + dell'intervallo di rete specificato. La lista va specificata nella + notazione usuale di Nmap, ovvero può includere nomi di host, + blocchi di indirizzi specificati mediante notazione CIDR, + intervalli di ottetti, etc. Questo può essere utile quando la + rete che si vuole controllare include server intoccabili o di + vitale importanza, sistemi che sono conosciuti per reagire in + maniera negativa ad eventuali scansioni, o sottoreti amministrate + da altri. + + + + + (Exclude + list from file) + + + Questa opzione offre le stesse funzionalità + dell'opzione, con la differenza che gli + obiettivi da escludere dalla scansione sono elencate in un + exclude_file (separate da spazi + bianchi, a-capo o tabulazioni) anziché sulla linea di + comando. + + L'exclude_file può contenere + commenti. Ogni commento inizia con # e finisce con un carattere di + a-capo. + + + + + + + Host Discovering (Ricerca di host) + + Uno dei primi passi in qualsiasi approccio di mappatura di una + rete è quello di ridurre un intervallo di indirizzi IP (talvolta di + notevoli dimensioni) ad una lista di host attivi o interessanti. Uno + scan di ogni porta di ogni singolo indirizzo IP è lento e generalmente + non necessario. Ovviamente ciò che rende un host interessante dipende + in larga misura dalle motivazioni della scansione. Gli amministratori di + rete possono essere interessati solo a host sui quali è in esecuzione + uno specifico servizio, mentre chi fa auditing di sicurezza è più + interessato a ogni singola periferica dotata di un indirizzo IP. Un + sistemista può accontentarsi di semplici ping ICMP per trovare gli host + sulla propria rete, ma un penetration tester esterno può dover usare un + insieme di molti differenti probing (tentativi di scansione) per cercare + di evitare le restrizioni imposte da un firewall. + + Poiché le necessità di host discovering sono così diverse, Nmap + offre una notevole varietà di opzioni per la customizzazione delle + tecniche usate. Il semplice host discovery è spesso chiamato ping + scan, anche se va molto oltre il semplice pacchetto ICMP di tipo + "echo request" associato al famoso strumento di ping. Un utente può evitare il passaggio + per l'utility ping usando una List Scan (scansione di tipo + lista: ) o disabilitando il ping + (), oppure mettendo alla prova la rete usando + combinazioni arbitrarie di probe TCP SYN/ACK, UDP e ICMP su differenti + porte. Lo scopo di questi approcci è quello di sollecitare una risposta + che dimostri l'esistenza di un host o di un dispositivo di rete con + quell'indirizzo IP. In molte reti solo una piccola percentuale di + indirizzi IP è attiva in ogni momento, specialmente negli spazi di + indirizzamento privati previsti dall'RFC 1918 come ad esempio 10.0.0.0/8. + Una rete di questo tipo ha 16 milioni di possibili IP, anche se è di + uso comune in aziende con meno di un migliaio di macchine. L'host + discovery può trovare queste macchine in un mare di indirizzi IP non + consecutivi. + + Se non viene fornita alcuna opzione di host discovery, Nmap manda + di default ad ogni macchina obiettivo un pacchetto ICMP di tipo + "echo request", un pacchetto TCP SYN alla porta 443, un + pacchetto TCP ACK alla porta 80 e un pacchetto ICMP di tipo + "timestamp request" (per IPv6, il pacchetto ICMP di tipo + "timestamp request" viene escluso dato che non fa + parte del ICMPv6). Questa default è l'equivalente delle opzioni -PE + -PS443 -PA80 -PP. Eccezioni a questo comportamento sono le scansioni + ARP (per IPv4) e Neighbor Discovery (per IPv6) che sono usate per tutti + gli obiettivi in una rete ethernet locale. Se Nmap viene lanciato da un + utente non privilegiato all'interno di un ambiente UNIX, i probe di + default saranno pacchetti SYN alle porte 80 e 443 inviati mediante la + chiamata di sistema connect. Questo + tipo di host discovery è spesso sufficiente quando si deve effettuare una + scansione su reti locali, anche se per un security auditing si raccomanda + di usare un set di opzioni più avanzato. + + L'opzione (che permette di scegliere il tipo + di ping) può essere combinata. Si possono inoltre aumentare le + probabilità di bypassare firewall particolarmente restrittivi mandando + molti tipi di probe diversi usando porte o flag TCP differenti e + svariati codici ICMP. Inoltre si tenga presente che + l'ARP/Neighbor Discovery () viene effettuata di + default all'interno di una rete locale, anche se vengono specificate + altre opzioni , poiché è quasi sempre più veloce e + più efficiente. + + Di default, Nmap lancia un host discovery e in seguito un port scan + su tutti gli host che sono online. Questo approccio viene tenuto anche + quando si specificano metodi non standard per l'host discovery come i + probe UDP (). Si consulti la spiegazione per + l'opzione per sapere come effettuare + solo host discovery; si usi per + evitare l'host discovery e fare un portscan di tutti gli host di + destinazione. Le seguenti opzioni controllano il comportamento dell'host + discovery: + + + + (List Scan) + + + La List Scan è una forma banale di host discovery che + semplicemente elenca ogni host delle reti specificate, senza + inviare alcun pacchetto agli host obiettivo. Di default Nmap + effettua una risoluzione inversa mediante DNS sugli host per + ottenerne il nome completo. Spesso è sorprendente vedere quante + informazioni utili possono fornire dei semplici hostname. Ad + esempio, fw.chi è il nome del + firewall di un'azienda di Chicago. Nmap mostra anche il numero + totale di indirizzi IP alla fine della scansione. La lista scan è + un buon controllo per essere sicuri di avere gli indirizzi IP + corretti per la propria scansione. Se gli host mostrano nomi di + dominio non conosciuti, vale la pena indagare oltre per evitare di + scansionare la rete dell'azienda sbagliata. + + Poiché l'idea è quella di stampare semplicemente una lista + di obiettivi, le opzioni per funzionalità di livello più alto + (come ad esempio il port scanning, le indagini sul tipo di sistema + operativo in esecuzione o il ping scan) non possono essere + combinate con questa. Se si vuole disabilitare il ping scan e + mantenere allo stesso tempo la possibilità di utilizzare + funzionalità di alto livello, si legga la sezione sull'opzione + . + + + + + (No port scan) + + + Questa opzione indica a Nmap di non effettuare un port scan + dopo un host discovery e di mostrare gli host che hanno risposto. + Quest'opzione è spesso conosciuta come ping scan, ma + si può anche richiedere il traceroute ed eseguire script host NSE. + Quest'azione è un gradino più invadente della List Scan, e spesso + può essere usata per lo stesso scopo. Essa permette una + mappatura di una rete obiettivo senza attrarre molta attenzione. + Sapere quanti host sono attivi è più utile ad un attaccante + rispetto ad una semplice List Scan di ogni indirizzo IP e nome di + host. + + Gli amministratori di sistema trovano spesso questa + opzione utile allo stesso modo. Può essere usata facilmente per + enumerare le macchine disponibili in una rete o tenere sotto + osservazione la disponibilità di un singolo server. Questo + approccio viene anche chiamato ping sweep, ed è più + affidabile di un ping all'indirizzo broadcast poiché molti host non + rispondono alle richieste di questa categoria. + + L'opzione invia di default un pacchetto + ICMP di tipo "echo request", un pacchetto TCP SYN alla + porta 443, un pacchetto TCP ACK alla porta 80 e un pacchetto ICMP + di tipo "timestamp request". Quando viene eseguita da + un utente non privilegiato, viene inviati solo i pacchetti SYN + (usando la chiamata connect ) + alle porte 80 e 443 dell'obiettivo. Quando invece un utente + privilegiato prova ad effettuare una scansione all'interno di una + rete locale, vengono usate richieste ARP a meno che non venga + specificata l'opzione . L'opzione + può essere usata in combinazione con qualsiasi + tipo di discovery probe (ovvero la famiglia di opzioni + , tranne ) per avere una + migliore flessibilità. Se viene usato uno qualsiasi di questi probe + con opzioni sul numero di porta, allora i probe di default vengono + annullati. Si raccomanda di usare queste tecniche avanzate se ci + sono dei firewall restrittivi tra l'host che lancia Nmap e le reti + di destinazione, altrimenti le destinazioni potrebbero non essere + raggiunte nel caso in cui il firewall dovesse bloccare i probe o le + risposte a questi ultimi. + + Nelle versioni precedenti di Nmap, l'opzione + era chiamata . + + + + + (No ping) + + + Questa opzione evita del tutto il passaggio di ricerca degli + host di Nmap. Normalmente Nmap usa questo passaggio per trovare le + macchine attive da sottoporre ad una scansione più approfondita. + Di default, Nmap esegue un probing approfondito (come ad esempio + un port scan, una version detection dei servizi o un Operating + System detection) solo sugli host che sono stati trovati attivi. + Disabilitare l'host discovery attraverso l'opzione + obbliga Nmap a tentare la scansione richiesta + su tutti gli host destinazione specificati. + Quindi se si specifica sulla linea di comando una rete di + destinazione di classe B (in CIDR /16) verranno sottoposti a + scansione tutti i 65.535 indirizzi IP. A differenza della List Scan + (nel quale l'host discovery viene saltato) anziché interrompersi e + mostrare la lista di destinazioni, Nmap continua ad eseguire le + funzioni richieste come se ogni IP di destinazione fosse attivo. + Per evitare sia un ping scan + che un port scan, ma permettere l'esecuzione + degli script NSE, utilizzare le due opzioni -Pn -sn insieme. + + Per le macchine in una rete ethernet locale, la scansione ARP + verrà ancora eseguita (a meno che siano specificate le opzioni + e ) + in quanto Nmap necessita degli indirizzi fisici (MAC addresses) per + ulteriori scansioni degli hosts. Nelle versioni precedenti di Nmap, + era chiamata e + . + + + + + + (TCP SYN Ping) + + + Questa opzione invia un pacchetto TCP vuoto con il flag SYN + attivo. La porta di destinazione di default è la 80 + (configurabile durante la compilazione cambiando il parametro di + define DEFAULT_TCP_PROBE_PORT nel file nmap.h), ma si possono specificare altre + porte come parametro. La sintassi è la stessa dell'opzione + tranne che gli indicatori del tipo di porta + non sono permessi. Da notare che non ci devono + essere spazi tra e il numero di porta, ad + esempio . Nel caso di più porte specificate, + separate da virgola (ad esempio + ), si tenterà un probe + verso ogni porta in parallelo. + + Il flag SYN indica al sistema remoto che si sta tentando di + stabilire una connessione. Normalmente la porta di destinazione + dovrebbe essere chiusa, e un pacchetto di RST (reset) viene + mandato indietro. Se la porta fosse aperta, il destinatario + effettuerà il secondo passo della connessione TCP a tre vie + (3-way-handshake) rispondendo con un pacchetto TCP SYN/ACK. La + macchina che sta eseguendo Nmap interromperà la connessione + inviando un pacchetto RST al posto di mandare l'usuale pacchetto + ACK che completerebbe l'handshake e stabilirebbe una connessione + completa. Il pacchetto RST viene mandato dal kernel della macchina + che sta eseguendo Nmap, non da Nmap stesso. + + A Nmap non interessa se la porta è aperta o chiusa. In ogni + caso l'RST o il SYN/ACK ricevuti indicano che l'host è + disponibile e risponde alle connessioni. + + Nelle macchine UNIX solo l'utente privilegiato root generalmente è abilitato all'invio + e alla ricezione di pacchetti TCP "raw" (non + formattati, grezzi). Per quanto riguarda gli utenti non + privilegiati si deve ricorrere alla chiamata di sistema + connect, la quale viene + lanciata su ogni porta di destinazione. Questo ha l'effetto di + inviare pacchetti SYN all'host di destinazione come per stabilire + una connessione. Se la connect + restituisce rapidamente un messaggio di successo o un messaggio di + errore ECONNREFUSED significa che lo stack TCP sottostante deve + aver ricevuto un SYN/ACK o un RST e l'host viene marcato come + disponibile. Se il tentativo di connessione viene lasciato in + sospeso fino al raggiungimento di un certo timeout l'host è marcato + come down o non disponibile. + + + + + (TCP ACK Ping) + + + Il ping TCP ACK è molto simile al ping SYN appena discusso. + La differenza, come si può facilmente indovinare, consiste nel + fatto che viene sollevato il flag TCP ACK al posto del SYN. Un + tale pacchetto ACK finge di confermare dei dati inviati in una + connessione TCP già stabilita, anche se tale connessione non + esiste. In questo modo un host remoto risponderà sempre con un + pacchetto RST, svelando così la propria esistenza e il fatto che + siano attivi. + + L'opzione usa la stessa porta di + default del SYN probe (ovvero la porta 80) e può ricevere in + input un elenco di porte di destinazione nello stesso formato. Se + un utente non privilegiato tenta quest'approccio si usa la + scorciatoia della connect + spiegata in precedenza. Questa scorciatoia non è ottimale perché in + ogni caso la connect invia un + pacchetto SYN e non un ACK. + + La ragione per offrire entrambi i tipi di probe (SYN e ACK) + è quella di massimizzare le possibilità di bypassare firewall. + Molti amministratori configurano router e semplici firewall per + bloccare pacchetti SYN in arrivo tranne quelli destinati a servizi + pubblici come il sito web aziendale o il mail server. Questo + impedisce ogni altro tipo di connessione in entrata garantendo al + tempo stesso agli utenti di effettuare connessioni verso l'esterno + senza incontrare ostacoli. Questo approccio + "non-stateful" (per "non-stateful" si + intende in questo caso la capacità di un firewall di tenere + traccia delle connessioni che lo attraversano, NdT) utilizza poche + risorse sul firewall/router ed è largamente supportato da filtri + software e hardware. Il firewall di Linux conosciuto come + Netfilter/iptables offre l'opzione per + implementare questo approccio "stateless". Quando un + firewall implementa regole di questo tipo, un probe SYN + () viene facilmente bloccato quando viene + mandato ad una porta chiusa. In questi casi un probe ACK passerebbe + indisturbato, come se non vi fossero quelle regole. + + Un altro tipo comune di firewall utilizza regole + "stateful" che lasciano cadere (drop) + pacchetti non attesi. Questa caratteristica era inizialmente + disponibile solo su firewall di fascia alta, anche se è diventata + sempre più comune nel corso degli anni. Il sistema + Netfilter/iptables la supporta mediante l'opzione + , la quale marca pacchetti a seconda dello + stato della connessione. Un probe SYN funzionerà più facilmente + verso un tale sistema, poiché pacchetti ACK non attesi sono + generalmente riconosciuti come non validi e lasciati cadere. Una + soluzione a questa situazione poco piacevole è quella + di inviare entrambe le tipologie di probe specificando le opzioni + e . + + + + + (UDP Ping) + + + Un'altra opzione di host discovery è il ping UDP, la quale + manda un pacchetto UDP alle porte indicate. Per molte porte, il + pacchetto sarà vuoto, anche se utilizzare un payload specifico del + protocollo aumentale probabilità di risposta. Vedi la sezione + UDP payloads: + () per una + descrizione del database dei payloads. Il contenuto del pacchetto + può essere gestito con le opzioni , + e + . + + L'elenco di porte va specificato nello stesso formato già + discusso in precedenza nelle opzioni e + . Se non si specifica alcuna porta viene usata + la 40125 di default. Questo valore può essere impostato durante + la compilazione cambiando il parametro DEFAULT_UDP_PROBE_PORT nel + file nmap.h. Si usa di + default una porta poco comune perché inviare dati ad una porta + già aperta è spesso non desiderabile per questo tipo particolare + di scansione. + + Una volta raggiunta una porta UDP chiusa sulla macchina di + destinazione, il probe UDP dovrebbe provocare un pacchetto ICMP di + tipo "port unreachable" (porta irraggiungibile). + Questo indica a Nmap che l'host è funzionante e disponibile. + Altri tipi di pacchetti ICMP di errore, come ad esempio host o rete + "unreachable" (non disponibile) o + "TTL exceeded" (superato il tempo di vita del + pacchetto) indicano un host non funzionante o irraggiungibile. Una + mancanza di risposta viene interpretata alla stessa maniera. Se si + raggiunge una porta aperta la maggior parte dei servizi + semplicemente ignorano il pacchetto vuoto e non rimandano alcuna + risposta. Questo spiega perché il probe di default è la porta + 40125, la quale si usa molto raramente. Pochi servizi, tra i quali + chargen, rispondono a un pacchetto UDP vuoto, + rivelando così a Nmap la disponibilità della macchina in + questione. + + Il vantaggio primario di questo tipo di scansione è che + riesce a bypassare firewall e filtri che controllano solo + pacchetti TCP. Ad esempio, una volta avevo un router a banda larga + wireless Linksys BEFW11S4. L'interfaccia esterna di questa + periferica filtrava tutte le porte TCP di default, ma i probe UDP + provocavano messaggi di "Port unreachable" rivelando + così l'esistenza del device. + + + + + (SCTP INIT Ping) + + + Questa opzione invia un pacchetto SCTP contenente un INIT + chunk minimale. La porta di destinazione di default è la 80 + (configurabile durante la compilazione cambiando il valore di + DEFAULT_SCTP_PROBE_PORT_SPEC nel file + nmap.h). Altre porte possono + essere specificate come parametro. La sintassi è la stessa + dell'opzione tranne che gli indicatori del tipo + di porta non sono permessi. Da notare che non + ci devono essere spazi tra e il numero di + porta, ad esempio . Nel caso di più porte + specificate, separate da virgola (ad esempio + ), si tenterà un probe verso ogni + porta in parallelo. + + L'INIT chunk suggerisce al sistema remoto che stai tentando + di stabilire un'associazione. Normalmente la porta di destinazione + dovrebbe essere chiusa e un ABORT chunk verrà inviato come + risposta. Se la porta invece dovesse essere aperta, l'obiettivo + passerà al secondo step della connessione SCTP a quattro vie + (four-way-handshake) rispondendo con un INIT-ACK chunk. Se la + macchina che sta eseguendo Nmap ha la funzione di SCTP stack, + abbatte l'associazione nascente rispondendo con un ABORT chunk + invece che inviare un COOKIE-ECHO chunk, che sarebbe lo step + successivo nel processo di associazione. Il pacchetto ABORT viene + mandato dal kernel della macchina che sta eseguendo Nmap in + risposta ad un INIT-ACK inaspettato, non da Nmap stesso. + + Ad Nmap non interessa se la porta di destinazione risulta + aperta o chiusa. Entrambi i pacchetti discussi in precedenza + (ABORT e INIT-ACK) ricevuti in risposta, indicano ad Nmap che + l'host è disponibile e risponde alle connessioni. + + Sulle macchine Unix, solo l'utente privilegiato + root generalmente è abilitato ad + inviare e ricevere pacchetti SCTP "raw" (non + formattati, grezzi). Usare SCTP INIT Pings () + non è attualmente possibile per gli utenti non privilegiati. + + + + + ; ; + (ICMP Ping Types) + + + In aggiunta ai meno comuni tipi di host discovery TCP, UDP e + SCTP discussi in precedenza, Nmap può anche mandare i pacchetti + standard come il famoso programma ping. Nmap manda un pacchetto ICMP + type 8 ("echo request") all'indirizzo IP di + destinazione, aspettandosi un type 0 ("echo reply") di + ritorno dagli host disponibili. Sfortunatamente per chi deve + scoprire la topologia di una rete, molti host e firewall ora + bloccano questo tipo di pacchetti anziché rispondere come richiesto + dall'RFC + 1122. Per questa ragione le scansioni basate solo su ICMP + sono raramente abbastanza affidabili nei riguardi di destinazioni + sconosciute su Internet. Tuttavia per i sistemisti di rete che + devono tenere sotto controllo una rete interna, esse possono essere + un approccio pratico ed efficiente. Si usi l'opzione + per abilitare questo comportamento di + "echo request". + + Mentre la "echo request" è la richiesta standard del ping + ICMP, Nmap non si ferma qui. Gli standard ICMP (RFC 792 e + RFC + 950) specificano inoltre i pacchetti "timestamp request", + "information request" e "address mask request" (rispettivamente + "richiesta di timestamp", ovvero data e ora, "richiesta di + informazioni" e "richiesta della maschera di rete") mediante i + codici ICMP 13, 15 e 17. Dato che lo scopo dichiarato di questo + tipo di richieste è quello di avere informazioni quali la maschera + di rete e l'ora corrente, essi possono facilmente essere usati per + l'host discovery. Un sistema che risponde è funzionante e + disponibile. Nmap non implementa allo stato attuale pacchetti di + "information request", poiché in genere non sono supportati + comunemente. L'RFC 1122 specifica che un host NON DOVREBBE + implementare questi messaggi (il maiuscolo negli RFC indica + comportamenti precisi). Il timestamp (data e ora) e le richieste di + maschera di rete possono essere inviate rispettivamente mediante le + opzioni e . Una risposta + di tipo timestamp (codice ICMP 14) o di tipo address mask (codice + 18) rivela che un host è disponibile. Queste due richieste possono + essere utili qualora un amministratore dovesse bloccare i + pacchetti di "echo request" ma dimenticarsi che altre query ICMP + possono essere usate per lo stesso scopo. + + + + + (IP Protocol + Ping) + + + Una delle nuove opzioni di host discovery è la IP Protocol + Ping, la quale invia pacchetti IP con lo specifico numero di + protocollo impostato nel loro IP header. La lista dei protocolli ha + lo stesso formato della lista delle porte vista in precedenza + nelle opzioni di host discovery TCP, UDP e SCTP. Se nessun + protocollo viene specificato, di default vengono inviati pacchetti + IP multipli per ICMP (protocollo 1), IGMP (protocollo 2) e IP-in-IP + (protocollo 4). I protocolli di default possono essere configurati + in fase di compilazione cambiando il valore di + DEFAULT_PROTO_PROBE_PORT_SPEC nel file + nmap.h. Si tenga presente che + per i protocolli ICMP, IGMP, TCP (protocollo 6), UDP (protocollo + 17) e SCTP (protocollo 132), i pacchetti vengono inviati con i loro + opportuni headers mentre gli altri protocolli vengono inviati senza + nessun dato aggiuntivo oltre all'IP header (a meno che non siano + specificate le opzioni , + o + ). + + Questo metodo di host discovery cerca sia risposte + utilizzando lo stesso protocollo di un probe, che messaggi + "unreachable" utilizzando il protocollo ICMP, che significa che il + protocollo non è supportato dall'host di destinazione. Entrambe le + risposte indicano che l'obiettivo è attivo. + + + + + (ARP Ping) + + + Una delle situazioni più comuni di utilizzo di Nmap è la + scansione di una LAN ethernet. Nella maggior parte delle LAN, + specialmente quelle in cui viene usato il benedetto intervallo di + indirizzi privati specificato dall'RFC 1918, la maggior parte degli + indirizzi IP è inutilizzato. Quando Nmap prova ad inviare + pacchetti IP raw come le "echo request" ICMP, il sistema operativo + deve determinare l'indirizzo hardware (ARP) corrispondente + all'indirizzo IP di destinazione, in modo da poter indirizzare + correttamente il frame ethernet. Questo è spesso lento e + problematico, in quanto i sistemi operativi non sono stati scritti + prevedendo di dover fare milioni di richieste ARP verso host + inesistenti in un breve lasso di tempo. + + L'ARP scan lascia a Nmap e ai suoi algoritmi ottimizzati + l'incarico delle richieste ARP. Nel caso in cui si riceva una + risposta, Nmap non si deve neanche preoccupare dei ping basati su + IP perché a questo punto sa già che l'host è raggiungibile. + Questo rende l'ARP scan molto veloce e molto più affidabile delle + normali scansioni basate su IP. Infatti questo è il comportamento + di default quando si deve effettuare uno scan su host che Nmap + riconosce come presenti nella rete locale. Anche se vengono + specificati differenti tipi di ping (come o + ), Nmap usa comunque ARP per ogni target che + è sulla stessa LAN. Se non si vuole assolutamente un ARP scan, + specificare l'opzione . + + Per IPv6 (opzione ), + utilizza ICMPv6 Neighbor Discovery al posto di ARP. Neighbor + Discovery, definito nell'RFC 4861, può essere visto come + l'equivalente per IPv6 di ARP. + + + + + (No ARP or ND Ping) + + + Nmap normalmente esegue un ARP o IPv6 Neighbor Discovery (ND) + discovery degli host locali connessi ad una rete ethernet, anche se + altre opzioni di host discovery, come o + , vengono utilizzate. Per disabilitare questo + comportamento implicito, utilizzare l'opzione + . + + Il comportamento di default è solitamente più veloce, ma + quest'opzione è utile nelle reti che utilizzano un proxy ARP, nelle + quali un router risponde in modo speculare a tutte le richieste + ARP, facendo sembrare attivi tutti gli obiettivi di un ARP + scan. + + + + + (Trace path to host) + + + I traceroutes vengono eseguiti in fase di post-scan + utilizzando informazioni provenienti dai risultati della scansione + per determinare la porta e il protocollo che più probabilmente + raggiungono l'obiettivo. Opera con tutte le tipologie di scansione + tranne le connect scans () e le idle scans + (). Tutti i tracciamenti utilizzano il modello + di timing dinamico ("dynamic timing model") di Nmap e vengono + eseguiti in parallelo. + + Traceroute lavora inviando pacchetti con un basso TTL + (time-to-live) in attesa di ricevere un messaggio ICMP "Time + Exceeded" dagli intermediari (hops) posti tra la macchina che + esegue la scansione e l'host obiettivo. Le implementazioni standard + di traceroute iniziano con un TTL settato a 1 e aumentano il TTL + finché l'host di destinazione non viene raggiunto. I traceroute di + Nmap iniziano con un alto TTL e lo diminuiscono fino ad arrivare a + zero. Lavorare a ritroso consente ad Nmap di utilizzare + intelligenti algoritmi di caching per velocizzare il tracciamento + su più host. In media Nmap invia 5-10 pacchetti in meno per host, + in base alle condizioni della rete. Se una singola subnet viene + scansionate (ad esempio 192.168.0.0/24) Nmap potrebbe dover inviare + solo due pacchetti per la maggior parte degli host. + + + + + (No DNS resolution) + + + Indica a Nmap di non effettuare mai una + risoluzione inversa del nome mediante DNS sugli indirizzi IP + rilevati. Poiché il DNS è spesso lento anche con il risolutore + parallelo integrato di Nmap, questa opzione rende l'intero processo + di scansione più veloce. + + + + + (DNS resolution for all targets) + + + Indica a Nmap di effettuare sempre la + risoluzione inversa dei nomi mediante DNS sugli indirizzi IP + rilevati. Generalmente la risoluzione inversa viene effettuata solo + quando un host viene rilevato come attivo. + + + + + (Use system DNS resolver) + + + Di default Nmap risolve gli indirizzi IP mandando richieste + direttamente ai name servers (server dei nomi) configurati sulla + macchina su cui è in esecuzione Nmap. Molte richieste (spesso + nell'ordine delle dozzine) sono effettuate in parallelo per + migliorare le performance. Si specifichi quest'opzione se si vuole + usare il proprio DNS (richiedendo un indirizzo IP alla volta + usando la system call getnameinfo). Questa operazione è più + lenta e raramente utile a meno che non ci sia un bug nel codice di + risoluzione dei nomi di Nmap (per favore si contattino gli + sviluppatori se questo è il caso). Il resolver di sistema è + sempre usato per le scansioni su IPv6. + + + + + (Servers to use for reverse DNS queries) + + Di default Nmap cercherà di determinare i server DNS da usare + per le reverse query usando il file resolv.conf (UNIX) o il + Registro (Win32) sulla macchina su cui viene eseguito. In + alternativa si può usare quest'opzione per indicare server + alternativi. Tuttavia quest'opzione viene ignorata nel caso si + specifichi l'opzione o se si sta + eseguendo una scansione IPv6. L'uso di più server DNS è spesso più + veloce specialmente se si specificano server DNS autoritari per lo + spazio IP di destinazione. Quest'opzione inoltre attrae meno + l'attenzione, dato che le tue richieste possono essere rimbalzate + praticamente da ogni server DNS su Internet. + Quest'opzione torna utile anche quando si eseguono scansioni + di reti private. Alle volte solo alcuni name server forniscono le + correte informazioni di reverse e non sempre potresti sapere dove + questi si trovano. Puoi scansionare la rete sulla porta 53 (magari + con una version detection), quindi provare delle List Scan + () di Nmap specificando ogni volta un name + server diverso con l'opzione + finché non si trova quello desiderato. + + + + + + + Fondamenti di port scanning + + Nonostante Nmap nel corso degli anni abbia ampliato le proprie + funzionalità, iniziò come un efficiente port scanner e tale resta la sua + funzione di base. Il semplice comando nmap + target effettua una scansione di + 1.000 porte TCP sull'host target. Mentre molti + port scanner considerano tutte le porte chiuse o aperte, Nmap è molto più + preciso. Divide le porte in sei categorie o stati: open (aperta), closed (chiusa), filtered (filtrata), unfiltered (non filtrata), open|filtered (aperta|filtrata), closed|filtered (chiusa|filtrata). + + Questi stati non sono proprietà intrinseche delle porte stesse, + ma descrivono come Nmap le vede. Ad esempio, uno scan Nmap proveniente + dalla stessa rete nella quale risiede l'obiettivo può mostrare la + porta 135/tcp come aperta, mentre una scansione nello stesso momento con + gli stessi parametri ma proveniente da Internet può mostrare quella + stessa porta come filtered. + + + I sei stati nei quali Nmap classifica le porte + + + open (aperta) + + Un'applicazione accetta attivamente su questa porta + connessioni TCP, datagrammi UDP o associazioni SCTP. La ricerca di + questo tipo di porte è spesso l'obiettivo primario del port + scanning. Chi si dedica alla sicurezza sa che ogni porta aperta è + una strada verso un attacco. Gli attaccanti e i tester di sicurezza + (penetration testers, conosciuti anche come "pen-testers", NdT) + hanno come obiettivo quello di trovare e trarre vantaggio dalle + porte aperte, mentre d'altro canto gli amministratori di rete e i + sistemisti provano a chiuderle o a proteggerle con firewall senza + limitare gli utenti autorizzati al loro uso. Le porte aperte sono + anche interessanti per tutta una serie di scansioni non indirizzate + unicamente alla sicurezza, perché mostrano che servizi sono + disponibili in una rete. + + + + + closed (chiusa) + + Una porta chiusa è accessibile (riceve e risponde ai + pacchetti di probe di Nmap) ma non vi è alcuna applicazione in + ascolto su di essa. Esse possono rendersi utili nel mostrare che + un host è attivo su un indirizzo IP (durante l'host discovery o + il ping scanning) o in quanto parte integrante dell'Operating + System discovery. Poiché una porta chiusa è raggiungibile, può + essere interessante effettuare una scansione più tardi nel caso + alcune vengano aperte. Chi amministra una macchina o una rete può + voler bloccare tali porte con un firewall ed in questo caso esse + apparirebbero come filtrate, come mostrato in seguito. + + + + + filtered (filtrata) + + In questo caso Nmap non può determinare con esattezza se la + porta sia aperta o meno, perché un filtro di pacchetti impedisce + ai probe di raggiungere la porta. Questo filtro può esser dovuto + a un firewall dedicato, alle regole di un router, o a un firewall + software installato sulla macchina stessa. Queste porte forniscono + poche informazioni e rendono frustrante il lavoro dell'attaccante. + A volte esse rispondono con un messaggio ICMP del tipo 3, codice + 13 ("destination unreachable: communication administratively + prohibited", ovvero "destinazione non raggiungibile: comunicazione + impedita da regole di gestione"), ma in genere sono molto più + comuni i filtri di pacchetti che semplicemente ignorano i + tentativi di connessione senza rispondere. Questo obbliga Nmap a + riprovare diverse volte, semplicemente per essere sicuri che il + pacchetto non sia stato perduto a causa di una congestione di rete + o di problemi simili piuttosto che dal firewall o dal filtro + stesso. Questo riduce drammaticamente la velocità della + scansione. + + + + + unfiltered (non filtrata) + + Lo stato "unfiltered" indica che una porta è accessibile, + ma che Nmap non è in grado di determinare se sia aperta o chiusa. + Solo la scansione di tipo ACK, usata per trovare e classificare le + regole di un firewall, posiziona una porta in questo stato. Una + scansione di porte in questo stato ("non filtrate") mediante altri + tipi di scansione come il Window scan (scan per finestre di + connessione), il SYN scan o il FIN scan aiuta a determinare se la + porta sia aperta o chiusa. + + + + + open|filtered (aperta|filtrata) + + Nmap posiziona le porte in questo stato quando non è in + grado di determinare se una porta sia aperta o filtrata. Questo + accade in quelle scansioni per le quali una porta aperta non + risponde in alcun modo. La mancanza di informazioni può + significare inoltre che un filtro di pacchetti ha lasciato cadere + ("drop") il probe o qualsiasi risposta sia stata generata in + seguito a questo. Scansioni che classificano porte in questo stato + sono le scansioni UDP, IP, FIN, NULL e Xmas. + + + + + closed|filtered (chiusa|filtrata) + + Questo stato è usato quando Nmap non è in grado di + determinare se una porta sia chiusa o filtrata. Viene usato solo + per l'IP ID idle scan. + + + + + + + Tecniche di Port Scanning + + Un neofita inesperto che cerca di aggiustarsi l'automobile può + arrovellarsi per ore cercando di usare i pochi strumenti che ha + (martello, nastro isolante, pinza, ecc.) per ciò che deve fare. Una + volta che si è arreso dopo l'ennesimo fallimento e si è deciso a + portare il proprio macinino da un vero meccanico, ecco che questi + inevitabilmente si mette a cercare in una gigantesca cassetta degli + attrezzi estraendone il "coso" perfetto per fare quel lavoro senza + alcuno sforzo. L'arte del port scanning è molto simile. Chi è esperto + capisce e conosce tutte le tecniche e sceglie quella appropriata (o una + combinazione appropriata) per un certo lavoro. Utenti inesperti o script + kiddes, d'altro canto, provano a risolvere ogni problema con la + scansione SYN di default. Poiché Nmap è free (in lingua inglese + significa sia "libero" che "gratuito", e per questo è lasciato + inalterato, NdT) l'unico limite alla capacità di fare port scanning è + solo la conoscenza. Questo lo rende sicuramente più accessibile del + mondo delle automobili, dov'è richiesta non solo una notevole abilità + per sapere che serve uno specifico strumento, ma è anche necessario + andarselo a comprare. + + La maggior parte delle scansioni è disponibile solo per gli + utenti privilegiati. Questo è dovuto al fatto che esse inviano e + ricevono pacchetti "raw" (non formattati o "grezzi", ovvero semplici + stringhe di bit), i quali richiedono l'accesso come root su sistemi UNIX. + L'uso di un account di amministrazione su Windows è raccomandato, + nonostante Nmap a volte funzioni anche per gli utenti non privilegiati + quando WinPcap è già stato caricato nel sistema operativo. Nel 1997, + quando Nmap venne rilasciato, la necessità di avere privilegi di root + era una seria limitazione perché molti utenti avevano solo accesso ad + account su macchine che davano semplici shell condivise. Ora il + mondo è cambiato: i computer sono più economici, molta più gente ha + una connessione a Internet diretta e sempre attiva, e i sistemi UNIX per + desktop (includendo tra questi macchine Linux o OS X) sono ormai la + maggioranza. Una versione di Nmap per Windows è ora disponibile, così da + poterlo eseguire su ancora più desktop. Per tutte queste ragioni gli + utenti hanno sempre meno necessità di usare Nmap da account limitati, il + che non fa che migliorare la situazione, in quanto le opzioni + privilegiate fanno di Nmap uno strumento molto più potente e + flessibile. + + Nonostante Nmap faccia del proprio meglio per produrre risultati + accurati, si tenga presente che tutte le sue conclusioni sono basate su + pacchetti che tornano indietro dalle macchine di destinazione (o dai + firewall che le proteggono). Tali host possono essere inaffidabili e + restituire risposte mirate proprio a confondere e sviare Nmap. Sono molto + più comuni inoltre host che non rispettano gli RFC e che non rispondono + come dovrebbero ai tentativi di connessione di Nmap. Scansioni come FIN, + NULL e Xmas sono particolarmente suscettibili a questo problema. Tali + problematiche sono specifiche a certi tipi di scansione ed in quanto + tali vengono discusse nelle sezioni individuali ad esse dedicate. + + Questa sezione documenta le molteplici tecniche di port scanning + supportate da Nmap. Si può usare solo un metodo per volta, a parte + l'UDP scan () e gli SCTP scan (, + ) che possono essere combinati con uno qualsiasi dei + TCP scan. Per ricordarsi le varie opzioni di port scan, esse sono della + forma , dove + C è un carattere significativo del nome della + scansione, in genere il primo. L'unica eccezione a questa regola + generale è il cosiddetto FTP bounce scan che viene tuttavia + sconsigliato (opzione ). Di default Nmap effettua un + SYN scan, oppure un connect scan se l'utente non ha privilegi sufficienti + per mandare pacchetti raw (che richiedono l'accesso come root su UNIX). + Di tutte le scansioni elencate di seguito, gli utenti non privilegiati + possono solo effettuare scansioni connect ed FTP bounce. + + + + (TCP SYN scan) + + + Il SYN scan è l'opzione di default ed è la più usata per + buone ragioni. Può essere effettuato velocemente: effettua la + scansione su migliaia di porte al secondo su una rete veloce non + limitata da firewall restrittivi. Il SYN scan è relativamente + nascosto e poco invasivo, poiché non completa mai le connessioni + TCP. Funziona inoltre con ogni stack TCP compatibile e non + dipende dalle idiosincrasie di piattaforme specifiche come fanno + gli altri tipi di scan di Nmap quali FIN/NULL/Xmas, Maimon e Idle + scan. Inoltre permette una differenziazione chiara ed affidabile + tra le porte appartenenti agli stati open, closed e filtered. + + Questa tecnica è spesso indicata come "scanning + semi-aperto" (tradotto letteralmente per esigenze di comprensione, + da "half-open scanning", NdT), perché non viene aperta una + connessione TCP completa. Viene mandato un pacchetto SYN come se + si fosse sul punto di aprire una connessione reale e si attende + una risposta. Un SYN/ACK indica che la porta è in ascolto + (aperta), mentre un RST (reset) indica che la porta non è in + ascolto. Se non viene ricevuta nessuna risposta dopo diverse + ritrasmissioni la porta viene marcata come filtrata. La porta + viene marcata come tale anche se viene ricevuto un pacchetto di + errore "ICMP unreachable" (tipo 3, codici 1, 2, 3, 9, 10, + 13). La porta viene considerata aperta anche nel caso in cui un + pacchetto SYN (senza il flag ACK) viene ricevuto in risposta. + Questo in base ad una feature TCP estremamente rara conosciuta come + "apertura simultanea" ("simultaneous open") o connessione "split + handshake" (vedere ). + + + + + (TCP connect scan) + + + La scansione di tipo TCP connect è la scansione TCP di + default dove la scansione SYN non è un'opzione viabile. Questo è + il caso in cui un utente non ha privilegi sull'invio di pacchetti + "raw". Anziché scrivere pacchetti "raw" come in molti altri tipi di + scansioni, Nmap richiede al sistema operativo sottostante di + stabilire una connessione con la macchina di destinazione invocando + la chiamata di sistema connect. + Questa è la stessa chiamata di alto livello invocata per stabilire + una connessione da browser web, client p2p e molte altre + applicazioni orientate all'utilizzo in rete. Essa è parte + dell'interfaccia di programmazione conosciuta come Berkeley Sockets + API. Anziché leggere le risposte ai pacchetti "raw" inviati + direttamente sul cavo, Nmap usa questa API per ottenere + informazioni sullo stato di ogni tentativo di connessione. + + Quand'è possibile, il SYN scan è generalmente una scelta + migliore. Nmap ha meno controllo sulla syscall connect rispetto ai pacchetti "raw", + rendendolo quindi meno efficiente. La syscall completa le + connessioni alle porte aperte specificate anziché limitarsi al + reset dovuto alla scansione semi-aperta del SYN scan. Non solo + questo approccio richiede più tempo e numero maggiore di pacchetti + per ottenere le stesse informazioni, ma le macchine obiettivo sono + più propense a tenere traccia (log) della connessione. Inoltre un + IDS ("Intrusion Detection System", sistema di controllo delle + intrusioni) decente se ne accorgerà. Tuttavia la maggior parte + delle macchine non hanno tali sistemi di allarme. Molti servizi sui + propri sistemi UNIX standard aggiungeranno una nota al syslog, e + alle volte un messaggio di errore criptico, quando Nmap si connette + e chiude la connessione senza inviare dati di alcun tipo. Solo + alcuni patetici servizi andranno in crash in queste condizioni, + nonostante non sia comune. Un amministratore che dovesse vedere un + insieme di tentativi di connessioni provenienti da un singolo + sistema saprà infine che è vittima di un connect scan. + + + + + (UDP scans) + + + Così come i servizi più comuni su Internet girano attraverso + il protocollo TCP, anche i servizi UDP sono + altrettanto diffusi. DNS, SNMP e DHCP (sulle porte registrate 53, + 161/162 e 67/68) sono tre dei più comuni. Poiché lo scan su UDP + è generalmente più lento e più difficoltoso di quello su TCP, + alcuni esaminatori di sicurezza ("security auditors") ignorano + questo tipo di porte. Ciò è un errore, poiché i servizi UDP + vulnerabili sono abbastanza comuni e un attaccante sicuramente non + ignorerà completamente questo protocollo. Fortunatamente Nmap + può aiutare ad enumerare le porte UDP. + + Lo scan UDP si attiva con l'opzione . + Può essere combinato con uno scan di tipo TCP come ad esempio un + SYN scan () per controllare entrambi i + protocolli nel corso della stessa sessione. + + Lo scan UDP funziona inviando pacchetti UDP ad ogni porta di + destinazione. Per alcune porte comuni, come la 53 e la 161, un + carico dati viene aggiunto per aumentare le probabilità di + risposta, ma per la maggior parte delle porte il pacchetto viene + inviato vuoto, a meno che non vengano specificate le opzioni + , o + . Se viene restituito un errore ICMP + "port unreachable" (tipo 3, codice 3) significa che la porta è + closed (chiusa). Altri errori + ICMP di tipo "unreachable" (irraggiungibile) come quelli del tipo + 3, codici 1, 2, 9, 10 o 13 andranno ad identificare la porta come + filtered (filtrata). Talvolta un + servizio risponderà con un pacchetto UDP, dimostrando quindi + che lo stato della porta è open + (aperta). Se non viene ricevuta alcuna risposta dopo alcune + ritrasmissioni, la porta viene classificata come open|filtered (aperta|filtrata). Questo + significa che la porta può essere aperta o che probabilmente un + filtro di pacchetti sta bloccando la comunicazione. Un version + detection () può essere usato per aiutare a + differenziare le porte veramente aperte da quelle che sono + filtrate. + + La sfida maggiore con l'UDP scan è la velocità. Le porte + aperte e filtrate raramente inviano qualche risposta, lasciando + Nmap in timeout e facendolo ritrasmettere per evitare il caso in + cui il probe o la risposta siano andati perduti. Le porte chiuse + sono spesso un problema ancora maggiore: esse generalmente + rimandano un pacchetto ICMP "port unreachable error", ma a + differenza dei pacchetti RST rimandati dalle porte chiuse TCP come + risposta ad un SYN o connect scan, molti host limitano il tasso di + invio di tali pacchetti di default. Linux e Solaris sono + particolarmente restrittivi da questo punto di vista. Ad esempio, + il kernel 2.4.20 limita i messaggi di "destination unreachable" a + uno al secondo (definito in net/ipv4/icmp.c). + + Nmap si accorge di questi limiti sulla frequenza di invio e + rallenta l'invio dei probe in maniera dinamica, per evitare di + intasare la rete con pacchetti inutili che la macchina di + destinazione ignorerà comunque. Sfortunatamente, un limite come + quello di Linux di un pacchetto al secondo rende una scansione su + 65.535 porte di una durata teorica di più di 18 ore. Suggerimenti + per rendere più veloce gli scan UDP sono quelli di effettuare + scansioni su più host in parallelo, fare uno scan veloce + preliminare sulle porte più usate, effettuare la scansione + dall'interno del firewall ed infine usare l'opzione + per evitare host troppo lenti nel + rispondere. + + + + + (SCTP INIT scan) + + + SCTP è + un'alternativa relativamente nuova rispetto ai protocolli TCP ed + UDP, il quale combina molte delle caratteristiche di entrambi + aggiungendo nuove funzionalità come il multi-homing e il + multi-streaming. Principalmente Viene utilizzato per i servizi + collegati ai protocolli SS7/SIGTRAN, ma potenzialmente può essere + utilizzato per altre applicazioni. Lo scan SCTP INIT scan è + l'equivalente del TCP SYN scan: viene eseguito velocemente e + scansiona migliaia di porte al secondo su una rete veloce non + limitata da firewall restrittivi. Come il SYN scan, l'INIT scan è + relativamente nascosto e poco invasivo, dato che non completa mai + le connessioni SCTP. Consente inoltre una chiara ed affidabile + differenziazione tra gli stati della porta open (aperta), + closed (chiusa) e filtered (filtrata). + + Questa tecnica è conosciuta come "half-open" (semi-aperta), + in quanto non si completata l'associazione SCTP. Viene inviato un + INIT chunk, esattamente come se si volesse iniziare una reale + associazione. Se si riceve un INIT-ACK chunk in risposta, significa + che la porta è in ascolto (aperta), mentre se si riceve un ABORT + chunk significa che la porta non è in ascolto (chiusa). Se non si + riceve nessuna risposta dopo alcune ritrasmissioni, la porta viene + marcata come filtered. La porta viene anche considerata filtrata se + viene ricevuto un messaggio ICMP "unreachable error" (tipo 3, + codice 1, 2, 3, 9, 10 o 13). + + + + + ; ; + (TCP NULL, FIN, and Xmas scans) + + + Queste tre tipologie di scansione (e molte altre sono + possibili con l'opzione descritta + nella prossima sezione) sfruttano una piccola vulnerabilità + nell'RFC del + protocollo TCP per distinguere tra le porte open (aperte) e closed (chiuse). A pagina 65 si dice che + se lo stato della porta [di destinazione] è CHIUSO ... un + segmento in arrivo che non contiene un RST causerà l'invio di un + RST in risposta. La pagina successiva discute di + pacchetti inviati a porte aperte senza i bit SYN, RST o ACK + impostati, indicando che: questa situazione è decisamente + improbabile, ma se dovesse capitare i segmenti vanno ignorati e si + deve ritornare [alla funzione chiamante, NdT]. + + Quando si scansionano sistemi aderenti a questo testo RFC, + qualunque pacchetto che non contenga i bit SYN, RST o ACK causerà + un RST di ritorno se la porta è chiusa e nessuna risposta se la + porta è aperta. Finché nessuno di questi tre bit è incluso, + qualunque combinazione degli altri tre bit (FIN, PSH, e URG) va + bene. Nmap sfrutta tutto ciò tramite questi tre tipi di + scan: + + + + NULL scan () + + + Non manda nessun bit (il TCP flag header è 0). + + + + + FIN scan () + + + Setta solo il bit FIN. + + + + + Xmas scan () + + + Setta i bit FIN, PSH e URG, accendendo il pacchetto + come un albero di natale. + + + + + Questi tre tipi di scan sono esattamente identici nel + comportamento, ad eccezione delle attivazioni dei tre bit nei + pacchetti TCP usati per la verifica delle porte. Se viene ricevuto + un pacchetto RST, la porta è considerata closed, mentre l'assenza + di risposta indica che la porta è open|filtered. La porta è marcata come + filtered se viene ricevuto un + pacchetto ICMP "unreachable" (tipo 3, codice 1, 2, 3, 9, 10 o + 13). + + Il vantaggio sostanziale di questi tipi di scan è che + possono penetrare in certi non-stateful firewall e packet + filtering router. Un altro vantaggio è che questi tipi di + scansione sono un po più invisibili anche dei SYN scan. In ogni + caso non è corretto fare cieco affidamento su questo, gran parte + dei moderni prodotti IDS possono essere configurati in modo da + rilevarli. Il grande svantaggio è che non tutti i sistemi seguono + alla lettera la RFC 793. Un buon numero di sistemi manda risposte + RST ai pacchetti di controllo indipendentemente dal fatto che le + porte siano aperte o chiuse. Questo causa il fatto che tutte le + porte appaiano come closed. I + più diffusi sistemi operativi che fanno questo sono Microsoft + Windows, molti apparati Cisco, BSDI e IBM OS/400. Questo scan + funziona applicato alla maggior parte dei sistemi UNIX. Un altro + svantaggio di questi scan è che non riescono a distinguere tra le + porte open e quelle filtered, dando come risposta open|filtered. + + + + + (TCP ACK scan) + + + Questo scan è diverso dagli altri discussi finora dal momento + che non serve per determinare se le porte sono open (o open|filtered). Viene usato per mappare + le regole di firewalling determinando se sono stateful o no e quali + porte sono filtrate. + + I pacchetti dell'ACK scan hanno soltanto il flag ACK + abilitato (a meno che non si usi ). + Mentre si scansionano sistemi non filtrati, sia le porte open che le porte closed manderanno pacchetti RST. Nmap poi + le cataloga come unfiltered, nel + senso che è possibile raggiungerle con un pacchetto ACK, ma che + siano aperte o chiuse non è determinabile. Le porte che non + rispondono, o mandano certi errori ICMP (tipo 3, codice 1, 2, 3, 9, + 10 o 13), sono etichettate come filtered. + + + + + (TCP Window scan) + + + Il window scan è esattamente la stessa cosa di ACK scan, ad + eccezione del fatto che sfrutta un dettaglio di implementazione di + certi sistemi per differenziare le porte aperte e quelle chiuse, + invece di scrivere sempre unfiltered quando restituisce un RST. Lo + fa esaminando il campo TCP Window del pacchetto RST che ritorna. In + alcuni sistemi le porte aperte usano una grandezza della finestra + positiva (anche per i pacchetti RST), mentre nelle porte chiuse la + grandezza della finestra è zero. Quindi, invece di catalogare + sempre le porte come unfiltered + quando si riceve un RST di ritorno, il Window scan lista le porte + come open o closed a seconda che il valore in quel + RST (reset) sia, rispettivamente, positivo o pari a zero. + + Questo scan fa affidamento a un dettaglio implementativo di + una minoranza di sistemi presenti in Internet, quindi ciò + non è sempre affidabile. Nei sistemi in cui questo dettaglio + implementativo non sussiste, di norma lo scan segnalerà tutte le + porte closed. Ovviamente sarà + possibile che la macchina non abbia realmente nessuna porta aperta. + Se la maggior parte delle porte è closed, ma alcune porte comuni (come la + 22, la 25 o la 53) appaiono filtered, il sistema è quasi sicuramente + suscettibile a questo tipo di scan. Occasionalmente, alcuni altri + sistemi presenteranno un comportamento esattamente opposto. Se lo + scan riporta 1.000 porte aperte e 3 chiuse o filtrate, allora + quelle 3 saranno con ogni probabilità proprio quelle aperte. + + + + + (TCP Maimon scan) + + + Il Maimon scan è stato nominato così in onore al suo + scopritore, Uriel Maimon. Egli descrisse questa tecnica + nell'articolo #49 della rivista Phrack (Novembre 1996). Nmap, che + incluse questa tecnica, fu rilasciato due articoli dopo. Questa + tecnica esattamente uguale ai NULL, FIN e Xmas scan, ad eccezione + del fatto che i pacchetti di scansione sono FIN/ACK. In accordo + con la RFC 793 + (TCP), un pacchetto RST dovrebbe essere generato in risposta a tale + stimolo. Ad ogni modo, Uriel notò che in molti sistemi derivati da + BSD il pacchetto veniva scartato se la porta era aperta. + + + + + (Custom TCP scan) + + + Gli utilizzatori molto avanzati di Nmap hanno necessità di + non limitarsi semplicemente ad utilizzare le scansioni tipiche + offerte. L'opzione consente di + designare una scansione personalizzata specificando + arbitrariamente i flag TCP necessari. Liberate la vostra + inventiva, ed evitate così che i vendor di Intrusion Detection + Systems trovino nuove regole da aggiungere ai loro sistemi + semplicemente sfogliando la "Man Page" di Nmap! + + I parametri dell'opzione + possono essere un valore numerico indicante i flag TCP, come ad + esempio 9 (PSH e FIN) anche se l'utilizzo di nomi simbolici risulta + comunque più semplice. Basta mettere creare una qualsiasi + combinazione di URG, ACK, PSH, RST, SYN e FIN. Per esempio, imposta tutti i flag, anche se non + risulta molto utile al fine della scansione. L'ordine con cui + vengono specificati non è rilevante. + + Oltre allo specificare i flag desiderati, è possibile + indicare un tipo di scansione TCP (come o + ). Questo specifica come Nmap deve + interpretare le risposte. Per esempio, un SYN scan considera la + mancanza di risposta come una porta filtered, mentre un FIN scan interpreta + lo stesso comportamento per identificare una porta open|filtered. Nmap si comporterà nello + stesso modo che per la scansione normale, tranne che per il fatto + di interpretare i flag TCP che sono stati specificati. Se non viene + indicato un diverso tipo di scansione, viene automaticamente + utilizzata la SYN scan. + + + + + + + + L'SCTP COOKIE ECHO è più avanzato rispetto all'SCTP scan. + Sfrutta il fatto che le implementazioni SCTP dovrebbero lasciar + cadere (drop) in modo trasparente i pacchetti che contengono dei + COOKIE ECHO chunk sulle porte aperte ed inviare un ABORT se la + porta è chiusa. Il vantaggio di questo tipo di scansione sta nel + fatto che è meno rilevabile rispetto all'INIT scan. Inoltre, ci + possono essere firewall che utilizzano regole non-stateful che + bloccano gli INIT chunk, ma non i COOKIE ECHO chunk. Non illudersi + però che quest'opzione renda un port scan invisibile; un buon IDS + riesce ad individuare anche le scansioni SCTP COOKIE ECHO. Lo + svantaggio è che le scansioni SCTP COOKIE ECHO non differenziano le + porte tra open e filtered lasciando come stato open|filtered in entrambi i casi. + + + + + + (idle scan) + + + Questo metodo di scansione avanzato permette di effettuare + una scansione TCP completamente invisibile dell'obiettivo (ovvero + nessun pacchetto viene inviato dall'indirizzo IP reale da cui si + sta effettuando la scansione.) Viene diversamente utilizzato un + unico attacco parallelo che utilizza la predicibilità dell'ID + relativo alla sequenza di frammentazione generato dallo + zombie host per ottenere informazioni + sulle porte aperte dell'obiettivo. I sistemi IDS interpreteranno la + scansione come se provenisse dalla macchina zombie specificata (che + deve essere attiva e rispondere a certi criteri). Tutti i dettagli + su questa affascinante tecnica di scansione si trovano al seguente + link TCP + Idle Scan (-sI). + + Oltre che essere straordinariamente nascosto (grazie alla + sua natura "invisibile"), questo tipo di scansione permette di + creare una mappa indicante le relazioni tra le macchine da un punto + di vista dell'indirizzo IP. I risultati dalla scansione mostrano le + porte aperte dalla prospettiva dell'indirizzo IP della + macchina zombie. Risulta così possibile effettuare + scansioni utilizzando diversi zombie che si ritiene possano + attraversare router o sistemi con packet filter. + + È possibile aggiungere i due punti (:) seguiti dal numero di + porta per l'host zombie, se si vuole sondare una particolare porta + per vedere i cambiamenti nell'IP ID. Diversamente Nmap utilizzerà + the porta che utilizza di default per i ping TCP (80). + + + + + (IP protocol scan) + + + L'IP protocol scan permette di determinare che protocolli IP + (TCP, ICMP, IGMP, ecc.) sono supportati dalle macchine obiettivo. + Non è tecnicamente un port scan, dato che utilizza i numeri + indicanti il protocollo IP e non i numeri di porta TCP o UDP. + Utilizza comunque ancora l'opzione per + scegliere il protocollo da scansionare, riporta i risultati nel + normale formato della tabella delle porte ed utilizza lo stesso + engine sottostante al port scanning reale. Per questo motivo è + profondamente analogo ad un port scan e viene trattato in questa + sezione. + + Oltre che essere intrinsecamente utile, il protocol scan + dimostra la potenza del software open-source. Per quanto l'idea + fondamentale è abbastanza semplice, non immaginavo di aggiungerla + fino a quando non avessi ricevuto richieste per questa + funzionalità. Nell'estate del 2000, Gerhard Rieger concepì l'idea + e scrisse un'eccellente patch che la implementasse, spedendola poi + alla mailing list nmap-hackers. Io incorporai + questa patch in Nmap e ne rilasciai una nuova versione il giorno + seguente. Alcuni software commerciali ebbero clienti talmente + soddisfatti da contribuire allo sviluppo di questa tecnica con i + loro miglioramenti! + + Il protocol scan funziona in modo simile all'UDP scan solo + che invece di agire sul campo "port number" del pacchetto UDP, + invia degli header di pacchetto IP e agisce sul campo di 8 bit + relativo al protocollo. Questi headers sono tipicamente vuoti, non + contengo dati e nemmeno l'header proprietario del protocollo + dichiarato, ad eccezione di TCP, UDP, ICMP, SCTP e IGMP. Un header + valido per queste eccezioni viene incluso perché, diversamente, + alcuni sistemi non li invierebbero e perché Nmap è già provvisto di + funzioni per crearli. Invece che cercare un messaggio ICMP "port + unreachable", il protocol scan è alla ricerca di un messaggio + ICMP "protocol unreachable". Se Nmap riceve + una qualunque risposta di qualunque protocollo dall'host + scansionato, Nmap indica tale protocollo come open. Un errore ICMP "protocol + unreachable" (tipo 3, codice 2) fa sì che il protocollo sia + indicato come closed. Altri + errori ICMP "unreachable" (tipo 3, codice 1, 3, 9, 10 o 13) fanno + classificare il protocollo come filtered (denotando, contestualmente, + che il protocollo ICMP è open). Se non viene ricevuta alcuna + risposta, il protocollo è identificato come open|filtered. + + + + + (FTP bounce + scan) + + + Un'interessante caratteristica del protocollo FTP (RFC 959) è + il supporto per le cosiddette "proxy FTP connections". Questa + permette all'utente di connettersi ad un server FTP e richiedere + che il file sia inviato ad un server FTP differente. Tale + caratteristica si presta per varie tipologie di abuso, cosicché + molti server hanno smesso di supportarla. Uno degli abusi + nell'utilizzo di questa peculiarità è la possibilità di far + effettuare al server FTP un port scan verso altri host, basta + semplicemente richiedere al server FTP di inviare un file ad + ognuna delle porte che vogliamo scansionare. Il messaggio di errore + ci permetterà di dedurre se la porta è aperta o meno. Questo è + un ottimo modo per aggirare i firewall in quanto i server FTP + aziendali sono spesso posizionati nella rete così da poter accedere + a più host interni di quanto sia possibile fare da Internet. Nmap + supporta l'FTP bounce scan attraverso l'opzione + . I parametri per tale opzione devono + rispettare il formato: + username:password@server:port + dove Server è l'hostname o l'indirizzo + IP di un server FTP vulnerabile a questo attacco. Come in una URL + normale, è possibile omettere + username:password, + ed in tal caso verranno utilizzate credenziali anonime (user: + anonymous password:-wwwuser@). Il numero di porta (ed i due + punti che lo precedono) possono essere altresì omessi, in tal + caso verrò utilizzata la porta FTP di default (21) per la + connessione al server. + + Questa vulnerabilità è stata diffusa nel 1997 quando Nmap è + stato rilasciato, ma è stata risolta su gran parte dei sistemi. + Esistono alcuni server ancora vulnerabili, ed ha senso provare ad + utilizzarla quando ogni altra cosa fallisce. Se l'obiettivo è + oltrepassare un firewall, è necessario effettuare una scansione + sulla rete cercando di trovare la porta 21 aperta (o anche cercando + un servizio FTP su di una qualsiasi porta, utilizzando la version + detection) e provare quindi lo script NSE ftp-bounce. Nmap sarà in grado di + evidenziare se un host è vulnerabile o meno a questa tecnica. Se si + sta cercando semplicemente di nascondere le proprie tracce, non vi + è bisogno (e di fatto non si dovrebbe) di limitare la scansione + alla rete che realmente ci interessa. Prima di iniziare ad + effettuare scansioni su indirizzi Internet casuali per trovare + server FTP vulnerabili è bene tenere presente che gli + amministratori di sistema potrebbero non apprezzare che i loro + server siano soggetti a tali abusi. + + + + + + + Port Specification e Scan Order + + Oltre a tutti i metodi discussi in precedenza, Nmap offre la + possibilità di specificare quali porte devono essere scansionate e se + l'ordine delle porte deve essere casuale oppure sequenziale. Di default + Nmap effettua la scansione delle 1.000 porte più comuni per ogni + protocollo. + + + + (Only scan specified + ports) + + + Questa opzione permette di ignorare le impostazioni di + default e di specificare quali porte si vogliono scansionare. È + possibile indicare i singoli numeri delle porte, così come gli + intervalli, separati da un trattino (ad esempio 1-1023). Il primo + e/o l'ultimo valore di un intervallo possono essere omessi, facendo + sì che Nmap utilizzi rispettivamente 1 e 65535 come limiti. È + quindi possibile utilizzare l'opzione per + effettuare la scansione delle porte da 1 a 65535. È possibile + effettuare scansioni sulla porta zero se viene espressamente + specificato. Nel caso di un IP protocol scan + (), questa opzione indica il numero del + protocollo che si desidera scansionare (0-255). + + Quando si effettua una scansione combinata di protocolli (ad + esempio TCP e UDP), è possibile specificare un protocollo + particolare anteponendo al numero di porta T: per TCP, U: per UDP, S: per SCTP o P: per IP Protocol. Tale indicazione + risulta valida sino a che non ne viene indicata un'altra. Per + esempio, l'opzione effettua una scansione + UDP delle porte 53, 111 e 137, lo stesso per le porte TCP. Si noti + che per effettuare una scansione su entrambi i protocolli UDP e + TCP, è necessario specificare l'opzione e + almeno un metodo di TCP scan (come , + o ). Se non viene indicato + nulla, i numeri di porta vengono aggiunti a tutte le liste dei + protocolli. + + Le porte possono anche essere indicate tramite il loro nome, + così come sono indicate nell'nmap-services. Si possono anche + utilizzare i caratteri speciali * e ? con i nomi. Ad esempio, per + scansionare l'FTP e tutte le porte il cui nome inizia con "http", + si può usare . Si raccomanda di + prestare attenzione alla "shell expansions" e di racchiudere tra + apici (quote) l'argomento di se non si è + sicuri. + + I range di porte possono essere racchiusi da parentesi quadre + per indicare le porte all'interno di quel range che appare in + nmap-services. Ad esempio, ciò + che segue eseguirà la scansione di tutte le porte in nmap-services uguali o minori di 1024: + . Si raccomanda di prestare attenzione + alla "shell expansions" e di racchiudere tra apici (quote) + l'argomento di se non si è sicuri. + + + + + + (Exclude the specified ports from scanning) + + + Quest'opzione specifica quali porte Nmap deve escludere dalla + scansione. I port ranges devono essere + specificati in modo simile a . Per le scansioni + IP protocol (), questa opzione specifica il + numero di protocolli che si vuole escludere (0–255). + + Quando si richiede di escludere le porte, queste vengono + escluse da tutti i tipi di scansione. Ciò include anche la fase di + discovery. + + + + + (Fast (limited port) scan) + + + Indica che si intende effettuare la scansione di un minor + numero di porte rispetto al default. Normalmente Nmap scansione le + 1.000 porte più comuni per ogni protocollo scansionato. Con + l'opzione il numero si riduce a 100. + + Nmap ha bisogno del file nmap-services che contiene le + informazioni di frequenza, in modo da sapere quali sono le porte + più comuni (vedi Well Known Port List: + per maggiori + informazioni sulle "port frequencies"). Se la "port frequency + information" non è disponibile, forse perché si sta utilizzando un + file nmap-services + personalizzato, Nmap scansiona tutte le porte nominate più le porte + nell'intervallo 1-1024. In questo caso, l'opzione + indica di scansionare solo le porte che sono + presenti nel file nmap-services. + + + + + (Don't randomize ports) + + + Di default, Nmap effettua la scansione delle porte in ordine + casuale (tranne che per alcune porte comuni che vengono controllate + per prime per motivi di efficienza). La scansione delle porte in + ordine casuale è tipicamente un vantaggio, ma è possibile + utilizzare l'opzione così da effettuare i + controlli in ordine sequenziale crescente. + + + + + + + + + Scansiona tutte le porte presenti nel file nmap-services con un rapporto maggiore + di quello indicato. ratio deve essere + compreso tra 0.0 e 1.1. + + + + + + + + + + Scansiona le n porte presenti nel + file nmap-services con il + maggior rapporto, dopo aver escluso tutte le porte indicate in + . n deve + essere maggiore o uguale a 1. + + + + + + + + Service e Version Detection + + Utilizzando Nmap e dirigendo la scansione su una macchina remota + è possibile scoprire che le porte 25/tcp, 80/tcp e 53/udp sono aperte. + Utilizzando il suo database di circa 2.200 servizi noti, contenuto nel + file nmap-services, Nmap + probabilmente sarà in grado di indicare che ti tratta rispettivamente + di un mail server (SMTP), di un web server (HTTP) e di un name server + (DNS). Tale riconoscimento è solitamente accurato - la maggior parte dei + demoni in ascolto sulla porta 25 sono, in effetti, mail server. Non è + comunque opportuno fidarsi ciecamente di tali indicazioni! È infatti + possibile erogare servizi su porte non convenzionali. + + Anche se le indicazioni di Nmap sono corrette, e gli ipotetici + server sopracitati sono effettivamente SMTP, HTTP e DNS, queste + informazioni non sono esaustive. Quando si eseguono dei "vulnerability + assessments" (o anche semplicemente un inventario della rete) della + vostra società o di clienti, è interessante sapere esattamente di che + mail e DNS server si tratta e quale versione è in uso. Conoscere + accuratamente la versione del software è di fondamentale importanza per + determinare a quali exploits è vulnerabile il server. Version detection + è di grande aiuto nel ricercare queste informazioni. + + Al momento dell'identificazione delle porte TCP e/o UDP da parte + di uno dei vari metodi di scansione, il version detection interroga + queste porte per rilevare ulteriori dati sui servizi erogati. Il + database contenuto nel file nmap-service-probes contiene istruzioni per + interrogare i vari servizi e per interpretarne le risposte. Nmap cerca + quindi di determinare di che servizio si tratta (ad esempio FTP, SSH, + Telnet, HTTP), il nome dell'applicazione (ad esempio ISC BIND, Apache + httpd, Solaris telnetd), la versione, l'hostname, il tipo di device (ad + esempio stampante, router), la famiglia del sistema operativo (ad esempio + Windows, Linux). Quando possibile Nmap restituisce anche la + rappresentazione CPE ("Common Platform Enumeration") di questa + informazione. Alle volte sono disponibili altri dettagli come l'apertura + di un X server alle connessioni, la versione del protocollo SSH o + l'utenza utilizzata da KaZaA. Ovviamente la maggior parte dei servizi + non rilasciano tutte queste informazioni. Se Nmap viene compilato con il + supporto per OpenSSL, sarà in grado di connettersi ai server SSL per + dedurre quale tipo di servizio viene offerto dietro al suo "encryption + layer". Alcune delle porte UDP vengono indicate come open|filtered se un UDP port scan non è in + grado di determinare con precisione se la porta è open o filtered. Il + version detection cercherà di ottenere una risposta da queste porte + (esattamente come per le porte aperte), e modificherà lo stato in + open se ci riuscirà. Le porte TCP + open|filtered vengono trattate nello + stesso modo. Bisogna tener presente che l'opzione + abilita, fra le varie cose, il version detection. Il version detection + viene descritto nel dettaglio in Chapter 7, Service and Application + Version Detection. + + Quando i servizi RPC vengono identificati, Nmap è in grado di + raffinare quanto rilevato così da riconoscere versione e nome del + servizio RPC. Inonda tutta le porte TCP/UDP rilevate come RPC con dei + comandi NULL del programma SunRPC con lo scopo di determinare se sono + effettivamente porte RPC e, nel caso, il programma e la versione che sono + in esecuzione. Quindi si possono effettivamente ottenere le stesse + informazioni del comando rpcinfo -p + anche se il portmapper dell'obiettivo e dietro un firewall (o protetto da + TCP wrappers). I decoy attualmente non funzionano con l'RPC scan. + + Quando Nmap riceve delle risposte da un servizio ma non è in + grado di trovarne un'interpretazione nel suo database, visualizza una + particolare "fingerprint" e una URL per permettere di inviare quanto + rilevato nel caso si conosca a priori che cosa sta effettivamente + girando su quella porta. È importante perdere qualche minuto per + effettuare l'invio di questi dati quando possibile perché così facendo + chiunque in futuro potrà beneficiare dei dati raccolti e riconoscere + anche questo servizio. Grazie a questo sistema Nmap è in grado di + identificare circa 6.500 differenti varianti per più di 650 protocolli + come SMTP, FTP, HTTP, ecc. + + Version detection viene attivato e controllato dalle seguenti + opzioni: + + + + (Version detection) + + + Abilita il version detection, come precedentemente + illustrato. In alternativa, è possibile utilizzare l'opzione + che attiva il version detection, tra le altre + cose. + + è un alias . Fino a + Marzo 2011 era usata per attivare l'RPC separatamente dal version + detection, ma ora queste opzioni sono sempre combinate. + + + + + (Don't exclude any ports from + version detection) + + + Normalmente, il version detection di Nmap non invia pacchetti + alla porta TCP 9100 poiché alcune stampanti accettano e stampano + direttamente qualunque dato ricevuto su questa porta. Se tale porta + fosse sottoposta a scansione, verrebbero stampate decine di pagine + contenenti richieste HTTP GET puri, dati binari di sessioni SSL e + via discorrendo. È possibile cambiare il comportamento del version + detection di Nmap con la modifica o la rimozione della direttiva + Exclude nel file nmap-service-probes oppure specificando + l'opzione , così da effettuare la + scansione di tutte le porte, indipendentemente da quanto indicato + nella direttiva Exclude. + + + + + + (Set version scan intensity) + + + Quando si effettua un version scan (), + Nmap invia una serie di probe, ognuno dei quali ha assegnato un + valore compreso tra 1 e 9. I pacchetti con valore più basso sono in + grado di riconoscere i servizi comunemente diffusi, mentre quelli + con valori più alti sono raramente necessari. Il livello di + accuratezza specifica quali probe devono essere impiegati; più alto + è il livello, più è probabile che il servizio venga correttamente + identificato. D'altro canto, più una scansione è accurata e più + tempo sarà necessario. I valori devono essere compresi tra 0 e 9; + il valore di default è 7. Quando viene assegnato direttamente un + probe ad una porta utilizzando la direttiva ports nel file nmap-service-probes, esso viene + utilizzato indipendentemente dal valore indicato per l'accuratezza + del version scan. Questo garantisce, per esempio, che ogni volta + che viene trovata la porta 53 aperta vengano effettuati i + controlli specifici per il DNS; così come in caso di porta 443 + vengano invece utilizzati quelli per l'SSL e così via. + + + + + (Enable light mode) + + + Questa opzione è un alias di + . Questa modalità rende il + version scanning drasticamente più veloce, riducendone però la + capacità di identificare accuratamente i servizi. + + + + + (Try every single probe) + + + Questa opzione è equivalente a + , assicurando che ogni + singolo probe venga utilizzato su ogni singola porta. + + + + + (Trace version scan + activity) + + + Indica a Nmap di visualizzare informazioni di debug estese + relative all'attività del version scanning. È un subset di + quanto si ottiene con l'opzione + . + + + + + + + OS Detection + + Una delle più famose caratteristiche di Nmap è la possibilità + di identificare da remoto il sistema operativo di un host attraverso + il fingerprint dello stack TCP/IP. Nmap invia una serie di pacchetti + TCP ed UDP all'host remoto ed esamina ogni bit ricevuto in risposta. + Dopo aver effettuato decine di test come "il TCP ISN sampling", il "TCP + option support and ordering", il "IP ID Sampling" ed il controllo del + window size iniziale, Nmap compara i risultati con il suo database + (nmap-os-db) contenente più di + 2.600 fingerprint conosciuti e ne visualizza i dettagli se ne trova + riscontro. Ogni fingerprint comprende una descrizione del sistema + operativo ed una classificazione che indica il vendor (per esempio Sun), + il sistema operativo (per esempio Solaris), la versione (per esempio 10) + ed il tipo di device (per esempio "general purpose", router, switch, + game console, ecc). Molti fingerprint hanno anche la rappresentazione CPE + (Common Platform Enumeration), come ad esempio cpe:/o:linux:linux_kernel:2.6. + + Se Nmap non è in grado di indovinare il sistema operativo di una + macchina e le condizioni sono propizie (ad esempio una porta trovata + aperta ed una trovata chiusa), Nmap fornirà una URL che potrà essere + utilizzata per inviare il fingerprint (nel solo caso che si conosca con + certezza il sistema operativo dell'host in questione). Inviando questi + fingerprint è possibile contribuire ad ampliare la gamma di sistemi + operativi conosciuti da Nmap, così da renderlo più accurato per + tutti. + + L'OS detection abilita diversi altri test che utilizzano le + informazioni che sono state ottenute durante questo processo. Un di + questi è il "TCP Sequence Predictability Classification". Questo test + misura approssimativamente quanto è difficile stabilire una "forged + TCP connection" verso l'host remoto. È utile per sfruttare exploit basati + sul controllo del source-IP (rlogin, filtri firewall, ecc.) o per + nascondere la sorgente di un attacco. Questo tipo di spoofing viene + raramente eseguito, ma molte macchine sono ancora vulnerabili ad esso. Il + valore che indica la difficoltà è basato su campionamenti statistici e + può variare. Generalmente è preferibile utilizzare la classificazione + verbale, come worthy challenge o trivial + joke, che viene riportata solo nel normale output in modalità + "verbose" (). Quando questa modalità è abilitata + insieme all'opzione , viene anche riportata la + sequenza di generazione dell'IP ID. La maggior parte delle macchine è + nella classe incremental, il che significa che + incrementano il campo ID dell'header IP per ogni pacchetto inviato. Ciò + le rende vulnerabili a diversi attacchi avanzati di spoofing ed + "information gathering". + + Altre informazioni extra abilitate dall'OS detection riguardano + il tempo di attività (uptime) dell'obiettivo. Sfruttando l'opzione TCP + timestamp (RFC + 1323) cerca di indovinare quando una macchina ha effettuato + l'ultimo reboot. Quest'informazione può non essere affidabile, in quanto + il contatore del timestamp potrebbe non venire inizializzato a zero+ + oppure andare in overflow ed essere troncato, quindi è riportato solo + nella modalità "verbose". + + + L'OS detection viene trattato nel dettaglio in Chapter 8, Remote OS + Detection. + + OS detection viene attivato e controllato dalle le seguenti + opzioni: + + + + (Enable OS detection) + + + Abilita l'OS detection, come descritto sopra. In + alternativa, è possibile utilizzare l'opzione + per attivare sia l'OS detection, tra le altre cose. + + + + + (Limit OS detection to + promising targets) + + + L'OS detection è molto più efficace se vengono rilevate + almeno una porta TCP aperta ed una chiusa. Utilizzando questa + opzione Nmap non cercherà di effettuare l'OS detection sugli host + che non rispondo a questo criterio. È così possibile un + sensibile risparmio di tempo, specialmente se si utilizza anche + l'opzione su molti host. È importante + unicamente quando l'OS detection è richiesto attraverso le opzioni + o . + + + + + ; + (Guess OS detection results) + + + Quando Nmap non è in grado di rilevare una corrispondenza + esatta dell'OS, propone come possibilità gli OS più vicini alla + rilevazione. La corrispondenza però deve essere molto simile + perché Nmap lo faccia di default. Entrambe queste opzioni + (equivalenti) fanno si che Nmap proceda con il riconoscimento + dell'OS in modo più aggressivo. Nmap farà comunque presente quando + corrispondenze non perfette vengono mostrate e per ognuna ne + indicherà il livello di approssimazione (in percentuale). + + + + + (Set the maximum number of OS + detection tries against a target) + + + Quando Nmap esegue un OS detection su di un obiettivo e non + riesce a trovare una corrispondenza perfetta, solitamente ripete il + tentativo. Di default, Nmap prova cinque volte, se le condizioni + sono favorevoli per l'invio del fingerprint, e due volte se invece + non lo sono. Specificando un valore più piccolo (ad esempio 1) + nell'opzione , si aumentano le + performance di Nmap a discapito di una potenziale identificazione + del sistema operativo. Per contro, un valore più alto permette più + tentativi, se le condizioni sono favorevoli. Questo raramente + avviene, se non per creare migliori fingerprint da integrare nel + database di Nmap. + + + + + + + Nmap Scripting Engine (NSE) + + L'Nmap Scripting Engine (NSE) è una delle feature più potenti e + flessibili di Nmap. Permette agli utenti di scrivere (e condividere) + semplici script (utilizzando il linguaggio di programmazione Lua) per + automatizzare un gran varietà di networking task. Questi script + vengono eseguito in parallelo con la velocità e l'efficienza che ci si + aspetta da Nmap. Gli utenti possono fare affidamento sui crescenti e + diversi set di script distribuiti da Nmap, oppure scriverli loro stessi + in base alle proprie necessità. + + I task che abbiamo preso in considerazione quando abbiamo creato il + sistema includono il network discovery, version detection più + sofisticate, il vulnerability detection. NSE può anche essere usato + per la vulnerability exploitation. + + Per riflettere i differenti usi e semplificare la scelta di + quale utilizzare, ogni script contiene un campo associato con una o + più categorie. Attualmente le categorie definite sono + auth, broadcast, + default, discovery, + dos, exploit, + external, fuzzer, + intrusive, malware, + safe, version e + vuln. Queste sono tutte descritte + nella sezione Script + Categories. + + Gli script non vengono eseguiti in una sandbox e quindi + possono, accidentalmente o maliziosamente, danneggiare il sistema su + cui vengono eseguiti o invadere la propria privacy. Non eseguire mai + script di terze parti se non si ha la fiducia degli autori o non si + ha preventivamente controllato personalmente gli script. + + L'Nmap Scripting Engine è descritto nel dettaglio in Chapter 9, Nmap Scripting + Engine e viene controllato dalle seguenti opzioni: + + + + + + + Esegue uno script scan utilizzando il set di script di + default. È l'equivalente di . + Alcuni degli script in questa categoria vengono considerati + intrusivi e potrebbero non essere eseguiti su di un obiettivo + di rete senza permessi. + + + + + + + + + Esegue uno script scan utilizzando una lista, separata da + virgole, di file, categorie di script e directory. Ogni + elemento nella lista può anche essere un'espressione booleana + che descrive un più complesso set di script. Gli elementi + vengono interpretati prima come un'espressione, poi come una + categoria e infine come il nome di file o di una + directory. + + Sono presenti due feature speciali dedicate agli utenti + esperti. La prima consiste nell'aggiungere come prefisso al nome + degli script e alle espressioni il carattere + per forzarne l'esecuzione anche quando + non verrebbe fatta (ad esempio quando il relativo servizio non è + stato trovato sulla porta dell'host). L'altra feature è l'argomento + che può essere utilizzato per specificare + tutti gli script nel database di Nmap. Usare con cautela questa + funzionalità dato che NSE contiene script pericolosi come exploit, + "brute force authentication crackers" e attacchi "denial of + service". + + I percorsi dei file e delle directory possono essere sia + relativi che assoluti. I percorsi assoluti sono diretti, mentre + quelli relativi vengono ricercati nelle cartelle scripts presenti in ogni seguente + locazione: + + + + + + + + + + ~/.nmap (non + usato in Windows) + + + <HOME>\AppData\Roaming\nmap + (usato solo in Windows) + + + la directory contenente l'eseguibile di Nmap + + + la directory contenente l'eseguibile di Nmap, + seguita da ../share/nmap + + + + + + La directory corrente + + + + Quando viene specificata una directory, Nmap carica ogni + file in quella directory che ha come estensione .nse. Tutti gli altri file verranno + ignorati e la directory non verrà scansionata in modo + ricorsivo. Quando viene specificato un file, bisogna omettere + l'estensione .nse, verrà + aggiunta automaticamente se necessario. + + Gli script Nmap sono archiviati di default in una + subdirectory scripts della + directory principale di Nmap (vedi Chapter 14, + Understanding and Customizing Nmap Data Files). Per + migliorare l'efficienza, gli script vengono indicizzati nel + database scripts/script.db, che elenca le + categorie cui ogni script appartiene. + + Quando si usa il nome dagli script come riferimento dal + file script.db, si può + utilizzare come nella shell il carattere speciale + *. + + + + nmap --script + "http-*" + + + Carica tutti gli script il cui nome inizia con + http-, come http-auth e http-open-proxy. L'argomento di + è stato messo tra apici per + proteggere il carattere speciale dall'interpretazione della + shell. + + + + + Selezioni più complesse di script possono essere eseguite + utilizzando gli operatori and, or e not costruendo così espressioni booleane. + Gli operatori hanno la stessa precedenza che hanno in Lua: not è il più alto, seguito dal and e quindi or. Si può modificare la precedenza + utilizzando le parentesi. Dato che le espressioni contengono + caratteri di spazio, è necessario racchiuderle tra apici + (quote). + + + + nmap --script + "not intrusive" + + + Carica tutti gli script tranne quelli nella + categoria intrusive. + + + + + nmap --script "default or + safe" + + + Questa funzionalità è l'equivalente di --script "default,safe". + Carica tutti gli script che sono nelle categorie + default, safe o in entrambe. + + + + + nmap --script "default and + safe" + + + Carica gli script che sono in + entrambe le categorie default e safe. + + + + + nmap --script "(default or + safe or intrusive) and not http-*" + + + Carica gli script che sono nelle categorie + default, safe o intrusive tranne quelli il + cui nome inizia con http-. + + + + + + + + + + + Permette di fornire argomenti agli script NSE. Gli + argomenti sono una lista, separati da virgola, di coppie + name=value. I nomi e i + valori possono essere stringhe senza spazi o i caratteri "{", + "}", "=" e ",". Per includere uno di questi caratteri in una + stringa, si deve racchiudere la stringa tra apici singoli o + doppi. Il carattere "\" (backslash) in una stringa tra apici, + annulla la funzionalità dell'apice. Il backslash viene + interpretato in questo modo solo in questo caso particolare, + negli altri casi viene considerato "letteralmente". I valori + possono anche essere elenchi racchiusi tra parentesi graffe + ("{}"), così come in Lua. Un elenco può contenere valori, nella + forma di semplici stringhe, oppure altre coppie di nomi-valori; + sono consentiti anche gli elenchi annidati. Alcuni script + definiscono i loro argomenti con il nome dello script, ad + esempio xmpp-info.server_name. Si può + utilizzare questa identificazione per agire solo sullo script + specificato, oppure utilizzare la versione non identificativa + (server_name in questo caso) + per agire su tutti gli script che utilizzano questo argomento. + Uno script controllerà prima gli argomenti a lui identificati + (il nome degli argomenti è specificato nella documentazione + dello script) prima di accettare un argomento non qualificato. + Un esempio complesso è . + L'NSE Documentation Portal all'indirizzo elenca gli argomenti che ogni + script accetta. + + + + + + + + Permette di passare gli argomenti agli script NSE tramite + un file. Ogni argomento sulla riga di comando sostituisce + quelli nel file. Il percorso del file può essere assoluto o + relativo e, in quest'ultimo caso, farà riferimento al solito + percorso di ricerca di Nmap (NMAPDIR, ecc.). Gli argomenti + possono essere separati da virgola o da un carattere di a-capo, + ma devono seguire le stesse regole di + , senza però particolari apici + dato che non vengono elaborati dalla shell. + + + + + + + + Mostra l'help degli scripts. Per ogni script specificato, + Nmap restituisce il nome, le categorie cui appartiene e la sua + descrizione. La sintassi è la stessa dell'opzione + ; quindi per esempio se si volesse + l'help dello script ftp-anon, si dovrà eseguire il + comando nmap --script-help + ftp-anon. Oltre all'help per gli script individuali, + si potrà anche ottenere l'anteprima di cosa lo script + eseguirà secondo una specifica, ad esempio nmap --script-help default. + + + + + + + + Quest'opzione è come l'opzione + , solo un livello ISO più in + alto. Se viene specificata quest'opzione, tutte le + comunicazioni in entrata ed in uscita eseguite da uno script + vengono mostrate. Queste informazioni includono il protocollo + di comunicazione, la sorgente, l'obiettivo e i dati trasmessi. + Se più del 5% di tutti i dati trasmessi non sono stampabili a + video, allora l'output sarà in esadecimale. Indicando l'opzione + anche lo script tracing verrà + abilitato. + + + + + + + + Quest'opzione aggiorna il database degli script che si + trova nel file scripts/script.db, il quale viene + utilizzato da Nmap per determinare gli script e le categorie di + default. È necessario aggiornare il database solo se vengono + aggiunti o rimossi script NSE dalla directory di default o se + sono state cambiate le categorie di qualche script. + Quest'opzione viene generalmente utilizzata da sola: nmap --script-updatedb. + + + + + + + Timing and Performance + + Le performance sono sempre state una delle principali + priorità durante lo sviluppo di Nmap. Una scansione di default + (nmap + hostname) di un host in una + rete locale richiede circa un quinto di secondo, poco più di un + battito di ciglia. Tuttavia esso aumenta quando si sta effettuando + una scansione di centinaia o migliaia di host. Inoltre alcune opzioni + di scan (come lo scan UDP e il version detection) o alcune + configurazioni di firewall (in particolare quelle che limitano la + frequenza delle risposte, conosciute come "response rating") tendono + ad aumentare decisamente il tempo di scansione. Anche se Nmap usa + tecniche di scansione in parallelo e molti altri algoritmi avanzati + per diminuire il tempo totale impiegato, l'utente ha comunque il + controllo finale sulle modalità in cui Nmap viene eseguito. Un utente + esperto userà quindi comandi specifici per ottenere solo le + informazioni di cui ha bisogno, restando però all'interno della + finestra temporale minima. + + Alcune tecniche per migliorare i tempi di scansione sono + l'omissione di test non rilevanti e l'aggiornamento all'ultima + versione di Nmap (questo perché spesso gli aggiornamenti includono + miglioramenti delle performance). Anche ottimizzare i parametri di + timing è un'ottima strategia per ottenere sostanziali differenze; + queste opzioni sono elencate di seguito. + + Alcune opzioni accettano il parametro time. Questo indica una quantità di tempo + in secondi (di default), ma è possibile aggiungere 'ms', 's', 'm' o + 'h' per indicare millisecondi, secondi, minuti oppure ore. Ad + esempio, per il parametro gli + argomenti 900000ms, 900, 900s e 15m hanno tutti lo stesso effetto. + + + + ; + (Adjust + parallel scan group sizes) + + + Nmap ha l'abilità di effettuare port scan o version + scan su più host in parallelo. Lo spazio degli indirizzi IP + di destinazione viene diviso in gruppi e viene scansionato un + gruppo per volta. In genere gruppi di dimensioni maggiori + portano ad una migliore efficienza. Il lato negativo di tutto + ciò è che i risultati non possono essere mostrati all'utente + fino a quando l'intero gruppo non è stato esplorato + completamente. Quindi, se si lancia Nmap impostando la + dimensione del gruppo a 50, l'utente non vedrà alcun risultato + fino a quando i primi 50 host non sono stati completati (a meno + che non si selezioni la modalità verbose). + + Di default, Nmap usa un compromesso per ovviare a questa + difficoltà. Inizialmente utilizza una dimensione di cinque + host in modo da mostrare i primi risultati velocemente, + dopodiché incrementa la dimensione fino ad un massimo di + 1024. Il numero esatto dipende dalle opzioni che vengono + passate. Per ragioni di efficienza Nmap usa gruppi di + dimensione maggiore per UDP o per scansioni di porte TCP di + piccole dimensioni. + + Nel caso in cui una dimensione massima del gruppo sia + specificata con , Nmap non + oltrepasserà mai questo limite. Specificando invece una + dimensione minima con + obbligherà Nmap a usare dimensioni almeno equivalenti. Nmap + potrebbe tuttavia dover usare gruppi più piccoli di quelli + indicati se non ci dovessero essere abbastanza host di + destinazione rimanenti per un'interfaccia per raggiungere la + minima quota specificata. Entrambe le opzioni possono essere + impostate per mantenere la dimensione del gruppo all'interno + di un certo limite, anche se questo succede raramente. + + Queste opzioni durante la fase di host discovery di una + scansione non hanno effetto; ciò include anche il plain ping + scan (). L'host discovery lavora sempre su + grandi gruppi di host per aumentare la velocità e + l'accuratezza. + + L'utilizzo principale di queste opzioni è quello di + specificare una dimensione minima maggiore rispetto al default + in modo da rendere più veloce la scansione globale. Una scelta + piuttosto comune è 256 per una scansione di una rete di classe + C. Per una scansione con molte porte, eccedere questo numero + è improbabile che aiuti molto. Per una scansione con poche + porte invece, una dimensione di 2048 o più può essere + d'aiuto. + + + + + ; + + (Adjust probe parallelization) + + + Queste opzioni controllano il numero totale di probe che + possono uscire dalla macchina sorgente per un host group. Esse + sono usate per port scanning e host discovery. Di default, + Nmap calcola un parallelismo ideale in continuo cambiamento, a + seconda delle performance della rete. Se c'è un elevato + numero di pacchetti che viene scartato, Nmap rallenta e lavora + su un numero minore di probe in uscita. Il numero ideale di + probe in uscita incrementa poi gradualmente fino a quando la + rete lo permette. Questa opzione limiti minimi o massimi alla + variabile. Di default, il parallelismo può arrivare ad + un minimo di 1 se la rete si dimostra essere poco affidabile; + può invece aumentare a diverse centinaia per una rete in + condizioni ottimali. + + L'uso più comune consiste nell'impostare + ad un valore maggiore di 1 + per accelerare le scansioni di reti o host che rispondono in + maniera non adeguata. È abbastanza rischioso giocare con + quest'opzione, in quanto impostandola ad un valore troppo alto + può influire negativamente sull'accuratezza. Impostandola + manualmente inoltre riduce l'abilità di Nmap di controllare + dinamicamente il parallelismo basandosi sulle condizioni della + rete. Un valore di 10 è abbastanza ragionevole, anche se in + genere le modifiche a questo parametro vengono usate come + ultima risorsa. + + L'opzione viene + impostata a volte sul valore 1 per impedire a Nmap di inviare + più di un probe alla volta verso un determinato host. L'opzione + (discussa in seguito), è un altro + modo per ottenere questo risultato. + + + + + , + , + (Adjust probe + timeouts) + + + Nmap mantiene un valore di timeout aggiornato per + determinare quanto ci vorrà per un probe response prima di + ritrasmettere il probe. Questo viene calcolato basandosi sui + tempi di response degli ultimi probe inviati. La formula si + trova al link Idle + Scan Implementation Algorithms. Se la latenza + della rete dovesse oscillare troppo questo timeout può + crescere fino ad un valore di diversi secondi. Inoltre esso è + impostato inizialmente ad un valore abbastanza alto e potrebbe + restare su quel valore per tutto il tempo in cui Nmap effettua + la scansione su host che non rispondono. + + Specificando limiti di + e di inferiori ai + valori di default è possibile ridurre di molto i tempi di + scansione. Questo è vero in particolare per scansioni di tipo + "pingless" (opzione ) e nei confronti di + reti particolarmente protette. Tuttavia, è bene non esagerare; + infatti la scansione può addirittura richiedere più tempo del + previsto nel caso in cui si specifichi un valore talmente basso + da resettare il timeout dei probe (e forzarne un nuovo invio) + mentre la risposta sta ancora arrivando. + + Se tutti gli host sono su una rete locale, 100 + millisecondi ()è un + valore ragionevolmente aggressivo. Se nella scansione è + coinvolto qualche routing, sarebbe meglio effettuare un ping + preliminare dell'host (con l'utility ICMP ping o con un + generatore di pacchetti come Nping che può penetrare un + firewall più facilmente), e osservare poi il valore massimo di + andata/ritorno ("round trip") per un numero di pacchetti non + inferiore a 10. È quindi consigliato raddoppiare questo valore + per l'opzione e + triplicarlo o quadruplicarlo per l'opzione + . In genere si preferisce + non impostare il maximum RTT al di sotto di 100 millisecondi, + indipendentemente dai tempi di ping. E nemmeno al di sopra di + 1000 millisecondi. + + L'opzione è usata + molto raramente; essa può essere utile nel caso in cui una + rete è talmente poco affidabile che anche il default di Nmap + risulta essere troppo aggressivo. Poiché Nmap riduce il timeout + fino al valore minimo quando la rete sembra affidabile, questa + esigenza di solito non è necessaria e dovrebbe essere + indicata come bug alla mailing list nmap-dev. + + + + + (Specify + the maximum number of port scan probe retransmissions) + + + Quando Nmap non riceve risposta ad un port scan probe, + potrebbe significare che la porte è filtrata. O forse che la + risposta o il probe stesso si sono persi nella rete. È anche + possibile che l'host obiettivo abbia attivato dei limiti sul + traffico che bloccano la risposta. In questi questi, Nmap prova + nuovamente a ritrasmettere il probe iniziale e, se ritiene che + la rete sia poco affidabile, prova molte volte prima di passare + alla porta successiva. Nonostante il vantaggio + dell'accuratezza, tutto ciò prolunga i tempi di scansione. + Quando le performance sono al primo posto, si può velocizzare + le scansioni limitando il numero di ritrasmissioni consentite. + Si può addirittura indicare + per disabilitare ogni ritrasmissione, anche se è consigliato + solo in quelle situazioni in cui la non risposta di alcune + porte e alcuni host è accettabile (ad esempio sondaggi interni + o test). + + Di default (senza nessun template, opzione + ) vengono effettuate dieci ritrasmissioni. + Se la rete risulta affidabile e gli host obiettivo non hanno + limitazioni, Nmap solitamente effettua una ritrasmissione. + Quindi la maggior parte degli obiettivi non viene coinvolta + abbassando ad un valore basso, + ad esempio tre. Alcuni valori possono velocizzare sensibilmente + le scansioni di host piuttosto lenti. Di solito vengono perse + alcune informazioni quando Nmap scansiona le porte velocemente, + però è sempre meglio che lasciar scadere + e perdere tutte le informazioni + dell'obiettivo. + + + + + (Give up on + slow target hosts) + + + Alcuni host a volte richiedono un tempo estremamente + lungo per portare a termine una + scansione. Questo può essere dovuto a hardware o software + poco performante o inaffidabile, a limiti di traffico impostati + o a firewall troppo restrittivi. La minoranza degli host + sottoposti a scansione può richiedere la maggior parte del + tempo di scansione. A volte è preferibile risparmiare sul tempo + ed evitare questi host fin dal principio. Questo comportamento + viene forzato dall'opzione + seguito dal tempo dopo il quale non si vuole più aspettare. Ad + esempio si specifica un valore di 30m per avere la garanzia che + Nmap non sprechi più di mezz'ora su di un singolo host. Si noti + che Nmap può nel frattempo effettuare la scansione su altri + host durante quella mezz'ora, per cui non si tratta di tempo + completamente sprecato. Un host che dovesse andare in timeout + viene semplicemente saltato. Non vengono mostrati l'elenco + delle porte, il detection del sistema operativo né risultati di + version detection per quell'host. + + + + + ; + (Adjust delay + between probes) + + + Quest'opzione obbliga Nmap ad aspettare almeno il tempo + indicato tra i probe inviati ad un determinato host. Questo + risulta particolarmente utile nel caso di limitazioni sulla + frequenza dell'invio ("rate limiting"). Tra gli altri, in + particolare le macchine Solaris in genere rispondono a + scansioni UDP con un solo messaggio ICMP al secondo. Qualsiasi + altro probe inviato da Nmap durante questo intervallo di tempo + sarebbe quindi sprecato. Un valore di + di 1s manterrà Nmap al di sotto + di questa particolare frequenza di invio di probe. Nmap + comunque cercherà di capire eventuali limiti sulla frequenza e + modificherà i ritardi sui probe di conseguenza, tuttavia non è + cattiva abitudine specificarlo sulla linea di comando quando + dovesse essere noto a priori il valore ottimale. + + Quando Nmap aumenta lo scan delay in base al rate + limiting, la scansione rallenta drammaticamente. L'opzione + indica il valore massimo di + delay che Nmap può adottare. Un valore basso di quest'opzione + può velocizzare Nmap, ma ci sono dei rischi: settarlo troppo + basso può portare a ritrasmissioni inutili e una possibile + perdita di dati da porte che hanno rate limiting molto + ridotti. + + Un altro uso dell'opzione + è quello in cui si desidera evitare sistemi anti-intrusione + (IDS/IPS, "intrusion-detection" e "intrusion-prevention + system"). Questa tecnica viene utilizzata nella sezione + + A practical example: bypassing default Snort 2.2.0 + rules per vincere il port scanner detector di + default in Snort IDS. Molti altri IDS possono essere sconfitti + con questo sistema. + + + + + ; + (Directly control the + scanning rate) + + + Il timing dinamico di Nmap fa un buon lavoro trovando una + velocità adeguata a ciò che si sta scansionando. Alle volte, + però, può succedere di conoscere uno scanning rate appropriato + per quella determinata rete, oppure bisogna finire una + scansione in un tempo preciso. O forse si vuole impedire ad + Nmap di scansionare troppo velocemente. Le opzioni + e sono + state create proprio per queste situazioni. + + Quando viene definita l'opzione + Nmap farà del suo meglio per + inviare i pacchetti non al di sotto del limite di frequenza + impostato. L'argomento è un numero reale positivo che + rappresenta la frequenza di invio dei pacchetti in + pacchetti/secondo. Per esempio, indicando + significa che Nmap proverà a + mantenere una frequenza di invio di almeno 300 pacchetti al + secondo. Quest'opzione non impedisce ad Nmap di aumentare la + frequenza se le condizioni lo permettono. + + Viceversa, forza la + frequenza di invio dandogli un limite massimo. Utilizzare + , ad esempio, per limitare + l'invio a 100 pacchetti al secondo su una rete veloce. Usare + per una scansione lenta, un + pacchetto ogni dieci secondi. Entrambe le opzioni + e + mantengono la frequenza all'interno del range + specificato. + + Queste due opzioni sono globali, hanno effetto cioè + sull'intera scansione, non sugli host individuali. Vanno ad + agire sui port scan e gli host discovery. Altre feature, come + l'OS detection, hanno le loro opzioni di timing. + + Ci sono due casi in cui la frequenza potrebbe + scendere sotto il minimo richiesto. Il primo è impostare la + frequenza minima più alta di quanto Nmap riesca ad inviare, il + che dipende dall'hardware in uso. In questo casto Nmap invierà + i pacchetti il più velocemente possibile, ma bisogna comunque + essere consapevoli che ciò potrebbe causare un calo + dell'affidabilità. Il secondo caso è quando Nmap non ha nulla + da inviare, ad esempio alla fine di uno scan quando gli ultimi + probe sono stati inviati ed Nmap sta aspettando una risposta + o che vadano in time out. È normale che lo scanning rate cali + alla fine di una scansione o tra hostgroups. La frequenza di + invio potrebbe inoltre superare temporaneamente il massimo + prefissato, per far fronte a delay improvvisi, ma nella media + rimarrà comunque entro i limiti. + + Specificare un rate minimo, è una cosa da fare con + attenzione. Effettuare una scansione più velocemente di quanto + una rete possa supportare potrebbe portare a risultati + inaffidabili. In alcuni casi, una frequenza troppo alta può + portare ad un scansione più lenta rispetto + ad una scansione con un rate più basso. Questo perché + l'algoritmo adaptive + retransmission di Nmap potrebbe rilevare una + congestione della rete causata da un eccessivo scanning rate e + aumentare il numero di ritrasmissioni per mantenere una certa + affidabilità. Quindi anche se i pacchetti verranno inviati + velocemente, ne verranno comunque inviati di più. Limitare il + numero massimo ritrasmissioni con l'opzione + se si deve rispettare un tempo + massimo per la scansione totale. + + + + + + + Molti host usano da tempo delle funzionalità di "rate + limiting" (limitazioni alla frequenza) per ridurre il numero di + messaggi di errore ICMP che mandano (ad esempio gli errori + "port-unreachable"). Alcuni sistemi hanno iniziato ad applicare + le stesse tecniche all'invio di pacchetti RST (reset). Queste + tecniche possono rallentare di molto Nmap poiché esso + continuerà a calibrare la gestione dei timing per gestire + queste limitazioni di frequenza. Si può quindi indicare a Nmap + di ignorare questi rate limits (per i port scan come il SYN + scan, che non considerano le porte + silenziose come aperte) + mediante l'opzione + . + + L'utilizzo di quest'opzione può ridurre la precisione di + uno scan, poiché alcune porte potrebbero restituire uno stato + di non-risposta perché Nmap non è rimasto in attesa abbastanza + a lungo a causa di meccanismi di rate-limiting dei pacchetti + RST. Con una scansione di tipo SYN le porte "mute" (dalle quali + non si è ricevuto un RST) in questo caso vengono indicate con + filtered piuttosto che + closed. Quest'opzione è + utile solo quando si è interessati alle porte aperte, e la + distinzione tra porte closed + e filtered non è di alcun + interesse rispetto al tempo che richiede. + + + + + + + + Forza l'utilizzo di un determinato "nsock IO multiplexing + engine". Solo per il "-based fallback + engine" viene garantita la compatibilità con il sistema in uso. + Gli engine vengono dichiarati dopo il nome del "IO management + facility" cui fanno riferimento. Gli engine attualmente + implementati sono epoll, + kqueue, poll e select, ma non saranno tutti presenti + su tutte le piattaforme. Utilizzare nmap -V per sapere quali engine sono + supportati. + + + + + + (Set a timing template) + + + Mentre le opzioni mostrate nella precedente sezione sono + molto utili ed efficaci alcuni potrebbero trovarle troppo + complicate da usare. Inoltre, la scelta dei valori più + appropriati può a volte richiedere più tempo della scansione + stessa che si sta cercando di ottimizzare. Nmap offre quindi un + approccio più semplice mediante sei "timing templates", ovvero + opzioni pre-impostate per regolare l'aggressività della + scansione. Esse si specificano mediante l'opzione + seguita dal numero del template + corrispondente o dal suo nome. Essi sono: paranoico (0), + furtivo (1), educato (2), normale (3), aggressivo (4) e + folle (5). I primi due vengono usati per evitare i sopracitati + sistemi anti-intrusione (IDS). La modalità "gentile" rallenta + la scansione in modo da usare meno banda e risorse sulla + macchina bersaglio. La modalità "normale" è di default + (e pertanto l'opzione non modifica nulla). + La modalità "aggressiva" incrementa la velocità assumendo che + si è su una rete veloce ed affidabile. Infine la modalità + "folle" dà per scontato che si è su una rete estremamente + veloce ed affidabile o che si vuole sacrificare l'accuratezza + in nome della velocità. + + Questi template consentono all'utente di specificare + quanto aggressivi si desidera essere, lasciando al tempo stesso + a Nmap il compito di scegliere i valori più appropriati. + I template inoltre effettuano piccoli aggiustamenti sui timing + per i quali non esistono opzioni che ne consentono il + controllo. Ad esempio, l'opzione impedisce + al ritardo dinamico per una scansione di andare al di sotto + della soglia dei 10 millisecondi per le porte TCP, e l'opzione + limita questo valore a 5 millisecondi. I + template possono essere usati insieme a controlli più precisi + a patto che il template venga specificato per primo. + Altrimenti i valori impostati dal template potrebbero + sovrascrivere quelli specificati dall'utente. Si raccomanda di + usare l'opzione nel caso in cui si + desideri effettuare scansioni di reti abbastanza recenti e + affidabili; inoltre è consigliabile mantenere quell'opzione + (intesa come inserita all'inizio dei comandi) anche qualora si + dovessero aggiungere controlli più precisi in modo da + beneficiare da tutti i piccoli miglioramenti che dovessero + intervenire. + + Se la propria connessione è a banda larga o di tipo + ethernet, si raccomanda di usare sempre l'opzione + . Alcuni prediligono anche l'opzione + , nonostante per i più sia troppo + aggressiva. Altri a volte usano l'opzione + perché credono che sia meno propensa a mandare in crash un + host o perché si considerano persone educate. Spesso essi non + si rendono conto di quanto è lenta l'opzione ; una scansione di questo tipo può impiegare + anche dieci volte il tempo richiesto per una scansione di + default. Crash di host e problemi di banda sono rari con le + opzioni di timing di default (opzione ) e + pertanto è l'opzione consigliata a chi deve effettuare + scansioni senza dare troppo nell'occhio. Omettere una + scansione di tipo version detection è molto più efficiente + del giocare con i valori di timing per ridurre i problemi + sopracitati. + + Mentre le opzioni e + potrebbero essere utili per evitare gli + allarmi di un IDS, esse richiederanno un tempo estremamente + lungo per portare a termine una scansione di migliaia di host o + di porte. In una situazione di questo tipo si suggerisce di + lavorare sui valori esatti di timing richiesti piuttosto che + avvalersi delle opzioni preimpostate nelle opzioni + e . + + Gli effetti principali dell'opzione + sono quello di serializzare la scansione in modo da affrontare + una sola porta alla volta, e al tempo stesso quello di + attendere cinque minuti tra l'invio di un probe e il + successivo. Le opzioni e + sono simili ma attendono rispettivamente + 15 secondi e 0.4 secondi tra un probe e l'altro. L'opzione + è il comportamento di default di Nmap + (che include il parallelismo). L'opzione + ha lo stesso risultato dell'impostare + e di impostare il ritardo + massimo per una scansione TCP a 10 millisecondi. Infine + l'opzione è equivalente a + e ad impostare il massimo ritardo TCP (maximum + delay) a 5 millisecondi. + + + + + + + Bypassing e Spoofing di Firewall e Intrusion Detection System + (Firewall/IDS Evasion and Spoofing) + + Tanti pionieri dell'epoca di Internet immaginarono una rete + globale aperta con uno spazio di indirizzi IP universale, che + potesse consentire connessioni virtuali tra qualsiasi coppia di + nodi. Questo permette ad ogni host di diventare allo stesso tempo + fruitore e fornitore di informazioni da e per l'altro. Chiunque + poteva accedere dal lavoro a tutti i propri sistemi di casa, + regolando il termostato o aprendo la porta per un visitatore che + dovesse arrivare in anticipo. Questa visione di connettività + universale è stata soffocata da carenze nello spazio di + indirizzamento e da preoccupazioni legate alla sicurezza. Nei primi + anni novanta le compagnie iniziarono a sviluppare firewall con lo + scopo di ridurre la connettività. Enormi reti vennero tagliate + fuori dall'Internet non filtrato da application proxy, NAT (Network + Address Translation) e packet filter (filtri di pacchetto). Il + flusso incontrollato delle informazioni lasciò il posto a regole + stringenti sui canali di comunicazione approvati e sul contenuto che + può transitare su di essi. + + Ostruzioni di rete come i firewall possono rendere la stesura + della topografia di una rete un lavoro fin troppo difficile. E non + migliorerà mai, perché limitare le differenze che permettono di + distinguere tra un apparecchio e un altro è spesso lo scopo + primario nella loro costruzione. Nondimeno, Nmap offre molte + caratteristiche che possono aiutare a capire tali reti complesse e a + verificare che i filtri impostati stiano funzionando come previsto. + Nmap include anche meccanismi per effettuare il bypassing di difese + poco robuste o mal implementate. Uno dei migliori metodi per capire + quant'è sicura la propria rete è proprio il cercare di forzarla. + Mettetevi nei panni di un attaccante, e usate le tecniche spiegate + in questa sezione contro le vostre reti. Lanciate una scansione "FTP + bounce", un "Idle scan", un "fragmentation attack", o provate a + entrare attraverso uno dei vostri proxy. + + In aggiunta alle restrizioni delle attività di rete, le + aziende stanno sempre più tenendo sotto controllo il traffico con + sistemi anti-intrusione (IDS). La maggior parte di questi IDS è + configurato per accorgersi di una scansione di Nmap di default, + poiché molto spesso l'attacco segue direttamente la scansione. + Molti di questi strumenti inoltre si sono evoluti in sistemi di + prevenzione delle intrusioni (IPS, "intrusion + prevention systems") che bloccano attivamente tutto il traffico che + potrebbe essere nocivo. Sfortunatamente per gli amministratori di + rete e per i produttori di IDS, però, rilevare cattive intenzioni + analizzando semplicemente i dati contenuti nei pacchetti è un + problema difficile. Un attaccante con una buona dose di pazienza, + talento e l'aiuto di alcune opzioni di Nmap può generalmente + scavalcare un IDS senza esser visto. Allo stesso tempo un + amministratore ha a che fare con molti falsi positivi dovuti ad + intenzioni legittime che vengono erroneamente bloccati o per i quali + scattano allarmi. + + Ogni tanto qualcuno suggerisce che Nmap non dovrebbe fornire + opzioni per bypassare regole di firewalling o per sgusciare oltre + agli IDS. Essi asseriscono che queste caratteristiche sono usate + più facilmente da attaccanti piuttosto che da amministratori + attenti alle problematiche di sicurezza. Il problema con questo tipo + di ragionamento è che tali metodi verrebbero comunque usati da + attaccanti che potrebbero semplicemente usare altri strumenti o + modificare Nmap per fare ciò che desiderano. E intanto un + amministratore si troverebbe a non aver strumenti per poter fare il + proprio lavoro correttamente. Sviluppare solo server FTP moderni e + con tutte le patch installate è un approccio molto migliore al + voler bloccare lo sviluppo e la distribuzione di strumenti che usano + l'attacco "FTP bounce". + + Non esiste alcuna bacchetta magica (o opzione di Nmap) per + riconoscere o bypassare un firewall o un sistema anti-intrusione. È + un'attività che richiede talento ed esperienza. Una guida completa + esula dagli intenti di questa guida di riferimento, la quale elenca + solo le opzioni rilevanti e descrive ciò che fanno. + + + + (fragment packets); + (using the specified MTU) + + + L'opzione obbliga la scansione + (anche i ping scan) a usare pacchetti IP frammentati. L'idea di + base è quella di frammentare l'header TCP su più pacchetti, in + modo da rendere più difficile per un packet filter, per un IDS + o per altri fastidiosi strumenti simili il compito di capire + cosa sta succedendo. Si presti comunque la massima attenzione + nell'uso di questa opzione! Alcuni programmi hanno difficoltà a + gestire pacchetti di dimensione troppo piccola. Il vecchio tool + "Sniffit" andava in segmentation fault non appena riceveva il + primo frammento. Specificando quest'opzione una volta Nmap + dividerà i pacchetti in piccoli insiemi di al più 8 byte + ciascuno, inserendoli dopo l'header IP. In questo modo un + header TCP di 20 byte verrà diviso in tre pacchetti: due con + otto byte ciascuno e uno con i rimanenti quattro. E ovviamente + ogni frammento avrà un header IP. Specificando di nuovo + l'opzione si useranno insiemi di 16 byte + (riducendo così il numero di frammenti). In alternativa si può + indicare lo spiazzamento ("offset") desiderato mediante + l'opzione . Non si usi l'opzione + se si è usato . + L'offset dev'essere un multiplo di 8. Nonostante i pacchetti + frammentati non supereranno i packet filter e i firewall che + mantengono una coda di tutti i frammenti IP (come ad esempio le + macchine GNU/Linux che hanno l'opzione CONFIG_IP_ALWAYS_DEFRAG + impostata nel kernel), alcune reti tuttavia non possono + permettersi il calo di performance causato da troppi frammenti + e pertanto non avranno quell'opzione abilitata. Altri ancora + non possono abilitare quell'opzione perché i frammenti + potrebbero prendere direzioni differenti una volta all'interno. + Alcuni sistemi di origine dei dati deframmentano i pacchetti in + uscita nel kernel. Linux con il modulo ip_conntrack + ("connection tracking module") è uno di questi. Si raccomanda + di effettuare la scansione mentre un packet sniffer (come + Wireshark) sta girando, in modo da avere la certezza che i + pacchetti inviati vengano effettivamente frammentati. Se il + proprio sistema operativo dovesse causare problemi in questo, + si usi l'opzione per bypassare il + livello IP ed inviare direttamente frame Ethernet sul + cavo. + + + + + + (Cloak a scan with decoys) + + + Quest'opzione invoca una "decoy scan" (ovvero una + scansione utilizzando esche) che agli occhi dell'host di + destinazione apparirà come se provenisse dagli host + specificati come decoy. In questo modo l'IDS della rete + bersaglio mostrerà 5-10 port scan provenienti da indirizzi IP + singoli, e non potrà capire quale IP è veramente la sorgente + dell'attacco e quale IP è usato solo come mascheramento. + Nonostante quest'opzione possa essere resa inutile mediante il + tracciamento del percorso fatto dai router ("router path + tracing"), tecniche di response-dropping e altri meccanismi + attivi sono generalmente una tecnica effettiva per nascondere + il proprio indirizzo IP. + + Gli host decoy vanno separati con una virgola; è inoltre + possibile usare il parametro ME come uno dei decoy per + rappresentare la posizione del proprio indirizzo IP. Se si pone + il parametro ME nella sesta + posizione o ancora oltre, alcuni sensori di port scan (come + l'eccellente "Scanlogd" di Solar Designer) difficilmente + mostreranno il vostro indirizzo IP. Se non si dovesse usare il + parametro ME, Nmap metterà + il vostro IP in una posizione a caso. Si può anche utilizzare + per generare un numero casuale di + indirizzi IP non riservati, oppure + per + generare number indirizzi. + + Si noti che gli host che vengono usati come decoy + dovrebbero essere attivi o si corre il rischio di creare un + "SYN flood" verso il proprio obiettivo. Inoltre diventerebbe + molto facile capire quale host è la causa della scansione, se + solo uno è attivo in una rete. È consigliabile usare + indirizzi IP al posto di nomi, per evitare che la rete dei + decoy individui i propri tentativi di risoluzione dei nomi nei + log dei propri DNS. + + I decoy vengono usati sia nel "ping scan" iniziale + (indipendentemente dal fatto che si usi ICMP, SYN, ACK, ecc.) + sia durante la fase di port scanning effettiva. Infine i decoy + vengono usati durante l'OS detection remoto (opzione + ). L'utilizzo dei decoy non è valido con + scansioni di tipo version detection o scansioni di tipo TCP + connect. Quando si hanno degli scan delay, il ritardo viene + applicato ad ogni blocco di probe, non ad ogni singolo probe. + Dato che i decoy vengono inviati tutti in una volta, potrebbero + temporaneamente violare i limiti di controllo sulla + congestione. + + Inutile bisogna ricordare che l'uso di troppi decoy può + rallentare la propria scansione e potenzialmente renderla meno + accurata. Inoltre, alcuni ISP ("Internet Service Providers") + potrebbero filtrare i pacchetti "spoofed" (falsificati), anche + se molti non operano alcun tipo di azione su questi + ultimi. + + + + + (Spoof source + address) + + + In talune circostanze Nmap potrebbe non essere in grado + di determinare il proprio indirizzo sorgente (in questi casi + Nmap avvertirà della problematica). Se così fosse si può + usare l'opzione seguita dall'indirizzo IP + dell'interfaccia che si vuole usare per inviare + pacchetti. + + Un altro possibile uso di quest'opzione potrebbe essere + per falsificare (spoof) la scansione per far credere al + bersaglio che qualcun altro li sta + prendendo di mira e sta effettuando una scansione su di loro. + Si immagini solo cosa potrebbe succedere se un'azienda si + accorgesse di essere preda di port scan da parte dei propri + concorrenti! L'opzione è in genere + richiesta per questo particolare utilizzo, e si consiglia + anche di usare . Da notare che così facendo + solitamente non si ricevono i pacchetti di risposta, saranno + infatti inviati all'indirizzo IP fasullo; Nmap di conseguenza + produrrà dei report inutili. + + + + + (Use specified + interface) + + + Indica a Nmap quale interfaccia di rete usare per inviare + e ricevere pacchetti. Nmap dovrebbe essere in grado di capire + autonomamente quale usare, ma nel caso non sia possibile vi + avvertirà. + + + + + (Spoof source port number) + + + Un errore di configurazione sorprendentemente comune è + quello di fidarsi del traffico di rete basandosi solo sulla + porta di origine. È facile capire come può succedere: un + amministratore configura un firewall nuovo fiammante per poi + ritrovarsi sommerso dalle lamentele degli utenti ingrati le cui + applicazioni hanno smesso di funzionare. Ad esempio le query + DNS possono non funzionare più perché le risposte (sotto forma + di pacchetti UDP) provenienti da server esterni non possono più + entrare nella rete. Anche l'FTP è un esempio piuttosto comune: + nei trasferimenti di dati attivi (opposti a quelli di tipo + "passive FTP") il server remoto cerca di stabilire una + connessione diretta con il client per trasferire i file + richiesti. + + Esistono soluzioni sicure a questi problemi, spesso nella + forma di proxy a livello di applicazione o moduli del firewall + che fanno parsing del protocollo. Sfortunatamente ci sono anche + soluzioni facili ma insicure. Ad esempio, notando che le + risposte alle query DNS arrivano dalla porta 53 e i transfer + FTP "active" provengono dalla porta 20, tanti amministratori + fanno l'errore di lasciar passare il traffico proveniente da + queste porte. Essi spesso danno per scontato che nessun + attaccante potrebbe accorgersi di questi buchi di sicurezza e + approfittarne. In altri casi un amministratore può considerare + questa soluzione una misura temporanea fino a quando non + implementerà una soluzione migliore e più sicura e poi si + dimentica di farlo. + + Gli amministratori di rete con troppe cose da fare non + sono gli unici a commettere questi errori. Molti prodotti sono + venduti con queste regole insicure; anche Microsoft è + colpevole. I filtri IPSec, parte di Windows 2000 e Windows XP, + contengono una regola implicita che permette il passaggio di + tutto il traffico proveniente dalla porta 88 (Kerberos). Un + altro caso ben conosciuto è quello di Zone Alarm Personal + Firewall (fino alla versione 2.1.25): esso permetteva + l'ingresso nel sistema a qualsiasi pacchetto UDP che avesse + come porta di origine la 53 (DNS) o 67 (DHCP). + + Nmap offre le opzioni (equivalenti) e + per sfruttare queste debolezze. + Basta fornire un numero di porta e Nmap manderà pacchetti da + questa porta quando possibile. La maggior parte delle scansioni + TCP, incluse le scansioni SYN e UDP, supportano quest'opzione. + Tuttavia Nmap deve usare numeri di porta diversi per alcuni + test di OS detection perché essi funzionino a dovere; anche le + richieste DNS, i TCP connect scan, i version detection e gli + script scanning ignorano l'opzione + poiché Nmap si appoggia alle + librerie di sistema per gestirle. + + + + + (Append custom + binary data to sent packets) + + + Quest'opzione permette di includere valori binari come + dati nei pacchetti da inviare. + hex string può avere uno dei + seguenti formati: , + o + . Alcuni + esempi sono e . Da notare che se si indica un valore + come nessuna conversione dell'ordine + dei byte viene effettuata. Fare in modo che l'informazione + indicata arrivi al destinatario con l'ordine dei byte che si + aspetta. + + + + + (Append + custom string to sent packets) + + + Quest'opzione permette di inviare una stringa come dati + nei pacchetti da inviare. string può + contenere qualsiasi stringa. Si noti comunque che alcuni + caratteri dipendono dal sistema in uso e il ricevente potrebbe + non ricevere la stessa informazione. Inoltre accertarsi di aver + racchiuso la string tra apici doppi ("") e di marcare con il + carattere di escape tutti i caratteri speciali interpretati + dalla shell. Alcuni esempi: oppure + . + Tenere a mente che nessuno può effettivamente vedere i commenti + lasciati da quest'opzione, a meno che non si stia monitorando + attentamente la rete con uno sniffer o delle regole IDS + personalizzate. + + + + + (Append + random data to sent packets) + + + In genere Nmap invia pacchetti nella dimensione più + piccola possibile, contenenti soltanto l'header. Quindi i + pacchetti TCP sono in genere di 40 byte e le richieste ICMP + echo di 28 byte. Alcuni porte UDP e protocolli IP danno un + carico dati personalizzato di default. Quest'opzione indica a + Nmap di aggiungere un certo numero di byte casuali a quasi + tutti i pacchetti che invia e di non usare i valori specifici + del protocollo (Usare per + nessun valore random e nessun valore specifico del protocollo). + I pacchetti di OS detection () tuttavia non + vengono modificati, perché la precisione in essi richiede una + certa consistenza nell'invio dei probe; in ogni modo quasi + tutte le opzioni di ping e portscan supportano questa modalità. + Essa rallenta leggermente le performance ma ne può risultare + una scansione più accurata. + + + + + (Set IP time-to-live + field) + + + Imposta il campo time-to-live (tempo di vita del pacchetto + IPv4) al valore richiesto. + + + + + (Randomize target host + order) + + + Quest'opzione indica a Nmap di rimescolare l'ordine di + scansione di ogni gruppo di host (fino a 16384) prima di iniziare + la scansione. Questo può nascondere le scansioni a vari sistemi di + network monitoring, specialmente quando è affiancato a opzioni di + rallentamento ("slow timing"). Se si desidera un random su gruppi + di dimensione maggiore, è necessario incrementare la direttiva + PING_GROUP_SZ in nmap.h e + ricompilare l'applicativo. Una soluzione alternativa potrebbe + essere quella di generare una lista degli IP sui quali effettuare + lo scan mediante un list scan (opzione ), randomizzarla con + uno script Perl e passare la lista a Nmap con l'opzione + . + + + + + (Spoof MAC address) + + + Richiede ad Nmap di usare l'indirizzo hardware (MAC) per + tutti i frame ethernet raw che invia. Quest'opzione implica + per garantire che Nmap invii di fatto + pacchetti a livello ethernet. Il MAC può essere specificato in vari + formati: nel caso in cui sia semplicemente il numero "0", Nmap + sceglie un MAC completamente random per la sessione. Se la stringa + è un numero pari di simboli esadecimali (con le coppie separate + eventualmente dal simbolo di due punti), Nmap userà questo come + MAC. Se dovessero essere specificate meno di 12 cifre decimali, + Nmap riempirà il resto dei 6 byte con valori casuali. Se + l'argomento non è ne uno zero ne una stringa esadecimale, Nmap + cercherà nel file nmap-mac-prefixes per cercare il nome di + un produttore contenente la stringa indicata (senza distinguere tra + maiuscole e minuscole). Se trova una corrispondenza, Nmap userà la + parte OUI del produttore (il prefisso di 3 byte) e riempirà i + restanti 6 byte in maniera casuale. Esempi validi dell'uso di + sono Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, e Cisco. Quest'opzione ha effetto solo sui + pacchetti raw, come nei SYN scan o negli OS detection, non sulle + feature "connection-oriented", come i version detection o + l'NSE. + + + + + (Relay TCP connections through a chain of + proxies) + + + Richiede ad Nmap ti stabilire connessioni TCP con l'obiettivo + attraverso una catena di uno o più proxy HTTP o SOCKS4. I proxy + possono aiutare a nascondere il sorgente reale di una scansione o + evadere certe restrizioni dei firewall, ma fanno calare la + performance della scansione aumentando la latenza. Si potrebbe, + di conseguenza, dover modificare i timeout di Nmap o altri + parametri di scansione; in particolar modo, un + più basso potrebbe aiutare dato + che alcuni proxy non gestiscono diverse connessioni contemporanee, + come invece fa Nmap di default. + + Quest'opzione riceve una lista di proxy come argomento, + espressa come URL nel formato proto://host:port. Utilizzare la virgola + come separatore di URL in una catena. È anche supportata la + non autenticazione. I protocolli sono HTTP e SOCKS4. + + Attenzione: questa feature è ancora in fase di sviluppo ed + ha alcune limitazioni. È implementata con la libreria nsock e + quindi non ha effetto sui ping, i port scanning e la fase di OS + detection di una scansione. Solo l'NSE e i version scan ne traggono + beneficio finora, altre funzionalità potrebbero rivelare il + proprio vero indirizzo. Le connessioni SSL non sono ancora + supportate, così come la risoluzione DNS proxy-side (gli hostname + vengono sempre risolti da Nmap). + + + + + (Send packets with bogus TCP/UDP + checksums) + + + Richiede ad Nmap di usare un checksum TCP o UDP non valido per + i pacchetti inviati alla macchina di destinazione. Poiché + teoricamente tutti gli stack IP degli host finiranno per ignorare + questi pacchetti, qualunque risposta ricevuta dovrà per forza + provenire da un firewall o da un Intrusion Detection System (IDS) + che non si preoccupa di verificare il checksum. Per maggiori + informazioni su questa tecnica, si consulti . + + + + + (Use deprecated Adler32 instead of + CRC32C for SCTP checksums) + + + Richiede ad Nmap di usare l'algoritmo deprecato Adler32 per + calcolare il checksum SCTP. se non + viene impostato, viene usato CRC-32C (Castagnoli). L'RFC 2960 + originariamente definisce Adler32 come l'algoritmo di checksum per + SCTP; L' RFC 4960 + successivamente ha ridefinito il checksum SCTP specificando l'uso + di CRC-32C. Le implementazioni attuali SCTP dovrebbero + utilizzare CRC-32C, ma allo scopo di suscitare risposta dalle più + datate, è preferibile usare Adler32. + + + + + + + Output + + Qualunque tool di sicurezza è utile quanto l'output che esso stesso + genera. Test e algoritmi complessi sono di scarsa importanza se non + presentati in modo comprensibile e ben organizzato. Dato il grande numero + di modi in cui Nmap viene usato dagli utenti e da altro software, un + singolo formato non potrebbe soddisfare tutti. Per questo motivo Nmap + offre molti formati, inclusa la modalità interattiva per la lettura + diretta degli utenti, e il formato XML per rendere l'output facilmente + interpretabile dal software. + + Inoltre per offrire differenti formati di output, Nmap fornisce + opzioni per il controllo della verbosità dell'output, come anche dei + messaggi di debugging. I tipi di output possono essere mandati allo + standard output o a files, ai quali Nmap può accodare o sovrascrivere il + contenuto. I files di output possono anche essere usati per ripristinare + scansioni precedentemente annullate. + + Nmap rende l'output disponibile in cinque formati differenti. Il + formato predefinito è chiamato interactive + output, e viene mandato allo standard output (stdout). Poi si + ha il normal output, simile + all'interactive ad eccezione del fatto che mostra meno informazioni di + runtime e warnings, dal momento che si suppone che dovrà essere + analizzato dopo il completamento della scansione, piuttosto che + interattivamente. + + L'XML output è uno dei tipi di + output più importanti, dal momento che può essere convertito in HTML, + interpretato con facilità dai programmi (come ad esempio le interfacce + grafiche di Nmap) o importato in un database. + + I rimanenti due tipi di output sono il semplice grepable output, che include la maggior parte + delle informazioni su un obiettivo in una linea singola, e lo sCRiPt KiDDi3 0utPUt per gli utenti che si + considerano |<-r4d. + + Mentre l'output interattivo è quello predefinito e non ha opzioni + da linea di comando associate, gli altri quattro formati usano una + sintassi comune. Ricevono un argomento, il nome del file nel quale i + risultati dovranno essere scritti. Possono essere specificati formati + multipli, ma ogni formato può essere specificato solo una volta. Per + esempio si potrebbe voler salvare il normal output per le proprie + revisioni e nel mentre salvare l'XML per l'analisi programmatica. Ciò si + potrebbe realizzare con le opzioni . Questo capitolo usa per brevità dei nomi semplici + come myscan.xml, ma sono generalmente + consigliati nomi più descrittivi. I nomi scelti sono un problema di + preferenza personale, anche se è solito usarne di lunghi che incorporano + la data della scansione e un paio di parole che descrivano la scansione, + messi in una directory chiamata come l'azienda che si sta + scansionando. + + Mentre queste opzioni salvano i risultati su files, Nmap mostra + anche l'output interattivo in standard output come sempre. Per esempio, + il comando nmap -oX myscan.xml target + stampa XML dentro myscan.xml e + scrive in standard output gli stessi risultati interattivi che avrebbe + stampato se non fosse stata specificata. Si può + cambiare questo comportamento passando un trattino ("-") come argomento + di un tipo di formato. Questo fa si che Nmap disattivi l'output + interattivo e stampi il risultato nel formato che specificato nello + stream dello standard output. Così il comando nmap -oX - target manderà in stdout soltanto + l'output XML. Gli errori gravi possono comunque essere mostrati sullo + stream di standard error (stderr). + + A differenza di alcuni argomenti di Nmap, lo spazio tra l'opzione + di log (ad esempio ) e il nome del file o il + trattino, è obbligatorio. Se si omettono le opzioni e si danno argomenti + come o , una feature di + retro-compatibilità causerà la creazione di file di output in + normal format chiamati rispettivamente + G- e Xscan.xml. + + Tutti questi argomenti supportano le conversioni di tipo strftime nel nome del file. %H, %M, + %S, %m, %d, + %y e %Y sono gli stessi parametri che si trovano in + strftime. %T è l'equivalente di %H%M%S, %R + è l'equivalente di %H%M e %D è l'equivalente di %m%d%y. Un % seguito da qualsiasi altro + carattere da precedenza a quel carattere (%% mostra il simbolo + percentuale). Quindi lavorerà su di + un file XML con un nome del tipo scan-144840-121307.xml. + + Nmap offre inoltre l'opzione di controllo della verbosità e la + possibilità di accodare ai file invece di sovrascriverli. Tutte queste + opzioni sono descritte di seguito. + + + I Formati di Output di Nmap + + + (normal output) + + + Richiede che il normal output venga rediretto al file + specificato. Come sopra, quest'output diverge leggermente da + interactive output. + + + + + (XML output) + + + Richiede che l'output XML sia rediretto al file specificato. + Nmap contiene un document type definition (DTD) che permette agli + interpreti XML di validare l'output XML di Nmap. Sebbene serva + principalmente per l'uso programmatico, può essere d'aiuto anche + agli utenti. Il DTD definisce gli elementi convenzionali del + formato, e spesso enumera gli attributi e i valori che possono + assumere. L'ultima versione è sempre disponibile al link . + + XML offre un formato stabile e facilmente interpretato dal + software. Gli interpreti XML liberi (free) sono disponibili per la + maggior parte dei linguaggi di programmazione, compresi C/C++, + Perl, Python e Java. Qualcuno ha anche scritto dei bindings per + gran parte di questi linguaggi per trattare in maniera specifica + l'output e l'esecuzione di Nmap. Ne sono esempio: Nmap::Scanner + e Nmap::Parser nel + Perl CPAN. In quasi tutti i casi il formato preferito per + interpretare i risultati di Nmap è stato XML. + + L'output XML fa riferimento ad uno stylesheet XSL che può + essere usato per formattare il risultato in HTML. La maniera più + facile di usarlo è semplicemente aprire il file XML in un web + browser, come Firefox o IE. Di norma questa procedura dovrebbe + funzionare solo sulla macchina su cui si esegue Nmap (o su una + configurata in maniera simile) dato che il percorso a nmap.xsl è quello scritto nel codice di + Nmap. Si vedano le opzioni o + per creare un file XML portabile che + renderizza come HTML in ogni macchina connessa al web. + + + + + (ScRipT KIdd|3 + oUTpuT) + + + Lo script kiddie output è come l'interactive output, ad + eccezione del post-processing che meglio adatta l'output ai l33t + HaXXorZ che prima guardavano dall'alto in basso Nmap per la sua + troppo corretta ortografia e per l'uso proprio delle maiuscole. Per + le persone poco inclini allo humor, si noti che questa opzione + prende in giro gli script kiddies, quindi non si critichi per un + presunto "averli aiutati". + + + + + (grepable output) + + + Questo formato di output viene descritto per ultimo perché + il suo uso è deprecato. L'output XML è di gran lunga più potente ed + in pratica ugualmente utile per gli utenti esperti. XML è uno + standard per le dozzine di eccellenti parsers che sono disponibili, + mentre il grepable output è un semplice hack. XML è estensibile al + supporto di nuove features di Nmap man mano che queste vengono + rilasciate, mentre spesso vengono omesse queste nuove feature per + il formato grepable per mancanza di spazio dove aggiungerle. + + Ad ogni modo, il grepable output è ancora discretamente + usato. È un formato semplice che lista ogni host su una riga e può + essere facilmente cercato e interpretato dai tool standard di UNIX, + come grep, awk, cut, sed, diff e Perl. Viene utilizzato per test + semplici da riga di comando: trovare tutti gli host che hanno + la porta SSH aperta o che montano Solaris, è questione di un + semplice grep per identificare gli host e un pipe verso awk o cut + per visualizzare i campi desiderati. + + Il grepable output contiene commenti (le righe che iniziano + con il cancelletto (#)) e righe target. Una riga target include una + combinazione di 6 campi etichettati, separati da tabulazioni e + terminati da un due punti (:). I campi + sono Host, Ports, Protocols, Ignored State, OS, Seq + Index, IP ID e + Status. + + Il più importante tra questi campi è generalmente il campo + Ports, che da dettagli su ogni + porta interessante. È una lista di "port entries" separate da una + virgola. Ogni "port entry" rappresenta una porta interessante e + prende la forma di sette sotto-campi separati da uno slash (/). + Questi sotto-campi sono: Port number, State, Protocol, Owner, Service, SunRPC info e Version info. + + Così come nell'output XML, questa pagina di manuale non + permette di documentare l'intero formato. È disponibile una + descrizione più dettagliata del formato grepable + output nella sezione Grepable + Output (-oG). + + + + + (Output to all + formats) + + + In caso di bisogno, si potrebbe specificare per salvare i + risultati dello scan nei formati normal, XML e grepable in una sola + volta. Questi vengono salvati rispettivamente nei file + basename.nmap, + basename.xml e + basename.gnmap. Come la maggior parte + dei programmi, si può aggiungere un prefisso ai nomi dei file, come + ad esempio un percorso ad una directory, ~/nmaplogs/foocorp/ su UNIX o c:\hacking\sco su Windows. + + + + + + Verbosità e opzioni di debugging + + + (Increase verbosity level), + (Set verbosity level) + + + Aumenta il livello di verbosità, facendo in modo che Nmap + stampi più informazioni riguardo lo scan in esecuzione. Le porte + aperte sono mostrate man mano che Nmap le trova e il tempo + rimanente stimato viene mostrato se Nmap ritiene che lo scan possa + durare più di qualche minuto. Si può mettere l'opzione due o più + volte per aumentare ulteriormente il livello di verbosità. + + La maggior parte dei cambiamenti riguarda l'interactive + output, e alcune cose anche il normal e lo script kiddie output. + Gli altri tipi di output sono fatti per essere processati dalle + macchine, quindi Nmap può dare un grosso livello di dettaglio di + default, senza il problema di poter affaticare un utente umano. In + ogni caso ci sono delle leggere differenze negli altri modi dove la + dimensione dell'output può essere sostanzialmente ridotta omettendo + alcuni dettagli. Per esempio solo in modalità verbosa viene + stampata una linea di commento nel grepable output che fornisce una + lista di tutte le porte scansionate, questo perché potrebbe essere + abbastanza lunga. + + + + + (Increase debugging level), + (Set debugging level) + + + Quando anche il verbose mode non fornisce dati a sufficienza, + è disponibile la modalità debugging, che sommergerà l'utente di + informazioni! Così come succede per l'opzione verbosity + (), il debugging viene attivato da un'opzione di + riga di comando () e il livello di debug può + essere aumentato ripetendo l'opzione diverse volte, ad esempio + , o si può settare il debug level dando come + argomento di un numero. Ad esempio, + setta il livello a nove. Questo è il livello + più alto e produrrà migliaia di linee a meno che non si stia + facendo uno scan molto semplice con pochi target e poche + porte. + + L'output di debugging è utile quando si sospetta un bug in + Nmap, oppure se si rimane confusi su cosa stia facendo Nmap e + perché. Siccome questa feature è stata pensata principalmente per + gli sviluppatori, le linee di debug non sono granché + autoesplicative. Si potrebbe incontrare qualcosa tipo: Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta + 14987 ==> srtt: 14987 rttvar: 14987 to: 100000. Se non + si capisce una linea, quello che si può fare è ignorarla, guardarla + nel codice sorgente, o richiedere aiuto alla lista di sviluppo + (nmap-dev). Alcune linee si spiegano bene da sé, ma i messaggi + divengono sempre più oscuri man mano che il livello di debugging + sale. + + + + + (Host and port state reasons) + + + Mostra il motivo per cui ad ogni singola porta è stato + assegnato quello stato e la ragione per cui ogni host è attivo o + meno. Quest'opzione mostra il tipo di pacchetto che ha determinato + lo stato di una porta o di un host. Per esempio, un pacchetto RST + da una porta chiusa o un echo reply da un host attivo. + L'informazione che Nmap restituisce dipende dal tipo di scansione o + di ping. Il SYN scan e il SYN ping ( e + ) sono molto dettagliati, mentre il TCP connect + scan () è limitato all'implementazione della + chiamata di sistema connect. + Questa feature è automaticamente abilitata dall'opzione di debug + () e i suoi risultati vengono salvati in file + log in formato XML anche se quest'opzione non viene + specificata. + + + + + (Print periodic + timing stats) + + + Periodicamente stampa un messaggio di timing status ogni + intervallo di time. Il tempo è una + specifica del tipo descritto nella sezione Timing and + Performance di questo manuale; quindi per esempio, + si utilizzerà per avere un + aggiornamento dello stato ogni 10 secondi. Gli aggiornamenti + vengono stampati sull'interactive output (a schermo) e sull'XML + output. + + + + + (Trace packets and data sent + and received) + + + Fa in modo che Nmap stampi un riassunto di ogni pacchetto + mandato o ricevuto. Viene usata spesso per il debugging, ma è anche + un modo valido per gli utenti novizi per capire esattamente cosa + sta facendo Nmap dietro le quinte. Per evitare che stampi migliaia + di linee, si dovrebbe specificare una lista limitata di porte da + controllare, come . Se importa soltanto + vedere come procede il version detection si può usare + . Se invece si è solo interessati + allo script tracing, indicare . Con + , si avranno tutti quelli + sopra. + + + + + (Show only open (or possibly open) + ports) + + + Può succedere di essere interessati solamente alle porte cui + ci si può connettere al momento (le open) e non si vuole mischiare i + risultati con quelle closed, + closed o closed|filtered. Si potrebbe + personalizzare l'output dopo la scansione utilizzando tool come + grep, awk e Perl, ma è stata aggiunta quest'opzione a causa di + richieste travolgenti. Indicare per vedere + solamente gli host con almeno una porta open, open|filtered o unfiltered, e vedere solamente le porte + con questi stati. Questi tre stati vengono trattati normalmente, il + che significa che open|filtered + e unfiltered potrebbero essere + raggruppate se ce ne dovessero essere troppe. + + + + + (List interfaces and routes) + + + Stampa la lista delle interfacce e degli instradamenti di + sistema rilevati da Nmap. Questo è utile per risolvere i problemi + di routing o cattive caratterizzazioni delle interfacce (ad esempio + quando Nmap scambia una connessione PPP per ethernet). + + + + + + Altre opzioni di output + + + (Append to rather than clobber + output files) + + + Quando si specifica un nome di file mediante un parametro di + output come o , questo + file viene sovrascritto di default. Se si preferisce mantenere il + contenuto del file e aggiungerci i nuovi risultati, si deve usare + l'opzione . Tutti i file di output + specificati in quell'istanza di Nmap verranno usati in append mode + anziché essere sovrascritti. Quest'opzione non è di grande aiuto + (e non funziona molto bene) nel caso di output in formato XML + (), poiché il parsing del file risultante non + sarà corretto fino a quando non si controllerà il file + manualmente. + + + + + (Resume aborted + scan) + + + Alcune esecuzioni di Nmap possono richiedere molto tempo - + dell'ordine di giorni. Tali scansioni non arrivano sempre alla + fine; alcune restrizioni possono impedire a Nmap di funzionare + durante le ore del giorno, la rete può diventare irraggiungibile, + la macchina sulla quale Nmap sta girando può subire un riavvio + pianificato o improvviso o Nmap stesso può andare in crash. + L'amministratore che sta usando Nmap può interromperlo per + qualsiasi ragione, premendo ctrl-C. Ricominciare l'intera scansione + dall'inizio può diventare fastidioso. Fortunatamente se sono + rimasti i log in formato "normal" () o + "grepable" (), l'utente può richiedere a Nmap + di ricominciare la scansione dall'host sul quale stava lavorando + quando l'esecuzione è stata interrotta. Semplicemente basta + specificare l'opzione e passargli il file + di output in formato normal/grepable come argomento. Non è permesso + nessun altro argomento, poiché Nmap farà il parsing del file di + output per usare le stesse opzioni specificate in precedenza. È + quindi sufficiente invocare Nmap come nmap --resume + logfilename. Nmap aggiungerà i + nuovi risultati ai file specificati nell'esecuzione precedente. La + ripresa di un'esecuzione non supporta il formato di output XML + poiché sarebbe troppo difficile combinare le due esecuzioni in un + unico file XML valido. + + + + + (Set XSL + stylesheet to transform XML output) + + + Nmap viene fornito con un foglio di stile XSL chiamato + nmap.xsl per vedere o tradurre + l'output XML in HTML. L'output XML include una direttiva xml-stylesheet che punta al file + nmap.xml dove è stato + installato Nmap la prima volta. Processare il file XML con un XSLT + processor come xsltproc per produrre un + file HTML. Aprire direttamente l'output XML in un browser non + funziona più tanto bene in quanto i browser recenti limitano le + location da cui può essere caricato un foglio di stile. Se si + volesse usare un foglio di stile diverso, va specificato mediante + l'opzione . Il file va indicato con il + percorso completo o l'URL. Un esempio di invocazione con + quest'opzione è . Questo indica ad un + XSLT processor di caricare l'ultima versione del foglio di stile da + Nmap.Org. L'opzione fa la stessa cosa ma + richiede meno digitazioni e meno cose da ricordare. Caricando l'XSL + da Nmap.Org rende più semplice visualizzare i risultati su una + macchina che non ha Nmap (e quindi il file nmap.xsl) installato. Quindi l'URL è + spesso una scelta migliore, ma di default viene usato il file dal + filesystem locale per ragioni di privacy. + + + + + + (Load stylesheet from Nmap.Org) + + + + Quest'opzione è semplicemente una comodità per l'opzione + . + + + + + + (Omit XSL stylesheet declaration + from XML) + + + + Quest'opzione va specificata quando non si vuole che Nmap + associ un qualsiasi foglio di stile XSL al proprio output XML. + La direttiva xml-stylesheet + viene omessa. + + + + + + + Opzioni Miscellanee + + Questa sezione descrive alcune opzioni importanti (e altre non così + importanti) che non hanno trovato posto in altre sezioni. + + + + (Enable IPv6 scanning) + + + Nmap offre supporto IPv6 per le sue funzioni più comuni. Le + funzioni ping scanning, port scanning, rivelazione di versione e + l'NSE supportano tutti IPv6. La sintassi dei comandi è la stessa di + sempre, ad eccezione dell'aggiunta dell'opzione + . Ovviamente si dovrà utilizzare la sintassi + IPv6 se si vuole specificare un indirizzo anziché un hostname. Un + indirizzo sarà qualcosa del tipo 3ffe:7501:4819:2000:210:f3ff:fe03:14d0, + ne consegue che è raccomandato l'uso degli hostname. L'output ha il + solito aspetto, l'unica differenza è l'indirizzo IPv6 sulla linea + delle "interesting ports". + + Mentre IPv6 non ha esattamente preso il sopravvento nel + mondo, trova un uso più significativo in alcuni Paesi (tipicamente + Asiatici) e supporto nella maggior parte dei moderni sistemi + operativi. Per usare Nmap con l'IPv6, sia l'obiettivo che la + sorgente dello scan devono essere configurate per IPv6. Se il + proprio l'ISP (come la maggior parte) non alloca indirizzi IPv6, + c'è una vasta disponibilità di tunnel broker gratuiti e funzionano + bene con Nmap. Uno dei migliori è fornito da . Altri tunnel broker si + possono trovare su + Wikipedia. Un altro approccio free comune sono i tunnel + 6to4. + + Su Windows, gli scan IPv6 raw-socket sono supportati solo su + dispositivi ethernet (non tunnel) e solo da Windows Vista in poi. + Utilizzare l'opzione nelle altre + situazioni. + + + + + (Aggressive scan options) + + + Quest'opzione abilita altre opzioni addizionali avanzate ed + aggressive. Al momento questa opzione attiva l'OS detection + (), il version scanning (), + lo script scanning () e il traceroute + (). Ulteriori caratteristiche verranno + aggiunte in futuro. Il punto è attivare un completo set di opzioni + di scan senza che ci sia il bisogno di ricordarsi una lunga serie + di flag. In ogni modo, dato che lo script scanning con il set di + default è considerato intrusivo, si dovrebbe utilizzare + contro le reti senza averne avuto + autorizzazione. Quest'opzione attiva solo delle modalità di + funzionamento, ma non le opzioni di timing (come + ), né quelle di verbosity () + che si potrebbero comunque volere. Le opzione che richiedono + privilegi speciali (ad esempio i permessi di root), come l'OS + detection e il traceroute, saranno abilitate solo se si questi + permessi sono attivi. + + + + + (Specify custom + Nmap data file location) + + + Nmap ottiene alcuni dati speciali in runtime dai + files chiamati nmap-service-probes, nmap-services, nmap-protocols, nmap-rpc, nmap-mac-prefixes ed nmap-os-fingerprints. Se la location di + uno questi file viene specificata(usando l'opzione + o l'opzione + ), questa location viene utilizzata + per tutti quanti. Altrimenti, Nmap cerca i file nella directory + specificata con l'opzione (qualora + specificata). Qualunque file non trovato in questa locazione, verrà + cercato nella directory specificata nella variabile d'ambiente + NMAPDIR. Segue poi ~/.nmap per le vere e proprie UID (valido + solo per i sistemi POSIX) o, su Windows, <HOME>\AppData\Roaming\nmap (dove + <HOME> è la home directory + dell'utente, tipo C:\Users\user). Seguono poi la directory + dell'eseguibile di Nmap e le sue subdirectory ../usr/share/nmap. Infine vengono + utilizzate le locazioni precompilate come /usr/local/share/nmap o /usr/share/nmap. + + + + + (Specify + custom services file) + + + Chiede ad Nmap di utilizzare specifici file "services" invece + che il file nmap-services che + viene fornito con Nmap. Inoltre quest'opzione attiva l'opzione + che esegue una scansione veloce. Vedere la + descrizione di per avere più + informazioni sui data files di Nmap. + + + + + + (Specify custom service probes file) + + + Chiede ad Nmap di utilizzare specifici file "service probes" + invece che il file nmap-service-probes che + viene fornito con Nmap. Vedere la descrizione di + per avere più informazioni sui data + files di Nmap. + + + + + (Use raw ethernet sending) + + + Chiede a Nmap di mandare pacchetti al livello ethernet (data + link) piuttosto che al livello più alto IP (network). Di default, + Nmap sceglie quello che è generalmente migliore per la piattaforma + in cui sta venendo eseguito. I raw sockets (livello IP) solitamente + sono i più efficienti per le macchine UNIX, mentre invece sono + richieste trame ethernet per funzionare con Windows dal momento che + Microsoft ha disabilitato il supporto per i raw socket. Nmap usa + invece continua a usare i pacchetti raw sulle UNIX non ostante si + specifichi questa opzione quando non c'è alternativa (ad esempio se + si ha una connessione non ethernet) + + + + + (Send at raw IP level) + + + Chiede a Nmap di mandare pacchetti via raw socket IP, + piuttosto che mandare trame al livello inferiore, ethernet. È + l'opzione complementare di discussa + precedentemente. + + + + + (Assume that the user is fully + privileged) + + + Dice semplicemente a Nmap di assumere che l'utente abbia + privilegi sufficienti per effettuare trasmissioni sui raw socket, + fare packet sniffing, e operazioni simili che di norma hanno + bisogno dei privilegi di root sui sistemi UNIX. Di default Nmap + termina l'esecuzione se si tentano di usare certe operazioni e + geteuid non è zero. + è utile con delle funzionalità del + kernel Linux e altri sistemi operativi che possono essere + configurati per permettere ad utenti non privilegiati di fare degli + scan con i raw socket. Bisogna assicurarsi di posizionare questa + opzione prima di qualunque flag che invochi funzionalità + privilegiate (SYN scan, OS detection, ecc.). La variabile + d'ambiente NMAP_PRIVILEGED può comunque essere settata e + rappresenta un'equivalente alternativa all'opzione + . + + + + + (Assume that the user lacks raw + socket privileges) + + + quest'opzione è l'opposta di . + Dice ad Nmap di trattare l'utente come se non avesse i permessi + necessari per i raw socket e lo sniffing. Può tornare utile in fase + di test, debugging o quando le funzionalità di raw network del + sistema operativo hanno qualche problema. La variabile d'ambiente + NMAP_PRIVILEGED può comunque essere settata e rappresenta + un'equivalente alternativa all'opzione + . + + + + + (Release memory before + quitting) + + + Quest'opzione è utile solo per la risoluzione di problemi di + perdita di memoria (memory-leak debugging). Obbliga infatti ad Nmap + a liberare la memoria allocata appena prima di uscire così da + individuare più facilmente le effettive perdite di memoria. Di + solito Nmap salta questo passaggio come fa il sistema operativo in + ogni caso al momento della chiusura del processo. + + + + + ; (Print version + number) + + + Stampa a video il numero di versione di Nmap ed esce. + + + + + ; (Print help + summary page) + + + Stampa a video una breve schermata di aiuto con le opzioni + più comuni. Eseguire Nmap senza argomenti fa la stessa cosa. + + + + + + + Interazione in Runtime + + Durante l'esecuzione di Nmap qualsiasi tasto venga premuto viene + registrato. Questo permette di interagire con il programma senza doverlo + interrompere e farlo ripartire. Alcuni tasti speciali possono cambiare + opzioni, mentre altri stampano un messaggio di stato sulla scansione in + corso. La convenzione è che le lettere minuscole + aumentano la quantità di messaggi stampati, mentre + le lettere maiuscole la diminuiscono. È inoltre + possibile premere '?' per avere un + aiuto. + + + / + + + Aumenta / diminuisce la quantità di informazioni + + + + + / + + + Aumenta / diminuisce il livello di debug + + + + + / + + + Attiva / disattiva il tracing dei pacchetti + + + + + + + + Stampa una schermata di aiuto per le interazioni in tempo + reale + + + + + Qualsiasi altro tasto + + + Stampa un messaggio di stato come il seguente: + + Stats: 0:00:07 elapsed; 20 hosts completed (1 up), 1 undergoing + Service Scan + Service scan Timing: About 33.33% done; ETC: 20:57 (0:00:12 + remaining) + + + + + + + + Esempi + + Ecco alcuni esempi di uso di Nmap, dal più semplice e routinario al + più complesso ed esoterico. Saranno usati alcuni indirizzi IP e hostname + reali per rendere le cose più concrete. Si dovranno solo sostituire nei + posti giusti gli indirizzi e gli hostname della propria + rete. Nonostante molti siano convinti che il port scanning + delle reti altrui non è o non dovrebbe essere illegale, alcuni + amministratori di rete potrebbero non apprezzare uno scanning non + richiesto delle loro reti e potrebbero lamentarsi. Ottenere prima un + permesso è l'approccio migliore. + + Per motivi di test, è concesso il permesso di effettuare uno scan + verso scanme.nmap.org. Questo permesso + include esclusivamente lo scan attraverso Nmap e non il test di exploits + o attacchi denial of service. Per preservare al banda, è meglio non + attivare più di una dozzina di scan verso questo host al giorno. Qualora + si abusasse di questo servizio, questo verrà disattivato e Nmap riporterà + il seguente errore: Failed to resolve + given hostname/IP: scanme.nmap.org. Questi permessi si + applichino agli host scanme2.nmap.org, + scanme3.nmap.org e così via, finché + ne esisteranno. + + + nmap -v scanme.nmap.org + + + Questa opzione esegue uno scan su tutte le porte TCP riservate + sulla macchina scanme.nmap.org. + L'opzione attiva la modalità verbose. + + + nmap -sS -O scanme.nmap.org/24 + + + Lancia un SYN scan invisibile verso ciascuna macchina che risulta + accesa tra le 256 nell'intera rete di classe C in cui risiede Scanme. + Inoltre tenta di determinare il sistema operativo installato su ogni host + trovato. Questo richiede i privilegi di root a causa della funzioni SYN + scan e OS detection. + + + nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127 + + + Lancia una enumerazione di hosts e uno scan TCP alla prima metà di + ognuna delle 255 sottoreti di 8 bit all'interno dello spazio di + indirizzamento della classe B 198.116. Quest'operazione controlla se tali + sistemi stanno eseguendo i servizi SSH, DNS, POP3 o IMAP sulle loro porte + standard, o altro sulla porta 4564. Qualora qualche porta di queste venga + trovata aperta, verrà utilizzato il version detection per determinare + quale applicazione stia effettivamente ascoltando su quella porta. + + + nmap -v -iR 100000 -Pn -p 80 + + + Chiede a Nmap di scegliere 100.000 hosts casuali ed effettuare su + questi uno scan per ricercare dei web servers (porta 80). L'enumerazione + degli host è disabilitata con l'opzione dal momento + che verificare se un host è attivo è uno spreco quando si sta analizzando + soltanto una porta per ogni hosts. + + + nmap -Pn -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20 + + + Questo scansiona 4096 indirizzi IP in cerca di webservers (ma senza + effettuare ping) e salva l'output sia in formato XML che in formato + "greppabile". + + + + Nmap Book + + Dato che questa guida di riferimento mostra nel dettaglio tutte le + opzioni di Nmap, non può dimostrare in maniera completa come utilizzare + queste feature per risolvere velocemente applicazioni reali. È per questo + che è stato pubblicato Nmap + Network Scanning: The Official Nmap Project Guide to Network Discovery + and Security Scanning. Gli argomenti trattati sono + sovvertire i firewall e gli IDS, ottimizzare le performance di Nmap e + l'automazione di comuni processi di rete con l'Nmap Scripting Engine. + Vengono forniti suggerimenti ed istruzioni per operazioni comuni con Nmap + come fare un inventario della rete, penetration testing, trovare rogue + access point wireless e l'annullamento di possibili worm. Esempi e + diagrammi mostrano l'attuale sistema di comunicazione via cavo. Più della + metà del libro è disponibile gratuitamente online. Per maggiori + informazioni . + + + + Bugs + + Al pari del suo autore (e di questa traduzione, NdT), Nmap non è + perfetto. Ma puoi fare qualcosa per aiutare a renderlo migliore mandando + delle segnalazioni di bug o addirittura scrivendo delle patch. Se Nmap + non si dovesse comportare come ti aspetteresti, prova prima l'ultima + versione disponibile su . Se il problema + persiste effettua qualche ricerca per determinare se il problema è stato + già scoperto e segnalato. Prova a cercare sulla nostra pagina di ricerca + o su Google il messaggio + di errore o ancora a sfogliare l'archivio Nmap-dev all'indirizzo . Leggi inoltre tutta questa pagina di + manuale. Se nulla di questo riguarda il tuo caso, manda un bug report a + dev@nmap.org. Accertati di includere ogni cosa che sei + riuscito a sapere sul problema, la versione di Nmap che hai installato e + su quale sistema operativo la stai usando. Segnalazioni di problemi ed + eventuali domande sull'uso di Nmap inviate a dev@nmap.org + hanno più probabilità di avere risposta di quelle inviate a Fyodor + direttamente. Se ti registri alla lista di nmap-dev prima di inviare il + messaggio, quest'ultimo non verrà moderato e quindi arriverà più + velocemente. Iscriviti su . + + Le patch che risolvono i bug sono molto meglio di una segnalazione. + Le istruzioni di base per creare delle patch sono disponibili su . Le patch potranno essere + inviate a nmap-dev (raccomandato) oppure direttamente a Fyodor. + + + + Autore + + Gordon Fyodor Lyon fyodor@nmap.org + () + + Traduzione + + Parte 1/2 e revisione: Lorenzo G. + lorenzo.grespan@gmail.com + + Parte 2/2: Simone Scarduzio + scarduzio@gmail.com + + Aggiornamento e revisione 04/2015: Andrea Pizzarotti + andrew3686@gmail.com + + Centinaia di persone hanno dato validi contributi a Nmap nel corso + degli anni. Questi sono elencati dettagliatamente nel file di CHANGELOG + che è distribuito assieme a Nmap ed è anche disponibile su . + + + + Note Legali + + + Copyright e Licenze di Nmap + + Nmap Security Scanner è (C) 1996-2015 Insecure.Com LLC. Nmap è + inoltre un marchio registrato di Insecure.Com LLC. Questo programma è + free software, è liberamente redistribuibile e/o modificabile in + accordo con i termini della GNU General Public License come pubblicata + dalla Free Software Foundation; Versione 2 (GPL) MA SOLO + CON TUTTE LE PRECISAZIONI ED ECCEZIONI QUI DESCRITTE. Questo garantisce + il diritto di utilizzare, modificare e redistribuire questo software + entro certe condizioni. Se si desidera incorporare la tecnologia Nmap + in software proprietari, potremmo essere disponibili a vendere licenze + alternative (contattare sales@insecure.com). Molti + produttori di security scanner usano già le tecnologie di Nmap come per + esempio "host discovery", "port scanning", "OS detection", "version + detection" e l'Nmap Scripting Engine. + + Si noti che la licenza GPL implica importanti vincoli sui + progetti derivati, sebbene essa non fornisca una precisa + definizione di questi. Allo scopo di evitare malintesi, interpretiamo + questo termine nel modo più ampio che la legge sul copyright permetta. + Ad esempio, consideriamo un'applicazione come progetto derivato inteso + ai fini di questa licenza se presenta una delle seguenti + caratteristiche ottenute con software o contenuti coperti da questa + licenza (d'ora in poi definiti Covered Software): + + + + Integra codice sorgente di Covered + Software + + + + + Legge o include data file protetti da copyright, quali + nmap-os-db o nmap-service-probes di Nmap. + + + + È progettato specificatamente per eseguire Covered + Software e ne utilizza i risultati (al contrario delle + tipiche applicazioni shell o eseguibili da menù che eseguono + qualsiasi cosa venga detto loro). + + + + Integra/include/aggrega Covered Software in un + eseguibile di installazione proprietario, come ad esempio quelli + prodotti da InstallShield. Includere Nmap con altro software in + forma compressa o di archiviazione, non rientra in questi casi, + fornire appropriati software open-source di decompressione o di + de-archiviazione è ampiamente disponibile senza nessun ricarico. Ai + fini di questa licenza, viene considerato programma di + installazione ciò che include Covered Software, + anche se in realtà recupera una copia di Covered + Software da un'altra fonte in fase di installazione (come, + ad esempio, scaricandola da Internet). + + + + + È collegato (staticamente o dinamicamente) a una libreria che + presenta una delle caratteristiche sopracitate. + + + + Esegue un programma di aiuto, un modulo o uno script che + presenta una delle caratteristiche sopracitate. + + + + Questa lista non è esclusiva, ma è concepita per chiarificare la + nostra interpretazione di progetto derivato con alcuni esempi comuni. + Altre persone potrebbero interpretare la licenza GPL in modo diverso, + quindi dobbiamo considerare questo come un'eccezione speciale alla GPL + che applicheremo a Covered Software. Le opere che + soddisfano una qualsiasi di queste condizioni, devono essere conformi a + tutti i termini di questa licenza, in particolar modo i requisiti della + Sezione 3 della licenza GPL di fornire il codice sorgente e permettere + la libera ridistribuzione del lavoro nel suo complesso. Come altra + eccezione ai termini della GPL, Insecure.Com LLC garantisce il permesso + di collegare il codice di questo programma con qualunque versione della + libreria OpenSSL che è distribuita sotto una licenza identica a quella + che si trova nel file docs/licenses/OpenSSL.txt e di redistribuire + combinazioni collegate che includono entrambi. + + Ogni redistribuzione di Covered Software, inclusa + ogni eventuale opera derivata, deve sottostare e portare avanti tutti i + termini di questa licenza, incluso sottostare a tutte le regole e + restrizioni della GPL. Ad esempio, deve essere fornito il codice + sorgente di un intero progetto ed autorizzata la sua libera e gratuita + distribuzione. Tutti i riferimenti alla GPL con questa + Licenza, sono da considerarsi come inclusioni dei termini e + delle condizioni nel testo di questa stessa licenza. + + Dato che questa licenza impone eccezioni speciali alla GPL, + "Covered Work" non è cumulabile (neanche con parte di un più ampio + lavoro) con il semplice software GPL. I termini, le condizioni e le + eccezioni di questa licenza devono altresì essere inclusi. Questa + licenza è incompatibile con qualsiasi altra licenza open-source. In + alcuni casi potremmo porre sotto diversa licenza parti di Nmap o + concedere permessi speciali di utilizzo in altro software open-source. + Per qualsiasi informazioni contattare fyodor@nmap.org. + Allo stesso modo, non incorporiamo software incompatibile al principio + di open-source in Covered Software senza uno speciale + permesso dai titolari del copyright. + + Se avete domande a proposito delle limitazioni imposte all'uso di + Nmap in altri progetti, saremo felici di aiutarvi. Come detto poc'anzi, + offriamo anche licenze alternative per l'integrazione di Nmap in + applicazioni o dispositivi proprietari. Questi contratti sono stati + venduti a molti rivenditori di software e generalmente includono una + licenza di durata illimitata, supporto tecnico prioritario e + aggiornamenti, come anche l'aiuto con la contribuzione allo sviluppo + della tecnologia Nmap. Per ulteriori informazioni contattare + sales@insecure.com. + + Se si riceve questo file con accordo di licenza scritto, + o un contratto per Covered Software che afferma termini + diversi da quelli appena descritti, allora si può scegliere di + utilizzare e ridistribuire Covered Software sotto quei + termini anziché quelli qui riportati. + + + + Creative Commons License per questa Guida di Nmap + + Questa Nmap Reference Guide è protetta da + copyright (C) 2005–2012 Insecure.Com LLC. È con ciò coperta dalla + versione 3.0 della Creative Commons Attribution License. Questo + permette la ridistribuzione e la modifica dell'opera come si ritenga + opportuno, a patto di far riferimento alla copia originale. In + alternativa, si può scegliere di trattare questo documento come + rientrante sotto la stessa licenza di Nmap stesso (discussa in + precedenza). + + + + Disponibilità del Codice Sorgente e Contribuzioni + della Comunità + + Il codice sorgente di questo software viene fornito perché + crediamo che gli utenti abbiano il diritto di sapere esattamente cosa + questo programma potrà fare prima di eseguirlo. Questo permette inoltre + di scoprire falle di sicurezza. + + Il codice sorgente permette anche di rendere Nmap portabile a + nuove architetture, correggere i bug e aggiungere nuove funzioni. Si è + molto incoraggiati a mandare le proprie modifiche ad + dev@nmap.org per possibili inclusioni nella + distribuzione principale. Mandando le modifiche a Fyodor o altri + sviluppatori della mailing list di Insecure.Org, si assume che si sta + offrendo all' Nmap Project (Insecure.Com LLC) il diritto illimitato, + non-esclusivo di riutilizzo, modifica e re-licenziamento del codice. + Nmap sarà sempre disponibile sotto open-source, ma questo è di vitale + importanza perché l'impossibilità di re-licenziare il codice ha causato + problemi devastanti ad altri progetti open-source (come KDE e NASM). + Occasionalmente noi re-licenziamo il codice per terze parti come detto + sopra. Se si vuole specificare una condizione di licenza speciale delle + proprie contribuzioni, è sufficiente dirlo nel momento + dell'invio. + + + + Nessuna Garanzia + + Questo programma è distribuito nella speranza che possa essere + utile, ma SENZA NESSUNA GARANZIA; senza garanzia di RIVENDIBILITÀ né di + APPLICABILITÀ PER SCOPI PARTICOLARI. Fare riferimento alla GNU General + Public License per ulteriori dettagli, al sito oppure nel file + COPYING incluso nel pacchetto di Nmap. + + Si noti anche che Nmap è stato occasionalmente noto per far + andare in crash applicazioni mal scritte, gli stack TCP/IP ed anche + alcuni sistemi operativi. Anche se si tratta di casi estremamente rari, + è importante da tenere a mente. Nmap non dovrebbe mai essere + lanciato contro sistemi "mission critical" a meno che non si + sia preparati ad affrontare un downtime. Confermiamo che Nmap può far + andare in crash alcuni sistemi e reti e disconosciamo ogni + responsabilità di danni o problemi che Nmap possa causare. + + + + Uso Inappropriato + + Dato il possibile rischio di crash e che ad alcuni black hats + piace usare Nmap come ricognizione prima di attaccare un sistema, ci + sono amministratori a cui non fa piacere che si eseguano scan sul + proprio sistema e potrebbero lamentarsi. È quindi consigliabile + richiedere il permesso prima di fare anche un leggero scan di una + rete. + + Nmap non dovrebbe mai essere installato con privilegi speciali + (ad esempio suid root). Questo potrebbe creare problemi di + vulnerabilità che altri utenti del sistema (o attaccanti) potrebbero + utilizzare. + + + + Software di Terze Parti + + Questo prodotto include software sviluppato da Apache Software Foundation. Una + versione modificata di Libpcap + portable packet capture library è distribuita assieme a Nmap. + La versione per Windows di Nmap utilizza invece un derivato di Libpcap, + WinPcap library. Il + supporto per le regular espressions è garantito dalla libreria PCRE library, che è software + open-source, scritta da Philip Hazel. Alcune funzioni di raw networking + usano la libreria Libdnet, che è stata + scritta da Dug Song. Con Nmap ne è distribuita una versione modificata. + Nmap può opzionalmente collegarsi con l'OpenSSL cryptography toolkit per + supportare il riconoscimento della versione di SSL. L'Nmap Scripting + Engine utilizza una versione implementata di Lua programming language. La Liblinear linear + classification library viene utilizzata per le nostre tecniche + di apprendimento automatico dell'OS version su IPv6 (vedi la sezione + IPv6 + matching). Tutto il software di terze parti descritto + in questo paragrafo è liberamente ridistribuibile sotto licenza stile + BSD. + + + + United States Export Control + + Nmap utilizza la crittografia solo quando compilato con il + supporto opzionale ad OpenSSL ed a lui collegato. Quando compilato + senza il supporto ad OpenSSL, Insecure.Com LLC ritiene che Nmap non + sia soggetto ai controlli sull'export U.S. Export + Administration Regulations (EAR). Come tale, non esiste ECCN + (numero di classificazione di controllo delle esportazioni) applicabile + e l'esportazione non richiede licenze speciali, permessi o altre + autorizzazioni governative. + + Quando compilato col supporto ad OpenSSL o distribuito come + codice sorgente, Insecure.Com LLC crede che Nmap rientri sotto U.S. + ECCN 5D002 + (Information Security Software). Distribuiamo Nmap + secondo l'eccezione TSU per il software di crittografia disponibile + pubblicamente definito in EAR + 740.13(e). + + + La presente traduzione ha il solo scopo di aiutare nella + comprensione del testo originale Nmap Reference Guide, + non ne costituisce copia sostitutiva e nemmeno licenza alternativa + di Covered Software. Per qualsiasi informazione o + chiarimento e per la versione più aggiornata, fare riferimento al testo + originale disponibile al link . + + +
-- cgit v1.2.3