diff options
Diffstat (limited to '')
-rw-r--r-- | docs/man-xlate/nmap-man-it.xml | 4858 |
1 files changed, 4858 insertions, 0 deletions
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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<article id="man" lang="it"> + <artheader> + <title>Guida di riferimento di Nmap (pagina del manuale)</title> + </artheader> + + <refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Guida di riferimento di Nmap</refmiscinfo> + </refmeta> + + <refnamediv id="man-name"> + <refname>nmap</refname> + + <refpurpose>Strumento di network exploration e security / port + scanner</refpurpose> + </refnamediv> + + <!-- body begins here --> + + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis sepchar=" "> + <command moreinfo="none">nmap</command> + + <arg choice="opt" rep="repeat"> + <replaceable>Tipo di Scansione</replaceable> + </arg> + + <arg choice="opt" rep="norepeat"> + <replaceable>Opzioni</replaceable> + </arg> + + <arg choice="req" rep="norepeat"> + <replaceable>Obiettivo</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + + <refsect1 id="man-description"> + <title>Descrizione</title> + <web> + <note><para> + Questo documento descrive la versione di Nmap 6.47. L'ultima + documentazione è disponibile in inglese all'indirizzo + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + + <para>Nmap (<quote>Network Mapper</quote>) è 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.</para> + + <para>L'output di Nmap è un elenco di obiettivi scansionati, con + informazioni supplementari per ognuno a seconda delle opzioni usate. Tra + queste informazioni è vitale la <quote>tabella delle porte interessanti + </quote>. Questa tabella elenca il numero della porta e il protocollo, + il nome del servizio e lo stato attuale. Lo stato può essere <literal + moreinfo="none">open (aperto)</literal>, <literal + moreinfo="none">filtered (filtrato)</literal>, <literal + moreinfo="none">closed (chiuso)</literal>, o <literal + moreinfo="none">unfiltered (non filtrato)</literal>. Aperto significa + che vi è sulla macchina obiettivo un'applicazione in ascolto su quella + porta per connessioni o pacchetti in entrata. <literal + moreinfo="none">Filtrato</literal> 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 <literal + moreinfo="none">aperta</literal> o <literal + moreinfo="none">chiusa</literal>. Le porte <literal + moreinfo="none">chiuse</literal> non hanno alcuna applicazione in + ascolto, anche se potrebbero aprirsi in ogni momento. Le porte vengono + classificate come <literal moreinfo="none">non filtrate</literal> quando + rispondono ad una scansione di Nmap, ma non è stato possibile + determinare se sono aperte o chiuse. Nmap mostra le combinazioni + <literal moreinfo="none">aperta|filtrata</literal> e <literal + moreinfo="none">chiusa|filtrata</literal> 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 (<option>-sO</option>), Nmap fornisce informazioni sui + protocolli IP supportati anziché sulle porte in ascolto.</para> + + <para>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).</para> + + <para>Una tipica scansione con Nmap è mostrata su <xref + linkend="man-ex-repscan" />. Le uniche opzioni usate di Nmap in questo + esempio sono <option>-A</option>, per abilitare la rilevazione del + sistema operativo e della versione, lo script scanning e il traceroute, + <option>-T4</option> per un'esecuzione più rapida e infine l'host + obiettivo.</para> + + <example id="man-ex-repscan"> + <title>Una scansione di esempio</title> + + <screen> +# 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 +</screen> + </example> + + <para>L'ultima versione di Nmap si può ottenere dal sito <ulink + url="https://nmap.org" />. L'ultima versione di questa pagina del manuale + è disponibile al sito <ulink url="https://nmap.org/book/man.html" />. È + anche inclusa come capitolo di <quote>Nmap Network Scanning: The Official + Nmap Project Guide to Network Discovery and Security Scanning</quote> + (<ulink url="https://nmap.org/book/" />).</para> + </refsect1> + + <refsect1 id="man-briefoptions"> + <title>Elenco delle opzioni</title> + + <para>Questo elenco delle possibili opzioni viene stampato quando Nmap + viene eseguito senza argomenti; una versione aggiornata di questo elenco + è sempre disponibile sul sito <ulink + url="https://svn.nmap.org/nmap/docs/nmap.usage.txt" />. È 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.</para> + + <para> + <literallayout class="normal">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 +</literallayout> + </para> + </refsect1> + + <refsect1 id="man-target-specification"> + <title>Target Specification (Specifica degli obiettivi)</title> + + <para>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.</para> + + <para>A volte può essere utile scansionare un'intera rete di host + adiacenti. Per questo, Nmap supporta l'indirizzamento CIDR. Si possono + aggiungere /<replaceable>numero di bit</replaceable> a un indirizzo IP o + a un nome di host e Nmap eseguirà la scansione su ogni indirizzo IP per + il quale i primi <replaceable>numero di bit</replaceable> 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: <literal moreinfo="none">11000000 10101000 + 00001010 00000000</literal>) e 192.168.10.255 (in binario: <literal + moreinfo="none">11000000 10101000 00001010 11111111</literal>), 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.</para> + + <para>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.</para> + + <para>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.</para> + + <para>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 <command + moreinfo="none">netsh.exe interface ipv6 show interface</command>.</para> + + <para>Nmap accetta più indirizzi di obiettivi sulla linea di comando + ed essi non devono essere necessariamente indicati nello stesso modo. Il + comando <command moreinfo="none">nmap scanme.nmap.org 192.168.0.0/8 + 10.0.0,1,3-7.-</command> fa esattamente ciò che ci si aspetta.</para> + + <para>Così come gli obiettivi sono generalmente indicati sulla linea di + comando, anche le seguenti opzioni sono disponibili per la selezione + degli obiettivi:</para> + + <variablelist> + <varlistentry> + <term><option>-iL <inputfilename></option> (Input from + list)</term> + + <listitem> + <para>Legge gli obiettivi da + <replaceable>inputfilename</replaceable>. 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 <emphasis>tranne</emphasis> 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 + <option>-iL</option>. 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 (<literal moreinfo="none">-</literal>) come nome di file + se si vuole che Nmap legga gli host dallo standard input piuttosto + che da un file esistente.</para> + + <para>L'<replaceable>inputfilename</replaceable> può contenere + commenti. Ogni commento inizia con # e finisce con un carattere di + a-capo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-iR <num hosts></option> (Choose random + targets)</term> + + <listitem> + <para>Durante certe indagini su tutta Internet o altri tipi di + ricerca, si potrebbe desiderare di scegliere gli obiettivi in + maniera casuale. L'argomento <replaceable>num hosts</replaceable> + 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 <literal + moreinfo="none">0</literal> 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 <command moreinfo="none">nmap -sS -PS80 -iR 0 -p + 80</command> per trovare in maniera casuale dei server web sui + quali navigare.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--exclude <host1>[,<host2>[,...]]</option> + (Exclude hosts/networks)</term> + + <listitem> + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--excludefile <exclude_file></option> (Exclude + list from file)</term> + + <listitem> + <para>Questa opzione offre le stesse funzionalità + dell'opzione<option>--exclude</option>, con la differenza che gli + obiettivi da escludere dalla scansione sono elencate in un + <replaceable>exclude_file</replaceable> (separate da spazi + bianchi, a-capo o tabulazioni) anziché sulla linea di + comando.</para> + + <para>L'<replaceable>exclude_file</replaceable> può contenere + commenti. Ogni commento inizia con # e finisce con un carattere di + a-capo.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-host-discovery"> + <title>Host Discovering (Ricerca di host)</title> + + <para>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.</para> + + <para>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 <quote>ping + scan</quote>, anche se va molto oltre il semplice pacchetto ICMP di tipo + "echo request" associato al famoso strumento di <application + moreinfo="none">ping</application>. Un utente può evitare il passaggio + per l'utility <quote>ping</quote> usando una List Scan (scansione di tipo + lista: <option>-sL</option>) o disabilitando il ping + (<option>-Pn</option>), 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.</para> + + <para>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 <function moreinfo="none">connect</function>. 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.</para> + + <para>L'opzione <option>-P*</option> (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 (<option>-PR</option>) viene effettuata di + default all'interno di una rete locale, anche se vengono specificate + altre opzioni <option>-P*</option>, poiché è quasi sempre più veloce e + più efficiente.</para> + + <para>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 (<option>-PU</option>). Si consulti la spiegazione per + l'opzione <option>-sn</option> per sapere come effettuare + <emphasis>solo</emphasis> host discovery; si usi <option>-Pn</option> per + evitare l'host discovery e fare un portscan di tutti gli host di + destinazione. Le seguenti opzioni controllano il comportamento dell'host + discovery:</para> + + <variablelist> + <varlistentry> + <term><option>-sL</option> (List Scan)</term> + + <listitem> + <para>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, <literal moreinfo="none">fw.chi</literal> è 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.</para> + + <para>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 + <option>-Pn (No ping)</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sn</option> (No port scan)</term> + + <listitem> + <para>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 <quote>ping scan</quote>, 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.</para> + + <para>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 <quote>ping sweep</quote>, ed è più + affidabile di un ping all'indirizzo broadcast poiché molti host non + rispondono alle richieste di questa categoria.</para> + + <para>L'opzione <option>-sn</option> 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 <function moreinfo="none">connect</function> ) + 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 <option>--send-ip</option>. L'opzione + <option>-sn</option> può essere usata in combinazione con qualsiasi + tipo di discovery probe (ovvero la famiglia di opzioni + <option>-P*</option>, tranne <option>-Pn</option>) 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.</para> + + <para>Nelle versioni precedenti di Nmap, l'opzione + <option>-sn</option> era chiamata <option>-sP</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-Pn</option> (No ping)</term> + + <listitem> + <para>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 + <option>-Pn</option> obbliga Nmap a tentare la scansione richiesta + su <emphasis>tutti</emphasis> 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 <emphasis>sia</emphasis> un ping scan + <emphasis>che</emphasis> un port scan, ma permettere l'esecuzione + degli script NSE, utilizzare le due opzioni -Pn -sn insieme.</para> + + <para>Per le macchine in una rete ethernet locale, la scansione ARP + verrà ancora eseguita (a meno che siano specificate le opzioni + <option>--disable-arp-ping</option> e <option>--send-ip</option>) + in quanto Nmap necessita degli indirizzi fisici (MAC addresses) per + ulteriori scansioni degli hosts. Nelle versioni precedenti di Nmap, + <option>-Pn</option> era chiamata <option>-P0</option> e + <option>-PN</option>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PS <port list></option> (TCP SYN Ping)</term> + + <listitem> + <para>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 <filename + moreinfo="none">nmap.h</filename>), ma si possono specificare altre + porte come parametro. La sintassi è la stessa dell'opzione + <option>-p</option> tranne che gli indicatori del tipo di porta + <option>T:</option> non sono permessi. Da notare che non ci devono + essere spazi tra <option>-PS</option> e il numero di porta, ad + esempio <option>-PS22</option>. Nel caso di più porte specificate, + separate da virgola (ad esempio + <option>-PS22-25,80,113,1050,35000</option>), si tenterà un probe + verso ogni porta in parallelo.</para> + + <para>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.</para> + + <para>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.</para> + + <para>Nelle macchine UNIX solo l'utente privilegiato <literal + moreinfo="none">root</literal> 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 + <function moreinfo="none">connect</function>, 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 <function moreinfo="none">connect</function> + 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PA <portlist></option> (TCP ACK Ping)</term> + + <listitem> + <para>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.</para> + + <para>L'opzione <option>-PA</option> 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 <function moreinfo="none">connect</function> + spiegata in precedenza. Questa scorciatoia non è ottimale perché in + ogni caso la <function moreinfo="none">connect</function> invia un + pacchetto SYN e non un ACK.</para> + + <para>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 <option>--syn</option> per + implementare questo approccio "stateless". Quando un + firewall implementa regole di questo tipo, un probe SYN + (<option>-PS</option>) 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.</para> + + <para>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 + <option>--state</option>, 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 + <option>-PS</option> e <option>-PA</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PU <portlist></option> (UDP Ping)</term> + + <listitem> + <para>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 + <quote>UDP payloads: <option>nmap-payloads</option></quote> + (<ulink url="https://nmap.org/book/nmap-payloads.html" />) per una + descrizione del database dei payloads. Il contenuto del pacchetto + può essere gestito con le opzioni <option>--data</option>, + <option>--data-string</option> e + <option>--data-length</option>.</para> + <para> + L'elenco di porte va specificato nello stesso formato già + discusso in precedenza nelle opzioni <option>-PS</option> e + <option>-PA</option>. 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 <filename moreinfo="none">nmap.h</filename>. 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.</para> + + <para>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 + <quote>chargen</quote>, rispondono a un pacchetto UDP vuoto, + rivelando così a Nmap la disponibilità della macchina in + questione.</para> + + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PY <port list></option> (SCTP INIT Ping)</term> + + <listitem> + <para>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 + <filename moreinfo="none">nmap.h</filename>). Altre porte possono + essere specificate come parametro. La sintassi è la stessa + dell'opzione <option>-p</option> tranne che gli indicatori del tipo + di porta <option>S:</option> non sono permessi. Da notare che non + ci devono essere spazi tra <option>-PY</option> e il numero di + porta, ad esempio <option>-PY22</option>. Nel caso di più porte + specificate, separate da virgola (ad esempio + <option>-PY22,80,179,5060</option>), si tenterà un probe verso ogni + porta in parallelo.</para> + + <para>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.</para> + + <para>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.</para> + + <para>Sulle macchine Unix, solo l'utente privilegiato + <literal moreinfo="none">root</literal> generalmente è abilitato ad + inviare e ricevere pacchetti SCTP "raw" (non + formattati, grezzi). Usare SCTP INIT Pings (<option>-PY</option>) + non è attualmente possibile per gli utenti non privilegiati.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PE</option>; <option>-PP</option>; + <option>-PM</option> (ICMP Ping Types)</term> + + <listitem> + <para>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 <application + moreinfo="none">ping</application>. 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'<ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC + 1122</ulink>. 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 + <option>-PE</option> per abilitare questo comportamento di + "echo request".</para> + + <para>Mentre la "echo request" è la richiesta standard del ping + ICMP, Nmap non si ferma qui. Gli standard ICMP (<ulink + url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC 792</ulink> e + <ulink url="http://www.rfc-editor.org/rfc/rfc950.txt">RFC + 950</ulink>) 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 <quote>un host NON DOVREBBE + implementare questi messaggi</quote> (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 <option>-PP</option> e <option>-PM</option>. 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PO <protocol list></option> (IP Protocol + Ping)</term> + + <listitem> + <para>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 + <filename moreinfo="none">nmap.h</filename>. 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 <option>--data</option>, + <option>--data-string</option> o + <option>--data-length</option>).</para> + + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PR</option> (ARP Ping)</term> + + <listitem> + <para>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.</para> + + <para>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 <option>-PE</option> o + <option>-PS</option>), Nmap usa comunque ARP per ogni target che + è sulla stessa LAN. Se non si vuole assolutamente un ARP scan, + specificare l'opzione <option>--disable-arp-ping</option>.</para> + + <para>Per IPv6 (opzione <option>-6</option>), <option>-PR</option> + utilizza ICMPv6 Neighbor Discovery al posto di ARP. Neighbor + Discovery, definito nell'RFC 4861, può essere visto come + l'equivalente per IPv6 di ARP.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--disable-arp-ping</option> (No ARP or ND Ping)</term> + + <listitem> + <para>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 <option>-Pn</option> o + <option>-PE</option>, vengono utilizzate. Per disabilitare questo + comportamento implicito, utilizzare l'opzione + <option>--disable-arp-ping</option>.</para> + + <para>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.</para> + </listitem> + </varlistentry> + <varlistentry> + + <term><option>--traceroute</option> (Trace path to host)</term> + + <listitem> + <para>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 (<option>-sT</option>) e le idle scans + (<option>-sI</option>). Tutti i tracciamenti utilizzano il modello + di timing dinamico ("dynamic timing model") di Nmap e vengono + eseguiti in parallelo.</para> + + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-n</option> (No DNS resolution)</term> + + <listitem> + <para>Indica a Nmap di <emphasis>non effettuare mai</emphasis> 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-R</option> (DNS resolution for all targets)</term> + + <listitem> + <para>Indica a Nmap di effettuare <emphasis>sempre</emphasis> 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--system-dns</option> (Use system DNS resolver)</term> + + <listitem> + <para>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 <function + moreinfo="none">getnameinfo</function>). 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--dns-servers <server1>[,<server2>][,...]]; + </option> (Servers to use for reverse DNS queries)</term> + <listitem> + <para>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 <option>--system-dns</option> 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.</para> + <para>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 + (<option>-sL</option>) di Nmap specificando ogni volta un name + server diverso con l'opzione <option>--dns-servers</option> + finché non si trova quello desiderato.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-basics"> + <title>Fondamenti di port scanning</title> + + <para>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 <command moreinfo="none">nmap + <replaceable>target</replaceable></command> effettua una scansione di + 1.000 porte TCP sull'host <replaceable>target</replaceable>. Mentre molti + port scanner considerano tutte le porte chiuse o aperte, Nmap è molto più + preciso. Divide le porte in sei categorie o stati: <literal + moreinfo="none">open</literal> (aperta), <literal + moreinfo="none">closed</literal> (chiusa), <literal + moreinfo="none">filtered</literal> (filtrata), <literal + moreinfo="none">unfiltered</literal> (non filtrata), <literal + moreinfo="none">open|filtered</literal> (aperta|filtrata), <literal + moreinfo="none">closed|filtered</literal> (chiusa|filtrata).</para> + + <para>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 <literal moreinfo="none">filtered</literal>.</para> + + <variablelist> + <title>I sei stati nei quali Nmap classifica le porte</title> + + <varlistentry> + <term>open (aperta)</term> + <listitem> + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>closed (chiusa)</term> + <listitem> + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>filtered (filtrata)</term> + <listitem> + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>unfiltered (non filtrata)</term> + <listitem> + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>open|filtered (aperta|filtrata)</term> + <listitem> + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>closed|filtered (chiusa|filtrata)</term> + <listitem> + <para>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.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-techniques"> + <title>Tecniche di Port Scanning</title> + + <para>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.</para> + + <para>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.</para> + + <para>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.</para> + + <para>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 (<option>-sU</option>) e gli SCTP scan (<option>-sY</option>, + <option>-sZ</option>) che possono essere combinati con uno qualsiasi dei + TCP scan. Per ricordarsi le varie opzioni di port scan, esse sono della + forma <option>-s<replaceable>C</replaceable></option>, dove + <replaceable>C</replaceable> è 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 <option>-b</option>). 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 <function + moreinfo="none">connect</function> ed FTP bounce.</para> + + <variablelist> + <varlistentry> + <term><option>-sS</option> (TCP SYN scan)</term> + + <listitem> + <para>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 <literal + moreinfo="none">open</literal>, <literal + moreinfo="none">closed</literal> e <literal + moreinfo="none">filtered</literal>.</para> + + <para>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 <ulink + url="https://nmap.org/misc/split-handshake.pdf" />).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sT</option> (TCP connect scan)</term> + + <listitem> + <para>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 <literal moreinfo="none">connect</literal>. + 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.</para> + + <para>Quand'è possibile, il SYN scan è generalmente una scelta + migliore. Nmap ha meno controllo sulla syscall <literal + moreinfo="none">connect</literal> 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sU</option> (UDP scans)</term> + + <listitem> + <para>Così come i servizi più comuni su Internet girano attraverso + il protocollo TCP, anche i servizi <ulink + url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> 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.</para> + + <para>Lo scan UDP si attiva con l'opzione <option>-sU</option>. + Può essere combinato con uno scan di tipo TCP come ad esempio un + SYN scan (<option>-sS</option>) per controllare entrambi i + protocolli nel corso della stessa sessione.</para> + + <para>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 + <option>--data</option>, <option>--data-string</option> o + <option>--data-length</option>. Se viene restituito un errore ICMP + "port unreachable" (tipo 3, codice 3) significa che la porta è + <literal moreinfo="none">closed</literal> (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 + <literal moreinfo="none">filtered</literal> (filtrata). Talvolta un + servizio risponderà con un pacchetto UDP, dimostrando quindi + che lo stato della porta è <literal moreinfo="none">open</literal> + (aperta). Se non viene ricevuta alcuna risposta dopo alcune + ritrasmissioni, la porta viene classificata come <literal + moreinfo="none">open|filtered</literal> (aperta|filtrata). Questo + significa che la porta può essere aperta o che probabilmente un + filtro di pacchetti sta bloccando la comunicazione. Un version + detection (<option>-sV</option>) può essere usato per aiutare a + differenziare le porte veramente aperte da quelle che sono + filtrate.</para> + + <para>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 <filename + moreinfo="none">net/ipv4/icmp.c</filename>).</para> + + <para>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 + <option>--host-timeout</option> per evitare host troppo lenti nel + rispondere.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sY</option> (SCTP INIT scan)</term> + + <listitem> + <para><ulink + url="http://www.rfc-editor.org/rfc/rfc4960.txt">SCTP</ulink> è + 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 <literal + moreinfo="none">open</literal> (aperta), + <literal moreinfo="none">closed</literal> (chiusa) e <literal + moreinfo="none">filtered</literal> (filtrata).</para> + + <para>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).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sN</option>; <option>-sF</option>; + <option>-sX</option> (TCP NULL, FIN, and Xmas scans)</term> + + <listitem> + <para>Queste tre tipologie di scansione (e molte altre sono + possibili con l'opzione <option>--scanflags</option> descritta + nella prossima sezione) sfruttano una piccola vulnerabilità + nell'<ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC del + protocollo TCP</ulink> per distinguere tra le porte <literal + moreinfo="none">open</literal> (aperte) e <literal + moreinfo="none">closed</literal> (chiuse). A pagina 65 si dice che + <quote>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</quote>. La pagina successiva discute di + pacchetti inviati a porte aperte senza i bit SYN, RST o ACK + impostati, indicando che: <quote>questa situazione è decisamente + improbabile, ma se dovesse capitare i segmenti vanno ignorati e si + deve ritornare [alla funzione chiamante, NdT]</quote>.</para> + + <para>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:</para> + + <variablelist> + <varlistentry> + <term>NULL scan (<option>-sN</option>)</term> + + <listitem> + <para>Non manda nessun bit (il TCP flag header è 0).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FIN scan (<option>-sF</option>)</term> + + <listitem> + <para>Setta solo il bit FIN.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Xmas scan (<option>-sX</option>)</term> + + <listitem> + <para>Setta i bit FIN, PSH e URG, accendendo il pacchetto + come un albero di natale.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>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 <literal + moreinfo="none">closed</literal>, mentre l'assenza + di risposta indica che la porta è <literal + moreinfo="none">open|filtered</literal>. La porta è marcata come + <literal moreinfo="none">filtered</literal> se viene ricevuto un + pacchetto ICMP "unreachable" (tipo 3, codice 1, 2, 3, 9, 10 o + 13).</para> + + <para>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 <literal moreinfo="none">closed</literal>. 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 <literal moreinfo="none">open</literal> e quelle <literal + moreinfo="none">filtered</literal>, dando come risposta <literal + moreinfo="none">open|filtered</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sA</option> (TCP ACK scan)</term> + + <listitem> + <para>Questo scan è diverso dagli altri discussi finora dal momento + che non serve per determinare se le porte sono <literal + moreinfo="none">open</literal> (o <literal + moreinfo="none">open|filtered</literal>). Viene usato per mappare + le regole di firewalling determinando se sono stateful o no e quali + porte sono filtrate.</para> + + <para>I pacchetti dell'ACK scan hanno soltanto il flag ACK + abilitato (a meno che non si usi <option>--scanflags</option>). + Mentre si scansionano sistemi non filtrati, sia le porte <literal + moreinfo="none">open</literal> che le porte <literal + moreinfo="none">closed</literal> manderanno pacchetti RST. Nmap poi + le cataloga come <literal moreinfo="none">unfiltered</literal>, 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 <literal + moreinfo="none">filtered</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sW</option> (TCP Window scan)</term> + + <listitem> + <para>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 <literal + moreinfo="none">unfiltered</literal> 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 <literal moreinfo="none">unfiltered</literal> + quando si riceve un RST di ritorno, il Window scan lista le porte + come <literal moreinfo="none">open</literal> o <literal + moreinfo="none">closed</literal> a seconda che il valore in quel + RST (reset) sia, rispettivamente, positivo o pari a zero.</para> + + <para>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 <literal moreinfo="none">closed</literal>. Ovviamente sarà + possibile che la macchina non abbia realmente nessuna porta aperta. + Se la maggior parte delle porte è <literal + moreinfo="none">closed</literal>, ma alcune porte comuni (come la + 22, la 25 o la 53) appaiono <literal + moreinfo="none">filtered</literal>, 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sM</option> (TCP Maimon scan)</term> + + <listitem> + <para>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 <ulink + url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC 793</ulink> + (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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--scanflags</option> (Custom TCP scan)</term> + + <listitem> + <para>Gli utilizzatori molto avanzati di Nmap hanno necessità di + non limitarsi semplicemente ad utilizzare le scansioni tipiche + offerte. L'opzione <option>--scanflags</option> 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!</para> + + <para>I parametri dell'opzione <option>--scanflags</option> + 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 <literal moreinfo="none">URG</literal>, <literal + moreinfo="none">ACK</literal>, <literal + moreinfo="none">PSH</literal>, <literal + moreinfo="none">RST</literal>, <literal + moreinfo="none">SYN</literal> e <literal + moreinfo="none">FIN</literal>. Per esempio, <option>--scanflags + URGACKPSHRSTSYNFIN</option> imposta tutti i flag, anche se non + risulta molto utile al fine della scansione. L'ordine con cui + vengono specificati non è rilevante.</para> + + <para>Oltre allo specificare i flag desiderati, è possibile + indicare un tipo di scansione TCP (come <option>-sA</option> o + <option>-sF</option>). Questo specifica come Nmap deve + interpretare le risposte. Per esempio, un SYN scan considera la + mancanza di risposta come una porta <literal + moreinfo="none">filtered</literal>, mentre un FIN scan interpreta + lo stesso comportamento per identificare una porta <literal + moreinfo="none">open|filtered</literal>. 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sZ (SCTP COOKIE ECHO scan)</option></term> + + <listitem> + <para>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 <literal moreinfo="none">open</literal> e <literal + moreinfo="none">filtered</literal> lasciando come stato <literal + moreinfo="none">open|filtered</literal> in entrambi i casi.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sI <zombie host>[:<probeport>]</option> + (idle scan)</term> + + <listitem> + <para>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 + <replaceable>zombie host</replaceable> 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 <quote> <ulink url="https://nmap.org/book/idlescan.html">TCP + Idle Scan (-sI)</ulink></quote>.</para> + + <para>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 <emphasis>dalla prospettiva dell'indirizzo IP della + macchina zombie.</emphasis> Risulta così possibile effettuare + scansioni utilizzando diversi zombie che si ritiene possano + attraversare router o sistemi con packet filter.</para> + + <para>È 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).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sO</option> (IP protocol scan)</term> + + <listitem> + <para>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 <option>-p</option> 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.</para> + + <para>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 <emphasis>nmap-hackers</emphasis>. 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!</para> + + <para>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 "<emphasis>protocol</emphasis> unreachable". Se Nmap riceve + una qualunque risposta di qualunque protocollo dall'host + scansionato, Nmap indica tale protocollo come <literal + moreinfo="none">open</literal>. Un errore ICMP "protocol + unreachable" (tipo 3, codice 2) fa sì che il protocollo sia + indicato come <literal moreinfo="none">closed</literal>. Altri + errori ICMP "unreachable" (tipo 3, codice 1, 3, 9, 10 o 13) fanno + classificare il protocollo come <literal + moreinfo="none">filtered</literal> (denotando, contestualmente, + che il protocollo ICMP è <literal + moreinfo="none">open</literal>). Se non viene ricevuta alcuna + risposta, il protocollo è identificato come <literal + moreinfo="none">open|filtered</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-b <FTP relay host></option> (FTP bounce + scan)</term> + + <listitem> + <para>Un'interessante caratteristica del protocollo FTP (<ulink + url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) è + 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 + <option>-b</option>. I parametri per tale opzione devono + rispettare il formato: + <replaceable>username</replaceable>:<replaceable>password</replaceable>@<replaceable>server</replaceable>:<replaceable>port</replaceable> + dove <replaceable>Server</replaceable> è l'hostname o l'indirizzo + IP di un server FTP vulnerabile a questo attacco. Come in una URL + normale, è possibile omettere + <replaceable>username</replaceable>:<replaceable>password</replaceable>, + ed in tal caso verranno utilizzate credenziali anonime (user: + <literal moreinfo="none">anonymous</literal> password:<literal + moreinfo="none">-wwwuser@</literal>). 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 <replaceable>server</replaceable>.</para> + + <para>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 <literal + moreinfo="none">ftp-bounce</literal>. 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.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-specification"> + <title>Port Specification e Scan Order</title> + + <para>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.</para> + + <variablelist> + <varlistentry> + <term><option>-p <port ranges></option> (Only scan specified + ports)</term> + + <listitem> + <para>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 <option>-p-</option> 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 + (<option>-sO</option>), questa opzione indica il numero del + protocollo che si desidera scansionare (0-255).</para> + + <para>Quando si effettua una scansione combinata di protocolli (ad + esempio TCP e UDP), è possibile specificare un protocollo + particolare anteponendo al numero di porta <literal + moreinfo="none">T:</literal> per TCP, <literal + moreinfo="none">U:</literal> per UDP, <literal + moreinfo="none">S:</literal> per SCTP o <literal + moreinfo="none">P:</literal> per IP Protocol. Tale indicazione + risulta valida sino a che non ne viene indicata un'altra. Per + esempio, l'opzione <option>-p + U:53,111,137,T:21-25,80,139,8080</option> 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 <option>-sU</option> e + almeno un metodo di TCP scan (come <option>-sS</option>, + <option>-sF</option> o <option>-sT</option>). Se non viene indicato + nulla, i numeri di porta vengono aggiunti a tutte le liste dei + protocolli.</para> + + <para>Le porte possono anche essere indicate tramite il loro nome, + così come sono indicate nell'<filename + moreinfo="none">nmap-services</filename>. 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 <option>-p ftp,http*</option>. Si raccomanda di + prestare attenzione alla "shell expansions" e di racchiudere tra + apici (quote) l'argomento di <option>-p</option> se non si è + sicuri.</para> + + <para>I range di porte possono essere racchiusi da parentesi quadre + per indicare le porte all'interno di quel range che appare in + <filename moreinfo="none">nmap-services</filename>. Ad esempio, ciò + che segue eseguirà la scansione di tutte le porte in <filename + moreinfo="none">nmap-services</filename> uguali o minori di 1024: + <option>-p [-1024]</option>. Si raccomanda di prestare attenzione + alla "shell expansions" e di racchiudere tra apici (quote) + l'argomento di <option>-p</option> se non si è sicuri.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--exclude-ports <port ranges></option> + (Exclude the specified ports from scanning)</term> + + <listitem> + <para>Quest'opzione specifica quali porte Nmap deve escludere dalla + scansione. I <replaceable>port ranges</replaceable> devono essere + specificati in modo simile a <option>-p</option>. Per le scansioni + IP protocol (<option>-sO</option>), questa opzione specifica il + numero di protocolli che si vuole escludere (0–255).</para> + + <para>Quando si richiede di escludere le porte, queste vengono + escluse da tutti i tipi di scansione. Ciò include anche la fase di + discovery.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-F</option> (Fast (limited port) scan)</term> + + <listitem> + <para>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 <option>-F</option> il numero si riduce a 100.</para> + + <para>Nmap ha bisogno del file <filename + moreinfo="none">nmap-services</filename> che contiene le + informazioni di frequenza, in modo da sapere quali sono le porte + più comuni (vedi <quote><ulink + url="https://nmap.org/book/nmap-services.html">Well Known Port List: + <option>nmap-services</option></ulink></quote> per maggiori + informazioni sulle "port frequencies"). Se la "port frequency + information" non è disponibile, forse perché si sta utilizzando un + file <filename moreinfo="none">nmap-services</filename> + personalizzato, Nmap scansiona tutte le porte nominate più le porte + nell'intervallo 1-1024. In questo caso, l'opzione + <option>-F</option> indica di scansionare solo le porte che sono + presenti nel file <filename + moreinfo="none">nmap-services</filename>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-r</option> (Don't randomize ports)</term> + + <listitem> + <para>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 <option>-r</option> così da effettuare i + controlli in ordine sequenziale crescente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--port-ratio <ratio><decimal number between 0 + and 1></option> + </term> + + <listitem> + <para>Scansiona tutte le porte presenti nel file <filename + moreinfo="none">nmap-services</filename> con un rapporto maggiore + di quello indicato. <replaceable>ratio</replaceable> deve essere + compreso tra 0.0 e 1.1. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--top-ports <n></option> + </term> + + <listitem> + <para>Scansiona le <replaceable>n</replaceable> porte presenti nel + file <filename moreinfo="none">nmap-services</filename> con il + maggior rapporto, dopo aver escluso tutte le porte indicate in + <option>--exclude-ports</option>. <replaceable>n</replaceable> deve + essere maggiore o uguale a 1. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-version-detection"> + <title>Service e Version Detection</title> + + <para>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 <filename moreinfo="none">nmap-services</filename>, 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.</para> + + <para>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.</para> + + <para>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 <filename + moreinfo="none">nmap-service-probes</filename> 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 <literal + moreinfo="none">open|filtered</literal> 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 + <literal moreinfo="none">open</literal> se ci riuscirà. Le porte TCP + <literal moreinfo="none">open|filtered</literal> vengono trattate nello + stesso modo. Bisogna tener presente che l'opzione <option>-A</option> + abilita, fra le varie cose, il version detection. Il version detection + viene descritto nel dettaglio in <ulink + url="https://nmap.org/book/vscan.html">Chapter 7, Service and Application + Version Detection</ulink>.</para> + + <para>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 <command moreinfo="none">rpcinfo -p</command> + anche se il portmapper dell'obiettivo e dietro un firewall (o protetto da + TCP wrappers). I decoy attualmente non funzionano con l'RPC scan.</para> + + <para>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.</para> + + <para>Version detection viene attivato e controllato dalle seguenti + opzioni:</para> + + <variablelist> + <varlistentry> + <term><option>-sV</option> (Version detection)</term> + + <listitem> + <para>Abilita il version detection, come precedentemente + illustrato. In alternativa, è possibile utilizzare l'opzione + <option>-A</option> che attiva il version detection, tra le altre + cose.</para> + + <para><option>-sR</option> è un alias <option>-sV</option>. Fino a + Marzo 2011 era usata per attivare l'RPC separatamente dal version + detection, ma ora queste opzioni sono sempre combinate.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--allports</option> (Don't exclude any ports from + version detection)</term> + + <listitem> + <para>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 + <literal moreinfo="none">Exclude</literal> nel file <filename + moreinfo="none">nmap-service-probes</filename> oppure specificando + l'opzione <option>--allports</option>, così da effettuare la + scansione di tutte le porte, indipendentemente da quanto indicato + nella direttiva <literal moreinfo="none">Exclude</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-intensity <intensity></option> + (Set version scan intensity)</term> + + <listitem> + <para>Quando si effettua un version scan (<option>-sV</option>), + 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 <literal + moreinfo="none">ports</literal> nel file <filename + moreinfo="none">nmap-service-probes</filename>, 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-light</option> (Enable light mode)</term> + + <listitem> + <para>Questa opzione è un alias di + <option>--version-intensity 2</option>. Questa modalità rende il + version scanning drasticamente più veloce, riducendone però la + capacità di identificare accuratamente i servizi.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-all</option> (Try every single probe)</term> + + <listitem> + <para>Questa opzione è equivalente a + <option>--version-intensity 9</option>, assicurando che ogni + singolo probe venga utilizzato su ogni singola porta.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-trace</option> (Trace version scan + activity)</term> + + <listitem> + <para>Indica a Nmap di visualizzare informazioni di debug estese + relative all'attività del version scanning. È un subset di + quanto si ottiene con l'opzione + <option>--packet-trace</option>.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-os-detection"> + <title>OS Detection</title> + + <para>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 + (<filename moreinfo="none">nmap-os-db</filename>) 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 <literal + moreinfo="none">cpe:/o:linux:linux_kernel:2.6</literal>.</para> + + <para>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.</para> + + <para>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 <quote>worthy challenge</quote> o <quote>trivial + joke</quote>, che viene riportata solo nel normale output in modalità + "verbose" (<option>-v</option>). Quando questa modalità è abilitata + insieme all'opzione <option>-O</option>, viene anche riportata la + sequenza di generazione dell'IP ID. La maggior parte delle macchine è + nella classe <quote>incremental</quote>, 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".</para> + + <para>Altre informazioni extra abilitate dall'OS detection riguardano + il tempo di attività (uptime) dell'obiettivo. Sfruttando l'opzione TCP + timestamp (<ulink url="http://www.rfc-editor.org/rfc/rfc1323.txt">RFC + 1323</ulink>) 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".</para> + + + <para>L'OS detection viene trattato nel dettaglio in <ulink + url="https://nmap.org/book/osdetect.html">Chapter 8, Remote OS + Detection</ulink>.</para> + + <para>OS detection viene attivato e controllato dalle le seguenti + opzioni:</para> + + <variablelist> + <varlistentry> + <term><option>-O</option> (Enable OS detection)</term> + + <listitem> + <para>Abilita l'OS detection, come descritto sopra. In + alternativa, è possibile utilizzare l'opzione <option>-A</option> + per attivare sia l'OS detection, tra le altre cose.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--osscan-limit</option> (Limit OS detection to + promising targets)</term> + + <listitem> + <para>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 <option>-Pn</option> su molti host. È importante + unicamente quando l'OS detection è richiesto attraverso le opzioni + <option>-O</option> o <option>-A</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--osscan-guess</option>; <option>--fuzzy</option> + (Guess OS detection results)</term> + + <listitem> + <para>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).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--max-os-tries</option>(Set the maximum number of OS + detection tries against a target)</term> + + <listitem> + <para>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 <option>--max-os-tries</option>, 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.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-nmap-scripting-engine"> + <title>Nmap Scripting Engine (NSE)</title> + + <para>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 <ulink + url="http://lua.org/">linguaggio di programmazione Lua</ulink>) 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à.</para> + + <para>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.</para> + + <para>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 + <literal moreinfo="none">auth</literal>, <literal + moreinfo="none">broadcast</literal>, + <literal moreinfo="none">default</literal>, <literal + moreinfo="none">discovery</literal>, + <literal moreinfo="none">dos</literal>, <literal + moreinfo="none">exploit</literal>, + <literal moreinfo="none">external</literal>, <literal + moreinfo="none">fuzzer</literal>, + <literal moreinfo="none">intrusive</literal>, <literal + moreinfo="none">malware</literal>, + <literal moreinfo="none">safe</literal>, <literal + moreinfo="none">version</literal> e + <literal moreinfo="none">vuln</literal>. Queste sono tutte descritte + nella sezione <quote><ulink + url="https://nmap.org/book/nse-usage.html#nse-categories">Script + Categories</ulink></quote>.</para> + + <para>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.</para> + + <para>L'Nmap Scripting Engine è descritto nel dettaglio in <ulink + url="https://nmap.org/book/nse.html">Chapter 9, Nmap Scripting + Engine</ulink> e viene controllato dalle seguenti opzioni:</para> + + <variablelist> + <varlistentry> + <term><option>-sC</option></term> + + <listitem> + <para>Esegue uno script scan utilizzando il set di script di + default. È l'equivalente di <option>--script=default</option>. + Alcuni degli script in questa categoria vengono considerati + intrusivi e potrebbero non essere eseguiti su di un obiettivo + di rete senza permessi.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--script + <filename>|<category>|<directory>|<expression>[,...]</option> + </term> + + <listitem> + <para>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.</para> + + <para>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 <literal + moreinfo="none">+</literal> 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 + <option>all</option> 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".</para> + + <para>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 <literal + moreinfo="none">scripts</literal> presenti in ogni seguente + locazione:</para> + + <variablelist> + <varlistentry> + <term><option>--datadir</option></term> + </varlistentry> + <varlistentry> + <term><option>$NMAPDIR</option></term> + </varlistentry> + <varlistentry> + <term><filename moreinfo="none">~/.nmap</filename> (non + usato in Windows)</term> + </varlistentry> + <varlistentry> + <term><filename + moreinfo="none"><HOME>\AppData\Roaming\nmap</filename> + (usato solo in Windows)</term> + </varlistentry> + <varlistentry> + <term>la directory contenente l'eseguibile di Nmap</term> + </varlistentry> + <varlistentry> + <term>la directory contenente l'eseguibile di Nmap, + seguita da <filename + moreinfo="none">../share/nmap</filename></term> + </varlistentry> + <varlistentry> + <term><option>NMAPDATADIR</option></term> + </varlistentry> + <varlistentry> + <term>La directory corrente</term> + </varlistentry> + </variablelist> + + <para> Quando viene specificata una directory, Nmap carica ogni + file in quella directory che ha come estensione <literal + moreinfo="none">.nse</literal>. Tutti gli altri file verranno + ignorati e la directory non verrà scansionata in modo + ricorsivo. Quando viene specificato un file, bisogna omettere + l'estensione <literal moreinfo="none">.nse</literal>, verrà + aggiunta automaticamente se necessario.</para> + + <para>Gli script Nmap sono archiviati di default in una + subdirectory <literal moreinfo="none">scripts</literal> della + directory principale di Nmap (vedi <ulink + url="https://nmap.org/book/data-files.html">Chapter 14, + Understanding and Customizing Nmap Data Files</ulink>). Per + migliorare l'efficienza, gli script vengono indicizzati nel + database <filename + moreinfo="none">scripts/script.db</filename>, che elenca le + categorie cui ogni script appartiene.</para> + + <para>Quando si usa il nome dagli script come riferimento dal + file <filename moreinfo="none">script.db</filename>, si può + utilizzare come nella shell il carattere speciale + <quote>*</quote>.</para> + + <variablelist> + <varlistentry> + <term><command moreinfo="none">nmap --script + "http-*"</command> </term> + + <listitem> + <para>Carica tutti gli script il cui nome inizia con + <literal moreinfo="none">http-</literal>, come <literal + moreinfo="none">http-auth</literal> e <literal + moreinfo="none">http-open-proxy</literal>. L'argomento di + <option>--script</option> è stato messo tra apici per + proteggere il carattere speciale dall'interpretazione della + shell.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Selezioni più complesse di script possono essere eseguite + utilizzando gli operatori <literal + moreinfo="none">and</literal>, <literal + moreinfo="none">or</literal> e <literal + moreinfo="none">not</literal> costruendo così espressioni booleane. + Gli operatori hanno la stessa precedenza che hanno in Lua: <literal + moreinfo="none">not</literal> è il più alto, seguito dal <literal + moreinfo="none">and</literal> e quindi <literal + moreinfo="none">or</literal>. Si può modificare la precedenza + utilizzando le parentesi. Dato che le espressioni contengono + caratteri di spazio, è necessario racchiuderle tra apici + (quote).</para> + + <variablelist> + <varlistentry> + <term><command moreinfo="none">nmap --script + "not intrusive"</command></term> + + <listitem> + <para>Carica tutti gli script tranne quelli nella + categoria <literal + moreinfo="none">intrusive</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command moreinfo="none">nmap --script "default or + safe"</command></term> + + <listitem> + <para>Questa funzionalità è l'equivalente di <command + moreinfo="none">--script "default,safe"</command>. + Carica tutti gli script che sono nelle categorie + <literal moreinfo="none">default</literal>, <literal + moreinfo="none">safe</literal> o in entrambe.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command moreinfo="none">nmap --script "default and + safe"</command></term> + + <listitem> + <para>Carica gli script che sono in + <emphasis>entrambe</emphasis> le categorie <literal + moreinfo="none">default</literal> e <literal + moreinfo="none">safe</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command moreinfo="none">nmap --script "(default or + safe or intrusive) and not http-*"</command></term> + + <listitem> + <para>Carica gli script che sono nelle categorie + <literal moreinfo="none">default</literal>, <literal + moreinfo="none">safe</literal> o <literal + moreinfo="none">intrusive</literal> tranne quelli il + cui nome inizia con <literal + moreinfo="">http-</literal>.</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--script-args + <n1>=<v1>,<n2>={<n3>=<v3>},<n4>={<v4>,<v5>}</option></term> + + <listitem> + <para>Permette di fornire argomenti agli script NSE. Gli + argomenti sono una lista, separati da virgola, di coppie + <literal moreinfo="none">name=value</literal>. 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 <literal + moreinfo="none">xmpp-info.server_name</literal>. Si può + utilizzare questa identificazione per agire solo sullo script + specificato, oppure utilizzare la versione non identificativa + (<literal moreinfo="none">server_name</literal> 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 è <option>--script-args + 'user=foo,pass=",{}=bar",whois={whodb=nofollow+ripe},xmpp-info.server_name=localhost'</option>. + L'NSE Documentation Portal all'indirizzo <ulink + url="https://nmap.org/nsedoc/" /> elenca gli argomenti che ogni + script accetta.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--script-args-file <filename></option></term> + + <listitem> + <para>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 + <option>--script-args</option>, senza però particolari apici + dato che non vengono elaborati dalla shell.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--script-help + <filename>|<category>|<directory>|<expression>|all[,...]</option></term> + + <listitem> + <para>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 + <option>--script</option>; quindi per esempio se si volesse + l'help dello script <literal + moreinfo="none">ftp-anon</literal>, si dovrà eseguire il + comando <command moreinfo="none">nmap --script-help + ftp-anon</command>. Oltre all'help per gli script individuali, + si potrà anche ottenere l'anteprima di cosa lo script + eseguirà secondo una specifica, ad esempio <command + moreinfo="none">nmap --script-help default</command>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--script-trace</option></term> + + <listitem> + <para>Quest'opzione è come l'opzione + <option>--packet-trace</option>, 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 + <option>--packet-trace</option> anche lo script tracing verrà + abilitato.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--script-updatedb</option></term> + + <listitem> + <para>Quest'opzione aggiorna il database degli script che si + trova nel file <filename + moreinfo="none">scripts/script.db</filename>, 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: <command + moreinfo="none">nmap --script-updatedb</command>.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-performance"> + <title>Timing and Performance</title> + + <para>Le performance sono sempre state una delle principali + priorità durante lo sviluppo di Nmap. Una scansione di default + (<command moreinfo="none">nmap + <replaceable>hostname</replaceable></command>) 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.</para> + + <para>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.</para> + + <para>Alcune opzioni accettano il parametro <literal + moreinfo="none">time</literal>. 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 <option>--host-timeout</option> gli + argomenti <literal moreinfo="none">900000ms</literal>, <literal + moreinfo="none">900</literal>, <literal + moreinfo="none">900s</literal> e <literal + moreinfo="none">15m</literal> hanno tutti lo stesso effetto.</para> + + <variablelist> + <varlistentry> + <term><option>--min-hostgroup <numhosts></option>; + <option>--max-hostgroup <numhosts></option> (Adjust + parallel scan group sizes)</term> + + <listitem> + <para>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).</para> + + <para>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.</para> + + <para>Nel caso in cui una dimensione massima del gruppo sia + specificata con <option>--max-hostgroup</option>, Nmap non + oltrepasserà mai questo limite. Specificando invece una + dimensione minima con <option>--min-hostgroup</option> + 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.</para> + + <para>Queste opzioni durante la fase di host discovery di una + scansione non hanno effetto; ciò include anche il plain ping + scan (<option>-sn</option>). L'host discovery lavora sempre su + grandi gruppi di host per aumentare la velocità e + l'accuratezza.</para> + + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--min-parallelism <numprobes></option>; + <option>--max-parallelism <numprobes></option> + (Adjust probe parallelization)</term> + + <listitem> + <para>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.</para> + + <para>L'uso più comune consiste nell'impostare + <option>--min-parallelism</option> 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.</para> + + <para>L'opzione <option>--max-parallelism</option> 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 + <option>--scan-delay</option> (discussa in seguito), è un altro + modo per ottenere questo risultato.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--min-rtt-timeout <time></option>, + <option>--max-rtt-timeout <time></option>, + <option>--initial-rtt-timeout <time></option> (Adjust probe + timeouts)</term> + + <listitem> + <para>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 <ulink + url="https://nmap.org/book/scan-methods.html#port-scanning-algorithms"><quote>Idle + Scan Implementation Algorithms</quote></ulink>. 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.</para> + + <para>Specificando limiti di <option>--max-rtt-timeout</option> + e di <option>--initial-rtt-timeout</option> inferiori ai + valori di default è possibile ridurre di molto i tempi di + scansione. Questo è vero in particolare per scansioni di tipo + "pingless" (opzione <option>-Pn</option>) 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.</para> + + <para>Se tutti gli host sono su una rete locale, 100 + millisecondi (<option>--max-rtt-timeout 100ms</option>)è 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 <option>--initial-rtt-timeout</option> e + triplicarlo o quadruplicarlo per l'opzione + <option>--max-rtt-timeout</option>. 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.</para> + + <para>L'opzione <option>--min-rtt-timeout</option> è 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--max-retries <numtries></option> (Specify + the maximum number of port scan probe retransmissions)</term> + + <listitem> + <para>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 <option>--max-retries 0</option> + 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).</para> + + <para>Di default (senza nessun template, opzione + <option>-T</option>) 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 <option>--max-retries</option> 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 + <option>--host-timeout</option> e perdere tutte le informazioni + dell'obiettivo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--host-timeout <time></option> (Give up on + slow target hosts)</term> + + <listitem> + <para>Alcuni host a volte richiedono un tempo estremamente + <emphasis>lungo</emphasis> 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 <option>--host-timeout</option> + 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--scan-delay <time></option>; + <option>--max-scan-delay <time></option> (Adjust delay + between probes)</term> + + <listitem> + <para>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 + <option>--scan-delay</option> 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.</para> + + <para>Quando Nmap aumenta lo scan delay in base al rate + limiting, la scansione rallenta drammaticamente. L'opzione + <option>--max-scan-delay</option> 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.</para> + + <para>Un altro uso dell'opzione<option>--scan-delay</option> + è quello in cui si desidera evitare sistemi anti-intrusione + (IDS/IPS, "intrusion-detection" e "intrusion-prevention + system"). Questa tecnica viene utilizzata nella sezione + <quote><ulink + url="https://nmap.org/book/firewalls.html#defeating-ids-snort-portscan"> + A practical example: bypassing default Snort 2.2.0 + rules</ulink></quote> per vincere il port scanner detector di + default in Snort IDS. Molti altri IDS possono essere sconfitti + con questo sistema.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--min-rate <number></option>; + <option>--max-rate <number></option> (Directly control the + scanning rate)</term> + + <listitem> + <para>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 + <option>--min-rate</option> e <option>--max-rate</option> sono + state create proprio per queste situazioni.</para> + + <para>Quando viene definita l'opzione + <option>--min-rate</option> 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 + <option>--min-rate 300</option> 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.</para> + + <para>Viceversa, <option>--max-rate</option> forza la + frequenza di invio dandogli un limite massimo. Utilizzare + <option>--max-rate 100</option>, ad esempio, per limitare + l'invio a 100 pacchetti al secondo su una rete veloce. Usare + <option>--max-rate 0.1</option> per una scansione lenta, un + pacchetto ogni dieci secondi. Entrambe le opzioni + <option>--min-rate</option> e <option>--max-rate</option> + mantengono la frequenza all'interno del range + specificato.</para> + + <para>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.</para> + + <para>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.</para> + + <para>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 <emphasis>più lenta</emphasis> rispetto + ad una scansione con un rate più basso. Questo perché + l'algoritmo <ulink + url="https://nmap.org/book/scan-methods.html#scan-methods-adaptive-retransmission">adaptive + retransmission</ulink> 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 + <option>--max-retries</option> se si deve rispettare un tempo + massimo per la scansione totale.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--defeat-rst-ratelimit</option></term> + <listitem> + <para>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 <emphasis>non</emphasis> considerano le porte + silenziose come <literal moreinfo="none">aperte</literal>) + mediante l'opzione + <option>--defeat-rst-ratelimit</option>.</para> + + <para>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 + <literal moreinfo="none">filtered</literal> piuttosto che + <literal moreinfo="none">closed</literal>. Quest'opzione è + utile solo quando si è interessati alle porte aperte, e la + distinzione tra porte <literal moreinfo="none">closed</literal> + e <literal moreinfo="none">filtered</literal> non è di alcun + interesse rispetto al tempo che richiede.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--nsock-engine + epoll|kqueue|poll|select</option> + </term> + <listitem> + <para>Forza l'utilizzo di un determinato "nsock IO multiplexing + engine". Solo per il "<option>select(2)</option>-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 <literal moreinfo="none">epoll</literal>, + <literal moreinfo="none">kqueue</literal>, <literal + moreinfo="none">poll</literal> e <literal + moreinfo="none">select</literal>, ma non saranno tutti presenti + su tutte le piattaforme. Utilizzare <command + moreinfo="none">nmap -V</command> per sapere quali engine sono + supportati.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-T + <paranoid|sneaky|polite|normal|aggressive|insane></option> + (Set a timing template)</term> + + <listitem> + <para>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 + <option>-T</option> 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 <option>-T3</option> 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à.</para> + + <para>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 <option>-T4</option> impedisce + al ritardo dinamico per una scansione di andare al di sotto + della soglia dei 10 millisecondi per le porte TCP, e l'opzione + <option>-T5</option> 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 <option>-T4</option> 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.</para> + + <para>Se la propria connessione è a banda larga o di tipo + ethernet, si raccomanda di usare sempre l'opzione + <option>-T4</option>. Alcuni prediligono anche l'opzione + <option>-T5</option>, nonostante per i più sia troppo + aggressiva. Altri a volte usano l'opzione <option>-T2</option> + 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 <option>-T + polite</option>; 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 <option>-T3</option>) 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.</para> + + <para>Mentre le opzioni <option>-T0</option> e + <option>-T1</option> 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 + <option>-T0</option> e <option>-T1</option>.</para> + + <para>Gli effetti principali dell'opzione <option>T0</option> + 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 <option>T1</option> e + <option>T2</option> sono simili ma attendono rispettivamente + 15 secondi e 0.4 secondi tra un probe e l'altro. L'opzione + <option>T3</option> è il comportamento di default di Nmap + (che include il parallelismo). L'opzione <option>T4</option> + ha lo stesso risultato dell'impostare + <option>--max-rtt-timeout 1250ms --initial-rtt-timeout + 500ms --max-retries 6</option> e di impostare il ritardo + massimo per una scansione TCP a 10 millisecondi. Infine + l'opzione <option>T5</option> è equivalente a + <option>--max-rtt-timeout 300ms --min-rtt-timeout 50ms + --initial-rtt-timeout 250ms --max-retries 2 --host-timeout + 15m</option> e ad impostare il massimo ritardo TCP (maximum + delay) a 5 millisecondi.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-bypass-firewalls-ids"> + <title>Bypassing e Spoofing di Firewall e Intrusion Detection System + (Firewall/IDS Evasion and Spoofing)</title> + + <para>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.</para> + + <para>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.</para> + + <para>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 + <emphasis>prevenzione</emphasis> 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.</para> + + <para>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".</para> + + <para>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.</para> + + <variablelist> + <varlistentry> + <term><option>-f</option> (fragment packets); + <option>--mtu</option> (using the specified MTU)</term> + + <listitem> + <para>L'opzione <option>-f</option> 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 <option>-f</option> si useranno insiemi di 16 byte + (riducendo così il numero di frammenti). In alternativa si può + indicare lo spiazzamento ("offset") desiderato mediante + l'opzione <option>--mtu</option>. Non si usi l'opzione + <option>-f</option> se si è usato <option>--mtu</option>. + 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 <option>--send-eth</option> per bypassare il + livello IP ed inviare direttamente frame Ethernet sul + cavo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-D + <decoy1>[,<decoy2>][,ME][,...]</option> + (Cloak a scan with decoys)</term> + + <listitem> + <para>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.</para> + + <para>Gli host decoy vanno separati con una virgola; è inoltre + possibile usare il parametro <literal + moreinfo="none">ME</literal> come uno dei decoy per + rappresentare la posizione del proprio indirizzo IP. Se si pone + il parametro <literal moreinfo="none">ME</literal> 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 <literal moreinfo="none">ME</literal>, Nmap metterà + il vostro IP in una posizione a caso. Si può anche utilizzare + <option>RND</option> per generare un numero casuale di + indirizzi IP non riservati, oppure + <option>RND:<replaceable>number</replaceable></option> per + generare <replaceable>number</replaceable> indirizzi.</para> + + <para>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.</para> + + <para>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 + <option>-O</option>). 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.</para> + + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-S <IP_Address></option> (Spoof source + address)</term> + + <listitem> + <para>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 <option>-S</option> seguita dall'indirizzo IP + dell'interfaccia che si vuole usare per inviare + pacchetti.</para> + + <para>Un altro possibile uso di quest'opzione potrebbe essere + per falsificare (spoof) la scansione per far credere al + bersaglio che <emphasis>qualcun altro</emphasis> 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 <option>-e</option> è in genere + richiesta per questo particolare utilizzo, e si consiglia + anche di usare <option>-Pn</option>. 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-e <interface></option> (Use specified + interface)</term> + + <listitem> + <para>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à.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--source-port <portnumber>; -g + <portnumber></option> (Spoof source port number)</term> + + <listitem> + <para>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.</para> + + <para>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.</para> + + <para>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).</para> + + <para>Nmap offre le opzioni (equivalenti) <option>-g</option> e + <option>--source-port</option> 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 + <option>--source-port</option> poiché Nmap si appoggia alle + librerie di sistema per gestirle.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--data <hex string></option> (Append custom + binary data to sent packets)</term> + + <listitem> + <para>Quest'opzione permette di includere valori binari come + dati nei pacchetti da inviare. + <replaceable>hex string</replaceable> può avere uno dei + seguenti formati: <option>0xAABBCCDDEEFF<...></option>, + <option>AABBCCDDEEFF<...></option> o + <option>\xAA\xBB\xCC\xDD\xEE\xFF<...></option>. Alcuni + esempi sono <option>--data 0xdeadbeef</option> e <option>--data + \xCA\xFE\x09</option>. Da notare che se si indica un valore + come <option>0x00ff</option> 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--data-string <string></option> (Append + custom string to sent packets)</term> + + <listitem> + <para>Quest'opzione permette di inviare una stringa come dati + nei pacchetti da inviare. <replaceable>string</replaceable> 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: <option>--data-string "Scan + conducted by Security Ops, extension 7192"</option> oppure + <option>--data-string "Ph34r my l33t skills"</option>. + 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--data-length <number></option> (Append + random data to sent packets)</term> + + <listitem> + <para>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 <option>--data-length 0</option> per + nessun valore random e nessun valore specifico del protocollo). + I pacchetti di OS detection (<option>-O</option>) 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--ttl <value></option> (Set IP time-to-live + field)</term> + + <listitem> + <para>Imposta il campo time-to-live (tempo di vita del pacchetto + IPv4) al valore richiesto.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--randomize-hosts</option> (Randomize target host + order)</term> + + <listitem> + <para>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 <filename moreinfo="none">nmap.h</filename> 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 <option>-sL -n -oN + <replaceable>filename</replaceable></option>), randomizzarla con + uno script Perl e passare la lista a Nmap con l'opzione + <option>-iL</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--spoof-mac <MAC address, prefix, or vendor + name></option> (Spoof MAC address)</term> + + <listitem> + <para>Richiede ad Nmap di usare l'indirizzo hardware (MAC) per + tutti i frame ethernet raw che invia. Quest'opzione implica + <option>--send-eth</option> 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 <filename + moreinfo="none">nmap-mac-prefixes</filename> 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 + <option>--spoof-mac</option> sono <literal + moreinfo="none">Apple</literal>, <literal + moreinfo="none">0</literal>, <literal + moreinfo="none">01:02:03:04:05:06</literal>, <literal + moreinfo="none">deadbeefcafe</literal>, <literal + moreinfo="none">0020F2</literal>, e <literal + moreinfo="none">Cisco</literal>. 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--proxies <Comma-separated list of proxy + URLs></option> (Relay TCP connections through a chain of + proxies)</term> + + <listitem> + <para>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 + <option>--max-parallelism</option> più basso potrebbe aiutare dato + che alcuni proxy non gestiscono diverse connessioni contemporanee, + come invece fa Nmap di default.</para> + + <para>Quest'opzione riceve una lista di proxy come argomento, + espressa come URL nel formato <literal + moreinfo="none">proto://host:port</literal>. Utilizzare la virgola + come separatore di URL in una catena. È anche supportata la + non autenticazione. I protocolli sono HTTP e SOCKS4.</para> + + <para>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).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--badsum</option> (Send packets with bogus TCP/UDP + checksums)</term> + + <listitem> + <para>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 <ulink + url="https://nmap.org/p60-12.txt"/>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--adler32</option> (Use deprecated Adler32 instead of + CRC32C for SCTP checksums)</term> + + <listitem> + <para>Richiede ad Nmap di usare l'algoritmo deprecato Adler32 per + calcolare il checksum SCTP. se <option>--adler32</option> non + viene impostato, viene usato CRC-32C (Castagnoli). L'<ulink + url="http://www.rfc-editor.org/rfc/rfc2960.txt">RFC 2960</ulink> + originariamente definisce Adler32 come l'algoritmo di checksum per + SCTP; L' <ulink + url="http://www.rfc-editor.org/rfc/rfc4960.txt">RFC 4960</ulink> + 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.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-output"> + <title>Output</title> + + <para>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.</para> + + <para>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.</para> + + <para>Nmap rende l'output disponibile in cinque formati differenti. Il + formato predefinito è chiamato <literal moreinfo="none">interactive + output</literal>, e viene mandato allo standard output (stdout). Poi si + ha il <literal moreinfo="none">normal output</literal>, 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.</para> + + <para>L'<literal moreinfo="none">XML output</literal> è 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.</para> + + <para>I rimanenti due tipi di output sono il semplice <literal + moreinfo="none">grepable output</literal>, che include la maggior parte + delle informazioni su un obiettivo in una linea singola, e lo <literal + moreinfo="none">sCRiPt KiDDi3 0utPUt</literal> per gli utenti che si + considerano |<-r4d.</para> + + <para>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 <option>-oX myscan.xml -oN + myscan.nmap</option>. Questo capitolo usa per brevità dei nomi semplici + come <literal moreinfo="none">myscan.xml</literal>, 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.</para> + + <para>Mentre queste opzioni salvano i risultati su files, Nmap mostra + anche l'output interattivo in standard output come sempre. Per esempio, + il comando <command moreinfo="none">nmap -oX myscan.xml target</command> + stampa XML dentro <filename moreinfo="none">myscan.xml</filename> e + scrive in standard output gli stessi risultati interattivi che avrebbe + stampato se <option>-oX</option> 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 <command + moreinfo="none">nmap -oX - target</command> manderà in stdout soltanto + l'output XML. Gli errori gravi possono comunque essere mostrati sullo + stream di standard error (stderr).</para> + + <para>A differenza di alcuni argomenti di Nmap, lo spazio tra l'opzione + di log (ad esempio <option>-oX</option>) e il nome del file o il + trattino, è obbligatorio. Se si omettono le opzioni e si danno argomenti + come <option>-oG-</option> o <option>-oXscan.xml</option>, una feature di + retro-compatibilità causerà la creazione di file di output in + <literal moreinfo="none">normal format</literal> chiamati rispettivamente + <filename moreinfo="none"> G-</filename> e <filename + moreinfo="none">Xscan.xml</filename>.</para> + + <para>Tutti questi argomenti supportano le conversioni di tipo <literal + moreinfo="none">strftime</literal> nel nome del file. <literal + moreinfo="none">%H</literal>, <literal moreinfo="none">%M</literal>, + <literal moreinfo="none">%S</literal>, <literal + moreinfo="none">%m</literal>, <literal moreinfo="none">%d</literal>, + <literal moreinfo="none">%y</literal> e <literal + moreinfo="none">%Y</literal> sono gli stessi parametri che si trovano in + <literal moreinfo="none">strftime</literal>. <literal + moreinfo="none">%T</literal> è l'equivalente di <literal + moreinfo="none">%H%M%S</literal>, <literal moreinfo="none">%R</literal> + è l'equivalente di <literal moreinfo="none">%H%M</literal> e <literal + moreinfo="none">%D</literal> è l'equivalente di <literal + moreinfo="none">%m%d%y</literal>. Un % seguito da qualsiasi altro + carattere da precedenza a quel carattere (%% mostra il simbolo + percentuale). Quindi <option>-oX 'scan-%T-%D.xml'</option> lavorerà su di + un file XML con un nome del tipo <literal + moreinfo="none">scan-144840-121307.xml</literal>.</para> + + <para>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.</para> + + <variablelist> + <title>I Formati di Output di Nmap</title> + + <varlistentry> + <term><option>-oN <filespec></option> (normal output)</term> + + <listitem> + <para>Richiede che il normal output venga rediretto al file + specificato. Come sopra, quest'output diverge leggermente da + <literal moreinfo="none">interactive output</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oX <filespec></option> (XML output)</term> + + <listitem> + <para>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 <ulink + url="https://svn.nmap.org/nmap/docs/nmap.dtd" />.</para> + + <para>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: <ulink + url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> + e <ulink + url="http://nmapparser.wordpress.com/">Nmap::Parser</ulink> nel + Perl CPAN. In quasi tutti i casi il formato preferito per + interpretare i risultati di Nmap è stato XML.</para> + + <para>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 <filename + moreinfo="none">nmap.xsl</filename> è quello scritto nel codice di + Nmap. Si vedano le opzioni <option>--webxml</option> o + <option>--stylesheet</option> per creare un file XML portabile che + renderizza come HTML in ogni macchina connessa al web.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oS <filespec></option> (ScRipT KIdd|3 + oUTpuT)</term> + + <listitem> + <para>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".</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oG <filespec></option> (grepable output)</term> + + <listitem> + <para>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.</para> + + <para>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.</para> + + <para>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 <literal moreinfo="none">Host</literal>, <literal + moreinfo="none">Ports</literal>, <literal + moreinfo="none">Protocols</literal>, <literal + moreinfo="none">Ignored State</literal>, <literal + moreinfo="none">OS</literal>, <literal moreinfo="none">Seq + Index</literal>, <literal moreinfo="none">IP ID</literal> e + <literal moreinfo="none">Status</literal>.</para> + + <para>Il più importante tra questi campi è generalmente il campo + <literal moreinfo="none">Ports</literal>, 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: <literal + moreinfo="none">Port number</literal>, <literal + moreinfo="none">State</literal>, <literal + moreinfo="none">Protocol</literal>, <literal + moreinfo="none">Owner</literal>, <literal + moreinfo="none">Service</literal>, <literal + moreinfo="none">SunRPC info</literal> e <literal + moreinfo="none">Version info</literal>.</para> + + <para>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 <quote><ulink + url="https://nmap.org/book/output-formats-grepable-output.html">Grepable + Output (-oG)</ulink></quote>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oA <basename></option> (Output to all + formats)</term> + + <listitem> + <para>In caso di bisogno, si potrebbe specificare <option>-oA + <replaceable>basename</replaceable> </option> per salvare i + risultati dello scan nei formati normal, XML e grepable in una sola + volta. Questi vengono salvati rispettivamente nei file + <replaceable>basename</replaceable>.nmap, + <replaceable>basename</replaceable>.xml e + <replaceable>basename</replaceable>.gnmap. Come la maggior parte + dei programmi, si può aggiungere un prefisso ai nomi dei file, come + ad esempio un percorso ad una directory, <filename + moreinfo="none">~/nmaplogs/foocorp/</filename> su UNIX o <filename + moreinfo="none">c:\hacking\sco</filename> su Windows.</para> + </listitem> + </varlistentry> + </variablelist> + + <variablelist> + <title>Verbosità e opzioni di debugging</title> + + <varlistentry> + <term><option>-v</option> (Increase verbosity level), + <option>-v<level></option> (Set verbosity level)</term> + + <listitem> + <para>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à.</para> + + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-d</option> (Increase debugging level), + <option>-d<level></option> (Set debugging level)</term> + + <listitem> + <para>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 + (<option>-v</option>), il debugging viene attivato da un'opzione di + riga di comando (<option>-d</option>) e il livello di debug può + essere aumentato ripetendo l'opzione diverse volte, ad esempio + <option>-dd</option>, o si può settare il debug level dando come + argomento di <option>-d</option> un numero. Ad esempio, + <option>-d9</option> 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.</para> + + <para>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: <literal + moreinfo="none">Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta + 14987 ==> srtt: 14987 rttvar: 14987 to: 100000</literal>. 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--reason</option> (Host and port state reasons)</term> + + <listitem> + <para>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 (<option>-sS</option> e + <option>-PS</option>) sono molto dettagliati, mentre il TCP connect + scan (<option>-sT</option>) è limitato all'implementazione della + chiamata di sistema <function moreinfo="none">connect</function>. + Questa feature è automaticamente abilitata dall'opzione di debug + (<option>-d</option>) e i suoi risultati vengono salvati in file + log in formato XML anche se quest'opzione non viene + specificata.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--stats-every <time></option> (Print periodic + timing stats)</term> + + <listitem> + <para>Periodicamente stampa un messaggio di timing status ogni + intervallo di <replaceable>time</replaceable>. Il tempo è una + specifica del tipo descritto nella sezione <quote><ulink + url="https://nmap.org/book/man-performance.html">Timing and + Performance</ulink></quote> di questo manuale; quindi per esempio, + si utilizzerà <option>--stats-every 10s</option> per avere un + aggiornamento dello stato ogni 10 secondi. Gli aggiornamenti + vengono stampati sull'interactive output (a schermo) e sull'XML + output.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--packet-trace</option> (Trace packets and data sent + and received)</term> + + <listitem> + <para>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 <option>-p20-30</option>. Se importa soltanto + vedere come procede il version detection si può usare + <option>--version-trace</option>. Se invece si è solo interessati + allo script tracing, indicare <option>--script-trace</option>. Con + <option>--packet-trace</option>, si avranno tutti quelli + sopra.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--open</option> (Show only open (or possibly open) + ports)</term> + + <listitem> + <para>Può succedere di essere interessati solamente alle porte cui + ci si può connettere al momento (le <literal + moreinfo="none">open</literal>) e non si vuole mischiare i + risultati con quelle <literal moreinfo="none">closed</literal>, + <literal moreinfo="none">closed</literal> o <literal + moreinfo="none">closed|filtered</literal>. 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 <option>--open</option> per vedere + solamente gli host con almeno una porta <literal + moreinfo="none">open</literal>, <literal + moreinfo="none">open|filtered</literal> o <literal + moreinfo="none">unfiltered</literal>, e vedere solamente le porte + con questi stati. Questi tre stati vengono trattati normalmente, il + che significa che <literal moreinfo="none">open|filtered</literal> + e <literal moreinfo="none">unfiltered</literal> potrebbero essere + raggruppate se ce ne dovessero essere troppe.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--iflist</option> (List interfaces and routes)</term> + + <listitem> + <para>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).</para> + </listitem> + </varlistentry> + </variablelist> + + <variablelist> + <title>Altre opzioni di output</title> + + <varlistentry> + <term><option>--append-output</option> (Append to rather than clobber + output files)</term> + + <listitem> + <para>Quando si specifica un nome di file mediante un parametro di + output come <option>-oX</option> o <option>-oN</option>, questo + file viene sovrascritto di default. Se si preferisce mantenere il + contenuto del file e aggiungerci i nuovi risultati, si deve usare + l'opzione <option>--append-output</option>. 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 + (<option>-oX</option>), poiché il parsing del file risultante non + sarà corretto fino a quando non si controllerà il file + manualmente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--resume <filename></option> (Resume aborted + scan)</term> + + <listitem> + <para>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 <keycap + moreinfo="none">ctrl-C</keycap>. Ricominciare l'intera scansione + dall'inizio può diventare fastidioso. Fortunatamente se sono + rimasti i log in formato "normal" (<option>-oN</option>) o + "grepable" (<option>-oG</option>), 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 <option>--resume</option> 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 <command + moreinfo="none">nmap --resume + <replaceable>logfilename</replaceable></command>. 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--stylesheet <path or URL></option> (Set XSL + stylesheet to transform XML output)</term> + + <listitem> + <para>Nmap viene fornito con un foglio di stile XSL chiamato + <filename moreinfo="none">nmap.xsl</filename> per vedere o tradurre + l'output XML in HTML. L'output XML include una direttiva <literal + moreinfo="none">xml-stylesheet</literal> che punta al file + <filename moreinfo="none">nmap.xml</filename> dove è stato + installato Nmap la prima volta. Processare il file XML con un XSLT + processor come <ulink + url="http://xmlsoft.org/XSLT/">xsltproc</ulink> 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 <option>--stylesheet</option>. Il file va indicato con il + percorso completo o l'URL. Un esempio di invocazione con + quest'opzione è <option>--stylesheet + https://nmap.org/svn/docs/nmap.xsl</option>. Questo indica ad un + XSLT processor di caricare l'ultima versione del foglio di stile da + Nmap.Org. L'opzione <option>--webxml</option> 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 <filename + moreinfo="none">nmap.xsl</filename>) installato. Quindi l'URL è + spesso una scelta migliore, ma di default viene usato il file dal + filesystem locale per ragioni di privacy.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--webxml</option> (Load stylesheet from Nmap.Org) + </term> + + <listitem> + <para>Quest'opzione è semplicemente una comodità per l'opzione + <option>--stylesheet + https://nmap.org/svn/docs/nmap.xsl</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--no-stylesheet</option> (Omit XSL stylesheet declaration + from XML) + </term> + + <listitem> + <para>Quest'opzione va specificata quando non si vuole che Nmap + associ un qualsiasi foglio di stile XSL al proprio output XML. + La direttiva <literal moreinfo="none">xml-stylesheet</literal> + viene omessa.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-misc-options"> + <title>Opzioni Miscellanee</title> + + <para>Questa sezione descrive alcune opzioni importanti (e altre non così + importanti) che non hanno trovato posto in altre sezioni.</para> + + <variablelist> + <varlistentry> + <term><option>-6</option> (Enable IPv6 scanning)</term> + + <listitem> + <para>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 + <option>-6</option>. Ovviamente si dovrà utilizzare la sintassi + IPv6 se si vuole specificare un indirizzo anziché un hostname. Un + indirizzo sarà qualcosa del tipo <literal + moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, + 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".</para> + + <para>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 <ulink + url="http://www.tunnelbroker.net/" />. Altri tunnel broker si + possono trovare <ulink + url="http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers"> su + Wikipedia</ulink>. Un altro approccio free comune sono i tunnel + 6to4.</para> + + <para>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 <option>--unprivileged</option> nelle altre + situazioni.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-A</option> (Aggressive scan options)</term> + + <listitem> + <para>Quest'opzione abilita altre opzioni addizionali avanzate ed + aggressive. Al momento questa opzione attiva l'OS detection + (<option>-O</option>), il version scanning (<option>-sV</option>), + lo script scanning (<option>-sC</option>) e il traceroute + (<option>--traceroute</option>). 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 + <option>-A</option> contro le reti senza averne avuto + autorizzazione. Quest'opzione attiva solo delle modalità di + funzionamento, ma non le opzioni di timing (come + <option>-T4</option>), né quelle di verbosity (<option>-v</option>) + 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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--datadir <nomedirectory></option>(Specify custom + Nmap data file location)</term> + + <listitem> + <para>Nmap ottiene alcuni dati speciali in runtime dai + files chiamati <filename + moreinfo="none">nmap-service-probes</filename>, <filename + moreinfo="none">nmap-services</filename>, <filename + moreinfo="none">nmap-protocols</filename>, <filename + moreinfo="none">nmap-rpc</filename>, <filename + moreinfo="none">nmap-mac-prefixes</filename> ed <filename + moreinfo="none">nmap-os-fingerprints</filename>. Se la location di + uno questi file viene specificata(usando l'opzione + <option>--servicedb</option> o l'opzione + <option>--versiondbNmap</option>), questa location viene utilizzata + per tutti quanti. Altrimenti, Nmap cerca i file nella directory + specificata con l'opzione <option>--datadir</option> (qualora + specificata). Qualunque file non trovato in questa locazione, verrà + cercato nella directory specificata nella variabile d'ambiente + <literal moreinfo="none">NMAPDIR</literal>. Segue poi <literal + moreinfo="none">~/.nmap</literal> per le vere e proprie UID (valido + solo per i sistemi POSIX) o, su Windows, <literal + moreinfo="none"><HOME>\AppData\Roaming\nmap</literal> (dove + <literal moreinfo="none"><HOME></literal> è la home directory + dell'utente, tipo <literal + moreinfo="none">C:\Users\user</literal>). Seguono poi la directory + dell'eseguibile di Nmap e le sue subdirectory <literal + moreinfo="none">../usr/share/nmap</literal>. Infine vengono + utilizzate le locazioni precompilate come <literal + moreinfo="none">/usr/local/share/nmap</literal> o <literal + moreinfo="none">/usr/share/nmap</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--servicedb <services file></option> (Specify + custom services file)</term> + + <listitem> + <para>Chiede ad Nmap di utilizzare specifici file "services" invece + che il file <filename moreinfo="none">nmap-services</filename> che + viene fornito con Nmap. Inoltre quest'opzione attiva l'opzione + <option>-F</option> che esegue una scansione veloce. Vedere la + descrizione di <option>--datadir</option> per avere più + informazioni sui data files di Nmap.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--versiondb <service probes file></option> + (Specify custom service probes file)</term> + + <listitem> + <para>Chiede ad Nmap di utilizzare specifici file "service probes" + invece che il file <filename + moreinfo="none">nmap-service-probes</filename> che + viene fornito con Nmap. Vedere la descrizione di + <option>--datadir</option> per avere più informazioni sui data + files di Nmap.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--send-eth </option> (Use raw ethernet sending)</term> + + <listitem> + <para>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)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--send-ip</option> (Send at raw IP level)</term> + + <listitem> + <para>Chiede a Nmap di mandare pacchetti via raw socket IP, + piuttosto che mandare trame al livello inferiore, ethernet. È + l'opzione complementare di <option>--send-eth</option> discussa + precedentemente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--privileged</option> (Assume that the user is fully + privileged)</term> + + <listitem> + <para>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 + <literal moreinfo="none">geteuid</literal> non è zero. + <option>--privileged</option> è 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 + <option>--privileged</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--unprivileged</option> (Assume that the user lacks raw + socket privileges)</term> + + <listitem> + <para>quest'opzione è l'opposta di <option>--privilegerd</option>. + 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 + <option>--unprivileged</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--release-memory </option>(Release memory before + quitting)</term> + + <listitem> + <para>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.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-V</option>; <option>--version</option> (Print version + number)</term> + + <listitem> + <para>Stampa a video il numero di versione di Nmap ed esce.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-h</option>; <option>--help</option> (Print help + summary page)</term> + + <listitem> + <para>Stampa a video una breve schermata di aiuto con le opzioni + più comuni. Eseguire Nmap senza argomenti fa la stessa cosa.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-runtime-interaction"> + <title>Interazione in Runtime</title> + + <para>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 <emphasis>le lettere minuscole + aumentano</emphasis> la quantità di messaggi stampati, mentre + <emphasis>le lettere maiuscole la diminuiscono</emphasis>. È inoltre + possibile premere <literal moreinfo="none">'?'</literal> per avere un + aiuto.</para> + <variablelist> + <varlistentry> + <term><option>v</option> / <option>V</option></term> + + <listitem> + <para>Aumenta / diminuisce la quantità di informazioni</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>d</option> / <option>D</option></term> + + <listitem> + <para>Aumenta / diminuisce il livello di debug</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>p</option> / <option>P</option></term> + + <listitem> + <para>Attiva / disattiva il tracing dei pacchetti</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>?</option></term> + + <listitem> + <para>Stampa una schermata di aiuto per le interazioni in tempo + reale</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Qualsiasi altro tasto</term> + + <listitem> + <para>Stampa un messaggio di stato come il seguente:</para> + <screen> + 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) + </screen> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-examples"> + <title>Esempi</title> + + <para>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 <emphasis>propria + rete</emphasis>. 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.</para> + + <para>Per motivi di test, è concesso il permesso di effettuare uno scan + verso <literal moreinfo="none">scanme.nmap.org</literal>. 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: <computeroutput moreinfo="none">Failed to resolve + given hostname/IP: scanme.nmap.org</computeroutput>. Questi permessi si + applichino agli host <literal moreinfo="none">scanme2.nmap.org</literal>, + <literal moreinfo="none">scanme3.nmap.org</literal> e così via, finché + ne esisteranno.</para> + + <para> + <command moreinfo="none">nmap -v scanme.nmap.org</command> + </para> + + <para>Questa opzione esegue uno scan su tutte le porte TCP riservate + sulla macchina <literal moreinfo="none">scanme.nmap.org</literal>. + L'opzione <option>-v</option> attiva la modalità verbose.</para> + + <para> + <command moreinfo="none">nmap -sS -O scanme.nmap.org/24</command> + </para> + + <para>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.</para> + + <para> + <command moreinfo="none">nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</command> + </para> + + <para>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.</para> + + <para> + <command moreinfo="none">nmap -v -iR 100000 -Pn -p 80</command> + </para> + + <para>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 <option>-Pn</option> dal momento + che verificare se un host è attivo è uno spreco quando si sta analizzando + soltanto una porta per ogni hosts.</para> + + <para> + <command moreinfo="none">nmap -Pn -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</command> + </para> + + <para>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".</para> + </refsect1> + + <refsect1 id="man-nmap-book"> + <title>Nmap Book</title> + + <para>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 <ulink url="https://nmap.org/book/"><emphasis>Nmap + Network Scanning: The Official Nmap Project Guide to Network Discovery + and Security Scanning</emphasis></ulink>. 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 <ulink url="https://nmap.org/book" />.</para> + </refsect1> + + <refsect1 id="man-bugs"> + <title>Bugs</title> + + <para>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 <ulink url="https://nmap.org/" />. 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 + <ulink url="https://insecure.org/search.html" /> o su Google il messaggio + di errore o ancora a sfogliare l'archivio Nmap-dev all'indirizzo <ulink + url="https://seclists.org/" />. Leggi inoltre tutta questa pagina di + manuale. Se nulla di questo riguarda il tuo caso, manda un bug report a + <email>dev@nmap.org</email>. 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 <email>dev@nmap.org</email> + 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 <ulink + url="https://nmap.org/mailman/listinfo/dev" />.</para> + + <para>Le patch che risolvono i bug sono molto meglio di una segnalazione. + Le istruzioni di base per creare delle patch sono disponibili su <ulink + url="https://svn.nmap.org/nmap/HACKING" />. Le patch potranno essere + inviate a nmap-dev (raccomandato) oppure direttamente a Fyodor.</para> + </refsect1> + + <refsect1 id="man-author"> + <title>Autore</title> + + <para>Gordon <quote>Fyodor</quote> Lyon <email>fyodor@nmap.org</email> + (<ulink url="http://www.insecure.org" />)</para> + + <title>Traduzione</title> + + <para>Parte 1/2 e revisione: Lorenzo G. + <email>lorenzo.grespan@gmail.com</email></para> + + <para>Parte 2/2: Simone Scarduzio + <email>scarduzio@gmail.com</email></para> + + <para>Aggiornamento e revisione 04/2015: Andrea Pizzarotti + <email>andrew3686@gmail.com</email></para> + + <para>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 <ulink + url="https://nmap.org/changelog.html" />.</para> + </refsect1> + + <refsect1 id="man-legal"> + <title>Note Legali</title> + + <refsect2> + <title>Copyright e Licenze di Nmap</title> + + <para>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 (<quote>GPL</quote>) 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 <email>sales@insecure.com</email>). 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.</para> + + <para>Si noti che la licenza GPL implica importanti vincoli sui + <quote>progetti derivati</quote>, 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 <quote>Covered Software</quote>):</para> + + <itemizedlist> + <listitem> + <para>Integra codice sorgente di <quote>Covered + Software</quote> + </para> + </listitem> + + <listitem> + <para>Legge o include data file protetti da copyright, quali + <filename moreinfo="none">nmap-os-db</filename> o <filename + moreinfo="none">nmap-service-probes</filename> di Nmap.</para> + </listitem> + + <listitem> + <para>È progettato specificatamente per eseguire <quote>Covered + Software</quote> e ne utilizza i risultati (al contrario delle + tipiche applicazioni shell o eseguibili da menù che eseguono + qualsiasi cosa venga detto loro).</para> + </listitem> + + <listitem> + <para>Integra/include/aggrega <quote>Covered Software</quote> 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 <quote>Covered Software</quote>, + anche se in realtà recupera una copia di <quote>Covered + Software</quote> da un'altra fonte in fase di installazione (come, + ad esempio, scaricandola da Internet). + </para> + </listitem> + + <listitem> + <para>È collegato (staticamente o dinamicamente) a una libreria che + presenta una delle caratteristiche sopracitate.</para> + </listitem> + + <listitem> + <para>Esegue un programma di aiuto, un modulo o uno script che + presenta una delle caratteristiche sopracitate.</para> + </listitem> + </itemizedlist> + + <para>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 <quote>Covered Software</quote>. 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 <filename + moreinfo="none">docs/licenses/OpenSSL.txt</filename> e di redistribuire + combinazioni collegate che includono entrambi.</para> + + <para>Ogni redistribuzione di <quote>Covered Software</quote>, 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 <quote>questa + Licenza</quote>, sono da considerarsi come inclusioni dei termini e + delle condizioni nel testo di questa stessa licenza.</para> + + <para>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 <email>fyodor@nmap.org</email>. + Allo stesso modo, non incorporiamo software incompatibile al principio + di open-source in <quote>Covered Software</quote> senza uno speciale + permesso dai titolari del copyright.</para> + + <para>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 + <email>sales@insecure.com</email>.</para> + + <para>Se si riceve questo file con accordo di licenza scritto, + o un contratto per <quote>Covered Software</quote> che afferma termini + diversi da quelli appena descritti, allora si può scegliere di + utilizzare e ridistribuire <quote>Covered Software</quote> sotto quei + termini anziché quelli qui riportati.</para> + </refsect2> + + <refsect2> + <title>Creative Commons License per questa Guida di Nmap</title> + + <para>Questa <emphasis>Nmap Reference Guide</emphasis> è 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).</para> + </refsect2> + + <refsect2> + <title>Disponibilità del Codice Sorgente e Contribuzioni + della Comunità</title> + + <para>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.</para> + + <para>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 + <email>dev@nmap.org</email> 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.</para> + </refsect2> + + <refsect2> + <title>Nessuna Garanzia</title> + + <para>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 <ulink + url="http://www.gnu.org/licenses/gpl-2.0.html" /> oppure nel file + COPYING incluso nel pacchetto di Nmap.</para> + + <para>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. <emphasis>Nmap non dovrebbe mai essere + lanciato contro sistemi "mission critical"</emphasis> 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.</para> + </refsect2> + + <refsect2> + <title>Uso Inappropriato</title> + + <para>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.</para> + + <para>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.</para> + </refsect2> + + <refsect2> + <title>Software di Terze Parti</title> + + <para>Questo prodotto include software sviluppato da <ulink + url="http://www.apache.org">Apache Software Foundation</ulink>. Una + versione modificata di <ulink url="http://www.tcpdump.org">Libpcap + portable packet capture library</ulink> è distribuita assieme a Nmap. + La versione per Windows di Nmap utilizza invece un derivato di Libpcap, + <ulink url="http://www.winpcap.org">WinPcap library</ulink>. Il + supporto per le regular espressions è garantito dalla libreria <ulink + url="http://www.pcre.org">PCRE library</ulink>, che è software + open-source, scritta da Philip Hazel. Alcune funzioni di raw networking + usano la libreria <ulink + url="http://libdnet.sourceforge.net">Libdnet</ulink>, che è stata + scritta da Dug Song. Con Nmap ne è distribuita una versione modificata. + Nmap può opzionalmente collegarsi con l'<ulink + url="http://www.openssl.org">OpenSSL cryptography toolkit</ulink> per + supportare il riconoscimento della versione di SSL. L'Nmap Scripting + Engine utilizza una versione implementata di <ulink + url="http://www.lua.org/">Lua programming language</ulink>. La <ulink + url="http://www.csie.ntu.edu.tw/~cjlin/liblinear/">Liblinear linear + classification library</ulink> viene utilizzata per le nostre tecniche + di apprendimento automatico dell'OS version su IPv6 (vedi la sezione + <quote><ulink + url="https://nmap.org/book/osdetect-guess.html#osdetect-guess-ipv6">IPv6 + matching</ulink></quote>). Tutto il software di terze parti descritto + in questo paragrafo è liberamente ridistribuibile sotto licenza stile + BSD.</para> + </refsect2> + + <refsect2 id="us-export"> + <title>United States Export Control</title> + + <para>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. <ulink + url="http://www.access.gpo.gov/bis/ear/ear_data.html">Export + Administration Regulations (EAR)</ulink>. 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.</para> + + <para>Quando compilato col supporto ad OpenSSL o distribuito come + codice sorgente, Insecure.Com LLC crede che Nmap rientri sotto U.S. + ECCN <ulink + url="http://www.access.gpo.gov/bis/ear/pdf/ccl5-pt2.pdf">5D002</ulink> + (<quote>Information Security Software</quote>). Distribuiamo Nmap + secondo l'eccezione TSU per il software di crittografia disponibile + pubblicamente definito in <ulink + url="http://www.access.gpo.gov/bis/ear/pdf/740.pdf">EAR + 740.13(e)</ulink>.</para> + </refsect2> + + <para>La presente traduzione ha il solo scopo di aiutare nella + comprensione del testo originale <quote>Nmap Reference Guide</quote>, + non ne costituisce copia sostitutiva e nemmeno licenza alternativa + di <quote>Covered Software</quote>. Per qualsiasi informazione o + chiarimento e per la versione più aggiornata, fare riferimento al testo + originale disponibile al link <ulink + url="https://nmap.org/book/man.html" />.</para> + </refsect1> + </refentry> +</article> |