diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:42:04 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:42:04 +0000 |
commit | 0d47952611198ef6b1163f366dc03922d20b1475 (patch) | |
tree | 3d840a3b8c0daef0754707bfb9f5e873b6b1ac13 /docs/man-xlate | |
parent | Initial commit. (diff) | |
download | nmap-0d47952611198ef6b1163f366dc03922d20b1475.tar.xz nmap-0d47952611198ef6b1163f366dc03922d20b1475.zip |
Adding upstream version 7.94+git20230807.3be01efb1+dfsg.upstream/7.94+git20230807.3be01efb1+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
30 files changed, 78816 insertions, 0 deletions
diff --git a/docs/man-xlate/nmap-de.1 b/docs/man-xlate/nmap-de.1 new file mode 100644 index 0000000..fee6b67 --- /dev/null +++ b/docs/man-xlate/nmap-de.1 @@ -0,0 +1,2214 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "Autor" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 31.03.2023 +.\" Manual: Nmap-Referenz-Handbuch +.\" Source: Nmap +.\" Language: German +.\" +.TH "NMAP" "1" "31.03.2023" "Nmap" "Nmap\-Referenz\-Handbuch" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nmap \- Netzwerk\-Analysewerkzeug und Sicherheits\-/Portscanner +.SH "ÜBERSICHT" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fIScan\ Type\fR...] [\fIOptions\fR] {\fItarget\ specification\fR} +.SH "BESCHREIBUNG" +.PP +Nmap („Network Mapper\(lq) ist ein Open\-Source\-Werkzeug für die Netzwerkanalyse und Sicherheitsüberprüfung\&. Es wurde entworfen, um große Netzwerke schnell zu scannen, auch wenn es bei einzelnen Hosts auch gut funktioniert\&. Nmap benutzt rohe IP\-Pakete auf neuartige Weise, um festzustellen, welche Hosts im Netzwerk verfügbar sind, welche Dienste (Anwendungsname und \-version) diese Hosts bieten, welche Betriebssysteme (und Versionen davon) darauf laufen, welche Art von Paketfiltern/\-Firewalls benutzt werden sowie Dutzende anderer Eigenschaften\&. Auch wenn Nmap üblicherweise für Sicherheitsüberprüfungen verwendet wird, wird es von vielen Systemen und Netzwerkadministratoren für Routineaufgaben benutzt, z\&.B\&. Netzwerkinventarisierung, Verwaltung von Ablaufplänen für Dienstaktualisierungen und die Überwachung von Betriebszeiten von Hosts oder Diensten\&. +.PP +Die Ausgabe von Nmap ist eine Liste gescannter Ziele mit zusätzlicher Information zu jedem, abhängig von den benutzten Optionen\&. Die entscheidende Information dabei steht in der +„Tabelle der interessanten Ports\(lq\&. +Diese Tabelle listet die Portnummer und das \-protokoll sowie den Dienstnamen und \-zustand auf\&. Der Zustand ist entweder +offen, +gefiltert, +geschlossen +oder +ungefiltert\&. +Offen +bedeutet, dass auf diesem Port des Zielrechners eine Anwendung auf eingehende Verbindungen/Pakete lauscht\&. +Gefiltert +bedeutet, dass eine Firewall, ein Filter oder ein anderes Netzwerkhindernis den Port blockiert, so dass Nmap nicht wissen kann, ob er +offen +oder +geschlossen ist\&. Für +geschlossene +Ports gibt es keine Anwendung, die auf ihnen lauscht, auch wenn sie jederzeit geöffnet werden könnten\&. Als +ungefiltert +werden Ports dann klassifiziert, wenn sie auf Nmaps Testpakete antworten, Nmap aber nicht feststellen kann, ob sie offen oder gechlossen sind\&. Nmap gibt die Zustandskombinationen +offen|gefiltert +und +geschlossen|gefiltert +an, wenn es nicht feststellen kann, welcher der beiden Zustände für einen Port zutrifft\&. Die Port\-Tabelle enthält eventuell auch Details zur Softwareversion, sofern eine Versionserkennung verlangt wurde\&. Wurde ein IP\-Protokoll\-Scan verlangt (\fB\-sO\fR), dann bietet Nmap Angaben über die unterstützten IP\-Protokolle statt über lauschende Ports\&. +.PP +Zusätzlich zur Tabelle der interessanten Ports kann Nmap weitere Angaben über Ziele bieten, darunter Reverse\-DNS\-Namen, Mutmaßungen über das benutzte Betriebssystem, Gerätearten und MAC\-Adressen\&. +.PP +Einen typischen Nmap\-Scan sehen Sie in +Beispiel 1\&. Die einzigen in diesem Beispiel benutzten Nmap\-Argumente sind +\fB\-A\fR +für die Betriebssystem\- und Versionserkennung, Script\-Scanning und Traceroute und +\fB\-T4\fR +für eine schnellere Ausführung\&. Danach kommen die Namen der Zielhosts\&. +.PP +\fBBeispiel 1. Ein repräsentativer Nmap\-Scan\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org + +Starting Nmap ( https://nmap\&.org ) +Interesting ports on scanme\&.nmap\&.org (64\&.13\&.134\&.52): +Not shown: 994 filtered ports +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 4\&.3 (protocol 2\&.0) +25/tcp closed smtp +53/tcp open domain ISC BIND 9\&.3\&.4 +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.2\&.2 ((Fedora)) +|_ HTML title: Go ahead and ScanMe! +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.6\&.X +OS details: Linux 2\&.6\&.20\-1 (Fedora Core 5) + +TRACEROUTE (using port 80/tcp) +HOP RTT ADDRESS +[Cut first seven hops for brevity] +8 10\&.59 so\-4\-2\-0\&.mpr3\&.pao1\&.us\&.above\&.net (64\&.125\&.28\&.142) +9 11\&.00 metro0\&.sv\&.svcolo\&.com (208\&.185\&.168\&.173) +10 9\&.93 scanme\&.nmap\&.org (64\&.13\&.134\&.52) + +Nmap done: 1 IP address (1 host up) scanned in 17\&.00 seconds +.fi +.if n \{\ +.RE +.\} +.PP +Die neueste Version von Nmap erhält man unter +\m[blue]\fB\%https://nmap.org\fR\m[], und die neueste Version der Manpage ist unter +\m[blue]\fB\%https://nmap.org/book/man.html\fR\m[] +verfügbar\&. +.SH "ÜBERSICHT DER OPTIONEN" +.PP +Diese Übersicht wird ausgegeben, wenn Nmap ohne Argumente aufgerufen wird; die neueste Version davon ist immer unter +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[] +verfügbar\&. Sie hilft dabei, sich die am häufigsten benutzten Optionen zu merken, ist aber kein Ersatz für die detaillierte Dokumentation im Rest dieses Handbuchs\&. Einige obskure Optionen werden hier nicht einmal erwähnt\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +Nmap 4\&.85BETA8 ( 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 + \-sP: Ping Scan \- go no further than determining if host is online + \-PN: Treat all hosts as online \-\- skip host discovery + \-PS/PA/PU[portlist]: TCP SYN/ACK or UDP 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\*(Aqs 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 + \-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 + \-F: Fast mode \- Scan fewer ports than the default scan + \-r: Scan ports sequentially \- don\*(Aqt 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\-trace: Show all data sent and received + \-\-script\-updatedb: Update the script database\&. +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 milliseconds, unless you append \*(Aqs\*(Aq + (seconds), \*(Aqm\*(Aq (minutes), or \*(Aqh\*(Aq (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 + \-\-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 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 twice or more for greater effect) + \-d[level]: Set or increase debugging level (Up to 9 is meaningful) + \-\-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: Enables OS detection and 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 \-sP 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 +.fi +.if n \{\ +.RE +.\} +.SH "ANGABE VON ZIELEN" +.PP +Nmap betrachtet alles in der Kommandozeile, was keine Option (oder ein Argument einer Option) ist, als Bezeichnung eines Zielhosts\&. Der einfachste Fall ist die Beschreibung einer IP\-Zieladresse oder eines Zielhostnamens zum Scannen\&. +.PP +Manchmal möchten Sie ein ganzes Netzwerk benachbarter Hosts scannen\&. Dafür unterstützt Nmap Adressen im CIDR\-Stil\&. +Sie können /\fInumbits\fR +an eine IPv4\-Adresse oder einen Hostnamen anfügen, und Nmap wird alle IP\-Adressen scannen, bei denen die ersten +\fInumbits\fR +mit denen der gegebenen IP oder des gegebenen Hostnamens übereinstimmen\&. Zum Beispiel würde 192\&.168\&.10\&.0/24 die 256 Hosts zwischen 192\&.168\&.10\&.0 (binär: +11000000 10101000 00001010 00000000) und 192\&.168\&.10\&.255 (binär: +11000000 10101000 00001010 11111111, inklusive) scannen\&. 192\&.168\&.10\&.40/24 würde genau dieselben Ziele scannen\&. Dadurch, dass der Host +scanme\&.nmap\&.org +die IP\-Adresse 64\&.13\&.134\&.52 hat, würde die Angabe scanme\&.nmap\&.org/16 die 65\&.536 IP\-Adressen zwischen 64\&.13\&.0\&.0 und 64\&.13\&.255\&.255 scannen\&. Der kleinste erlaubte Wert ist /0, der das gesamte Internet scannt\&. Der größte Wert ist /32 und scannt lediglich den Host mit angegebenem Namen oder IP\-Adresse, da alle Adressen\-Bits festgelegt sind\&. +.PP +Die CIDR\-Notation ist kurz, aber nicht immer flexibel genug\&. Vielleicht möchten Sie z\&.B\&. 192\&.168\&.0\&.0/16 scannen, aber IPs auslassen, die mit \&.0 oder \&.255 enden, weil sie als Unternetzwerk und Broadcast\-Adressen benutzt werden können\&. Nmap unterstützt das in Form einer Oktett\-Bereichsadressierung\&. Statt eine normale IP\-Adresse anzugeben, können Sie eine mit Kommata getrennte Liste von Zahlen oder Bereichen für jedes Oktett angeben\&. Zum Beispiel überspringt 192\&.168\&.0\-255\&.1\-254 alle Adressen im Bereich, die mit \&.0 oder \&.255 enden, und 192\&.168\&.3\-5,7\&.1 scannt die vier Adressen 192\&.168\&.3\&.1, 192\&.168\&.4\&.1, 192\&.168\&.5\&.1 und 192\&.168\&.7\&.1\&. Beide Bereichsgrenzen können weggelassen werden, die Standardwerte sind 0 für die linke und 255 für die rechte Grenze\&. Wenn Sie allein +\- +benutzen, ist das identisch mit 0\-255, aber denken Sie daran, im ersten Oktett 0\- zu benutzen, damit die Zielangabe nicht wie eine Kommandozeilenoption aussieht\&. Diese Bereiche müssen nicht auf die endgültigen Oktetts beschränkt sein: die Angabe 0\-255\&.0\-255\&.13\&.37 führt einen internetweiten Scan über alle IP\-Adressen aus, die mit 13\&.37 enden\&. Diese Art von breiter Abtastung kann bei Internet\-Umfragen und \-Forschungen hilfreich sein\&. +.PP +IPv6\-Adressen können nur durch ihre vollständige IPv6\-Adresse oder ihren Hostnamen angegeben werden\&. CIDR und Oktettbereiche werden für IPv6 nicht unterstützt, weil sie selten nützlich sind\&. +.PP +Nmap akzeptiert in der Kommandozeile mehrere Host\-Angaben, die auch nicht vom selben Typ sein müssen\&. Der Befehl +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.\-\fR +macht also das, was Sie erwarten würden\&. +.PP +Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern: +.PP +\fB\-iL \fR\fB\fIinputfilename\fR\fR (Eingabe aus einer Liste) +.RS 4 +Eine sehr lange Liste von Hosts in der Kommandozeile anzugeben ist oft sehr umständlich, kommt aber sehr häufig vor\&. Ihr DHCP\-Server z\&.B\&. exportiert vielleicht eine Liste von 10\&.000 aktuellen Adresszuweisungen (engl\&. leases), die Sie scannen möchten\&. Oder vielleicht möchten Sie alle IP\-Adressen +\fIaußer\fR +denjenigen scannen, um Hosts zu finden, die unautorisierte statische IP\-Adressen benutzen\&. Erzeugen Sie einfach die Liste der zu scannenden Hosts und übergeben Sie deren Dateinamen als Argument zur Option +\fB\-iL\fR +an Nmap\&. Die Einträge dürfen alle Formate haben, die Nmap auf der Kommandozeile akzeptiert (IP\-Adresse, Hostname, CIDR, IPv6 oder Oktettbereiche)\&. Alle Einträge müssen durch ein oder mehrere Leerzeichen, Tabulatoren oder Zeilenumbrüche getrennt sein\&. Wenn Sie einen Bindestrich (\-) als Dateinamen angeben, liest Nmap die Hosts von der Standardeingabe statt aus einer normalen Datei\&. +.RE +.PP +\fB\-iR \fR\fB\fInum hosts\fR\fR (zufällige Auswahl von Zielen) +.RS 4 +Für internetweite Umfragen und andere Forschungsaktivitäten möchten Sie Ziele vielleicht zufällig auswählen\&. Das kann man mit der Option +\fB\-iR\fR, die als Argument die Anzahl der zu erzeugenden IPs annimmt\&. Nmap lässt automatisch bestimmte unerwünschte IPs aus, wie solche in privaten, Multicast\- oder unbesetzten Adressbereichen\&. Für einen endlosen Scan kann man das Argument +0 +angeben\&. Denken Sie aber daran, dass manche Netzwerkadministratoren sich gegen unautorisierte Scans ihrer Netzwerke sträuben\&. Lesen Sie +„\(lq +sorgfältig, bevor Sie \-iR benutzen\&. +.sp +Falls Sie mal an einem regnerischen Tag wirklich Langeweile haben, probieren Sie einmal den Befehl +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR + + + +aus, um zufällig Webserver zu finden, auf denen Sie herumstöbern können\&. +.RE +.PP +\fB\-\-exclude \fR\fB\fIhost1\fR\fR\fB[,\fIhost2\fR[,\&.\&.\&.]]\fR (Ziele ausklammern) +.RS 4 +Gibt eine mit Kommata getrennte Liste von Zielen an, die vom Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen Netzwerkbereich fallen\&. Die übergebene Liste benutzt die normale Nmap\-Syntax und kann folglich Hostnamen, CIDR\-Netzblöcke, Oktettbereiche usw\&. enthalten\&. Das kann nützlich sein, wenn das zu scannende Netzwerk hochkritische Server und Systeme enthält, die man nicht anfassen darf, weil sie bekanntermaßen ungünstig auf Port\-Scans reagieren, oder Unternetze, die von anderen Leuten administriert werden\&. +.RE +.PP +\fB\-\-excludefile \fR\fB\fIexclude_file\fR\fR (Liste aus Datei ausklammern) +.RS 4 +Das bietet dieselbe Funktionalität wie die Option +\fB\-\-exclude\fR, mit dem Unterschied, dass die ausgeklammerten Ziele in der mit Zeilenumbrüchen, Leerzeichen oder Tabulatoren getrennten Datei +\fIexclude_file\fR +statt auf der Kommandozeile angegeben werden\&. +.RE +.SH "HOST\-ERKENNUNG" +.PP +Einer der allerersten Schritte bei jeder Netzwerkerkundung ist die Reduktion einer (manchmal riesigen) Menge von IP\-Bereichen auf eine Liste aktiver oder interessanter Hosts\&. Wenn man für alle einzelnen IP\-Adressen alle Ports scannt, so ist das nicht nur langsam, sondern normalerweise auch unnötig\&. Was einen Host interessant macht, hängt natürlich stark vom Zweck der Untersuchung ab\&. Netzwerkadministratoren interessieren sich vielleicht nur für Hosts, auf denen ein bestimmter Dienst läuft, während Sicherheitsprüfer sich vielleicht für alle Geräte interessieren, die eine IP\-Adresse haben\&. Ein Administrator benötigt vielleicht nur einen ICMP\-Ping, um Hosts in seinem internen Netzwerk zu finden, während ein externer Penetrationstester vielleicht Dutzende ganz verschiedener Tests einsetzen wird, um zu versuchen, die Firewall\-Beschränkungen zu umgehen\&. +.PP +Da die Anforderungen bei der Host\-Erkennung so verschieden sind, bietet Nmap eine breite Palette von Optionen zur Anpassung der eingesetzten Verfahren\&. Trotz seines Namens geht ein Ping\-Scan weit über die einfachen ICMP Echo\-Request\-Pakete hinaus, die mit dem allgegenwärtigen Werkzeug +ping +verbunden sind\&. Man kann den Ping\-Schritt völlig auslassen, indem man einen List\-Scan (\fB\-sL\fR) benutzt, Ping ausschaltet (\fB\-PN\fR) oder beliebige Kombinationen von Multi Port TCP\-SYN/ACK, UDP\- und ICMP\-Testanfragen auf ein Netzwerk loslässt\&. Der Zweck dieser Anfragen ist der, Antworten hervorzurufen, die zeigen, dass eine IP\-Adresse tatsächlich aktiv ist (d\&.h\&. von einem Host oder Gerät im Netzwerk benutzt wird)\&. In vielen Netzwerken ist nur ein kleiner Prozentsatz von IP\-Adressen zu einem bestimmten Zeitpunkt aktiv\&. Das gilt besonders für einen privaten Adressraum wie 10\&.0\&.0\&.0/8\&. Dieses Netzwerk enthält 16,8 Millionen IPs, aber ich habe auch Firmen gesehen, die es mit weniger als tausend Rechnern benutzen\&. Mit der Host\-Erkennung kann man diese spärlichen Rechnerinseln in einem Meer von IP\-Adressen finden\&. +.PP +Falls keine Optionen für die Host\-Erkennung angegeben werden, sendet Nmap ein TCP\-ACK\-Paket an Port 80 und ein ICMP Echo\-Request an alle Zielrechner\&. Eine Ausnahme ist, dass bei allen Zielen in einem lokalen Ethernet\-Netzwerk ein ARP\-Scan benutzt wird\&. Für unprivilegierte Unix\-Shell\-Benutzer wird mit dem +\fBconnect\fR\-Systemaufruf ein SYN\-Paket statt eines ACK gesendet\&. +Diese Standardeinstellungen sind äquivalent zu den Optionen +\fB\-PA \-PE\fR\&. Diese Host\-Erkennung ist oft ausreichend, wenn man lokale Netzwerke scannt, aber für Sicherheitsüberprüfungen empfiehlt sich eine umfangreichere Menge von Erkennungstestpaketen\&. +.PP +Die Optionen +\fB\-P*\fR +(die Ping\-Typen auswählen) lassen sich kombinieren\&. Sie können Ihre Chancen steigern, bei strengen Firewalls durchzukommen, indem Sie viele Testpaketarten mit verschiedenen TCP\-Ports/\-Flags und ICMP\-Codes senden\&. Beachten Sie auch, dass die ARP\-Erkennung (\fB\-PR\fR) +bei Zielen in einem lokalen Ethernet\-Netzwerk standardmäßig erfolgt, selbst dann, wenn Sie andere +\fB\-P*\fR\-Optionen angeben, weil sie fast immer schneller und effizienter ist\&. +.PP +Standardmäßig führt Nmap eine Host\-Erkennung und dann einen Port\-Scan auf jedem Host aus, den es als online erkennt\&. Das gilt auch dann, wenn Sie nicht standardmäßige Host\-Erkennungstypen wie UDP\-Testpakete (\fB\-PU\fR) angeben\&. Lesen Sie über die Option +\fB\-sP\fR +nach, um zu lernen, wie man nur eine Host\-Erkennung durchführt, oder über +\fB\-PN\fR, um die Host\-Erkennung zu überspringen und einen Port\-Scan aller Zielhosts durchzuführen\&. Folgende Optionen steuern die Host\-Erkennung: +.PP +\fB\-sL\fR (List\-Scan) +.RS 4 +Ein List\-Scan ist eine degenerierte Form der Host\-Erkennung, die einfach jeden Host im angegebenen Netzwerk (bzw\&. den Netzwerken) auflistet, ohne Pakete an die Ziel\-Hosts zu senden\&. Standardmäßig führt Nmap immer noch eine Reverse\-DNS\-Auflösung der Hosts durch, um deren Namen zu lernen\&. Es ist oft erstaunlich, wie viel nützliche Informationen einfache Hostnamen verraten\&. Zum Beispiel ist +fw\&.chi +der Name einer Firewall einer Firma in Chicago\&. + +Nmap gibt am Ende auch die gesamte Anzahl der IP\-Adressen aus\&. Ein List\-Scan ist eine gute Plausibilitätsprüfung, um sicherzustellen, dass Sie saubere IP\-Adressen für Ihre Ziele haben\&. Falls die Hosts Domainnamen enthalten, die Ihnen nichts sagen, lohnt sich eine weitere Untersuchung, um zu verhindern, dass Sie das Netzwerk der falschen Firma scannen\&. +.sp +Da die Idee einfach die ist, eine Liste der Zielhosts auszugeben, lassen sich Optionen für eine höhere Funktionalität wie z\&.B\&. Port\-Scanning, Betriebssystemerkennung oder Ping\-Scanning damit nicht kombinieren\&. Falls Sie einen Ping\-Scan abschalten und trotzdem solch höhere Funktionalität durchführen möchten, lesen Sie bei der Option +\fB\-PN\fR +weiter\&. +.RE +.PP +\fB\-sP\fR (Ping\-Scan) +.RS 4 +Diese Option verlangt, dass Nmap nur einen Ping\-Scan (Host\-Erkennung) durchführt und dann die verfügbaren Hosts ausgibt, die auf den Scan geantwortet haben\&. Darüber hinaus werden keine weiteren Tests (z\&.B\&. Port\-Scans oder Betriebssystemerkennung) durchgeführt, außer bei Host\-Scripts mit der Nmap Scripting Engine und traceroute\-Tests, sofern Sie diese Optionen angegeben haben\&. Das ist eine Stufe aufdringlicher als ein List\-Scan und kann oft für dieselben Zwecke benutzt werden\&. Sie führt schnell eine schwache Aufklärung des Zielnetzwerks durch, ohne viel Aufmerksamkeit zu erregen\&. Für Angreifer ist es wertvoller, zu wissen, wie viele Hosts verfügbar sind, als die Liste aller IPs und Hostnamen aus einem List\-Scan zu kennen\&. +.sp +Für Systemadministratoren ist diese Option oft ebenfalls wertvoll\&. Mit ihr kann man sehr leicht die verfügbaren Rechner in einem Netzwerk zählen oder die Server\-Verfügbarkeit überwachen\&. So etwas nennt man oft auch einen Ping\-Sweep, und es ist zuverlässiger als ein Pinging auf die Broadcast\-Adresse, weil viele Hosts auf Broadcast\-Anfragen nicht antworten\&. +.sp +Die Option +\fB\-sP\fR +sendet standardmäßig einen ICMP Echo\-Request und ein TCP\-ACK\-Paket an Port 80\&. Bei Ausführung ohne Sonderrechte wird nur ein SYN\-Paket (mit einem +\fBconnect\fR\-Aufruf) an Port 80 an das Ziel gesendet\&. Wenn ein Benutzer mit Sonderrechten versucht, Ziele in einem lokalen Ethernet\-Netzwerk zu scannen, werden ARP\-Requests verwendet, es sei denn, die Option +\fB\-\-send\-ip\fR +wird angegeben\&. Die Option +\fB\-sP\fR +kann mit allen Erkennungsmethoden (die Optionen +\fB\-P*\fR, außer +\fB\-PN\fR) kombiniert werden, um eine höhere Flexibilität zu erhalten\&. Falls zwischen dem Ausgangs\-Host, auf dem Nmap läuft, und dem Zielnetzwerk strenge Firewalls installiert sind, empfehlen sich diese fortgeschrittenen Methoden\&. Ansonsten könnten Hosts übersehen werden, wenn die Firewall Testanfragen oder Antworten darauf verwirft +.RE +.PP +\fB\-PN\fR (Ping abschalten) +.RS 4 +Eine weitere Möglichkeit ist die, die Erkennungsphase von Nmap völlig auszulassen\&. Normalerweise bestimmt Nmap in dieser Phase aktive Rechner, die es anschließend stärker scannt\&. Standardmäßig führt Nmap heftigere Tests wie Port\-Scans, Versions\- oder Betriebssystemerkennung bei Hosts durch, die es bereits als aktiv eingestuft hat\&. Das Ausschalten der Host\-Erkennung mit der Option +\fB\-PN\fR +bewirkt, dass Nmap versucht, die gewünschten Scan\-Funktionen auf +\fIallen\fR +angegebenen Ziel\-IP\-Adresssen durchzuführen\&. Wenn also ein Zieladressraum der Größe Klasse B (/16) auf der Kommandozeile angegeben wird, werden alle 65\&.536 IP\-Adressen gescannt\&. Eine richtige Host\-Erkennung wird wie bei einem List\-Scan übersprungen, aber statt anzuhalten und die Zielliste auszugeben, fährt Nmap mit der Durchführung der gewünschten Funktionen fort, so als ob jede Ziel\-IP aktiv wäre\&. Bei Rechnern im lokalen Ethernet\-Netzwerk wird ein ARP\-Scan weiterhin ausgeführt (es sei denn, es wird +\fB\-\-send\-ip\fR +angegeben), da Nmap MAC\-Adressen braucht, um Zielhosts weiter zu scannen\&. Diese Option lautete früher einaml +\fBP0\fR +(mit einer Null), wurde dann aber umbenannt, um Verwirrung mit der Option +\fBPO\fR +von Protokoll\-Pings (benutzt den Buchstaben O) zu vermeiden\&. +.RE +.PP +\fB\-PS \fR\fB\fIport list\fR\fR (TCP\-SYN\-Ping) +.RS 4 +Diese Option sendet ein leeres TCP\-Paket mit gesetztem SYN\-Flag\&. Der vorgegebene Zielport ist 80 (lässt sich zum Zeitpunkt des Kompilierens durch Ändern von +\fIDEFAULT_TCP_PROBE_PORT_SPEC\fR +in +nmap\&.h +konfigurieren), +aber man kann einen alternativen Port als Parameter angeben\&. Die Syntax ist dieselbe wie bei +\fB\-p\fR, mit dem Unterschied, dass Porttypenbezeichner wie +T: +nicht erlaubt sind\&. Beispiele hierfür sind +\fB\-PS22\fR +und +\fB\-PS22\-25,80,113,1050,35000\fR\&. Beachten Sie, dass es kein Leerzeichen zwischen +\fB\-PS\fR +und der Port\-Liste geben darf\&. Falls mehrere Tests angegeben werden, werden sie parallel durchgeführt\&. +.sp +Das SYN\-Flag bedeutet für das entfernte System, dass Sie versuchen, eine Verbindung herzustellen\&. Normalerweise wird der Zielport geschlossen sein, und es wird ein RST\-(Reset\-)Paket zurückgeschickt\&. Falls der Port offen ist, führt das Ziel den zweiten Schritt eines TCP\-three\-way\-handshake + +durch, indem es mit einem SYN/ACK\-TCP\-Paket antwortet\&. Der Rechner, auf dem Nmap läuft, bricht dann die entstehende Verbindung ab, indem er mit einem RST antwortet, statt ein ACK\-Paket zu senden, mit dem der three\-way handshake komplett und eine vollständige Verbindung hergestellt wäre\&. Das RST\-Paket wird als Antwort auf das unerwartete SYN/ACK vom Betriebssystem\-Kernel des Rechners gesendet, auf dem Nmap läuft, nicht von Nmap selbst\&. +.sp +Für Nmap ist es egal, ob der Port offen oder geschlossen ist\&. Aus beiden Antworten, ob RST oder SYN/ACK, schließt Nmap, dass der Host verfügbar ist und antwortet\&. +.sp +Auf Unix\-Rechnern kann im Allgemeinen nur der mit Sonderrechten ausgestattete Benutzer +root +rohe TCP\-Pakete senden und empfangen\&. +Bei normalen Benutzern kommt automatisch eine Umgehungslösung zum Tragen, +bei der für alle Zielports der +\fBconnect\fR\-Systemaufruf verwendet wird\&. Das bewirkt, dass an den Zielhost ein SYN\-Paket gesendet wird, mit der Absicht, eine Verbindung herzustellen\&. Falls +\fBconnect\fR +schnell ein erfolgreiches Ergebnis oder einen ECONNREFUSED\-Fehler zurückgibt, muss der darunterliegende TCP\-Stack ein SYN/ACK oder RST empfangen haben, und der Host wird als verfügbar vermerkt\&. Falls der Verbindungsversuch hängenbleibt, bis eine Zeitbeschränkung erreicht ist, wird der Host als inaktiv vermerkt\&. Diese Behelfslösung wird auch bei IPv6\-Verbindungen verwendet, da Nmap den Bau roher IPv6\-Pakete noch nicht unterstützt\&. +.RE +.PP +\fB\-PA \fR\fB\fIport list\fR\fR (TCP\-ACK\-Ping) +.RS 4 +Der TCP\-ACK\-Ping ist ziemlich ähnlich zum SYN\-Ping\&. Der Unterschied ist der, dass das TCP\-ACK\-Flag statt dem SYN\-Flag gesetzt wird, was Sie sich bestimmt schon gedacht haben\&. Ein solches ACK\-Paket erweckt den Eindruck, es wolle Daten auf einer bestehenden TCP\-Vebindung bestätigen, während eine solche Verbindung gar nicht existiert\&. Entfernte Hosts sollten darauf immer mit einem RST\-Paket antworten, wobei sie ihre Existenz verraten\&. +.sp +Die Option +\fB\-PA\fR +benutzt denselben Standard\-Port wie der SYN\-Test (80) und nimmt ebenfalls eine Liste von Zielports im selben Format an\&. Falls ein unprivilegierter Benutzer das ausprobiert oder falls ein IPv6\-Ziel angegeben wird, wird die bereits erwähnte Behelfslösung mit +\fBconnect\fR +eingesetzt\&. Diese ist nicht perfekt, da +\fBconnect\fR +tatsächlich ein SYN\-Paket statt eines ACK sendet\&. +.sp +Der Grund für die Existenz sowohl von SYN\- als auch ACK\-Ping\-Tests liegt darin, die Chancen für die Umgehung von Firewalls zu erhöhen\&. Viele Administratoren konfigurieren Router und andere einfache Firewalls so, dass sie eingehende SYN\-Pakete blockieren, außer bei solchen für öffentliche Dienste wie bei der Website oder dem Mailserver der Firma\&. Das verhindert weitere eingehende Verbindungen zur Organisation, während es den Benutzern freie Verbindungen ins Internet erlaubt\&. Dieser zustandslose Ansatz benötigt wenige Ressourcen in der Firewall bzw\&. im Router und wird von Hardware\- und Software\-Filtern weithin unterstützt\&. Die Firewall\-Software Netfilter/iptables +in Linux bietet die komfortable Option +\fB\-\-syn\fR, um diesen zustandslosen Ansatz zu implementieren\&. Wenn solche Firewall\-Regeln vorhanden sind, werden SYN\-Ping\-Tests (\fB\-PS\fR), die an geschlossene Zielports gesendet werden, sehr wahrscheinlich blockiert\&. In solchen Fällen greift der ACK\-Test, da er diese Regeln einfach kappt\&. +.sp +Eine weitere häufige Art von Firewalls verwendet zustandsbehaftete Regeln, die unerwartete Pakete verwerfen\&. Dieses Merkmal konnte man zuerst bei hochwertigen Firewalls finden, es hat sich aber mit der Zeit deutlich verbreitet\&. In Linux unterstützt das Netfilter/iptables\-System das mit der Option +\-\-state, die Pakete nach einem Verbindungszustand kategorisiert\&. In solchen Fällen hat der SYN\-Test eine wesentlich bessere Chance auf Erfolg, da unerwartete ACK\-Pakete im Allgemeinen als fehlerhaft erkannt und verworfen werden\&. Eine Lösung aus diesem Dilemma besteht darin, mit +\fB\-PS\fR +und +\fB\-PA\fR +SYN\- und ACK\-Testpakete zu senden\&. +.RE +.PP +\fB\-PU \fR\fB\fIport list\fR\fR (UDP\-Ping) +.RS 4 +Eine weitere Möglichkeit bei der Host\-Erkennung ist der UDP\-Ping, bei dem ein leeres (außer bei Angabe von +\fB\-\-data\-length\fR) UDP\-Paket an die angegebenen Ports gesendet wird\&. Die Portliste hat dasselbe Format wie bei den weiter oben beschriebenen Optionen +\fB\-PS\fR +und +\fB\-PA\fR\&. Falls keine Ports angegeben werden, ist die Standardeinstellung 31338\&. Dieser Wert kann zum Zeitpunkt des Kompilierens dürch Änderung von +\fIDEFAULT_UDP_PROBE_PORT_SPEC\fR +in +nmap\&.h +konfiguriert werden\&. +Es wird absichtlich ein sehr unwahrscheinlicher Port verwendet, weil bei dieser bestimmten Art des Scannens das Senden an offene Ports oft unerwünscht ist\&. +.sp +Trifft der UDP\-Test beim Zielrechner auf einen geschlossenen Port, so sollte dieser ein ICMP\-Paket zurückschicken, das besagt, dass der Port nicht erreichbar ist\&. Daraus schließt Nmap, dass der Rechner läuft und verfügbar ist\&. Viele weitere Arten von ICMP\-Fehlern, z\&.B\&. bei unerreichbaren Hosts/Netzwerken oder überschrittener TTL (Time To Live), sind Zeichen für einen abgeschalteten oder unerreichbaren Host\&. Auch eine ausbleibende Antwort wird so interpretiert\&. Falls ein offener Port erreicht wird, ignorieren die meisten Dienste das leere Paket einfach und geben keine Antwort zurück\&. Deswegen wird als Standardport 31338 benutzt, bei dem es sehr unwahrscheinlich ist, dass er benutzt wird\&. Einige Dienste, wie z\&.B\&. das Character Generator\-Protokoll (chargen), antworten auf ein leeres UDP\-Paket und enthüllen damit Nmap gegenüber, dass der Rechner zugänglich ist\&. +.sp +Der Hauptvorteil dieses Scan\-Typs liegt darin, dass er Firewalls und Filter umgeht, die nur TCP überprüfen\&. Ich hatte z\&.B\&. einmal ein BEFW11S4, einen Wireless\-Breitband\-Router von Linksys\&. Die externe Schnittstelle dieses Geräts filterte standardmäßig alle TCP\-Ports, aber UDP\-Tests entlockten ihm weiterhin Meldungen über unerreichbare Ports und verrieten damit das Gerät\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (ICMP\-Ping\-Arten) +.RS 4 +Zusätzlich zu den genannten ungewöhnlichen TCP\- und UDP\-Host\-Erkennungsarten kann Nmap auch Standardpakete senden, wie sie das allgegenwärtige Programm +ping +sendet\&. Nmap sendet ein ICMP Typ\-8\-Paket (Echo\-Request) an die Ziel\-IP\-Adressen und erwartet eine Typ\-0\-Antwort (Echo\-Reply) vom verfügbaren Host\&. +Zum Leidwesen von Netzwerkerkundern blockieren viele Hosts und Firewalls heute diese Pakete, statt, wie in +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[1]\d\s+2 +verlangt, darauf zu antworten\&. Aus diesem Grund sind ICMP\-Scans allein bei unbekannten Zielen über das Internet selten zuverlässig genug\&. Aber für Systemadministratoren, die ein internes Netzwerk überwachen, kann das ein praktischer und wirksamer Ansatz sein\&. Benutzen Sie die Option +\fB\-PE\fR, um dieses Verhalten mit Echo\-Requests einzuschalten\&. +.sp +Auch wenn ein Echo\-Request die Standard\-ICMP\-Ping\-Abfrage ist, hört Nmap hier nicht auf\&. Der ICMP\-Standard (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[2]\d\s+2) spezifiziert auch Anfragepakete für Zeitstempel, Information und Adressmaske mit den jeweiligen Codes 13, 15 und 17\&. Während diese Anfragen angeblich den Zweck haben, an Informationen wie Address Mask und Timestamp zu gelangen, können sie auch leicht für die Host\-Erkennung benutzt werden\&. Im Moment implementiert Nmap keine Information\-Request\-Pakete, da sie nicht weit verbreitet sind (RFC 1122 besteht darauf, dass +„ein Host diese Nachrichten NICHT implementieren SOLLTE\(lq)\&. Anfragen nach Timestamp und Address Mask können jeweils mit den Optionen +\fB\-PP\fR +und +\fB\-PM\fR +gesendet werden\&. Eine Timestamp\-Antwort (ICMP\-Code 14) oder Address\-Mask\-Antwort (Code 18) enthüllt, dass der Host greifbar ist\&. Diese beiden Abfragen können wertvoll sein, wenn Administratoren ausdrücklich Echo\-Request\-Pakete blockieren, aber vergessen, dass man für den gleichen Zweck auch andere ICMP\-Abfragen benutzen kann\&. +.RE +.PP +\fB\-PO \fR\fB\fIprotocol list\fR\fR (IP\-Protokoll\-Ping) +.RS 4 +Die neueste Möglichkeit der Host\-Erkennung ist ein IP\-Protokoll\-Ping, der IP\-Pakete sendet, in deren IP\-Header die angegebene Protokollnummer gesetzt ist\&. Die Protokoll\-Liste hat dasselbe Format wie Portlisten bei den weiter oben vorgestellten Optionen der TCP\- und UDP\-Host\-Erkennung\&. Ohne Angabe von Protokollen werden standardmäßig mehrere IP\-Pakete für ICMP (Protokoll 1), IGMP (Protokoll 2) und IP\-in\-IP (Protokoll 4) gesendet\&. Die Standardprotokolle können zum Zeitpunkt des Kompilierens durch Veränderung von +\fIDEFAULT_PROTO_PROBE_PORT_SPEC\fR +in +nmap\&.h +konfiguriert werden\&. Beachten Sie, dass für ICMP, IGMP, TCP (Protokoll 6) und UDP (Protokoll 17) die Pakete mit den richtigen Protokoll\-Headern gesendet werden, während andere Protokolle ohne weitere Daten über den IP\-Header hinaus gesendet werden (es sei denn, die Option +\fB\-\-data\-length\fR +wird angegeben)\&. +.sp +Diese Methode der Host\-Erkennung sucht nach Antworten, die entweder dasselbe Protokoll wie der Test haben, oder Meldungen, dass das ICMP\-Protokoll nicht erreichbar ist, was bedeutet, dass das gegebene Protokoll vom Zielhost nicht unterstützt wird\&. Beide Antworten bedeuten, dass der Zielhost am Leben ist\&. +.RE +.PP +\fB\-PR\fR (ARP\-Ping) +.RS 4 +Eines der häufigsten Einsatzszenarien für Nmap ist das Scannen eines Ethernet\-LANs\&. In den meisten LANs, besonders jenen, die durch +\m[blue]\fBRFC 1918\fR\m[]\&\s-2\u[3]\d\s+2 +erteilte private Adressbereiche verwenden, wird der Großteil der IP\-Adressen meistens nicht genutzt\&. Wenn Nmap versucht, ein rohes IP\-Paket wie z\&.B\&. ein ICMP Echo\-Request zu senden, muss das Betriebssystem die der Ziel\-IP entsprechende Hardware\-Zieladresse (ARP) bestimmen, damit es den Ethernet\-Frame korrekt adressieren kann\&. Das ist oft langsam und problematisch, da Betriebssysteme nicht in der Erwartung geschrieben wurden, dass sie in kurzer Zeit Millionen von ARP\-Anfragen bei nicht erreichbaren Hosts durchführen müssen\&. +.sp +Beim ARP\-Scan ist Nmap mit seinen optimierten Algorithmen zuständig für ARP\-Anfragen\&. Und wenn es eine Antwort erhält, muss sich Nmap nicht einmal um die IP\-basierten Ping\-Pakete kümmern, da es bereits weiß, dass der Host aktiv ist\&. Das macht den ARP\-Scan viel schneller und zuverlässiger als IP\-basierte Scans\&. Deswegen wird er standardmäßig ausgeführt, wenn Ethernet\-Hosts gescannt werden, bei denen Nmap bemerkt, dass sie sich in einem lokalen Ethernet\-Netzwerk befinden\&. Selbst wenn verschiedene Ping\-Arten (wie z\&.B\&. +\fB\-PE\fR +oder +\fB\-PS\fR) angegeben werden, benutzt Nmap stattdessen ARP bei allen Zielen, die im selben LAN sind\&. Wenn Sie einen ARP\-Scan auf gar keinen Fall durchführen möchten, geben Sie +\fB\-\-send\-ip\fR +an\&. +.RE +.PP +\fB\-\-traceroute\fR (Traceroutes zum Host) +.RS 4 +Traceroutes werden nach einem Scan mit Hilfe der Information aus den Scan\-Ergebnissen durchgeführt, um den wahrscheinlichsten Port und das wahrscheinlichste Protokoll zu bestimmen, die zum Ziel führen\&. Es funktioniert mit allen Scan\-Arten außer Connect\-Scans (\fB\-sT\fR) und Idle\-Scans (\fB\-sI\fR)\&. Alle Traces benutzen Nmaps dynamisches Timing\-Modell und werden parallel durchgeführt\&. +.sp +Traceroute funktioniert dadurch, dass es Pakete mit kurzer TTL (Time To Live) sendet und damit versucht, ICMP Time\-Exceeded\-Nachrichten von Sprungstellen zwischen dem Scanner und dem Zielhost hervorzurufen\&. Standardimplementationen von Traceroute fangen mit einer TTL von 1 an und inkrementieren die TTL, bis der Zielhost erreicht ist\&. Nmaps Traceroute fängt mit einer hohen TTL an und verringert sie, bis sie Null erreicht\&. Durch dieses umgekehrte Vorgehen kann Nmap clevere Caching\-Algorithmen benutzen, um Traces über mehrere Hosts zu beschleunigen\&. Im Durchschnitt sendet Nmap je nach Netzwerkbedingungen 5–10 Pakete weniger pro Host\&. Wenn ein einziges Unternetz gescannt wird (z\&.B\&. 192\&.168\&.0\&.0/24), muss Nmap an die meisten Hosts eventuell nur ein einziges Paket senden\&. +.RE +.PP +\fB\-n\fR (keine DNS\-Auflösung) +.RS 4 +Weist Nmap an, +\fIniemals\fR +eine Reverse\-DNS\-Auflösung +bei den gefundenen aktiven IP\-Adressen durchzuführen\&. Da DNS selbst mit Nmaps eingebautem parallelen Stub\-Resolver langsam sein kann, kann diese Option die Scan\-Zeiten dramatisch reduzieren\&. +.RE +.PP +\fB\-R\fR (DNS\-Auflösung für alle Ziele) +.RS 4 +Weist Nmap an, +\fIimmer\fR +eine Reverse\-DNS\-Auflösung bei den Ziel\-IP\-Adressen durchzuführen\&. Normalerweise wird Reverse\-DNS nur bei anwortenden Hosts (die online sind) durchgeführt\&. +.RE +.PP +\fB\-\-system\-dns\fR (verwendet DNS\-Auflösung des Systems) +.RS 4 +Standardmäßig löst Nmap IP\-Adressen auf, indem es Anfragen direkt an die auf Ihrem Host konfigurierten Nameserver schickt und dann auf Antworten wartet\&. Um die Performance zu erhöhen, werden viele Anfragen (oftmals Dutzende) parallel ausgeführt\&. Wenn Sie diese Option angeben, verwenden Sie stattdessen die Auflösungsmethode Ihres Systems (zu jedem Zeitpunkt nur eine IP mit dem Aufruf +\fBgetnameinfo\fR +call)\&. Das ist langsam und selten nützlich, es sei denn, Sie finden einen Fehler bei der parallelen Auflösung in Nmap (bitte teilen Sie uns das mit)\&. Bei IPv6\-Scans wird immer die Auflösungsmethode des Systems verwendet\&. +.RE +.PP +\fB\-\-dns\-servers \fR\fB\fIserver1\fR\fR\fB[,\fIserver2\fR[,\&.\&.\&.]]\fR\fB \fR (Server, die für Reverse\-DNS\-Anfragen benutzt werden) +.RS 4 +Standardmäßig bestimmt Nmap Ihre DNS\-Server (für die rDNS\-Auflösung) aus Ihrer Datei resolv\&.conf (Unix) oder der Registry (Win32)\&. Mit dieser Option können Sie alternative Server dazu angeben\&. Diese Option bleibt unbeachtet, falls Sie +\fB\-\-system\-dns\fR +oder einen IPv6\-Scan benutzen\&. Oft ist es schneller, mehrere DNS\-Server zu benutzen, besonders dann, wenn Sie für Ihren Ziel\-IP\-Raum maßgebende Server benutzen\&. Diese Option kann auch die Heimlichkeit erhöhen, da Ihre Anfragen von fast jedem rekursiven DNS\-Server im Internet abprallen können\&. +.sp +Diese Option ist auch beim Scannen privater Netzwerke praktisch\&. Manchmal bieten nur einige wenige Nameserver saubere rDNS\-Information, und Sie wissen vielleicht nicht einmal, wo sie sind\&. Sie können das Netzwerk auf Port 53 scannen (vielleicht mit Versionserkennung), dann Nmap\-List\-Scans versuchen (\fB\-sL\fR) und dabei mit der Option +\fB\-\-dns\-servers\fR +immer nur einen Nameserver angeben, bis Sie einen finden, der funktioniert\&. +.RE +.SH "GRUNDLAGEN VON PORT\-SCANS" +.PP +Nmap hat über die Jahre an Funktionalität zugelegt, aber angefangen hat es als effizienter Port\-Scanner, und das ist weiterhin seine Kernfunktion\&. Der einfache Befehl +\fBnmap \fR\fB\fItarget\fR\fR +scannt die am häufigsten verwendeten 1000 TCP\-Ports auf dem Host +\fItarget\fR +und klassifiziert jeden Port in einen der Zustände +offen, +geschlossen, +gefiltert, +ungefiltert, +offen|gefiltert +oder +geschlossen|gefiltert\&. +.PP +Diese Zustände sind keine echten Eigenschaften eines Ports selbst, sondern beschreiben, wie Nmap ihn sieht\&. Ein Nmap\-Scan z\&.B\&., bei dem Ausgangs\- und Zielnetzwerk identisch sind, könnte Port +135/tcp +als offen anzeigen, während ein Scan zur selben Zeit mit denselben Optionen über das Internet diesen Port als +gefiltert +anzeigen könnte\&. +.PP +\fBDie sechs von Nmap erkannten Port\-Zustände\fR +.PP +offen +.RS 4 +Ein Programm ist bereit, TCP\-Verbindungen oder UDP\-Pakete auf diesem Port anzunehmen\&. Beim Port\-Scanning ist es oftmals das Ziel, solche Ports zu finden\&. Sicherheitsbewusste Leute wissen, dass jeder offene Port eine breite Einfahrtstrasse für Angriffe darstellt\&. Angreifer und Penetrationstester wollen offene Ports ausbeuten (engl\&. exploit), während Administratoren versuchen, sie zu schließen oder mit Firewalls zu schützen, ohne legitime Benutzer zu behindern\&. Offene Ports sind auch für Scans von Interesse, bei denen es nicht um Sicherheit geht, weil sie Dienste anzeigen, die im Netzwerk benutzt werden können\&. +.RE +.PP +geschlossen +.RS 4 +Ein geschlossener Port ist erreichbar (er empfängt und antwortet auf Nmap\-Testpakete), aber es gibt kein Programm, das ihn abhört\&. Er kann von Nutzen sein, um zu zeigen, dass ein Host online ist und eine IP\-Adresse benutzt (Host\-Erkennung oder Ping\-Scanning), sowie als Teil der Betriebssystemerkennung\&. Weil geschlossene Ports erreichbar sind, sind sie es wert, gescannt zu werden, falls sie später einmal geöffnet werden sollten\&. Administratoren möchten solche Ports vielleicht mit einer Firewall blockieren, damit sie im Zustand gefiltert erscheinen, der als Nächstes beschrieben wird\&. +.RE +.PP +gefiltert +.RS 4 +Nmap kann nicht feststellen, ob der Port offen ist, weil eine Paketfilterung verhindert, dass seine Testpakete den Port erreichen\&. Die Filterung könnte durch dafür vorgesehene Firewall\-Geräte, Router\-Regeln oder hostbasierte Firewall\-Software erfolgen\&. Weil sie so wenig Information bringen, sind diese Ports für Angreifer frustrierend\&. Manchmal antworten sie mit ICMP\-Fehlermeldungen wie Typ 3, Code 13 (Destination Unreachable: Communication Administratively Prohibited), aber Filter, die Testpakete ohne Antwort einfach verwerfen, kommen wesentlich häufiger vor\&. Das zwingt Nmap zu mehreren wiederholten Versuchen, um auszuschließen, dass das Testpaket wegen einer Netzwerküberlastung statt durch eine Filterung verworfen wurde\&. Diese Art der Filterung verlangsamt einen Scan dramatisch\&. +.RE +.PP +ungefiltert +.RS 4 +Der Zustand ungefiltert bedeutet, dass ein Port zugänglich ist, aber Nmap nicht feststellen kann, ob er offen oder geschlossen ist\&. Nur der ACK\-Scan, der benutzt wird, um Firewall\-Regelwerke zu bestimmen, klassifiziert Ports in diesen Zustand\&. Um festzustellen, ob ein ungefilterter Port offen ist, kann es hilfreich sein, ihn mit anderen Scan\-Methoden wie Window\-Scan, SYN\-Scan oder FIN\-Scan zu scannen\&. +.RE +.PP +offen|gefiltert +.RS 4 +Nmap klassifiziert einen Port in diesen Zustand, wenn es nicht feststellen kann, ob der Port offen oder gefiltert ist\&. Das kommt bei Scan\-Methoden vor, in denen offene Ports keine Antwort geben\&. Das Fehlen einer Antwort könnte auch bedeuten, dass ein Paketfilter das Testpaket verworfen hat oder dass keine Antwort provoziert werden konnte\&. Deswegen weiß Nmap nicht sicher, ob der Port offen ist oder gefiltert wird\&. Ports werden von den UDP\-, IP\-Protokoll\-, FIN\-, NULL\- und Xmas\-Scans auf diese Weise klassifiziert\&. +.RE +.PP +geschlossen|gefiltert +.RS 4 +Dieser Zustand wird benutzt, wenn Nmap nicht feststellen kann, ob ein Port geschlossen ist oder gefiltert wird\&. Er wird nur vom IP\-ID\-Idle\-Scan benutzt\&. +.RE +.SH "PORT\-SCANNING\-METHODEN" +.PP +Als Hobby\-Automechaniker kann ich mich stundenlang damit herumquälen, meine einfachsten Werkzeuge (Hammer, Klebeband, Schraubenschlüssel etc\&.) an mein Problem anzupassen\&. Wenn ich dann kläglich versage und meine alte Blechkiste zu einem echten Mechaniker schleppe, fischt er immer so lange in einer riesigen Werkzeugkiste herum, bis er das perfekte Ding gefunden hat, mit dem sich die Aufgabe fast von allein löst\&. Bei der Kunst des Port\-Scannings ist es ähnlich\&. Experten kennen Dutzende von Scan\-Methoden und wählen für jede Aufgabe die geeignete (oder eine Kombination von mehreren) aus\&. Auf der anderen Seite versuchen unerfahrene Benutzer und Script\-Kiddies, +jedes Problem mit dem standardmäßigen SYN\-Scan zu lösen\&. Da Nmap gratis ist, ist Unwissen das einzige Hindernis auf dem Weg zur Meisterschaft im Port\-Scanning\&. Das ist bestimmt besser als in der Autowelt, wo man eventuell sehr viel Können haben muss, um festzustellen, dass man einen Federbein\-Kompressor benötigt, und dann immer noch Tausende dafür bezahlen muss\&. +.PP +Die meisten Scan\-Typen stehen nur privilegierten Benutzern zur Verfügung, +und zwar deswegen, weil sie rohe IP\-Pakete +senden und empfangen, wofür auf Unix\-Systemen root\-Rechte benötigt werden\&. Auf Windows empfiehlt sich ein Administrator\-Account, wenngleich auf dieser Plattform Nmap manchmal auch für unprivilegierte Benutzer funktioniert, sofern WinPcap bereits in das Betriebssystem geladen wurde\&. Als Nmap 1997 veröffentlicht wurde, war die Voraussetzung von root\-Rechten eine ernsthafte Beschränkung, da viele Benutzer nur Zugriff zu Shell\-Accounts hatten\&. Die Welt von heute ist anders\&. Computer sind billiger, wesentlich mehr Menschen verfügen über einen immer verfügbaren direkten Internet\-Zugang, und Desktop\-Unix\-Systeme (inklusive Linux und Mac OS X) sind weit verbreitet\&. Eine Windows\-Version von Nmap ist nun auch verfügbar, wodurch es nun auf noch mehr Rechnern laufen kann\&. Aus all diesen Gründen sind Benutzer nur noch selten gezwungen, Nmap von einem beschränkten Shell\-Account aus einzusetzen\&. Das ist erfreulich, denn die privilegierten Optionen machen Nmap wesentlich mächtiger und flexibler\&. +.PP +Auch wenn Nmap versucht, genaue Ergebnisse zu produzieren, sollten Sie nicht vergessen, dass all seine Erkenntnisse auf Paketen basieren, die von den Zielrechnern (oder den Firewalls davor) zurückkommen\&. Solche Hosts können unzuverlässig sein und eine Antwort senden, die Nmap verwirren oder täuschen soll\&. Wesentlich häufiger sind Hosts, die nicht RFC\-konform sind und auf Testpakete von Nmap nicht so antworten, wie sie sollten\&. FIN\-, NULL\- und Xmas\-Scans sind für dieses Problem besonders anfällig\&. Solche Probleme sind spezifisch für bestimmte Scan\-Methoden und werden daher in den jeweiligen Abschnitten erörtert\&. +.PP +Dieser Abschnitt dokumentiert die etwa ein Dutzend von Nmap unterstützten Port\-Scan\-Methoden\&. Es darf immer nur eine Methode allein benutzt werden, mit der Ausnahme von UDP\-Scans (\fB\-sU\fR), die sich mit allen anderen TCP\-Scan\-Methoden kombinieren lassen\&. Hier eine Gedächtnisstütze: Optionen für Port\-Scan\-Methoden haben die Form +\fB\-s\fR\fB\fIC\fR\fR, wobei +\fIC\fR +ein bedeutender Buchstabe im Scan\-Namen ist, normalerweise der erste\&. Die eine Ausnahme hiervon ist der als veraltet betrachtete FTP\-Bounce\-Scan (\fB\-b\fR)\&. Nmap führt standardmäßig einen SYN\-Scan durch, ersetzt diesen aber mit einem Connect\-Scan, falls der Benutzer nicht die nötigen Rechte hat, um rohe Pakete (benötigen unter Unix root\-Rechte) zu senden, oder falls er IPv6\-Ziele angegeben hat\&. Von den in diesem Abschnitt aufgelisteten Scans dürfen Benutzer ohne Sonderrechte nur den Connect\- und FTP\-Bounce\-Scan ausführen\&. +.PP +\fB\-sS\fR (TCP\-SYN\-Scan) +.RS 4 +Der SYN\-Scan ist aus gutem Grund die Standardeinstellung und die beliebteste Scan\-Methode\&. Er kann schnell durchgeführt werden und scannt dabei Tausende von Ports pro Sekunde, wenn das Netzwerk schnell ist und nicht von einer intrusiven Firewall behindert wird\&. Der SYN\-Scan ist relativ unauffällig, da er TCP\-Verbindungen niemals abschließt\&. Außerdem funktioniert er auch bei allen konformen TCP\-Stacks und ist unabhängig von spezifischen Eigenarten von Plattformen, wie es bei den FIN\-/NULL\-/Xmas\-, Maimon\- und Idle\-Scans in Nmap der Fall ist\&. Er erlaubt auch eine klare, zuverlässige Unterscheidung zwischen den Zuständen +offen, +geschlossen +und +gefiltert\&. +.sp +Diese Methode wird oft als halboffenes Scannen bezeichnet, weil keine vollständige TCP\-Verbindung hergestellt wird\&. Sie senden ein SYN\-Paket, als ob Sie eine echte Verbindung herstellen würden, und warten dann auf eine Antwort\&. Ein SYN/ACK zeigt, dass jemand auf dem Port lauscht (dass er offen ist), während ein RST (Reset) anzeigt, dass niemand darauf lauscht\&. Falls nach mehreren erneuten Übertragungen keine Antwort erhalten wird, wird der Port als gefiltert markiert\&. Der Port wird auch dann als gefiltert markiert, wenn ein ICMP Unreachable\-Fehler (Typ 3, Code 1, 2, 3, 9, 10 oder 13) empfangen wird\&. +.RE +.PP +\fB\-sT\fR (TCP\-Connect\-Scan) +.RS 4 +Der TCP\-Connect\-Scan ist der standardmäßig eingestellte TCP\-Scan\-Typ, falls der SYN\-Scan nicht möglich ist\&. Das ist dann der Fall, wenn der Benutzer kein Recht hat, rohe Pakete zu senden, oder wenn er IPv6\-Netzwerke scannt\&. Statt rohe Pakete zu schreiben, wie es die meisten anderen Scan\-Typen machen, bittet Nmap das darunterliegende Betriebssystem, eine Verbindung mit dem Zielrechner und \-port herzustellen, indem es einen Systemaufruf namens +\fBconnect\fR +benutzt\&. Das ist derselbe Systemaufruf auf höherer Ebene, den Webbrowser, P2P\-Clients und die meisten anderen netzwerkfähigen Anwendungen benutzen, um eine Verbindung herzustellen\&. Er ist Teil einer Programmierschnittstelle, die unter dem Namen Berkeley Sockets\-API bekannt ist\&. Statt Antworten in Form roher Pakete von der Leitung zu lesen, benutzt Nmap diese API, um zu jedem Verbindungsversuch eine Statusinformation zu erhalten\&. +.sp +Wenn der SYN\-Scan verfügbar ist, ist er normalerweise die bessere Wahl\&. Nmap hat weniger Einfluss auf den +\fBconnect\fR\-Systemaufruf als auf rohe Pakete, wodurch es weniger effizient wird\&. Der Systemaufruf beendet Verbindungen zu offenen Ziel\-Ports vollständig, statt sie in halboffenen Zustand zurückzusetzen, wie es der SYN\-Scan macht\&. Das dauert nicht nur länger und erfordert mehr Pakete, um an dieselbe Information zu gelangen, sondern es ist sehr viel wahrscheinlicher, dass die Zielrechner die Verbindung protokollieren\&. Ein anständiges IDS wird beides mitbekommen, aber die meisten Rechner verfügen nicht über ein solches Alarmsystem\&. Viele Dienste auf Ihrem durchschnittlichen Unix\-System fügen eine Notiz ins syslog hinzu und manchmal eine kryptische Fehlermeldung, wenn Nmap eine Verbindung herstellt und sofort wieder schließt, ohne Daten zu senden\&. Ganz armselige Dienste stürzen auch ab, wenn so etwas passiert, was aber eher selten ist\&. Ein Administrator, der in seinen Protokollen einen Haufen Verbindungsversuche von einem einzelnen System aus sieht, sollte wissen, dass er Ziel eines Connect\-Scans wurde\&. +.RE +.PP +\fB\-sU\fR (UDP\-Scan) +.RS 4 +Obwohl die meisten bekannten Dienste im Internet über das TCP\-Protokoll laufen, sind +\m[blue]\fBUDP\fR\m[]\&\s-2\u[4]\d\s+2\-Dienste weitverbreitet\&. Drei der häufigsten sind DNS, SNMP und DHCP (auf den registrierten Ports 53, 161/162 und 67/68)\&. Weil UDP\-Scans im Allgemeinen langsamer und schwieriger als TCP\-Scans sind, werden diese Ports von manchen Sicherheitsprüfern einfach ignoriert\&. Das ist ein Fehler, denn ausbeutbare UDP\-Dienste sind recht häufig, und Angreifer ignorieren bestimmt nicht das ganze Protokoll\&. Zum Glück kann Nmap helfen, diese UDP\-Ports zu inventarisieren\&. +.sp +Ein UDP\-Scan wird mit der Option +\fB\-sU\fR +aktiviert\&. Er kann mit einem TCP\-Scan\-Typ wie einem SYN\-Scan (\fB\-sS\fR) kombiniert werden, um beide Protokolle im gleichen Durchlauf zu prüfen\&. +.sp +Beim UDP\-Scan wird ein leerer UDP\-Header (ohne Daten) an alle Ziel\-Ports geschickt\&. Falls ein ICMP Port\-unreachable\-Fehler (Typ 3, Code 3) zurückkommt, ist der Port +geschlossen\&. Andere ICMP Unreachable\-Fehler (Typ 3, Codes 1, 2, 9, 10 oder 13) markieren den Port als +filtered\&. Gelegentlich wird ein Dienst mit einem UDP\-Paket antworten, was beweist, das er +offen +ist\&. Falls nach einigen erneuten Übertragungen keine Antwort erhalten wird, wird der Port als +offen|gefiltert +klassifiziert\&. Das heißt, der Port könnte offen sein, oder aber es gibt Paketfilter, die die Kommunikation blockieren\&. Man kann eine Versionserkennung (\fB\-sV\fR) benutzen, um bei der Unterscheidung der wirklich offenen von den geschlossenen Ports zu helfen\&. +.sp +Eine große Herausforderung beim UDP\-Scanning ist Geschwindigkeit\&. Offene und gefilterte Ports antworten nur selten, wodurch Nmap Zeitbeschränkungen überschreitet und seine Anfragen erneut sendet, für den Fall, dass das Testpaket oder die Antwort verloren ging\&. Geschlossene Ports sind oftmals ein noch größeres Problem\&. Sie senden normalerweise eine ICMP Port\-unreachable\-Fehlermeldung zurück\&. Aber anders als die RST\-Pakete, die von geschlossenen TCP\-Ports als Antwort auf einen SYN\- oder Connect\-Scan geschickt werden, beschränken viele Hosts standardmäßig die Rate +der ICMP Port\-unreachable\-Nachrichten\&. Linux und Solaris sind dabei besonders streng\&. Der Linux\-Kernel 2\&.4\&.20 z\&.B\&. beschränkt Destination\-unreachable\-Nachrichten auf eine pro Sekunde (in +net/ipv4/icmp\&.c)\&. +.sp +Nmap erkennt eine Ratenbeschränkung und verlangsamt seinen Betrieb entsprechend, um zu vermeiden, dass das Netzwerk mit nutzlosen Paketen überflutet wird, die vom Zielrechner verworfen werden\&. Unglücklicherweise führt eine Beschränkung wie in Linux auf ein Paket pro Sekunde dazu, dass ein Scan von 65\&.536 Ports über 18 Stunden dauert\&. Um Ihre UDP\-Scans zu beschleunigen, können Sie z\&.B\&. mehr Hosts parallel scannen, zuerst nur einen schnellen Scan der beliebten Ports durchführen, von hinter der Firewall scannen und die Option +\fB\-\-host\-timeout\fR +benutzen, um langsame Hosts auszulassen\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP\-NULL\-, FIN\- und \-Xmas\-Scans) +.RS 4 +Diese drei Scan\-Typen (noch mehr sind mit der im nächsten Abschnitt beschriebenen Option +\fB\-\-scanflags\fR +möglich) beuten ein subtiles Schlupfloch im +\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[5]\d\s+2 +aus, um zwischen +offenen +und +geschlossenen +Ports zu unterscheiden\&. Seite 65 von RFC 793 besagt: +„Falls der Zustand des [Ziel\-] Ports GESCHLOSSEN ist \&.\&.\&. bewirkt ein eingehendes Segment, in dem sich kein RST befindet, dass ein RST als Antwort gesendet wird\&.\(lq +Die nächste Seite beschreibt dann Pakete, die ohne gesetztes SYN\-, RST\- oder ACK\-Bit an offene Ports geschickt werden, und dort heißt es weiter: +„Es ist unwahrscheinlich, dass Sie hierhin kommen, aber wenn doch, dann verwerfen Sie das Segment und springen Sie zurück\&.\(lq +.sp +Beim Scannen von Systemen, die konform zu diesem RFC\-Text sind, führt jedes Paket, das kein SYN\-, RST\- oder ACK\-Bit enthält, dazu, dass ein RST zurückgegeben wird, wenn der Port geschlossen ist, bzw\&. zu gar keiner Antwort, falls der Port offen ist\&. Solange keines dieser drei Bits gesetzt ist, sind alle Kombinationen der anderen drei (FIN, PSH und URG) okay\&. Das nutzt Nmap mit drei Scan\-Typen aus: +.PP +Null\-Scan (\fB\-sN\fR) +.RS 4 +Setzt keinerlei Bits (der TCP\-Flag\-Header ist 0)\&. +.RE +.PP +FIN\-Scan (\fB\-sF\fR) +.RS 4 +Setzt nur das TCP\-FIN\-Bit\&. +.RE +.PP +Xmas\-Scan (\fB\-sX\fR) +.RS 4 +Setzt die FIN\-, PSH\- und URG\-Flags und beleuchtet das Paket wie einen Weihnachtsbaum (engl\&. Xmas)\&. +.RE +.sp +Diese drei Scan\-Typen haben exakt dasselbe Verhalten und unterscheiden sich nur in den TCP\-Flags ihrer Testpakete\&. Wenn ein RST\-Paket empfangen wird, wird der Port als +geschlossen +betrachtet, während keine Antwort bedeutet, dass er +offen|gefiltert +ist\&. Der Port wird als +gefiltert +markiert, falls ein ICMP Unreachable\-Fehler (Type 3, Code 1, 2, 3, 9, 10 oder 13) empfangen wird\&. +.sp +Der Schlüsselvorteil dieser Scan\-Arten ist, dass sie sich an bestimmten zustandslosen Firewalls und paketfilternden Routern vorbeschleichen können\&. Ein weiterer Vorteil ist, dass diese Scan\-Arten ncoh ein wenig unauffälliger sind als ein SYN\-Scan\&. Aber verlassen Sie sich nicht darauf – die meisten modernen IDS\-Produkte können so konfiguriert werden, dass sie diese Scans erkennen\&. Der große Nachteil ist, dass nicht alle Systeme sich ganz genau an RFC 793 halten\&. Eine Reihe von Systemen sendet RST\-Antworten auf die Testpakete, unabhängig davon, ob der Port offen ist oder nicht\&. Das bewirkt, dass alle Ports als +geschlossen +markiert werden\&. Hauptvertreter der Betriebssysteme, die das machen, sind Microsoft Windows, viele Cisco\-Geräte, BSDI und IBM OS/400\&. Aber auf den meisten Unix\-basierten Systemen funktioniert dieser Scan\&. Ein weiterer Nachteil dieser Scans ist, dass sie keine Unterscheidung zwischen +offenen +und bestimmten +gefilterten +Ports machen, sondern lediglich das Ergebnis +offen|gefiltert +ausgeben\&. +.RE +.PP +\fB\-sA\fR (TCP\-ACK\-Scan) +.RS 4 +Dieser Scan unterscheidet sich insofern von den bisher hier vorgestellten, als er nie +offene +(oder auch nur +offene|gefilterte) Ports bestimmt\&. Er wird dazu benutzt, Firewall\-Regeln zu bestimmen, festzustellen, ob sie zustandsbehaftet sind oder nicht, und welche Ports gefiltert werden\&. +.sp +Beim Testpaket eines ACK\-Scans wird nur das ACK\-Flag gesetzt (es sei denn, Sie benutzen +\fB\-\-scanflags\fR)\&. Beim Scannen ungefilterter Systeme werden sowohl +offene +als auch +geschlossene +Ports ein RST\-Paket zurückgeben\&. Nmap markiert sie dann als +ungefiltert, d\&.h\&. sie werden vom ACK\-Paket erreicht, aber es kann nicht bestimmt werden, ob sie +offen +oder +geschlossen +sind\&. Ports, die nicht antworten oder bestimmte ICMP\-Fehlermeldungen zurückgeben (Type 3, Code 1, 2, 3, 9, 10 oder 13), werden als +gefiltert +markiert\&. +.RE +.PP +\fB\-sW\fR (TCP\-Window\-Scan) +.RS 4 +Der Window\-Scan ist genau derselbe wie der ACK\-Scan, nur dass er ein Implementationsdetail bestimmter Systeme zur Unterscheidung zwischen offenen und geschlossenen Ports nutzt, statt bei jedem erhaltenen RST immer nur +ungefiltert +anzugeben\&. Das geschieht durch Analyse der TCP\-Fenstergröße der zurückgegebenen RST\-Pakete\&. Auf manchen Systemen benutzen offene Ports eine positive Fenstergröße (sogar für RST\-Pakete), während geschlossene eine Fenstergröße von Null haben\&. Statt einen Port immer als +ungefiltert +aufzulisten, wenn von dort ein RST zurückkommt, listet der Window\-Scan den Port als +offen +oder +geschlossen +auf, je nachdem, ob die TCP\-Fenstergröße in diesem Reset jeweils positiv oder Null ist\&. +.sp +Dieser Scan baut auf einem Implementationsdetail einer Minderheit von Systemen im Internet auf, d\&.h\&. Sie können sich nicht immer darauf verlassen\&. Systeme, die es nicht unterstützen, werden normalerweise alle Ports als +geschlossen +zurückgeben\&. Natürlich ist es möglich, dass auf dem Rechner wirklich keine offenen Ports sind\&. Falls die meisten gescannten Ports +geschlossen, aber einige Ports mit geläufigen Nummern (wie 22, 25 und 53) +gefiltert +sind, dann ist das System sehr wahrscheinlich anfällig\&. Gelegentlich zeigen Systeme auch genau das gegenteilige Verhalten\&. Falls Ihr Scan 1000 offene und drei geschlossene oder gefilterte Ports anzeigt, dann könnten jene drei sehr wohl die wirklich wahren offenen Ports sein\&. +.RE +.PP +\fB\-sM\fR (TCP\-Maimon\-Scan) +.RS 4 +Der Maimon\-Scan wurde nach seinem Erfinder, Uriel Maimon, +benannt\&. Er hat diese Methode im +Phrack\-Magazin, Ausgabe #49 (November 1996), +beschrieben\&. Zwei Ausgaben später war diese Methode in Nmap enthalten\&. Sie macht genau das Gleiche wie der NULL\-, FIN\- und Xmas\-Scan, außer, dass sie ein FIN/ACK\-Testpaket verwendet\&. Laut +\m[blue]\fBRFC 793\fR\m[]\&\s-2\u[5]\d\s+2 +(TCP) sollte als Antwort auf solch ein Paket ein RST\-Paket erzeugt werden, egal ob der Port offen oder geschlossen ist\&. Allerdings hatte Uriel bemerkt, dass viele von BSD abgeleitete Systeme das Paket einfach verwerfen, wenn der Port offen ist\&. +.RE +.PP +\fB\-\-scanflags\fR (Benutzerdefinierter TCP\-Scan) +.RS 4 +Wirklich fortgeschrittene Nmap\-Benutzer brauchen sich nicht auf die vorgefertigten Scan\-Typen zu beschränken\&. Mit der Option +\fB\-\-scanflags\fR +können Sie Ihren eigenen Scan entwerfen, für den Sie beliebige TCP\-Flags angeben können\&. +Lassen Sie Ihrer Kreativität freien Lauf und umgehen Sie Intrusion\-Detection\-Systeme, +deren Hersteller einfach die Nmap\-Manpage durchgeblättert und spezifische Regeln dafür angegeben haben! +.sp +Das Argument für +\fB\-\-scanflags\fR +kann ein numerischer Flag\-Wert wie z\&.B\&. 9 (PSH und FIN) sein, aber symbolische Namen sind einfacher zu benutzen\&. Erstellen Sie einfach eine beliebige Kombination von +URG, +ACK, +PSH, +RST, +SYN +und +FIN\&. So setzt z\&.B\&. +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +alle Flags, auch wenn das beim Scannen nicht besonders hilfreich ist\&. Die Reihenfolge, in der Sie diese Flags angeben, spielt keine Rolle\&. +.sp +Zusätzlich zu den gewünschten Flags können Sie einen TCP\-Scan\-Typen (z\&.B\&. +\fB\-sA\fR +oder +\fB\-sF\fR) angeben\&. Dieser Basistyp sagt Nmap, wie es die Antworten interpretieren soll\&. Ein SYN\-Scan z\&.B\&. betrachtet das Fehlen einer Antwort als einen Hinweis auf einen +gefilterten +Port, während ein FIN\-Scan das als einen Hinweis auf einenoffen|gefilterten +Port ansieht\&. Nmap verhält sich genauso wie beim Scan\-Basistyp, nur mit dem Unterschied, dass es die von Ihnen angegebenen TCP\-Flags benutzt\&. Ohne Angabe eines Basistyps wird ein SYN\-Scan benutzt\&. +.RE +.PP +\fB\-sI \fR\fB\fIzombie host\fR\fR\fB[:\fIprobeport\fR]\fR (Idle\-Scan) +.RS 4 +Diese fortgechrittene Scan\-Methode ermöglicht einen wirklich blinden TCP\-Port\-Scan des Ziels, d\&.h\&. es werden keine Pakete von Ihrer wahren IP\-Adresse an das Ziel gesendet\&. Stattdessen wird mit einem Angriff auf einem parallelen Kanal eine vorhersagbare Erzeugung von Folgen von IP\-Fragmentation\-IDs auf dem Zombie\-Host ausgebeutet, um an Information über offene Ports auf dem Ziel zu gelangen\&. IDS\-Systeme zeigen als Urheber des Scans den Zombie\-Rechner an, den Sie angeben (der aktiv sein und einige bestimmte Bedingungen erfüllen muss)\&. +Da dieser faszinierende Scan\-Typ zu komplex ist, um ihn in diesem Handbuch vollständig zu beschreiben, habe ich einen Artikel mit vollständigen Details dazu geschrieben und unter \m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[] veröffentlicht\&. +.sp +Dieser Scan\-Typ ist nicht nur extrem unauffällig (wegen seiner Blindheit), sondern erlaubt auch, IP\-basierte Vetrauensbeziehungen zwischen Rechnern festzustellen\&. Die Portliste zeigt offene Ports +\fIaus der Sicht des Zombie\-Hosts\fR +an\&. Also können Sie versuchen, ein Ziel mit verschiedenen Zombies zu scannen, von denen Sie denken, dass sie vertrauenswürdig sind +(über Router\-/Paketfilterregeln)\&. +.sp +Wenn Sie einen bestimmten Port auf dem Zombie auf IP\-ID\-Änderungen testen möchten, können Sie einen Doppelpunkt gefolgt von einer Portnummer an den Zombie\-Host hinzufügen\&. Sonst benutzt Nmap den Port, den es standardmäßig bei TCP\-Pings benutzt (80)\&. +.RE +.PP +\fB\-sO\fR (IP\-Protokoll\-Scan) +.RS 4 +Der IP\-Protokoll\-Scan ermöglicht die Bestimmung der IP\-Protokolle (TCP, ICMP, IGMP etc\&.), die von Zielrechnern unterstützt werden\&. Rein technisch ist das kein Port\-Scan, da er über Nummern von IP\-Protokollen statt TCP\- oder UDP\-Ports vorgeht\&. Dennoch benutzt er die Option +\fB\-p\fR +für die Auswahl der zu scannenden Protokollnummern, gibt seine Ergebnisse im normalen Port\-Tabellenformat aus und benutzt sogar dieselbe grundlegende Scan\-Engine wie die echten Port\-Scanning\-Methoden\&. Damit ist er einem Port\-Scan ähnlich genug, um an dieser Stelle beschrieben zu werden\&. +.sp +Abgesehen davon, dass er schon als solcher nützlich ist, zeigt der Protokoll\-Scan die Macht von Open\-Source\-Software\&. Auch wenn die grundlegende Idee recht simpel ist, hatte ich nicht daran gedacht, ihn hinzuzufügen, und bekam auch keine Anfragen nach einer solchen Funktionalität\&. Dann, im Sommer 2000, hatte Gerhard Rieger +die Idee, schrieb einen exzellenten Patch als Implementation und sendete ihn an die Mailingliste +nmap\-hackers\&. +Diesen Patch habe ich in den Nmap\-Baum aufgenommen und einen Tag später eine neue Version veröffentlicht\&. Es gibt nur wenig kommerzielle Software, deren Benutzer so enthusiastisch sind, dass sie eigene Verbesserungen dafür entwerfen und beitragen! +.sp +Der Protokoll\-Scan funktioniert auf ähnliche Weise wie der UDP\-Scan\&. Statt über das Portnummernfeld eines UDP\-Pakets zu iterieren, sendet er IP\-Paketheader und iteriert über das acht Bit große IP\-Protokollfeld\&. Die Header sind normalerweise leer, enthalten keine Daten und nicht einmal den richtigen Header für das behauptete Protokoll\&. Die drei Ausnahmen davon sind TCP, UDP und ICMP\&. Für diese werden richtige Protokoll\-Header verwendet, da manche Systeme sie sonst nicht versenden und weil Nmap bereits über die Funktionen verfügt, um sie zu erzeugen\&. Statt Nachrichten der Art ICMP Port unreachable sucht der Protokoll\-Scan nach ICMP +\fIProtocol\fR +unreachable\&. Falls Nmap zu irgendeinem Protokoll eine Antwort vom Zielhost erhält, markiert es das Protokoll als +offen\&. Bei einem ICMP Protocol\-unreachable\-Fehler (Typ 3, Code 2) wird das Protokoll als +geschlossen +markiert\&. Bei anderen ICMP Unreachable\-Fehlern (Typ 3, Code 1, 3, 9, 10 oder 13) wird das Protokoll als +gefiltert +markiert (auch wenn sie gleichzeitig beweisen, dass ICMP +offen +ist)\&. Falls nach einigen erneuten Übertragungen keine Antwort erhalten wird, wird das Protokoll als +offen|gefiltert +markiert\&. +.RE +.PP +\fB\-b \fR\fB\fIFTP relay host\fR\fR (FTP\-Bounce\-Scan) +.RS 4 +Eine interessante Eigenschaft des FTP\-Protokolls (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[6]\d\s+2) ist dessen Unterstützung sogenannter Proxy\-FTP\-Verbindungen\&. Damit kann sich ein Benutzer mit einem FTP\-Server verbinden und dann verlangen, dass Dateien an einen Server einer dritten Partei gesendet werden\&. Solch eine Eigenschaft ist auf vielen Ebenen sturmreif für Missbrauch, weswegen die meisten Server sie nicht mehr unterstützen\&. Ein solcher Missbrauch, den diese Eigenschaft ermöglicht, ist, den FTP\-Server für Port\-Scans anderer Hosts zu benutzen\&. Bitten Sie den FTP\-Server einfach, eine Datei nacheinander an alle interessanten Ports eines Zielhosts zu senden\&. Die Fehlermeldung wird beschreiben, ob der Port offen ist oder nicht\&. Das ist ein guter Weg, Firewalls zu umgehen, weil FTP\-Server von Organisationen oft an Orten platziert sind, von denen aus sie besseren Zugriff auf weitere interne Hosts haben, als es jeder alte Internet\-Host hätte\&. Nmap unterstützt den FTP\-Bounce\-Scan mit der Option +\fB\-b\fR\&. Sie erwartet ein Argument der Form +\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fR\&. Dabei ist +\fIServer\fR +der Name oder die IP\-Adresse eines anfälligen FTP\-Servers\&. Wie bei einer normalen URL können Sie +\fIusername\fR:\fIpassword\fR +auch weglassen, wobei dann eine anonyme Anmeldung erfolgt (username: +anonymous +password:\-wwwuser@)\&. Die Portnummer (samt Doppelpunkt davor) können Sie ebenfalls weglassen, wobei dann auf +\fIserver\fR +der Standard\-FTP\-Port (21) benutzt wird\&. +.sp +Als Nmap 1997 veröffentlicht wurde, war diese Schwachstelle weit verbreitet, wurde seitdem aber größtenteils behoben\&. Aber da es immer noch anfällige Server gibt, lohnt sich ein Versuch, falls alles andere versagt\&. Wenn Sie eine Firewall umgehen möchten, scannen Sie das Zielnetzwerk nach einem offenen Port 21 (oder sogar nach beliebigen FTP\-Diensten, falls Sie alle Ports mit Versionserkennung scannen können), und probieren Sie dann für jeden einen Bounce\-Scan aus\&. Nmap wird Ihnen sagen, ob der Host angreifbar ist oder nicht\&. Versuchen Sie lediglich, Ihre Spuren zu verwischen, dann brauchen Sie sich nicht (und tatsächlich sollten Sie das nicht einmal) auf Hosts im Zielnetzwerk zu beschränken\&. Bevor Sie anfangen, zufällige Internet\-Adressen nach anfälligen FTP\-Servern zu scannen, bedenken Sie, dass Sysadmins keinen Gefallen daran finden werden, dass Sie ihre Server auf diese Weise missbrauchen\&. +.RE +.SH "PORT\-ANGABE UND SCAN\-REIHENFOLGE" +.PP +Zusätzlich zu all den bisher erläuterten Scan\-Methoden bietet Nmap Optionen, mit denen man angibt, welche Ports gescannt werden und ob die Scan\-Reihenfolge randomisiert oder sequentiell ist\&. Nmap scannt standardmäßig für jedes Protokoll die 1000 meistbenutzten Ports\&. + +.PP +\fB\-p \fR\fB\fIport ranges\fR\fR (scannt nur angegebene Ports) +.RS 4 +Diese Option gibt an, welche Ports Sie scannen möchten, und überschreibt die Voreinstellung\&. Einzelne Portnummern sind okay, ebenso wie mit einem Bindestrich getrennte Bereiche (z\&.B\&. +1\-1023)\&. Anfangs\- und/oder Endwerte eines Bereichs können weggelassen werden und werden von Nmap dann mit jeweils 1 bzw\&. 65535 ersetzt\&. So können Sie mit +\fB\-p\-\fR +alle Ports von 1 bis 65535 scannen\&. Es ist erlaubt, den Port Null +zu scannen, wenn Sie ihn explizit angeben\&. Bei IP\-Protokoll\-Scans (\fB\-sO\fR) gibt diese Option die Protokollnummern an, die Sie scannen möchten (0–255)\&. +.sp +Wenn Sie sowohl TCP\- als auch UDP\-Ports scannen, können Sie ein bestimmtes Protokoll angeben, indem Sie den Portnummern ein +T: +bzw\&. +U: +voranstellen\&. Dieser Kennzeichner gilt so lange, bis Sie einen anderen angeben\&. Zum Beispiel werden bei dem Argument +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +die UDP\-Ports 53, 111 und 137 sowie die angegebenen TCP\-Ports gescannt\&. Beachten Sie, dass Sie +\fB\-sU\fR +und mindestens einen TCP\-Scan\-Typ (z\&.B\&. +\fB\-sS\fR, +\fB\-sF\fR +oder +\fB\-sT\fR) angeben müssen, um sowohl UDP als auch TCP zu scannen\&. Falls kein Protokollkennzeichner angegeben ist, werden die Portnummern zu allen Protokolllisten hinzugefügt\&. +Ports können auch mit dem Namen angegeben werden, der für diesen Port in +nmap\-services +definiert ist\&. Sie können bei diesen Namen sogar die Joker * und ? verwenden\&. Um z\&.B\&. FTP und alle Ports zu scannen, deren Namen mit +„http\(lq +anfangen, benutzen Sie +\fB\-p ftp,http*\fR\&. Passen Sie auf eine eventuelle Erweiterung durch die Shell auf und setzen Sie das Argument von +\fB\-p\fR +in Anführungszeichen, wenn Sie unsicher sind\&. +.sp +Port\-Bereiche können in eckigen Klammern angegeben werden, um Ports innerhalb dieses Bereiches anzugeben, die in +nmap\-services +vorkommen\&. Zum Beispiel scannt Folgendes alle Ports in +nmap\-services +kleiner oder gleich 1024: +\fB\-p [\-1024]\fR\&. Passen Sie auf eine eventuelle Erweiterung durch die Shell auf und setzen Sie das Argument von +\fB\-p\fR +in Anführungszeichen, wenn Sie unsicher sind\&. +.RE +.PP +\fB\-F\fR (schneller (beschränkter Port\-) Scan) +.RS 4 +Gibt an, dass Sie weniger Ports scannen möchten, als standardmäßig vorgesehen\&. Normalerweise scannt Nmap die 1000 am häufigsten vorkommenden Ports bei jedem gescannten Protokoll\&. Mit +\fB\-F\fR +werden diese auf 100 beschränkt\&. +.sp +Nmap benötigt die Datei +nmap\-services +mit Informationen zur Häufigkeit, um zu wissen, welche Ports am häufigsten benutzt werden\&. Wenn keine Angaben über die Port\-Häufigkeit verfügbar sind, vielleicht weil eine benutzerdefinierte +nmap\-services\-Datei verwendet wird, dann bedeutet +\fB\-F\fR, dass nur Ports gescannt werden, die in der Dienstedatei mit Namen vorkommen (normalerweise scannt Nmap alle benannten Ports plus die Ports 1–1024)\&. +.RE +.PP +\fB\-r\fR (Ports nicht randomisieren) +.RS 4 +Standardmäßig randomisiert Nmap die Reihenfolge der gescannten Ports (bis auf einige allgemein zugängliche Ports, die aus Effizienzgründen vorgezogen werden)\&. Diese Randomisierung ist normalerweise erwünscht, aber Sie können stattdessen auch +\fB\-r\fR +für einen sequentiellen Port\-Scan angeben\&. +.RE +.PP +\fB\-\-port\-ratio <decimal number between 0 and 1>\fR +.RS 4 +Scannt alle Ports in der Datei +nmap\-services +mit einem größeren Bruchteil als die Zahl, die als Argument angegeben wird\&. +.RE +.PP +\fB\-\-top\-ports <integer of 1 or greater>\fR +.RS 4 +Scannt die N Ports mit dem höchsten Bruchteil in der Datei +nmap\-services\&. +.RE +.SH "DIENST\- UND VERSIONSERKENNUNG" +.PP +Lassen Sie Nmap auf einen entfernten Rechner los, und Sie erfahren z\&.B\&. dass die Ports +25/tcp, +80/tcp +und +53/udp +offen sind\&. Dank der über 2200 bekannten Dienste in seiner Datenbank in +nmap\-services +würde Nmap noch ausgeben, dass diese Ports wahrscheinlich jeweils zu einem Mailserver (SMTP), Webserver (HTTP) und Nameserver (DNS) gehören\&. Normalerweise sind diese Angaben genau — die überwiegende Mehrheit an Daemons, die den TCP\-Port 25 abhören, sind tatsächlich Mailserver\&. Allerdings sollten Sie nicht Ihre Sicherheit darauf verwetten! Manche Leute können nicht nur Dienste auf seltsamen Ports betreiben, sondern tun es auch\&. +.PP +Selbst wenn Nmap recht hat und auf dem Server im obigen Beispiel SMTP\-, HTTP\- und DNS\-Server laufen, ist das nicht besonders viel an Information\&. Bei der Beurteilung der Angreifbarkeit (oder auch nur beim Erstellen einfacher Netzwerkinventare) Ihrer Firmen oder Kunden möchten Sie auch wissen, welche Mail\- und DNS\-Server und welche Versionen davon laufen\&. Eine genaue Versionsnummer hilft enorm bei der Bestimmung der Exploits, für die ein Server anfällig ist\&. Die Versionserkennung hilft Ihnen, an diese Information heranzukommen\&. +.PP +Nachdem TCP\- und/oder UDP\-Ports mit einer der anderen Scan\-Methoden entdeckt wurden, fragt die Versionserkennung diese Ports ab, um mehr darüber zu erfahren, was tatsächlich darauf läuft\&. Die Datenbank in +nmap\-service\-probes +enthält Testpakete für die Abfrage verschiedenster Dienste und Ausdrücke für den Vergleich und das Parsen der Antworten\&. Nmap versucht, das Dienstprotokoll zu bestimmen (z\&.B\&. FTP, SSH, Telnet, HTTP), aber auch Anwendungsnamen (z\&.B\&. ISC BIND, Apache httpd, Solaris telnetd), Versionsnummer, Hostnamen, Gerätetyp (z\&.B\&. Drucker, Router), die Betriebssystemfamilie (z\&.B\&. Windows, Linux) und manchmal verschiedene Details: etwa ob ein X\-Server Verbindungen annimmt, die SSH\-Protokollversion oder der KaZaA\-Benutzername\&. Natürlich bieten die meisten Dienste nicht all diese Information\&. Falls Nmap mit OpenSSL\-Unterstützung kompiliert wurde, verbindet es sich mit SSL\-Servern, um den hinter dieser Verschlüsselungsebene +lauschenden Dienst zu ermitteln\&. Wenn RPC\-Dienste erkannt werden, wird automatisch Nmaps RPC\-Holzhammer +(\fB\-sR\fR) +benutzt, um die RPC\-Programm\- und Versionsnummern zu bestimmen\&. Manche UDP\-Ports bleiben im Zustand +offen|gefiltert, nachdem ein UDP\-Port\-Scan nicht bestimmen konnte, ob der Port offen oder gefiltert ist\&. Die Versionserkennung versucht, diesen Ports eine Antwort zu entlocken (genauso wie bei offenen Ports) und den Zustand auf offen zu ändern, wenn das gelingt\&. +Offene|gefilterte +TCP\-Ports werden genauso behandelt\&. Beachten Sie, dass die Nmap\-Option +\fB\-A\fR +unter anderem auch die Versionserkennung einschaltet\&. +A paper documenting the workings, usage, and customization of version detection is available at \m[blue]\fB\%https://nmap.org/book/vscan.html\fR\m[]\&. +.PP +Wenn Nmap Antworten von einem Dienst erhält, aber keine Übereinstimmungen dafür in seiner Datenbank finden kann, gibt es einen speziellen Fingerprint und eine URL aus, damit Sie diese Antwort einsenden können, falls Sie genau wissen, was auf diesem Port läuft\&. Bitte nehmen Sie sich ein paar Minuten Zeit, um sie einzusenden, damit Ihr Fund für alle ein Gewinn sein kann\&. Dank dieser Beiträge hat Nmap über 3000 Musterübereinstimmungen für über 350 Protokolle wie SMTP, FTP, HTTP usw\&. +.PP +Die Versionserkennung wird mit den folgenden Optionen aktiviert und gesteuert: +.PP +\fB\-sV\fR (Versionserkennung) +.RS 4 +Aktiviert die Versionserkennung wie oben beschrieben\&. Alternativ dazu können Sie +\fB\-A\fR +benutzen, was unter anderem auch die Versionserkennung aktiviert\&. +.RE +.PP +\fB\-\-allports\fR (keine Ports von der Versionserkennung ausschließen) +.RS 4 +Standardmäßig schließt Nmaps Versionserkennung den TCP\-Port 9100 aus, weil manche Drucker einfach alles ausdrucken, was an diesen Port gesendet wird, was zu Dutzenden von Seiten mit HTTP\-GET\-Requests, binären SSL\-Session\-Requests usw\&. führen würde\&. Dieses Verhalten kann man ändern, indem man die +Exclude\-Anweisung in +nmap\-service\-probes +verändert oder entfernt, oder Sie geben +\fB\-\-allports\fR +an, um alle Port zu scannen, unabhängig von einer +Exclude\-Anweisung\&. +.RE +.PP +\fB\-\-version\-intensity \fR\fB\fIintensity\fR\fR (Intensität des Versions\-Scans setzen) +.RS 4 +Bei einem Versions\-Scan (\fB\-sV\fR) sendet Nmap eine Reihe von Testpaketen, die alle über einen zugeordneten Seltenheitswert zwischen eins und neun verfügen\&. Die Testpakete mit kleineren Werten sind bei einer großen Zahl verbreiteter Dienste wirkungsvoll, während die mit höheren Werten seltener nützlich sind\&. Die Intensitätsstufe gibt an, welche Testpakete angewendet werden sollten\&. Je höher die Zahl, desto wahrscheinlicher wird der Dienst richtig identifiziert\&. Allerdings brauchen Scans mit hoher Intensität mehr Zeit\&. Diese Intensität muss zwischen 0 und 9 liegen\&. + +Die Standardeinstellung ist 7\&. + +Wenn ein Testpaket mit der +ports\-Anweisung in +nmap\-service\-probes +für den Zielport registriert ist, wird dieses Testpaket ausprobiert, unabhängig von der Intensitätsstufe\&. Das garantiert, dass die DNS\-Testpakete bei jedem offenen Port 53 immer benutzt werden, das SSL\-Testpaket bei Port 443 usw\&. +.RE +.PP +\fB\-\-version\-light\fR (leichten Modus setzen) +.RS 4 +Das ist ein Alias für +\fB\-\-version\-intensity 2\fR +aus Bequemlichkeitsgründen\&. Dieser leichte Modus macht die Versionserkennung wesentlich schneller, identifiziert die Dienste aber mit geringerer Wahrscheinlichkeit\&. +.RE +.PP +\fB\-\-version\-all\fR (benutze alle Testpakete) +.RS 4 +Das ist ein Alias für +\fB\-\-version\-intensity 9\fR, der garantiert, dass jedes einzelne Testpaket bei jedem Port ausprobiert wird\&. +.RE +.PP +\fB\-\-version\-trace\fR (verfolge Aktivität des Versions\-Scans) +.RS 4 +Das bewirkt, dass Nmap umfangreiche Debugging\-Information darüber ausgibt, was die Versionserkennung gerade macht\&. Das ist eine Untermenge dessen, was Sie mit +\fB\-\-packet\-trace\fR +erhalten\&. +.RE +.PP +\fB\-sR\fR (RPC\-Scan) +.RS 4 +Diese Methode funktioniert zusammen mit den verschiedenen Port\-Scan\-Methoden von Nmap\&. Sie nimmt alle offenen TCP\-/UDP\-Ports und überflutet sie mit NULL\-Befehlen für das SunRPC\-Programm, in dem Versuch, festzustellen, ob es RPC\-Ports sind, und wenn ja, welches Programm und welche Versionsnummer darauf läuft\&. Dadurch können Sie quasi dieselbe Information herausfinden wie mit +\fBrpcinfo \-p\fR, selbst wenn der Portmapper des Ziels hinter einer Firewall liegt (oder von TCP\-Wrappern geschützt wird)\&. Köder funktionieren im Moment nicht mit dem RPC\-Scan\&. +Das wird automatisch als Teil einer Versionserkennung aktiviert (\fB\-sV\fR), wenn Sie diese verlangen\&. Da die Versionserkennung das enthält und wesentlich umfangreicher ist, wird +\fB\-sR\fR +selten benötigt\&. +.RE +.SH "BETRIEBSSYSTEM\-ERKENNUNG" +.PP +Eines der bekanntesten Merkmale von Nmap ist dessen Erkennung entfernter Betriebssysteme mit TCP/IP\-Stack\-Fingerprinting\&. Nmap sendet eine Reihe von TCP\- und UDP\-Paketen an den entfernten Host und untersucht praktisch jedes Bit in der Antwort\&. Nach der Durchführung Dutzender von Tests, wie z\&.B\&. einer TCP\-ISN\-Abtastung, Unterstützung und Reihenfolge von TCP\-Optionen, IP\-ID\-Abtastung und Prüfung der initialen Fenstergröße, vergleicht Nmap die Ergebnisse mit seiner Datenbank in +nmap\-os\-db +von über eintausend bekannten Betriebssystem\-Fingerprints und gibt die Details zum Betriebssystem aus, wenn es eine Übereinstimmung gefunden hat\&. Jeder Fingerprint enthält eine formlose Beschreibung des Betriebssystems und eine Klassifikation, aus der der Herstellername (z\&.B\&. Sun), das eigentliche Betriebssystem (z\&.B\&. Solaris), dessen Generation (z\&.B\&. 10) und der Gerätetyp (allgemein, Router, Switch, Spielkonsole usw\&.) hervorgeht\&. +.PP +Falls Nmap das Betriebssystem eines Rechner nicht erraten kann und die Umstände günstig sind (z\&.B\&. wenn mindestens ein offener und ein geschlossener Port gefunden wurde), präsentiert Nmap eine URL, unter der Sie den Fingerprint einsenden können, wenn Sie (ganz sicher) wissen, welches Betriebssystem auf dem Rechner läuft\&. Dadurch erweitern Sie den Pool der Betriebssysteme, die Nmap kennt, wodurch es für alle Benutzer genauer wird\&. +.PP +Die Betriebssystem\-Erkennung verwendet einige weitere Tests, die Informationen benutzen, die während des Vorgangs ohnehin gesammelt werden\&. Eine davon ist die Klassifikation der Vorhersagbarkeit der TCP\-Sequenznummern\&. Sie gibt ungefähr an, wie schwer es ist, eine gefälschte TCP\-Verbindung zum entfernten Host aufzubauen\&. Sie ist hilfreich zur Ausbeutung von Vertrauensbeziehungen auf Basis von Quell\-IPs (rlogin, Firewall\-Filter usw\&.) oder zum Verbergen des Ursprungs eines Angriffs\&. Diese Art von Täuschung wird kaum noch praktiziert, aber viele Rechner sind nach wie vor anfällig dafür\&. Die eigentliche Maßzahl basiert auf statistischen Abtastungen und kann schwanken\&. Im Allgemeinen ist es besser, die englische Bezeichnung wie z\&.B\&. +„worthy challenge\(lq +oder +„trivial joke\(lq +zu benutzen\&. Das wird nur in der normalen Ausgabe im ausführlichen Modus (\fB\-v\fR) ausgegeben\&. Wenn dieser Modus zusammen mit +\fB\-O\fR +aktiviert ist, wird auch die IP\-ID\-Sequenzerzeugung berichtet\&. Die meisten Rechner finden sich in der Klasse +„incremental\(lq, d\&.h\&. sie inkrementieren das ID\-Feld im IP\-Header für jedes von ihnen gesendete Paket\&. Dadurch werden sie anfällig für diverse avancierte Angriffe mittels Täuschung und Sammlung von Informationen\&. +.PP +Eine weitere zusätzliche Information, die die Betriebssystem\-Erkennung aktiviert, ist eine Schätzung der Betriebszeit des Zielhosts\&. Dabei wird die TCP\-Timestamp\-Option (\m[blue]\fBRFC 1323\fR\m[]\&\s-2\u[7]\d\s+2) benutzt, um zu raten, wann ein Rechner das letzte Mal neu gestartet wurde\&. Wenn der Timestamp\-Zähler nicht bei null gestartet wurde oder der Zähler überläuft und wieder von vorn zählt, kann diese Schätzung ungenau werden, weshalb sie nur im ausführlichen Modus ausgegeben wird\&. +.PP +A paper documenting the workings, usage, and customization of OS detection is available at \m[blue]\fB\%https://nmap.org/book/osdetect.html\fR\m[]\&. +.PP +Eingeschaltet und gesteuert wird die Betriebssystem\-Erkennung mit den folgenden Optionen: +.PP +\fB\-O\fR (Betriebssystem\-Erkennung aktivieren) +.RS 4 +Aktiviert die Betriebssystem\-Erkennung wie oben beschrieben\&. Alternativ dazu können Sie +\fB\-A\fR +benutzen, um eine Betriebssystem\-Erkennung zusammen mit anderen Dingen einzuschalten\&. +.RE +.PP +\fB\-\-osscan\-limit\fR (Betriebssystem\-Erkennung auf vielversprechende Ziele beschränken) +.RS 4 +Die Betriebssystem\-Erkennung ist wesentlich effektiver, wenn mindestens ein offener und ein geschlossener TCP\-Port gefunden werden\&. Wenn Sie diese Option angeben, versucht Nmap eine Betriebssystem\-Erkennung gar nicht erst bei Hosts, die dieses Kriterium nicht erfüllen\&. Das kann viel Zeit sparen, besonders bei Scans mit +\fB\-PN\fR +auf vielen Hosts\&. Diese Option gilt nur, wenn eine Betriebssystem\-Erkennung mit +\fB\-O\fR +oder +\fB\-A\fR +verlangt wird\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Ergebnisse der Betriebssystem\-Erkennung raten) +.RS 4 +Falls Nmap keine perfekte Übereinstimmung mit einem Betriebssystem finden kann, präsentiert es manchmal mögliche Kandidaten, die dem sehr nahe kommen\&. Damit Nmap das standardmäßig macht, muss die Übereinstimmung sehr hoch sein\&. Diese beiden (äquivalenten) Optionen lassen Nmap aggressiver schätzen\&. Dann gibt Nmap auch unvollkommene Übereinstimmungen aus, zusammen mit einem Vertrauensgrad (in Prozent)\&. +.RE +.PP +\fB\-\-max\-os\-tries\fR (setzt die maximale Anzahl der Versuche für eine Betriebssystem\-Erkennung bei einem Ziel) +.RS 4 +Wenn Nmap eine Betriebssystem\-Erkennung auf einem Ziel durchführt und dafür keine perfekte Übereinstimmung findet, macht es normalerweise einen weiteren Versuch\&. Standardmäßig macht Nmap fünf Versuche, wenn die Bedingungen zum Einsenden eines Betriebssystem\-Fingerprints günstig sind, und zwei, wenn sie es nicht sind\&. Die Angabe eines kleineren Wertes für +\fB\-\-max\-os\-tries\fR +(z\&.B\&. 1) beschleunigt Nmap, auch wenn Sie Versuche auslassen, bei denen das Betriebssystem möglicherweise erkannt werden könnte\&. Alternativ dazu kann ein hoher Wert gesetzt werden, um bei günstigen Bedinungen noch mehr Versuche zu erlauben\&. Das macht man aber selten, außer um bessere Fingerprints zu erzeugen, die man einsenden kann, um sie in Nmaps Betriebssystem\-Datenbank zu integrieren\&. +.RE +.SH "NMAP SCRIPTING ENGINE (NSE)" +.PP +Die Nmap Scripting Engine (NSE) ist eines der mächtigsten und flexibelsten Merkmale von Nmap\&. Mit ihr können Benutzer einfache Scripts schreiben und weitergeben (geschrieben in der +\m[blue]\fBProgrammiersprache Lua\fR\m[]\&\s-2\u[8]\d\s+2 +), um eine breite Palette von Netzwerkaufgaben zu automatisieren\&. Diese Scripts werden dann parallel mit der Geschwindigkeit und Effizienz abgearbeitet, die Sie von Nmap erwarten\&. Als Benutzer können Sie auf eine wachsende und vielfältige Menge von Scripts vertrauen, die mit Nmap veröffentlicht werden, oder eigene Scripts für eigene Bedürfnisse schreiben\&. +.PP +Zu den Aufgaben, die wir bei der Konzeption dieses Systems anvisierten, gehören die Netzwerkerkennung, eine ausgefeiltere Versionserkennung sowie eine Verwundbarkeitserkennung\&. NSE kann aber sogar bei der Ausbeutung von Schwachstellen benutzt werden\&. +.PP +Um diese verschiedenen Anwendungen widerzuspiegeln und um die Auswahl des richtigen Scripts zu vereinfachen, verfügen alle Scripts über ein Kategorie\-Feld\&. Im Moment sind folgende Kategorien definiert: +safe, +intrusive, +malware, +version, +discovery, +vuln, +auth +und +default\&. Sie alle werden +at \m[blue]\fB\%https://nmap.org/book/nse-usage.html#nse-categories\fR\m[]\&. +.PP +Die Nmap Scripting Engine wird detailliert +at \m[blue]\fB\%https://nmap.org/book/nse.html\fR\m[] + +beschrieben und wird mit den folgenden Optionen gesteuert: +.PP +\fB\-sC\fR +.RS 4 +Führt einen Script\-Scan mit dem Standardsatz an Scripts durch\&. Das ist äquivalent zu +\fB\-\-script=default\fR\&. Manche der Scripts in dieser Kategorie werden als aufdringlich betrachtet und sollten nicht ohne Genehmigung auf einem Zielnetzwerk ausgeführt werden\&. +.RE +.PP +\fB\-\-script \fR\fB\fIscript\-categories\fR\fR\fB|\fR\fB\fIdirectory\fR\fR\fB|\fR\fB\fIfilename\fR\fR\fB|all\fR +.RS 4 +Führt einen Script\-Scan (wie z\&.B\&. +\fB\-sC\fR) durch und benutzt dabei die mit Kommata getrennte Liste von Script\-Kategorien, individuellen Scripts oder Script\-Verzeichnissen statt des Standardsatzes\&. Zuerst versucht Nmap, die Argumente als Kategorien zu interpretieren, dann (wenn das nicht gelingt) als Datei\- oder Verzeichnisnamen\&. Ein Script oder Verzeichnis von Scripts kann als absoluter oder relativer Pfad angegeben werden\&. Absolute Pfade werden unverändert benutzt\&. Relative Pfade werden an den folgenden Orten gesucht, bis sie gefunden werden: +\-\-datadir/; +$NMAPDIR/; +~/\&.nmap/ +(wird unter Windows nicht durchsucht); +NMAPDATADIR/ oder +\&./\&. In all diesen Verzeichnissen wird außerdem auch ein +scripts/\-Unterverzeichnis ausprobiert\&. +.sp +Falls ein Verzeichnis angegeben und gefunden wird, lädt Nmap alle NSE\-Scripts (alle Dateinamen, die mit +\&.nse +enden) aus diesem Verzeichnis\&. Dateinamen ohne die Endung +nse +werden ignoriert\&. Nmap sucht keine Unterverzeichnisse rekursiv durch, um Scripts zu finden\&. Wenn individuelle Dateinamen angegeben werden, dann muss deren Dateierweiterung nicht +nse +lauten\&. +.sp +Nmap\-Scripts werden standardmäßig in einem +scripts\-Unterverzeichnis des Nmap\-Datenverzeichnisses gespeichert +(see \m[blue]\fB\%https://nmap.org/book/data-files.html\fR\m[])\&. + +Aus Effizienzgründen werden Scripts in einer Datenbank indiziert, die in +scripts/script\&.db\&. +gespeichert ist und für jedes Script auflistet, in welche Kategorie bzw\&. Kategorien es gehört\&. Um alle Scripts in der Nmap\-Script\-Datenbank auszuführen, geben Sie das Argument +all +an\&. +.sp +Die Scripts werden nicht in einer Sandbox ausgeführt und können Ihr System somit versehentlich oder böswillig beschädigen oder in Ihre Privatsphäre eindringen\&. Sie sollten Scripts von Dritten nur dann ausführen, wenn Sie deren Autoren vertrauen oder sie selbst eingehend studiert haben\&. +.RE +.PP +\fB\-\-script\-args \fR\fB\fIname1\fR\fR\fB=\fR\fB\fIvalue1\fR\fR\fB,\fR\fB\fIname2\fR\fR\fB={\fR\fB\fIname3\fR\fR\fB=\fR\fB\fIvalue3\fR\fR\fB},\fR\fB\fIname4\fR\fR\fB=\fR\fB\fIvalue4\fR\fR +.RS 4 +Hiermit können Sie Argumente für NSE\-Scripts angeben\&. Argumente werden als +name=value\-Paare angegeben\&. Die Argumente werden verarbeitet und in einer Lua\-Tabelle gespeichert, auf die alle Scripts Zugriff haben\&. Die Namen werden als Strings (die alphanumerische Werte sein müssen) in +argument\-table +als Schlüssel gespeichert\&. Die Werte sind ihrerseits entweder Strings oder Tabellen (innerhalb von \(oq{\(cq und \(oq}\(cq)\&. Sie könnten z\&.B\&. diese mit Kommmata getrennten Argumente angeben: +user=bar,pass=foo,whois={whodb=nofollow+ripe}\&. String\-Argumente werden potenziell von mehreren Scripts benutzt, während Untertabellen normalerweise nur von einem Script benutzt werden\&. In Scripts, die eine Untertabelle annehmen, wird diese Untertabelle normalerweise nach dem Script benannt (in diesem Fall z\&.B\&. +whois)\&. +.RE +.PP +\fB\-\-script\-trace\fR +.RS 4 +Diese Option macht das, was +\fB\-\-packet\-trace\fR +macht, aber eine ISO\-Ebene höher\&. Wenn diese Option angegeben wird, wird die gesamte ein\- und ausgehende Kommunikation von Scripts ausgegeben\&. Die angezeigte Information enthält das Kommunikationsprotokoll, Quell\- und Zieladressen sowie die übertragenen Daten\&. Falls mehr als fünf Prozent der übertragenen Daten nicht druckbar sind, werden sie stattdessen als Hexadezimal\-Auszug ausgegeben\&. Auch die Angabe von +\fB\-\-packet\-trace\fR +schaltet diese Mitverfolgung von Scripts ein\&. +.RE +.PP +\fB\-\-script\-updatedb\fR +.RS 4 +Diese Option aktualisiert die Script\-Datenbank in +scripts/script\&.db, die von Nmap benutzt wird, um die verfügbaren Standard\-Scripts und Kategorien zu bestimmen\&. Man muss die Datenbank nur dann aktualisieren, wenn man NSE\-Scripts in das Standardverzeichnis +scripts +hinzufügt oder von dort entfernt, oder wenn man die Kategorie eines Scripts ändert\&. Diese Option wird ohne Argumente benutzt: +\fBnmap \-\-script\-updatedb\fR\&. +.RE +.SH "TIMING UND PERFORMANCE" +.PP +Bei der Entwicklung von Nmap hatte dessen Performance immer eine der höchsten Prioritäten\&. Ein Standardscan (\fBnmap \fR\fB\fIhostname\fR\fR) eines Hosts in meinem lokalen Netzwerk dauert eine Fünftelsekunde\&. In dieser Zeit kann man kaum blinzeln, aber wenn man Hunderte oder Tausende von Rechnern scannt, dann kommt einiges zusammen\&. Außerdem können bestimmte Scan\-Optionen wie UDP\-Scanning und eine Versionserkennung die Scan\-Zeiten erheblich erhöhen\&. Das Gleiche gilt für bestimmte Firewall\-Konfigurationen und besonders für die Beschränkung der Antwortrate\&. Auch wenn Nmap parallel arbeitet und viele ausgefeilte Algorithmen benutzt, um diese Scans zu beschleunigen, hat doch der Benutzer die letzte Kontrolle darüber, was Nmap genau macht\&. Experten erstellen ihre Nmap\-Befehle sehr sorgfältig, um in einer beschränkten Zeit genau die gewünschte Information zu bekommen\&. +.PP +Um die Scan\-Zeiten zu verbessern, kann man z\&.B\&. nicht\-kritische Tests weglassen und auf die neueste Version von Nmap aktualisieren (Performance\-Verbesserungen werden häufig gemacht)\&. Auch die Optimierung von Timing\-Parametern kann einen großen Unterschied ausmachen\&. Diese Optionen werden im Folgenden beschrieben\&. +.PP +Manche Optionen erwarten einen +time\-Parameter\&. Dieser wird standardmäßig in Millisekunden angegeben, aber Sie können \(oqs\(cq, \(oqm\(cq oder \(oqh\(cq an den Wert anhängen, um Sekunden, Minuten oder Stunden anzugeben\&. Das heißt, bei +\fB\-\-host\-timeout\fR +haben die Argumente +900000, +900s +und +15m +alle denselben Effekt\&. +.PP +\fB\-\-min\-hostgroup \fR\fB\fInumhosts\fR\fR; \fB\-\-max\-hostgroup \fR\fB\fInumhosts\fR\fR (Größe der parallel gescannten Gruppen anpassen) +.RS 4 +Nmap hat die Fähigkeit, Port\-Scans oder Versions\-Scans von mehreren Hosts parallel durchzuführen\&. Das macht Nmap, indem es den Ziel\-IP\-Adressraum in Gruppen aufteilt und dann jeweils eine Gruppe scannt\&. Im Allgemeinen sind größere Gruppen effizienter\&. Der Nachteil daran ist, dass die Host\-Ergebnisse erst dann ausgegeben werden können, wenn die gesamte Gruppe fertig ist\&. Wenn Nmap mit einer Gruppengröße von 50 anfängt, würde der Benutzer erst dann Ergebnisse sehen (bis auf die Aktualisierungen im ausführlichen Modus), wenn die ersten 50 Hosts abgearbeitet sind\&. +.sp +Diesen Konflikt löst Nmap standardmäßig mit einem Kompromissansatz\&. Es fängt mit einer kleinen Gruppengröße von etwa fünf an, damit die ersten Ergebnisse schnell kommen, und erhöht dann die Gruppengröße bis auf etwa 1024\&. Die genau vorgegebenen Zahlen hängen von den benutzten Optionen ab\&. Aus Effizienzgründen benutzt Nmap größere Gruppen bei UDP\-Scans oder bei TCP\-Scans über wenige Ports\&. +.sp +Falls mit +\fB\-\-max\-hostgroup\fR +eine maximale Gruppengröße angegeben wird, wird Nmap diese nie überschreiten\&. Und wenn Sie mit +\fB\-\-min\-hostgroup\fR +eine minimale Größe angeben, versucht Nmap, die Gruppengröße oberhalb dieses Wertes zu belassen\&. Falls es auf einer gegebenen Schnittstelle nicht genug Zielhosts gibt, um dieses Minimum zu erfüllen, muss Nmap einen kleineren Wert benutzen\&. Es können auch beide gesetzt werden, um die Gruppengröße in einem bestimmten Bereich zu belassen, aber das ist selten gewünscht\&. +.sp +Diese Optionen haben während der Host\-Entdeckungsphase eines Scans keinen Effekt\&. Dazu gehören einfache Ping\-Scans (\fB\-sP\fR)\&. Die Host\-Entdeckung funktioniert immer in großen Gruppen von Hosts, um die Geschwindigkeit und Genauigkeit zu verbessern\&. +.sp +Der Hauptnutzen dieser Optionen liegt darin, eine hohe minimale Gruppengröße anzugeben, damit der gesamte Scan schneller läuft\&. Häufig wird 256 gewählt, um ein Netzwerk in Brocken der Größe von Klasse C zu scannen\&. Bei einem Scan mit vielen Ports bringt eine größere Zahl vermutlich keine Vorteile\&. Bei Scans über nur wenige Ports können Gruppengrößen von 2048 oder mehr hilfreich sein\&. +.RE +.PP +\fB\-\-min\-parallelism \fR\fB\fInumprobes\fR\fR; \fB\-\-max\-parallelism \fR\fB\fInumprobes\fR\fR (Parallelität von Testpaketen anpassen) +.RS 4 +Diese Optionen steuern die Gesamtanzahl an Testpaketen, die für eine Host\-Gruppe anstehen dürfen\&. Sie werden beim Port\-Scanning und bei der Host\-Entdeckung benutzt\&. Abhängig von der Netzwerk\-Performance berechnet Nmap standardmäßig eine immer wechselnde ideale Parallelität\&. Falls Pakete verworfen werden, verlangsamt sich Nmap und erlaubt weniger unerledigte Testpakete\&. Die ideale Anzahl von Testpaketen steigt mit den zunehmenden Möglichkeiten des Netzwerks\&. Diese Optionen setzen minimale oder maximale Schranken für diese Variable\&. Standardmäßig kann die ideale Parallelität auf eins sinken, wenn sich das Netzwerk als unzuverlässig herausstellt, und im Idealfall kann sie auf mehrere hundert steigen\&. +.sp +Meistens setzt man +\fB\-\-min\-parallelism\fR +auf eine Zahl größer als eins, um Scans von langsamen Hosts oder Netzwerken zu beschleunigen\&. Aber das Spielen mit dieser Option kann gefährlich sein, weil die Genaugkeit leiden kann, wenn man einen zu großen Wert setzt\&. Dabei verringert sich auch Nmaps Möglichkeit, die Parallelität je nach Netzwerkbedingungen dynamisch anzupassen\&. Ein Wert von zehn mag vernünftig sein, auch wenn ich nur als letzter Ausweg an diesem Wert drehe\&. +.sp +Die Option +\fB\-\-max\-parallelism\fR +wird manchmal auf eins gesetzt, um zu verhindern, dass Nmap mehr als ein Testpaket auf einmal an Hosts sendet\&. In Kombination mit +\fB\-\-scan\-delay\fR +(wird später behandelt) kann das nützlich sein, auch wenn Letzteres diesen Zweck gut genug allein erfüllt\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout \fR\fB\fItime\fR\fR, \fB\-\-max\-rtt\-timeout \fR\fB\fItime\fR\fR, \fB\-\-initial\-rtt\-timeout \fR\fB\fItime\fR\fR (Timeouts von Testpaketen anpassen) +.RS 4 +Nmap verwaltet einen laufenden Timeout\-Wert, der bestimmt, wie lange es auf eine Antwort zu einem Testpaket wartet, bevor es aufgibt oder das Paket erneut sendet\&. Dieser wird auf der Grundlage der Antwortzeiten bei früheren Testpaketen berechnet\&. + +Falls die Netzwerk\-Latenzzeit sich als groß genug und variabel erweist, kann dieser Timeout bis auf mehrere Sekunden wachsen\&. Er beginnt auch bei einem konservativen (hohen) Wert und kann diesen eine Weile behalten, wenn Nmap Hosts scannt, die nicht antworten\&. +.sp +Werden Werte für +\fB\-\-max\-rtt\-timeout\fR +und +\fB\-\-initial\-rtt\-timeout\fR +angegeben, die kleiner als deren Standardwerte sind, so kann die Scan\-Zeit erheblich verkürzt werden\&. Das gilt besonders für pinglose (\fB\-PN\fR) Scans und solche von stark gefilterten Netzwerken\&. Aber verlangen Sie nicht zu viel\&. Der Scan kann am Ende länger brauchen, wenn Sie einen so kleinen Wert angeben, dass bei vielen Testpaketen der Timeout erreicht wird und sie erneut gesendet werden, während die Antwort unterwegs ist\&. +.sp +Falls alle Hosts in einem lokalen Netzwerk sind, sind 100 Millisekunden ein vernünftig aggressiver Wert für +\fB\-\-max\-rtt\-timeout\fR\&. Falls ein Routing ins Spiel kommt, pingen Sie zuerst einen Host im Netzwerk, sei es mit einem ICMP\-Ping oder mit einem Programm zur Erstellung benutzerdefinierter Pakete wie +\fBhping2\fR, +das eine höhere Chance hat, durch eine Firewall zu kommen\&. Betrachten Sie dann die maximale Umlaufzeit bei circa zehn Paketen\&. Diese möchten Sie vielleicht für +\fB\-\-initial\-rtt\-timeout\fR +verdoppeln und für +\fB\-\-max\-rtt\-timeout\fR +verdrei\- oder vervierfachen\&. Im Allgemeinen setze ich die maximale RTT nicht unter 100\ \&ms, egal, welche Ping\-Zeiten ich habe\&. Und ich gehe auch nicht über 1000\ \&ms\&. +.sp +Die Option +\fB\-\-min\-rtt\-timeout\fR +wird selten benutzt, könnte aber nützlich sein, wenn ein Netzwerk so unzuverlässig ist, dass selbst Nmaps Standardeinstellung zu aggressiv ist\&. Da Nmap das Timeout nur dann auf das Minimum reduziert, wenn das Netzwerk zuverlässig scheint, sollte ein Bedarf hierfür eher ungewöhnlich sein und sollte als Fehler auf der +nmap\-dev\-Mailingliste +berichtet werden\&. +.RE +.PP +\fB\-\-max\-retries \fR\fB\fInumtries\fR\fR (gibt die maximale Anzahl erneuter Sendeversuche bei Port\-Scan\-Testpaketen an) +.RS 4 +Falls Nmap keine Antwort auf ein Testpaket eines Port\-Scans erhält, könnte das heißen, dass der Port gefiltert ist\&. Oder aber das Testpaket oder die Antwort darauf ging im Netzwerk verloren\&. Es ist auch möglich, dass der Zielhost eine Ratenbeschränkung aktiviert hat, die die Antwort temporär blockiert hat\&. Also versucht es Nmap erneut, indem es das ursprüngliche Paket noch einmal sendet\&. Falls Nmap eine mangelnde Netzwerkzuverlässigkeit feststellt, führt es eventuell viele weitere Wiederholungen durch, bevor es bei einem Port aufgibt\&. Das verbessert zwar die Genauigkeit, verlängert aber auch die Scan\-Zeiten\&. Wenn es auf die Performance ankommt, kann man die Scans durch eine Beschränkung der Anzahl dieser Wiederholungen beschleunigen\&. Sie können sogar +\fB\-\-max\-retries 0\fR +angeben, um sie ganz zu verbieten, auch wenn sich das nur in Situationen wie formlosen Überprüfungen empfiehlt, bei denen einige verpasste Ports oder Hosts nicht so wichtig sind\&. +.sp +Der Standardwert (ohne +\fB\-T\fR\-Template) sind bis zu zehn Wiederholungen\&. Falls das Netzwerk zuverlässig zu sein scheint und die Zielhosts keine Ratenbeschränkung haben, führt Nmap normalerweise nur eine Wiederholung durch\&. Daher sind die meisten Scans gar nicht betroffen, wenn man +\fB\-\-max\-retries\fR +z\&.B\&. auf den kleinen Wert drei verringert\&. Solche Werte können Scans von langsamen (ratenbeschränkten) Hosts aber erheblich beschleunigen\&. Wenn Nmap frühzeitig bei Ports aufgibt, verlieren Sie eventuell einiges an Information, aber das kann vorteilhafter sein, als ein Timeout von +\fB\-\-host\-timeout\fR +zu erreichen und alle Informationen über das Ziel zu verlieren\&. +.RE +.PP +\fB\-\-host\-timeout \fR\fB\fItime\fR\fR (bei langsamen Zielhosts aufgeben) +.RS 4 +Bei manchen Hosts braucht es einfach +\fIlange\fR, sie zu scannen\&. Das kann an leistungsschwacher oder unzuverlässiger Netzwerk\-Hardware oder \-Software, an einer Paketratenbeschränkung oder einer restriktiven Firewall liegen\&. Die langsamsten paar Prozent der gescannten Hosts können einen Großteil der Scan\-Zeit verbrauchen\&. Dann ist es manchmal das Beste, die Verluste abzuschneiden und diese Hosts erst einmal wegzulassen\&. Geben Sie +\fB\-\-host\-timeout\fR +mit der gewünschten maximalen Wartezeit an\&. Sie können z\&.B\&. +30m +angeben, um sicherzustellen, dass Nmap nicht mehr als eine halbe Stunde verschwendet, indem es auf einen einzelnen Host wartet\&. Beachten Sie, dass Nmap während dieser halben Stunde auch andere Hosts scannen kann, d\&.h\&. es ist keine komplette Zeitverschwendung\&. Ein Host, der das Timeout erreicht, wird übersprungen\&. Für diesen Host werden keine Ergebnisse der Port\-Tabelle, Betriebssystem\- oder Versionserkennung ausgegeben\&. +.RE +.PP +\fB\-\-scan\-delay \fR\fB\fItime\fR\fR; \fB\-\-max\-scan\-delay \fR\fB\fItime\fR\fR (Verzögerung zwischen Testpaketen anpassen) +.RS 4 +Diese Option bewirkt, dass Nmap mindestens die angegebene Zeit zwischen zwei Testpaketen an einen Host wartet\&. Das ist besonders bei einer Ratenbeschränkung +sinnvoll\&. Solaris\-Rechner (und viele andere auch) antworten auf UDP\-Scan\-Testpakete normalerweise nur mit einer ICMP\-Nachricht pro Sekunde\&. Wenn Nmap mehr sendet, ist das Verschwendung\&. Mit einem +\fB\-\-scan\-delay\fR +von +1s +bleibt Nmap bei dieser langsamen Rate\&. Nmap versucht eine Ratenbeschränkung zu erkennen und die Scan\-Verzögerung entsprechend anzupassen, aber es schadet nicht, sie explizit anzugeben, falls Sie schon wissen, welche Rate am besten funktioniert\&. +.sp +Wenn Nmap die Scan\-Verzögerung nach oben anpasst, um mit der Ratenbeschränkung klarzukommen, verlangsamt sich der Scan dramatisch\&. Die Option +\fB\-\-max\-scan\-delay\fR +gibt die größte Verzögerung an, die Nmap erlaubt\&. Ein kleiner Wert für +\fB\-\-max\-scan\-delay\fR +kann Nmap beschleunigen, ist aber riskant\&. Ein zu kleiner Wert kann zu verschwenderischen wiederholten Sendungen führen und möglicherweise zu verpassten Ports, wenn das Ziel eine strenge Ratenbeschränkung implementiert\&. +.sp +Ein weiterer Einsatz von +\fB\-\-scan\-delay\fR +liegt bei der Umgehung schwellwertbasierter Intrusion\-Detection\- und \-Prevention\-Systeme (IDS/IPS)\&. +.RE +.PP +\fB\-\-min\-rate \fR\fB\fInumber\fR\fR; \fB\-\-max\-rate \fR\fB\fInumber\fR\fR (direkte Steuerung der Scan\-Rate) +.RS 4 +Nmaps dynamisches Timing findet sehr gut die passende Scan\-Geschwindigkeit\&. Aber manchmal kennen Sie vielleicht die passende Scan\-Rate für ein Netzwerk, oder vielleicht müssen Sie garantieren, dass ein Scan bis zu einem bestimmten Zeitpunkt fertig wird\&. Oder Sie müssen Nmap vielleicht davon abhalten, zu schnell zu scannen\&. Für diese Situationen sind die Optionen +\fB\-\-min\-rate\fR +und +\fB\-\-max\-rate\fR +vorgesehen\&. +.sp +Bei der Option +\fB\-\-min\-rate\fR +versucht Nmap sein Bestes, um Pakete so schnell wie die damit angegebene Rate zu senden oder noch schneller\&. Das Argument ist eine positive Fießkommazahl, die die Paketrate in Paketen pro Sekunde angibt\&. Die Angabe +\fB\-\-min\-rate 300\fR +bedeutet z\&.B\&., dass Nmap eine Rate von 300 Paketen pro Sekunde oder höher einzuhalten versucht\&. Die Angabe einer Minimalrate hält Nmap nicht davon ab, bei günstigen Bedingungen schneller zu werden\&. +.sp +Umgekehrt beschränkt +\fB\-\-max\-rate\fR +die Senderate auf das angegebene Maximum\&. Bei +\fB\-\-max\-rate 100\fR +wird sie auf 100 Pakete pro Sekunde bei einem schnellen Netzwerk beschränkt\&. Und bei +\fB\-\-max\-rate 0\&.1\fR +wird der Scan auf ein Paket pro zehn Sekunden verlangsamt\&. Mit +\fB\-\-min\-rate\fR +und +\fB\-\-max\-rate\fR +gleichzeitig können Sie die Rate in einem bestimmten Bereich halten\&. +.sp +Diese beiden Optionen sind global und betreffen den gesamten Scan, nicht nur einzelne Hosts\&. Sie betreffen nur Port\-Scans und Host\-Entdeckungs\-Scans\&. Andere Merkmale wie die Betriebssystemerkennung implementieren ihr eigenes Timing\&. +.sp +Unter zwei Bedingungen kann die tatsächliche Scan\-Rate unter das verlangte Minimum fallen\&. Die erste ist, wenn das Minimum schneller als die schnellste Rate ist, mit der Nmap senden kann, was hardwareabhängig ist\&. In diesem Fall sendet Nmap Pakete einfach so schnell wie möglich, aber Sie sollten wissen, dass solch hohe Raten sehr wahrscheinlich einen Verlust an Genauigkeit bedeuten\&. Die zweite Bedingung ist, wenn Nmap nichts zu senden hat, z\&.B\&. am Ende eines Scans, nachdem die letzten Testpakete gesendet wurden und Nmap darauf wartet, dass sie einen Timeout verursachen oder beantwortet werden\&. Eine sinkende Scan\-Rate am Ende eines Scans oder zwischen Gruppen von Hosts ist normal\&. Die Senderate kann temporär das Maximum übersteigen, um unvorhergesehene Verzögerungen auszugleichen, aber im Durchschnitt bleibt die Rate bei oder unter dem Maximum\&. +.sp +Eine minimale Rate sollte man mit Vorsicht angeben\&. Scans, die schneller sind, als das Netzwerk erlaubt, können zu einem Verlust von Genauigkeit führen\&. In manchen Fällen kann die Wahl eines schnelleren Scans dazu führen, dass er +\fIlänger\fR +braucht als bei einer kleineren Rate\&. Das liegt daran, dass Nmaps Algorithmen für die + +adaptive retransmission +die von einer zu hohen Scan\-Rate verursachte Netzwerküberlastung erkennen und die Anzahl der Wiederholungen erhöhen, um die Genauigkeit zu verbessern\&. Das heißt, selbst wenn Pakete mit höherer Rate gesendet werden, werden mehr Pakete insgesamt gesendet\&. Begrenzen Sie diese Anzahl von Wiederholungen nach oben mit der Option +\fB\-\-max\-retries\fR, wenn Sie eine obere Grenze für die gesamte Scan\-Zeit setzen müssen\&. +.RE +.PP +\fB\-\-defeat\-rst\-ratelimit\fR +.RS 4 +Viele Hosts haben lange eine Ratenbeschränkung +benutzt, um die Anzahl der von ihnen gesendeten ICMP\-Fehlermeldungen (z\&.B\&. Port\-Unreachable\-Fehler) zu reduzieren\&. Manche Systeme wenden nun ähnliche Ratenbeschränkungen auf die von ihnen erzeugten RST\-(Reset\-)Pakete an\&. Das kann Nmap dramatisch verlangsamen, weil es sein Timing an diese Ratenbeschränkungen anpasst\&. Mit der Option +\fB\-\-defeat\-rst\-ratelimit\fR +können Sie Nmap sagen, dass es diese Ratenbeschränkungen ignorieren soll (z\&.B\&. bei Port\-Scans wie dem SYN\-Scan, die nicht\-antwortende Ports +\fInicht\fR +als +offen +behandeln)\&. +.sp +Diese Option kann die Genauigkeit reduzieren, da einige Ports nicht zu antworten scheinen, weil Nmap nicht lange genug auf eine ratenbeschränkte RST\-Antwort gewartet hat\&. Bei einem SYN\-Scan führt die ausbleibende Antwort dazu, dass für den Port der Zustand +gefiltert +und +geschlossen +markiert wird, den wir sehen, wenn RST\-Pakete empfangen werden\&. Diese Option ist nützlich, wenn Sie sich nur für offene Ports interessieren und eine Unterscheidung zwischen +geschlossenen +und +gefilterten +Ports die zusätzliche Zeit nicht wert ist\&. +.RE +.PP +\fB\-T paranoid|sneaky|polite|normal|aggressive|insane\fR (setzt ein Timing\-Template) +.RS 4 +Auch wenn die feinkörnigen Timing\-Einstellungen im letzten Abschnitt mächtig und effektiv sind, finden manche Leute sie verwirrend\&. Außerdem kann die Wahl der passenden Werte manchmal mehr Zeit erfordern als der Scan, den Sie damit optimieren möchten\&. Deswegen bietet Nmap auch einen einfacheren Ansatz mit sechs Timing\-Templates\&. Diese können Sie mit der Option +\fB\-T\fR +und ihrer Nummer (0–5) oder mit ihrem Namen angeben\&. Diese Template\-Namen lauten: +\fBparanoid\fR\ \&(\fB0\fR), +\fBsneaky\fR\ \&(\fB1\fR), +\fBpolite\fR\ \&(\fB2\fR), +\fBnormal\fR\ \&(\fB3\fR), +\fBaggressive\fR\ \&(\fB4\fR) und +\fBinsane\fR\ \&(\fB5\fR)\&. Die ersten beiden sind für die Umgehung von IDS gedacht\&. Der Polite\-Modus verlangsamt den Scan, damit er weniger Bandbreite und Ressourcen auf dem Zielrechner verbraucht\&. Der Normal\-Modus ist der Standardwert, d\&.h\&. +\fB\-T3\fR +macht gar nichts\&. Der Aggressive\-Modus beschleunigt Scans, indem er davon ausgeht, dass Sie sich in einem einigermaßen schnellen und zuverlässigen Netzwerk befinden\&. Und schließlich geht der Insane\-Modus +davon aus, dass sie sich in einem außergewöhnlich schnellen Netzwerk befinden bzw\&. gewillt sind, für mehr Geschwindigkeit auf etwas Genauigkeit zu verzichten\&. +.sp +Mit diesen Templates können Benutzer angeben, wie aggressiv sie vorgehen möchten, und trotzdem Nmap die Wahl der genauen Zeitwerte überlassen\&. Diese Templates führen außerdem auch kleine Geschwindigkeitsanpassungen aus, für die es zur Zeit keine feinkörnigen Einstellungsoptionen gibt\&. Zum Beispiel verbietet +\fB\-T4\fR, +dass die dynamische Scan\-Verzögerung bei TCP\-Ports über 10\ \&ms ansteigt, und +\fB\-T5\fR +begrenzt diesen Wert auf 5\ \&ms\&. Templates könen auch in Kombination mit feinkörnigen Einstellungen benutzt werden, wobei die feinkörnigeren Optionen die entsprechenden allgemeinen Werte aus den Templates überschreiben\&. Ich empfehle den Einsatz von +\fB\-T4\fR +beim Scannen halbwegs moderner und zuverlässiger Netzwerke\&. Wenn Sie diese Option angeben, auch dann, wenn Sie zusätzliche feinkörnige Einstellungen benutzen, profitieren Sie von den weiteren kleinen Optimierungen, die damit verbunden sind\&. +.sp +Falls Sie eine anständige Breitband\- oder Ethernet\-Verbindung haben, würde ich empfehlen, immer +\fB\-T4\fR +zu benutzen\&. Manche Leute lieben +\fB\-T5\fR, was für meinen Geschmack aber zu aggressiv ist\&. Manchmal geben Leute +\fB\-T2\fR +an, weil sie denken, dadurch würden Hosts weniger abstürzen, oder weil sie sich selbst im Allgemeinen für höflich halten\&. Oft realisieren sie einfach nicht, wie langsam +\fB\-T polite\fR +tatsächlich ist\&. Ein solcher Scan kann zehnmal mehr Zeit benötigen als ein Standard\-Scan\&. Rechnerabstürze und Bandbreitenprobleme kommen mit den standardmäßigen Timing\-Optionen (\fB\-T3\fR) selten vor, weswegen ich das normalerweise vorsichtigen Scannern empfehle\&. Auf die Versionserkennung zu verzichten ist weit wirksamer bei der Reduktion dieser Probleme als das Herumprobieren mit Zeiteinstellungen\&. +.sp +Zwar sind +\fB\-T0\fR +und +\fB\-T1\fR +vielleicht hilfreich bei der Vermeidung von IDS\-Alarmen, benötigen aber außergewöhnlich viel Zeit beim Scannen von Tausenden von Rechnern oder Ports\&. Für einen derart langen Scan möchten Sie vielleicht doch lieber die genau benötigten Zeitwerte angeben, statt sich auf die vorgefertigten Werte von +\fB\-T0\fR +und +\fB\-T1\fR +zu verlassen\&. +.sp +Die Haupteffekte von +\fBT0\fR +sind die Serialisierung des Scans, bei der immer nur ein Port gescannt wird, und eine Wartezeit von fünf Minuten zwischen zwei Testpaketen\&. +\fBT1\fR +und +\fBT2\fR +sind ähnlich, warten aber jeweils nur 15 bzw\&. 0,4 Sekunden zwischen zwei Testpaketen\&. +\fBT3\fR +ist die Standardeinstellung in Nmap, die eine Parallelisierung +beinhaltet\&. +\fB\-T4\fR +macht das Äquivalent von +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR +und setzt die maximale TCP\-Scan\-Verzögerung auf 10 Millisekunden\&. +\fBT5\fR +macht das Äquivalent von +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 15m\fR +und setzt die maximale TCP\-Scan\-Verzögerung auf 5\ \&ms\&. +.RE +.SH "FIREWALL\-/IDS\-UMGEHUNG UND \-TÄUSCHUNG" +.PP +Viele Internet\-Pioniere hatten die Vision eines globalen, offenen Netzwerks, in dem ein universeller IP\-Adressraum virtuelle Verbindungen zwischen zwei beliebigen Knoten erlaubt\&. Dadurch können Hosts als echte, gleichberechtigte Partner agieren und Information untereinander senden und empfangen\&. Die Menschen könnten von ihrer Arbeitsstelle auf all ihre Systeme daheim zugreifen, die Einstellungen der Klimaanlage ändern oder die Türen für verfrühte Gäste aufsperren\&. Diese Vision einer universellen Konnektivität wurde durch eine Verknappung im Adressraum und Sicherheitsbedenken abgewürgt\&. In den frühen 1990er Jahren begannen Organisationen mit der Aufstellung von Firewalls mit dem ausdrücklichen Zweck einer Reduktion der Konnektivität\&. Riesige Netzwerke wurden mit Anwendungs\-Proxies, NAT (Network Address Translation)\-Geräten und Paketfiltern vom ungefilterten Internet abgeriegelt\&. Der ungehinderte Fluss von Informationen hat einer strengen Regulierung von zugelassenen Kommunikationskanälen und der darüber ausgetauschten Inhalte Platz gemacht\&. +.PP +Netzwerkhindernisse wie Firewalls können die Analyse eines Netzwerks außerordentlich schwer machen\&. Und leichter wird es nicht werden, da das Verhindern von Ausspähungen oft ein Schlüsselziel beim Einsatz dieser Geräte ist\&. Trotzdem bietet Nmap viele Eigenschaften, um beim Verständnis dieser komplexen Netzwerke zu helfen und um zu überprüfen, dass diese Filter arbeiten wie gewünscht\&. Es bietet sogar Mechanismen zur Umgehung schlechter Abwehrstrategien\&. Eine der besten Methoden, Ihre Lage in puncto Netzwerksicherheit zu verstehen, ist die, sie anzugreifen\&. Versetzen Sie sich selbst in die Denkweise eines Angreifers und wenden Sie Verfahren aus diesem Kapitel gegen Ihr Netzwerk an\&. Starten Sie einen FTP\-Bounce\-Scan, Idle\-Scan, Fragmentierungsangriff, oder versuchen Sie durch einen Ihrer eigenen Proxies zu tunneln\&. +.PP +Zusätzlich zur Beschränkung der Netzwerkaktivität überwachen Firmen ihren Datenverkehr immer mehr mit Intrusion\-Detection\-Systemen (IDS)\&. Alle wichtigen IDS werden mit Regeln ausgeliefert, die entworfen wurden, um Nmap\-Scans zu erkennen, weil Scans manchmal Vorboten von Angriffen sind\&. Viele dieser Produkte haben sich in Intrusion\-\fIPrevention\fR\-Systeme (IPS) +verwandelt, die für böswillig gehaltenen Datenverkehr aktiv blockieren\&. Dummerweise ist es für Netzwerkadministratoren und IDS\-Hersteller eine sehr schwierige Aufgabe, böswillige Absichten durch die Analyse von Paketdaten zuverlässig zu erkennen\&. Angreifer mit Geduld, Geschick und der Hilfe bestimmter Nmap\-Optionen können meist unerkannt an einem IDS vorbeikommen\&. Währenddessen müssen Administratoren mit riesigen Mengen falscher positiver Ergebnisse kämpfen, bei denen eine nicht böswillige Aktivität fehldiagnostiziert wird und Alarm schlägt oder blockiert wird\&. +.PP +Ab und zu schlagen Leute vor, dass Nmap keine Eigenschaften für die Umgehung von Firewallregeln oder IDS enthalten sollte\&. Ihr Argument ist, dass diese Eigenschaften genauso wahrscheinlich von Angreifern missbraucht werden wie von Administratoren, die die Sicherheit verbessern\&. Das Problem bei dieser Logik ist, dass diese Methoden trotzdem von Angreifern benutzt würden, die einfach andere Werkzeuge finden oder die Funktionalität in Nmap einbauen würden\&. Zugleich wäre es für Administratoren sehr viel schwerer, ihren Job zu machen\&. Das Aufstellen nur moderner, gepatchter FTP\-Server ist eine wesentlich bessere Verteidigung als der Versuch, die Verbreitung von Werkzeugen zu verhindern, die einen FTP\-Bounce\-Angriff implementieren\&. +.PP +Es gibt keine Wunderlösung (oder Nmap\-Option) zur Erkennung und Umgehung von Firewalls und IDS\-Systemen\&. Es braucht Kompetenz und Erfahrung\&. Eine Anleitung dazu würde den Rahmen dieses Referenz\-Handbuches sprengen, das nur die wichtigsten Optionen auflistet und beschreibt, was sie machen\&. +.PP +\fB\-f\fR (Pakete fragmentieren); \fB\-\-mtu\fR (benutzt angegebene MTU) +.RS 4 +Die Option +\fB\-f\fR +bewirkt, dass der gewünschte Scan (inklusive Ping\-Scans) winzig fragmentierte IP\-Pakete benutzt\&. Die Idee dabei ist, den TCP\-Header über mehrere Pakete aufzuteilen, um es Paketfiltern, Intrusion\-Detection\-Systemen und anderen Ärgernissen schwerer zu machen, Ihre Aktivitäten zu durchschauen\&. Seien Sie dabei vorsichtig! Manche Programme haben Mühe, mit diesen winzigen Paketen umzugehen\&. Ein Sniffer alter Schule namens Sniffit ist beim Erhalt des ersten Fragments sofort mit einem Segmentation\-Fault\-Fehler abgestürzt\&. Wenn Sie diese Option einmal angeben, spaltet Nmap die Pakete in acht Bytes oder weniger nach dem IP\-Header auf\&. Das heißt, ein 20 Byte langer TCP\-Header würde in drei Pakete aufgeteilt, zwei mit acht Bytes des TCP\-Headers und eines mit den restlichen vier\&. Natürlich hat jedes Fragment auch einen IP\-Header\&. Geben Sie erneut +\fB\-f\fR +an, um 16 Bytes pro Fragment zu benutzen (was die Anzahl der Fragmente verkleinert)\&. +Oder Sie geben eine eigene Offset\-Größe mit der Option +\fB\-\-mtu\fR +(für engl\&. maximum transmission unit) an\&. Wenn Sie +\fB\-\-mtu\fR +angeben, sollten Sie nicht auch +\fB\-f\fR +angeben\&. Das Offset muss ein Vielfaches von acht sein\&. Zwar kommen fragmentierte Pakete nicht durch Paketfilter und Firewalls durch, die alle IP\-Fragmente in eine Warteschlange stellen, wie z\&.B\&. die Option +\fICONFIG_IP_ALWAYS_DEFRAG\fR +im Linux\-Kernel, aber einige Netzwerke können sich den damit verbundenen Performance\-Einbruch nicht leisten und lassen sie folglich deaktiviert\&. Andere können sie nicht aktivieren, weil die Fragmente auf verschiedenen Routen in ihre Netzwerke kommen könnten\&. Manche Quellsysteme defragmentieren hinausgehende Pakete im Kernel\&. Ein Beispiel dafür ist Linux mit dem Verbindungsmodul iptables\&. +Führen Sie einen Scan aus, während ein Sniffer wie z\&.B\&. +Wireshark +läuft, um sicherzustellen, dass die gesendeten Pakete fragmentiert sind\&. Falls Ihr Host\-Betriebssystem Probleme macht, probieren Sie die Option +\fB\-\-send\-eth\fR +aus, um die IP\-Schicht zu umgehen und rohe Ethernet\-Rahmen zu schicken\&. +.sp +Eine Fragmentierung wird von Nmap nur für rohe Pakete unterstützt, die man mit TCP\- und UDP\-Port\-Scans (außer beim Connect\-Scan und FTP\-Bounce\-Scan) und der Betriebssystemerkennung benutzen kann\&. Merkmale wie die Versionserkennung und die Nmap Scripting Engine unterstützen im Allgemeinen keine Fragmentierung, weil sie sich auf den TCP\-Stack Ihres Hosts verlassen, um mit anderen Zielen zu kommunizieren\&. +.RE +.PP +\fB\-D \fR\fB\fIdecoy1\fR\fR\fB[,\fIdecoy2\fR]\fR\fB[,ME]\fR\fB[,\&.\&.\&.]\fR (verdeckt einen Scan mit Ködern) +.RS 4 +Führt einen Decoy\-Scan durch, was für den entfernten Host den Anschein erweckt, dass der oder die Hosts, die Sie als Köder angeben, das Zielnetzwerk ebenfalls scannen\&. Deren IDS kann also 5–10 Port\-Scans von eindeutigen IP\-Adressen verzeichnen, aber es weiß nicht, welche IP sie gescannt hat und welche unschuldige Köder waren\&. Das kann man zwar bekämpfen, indem man Router\-Pfade mitverfolgt, Antworten verwirft oder weitere aktive Mechanismen anwendet, aber im Allgemeinen ist es eine wirksame Methode zum Verbergen Ihrer IP\-Adresse\&. +.sp +Trennen Sie alle Köder mit Kommata voneinander, wobei Sie optional +ME +als einen der Köder angeben können, um die Position Ihrer echten IP\-Adresse zu bestimmen\&. Falls Sie +ME +an sechster Stelle oder später setzen, zeigen einige verbreitete Port\-Scan\-Detektoren (wie z\&.B\&. der hervorragende Scanlogd +von Solar Designer) Ihre IP\-Adresse wahrscheinlich überhaupt nicht an\&. Wenn Sie kein +ME +angeben, setzt es Nmap an eine zufällig gewählte Position\&. Sie können auch +RND +benutzen, um eine zufällige, nicht\-reservierte IP\-Adresse zu erzeugen, oder +RND:\fInumber\fR, um +\fInumber\fR +Adressen zu erzeugen\&. +.sp +Beachten Sie, dass die Hosts, die Sie als Köder benutzen, eingeschaltet sein sollten, sonst könnten Sie versehentlich einen SYN\-Flood\-Angriff auf Ihre Ziele auslösen\&. Außerdem lässt sich der scannende Host sehr einfach bestimmen, wenn nur einer davon im Netzwerk eingeschaltet ist\&. Vielleicht möchten Sie IP\-Adressen statt \-Namen benutzen (damit die Köder\-Netzwerke Sie nicht in ihren Nameserver\-Protokollen sehen)\&. +.sp +Köder werden sowohl im initialen Ping\-Scan (mit ICMP, SYN, ACK oder was auch immer) als auch während der eigentlichen Port\-Scan\-Phase benutzt\&. Auch bei der Erkennung entfernter Betriebssysteme (\fB\-O\fR) werden Köder benutzt\&. Bei der Versionserkennung oder beim TCP\-Connect\-Scan funktionieren Köder jedoch nicht\&. Falls eine Scan\-Verzögerung stattfindet, wird sie zwischen zwei Stapeln vorgetäuschter Testpakete erzwungen, nicht zwischen einzelnen Testpaketen\&. Weil Köder stapelweise auf einmal gesendet werden, können sie vorübergehend die Beschränkungen der Überlastungssteuerung verletzen\&. +.sp +Man sollte hierbei noch erwähnen, dass beim Einsatz von zu vielen Ködern Ihr Scan sich verlangsamen und sogar ungenauer werden kann\&. Manche ISPs filtern außerdem Ihre vorgetäuschten Pakete, aber viele beschränken solche vorgetäuschten IP\-Pakete in keinster Weise\&. +.RE +.PP +\fB\-S \fR\fB\fIIP_Address\fR\fR (Quelladresse vortäuschen) +.RS 4 +Unter gewissen Umständen kann Nmap eventuell Ihre Quelladresse nicht bestimmen (wenn dem so ist, dann sagt Ihnen Nmap Bescheid)\&. Benutzen Sie in diesem Fall +\fB\-S\fR +mit der IP\-Adresse der Schnittstelle, über die Sie die Pakete senden möchten\&. +.sp +Eine weitere mögliche Anwendung dieses Flags ist eine Vortäuschung des Scans, um die Ziele glauben zu machen, dass +\fIjemand anderes\fR +sie scannt\&. Stellen Sie sich eine Firma vor, die wiederholt von einem Mitbewerber gescannt wird! Bei dieser Art von Anwendung werden im Allgemeinen die Optionen +\fB\-e\fR +und +\fB\-PN\fR +benötigt\&. Beachten Sie, dass Sie normalerweise Antwortpakete zurückbekommen (sie werden an die IP adressiert, die Sie vortäuschen), d\&.h\&. Nmap kann keinen sinnvollen Bericht produzieren\&. +.RE +.PP +\fB\-e \fR\fB\fIinterface\fR\fR (angegebene Schnittstelle benutzen) +.RS 4 +Sagt Nmap, auf welcher Schnittstelle es Pakete senden und empfangen soll\&. Nmap sollte das automatisch erkennen können, sagt Ihnen aber Bescheid, wenn nicht\&. +.RE +.PP +\fB\-\-source\-port \fR\fB\fIportnumber\fR\fR\fB;\fR \fB\-g \fR\fB\fIportnumber\fR\fR (Quell\-Portnummer vortäuschen) +.RS 4 +Eine Fehlkonfiguration, die überraschend häufig vorkommt, ist es, dem Netzwerkverkehr allein auf Basis der Quell\-Portnummer zu vertrauen\&. Wie das zustande kommt, kann man leicht verstehen\&. Ein Administrator setzt eine glänzende neue Firewall auf und wird sofort mit Beschwerden von undankbaren Benutzern überflutet, deren Anwendungen nicht mehr laufen\&. Vor allem DNS könnte einen Aussetzer haben, weil die UDP\-DNS\-Antworten von externen Servern nicht länger ins Netzwerk hineinkommen\&. Ein weiteres häufiges Beispiel ist FTP\&. Bei aktiven FTP\-Übertragungen versucht der entfernte Server, eine Verbindung zurück zum Client herzustellen, um die gewünschte Datei zu übertragen\&. +.sp +Für diese Probleme existieren sichere Lösungen, oftmals in Form von Proxies auf Anwendungsebene oder Protokoll\-parsenden Firewall\-Modulen\&. Leider gibt es auch einfachere, unsichere Lösungen\&. Viele Administratoren haben beobachtet, dass DNS\-Antworten von Port 53 und aktive FTP\-Antworten von Port 20 kommen, und sind in die Falle getappt, eingehenden Datenverkehr nur von diesen Ports zu erlauben\&. Oft gehen sie davon aus, dass kein Angreifer solche Firewall\-Lecks bemerken und ausbeuten würde\&. In anderen Fällen betrachten das Administratoren als kurzfristige Überbrückungsmaßnahme, bis sie eine sicherere Lösung implementieren können\&. Und dann vergessen sie diese Sicherheitsaktualisierung\&. +.sp +Aber nicht nur überarbeitete Netzwerkadministratoren tappen in diese Falle\&. Zahlreiche Produkte wurden mit diesen unsicheren Regeln ausgeliefert\&. Sogar Microsoft hat sich schuldig gmacht\&. Die IPsec\-Filter, die mit Windows 2000 und Windows XP ausgeliefert wurden, enthalten eine implizite Regel, die jeden TCP\- oder UDP\-Datenverkehr von Port 88 (Kerberos) erlaubt\&. Ein weiterer bekannter Fall sind Versionen der Zone Alarm Personal\-Firewall bis 2\&.1\&.25, die alle empfangenen UDP\-Pakete vom Quell\-Port 53 (DNS) oder 67 (DHCP) erlauben\&. +.sp +Nmap bietet die Optionen +\fB\-g\fR +und +\fB\-\-source\-port\fR +(sind äquivalent), um diese Schwächen auszunutzen\&. Geben Sie einfach eine Portnummer an, und Nmap wird, wenn möglich, Pakete von diesem Port senden\&. Damit es richtig funktioniert, muss Nmap für bestimmte Betriebssystemerkennungstests verschiedene Portnummern benutzen, und DNS\-Anfragen ignorieren das +\fB\-\-source\-port\fR\-Flag, weil Nmap sich bei ihnen auf System\-Bibliotheken verlässt\&. Die meisten TCP\-Scans, inklusive dem SYN\-Scan, unterstützen die Option vollständig, ebenso wie der UDP\-Scan\&. +.RE +.PP +\fB\-\-data\-length \fR\fB\fInumber\fR\fR (Zufallsdaten an gesendete Pakete anfügen) +.RS 4 +Normalerweise sendet Nmap minimale Pakete, die nur einen Header enthalten\&. Daher haben seine TCP\-Pakete im Allgemeinen nur 40 Bytes und die ICMP Echo\-Requests nur 28\&. Mit dieser Option sagen Sie Nmap, dass es die angegebene Anzahl von zufälligen Bytes an die meisten gesendeten Pakete hinzufügen soll\&. Pakete für die Betriebssystemerkennung (\fB\-O\fR) sind davon nicht betroffen, +weil dort aus Genauigkeitsgründen konsistente Pakete verlangt werden, aber die meisten Ping\- und Port\-Scan\-Pakete unterstützen das\&. Das kann den Scan etwas verlangsamen, aber auch etwas unauffälliger machen\&. +.RE +.PP +\fB\-\-ip\-options \fR\fB\fIS|R [route]|L [route]|T|U \&.\&.\&. \fR\fR\fB;\fR \fB\-\-ip\-options \fR\fB\fIhex string\fR\fR (sendet Pakete mit angegebenen IP\-Optionen) +.RS 4 +Laut +\m[blue]\fBIP\-Protokoll\fR\m[]\&\s-2\u[9]\d\s+2 +können in den Paket\-Headern mehrere Optionen enthalten sein\&. Anders als die allgegenwärtigen TCP\-Optionen sieht man IP\-Optionen aus Gründen der praktischen Anwendbarkeit und Sicherheit nur selten\&. Tatsächlich blockieren die meisten Internet\-Router die gefährlichsten Optionen wie Source Routing sogar\&. Dennoch können diese Optionen in manchen Fällen nützlich sein, um die Netzwerk\-Route zu Zielrechnern zu bestimmen und zu manipulieren\&. Sie können z\&.B\&. vielleicht die Option Record Route dazu benutzen, einen Pfad zum Ziel sogar dann zu bestimmen, wenn traditionellere, traceroute\-artige Ansätze versagen\&. Oder wenn Ihre Pakete von einer bestimmten Firewall verworfen werden, können Sie mit den Optionen Strict oder Loose Source Routing möglicherweise eine andere Route angeben\&. +.sp +Die meisten Möglichkeiten bei der Angabe von IP\-Optionen hat man, wenn man einfach Werte als Argumente für +\fB\-\-ip\-options\fR +angibt\&. Stellen Sie vor jede Hex\-Zahl ein +\ex +und zwei Ziffern\&. Einzelne Zeichen können Sie wiederholen, indem Sie ihnen ein Sternchen und dann die Anzahl der Wiederholungen nachstellen\&. So ist z\&.B\&. +\ex01\ex07\ex04\ex00*36\ex01 +ein Hex\-String mit 36 NUL\-Bytes\&. +.sp +Nmap bietet auch einen verkürzten Mechanismus für die Angabe von Optionen\&. Geben Sie einfach die Buchstaben +R, +T +oder +U +an, um jeweils Record Route, +Record Timestamp +oder beide Optionen gemeinsam anzugeben\&. Loose oder Strict Source Routing +kann man mit +L +bzw\&. +S, gefolgt von einem Leerzeichen und einer mit Leerzeichen getrennten Liste von IP\-Adressen angeben\&. +.sp +Wenn Sie die Optionen in den gesendeten und empfangenen Paketen sehen möchten, geben Sie +\fB\-\-packet\-trace\fR +an\&. Mehr Informationen und Beispiele zum Einsatz von IP\-Optionen mit Nmap finden Sie unter +\m[blue]\fB\%https://seclists.org/nmap-dev/2006/q3/0052.html\fR\m[]\&. +.RE +.PP +\fB\-\-ttl \fR\fB\fIvalue\fR\fR (setzt IP\-Time\-to\-live\-Feld) +.RS 4 +Setzt bei IPv4 das Time\-to\-live\-Feld in gesendeten Paketen auf den angegebenen Wert\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (randomisiert Reihenfolge der Zielhosts) +.RS 4 +Verlangt von Nmap, dass es alle Gruppen von bis zu 16\&.384 Hosts durcheinanderwürfelt, bevor es sie scannt\&. Das kann den Scan für verschiedene Netzwerk\-Überwachungssysteme weniger offensichtlich machen, besonders dann, wenn Sie ihn mit einer langsamen Timing\-Option kombinieren\&. Wenn Sie größere Gruppen randomisieren möchten, müssen Sie +\fIPING_GROUP_SZ\fR +in +nmap\&.h +erhöhen und neu kompilieren\&. Eine alternative Lösung ist es, die Liste der Ziel\-IPs mit einem List\-Scan (\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR) zu erzeugen, dann z\&.B\&. mit einem Perl\-Script zu randomisieren, um sie schließlich als Ganzes mit +\fB\-iL\fR +an Nmap zu übergeben\&. +.RE +.PP +\fB\-\-spoof\-mac \fR\fB\fIMAC address, prefix, or vendor name\fR\fR (MAC\-Adresse vortäuschen) +.RS 4 +Verlangt von Nmap, dass es in allen gesendeten rohen Ethernet\-Rahmen die angegebene MAC\-Adresse +benutzt\&. Diese Option impliziert +\fB\-\-send\-eth\fR, +um sicherzustellen, dass Nmap tatsächlich Pakete auf Ethernet\-Ebene sendet\&. Die MAC\-Adresse kann in mehreren Formaten angegeben werden\&. Wenn es einfach die Zahl +0 +ist, wählt Nmap eine völlig zufällige MAC\-Adresse für diese Sitzung\&. Falls der angegebene String aus einer geraden Anzahl von Hexadezimalziffern besteht (in dem Paare optional mit Doppelpunkten getrennt sein können), benutzt Nmap diese als MAC\&. Werden weniger als 12 Hexadezimalziffern angegeben, dann füllt Nmap die restlichen sechs Bytes mit zufälligen Werten\&. Falls das Argument weder null noch ein Hex\-String ist, schaut Nmap in +nmap\-mac\-prefixes +nach, um einen Herstellernamen zu finden, der den angegebenen String enthält (unabhängig von der Schreibweise)\&. Wird eine Übereinstimmung gefunden, benutzt Nmap die OUI dieses Herstellers (einen drei Byte langen Präfix) +und füllt die verbleibenden drei Bytes mit Zufallswerten\&. Gültige Beispiele für Argumente von +\fB\-\-spoof\-mac\fR +sind +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2 +und +Cisco\&. Diese Option betrifft nur Scans mit rohen Paketen wie den SYN\-Scan oder die Betriebssystemerkennung, keine verbindungsorientierten Merkmale wie die Versionserkennung oder die Nmap Scripting Engine\&. +.RE +.PP +\fB\-\-badsum\fR (sendet Pakete mit falschen TCP/UDP\-Prüfsummen) +.RS 4 +Verlangt von Nmap, bei den an Zielhosts gesendeten Paketen ungültige TCP\- oder UDP\-Prüfsummen zu benutzen\&. Da so gut wie alle Host\-IP\-Stacks solche Pakete verwerfen, kommen eventuelle Antworten sehr wahrscheinlich von einer Firewall oder einem IDS, das sich nicht die Mühe macht, die Prüfsumme zu überprüfen\&. Mehr Details zu dieser Methode finden Sie unter +\m[blue]\fB\%https://nmap.org/p60-12.html\fR\m[]\&. +.RE +.SH "AUSGABE" +.PP +Alle Sicherheitswerkzeuge sind nur so gut wie die Ausgabe, die sie erzeugen\&. Komplexe Tests und Algorithmen haben einen geringen Wert, wenn sie nicht auf übersichtliche und verständliche Weise dargestellt werden\&. Da Nmap auf vielfältige Weise von verschiedenen Leuten und anderer Software benutzt wird, kann kein Format allein es allen recht machen\&. Daher bietet Nmap mehrere Formate, darunter den interaktiven Modus, den Menschen direkt lesen können, und XML, das von Software leicht geparst werden kann\&. +.PP +Zusätzlich zu verschiedenen Ausgabeformaten bietet Nmap Optionen zur Steuerung der Ausführlichkeit dieser Ausgabe sowie Debugging\-Meldungen\&. Die Ausgaben können an die Standardausgabe oder an benannte Dateien gehen, die Nmap überschreiben bzw\&. an die es seine Ausgabe anfügen kann\&. Mit den Ausgabedateien können außerdem abgebrochene Scans fortgesetzt werden\&. +.PP +Nmap erzeugt seine Ausgabe in fünf verschiedenen Formaten\&. Das Standardformat heißt +interaktive Ausgabe +und wird an die Standardausgabe (stdout) +gesendet\&. Es gibt auch die +normale Ausgabe, +die ähnlich zur interaktiven Ausgabe ist, außer dass sie weniger Laufzeitinformation und Warnungen ausgibt, weil man davon ausgeht, dass sie erst nach Abschluss des Scans analysiert wird und nicht, während er noch läuft\&. +.PP +Die +XML\-Ausgabe +ist eines der wichtigsten Ausgabeformate, da sie einfach nach HTML konvertiert, von Programmen wie Nmap\-GUIs geparst oder in Datenbanken importiert werden kann\&. +.PP +Die zwei verbleibenden Ausgabeformate sind die einfache +grepbare Ausgabe, +in der die meiste Information über einen Zielhost in einer einzigen Zeile enthalten ist, und +sCRiPt KiDDi3 0utPUt +für Benutzer, die sich selbst als |<\-r4d sehen\&. +.PP +Die interaktive Ausgabe ist standardmäßig vorgegeben und verfügt über keine eigenen Kommandozeilenoptionen, aber die anderen vier Formate benutzen dieselbe Syntax\&. Sie erwarten ein Argument, den Namen der Datei, in der die Ergebnisse gespeichert werden sollen\&. Es können mehrere Formate angegeben werden, aber jedes nur einmal\&. Vielleicht möchten Sie z\&.B\&. eine normale Ausgabe für eine eigene Untersuchung speichern und eine XML\-Ausgabe desselben Scans für eine programmbasierte Analyse\&. Das erreichen Sie mit den Optionen +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Auch wenn in diesem Kapitel der Kürze wegen einfache Namen wie +myscan\&.xml +benutzt werden, empfehlen sich im Allgemeinen aussagekräftigere Namen\&. Welche Namen Sie wählen, ist Geschmackssache, aber ich benutze lange Namen, die das Scandatum und ein oder zwei Worte über den Scan enthalten, in einem Verzeichnis, das den Namen der gescannten Firma enthält\&. +.PP +Auch wenn diese Optionen Ergebnisse in Dateien speichern, gibt Nmap weiterhin die interaktive Ausgabe wie üblich auf die Standardausgabe aus\&. Zum Beispiel speichert der Befehl +\fBnmap \-oX myscan\&.xml target\fR +XML in +myscan\&.xml +und füllt die Standardausgabe mit demselben interaktiven Ergebnis, wie es auch ohne Angabe von +\fB\-oX\fR +der Fall wäre\&. Das können Sie ändern, indem Sie ein Minuszeichen als Argument für eines der Formate angeben\&. Dann schaltet Nmap die interaktive Ausgabe ab und gibt stattdessen Ergebnisse im gewünschten Format auf den Standardausgabestrom aus\&. Das heißt, der Befehl +\fBnmap \-oX \- target\fR +schreibt nur die XML\-Ausgabe auf die Standardausgabe\&. +Ernste Fehler werden weiterhin auf den normalen Standardfehlerstrom, stderr, +ausgegeben\&. +.PP +Anders als bei anderen Nmap\-Argumenten ist das Leerzeichen zwischen dem Options\-Flag für eine Ausgabedatei (z\&.B\&. +\fB\-oX\fR) und dem Dateinamen oder Minuszeichen obligatorisch\&. Falls Sie die Leerzeichen weglassen und Argumente wie z\&.B\&. +\fB\-oG\-\fR +oder +\fB\-oXscan\&.xml\fR +angeben, erzeugt Nmap aus Gründen der Rückwärtskompatibilität Ausgabedateien im +\fInormalen Format\fR, die jeweils die Namen +G\- +und +Xscan\&.xml +haben\&. +.PP +All diese Argumente unterstützen +\fBstrftime\fR\-ähnliche +Umwandlungen im Dateinamen\&. +%H, +%M, +%S, +%m, +%d, +%y +und +%Y +sind alle exakt gleich wie in +\fBstrftime\fR\&. +%T +entspricht +%H%M%S, +%R +entspricht +%H%M +und +%D +entspricht +%m%d%y\&. Ein +%, dem ein anderes Zeichen folgt, ergibt nur genau dieses Zeichen (%% +ergibt ein Prozentzeichen)\&. Also erzeugt +\fB\-oX \*(Aqscan\-%T\-%D\&.xml\*(Aq\fR +eine XML\-Datei in der Form +scan\-144840\-121307\&.xml\&. +.PP +Nmap bietet auch Optionen zur Steuerung der Scan\-Ausführlichkeit und Optionen, um an Ausgabedateien anzuhängen, statt sie zu überschreiben\&. All diese Optionen werden unten beschrieben\&. +.PP +\fBNmap\-Ausgabeformate\fR +.PP +\fB\-oN \fR\fB\fIfilespec\fR\fR (normale Ausgabe) +.RS 4 +Verlangt, dass eine +normale Ausgabe +in der angegebenen Datei gespeichert wird\&. Wie oben erwähnt, unterscheidet sich das leicht von der +interaktiven Ausgabe\&. +.RE +.PP +\fB\-oX \fR\fB\fIfilespec\fR\fR (XML\-Ausgabe) +.RS 4 +Verlangt, dass eine +XML\-Ausgabe +in der angegebenen Datei gespeichert wird\&. Nmap fügt eine DTD (Document Type Definition) hinzu, mit der XML\-Parser Nmaps XML\-Ausgabe validieren können\&. Diese ist vor allem für die Benutzung durch Programme gedacht, kann aber auch Menschen bei der Interpretation von Nmaps XML\-Ausgabe helfen\&. Die DTD definiert die gültigen Elemente des Formats und zählt an vielen Stellen die dafür erlaubten Attribute und Werte auf\&. Die neueste Version ist immer unter +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[] +verfügbar\&. +.sp +XML bietet ein stabiles Format, das man mit Software leicht parsen kann\&. Solche XML\-Parser sind für alle wichtigen Programmiersprachen wie C/C++, Perl, Python und Java gratis verfügbar\&. Manche Leute haben sogar Anbindungen für die meisten dieser Sprachen geschrieben, um speziell die Ausgabe und Ausführung von Nmap zu steuern\&. Beispiele sind +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[10]\d\s+2 + +und +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[11]\d\s+2 + +für Perl in CPAN\&. In fast allen Fällen, in denen eine nicht\-triviale Anwendung eine Schnittstelle zu Nmap benutzt, ist XML das bevorzugte Format\&. +.sp +Die XML\-Ausgabe verweist auf ein XSL\-Stylesheet, mit dem man die Ergebnisse als HTML formatieren kann\&. Am einfachsten benutzt man das, indem man einfach die XML\-Ausgabe in einem Webbrowser wie Firefox oder IE lädt\&. Standardmäßig funktioniert das nur auf dem Rechner, auf dem Sie Nmap ausgeführt haben (oder auf einem, der ähnlich konfiguriert ist), weil der Pfad zu +nmap\&.xsl +darin festkodiert ist\&. Um portable XML\-Dateien zu erzeugen, die auf allen mit dem Web verbundenen Rechnern als HTML angezeigt werden, können Sie die Optionen +\fB\-\-webxml\fR +oder +\fB\-\-stylesheet\fR +benutzen\&. +.RE +.PP +\fB\-oS \fR\fB\fIfilespec\fR\fR (ScRipT KIdd|3\-Ausgabe) +.RS 4 +Die Script\-Kiddie\-Ausgabe ist ähnlich zur interaktiven Ausgabe, mit dem Unterschied, dass sie nachbearbeitet ist, um die \*(Aql33t HaXXorZ besser anzusprechen! Vorher haben sie wegen dessen konsistent richtiger Schreibweise und Buchstabierung auf Nmap herabgesehen\&. Humorlose Menschen sollten wissen, dass diese Option sich über Script Kiddies lustig macht, bevor sie mich dafür angreifen, dass ich +„ihnen helfe\(lq\&. +.RE +.PP +\fB\-oG \fR\fB\fIfilespec\fR\fR (grepbare Ausgabe) +.RS 4 +Dieses Ausgabeformat wird zum Schluss beschrieben, weil es als überholt gilt\&. Das XML\-Ausgabeformat ist wesentlich leistungsstärker und für erfahrene Benutzer fast genauso bequem\&. XML ist eim Standard, für den Dutzende hervorragender Parser verfügbar sind, während die grepbare Ausgabe nur mein eigener einfacher Hack ist\&. XML ist erweiterbar und kann neue Nmap\-Eigenschaften unterstützen, die ich beim grepbaren Format aus Platzgründen oft weglassen muss\&. +.sp +Dessen ungeachtet ist die grepbare Ausgabe immer noch recht beliebt\&. Es ist ein einfaches Format, das pro Zeile einen Host auflistet und das mit Unix\-Standardwerkzeugen wie grep, awk, cut, sed, diff und auch mit Perl auf triviale Weise durchsucht und geparst werden kann\&. Selbst ich benutze es für einmalige schnelle Tests in der Kommandozeile\&. Zum Beispiel kann man alle Hosts, auf denen der SSH\-Port offen ist oder auf denen Solaris läuft, auf einfache Weise mit einem grep bestimmen, das die Hosts findet, umgeleitet in einen awk\- oder cut\-Befehl, der die gewünschten Felder ausgibt\&. +.sp +Die grepbare Ausgabe besteht aus Kommentaren (Zeilen, die mit einem # anfangen) +sowie aus Zielzeilen\&. Eine Zielzeile enthält eine Kombination aus sechs benannten Feldern, durch Tabulatoren getrennt, gefolgt von einem Doppelpunkt\&. Diese Felder lauten +Host, +Ports, +Protocols, +Ignored State, +OS, +Seq Index, +IP ID +und +Status\&. +.sp +Das wichtigste dieser Felder ist im Allgemeinen +Ports, das Details zu einem interessanten Port enthält\&. Es ist eine mit Kommata getrennte Liste von Port\-Einträgen, wobei jeder Eintrag einen interessanten Port darstellt und aus sieben mit Schrägstrichen (/) getrennten Unterfeldern besteht\&. Diese Unterfelder lauten: +Port number, +State, +Protocol, +Owner, +Service, +SunRPC info +und +Version info\&. +.sp +Wie bei der XML\-Ausgabe kann diese Manpage auch hier nicht das vollständige Format dokumentieren\&. Eine detailliertere Betrachtung des grepbaren Ausgabeformats in Nmap finden Sie +from \m[blue]\fB\%https://nmap.org/book/output-formats-grepable-output.html\fR\m[]\&. +.RE +.PP +\fB\-oA \fR\fB\fIbasename\fR\fR (Ausgabe in allen Formaten) +.RS 4 +Aus Gründen der Bequemlichkeit können Sie Scan\-Ergebnisse mit +\fB\-oA \fR\fB\fIbasename\fR\fR +gleichzeitig in normalem, in XML\- und in grepbarem Format speichern\&. Sie werden jeweils in +\fIbasename\fR\&.nmap, +\fIbasename\fR\&.xml +und +\fIbasename\fR\&.gnmap, gespeichert\&. Wie in den meisten Programmen können Sie vor den Dateinamen ein Präfix mit einem Verzeichnispfad darin setzen, z\&.B\&. +~/nmaplogs/foocorp/ +unter Unix oder +c:\ehacking\esco +unter Windows\&. +.RE +.PP +\fBOptionen für Ausführlichkeit und Debugging\fR +.PP +\fB\-v\fR (größere Ausführlichkeit) +.RS 4 +Erhöht die Ausführlichkeit, d\&.h\&. Nmap gibt mehr Informationen über den laufenden Scan aus\&. Offene Ports werden angezeigt, direkt nachdem sie gefunden werden, und es werden Schätzungen für die Dauer bis zur Fertigstellung angegeben, falls Nmap meint, dass ein Scan mehr als ein paar Minuten benötigt\&. Noch mehr Information erhalten Sie, wenn Sie diese Option zweimal oder noch öfter angeben\&. +.sp +Die meisten Änderungen betreffen nur die interaktive Ausgabe, manche betreffen auch die normale und die Script\-Kiddie\-Ausgabe\&. Die anderen Ausgabearten sind für die Weiterverarbeitung durch Maschinen gedacht, d\&.h\&. Nmap kann in diesen Formaten standardmäßig alle Details angeben, ohne einen menschlichen Leser zu ermüden\&. Allerdings gibt es in den anderen Modi einige Änderungen, bei denen die Ausgabegröße durch Weglassen einiger Details erheblich reduziert werden kann\&. Zum Beispiel wird eine Kommentarzeile in der grepbaren Ausgabe, die eine Liste aller gescannten Ports enthält, nur im wortreichen Modus ausgegeben, weil sie ziemlich lang werden kann\&. +.RE +.PP +\fB\-d [level]\fR (erhöhe oder setze Debugging\-Stufe) +.RS 4 +Wenn nicht einmal der wortreiche Modus genug Daten für Sie liefert, können Sie beim Debugging noch wesentlich mehr davon bekommen! Wie bei der Ausführlichkeits\-Option (\fB\-v\fR) wird auch das Debugging mit einem Kommandozeilen\-Flag eingeschaltet (\fB\-d\fR), und die Debug\-Stufe kann durch eine mehrfache Angabe gesteigert werden\&. +Alternativ dazu können Sie eine Debug\-Stufe auch als Argument an +\fB\-d\fR +übergeben\&. So setzt z\&.B\&. +\fB\-d9\fR +die Stufe neun\&. Das ist die höchste verfügbare Stufe, die Tausende von Zeilen produziert, sofern Sie keinen sehr einfachen Scan mit sehr wenigen Ports und Zielen ausführen\&. +.sp +Eine Debugging\-Ausgabe ist sinnvoll, wenn Sie einen Fehler in Nmap vermuten oder wenn Sie einfach verwirrt darüber sind, was und warum Nmap etwas genau macht\&. Da dieses Merkmal überwiegend für Entwickler gedacht ist, sind Debug\-Zeilen nicht immer selbsterklärend\&. Vielleicht bekommen Sie etwas wie: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Wenn Sie eine Zeile nicht verstehen, ist Ihre einzige Zuflucht, sie zu ignorieren, im Quellcode nachzuschauen oder Hilfe auf der Entwicklerliste (nmap\-dev)\&. +zu erfragen\&. Manche Einträge sind selbsterklärend, aber je höher die Debug\-Stufe ist, desto obskurer werden die Meldungen\&. +.RE +.PP +\fB\-\-reason\fR (Gründe für Host\- und Portzustände) +.RS 4 +Gibt die Gründe an, warum ein Port auf einen bestimmten Zustand gesetzt wurde und warum ein Host als ein\- oder ausgeschaltet betrachtet wird\&. Diese Option zeigt die Paketart an, die einen Port\- oder Hostzustand ermittelt hat, z\&.B\&. ein +RST\-Paket von einem geschlossenen Port oder ein Echo Reply von einem eingeschalteten Host\&. Die Information, die Nmap angeben kann, hängt von der Art des Scans oder Pings ab\&. Der SYN\-Scan und der SYN\-Ping (\fB\-sS\fR +und +\fB\-PS\fR) sind sehr detailliert, aber der TCP\-Connect\-Scan (\fB\-sT\fR) wird durch die Implementierung des +\fBconnect\fR\-Systemaufrufs beschränkt\&. Dieses Merkmal wird automatisch von der Debug\-Option (\fB\-d\fR) +aktiviert, und die Ergebnisse werden auch dann in XML\-Protokolldateien gespeichert, wenn diese Option gar nicht angegeben wird\&. +.RE +.PP +\fB\-\-stats\-every \fR\fB\fItime\fR\fR (periodische Timing\-Statistik ausgeben) +.RS 4 +Gibt periodisch eine Timing\-Statusmeldung nach einem Intervall der Länge +\fItime\fR +aus\&. Dabei kann diese Zeitangabe beschrieben werden, wie in +„TIMING UND PERFORMANCE\(lq +dargestellt, d\&.h\&. Sie können z\&.B\&. +\fB\-\-stats\-every 10s\fR +benutzen, um alle 10 Sekunden eine Statusaktualisierung zu erhalten\&. Diese erscheint in der interaktiven Ausgabe (auf dem Bildschirm) und in der XML\-Ausgabe\&. +.RE +.PP +\fB\-\-packet\-trace\fR (gesendete und empfangene Pakete und Daten mitverfolgen) +.RS 4 +Bewirkt, dass Nmap für jedes gesendete oder empfangene Paket eine Zusammenfassung ausgibt\&. Das wird bei der Fehlersuche oft gemacht, ist aber auch eine willkommene Methode für Neulinge, um genau zu verstehen, was Nmap unter der Oberfläche macht\&. Um zu verhindern, dass Tausende von Zeilen ausgegeben werden, möchten Sie vielleicht eine beschränkte Anzahl zu scannender Ports angeben, z\&.B\&. mit +\fB\-p20\-30\fR\&. Wenn Sie nur wissen möchten, was im Versionserkennungssubsystem vor sich geht, benutzen Sie stattdessen +\fB\-\-version\-trace\fR\&. Wenn Sie nur an einer Script\-Mitverfolgung interessiert sind, geben Sie +\fB\-\-script\-trace\fR +an\&. Mit +\fB\-\-packet\-trace\fR +erhalten Sie all das zusammen\&. +.RE +.PP +\fB\-\-open\fR (zeige nur offene (oder möglicherweise offene) Ports an) +.RS 4 +Manchmal interessieren Sie sich nur für Ports, mit denen Sie tatsächlich eine Verbindung herstellen können (offene +Ports), und wollen Ihre Ergebnisse nicht mit anderen Ports überhäufen, die +geschlossen, +gefiltert +und +geschlossen|gefiltert +sind\&. Die Ausgabe wird normalerweise nach dem Scan mit Werkzeugen wie +grep, +awk +und +Perl +angepasst, aber dieses Merkmal wurde auf überwältigend vielfachen Wunsch hinzugefügt\&. Geben Sie +\fB\-\-open\fR +an, um nur +offene, +offene|gefilterte +und +ungefilterte +Ports zu sehen\&. Diese drei Ports werden ganz wie gewöhnlich behandelt, d\&.h\&. dass +offen|gefiltert +und +ungefiltert +in Zählungen zusammengefasst werden, wenn es eine sehr große Anzahl davon gibt\&. +.RE +.PP +\fB\-\-iflist\fR (liste Schnittstellen und Routen auf) +.RS 4 +Gibt die Liste der Schnittstellen und Systemrouten aus, die Nmap entdeckt hat\&. Das ist hilfreich bei der Fehlersuche bei Routing\-Problemen oder fehlerhaften Gerätebeschreibungen (z\&.B\&. wenn Nmap eine PPP\-Verbindung als Ethernet behandelt)\&. +.RE +.PP +\fB\-\-log\-errors\fR (protokolliere Fehler/Warnungen in eine Datei im normalen Ausgabeformat) +.RS 4 +Von Nmap ausgegebene Warnungen und Fehlermeldungen gehen normalerweise nur auf den Bildschirm (interaktive Ausgabe), was die Ordnung aller Ausgabedateien im normalen Format (üblicherweise mit +\fB\-oN\fR +angegeben) nicht stört\&. Wenn Sie diese Meldungen in den angegebenen normalen Ausgabedateien wirklich sehen möchten, können Sie diese Option benutzen\&. Diese ist dann hilfreich, wenn Sie die interaktive Ausgabe nicht übersehen oder wenn Sie Fehler beim Debugging speichern möchten\&. Die Fehlermeldungen und Warnungen werden auch im interaktiven Modus weiterhin erscheinen\&. Bei den meisten Fehlern bezüglich schlechter Kommandozeilenargumente wird das nicht funktionieren, da Nmap seine Ausgabedateien eventuell noch nicht initialisiert hat\&. Außerdem benutzen einige Nmap\-Fehlermeldungen und \-Warnungen ein anderes System, das diese Option noch nicht unterstützt\&. +.sp +Eine Alternative zu +\fB\-\-log\-errors\fR +ist die Umleitung der interaktiven Ausgabe (inklusive des Standardfehlerstroms) in eine Datei\&. Die meisten Unix\-Shells machen einem diesen Ansatz leicht, aber auf Windows kann er schwierig sein\&. +.RE +.PP +\fBWeitere Ausgabeoptionen\fR +.PP +\fB\-\-append\-output\fR (an Ausgabedateien hinzufügen, statt sie zu überschreiben) +.RS 4 +Wenn Sie einen Dateinamen für ein Ausgabeformat wie z\&.B\&. +\fB\-oX\fR +oder +\fB\-oN\fR +angeben, wird diese Datei standardmäßig überschrieben\&. Wenn Sie deren Inhalt lieber behalten und die neuen Ergebnisse anhängen möchten, benutzen Sie die Option +\fB\-\-append\-output\fR\&. Dann wird bei allen angegebenen Ausgabedateinamen dieses Nmap\-Aufrufs an die Dateien angehängt, statt sie zu überschreiben\&. Mit XML\-Scandaten (\fB\-oX\fR) funktioniert das nicht so gut, da die erzeugte Datei im Allgemeinen nicht mehr sauber geparst wird, es sei denn, Sie reparieren sie von Hand\&. +.RE +.PP +\fB\-\-resume \fR\fB\fIfilename\fR\fR (abgebrochenen Scan fortsetzen) +.RS 4 +Manche umfangreichen Nmap\-Läufe benötigen sehr viel Zeit – in der Größenordnung von Tagen\&. Solche Scans laufen nicht immer bis zum Ende\&. Vielleicht gibt es Beschränkungen, die verhindern, dass man Nmap während der normalen Arbeitszeit ausführen kann, das Netzwerk könnte abstürzen, der Rechner, auf dem Nmap läuft, könnte einen geplanten oder ungeplanten Neustart erleben oder Nmap selbst könnte abstürzen\&. Der Administrator, der Nmap ausführt, könnte es auch aus irgendeinem anderen Grund abbrechen, indem er +ctrl\-C +eingibt\&. Und den ganzen Scan von vorne neu zu starten, ist eventuell nicht wünschenswert\&. Wenn ein normales (\fB\-oN\fR) oder ein grepbares (\fB\-oG\fR) Protokoll geführt wurde, kann der Benutzer Nmap jedoch bitten, den Scan bei dem Ziel fortzusetzen, an dem es beim Abbruch gearbeitet hat\&. Geben Sie einfach die Option +\fB\-\-resume\fR +an und übergeben Sie die normale/grepbare Ausgabedatei als Argument\&. Andere Argumente sind nicht erlaubt, da Nmap die Ausgabedatei parst, um dieselben Argumente zu benutzen, die zuvor benutzt wurden\&. Rufen Sie Nmap einfach als +\fBnmap \-\-resume \fR\fB\fIlogfilename\fR\fR +auf\&. Nmap fügt neue Ergebnisse dann an die Datendateien an, die im vorherigen Lauf angegeben wurden\&. Diese Fortsetzung funktioniert nicht aus XML\-Ausgabedateien, weil es schwierig wäre, die zwei Läufe in einer gültigen XML\-Datei zu kombinieren\&. +.RE +.PP +\fB\-\-stylesheet \fR\fB\fIpath or URL\fR\fR (setze XSL\-Stylesheet, um eine XML\-Ausgabe zu transformieren) +.RS 4 +Die Nmap\-Distribution enthält ein XSL\-Stylesheet + +namens +nmap\&.xsl + +zum Betrachten oder Übersetzen einer XML\-Ausgabe nach HTML\&. + +Die XML\-Ausgabe enthält eine +xml\-stylesheet\-Anweisung, die auf +nmap\&.xml +an der Stelle verweist, wo es von Nmap ursprünglich installiert wurde (oder im aktuellen Arbeitsverzeichnis unter Windows)\&. Laden Sie einfach Nmaps XML\-Ausgabe in einem modernen Webbrowser, und er sollte +nmap\&.xsl +im Dateisystem finden und benutzen, um die Ergebnisse darzustellen\&. Wenn Sie ein anderes Stylesheet benutzen möchten, geben Sie es als Argument für +\fB\-\-stylesheet\fR +an\&. Dabei müssen Sie den vollständigen Pfadnamen oder die URL angeben\&. Sehr häufig wird +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR +benutzt\&. Das sagt einem Browser, dass er die neueste Version des Stylesheets von Nmap\&.Org laden soll\&. Die Option +\fB\-\-webxml\fR +macht dasselbe, verlangt aber weniger Tipparbeit und Merkfähigkeit\&. Wenn man das XSL von Nmap\&.Org lädt, wird es einfacher, die Ergebnisse auf einem Rechner anzuschauen, auf dem kein Nmap (und folglich auch kein +nmap\&.xsl) installiert ist\&. Daher ist die URL oft nützlicher, doch aus Datenschutzgründen wird standardmäßig das +nmap\&.xsl +im lokalen Dateisystem benutzt\&. +.RE +.PP +\fB\-\-webxml\fR (lade Stylesheet von Nmap\&.Org) +.RS 4 +Diese bequeme Option ist nur ein Alias für +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (lasse XSL\-Stylesheet\-Deklaration im XML weg) +.RS 4 +Geben Sie diese Option an, wenn Nmap in seiner XML\-Ausgabe auf keinerlei XSL\-Stylesheet verweisen soll\&. Die +xml\-stylesheet\-Anweisung wird dann weggelassen\&. +.RE +.SH "VERSCHIEDENE OPTIONEN" +.PP +Dieser Abschnitt beschreibt einige wichtige (und weniger wichtige) Optionen, für die es keinen anderen richtig passenden Ort gibt\&. +.PP +\fB\-6\fR (schaltet IPv6\-Scans ein) +.RS 4 +Seit 2002 unterstützt Nmap bei seinen beliebtesten Features IPv6\&. Insbesondere das Ping\-Scanning (nur für TCP), Connect\-Scanning und die Versionserkennung unterstützen IPv6\&. Die Befehlssyntax ist die übliche, nur dass man auch die Option +\fB\-6\fR +angibt\&. Natürlich müssen Sie die IPv6\-Syntax angeben, wenn Sie eine Adresse statt eines Hostnamens angeben\&. Eine Adresse könnte wie folgt aussehen: +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, d\&.h\&. es empfehlen sich Hostnamen\&. Die Ausgabe sieht genauso aus wie üblich\&. Nur die IPv6\-Adresse in der Zeile der +„interessanten Ports\(lq +deutet auf IPv6\&. +.sp +Zwar hat IPv6 die Welt nicht gerade im Sturm erobert, aber in einigen (besonders asiatischen) Ländern wird es stark eingesetzt, und von den meisten modernen Betriebssystemen wird es unterstützt\&. Um Nmap mit IPv6 zu benutzen, müssen sowohl die Quelle als auch das Ziel Ihres Scans für IPv6 konfiguriert sein\&. Falls Ihnen Ihr ISP (so wie die meisten) keine IPv6\-Adressen bereitstellt, gibt es frei verfügbare sogenannte Tunnel\-Broker, +die mit Nmap funktionieren\&. Weitere Tunnel\-Broker sind +\m[blue]\fBin Wikipedia aufgelistet\fR\m[]\&\s-2\u[12]\d\s+2\&. Ein weiterer freier Ansatz sind 6to4\-Tunnels\&. +.RE +.PP +\fB\-A\fR (aggressive Scan\-Optionen) +.RS 4 +Diese Option schaltet zusätzlich erweiterte und aggressive Optionen ein\&. Ich habe noch nicht entschieden, wofür sie genau steht\&. Im Moment schaltet sie die Betriebssystemerkennung (\fB\-O\fR), die Versionserkennung (\fB\-sV\fR), das Scannen mit Scripts (\fB\-sC\fR) und traceroute (\fB\-\-traceroute\fR) ein\&. + +In der Zukunft kommen vielleicht noch weitere Eigenschaften hinzu\&. Ziel ist es, einen umfassenden Satz von Scan\-Optionen zu aktivieren, ohne dass man sich viele Flags merken muss\&. Weil aber das scriptbasierte Scannen mit dem Standardsatz als aufdringlich betrachtet wird, sollten Sie +\fB\-A\fR +nicht ohne Genehmigung auf Zielnetzwerke loslassen\&. Diese Option aktiviert nur Eigenschaften, aber keine Optionen für das Timing (z\&.B\&. +\fB\-T4\fR) oder die Ausführlichkeit (\fB\-v\fR), die Sie eventuell auch benutzen möchten\&. +.RE +.PP +\fB\-\-datadir \fR\fB\fIdirectoryname\fR\fR (gibt benutzerdefinierten Ort für Nmap\-Datendateien an) +.RS 4 +Nmap erhält einige spezielle Daten zur Laufzeit aus Dateien namens +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes +und +nmap\-os\-db\&. Falls der Ort einer dieser Dateien angegeben wurde (mit den Optionen +\fB\-\-servicedb\fR +oder +\fB\-\-versiondb\fR), wird dieser Ort für diese Datei benutzt\&. Danach sucht Nmap diese Dateien im Verzeichnis, das mit der Option +\fB\-\-datadir\fR +angegeben wurde (sofern vorhanden)\&. Dateien, die dort nicht gefunden werden, werden in einem Verzeichnis gesucht, das durch die Umgebungsvariable NMAPDIR angegeben wird\&. Danach kommt +~/\&.nmap +für echte und effektive UIDs (nur bei POSIX\-Systemen) oder der Ort des ausführbaren Nmap\-Programms (nur unter Win32) und dann ein bei der Kompilierung angegebener Ort wie z\&.B\&. +/usr/local/share/nmap +oder +/usr/share/nmap\&. Als letzte Rettung sucht Nmap im aktuellen Arbeitsverzeichnis\&. +.RE +.PP +\fB\-\-servicedb \fR\fB\fIservices file\fR\fR (gibt benutzerdefinierte Dienstedatei an) +.RS 4 +Verlangt von Nmap, die angegebene Dienstedatei zu benutzen statt der Datendatei +nmap\-services, die in Nmap enthalten ist\&. Bei dieser Option wird außerdem auch ein schneller Scan (\fB\-F\fR) benutzt\&. Weitere Details zu Nmaps Datendateien finden Sie in der Beschreibung zu +\fB\-\-datadir\fR\&. +.RE +.PP +\fB\-\-versiondb \fR\fB\fIservice probes file\fR\fR (gibt benutzerdefinierte Dienstepakete an) +.RS 4 +Verlangt von Nmap, die angegebene Dienstepaketedatei zu benutzen statt der Datendatei +nmap\-service\-probes, die in Nmap enthalten ist\&. Weitere Details zu Nmaps Datendateien finden Sie in der Beschreibung zu +\fB\-\-datadir\fR\&. +.RE +.PP +\fB\-\-send\-eth\fR (sendet rohe Ethernet\-Pakete) +.RS 4 +Verlangt von Nmap, Pakete auf der rohen Ethernet\-(Datenlink\-)Schicht zu schicken, statt auf der höheren IP\-(Netzwerk\-)Schicht\&. Nmap wählt standardmäßig diejenige, die im Allgemeinen die beste für die gegebene Plattform ist\&. Rohe Sockets (IP\-Schicht) +sind im Allgemeinen auf Unix\-Rechnern am effizientesten, während unter Windows Ethernet\-Rahmen benötigt werden, da Microsoft keine rohen Sockets unterstützt\&. Trotz dieser Option benutzt Nmap rohe IP\-Pakete unter Unix, wenn es keine andere Wahl hat (z\&.B\&. Verbindungen über etwas anderes als Ethernet)\&. +.RE +.PP +\fB\-\-send\-ip\fR (sendet auf der rohen IP\-Schicht) +.RS 4 +Verlangt von Nmap, Pakete über rohe IP\-Sockets zu senden, statt über low\-level Ethernet\-Rahmen\&. Diese Option ist das Komplement zur weiter oben beschriebenen Option +\fB\-\-send\-eth\fR\&. +.RE +.PP +\fB\-\-privileged\fR (nimmt an, dass der Benutzer alle Sonderrechte genießt) +.RS 4 +Sagt Nmap, dass es davon ausgehen soll, dass es über genügend Rechte verfügt, um über rohe Sockets zu senden, Paket\-Sniffing und ähnliche Operationen zu betreiben, die auf Unix\-Rechnern normalerweise root\-Rechte +benötigen\&. Standardmäßig terminiert Nmap, wenn solche Operationen verlangt werden, aber +\fBgeteuid\fR +nicht null ist\&. +\fB\-\-privileged\fR +ist nützlich bei Linux\-Kernel\-Capabilities und ähnlichen Systemen, die so konfiguriert sein können, dass sie Benutzern ohne Sonderrechte erlauben, rohe Paket\-Scans durchzuführen\&. Vergewissern Sie sich, dass Sie diese Option vor weiteren Optionen angeben, die Sonderrechte benötigen (SYN\-Scan, Betriebssystemerkennung usw\&.)\&. Als äquivalente Alternative zur Option +\fB\-\-privileged\fR +kann die Umgebungsvariable +\fBNMAP_PRIVILEGED\fR +gesetzt werden\&. +.RE +.PP +\fB\-\-unprivileged\fR (nimmt an, dass der Benutzer keine Sonderrechte für rohe Sockets genießt) +.RS 4 +Diese Option ist das Gegenteil von +\fB\-\-privileged\fR\&. Sie sagt Nmap, dass es den Benutzer so behandeln soll, als genösse er keine Sonderrechte für rohe Sockets und Sniffing\&. Das ist nützlich beim Testen, Debugging oder falls die Möglichkeiten des rohen Netzwerkzugriffs auf Ihrem Betriebssystem vorübergehend irgendwie defekt sind\&. Als äquivalente Alternative zur Option +\fB\-\-unprivileged\fR +kann die Umgebungsvariable +\fBNMAP_UNPRIVILEGED\fR +gesetzt werden\&. +.RE +.PP +\fB\-\-release\-memory\fR (gibt Speicher vor Terminierung frei) +.RS 4 +Diese Option ist nur bei der Suche nach Speicherlecks nützlich\&. Sie bewirkt, dass Nmap den von ihm belegten Speicher direkt vor seiner Terminierung freigibt, damit man echte Speicherlecks einfacher finden kann\&. Normalerweise macht Nmap das nicht, weil es das Betriebssystem ohnehin macht, wenn es den Prozess terminiert\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (gibt Versionsnummer aus) +.RS 4 +Gibt Nmaps Versionsnummer aus und terminiert\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (gibt zusammengefasste Hilfeseite aus) +.RS 4 +Gibt eine kurze Hilfeseite mit den am meisten benutzten Optionen aus\&. Sie kommt auch dann, wenn man Nmap ganz ohne Argumente startet\&. +.RE +.SH "LAUFZEIT\-INTERAKTION" +.PP +Während der Ausführung von Nmap wird jeder Tastendruck abgefangen\&. Das ermöglicht Ihnen, mit dem Programm zu interagieren, ohne es abzubrechen und neu zu starten\&. Bestimmte Spezialtasten ändern Optionen, während alle anderen Tasten eine Statusmeldung über den Scan ausgeben\&. Konvention ist, dass der Ausgabeumfang durch +\fIKleinbuchstaben vergrößert\fR +und durch +\fIGroßbuchstaben verkleinert\fR +wird\&. Sie können auch \(oq\fI?\fR\(cq drücken, um eine Hilfe zu erhalten\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Vergrößert/verkleinert die Ausführlichkeit +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Vergrößert/verkleinert die Debugging\-Stufe +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Schaltet Paketverfolgung ein/aus +.RE +.PP +\fB?\fR +.RS 4 +Gibt einen Hilfeschirm zur Laufzeit\-Interaktion aus +.RE +.PP +Alles andere +.RS 4 +Gibt eine Statusmeldung wie die folgende aus: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "BEISPIELE" +.PP +Hier sind einige Anwendungsbeispiele für Nmap, von einfachen und routinemäßigen bis zu etwas komplexeren und esoterischen\&. Um die Sache etwas konkreter zu machen, werden einige echte IP\-Adressen und Domainnamen benutzt\&. Diese sollten Sie mit Adressen/Namen aus +\fIIhrem eigenen Netzwerk\fR +ersetzen\&. Auch wenn ich nicht der Meinung bin, dass Port\-Scans anderer Netzwerke illegal sind oder sein sollten, mögen manche Netzwerkadministratoren es nicht, wenn ihre Netzwerke unverlangt gescannt werden, und könnten sich beschweren\&. Der beste Ansatz ist der, sich zuerst eine Genehmigung zu verschaffen\&. +.PP +Zu Testzwecken haben Sie die Genehmigung, den Host +scanme\&.nmap\&.org +zu scannen\&. Diese Genehmigung gilt nur für das Scannen mit Nmap und nicht für das Testen von Exploits oder Denial\-of\-Service\-Angriffen\&. Bitte führen Sie nicht mehr als ein Dutzend Scans pro Tag auf diesem Host durch, um die Bandbreite nicht zu erschöpfen\&. Falls diese freie Dienstleistung missbraucht wird, wird sie abgeschaltet, und Nmap wird dann +Failed to resolve given hostname/IP: scanme\&.nmap\&.org +ausgeben\&. Diese Genehmigung gilt auch für die Hosts +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org +usw\&., auch wenn diese Hosts noch nicht existieren\&. +.PP + +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Diese Option scannt alle reservierten TCP\-Ports auf dem Rechner +scanme\&.nmap\&.org\&. Die Option +\fB\-v\fR +schaltet den ausführlichen Modus an\&. +.PP + + +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Startet einen Stealth\-SYN\-Scan auf allen aktiven Rechnern unter den 256 IPs im Netzwerk der Größe +„Klasse C\(lq, in dem Scanme sitzt\&. Es versucht auch herauszufinden, welches Betriebssystem auf jedem aktiven Host läuft\&. Wegen des SYN\-Scans und der Betriebssystemerkennung sind dazu root\-Rechte notwendig\&. +.PP + +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Startet eine Host\-Auflistung und einen TCP\-Scan in der ersten Hälfte von allen 255 möglichen acht\-Bit\-Unternetzen im Klasse\-B\-Adressraum 198\&.116\&. Dabei wird getestet, ob die Systeme SSH, DNS, POP3 oder IMAP auf ihren Standardports laufen haben oder irgendetwas auf Port 4564\&. Falls einer dieser Ports offen ist, wird eine Versionserkennung benutzt, um festzustellen, welche Anwendung darauf läuft\&. +.PP + + +\fBnmap \-v \-iR 100000 \-PN \-p 80\fR +.PP +Verlangt von Nmap, 100\&.000 Hosts zufällig auszuwählen und sie nach Webservern (Port 80) zu scannen\&. Eine Host\-Auflistung wird mit +\fB\-PN\fR +unterbunden, weil es Verschwendung ist, zuerst eine Reihe von Testpaketen zu senden, um festzustellen, ob ein Host aktiv ist, wenn Sie auf jedem Zielhost ohnehin nur einen Port testen\&. +.PP + + +\fBnmap \-PN \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Das scannt 4096 IPs nach Webservern (ohne sie anzupingen) und speichert die Ausgabe im grepbaren und im XML\-Format\&. +.SH "DAS NMAP\-BUCH" +.PP +Auch wenn dieser Reference Guide alle wesentlichen Nmap\-Optionen genau beschreibt, kann er nicht vollständig zeigen, wie man diese Features anwendet, um Aufgaben der realen Welt zu lösen\&. Zu diesem Zweck haben wir das Buch +Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning\&. +Es zeigt, wie man Firewalls und Intrusion Detection\-Systeme unterwandert, die Performance von Nmap optimiert, und wie man häufige Netzwerkaufgaben mit der Nmap Scripting Engine automatisiert\&. Außerdem enthält es Tipps und Anleitungen für häufige Nmap\-Aufgaben wie die Netzwerkinventarisierung, Penetrationstests, die Erkennung schurkischer Wireless Access Points und das Verhindern von Wurmausbrüchen im Netzwerk\&. Dabei zeigt es mit Beispielen und Diagrammen, wie die Kommunikation auf der Leitung aussieht\&. Mehr als die Hälfte des Buches ist online frei verfügbar\&. Weitere Informationen finden Sie unter +\m[blue]\fB\%https://nmap.org/book\fR\m[]\&. +.PP +Die deutsche Übersetzung dieses Buches von Dinu Gherman ist im Mai 2009 unter dem Titel +\m[blue]\fBNmap: Netzwerke scannen, analysieren und absichern\fR\m[]\&\s-2\u[14]\d\s+2 +im +\m[blue]\fBOpen Source Press\fR\m[]\&\s-2\u[15]\d\s+2\-Verlag erschienen\&. +.SH "FEHLER" +.PP +Wie sein Autor ist auch Nmap selbst nicht perfekt\&. Aber Sie können helfen, es zu verbessern, indem Sie Fehlerberichte schicken oder sogar Patches schreiben\&. Falls Nmap sich nicht wie erwartet verhält, sollten Sie zuerst auf die neueste Version aktualisieren, die unter +\m[blue]\fB\%https://nmap.org\fR\m[] +verfügbar ist\&. Wenn das Problem anhält, versuchen Sie herauszufinden, ob es bereits erkannt und bearbeitet wurde\&. Suchen Sie nach der Fehlermeldung auf unserer Suchseite unter +\m[blue]\fB\%https://insecure.org/search.html\fR\m[] +oder bei Google\&. Stöbern Sie in den +nmap\-dev\-Archiven unter +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. +Lesen Sie auch diese Manpage vollständig\&. Wenn Sie keine Lösung finden, schicken Sie einen Fehlerbericht per E\-Mail an +<dev@nmap\&.org>\&. Beschreiben Sie darin bitte alles, was Sie über das Problem wissen, inklusive der Nmap\-Version und der Betriebssystemversion, unter der Sie Nmap einsetzen\&. Berichte von Problemen und Fragen zur Anwendung von Nmap werden sehr viel wahrscheinlicher beantwortet, wenn sie an +<dev@nmap\&.org> +geschickt werden statt direkt an Fyodor\&. Wenn Sie sich erst auf der nmap\-dev\-Liste eintragen, bevor Sie Ihre E\-Mail schicken, entgeht Ihre Nachricht auch der Moderation und kommt schneller an\&. Eintragen können Sie sich unter +\m[blue]\fB\%https://nmap.org/mailman/listinfo/dev\fR\m[]\&. +.PP +Code\-Patches zur Behebung von Fehlern sind noch besser als Fehlerberichte\&. Eine einfache Anweisung für die Erstellung von Patch\-Dateien mit Ihren Änderungen ist unter +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[] +verfügbar\&. Patches können an +nmap\-dev +(empfohlen) oder direkt an Fyodor geschickt werden\&. +.SH "AUTOR" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%https://insecure.org\fR\m[]) +.PP +Über die Jahre haben hunderte von Menschen wertvolle Beiträge zu Nmap geleistet\&. Sie sind detailliert in der Datei +CHANGELOG +aufgeführt, die mit dem Nmap\-Quellcode verbreitet wird und auch unter +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[] +verfügbar ist\&. +.SH "" +.PP +Sorry, this section has not yet been translated to German\&. Please see the +\m[blue]\fBEnglish version\fR\m[]\&\s-2\u[16]\d\s+2\&. +.SH "FUßNOTEN" +.IP " 1." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 2." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 3." 4 +RFC 1918 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1918.txt +.RE +.IP " 4." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 5." 4 +TCP RFC +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 6." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 7." 4 +RFC 1323 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1323.txt +.RE +.IP " 8." 4 +Programmiersprache Lua +.RS 4 +\%http://lua.org +.RE +.IP " 9." 4 +IP-Protokoll +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc791.txt +.RE +.IP "10." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP "11." 4 +Nmap::Parser +.RS 4 +\%http://nmapparser.wordpress.com/ +.RE +.IP "12." 4 +in Wikipedia aufgelistet +.RS 4 +\%http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers +.RE +.IP "13." 4 +Nmap Network Scanning: The Official +Nmap Project Guide to Network Discovery and Security +Scanning +.RS 4 +\%https://nmap.org/book/ +.RE +.IP "14." 4 +Nmap: Netzwerke scannen, analysieren und absichern +.RS 4 +\%https://www.opensourcepress.de/index.php?26&backPID=178&tt_products=270 +.RE +.IP "15." 4 +Open Source Press +.RS 4 +\%http://www.opensourcepress.de +.RE +.IP "16." 4 +English version +.RS 4 +\%https://nmap.org/book/man-legal.html +.RE diff --git a/docs/man-xlate/nmap-es.1 b/docs/man-xlate/nmap-es.1 new file mode 100644 index 0000000..20374f3 --- /dev/null +++ b/docs/man-xlate/nmap-es.1 @@ -0,0 +1,1820 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "Autor" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 17/05/2023 +.\" Manual: Guía de referencia de Nmap +.\" Source: Nmap +.\" Language: Spanish +.\" +.TH "NMAP" "1" "17/05/2023" "Nmap" "Guía de referencia de Nmap" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NOMBRE" +nmap \- Herramienta de exploración de redes y de sondeo de seguridad / puertos +.SH "SINOPSIS" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fITipo\ de\ sondeo\fR...] [\fIOpciones\fR] {\fIespecificación\ de\ objetivo\fR} +.SH "DESCRIPCIÓN" +.PP +Nmap (\(lqmapeador de redes\(rq) es una herramienta de código abierto para exploración de red y auditoría de seguridad\&. Se diseñó para analizar rápidamente grandes redes, aunque funciona muy bien contra equipos individuales\&. Nmap utiliza paquetes IP "crudos" («raw», N\&. del T\&.) en formas originales para determinar qué equipos se encuentran disponibles en una red, qué servicios (nombre y versión de la aplicación) ofrecen, qué sistemas operativos (y sus versiones) ejecutan, qué tipo de filtros de paquetes o cortafuegos se están utilizando así como docenas de otras características\&. Aunque generalmente se utiliza Nmap en auditorías de seguridad, muchos administradores de redes y sistemas lo encuentran útil para realizar tareas rutinarias, como puede ser el inventariado de la red, la planificación de actualización de servicios y la monitorización del tiempo que los equipos o servicios se mantiene activos\&. +.PP +La salida de Nmap es un listado de objetivos analizados, con información adicional para cada uno dependiente de las opciones utilizadas\&. La información primordial es la +\(lqtabla de puertos interesantes\(rq\&. Dicha tabla lista el número de puerto y protocolo, el nombre más común del servicio, y su estado\&. El estado puede ser +open +(abierto), +filtered +(filtrado), +closed +(cerrado), o +unfiltered +(no filtrado)\&. Abierto significa que la aplicación en la máquina destino se encuentra esperando conexiones o paquetes en ese puerto\&. +Filtrado +indica que un cortafuegos, filtro, u otro obstáculo en la red está bloqueando el acceso a ese puerto, por lo que Nmap no puede saber si se encuentra +abierto +o +cerrado\&. Los puertos +cerrados +no tienen ninguna aplicación escuchando en los mismos, aunque podrían abrirse en cualquier momento\&. Los clasificados como +no filtrados +son aquellos que responden a los sondeos de Nmap, pero para los que que Nmap no puede determinar si se encuentran abiertos o cerrados\&. Nmap informa de las combinaciones de estado +open|filtered +y +closed|filtered +cuando no puede determinar en cual de los dos estados está un puerto\&. La tabla de puertos también puede incluir detalles de la versión de la aplicación cuando se ha solicitado detección de versiones\&. Nmap ofrece información de los protocolos IP soportados, en vez de puertos abiertos, cuando se solicita un análisis de protocolo IP con la opción (\fB\-sO\fR)\&. +.PP +Además de la tabla de puertos interesantes, Nmap puede dar información adicional sobre los objetivos, incluyendo el nombre de DNS según la resolución inversa de la IP, un listado de sistemas operativos posibles, los tipos de dispositivo, y direcciones MAC\&. +.PP +Puede ver un análisis típico con Nmap en +Ejemplo 1, \(lqEjemplo típico de análisis con Nmap\(rq\&. Los únicos parámetros de Nmap que se utilizan en este ejemplo son la opción +\fB\-A\fR, que habilita la detección de sistema operativo y versión, y la opción +\fB\-T4\fR +que acelerar el proceso, y después el nombre de los dos objetivos\&. +.PP +\fBEjemplo 1. Ejemplo típico de análisis con Nmap\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org saladejuegos + +Starting nmap ( https://nmap\&.org/ ) +Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X +OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11 +Uptime 33\&.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on saladejuegos\&.nmap\&.org (192\&.168\&.0\&.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios\-ssn +389/tcp open ldap? +445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds +1002/tcp open windows\-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper +5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3\&.8) +MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds +.fi +.if n \{\ +.RE +.\} +.PP +Puede obtener la versión más reciente de Nmap en +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. La versión más reciente de la página de manual está disponible en +\m[blue]\fB\%https://nmap.org/man/\fR\m[]\&. +.SH "NOTAS DE LA TRADUCCIÓN" +.PP +Esta edición de la Guía de referencia de Nmap ha sido traducida de la versión 3137 de la +\m[blue]\fBversión original en inglés\fR\m[]\&\s-2\u[1]\d\s+2 +por Arturo Busleiman +<buanzo_AT_buanzo\&.com\&.ar>, Pablo Fernández +<pablo_AT_littleQ\&.net> +y Javier Fernández\-Sanguino +<jfs_AT_computer\&.org>\&. Aunque nuestra intención es hacer Nmap más accesible a los lectores españoles en todo el mundo no podemos garantizar que esta traducción está tan actualizada o completa como la versión oficial en inglés\&. Este trabajo puede ser modificado y redistribuido bajo los términos de la +\m[blue]\fBLicencia Creative Commons Atribución\fR\m[]\&\s-2\u[2]\d\s+2\&. +.PP +Esta traducción ha sido adaptada al español como se habla en España (localización «es_ES») por Javier Fernández\-Sanguino\&. Cualquier comentario o errata sobre esta traducción debe enviarse a Javier Fernández\-Sanguino a la dirección arriba indicada\&. El coordinador de la traducción quiere agradecer el esfuerzo de revisión realizado por Jesús Escoredo\&. +.SS "Glosario de traducción" +.PP +A continuación se listan las traducciones utilizadas a los términos originales en inglés en este documento, es decir, el glosario utilizado en este documento: +.PP +\fIDecoy\fR +.RS 4 +Traducido con el término «señuelo»\&. +.RE +.PP +\fIFingerprinting\fR +.RS 4 +«Identificación por huellas» (se entiende digitales), se utilizado conjuntamente con la detección de sistema operativo por lo que a veces se utiliza éste o se reduce a «identificación»\&. +.RE +.PP +\fIHost\fR +.RS 4 +Traducido habitualmente como «equipo» o «sistema»\&. +.RE +.PP +\fIPort scan\fR +.RS 4 +Barrido de puertos\&. +.RE +.PP +\fI(to) Probe\fR +.RS 4 +Traducido con el término «sondear» (o «sonda»)\&. +.RE +.PP +\fI(to) Scan\fR +.RS 4 +Traducido como «sondear» (o «sondeo») o «análizar» (o «análisis»), no se utiliza «escanear» (o «escaneo») ya que éste término es, literalmente +\(lqpasar por el escáner\(rq\&. +.RE +.PP +\fI(To) Spoof\fR +.RS 4 +Traducido por «falsificar»\&. +.RE +.PP +Existen otros términos que puedan aparecer en el documento traducidos pero cuya traducción es ambigua\&. En este caso las traducciones se introducen en el texto acompañadas de notas de traducción (mostradas como «N\&. del T\&.») indicando el término original la primera vez que éste aparezca en el texto\&. +.PP +Nótese que éste glosario difiere en algunos términos del utilizado para otras traducciones, como la traducción realizada por Marbo Babosa del artículo +\m[blue]\fBDeteccion Remota de SO via Reconocimiento de Pila TCP/IP\fR\m[]\&\s-2\u[3]\d\s+2 +(documento traducido al español como se habla en México)\&. +.SH "RESUMEN DE OPCIONES" +.PP +Cuando se ejecuta Nmap sin parámetros se muestra este resumen de opciones\&. Puede encontrar siempre la última versión en +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]\&. Aunque ayuda a recordar las opciones más habituales no es un sustituto de la documentación en detalle que acompaña al resto de este manual\&. Algunas de las opciones menos conocidas no se incluyen aquí\&. +.PP +.if n \{\ +.RS 4 +.\} +.nf +Uso: nmap [Tipo(s) de Análisis] [Opciones] {especificación de objetivos} +ESPECIFICACIÓN DE OBJETIVO: + Se pueden indicar nombres de sistema, direcciones IP, redes, etc\&. + Ej: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\&.0\-255\&.1\-254 + \-iL <archivo_entrada>: Lee una lista de sistemas/redes del archivo\&. + \-iR <número de sistemas>: Selecciona objetivos al azar + \-\-exclude <sist1[,sist2][,sist3],\&.\&.\&.>: Excluye ciertos sistemas o redes + \-\-excludefile <fichero_exclusión>: Excluye los sistemas indicados en el fichero +DESCUBRIMIENTO DE HOSTS: + \-sL: Sondeo de lista \- Simplemente lista los objetivos a analizar + \-sP: Sondeo Ping \- Sólo determina si el objetivo está vivo + \-P0: Asume que todos los objetivos están vivos + \-PS/PA/PU [listadepuertos]: Análisis TCP SYN, ACK o UDP de los puertos indicados + \-PE/PP/PM: Solicita un análisis ICMP del tipo echo, marca de fecha y máscara de red + \-n/\-R: No hacer resolución DNS / Siempre resolver [por omisión: a veces] + \-\-dns\-servers <serv1[,serv2],\&.\&.\&.>: Especificar servidores DNS específicos + \-\-system\-dns: Utilizar la resolución del sistema operativo +TÉCNICAS DE ANÁLISIS: + \-sS/sT/sA/sW/sM: Análisis TCP SYN/Connect()/ACK/Window/Maimon + \-sN/sF/sX: Análisis TCP Null, FIN, y Xmas + \-\-scanflags <indicador>: Personalizar los indicadores TCP a utilizar + \-sI <sistema zombi[:puerto_sonda]>: Análisis pasivo («Idle», N\&. del T\&.) + \-sO: Análisis de protocolo IP + \-b <servidor ftp rebote>: Análisis por rebote FTP +ESPECIFICACIÓN DE PUERTOS Y ORDEN DE ANÁLISIS: + \-p <rango de puertos>: Sólo sondear los puertos indicados + Ej: \-p22; \-p1\-65535; \-p U:53,111,137,T:21\-25,80,139,8080 + \-F: Rápido \- Analizar sólo los puertos listados en el archivo nmap\-services + \-r: Analizar los puertos secuencialmente, no al azar\&. +DETECCIÓN DE SERVICIO/VERSIÓN: + \-sV: Sondear puertos abiertos, para obtener información de servicio/versión + \-\-version\-intensity <nivel>: Fijar de 0 (ligero) a 9 (probar todas las sondas) + \-\-version\-light: Limitar a las sondas más probables (intensidad 2) + \-\-version\-all: Utilizar todas las sondas (intensidad 9) + \-\-version\-trace: Presentar actividad detallada del análisis (para depurar) + DETECCIÓN DE SISTEMA OPERATIVO + \-O: Activar la detección de sistema operativo (SO) + \-\-osscan\-limit: Limitar la detección de SO a objetivos prometedores + \-\-osscan\-guess: Adivinar el SO de la forma más agresiva +TEMPORIZADO Y RENDIMIENTO: + \-T[0\-5]: Seleccionar plantilla de temporizado (los números altos son más rápidos) + \-\-min\-hostgroup/max\-hostgroup <tamaño>: Paralelizar los sondeos + \-\-min\-parallelism/max\-parallelism <numsondas>: Paralelización de sondeos + \-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msegs>: Indica + el tiempo de ida y vuelta de la sonda + \-\-max\-retries <reintentos>: Limita el número máximo de retransmisiones de las + sondas de análisis de puertos + \-\-host\-timeout <msegs>: Abandonar un objetivo pasado este tiempo + \-\-scan\-delay/\-\-max\-scan\-delay <msegs>: Ajusta el retraso entre sondas +EVASIÓN Y FALSIFICACIÓN PARA CORTAFUEGOS/IDS: + \-f; \-\-mtu <valor>: fragmentar paquetes (opc\&. con el MTU indicado) + \-D <señuelo1,señuelo2[,ME],\&.\&.\&.>: Disimular el análisis con señuelos + N\&. del T\&.: «ME» es «YO» mismo\&. + \-S <Dirección_IP>: Falsificar la dirección IP origen + \-e <interfaz>: Utilizar la interfaz indicada + \-g/\-\-source\-port <numpuerto>: Utilizar el número de puerto dado + \-\-data\-length <num>: Agregar datos al azar a los paquetes enviados + \-\-ttl <val>: Fijar el valor del campo time\-to\-live (TTL) de IP + \-\-spoof\-mac <dirección mac/prefijo/nombre de fabricante>: Falsificar la dirección MAC + \-\-badsum: Enviar paquetes con una suma de comprobación TCP/UDP falsa +SALIDA: + \-oN/\-oX/\-oS/\-oG <file>: Guardar el sondeo en formato normal, XML, + s|<rIpt kIddi3 (n3n3b4n4n4), y Grepeable (para usar con grep(1), N\&. del T\&.), + respectivamente, al archivo indicado\&. + \-oA <nombre_base>: Guardar en los tres formatos principales al mismo tiempo + \-v: Aumentar el nivel de mensajes detallados (\-vv para aumentar el efecto) + \-d[nivel]: Fijar o incrementar el nivel de depuración (Tiene sentido hasta 9) + \-\-packet\-trace: Mostrar todos los paquetes enviados y recibidos + \-\-iflist: Mostrar interfaces y rutas (para depurar) + \-\-append\-output: Agregar, en vez de sobreescribir, a los archivos indicados con \-o\&. + \-\-resume <archivo>: Retomar un análisis abortado/detenido + \-\-stylesheet <ruta/URL>: Convertir la salida XML a HTML según la hoja de estilo + XSL indicada + \-\-webxml: Referenciar a la hoja de estilo de Insecure\&.Org para tener un XML más portable + \-\-no\-stylesheet: No asociar la salida XML con ninguna hoja de estilos XSL +MISCELÁNEO: + \-6: Habilitar análisis IPv6 + \-A: Habilita la detección de SO y de versión + \-\-datadir <nombreDir>: Indicar la ubicación de los archivos de datos Nmap + personalizados\&. + \-\-send\-eth/\-\-send\-ip: Enviar paquetes utilizando tramas Ethernet o paquetes IP + "crudos" + \-\-privileged: Asumir que el usuario tiene todos los privilegios + \-V: Muestra el número de versión + \-h: Muestra esta página resumen de la ayuda\&. +EJEMPLOS: + nmap \-v \-A scanme\&.nmap\&.org + nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8 + nmap \-v \-iR 10000 \-P0 \-p 80 +.fi +.if n \{\ +.RE +.\} +.sp +.SH "ESPECIFICACIÓN DE OBJETIVOS" +.PP +Todo lo que se escriba en la línea de parámetros de Nmap que no sea una opción se considera una especificación de sistema objetivo\&. El caso más sencillo es la indicación de sólo una IP, o nombre de sistema, para que sea analizado\&. +.PP +Puede darse la situación en que uno desee analizar una red completa de equipos adyacentes\&. Nmap soporta el direccionamiento estilo CIDR para estos casos\&. Puede añadir /\fInumBits\fR +a una dirección IP o nombre de sistema para que Nmap sondee toda IP cuyos primeros +\fInumBits\fR +sean los mismos que los de la dirección IP o nombre de sistema indicado\&. Por ejemplo, 192\&.168\&.10\&.0/24 analizaría los 256 sistemas que existen entre la dirección 192\&.168\&.10\&.0 (que en binario se representa como +11000000 10101000 00001010 00000000) y la dirección 192\&.168\&.10\&.255 (binario: +11000000 10101000 00001010 11111111), ambas inclusives\&. De hecho, si usa 192\&.168\&.10\&.40/24 obtendría exactamente el mismo resultado\&. En el caso del sistema scanme\&.nmap\&.org que posee una dirección IP 205\&.217\&.153\&.62, la especificación scanme\&.nmap\&.org/16 analizaría las 65\&.536 direcciones IP entre 205\&.217\&.0\&.0 y 205\&.217\&.255\&.255\&. La máscara mas pequeña permitida es /1, que analizaría media Internet\&. La más grande, /32, analizaría únicamente la IP o nombre de sistema indicados porque todos los bits estarían fijos\&. +.PP +La notación CDIR es breve pero no siempre es suficiemente flexible\&. Por ejemplo, puede querer sondear la red 192\&.168\&.0\&.0/16 pero omitir cualquier IP que termine por \&.0 o por \&.255 ya que son habitualmente direcciones de difusión\&. Es posible hacer esto con Nmap mediante el direccionamiento por octetos\&. En lugar de especificar una dirección IP normal puede especificar una lista separada por comas de números o rangos para cada octeto\&. Por ejemplo, si utiliza 192\&.168\&.0\-255\&.1\-254 se omitirán todas las direcciones del rango que terminen en \&.0 o \&.255\&. Los rangos no tienen por qué estar limitados a los últimos octetos\&. Por ejemplo, si especifica 0\-255\&.0\-255\&.13\&.37 se realizará un sondeo en todo Internet de las direcciones IP que terminan en 13\&.37\&. Este tipo de muestreo amplio puede ser útil para encuestas en Internet y con fines de investigación\&. +.PP +Sólo puede especificar direcciones IPv6 si utiliza su nombre IPv6 totalmente cualificado o su nombre de sistema\&. No se soporta el uso de CIDR o rangos de octetos para IPv6 porque raramente son útiles\&. +.PP +Con Nmap puede especificar múltiples sistemas en la línea de órdenes y no tienen por qué ser del mismo tipo\&. Por ejemplo, la orden +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/16 10\&.0\&.0,1,3\-7\&.0\-255\fR +hace lo que uno esperaría\&. +.PP +Aunque habitualmente se especifican los objetivos en la línea de órdenes puede utilizar las siguientes opciones para controlar la selección de objetivos: +.PP +\fB\-iL <archivo_entrada>\fR (Entrada de una lista) +.RS 4 +Toma la especificación de objetivos del archivo +\fIarchivo_entrada\fR\&. Habitualmente es un tanto molesto especificar una lista de sistemas muy grande en la línea de órdenes, pero es algo que también uno quiere hacer\&. Por ejemplo, si tu servidor DHCP puede exportar un listado de las 10\&.000 direcciones entregadas IP que querría analizar\&. O tal vez quiera analizar todas las direcciones IP +\fIexcepto\fR +esas mismas direcciones, para así localizar sistemas que estén utilizando direcciones IP estáticas sin autorización\&. Para sondear un número elevado de objetivos sólo tiene que generar la lista en un archivo, y entregárselo a Nmap con la opción +\fB\-iL\fR\&. Las entradas de ese archivo pueden estar en cualquiera de los formatos aceptados por Nmap en la línea de órdenes (direcciones IP, nombres de sistema, CIDR, IPv6 o rangos de octeto)\&. Cada elemento debe estar separado por uno o más espacios, tabuladores, o por líneas\&. Si quiere leer el archivo de la entrada estándar puede especificar un guión (\-) como nombre de archivo\&. +.RE +.PP +\fB\-iR <cant\&. sistemas>\fR (Elegir objetivos al azar) +.RS 4 +Cuando se quieren realizar encuestas que cubran toda Internet uno puede querer elegir objetivos al azar\&. La opción +\fIcant\&. sistemas\fR +indica a Nmap cuántas direcciones IP debe generar aleatoriamente\&. Se filtran de forma automática las direcciones no deseables, incluyendo las direcciones privadas, de multicast o direccionamiento no asignado\&. Si se utiliza el valor +0, Nmap realizará un análisis que no acabará nunca\&. Hay que tener en cuenta que a algunos administradores de red puede no gustarle que les analicen sus redes, y pueden llegar a quejarse ¡Utilice esta opción bajo su propia responsabilidad! Si está realmente aburrido un día de tarde lluviosa, puede intentar la orden +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR +para encontrar servidores web al azar para navegar\&. +.RE +.PP +\fB\-\-exclude <equipo1[,equipo2][,equipo3],\&.\&.\&.>\fR (Excluir equipo o redes) +.RS 4 +Indica con una lista separada por comas los objetivos que deben excluirse del análisis\&. Se excluirán aunque se encuentren dentro de un rango especificado en la línea de órdenes\&. La lista que se indica utiliza la sintaxis normal de Nmap, por lo que puede incluir nombres de equipo, rangos de red CIDR, rangos de octeto, etc\&. Esto puede ser útil cuando la red a analizar tiene objetivos que no se deben tocar, como puedan ser servidores de misión crítica, que pueden reaccionar adversamente a un análisis de puertos, o si la red incluye subredes administradas por otras personas\&. +.RE +.PP +\fB\-\-excludefile <archivo>\fR (Excluir desde una Lista) +.RS 4 +Al igual que +\fB\-\-exclude\fR, esta función permite excluir objetivos, pero en lugar de utilizar la línea de órdenes toma el listado de un +\fIarchivo\fR, que utiliza la misma sintaxis que la opción +\fB\-iL\fR\&. +.RE +.SH "DESCUBRIENDO SISTEMAS" +.PP +Uno de los primeros pasos en cualquier misión de reconocimiento de red es el de reducir un (muchas veces enorme) conjunto de rangos de direcciones IP en una lista de equipos activos o interesantes\&. Analizar cada puerto de cada una de las direcciones IP es lento, y usualmente innecesario\&. Por supuesto, lo que hace a un sistema interesante depende ampliamente del propósito del análisis\&. Los administradores de red pueden interesarse sólo en equipos que estén ejecutando un cierto servicio, mientras que los auditores de seguridad pueden interesarse en todos y cada uno de los dispositivos que tengan una dirección IP\&. Un administrador puede sentirse cómodo con obtener un listado de equipos en su red interna mediante un ping ICMP, mientras que un consultor en seguridad realizando un ataque externo puede llegar a utilizar un conjunto de docenas de sondas en su intento de saltarse las restricciones de los cortafuegos\&. +.PP +Siendo tan diversas las necesidades de descubrimiento de sistemas, Nmap ofrece una gran variedad de opciones para personalizar las técnicas utilizadas\&. Al descubrimiento de sistemas («Host Discovery») se lo suele llamar sondeo ping, pero va más allá de la simple solicitud ICMP echo\-request de los paquetes asociados al querido y nunca bien ponderado +ping\&. Los usuarios pueden evitar el paso de ping utilizando un sondeo de lista (\fB\-sL\fR) o deshabilitando el ping (\fB\-P0\fR), o enviando combinaciones arbitrarias de sondas TCP SYN/ACK, UDP e ICMP a múltiples puertos de la red remota\&. El propósito de estas sondas es el de solicitar respuestas que demuestren que una dirección IP se encuentra activa (está siendo utilizada por un equipo o dispositivo de red)\&. En varias redes solo un pequeño porcentaje de direcciones IP se encuentran activos en cierto momento\&. Esto es particularmente común en las redes basadas en direccionamiento privado RFC1918, como la 10\&.0\&.0\&.0/8\&. Dicha red tiene más de 16 millones de direcciones IP, pero la he visto siendo utilizada por empresas con menos de mil máquinas\&. El descubrimiento de sistemas puede encontrar dichas maquinas en un rango tan grande como el indicado\&. +.PP +Si no se proveen opciones de descurbrimiento de sistemas, Nmap envía un paquete TCP ACK al puerto 80 y un ICMP Echo Request a cada máquina objetivo\&. Una excepción a este comportamiento es cuando se utiliza un análisis ARP, para los objetivos que se encuentren en la red Ethernet local\&. Para usuarios de shell UNIX que no posean privilegios, un paquete SYN es enviado en vez del ACK, utilizando la llamada al sistema +\fBconnect()\fR\&. Estos valores por omisión son el equivalente a las opciones +\fB\-PA \-PE\fR\&. Este descubrimiento de sistemas es generalmente suficiente cuando se analizan redes locales, pero para auditorías de seguridad se recomienda utilizar un conjunto más completo de sondas de descubrimiento\&. +.PP +Las opciones +\fB\-P*\fR +(que permiten seleccionar los tipos de ping) pueden combinarse\&. Puede aumentar sus probabilidades de penetrar cortafuegos estrictos enviando muchos tipos de sondas utilizando diferentes puertos o banderas TCP y códigos ICMP\&. Recuerde que el ARP discovery (\fB\-PR\fR) se realiza por omisión contra objetivos de la red Ethernet local incluso si se especifica otra de las opciones +\fB\-P*\fR, porque es generalmente más rápido y efectivo\&. +.PP +Las siguientes opciones controlan el descubrimiento de sistemas\&. +.PP +\fB\-sL\fR (Sondeo de lista) +.RS 4 +El sondeo de lista es un tipo de descubrimiento de sistemas que tan solo lista cada equipo de la/s red/es especificada/s, sin enviar paquetes de ningún tipo a los objetivos\&. Por omisión, Nmap va a realizar una resolución inversa DNS en los equipos, para obtener sus nombres\&. Es sorprendente cuanta información útil se puede obtener del nombre de un sistema\&. Por ejemplo +fw\&.chi\&.playboy\&.com +es el cortafuegos de la oficina en Chicago de Playboy Enterprises\&. Adicionalmente, al final, Nmap reporta el número total de direcciones IP\&. El sondeo de lista es una buena forma de asegurarse de que tenemos las direcciones IP correctas de nuestros objetivos\&. Si se encontraran nombres de dominio que no reconoces, vale la pena investigar un poco más, para evitar realizar un análisis de la red de la empresa equivocada\&. +.sp +Ya que la idea es simplemente emitir un listado de los sistemas objetivo, las opciones de mayor nivel de funcionalidad como análisis de puertos, detección de sistema operativo, o análisis ping no pueden combinarse con este sondeo\&. Si desea deshabilitar el análisis ping aún realizando dicha funcionalidad de mayor nivel, compruebe la documentación de la opción +\fB\-P0\fR\&. +.RE +.PP +\fB\-sP\fR (Sondeo ping) +.RS 4 +Esta opción le indica a Nmap que +\fIúnicamente\fR +realice descubrimiento de sistemas mediante un sondeo ping, y que luego emita un listado de los equipos que respondieron al mismo\&. No se realizan más sondeos (como un análisis de puertos o detección de sistema operativo)\&. A diferencia del sondeo de lista, el análisis ping es intrusivo, ya que envía paquetes a los objetivos, pero es usualmente utilizado con el mismo propósito\&. Permite un reconocimiento liviano de la red objetivo sin llamar mucho la atención\&. El saber cuántos equipos se encuentran activos es de mayor valor para los atacantes que el listado de cada una de las IP y nombres proporcionado por el sondeo de lista\&. +.sp +De la misma forma, los administradores de sistemas suelen encontrar valiosa esta opción\&. Puede ser fácilmente utilizada para contabilizar las máquinas disponibles en una red, o monitorizar servidores\&. A esto se lo suele llamar barrido ping, y es más fiable que hacer ping a la dirección de broadcast, ya que algunos equipos no responden a ese tipo de consultas\&. +.sp +La opción +\fB\-sP\fR +envía una solicitud de eco ICMP y un paquete TCP al puerto 80 por omisión\&. Cuando un usuario sin privilegios ejecuta Nmap se envía un paquete SYN (utilizando la llamada +\fBconnect()\fR) al puerto 80 del objetivo\&. Cuando un usuario privilegiado intenta analizar objetivos en la red Ethernet local se utilizan solicitudes ARP (\fB\-PR\fR) a no ser que se especifique la opción +\fB\-\-send\-ip\fR\&. +.sp +La opción +\fB\-sP\fR +puede combinarse con cualquiera de las opciones de sondas de descubrimiento (las opciones +\fB\-P*\fR, excepto +\fB\-P0\fR) para disponer de mayor flexibilidad\&. Si se utilizan cualquiera de las opciones de sondas de descubrimiento y número de puerto, se ignoran las sondas por omisión (ACK y solicitud de eco ICMP)\&. Se recomienda utilizar estas técnicas si hay un cortafuegos con un filtrado estricto entre el sistema que ejecuta Nmap y la red objetivo\&. Si no se hace así pueden llegar a pasarse por alto ciertos equipos, ya que el cortafuegos anularía las sondas o las respuestas a las mismas\&. +.RE +.PP +\fB\-P0\fR (No realizar ping) +.RS 4 +Con esta opción, Nmap no realiza la etapa de descubrimiento\&. Bajo circunstancias normales, Nmap utiliza dicha etapa para determinar qué máquinas se encuentran activas para hacer un análisis más agresivo\&. Por omisión, Nmap sólo realiza ese tipo de sondeos, como análisis de puertos, detección de versión o de sistema operativo contra los equipos que se están «vivos»\&. Si se deshabilita el descubrimiento de sistemas con la opción +\fB\-P0\fR +entonces Nmap utilizará las funciones de análisis solicitadas contra +\fItodas\fR +las direcciones IP especificadas\&. Por lo tanto, si se especifica una red del tamaño de una clase B cuyo espacio de direccionamiento es de 16 bits, en la línea de órdenes, se analizará cada una de las 65\&.536 direcciones IP\&. El segundo carácter en la opción +\fB\-P0\fR +es un cero, y no la letra O\&. Al igual que con el sondeo de lista, se evita el descubrimiento apropiado de sistemas, pero, en vez de detenerse y emitir un listado de objetivos, Nmap continúa y realiza las funciones solicitadas como si cada IP objetivo se encontrara activa\&. +.RE +.PP +\fB\-PS [lista de puertos]\fR (Ping TCP SYN) +.RS 4 +Esta opción envía un paquete TCP vacío con la bandera SYN puesta\&. El puerto destino por omisión es el 80 (se puede configurar en tiempo de compilación cambiando el valor de DEFAULT_TCP_PROBE_PORT en +nmap\&.h), pero se puede añadir un puerto alternativo como parámetro\&. También se puede especificar una lista de puertos separados por comas (p\&.ej\&. +\fB\-PS22,23,25,80,113,1050,35000\fR)\&. Si hace esto se enviarán sondas en paralelo a cada uno de los puertos\&. +.sp +La bandera SYN indica al sistema remoto que quiere establecer una conexión\&. Normalmente, si el puerto destino está cerrado se recibirá un paquete RST (de «reset»)\&. Si el puerto está abierto entonces el objetivo responderá con el segundo paso del saludo en tres pasos TCP respondiendo con un paquete TCP SYN/ACK\&. El sistema donde se ejecuta Nmap romperá la conexión que se está estableciendo enviando un paquete RST en lugar de enviar el paquete ACK que completaría el saludo TCP\&. Nmap no envía este paquete, sino que lo envía el núcleo del sistema donde se ejecuta Nmap respondiendo al paquete SYN/ACK que no esperaba\&. +.sp +A Nmap no le importa si el puerto está abierto o cerrado\&. Si, tal y como se acaba de describir, llega una respuesta RST ó SYN/ACK entonces Nmap sabrá que el sistema está disponible y responde\&. +.sp +En sistemas UNIX, generalmente sólo el usuario privilegiado +root +puede enviar paquetes TCP crudos\&. Los usuarios no privilegiados tienen una forma de evitar esta restricción utilizando la llamada al sistema «connect()» contra el puerto destino\&. Esto hace que se envíe el paquete SYN al sistema, para establecer la conexión\&. Si la llamada «connect()» devuelve un resultado de éxito rápidamente o un fallo ECONNREFUSED entonces se puede deducir que la pila TCP que tiene bajo ésta ha recibido un SYN/ACK o un RST y que puede marcar el sistema como disponible\&. El sistema se puede marcar como no disponible si el intento de conexión se mantiene parado hasta que vence un temporizador\&. Esta es también la forma en la que se gestiona esto en conexiones IPv6 ya que Nmap aún no puede crear paquetes IPv6 crudos\&. +.RE +.PP +\fB\-PA [lista de puertos]\fR (Ping TCP ACK) +.RS 4 +El ping TCP ACK es muy parecido al ping SYN que se acaba de tratar\&. La diferencia es que en este caso se envía un paquete con la bandera ACK en lugar de la SYN\&. Este paquete indica que se han recibido datos en una conexión TCP establecida, pero se envían sabiendo que la conexión no existe\&. En este caso los sistemas deberían responder con un paquete RST, lo que sirve para determinar que están vivos\&. +.sp +La opción +\fB\-PA\fR +utiliza el mismo puerto por omisión que la sonda SYN (el puerto 80) y también puede tomar una lista de puertos destino en el mismo formato\&. Si un usuario sin privilegios intenta hacer esto, o se especifica un objetivo IPv6, se utiliza el procedimiento descrito anteriormente\&. Aunque en este caso el procedimiento no es perfecto porque la llamada «connect()» enviará un paquete SYN en lugar de un ACK\&. +.sp +Se ofrecen tanto mecanismos de sondeo con ping SYN y ACK para maximizar las posibilidades de atravesar cortafuegos\&. Muchos administradores configuran los enrutadores y algunos cortafuegos sencillos para que se bloqueen los paquetes SYN salvo para aquellos destinados a los servicios públicos, como pudieran ser el servidor web o el servidor de correo de la organización\&. Esto evita que se realicen otras conexiones entrantes al mismo tiempo que permite a los usuarios realizar conexiones salientes a Internet\&. Este acercamiento de filtrado sin estados toma pocos recursos de los cortafuegos/enrutadores y está ampliamente soportado por filtros hardware y software\&. El programa de cortafuegos Netfilter/iptables de Linux ofrece la opción +\fB\-\-syn\fR +para implementar este acercamiento sin estados\&. Cuando se han implementado reglas de filtrado como éstas es posible que se bloqueen las sondas ping SYN (\fB\-PS\fR) cuando éstas se envíen a un puerto cerrado\&. Sin embargo, en estos casos, las sondas ACK podrían saltarse las reglas y llegar a su destino\&. +.sp +Otros tipos de cortafuegos comunes utilizan reglas con estados que descartan paquetes no esperados\&. Esta funcionalidad se encontraba antes fundamentalmente en los cortafuegos de gama alta pero se ha hecho cada vez más común\&. El sistema Netfilter/iptables de Linux soporta esta posibilidad a través de la opción +\fB\-\-state\fR, que hace categorías de paquetes en base a su estado de conexión\&. En estos sistemas es más probable que funcione una sonda SYN, dado que los paquetes ACK no esperados se reconocen como falsos y se descartan\&. Una solución a este dilema es enviar sondas SYN y ACK especificando tanto la opción +\fB\-PS\fR +como +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU [lista de puertos]\fR (Ping UDP) +.RS 4 +El ping UDP es otra opción para descubrir sistemas\&. Esta opción envía un paquete UDP vacío (salvo que se especifique +\fB\-\-data\-length\fR) a los puertos indicados\&. La lista de puertos se debe dar en el mismo formato que se ha indicado anteriormente para las opciones +\fB\-PS\fR +y +\fB\-PA\fR +\&. Si no se especifica ningún puerto se utiliza el puerto 31338 por omisión\&. Se puede configurar este puerto por omisión en el momento de compilar cambiando DEFAULT_UDP_PROBE_PORT en +nmap\&.h\&. Se utiliza un puerto alto y poco común por omisión porque no es deseable enviar este sondeo a otro tipo de puertos\&. +.sp +La sonda UDP debería generar un paquete ICMP de puerto no alcanzable si da contra un puerto cerrado en el equipo objetivo\&. Si llega éste entonces Nmap puede identificar ese sistema como vivo y alcanzable\&. Otros errores ICMP, como el de sistema o red inalcanzables o TTL excedido indican un sistema que está muerto o que no es alcanzable\&. Si no llega ninguna respuesta también se entiende que el sistema no está disponible\&. Si se alcanza un puerto abierto la mayoría de los servicios simplemente descartarán el paquete vacío y no devolverán ninguna respuesta\&. Ésta es la razón por la que se utiliza el puerto por omisión 31338 ya que es poco probable que esté utilizándose\&. Algunos servicios, como chargen, responderán con un paquete UDP vacío lo que ayuda a Nmap a determinar que el sistema está disponible\&. +.sp +La principal ventaja de este tipo de sondeos es que atraviesan cortafuegos y filtros que sólo analizan TCP\&. Yo, por ejemplo, una vez fui propietario de un encaminador de banda ancha inalámbrico BEFW11S4\&. El interfaz externo de este dispositivo filtraba por omisión todos los puertos TCP, pero las sondas UDP podían generar mensajes de puerto no alcanzable y permitían detectar al dispositivo\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (Tipos de ping ICMP) +.RS 4 +Nmap puede enviar los paquetes estándar que envía el programa +ping +además de los tipos de descubrimiento de equipos con TCP y UDP\&. Nmap envía paquetes ICMP tipo 7 («echo request») a las direcciones IP objetivos y espera recibir un tipo 0 («Echo Reply») de los sistemas que estén disponibles\&. Lamentablemente para los exploradores de redes, muchos sistemas y cortafuegos ahora bloquean esos paquetes en lugar de responder como requiere el estándar +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[4]\d\s+2\&. Por ésta razón los sondeos que sólo utilizan el protocolo ICMP no son muy fiables para analizar sistemas desconocidos en Internet\&. Aunque pueda ser una forma eficiente y práctica de hacerlo para administradores que tengan que monitorizar una red interna\&. Utilice la opción +\fB\-PE\fR +para activar este comportamiento de solicitud de eco\&. +.sp +Nmap no hace sólo ésto, aunque la solicitud eco es la consulta estándar de ping ICMP\&. El estándar ICMP (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[5]\d\s+2) también específica solicitudes de huellas de tiempo, de información y de máscara de red, que corresponden con los códigos 13, 15 y 17 respectivamente\&. Aunque el objetivo de estas solicitudes es obtener la máscara de red o fecha actual de un sistema también pueden utilizarse para descubrir sistemas\&. Un sistema que responde es por que está vivo y disponible\&. Nmap no implementa los paquetes de solicitud de información en sí, ya que no están muy soportados\&. El estándar RFC 1122 insiste en que +\(lqun equipo NO DEBE implementar estos mensajes\(rq\&. Las consultas de huella de tiempo y máscara de red se pueden enviar con las opciones +\fB\-PP\fR +y +\fB\-PM\fR, respectivamente\&. Si se recibe una respuesta de huella de tiempo (código ICMP 14) o de máscara de red (código 18) entonces es que el sistema está disponible\&. Estas dos consultas pueden ser útiles cuando los administradores bloquean los paquetes de consulta eco explícitamente pero se olvidan de que se pueden utilizar otras consultas ICMP con el mismo fin\&. +.RE +.PP +\fB\-PR\fR (Ping ARP) +.RS 4 +Una de las formas de uso más comunes de Nmap es el sondeo de una red de área local Ethernet\&. En la mayoría de las redes locales hay muchas direcciones IP sin usar en un momento determinado\&. Esto es así especialmente en las que utilizan rangos de direcciones privadas definidas en el RFC1918\&. Cuando Nmap intenta enviar un paquete IP crudo, como pudiera ser una solicitud de eco ICMP, el sistema operativo debe determinar primero la dirección (ARP) correspondiente a la IP objetivo para poder dirigirse a ella en la trama Ethernet\&. Esto es habitualmente un proceso lento y problemático, dado que los sistemas operativos no se escribieron pensando en que tendrían que hacer millones de consultas ARP contra sistemas no disponibles en un corto periodo de tiempo\&. +.sp +El sondeo ARP hace que sea Nmap y su algoritmo optimizado el que se encargue de las solicitudes ARP\&. Si recibe una respuesta, no se tiene ni que preocupar de los paquetes basados en IP dado que ya sabe que el sistema está vivo\&. Esto hace que el sondeo ARP sea mucho más rápido y fiable que los sondeos basados en IP\&. Por ello se utiliza por omisión cuando se analizan sistemas Ethernet si Nmap detecta que están en la red local\&. Nmap utiliza ARP para objetivos en la misma red local aún cuando se utilicen distintos tipos de ping (como +\fB\-PE\fR +o +\fB\-PS\fR)\&. Si no quiere hacer un sondeo ARP tiene que especificar la opción +\fB\-\-send\-ip\fR\&. +.RE +.PP +\fB\-n\fR (No realizar resolución de nombres) +.RS 4 +Le indica a Nmap que +\fInunca\fR +debe realizar resolución DNS inversa de las direcciones IP activas que encuentre\&. Ya que DNS es generalmente lento, esto acelera un poco las cosas\&. +.RE +.PP +\fB\-R\fR (Realizar resolución de nombres con todos los objetivos) +.RS 4 +Le indica a Nmap que deberá realizar +\fIsiempre\fR +la resolución DNS inversa de las direcciones IP objetivo\&. Normalmente se realiza esto sólo si se descubre que el objetivo se encuentra vivo\&. +.RE +.PP +\fB\-\-system\-dns\fR (Utilizar resolución DNS del sistema) +.RS 4 +Por omisión, Nmap resuelve direcciones IP por si mismo enviando las consultas directamente a los servidores de nombres configurados en el sistema, y luego espera las respuestas\&. Varias solicitudes (generalmente docenas) son realizadas en paralelo para mejorar el rendimiento\&. Especifica esta opción si desea que sí utilice la resolución del sistema (una IP por vez utilizando la llamada getnameinfo())\&. Este método es más lento y raramente útil, a no ser que hubiera un error en el código DNS de Nmap (por favor, notifíquelo si ese fuera el caso)\&. Éste es el método por omisión para los sondeos IPv6\&. +.RE +.PP +\fB\-\-dns\-servers <servidor1[,servidor2],\&.\&.\&.> \fR (Servidores a utilizar para las consultas DNS) +.RS 4 +Nmap generalmente determina los servidores DNS de su archivo resolv\&.conf (UNIX) o del registro (Win32)\&. Puede utilizar esta opción para especificar sus propios servidores\&. Esta opción no se utiliza si utiliza la opción +\fB\-\-system\-dns\fR +o está realizando un sondeo IPv6\&. La resolución a través de más de un servidor de DNS es generalmente más rápida que la consulta a uno solo\&. +.RE +.SH "INTRODUCCIÓN AL ANÁLISIS DE PUERTOS" +.PP +Nmap comenzó como un analizador de puertos eficiente, aunque ha aumentado su funcionalidad a través de los años, aquella sigue siendo su función primaria\&. La sencilla orden +\fBnmap \fR\fB\fIobjetivo\fR\fR +analiza más de 1660 puertos TCP del equipo +\fIobjetivo\fR\&. Aunque muchos analizadores de puertos han agrupado tradicionalmente los puertos en dos estados: abierto o cerrado, Nmap es mucho más descriptivo\&. Se dividen a los puertos en seis estados distintos: +abierto, +cerrado, +filtrado, +no filtrado, +abierto|filtrado, o +cerrado|filtrado\&. +.PP +Estos estados no son propiedades intrínsecas del puerto en sí, pero describen como los ve Nmap\&. Por ejemplo, un análisis con Nmap desde la misma red en la que se encuentra el objetivo puede mostrar el puerto 135/tcp como +abierto, mientras que un análisis realizado al mismo tiempo y con las mismas opciones, pero desde Internet, puede presentarlo como +filtrado\&. +.PP +\fBLos seis estados de un puerto, según Nmap\fR +.PP +abierto +.RS 4 +Una aplicación acepta conexiones TCP o paquetes UDP en este puerto\&. El encontrar esta clase de puertos es generalmente el objetivo primario de realizar un sondeo de puertos\&. Las personas orientadas a la seguridad saben que cada puerto abierto es un vector de ataque\&. Los atacantes y las personas que realizan pruebas de intrusión intentan aprovechar puertos abiertos, por lo que los administradores intentan cerrarlos, o protegerlos con cortafuegos, pero sin que los usuarios legítimos pierdan acceso al servicio\&. Los puertos abiertos también son interesantes en sondeos que no están relacionados con la seguridad porque indican qué servicios están disponibles para ser utilizados en una red\&. +.RE +.PP +cerrado +.RS 4 +Un puerto cerrado es accesible: recibe y responde a las sondas de Nmap, pero no tiene una aplicación escuchando en él\&. Pueden ser útiles para determinar si un equipo está activo en cierta dirección IP (mediante descubrimiento de sistemas, o sondeo ping), y es parte del proceso de detección de sistema operativo\&. Como los puertos cerrados son alcanzables, o sea, no se encuentran filtrados, puede merecer la pena analizarlos pasado un tiempo, en caso de que alguno se abra\&. Los administradores pueden querer considerar bloquear estos puertos con un cortafuegos\&. Si se bloquean aparecerían filtrados, como se discute a continuación\&. +.RE +.PP +filtrado +.RS 4 +Nmap no puede determinar si el puerto se encuentra abierto porque un filtrado de paquetes previene que sus sondas alcancen el puerto\&. El filtrado puede provenir de un dispositivo de cortafuegos dedicado, de las reglas de un enrutador, o por una aplicación de cortafuegos instalada en el propio equipo\&. Estos puertos suelen frustrar a los atacantes, porque proporcionan muy poca información\&. A veces responden con mensajes de error ICMP del tipo 3, código 13 (destino inalcanzable: comunicación prohibida por administradores), pero los filtros que sencillamente descartan las sondas sin responder son mucho más comunes\&. Esto fuerza a Nmap a reintentar varias veces, considerando que la sonda pueda haberse descartado por congestión en la red en vez de haberse filtrado\&. Esto ralentiza drásticamente los sondeos\&. +.RE +.PP +no filtrado +.RS 4 +Este estado indica que el puerto es accesible, pero que Nmap no puede determinar si se encuentra abierto o cerrado\&. Solamente el sondeo ACK, utilizado para determinar las reglas de un cortafuegos, clasifica a los puertos según este estado\&. El analizar puertos no filtrados con otros tipos de análisis, como el sondeo Window, SYN o FIN, pueden ayudar a determinar si el puerto se encuentra abierto\&. +.RE +.PP +abierto|filtrado +.RS 4 +Nmap marca a los puertos en este estado cuando no puede determinar si el puerto se encuentra abierto o filtrado\&. Esto ocurre para tipos de análisis donde no responden los puertos abiertos\&. La ausencia de respuesta puede también significar que un filtro de paquetes ha descartado la sonda, o que se elimina cualquier respuesta asociada\&. De esta forma, Nmap no puede saber con certeza si el puerto se encuentra abierto o filtrado\&. Los sondeos UDP, protocolo IP, FIN, Null y Xmas clasifican a los puertos de esta manera\&. +.RE +.PP +cerrado|filtrado +.RS 4 +Este estado se utiliza cuando Nmap no puede determinar si un puerto se encuentra cerrado o filtrado, y puede aparecer aparecer sólo durante un sondeo IPID pasivo\&. +.RE +.SH "TÉCNICAS DE SONDEO DE PUERTOS" +.PP +Cuando intento realizar un arreglo de mi coche, siendo novato, puedo pasarme horas intentando utilizar mis herramientas rudimentarias (martillo, cinta aislante, llave inglesa, etc\&.)\&. Cuando fallo miserablemente y llevo mi coche antiguo en grúa al taller a un mecánico de verdad siempre pasa lo mismo: busca en su gran cajón de herramientas hasta que saca una herramienta que hace que la tarea se haga sin esfuerzo\&. El arte de sondear puertos es parecido\&. Los expertos conocen docenas de técnicas de sondeo y eligen la más apropiada (o una combinación de éstas) para la tarea que están realizando\&. Los usuarios sin experiencia y los "script kiddies", sin embargo, intentan resolver cada problema con el sondeo SYN por omisión\&. Dado que Nmap es libre, la única barrera que existe para ser un experto en el sondeo de puertos es el conocimiento\&. Esto es mucho mejor que el mundo del automóvil, donde puedes llegar a saber que necesitas un compresor de tuerca, pero tendrás que pagar mil dolares por él\&. +.PP +La mayoría de los distintos tipos de sondeo disponibles sólo los puede llevar a cabo un usuario privilegiado\&. Esto es debido a que envían y reciben paquetes en crudo, lo que hace necesario tener acceso como administrador (root) en la mayoría de los sistemas UNIX\&. En los entornos Windows es recomendable utilizar una cuenta de administrador, aunque Nmap algunas veces funciona para usuarios no privilegiados en aquellas plataformas donde ya se haya instalado WinPcap\&. La necesidad de privilegios como usuario administrador era una limitación importante cuando se empezó a distribuir Nmap en 1997, ya que muchos usuarios sólo tenían acceso a cuentas compartidas en sistemas como usuarios normales\&. Ahora, las cosas son muy distintas\&. Los ordenadores son más baratos, hay más personas que tienen acceso permanente a Internet, y los sistemas UNIX (incluyendo Linux y MAC OS X) son más comunes\&. También se dispone de una versión para Windows de Nmap, lo que permite que se ejecute en más escritorios\&. Por todas estas razones, cada vez es menos necesario ejecutar Nmap utilizando cuentas de sistema compartidas\&. Esto es bueno, porque las opciones que requieren de más privilegios hacen que Nmap sea más potente y flexible\&. +.PP +Aunque Nmap intenta generar resultados precisos, hay que tener en cuenta que estos resultados se basan en los paquetes que devuelve el sistema objetivo (o los cortafuegos que están delante de éstos)\&. Estos sistemas pueden no ser fiables y envíar respuestas cuyo objetivo sea confundir a Nmap\&. Son aún más comunes los sistemas que no cumplen con los estándares RFC, que no responden como deberían a las sondas de Nmap\&. Son especialmente susceptibles a este problema los sondeos FIN, Null y Xmas\&. Hay algunos problemas específicos a algunos tipos de sondeos que se discuten en las entradas dedicadas a sondeos concretos\&. +.PP +Esta sección documenta las aproximadamente doce técnicas de sondeos de puertos que soporta Nmap\&. Sólo puede utilizarse un método en un momento concreto, salvo por el sondeo UDP (\fB\-sU\fR) que puede combinarse con cualquiera de los sondeos TCP\&. Para que sea fácil de recordar, las opciones de los sondeos de puertos son del estilo +\fB\-s\fR\fB\fIC\fR\fR, donde +\fIC\fR +es una letra característica del nombre del sondeo, habitualmente la primera\&. La única excepción a esta regla es la opción obsoleta de sondeo FTP rebotado (\fB\-b\fR)\&. Nmap hace un sondeo SYN por omisión, aunque lo cambia a un sondeo Connect() si el usuario no tiene los suficientes privilegios para enviar paquetes en crudo (requiere acceso de administrador en UNIX) o si se especificaron objetivos IPv6\&. De los sondeos que se listan en esta sección los usuarios sin privilegios sólo pueden ejecutar los sondeos Connect() o de rebote FTP\&. +.PP +\fB\-sS\fR (sondeo TCP SYN) +.RS 4 +El sondeo SYN es el utilizado por omisión y el más popular por buenas razones\&. Puede realizarse rápidamente, sondeando miles de puertos por segundo en una red rápida en la que no existan cortafuegos\&. El sondeo SYN es relativamente sigiloso y poco molesto, ya que no llega a completar las conexiones TCP\&. También funciona contra cualquier pila TCP en lugar de depender de la idiosincrasia específica de una plataforma concreta, al contrario de lo que pasa con los sondeos de Nmap Fin/Null/Xmas, Maimon o pasivo\&. También muestra una clara y fiable diferenciación entre los estados +abierto, +cerrado, y +filtrado\&. +.sp +A esta técnica se la conoce habitualmente como sondeo medio abierto, porque no se llega a abrir una conexión TCP completa\&. Se envía un paquete SYN, como si se fuera a abrir una conexión real y después se espera una respuesta\&. Si se recibe un paquete SYN/ACK esto indica que el puerto está en escucha (abierto), mientras que si se recibe un RST (reset) indica que no hay nada escuchando en el puerto\&. Si no se recibe ninguna respuesta después de realizar algunas retransmisiones entonces el puerto se marca como filtrado\&. También se marca el puerto como filtrado si se recibe un error de tipo ICMP no alcanzable (tipo 3, códigos 1,2, 3, 9, 10, ó 13)\&. +.RE +.PP +\fB\-sT\fR (sondeo TCP connect()) +.RS 4 +El sondeo TCP Connect() es el sondeo TCP por omisión cuando no se puede utilizar el sondeo SYN\&. Esto sucede, por ejemplo, cuando el usuario no tiene privilegios para enviar paquetes en crudo o cuando se están sondeando redes IPv6\&. Nmap le pide al sistema operativo subyacente que establezcan una conexión con el sistema objetivo en el puerto indicado utilizando la llamada del sistema +connect(), a diferencia de otros tipos de sondeo, que escriben los paquetes a bajo nivel\&. Ésta es la misma llamada del sistema de alto nivel que la mayoría de las aplicaciones de red, como los navegadores web o los clientes P2P, utilizan para establecer una conexión\&. Esta llamada es parte del interfaz de programación conocido como la API de conectores de Berkeley\&. También, en lugar de leer las respuestas directamente de la línea, Nmap utiliza esta API para obtener la información de estado de cada intento de conexión\&. +.sp +Generalmente es mejor utilizar un sondeo SYN, si éste está disponible\&. Nmap tiene menos control sobre la llamada de alto nivel +Connect() +que cuando utiliza paquetes en crudo, lo que hace que sea menos eficiente\&. La llamada al sistema completa las conexiones para abrir los puertos objetivo, en lugar de realizar el reseteo de la conexión medio abierta como hace el sondeo SYN\&. Esto significa que se tarda más tiempo y son necesarios más paquetes para obtener la información, pero también significa que los sistemas objetivos van a registrar probablemente la conexión\&. Un IDS decente detectará cualquiera de los dos, pero la mayoría de los equipos no tienen este tipo de sistemas de alarma\&. Sin embargo, muchos servicios de los sistemas UNIX habituales añadirán una nota en el syslog, y algunas veces con un mensaje de error extraño, dado que Nmap realiza la conexión y luego la cierra sin enviar ningún dato\&. Los servicios realmente patéticos morirán cuando ésto pasa, aunque esto no es habitual\&. Un administrador que vea muchos intentos de conexión en sus registros que provengan de un único sistema debería saber que ha sido sondeado con este método\&. +.RE +.PP +\fB\-sU\fR (sondeos UDP) +.RS 4 +Aunque la mayoría de los servicios más habituales en Internet utilizan el protocolo TCP, los servicios +\m[blue]\fBUDP\fR\m[]\&\s-2\u[6]\d\s+2 +también son muy comunes\&. Tres de los más comunes son los servicios DNS, SNMP, y DHCP (puertos registrados 53, 161/162, y 67/68 respectivamente)\&. Dado que el sondeo UDP es generalmente más lento y más difícil que TCP, algunos auditores de seguridad ignoran estos puertos\&. Esto es un error, porque es muy frecuente encontrarse servicios UDP vulnerables y los atacantes no ignoran estos protocolos\&. Afortunadamente, Nmap puede utilizarse para hacer un inventario de puertos UDP\&. +.sp +El sondeo UDP se activa con la opción +\fB\-sU\fR\&. Puede combinarse con un tipo de sondeo TCP como el sondeo SYN (\fB\-sS\fR) para comprobar ambos protocolos al mismo tiempo\&. +.sp +Los sondeos UDP funcionan mediante el envío (sin datos) de una cabecera UDP para cada puerto objetivo\&. Si se obtiene un error ICMP que indica que el puerto no es alcanzable (tipo 3, código 3) entonces se marca el puerto como +cerrado\&. Si se recibe cualquier error ICMP no alcanzable (tipo 3, códigos 1, 2, 9, 10, o 13) se marca el puerto como +filtrado\&. En algunas ocasiones se recibirá una respuesta al paquete UDP, lo que prueba que el puerto está +abierto\&. Si no se ha recibido ninguna respuesta después de algunas retransmisiones entonces se clasifica el puerto como +abierto|filtrado\&. Esto significa que el puerto podría estar abierto o que hay un filtro de paquetes bloqueando la comunicación\&. Puede utilizarse el sondeo de versión (\fB\-sV\fR) para diferenciar de verdad los puertos abiertos de los filtrados\&. +.sp +Uno de las grandes problemas con el sondeo UDP es hacerlo rápidamente\&. Pocas veces llega una respuesta de un puerto abierto o filtrado, lo que obliga a expirar a Nmap y luego a retransmitir los paquetes en caso de que la sonda o la respuesta se perdieron\&. Los puertos cerrados son aún más comunes y son un problema mayor\&. Generalmente envían un error ICMP de puerto no alcanzable\&. Pero, a diferencia de los paquetes RST que envían los puertos TCP cerrados cuando responden a un sondeo SYN o Connect, muchos sistemas imponen una tasa máxima de mensajes ICMP de puerto inalcanzable por omisión\&. Linux y Solaris son muy estrictos con esto\&. Por ejemplo, el núcleo de Linux versión 2\&.4\&.20 limita la tasa de envío de mensajes de destino no alcanzable a uno por segundo (en +net/ipv4/icmp\&.c)\&. +.sp +Nmap detecta las limitaciones de tasa y se ralentiza para no inundar la red con paquetes inútiles que el equipo destino acabará descartando\&. Desafortunadamente, un límite como el que hace el núcleo de Linux de un paquete por segundo hace que un sondeo de 65536 puertos tarde más de 18 horas\&. Puede acelerar sus sondeos UDP incluyendo más de un sistema para sondearlos en paralelo, haciendo un sondeo rápido inicial de los puertos más comunes, sondeando detrás de un cortafuegos, o utilizando la opción +\fB\-\-host\-timeout\fR +para omitir los sistemas que respondan con lentitud\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (sondeos TCP Null, FIN, y Xmas) +.RS 4 +Estos tres tipos de sondeos (aunque puede hacer muchos más a través de la opción +\fB\-\-scanflags\fR +que se describe en la próxima sección) aprovechan una indefinición en la +\m[blue]\fBRFC de TCP\fR\m[]\&\s-2\u[7]\d\s+2 +que diferencia los puertos +abiertos +y +cerrados\&. La página 65 dice que +\(lqsi el estado del puerto [destino] es CERRADO \&.\&.\&.\&. un segmento entrante que contiene un RST hace que se envíe un RST en la respuesta\&.\(rq +Después la página siguiente discute los paquetes que se envían a puertos abiertos sin fijar los bits SYN, RST, o ACK, diciendo: +\(lqes improbable que llegue aquí, pero si lo hace, debe descartar el segmento y volver\&.\(rq +.sp +Cuando se sondean sistemas que cumplen con el texto de esta RFC, cualquier paquete que no contenga los bits SYN, RST, o ACK resultará en el envío de un RST si el puerto está cerrado\&. Mientras que no se enviará una respuesta si el puerto está cerrado\&. Siempre y cuando se incluyan esos tres bits es válida la combinación de cualquiera de los otros tres (FIN, PSH, y URG)\&. Nmap aprovecha esto con tres tipos de sondeo: +.PP +Sondeo Null(\fB\-sN\fR) +.RS 4 +No fija ningún bit (la cabecera de banderas TCP es 0) +.RE +.PP +sondeo FIN (\fB\-sF\fR) +.RS 4 +Solo fija el bit TCP FIN\&. +.RE +.PP +sondeo Xmas (\fB\-sX\fR) +.RS 4 +Fija los bits de FIN, PSH, y URG flags, iluminando el paquete como si fuera un árbol de Navidad\&. +.RE +.sp +Estos tres tipos de sondeos son exactamente los mismos en comportamiento salvo por las banderas TCP que se fijen en los paquetes sonda\&. Si se recibe un paquete RST entonces se considera que el puerto está +cerrado\&. Si no se recibe ninguna respuesta el puerto se marca como +abierto|filtrado\&. El puerto se marca +filtrado +si se recibe un error ICMP no alcanzable (tipo 3, código 1, 2, 3, 9, 10, o 13)\&. +.sp +La ventaja fundamental de este tipo de sondeos es que pueden atravesar algunos cortafuegos que no hagan inspección de estados o encaminadores que hagan filtrado de paquetes\&. Otra ventaja es que este tipo de sondeos son algo más sigilosos que, incluso, un sondeo SYN\&. Sin embargo, no cuente con que pase siempre esto ya que la mayoría de los productos IDS pueden configurarse para detectarlos\&. El problema es que no todos los sistemas siguen el estándar RFC 793 al pie de la letra\&. Algunos sistemas envían respuestas RST a las sondas independientemente de si el puerto está o no cerrado\&. Esto hace que la mayoría de los puertos se marquen como +cerrados\&. Algunos sistemas operativos muy utilizados que hacen ésto son Microsoft Windows, muchos dispositivos Cisco, BSDI, e IBM OS/400\&. Este sondeo no funciona contra sistemas basados en UNIX\&. Otro problema de estos sondeos es que no se puede distinguir los puertos +abiertos +de algunos puertos +filtrados, lo que resulta en la respuesta +abierto|filtrado\&. +.RE +.PP +\fB\-sA\fR (sondeo TCP ACK) +.RS 4 +Este sondeo es distinto de otros que se han discutido hasta ahora en que no puede determinar puertos +abiertos +(o incluso +abiertos|filtrados)\&. Se utiliza para mapear reglas de cortafuegos, y para determinar si son cortafuegos con inspección de estados y qué puertos están filtrados\&. +.sp +La sonda de un sondeo ACK sólo tiene fijada la bandera ACK (a menos que utilice +\fB\-\-scanflags\fR)\&. Cuando se sondean sistemas no filtrados los puertos +abiertos +y +cerrados +devolverán un paquete RST\&. Nmap marca el puerto como +no filtrado, lo que significa que son alcanzables por el paquete ACK, pero no se puede determinar si están +abiertos +o +cerrados\&. Los puertos que no responden o que envían mensajes de error ICMP en respuesta (tipo 3, código 1, 2, 3, 9, 10, o 13), se marcan como +filtrados\&. +.RE +.PP +\fB\-sW\fR (sondeo de ventana TCP) +.RS 4 +El sondeo de ventana («window», N\&. del T\&.) es exactamente igual al sondeo ACK que se aprovecha de un detalle de implementación de algunos sistemas que permite diferenciar puertos abiertos de los cerrados, en lugar de imprimir +no filtrado +cuando se devuelve un RST\&. Hace esto examinando el campo de ventana TCP del paquete RST devuelto\&. Algunos sistemas fijan un tamaño de ventana positivo para puertos abiertos (incluso para paquetes RST) mientras que se utiliza una ventana de tamaño cero para los cerrados\&. Así, en lugar de listar el puerto como +no filtrado +cuando se recibe un RST, el sondeo de ventana permite listar el puerto como +abierto +o +cerrado +en función de si el valor de la ventana TCP en ese paquete RST es positivo o cero, respectivamente\&. +.sp +Este sondeo depende de un detalle de implementación de una minoría de sistemas q que existen en Internet, así que no es siempre fiable\&. Los sistemas que no hacen ésto habitualmente harán que se muestren los puertos como +cerrados\&. Por supuesto, es posible que el sistema no tenga ningún puerto abierto\&. Si la mayoría de los puertos están +cerrados +pero alguno de los números de puertos comunes (como pueda ser el 22, 25 ó 53) están +filtrados, entonces el sistema es posible que sea susceptible a ésto\&. Algunas veces hay sistemas que mostrarán el comportamiento justo contrario\&. Si su sondeo muestra 1000 puertos abiertos y 3 puertos cerrados o filtrados entonces es posible que sean estos últimos los que están abiertos en realidad\&. +.RE +.PP +\fB\-sM\fR (sondeo TCP Maimon) +.RS 4 +El sondeo Maimon debe su nombre a la persona que lo descubrió: Uriel Maimon\&. Describió la técnica en la revista Phrack número 49 (noviembre de 1996)\&. Nmap, que incluye esta técnica, se publicó dos números más tarde\&. Esta técnica es exactamente la misma a los sondeos Null, FIN, y Xmas, pero en los que se envía una sonda FIN/ACK\&. Según el RFC 793 (TCP), se debería generar un paquete RST cuando se responde a dicha sonda independientemente de si el puerto está cerrado o abierto\&. Uriel se dio cuenta, sin embargo, de que muchos sistemas derivados de BSD simplemente descartan el paquete si el puerto está abierto\&. +.RE +.PP +\fB\-\-scanflags\fR (Sondeo TCP a medida) +.RS 4 +Los usuarios realmente avanzados de Nmap no tienen por qué limitarse a los tipos de sondeos preparados que se ofrecen\&. La opción +\fB\-\-scanflags\fR +le permite diseñar su propio sondeo mediante la especificación de banderas TCP arbitrarias\&. Deje volar a su imaginación al tiempo que evita las reglas de los sistemas de detección de intrusos cuyos fabricantes sólo echaron un vistazo a la página de manual de Nmap y añadieron reglas específicas para detectarlo\&. +.sp +La opción +\fB\-\-scanflags\fR +puede ser un valor numérico como el 9 (PSH y FIN), aunque es más sencillo utilizar nombres simbólicos\&. Sólo tienes que juntar una combinación de +URG, +ACK, +PSH, +RST, +SYN, y +FIN\&. Por ejemplo, la configuración +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +fija todas las banderas, aunque no es muy útil para sondear\&. No importa el orden en que se especifiquen los nombres\&. +.sp +Además de poder especificar las banderas que desee se puede especificar el tipo de sondeo TCP (como +\fB\-sA\fR +o +\fB\-sF\fR)\&. Ésto le dice a Nmap cómo debe interpretar las respuestas\&. Por ejemplo, un sondeo SYN considera que si no se recibe respuesta el puerto está +filtrado +mientras que si no se recibe una respuesta en un sondeo FIN se trata como +abierto|filtrado\&. Nmap se comportará igual que para el sondeo tipo base, con la diferencia de que utilizará las banderas TCP que usted especifique\&. Se utiliza el sondeo SYN si no se especifica ningún tipo base\&. +.RE +.PP +\fB\-sI <sistema zombi [:puerto_sonda]>\fR (Sondeo ocioso) +.RS 4 +Este es un método de sondeo avanzado que le permite hacer un sondeo de puertos TCP a ciegas de verdad (lo que significa que no se envía ningún paquete al sistema objetivo desde su dirección IP real)\&. En lugar de ésto se utiliza un ataque con un canal alternativo que se aprovecha de la generación de la secuencia de los identificadores de fragmentación IP del sistema zombi para obtener información de los puertos abiertos en el objetivo\&. Los sistemas IDS mostrarán que el sondeo lo está realizando el sistema zombi que especifique (que debe estar vivo y cumplir algunos requisitos)\&. Este tipo de sondeo tan fascinante es demasiado complejo como para describirlo por completo en esta guía de referencia por lo que escribí y publiqué un documento informal que contiene todos los detalles, el documento está disponible en +\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&. +.sp +Además de ser extraordinariamente sigiloso (debido a su funcionamiento a ciegas), este tipo de sondeo permite determinar las relaciones basadas en IP entre distintos sistemas\&. El listado de puertos muestra los puertos abiertos +\fIdesde la perspectiva del sistema zombi\&.\fR +Así que puede analizar el mismo objetivo con zombis distintos que cree que podrían ser de confianza para éste (a través de las reglas de filtrados de los paquetes o reglas de filtrados de encaminadores)\&. +.sp +Puede añadir un número de puerto separado por dos puntos del sistema zombi si desea analizar un puerto específico del zombi para consultar los cambios IPID\&. Si no lo hace Nmap utilizará el puerto que utiliza para pings TCP por omisión (el puerto 80)\&. +.RE +.PP +\fB\-sO\fR (sondeo de protocolo IP) +.RS 4 +El sondeo de protocolo IP le permite determinar qué protocolos (TCP, ICMP, IGMP, etc\&.) soportan los sistemas objetivo\&. Esto no es, técnicamente, un sondeo de puertos, dado que cambia los números de protocolo IP en lugar de los números de puerto TCP ó UDP\&. Pero también se puede utilizar la opción +\fB\-p\fR +para seleccionar los números de protocolo a analizar, los resultados se muestran en el formato de tabla utilizado para los puertos e incluso utiliza el mismo motor de sondeo que los métodos de sondeo de puertos reales\&. Es tan parecido a un sondeo de puertos que debe tratarse aquí\&. +.sp +El sondeo de protocolos, además de ser útil en sí mismo, demuestra el poder del software de fuentes abiertas («opensource», N\&. del T\&.)\&. Aunque la idea fundamental era bastante sencilla, no había pensado añadirla ni tampoco había habido personas que solicitaran esta funcionalidad\&. Entonces, en el verano de 2000, se le ocurrió la idea a Gerhard Rieger y la implementó escribiendo un parche excelente, enviándolo posteriormente a la lista de correo de nmap\-hackers\&. Incorporé ese parche en el árbol de código de Nmap y publiqué una nueva versión ese mismo día\&. ¡Pocas piezas de programas comerciales tienen usuarios tan entusiastas que diseñan y contribuyen sus propias mejoras! +.sp +El sondeo de protocolos utiliza mecanismos parecidos al sondeo UDP\&. Envía cabeceras de paquetes IP iterando por el campo de 8 bits que indica el protocolo IP, en lugar de iterar por el campo de número de puerto de un paquete UDP\&. Las cabeceras generalmente están vacías y no contienen datos\&. De hecho, ni siquiera tienen una cabecera apropiada para el protocolo que se indica\&. Las tres excepciones son TCP, UDP e ICMP\&. Se incluye una cabecera de protocolo válida para éstos porque algunos sistemas no los enviarán sin ellas y porque Nmap ya tiene funciones para crearlas\&. El sondeo de protocolos espera la recepción de mensajes de ICMP +\fIprotocolo\fR +no alcanzable en lugar de mensajes ICMP puerto no alcanzable\&. Nmap marca el protocolo como +abierto +si recibe una respuesta en cualquier protocolo del sistema objetivo\&. Se marca como +cerrado +si se recibe un error ICMP de protocolo no alcanzable (tipo 3, código 2)\&. Si se reciben otros errores ICMP no alcanzable (tipo 3, códigos 1, 3, 9, 10, o 13) se marca el protocolo como +filtrado +(aunque al mismo tiempo indican que el protocolo ICMP está +abierto)\&. El protocolo se marca como +abierto|filtrado +si no se recibe ninguna respuesta después de las retransmisiones\&. +.RE +.PP +\fB\-b <sistema de rebote ftp>\fR (sondeo de rebote FTP) +.RS 4 +Una funcionalidad interesante en el protocolo FTP (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[8]\d\s+2) es la posibilidad de utilizar conexiones FTP de pasarela\&. Esta opción puede abusarse a muchos niveles así que muchos servidores han dejado de soportarla\&. Una de las formas de abusar de ésta es utilizar el servidor de FTP para hacer un sondeo de puertos a otro sistema\&. Simplemente hace falta decirle al servidor de FTP que envíe un fichero a cada puerto interesante del servidor objetivo cada vez\&. El mensaje de error devuelto indicará si el puerto está abierto o no\&. Esta es una buena manera de atravesar cortafuegos porque, habitualmente, los servidores de FTP de una organización están ubicados en un lugar en el que tienen más acceso a otros sistemas internos que el acceso que tiene un equipo en Internet\&. Nmap puede hacer sondeos con rebotes de FTP con la opción +\fB\-b\fR\&. Esta opción toma un argumento como: +\fIusuario\fR:\fIcontraseña\fR@\fIservidor\fR:\fIpuerto\fR\&. +\fIServidor\fR +es el nombre de la dirección IP del servidor FTP vulnerable\&. Al igual que con una URL normal, se puede omitir +\fIusuario\fR:\fIcontraseña\fR, en caso de que se deseen utilizar credenciales de acceso anónimo (usuario: +anonymous +contraseña:wwwuser@) También se puede omitir el número de puerto (y los dos puntos que lo preceden)\&. Si se omiten se utilizará el puerto FTP estándar (21) en +\fIservidor\fR\&. +.sp +Esta vulnerabilidad era muy habitual en 1997, el año que se publicó Nmap, pero ya ha sido arreglada en muchos sitios\&. Aún siguen existiendo servidores vulnerables así que merece la pena probar este sondeo si lo demás falla\&. Si su objetivo es atravesar un cortafuegos, analice la red objetivo en busca del puerto 21 (o incluso cualquier servicio FTP, si sondea todos los puertos y activa la detección de versiones)\&. Después intente un sondeo de rebote utilizando cada uno\&. Nmap le indicará si el sistema es o no vulnerable\&. Si está intentado ocultar sus huellas no tiene que (y de hecho no debería) limitarse a servidores en la red objetivo\&. En cualquier caso, antes de empezar a sondear Internet al azar para buscar servidores de FTP vulnerables, tenga en cuenta que pocos administradores de sistemas apreciarán el que abuse de sus servidores de esta forma\&. +.RE +.SH "ESPECIFICACIÓN DE PUERTOS Y ORDEN DE SONDEO" +.PP +Nmap ofrece distintas opciones para especificar los puertos que se van a sondear y si el orden de los sondeos es aleatorio o secuencial\&. Estas opciones se añaden a los métodos de sondeos que se han discutido previamente\&. Nmap, por omisión, sondea todos los puertos hasta el 1024 además de algunos puertos con números altos listados en el fichero +nmap\-services +para los protocolos que se sondeen\&. +.PP +\fB\-p <rango de puertos>\fR (Sólo sondea unos puertos específicos) +.RS 4 +Esta opción especifica los puertos que desea sondear y toma precedencia sobre los valores por omisión\&. Puede especificar tanto números de puerto de forma individual, así como rangos de puertos separados por un guión (p\&. ej\&. 1\-1023)\&. Puede omitir el valor inicial y/o el valor final del rango\&. Nmap utilizará 1 ó 65535 respectivamente\&. De esta forma, puede especificar +\fB\-p\-\fR +para sondear todos los puertos desde el 1 al 65535\&. Se permite sondear el puerto cero siempre que lo especifique explícitamente\&. Esta opción especifica el número de protocolo que quiere sondear (de 0 a 255) en el caso de que esté sondeando protocolos IP (\fB\-sO\fR)\&. +.sp +Puede especificar un protocolo específico cuando sondee puertos TCP y UDP si precede el número de puerto con +T: +o +U:\&. El calificador dura hasta que especifique otro calificador\&. Por ejemplo, la opción +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +sondearía los puertos UDP 53,111, y 137, así como los puertos TCP listados\&. Tenga en cuenta que para sondear tanto UDP como TCP deberá especificar la opción +\fB\-sU\fR +y al menos un tipo de sondeo TCP (como +\fB\-sS\fR, +\fB\-sF\fR, o +\fB\-sT\fR)\&. Si no se da un calificador de protocolo se añadirán los números de puerto a las listas de todos los protocolos\&. +.RE +.PP +\fB\-F\fR (Sondeo rápido (puertos limitados)) +.RS 4 +Indica que sólo quiere sondear los puertos listados en el fichero +nmap\-services +que se incluye con nmap (o el fichero de protocolos si indica +\fB\-sO\fR)\&. Esto es más rápido que sondear todos los 65535 puertos de un sistema\&. La diferencia de velocidad con el sondeo TCP por omisión (unos 1650 puertos) no es muy alta dado que esta lista contiene muchos puertos TCP (más de 1200)\&. La diferencia puede ser muy grande si especifica su propio fichero +nmap\-services +más pequeño si utiliza la opción +\fB\-\-datadir\fR\&. +.RE +.PP +\fB\-r\fR (No aleatorizar los puertos) +.RS 4 +Nmap ordena de forma aleatoria los puertos a sondear por omisión (aunque algunos puertos comúnmente accesibles se ponen al principio por razones de eficiencia)\&. Esta aleatorización generalmente es deseable, pero si lo desea puede especificar la opción +\fB\-r\fR +para analizar de forma secuencial los puertos\&. +.RE +.SH "DETECCIÓN DE SERVICIOS Y DE VERSIONES" +.PP +Si le indica a Nmap que mire un sistema remoto le podrá decir que tiene abiertos los puertos 25/tcp, 80/tcp y 53/udp\&. Informará que esos puertos se corresponden habitualmente con un servidor de correo (SMTP), servidor de web (HTTP) o servidor de nombres (DNS), respectivamente, si utilizas su base de datos +nmap\-services +con más de 2\&.200 puertos conocidos\&. Generalmente este informe es correo dado que la gran mayoría de demonios que escuchan en el puerto 25 TCP son, en realidad, servidores de correo\&. ¡Pero no debe confiar su seguridad en este hecho! La gente ejecuta a veces servicios distintos en puertos inesperados +.PP +Aún en el caso de que Nmap tenga razón y el servidor de ejemplo indicado arriba está ejecutando servidores de SMTP, HTTP y DNS ésto no dice mucho\&. Cuando haga un análisis de vulnerabilidades (o tan sólo un inventario de red) en su propia empresa o en su cliente lo que habitualmente también quiere saber es qué versión se está utilizando del servidor de correcto y de DNS\&. Puede ayudar mucho a la hora de determinar qué ataques pueden afectar a un servidor el saber el número de versión exacto de éste\&. La detección de versiones le ayuda a obtener esta información\&. +.PP +La detección de versiones pregunta para obtener más información de lo que realmente se está ejecutando una vez se han detectado los puertos TCP y/o UDP con alguno de los métodos de sondeo\&. La base de datos +nmap\-service\-probes +contiene sondas para consultar distintos servicios y reconocer y tratar distintas respuestas en base a una serie de expresiones\&. Nmap intenta determinar el protocolo del servicio (p\&. ej\&. ftp, ssh, telnet ó http), el nombre de la aplicación (p\&. ej\&. Bind de ISC, http de Apache, telnetd de Solaris), un número de versión, un tipo de dispositivo (p\&. ej\&. impresora o router), la familia de sistema operativo (p\&. ej\&. Windows o Linux) y algunas veces algunos detalles misceláneos como, por ejemplo, si un servidor X acepta cualquier conexión externa, la versión de protocolo SSH o el nombre de usuario Kazaa)\&. Por supuesto, la mayoría de los servicios no ofrecen toda esta información\&. Si se ha compilado Nmap con soporte OpenSSL se conectará también a servidores SSL para determinar qué servicio escucha detrás de la capa de cifrado\&. Se utiliza la herramienta de pruebas RPC de Nmap (\fB\-sR\fR) de forma automática para determinar el programa RPC y el número de versión si se descubren servicios RPC\&. Algunos puertos UDP se quedan en estado +open|filtered +(N\&. del T\&., \*(Aqabierto|filtrado\*(Aq) si un barrido de puertos UDP no puede determinar si el puerto está abierto o filtrado\&. La detección de versiones intentará obtener una respuesta de estos puertos (igual que hace con puertos abiertos) y cambiará el estado a abierto si lo consigue\&. Los puertos TCP en estado +open|filtered +se tratan de forma similar\&. Tenga en cuenta que la opción +\fB\-A\fR +de Nmap actualiza la detección de versiones entre otras cosas\&. Puede encontrar un documento describiendo el funcionamiento, modo de uso, y particularización de la detección de versiones en +\m[blue]\fB\%https://nmap.org/vscan/\fR\m[]\&. +.PP +Cuando Nmap obtiene una respuesta de un servicio pero no encuentra una definición coincidente en la base de datos se imprimirá una firma especial y un URL para que la envíe si sabe lo que está ejecutándose detrás de ese puerto\&. Por favor, tómese unos minutos para enviar esta información para ayudar a todo el mundo\&. Gracias a estos envíos Nmap tiene ahora alrededor de 3\&.000 patrones para más de 350 protocolos distintos como smtp, ftp, http, etc\&. +.PP +La detección de versiones se activa y controla con la siguientes opciones: +.PP +\fB\-sV\fR (Detección de versiones) +.RS 4 +Activa la detección de versiones como se ha descrito previamente\&. Puede utilizar la opción +\fB\-A\fR +en su lugar para activar tanto la detección de versiones como la detección de sistema operativo\&. +.RE +.PP +\fB\-\-allports\fR (No excluir ningún puerto de la detección de versiones) +.RS 4 +La detección de versiones de Nmap omite el puerto TCP 9100 por omisión porque algunas impresoras imprimen cualquier cosa que reciben en este puerto, lo que da lugar a la impresión de múltiples páginas con solicitudes HTTP get, intentos de conexión de SSL, etc\&. Este comportamiento puede cambiarse modificando o eliminando la directiva +Exclude +en +nmap\-service\-probes, o especificando +\fB\-\-allports\fR +para sondear todos los puertos independientemente de lo definido en la directiva +Exclude\&. +.RE +.PP +\fB\-\-version\-intensity <intensidad>\fR (Fijar la intensidad de la detección de versiones) +.RS 4 +Nmap envía una serie de sondas cuando se activa la detección de versiones (\fB\-sV\fR) con un nivel de rareza preasignado y variable de 1 a 9\&. Las sondas con un número bajo son efectivas contra un amplio número de servicios comunes, mientras que las de números más altos se utilizan rara vez\&. El nivel de intensidad indica que sondas deberían utilizarse\&. Cuanto más alto sea el número, mayor las probabilidades de identificar el servicio\&. Sin embargo, los sondeos de alta intensidad tardan más tiempo\&. El valor de intensidad puede variar de 0 a 9\&. El valor por omisión es 7\&. Se probará una sonda independientemente del nivel de intensidad cuando ésta se registra para el puerto objetivo a través de la directiva +nmap\-service\-probes +ports\&. De esta forma se asegura que las sondas de DNS se probarán contra cualquier puerto abierto 53, las sondas SSL contra el puerto 443, etc\&. +.RE +.PP +\fB\-\-version\-light\fR (Activar modo ligero) +.RS 4 +Éste es un alias conveniente para +\fB\-\-version\-intensity 2\fR\&. Este modo ligero hace que la detección de versiones sea más rápida pero también hace que sea menos probable identificar algunos servicios\&. +.RE +.PP +\fB\-\-version\-all\fR (Utilizar todas las sondas) +.RS 4 +Éste es un alias para +\fB\-\-version\-intensity 9\fR, hace que se utilicen todas las sondas contra cada puerto\&. +.RE +.PP +\fB\-\-version\-trace\fR (Trazar actividad de sondeo de versiones) +.RS 4 +Esta opción hace que Nmap imprima información de depuración detallada explicando lo que está haciendo el sondeo de versiones\&. Es un conjunto de lo que obtendría si utilizara la opción +\fB\-\-packet\-trace\fR\&. +.RE +.PP +\fB\-sR\fR (Sondeo RPC) +.RS 4 +Este método funciona conjuntamente con los distintos métodos de sondeo de puertos de Nmap\&. Toma todos los puertos TCP/UDP que se han encontrado y los inunda con órdenes de programa NULL SunRPC con el objetivo de determinar si son puertos RPC y, si es así, los programas y número de versión que están detrás\&. Así, puede obtener de una forma efectiva la misma información que +\fBrpcinfo \-p\fR +aunque el mapeador de puertos («portmapper», N\&. del T\&.) está detrás de un cortafuegos (o protegido por TCP wrappers)\&. Los señuelos no funcionan con el sondeo RPC actualmente\&. Esta opción se activa automáticamente como parte de la detección de versiones (\fB\-sV\fR) si la ha seleccionado\&. Rara vez se utiliza la opción +\fB\-sR\fR +dado que la detección de versiones lo incluye y es más completa\&. +.RE +.SH "DETECCIÓN DE SISTEMA OPERATIVO" +.PP +Uno de los aspectos más conocidos de Nmap es la detección del sistema operativo (SO) en base a la comprobación de huellas TCP/IP\&. Nmap envía una serie de paquetes TCP y UDP al sistema remoto y analiza prácticamente todos los bits de las respuestas\&. Nmap compara los resultados de una docena de pruebas como puedan ser el análisis de ISN de TCP, el soporte de opciones TCP y su orden, el análisis de IPID y las comprobaciones de tamaño inicial de ventana, con su base de datos +nmap\-os\-fingerprints\&. Esta base de datos consta de más de 1500 huellas de sistema operativo y cuando existe una coincidencia se presentan los detalles del sistema operativo\&. Cada huella contiene una descripción en texto libre del sistema operativo, una clasificación que indica el nombre del proveedor (por ejemplo, Sun), el sistema operativo subyacente (por ejemplo, Solaris), la versión del SO (por ejemplo, 10) y el tipo de dispositivo (propósito general, encaminador, conmutador, consola de videojuegos, etc\&.)\&. +.PP +Nmap le indicará una URL donde puede enviar las huellas si conoce (con seguridad) el sistema operativo que utiliza el equipo si no puede adivinar el sistema operativo de éste y las condiciones son óptimas (encontró al menos un puerto abierto y otro cerrado)\&. Si envía esta información contribuirá al conjunto de sistemas operativos que Nmap conoce y la herramienta será así más exacta para todo el mundo\&. +.PP +La detección de sistema operativo activa, en cualquier caso, una serie de pruebas que hacen uso de la información que ésta recoge\&. Una de estas pruebas es la medición de tiempo de actividad, que utiliza la opción de marca de tiempo TCP (RFC 1323) para adivinar cuánto hace que un equipo fue reiniciado\&. Esta prueba sólo funciona en sistemas que ofrecen esta información\&. Otra prueba que se realiza es la clasificación de predicción de número de secuencia TCP\&. Esta prueba mide de forma aproximada cuánto de difícil es crear una conexión TCP falsa contra el sistema remoto\&. Se utiliza cuando se quiere hacer uso de relaciones de confianza basadas en la dirección IP origen (como es el caso de rlogin, filtros de cortafuegos, etc\&.) para ocultar la fuente de un ataque\&. Ya no se hace habitualmente este tipo de malversación pero aún existen muchos equipos que son vulnerables a ésta\&. Generalmente es mejor utilizar la clasificación en inglés como: +\(lqworthy challenge\(rq +(«desafío difícil», N\&. del T\&.) o +\(lqtrivial joke\(rq +(«broma fácil», N\&. del T\&.)\&. Esta información sólo se ofrece en la salida normal en el modo detallado (\fB\-v\fR)\&. También se informa de la generación de números de secuencia IPID cuando se activa el modo detallado conjuntamente con la opción +\fB\-O\fR\&. La mayoría de los equipos estarán en la clase +\(lqincremental\(rq, lo que significa que incrementan el campo ID en la cabecera IP para cada paquete que envían\&. Esto hace que sean vulnerables a algunos ataques avanzados de obtención de información y de falseo de dirección\&. +.PP +Puede encontrar un trabajo traducido a una docena de idiomas que detalla el modo de funcionamiento, utilización y ajuste de la detección de versiones en +\m[blue]\fB\%https://nmap.org/osdetect/\fR\m[]\&. +.PP +La detección de sistema operativo se activa y controla con las siguientes opciones: +.PP +\fB\-O\fR (Activa la detección de sistema operativo) +.RS 4 +Tal y como se indica previamente, activa la detección de sistema operativo\&. También se puede utilizar la opción +\fB\-A\fR +para activar la detección de sistema operativo y de versiones\&. +.RE +.PP +\fB\-\-osscan\-limit\fR (Limitar la detección de sistema operativo a los objetivos prometedores) +.RS 4 +La detección de sistema operativo funcionará mejor si se dispone de un puerto TCP abierto y otro cerrado\&. Defina esta opción si no quiere que Nmap intente siquiera la detección de sistema operativo contra sistemas que no cumplan este criterio\&. Esta opción puede ahorrar mucho tiempo, sobre todo si está realizando sondeos +\fB\-P0\fR +sobre muchos sistemas\&. Sólo es de aplicación cuando se ha solicitado la detección de sistema operativo con la opción +\fB\-O\fR +o +\fB\-A\fR\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Aproximar los resultados de la detección de sistema operativo) +.RS 4 +Cuando Nmap no puede detectar un sistema operativo que encaje perfectamente a veces ofrecerá posibilidades que se aproximen lo suficiente\&. Las opciones tienen que aproximarse mucho al detectado para que Nmap haga esto por omisión\&. Cualquiera de estas dos opciones (equivalentes) harán que Nmap intente aproximar los resultados de una forma más agresiva\&. +.RE +.SH "CONTROL DE TIEMPO Y RENDIMIENTO" +.PP +Una de las prioridades durante el desarrollo de Nmap ha sido siempre el rendimiento\&. Un sondeo por omisión (\fBnmap \fR\fB\fInombre_de_sistema\fR\fR) de cualquier sistema en una red local tarda un quinto de segundo\&. Esto es menos que el tiempo que uno tarda en parpadear, pero se va sumando al tiempo que se tarda cuando se realiza un sondeo sobre decenas o centenares o miles de equipos\&. Además, ciertas opciones de sondeo como puedan ser el sondeo UDP y la detección de versiones pueden incrementar los tiempos de sondeos de forma sustancial\&. También puede afectar a este tiempo algunas configuraciones de sistemas cortafuegos, especialmente cuando implementan limitaciones a la tasa de respuestas\&. Aunque Nmap trabaja en paralelo y tiene muchos algoritmos avanzados para acelerar estos sondeos, el usuario tiene el control en última instancia de cómo funciona éste\&. Los usuarios con experiencia pueden definir las órdenes a Nmap cuidadosamente para obtener sólo la información que necesitan mientras que, al mismo tiempo, cumplen las limitaciones de tiempo que tengan\&. +.PP +Algunas técnicas que pueden ayudar a mejorar los tiempos de sondeo son el limitar el número de pruebas que no sean críticas y actualizar a la última versión de Nmap (se hacen mejoras de rendimiento con cierta frecuencia)\&. La optimización de los parámetros de control de tiempo pueden introducir también diferencias significativas\&. Las opciones aplicables se detallan a continuación\&. +.PP +Algunas opciones aceptan un parámetro +tiempo\&. Este valor se especifica, por omisión, en milisegundos, aunque puede seguirlo de \(oqs\(cq, \(oqm\(cq, o \(oqh\(cq para indicar segundos, minutos, u horas\&. Por tanto, el valor +900000, +900s, y +15m +hacen exáctamente lo mismo al aplicarse a la opción +\fB\-\-host\-timeout\fR\&. +.PP +\fB\-\-min\-hostgroup <numsists>\fR; \fB\-\-max\-hostgroup <numsists>\fR (Ajustar el tamaño del grupo para los sondeos paralelos) +.RS 4 +Nmap tiene la capacidad de hacer un sondeo de puertos o versiones sobre múltiples sistemas en paralelo\&. Hace eso dividiendo el espacio de direcciones IP en grupos y analizando un grupo cada vez\&. Habitualmente es más eficiente utilizar grupos grandes\&. La contrapartida es que los resultados por sistema no se pueden dar hasta que se ha terminado de analizar todo el grupo\&. En este caso, si Nmap empezara con un tamaño de grupo de 50, el usuario no obtendría ningún resultado hasta que termine con los primeros 50 (excepto las actualizaciones que envía el modo detallado) +.sp +Nmap tiene una implementación de compromiso por omisión para resolver este conflicto\&. Empieza los sondeos con un tamaño de grupo inferior a cinco para que los primeros resultados se obtengan con rapidez y después se incrementa el tamaño de grupo hasta, como mucho, 1024\&. El número exacto por omisión depende de las opciones dadas en la ejecución\&. Nmap utiliza grupos más grandes para los sondeos UDP y para aquellos sondeos TCP con pocos puertos por razones de eficiencia\&. +.sp +Nmap nunca excede el tamaño indicado cuando éste se especifica con +\fB\-\-max\-hostgroup\fR\&. Si se indica un valor mínimo en +\fB\-\-min\-hostgroup\fR +Nmap intentará mantener el tamaño de los grupos por encima de ese nivel\&. Nmap puede tener que utilizar grupos más pequeños si no hay suficientes sistemas objetivo en una interfaz dada para cumplir el mínimo especificado\&. Se pueden especificar ambos valores para mantener el tamaño de grupo dentro de un rango específico, aunque ésto es poco habitual\&. +.sp +El uso principal de esta opción es el de especificar el tamaño de grupo mínimo para que los sondeos se ejecuten más rápidamente\&. 256 es un valor habitual para sondear la red en trozos del tamaño de una clase C\&. Si se trata de un sondeo con muchos puertos no sirve de mucho incrementar ese número\&. Si los sondeos son de pocos puertos puede ayudar utilizar un tamaño de grupo de 2048 o más elementos\&. +.RE +.PP +\fB\-\-min\-parallelism <numsondas>\fR; \fB\-\-max\-parallelism <numsondas>\fR (Ajustar el número de sondas enviadas en paralelo) +.RS 4 +Esta opción controla el número de sondas activas para un grupo de sistemas\&. Éstas se utilizan para los sondeos de puertos y el descubrimiento de equipos\&. Por omisión, Nmap calcula un valor ideal del número de sondas a enviar en paralelo basado en el rendimiento de la red\&. Si se pierden paquetes Nmap reduce este valor para ir más lento y permitir menos sondas activas\&. El valor ideal de las sondas se incrementará a medida que la red muestre que puede utilizarse de nuevo\&. Estas opciones ponen un valor mínimo o máximo a esa variable\&. Por omisión, el valor ideal puede ser inferior a 1 si la red no es fiable e incrementarse a varios cientos si ésta funciona correctamente\&. +.sp +Lo más habitual es fijar el valor +\fB\-\-min\-parallelism\fR +a un número mayor que uno para que los sondeos contra sistemas o redes poco eficientes sean rápidos\&. Esta es una opción que tiene sus riesgos, ya que si se define un valor demasiado elevado se puede reducir la precisión del sondeo\&. Si se fija también se impide a Nmap controlar el paralelismo de forma dinámica basándose en las condiciones de la red\&. Un valor razonable puede ser diez, aunque sólo debe ajustarse como último recurso\&. +.sp +A veces se fija la opción +\fB\-\-max\-parallelism\fR +a uno para evitar que Nmap envíe más de una sonda a la vez a los sistemas\&. Esto puede ser útil conjuntamente con +\fB\-\-scan\-delay\fR +(del que se habla más adelante), aunque habitualmente es suficiente con utilizar este último por sí sólo\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout <tiempo>\fR, \fB\-\-max\-rtt\-timeout <tiempo>\fR, \fB\-\-initial\-rtt\-timeout <tiempo>\fR (Ajustar expiración de sondas) +.RS 4 +Nmap mantiene un valor de expiración en ejecución para saber cuánto tiempo debe esperar para recibir la respuesta a una sonda o para retransmitir la sonda\&. Este valor está calculado en base a los tiempos de respuesta de las sondas previamente enviadas\&. El valor de expiración puede llegar a ser de varios segundos si se demuestra que la latencia de la red es significativa y variable\&. También empieza en un valor conservador (alto) y puede mantenerse en ese valor durante un tiempo cuando Nmap sondee equipos que no respondan\&. +.sp +Se pueden recortar los tiempos de análisis de forma apreciable si se especifican valores para +\fB\-\-max\-rtt\-timeout\fR +y +\fB\-\-initial\-rtt\-timeout\fR +por debajo de los de por omisión\&. Esto es especialmente verdadero en sondeos en los que no se envían paquetes ICMP (\fB\-P0\fR) y en aquellos realizados en redes con mucho filtrado\&. Sin embargo, no se debería establecer a valores muy agresivos\&. El sondeo puede acabar tardando más de lo esperado si se especifica un valor bajo que hace que las sondas expiren y se retransmitan mientras está llegando la respuesta\&. +.sp +En el caso de que todos los sistemas estén en una red local al equipo que sondea, un valor razonablemente agresivo para +\fB\-\-max\-rtt\-timeout\fR +es 100 milisegundos\&. Si se está rutando, primero envíe un ping a un equipo en la red con la herramienta ICMP ping, o con una herramienta para construir paquetes a medida como hping2 dado que es más probable que atraviese cualquier cortafuegos\&. Consulte el tiempo máximo de la ronda (tiempo entre solicitud y respuesta) después de haber enviado unos diez paquetes\&. Una vez obtenido ese valor puede utilizarlo el doble de éste para +\fB\-\-initial\-rtt\-timeout\fR +y triplicarlo o cuadruplicarlo para +\fB\-\-max\-rtt\-timeout\fR\&. Yo no configuro habitualmente el valor máximo rtt por debajo de 100ms, independientemente del valor que den los ping\&. Ni tampoco lo pongo por encima de 1000ms\&. +.sp +La opción +\fB\-\-min\-rtt\-timeout\fR +se utiliza rara vez, aunque puede ser útil cuando la red es tan poco fiable que incluso los valores por omisión son demasiado agresivos\&. Dado que Nmap sólo reduce el tiempo al mínimo cuando la red parece fiable este valor es poco habitual y debería reportarse como una errata en la lista de correo nmap\-dev\&. +.RE +.PP +\fB\-\-max\-retries <reintentos>\fR (Especifica el número máximo de sondas de puertos que se retransmiten) +.RS 4 +Un puerto podría estar filtrado si Nmap no recibe ninguna respuesta a una sonda de análisis de puertos\&. O puede que la sonda o la respuesta a ésta se perdiera en la red\&. También puede darse el caso de que el sistema objetivo tenga una limitación de tasa de tráfico que haga que la respuesta quede bloqueada temporalmente\&. Así, Nmap lo intenta de nuevo retransmitiendo la sonda inicial\&. Puede que lo haga más de una vez, si Nmap detecta que hay problemas en el funcionamiento de la red, antes de abandonar los sondeos de un puerto\&. Cuando el rendimiento es crítico, se pueden acelerar los sondeos limitando el número de retransmisiones permitidas\&. Puede especificar +\fB\-\-max\-retries 0\fR +para que no se haga ninguna retransmisión, aunque no se recomienda\&. +.sp +El valor por omisión (cuando no hay una plantilla +\fB\-T\fR) es permitir las retransmisiones\&. Nmap generalmente sólo hará una retransmisión si la red parece fiable y el sistema objetivo no tiene una limitación de tasa de tráfico\&. Es por esto por lo que la mayoría de los sondeos no se verán afectados si reduce el valor de +\fB\-\-max\-retries\fR +a un valor pequeño, como pudiera ser tres\&. Estos valores pueden hacer que los sondeos a equipos lentos (limitados en tasa) sean más rápidos\&. Puede que pierda información cuando Nmap dé por finalizado el análisis de un puerto antes de tiempo, aunque eso puede ser mejor que hacer que la expire el +\fB\-\-host\-timeout\fR +y se pierda toda la información del objetivo\&. +.RE +.PP +\fB\-\-host\-timeout <tiempo>\fR (Abandona equipos objetivo lentos) +.RS 4 +Hay algunos equipos en los que simplemente se tarda +\fIdemasiado\fR +en sondearlos\&. Esto puede deberse a hardware de red de bajo rendimiento o poco fiable o bien a software, limitaciones de tasas de paquetes o un cortafuegos demasiado restrictivo\&. Puede llegar a darse que Nmap dedica la mayor parte del tiempo de análisis en sondear un porcentaje reducido de sistemas\&. A veces es mejor reducir las bajas y saltarse esos sistemas inicialmente\&. Esto puede hacerse con la opción +\fB\-\-host\-timeout\fR, indicando el tiempo máximo que está dispuesto a esperar\&. Yo especifico habitualmente +30m +para asegurarse de que Nmap no gasta más de media hora en un solo sistema\&. Tenga en cuenta que Nmap puede estar sondeando otros equipos al mismo tiempo durante esa media hora, por lo que no se pierde todo ese tiempo\&. Cualquier sistema que expire se salta\&. No se imprimirá la tabla de puertos, la detección de sistema operativo o la detección de versiones para ese sistema\&. +.RE +.PP +\fB\-\-scan\-delay <tiempo>\fR; \fB\-\-max\-scan\-delay <tiempo>\fR (Ajusta la demora entre sondas) +.RS 4 +Esta opción hace que Nmap espere al menos el tiempo indicado entre cada sonda enviada a un sistema determinado\&. Esto es muy útil cuando se quiere limitar la tasa de tráfico\&. Los sistemas Solaris (entre otros) responderán a paquetes de sondeos UDP con sólo un mensaje ICMP por segundo\&. Enviar más que eso con Nmap sería perder el tiempo\&. Un valor de +1s +para +\fB\-\-scan\-delay\fR +hará que Nmap se mantenga a esa velocidad reducida\&. Nmap intenta detectar limitaciones de tasa y ajustar la demora del sondeo como considere necesario, pero a veces viene bien especificarlo de forma explícita si ya sabe qué valor es mejor\&. +.sp +El sondeo se ralentiza de forma drástica cuando Nmap incrementa el valor del tiempo de espera para poder tratar las limitaciones de tasa\&. Puede utilizar la opción +\fB\-\-max\-scan\-delay\fR +para indicar el tiempo máximo de espera que permitirá Nmap\&. Si especifica un valor muy pequeño tendrá retransmisiones inútiles de paquetes y posiblemente no detecte puertos para los que el objetivo implemente tasas de tráfico estrictas\&. +.sp +También se puede usar +\fB\-\-scan\-delay\fR +para evitar sistemas de detección y prevención de intrusos (IDS/IPS) basados en umbrales\&. +.RE +.PP +\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (Fija una plantilla de tiempos) +.RS 4 +Algunas personas encuentran confusos los controles de grano fino explicados previamente, aunque éstos sean muy potentes y efectivos\&. Además, se puede a veces tardar más tiempo en encontrar los valores más apropiados que en hacer el análisis que se quiere optimizar\&. Nmap ofrece un acercamiento más sencillo, basado en seis plantillas de tiempos\&. Puede especificar cualquiera de éstas con la opción +\fB\-T\fR +seguido de un número o su nombre\&. Los nombre de las plantillas son: paranoico (0), sigiloso (1), amable (2), normal (3), agresivo (4) y loco (5) (respectivamente "paranoid", "sneaky", "polite", "normal", "aggressive" e "insane", N\&. de\&. T\&.)\&. Las primeras dos se utilizan para evadir IDS\&. El modo amable reduce el sondeo para que éste utilice menos ancho de banda y menos recursos de los sistemas analizados\&. El modo normal es el valor por omisión, así que la opción +\fB\-T3\fR +no hace nada realmente\&. El modo agresivo hace que los sondeos sean más rápidos al asumir que está en una red razonablemente más rápida y fiable\&. En modo loco asume que está en una red extraordinariamente rápida o que está dispuesto a sacrificar fiabilidad por velocidad\&. +.sp +Estas plantillas permiten que el usuario especifique cuan agresivo quiere ser, al mismo tiempo que deja que sea Nmap el que escoja los valores exactos de tiempos\&. Las plantillas hacen también algunos ajustes menores de velocidad para los cuales no existe aún una opción de control de grano fino\&. Por ejemplo, +\fB\-T4\fR +prohíbe que la expiración en sondeos dinámicos exceda los 10ms para puertos TCP y +\fB\-T5\fR +limita ese valor a 5 milisegundos\&. Las plantillas pueden utilizarse combinadas con controles de grano fino, siempre que se especifique primero la plantilla\&. Si no lo hace así los valores especificados por la plantilla modificarán los valores que defina como opción\&. Le recomiendo utilizar +\fB\-T4\fR +cuando sondee redes razonablemente modernas y fiables\&. Mantenga esa opción al principio de la línea de órdenes aún cuando especifique otras opciones de control de grano fino para poder beneficiarse de las optimizaciones menores que activa\&. +.sp +Le recomiendo que empiece siempre con +\fB\-T4\fR +si está utilizando una conexión de banda ancha o conexión Ethernet decente\&. Algunas personas adoran la opción +\fB\-T5\fR +aunque es demasiado agresiva para mi gusto\&. Otras personas especifican la opción +\fB\-T2\fR +porque piensan que es menos probable que bloqueen sistemas o porque se consideran a sí mismos amables en general\&. Muchas veces no se dan cuenta de lo lenta que +\fB\-T Polite\fR +es realmente\&. Su sondeo puede llegar a tardar diez veces más que un sondeo por omisión\&. Dado que las caídas de sistemas y problemas de ancho de banda son raros con las opciones de tiempos por omisión (\fB\-T3\fR), lo recomiendo habitualmente para las personas cuidadosas\&. Para reducir estos problemas es más efectivo omitir la detección de versiones que jugar con los valores de tiempos\&. +.sp +Mientras que puede ser útil evitar alarmas de IDS con +\fB\-T0\fR +y +\fB\-T1\fR, éste tardará mucho más tiempo para sondear miles de sistemas o puertos\&. Para este tipo de sondeos puede que prefiera fijar los valores exactos de tiempos que necesita antes que utilizar los valores predefinidos para +\fB\-T0\fR +y +\fB\-T1\fR\&. +.sp +Los efectos principales del uso de +\fBT0\fR +es la serialización de los sondeos de forma que sólo se sondea un puerto cada vez, y se espera cinco minutos antes de enviar cada sonda\&. Las opciones +\fBT1\fR +y +\fBT2\fR +son similares pero sólo esperan 15 y 0\&.4 segundos entre sondas, respectivamente\&. El comportamiento por omisión de Nmap es +\fBT3\fR, que incluye sondeos en paralelo\&. +\fBT4\fR +es equivalente a especificar +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR +y fija el valor máximo para las demoras de sondeos TCP a 10 milisegundos\&. +\fBT5\fR +hace lo mismo que +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 15m\fR +así como definir el valor máximo para las demoras de sondeos TCP a 5ms\&. +.RE +.SH "EVASIÓN DE CORTAFUEGOS/IDS Y FALSIFICACIÓN" +.PP +Muchos pioneros de Internet habían previsto una red global abierta con un espacio de direcciones IP universal que permitiese conexiones virtuales entre dos nodos cualquiera\&. Esto permitiría a los equipos actuar como verdaderos iguales, sirviendo y recuperando información el uno del otro\&. La gente podría acceder a todos los sistemas de su casa desde el trabajo, cambiando las propiedades del control del clima o desbloqueando puertas\&. Esta visión de una conectividad universal fue sofocada por la escasez del espacio de direcciones y los problemas de seguridad\&. Al comienzo de la década de los años 90, las organizaciones empezaron a replegar cortafuegos con el propósito de reducir la conectividad\&. Se acordonaron redes enormes para protegerlas de la Internet no filtrada con pasarelas («proxies», N\&. del T\&.) de aplicación, sistemas de traducción de direcciones de red y filtros de paquetes\&. Del flujo sin restricciones de la información se pasó a una regulación estricta de los canales de comunicación aprobados y del contenido que pasa por ellos\&. +.PP +Los filtros de red como los cortafuegos pueden hacer muy difícil el análisis de una red\&. Esto no va a ser más fácil en el futuro, ya que uno de los objetivos de estos dispositivos es generalmente limitar el reconocimiento casual de la red\&. En cualquier caso, Nmap ofrece varias funcionalidades para ayudar a entender estas redes complejas, y que también sirven para verificar que los filtros funcionan como se espera de ellos\&. Incluso tiene mecanismos para saltarse las defensas que no hayan sido implementadas del todo correctamente\&. Uno de los mejores métodos de entender la posición de la seguridad de su red es intentar comprometerla\&. Empiece a pensar como un atacante, e intenta utilizar las técnicas de esta sección contra sus propias redes\&. Lance un sondeo de rebote FTP, un sondeo pasivo, un ataque de fragmentación, o intente realizar un túnel desde una de sus propias pasarelas\&. +.PP +Las compañías, además de restringir la actividad de red, están monitorizando cada vez más el tráfico con sistemas de detección de intrusos (IDS, «Intrusion Detection Systems», N\&. del T\&.)\&. Todos los IDS principales vienen preinstalados con reglas diseñadas para detectar sondeos de Nmap porque, a veces, se realizan sondeos previos a un ataque\&. Muchos de estos productos han mutado recientemente para convertirse en sistemas de +\fIprevención\fR +de intrusiones (IPS) que bloquean activamente el tráfico reconocido como maligno\&. Desafortunadamente para los administradores de redes y para los fabricantes de IDS es muy difícil detectar las malas intenciones analizando los datos de los paquetes\&. Los atacantes con paciencia, habilidad y con la ayuda de ciertas opciones de Nmap pueden, generalmente, esquivar el análisis de los IDS sin ser detectados\&. Mientras tanto, los administradores deben lidiar con un alto número de falsos positivos debido a que algunas actividades inocentes se diagnostican erróneamente y generan alarmas o se bloquean\&. +.PP +Algunas personas sugieren que Nmap no debería ofrecer funcionalidades de evasión de cortafuegos o para esquivar los IDS, argumentando que es igual de probable que las funcionalidades las utilicen los atacantes como que las utilicen los administradores para mejorar la seguridad\&. El problema con esta forma de pensar es que los atacantes van a utilizar estos métodos de todas formas: encontrarían otra herramienta para hacerlo o parchearían a Nmap para añadírsela\&. Al mismo tiempo, los administradores tendrían muchos más problemas para hacer su trabajo\&. Es mucho mejor defensa utilizar servidores FTP modernos y parcheados que intentar prevenir la distribución de herramientas que permitan la implementación de ataques de rebote FTP\&. +.PP +No hay ninguna herramienta mágica (u opción de Nmap) que permita detectar y evitar cortafuegos y sistemas IDS\&. Esto requiere habilidad y experiencia\&. Un tutorial va más allá del alcance de esta guía de referencia, que sólo lista las opciones relevantes y describe lo que hacen\&. +.PP +\fB\-f\fR (fragmentar los paquetes); \fB\-\-mtu\fR (utilizar el MTU especificado) +.RS 4 +La opción +\fB\-f\fR +hace que el sondeo solicitado (incluyendo los sondeos ping) utilicen paquetes IP fragmentados pequeños\&. La idea es dividir la cabecera del paquete TCP entre varios paquetes para hacer más difícil que los filtros de paquetes, sistemas de detección de intrusos y otras molestias detecten lo que se está haciendo\&. ¡Tenga cuidado con esta opción! Algunos programas tienen problemas para manejar estos paquetes tan pequeños\&. El viejo sniffer llamado Sniffit da un fallo de segmentación inmediatamente después de recibir el primero de estos pequeños fragmentos\&. Especifica esta opción una sola vez y Nmap dividirá los paquetes en ocho bytes o menos después de la cabecera de IP\&. De esta forma, una cabecera TCP de veinte bytes se dividiría en 3 paquetes\&. Dos con ocho bytes de cabecera TCP y uno con los últimos ocho\&. Obviamente, cada fragmento tiene su propia cabecera IP\&. Especifica la opción +\fB\-f\fR +otra vez para utilizar fragmentos de dieciséis bytes (reduciendo la cantidad de fragmentos)\&. O puedes especificar tu propio tamaño con la opción +\fB\-\-mtu\fR\&. No utilice la opción +\fB\-f\fR +si utiliza +\fB\-\-mtu\fR\&. El tamaño debe ser múltiplo de ocho\&. Aunque la utilización de paquetes fragmentados no le ayudará a saltar los filtros de paquetes y cortafuegos que encolen todos los fragmentos IP (como cuando se utiliza la opción CONFIG_IP_ALWAYS_DEFRAG del núcleo de Linux), algunas redes no pueden tolerar la pérdida de rendimiento que esto produce y deshabilitan esa opción\&. Otros no pueden habilitar esta opción porque los fragmentos pueden tomar distintas rutas para entrar en su red\&. Algunos sistemas defragmentan los paquetes salientes en el núcleo\&. Un ejemplo de ésto es Linux con el módulo de seguimiento de conexiones de iptables\&. Realice un sondeo con un programa de captura de tráfico, como Ethereal, para asegurar que los paquetes que se envían están fragmentándose\&. Intente utilizar la opción +\fB\-\-send\-eth\fR, si su sistema operativo le está causando problemas, para saltarse la capa IP y enviar tramas directamente a la capa Ethernet en crudo\&. +.RE +.PP +\fB\-D <señuelo1 [,señuelo2][,ME],\&.\&.\&.>\fR (Esconde un sondeo con señuelos) +.RS 4 +Realiza un sondeo con señuelos\&. Esto hace creer que el/los equipo/s que utilice como señuelos están también haciendo un sondeo de la red\&. De esta manera sus IDS pueden llegar a informar de que se están realizando de 5 a 10 sondeos de puertos desde distintas direcciones IP, pero no sabrán qué dirección IP está realizando el análisis y cuáles son señuelos inocentes\&. Aunque esta técnica puede vencerse mediante el seguimiento del camino de los encaminadores, descarte de respuesta («response\-dropping», N\&. del T\&.), y otros mecanismos activos, generalmente es una técnica efectiva para esconder su dirección IP\&. +.sp +Se debe separar cada equipo de distracción mediante comas, y puede utilizar +ME +(«YO», N\&. del T\&.) como uno de los señuelos para representar la posición de su verdadera dirección IP\&. Si pone +ME +en la sexta posición o superior es probable que algunos detectores de sondeos de puertos habituales (como el excelente scanlogd de Solar Designer) ni siquiera muestren su dirección IP\&. Si no utiliza +ME, Nmap le pondrá en una posición aleatoria\&. +.sp +Tenga en cuenta que los equipos que utilice como distracción deberían estar conectados o puede que accidentalmente causes un ataque de inundación SYN a sus objetivos\&. Además, sería bastante sencillo determinar qué equipo está realmente haciendo el sondeo si sólo uno está disponible en la red\&. Puede que quiera utilizar direcciones IP en lugar de nombres (de manera que no aparezca en los registros del servidor de nombres de los sistemas utilizados como señuelo)\&. +.sp +Se utilizan los señuelos tanto para el sondeo de ping inicial (si se utiliza ICMP, SYN, ACK, o cualquier otro) como durante la fase de sondeo\&. También se utilizan los señuelos durante la detección de sistema operativo (\fB\-O\fR)\&. Los señuelos no funcionarán con la detección de versión o el sondeo TCP connect()\&. +.sp +Vale la pena tener en cuenta que utilizar demasiados señuelos puede ralentizar el sondeo y potencialmente hacerlo menos exacto\&. Además, algunos proveedores de acceso a Internet filtrarán los paquetes falsificados, aunque hay muchos que no lo hacen\&. +.RE +.PP +\fB\-S <Dirección_IP>\fR (Falsifica la dirección de origen) +.RS 4 +Nmap puede que no sea capaz de determinar tu dirección IP en algunas ocasiones (Nmap se lo dirá si pasa)\&. En esta situación, puede utilizar la opción +\fB\-S\fR +con la dirección IP de la interfaz a través de la cual quieres enviar los paquetes\&. +.sp +Otro uso alternativo de esta opción es la de falsificar la dirección para que los objetivos del análisis piensen que +\fIalgún otro\fR +los está sondeando\&. ¡Imagine una compañía a los que les sondea repetidamente la competencia! Generalmente es necesaria la opción +\fB\-e\fR +si lo quiere utilizar así, y también sería recomendable la opción +\fB\-P0\fR\&. +.RE +.PP +\fB\-e <interfaz>\fR (Utilizar la interfaz especificada) +.RS 4 +Indica a Nmap a través de qué interfaz debe enviar y recibir los paquetes\&. Nmap debería detectar esto automáticamente, pero se lo dirá si no\&. +.RE +.PP +\fB\-\-source\-port <número_de_puerto>;\fR \fB\-g <número_de_puerto>\fR (Falsificar el puerto de origen) +.RS 4 +Un error de configuración sorprendentemente común es confiar en el tráfico basándose únicamente en el número de puerto origen\&. Es fácil entender por qué pasa esto\&. Un administrador que está configurando su nuevo y flamante cortafuegos, recibe de repente quejas de todos sus usuarios desagradecidos que le dicen que sus aplicaciones han dejado de funcionar\&. En particular, puede romperse el DNS porque las respuestas UDP de DNS de servidores externos ya no pueden entrar en la red\&. Otro ejemplo habitual es el caso del FTP\&. En una transferencia activa de FTP, el servidor remoto intenta establecer una conexión de vuelta con el cliente para transferir el archivo solicitado\&. +.sp +Existen soluciones seguras para estos problemas, como las pasarelas en el nivel de aplicación o los módulos de cortafuegos que realizan un análisis del protocolo\&. Desgraciadamente, también hay soluciones más fáciles y menos seguras\&. Al darse cuenta que las respuestas de DNS vienen del puerto 53 y que las conexiones activas de FTP vienen del puerto 20, muchos administradores caen en la trampa de configurar su sistema de filtrado para permitir el tráfico entrante desde estos puertos\&. Generalmente asumen que ningún atacante se dará cuenta de estos agujeros en el cortafuegos ni los aprovechará\&. En otros casos, los administradores consideran esto una solución a corto plazo hasta que puedan implementar una solución más segura\&. Y después se olvidan de hacer la mejora de la seguridad\&. +.sp +Los administradores de red con mucho trabajo no son los únicos que caen en esta trampa\&. Muchos productos se lanzan al mercado con estas reglas inseguras\&. Hasta Microsoft lo ha hecho\&. Los filtros de IPsec que se preinstalan con Windows 2000 y Windows XP contienen una regla implícita que permite todo el tráfico TCP o UDP desde el puerto 88 (Kerberos)\&. Otro caso conocido es el de las versiones de Zone Alarm Firewall Personal que, hasta la versión 2\&.1\&.25, permitían cualquier paquete entrante UDP desde el puerto 53 (DNS) o 67 (DHCP)\&. +.sp +Nmap ofrece las opciones +\fB\-g\fR +y +\fB\-\-source\-port\fR +(son equivalentes) para aprovecharse de estas debilidades\&. Simplemente indique el número de puerto y Nmap enviará los paquetes desde ese puerto cuando sea posible\&. Nmap debe utilizar distintos números de puerto para ciertos tipos de prueba en la detección de sistema operativo para que funcionen correctamente, y las solicitudes de DNS ignoran la opción +\fB\-\-source\-port\fR +porque Nmap depende de las librerías del sistema para hacerlas\&. Esta opción se soporta completamente en muchos sondeos TCP, incluyendo el sondeo SYN, al igual que los sondeos UDP\&. +.RE +.PP +\fB\-\-data\-length <número>\fR (Añadir datos aleatorios a los paquetes enviados) +.RS 4 +Normalmente Nmap envía paquetes mínimos que contienen sólo la cabecera\&. Así, los paquetes TCP que envía son generalmente de 40 bytes y las solicitudes echo de ICMP son de tan sólo 28\&. Esta opción le dice a Nmap que añada el número indicado de bytes aleatorios a la mayoría de los paquetes que envía\&. Esta opción no afecta a los paquetes enviados para la detección de sistema operativo (\fB\-O\fR), pero sí a la mayoría de los paquetes de ping y de sondeo de puertos\&. Esta opción hace que el sondeo sea un poco más lento, pero también que el sondeo sea un poco más difícil de detectar\&. +.RE +.PP +\fB\-\-ttl <valor>\fR (Indica el valor del campo tiempo\-de\-vida de la cabecera IP) +.RS 4 +Establece el campo tiempo\-de\-vida («time\-to\-live», N\&. del T\&.) en la cabecera de los paquetes IPv4 al valor especificado\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Mezclar aleatoriamente la lista de equipos a sondear) +.RS 4 +Indica a Nmap que debe mezclar aleatoriamente cada grupo de hasta 8096 equipos antes de hacer un sondeo\&. Esto puede hacer que el sondeo sea menos obvio para algunos sistemas de monitorización de la red, especialmente cuando se combina con las opciones que ralentizan el sondeo\&. Si quiere mezclar aleatoriamente listas más grandes, incremente el valor de la constante PING_GROUP_SZ en +nmap\&.h +y recompile el programa\&. Una solución alternativa es generar la lista de sistemas a sondear con un sondeo de lista (\fB\-sL \-n \-oN \fR\fB\fIfichero\fR\fR), ordenarlo aleatoriamente con un script de Perl, y luego darle a Nmap la lista entera con la opción +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac <dirección MAC, prefijo o nombre del fabricante>\fR (Falsifica la dirección MAC) +.RS 4 +Solicita a Nmap que utilice la MAC dada para todas las tramas de Ethernet enviadas\&. Esta opción activa implícitamente la opción +\fB\-\-send\-eth\fR +para asegurar que Nmap envía los paquetes del nivel Ethernet\&. La MAC dada puede tener varios formatos\&. Nmap elegirá una MAC completamente aleatoria para la sesión si se utiliza el valor +\(lq0\(rq\&. Nmap utilizará la MAC indicada si el parámetro es un número par de dígitos hexadecimales (separando opcionalmente cada dos dígitos con dos puntos)\&. Nmap rellenará los 6 bytes restantes con valores aleatorios si se dan menos de 12 dígitos hexadecimales\&. Si el argumento no es ni 0 ni un conjunto de dígitos hexadecimales, Nmap mirará en +nmap\-mac\-prefixes +para encontrar un fabricante cuyo nombre coincida con el parámetro utilizado (en esta búsqueda no diferenciará entre mayúsculas y minúsculas)\&. Si se encuentra algún fabricante, Nmap utilizará el OUI del fabricante (prefijo de 3 bytes) y rellenará los otros 3 bytes aleatoriamente\&. Ejemplos de argumentos +\fB\-\-spoof\-mac\fR +son: +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2, y +Cisco\&. +.RE +.PP +\fB\-\-badsum\fR (Envía paquetes con sumas de comprobación TCP/UDP erróneas) +.RS 4 +Esta opción le indica a Nmap que debe generar sumas de comprobación inválidas para los paquetes que se envíen a los equipos objetivos\&. Cualquier respuesta que se reciba vendrá de un cortafuegos o un IDS que no comprobó la suma, dado que la mayoría de las pilas IP descartan estos paquetes\&. Para obtener más información de esta técnica puede consultar +\m[blue]\fB\%https://nmap.org/p60-12.txt\fR\m[] +.RE +.SH "SALIDA" +.PP +La utilidad de una herramienta de seguridad está limitada por la salida que genera\&. De poco sirven pruebas y algoritmos complejos si luego no se presentan de una forma organizada y comprensible\&. Dada la cantidad de formas en las que puede utilizarse Nmap, tanto por personas como por otros programas, no es posible complacer a todos con un único formato\&. Por ello Nmap ofrece varios formatos, incluyendo el modo interactivo para que los humanos lo lean directamente y un formato XML para que sea interpretado por otros programas\&. +.PP +Además de ofrecer distintos formatos de salida, Nmap ofrece opciones adicionales para controlar cuanta información de más se muestra en la salida, así como opciones para controlar los mensajes de depuración que se muestran\&. Los tipos de salida pueden enviarse a la salida estándar o a algún archivo especificando su nombre\&. Nmap puede añadir información al archivo o sobreescribirlo\&. Los formatos de salida pueden utilizarse también para retomar un sondeo que se haya interrumpido\&. +.PP +Nmap puede generar la salida en cinco formatos distintos\&. El formato por omisión es el llamado +salida interactiva, y se envía a la salida estándar («stdout»)\&. También está la +salida normal, que es similar a la salida +interactiva +salvo que muestra menos información de ejecución y menos advertencias, ya que se espera que se analice una vez que el sondeo haya terminado en lugar de ser analizada interactivamente\&. +.PP +La salida XML es uno de los formatos de salida más importantes, ya que puede convertirse a HTML, los programas (como la interfaz de usuario de Nmap) pueden interpretarla fácilmente o puede importarse a una base de datos\&. +.PP +Los dos tipos de salida restantes son la sencilla +salida para grep +(o «grepeable») que incluye la mayoría de la información de un sistema analizado en una sola línea, y la +s4L1d4 sCRiPt KiDDi3 +para usuarios que se consideran a sí mismos |<\-r4d\&. +.PP +Aunque se utiliza la salida interactiva por omisión y no tiene ninguna opción de la línea de órdenes, los demás formatos utilizan la misma sintaxis\&. Toman un solo argumento, que es el archivo donde se guardarán los resultados\&. Pueden especificarse múltiples formatos al mismo tiempo, pero sólo puede especificar el mismo formato una vez\&. Por ejemplo, puede querer guardar la salida normal para su propia visualización mientras se guarda la información del mismo sondeo en formato XML para realizar un análisis posterior con un programa\&. Para hacer ésto debe utilizar las opciones +\fB\-oX misondeo\&.xml \-oN misondeo\&.nmap\fR\&. Se recomienda utilizar nombres más descriptivos, si bien este capítulo utiliza nombres sencillos como +misondeo\&.xml +por razones de brevedad\&. Los nombres elegidos son una cuestión de preferencia personal\&. Yo utilizo nombres largos que incluyen la fecha del análisis y una palabra o dos describiendo el sondeo, dentro de un directorio con el nombre de la empresa que estoy analizando\&. +.PP +Nmap seguirá imprimiendo la salida interactiva en «stdout» como lo hace habitualmente aunque se guarden en archivos la salida con estas opciones\&. Por ejemplo, la orden +\fBnmap \-oX misondeo\&.xml destino\fR +imprime XML en +misondeo\&.xml +y llena la salida estándar con los mismos resultados interactivos que habría impreso si no se hubiese especificado la opción +\fB\-oX\fR\&. Puedes cambiar este comportamiento dando un guión como argumento a una de las opciones de salida\&. Esto hace que Nmap desactive la salida interactiva y que imprima en su lugar los resultados en el formato especificado en la salida estándar\&. Con lo que la orden +\fBnmap \-oX \- destino\fR +enviará únicamente la salida XML a la salida estándar («stdout»)\&. Los errores graves seguirán presentándose, posiblemente, en la salida normal de error, «stderr»\&. +.PP +A diferencia de algunos argumentos de Nmap, es obligatorio separar con un espacio la opción de salida (como +\fB\-oX\fR) y el nombre del archivo o el guión\&. Si los omite y pone el argumento como +\fB\-oG\-\fR +o +\fB\-oXsondeo\&.xml\fR, una funcionalidad de compatibilidad con versiones anteriores hará que se cree una +\fIsalida normal\fR +en los ficheros llamados +G\- +y +Xscan\&.xml +respectivamente\&. +.PP +Nmap también ofrece opciones para controlar la información extra que se ofrece sobre el sondeo y añadirlo a los archivos de salida en lugar de sobreescribirlos\&. Todas estas opciones se describen a continuación\&. +.PP +\fBFormatos de salida de Nmap\fR +.PP +\fB\-oN <filespec>\fR (Salida normal) +.RS 4 +Solicita que la +salida normal +sea redirigida al archivo especificado\&. Como se ha dicho anteriormente, esto difiere un poco de la +salida interactiva\&. +.RE +.PP +\fB\-oX <filespec>\fR (salida XML) +.RS 4 +Solicita que la +salida en XML +se redirigida al archivo especificado\&. Nmap incluye un DTD que pueden utilizar los intérpretes de XML para validar la salida XML\&. Aunque está dirigida a que la utilicen programas, también puede ayudar a que una persona interprete la salida de Nmap\&. El DTD define los elementos legales del formato, y generalmente enumera los atributos y valores que pueden tener\&. La última versión está siempre disponible en +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]\&. +.sp +XML ofrece un formato estable que es fácilmente interpretado por cualquier programa\&. Hay intérpretes libres de XML para los lenguajes de ordenador más importantes, incluyendo C/C++, Perl, Python, y Java\&. La gente ha escrito librerías para la mayoría de estos lenguajes que manejan específicamente la salida de Nmap\&. Por ejemplo +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[9]\d\s+2 +y +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[10]\d\s+2 +en el CPAN de Perl\&. XML es el formato preferente en la mayoría de los casos en que una aplicación no trivial quiere utilizar Nmap\&. +.sp +La salida de XML hace referencia a la hoja de estilo XSL que puede utilizarse para formatear los resultados en HTML\&. La forma más fácil de utilizarla es simplemente cargar la salida XML en un navegador web como Firefox o IE\&. Por omisión, ésto solo funcionará en el equipo en el que ejecutó Nmap (o uno configurado igual que dicho equipo) ya que la ruta de +nmap\&.xsl +se incluye directamente dentro del archivo\&. Puede utilizar la opción +\fB\-\-webxml\fR +o +\fB\-\-stylesheet\fR +para crear un XML portable que pueda mostrarse como HTML en cualquier ordenador conectado a la web\&. +.RE +.PP +\fB\-oS <filespec>\fR (SaLiDa ScRipT KIdd|3) +.RS 4 +La salida «script kiddie» es como la salida interactiva, excepto que se post\-procesa para que la vean mejor los «l33t HaXXorZ» a los que antes no les gustaba Nmap por su uso consistente de mayúsculas y minúsculas\&. Aquellos que no tengan sentido del humor deberían tomar nota de que esta opción es una broma sobre los «script kiddies» antes de criticarme por +\(lqayudarlos\(rq\&. +.RE +.PP +\fB\-oG <filespec>\fR (Salida «grepeable») +.RS 4 +Este formato de salida se trata el último porque está obsoleto\&. La salida en formato XML es mucho más poderosa, y es igual de conveniente para los usuarios experimentados\&. XML es un estándar para el que se dispone de docenas de intérpretes, mientras que la salida para grep es un «hack» propio\&. XML puede extenderse para soportar nuevas funcionalidades de Nmap tan pronto como se liberen, mientras que en general tengo que omitir estas funcionalidades de la salida para grep por no tener un lugar donde ponerlas\&. +.sp +Sin embargo, la salida para grep es todavía bastante popular\&. Es simplemente un formato que lista cada sistema en una línea y que puede ser fácilmente tratado con herramientas estándar de UNIX como grep, awk, cut, sed, diff y Perl\&. Incluso yo la utilizo para pruebas rápidas que hago desde la línea de órdenes\&. Sólo hace falta un grep para identificar todos los sistemas con el puerto de ssh abierto o que ejecuten Solaris, enviando la salida a través de un conector a awk o cut para mostrar los campos deseados\&. +.sp +La salida para grep consiste en comentarios (líneas que empiezan por una almohadilla, «#») y líneas de objetivo\&. Una línea de objetivo incluye una combinación de seis campos marcados, separados por tabulaciones y seguidos de dos puntos\&. Los campos (en inglés) son +Host +(Sistema), +Ports +(Puertos), +Protocols +(Protocolos), +Ignored State +(Estado omitido), +OS +(Sistema operativo), +Seq Index +(índice de secuencia), +IPID, y +Status +(Estado)\&. +.sp +El campo más importante de todos habitualmente es +Ports, que es el que da los detalles de cada puerto interesante encontrado\&. Consiste en una lista separada por comas de entradas de puerto\&. Cada entrada de puerto representa uno de los puertos de interés y se muestra con siete subcampos separados por una barra («/»)\&. Los subcampos son: +Port number +(Número de puerto), +State +(Estado), +Protocol +(Protocolo), +Owner +(Propietario), +Service +(Servicio), +SunRPC info +(Información SunRPC), y +Version info +(Información de versión)\&. +.sp +Esta página de manual, al igual que en el caso de la salida XML, no puede incluir la documentación completa de este formato\&. Puede encontrar más información detallada de la salida de Nmap para grep en +\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]\&. +.RE +.PP +\fB\-oA <nombre_base>\fR (Salida en todos los formatos) +.RS 4 +Por comodidad, puede especificar la opción +\fB\-oA \fR\fB\fInombre_base\fR\fR +para guardar los resultados de los sondeos en +\fInombre_base\fR\&.nmap, +\fInombre_base\fR\&.xml, y +\fInombre_base\fR\&.gnmap, respectivamente\&. Al igual que la mayoría de los programas puede poner un prefijo con la ruta del directorio como pudiera ser +~/registros_nmap/empresa_foo/ +en UNIX o +c:\ehacking\esco +en Windows\&. +.RE +.PP +\fBOpciones de depuración y de detalle\fR +.PP +\fB\-v\fR (Incrementa el nivel de detalle) +.RS 4 +Hace que Nmap imprima más información sobre el sondeo que está realizando incrementando el nivel de detalle\&. Los puertos abiertos se muestran en cuanto se encuentran y se muestra una estimación del tiempo que Nmap espera que dure la tarea de sondeo si piensa que va a durar más de un par de minutos\&. Puede utilizarlo dos veces para obtener aún más detalle\&. No tiene ningún efecto el utilizarlo más de dos veces\&. +.sp +La mayoría de los cambios sólo afectan a la salida interactiva, y algunos también afectan a la salida «script kiddie»\&. Dado que los demás formatos van a ser tratados por programas, Nmap da información detallada en estos formatos por omisión sin fatigar a un usuario humano\&. Sin embargo, hay algunos cambios en los otros modos que hacen que el tamaño de la salida resultante se reduzca sustancialmente al omitir información detallada\&. Por ejemplo, sólo se imprime una línea de comentario con todos los puertos sondeados en el formato de salida para grep si se activa el modo de detalle, porque puede ser demasiada información\&. +.RE +.PP +\fB\-d [level]\fR (Incrementar o fijar el nivel de depuración) +.RS 4 +Cuando no obtiene suficientes datos ni siquiera con el modo de detalle, ¡puede utilizar el modo de depuración para inundarse de detalles! Al igual que con la opción de detalle (\fB\-v\fR), puede activar la depuración con una opción en la línea de órdenes (\fB\-d\fR)\&. Puede incrementar el nivel de depuración si la especifica múltiples veces\&. También puede fijar directamente el nivel de depuración si da un argumento a la opción +\fB\-d\fR\&. Por ejemplo, si utiliza +\fB\-d9\fR +se fijaría el nivel de depuración en el nueve\&. Ese es el nivel más alto de depuración y provocará que se impriman miles de líneas a no ser que haga sondeos muy sencillos con pocos puertos y objetivos\&. +.sp +La salida de depuración es útil cuando sospecha que hay un fallo en Nmap o simplemente si está confundido y quiere saber qué hace Nmap y por qué\&. Las líneas de depuración no son auto\-explicativas, dado que esta función está dirigida a los desarrolladores\&. Puede obtener algo como esto: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Su único recurso si no entiende una línea es ignorarla, buscarla en el código fuente, o solicitar ayuda en la lista de desarrolladores (nmap\-dev)\&. Algunas líneas sí son auto\-explicativas, pero los mensajes se vuelven más y más extraños a medida que se incrementa el nivel de depuración\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Trazar paquetes y datos enviados y recibidos) +.RS 4 +Esta opción hace que Nmap imprima un resumen de cada paquete que envía o recibe\&. Esto se utiliza muchas veces para poder depurar el programa, pero también es útil para los usuarios nuevos que quieren entender exactamente que es lo que hace Nmap bajo el capó\&. Puede especificar un número reducido de puertos para evitar que se impriman miles de líneas, como por ejemplo +\fB\-p20\-30\fR\&. Si sólo está interesado en el funcionamiento del subsistema de detección de versiones debe utilizar la opción +\fB\-\-version\-trace\fR\&. +.RE +.PP +\fB\-\-iflist\fR (Listar interfaces y rutas) +.RS 4 +Imprime la lista de interfaces y las rutas del sistema tal y como las detecta Nmap\&. Esta opción es útil para depurar problemas de enrutamiento o caracterizaciones equivocadas del tipo de interfaz (como por ejemplo, cuando Nmap trata una conexión PPP como una interfaz Ethernet)\&. +.RE +.PP +\fBOpciones misceláneas de salida\fR +.PP +\fB\-\-append\-output\fR (Añadir en lugar de borrar los archivos de salida) +.RS 4 +El fichero especificado como salida de un formato como pueda ser +\fB\-oX\fR +or +\fB\-oN\fR +se sobreescribe por omisión\&. Si prefiere mantener el contenido existente y añadir los nuevos resultados tendrá que especificar la opción +\fB\-\-append\-output\fR\&. La información obtenida se añadirá a los ficheros especificados en esa ejecución de Nmap en lugar de sobreescribirlos\&. Esto no funciona bien para los ficheros de salida XML (\fB\-oX\fR) ya que el fichero resultante no se podrá leer correctamente, por regla general, hasta que lo arregle manualmente\&. +.RE +.PP +\fB\-\-resume <nombre_archivo>\fR (Continuar un sondeo detenido) +.RS 4 +Algunas ejecuciones de Nmap tardan mucho tiempo, del orden de días\&. Esos sondeos no siempre se ejecutan hasta el final\&. Es posible que haya restricciones que impidan los sondeos de Nmap durante la jornada laboral, se puede caer la red o el sistema donde se está ejecutando Nmap puede sufrir un reinicio esperado o uno no planificado, o incluso es posible que Nmap aborte\&. El administrador que está ejecutando Nmap podría cancelarlo también por cualquier otra razón, simplemente pulsando +ctrl\-C\&. En estos casos puede no desearse empezar el sondeo completo desde el principio\&. Afortunadamente, si se ha guardado una salida normal (\fB\-oN\fR) o para tratarla con grep (\fB\-oG\fR), el usuarios puede pedir a Nmap que continúe el sondeo con el objetivo en el que estaba trabajando cuando se detuvo la ejecución\&. Simplemente se tiene que especificar la opción +\fB\-\-resume\fR +y dar un archivo de salida normal o «grepeable» como argumento\&. No se puede dar ningún otro argumento, ya que Nmap trata el archivo para utilizar las mismas opciones que se especificaron entonces\&. Sólo se debe llamar a Nmap con +\fBnmap \-\-resume \fR\fB\fIarchivo_de_registro\fR\fR\&. Nmap añadirá cualquier resultado nuevo a los ficheros de datos especificados en la ejecución previa\&. No se soporta la capacidad de reanudar un sondeo con el formato de salida XML porque combinar dos salidas en un sólo fichero XML válido sería difícil\&. +.RE +.PP +\fB\-\-stylesheet <ruta o URL>\fR (Fija la hoja de estilo XSL para transformar la salida XML) +.RS 4 +Nmap se distribuye conjuntamente con una hoja de estilo XSL llamada +nmap\&.xsl +para poder ver o traducir la salida XML a HTML\&. La Salida XML incluye una directiva +xml\-stylesheet +que apunta al punto donde está instalado +nmap\&.xml +(o al directorio de trabajo actual en Windows)\&. Para mostrar los resultados basta cargar la salida XML en un navegador de web moderno y éste recogerá y utilizará el archivo +nmap\&.xsl +del sistema de ficheros\&. Si quiere especificar una hoja de estilo diferente, tiene que especificarla como argumento a la opción +\fB\-\-stylesheet\fR\&. Puede dar una ruta completa o un URL\&. Una forma habitual de llamar a esta opción es la siguiente: +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. Esto le dice al navegador que descargue la última versión de la hoja de estilo de Insecure\&.Org\&. La opción +\fB\-\-webxml\fR +hace lo mismo pero con menos teclas y es más fácil de recordar\&. Esto facilita la visualización de resultados en un sistema que no tiene Nmap instalado (y que por tanto carece de un archivo +nmap\&.xsl)\&. Así, la URL es lo más útil, pero se utiliza el sistema de ficheros local para el archivo nmap\&.xsl por omisión por razones de privacidad\&. +.RE +.PP +\fB\-\-webxml\fR (Carga la hoja de estilo de Insecure\&.Org) +.RS 4 +Esta opción es simplemente un alias para +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Omite la declaración de hoja de estilo XSL del XML) +.RS 4 +Puede utilizar esta opción para evitar que Nmap asocie una hoja de estilo XSL a su salida XML\&. En este caso, se omite la directiva +xml\-stylesheet +de la salida\&. +.RE +.SH "OPCIONES MISCELÁNEAS" +.PP +Esta sección describe algunas opciones importantes (y no tan importantes) que no encajan realmente en ningún otro sitio\&. +.PP +\fB\-6\fR (Activa el sondeo IPv6) +.RS 4 +Nmap tiene soporte IPv6 para la mayoría de sus funcionalidades más populares desde 2002\&. En particular, tiene soporte de: sondeo ping (TCP\-only), sondeo connect() y detección de versiones\&. La sintaxis de las órdenes es igual que las habituales salvo que debe especificar la opción +\fB\-6\fR +Por supuesto, debe utilizarse la sintaxis IPv6 si se indica una dirección en lugar de un nombre de sistema\&. Una dirección IPv6 sería parecida a +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, por lo que se recomienda utilizar nombres de equipo\&. La salida es igual que en los otros casos\&. Lo único que distingue que esta opción está habilitada es que se muestran las direcciones IPv6 en la línea que indica los +\(lqpuertos de interés\(rq\&. +.sp +Aunque IPv6 no se está utilizando en todo el mundo, sí que se utiliza mucho en algunos países (generalmente asiáticos) y muchos sistemas operativos modernos lo soportan\&. Tanto el origen como el objetivo de su sondeo deben estar configurados para utilizar IPv6 si desea utilizar Nmap con IPv6\&. Si su ISP (como sucede con la mayoría) no le da direcciones IPv6, puede encontrar gestores de túneles gratuitos en muchos sitios y funciona bien con Nmap\&. Una lista de gestores está +\m[blue]\fBen Wikipedia\fR\m[]\&\s-2\u[11]\d\s+2\&. Los túneles IPv6 a IPv4 («6to4») son también otro método muy popular y gratuito\&. +.RE +.PP +\fB\-A\fR (Opciones de sondeos agresivos) +.RS 4 +Esta opción activa algunas opciones avanzadas y agresivas\&. Aún no he decidido qué significa exactamente\&. Actualmente esto activa la detección de sistema operativo (\fB\-O\fR) y el análisis de versiones (\fB\-sV\fR)\&. Aunque se añadirán más opciones en el futuro\&. La idea es que esta opción active un conjunto de opciones para evitar que los usuarios de Nmap tengan que recordar un número de opciones muy elevado\&. Esta opción sólo activa funcionalidades, no afecta a las opciones de temporización (como +\fB\-T4\fR) o de depuración (\fB\-v\fR) que quizás desee activar también\&. +.RE +.PP +\fB\-\-datadir <nombre_directorio>\fR (Indica la ubicación de un archivo de datos de Nmap) +.RS 4 +Nmap obtiene algunos datos especiales al ejecutarse de los archivos llamados +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes, y +nmap\-os\-fingerprints\&. Nmap buscará primero estos ficheros en el directorio que se especifique con la opción +\fB\-\-datadir\fR +(si se indica alguno)\&. Los archivos que no se encuentren allí se buscarán en el directorio especificado por la variable de entorno NMAPDIR\&. A continuación se buscará en +~/\&.nmap +tanto para el identificador (UID) real como el efectivo (sólo en sistemas POSIX) o la ubicación del ejecutable de Nmap (sólo sistemas Win32), y también en una ubicación compilada en la aplicación como pudiera ser +/usr/local/share/nmap +o +/usr/share/nmap\&. Nmap, por último, buscará en el directorio actual\&. +.RE +.PP +\fB\-\-send\-eth\fR (Enviar tramas Ethernet en crudo) +.RS 4 +Le indica a Nmap que debe enviar paquetes en la capa Ethernet en crudo (enlace de datos) en lugar de en la capa IP (red)\&. Por omisión, Nmap elegirá cuál utilizar en función de lo que sea mejor para la plataforma donde esté ejecutándose\&. Los sockets crudos (capa IP) son generalmente más eficientes para sistemas UNIX, mientras que las tramas Ethernet son necesarias en sistemas Windows ya que Microsoft deshabilitó el soporte de sockets crudos\&. Nmap seguirá utilizando paquetes IP crudos en UNIX, aunque se especifique esta opción, cuando no se pueda hacer de otra forma (como es el caso de conexiones no Ethernet)\&. +.RE +.PP +\fB\-\-send\-ip\fR (Enviar al nivel crudo IP) +.RS 4 +Indica a Nmap que debe enviar utilizando sockets IP crudos en lugar de enviar tramas Ethernet de bajo nivel\&. Esta opción es complementaria a la opción +\fB\-\-send\-eth\fR +descrita previamente\&. +.RE +.PP +\fB\-\-privileged\fR (Asumir que el usuario tiene todos los privilegios) +.RS 4 +Esta opción le dice a Nmap que simplemente asuma que el usuario con el que se ejecuta tiene suficientes privilegios para trabajar con sockets crudos, capturar paquetes y hacer otras operaciones similares que generalmente sólo puede hacerla en sistemas UNIX el usuario root\&. Por omisión, Nmap aborta si se han solicitado esas operaciones pero el resultado de geteuid() no es cero\&. La opción +\fB\-\-privileged\fR +es útil con las capacidades del núcleo Linux y sistemas similares que pueden configurarse para permitir realizar sondeos con paquetes crudos a los usuarios no privilegiados\&. Asegúrese de indicar esta opción antes de cualquier otra opción que pueda requerir de privilegios específicos (sondeo SYN, detección de SO, etc\&.)\&. Una forma alternativa a +\fB\-\-privileged\fR +es fijar la variable de entorno NMAP_PRIVILEGED\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Mostrar el número de versión) +.RS 4 +Imprime el número de versión de Nmap y aborta\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Mostrar la página resumen de ayuda) +.RS 4 +Imprime una pequeña pantalla de ayuda con las opciones de órdenes más habituales\&. Pasa lo mismo si ejecuta Nmap sin argumentos\&. +.RE +.SH "EJECUCIÓN INTERACTIVA" +.PP +Todas las pulsaciones de teclado se capturan durante la ejecución de Nmap\&. Esto le permite interactuar con el programa sin abortarlo ni reiniciarlo\&. Algunas teclas especiales cambiarán las opciones mientras que otras teclas imprimirán un mensaje de estado informándole del estado del sondeo\&. La convención es que las +\fIletras en minúsculas incrementan\fR +la cantidad de información que se imprime, mientras que las +\fIletras en mayúsculas reducen\fR +la información impresa\&. Tambén puede pulsar \(oq\fI?\fR\(cq para obtener ayuda\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Incrementa / Reduce el detalle (más / menos verboso) +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Incrementa / Reduce el nivel de depuración +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Activa / Desactiva la traza de paquetes +.RE +.PP +\fB?\fR +.RS 4 +Imprime la pantalla de ayuda de la ejecución interactiva +.RE +.PP +Cualquier otra tecla +.RS 4 +Imprime un mensaje de estado similar a ésta: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "EJEMPLOS" +.PP +A continuación se muestran algunos ejemplos de utilización, desde lo más simple y rutinario hasta algo más complejo y esotérico\&. Se utilizan algunas direcciones IP y dominios para concretar un poco las cosas\&. En su lugar deberías poner las direcciones o nombres de +\fItu propia red\&.\fR\&. Mientras que yo no considero que sondear los puertos de otras redes es o debería ser ilegal, algunos administradores de redes no aprecian un sondeo no solicitado de sus redes y pueden quejarse\&. Lo mejor es pedir permiso primero\&. +.PP +A modo de prueba, tienes permiso de sondear el servidor +scanme\&.nmap\&.org\&. Este permiso sólo incluye sondear mediante Nmap y no para probar "exploits" o ataques de denegación de servicio\&. Por favor, para conservar el ancho de banda no inicie más de una docena de sondeos contra este servidor el mismo día\&. Si se abusa de este servicio de sondeo se desconectará y Nmap reportará +Failed to resolve given hostname/IP: scanme\&.nmap\&.org +("No se pudo resolver la dirección IP o nombre datos: scanme\&.nmap\&.org")\&. Este permiso también se aplica a los servidores +analizame2\&.nmap\&.org, +analizame3\&.nmap\&.org, y así sucesivamente, aunque esos servidores actualmente no existen\&. +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Esta opción sondea todos los puertos TCP reservados en el servidor +scanme\&.nmap\&.org\&. La opción +\fB\-v\fR +activa el modo detallado (también llamado verboso)\&. +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Lanza un sondeo de tipo SYN sigiloso contra cada una de las 255 máquinas en la +\(lqclase C\(rq +de la red donde está el sistema "analizame"\&. También intenta determinar cual es el sistema operativo que se ejecuta en cada máquina que esté encendida\&. Esto requiere permisos de root por la opción de sondeo SYN y por la de detección de sistema operativo\&. +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Lanza una enumeración de equipos y un sondeo TCP a cada uno de la primera mitad de las 255 posibles subredes de 8 bit en la red de clase B 198\&.116\&. Esto probará si los sistemas están ejecutando sshd, DNS, pop3d, imapd o tienen un servidor en el puerto 4564\&. Para cualquier puerto que se encuentre abierto, se realizará una detección de versión para determinar qué aplicación se está ejecutando\&. +.PP +\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR +.PP +Solicita a Nmap que elija 100\&.000 sistemas aleatoriamente y los sondee buscando servidores web (puerto 80)\&. La enumeración de sistemas se deshabilita con +\fB\-P0\fR +ya que es un desperdicio enviar un par de pruebas para determinar si el sistema debe ser analizado cuando de todas maneras sólo se va a analizar un puerto\&. +.PP +\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Esto sondea 4096 IPs para buscar cualquier servidor web (sin enviar sondas ICMP) y guarda la salida en formato para grep y en XML\&. +.SH "FALLOS" +.PP +Al igual que su autor, Nmap no es perfecto\&. Pero tu puedes ayudar a hacerlo mejor enviando informes de fallo o incluso escribiendo parches\&. Si Nmap no se comporta como tú esperas, primero actualiza a la última versión disponible en +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Si el problema persiste, investiga para determinar si la causa ya ha sido descubierta y solucionada\&. Busca en Google el mensaje de error o navega en los archivos de Nmap\-dev en +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. También deberías leer este manual completo\&. Si esto no te ayuda, envía un informe de error en inglés a +<dev@nmap\&.org>\&. Por favor, incluya todo lo que haya visto del problema, así como qué versión de Nmap está utilizando y sobre qué versión del sistema operativo está trabajando\&. Hay muchas más probabilidades de que un informe de fallo o una pregunta sobre el uso de Nmap se contesten si se envían a dev@nmap\&.org que si se envían directamente a Fyodor\&. +.PP +Es mejor enviar parches para arreglar el código que un informe de error\&. Puedes encontrar las instrucciones básicas para crear parches con sus cambios en +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]\&. Puede enviar los parches a nmap\-dev (recomendado) o directamente a Fyodor\&. +.SH "AUTOR" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%http://www.insecure.org\fR\m[]) +.PP +Cientos de personas han realizado valiosas contribuciones a Nmap a lo largo de los años\&. Sus nombres se detallan en el archivo +CHANGELOG +que se distribuye conjuntamente con Nmap y que está también disponible en +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]\&. +.SH "NOTAS LEGALES" +.SS "Unofficial Translation Disclaimer / Descargo de traducción no oficial" +.PP +This is an unnofficial translation of the +\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[12]\d\s+2 +into Spanish\&. It was not written by Insecure\&.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\&. However, we hope that this translation helps Spanish speakers understand the Nmap license better\&. +.PP +Esta es una traducción no oficial de los +\m[blue]\fBdetalles de la licencia de Nmap details\fR\m[]\&\s-2\u[12]\d\s+2 +al español\&. Esta traducción no ha sido escrita por Insecure\&.Com LLC por lo que no refleja legalmente los términos de distribución de Nmap, eso sólo puede hacerlo el texto original en inglés\&. Esperamos, sin embargo, que esta traducción pueda ayudar a aquellas personas que hablan español a entender mejor la licencia de Nmap\&. +.SS "Licencia y copyright de Nmap" +.PP +The Nmap Security Scanner is (C) 1996\-2005 Insecure\&.Com LLC\&. Nmap is also a registered trademark of Insecure\&.Com LLC\&. This program is free software; you may redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; Version 2\&. This guarantees your right to use, modify, and redistribute this software under certain conditions\&. If you wish to embed Nmap technology into proprietary software, we may be willing to sell alternative licenses (contact +<sales@insecure\&.com>)\&. Many security scanner vendors already license Nmap technology such as host discovery, port scanning, OS detection, and service/version detection\&. +.PP +\fITraducción no autorizada:\fR +La herramienta de sondeos de seguridad Nmap es (C) 1996\-2005 Insecure\&.Com LLC\&. Nmap también es una marca registrada por Insecure\&.Com LLC\&. Este programa es software libre\&. Puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU según es publicada por la Free Software Foundation, versión 2\&. Esto garantiza su derecho a utilizarla, modificarla y redistribuirla bajo ciertas condiciones\&. Si desea introducir la tecnología de Nmap en programas propietarios podemos vender licencias alternativas (póngase en contacto con +<sales@insecure\&.com>)\&. Hay muchos fabricantes de herramientas de análisis de seguridad que licencian la tecnología de Nmap como es el descubrimiento de equipos, sondeos de puertos, detección de sistema operativo y detección de servicios y versiones\&. +.PP +Tenga en cuenta que la GPL impone restricciones importantes en los +\(lqtrabajos derivados\(rq, pero no ofrece una definición precisa de ese término\&. Para evitar malentendidos, a continuación se definen, para los propósitos de esta licencia, las condiciones bajo las que una aplicación constituye un +\(lqtrabajo derivado\(rq: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integra código fuente de Nmap +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Lee o incluye los ficheros de Nmap que están bajo derechos de copia, eso incluye +nmap\-os\-fingerprints +o +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Ejecuta Nmap y analiza los resultados (en contraposición del intérprete de órdenes típico o la ejecución desde un menú, que simplemente muestra la salida de Nmap en crudo y no son, por tanto, trabajos derivados) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integra o incluye o agrega Nmap en un instalador ejecutable propietario, como los que produce InstallShield\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Enlaza a una librería o ejecuta un programa que hace cualquiera de las cosas descritas anteriormente\&. +.RE +.PP +Se debe considerar que el término +\(lqNmap\(rq +incluye las porciones o trabajos derivados de Nmap\&. Esta lista no es exclusiva, su único objetivo es clarificar la interpretación de trabajos derivados con algunos ejemplos comunes\&. Estas restricciones no se aplican cuando redistribuye Nmap\&. Por ejemplo, nada le impide escribir y vender una interfaz propietaria a Nmap\&. Sólo debe distribuirla de forma separada e indicar a sus usuarios que vayan a +\m[blue]\fB\%https://nmap.org/\fR\m[] +para obtener Nmap\&. +.PP +No consideramos que las restricciones sean añadidos a la GPL, sino simplemente una forma de clarificar cómo interpretamos el término +\(lqtrabajos derivados\(rq +y su aplicación al producto Nmap licenciado GPL\&. Esto es parecido a la interpretación que Linus Torvalds ha dado a +\(lqtrabajos derivados\(rq +y su aplicación a los módulos del núcleo de Linux\&. Nuestra interpretación sólo aplica a Nmap, no hablamos en nombre de otros productos GPL\&. +.PP +Estaremos encantados de ayudarle si tiene alguna pregunta de cómo aplican las restricciones de licenciamiento GPL al uso de Nmap en trabajos que no son GPL\&. Tal y como se menciona más arriba, ofrecemos licencias alternativas para integrar Nmap en aplicaciones propietarias así como en dispositivos hardware\&. Ya se han vendido este tipo de contratos a fabricantes de dispositivos de seguridad y habitualmente incluye una licencia perpetua, al tiempo que se da soporte prioritario y actualizaciones\&. Estos contratos financian el desarrollo continuo de la tecnología Nmap\&. Por favor, contacte con +<sales@insecure\&.com> +si desea más información\&. +.PP +Insecure\&.Com LLC da permiso para enlazar el código de este programa con cualquier librería de OpenSSL que se distribuya bajo una licencia idéntica a la indicada en el fichero Copying\&.OpenSSL adjunto, así como a la distribución de la combinación enlazada que incluye a ambos\&. Ésta es una excepción especial a los términos de la GPL\&. Debe obedecer los demás términos de la GPL de GNU en cualquier otro aspecto en relación al código que utilice que no sea OpenSSL\&. Si modifica este fichero puede extender esta excepción a su versión del fichero, aunque no está obligado a hacerlo\&. +.PP +Si recibe estos ficheros con un acuerdo de licencia por escrito o contrato que indique términos distintos de los que se describen arriba entonces dicha licencia alternativa toma precedencia sobre estos comentarios\&. +.SS "Licencia Creative Commons para esta guía Nmap" +.PP +Esta guía de referencia de Nmap Reference Guide es (C) 2005 Insecure\&.Com LLC\&. Se distribuye bajo la versión 2\&.5 de la +\m[blue]\fBLicencia Creative Commons de Reconocimiento\fR\m[]\&\s-2\u[2]\d\s+2\&. Esta licencia le permite redistribuir y modificar el trabajo como desee siempre que reconozca la fuente original\&. Puede, si lo desea, tratar este documento con la misma licencia con la que distribuya Nmap (como se ha discutido previamente)\&. +.SS "Disponibilidad del código fuente y contribuciones de la comunidad" +.PP +Se da el código fuente de este programa porque creemos que los usuarios tienen el derecho a saber cómo funciona un programa con exactitud antes de ejecutarlo\&. También le permite auditar el programa en búsqueda de agujeros de seguridad (no se ha encontrado ninguno aún)\&. +.PP +El código fuente le permite migrar Nmap a otras plataformas, arreglar erratas y añadir nuevas funciones\&. Le pedimos encarecidamente que envíe sus cambios a +<fyodor@nmap\&.org> +para que puedan incorporarse en la distribución principal\&. Al enviar estos cambios a Fyodor o cualquiera de las listas de correo de desarrollo en Insecure\&.Org se asume que está ofreciendo a Fyodor y a Insecure\&.Com LLC derechos ilimitados y no exclusivos para reutilizar, modificar y relicenciar el código\&. Nmap siempre estará disponible como software libre, pero esto es importante porque la incapacidad de relicenciar el código ha dado muchos problemas a otros proyectos de software libre (como es el caso de KDE y NASM)\&. También relicenciamos el código de forma ocasional a terceros, como se ha descrito previamente\&. Puede especificar condiciones especiales de licencia para sus contribuciones, sólo tiene que indicarlas cuando las envíe\&. +.SS "Sin garantía" +.PP +Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR\&. Véase la Licencia Pública General de GNU para más detalles en +\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[], o en el fichero COPYING que se incluye con Nmap\&. +.PP +También debería tener en cuenta que se sabe que Nmap ha provocado en algunas ocasiones que alguna aplicación mal escrita se bloquee, como también ha pasado con pilas TCP/IP e incluso sistemas operativos\&. Esto es muy raro, pero es importante tenerlo en mente\&. +\fINunca debería utilizar Nmap contra sistemas de misión crítica\fR +a no ser que esté preparado para sufrir una caída\&. Reconocemos que Nmap puede bloquear sus sistemas o redes y hacemos un descargo de responsabilidad frente a cualquier daño o problemas que Nmap pueda causar\&. +.SS "Uso inapropiado" +.PP +Debido al ligero riesgo de que se produzcan caídas porque un +\fIblack hat\fR +(persona que ataca sistemas sin autorización, N\&. del T\&.) utilice Nmap para realizar un análisis antes de atacar algún sistema hay administradores que se molestan y se quejan cuando se sondean sus sistemas\&. Así, por regla general es recomendable pedir permiso para hacer cualquier tipo de sondeo, aún uno ligero, de una red\&. +.PP +Nunca debería instalar Nmap con privilegios especiales (p\&. ej\&. suid root) por razones de seguridad\&. +.SS "Programas de terceros" +.PP +Este producto incluye programas desarrollados por la +\m[blue]\fBFundación Apache Software Foundation\fR\m[]\&\s-2\u[13]\d\s+2\&. También se distribuye una versión modificada de la +\m[blue]\fBlibrería portable de captura de paquetes Libpcap\fR\m[]\&\s-2\u[14]\d\s+2 +conjuntamente con nmap\&. La versión para Windows de Nmap utiliza la librería +\m[blue]\fBWinPcap library\fR\m[]\&\s-2\u[15]\d\s+2 +que es una versión derivada de la libcap\&. La +\m[blue]\fBlibrería PCRE\fR\m[]\&\s-2\u[16]\d\s+2, software libre escrito por Philip Hazel, da el soporte de expresiones regulares\&. Algunas de las funciones de acceso a bajo nivel de la red utiliza la librería de red +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[17]\d\s+2, escrita por Dug Song\&. Se distribuye una versión modificada con Nmap\&. Nmap puede, opcionalmente, enlazar con las +\m[blue]\fBherramientas criptográficas OpenSSL\fR\m[]\&\s-2\u[18]\d\s+2 +para poder hacer un análisis de versiones SSL\&. Todos los programas de terceros descritos en este párrafo se distribuyen libremente bajo licencias tipo BSD\&. +.SS "Clasificación de control de exportación de los EEUU" +.PP +Control de exportación de los EEUU: Insecure\&.Com LLC cree que Nmap se encuentra dentro del capítulo US ECCN (número de clasificación de control de exportación) 5D992\&. Esta categoría se denomina +\(lqProgramas de seguridad de la información no controlados en 5D002\(rq\&. La única restricción a esta clasificación es AT (anti\-terrorismo), que se aplica a casi todos los bienes y deniega la exportación a un número reducido de naciones rebeldes como Irán o Corea del Norte\&. Así, la exportación de Nmap no requiere de una licencia especial, permiso o cualquier otra autorización del gobierno\&. +.SH "NOTAS" +.IP " 1." 4 +versión original en inglés +.RS 4 +\%https://nmap.org/man/ +.RE +.IP " 2." 4 +Licencia Creative Commons Atribución +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 3." 4 +Deteccion Remota de SO via Reconocimiento de Pila TCP/IP +.RS 4 +\%https://nmap.org/nmap-fingerprinting-article-mx.html +.RE +.IP " 4." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 5." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 6." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 7." 4 +RFC de TCP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 8." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 9." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP "10." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP "11." 4 +en Wikipedia +.RS 4 +\%http://es.wikipedia.org/wiki/Anexo:Proveedores_de_túneles_IPv6 +.RE +.IP "12." 4 +Nmap license details +.RS 4 +\%https://nmap.org/man/man-legal.html +.RE +.IP "13." 4 +Fundación Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "14." 4 +librería portable de captura de paquetes Libpcap +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "15." 4 +WinPcap library +.RS 4 +\%http://www.winpcap.org +.RE +.IP "16." 4 +librería PCRE +.RS 4 +\%http://www.pcre.org +.RE +.IP "17." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "18." 4 +herramientas criptográficas OpenSSL +.RS 4 +\%http://www.openssl.org +.RE diff --git a/docs/man-xlate/nmap-fr.1 b/docs/man-xlate/nmap-fr.1 new file mode 100644 index 0000000..4cca1f7 --- /dev/null +++ b/docs/man-xlate/nmap-fr.1 @@ -0,0 +1,2073 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "Auteur" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 17/05/2023 +.\" Manual: Guide de référence Nmap +.\" Source: Nmap +.\" Language: French +.\" +.TH "NMAP" "1" "17/05/2023" "Nmap" "Guide de référence Nmap" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NOM" +nmap \- Outil d\*(Aqexploration réseau et scanneur de ports/sécurité +.SH "SYNOPSIS" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fITypes\ de\ scans\fR...] [\fIOptions\fR] {\fIspécifications\ des\ cibles\fR} +.SH "DESCRIPTION" +.PP +Nmap (« Network Mapper ») est un outil open source d\*(Aqexploration réseau et d\*(Aqaudit de sécurité\&. Il a été conçu pour rapidement scanner de grands réseaux, mais il fonctionne aussi très bien sur une cible unique\&. Nmap innove en utilisant des paquets IP bruts (raw packets) pour déterminer quels sont les hôtes actifs sur le réseau, quels services (y compris le nom de l\*(Aqapplication et la version) ces hôtes offrent, quels systèmes d\*(Aqexploitation (et leurs versions) ils utilisent, quels types de dispositifs de filtrage/pare\-feux sont utilisés, ainsi que des douzaines d\*(Aqautres caractéristiques\&. Nmap est généralement utilisé pour les audits de sécurité mais de nombreux gestionnaires des systèmes et de réseau l\*(Aqapprécient pour des tâches de routine comme les inventaires de réseau, la gestion des mises à jour planifiées ou la surveillance des hôtes et des services actifs\&. +.PP +Le rapport de sortie de Nmap est une liste des cibles scannées ainsi que des informations complémentaires en fonction des options utilisées\&. L\*(Aqinformation centrale de la sortie est la +« table des ports intéressants »\&. Cette table liste le numéro de port et le protocole, le nom du service et son état\&. L\*(Aqétat est soit +ouvert (open), +filtré (filtered), +fermé (closed)\ \& ou +non\-filtré (unfiltered)\&. +Ouvert +indique que l\*(Aqapplication de la machine cible est en écoute de paquets/connexions sur ce port\&. +Filtré +indique qu\*(Aqun pare\-feu, un dispositif de filtrage ou un autre obstacle réseau bloque ce port, empêchant ainsi Nmap de déterminer s\*(Aqil s\*(Aqagit d\*(Aqun port +ouvert +ou +fermé\&. Les ports +fermés +n\*(Aqont pas d\*(Aqapplication en écoute, bien qu\*(Aqils puissent quand même s\*(Aqouvrir n\*(Aqimporte quand\&. Les ports sont considérés comme +non\-filtrés +lorsqu\*(Aqils répondent aux paquets de tests (probes) de Nmap, mais Nmap ne peut déterminer s\*(Aqils sont ouverts ou fermés\&. Nmap renvoie également les combinaisons d\*(Aqétats +ouverts|filtré +et +fermés|filtré +lorsqu\*(Aqil n\*(Aqarrive pas à déterminer dans lequel des deux états possibles se trouve le port\&. La table des ports peut aussi comprendre des détails sur les versions des logiciels si la détection des services est demandée\&. Quand un scan du protocole IP est demandé (\fB\-sO\fR), Nmap fournit des informations sur les protocoles IP supportés au lieu de la liste des ports en écoute\&. +.PP +En plus de la table des ports intéressants, Nmap peut aussi fournir de plus amples informations sur les cibles comme les noms DNS (reverse DNS), deviner les systèmes d\*(Aqexploitation utilisés, obtenir le type de matériel ou les adresses MAC\&. +.PP +Un scan classique avec Nmap est présenté dans +Exemple 1, « Un scan Nmap représentatif » +\&. Les seuls arguments de Nmap utilisés dans cet exemple sont +\fB\-A\fR +, qui permet la détection des OS et versions de logiciels utilisés, +\fB\-T4\fR +pour une exécution plus rapide, et les noms d\*(Aqhôte des cibles\&. +.PP +\fBExemple 1. Un scan Nmap représentatif\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org playground + +Starting nmap ( https://nmap\&.org/ ) +Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X +OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11 +Uptime 33\&.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground\&.nmap\&.org (192\&.168\&.0\&.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios\-ssn +389/tcp open ldap? +445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds +1002/tcp open windows\-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper +5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3\&.8) +MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds +.fi +.if n \{\ +.RE +.\} +.PP +La plus récente version de Nmap peut être obtenue à l\*(Aqurl +\m[blue]\fB\%https://nmap.org/\fR\m[] +\&. La plus récente version du manuel est disponible à +\m[blue]\fB\%https://nmap.org/man/\fR\m[] +\&. +.SH "NOTES DE TRADUCTION" +.PP +Cette édition Francaise du Guide de référence de Nmap a été traduite à partir de la version [2991] de la +\m[blue]\fBversion originale en Anglais\fR\m[]\&\s-2\u[1]\d\s+2 +par Romuald THION +<romuald\&.thion@insa\-lyon\&.fr> +et 4N9e Gutek +<4n9e@futurezone\&.biz>\&. Elle a été relue et corrigée par Ghislaine Landry +<g\-landry@rogers\&.com>\&. Ce travail peut être modifié et redistribué selon les termes de la license +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. +.PP +Mise a jour au 19 dec 2007\&. +.SH "RÉSUMÉ DES OPTIONS" +.PP +Ce résumé des options est affiché quand Nmap est exécuté sans aucun argument; la plus récente version est toujours disponible sur +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[] +\&. Il sert d\*(Aqaide\-mémoire des options les plus fréquemment utilisées, mais ne remplace pas la documentation bien plus détaillée de la suite de ce manuel\&. Les options obscures n\*(Aqy sont pas incluses\&. +.PP +.if n \{\ +.RS 4 +.\} +.nf +Nmap 4\&.50 (insecure\&.org) +Utilisation: nmap [Type(s) de scan] [Options] {spécifications des cibles} + +SPÉCIFICATIONS DES CIBLES: +Les cibles peuvent être spécifiées par des noms d\*(Aqhôtes, des adresses IP, des adresses de réseaux, etc\&. +Exemple: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\-255\&.0\-255\&.1\-254 +\-iL <inputfilename>: Lit la liste des hôtes/réseaux cibles à partir du fichier +\-iR <num hosts>: Choisit les cibles au hasard +\-\-exclude <host1[,host2][,host3],\&.\&.\&.>: Exclut des hôtes/réseaux du scan +\-\-excludefile <exclude_file>: Exclut des hôtes/réseaux des cibles à partir du fichier + +DÉCOUVERTE DES HÔTES: +\-sL: List Scan \- Liste simplement les cibles à scanner +\-sP: Ping Scan \- Ne fait que déterminer si les hôtes sont en ligne \-P0: Considère que tous les hôtes sont en ligne \-\- évite la découverte des hôtes +\-PN: Considérer tous les hôtes comme étant connectés \-\- saute l\*(Aqétape de découverte des hôtes +\-PS/PA/PU [portlist]: Découverte TCP SYN/ACK ou UDP des ports en paramètre +\-PE/PP/PM: Découverte de type requête ICMP echo, timestamp ou netmask +\-PO [num de protocole]: Ping IP (par type) +\-n/\-R: Ne jamais résoudre les noms DNS/Toujours résoudre [résout les cibles actives par défaut] +\-\-dns\-servers <serv1[,serv2],\&.\&.\&.>: Spécifier des serveurs DNS particuliers + +TECHNIQUES DE SCAN: +\-sS/sT/sA/sW/sM: Scans TCP SYN/Connect()/ACK/Window/Maimon +\-sN/sF/sX: Scans TCP Null, FIN et Xmas +\-sU: Scan UDP +\-\-scanflags <flags>: Personnalise les flags des scans TCP +\-sI <zombie host[:probeport]>: Idlescan (scan passif) +\-sO: Scan des protocoles supportés par la couche IP +\-b <ftp relay host>: Scan par rebond FTP +\-\-traceroute: Détermine une route vers chaque hôte +\-\-reason: Donne la raison pour laquelle tel port apparait à tel état + +SPÉCIFICATIONS DES PORTS ET ORDRE DE SCAN: +\-p <plage de ports>: Ne scanne que les ports spécifiés +Exemple: \-p22; \-p1\-65535; \-pU:53,111,137,T:21\-25,80,139,8080 +\-F: Fast \- Ne scanne que les ports listés dans le fichier nmap\-services +\-r: Scan séquentiel des ports, ne mélange pas leur ordre +\-\-top\-ports <nombre>: Scan <nombre> de ports parmis les plus courants +\-\-port\-ratio <ratio>: Scan <ratio> pourcent des ports les plus courants + +DÉTECTION DE SERVICE/VERSION: +\-sV: Teste les ports ouverts pour déterminer le service en écoute et sa version +\-\-version\-light: Limite les tests aux plus probables pour une identification plus rapide +\-\-version\-intensity <niveau>: De 0 (léger) à 9 (tout essayer) +\-\-version\-all: Essaie un à un tous les tests possibles pour la détection des versions +\-\-version\-trace: Affiche des informations détaillées du scan de versions (pour débogage) + +SCRIPT SCAN: +\-sC: équivalent de \-\-script=safe,intrusive +\-\-script=<lua scripts>: <lua scripts> est une liste de répertoires ou de scripts séparés par des virgules +\-\-script\-args=<n1=v1,[n2=v2,\&.\&.\&.]>: passer des arguments aux scripts +\-\-script\-trace: Montre toutes les données envoyées ou recues +\-\-script\-updatedb: Met à jour la base de données des scripts\&. Seulement fait si \-sC ou \-\-script a été aussi donné\&. + +DÉTECTION DE SYSTÈME D\*(AqEXPLOITATION: +\-O: Active la détection d\*(AqOS +\-\-osscan\-limit: Limite la détection aux cibles prometteuses +\-\-osscan\-guess: Devine l\*(AqOS de façon plus agressive + +TEMPORISATION ET PERFORMANCE: +Les options qui prennent un argument de temps sont en milisecondes a moins que vous ne spécifiiez \*(Aqs\*(Aq +(secondes), \*(Aqm\*(Aq (minutes), ou \*(Aqh\*(Aq (heures) à la valeur (e\&.g\&. 30m)\&. + +\-T[0\-5]: Choisit une politique de temporisation (plus élevée, plus rapide) +\-\-min\-hostgroup/max\-hostgroup <nombre>: Tailles des groupes d\*(Aqhôtes à scanner en parallèle +\-\-min\-parallelism/max\-parallelism <nombre>: Parallélisation des paquets de tests (probes) +\-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msec>: Spécifie le temps d\*(Aqaller\-retour des paquets de tests +\-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msec>: Spécifie le temps d\*(Aqaller\-retour des paquets de tests +\-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <time>: Précise +le round trip time des paquets de tests\&. +\-\-max\-retries <tries>: Nombre de retransmissions des paquets de tests des scans de ports\&. +\-\-host\-timeout <msec>: Délai d\*(Aqexpiration du scan d\*(Aqun hôte \-\-scan\-delay/\-\-max\-scan\-delay <msec>: Ajuste le délai de retransmission entre deux paquets de tests +\-\-scan\-delay/\-\-max\-scan\-delay <time>: Ajuste le delais entre les paquets de tests\&. + +ÉVASION PARE\-FEU/IDS ET USURPATION D\*(AqIDENTITÉ +\-f; \-\-mtu <val>: Fragmente les paquets (en spécifiant éventuellement la MTU) +\-D <decoy1,decoy2[,ME],\&.\&.\&.>: Obscurci le scan avec des leurres +\-S <IP_Address>: Usurpe l\*(Aqadresse source +\-e <iface>: Utilise l\*(Aqinterface réseau spécifiée +\-g/\-\-source\-port <portnum>: Utilise le numéro de port comme source +\-\-data\-length <num>: Ajoute des données au hasard aux paquets émis +\-\-ip\-options <options>: Envoi des paquets avec les options IP spécifiées\&. +\-\-ttl <val>: Spécifie le champ time\-to\-live IP +\-\-spoof\-mac <adresse MAC, préfixe ou nom du fabriquant>: Usurpe une adresse MAC +\-\-badsum: Envoi des paquets TCP/UDP avec une somme de controle erronnée\&. + +SORTIE: +\-oN/\-oX/\-oS/\-oG <file>: Sortie dans le fichier en paramètre des résultats du scan au format normal, XML, s|<rIpt kIddi3 et Grepable, respectivement +\-oA <basename>: Sortie dans les trois formats majeurs en même temps +\-v: Rend Nmap plus verbeux (\-vv pour plus d\*(Aqeffet) +\-d[level]: Sélectionne ou augmente le niveau de débogage (significatif jusqu\*(Aqà 9) +\-\-packet\-trace: Affiche tous les paquets émis et reçus +\-\-iflist: Affiche les interfaces et les routes de l\*(Aqhôte (pour débogage) +\-\-log\-errors: Journalise les erreurs/alertes dans un fichier au format normal +\-\-append\-output: Ajoute la sortie au fichier plutôt que de l\*(Aqécraser +\-\-resume <filename>: Reprend un scan interrompu +\-\-stylesheet <path/URL>: Feuille de styles XSL pour transformer la sortie XML en HTML +\-\-webxml: Feuille de styles de références de Insecure\&.Org pour un XML plus portable +\-\-no\-stylesheet: Nmap n\*(Aqassocie pas la feuille de styles XSL à la sortie XML + +DIVERS: +\-6: Active le scan IPv6 +\-A: Active la détection du système d\*(Aqexploitation et des versions +\-\-datadir <dirname>: Spécifie un dossier pour les fichiers de données de Nmap +\-\-send\-eth/\-\-send\-ip: Envoie des paquets en utilisant des trames Ethernet ou des paquets IP bruts +\-\-privileged: Suppose que l\*(Aqutilisateur est entièrement privilégié +\-V: Affiche le numéro de version +\-\-unprivileged: Suppose que l\*(Aqutilisateur n\*(Aqa pas les privilèges d\*(Aqusage des raw socket +\-h: Affiche ce résumé de l\*(Aqaide + +EXEMPLES: +nmap \-v \-A scanme\&.nmap\&.org +nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8 +nmap \-v \-iR 10000 \-P0 \-p 80 + +.fi +.if n \{\ +.RE +.\} +.sp +.SH "SPÉCIFICATION DES CIBLES" +.PP +Tout ce qui n\*(Aqest pas une option (ou l\*(Aqargument d\*(Aqune option) dans la ligne de commande de Nmap est considéré comme une spécification d\*(Aqhôte cible\&. Le cas le plus simple est de spécifier une adresse IP cible ou un nom d\*(Aqhôte à scanner\&. +.PP +\ \& Si vous désirez scanner un réseau entier d\*(Aqhôtes consécutifs, Nmap supporte l\*(Aqadressage du style CIDR\&. Vous pouvez ajouter / +\fInumbits\fR +à une adresse IP ou à un nom d\*(Aqhôte de référence et Nmap scannera toutes les adresses IP dont les +\fInumbits\fR +bits de poids fort sont les mêmes que la cible de référence\&. Par exemple, 192\&.168\&.10\&.0/24 scannerait les 256 hôtes entre 192\&.168\&.10\&.0 (en binaire: +11000000 10101000 00001010 00000000) et 192\&.168\&.10\&.255 (en binaire:11000000 10101000 00001010 11111111) inclusivement\&. 192\&.168\&.10\&.40/24 ferait donc aussi la même chose\&. Étant donné que l\*(Aqhôte scanme\&.nmap\&.org est à l\*(Aqadresse IP 205\&.217\&.153\&.62, scanme\&.nmap\&.org/16 scannerait les 65 536 adresses IP entre 205\&.217\&.0\&.0 et 205\&.217\&.255\&.255\&. La plus petite valeur autorisée est /1 qui scanne la moitié d\*(AqInternet\&. La plus grande valeur autorisée est 32, ainsi Nmap ne scanne que la cible de référence car tous les bits de l\*(Aqadresse sont fixés\&. +.PP +La notation CIDR est concise mais pas toujours des plus pratiques\&. Par exemple, vous voudriez scanner 192\&.168\&.0\&.0/16 mais éviter toutes les adresses se terminant par \&.0 ou \&.255 car se sont souvent des adresses de diffusion (broadcast)\&. Nmap permet de le faire grâce à l\*(Aqadressage par intervalles\&. Plutôt que de spécifier une adresse IP normale, vous pouvez spécifier pour chaque octet de l\*(AqIP une liste d\*(Aqintervalles séparés par des virgules\&. Par exemple, 192\&.168\&.0\-255\&.1\-254 évitera toutes les adresses se terminant par \&.0 ou \&.255\&. Les intervalles ne sont pas limités aux octets finals: 0\-255\&.0\-255\&.13\&.37 exécutera un scan de toutes les adresses IP se terminant par 137\&.37\&. Ce genre de spécifications peut s\*(Aqavérer utile pour des statistiques sur Internet ou pour les chercheurs\&. +.PP +Les adresses IPv6 ne peuvent être spécifiées que par une adresse IPv6 pleinement qualifiée ou un nom d\*(Aqhôte\&. L\*(Aqadressage CIDR ou par intervalles n\*(Aqest pas géré avec IPv6 car les adresses ne sont que rarement utiles\&. +.PP +Nmap accepte les spécifications de plusieurs hôtes à la ligne de commande, sans qu\*(Aqelles soient nécessairement de même type\&. La commande +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.0\-255\fR +fait donc ce à quoi vous vous attendez\&. +.PP +Même si les cibles sont souvent spécifiées dans les lignes de commandes, les options suivantes sont également disponibles pour sélectionner des cibles : +.PP +\fB\-iL <inputfilename>\fR(Lit la liste des hôtes/réseaux cibles depuis le fichier) +.RS 4 +Lit les spécifications des cibles depuis le fichier +\fIinputfilename\fR\&. Il est souvent maladroit de passer une longue liste d\*(Aqhôtes à la ligne de commande\&. Par exemple, votre serveur DHCP pourrait fournir une liste de 10 000 baux que vous souhaiteriez scanner\&. Ou alors voudriez scanner toutes les adresses IP +\fIsauf\fR +celles des baux DHCP pour identifier les hôtes qui utilisent des adresses IP statiques non\-autorisées\&. Générez simplement la liste des hôtes à scanner et passez ce fichier comme argument de l\*(Aqoption +\fB\-iL\fR\&. Les entrées peuvent être spécifiées dans n\*(Aqimporte quel des formats acceptés par la ligne de commande de Nmap (adresses IP, noms d\*(Aqhôtes, CIDR, IPv6 ou par intervalles)\&. Les entrées doivent être séparées par un ou plusieurs espaces, tabulations ou retours chariot\&. Vous pouvez utiliser un tiret (\-) comme nom de fichier si vous souhaitez que Nmap lise les hôtes depuis l\*(Aqentrée standard\&. +.RE +.PP +\fB\-iR <num hosts>\fR(Choisit des cibles au hasard) +.RS 4 +Pour des études à l\*(Aqéchelle d\*(AqInternet ou autres, vous pourriez désirer de choisir vos cibles au hasard\&. L\*(Aqargument\ \& +\fInum hosts\fR +indique à Nmap combien d\*(AqIPs il doit générer\&. Les IPs à éviter, comme les plages d\*(Aqadresses privées, multicast ou non allouées sont automatiquement évitées\&. On peut aussi utiliser l\*(Aqargument +0 +pour effectuer un scan sans fin\&. Rappelez\-vous bien que certains administrateurs de réseau s\*(Aqirritent lorsqu\*(Aqon scanne leur réseau sans permission et peuvent porter plainte\&. Utilisez cette option à vos risques et périls! Un jour de pluie où vous ne savez pas quoi faire, essayez la commande +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR +pour trouver des serveurs Web au hasard sur lesquels fureter\&. +.RE +.PP +\fB\-\-exclude <host1[,host2][,host3],\&.\&.\&.>\fR (Exclut des hôtes/des réseaux des cibles) +.RS 4 +Spécifie une liste de cibles séparées par des virgules à exclure du scan, même si elles font partie de la plage réseau que vous avez spécifiée\&. La liste que vous donnez en entrée utilise la syntaxe Nmap habituelle, elle peut donc inclure des noms d\*(Aqhôtes, des blocs CIDR, des intervalles, etc\&. Ceci peut être utile quand le réseau que vous voulez scanner comprend des serveurs à haute disponibilité, des systèmes reconnus pour réagir défavorablement aux scans de ports ou des sous\-réseaux administrés par d\*(Aqautres personnes\&. +.RE +.PP +\fB\-\-excludefile <exclude_file>\fR (Exclut des hôtes/des réseaux des cibles depuis le fichier) +.RS 4 +Cette option offre les mêmes fonctionnalités que l\*(Aqoption +\fB\-\-exclude\fR, à la différence qu\*(Aqici les cibles à exclure sont spécifiées dans le fichier +\fIexclude_file\fR +au lieu de la ligne de commande\&. Les cibles sont séparées entre elles dans le fichier par des retours chariot, des espaces ou des tabulations\&. +.RE +.SH "DÉCOUVERTE DES HÔTES" +.PP +Une des toutes premières étapes dans la reconnaissance d\*(Aqun réseau est de réduire un ensemble (quelques fois énorme) de plages d\*(AqIP à une liste d\*(Aqhôtes actifs ou intéressants\&. Scanner tous les ports de chacune des IP est lent et souvent inutile\&. Bien sûr, ce qui rend un hôte intéressant dépend grandement du but du scan\&. Les administrateurs de réseau peuvent être uniquement intéressés par les hôtes où un certain service est actif tandis que les auditeurs de sécurité peuvent s\*(Aqintéresser à tout équipement qui dispose d\*(Aqune adresse IP\&. Alors que l\*(Aqadministrateur se satisferait d\*(Aqun ping ICMP pour repérer les hôtes de son réseau, l\*(Aqauditeur pourrait utiliser un ensemble varié de douzaines de paquets de tests (probes) dans le but de contourner les restrictions des pare\-feux\&. +.PP +Parce que les besoins de découverte des hôtes sont si différents, Nmap propose une grande panoplie d\*(Aqoptions pour individualiser les techniques utilisées\&. La découverte d\*(Aqhôte est souvent appelée « scan ping » (ping scan), mais celle\-ci va bien au delà d\*(Aqune simple requête echo ICMP associée à l\*(Aqincontournable outil +ping\&. Les utilisateurs peuvent entièrement éviter l\*(Aqétape scan ping en listant simplement les cibles (\fB\-sL\fR), en désactivant le scan ping(\fB\-P0\fR) ou alors en découvrant le réseau avec des combinaisons de tests TCP SYN/ACK, UDP et ICMP\&. Le but de ces tests est de solliciter une réponse des cibles qui prouvera qu\*(Aqune adresse IP est effectivement active (utilisée par un hôte ou un équipement réseau)\&. Sur de nombreux réseaux, seul un petit pourcentage des adresses IP sont actives à un moment donné\&. Ceci est particulièrement courant avec les plages d\*(Aqadresses privées (définies par la sainte RFC 1918) comme 10\&.0\&.0\&.0/8\&. Ce réseau comprend 16 millions d\*(AqIPs, mais il s\*(Aqest déjà vu utilisé par des entreprises disposant de moins d\*(Aqun millier de machines\&. La découverte des hôtes permet de trouver ces machines dans l\*(Aqimmensité de cet océan d\*(Aqadresses IP\&. +.PP +Lorsqu\*(Aqaucune option de découverte n\*(Aqest spécifiée, Nmap envoie un paquet TCP ACK sur le port 80 ainsi qu\*(Aqune requête d\*(Aqecho ICMP à chaque machine cible\&. Une exception à cette règle est qu\*(Aqun scan ARP est utilisé pour chaque cible du réseau Ethernet local\&. Pour les utilisateurs UNIX non\-privilégiés, un paquet SYN est utilisé à la place du ACK en utilisant l\*(Aqappel système\ \& +\fBconnect()\fR\&. Ces options par défaut sont équivalentes à la combinaison d\*(Aqoption +\fB\-PA \-PE\fR\&. Cette méthode de découverte des hôtes est souvent suffisante lors de scans de réseaux locaux, mais un ensemble plus complet de tests de découverte est recommandé pour les audits de sécurité\&. +.PP +Les options suivantes contrôlent la découverte des hôtes\&. +.PP +\fB\-sL\fR (Liste simplement) +.RS 4 +Cette forme dégénérée de découverte d\*(Aqhôtes liste simplement chaque hôte du(des) réseau(x) spécifié(s), sans envoyer aucun paquet aux cibles\&. Par défaut, Nmap utilise toujours la résolution DNS inverse des hôtes pour connaître leurs noms\&. Il est souvent étonnant de constater combien ces simples informations peuvent être utiles\&. Par exemple, +fw\&.chi\&.playboy\&.com +est le pare\-feu du bureau de Chicago de Playboy Enterprises\&. Nmap rend également compte du nombre total d\*(Aqadresses IP à la fin de son rapport\&. Cette simple liste est un bon test pour vous assurer que vos adresses IP cibles sont les bonnes\&. Si jamais ces noms de domaines ne vous disent rien, il vaudrait mieux s\*(Aqarrêter là afin d\*(Aqéviter de scanner le réseau de la mauvaise entreprise\&. +.sp +Comme l\*(Aqidée est de simplement afficher une liste des cibles, les options de fonctionnalités plus haut niveau comme le scan de ports, la détection du système d\*(Aqexploitation ou la découverte des hôtes ne peuvent pas être combinées avec la liste simple\&. Si vous voulez juste désactiver la découverte des hôtes mais quand même effectuer des opérations de plus haut niveau, lisez sur l\*(Aqoption +\fB\-P0\fR\&. +.RE +.PP +\fB\-sP\fR(Scan ping) +.RS 4 +Cette option indique à Nmap de n\*(Aqeffectuer +\fIque\fR +le scan ping (la découverte des hôtes), puis d\*(Aqafficher la liste des hôtes disponibles qui ont répondu au scan\&. Aucun autre test (comme le scan des ports ou la détection d\*(AqOS) n\*(Aqest effectué\&. Ce scan est légèrement plus intrusif que la simple liste, et peut souvent être utilisé dans le même but\&. Il permet un survol d\*(Aqun réseau cible sans trop attirer l\*(Aqattention\&. Savoir combien d\*(Aqhôtes sont actifs est plus précieux pour un attaquant que la simple liste de chaque IP avec son nom d\*(Aqhôte\&. +.sp +Les gestionnaires des systèmes apprécient également cette option\&. Elle peut facilement être utilisée pour compter le nombre de machines disponibles sur un réseau ou pour contrôler la disponibilité d\*(Aqun serveur\&. Cette option est souvent appelée « balayage ping » (ping sweep)\&. Elle est plus fiable que sonder par ping l\*(Aqadresse de diffusion (broadcast) car beaucoup d\*(Aqhôtes ne répondent pas à ces requêtes\&. +.sp +L\*(Aqoption +\fB\-sP\fR +envoie une requête d\*(Aqecho ICMP et un paquet TCP sur le port par défaut (80)\&. Lorsqu\*(Aqexécutée par un utilisateur non\-privilégié, un paquet SYN est envoyé (en utilisant l\*(Aqappel système +\fBconnect()\fR) sur le port 80 de la cible\&. Lorsqu\*(Aqun utilisateur privilégié essaie de scanner des cibles sur un réseau local Ethernet, des requêtes ARP (\fB\-PR\fR) sont utilisées à moins que l\*(Aqoption +\fB\-\-send\-ip\fRsoit spécifiée\&. L\*(Aqoption +\fB\-sP\fR +peut être combinée avec chacun des tests de découverte des hôtes (les options +\fB\-P*\fR, sauf +\fB\-P0\fR) pour une plus grand flexibilité\&. Dès qu\*(Aqun test de ce type est utilisé avec un numéro de port, il est prépondérante sur les tests par défaut (ACK et requête echo)\&. Quand des pare\-feux restrictifs sont présents entre la machine exécutant Nmap et le réseau cible, il est recommandé d\*(Aqutiliser ces techniques avancées\&. Sinon des hôtes peuvent être oubliés quand le pare\-feu rejète les paquets ou leurs réponses\&. +.RE +.PP +\fB\-PN\fR (Pas de scan ping) +.RS 4 +Cette option évite complètement l\*(Aqétape de découverte des hôtes de Nmap\&. En temps normal, Nmap utilise cette étape pour déterminer quelles sont les machines actives pour effectuer un scan approfondi\&. Par défaut, Nmap n\*(Aqexamine en profondeur, avec le scan des ports ou la détection de version, que les machines qui sont actives\&. Désactiver la détection des hôtes avec l\*(Aqoption +\fB\-P0\fRconduit Nmap à effectuer les scans demandés sur +\fItoutes\fR +les adresses IP cibles spécifiées\&. Ainsi, si une adresse IP de classe B (/16) est spécifiée à la ligne de commande, toutes les 65 536 adresses IP seront scannées\&. Le deuxième caractère dans l\*(Aqoption +\fB\-P0\fR +est bien un zéro et non pas la lettre O\&. La découverte des hôtes est évitée comme avec la liste simple, mais au lieu de s\*(Aqarrêter et d\*(Aqafficher la liste des cibles, Nmap continue et effectue les fonctions demandées comme si chaque adresse IP était active\&. Pour les machines sur un reseau local en ethernet, un scan ARP scan sera quand même effectué (à moins que \-\-send\-ip ne soit spécifié) parceque Nmap a besoin de l\*(Aqadresse MAC pour les scans ulterieurs\&. Cette option s\*(Aqappelait P0 (avec un zéro) auparavant, mais a été renommée afin d\*(Aqéviter la confusion avec le Ping par protocoles PO (lettre O)\&. +.RE +.PP +\fB\-PS [portlist]\fR(Ping TCP SYN) +.RS 4 +Cette option envoie un paquet TCP vide avec le drapeau (flag) SYN activé\&. La destination par défaut de ce paquet est le port 80 (configurable à la compilation en changeant la définition DEFAULT_TCP_PROBE_PORT dans +nmap\&.h\ \& ), mais un autre port peut être spécifié en paramètre (ex\&.:\ \& +\fB\-PS22,23,25,80,113,1050,35000\fR), auquel cas les paquets de tests (probes) seront envoyés en parallèle sur chaque port cible\&. +.sp +Le drapeau SYN fait croire que vous voulez établir une connexion sur le système distant\&. Si le port de destination est fermé, un paquet RST (reset) est renvoyé\&. Si le port s\*(Aqavère être ouvert, la cible va entamer la seconde étape de l\*(Aqétablissement de connexion TCP en 3 temps (TCP 3\-way\-handshake) en répondant par un paquet TCP SYN/ACK\&. La machine exécutant Nmap avortera alors la connexion en cours d\*(Aqétablissement en répondant avec un paquet RST au lieu d\*(Aqun paquet ACK qui finaliserait normalement l\*(Aqétablissement de la connexion\&. Le paquet RST est envoyé par le noyau (kernel) de la machine exécutant Nmap en réponse au paquet SYN/ACK inattendu; ce n\*(Aqest pas Nmap lui\-même qui l\*(Aqémet\&. +.sp +Nmap ne tient pas compte si le port est réellement ouvert ou fermé\&. Les paquets RST ou SYN/ACK évoqués précédemment indiquent tout deux que l\*(Aqhôte est disponible et réceptif\&. +.sp +Sur les systèmes UNIX, seuls les utilisateurs privilégiés +root +sont généralement capables d\*(Aqenvoyer et de recevoir des paquets TCP bruts (raw packets)\&. Pour les utilisateurs non\-privilégiés, Nmap contourne cette restriction avec l\*(Aqappel système connect() utilisé sur chaque port de la cible\&. Ceci revient à envoyer un paquet SYN sur l\*(Aqhôte cible pour établir une connexion\&. Si connect() réussi ou échoue avec ECONNREFUSED, la pile TCP/IP sous\-jacente doit avoir reçu soit un SYN/ACK soit un RST et l\*(Aqhôte est alors considéré comme étant actif\&. Si la tentative de connexion est toujours en cours jusqu\*(Aqà l\*(Aqexpiration du délai d\*(Aqétablissement, l\*(Aqhôte est considéré comme étant inactif\&. Cette technique est aussi utilisée pour les connexions IPv6, du fait que les paquets bruts IPv6 ne sont pas encore supportés par Nmap\&. +.RE +.PP +\fB\-PA [portlist]\fR(Ping TCP ACK) +.RS 4 +Le ping TCP ACK ressemble fortement aux tests SYN précédemment évoqués\&. À la différence que, comme on l\*(Aqimagine bien, le drapeau TCP ACK est utilisé à la place du drapeau SYN\&. Un tel paquet ACK acquitte normalement la réception de données dans une connexion TCP précédemment établie, or ici cette connexion n\*(Aqexiste pas\&. Ainsi, l\*(Aqhôte distant devrait systématiquement répondre par un paquet RST qui trahirait son existence\&. +.sp +L\*(Aqoption +\fB\-PA\fR +utilise le même port par défaut que le test SYN (80), mais peut aussi prendre une liste de ports de destination dans le même format\&. Si un utilisateur non\-privilégié essaie cette option, ou si une cible IPv6 est spécifiée, la technique connect() précédemment évoquée est utilisée\&. Cette technique est imparfaite car connect() envoie un paquet SYN et pas un ACK\&. +.sp +La raison pour laquelle Nmap offre à la fois les tests SYN et ACK est de maximiser les chances de contourner les pare\-feux\&. De nombreux administrateurs configurent leurs routeurs et leurs pare\-feux pour bloquer les paquets entrants SYN sauf ceux destinés aux services publics comme les sites Web de l\*(Aqentreprise ou le serveur de messagerie\&. Ceci empêche les autres connexions entrantes dans l\*(Aqorganisation, tout en permettant un accès complet en sortie à l\*(AqInternet\&. Cette approche sans état de connexion est peu consommatrice des ressources des pare\-feux/routeurs et est largement supportée dans les dispositifs de filtrage matériels ou logiciels\&. Le pare\-feu logiciel Linux Netfilter/iptables par exemple propose l\*(Aqoption +\fB\-\-syn\fR +qui implante cette approche sans état (stateless)\&. Quand de telles règles de pare\-feu sont mises en place, les paquets de tests SYN ( +\fB\-PS\fR) seront certainement bloqués lorsqu\*(Aqenvoyés sur des ports fermés\&. Dans ces cas là, les tests ACK contournent ces règles, prenant ainsi toute leur saveur\&. +.sp +Un autre type courant de pare\-feux utilise des règles avec état de connexion (statefull) qui jettent les paquets inattendus\&. Cette fonctionnalité était à la base fréquente sur les pare\-feux haut\-de\-gamme, mais elle s\*(Aqest répandue avec le temps\&. Le pare\-feu Linux Netfilter/iptables supporte ce mécanisme grâce à l\*(Aqoption +\fB\-\-state\fR +qui catégorise les paquets selon les états de connexion\&. Un test SYN marchera certainement mieux contre ces systèmes, car les paquets ACK sont généralement considérés comme inattendus ou bogués et rejetés\&. Une solution à ce dilemme est d\*(Aqenvoyer à la fois des paquets de tests SYN et ACK en utilisant conjointement les options +\fB\-PS\fR +et +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU [portlist]\fR(Ping UDP) +.RS 4 +Une autre option de découverte des hôtes est le ping UDP, qui envoie un paquet UDP vide (à moins que l\*(Aqoption \ \& +\fB\-\-data\-length\fR +ne soit utilisée) aux ports spécifiés\&. La liste des ports est écrite dans le même format que les options +\fB\-PS\fR +et +\fB\-PA\fR +précédemment évoquées\&. Si aucun port n\*(Aqest spécifié, le port par défaut est le 31338\&. Cette valeur par défaut peut être modifiée à la compilation en changeant la définition DEFAULT_UDP_PROBE_PORT dans le fichier +nmap\&.h\&. Un numéro de port très peu courant est utilisé par défaut, car envoyer des paquets sur un port ouvert n\*(Aqest que peu souhaitable pour ce type de scan particulier\&. +.sp +Lorsqu\*(Aqon atteint un port fermé sur la cible, le test UDP s\*(Aqattend à recevoir un paquet ICMP « port unreachable » en retour\&. Ceci indique à Nmap que la machine est active et disponible\&. De nombreuses autres erreurs ICMP, comme « host/network unreachable » ou « TTL exceeded » indiquent un hôte inactif ou inaccessible\&. Une absence de réponse est également interprétée de la sorte\&. Si un port ouvert est atteint, la majorité des services ignorent simplement ce paquet vide et ne répondent rien\&. Ceci est la raison pour laquelle le port par défaut du test est le 31338, qui n\*(Aqa que très peu de chances d\*(Aqêtre utilisé\&. Très peu de services, comme chargen, répondront à un paquet UDP vide, dévoilant ainsi à Nmap leur présence\&. +.sp +L\*(Aqavantage principal de ce type de scan est qu\*(Aqil permet de contourner les pare\-feux et dispositifs de filtrage qui n\*(Aqobservent que TCP\&. Les routeurs sans\-fil Linksys BEFW11S4 par exemple sont de ce type\&. L\*(Aqinterface externe de cet équipement filtre tous les ports TCP par défaut, mais les paquets de tests UDP se voient toujours répondre par des messages ICMP « port unreachable », rendant ainsi l\*(Aqéquipement désuet\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR(Types de ping ICMP) +.RS 4 +En plus des inhabituels types de découverte des hôtes TCP et UDP précédemment évoqués, Nmap peut également envoyer les paquets standard émis par l\*(Aqéternel programme +ping\&. Nmap envoie un paquet ICMP type 8 (echo request) aux adresses IP cibles, attendant un type 0 (echo reply) en provenance des hôtes disponibles\&. Malheureusement pour les explorateurs de réseaux, de nombreux hôtes et pare\-feux bloquent désormais ces paquets, au lieu d\*(Aqy répondre comme indiqué par la +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[3]\d\s+2\&. Pour cette raison, les scans « purs ICMP » sont rarement fiables contre des cibles inconnues d\*(AqInternet\&. Cependant, pour les administrateurs surveillants un réseau local cette approche peut être pratique et efficace\&. Utilisez l\*(Aqoption +\fB\-PE\fR +pour activer ce comportement de requête echo\&. +.sp +Même si la requête echo est le standard de la requête ICMP, Nmap ne s\*(Aqarrête pas là, Le standard ICMP (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[4]\d\s+2) spécifie également les requêtes « timestamp », « information » et « adress mask », dont les codes sont respectivement 13, 15 et 17\&. Si le but avoué de ces requêtes est d\*(Aqobtenir des informations comme le masque réseau ou l\*(Aqheure courante, elles peuvent facilement être utilisées pour la découverte des hôtes: un système qui y répond est actif et disponible\&. Nmap n\*(Aqimplante actuellement pas les requêtes d\*(Aqinformations, car elles ne sont que rarement supportées\&. La RFC 1122 insiste sur le fait +« qu\*(Aqun hôte ne DEVRAIT PAS implanter ces messages »\&. Les requêtes timestamp et masque d\*(Aqadresse peuvent être émises avec les options +\fB\-PP\fR +et +\fB\-PM\fR, respectivement\&. Une réponse timestamp (code ICMP 14) ou masque d\*(Aqadresse (code ICMP 18) révèle que l\*(Aqhôte est disponible\&. Ces deux requêtes peuvent être très utiles quand les administrateurs bloquent spécifiquement les requêtes echo mais oublient que les autres requêtes ICMP peuvent être utilisées dans le même but\&. +.RE +.PP +\fB\-PR\fR(Ping ARP) +.RS 4 +Un des usages les plus courant de Nmap est de scanner un LAN Ethernet\&. Sur la plupart des LANS, particulièrement ceux qui utilisent les plages d\*(Aqadresses privées de la RFC 1918, la grande majorité des adresses IP sont inutilisées à un instant donné\&. Quand Nmap essaie d\*(Aqenvoyer un paquet IP brut (raw packet) comme une requête ICMP echo, le système d\*(Aqexploitation doit déterminer l\*(Aqadresse matérielle (ARP) correspondant à la cible IP pour correctement adresser la trame Ethernet\&. Ceci est souvent lent et problématique, car les systèmes d\*(Aqexploitation n\*(Aqont pas été écrits pour gérer des millions de requêtes ARP contre des hôtes indisponibles en un court intervalle de temps\&. +.sp +Les requêtes ARP sont prises en charge par Nmap qui dispose d\*(Aqalgorithmes optimisés pour gérer le scan ARP\&. Si Nmap reçoit une réponse à ces requêtes, il n\*(Aqa pas besoin de poursuivre avec les ping basés sur IP car il sait déjà que l\*(Aqhôte est actif\&. Ceci rend le scan ARP bien plus rapide et fiable que les scans basés sur IP\&. Ainsi, c\*(Aqest le comportement adopté par défaut par Nmap quand il remarque que les hôtes scannés sont sur le réseau local\&. Même si d\*(Aqautres types de ping (comme +\fB\-PE\fR +ou +\fB\-PS\fR) sont spécifiés, Nmap utilise ARP pour chaque cible qui sont sur le même sous\-réseau que la machine exécutant Nmap\&. Si vous ne souhaitez vraiment pas utiliser le scan ARP, utilisez l\*(Aqoption +\fB\-\-send\-ip\fR +.RE +.PP +\fB\-PO\fR[protolist] (IP Protocol Ping) +.RS 4 +Une autre otpion de découverte d\*(Aqhôtes est le Ping IPProto, qui envoie des paquets IP avec les numéros de protocole(s) spécifiés dans le champ Protocol de l\*(Aqen\-tête IP\&. La liste des protocoles prend le même format qu\*(Aqavec la liste des ports dans les options de découverte en TCP et UDP présentées précédement\&. Si aucun protocole n\*(Aqest précisé, par défaut ce sont des paquets IP multiples ICMP (protocol 1), IGMP (protocol 2), et IP\-in\-IP (protocol 4) qui sont envoyés\&. Les protocoles par défaut peuvent être configurés à la compilation en changeant DEFAULT_PROTO_PROBE_PORT_SPEC dans nmap\&.h\&. Notez que pour ICMP, IGMP, TCP (protocol 6), et UDP (protocol 17), les paquets sont envoyés avec l\*(Aqen\-tête supplémentaire cependant que les autres protocoles sont envoyés sans données supplémentaires en sus de l\*(Aqen\-tête IP (à moins que l\*(Aqoption \-\-data\-length ne soit spécifiée)\&. +.sp +Cette méthode de découverte des hôtes recherche les réponses dans le même protocole que la requète, ou le message ICMP Protocol Unreachable qui signifie que le protocole spécifié n\*(Aqest pas supporté par l\*(Aqhôte (ce qui implique indirectement qu\*(Aqil est connecté)\&. +.RE +.PP +\fB\-\-reason\fR(Raisons données à l\*(Aqétat de l\*(Aqhôte et des ports) +.RS 4 +Montre les raisons pour lesquelles chaque port est désigné par un état spécifique et un hôte connecté ou non\&. Cette option affiche le type de paquet qui à déterminé l\*(Aqétat du port ou de l\*(Aqhôte\&. Par exemple, un paquet RST en provenance d\*(Aqun port fermé ou un echo relpy pour un hôte connecté\&. L\*(Aqinformation que Nmap peut fournir est déterminée par le type de scan ou de ping\&. Le scan SYN et le ping SYN (\-sS et \-PT) sont très détaillés, mais les TCP connect scan et ping (\-sT) sont limités par l\*(Aqimplémentation de l\*(Aqappel système connect\&. Cette fonctionnalité est automatiquement activée par le mode de deboguage (\-d) et les résultats sont enregistrés dans la sortie XML même si cette option n\*(Aqest pas spécifiée\&. +.RE +.PP +\fB\-n\fR(Pas de résolution DNS) +.RS 4 +Indique à Nmap de ne +\fIjamais\fR +faire la résolution DNS inverse des hôtes actifs qu\*(Aqil a trouvé\&. Comme la résolution DNS est souvent lente, ceci accélère les choses\&. +.RE +.PP +\fB\-R\fR(Résolution DNS pour toutes les cibles) +.RS 4 +Indique à Nmap de +\fItoujours\fRfaire la résolution DNS inverse des adresses IP cibles\&. Normalement, ceci n\*(Aqest effectué que si une machine est considérée comme active\&. +.RE +.PP +\fB\-\-dns\-servers <serveur1[,serveur2],\&.\&.\&.>\fR (Serveurs à utiliser pour les requètes DNS inverses) +.RS 4 +Par defaut Nmap va essayer de déterminer vos serveurs DNS (pour le résolution rDNS) depuis votre fichier resolv\&.conf (UNIX) ou le registre (Win32)\&. En alternative, vous pouvez utiliser cette option pour spécifier des serveurs alternatifs\&. Cette option n\*(Aqest pas honorée si vous utilisez +\fB\-\-system\-dns\fR +ou un scan IPv6 \&. Utiliser plusieurs serveurs DNS est souvent plus rapide, spécialement si vous utilisez les serveurs dédiés pour votre espace d\*(Aqadresses cible\&. Cette option peut aussi améliorer la discretion, comme vos requètes peuvent être relayées par n\*(Aqimporte quel serveur DNS récursif sur Internet\&. +.sp +Cette option est aussi utile lors du scan de reseaux privés\&. Parfois seuls quelques serveurs de noms fournissent des informations rDNS propres, et vous pouvez même ne pas savoir où ils sont\&. Vous pouvez scanner le reseau sur le port 53 (peut être avec une détection de version), puis essayer un list scan (\fB\-sL\fR) spécifiant chaque serveur de nom un a la fois avec +\fB\-\-dns\-servers\fR +jusqu\*(Aqa en trouver un qui fonctionne\&. +.RE +.PP +\fB\-\-system\-dns\fR(Utilise la résolution DNS du système) +.RS 4 +Par défaut, Nmap résout les adresses IP en envoyant directement les requêtes aux serveurs de noms configurés sur votre machine et attend leurs réponses\&. De nombreuses requêtes (souvent des douzaines) sont effectuées en parallèle pour améliorer la performance\&. Spécifiez cette option si vous souhaitez utiliser la résolution de noms de votre système (une adresse IP à la fois par le biais de l\*(Aqappel getnameinfo())\&. Ceci est plus lent est rarement utile à moins qu\*(Aqil n\*(Aqy ait une procédure erronée dans le code de Nmap concernant le DNS \-\- nous contacter s\*(Aqil vous plaît dans cette éventualité\&. La résolution système est toujours utilisée pour les scans IPv6\&. +.RE +.SH "LES BASES DU SCAN DE PORTS" +.PP +Même si le nombre de fonctionnalités de Nmap a considérablement augmenté au fil des ans, il reste un scanner de ports efficace, et cela reste sa fonction principale\&. La commande de base +\fBnmap \fR\fB\fItarget\fR\fR\fB \fR +scanne plus de 1 660 ports TCP de l\*(Aqhôte +\fItarget\fR\&. Alors que de nombreux autres scanners de ports ont partitionné les états des ports en ouverts ou fermés, Nmap a une granularité bien plus fine\&. Il divise les ports selon six états: +ouvert (open), +fermé (closed), +filtré (filtered), +non\-filtré (unfiltered), +ouvert|filtré (open|filtered), et +fermé|filtré (closed|filtered)\&. +.PP +Ces états ne font pas partie des propriétés intrinsèques des ports eux\-mêmes, mais décrivent comment Nmap les perçoit\&. Par exemple, un scan Nmap depuis le même réseau que la cible pourrait voir le port 135/tcp comme ouvert alors qu\*(Aqun scan au même instant avec les mêmes options au travers d\*(AqInternet pourrait voir ce même port comme +filtré\&. +.PP +\fBLes six états de port reconnus par Nmap \fR +.PP +ouvert (open) +.RS 4 +Une application accepte des connexions TCP ou des paquets UDP sur ce port\&. Trouver de tels ports est souvent le but principal du scan de ports\&. Les gens soucieux de la sécurité savent pertinemment que chaque port ouvert est un boulevard pour une attaque\&. Les attaquants et les pen\-testers veulent exploiter ces ports ouverts, tandis que les administrateurs essaient de les fermer ou de les protéger avec des pare\-feux sans gêner leurs utilisateurs légitimes\&. Les ports ouverts sont également intéressants pour des scans autres que ceux orientés vers la sécurité car ils indiquent les services disponibles sur le réseau\&. +.RE +.PP +fermé (closed) +.RS 4 +Un port fermé est accessible (il reçoit et répond aux paquets émis par Nmap), mais il n\*(Aqy a pas d\*(Aqapplication en écoute\&. Ceci peut s\*(Aqavérer utile pour montrer qu\*(Aqun hôte est actif (découverte d\*(Aqhôtes ou scan ping), ou pour la détection de l\*(AqOS\&. Comme un port fermé est accessible, il peut être intéressant de le scanner de nouveau plus tard au cas où il s\*(Aqouvrirait\&. Les administrateurs pourraient désirer bloquer de tels ports avec un pare\-feu, mais ils apparaîtraient alors dans l\*(Aqétat filtré décrit dans la section suivante\&. +.RE +.PP +filtré (filtered) +.RS 4 +Nmap ne peut pas toujours déterminer si un port est ouvert car les dispositifs de filtrage des paquets empêchent les paquets de tests (probes) d\*(Aqatteindre leur port cible\&. Le dispositif de filtrage peut être un pare\-feu dédié, des règles de routeurs filtrants ou un pare\-feu logiciel\&. Ces ports ennuient les attaquants car ils ne fournissent que très peu d\*(Aqinformations\&. Quelques fois ils répondent avec un message d\*(Aqerreur ICMP de type 3 code 13 (« destination unreachable: communication administratively prohibited »), mais les dispositifs de filtrage qui rejettent les paquets sans rien répondre sont bien plus courants\&. Ceci oblige Nmap à essayer plusieurs fois au cas où ces paquets de tests seraient rejetés à cause d\*(Aqune surcharge du réseau et pas du filtrage\&. Ceci ralenti terriblement les choses\&. +.RE +.PP +non\-filtré (unfiltered) +.RS 4 +L\*(Aqétat non\-filtré signifie qu\*(Aqun port est accessible, mais que Nmap est incapable de déterminer s\*(Aqil est ouvert ou fermé\&. Seul le scan ACK, qui est utilisé pour déterminer les règles des pare\-feux, catégorise les ports dans cet état\&. Scanner des ports non\-filtrés avec un autre type de scan, comme le scan Windows, SYN ou FIN peut aider à savoir si un port est ouvert ou pas\&. +.RE +.PP +ouvert|filtré (open|filtered) +.RS 4 +Nmap met dans cet état les ports dont il est incapable de déterminer l\*(Aqétat entre ouvert et filtré\&. Ceci arrive pour les types de scans où les ports ouverts ne renvoient pas de réponse\&. L\*(Aqabsence de réponse peut aussi signifier qu\*(Aqun dispositif de filtrage des paquets a rejeté le test ou les réponses attendues\&. Ainsi, Nmap ne peut s\*(Aqassurer ni que le port est ouvert, ni qu\*(Aqil est filtré\&. Les scans UDP, protocole IP, FIN, Null et Xmas catégorisent les ports ainsi\&. +.RE +.PP +fermé|filtré (closed|filtered) +.RS 4 +Cet état est utilisé quand Nmap est incapable de déterminer si un port est fermé ou filtré\&. Cet état est seulement utilisé par le scan Idle basé sur les identifiants de paquets IP\&. +.RE +.SH "TECHNIQUES DE SCAN DE PORTS" +.PP +Comme un débutant tâchant d\*(Aqeffectuer une réparation automobile, je peux me battre pendant des heures en essayant d\*(Aqutiliser convenablement mes rudimentaires outils (marteau, clefs, etc\&.) pour la tâche à laquelle je me suis attablé\&. Une fois que j\*(Aqai lamentablement échoué et que j\*(Aqai fait remorquer ma guimbarde par un vrai mécanicien, à chaque fois il farfouille dans sa grosse caisse à outils pour y trouver le parfait bidule qui, d\*(Aqun coup de cuillère à pot, répare le truc\&. L\*(Aqart du scan de port, c\*(Aqest la même chose\&. Les experts connaissent des douzaines de techniques de scan et choisissent la bonne (ou une combinaison) pour une tâche donnée\&. D\*(Aqun autre côté, les utilisateurs inexpérimentés et les script kiddies essaient de tout résoudre avec le scan SYN par défaut\&. Comme Nmap est gratuit, la seule barrière à franchir pour atteindre la maîtrise du scan est la connaissance\&. C\*(Aqest bien mieux que l\*(Aqautomobile, où il faut une grande expérience pour déterminer que vous avez besoin d\*(Aqune plieuse à tablier hydraulique, mais où quand bien même il faut encore payer des centaines d\*(Aqeuros pour en disposer\&. +.PP +La plupart des types de scans ne sont disponibles que pour les utilisateurs privilégiés\&. Ceci est dû au fait qu\*(Aqils émettent et reçoivent des paquets bruts (raw), qui nécessitent les droits root sur les systèmes UNIX\&. L\*(Aqutilisation d\*(Aqun compte administrateur est conseillé sous Windows, bien que Nmap puisse fonctionner avec des utilisateurs non\-privilégiés si WinPcap est déjà chargé avec l\*(AqOS\&. Ce besoin des droits root était une sérieuse restriction quand Nmap a été diffusé en 1997, car beaucoup d\*(Aqutilisateurs avaient seulement accès à des comptes Internet partagés\&. Maintenant, le monde est différent\&. Les ordinateurs sont moins chers, bien plus de gens disposent d\*(Aqun accès 24/24 direct à Internet et les systèmes UNIX de bureau (comme Linux et Mac OS X) sont répandus\&. Une version Windows de Nmap est désormais disponible, permettant ainsi de le lancer sur encore plus de machines\&. Pour toutes ces raisons, les utilisateurs ont bien moins besoin de lancer Nmap depuis des comptes Internet limités\&. Ceci est heureux, car les options privilégiés rendent Nmap bien plus puissant et flexible\&. +.PP +Si Nmap essaie de produire des résultats précis, il faut garder à l\*(Aqesprit que toute sa perspicacité est basée sur les paquets renvoyés par les machines cibles (ou les pare\-feux qui les protègent)\&. De tels hôtes ne sont pas toujours dignes de confiance et peuvent répondre dans le but de d\*(Aqinduire Nmap en erreur\&. Les hôtes qui ne respectent pas les RFCs et ne répondent pas comme ils devraient sont encore plus courants\&. Les scans FIN, Null et Xmas sont les plus sensibles à ce problème\&. Ces points sont spécifiques à certains types de scan et sont donc abordés dans leur section propre de la documentation\&. +.PP +Cette section documente la douzaine de techniques de scan de ports gérées par Nmap\&. Les méthodes ne peuvent pas être utilisés simultanément, excepté le scan UDP (\fB\-sU\fR) qui peut être combiné avec chacun des types de scan TCP\&. A titre d\*(Aqaide mémoire, les options de type de scan sont de la forme +\fB\-s\fR\fB\fIC\fR\fR\fB \fR, où +\fIC\fRest un caractère prépondérant dans le nom du scan, souvent le premier\&. La seule exception est le désuet scan par rebond FTP (\fB\-b\fR)\&. Par défaut, Nmap effectue un scan SYN, bien qu\*(Aqil y substitue un scan connect() si l\*(Aqutilisateur ne dispose pas des droits suffisants pour envoyer des paquets bruts (qui requièrent les droits root sous UNIX) ou si des cibles IPv6 sont spécifiées\&. Des scans listés dans cette section, les utilisateurs non\-privilégiés peuvent seulement exécuter les scans connect() et le scan par rebond FTP\&. +.PP +\fB\-sS\fR(Scan TCP SYN) +.RS 4 +Le scan SYN est celui par défaut et le plus populaire pour de bonnes raisons\&. Il peut être exécuté rapidement et scanner des milliers de ports par seconde sur un réseau rapide lorsqu\*(Aqil n\*(Aqest pas entravé par des pare\-feux\&. Le scan SYN est relativement discret et furtif, vu qu\*(Aqil ne termine jamais les connexions TCP\&. Il marche également contre toute pile respectant TCP, au lieu de dépendre des particularités environnementales spécifiques comme les scans Fin/Null/Xmas, Maimon ou Idle le sont\&. Il permet de plus une différentiation fiable entre les états +ouvert, +fermé +et +filtré\&. +.sp +Cette technique est souvent appelée le scan demi\-ouvert (half\-open scanning), car il n\*(Aqétabli pas pleinement la connexion TCP\&. Il envoie un paquet SYN et attend sa réponse, comme s\*(Aqil voulait vraiment ouvrir une connexion\&. Une réponse SYN/ACK indique que le port est en écoute (ouvert), tandis qu\*(Aqune RST (reset) indique le contraire\&. Si aucune réponse n\*(Aqest reçue après plusieurs essais, le port est considéré comme étant filtré\&. Le port l\*(Aqest également si un message d\*(Aqerreur « unreachable ICMP (type 3, code 1,2, 3, 9, 10 ou 13) » est reçu\&. +.RE +.PP +\fB\-sT\fR(Scan TCP connect()) +.RS 4 +Le scan TCP connect() est le type de scan par défaut quand le SYN n\*(Aqest pas utilisable\&. Tel est le cas lorsque l\*(Aqutilisateur n\*(Aqa pas les privilèges pour les paquets bruts (raw packets) ou lors d\*(Aqun scan de réseaux IPv6\&. Plutôt que d\*(Aqécrire des paquets bruts comme le font la plupart des autres types de scan, Nmap demande au système d\*(Aqexploitation qui l\*(Aqexécute d\*(Aqétablir une connexion au port de la machine cible grâce à l\*(Aqappel système +connect()\&. C\*(Aqest le même appel système haut\-niveau qui est appelé par les navigateurs Web, les clients P2P et la plupart des applications réseaux qui veulent établir une connexion\&. Cet appel fait partie de l\*(Aqinterface d\*(Aqapplication connue sous le nom de « Berkeley Sockets API »\&. Au lieu de lire les réponses brutes sur le support physique, Nmap utilise cette application API pour obtenir l\*(Aqétat de chaque tentative de connexion\&. +.sp +Si le scan SYN est disponible, il vaut mieux l\*(Aqutiliser\&. Nmap a bien moins de contrôles sur l\*(Aqappel système haut niveau \ \& +connect() +que sur les paquets bruts, ce qui le rend moins efficace\&. L\*(Aqappel système complète les connexions ouvertes sur les ports cibles au lieu de les annuler lorsque la connexion est à demie ouverte, comme le fait le scan SYN\&. Non seulement c\*(Aqest plus long et demande plus de paquets pour obtenir la même information, mais de plus la probabilité que les cibles activent la connexion est plus grande\&. Un IDS décent le fera, mais la plupart des machines ne disposent pas de ce système d\*(Aqalarme\&. De nombreux services sur les systèmes UNIX standards noteront cette connexion dans le journal, accompagné d\*(Aqun message d\*(Aqerreur sibyllin si Nmap ouvre puis referme la connexion sans n\*(Aqenvoyer aucune donnée\&. Les services réseaux les plus piteux risquent même de tomber en panne, mais c\*(Aqest assez rare\&. Un administrateur qui verrait un tas de tentatives de connexions dans ses journaux en provenance d\*(Aqune seule machine devrait se rendre compte qu\*(Aqil a été scanné\&. +.RE +.PP +\fB\-sU\fR(Scan UDP) +.RS 4 +Même si les services les plus connus d\*(AqInternet son basés sur le protocole TCP, les services +\m[blue]\fBUDP\fR\m[]\&\s-2\u[5]\d\s+2 +sont aussi largement utilisés\&. DNS, SNMP ou DHCP (ports 53, 161/162 et 67/68) sont les trois exemples les plus courants\&. Comme le scan UDP est généralement plus lent et plus difficile que TCP, certains auditeurs de sécurité les ignorent\&. C\*(Aqest une erreur, car les services UDP exploitables sont courants et les attaquants eux ne les ignoreront pas\&. Par chance, Nmap peut aider à répertorier les ports UDP\&. +.sp +Le scan UDP est activé avec l\*(Aqoption\fB\-sU\fR\&. Il peut être combiné avec un scan TCP, comme le scan SYN (\ \& +\fB\-sS\fR), pour vérifier les deux protocoles lors de la même exécution de Nmap\&. +.sp +Le scan UDP envoie un en\-tête UDP (sans données) à chaque port visé\&. Si un message ICMP « port unreachable (type 3, code 3) » est renvoyé, le port est alors +fermé\&. Les autres messages d\*(Aqerreur « unreachable ICMP (type 3, codes 1, 2, 9, 10, or 13) » rendront le port +filtré\&. À l\*(Aqoccasion, il arrive qu\*(Aqun service répond par un paquet UDP, prouvant que le port est dans l\*(Aqétat +ouvert\&. Si aucune réponse n\*(Aqest renvoyée après plusieurs essais, le port est considéré comme étant +ouvert|filtré\&. Cela signifie que le port peut être soit ouvert, soit qu\*(Aqun dispositif de filtrage bloque les communications\&. Le scan de versions (\ \& +\fB\-sV\fR) peut être utilisé pour différencier les ports ouverts de ceux filtrés\&. +.sp +Une des grandes difficultés avec le scan UDP est de l\*(Aqexécuter rapidement\&. Les ports ouverts et filtrés ne renvoient que rarement des réponses, laissant Nmap expirer son délai de retransmission au cas où les paquets se soient perdus\&. Les ports fermés posent encore un plus grand problème: ils renvoient normalement une erreur ICMP « port unreachable »\&. Mais à la différence des paquets RST renvoyés par les ports TCP fermés en réponse à un scan SYN ou à un connect(), de nombreux hôtes limitent par défaut la cadence d\*(Aqémission de ces messages\&. Linux et Solaris étant particulièrement stricts à ce sujet\&. Par exemple, le kernel 2\&.4\&.20 limite cette cadence des destinations inaccessibles (« destination unreachable ») à un par seconde (cf\&.net/ipv4/icmp\&.c)\&. +.sp +Nmap détecte cette limitation de fréquence et s\*(Aqy ralenti conformément afin d\*(Aqéviter de saturer le réseau avec des paquets inutiles que la machine cible rejettera\&. Malheureusement, une limitation à la Linux d\*(Aqun paquet par seconde fera qu\*(Aqun scan des 65 536 ports prendra plus de 18 heures\&. Les idées pour accélérer les scans UDP incluent le scan des cibles en parallèle, ne scanner que les ports les plus courants en premier, scanner derrière le pare\-feu et utiliser l\*(Aqoption +\fB\-\-host\-timeout\fRpour éviter les hôtes les plus lents\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (Scans TCP Null, FIN et Xmas) +.RS 4 +Ces trois types de scans (d\*(Aqautres sont possibles en utilisant l\*(Aqoption +\fB\-\-scanflags\fR +décrite dans la section suivante) exploitent une subtile faille de la +\m[blue]\fBRFC TCP\fR\m[]\&\s-2\u[6]\d\s+2 +pour différencier les ports entre +ouverts +et +fermés\&. La page 65 indique que +« si le port [de destination] est dans l\*(Aqétat fermé\&.\&.\&. un segment ne contenant pas le drapeau RST provoque l\*(Aqémission d\*(Aqun paquet RST comme réponse\&. »\&. La page suivante indique que pour les paquets envoyés à des ports sans aucun des drapeaux SYN, RST ou ACK activés: +« il est peut vraisemblable que cela arrive, mais si cela est le cas, il faut rejeter le segment\&. » +.sp +Pour les systèmes respectant ce texte de la RFC, chaque paquet ne contenant ni SYN, ni RST, ni ACK se voit renvoyé un RST si le port est fermé et aucune réponse si le port est ouvert\&. Tant qu\*(Aqaucun de ces drapeaux n\*(Aqest utilisé, toute combinaison des trois autres (FIN, PSH et URG) son valides\&. Nmap exploite cela avec les trois types de scans: +.PP +Scan Null (\fB\-sN\fR) +.RS 4 +N\*(Aqactive aucun des bits (les drapeaux de l\*(Aqen\-tête TCP vaut 0)\&. +.RE +.PP +Scan FIN (\fB\-sF\fR) +.RS 4 +N\*(Aqactive que le bit FIN\&. +.RE +.PP +Scan Xmas (\fB\-sX\fR) +.RS 4 +Active les drapeaux FIN, PSH et URG, illuminant le paquet comme un arbre de Noël (NDT: la fracture cognitive entre la culture anglo\-saxonne et française se ressent fortement dans cette traduction\&.\&.\&.)\&. +.RE +.sp +Ces trois types de scan ont exactement le même comportement, sauf pour les drapeaux TCP utilisés dans des paquets de tests (probes packets)\&. Si un RST est reçu, le port est considéré comme étant +fermé, tandis qu\*(Aqune absence de réponse signifiera qu\*(Aqil est dans l\*(Aqétat +ouvert|filtré\&. Le port est marqué comme \ \& +filtré +si un message d\*(Aqerreur ICMP « unreachable (type 3, code 1, 2, 3, 9, 10 ou 13) » est reçu\&. +.sp +L\*(Aqavantage principal de ces types de scans est qu\*(Aqils peuvent furtivement traverser certains pare\-feux ou routeurs filtrants sans état de connexion (non\-statefull)\&. Un autre avantage est qu\*(Aqils sont même un peu plus furtifs que le scan SYN\&. N\*(Aqy comptez pas trop dessus cependant \-\- la plupart des IDS modernes sont configurés pour les détecter\&. L\*(Aqinconvénient majeur est que tous les systèmes ne respectent pas la RFC 793 à la lettre\&. Plusieurs systèmes renvoient des RST aux paquets quelque soit l\*(Aqétat du port de destination, qu\*(Aqil soit ouvert ou pas\&. Ceci fait que tous les ports sont considérés commefermé\&. Les plus connus des systèmes qui ont ce comportement sont Microsoft Windows, plusieurs équipements Cisco, BSDI et IBM OS/400\&. Ce type de scan fonctionne cependant très bien contre la plupart des systèmes basés sur UNIX\&. Un autre désagrément de ce type de scan et qu\*(Aqils ne peuvent pas distinguer les ports +ouvertsde certains autres qui sont +filtrés, vous laissant face à un laconique +ouvert|filtré\&. +.RE +.PP +\fB\-sA\fR(Scan TCP ACK) +.RS 4 +Ce type de scan est différent des autres abordés jusqu\*(Aqici, dans le sens où ils ne peuvent pas déterminer si un port est\ \& +ouvert(ni même +ouvert|filtré)\&. Il est utilisé pour établir les règles des pare\-feux, déterminant s\*(Aqils sont avec ou sans états (statefull/stateless) et quels ports sont filtrés\&. +.sp +Le scan ACK n\*(Aqactive que le drapeau ACK des paquets (à moins que vous n\*(Aqutilisiez l\*(Aqoption +\fB\-\-scanflags\fR)\&. Les systèmes non\-filtrés réagissent en retournant un paquet RST\&. Nmap considère alors le port comme +non\-filtré, signifiant qu\*(Aqil est accessible avec un paquet ACK, mais sans savoir s\*(Aqil est réellement\ \& +ouvert +ou +fermé\&. Les ports qui ne répondent pas ou renvoient certains messages d\*(Aqerreur ICMP (type 3, code 1, 2, 3, 9, 10, ou 13), sont considérés comme +filtrés\&. +.RE +.PP +\fB\-sW\fR(Scan de fenêtre TCP) +.RS 4 +Le scan de fenêtre TCP est exactement le même que le scan ACK à la différence près qu\*(Aqil exploite un détail de l\*(Aqimplémentation de certains systèmes pour identifier les ports fermés des autres, au lieu de toujours afficher +non\-filtrélorsqu\*(Aqun RST est renvoyé\&. Sur certains systèmes, les ports ouverts utilisent une taille de fenêtre TCP positive (même pour les paquets RST), tandis que les ports fermés ont une fenêtre de taille nulle\&. Ainsi, au lieu de toujours afficher +non\-filtré +lorsqu\*(Aqun RST est reçu, le scan de fenêtre indique que le port est +ouvert +ou +fermé +selon que la taille de fenêtre TCP de ce paquet RST est respectivement positive ou nulle\&. +.sp +Ce scan repose sur un détail d\*(Aqimplémentation d\*(Aqune minorité de systèmes Internet, vous ne pouvez donc pas toujours vous y fier\&. Les systèmes qui ne le supportent pas vont certainement se voir considérés leurs ports comme +fermés\&. Bien sûr, il se peut que la machine n\*(Aqait effectivement aucun port ouvert\&. Si la plupart des ports scannés sont +fermés +mais que quelques\-uns courants, comme le 22, 25 ou le 53, sont\ \& +filtrés, le système est vraisemblablement prédisposé à ce type de scan\&. Quelquefois, les systèmes ont le comportement exactement inverse\&. Si votre scan indique que 1 000 ports sont ouverts et que 3 seulement sont fermés ou filtrés, ces trois derniers sont certainement ceux qui sont ouverts\&. +.RE +.PP +\fB\-sM\fR(Scan TCP Maimon) +.RS 4 +Le scan Maimon est nommé ainsi d\*(Aqaprès celui qui l\*(Aqa découvert, Uriel Maimon\&. Il a décrit cette technique dans le numéro 49 de Phrack Magazine (Novembre 1996)\&. Nmap, qui inclut cette technique, a été publié deux numéros plus tard\&. Cette technique est la même que les scans NUll, FIN et Xmas, à la différence près que le paquet de test est ici un FIN/ACK\&. Conformément à la RFC 793 (TCP), un paquet RST devrait être renvoyé comme réponse à un tel paquet, et ce, que le port soit ouvert ou non\&. Uriel a cependant remarqué que de nombreux systèmes basés sur BSD rejettent tout bonnement le paquet si le port est ouvert\&. +.RE +.PP +\fB\-\-scanflags\fR(Scan TCP personnalisé) +.RS 4 +Les utilisateurs réellement experts de Nmap ne veulent pas se limiter aux seuls types de scans proposés\&. L\*(Aqoption +\fB\-\-scanflags\fRvous permet de créer votre propre type de scan en spécifiant vos propres combinaisons de drapeaux TCP\&. Laisser courir votre imagination, tout en contournant les systèmes de détection d\*(Aqintrusion dont les vendeurs n\*(Aqont fait qu\*(Aqajouter des règles spécifiques d\*(Aqaprès la documentation Nmap! +.sp +L\*(Aqargument de l\*(Aqoption +\fB\-\-scanflags\fR +peut être soit un nombre comme 9 (PSH et FIN), mais l\*(Aqutilisation des noms symboliques est plus facile\&. Mélanger simplement les drapeaux +URG, +ACK, +PSH, +RST, +SYN +et +FIN\&. Par exemple, +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +les activent tous, bien que cela ne soit pas très utile pour effectuer un scan\&. L\*(Aqordre dans lequel les drapeaux sont spécifiés n\*(Aqa pas d\*(Aqimportance\&. +.sp +En sus de la spécification des drapeaux désirés, vous pouvez spécifier également un type de scan TCP (comme +\fB\-sA\fR +ou +\fB\-sF\fR)\&. Ce type de scan de base indique à Nmap comment interpréter les réponses\&. Par exemple, un scan SYN considère que l\*(Aqabsence de réponse indique qu\*(Aqun port est +filtré, tandis qu\*(Aqun scan FIN considèrera la même absence comme un port +ouvert|filtré\&. Nmap se comportera de la même façon que le type de scan de base, à la différence près qu\*(Aqil utilisera les drapeaux TCP que vous avez spécifié à la place\&. Si vous n\*(Aqen spécifiez pas, le type de scan SYN par défaut sera utilisé\&. +.RE +.PP +\fB\-sI <zombie host[:probeport]>\fR(Scan passif \-\- idlescan) +.RS 4 +Cette méthode de scan avancé permet de faire un véritable scan de port TCP en aveugle, (dans le sens où aucun paquet n\*(Aqest envoyé directement à la cible depuis votre vraie adresse IP)\&. En effet, la technique employée consiste à récolter des informations sur les ports ouverts de la cible en utilisant un exploit basé sur la prédictibilité de la génération des identifiants de fragmentation IP de l\*(Aqhôte relais (le zombie)\&. Les systèmes IDS considéreront que le scan provient de la machine zombie que vous avez spécifié (qui doit remplir certains critères)\&. Le mécanisme de cette incroyable technique est trop complexe pour être expliqué en détail dans ce guide; un papier informel a été posté pour rendre compte de tous ces détails:\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&. +.sp +En plus de son incroyable furtivité (en raison du caractère aveugle de la technique), ce type de scan permet de déterminer les relations de confiance entre les machines\&. La liste des ports ouverts est établie +\fIdu point de vue de l\*(Aqhôte zombie\&.\fR +Ainsi, vous pouvez essayer de scanner une cible en utilisant différents zombies pour lesquels vous pensez qu\*(Aqil existe une relation de confiance entre eux et la cible (d\*(Aqaprès les règles des dispositifs de filtrage)\&. +.sp +Vous pouvez ajouter les deux points (:) suivis d\*(Aqun numéro de port de l\*(Aqhôte zombie si vous souhaitez tester les changements d\*(Aqidentifiants IP sur un port particulier du zombie\&. Par défaut, Nmap utilisera le port utilisé pour les pings tcp (le port 80)\&. +.RE +.PP +\fB\-sO\fR(Scan du protocole IP) +.RS 4 +Le scan du protocole IP permet de déterminer quels protocoles IP (TCP, ICMP, IGMP, etc\&.) sont supportés par les cibles\&. Ce n\*(Aqest donc pas techniquement un scan de ports, car Nmap essaie les différents numéros de protocoles IP à la place des numéros de ports TCP ou UDP\&. Ce scan permet néanmoins d\*(Aqutiliser l\*(Aqoption +\fB\-p\fR +pour sélectionner les numéros de protocoles à scanner \-\- le rapport de Nmap étant toujours dans le style habituel des tables de ports \-\- et utilise le même moteur de scan utilisé pour le scan de ports\&. Ainsi, cette technique est suffisamment proche du scan de port pour être présenté ici\&. +.sp +Au delà de son intérêt propre, le scan de protocoles illustre la puissance des logiciels en libre accès\&. L\*(Aqidée de base est assez simple: je n\*(Aqavais même pas particulièrement pensé à l\*(Aqajouter ni reçu de requête me demandant une telle fonctionnalité\&. En fait, à l\*(Aqété 2000, Gerhard Rieger a eu cette idée et a écrit un excellent programme de correction pour l\*(Aqimplanter; il l\*(Aqa ensuite envoyé à la liste de distribution nmap\-hackers\&. Je l\*(Aqai par la suite ajouté à l\*(Aqarbre de développement de Nmap et j\*(Aqai publié la nouvelle version le lendemain même\&. Très peu de logiciels commerciaux peuvent se targuer d\*(Aqavoir des utilisateurs si enthousiastes concevant et proposant leur propres améliorations! +.sp +Le scan de protocole fonctionne d\*(Aqune façon similaire du scan UDP\&. Au lieu de parcourir les champs de numéro de port des paquets UDP, il envoie des paquets d\*(Aqen\-têtes IP et parcours les 8 bits du champ protocole IP\&. Les en\-têtes son généralement vides, ne contenant pas de données ni même l\*(Aqen\-tête du protocole sollicité\&. Les trois seules exceptions étant TCP, UDP et ICMP\&. Un en\-tête exact de ces protocoles est inclus, sinon certains systèmes refusent de les émettre et Nmap dispose déjà des fonctions permettant de construire ces en\-têtes\&. Au lieu de scruter les messages ICMP « port unreachable », comme pour le scan UDP, le scan de protocole attend de recevoir les messages ICMP «\fIprotocol\fRunreachable »\&. Dès que Nmap reçoit une réponse d\*(Aqun protocole en provenance de la cible, Nmap considère ce protocole comme +ouvert\&. Une erreur ICMP « protocol unreachable » (type 3, code 2) fait en sorte que le port est considéré comme étant +fermé\&. Les autres messages d\*(Aqerreur ICMP « unreachable (type 3, code 1, 3, 9, 10, or 13) » font en sorte que le port est considéré comme étant +filtré +(tout en prouvant que le protocole ICMP est quant à lui +ouvert)\&. Si aucune réponse n\*(Aqest reçue après plusieurs transmissions, le protocole est considéré comme étant +ouvert|filtré\&. +.RE +.PP +\fB\-b <ftp relay host>\fR(Scan par rebond FTP) +.RS 4 +Une caractéristique intéressante du protocole FTP (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[7]\d\s+2) est qu\*(Aqil supporte les connexions par proxy ftp (proxy ftp connections, ainsi nommées dans la RFC)\&. Ceci permet à un utilisateur de se connecter à un serveur FTP, puis de demander qu\*(Aqun fichier soit envoyé à un tiers serveur FTP\&. Une telle fonctionnalité est propre à être détournée à tous les niveaux, c\*(Aqest pourquoi la plupart des serveurs ont cessé de la supporter\&. Un des détournements possible de cette caractéristique conduit le serveur FTP à scanner les ports d\*(Aqautres hôtes\&. Demandez simplement au serveur FTP d\*(Aqenvoyer un fichier à chaque port intéressant de votre cible, et il se chargera d\*(Aqeffectuer le scan\&. Le message d\*(Aqerreur permettra de savoir si le port est ouvert ou non\&. C\*(Aqest un très bon moyen de contourner les pare\-feux car les serveurs FTP des organisations sont souvent situés de telle façon à avoir plus d\*(Aqaccès aux hôtes du réseau internes que toute autre machine Internet\&. Nmap supporte le scan par rebond FTP avec l\*(Aqoption +\fB\-b\fR\&. Cette option prend un argument du type +\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fR\&. +\fIServer\fR +est le nom ou l\*(Aqadresse IP d\*(Aqun serveur FTP vulnérable\&. Comme pour une adresse URL traditionnelle, vous pouvez omettre +\fIusername\fR:\fIpassword\fR, (user: +anonymous, password: +\-wwwuser@) pour accéder de manière anonyme\&. Le numéro de port (et les deux points) peuvent être également omis si le port FTP par défaut (21) est utilisé par le serveur +\fIserver\fR\&. +.sp +Cette vulnérabilité était très répandue en 1997 quand Nmap a été publié mais a largement été corrigée depuis\&. Il existe encore quelques serveurs vulnérables qui traînent, autant les essayer si rien d\*(Aqautre ne marche (!!!)\&. Si votre but est de contourner un pare\-feu, scannez le réseau cible pour trouver un port 21 ouvert (ou un serveur FTP sur tout autre port en activant la détection de version), essayez ensuite pour chacun d\*(Aqentre eux le scan par rebond FTP\&. Nmap vous indiquera si chaque hôte y est vulnérable ou pas\&. Si vous voulez juste essayer de masquer vos attaques, vous n\*(Aqavez pas besoin (et même en fait, vous ne devriez pas) vous limiter aux hôtes du réseau cible\&. Avant de vous lancer dans un scan sur des adresses Internet au hasard, à la recherche de serveurs FTP vulnérables, pensez bien que les gestionnaires des systèmes n\*(Aqapprécieront pas trop que vous détourniez leurs serveurs à cet effet\&. +.RE +.SH "SPÉCIFICATIONS DES PORTS ET ORDRE DU SCAN" +.PP +En plus de toutes les méthodes de scan abordées précédemment, Nmap propose des options permettant la spécification des ports à scanner ainsi que l\*(Aqordre (au hasard ou séquentiel) dans lequel le scan doit se faire\&. Par défaut, Nmap scanne tous les ports jusqu\*(Aqau 1 024 inclusivement ainsi que les ports supérieurs listés dans le fichier +nmap\-servicespour le ou les protocoles demandés)\&. +.PP +\fB\-p <port ranges>\fR(Ne scanne que les ports spécifiés) +.RS 4 +Cette option spécifie quels ports vous voulez scanner et remplace le comportement par défaut\&. Les ports peuvent être spécifiés un à un ou par plages (séparés par des tirets, notamment 1\-1023)\&. Les valeurs de début ou de fin des plages peuvent être omises, de sorte que Nmap utilisera les ports 1 et 65 535, respectivement\&. Ainsi, vous pouvez spécifier +\fB\-p\-\fR +pour scanner tous les ports de 1 à 65 535\&. Le scan du port 0 est autorisé si spécifié explicitement\&. Pour ce qui est du scan du protocole IP (\fB\-sO\fR), cette option spécifie les numéros de protocoles que vous souhaitez scanner (0\-255)\&. +.sp +Lorsque vous scannez à la fois des ports TCP et UDP, vous pouvez spécifier un protocole particulier en préfixant les numéros de ports par +T: +(pour TCP) ou +U: +(pour UDP)\&. Le qualificateur reste actif à moins que vous n\*(Aqen indiquiez un autre\&. Par exemple, l\*(Aqargument +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fRscannerait les ports UDP numéros 53 111 et 137 et les ports TCP de 21 à 25 inclusivement, 80, 139 et 8080\&. Notez que si vous voulez à la fois scanner TCP et UDP, vous devez spécifier +\fB\-sU\fR +et au moins un type de scan TCP (comme +\fB\-sS\fR, +\fB\-sF\fR +ou +\fB\-sT\fR)\&. Si aucun qualificateur de protocole n\*(Aqest spécifié, les numéros de ports sont alors valables pour tous les protocoles\&. +.RE +.PP +\fB\-F\fR(Scan rapide (limite aux ports connus) +.RS 4 +Cette option indique que vous souhaitez seulement scanner les ports listés dans le fichier +nmap\-services +fourni avec Nmap (ou le fichier des protocoles avec l\*(Aqoption +\fB\-sO\fR)\&. Ceci est bien plus rapide que de scanner les 65 535 ports d\*(Aqun hôte\&. Comme cette liste contient beaucoup de ports TCP (plus de 1 200), la différence de vitesse avec le comportement par défaut (environ 1 650 ports) est relativement négligeable\&. Par contre, la différence peut être énorme si vous spécifiez votre propre mini\-fichier +nmap\-services +en utilisant l\*(Aqoption +\fB\-\-datadir\fR\&. +.RE +.PP +\fB\-r\fR(Ne mélange pas les ports) +.RS 4 +Par défaut, Nmap mélange au hasard l\*(Aqordre des ports (sauf que certains ports couramment accessibles sont placés vers le début de la liste pour des raisons d\*(Aqefficacité)\&. Ce mélange est normalement souhaitable, mais vous pouvez spécifier l\*(Aqoption +\fB\-r\fR +pour effectuer un scan de port séquentiel\&. +.RE +.SH "DÉTECTION DE SERVICES ET DE VERSIONS" +.PP +Supposons que Nmap vous ai signalé que les ports 25/tcp, 80/tcp et 53/udp d\*(Aqune machine distante sont ouverts\&. En utilisant sa base de données +nmap\-servicesd\*(Aqenviron 2 200 services bien connus, Nmap indique que ces ports correspondent probablement à un serveur de messagerie (SMTP), un serveur Web (HTTP) et un serveur de noms (DNS), respectivement\&. Cette consultation est souvent pertinente \-\- une vaste majorité des démons écoutant sur le port 25, étant bien des serveurs de messagerie\&. Cependant, en sécurité, il ne faudrait pas trop parier là\-dessus ! Les gens peuvent lancer des services sur des ports bizarres et ils le font effectivement\&. +.PP +Même si Nmap a raison, et que les serveurs hypothétiques du dessus sont bien des serveurs SMTP, HTTP et DNS, ce n\*(Aqest pas très utile\&. Lors d\*(Aqaudit de sécurité (ou bien lors de simples inventaires de réseau) de votre entreprise ou de clients, vous voulez réellement savoir de quels serveurs de messagerie et de noms il s\*(Aqagit, ainsi que leurs versions\&. Connaître avec précision le numéro de version aide considérablement à déterminer à quels exploits un serveur est vulnérable\&. La détection de version vous permet d\*(Aqobtenir une telle information\&. +.PP +Après avoir découvert les ports TCP ou UDP par une des méthodes de scan, la détection de version interroge ces ports pour savoir quelle version tourne actuellement\&. La base de données +nmap\-service\-probes +contient les tests à effectuer selon les services, ainsi que les chaînes de caractères auxquelles comparer les réponses\&. Nmap essaie de déterminer le protocole (p\&. ex\&.: ftp, ssh, telnet, http), le nom de l\*(Aqapplication (p\&. ex\&.: ISC Bind, Appache httpd, Solaris telnetd), le numéro de version, le nom d\*(Aqhôte, le type d\*(Aqéquipement (p\&. ex\&.: imprimante, routeur), la famille d\*(AqOS (p\&. ex\&.: Windows, Linux) et quelquefois des détails divers (p\&. ex\&.: si un serveur X accepte ou non des connexions, la version du protocole SSH, le nom d\*(Aqutilisateur KaZaA)\&. Bien sûr, la plupart des services ne fournissent pas autant d\*(Aqinformations\&. Si Nmap a été compilé avec le support de OpenSSL, il se connectera aux serveurs SSL pour déduire le service écoutant derrière la couche de cryptage\&. Quand des services RPC sont découverts, la moulinette RPC de Nmap (\fB\-sR\fR) est automatiquement utilisée pour déterminer le programme RPC et sa version\&. Des ports peuvent rester dans l\*(Aqétat +ouvert|filtré\ \& lorsqu\*(Aqun scan de ports UDP a été incapable de déterminer si le port était ouvert ou fermé\&. La détection de version tentera d\*(Aqobtenir une réponse de ces ports (comme s\*(Aqils étaient ouverts), et changera l\*(Aqétat à ouvert si elle y parvient\&. Les ports TCP +ouverts|filtré +sont traités de la même façon\&. Notez que l\*(Aqoption\fB\-A\fRde Nmap active notamment la détection de version\&. Un papier documentant le fonctionnement, l\*(Aqutilisation et la personnalisation de la détection de version est disponible à +\m[blue]\fB\%https://nmap.org/vscan/\fR\m[]\&. +.PP +Lorsque Nmap reçoit une réponse d\*(Aqun service mais ne parvient pas à le faire correspondre à un service de sa base de données, il affiche une empreinte et une adresse URL où vous pouvez l\*(Aqenvoyer si vous êtes sûr de ce qui tourne sur ce port\&. Prendre quelques minutes pour faire cette soumission permettra à tout le monde de bénéficier de votre découverte\&. Grâce à ces soumissions, Nmap dispose d\*(Aqenviron 3 000 empreintes de référence liées à plus de 350 protocoles, comme smtp, ftp et http\&. +.PP +La détection de version est activée et contrôlée grâce aux options suivantes: +.PP +\fB\-sV\fR(Détection de version) +.RS 4 +Active la détection de version, tel que discuté ci\-dessus\&. Autrement, vous pouvez utiliser l\*(Aqoption +\fB\-A\fR\ \& pour activer à la fois la détection de version et celle du système d\*(Aqexploitation\&. +.RE +.PP +\fB\-\-allports(tous les ports)\fR(N\*(Aqexclut aucun port de la détection de version) +.RS 4 +Par défaut, la détection de version de Nmap évite le port TCP 9100 car certaines imprimantes impriment tout bonnement tout ce qui est envoyé sur ce port, ce qui conduit à l\*(Aqimpression de douzaines de pages de requêtes HTTP, des requêtes de sessions SSL en binaire, etc\&. (ce qui est particulièrement furtif)\&. Ce comportement peut être changé en modifiant ou en supprimant la directive\ \& +Exclude +du fichier +nmap\-service\-probes, ou en spécifiant l\*(Aqoption +\fB\-\-allports\fR +pour scanner tous les ports sans tenir compte d\*(Aqaucune directive +Exclude\&. +.RE +.PP +\fB\-\-version\-intensity <intensity>\fR(Sélectionne l\*(Aqintensité du scan de version) +.RS 4 +Lors d\*(Aqun scan de version (\fB\-sV\fR), Nmap envoie une série de paquets de tests, à chacun duquel est associé une valeur de rareté allant de 1 à 9\&. Les tests aux basses valeurs sont efficaces pour une grande variété de services courants, tandis que les hautes valeurs indiquent ceux qui ne sont que rarement utiles\&. Le niveau d\*(Aqintensité spécifie quels tests doivent être effectués\&. Plus la valeur est haute, plus le service a de chances d\*(Aqêtre correctement identifié\&. Cependant, ces scans\-ci sont plus longs\&. La valeur d\*(Aqintensité doit être comprise entre 0 et 9, la valeur par défaut étant le 7\&. Quand un test est inscrit sur le port cible par le biais de la directive +nmap\-service\-probes +ports, ce test est tenté quelque soit le niveau d\*(Aqintensité\&. Cela permet de s\*(Aqassurer que les tests DNS seront toujours tentés sur chaque port 53 ouvert, les tests SSL sur chaque 443, etc\&. +.RE +.PP +\fB\-\-version\-light\fR(Active le mode léger) +.RS 4 +Il s\*(Aqagit d\*(Aqun raccourci pour +\fB\-\-version\-intensity 2\fR\&. Ce mode léger rend le scan de version bien plus rapide, mais il est un peu moins susceptible d\*(Aqidentifier les services\&. +.RE +.PP +\fB\-\-version\-all\fR(Essaie chaque test possible) +.RS 4 +Il s\*(Aqagit d\*(Aqun raccourci pour\fB\-\-version\-intensity 9\fRforçant chaque test unitaire à être testé contre chaque port\&. +.RE +.PP +\fB\-\-version\-trace\fR(Trace l\*(Aqactivité du scan de version) +.RS 4 +Ceci force Nmap à afficher un nombre considérable d\*(Aqinformations de débogage à propos de ce que fait le scan de version\&. Il s\*(Aqagit d\*(Aqun sous\-ensemble de ce que vous obtenez avec l\*(Aqoption +\fB\-\-packet\-trace\fR\&. +.RE +.PP +\fB\-sR\fR(Scan RPC) +.RS 4 +Cette méthode fonctionne conjointement avec les différentes méthodes de scan de Nmap\&. Il prend tous les ports TCP/UDP ouverts et les submerge avec les commandes NULL du programme SunRPC dans le but de déterminer s\*(Aqil s\*(Aqagit de ports RPC, et le cas échéant, de quel programme et quel numéro de version il s\*(Aqagit\&. Vous pouvez aussi obtenir les mêmes informations avec +\fBrpcinfo \-p\fR, et ce, même si le mapper de port (portmapper) de la cible se trouve derrière un pare\-feu (ou protégé par des wrappers TCP)\&. Les leurres ne fonctionnent pas avec le scan RPC\&. Cette option est automatiquement activée par le scan de version (\fB\-sV\fR)\&. Comme la détection de version inclus le scan RPC, et est bien plus complète, on a rarement besoin de l\*(Aqoption +\fB\-sR\fR\&. +.RE +.SH "DÉTECTION D\*(AQOS" +.PP +Cette section n\*(Aqa pas été traduite en français\&. Veuillez vous référer à +\m[blue]\fBla documentation en anglais\fR\m[]\&\s-2\u[8]\d\s+2\&. +.SH "NMAP SCRIPTING ENGINE (NSE)" +.PP +Le moteur de scripts de Nmap (Nmap Scripting Engine \-NSE) allie l\*(Aqefficacité avec laquelle Nmap traite le réseau avec la souplesse d\*(Aqun langage léger comme Lua, fournissant ainsi une infinité d\*(Aqopportunités\&. Une documentation plus complète du NSE (y compris ses API) peut être obtenue sur +\m[blue]\fB\%https://nmap.org/nse\fR\m[]\&. Le but du NSE est de fournir à Nmap une infrastructure flexible afin d\*(Aqétendre ses capacités et ainsi offrir à ses utilisateurs une facon simple de créer leurs propres tests personnalisés\&. Le cadre d\*(Aqusage du NSE englobe (mais encore une fois n\*(Aqest pas limité à) : +.PP +\fIDétection de version évoluée \fR(catégorie +version) \- Alors que Nmap propose déja son système de détection de Service et de Version qui est inégalé en termes d\*(Aqefficacité et de couverture, cette puissance trouve sa limite lorsqu\*(Aqil s\*(Aqagit de services qui demandent des tests plus complexes\&. La version 2 du Protocole Skype par exemple peut être identifié en envoyant deux paquets de tests pour lesquels le système n\*(Aqest pas prévu d\*(Aqorigine: un simple script NSE peut alors faire le travail et mettre ainsi à jour les informations sur le service tournant sur le port\&. +.PP +\fIDétection de Malware\fR +(catégories +malware +et +backdoor)\- Que ce soit les attaquants ou les vers, ils laissent souvent des portes dérobées, par exemple sous la forme de serveurs SMTP écoutant sur des ports inhabituels, le plus souvent utilisés par les spammers pour le relais de leurs mails, ou sous forme de serveur FTP donnant des accès à des données critiques aux crackers\&. Quelques lignes de code Lua peut aider à identifier facilement ces pièges\&. +.PP +\fIDétection de vulnérabilités\fR +(catégorie +vulnerability)\- Le NSE permet de détecter les risques allant par exemple des mots de passe par défaut sur Apache au test de capacité d\*(Aqagir en tant que relais pour un serveur SMTP concernant les mails en provenance de domaines divers\&. +.PP +\fIDécouverte du Réseau et Collecte d\*(AqInformations\fR +(catégories +safe, +intrusive +et +discovery) \- En vous fournissant un langage de scripts et une API réseau asynchrone vraiment efficace d\*(Aqune part et la collecte d\*(Aqinformations durant les étapes ultérieures du scan d\*(Aqautre part, le NSE est concu pour écrire des programmes clients adaptés aux services en écoute sur la machine cible\&. Ces clients peuvent collecter des informations comme : liste des partages NFS/SMB/RPC disponibles, le nombre de canaux d\*(Aqun réseau IRC ou les utilisateurs actuellement connectés\&. +.PP +Afin de refléter ces différents usages et pour simplifier le choix des scripts à employer, chaque script contient un champ qui l\*(Aqassocie a une ou plusieurs de ces catégories\&. Pour maintenir le lien entre scripts et catégories un fichier appelé script\&.db est installé avec les scripts distribués\&. Ainsi si par exemple vous voulez voir si une machine est infectée par un ver Nmap vous donne un script que vous pouvez facilement utiliser par la commande +nmap \-\-script=malware ip\-cible +afin d\*(Aqanalyser les résultats après coup\&.Les scripts de version sont systématiquement lancés de facon implicite lorsqu\*(Aqun scan de scripts est invoqué\&. Le fichier +script\&.db +est lui même un script Lua et peut être mis à jour via l\*(Aqoption +\fB\-\-script\-updatedb\fR\&. +.PP +Un script NSE est simplement un code Lua qui a (parmis quelques champs d\*(Aqinformation comme le nom, l\*(Aqidentifiant et la catégorie) 2 fonctions: un test dans le cas où le script en particulier doit être lancé contre une cible et un port spécifiques (appelés hostrule et portrule respectivement) et une action qui doit être menée si le test est positif\&. Les scripts ont acces à la plupart des informations collectées par Nmap durant les étapes précédentes\&. Pour chaque hôte ceci inclus l\*(Aqadresse IP, le nom de l\*(Aqhôte et (si disponible) le système d\*(Aqexploitation\&. Si un script est destiné à un port en particulier, il a accès au numéro du port, son protocole (tcp, udp ou ssl), le service tournant derrière ce port et des informations optionnelles en provenance d\*(Aqun scan de version\&. Par convention les scripts NSE ont une extension \&.nse\&. Toutefois vous n\*(Aqavez pas besoin de suivre cette recommandation pour le moment, ceci pouvant changer dans l\*(Aqavenir\&. Nmap donnera une mise en garde si un fichier a une autre extension\&. Une documentation plus exhaustive sur le NSE comprenant une description de son API peut être obtenue sur +\m[blue]\fB\%https://nmap.org/nse/\fR\m[]\&. +.PP +\fB\-sC\fR +.RS 4 +effectue un scan de scripts en utilisant la catégorie de scripts par défaut\&. Cette option est équivalente à +\-\-script=safe,intrusive +.RE +.PP +\fB\-\-script <catégories|répertoire|nom|all>\fR +.RS 4 +Lance un scan de scripts (comme +\fB\-sC\fR) avec les scripts que vous avez choisi plutôt que ceux par défaut\&. Les arguments peuvent être des catégories de scripts, des scripts uniques ou des répertoires contenant des scripts qui doivent être lancés contre les hôtes cibles à la place des scripts par défaut\&. Nmap va essayer d\*(Aqinterpréter les arguments d\*(Aqabord comme des catégories puis comme des noms de fichiers ou des répertoires\&. Les chemins absolus sont interpretés tels quels, les chemins relatifs sont recherchés dans les endroits suivants : +\-\-datadir/; $(NMAPDIR)/; ~user/nmap/ +(non cherché sous Windows); +NMAPDATADIR/ ou \&./\&. A scripts/ +les sous répertoires sont aussi essayés dans chacun d\*(Aqeux\&. Donnez l\*(Aqargument +all +pour exécuter tous les scripts de la base de données de Nmap\&. +.sp +Si un répertoire est précisé et trouvé, Nmap charge tous les scripts NSE (chaque fichier se terminant par \&.nse) dans ce répertoire\&. L\*(Aqextension nse est obligatoire\&. Nmap ne fait pas de recherche récursive dans les sous répertoires éventuels pour trouver les scripts\&. Lorsque des noms de scripts individuels sont spécifiés, l\*(Aqextension est facultative\&. +.sp +Les scripts de Nmap sont stockés dans un répertoire scripts du répertoire de données par défaut de Nmap\&. Les scripts sont indexés dans une base de données dans +scripts/script\&.db\&. La base de données liste tous les scripts dans chaque catégorie\&. Un seul script peut être dans plusieurs catégories\&. +.RE +.PP +\fB\-\-script\-args=<name1=value1,name2={name3=value3},name4=value4>\fR +.RS 4 +vous permet de passer des arguments aux scripts NSE\&. Les arguments sont passés sous la forme de paires +name=value +\&. L\*(Aqarguments fourni est interprété et stocké dans une table Lua à laquelle tous les scripts ont accès\&. Les noms sont pris comme des chaînes (qui doivent être des valeurs alphanumériques) et utilisés comme des clés dans la table +argument\-table\&. Les valeurs sont soit des chaînes soit des tables elles mêmes (encadrées par\*(Aq{\*(Aq et \*(Aq}\*(Aq)\&. Les sous tables permettent de supplanter les arguments pour des scripts spécifiques (c\*(Aqest à dire lorsque vous souhaitez fournir différents couples login/password pour des scripts différents)\&. Par exemple vous pouvez passer les arguments séparés par des virgules : +user=bar,password=foo, and anonFTP={password=nobody@foobar\&.com}\&. Si vous souhaitez outrepasser une option d\*(Aqun script, vous devriez indexer la sous table avec l\*(Aqidentifiant du script étant donné que c\*(Aqest la seule facon qu\*(Aqa le script de connaitre ses arguments particuliers\&. +.RE +.PP +\fB\-\-script\-trace\fR +.RS 4 +Cette option fait ce que fait +\fB\-\-packet\-trace\fR +, juste une couche OSI au dessus\&. Si cette option est spécifiée toutes les communications entrantes et sortantes en provenance d\*(Aqun script sont affichées\&. Les informations affichées incluent le protocole de communication, la source, la cible et les données transmises\&. Si plus de 5% du traffic n\*(Aqest pas imprimable, alors la sortie se fait au format hexadécimal\&. +.RE +.PP +\fB\-\-script\-updatedb\fR +.RS 4 +met à jour la base de données de scripts qui contient les correspondances des catégories avec les noms de fichiers\&. La base de données est un script Lua qui est interprété pour choisir les scripts en fonction des catégories passées en arguments à +\fB\-\-script\fR +\&. Ceci devrait être lancé si vous avez changé le champ categories d\*(Aqun script, si vous avez ajouté de nouveaux scripts ou si vous en avez retiré du répertoire +scripts/ +\&. +.RE +.SH "TIMING ET PERFORMANCES" +.PP +L\*(Aqune des priorités les plus importantes dans le développement de Nmap a toujours été la performance\&. Un scan par défaut (\fBnmap \fR\fB\fIhostname\fR\fR\fB \fR) d\*(Aqun hôte sur mon réseau local prend un cinquième de seconde\&. Il s\*(Aqagit donc de très peu de temps mais les minutes s\*(Aqaccumulent lorsque vous scannez des dizaines ou des centaines de milliers d\*(Aqhôtes\&. De plus, certains scans tels que le scan UDP et la détection de version peuvent accroître le temps global du scan de façon significative\&. De plus, certains pare\-feux limitent le taux de réponses dans leur configuration\&. Bien que Nmap utilise un fonctionnement en parallèle et beaucoup d\*(Aqautres algorithmes avancés afin d\*(Aqaccélérer ces scans, l\*(Aqutilisateur garde le contrôle total sur le fonctionnement de Nmap\&. Les utilisateurs confirmés choisissent avec une grande attention leurs commandes afin d\*(Aqobtenir seulement les informations dont ils ont besoin en un minimum de temps\&. +.PP +Les techniques permettant d\*(Aqaffiner les temps de scan sont entre autres d\*(Aqéviter les tests non essentiels et d\*(Aqavoir les versions les plus récentes de Nmap (les augmentations de performance sont fréquentes)\&. Optimiser ses paramètres de temps en temps peut ainsi faire toute la différence\&. Ces options sont décrites ci\-dessous\&. +.PP +\fB\-\-min\-hostgroup <nombre>\fR; \fB\-\-max\-hostgroup <nombre>\fR (Ajuste la quantité du groupe de scans en parallèle) +.RS 4 +Nmap peut scanner des ports ou faire un scan de version sur de multiples hôtes en parallèle\&. Pour ce faire, Nmap divise la plage des adresses IP des cibles en groupe puis scanne ces groupes un à la fois\&. En général, scanner un grand nombre de groupes améliore l\*(Aqefficacité de la procédure\&. En contrepartie, les résultats ne peuvent être fournis que lorsque tout le groupe d\*(Aqhôtes a été scanné\&. Par conséquent, si Nmap a commencé avec un groupe de 50, l\*(Aqutilisateur ne recevra aucun résultat tant que les premiers 50 hôtes ne seront pas terminés (exception faite des informations données en mode verbeux)\&. +.sp +Par défaut, Nmap adopte un compromis dans son approche de ce conflit\&. Il commence avec une quantité aussi petite que 5 groupes de façon à obtenir rapidement les premiers résultats et augmente ensuite la quantité de groupes jusqu\*(Aqà un maximum de1 024\&. Les valeurs exactes par défaut dépendent des options configurées\&. Par soucis d\*(Aqefficacité, Nmap utilise une quantité de groupes plus grande lorsqu\*(Aqil s\*(Aqagit de scans UDP ou sur peu de ports en TCP\&. +.sp +Lorsqu\*(Aqun maximum est spécifié en quantité de groupes avec l\*(Aqoption +\fB\-\-max\-hostgroup\fR, Nmap ne va jamais dépasser cette valeur\&. Spécifiez une quantité minimale avec l\*(Aqoption +\fB\-\-min\-hostgroup\fR +et Nmap tentera de garder la quantité de groupes au\-dessus de cette valeur\&. Nmap devra peut\-être utiliser des groupes plus petits que ceux que vous demandez s\*(Aqil n\*(Aqy a plus assez d\*(Aqhôtes cibles sur une interface donnée par rapport au minimum que vous avez spécifié Les deux valeurs doivent être déterminés pour de conserver la quantité de groupes dans une plage spécifique, quoique ceci ne soit que rarement souhaité\&. +.sp +Le premier usage de ces options est de spécifier un minimum assez grand pour que le scan entier se fasse plus vite\&. Un choix fréquent est 256 pour scanner un réseau de Classe C\&. S\*(Aqil s\*(Aqagit d\*(Aqun scan incluanrt beaucoup de ports, dépasser cette valeur n\*(Aqaidera pas à grand chose\&. S\*(Aqil s\*(Aqagit de scans sur peu de ports, une quantité de groupes de 2 048 ou plus peut faciliter la procédure\&. +.RE +.PP +\fB\-\-min\-parallelism <nombre>\fR; \fB\-\-max\-parallelism\*(Aq <nombre>\fR (Ajuste la mise en parallèle des paquets de test, probes) +.RS 4 +Ces options permettent de contrôler le nombre total de probes idéal pour un groupe d\*(Aqhôtes\&. Elles permettent de scanner des ports et de découvrir des hôtes (host discovery)\&. Par défaut, Nmap calcule un parallélisme idéal et variable basé sur les performances du réseau\&. Si des paquets sont rejetés, Nmap ralentit sa cadence en permettant moins de probes simultanés\&. Le nombre idéal de probes augmente graduellement en même temps que le réseau démontre ses performances\&. Ces options fixent les limites maximales et minimales selon cette variable\&. Par défaut, le parallélisme idéal peut chuter à 1 si le réseau s\*(Aqavère trop faible et monter à plusieurs centaines dans des conditions parfaites\&. +.sp +L\*(Aqusage habituel consiste à régler l\*(Aqoption +\fB\-\-min\-parallelism\fR +à une valeur supérieure à 1 pour accélérer les scans sur des réseaux de faible performance\&. Il est risqué de trop modifier cette option puisqu\*(Aqétablir une valeur trop élevée peut affecter la précision des résultats\&. Modifier cette option réduit aussi la capacité de Nmap à contrôler le parallélisme de façon dynamique selon les conditions du réseau\&. Une valeur de 10 peut être raisonnable bien que je n\*(Aqajuste personnellement celle\-ci qu\*(Aqen dernier ressort\&. +.sp +L\*(Aqoption +\fB\-\-max\-parallelism\fR +est parfois réglée à 1 afin d\*(Aqéviter d\*(Aqenvoyer plus d\*(Aqun probe en même temps vers les hôtes\&. Ceci peut être intéressant en combinaison avec l\*(Aqoption +\fB\-\-scan\-delay\fR +(on verra plus tard), bien que cette option serve déjà elle\-même à cet effet\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout <millisecondes>\fR, \fB\-\-max\-rtt\-timeout <millisecondes>\fR, \fB\-\-initial\-rtt\-timeout <millisecondes>\fR (Ajuste la durée de vie des paquets de test, probe timeouts) +.RS 4 +Nmap conserve une valeur de durée de vie qui détermine combien de temps il devra attendre avant d\*(Aqenvoyer une réponse à un probe avant de l\*(Aqabandonner ou de le renvoyer\&. Cette valeur est calculée en fonction du temps de réponse des probes précédents\&. Si le temps de latence du réseau est significatif et variable, ce délai d\*(Aqinactivité ou cette durée de vie, peut augmenter jusqu\*(Aqà plusieurs secondes\&. Elle est également de niveau élevé et peut rester ainsi pendant un bon moment lorsque Nmap scanne des hôtes sans réponse\&. +.sp +Ces options acceptent des valeurs en millisecondes\&. Spécifier un +\fB\-\-max\-rtt\-timeout\fR +et un +\fB\-\-initial\-rtt\-timeout\fR +plus bas que ceux par défaut peuvent raccourcir le temps de scan de façon significative\&. C\*(Aqest particulièrement vrai pour les scans sans ping préalable (\fB\-P0\fR) et ceux contre des réseaux très filtrés\&. Toutefois, ne soyez pas trop agressif\&. Le scan peut se finir en un temps plus significatif si, au contraire, vous spécifiez des valeurs tellement basses que les durées de vie des probes sont terminées et ceux\-ci renvoyés alors que leurs réponses sont en fait encore en transit\&. +.sp +Si tous les hôtes sont sur un réseau local, 100 millisecondes est une valeur de +\fB\-\-max\-rtt\-timeout\fR +seront suffisantes\&. Si vous etes face a un routage, mesurez d\*(Aqabord le temps de réponse d\*(Aqun hôte sur le réseau \e l\*(Aqaide du ping ICMP de Nmap ou d\*(Aqun autre outil, comme hping2 qui est plus à même de passer un pare\-feu si le paquet est spécialement forgé\&. Regardez les durées de transit sur 10 paquets ou plus\&. Vous pouvez doubler cette valeur pour +\fB\-\-initial\-rtt\-timeout\fR +et tripler ou quadrupler le +\fB\-\-max\-rtt\-timeout\fR\&. Généralement, je ne règle pas le rtt maximum à moins de 100ms, et ce, quelles que soient les mesures de ping\&. De plus, je n\*(Aqexcède pas 1 000ms\&. +.sp +\fB\-\-min\-rtt\-timeout\fR +est une option rarement utilisée qui peut s\*(Aqavérer utile lorsqu\*(Aqun réseau est si lent que même les réglages par défaut de Nmap sont trop agressifs\&. Comme Nmap ne réduit le délai d\*(Aqinactivité au minimum que lorsque le réseau semble suffisamment rapide, ce genre de besoin est inhabituel et devrait être rapporté en tant que procédure erronée à la liste de développement de nmap\-dev\&. +.RE +.PP +\fB\-\-max\-retries <nombreessais>\fR (Spécifie le nombre maximum de retransmisison des paquets de test (probes)) +.RS 4 +Quand Nmap ne reçoit pas de réponse à un paquet de test sur un port, cela peut signifier que le port est filtré\&. Ou simplement que la réponse s\*(Aqest perdue sur le réseau\&. Il est également possible que l\*(Aqhôte cible ait limité son taux d\*(Aqémission ce qui a temporairement bloqué la réponse\&. Pour ces raisons, Nmap recommence l\*(Aqémission du paquet de test\&. Si Nmap détecte que le réseau est peu fiable, il peut essayer de re\-émettre le paquet plus de fois encore avant de s\*(Aqarrêter\&. Si cette technique améliore la fiabilité, elle ralonge la durée du scan\&. Quand la performance est un facteur critique, les scans peuvent être accélérés en limitant le nombre de retransmissions autorisé\&. Vous pouvez même spécifier +\fB\-\-max\-retries 0\fR +pour éviter toute retransmission, bien que cela ne soit pas trop recommandé\&. +.sp +Le paramétrage par défaut (sans politique +\fB\-T\fR +spécifiée) est d\*(Aqautoriser jusqu\*(Aqà dic retransmissions\&. Si le réseau a l\*(Aqair fiable et que les hôtes cibles ne limitent pas leur taux d\*(Aqémission, Nmap ne fait généralement qu\*(Aqune seule retransmission\&. Ainsi, réduire +\fB\-\-max\-retries\fR +à une valeur basse comme trois n\*(Aqaffecte pas la plupart des scans\&. Une telle valeur peut accélérer significativement les scans pour des hôtes lents (qui limitent leurs émissions)\&. Généralement, vous perdez des informations si Nmap cesse de scanner un port trop tôt, mais cela peut être préférable à laisser +\fB\-\-host\-timeout\fR +expirer et perdre alors toutes les informations concernant la cible\&. +.RE +.PP +\fB\-\-host\-timeout <millisecondes>\fR (Abandon des hôtes cibles trop lents) +.RS 4 +Certains hôtes prennent du temps +\fIlong\fR +à scanner, tout simplement\&. Ceci peut être dû à du matériel ou à des logiciels réseau peu performants ou inefficaces, à un taux de paquets limité ou à un pare\-feu restrictif\&. Le faible pourcentage de hôtes lents scannés peut ralentir le temps de scan tout entier\&. Il est donc parfois préférable d\*(Aqécarter temporairement ces hôtes du scan initial\&. Ceci peut être fait en spécifiant +\fB\-\-host\-timeout\fR +avec le nombre de millisecondes maximales que vous êtes prêt à attendre\&. Je choisis souvent 1 800 000 secondes pour m\*(Aqassurer que Nmap ne perde pas plus d\*(Aqune demi\-heure sur un seul hôte\&. Notez que Nmap peut être en train de scanner d\*(Aqautres hôtes en même temps durant cette demi\-heure, ce n\*(Aqest donc pas une perte complète\&. Un hôte qui dépasse cette valeur est abandonné\&. Pas de listage des ports, de détection d\*(AqOS ou de détection de version dans les résultats pour celui\-ci\&. +.RE +.PP +\fB\-\-scan\-delay <millisecondes>\fR; \fB\-\-max\-scan\-delay <millisecondes>\fR (Ajuste le délai entre les paquets de test) +.RS 4 +Cette option force Nmap à attendre d\*(Aqobtenir au moins la valeur donnée en millisecondes entre chaque probe qu\*(Aqil envoie sur un hôte donné\&. C\*(Aqest particulièrement utile en cas de limitation de nombre de paquets (taux limite)\&. Les machines Solaris (parmi beaucoup d\*(Aqautres) vont habituellement répondre à des paquets de test d\*(Aqun scan UDP par seulement un message ICMP par seconde\&. Tout ce qui est envoyé au\-delà par Nmap serait inutile\&. Un +\fB\-\-scan\-delay\fR +de 1 000 gardera Nmap à ce taux suffisamment lent\&. Nmap essaie de détecter le taux limite et d\*(Aqajuster le délai en conséquence, mais il ne fait pas de mal de le préciser si vous savez déjà quelle valeur est la meilleure\&. +.sp +Une autre utilisation de +\fB\-\-scan\-delay\fR +est d\*(Aqéviter les détections éventuelles des systèmes de détection et de prévention d\*(Aqintrusion (IDS/IPS) basées sur ce genre de règle\&. +.RE +.PP +\fB\-\-defeat\-rst\-ratelimit\fR +.RS 4 +Beaucoup d\*(Aqhôtes utilisent depuis longtemps un filtrage pour réduire le nombre de messages d\*(Aqerreur ICMP (comme les erreurs de ports inaccessibles) qu\*(Aqils envoient\&. Certains systèmes appliquent a présent des limitations similaires aux paquets RST (reset) qu\*(Aqils génèrent\&. Ceci peut ralentir Nmap dramaticalement étant donné qu\*(Aqil ajuste son timing pour refléter ces limitations\&. Vous pouvez dire a Nmap d\*(Aqignorer ces limitations (pour les scans de ports comme le SYN scan qui +\fIne traitent pas\fR +les ports muets comme étant +ouverts) en spécifiant +\fB\-\-defeat\-rst\-ratelimit\fR\&. +.sp +Utiliser cette option peut réduire la précision, puisque certains ports apparaitront comme muets parcequ\*(AqNmap n\*(Aqattend alors pas assez longtemps une réponse RST qui serait limitée\&. Dans le cas d\*(Aqun SYN scan, l\*(Aqabsence de réponse se traduit par un port marqué +filtré +plutot que +fermé +quand des paquets RST sont recus\&. Cette option est utile quand vous n\*(Aqavez besoin que des ports ouverts, et que distinguer des +fermés +ou des +filtrés +ne vaut pas le temps supplémentaire que cela suppose\&. +.RE +.PP +\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (Régler un profil de comportement au niveau du délai) +.RS 4 +Bien que les contrôles avancés et précis du délai dont il est fait mention dans les sections précédentes soient précis et efficaces, certains peuvent les trouver compliqués\&. Qui plus est, choisir les valeurs appropriées peut parfois prendre plus de temps que le scan que vous essayez d\*(Aqoptimiser\&. De ce fait, Nmap offre une approche plus simple, avec six profils de timing\&. Vous pouvez les spécifier grâce à l\*(Aqoption +\fB\-T\fR +et aux numéros (0 à 5) ou aux noms correspondants\&. Les noms des profils sont paranoid (0), sneaky (1), polite (2), normal (3), agressive (4), et insane (5)\&. Les deux premiers sont pour éviter les IDS\&. Le profile « Polite » ralentit le scan afin d\*(Aqutiliser moins de bande passante et moins de ressources sur la machine cible\&. Le profil « Normal » est celui par défaut et donc +\fB\-T3\fR +ne fait rien\&. Le profil « Agressive » accélère les scans, partant du principe que vous travaillez sur un réseau suffisamment rapide et efficace\&. Enfin, le profil « Insane » suppose que vous êtes sur un réseau extraordinairement rapide ou que vous êtes prêt à sacrifier un peu de précision pour plus de vitesse\&. +.sp +Ces profils permettent à l\*(Aqutilisateur de spécifier à quel point il souhaite être agressif tout en laissant Nmap choisir les valeur adéquates\&. Les profils effectuent aussi quelques ajustements que les options avancées ne permettent pas encore\&. Par exemple, +\fB\-T4\fR +empêche la variation dynamique du délai de dépasser 10ms pour les ports TCP et +\fB\-T5\fR +met cette valeur à 5 millisecondes\&. Les profils peuvent être utilisés en combinaison avec les options avancées en autant que le profil est précisé en premier\&. Dans le cas contraire, les valeurs normalisées pour le profil risquent d\*(Aqécraser celles que vous spécifiez\&. Je vous recommande d\*(Aqutiliser +\fB\-T4\fR +lorsque vous scannez des réseaux plus ou moins rapides, efficaces et modernes\&. Utilisez cette option (en début de ligne de commande) même si vous ajoutez des options avancées afin de bénéficier des petites améliorations liée à cette option\&. +.sp +Si vous travaillez sur une connexion large bande ou Ethernet, je vous recommande toujours d\*(Aqutiliser +\fB\-T4\fR\&. Certains aiment utiliser +\fB\-T5\fR +quoique ce soit, à mon avis, trop agressif\&. Les gens utilisent parfois +\fB\-T2\fR +parce qu\*(Aqils pensent que le rsique que les hôtes tombent en panne soit moins grand ou parce qu\*(Aqils se considèrent comme respectueux d\*(Aqune façon générale\&. Souvent ils ne réalisent pas à quel point l\*(Aqoption +\fB\-T Polite\fR +est lente en réalité\&. Leur scan peut prendre dix fois plus de temps qu\*(Aqun scan par défaut\&. Les machines qui tombent en panne et les problèmes liés à la bande passante sont rares avec les options de scan par défaut (\fB\-T3\fR)\&. C\*(Aqest pourquoi je les recommande habituellement pour les scanneurs précautionneux\&. Le fait de ne pas faire de détection de version est bien plus efficace pour limiter ces problèmes que de jouer sur les valeurs de timing\&. +.sp +Bien que les options +\fB\-T0\fR +et +\fB\-T1\fR +puissent être utiles pour éviter les alertes des IDS, elles prendront un temps énorme pour scanner des milliers de machines ou de ports\&. Lorsqu\*(Aqil s\*(Aqagit de tels scans, vous devriez régler les valeurs exactes de timing dont vous avez besoin plutôt que de vous appuyer sur les options +\fB\-T0\fR +et +\fB\-T1\fR +et les valeurs qui y sont associées\&. +.sp +Les effets principaux de +\fBT0\fR +sont de mettre les scans en série de façon à ce que seul un port ne soit scanné à la fois, puis d\*(Aqattendre 5 minutes entre chaque envoi de probe\&. +\fBT1\fR +et +\fBT2\fR +sont semblables mais n\*(Aqattendent que 15 secondes et 0,4 secondes, Respectivement, entre chaque probe\&. +\fBT3\fR +est le profil par défaut de Nmap et comporte la mise en parallèle\&. +\fBT4\fR +est l\*(Aqéquivalent de +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR +et met le délai maximum de scan TCP à 10 millisecondes\&. +\fBT5\fR +fait la même chose que +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 900000\fR +tout en mettant le délai maximum de scan TCP à 5 millisecondes\&. +.RE +.SH "TIMING ET PERFORMANCES" +.PP +L\*(Aqune des priorités les plus importantes dans le développement de Nmap a toujours été la performance\&. Un scan par défaut (\fBnmap \fR\fB\fIhostname\fR\fR\fB \fR) d\*(Aqun hôte sur mon réseau local prend un cinquième de seconde\&. Il s\*(Aqagit donc de très peu de temps mais les minutes s\*(Aqaccumulent lorsque vous scannez des dizaines ou des centaines de milliers d\*(Aqhôtes\&. De plus, certains scans tels que le scan UDP et la détection de version peuvent accroître le temps global du scan de façon significative\&. De plus, certains pare\-feux limitent le taux de réponses dans leur configuration\&. Bien que Nmap utilise un fonctionnement en parallèle et beaucoup d\*(Aqautres algorithmes avancés afin d\*(Aqaccélérer ces scans, l\*(Aqutilisateur garde le contrôle total sur le fonctionnement de Nmap\&. Les utilisateurs confirmés choisissent avec une grande attention leurs commandes afin d\*(Aqobtenir seulement les informations dont ils ont besoin en un minimum de temps\&. +.PP +Les techniques permettant d\*(Aqaffiner les temps de scan sont entre autres d\*(Aqéviter les tests non essentiels et d\*(Aqavoir les versions les plus récentes de Nmap (les augmentations de performance sont fréquentes)\&. Optimiser ses paramètres de temps en temps peut ainsi faire toute la différence\&. Ces options sont décrites ci\-dessous\&. +.PP +\fB\-\-min\-hostgroup <nombre>\fR; \fB\-\-max\-hostgroup <nombre>\fR (Ajuste la quantité du groupe de scans en parallèle) +.RS 4 +Nmap peut scanner des ports ou faire un scan de version sur de multiples hôtes en parallèle\&. Pour ce faire, Nmap divise la plage des adresses IP des cibles en groupe puis scanne ces groupes un à la fois\&. En général, scanner un grand nombre de groupes améliore l\*(Aqefficacité de la procédure\&. En contrepartie, les résultats ne peuvent être fournis que lorsque tout le groupe d\*(Aqhôtes a été scanné\&. Par conséquent, si Nmap a commencé avec un groupe de 50, l\*(Aqutilisateur ne recevra aucun résultat tant que les premiers 50 hôtes ne seront pas terminés (exception faite des informations données en mode verbeux)\&. +.sp +Par défaut, Nmap adopte un compromis dans son approche de ce conflit\&. Il commence avec une quantité aussi petite que 5 groupes de façon à obtenir rapidement les premiers résultats et augmente ensuite la quantité de groupes jusqu\*(Aqà un maximum de1 024\&. Les valeurs exactes par défaut dépendent des options configurées\&. Par soucis d\*(Aqefficacité, Nmap utilise une quantité de groupes plus grande lorsqu\*(Aqil s\*(Aqagit de scans UDP ou sur peu de ports en TCP\&. +.sp +Lorsqu\*(Aqun maximum est spécifié en quantité de groupes avec l\*(Aqoption +\fB\-\-max\-hostgroup\fR, Nmap ne va jamais dépasser cette valeur\&. Spécifiez une quantité minimale avec l\*(Aqoption +\fB\-\-min\-hostgroup\fR +et Nmap tentera de garder la quantité de groupes au\-dessus de cette valeur\&. Nmap devra peut\-être utiliser des groupes plus petits que ceux que vous demandez s\*(Aqil n\*(Aqy a plus assez d\*(Aqhôtes cibles sur une interface donnée par rapport au minimum que vous avez spécifié Les deux valeurs doivent être déterminés pour de conserver la quantité de groupes dans une plage spécifique, quoique ceci ne soit que rarement souhaité\&. +.sp +Le premier usage de ces options est de spécifier un minimum assez grand pour que le scan entier se fasse plus vite\&. Un choix fréquent est 256 pour scanner un réseau de Classe C\&. S\*(Aqil s\*(Aqagit d\*(Aqun scan incluanrt beaucoup de ports, dépasser cette valeur n\*(Aqaidera pas à grand chose\&. S\*(Aqil s\*(Aqagit de scans sur peu de ports, une quantité de groupes de 2 048 ou plus peut faciliter la procédure\&. +.RE +.PP +\fB\-\-min\-parallelism <nombre>\fR; \fB\-\-max\-parallelism\*(Aq <nombre>\fR (Ajuste la mise en parallèle des paquets de test, probes) +.RS 4 +Ces options permettent de contrôler le nombre total de probes idéal pour un groupe d\*(Aqhôtes\&. Elles permettent de scanner des ports et de découvrir des hôtes (host discovery)\&. Par défaut, Nmap calcule un parallélisme idéal et variable basé sur les performances du réseau\&. Si des paquets sont rejetés, Nmap ralentit sa cadence en permettant moins de probes simultanés\&. Le nombre idéal de probes augmente graduellement en même temps que le réseau démontre ses performances\&. Ces options fixent les limites maximales et minimales selon cette variable\&. Par défaut, le parallélisme idéal peut chuter à 1 si le réseau s\*(Aqavère trop faible et monter à plusieurs centaines dans des conditions parfaites\&. +.sp +L\*(Aqusage habituel consiste à régler l\*(Aqoption +\fB\-\-min\-parallelism\fR +à une valeur supérieure à 1 pour accélérer les scans sur des réseaux de faible performance\&. Il est risqué de trop modifier cette option puisqu\*(Aqétablir une valeur trop élevée peut affecter la précision des résultats\&. Modifier cette option réduit aussi la capacité de Nmap à contrôler le parallélisme de façon dynamique selon les conditions du réseau\&. Une valeur de 10 peut être raisonnable bien que je n\*(Aqajuste personnellement celle\-ci qu\*(Aqen dernier ressort\&. +.sp +L\*(Aqoption +\fB\-\-max\-parallelism\fR +est parfois réglée à 1 afin d\*(Aqéviter d\*(Aqenvoyer plus d\*(Aqun probe en même temps vers les hôtes\&. Ceci peut être intéressant en combinaison avec l\*(Aqoption +\fB\-\-scan\-delay\fR +(on verra plus tard), bien que cette option serve déjà elle\-même à cet effet\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout <millisecondes>\fR, \fB\-\-max\-rtt\-timeout <millisecondes>\fR, \fB\-\-initial\-rtt\-timeout <millisecondes>\fR (Ajuste la durée de vie des paquets de test, probe timeouts) +.RS 4 +Nmap conserve une valeur de durée de vie qui détermine combien de temps il devra attendre avant d\*(Aqenvoyer une réponse à un probe avant de l\*(Aqabandonner ou de le renvoyer\&. Cette valeur est calculée en fonction du temps de réponse des probes précédents\&. Si le temps de latence du réseau est significatif et variable, ce délai d\*(Aqinactivité ou cette durée de vie, peut augmenter jusqu\*(Aqà plusieurs secondes\&. Elle est également de niveau élevé et peut rester ainsi pendant un bon moment lorsque Nmap scanne des hôtes sans réponse\&. +.sp +Ces options acceptent des valeurs en millisecondes\&. Spécifier un +\fB\-\-max\-rtt\-timeout\fR +et un +\fB\-\-initial\-rtt\-timeout\fR +plus bas que ceux par défaut peuvent raccourcir le temps de scan de façon significative\&. C\*(Aqest particulièrement vrai pour les scans sans ping préalable (\fB\-P0\fR) et ceux contre des réseaux très filtrés\&. Toutefois, ne soyez pas trop agressif\&. Le scan peut se finir en un temps plus significatif si, au contraire, vous spécifiez des valeurs tellement basses que les durées de vie des probes sont terminées et ceux\-ci renvoyés alors que leurs réponses sont en fait encore en transit\&. +.sp +Si tous les hôtes sont sur un réseau local, 100 millisecondes est une valeur de +\fB\-\-max\-rtt\-timeout\fR +seront suffisantes\&. Si vous etes face a un routage, mesurez d\*(Aqabord le temps de réponse d\*(Aqun hôte sur le réseau \e l\*(Aqaide du ping ICMP de Nmap ou d\*(Aqun autre outil, comme hping2 qui est plus à même de passer un pare\-feu si le paquet est spécialement forgé\&. Regardez les durées de transit sur 10 paquets ou plus\&. Vous pouvez doubler cette valeur pour +\fB\-\-initial\-rtt\-timeout\fR +et tripler ou quadrupler le +\fB\-\-max\-rtt\-timeout\fR\&. Généralement, je ne règle pas le rtt maximum à moins de 100ms, et ce, quelles que soient les mesures de ping\&. De plus, je n\*(Aqexcède pas 1 000ms\&. +.sp +\fB\-\-min\-rtt\-timeout\fR +est une option rarement utilisée qui peut s\*(Aqavérer utile lorsqu\*(Aqun réseau est si lent que même les réglages par défaut de Nmap sont trop agressifs\&. Comme Nmap ne réduit le délai d\*(Aqinactivité au minimum que lorsque le réseau semble suffisamment rapide, ce genre de besoin est inhabituel et devrait être rapporté en tant que procédure erronée à la liste de développement de nmap\-dev\&. +.RE +.PP +\fB\-\-max\-retries <nombreessais>\fR (Spécifie le nombre maximum de retransmisison des paquets de test (probes)) +.RS 4 +Quand Nmap ne reçoit pas de réponse à un paquet de test sur un port, cela peut signifier que le port est filtré\&. Ou simplement que la réponse s\*(Aqest perdue sur le réseau\&. Il est également possible que l\*(Aqhôte cible ait limité son taux d\*(Aqémission ce qui a temporairement bloqué la réponse\&. Pour ces raisons, Nmap recommence l\*(Aqémission du paquet de test\&. Si Nmap détecte que le réseau est peu fiable, il peut essayer de re\-émettre le paquet plus de fois encore avant de s\*(Aqarrêter\&. Si cette technique améliore la fiabilité, elle ralonge la durée du scan\&. Quand la performance est un facteur critique, les scans peuvent être accélérés en limitant le nombre de retransmissions autorisé\&. Vous pouvez même spécifier +\fB\-\-max\-retries 0\fR +pour éviter toute retransmission, bien que cela ne soit pas trop recommandé\&. +.sp +Le paramétrage par défaut (sans politique +\fB\-T\fR +spécifiée) est d\*(Aqautoriser jusqu\*(Aqà dic retransmissions\&. Si le réseau a l\*(Aqair fiable et que les hôtes cibles ne limitent pas leur taux d\*(Aqémission, Nmap ne fait généralement qu\*(Aqune seule retransmission\&. Ainsi, réduire +\fB\-\-max\-retries\fR +à une valeur basse comme trois n\*(Aqaffecte pas la plupart des scans\&. Une telle valeur peut accélérer significativement les scans pour des hôtes lents (qui limitent leurs émissions)\&. Généralement, vous perdez des informations si Nmap cesse de scanner un port trop tôt, mais cela peut être préférable à laisser +\fB\-\-host\-timeout\fR +expirer et perdre alors toutes les informations concernant la cible\&. +.RE +.PP +\fB\-\-host\-timeout <millisecondes>\fR (Abandon des hôtes cibles trop lents) +.RS 4 +Certains hôtes prennent du temps +\fIlong\fR +à scanner, tout simplement\&. Ceci peut être dû à du matériel ou à des logiciels réseau peu performants ou inefficaces, à un taux de paquets limité ou à un pare\-feu restrictif\&. Le faible pourcentage de hôtes lents scannés peut ralentir le temps de scan tout entier\&. Il est donc parfois préférable d\*(Aqécarter temporairement ces hôtes du scan initial\&. Ceci peut être fait en spécifiant +\fB\-\-host\-timeout\fR +avec le nombre de millisecondes maximales que vous êtes prêt à attendre\&. Je choisis souvent 1 800 000 secondes pour m\*(Aqassurer que Nmap ne perde pas plus d\*(Aqune demi\-heure sur un seul hôte\&. Notez que Nmap peut être en train de scanner d\*(Aqautres hôtes en même temps durant cette demi\-heure, ce n\*(Aqest donc pas une perte complète\&. Un hôte qui dépasse cette valeur est abandonné\&. Pas de listage des ports, de détection d\*(AqOS ou de détection de version dans les résultats pour celui\-ci\&. +.RE +.PP +\fB\-\-scan\-delay <millisecondes>\fR; \fB\-\-max\-scan\-delay <millisecondes>\fR (Ajuste le délai entre les paquets de test) +.RS 4 +Cette option force Nmap à attendre d\*(Aqobtenir au moins la valeur donnée en millisecondes entre chaque probe qu\*(Aqil envoie sur un hôte donné\&. C\*(Aqest particulièrement utile en cas de limitation de nombre de paquets (taux limite)\&. Les machines Solaris (parmi beaucoup d\*(Aqautres) vont habituellement répondre à des paquets de test d\*(Aqun scan UDP par seulement un message ICMP par seconde\&. Tout ce qui est envoyé au\-delà par Nmap serait inutile\&. Un +\fB\-\-scan\-delay\fR +de 1 000 gardera Nmap à ce taux suffisamment lent\&. Nmap essaie de détecter le taux limite et d\*(Aqajuster le délai en conséquence, mais il ne fait pas de mal de le préciser si vous savez déjà quelle valeur est la meilleure\&. +.sp +Une autre utilisation de +\fB\-\-scan\-delay\fR +est d\*(Aqéviter les détections éventuelles des systèmes de détection et de prévention d\*(Aqintrusion (IDS/IPS) basées sur ce genre de règle\&. +.RE +.PP +\fB\-\-defeat\-rst\-ratelimit\fR +.RS 4 +Beaucoup d\*(Aqhôtes utilisent depuis longtemps un filtrage pour réduire le nombre de messages d\*(Aqerreur ICMP (comme les erreurs de ports inaccessibles) qu\*(Aqils envoient\&. Certains systèmes appliquent a présent des limitations similaires aux paquets RST (reset) qu\*(Aqils génèrent\&. Ceci peut ralentir Nmap dramaticalement étant donné qu\*(Aqil ajuste son timing pour refléter ces limitations\&. Vous pouvez dire a Nmap d\*(Aqignorer ces limitations (pour les scans de ports comme le SYN scan qui +\fIne traitent pas\fR +les ports muets comme étant +ouverts) en spécifiant +\fB\-\-defeat\-rst\-ratelimit\fR\&. +.sp +Utiliser cette option peut réduire la précision, puisque certains ports apparaitront comme muets parcequ\*(AqNmap n\*(Aqattend alors pas assez longtemps une réponse RST qui serait limitée\&. Dans le cas d\*(Aqun SYN scan, l\*(Aqabsence de réponse se traduit par un port marqué +filtré +plutot que +fermé +quand des paquets RST sont recus\&. Cette option est utile quand vous n\*(Aqavez besoin que des ports ouverts, et que distinguer des +fermés +ou des +filtrés +ne vaut pas le temps supplémentaire que cela suppose\&. +.RE +.PP +\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (Régler un profil de comportement au niveau du délai) +.RS 4 +Bien que les contrôles avancés et précis du délai dont il est fait mention dans les sections précédentes soient précis et efficaces, certains peuvent les trouver compliqués\&. Qui plus est, choisir les valeurs appropriées peut parfois prendre plus de temps que le scan que vous essayez d\*(Aqoptimiser\&. De ce fait, Nmap offre une approche plus simple, avec six profils de timing\&. Vous pouvez les spécifier grâce à l\*(Aqoption +\fB\-T\fR +et aux numéros (0 à 5) ou aux noms correspondants\&. Les noms des profils sont paranoid (0), sneaky (1), polite (2), normal (3), agressive (4), et insane (5)\&. Les deux premiers sont pour éviter les IDS\&. Le profile « Polite » ralentit le scan afin d\*(Aqutiliser moins de bande passante et moins de ressources sur la machine cible\&. Le profil « Normal » est celui par défaut et donc +\fB\-T3\fR +ne fait rien\&. Le profil « Agressive » accélère les scans, partant du principe que vous travaillez sur un réseau suffisamment rapide et efficace\&. Enfin, le profil « Insane » suppose que vous êtes sur un réseau extraordinairement rapide ou que vous êtes prêt à sacrifier un peu de précision pour plus de vitesse\&. +.sp +Ces profils permettent à l\*(Aqutilisateur de spécifier à quel point il souhaite être agressif tout en laissant Nmap choisir les valeur adéquates\&. Les profils effectuent aussi quelques ajustements que les options avancées ne permettent pas encore\&. Par exemple, +\fB\-T4\fR +empêche la variation dynamique du délai de dépasser 10ms pour les ports TCP et +\fB\-T5\fR +met cette valeur à 5 millisecondes\&. Les profils peuvent être utilisés en combinaison avec les options avancées en autant que le profil est précisé en premier\&. Dans le cas contraire, les valeurs normalisées pour le profil risquent d\*(Aqécraser celles que vous spécifiez\&. Je vous recommande d\*(Aqutiliser +\fB\-T4\fR +lorsque vous scannez des réseaux plus ou moins rapides, efficaces et modernes\&. Utilisez cette option (en début de ligne de commande) même si vous ajoutez des options avancées afin de bénéficier des petites améliorations liée à cette option\&. +.sp +Si vous travaillez sur une connexion large bande ou Ethernet, je vous recommande toujours d\*(Aqutiliser +\fB\-T4\fR\&. Certains aiment utiliser +\fB\-T5\fR +quoique ce soit, à mon avis, trop agressif\&. Les gens utilisent parfois +\fB\-T2\fR +parce qu\*(Aqils pensent que le rsique que les hôtes tombent en panne soit moins grand ou parce qu\*(Aqils se considèrent comme respectueux d\*(Aqune façon générale\&. Souvent ils ne réalisent pas à quel point l\*(Aqoption +\fB\-T Polite\fR +est lente en réalité\&. Leur scan peut prendre dix fois plus de temps qu\*(Aqun scan par défaut\&. Les machines qui tombent en panne et les problèmes liés à la bande passante sont rares avec les options de scan par défaut (\fB\-T3\fR)\&. C\*(Aqest pourquoi je les recommande habituellement pour les scanneurs précautionneux\&. Le fait de ne pas faire de détection de version est bien plus efficace pour limiter ces problèmes que de jouer sur les valeurs de timing\&. +.sp +Bien que les options +\fB\-T0\fR +et +\fB\-T1\fR +puissent être utiles pour éviter les alertes des IDS, elles prendront un temps énorme pour scanner des milliers de machines ou de ports\&. Lorsqu\*(Aqil s\*(Aqagit de tels scans, vous devriez régler les valeurs exactes de timing dont vous avez besoin plutôt que de vous appuyer sur les options +\fB\-T0\fR +et +\fB\-T1\fR +et les valeurs qui y sont associées\&. +.sp +Les effets principaux de +\fBT0\fR +sont de mettre les scans en série de façon à ce que seul un port ne soit scanné à la fois, puis d\*(Aqattendre 5 minutes entre chaque envoi de probe\&. +\fBT1\fR +et +\fBT2\fR +sont semblables mais n\*(Aqattendent que 15 secondes et 0,4 secondes, Respectivement, entre chaque probe\&. +\fBT3\fR +est le profil par défaut de Nmap et comporte la mise en parallèle\&. +\fBT4\fR +est l\*(Aqéquivalent de +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR +et met le délai maximum de scan TCP à 10 millisecondes\&. +\fBT5\fR +fait la même chose que +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 900000\fR +tout en mettant le délai maximum de scan TCP à 5 millisecondes\&. +.RE +.SH "ÉVITEMENT DE PARE\-FEUX/IDS ET MYSTIFICATION" +.PP +Beaucoup de pionniers d\*(AqInternet envisageaient un réseau global ouvert avec un espace d\*(Aqadressage IP universel permettant des connexions virtuelles entre n\*(Aqimporte quel noeuds\&. Ceci permet aux hôtes d\*(Aqagir en véritables relais, recevant et renvoyant l\*(Aqinformation les uns aux autres\&. Les gens pourraient accéder à l\*(Aqensemble de leur système domestique du bureau, en changeant les réglages de climatisation ou en déverrouillant leur porte pour les premiers invités\&. Cette vision d\*(Aqune connectivité universelle a été étouffée par la réduction de l\*(Aqespace d\*(Aqadressage et les considérations de sécurité\&. Au début des années 90, les organisations commencèrent à déployer des pare\-feux dans le but explicite de réduire la connectivité\&. De gigantesques réseaux furent cernés et coupés (NdT : le texte original dit +« barrés par un cordon de police ») d\*(AqInternet non filtré par des proxies applicatifs, la conversion des adresses réseau (network address translation) et les filtrages de paquets\&. Le flux d\*(Aqinformation libre céda la place à une régulation stricte de canaux de communication approuvés et du contenu qui y transitait\&. +.PP +Les outils d\*(Aqobstruction du réseau comme les pare\-feux peuvent rendre la cartographie d\*(Aqun réseau beaucoup trop difficile\&. Ce fait ne va pas aller en s\*(Aqarrangeant puisque l\*(Aqétouffement de toute possibilité de reconnaissance est souvent un point clé de l\*(Aqimplémentation des interfaces\&. Nonobstant, Nmap offre un certain nombre de fonctionnalités afin d\*(Aqaider à comprendre ces réseaux complexes ainsi que de s\*(Aqassurer que les filtres agissent comme ils sont censés le faire\&. Il supporte même des mécanismes pour contourner les défenses établies de façon trop faibles\&. Une des meilleures méthodes pour mieux comprendre votre réseau et la sécurité qui y est déployée est de tenter de la contourner\&. Mettez\-vous à la place de l\*(Aqattaquant et déployez les techniques de cette section contre vos réseaux\&. Lancez un scan « FTP bounce », un « Idle scan », une attaque par fragmentation, ou tentez d\*(Aqétablir un tunnel à travers un de vos propres proxies\&. +.PP +Outre le fait de restreindre l\*(Aqactivité du réseau, les compagnies surveillent de plus en plus le trafic à l\*(Aqaide de systèmes de détection d\*(Aqintrusion (IDS)\&. Tous les principaux IDSs sont prévus pour détecter les scans de Nmap parce que les scans sont parfois précurseurs d\*(Aqattaques\&. Beaucoup de ces produits ont récemment migré vers des systèmes de +\fIprévention\fR +et d\*(Aqintrusion (IPS) qui bloquent de façon active un trafic supposé malveillant\&. Malheureusement pour les administrateurs de réseau et les distributeurs d\*(AqIDS, la fiabilité de détection de mauvaises intentions par analyse des données de paquets demeure un problème\&. Les attaquants, avec de la patience, un certain niveau d\*(Aqexpertise et certaines quelques fonctions de Nmap, peuvent traverser un IDS sans être détectés\&. Dans le même temps, les administrateurs doivent composer avec un grand nombre de fausses alertes (false positive) qui bloquent et signalent une activité innocente\&. +.PP +De temps en temps, les gens suggèrent que Nmap ne devrait pas offrir de possibilités de contourner les règles des pare\-feux ou de tromper les IDSs\&. Ils font valoir que ces fonctionnalités sont utilisées par les attaquants de la même façon que les administrateurs les utilisent pour renforcer leur sécurité\&. Le problème avec cette logique est que ces méthodes seront toujours utilisées par les attaquants, qui ne feront que trouver d\*(Aqautres outils ou corriger ces fonctions sur Nmap\&. Dans le même temps, les administrateurs trouveront plus de difficultés à faire leur travail\&. Déployer seulement des serveurs FTP modernes et corrigés est une défense bien plus efficace que d\*(Aqempêcher la distribution d\*(Aqoutils permettant les attaques « FTP Bounce »\&. +.PP +Il n\*(Aqy a pas de méthode miracle (ni d\*(Aqoption dans Nmap) pour détecter et tromper les pare\-feux et les systèmes IDS\&. Cela demande un niveau de connaissances et de l\*(Aqexpérience\&. Un tutoriel est prévu pour ce guide de référence qui ne fait que lister les options relatives à ces sujets et ce qu\*(Aqelles font\&. +.PP +\fB\-f\fR (fragmentation de paquets); \fB\-\-mtu\fR (utiliser le MTU spécifié) +.RS 4 +L\*(Aqoption +\fB\-f\fR +force le scan demandé (y compris les scans de type ping) à utiliser des paquets IP fragmentés en petits paquets\&. L\*(Aqidée est de partager l\*(Aqen\-tête TCP en plusieurs paquets pour rendre plus difficile la détection de ce que vous faites par les dispositifs de filtrage de paquets, les systèmes de détection et d\*(Aqintrusion et autres systèmes ennuyeux\&. Il faudra cependant faire attention ! Certains programmes ont du mal à gérer ces petits paquets\&. Les anciens sniffers comme Sniffit souffraient d\*(Aqerreurs de segmentation immédiatement après avoir reçu le premier fragment\&. Spécifiez cette option une fois, et Nmap partage les paquets en 8 bytes ou moins après l\*(Aqen\-tête IP\&. Par exemple, un en\-tête de 20 bytes sera fragmenté en 3 paquets\&. Deux avec 8 bytes d\*(Aqen\-tête TCP et un avec les 4 derniers\&. Bien entendu, chaque paquet a son en\-tête IP\&. Spécifiez encore +\fB\-f\fR +pour utiliser 16 bytes par fragment (ceci réduit le nombre de fragments)\&. Vous pouvez aussi spécifier votre propre taille d\*(Aqoffset avec l\*(Aqoption +\fB\-\-mtu\fR\&. Par contre, ne spécifiez pas +\fB\-f\fR +si vous utilisez +\fB\-\-mtu\fR\&. L\*(Aqoffset doit être un multiple de 8\&. Bien que les paquets fragmentés ne tromperont pas les filtrages de paquets et les pare\-feux, tenant compte de tous les fragments IP, comme l\*(Aqoption CONFIG_IP_ALWAYS_DEFRAG dans le noyau Linux, certains réseaux ne peuvent supporter la perte de performance que cela entraîne et de ce fait laisse ceci désactivé\&. D\*(Aqautres ne peuvent pas l\*(Aqactiver parce que les fragments peuvent prendre différentes routes au sein de leur réseau\&. Certains systèmes source défragmentent les paquets sortant dans le noyau\&. Linux, avec le module de connection « tracking iptables » est un très bon exemple\&. Faites donc ce genre de scan avec un sniffer comme Ethereal tournant en même temps afin de vous assurer que les paquets envoyés sont bien fragmentés\&. Si votre système d\*(Aqexploitation causait des problèmes, essayez l\*(Aqoption +\fB\-\-send\-eth\fR +pour contourner la couche IP et envoyer des trames en raw Ethernet\&. +.RE +.PP +\fB\-D <decoy1 [,decoy2][,ME],\&.\&.\&.>\fR (Dissimuler un scan avec des leurres) +.RS 4 +Engendrez un scan avec des leurres, ce qui fait croire à l\*(Aqhôte distant que les hôtes que vous avez spécifié exécutent eux aussi un scan contre lui\&. Un IDS fera état d\*(Aqun scan de 5 à 10 ports depuis des adresses IP différentes, dont la vôtre, sans pouvoir faire la différence entre les leurres et la véritable origine\&. Bien que ceci puisse être repéré par la tracabilité des routeurs, le renvoi de réponses (response\-dropping), et d\*(Aqautres mécanismes actifs, ceci reste une technique généralement efficace pour cacher votre adresse IP\&. +.sp +Séparez chaque leure par une virgule et vous pourrez utiliser de façon facultative +ME +en tant que l\*(Aqun des leurres pour représenter la position de votre véritable adresse IP\&. Si vous mettez +ME +en sixième position ou après, certains systèmes de détection de scans de ports (comme l\*(Aqexcellent scanlogd de Solar Designer) sont incapables de voir votre adresse IP\&. Si vous n\*(Aqutilisez pas +ME, Nmap vous placera à une position aléatoire\&. +.sp +Notez que les hôtes que vous utilisez comme leurres devraient être réellement actifs; sinon, vous risquez d\*(Aqinonder votre cible par des SYN\&. Sans compter qu\*(Aqil serait très facile de déterminer quel hôte est en train de scanner si en fait un seul est actif sur le réseau\&. Vous pourriez utiliser des adresses IP plutôt que des noms afin de ne pas apparaître dans les logs des serveurs de nom du réseau\&. +.sp +Les leurres sont utilisés autant dans la phase initiale de scan ping (utilisant les ICMP, SYN, ACK, ou quoi que ce soit) que dans la phase proprement dite de scan de ports\&. Les leurres sont aussi utilisés pendant la détection d\*(AqOS distant (\fB\-O\fR)\&. Les leurres ne fonctionnent pas avec la détection de version ou un scan de type TCP connect()\&. +.sp +Il est inutile d\*(Aqutiliser trop de leurres car cela pourrait ralentir votre scan et potentiellement le rendre moins précis\&. Enfin, certains FAI peuvent filtrer vos paquets usurpés (spoofés) toutefois beaucoup ne le font pas du tout\&. +.RE +.PP +\fB\-S <IP_Address>\fR (Usurper votre adresse source) +.RS 4 +Dans certaines circonstances, Nmap n\*(Aqest pas capable de déterminer votre adresse source ( Nmap vous avisera le cas échéant)\&. Dans cette situation, utilisez +\fB\-S\fR +avec l\*(Aqadresse IP de l\*(Aqinterface avec laquelle vous souhaitez envoyer les paquets\&. +.sp +Un autre usage possible de ce drapeau est d\*(Aqusurper (spoofer) le scan afin de faire croire à la cible que +\fIquelqu\*(Aqun d\*(Aqautre\fR +est en train de les scanner\&. Imaginez une compagnie constamment scannée pas un concurrent ! L\*(Aqoption +\fB\-e\fR +est généralement requise pour ce genre d\*(Aqusage et +\fB\-P0\fR +est à conseiller quoi qu\*(Aqil en soit\&. +.RE +.PP +\fB\-e <interface>\fR (Utiliser l\*(Aqinterface précisée) +.RS 4 +Avise Nmap sur quelle interface envoyer et recevoir les paquets\&. Nmap devrait pouvoir la détecter automatiquement mais il vous le dira si ce n\*(Aqest pas le cas\&. +.RE +.PP +\fB\-\-source\-port <portnumber>;\fR \fB\-g <portnumber>\fR (Usurper le numéro du port source) +.RS 4 +L\*(Aqune des erreurs de configuration les plus surprenantes est de faire confiance au trafic sur la base du port d\*(Aqoù il provient\&. Il est facile de comprendre pourquoi une telle situation se produit\&. Un administrateur va régler un tout nouveau pare\-feu et être noyé sous les plaintes des utilisateurs dont les applications ne fonctionnent plus\&. En particulier, les DNS peuvent être cassés parce que les réponses UDP DNS depuis les serveurs externes ne peuvent plus entrer sur le réseau\&. Le FTP est un autre exemple\&. Dans les transferts actifs en FTP, le serveur distant essaie d\*(Aqétablir une connexion en retour vers le client afin de transférer le fichier demandé\&. +.sp +La solution sécurisée pour ce problème existe, souvent sous la forme de proxies applicatifs ou de modules de filtrage de protocoles au niveau du pare\-feu\&. Malheureusement, il existe aussi des solutions faciles non sécurisées\&. En remarquant que les réponses DNS viennent du port 53 et le FTP actif du port 20, beaucoup d\*(Aqadministrateurs sont tombés dans le piège de seulement permettre le trafic entrant depuis ces ports\&. Ils imaginent souvent qu\*(Aqaucun attaquant n\*(Aqaura noté et pensé exploiter de telles failles de pare\-feux\&. Dans d\*(Aqautres cas, l\*(Aqadministrateur va considérer que c\*(Aqest une solution à court terme jusqu\*(Aqà ce qu\*(Aqil implémente une solution plus sécurisée\&. Ils oublient par la suite d\*(Aqeffectuer la mise à jour de sécurité\&. +.sp +Les administrateurs de réseau surchargés de travail ne sont pas les seuls à tomber dans ce piège\&. Beaucoup de produits sont pensés avec ce genre de règle mal sécurisée\&. Même Microsoft en a été coupable\&. Les filtres IPsec, fournis avec Windows 2000 et Windows XP, contiennent une règle implicite qui autorise tout trafic depuis le port 88 (Kerberos) en TCP ou UDP\&. Dans un autre cas bien connu, les versions du pare\-feu Zone Alarm personal firewall jusqu\*(Aqà 2\&.1\&.25 permettaient tout paquet UDP provenant du port 53 (DNS) ou 67 (DHCP)\&. +.sp +Nmap propose les options +\fB\-g\fR +et +\fB\-\-source\-port\fR +qui sont équivalentes pour exploiter ces faiblesses\&. Fournissez simplement un numéro de port et Nmap enverra les paquets depuis ce port si possible\&. Nmap doit utiliser certains numéros de port afin que certains tests de détection d\*(AqOS fonctionnent correctement\&. De plus, les requêtes DNS ignorent le drapeau +\fB\-\-source\-port\fR +parce que Nmap se fonde sur un système de bibliothèques pour les traiter\&. La plupart des scans TCP, y compris le SYN scan, supportent entièrement l\*(Aqoption comme le fait aussi le scan UDP\&. +.RE +.PP +\fB\-\-data\-length <number>\fR (Ajoute des données aléatoires aux paquets envoyés) +.RS 4 +Normalement, Nmap envoie des paquets minimalistes contenant seulement un en\-tête\&. Donc ces paquets TCP ne font généralement que 40 bytes et les ICMP echo request seulement 28 bytes\&. Cette option indique à Nmap d\*(Aqajouter le nombre donné de bytes aléatoires à la plupart des paquets qu\*(Aqil envoie\&. Les paquets de la détection d\*(AqOS (\fB\-O\fR) ne sont pas affectés, contrairement à la plupart des paquets de ping et de scan de port\&. Cette procédure ralentit bien entendu les choses mais permet toutefois de faire passer un scan pour un peu moins suspect\&. +.RE +.PP +\fB\-\-ip\-options <S|R [route]|L [route]|T|U \&.\&.\&. >;>\fR \fB\-\-ip\-options <hex string>>\fR (Envoie des paquets avec les options IP spécifiées) +.RS 4 +Le +\m[blue]\fBprotocole IP\fR\m[]\&\s-2\u[9]\d\s+2 +offre plusieurs options pouvant être placées dans l\*(Aqentête des paquets\&. Contrairement aux options TCP habituelles, les options IP sont rarement rencontrées pour des raisons pratiques et de sécurité\&. En fait, beaucoup de routeurs Internet bloquent les options les plus dangereuses comme le routage de source\&. CEpendant les options peuvent s\*(Aqavérer utiles dans certains cases for determining and manipulating the network route to cas de machines cibles\&. Par exemple vous pouvez être en mesure d\*(Aqutiliser l\*(Aqenregistrement de routage pour déterminer un chemin vers une cible quand bien même une approche plus traditionnelle de Traceroute échouerait\&. Ou si vos paquets sont rejettés par un pare\-feu, vous pouvez spécifier une autre route avec des options plus ou moins vagues de routage\&. +.sp +La facon la plus puissante de spécifier ces options IP est simplement de passer ces valeurs en argument à +\fB\-\-ip\-options\fR\&. Faites précéder chaque nombre héxadécimal par +\ex +puis les deux chiffres\&. Vous pouvez répèter certains charactères en les séparant par un asterisk suivit du nombre de répétions\&. Par exemple, +\ex01\ex07\ex04\ex00*36\ex01 +est une chaine héxa contenant 36 NUL bytes\&. +.sp +Nmap propose aussi un mechanisme de raccourcis pour spécifier ces options\&. Donnez simplement la lettre +R, +T, ou +U +pour demander l\*(Aqenregistrement de routage, de timestamp, ou les deux simultanement, respectivement\&. Un routage strict ou plus vague peut être spécifié avec un +L +ou un +S +suivit d\*(Aqun espace et d\*(Aqune liste séparée d\*(Aqespaces d\*(Aqadresses IP\&. +.sp +Si vous souhaitez voir les options dans les paquets envoyés et recus, spécifiez +\fB\-\-packet\-trace\fR\&. Pour plus d\*(Aqinformation et d\*(Aqexemples de l\*(Aqutilisation des options IP avec Nmap, voir +\m[blue]\fB\%https://seclists.org/nmap-dev/2006/q3/0052.html\fR\m[]\&. +.RE +.PP +\fB\-\-badsum\fR (Envoyer des paquets avec des sommes de contrôle TCP/UDP erronnées) +.RS 4 +Demande a Nmap d\*(Aqutiliser une somme de contrôle TCP ou UDP erronnée pour les paquets envoyés aux hôtes cibles\&. Comme virtuellement toutes les piles IP des hôtes rejettent ces paquets, toute réponse recue doivent venir d\*(Aqun pare\-feu ou d\*(Aqun IDS qui ne se préoccuppe pas de vérifier les sommes de contrôle\&. Pour plus de détails sur cette technique, voir +\m[blue]\fB\%https://nmap.org/p60-12.txt\fR\m[] +.RE +.PP +\fB\-\-ttl <value>\fR (Règle la valeur du champ IP de durée de vie (time\-to\-live)) +.RS 4 +Règle le champ IPv4 du time\-to\-live dans les paquets envoyés à la valeur donnée\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Met les hôtes dans un ordre aléatoire) +.RS 4 +Indique à Nmap de mélanger tous les groupes contenant jusqu\*(Aqà 8 096 hôtes avant de les scanner\&. Ceci peut rendre les scans moins évidents pour de nombreux systèmes de surveillance réseau, spécialement si vous le combinez à des options de délai lentes\&. Si vous souhaitez mélanger des groupes de taille plus importante, augmentez la valeur PING_GROUP_SZ dans +nmap\&.h +et recompilez\&. Une autre solution serait de générer la liste des IP cibles avec un scan de listage (list scan, +\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR\fB \fR), le mélanger à l\*(Aqaide d\*(Aqun script Perl, puis fournir la liste complète à Nmap avec +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac <mac address, prefix, or vendor name>\fR (Usurpation d\*(Aqadresses MAC) +.RS 4 +Demande à Nmap d\*(Aqutiliser l\*(Aqadresse MAC spécifiée pour l\*(Aqensemble des trames en raw Ethernet qu\*(Aqil envoie\&. Cette option implique +\fB\-\-send\-eth\fR +pour s\*(Aqassurer que Nmap envoie vraiment des paquets au niveau Ethernet\&. Le MAC donné peut prendre plusieurs formes\&. S\*(Aqil s\*(Aqagit seulement de la chaîne +« 0 », Nmap choisit une adresse MAC totalement aléatoire pour la session\&. Si la chaîne est un nombre hexadécimal (avec les paires de nombres éventuellement séparées par les deux points), Nmap utilisera ceci comme adresse MAC\&. Si moins de 12 chiffres sont spécifiés, Nmap remplit le reste avec des valeurs aléatoires\&. Si l\*(Aqargument n\*(Aqest ni 0 ni une chaîne hexadécimale, Nmap recherche dans sa base de données +nmap\-mac\-prefixes +un nom de fournisseur contenant la chaîne en question (non sensible à la casse)\&. Si une correspondance est trouvée, Nmap utilise le numéro OUI du distributeur (un préfixe de 3 bytes) et utilise les 3 bytes restants de façon aléatoire\&. Des exemples de valeurs +\fB\-\-spoof\-mac\fR +valides sont +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2 +et +Cisco\&. +.RE +.SH "COMPTES RENDUS" +.PP +Tout outil de sécurité n\*(Aqest vraiment utile qu\*(Aqen fonction des comptes rendus qu\*(Aqil génère\&. Des tests aussi complexes soient\-ils et des algorithmes n\*(Aqont finalement qu\*(Aqune faible valeur s\*(Aqils ne sont pas présentés et organisés de façon compréhensible\&. Étant donné que les utilisateurs emploient Nmap et d\*(Aqautres Logiciels de diverses façons, il n\*(Aqy a pas un format qui puisse convenir à tout le monde\&. Nmap propose donc plusieurs formats, y compris le mode interactif permettant d\*(Aqêtre directement intelligible et le XML pour une meilleure portabilité entre logiciels (parsing)\&. +.PP +Outre le fait de proposer différents formats de sortie, Nmap comporte des options permettant aussi bien de contrôler la verbosité des comptes rendus que le déboggage\&. Les différents types de sorties peuvent être envoyés à des comptes rendus normalisés ou à des fichiers spécifiques, dont le contenu peut s\*(Aqagrémenter des scans successifs ou remplacer un contenu précédent\&. Ces fichiers de sortie peuvent aussi être utilisés pour reprendre un scan temporairement suspendu\&. +.PP +Nmap rend les résultats disponibles en 5 formats différents\&. Le format par défaut est appelé +interactive output\&. Il est envoyé en sortie standard (stdout)\&. On trouve aussi le +normal output, qui est semblable à +interactive +à ceci près qu\*(Aqil affiche moins d\*(Aqinformations de fonctionnement et d\*(Aqalertes étant donné qu\*(Aqil est plutôt destiné à être analysé à la fin des scans au lieu de façcon interactive\&. +.PP +La sortie au format XML est l\*(Aqune des plus importante qui peut être converti en HTML\&. Elle est facilement traitée par des programmes tiers comme les interfaces graphiques pour Nmap, ou importée au sein de bases de données\&. +.PP +Les deux autres formats restants sont le simple +grepable output, qui inclus la plupart des informations concernant une cible dans une seule ligne, et le +sCRiPt KiDDi3 0utPUt +pour les utilisateurs qui se prennent au sérieux |<\-r4d\&. +.PP +Alors que le format interactif représente la sortie par défaut et ne nécessite pas d\*(Aqoption de ligne de commande particulière, les quatre autres options de format utilisent la même syntaxe\&. Ils prennent un argument qui représente le nom du fichier dans lequel les résultats devraient être inscrits\&. Des formats multiples peuvent être spécifiés mais chaque format ne devrait être spécifié qu\*(Aqune seule fois\&. Par exemple, vous pourriez souhaiter sauvegarder une sortie de type normal (normal output) pour votre propre usage tout en sauvegardant un XML du même scan pour une analyse par un programme\&. Vous pouvez le faire à l\*(Aqaide des options +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Bien que ce chapitre utilise des noms de fichier simples, notamment +myscan\&.xml, àdes fins pratiques, des noms plus explicites sont en général recommandés\&. Le choix des noms relève des préférences personnelles, toutefois pour ma part, j\*(Aqen utilise de longs contenant la date du scan ainsi qu\*(Aqun mot ou deux décrivant le scan\&. Je les enregistre ensuite dans un répertoire nommé selon la compagnie pour laquelle je suis en train d\*(Aqeffectuer le scan\&. +.PP +Même si ces options sauvegardent les résultats dans des fichiers, Nmap continue à fournir la sortie interactive en stdout comme d\*(Aqhabitude\&. Par exemple, la commande +\fBnmap \-oX myscan\&.xml target\fR +génère un fichier XML intitulé +myscan\&.xml +tout en donnant la sortie standard avec le même résultat interactif qu\*(Aqil aurait donné si l\*(Aqoption +\fB\-oX\fR +n\*(Aqavait pas été spécifiée du tout\&. Vous pouvez changer cette procédure en entrant un tiret en argument sur l\*(Aqun des types de format\&. Ceci force Nmap à désactiver la sortie interactive et d\*(Aqinscrire à la place les résultats dans le format que vous avez spécifié pour le flux de sortie standard\&. Par conséquent, la commande +\fBnmap \-oX \- target\fR +enverra seulement une sortie XML en stdout\&. Les erreurs sérieuses sont susceptibles d\*(Aqêtre inscrites dans le flux normal d\*(Aqerreur, le stderr\&. +.PP +Contrairement à certains arguments de Nmap, l\*(Aqespace entre le drapeau de l\*(Aqoption fichier (comme +\fB\-oX\fR) et le nom de fichier ou le tiret est obligatoire\&. Si vous l\*(Aqomettez et entrez des arguments tels que +\fB\-oG\-\fR +ou +\fB\-oXscan\&.xml\fR, une fonction de compatibilité d\*(Aqarrière\-plan de Nmap forcera la création de formats de type +\fInormal format\fR +comme fichiers de sortie nommés +G\- +et +Xscan\&.xml, respectivement\&. +.PP +Nmap offre en outre l\*(Aqoption de contrôler la verbosité du scan et d\*(Aqajouter les résultats les uns à la suite des autres dans un même fichier plutôt que d\*(Aqécraser les résultats précédants\&. Toutes ces options sont décrites ci\-dessous\&. +.PP +\fBFormats de Sortie sur Nmap\fR +.PP +\fB\-oN <filespec>\fR (sortie Normale) +.RS 4 +Demande que le format +normal output +soit appliqué au fichier donné\&. Tel que décrit ci\-dessus, cette procédure diffère légèrement d\*(Aqune sortie de type +interactive output\&. +.RE +.PP +\fB\-oX <filespec>\fR (sortie XML) +.RS 4 +Demande que le format +XML output +soit donné au fichier spécifié\&. Nmap contient une définition de type de document (DTD) qui permet le traitement XML des résultats de Nmap\&. Bien que ce soit d\*(Aqabord pensé aux fins d\*(Aqutilisation de programmation, cette procédure peut aussi aider à interpréter la sortie XML de Nmap\&. Le DTD définit les éléments légaux du format et énumère souvent les attributs et les valeurs qu\*(Aqils peuvent prendre\&. La dernière version est toujours disponible sur +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]\&. +.sp +Le XML offre un format stable facilement traitable au moyen d\*(Aqun logiciel\&. Des outils de traitement XML sont offerts gratuitement dans tous les grands langages de programmation, y compris C/C++, Perl, Python et Java\&. Des gens ont même écrit des outils spécifiques dans ces langages destinés au support de traitement des sorties de Nmap\&. Notons comme exemples le +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[10]\d\s+2 +et le +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[11]\d\s+2 +en Perl CPAN\&. Dans la plupart des cas où une application tierce doit interagir avec Nmap, le XML est le format privilégié\&. +.sp +Les sorties XML font référence à une feuille de style XSL qui peut être utilisée dans le but de formater les résultats au format HTML\&. La façon la plus simple d\*(Aqutiliser ceci est de charger la sortie XML dans un navigateur Web, comme Firefox ou IE\&. Par défaut, cette démarche ne pourra être appliquée qu\*(Aqà partir dela machine sur laquelle vous utilisez Nmap (ou une machine configurée de façon semblable) en raison du chemin système vers +nmap\&.xsl +codé en dur\&. Utilisez l\*(Aqoption +\fB\-\-webxml\fR +ou +\fB\-\-stylesheet\fR +pour une façon de générer un fichier XML portable qui rendra un format HTML sur toute machine connectée au Web\&. +.RE +.PP +\fB\-oS <filespec>\fR (s0r713 ScRipT KIdd|3) +.RS 4 +Le format de sortie Script kiddie est similaire à la sortie interactive, sauf qu\*(Aqil est post\-traité de façon à mieux coller au style l33t HaXXorZ qui s\*(Aqintéresse à Nmap soit les lettres majuscules et le contenu unique de sa prononciation\&. Les gens dénués d\*(Aqhumour devraient réaliser que cette option est surtout une moquerie envers les script kiddies avant de me descendre en flammes en m\*(Aqaccusant de +« les aider »\&. +.RE +.PP +\fB\-oG <filespec>\fR (sortie Grepable) +.RS 4 +Ce format de sortie vit ses derniers instants de support parce qu\*(Aqil devient désuet\&. Le format XML est bien plus puissant et presque aussi pratique pour les utilisateurs expérimentés\&. Le XML est un standard pour lequel des douzaines d\*(Aqexcellents outils de traitement sont disponibles alors que le format de sortie grepable est mon propre bidouillage\&. Le XML est évolutif afin de supporter les fonctions ultérieures de Nmap au rythme où elles sont disponibles alors que j\*(Aqomets souvent ces fonctions pour les sorties grepables par manque de place\&. +.sp +Toutefois, le format de sortie grepable reste toujours populaire\&. C\*(Aqest un format simple qui liste chaque hôte sur une seule ligne et peut être facilement traité à l\*(Aqaide d\*(Aqoutils uniformisés sous UNIX, notamment grep, awk, cut, sed, diff et Perl\&. Je l\*(Aqutilise même souvent pour certains tests en ligne de commande\&. Trouver tous les hôtes ayant le port ssh ouvert ou tournant sous Solaris ne prend qu\*(Aqun simple grep pour identifier l\*(Aqhôte, envoyé sur un awk ou traité pour afficher le champ désiré\&. +.sp +Le format Grepable consiste en une suite de commentaires (des lignes commençant par un dièze (#) et des lignes cibles\&. Une ligne cible inclus une combinaison de 6 champs étiquetés, séparés par des tabulations et suivis d\*(Aqun séparatif\&. Les champs sont +Host, +Ports, +Protocols, +Ignored State, +OS, +Seq Index, +IPID +et +Status\&. +.sp +Le plus important de ces champs est généralement +Ports +qui donne les détails sur chaque port considéré\&. C\*(Aqest une liste d\*(Aqentrées séparées par une virgule\&. Chaque entrée de port représente un port considéré et prend la forme de 7 sous\-champs séparés d\*(Aqune barre oblique (/) \&. Ces sous\-champs sont les suivants : +Port number, +State, +Protocol, +Owner, +Service, +SunRPC info +et +Version info\&. +.sp +Comme pour le format XML, cette page\-manuel ne permet pas de documenter de façon exhaustive l\*(Aqensemble de ce format\&. Une vision plus détaillée est disponible sur +\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]\&. +.RE +.PP +\fB\-oA <basename>\fR (sortie en tous formats) +.RS 4 +À votre convenance, vous pouvez spécifier +\fB\-oA \fR\fB\fIbasename\fR\fR\fB \fR +pour stocker les résultats de scans en format normal, XML et grepable, et ce, en une seule fois\&. Ils sont stockés dans +\fIbasename\fR\&.nmap, +\fIbasename\fR\&.xml et +\fIbasename\fR\&.gnmap, respectivement\&. Comme pour la plupart des programmes, vous pouvez ajouter en préfixe au nom de fichier un chemin d\*(Aqaccès, comme +~/nmaplogs/foocorp/ +sous UNIX ou +c:\ehacking\esco +sous Windows\&. +.RE +.PP +\fBoptions de verbosité et déboggage\fR +.PP +\fB\-v\fR (Augmenter le niveau de verbosité) +.RS 4 +Augmente le niveau de verbosité, forçant Nmap à afficher plus d\*(Aqinformations sur le scan qu\*(Aqil effectue\&. Les ports ouverts sont indiqués au fur et à mesure où ils sont trouvés ainsi qu\*(Aqune évaluation du temps qui reste à scanner si Nmap pense que cela prendra quelques minutes\&. Utilisez cette option deux fois pour encore plus de verbosité\&. L\*(Aqutiliser plus de deux fois n\*(Aqa aucun effet\&. +.sp +La plupart des changements modifient seulement la sortie interactive et certains touchent aussi les sorties normales et les script kiddies\&. Les autres sorties sont conçues de façon à traiter par une machine, c\*(Aqest pourquoi Nmap peut donner des détails importants par défaut dans ces formats sans pour autant fatiguer un utilisateur humain\&. Toutefois, il y a quelques modifications dans les autres modes pour lesquels les tailles de sorties peuvent être réduites substantiellement par omission de quelques détails\&. Par exemple, une ligne commentée dans le format grepable qui fournit une liste de tous les ports scannés n\*(Aqest affichée que dans le mode verbeux parce que cela peut s\*(Aqavérer très long\&. +.RE +.PP +\fB\-d [level]\fR (Augmenter ou régler le niveau de déboggage) +.RS 4 +Quand même le mode verbeux ne donne pas assez d\*(Aqinformations pour vous, le déboggage est là pour vous noyer sous encore plus de données! Comme avec l\*(Aqoption de verbosité (\fB\-v\fR), le déboggage est mis en place avec un drapeau de ligne de commande (\fB\-d\fR) et le niveau de déboggage peut être augmenté en le spécifiant plusieurs fois\&. Autrement, vous pouvez définir un niveau de déboggage en donnant un argument à +\fB\-d\fR\&. Par exemple, +\fB\-d9\fR +définit le niveau 9\&. C\*(Aqest le plus haut niveau et fournira des milliers de lignes à moins que vous ne lanciez un scan très simple avec très peu de ports et de cibles\&. +.sp +La sortie de déeboggage est utile lorsqu\*(Aqune procédure erronée est soupçonnée dans Nmap ou si vous désirez simplement savoir ce que fait Nmap et pourquoi\&. Comme cette fonctionnalité est surtout faite pour les développeurs, les lignes de déboggage ne sont pas toujours tres explicites\&. Vous pouvez obtenir quelque chose comme : +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Si vous ne comprenez pas une ligne, vos seuls recours sont de l\*(Aqignorer, la chercher dans le code source ou obtenir de l\*(Aqaide sur la liste de développement (nmap\-dev)\&. Certaines sont quand même assez explicites, mais les messages deviennent de plus en plus obscures au fur et à mesure où le niveau de déboggage est élevé\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Trace les paquets et les données envoyés et reçus) +.RS 4 +Force Nmap à afficher un résumé de chaque paquet envoyé ou reçu\&. C\*(Aqest souvent utilisé pour le déboggage mais c\*(Aqest aussi une bonne façon pour les nouveaux utilisateurs de mieux comprendre ce que Nmap fait en arrière\-lan\&. Afin d\*(Aqéviter d\*(Aqafficher des milliers de lignes, vous pouvez spécifier un nombre limité de ports à scanner, notamment +\fB\-p20\-30\fR\&. Si vous ne vous préoccupez que de ce que fait le sous\-système de détection de version, utilisez plutôt +\fB\-\-version\-trace\fR +à la place\&. +.RE +.PP +\fB\-\-open\fR (Montre seulement les ports ouverts (ou potentiellement ouverts)) +.RS 4 +Il arrive que vous ne soyez interressé que par les ports sur lesquels vous pouvez effectivment vous connecter (état +open), et ne voulez pas de résultats pollués par ceux qui sont +closed, +filtered, et +closed|filtered +\&. La personnalisation est en général faite après le scan en utilisant des outils comme grep, awk, ou Perl, mais cette fonctionnalité a été ajoutée à cause d\*(Aqun grand nombre de demandes à cet égard\&. Spécifiez +\fB\-\-open\fR +pour voir seulement les ports +open, +open|filtered, et +unfiltered\&. Ces trois états sont traités pour ce qu\*(Aqils sont normalement, ce qui signifie que +open|filtered +et +unfiltered +peuvent être regroupés dans le comptage si il y en a un grand nombre\&. +.RE +.PP +\fB\-\-log\-errors\fR (Journalise les erreurs/alertes dans un fichier en mode normal) +.RS 4 +Les alertes et erreurs affichées par Nmap vont habituellement uniquement sur l\*(Aqécran (sortie interactive), laissant un eventuel fichier de sortie qui aurait été spécifié en ordre\&. Mais quand vous souhaitez quand même voir ces messages dans le fichier de sortie que vous avez spécifié, ajoutez cette option\&. C\*(Aqest utile quand vous ne regardez pas l\*(Aqaffichage interactif ou si vous essayez de debogger un probleme\&. Le message apparait quand même à l\*(Aqécran\&. Ceci ne marchera pas pour la plupart des erreurs dues à une ligne de commande erronnée, étant donné que Nmap n\*(Aqaura pas encore ouvert de fichier de sortie a ce stade\&. De plus, certains messages d\*(Aqalerte/erreurs utilisent un système différent qui n\*(Aqest pas encore supporté par cette option\&. Une alternative à cette option est de rediriger l\*(Aqaffichage interactif (flux d\*(Aqerreurs standard inclus) vers un fichier\&. Tandis que la plupart des shells UNIX permettent ceci facilement, cela peut s\*(Aqavérer difficile sous Windows\&. +.RE +.PP +\fB\-\-iflist\fR (Dresse la liste des interfaces et des routes) +.RS 4 +Affiche la liste des interfaces et des routes système telles que détectées par Nmap\&. C\*(Aqest utile pour le déboggage lié aux problèmes de cheminement ou de détermination des interfaces (comme lorsque Nmap traite une connexion PPP en tant qu\*(AqEthernet)\&. +.RE +.PP +\fBOptions de sortie diverses\fR +.PP +\fB\-\-append\-output\fR (Ajouter au fichier plutôt que de l\*(Aqécraser) +.RS 4 +Lorsque vous spécifiez un fichier pour un format de sortie comme +\fB\-oX\fR +ou +\fB\-oN\fR, ce fichier est écrasé par défaut\&. Si vous préférez garder le contenu existant du fichier et rajouter les nouveaux résultats, spécifiez l\*(Aqoption +\fB\-\-append\-output\fR\&. Tout fichier de sortie spécifié dans cette configuration de session de Nmap se verra agrémenté des nouveaux résultats plutôt qu\*(Aqécrasé\&. Cela ne fonctionne pas très bien pour les données de scan au format XML (\fB\-oX\fR) dont le fichier résultant ne sera pas vraiment correct et devra être rectifié à la main\&. +.RE +.PP +\fB\-\-resume <filename>\fR (Reprendre un scan abandonné) +.RS 4 +Certaines sessions importantes de Nmap peuvent prendre beaucoup de temps \-\- de l\*(Aqordre de plusieurs jours\&. De tels scans ne sont pas toujours menés à terme\&. Des restrictions peuvent empêcher Nmap d\*(Aqêtre utilisé pendant les heures de travail, soit parce que le réseau peut s\*(Aqécrouler, la machine sur laquelle Nmap tourne peut subir une réinitialisation voulue ou non ou Nmap lui même peut tomber en panne\&. L\*(Aqadministrateur qui utilise Nmap peut l\*(Aqannuler pour toute autre raison de toutes façons, en appuyant sur +ctrl\-C\&. Recommencer tout le scan à partir du début peut être indésirable\&. Heureusement, si le format normal (\fB\-oN\fR) ou grepable (\fB\-oG\fR) a été conservé, l\*(Aqutilisateur peut demander à Nmap de reprendre le scan sur la cible qu\*(Aqil traitait au moment d\*(Aqêtre arrêté\&. Spécifiez simplement l\*(Aqoption +\fB\-\-resume\fR +avec le nom du fichier de sortie normal/grepable en argument\&. Aucun autre argument n\*(Aqest autorisé puisque Nmap va chercher dans le fichier de sortie en question sa configuration précédente\&. Appelez donc simplement Nmap de cette façon : +\fBnmap \-\-resume \fR\fB\fIlogfilename\fR\fR\fB \fR\&. Nmap ajoutera les nouveaux résultats aux données déjà présentes dans le fichier en question lors de la précédente exécution\&. Le redémarrage n\*(Aqest pas possible à partir d\*(Aqun format XML parce que combiner les deux sessions dans un même fichier XML serait difficile\&. +.RE +.PP +\fB\-\-stylesheet <path or URL>\fR (Défini la feuille de style XSL pour transformer la sortie XML) +.RS 4 +Nmap dispose d\*(Aqune feuille de style XSL nommée +nmap\&.xsl +afin de visionner ou transcrire la sortie XML en HTML\&. La sortie XML comprend une directive +xml\-stylesheet +qui pointe sur +nmap\&.xml +où il a été initialement installé par Nmap (où dans le répertoire courant sous Windows)\&. Chargez simplement la sortie XML de Nmap dans un navigateur à jour et il devrait retrouver +nmap\&.xsl +depuis le système de fichiers puis utilisez\-le pour obtenir le compte rendu des résultats\&. Si vous préférez utiliser une feuille de style différente, spécifiez là en argument à +\fB\-\-stylesheet\fR\&. Vous devez donner le chemin ou l\*(Aqadresse URL complète\&. +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR +est une utilisation classique qui indique au navigateur de charger la dernière version de la feuille de style de Insecure\&.Org\&. Cette procédure rend plus facile le visionnage des résultats sur une machine qui ne dispose pas de Nmap (et donc de +nmap\&.xsl) \&. Par conséquent, l\*(Aqadresse URL est souvent plus utile toutefois le nmap\&.xsl local est utilisé par défaut pour des raisons de confidentialité\&. +.RE +.PP +\fB\-\-webxml\fR (Charge la feuille de style depuis Insecure\&.org) +.RS 4 +Cette option est seulement un alias pour +\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Ne pas déclarer de feuille de style XSL pour le XML) +.RS 4 +Spécifiez cette option pour empêcher Nmap d\*(Aqassocier toute feuille de style XSL avec les sorties XML\&. La directive +xml\-stylesheet +est omise\&. +.RE +.SH "OPTIONS DIVERSES" +.PP +Cette section décrit quelques options plus ou moins importantes qui ne trouvent pas vraiment leur place ailleurs\&. +.PP +\fB\-6\fR (Activer le scan en IPv6) +.RS 4 +Depuis 2002, Nmap a proposé le support IPv6 pour ses fonctionnalités les plus populaires\&. En particulier les ping scan (TCP seulement), connect() scan et détection de version qui supportent l\*(AqIPv6\&. La synthaxe de la commande est la même qu\*(Aqhabituellement, sauf que vous précisez aussi l\*(Aqoption +\fB\-6\fR +\&. Bien sûr, vous devez utiliser la synthaxe IPv6 si vous spécifiez une adresse plutôt qu\*(Aqun nom d\*(Aqhôte\&. Une adresse doit ressembler à +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, c\*(Aqest pourquoi les noms d\*(Aqhôtes sont recommandés\&. Les résultats de sortie ressemblent à ceux obtenus habituellement avec la notation IPv6 sur la ligne +« interesting ports » +\&. +.sp +Bien qu\*(Aqon ne puisse pas dire que l\*(AqIPv6 ait bouleversé le monde, son utilisation reste notable dans certains pays (particulièrement en Asie)\&. De plus, la plupart des systèmes d\*(Aqexploitation modernes le supportent\&. Pour utiliser Nmap avec des IPv6, la source et la cible du scan doivent être configurées pour l\*(AqIPv6\&. Si votre fournisseur d\*(Aqaccès Internet (comme dans la plupart des cas) ne vous a pas alloué d\*(Aqadresse IPv6, des tunnels libres sont disponibles et fonctionnent très bien avec Nmap\&. J\*(Aqen ai utilisé un que Hurricane Electric fournit sur +\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]\&. Les tunnels 6to4 sont aussi une autre approche libre et populaire\&. +.RE +.PP +\fB\-A\fR (option de scan agressif) +.RS 4 +Cette option active des options agressives supplémentaires avancées\&. Je n\*(Aqai pas vraiment déterminé ce que cela signifie jusqu\*(Aqà présent\&. Pour le moment, ceci active la détection d\*(AqOS (\fB\-O\fR) et le scan de version (\fB\-sV\fR)\&. Davantage de fonctions peuvent être ajoutées dans le futur\&. L\*(Aqidée est d\*(Aqactiver un panel complet d\*(Aqoptions de scan sans que les gens aient à se rappeler d\*(Aqun grand nombre de drapeaux\&. Cette option ne fait qu\*(Aqactiver des options sans aucun réglage d\*(Aqoptions de délai (comme +\fB\-T4\fR) ou de verbosité (\fB\-v\fR) que vous pourriez par ailleurs souhaiter\&. +.RE +.PP +\fB\-\-datadir <directoryname>\fR (Indique l\*(Aqemplacement personnalisé des fichiers de données pour Nmap) +.RS 4 +Nmap obtient certaines informations pendant son fonctionnement depuis les fichiers +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes +et +nmap\-os\-fingerprints\&. Nmap, dans un premier temps, recherche ces fichiers dans un répertoire indiqué avec l\*(Aqoption +\fB\-\-datadir\fR +(si elle existe)\&. Tout fichier non trouvé à cet emplacement sera cherché dans l\*(Aqemplacement spécifié par la variable d\*(Aqenvironnement NMAPDIR \&. Puis vient +~/\&.nmap +pour les UIDs véritables et proprement dits (systèmes POSIX seulement) ou l\*(Aqemplacement de l\*(Aqexécutable Nmap (Win32 seulement), et enfin un emplacement comme +/usr/local/share/nmap +ou +/usr/share/nmap +\&. En dernier ressort, Nmap va chercher dans le répertoire courant\&. +.RE +.PP +\fB\-\-servicedb <fichier services>\fR (spécifier un fichier de services spécifique) +.RS 4 +Demande à Nmap d\*(Aqutiliser le fichier de services précisé plutot que le fichier +nmap\-services +fournis\&. Utiliser cette option force aussi l\*(Aqusage d\*(Aqun scan rapide (\fB\-F\fR)\&. Voir la description de +\fB\-\-datadir\fR +pour plus d\*(Aqinformations sur les fichiers de données de Nmap\&. +.RE +.PP +\fB\-\-versiondb <fichier empreintes de services>\fR (spécifier un fichier d\*(Aqempreintes de services spécifique) +.RS 4 +Demande à Nmap d\*(Aqutiliser le fichier d\*(Aqempreintes de services précisé plutot que le fichier +nmap\-services\-probes +fournis\&. Utiliser cette option force aussi l\*(Aqusage d\*(Aqun scan rapide (\fB\-F\fR)\&. Voir la description de +\fB\-\-datadir\fR +pour plus d\*(Aqinformations sur les fichiers de données de Nmap\&. +.RE +.PP +\fB\-\-send\-eth\fR (Utiliser l\*(Aqenvoi par raw Ethernet) +.RS 4 +Demande à Nmap d\*(Aqenvoyer les paquets à la couche raw Ethernet (liaison données) plutôt que sur la couche plus élevée IP (réseau)\&. Par défaut, Nmap choisit celui qui convient le mieux à la plateforme sur laquelle il tourne\&. Les raw sockets (couche IP) sont en général plus efficaces sur les machines UNIX, alors que les trames Ethernet frames sont obligatoires pour Windows depuis que Microsoft a désactivé le support des raw sockets\&. Nmap utilise toujours des paquets en raw IP sous UNIX en dépit de cette option quand il n\*(Aqy a pas d\*(Aqautre choix (par exemple, une connexion non Ethernet)\&. +.RE +.PP +\fB\-\-send\-ip\fR (Envoyer au niveau raw IP) +.RS 4 +Demande à Nmap d\*(Aqenvoyer les paquets par le biais des sockets raw IP plutôt que d\*(Aqenvoyer des trames de niveau inférieur en Ethernet\&. C\*(Aqest le complément de l\*(Aqoption +\fB\-\-send\-eth\fR +discuté précédement\&. +.RE +.PP +\fB\-\-privileged\fR (Suppose que l\*(Aqutilisateur a des privilèges) +.RS 4 +Dit à Nmap de supposer simplement qu\*(Aqil a les privilèges suffisants pour effectuer des envois en raw socket, intercepter des paquets et des opérations similaires qui, habituellement, nécessitent des privilèges root sur les systèmes UNIX\&. Par défaut, Nmap quitte si de telles opérations sont tentées mais que le geteuid() n\*(Aqéquivaut pas à zéro\&. +\fB\-\-privileged\fR +est utile avec les capacités des noyaux Linux et des systèmes similaires pouvant être configurés pour permettre à des utilisateurs non privilégiés d\*(Aqaccomplir des scans avec des raw\-packets\&. Assurez\-vous de bien fournir cette option avant tout autre pour les options qui nécessitent des privilèges (SYN scan, détection de système d\*(Aqexploitation, etc\&.)\&. La variable NMAP_PRIVILEGED peut être utilisée comme équivalent alternatif à +\fB\-\-privileged\fR\&. +.RE +.PP +\fB\-\-unprivileged\fR (Suppose que l\*(Aqutilisateur n\*(Aqa pas les privilèges d\*(Aqutiliser les raw sockets) +.RS 4 +Cette option est l\*(Aqopposée de +\fB\-\-privileged\fR\&. Elle précise à Nmap de faire comme si l\*(Aq utilisateur n\*(Aqavait pas les privilègues de raw sockets et de sniffing\&. C\*(Aqest utile dans un environnement de tests, de deboggage, ou si les opérations en raw sur le reseau ne sont pas disponibles pour une tierce raison\&. La variable d\*(Aqenvironnement NMAP_UNPRIVILEGED peut être utilisée comme alternative à +\fB\-\-unprivileged\fR\&. +.RE +.PP +\fB\-\-release\-memory\fR (Libérer la mémoire avant de quitter) +.RS 4 +Cette option n\*(Aqest utile que dans le cadre du deboggage de fuites de mémoire\&. Elle force Nmap a libérer la mémoire allouée juste avant de quitter de facon a repérer les véritables fuites de mémoire\&. En temps normal Nmap ne fait pas ceci étant donné que l\*(AqOS le fait de toutes facons à la fin du processus\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Affiche le numéro de version) +.RS 4 +Donne le numéro de version de Nmap et quitte\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Affiche le sommaire d\*(Aqaide) +.RS 4 +Affiche un petit écran d\*(Aqaide avec les options les plus courantes \&. Lancer Nmap sans aucun argument fait la même chose\&. +.RE +.SH "INTERACTION À LA VOLÉE" +.PP +Au cours de l\*(Aqexécution de Nmap, toutes les touches pressées sont capturées\&. Ceci permet d\*(Aqinteragir avec le programme sans l\*(Aqarrêter et le relancer\&. Certaines touches spéciales changeront les options tandis que les autres touches afficheront un message d\*(Aqétat parlant du scan en cours\&. La convention est que +\fIles minuscules baissent\fR +le niveau d\*(Aqaffichage et que +\fIles majuscules l\*(Aqaugmentent\fR\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Augmente / Baisse la verbosité +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Augmente / Baisse le niveau de déboggage +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Active / Désactive le traçage des paquets +.RE +.PP +\fB?\fR (aide) +.RS 4 +Affiche un ecran d\*(Aqaide durant l\*(Aqexecution\&. +.RE +.PP +N\*(Aqimporte quoi d\*(Aqautre +.RS 4 +Affiche un message d\*(Aqétat qui se lit comme suit : +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "EXEMPLES" +.PP +Voici quelques exemples d\*(Aqutilisation de Nmap, du plus simple au un peu plus complexe et ésotérique\&. De véritables adresses IP et noms de domaine sont utilisés pour rendre les choses plus concrètes\&. Vous devez les substituer avec celles de +\fIvotre propre réseau\&.\fR\&. Bien que je ne crois pas que scanner les prots d\*(Aqautres réseaux soit ou devrait être illégal, certains administrateurs de réseau n\*(Aqapprécient pas les scans non sollicités de leur réseau et peuvent s\*(Aqen plaindre\&. La meilleure approche est donc d\*(Aqobtenir d\*(Aqabord leur autorisation\&. +.PP +Pour des raisons de tests, vous avez l\*(Aqautorisation de scanner l\*(Aqhôte +scanme\&.nmap\&.org\&. Cette permission inclus seulement les scans avec Nmap et non pas l\*(Aqessai d\*(Aqexploits ou d\*(Aqattaques de Denis de Service\&. Afin de préserver la bande passante, veuillez ne lancer qu\*(Aqune douzaine de scans sur cet hôte au maximum par jour\&. En cas d\*(Aqabus de ce libre service de cible de scan, il serait fermé et Nmap afficherait le message suivant : +Failed to resolve given hostname/IP: scanme\&.nmap\&.org\&. Ces permissions s\*(Aqappliquent aussi à l\*(Aqhôte +scanme2\&.nmap\&.org, à +scanme3\&.nmap\&.org, et ainsi de suite, même si ces hôtes n\*(Aqexistent présentement pas\&. +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Cette option scanne tous les ports réservés TCP sur la machine +scanme\&.nmap\&.org +\&. L\*(Aqoption +\fB\-v\fR +active le mode verbeux\&. +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Lance un scan furtif (stealth SYN scan) contre chaque machine active parmi les 255 machines du réseau de +« classe C » +sur lequel Scanme réside\&. Il essaie aussi de déterminer le système d\*(Aqexploitation sur chaque hôte actif\&. Cette démarche nécessite les privilèges de root puisqu\*(Aqon utilise un SYN scan et une détection d\*(AqOS\&. +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Lance une recherche des hôtes et un scan TCP dans la première moitié de chacun des 255 sous\-réseaux à 8 bits dans l\*(Aqespace d\*(Aqadressage de classe B 198\&.116 Cela permet de déterminer si les systèmes font tourner sshd, DNS, pop3d, imapd ou le port 4564\&. Pour chacun de ces ports qui sont ouverts, la détection de version est utilisée pour déterminer quelle application est actuellement lancée\&. +.PP +\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR +.PP +Demande à Nmap de choisir 100 000 hôtes de façon aléatoire et de les scanner dans le but de trouver les serveurs Web (port 80)\&. L\*(Aqénumération des hôtes est désactivée avec +\fB\-P0\fR +puisque envoyer en premier lieu quelques probes pour déterminer si un hôte est actif est inutile lorsque vous ne cherchez à tester qu\*(Aqun port sur chaque hôte\&. +.PP +\fBnmap \-PN \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Cette procédure scanne 4 096 adresses IP à la recherche de serveurs Web (sans les pinguer au préalable) et sauvegarde la sortie en format grepable et XML\&. +.PP +\fBhost \-l company\&.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR +.PP +Effectue un transfert de zone DNS afin de trouver les hôtes au sein de company\&.com et ensuite fournir les adresses IP à Nmap\&. Les commandes ci\-dessus concerne mon GNU/Linux \-\- les autres systèmes ont d\*(Aqautres commandes pour effectuer les transferts de zone\&. +.SH "BOGUES" +.PP +Comme son auteur, Nmap n\*(Aqest pas parfait\&. Mais vous pouvez aider à l\*(Aqaméliorer en envoyant les rapports de bogues ou même en écrivant des programmes de correction\&. Si Nmap ne satisfait pas à vos attentes, mettez\-le d\*(Aqabord à jour en utilisant la dernière version disponible sur +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Si le problème persiste, faites quelques recherches afin de déterminer s\*(Aqil a déjà été remarqué et signalé\&. Essayez pour cela de mettre l\*(Aqerreur en argument sur Google ou parcourez les archives de Nmap\-dev sur +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. Lisez ce manuel en entier quoiqu\*(Aqil en soit\&. Si rien ne semble fonctionner, envoyez un rapport de bogue à +<dev@nmap\&.org>\&. Veillez à inclure tout ce que vous avez appris au sujet de ce bogue ainsi que la version de Nmap concernée et le système d\*(Aqexploitation que vous utilisez\&. Les rapports de problèmes et les questions sur l\*(Aqutilisation de Nmap envoyés à dev@nmap\&.org ont plus de chance de trouver une réponse que ceux envoyés à Fyodor directement\&. +.PP +Les codes de programmes de correction destinés à régler des bogues sont encore meilleurs que les rapports de bogues\&. Les instructions de base pour créer des fichiers de programmes de correction avec vos modifications sont disponibles sur +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]\&. Les programmes de correction peuvent être envoyés à nmap\-dev (recommandé) ou à Fyodor directement\&. +.SH "AUTEUR" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%http://www.insecure.org\fR\m[]) +.PP +Traduction française : +.PP +Romuald THION +<romuald\&.thion@insa\-lyon\&.fr> +4N9e Gutek +<4n9e@futurezone\&.biz> +Relecture et corrections : Ghislaine Landry +<g\-landry@rogers\&.com> +.PP +Bien qu\*(Aqun soin particulier ait été apporté à cette traduction, il est possible que certaines erreurs s\*(Aqy soient glissées\&. Le cas échéant, n\*(Aqhésitez pas à communiquer avec les traducteurs\&. La traduction ne remplace pas au texte original (version anglaise), tout particulièrement en ce qui concerne les dispositions légales\&. Une erreur d\*(Aqinterprétation dans cette traduction ne peut, en aucun cas, se substituer à ces dispositions\&. Insecure\&.Com LLC n\*(Aqassume aucune responsabilité en ce qui a trait aux erreurs éventuelles de traduction ou d\*(Aqinterprétation\&. +.PP +Des centaines de personnes ont apporté de précieuses contributions à Nmap au cours des années\&. Celles\-ci sont détaillées dans le fichier +CHANGELOG +qui est distribué avec Nmap mais aussi disponible sur +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]\&. +.SH "DISPOSITIONS LÉGALES" +.SS "Droits d\*(Aqauteur et licence" +.PP +Le Nmap Security Scanner est sous droits d\*(Aqauteur (C) 1996\-2005 Insecure\&.Com LLC\&. Nmap est aussi une marque déposée de Insecure\&.Com LLC\&. Ce programme est un logiciel libre; vous pouvez le redistribuer ou le modifier selon les termes de la licence GNU General Public License comme publiée par la Free Software Foundation; Version 2\&. Cela garantit vos droits d\*(Aqutilisation, de modification et de redistribution de ce logiciel, et ce, sous certaines conditions\&. Si vous souhaitez inclure la technologie Nmap dans un logiciel propriétaire, nous nous réservons le droit de vendre d\*(Aqautres licences (communiquez avec +<sales@insecure\&.com>)\&. Beaucoup de distributeurs de scanners de sécurité ont déjà acquis une licence pour les technologies Nmap, notamment la découverte d\*(Aqhôte, le scan de ports, le détection du système d\*(Aqexploitation et la détection de service ou de version\&. +.PP +Notez que la licence GPL comporte d\*(Aqimportantes restrictions relativement aux +« travaux dérivés », bien qu\*(Aqelle ne donne pas de détails suffisants quant à la définition de ceux\-ci\&. Afin d\*(Aqéviter toute incompréhension, nous considérons une application comme constituant un +« travail dérivé » +dans le cadre de cette licence au cas où elle correspondrait à l\*(Aqun de ces termes : +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Intègre le code source de Nmap +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Lis ou inclus les fichiers déposés de Nmap, comme +nmap\-os\-fingerprints +ou +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Exécute Nmap et traite les résultats (par opposition à une simple exécution en système essentiel ou en menu applicatif, qui ne fait qu\*(Aqafficher les sorties brutes de Nmap et, de ce fait, ne sont pas des travaux dérivés\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Intègre/Inclus/Concatène Nmap dans un installeur exécutable propriétaire, comme ceux produits par InstallShield\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Lie à une librairie ou à un programme exécutable qui fait l\*(Aqune des procédures ci\-dessus\&. +.RE +.PP +Le terme +« Nmap » +doit être pris comme incluant aussi toute portion ou travail dérivé de Nmap\&. Cette liste n\*(Aqest pas exhaustive; elle est simplement conçue de façon à clarifier notre interprétation des travaux dérivés au moyen de quelques exemples connus\&. Ces restrictions s\*(Aqappliquent seulement lorsque vous redistribuez Nmap\&. Par exemple, rien ne vous empêche d\*(Aqécrire et de vendre une interface graphique propriétaire pour Nmap\&. Distribuez\-la seulement en entier et assurez\-vous de diriger les gensvers le lien +\m[blue]\fB\%https://nmap.org/\fR\m[] +de façon à télécharger Nmap\&. +.PP +Nous ne considérons pas ce document comme étant un ajout à la licence GPL, mais simplement une clarification de la façon dont nous interprétons +« les travaux dérivés » +qui s\*(Aqappliquent à notre produit Nmap sous licence GPL\&. Ceci est semblable à la façon dont Linus Torvalds a annoncé son interprétation des +« travaux dérivés » +qui s\*(Aqappliquent aux modules du noyau Linux\&. Notre interprétation fait seulement référence à Nmap; nous ne parlons d\*(Aqaucun autre produit sous GPL\&. +.PP +Si vous avez des questions à propos des restrictions de la licence GPL et de l\*(Aqutilisation de Nmap dans le cadre des travaux non\-GPL, nous serions heureux de vous aider\&. Tel que mentionné ci\-dessus, nous offrons une autre licence afin d\*(Aqintégrer Nmap au sein d\*(Aqapplications propriétaires\&. Ces contrats ont été vendus à de nombreux distributeurs du domaine de la sécurité et comportent généralement une licence perpétuelle tout en fournissant un support, des mises à jour prioritaires et une aide au développement constant de la technologie Nmap\&. Veuillez envoyer un courriel à +<sales@insecure\&.com> +pour obtenir plus d\*(Aqinformations\&. +.PP +Comme exception particulière à la licence GPL, Insecure\&.Com LLC permet de lier le code de ce programme à toute version de la librairie OpenSSL, qui est distribuée sous une licence identique à celle spécifiée dans le fichier Copying\&.OpenSSL ci\-inclus, et de distribuer les combinaisons de liens incluant les deux\&. Vous devez observer le GNU GPL dans tous ses aspects pour toute portion du code utilisée autre que OpenSSL\&. Si vous modifiez ce fichier, vous pouvez étendre cette exception à votre version du fichier mais vous n\*(Aqêtes toutefois pas obligé de le faire\&. +.PP +Si vous recevez ces fichiers avec une licence écrite ou un contrat établissant les termes autres que ceux mentionnés ci\-dessus, cette autre licence prend la préséance sur ces commentaires\&. +.SS "Licence Creative Commons pour cette documentation de Nmap" +.PP +Ce guide de référence Nmap est déposé par 2005 Insecure\&.Com LLC\&. Il est ainsi sous licence 2\&.5 de la licence +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. Ceci vous permez de redistribuer et modifier ce travail comme bon vous semble, tant que vous citez la source originale\&. Autrement, vous pouvez considérer ce document comment tombant sous le coup de la même licence que Nmap lui\-même\&. +.SS "Disponibilité du code source et contribution communautaire" +.PP +La source est fournie avec ce programme car nous croyons que les utilisateurs ont le droit de savoir exactement ce qu\*(Aqun programme va faire avant d\*(Aqêtre lancé\&. Cela vous permet aussi de vérifier ce logiciel relativement à d\*(Aqéventuelles vulnérabilités (aucune n\*(Aqa été trouvée à ce jour)\&. +.PP +Le code source vous permet aussi d\*(Aqutiliser Nmap sur de nouvelles plateformes, de régler des bogues et d\*(Aqajouter de nouvelles fonctionnalités\&. Vous êtes fortement encouragés à présenter vos modifications à +<fyodor@nmap\&.org> +dans le but de les intégrer dans la distribution principale\&. Lorsque vous envoyez ces changements à Fyodor ou à l\*(Aqune des listes de développement d\*(AqInsecure\&.Org, il est recommandé que vous cédiez à Fyodor et à Insecure\&.Com LLC le droit illimité et non exclusif de réutiliser, de modifier et de concéder de nouveau une licence pour le code\&. Nmap sera toujours disponible en Open Source et ce, principalement en raison de l\*(Aqimpossibilité de concéder de nouveau une licence pour le code, ce qui a occasionné des problèmes dévastateurs pour d\*(Aqautres projets de développement libres (comme KDE et NASM)\&. Nous concédons aussi occasionnellement une licence pour le code à des tierces parties, tel que décrit ci\-dessus\&. Si vous souhaitez spécifier une condition de licence à votre contribution, indiquez\-le simplement au moment de nous l\*(Aqenvoyer\&. +.SS "Pas de garanties" +.PP +Ce programme est distribué dans l\*(Aqespoir qu\*(Aqil sera utile, mais SANS AUCUNE GARANTIE; sans même la garantie implicite de VALEUR MARCHANDE ou DE FONCTIONNEMENT POUR UNE UTILISATION PARTICULIÈRE\&. Consultez la licence GNU General Public License pour obtenir plus de détails sur +\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[] +ou sur le fichier COPYING inclus avec Nmap\&. +.PP +Il faut également noter que Nmap est reconnu pour avoir occasionnellement fait tomber en panne des applications mal écrites, des piles TCP/IP, et même des systèmes d\*(Aqexploitation\&. Bien que ce soit extrêmement rare, il est important de le garder en tête\&. +\fINmap ne doit jamais être lancé contre des systèmes d\*(Aqimportance critique\fR +à moins que vous ne soyez prêts à en payer le prix\&. Nous acceptons ici que Nmap puisse faire tomber en panne vos systèmes ou réseaux et nous nous dégageons de toute responsabilité pour tout dommage ou problème que Nmap pourrait causer\&. +.SS "Usage inapproprié" +.PP +De part le faible risque de tomber en panne et de quelques piratages électroniques au moyen de Nmap aux fins de reconnaissance avant attaque des systèmes, certains administrateurs sont désormais mécontents et peuvent se plaindre lorsque leur système est scanné\&. C\*(Aqest pourquoi il est souvent préférable de demander d\*(Aqabord la permission avant d\*(Aqeffectuer le scan d\*(Aqun réseau, et ce, aussi simple soit\-il\&. +.PP +Nmap ne devrait jamais être installé avec des privilèges spéciaux (par exemple, suid root) pour des raisons de sécurité\&. +.SS "Logiciels Tierce Partie" +.PP +Ce produit comporte un logiciel développé par la +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[12]\d\s+2\&. Une version modifiée de la librairie de capture de paquets Libpcap +\m[blue]\fBde chez tcpdump\fR\m[]\&\s-2\u[13]\d\s+2 +est distribuée en accompagnement de Nmap\&. La version Windows de Nmap emploie la version dérivée de Libpcap +\m[blue]\fBWinPcap library\fR\m[]\&\s-2\u[14]\d\s+2\&. Le support des expressions régulières est assuré par la librairie +\m[blue]\fBPCRE\fR\m[]\&\s-2\u[15]\d\s+2, qui consiste en un logiciel open source écrit par Philip Hazel\&. Certaines fonctions réseau utilisent la librairie réseau +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[16]\d\s+2 +écrite par Dug Song\&. Une version modifiée est distribuée avec Nmap\&. Nmap peut éventuellement pointer sur l\*(Aqoutil de cryptographie +\m[blue]\fBOpenSSL cryptography toolkit\fR\m[]\&\s-2\u[17]\d\s+2 +pour le support de détection de version dans le cas du SSL\&. Tous les logiciels tierce partie décrits dans ce paragraphe peuvent être de nouveau distribués sous les licences de type BSD\&. +.SS "Classification et contrôle des exportations depuis les États\-Unis (US Export Control Classification)" +.PP +Contrôle des exportations : Insecure\&.Com LLC pense que Nmap tombe sous la juridiction de l\*(AqUS ECCN (export control classification number), numéro 5D992\&. Cette catégorie est appelée +« Information Security software not controlled by 5D002 », logiciel de sécurité et d\*(Aqinformations non contrôlé par le chapitre 5D002\&. La seule restriction de cette classification concerne l\*(Aqanti\-terrorisme qui s\*(Aqapplique à la plupart des biens et des valeurs exportés vers des pays sensibles comme l\*(AqIran et la Corée du Nord\&. C\*(Aqest pourquoi l\*(Aqexportation de Nmap ne requiert aucune licence particulière, permis, ou autre autorisation gouvernementale\&. +.SH "NOTES" +.IP " 1." 4 +version originale en Anglais +.RS 4 +\%https://nmap.org/man/ +.RE +.IP " 2." 4 +Creative Commons Attribution License +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 3." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 4." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 5." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 6." 4 +RFC TCP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 7." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 8." 4 +la documentation en anglais +.RS 4 +\%https://nmap.org/book/man-os-detection.html +.RE +.IP " 9." 4 +protocole IP +.RS 4 +\%http://www.ietf.org/rfc/rfc0791.txt +.RE +.IP "10." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP "11." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP "12." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "13." 4 +de chez tcpdump +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "14." 4 +WinPcap library +.RS 4 +\%http://www.winpcap.org +.RE +.IP "15." 4 +PCRE +.RS 4 +\%http://www.pcre.org +.RE +.IP "16." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "17." 4 +OpenSSL cryptography toolkit +.RS 4 +\%http://www.openssl.org +.RE diff --git a/docs/man-xlate/nmap-hr.1 b/docs/man-xlate/nmap-hr.1 new file mode 100644 index 0000000..58f5eba --- /dev/null +++ b/docs/man-xlate/nmap-hr.1 @@ -0,0 +1,1737 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "Author" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 05/17/2023 +.\" Manual: Nmap vodič +.\" Source: Nmap +.\" Language: Croatian +.\" +.TH "NMAP" "1" "05/17/2023" "Nmap" "Nmap vodič" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "IME" +nmap \- Alat za istraživanje mreže i sigurnosni/port skener +.SH "PREGLED" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fITip\ skena\fR...] [\fIOpcije\fR] {\fIspecifikacija\ cilja\fR} +.SH "OPIS" +.PP +Nmap (\(lqNetwork Mapper\(rq) je open source alat za istraživanje mreže i sigurnosni auditing\&. Dizajniran je za brzo skeniranje velikih mreža, ali radi jednako dobro i kad je u pitanju samo jedan host\&. Nmap koristi sirove (raw) IP pakete na nov i originalan način da bi ustanovio koji hostovi su dostupni na mreži, koji servisi (naziv aplikacije i verzija) su pokrenuti na tim hostovima, o kojim operativnim sustavima (i verzijama) je riječ, koji tipovi paket filtera i vatrozida se koriste, te mnogo drugih karakteristika\&. Iako je Nmap najčešće korišten za sigurnosni auditing, mnogi sistemski i mrežni administratori pronašli su u njemu koristan alat za rutinske zadatke poput sastavljanja popisa mrežnog inventara, upravljanja vremenima nadogradnje servisa i nadgledanja uptime\-a računala ili servisa\&. +.PP +Rezultat Nmap pretraživanja je popis skeniranih meta s dodatnim informacijama o svakoj od njih ovisno o korištenim parametrima\&. Ključna informacija je +\(lq tabela zanimljivih portova\(rq\&. U tabeli se nalati broj porta i protokol, naziv servisa i stanje\&.Stanje je ili: +otvoreno, +filtrirano, +zatvoreno +ili +nefiltrirano\&. +Otvoreno +znači da na ciljanom računalu postoji aplikacija koja sluša na tom portu i čeka na konekciju/pakete\&. +Filtrirano +znači da između nas i ciljanog računala postoji vatrozid, paket filter ili neki drugi mrežni uređaj koji blokira port, pa Nmap ne može reći da li je port +otvoren +ili +zatvoren\&. +Zatvoreni +portovi trenutno nemaju aplikacije koje slušaju na njima\&. Portovi su klasificirani kao +nefiltrirani +u situacijama kada odgovaraju na Nmap\-ove upite, ali Nmap nije u mogućnosti ustanoviti da li su otvoreni ili zatvoreni\&. Nmap vraća sljedeće kombinacije u izvještajima: +otvoren|filtriran +i +zatvoren|filtriran +kad ne može ustanoviti koje od dva stanja točnije opisuje port\&. Port tabela može također sadržavati i informacije o verziji softvera, kada je ta opcija upaljena kod skeniranja\&. Kad je zatraženo skeniranje IP protokola (\fB\-sO\fR), Nmap vraća informacije o podržanim IP protokolima, a ne o portovima\&. +.PP +Uz navedenu tabelu portova, Nmap može dati i dodatne informacije o ciljanom računalu, uključujući reverse DNS imena, pretopstavku o tome koji operativni sustav je s druge strane, tipove uređaja i MAC adrese\&. +.PP +Prikaz tipičnom Nmap skena je prikazan u: +Primjer 1, \(lqOvako izgleda primjer Nmap skena\(rq\&. Jedan od Nmap argumenata korišten u navedenom primjeru je +\fB\-A\fR, opcija za otkrivanje OS\-a i njegove verzije, zatim\fB\-T4\fR +za brže skeniranje, te nakon toga dva hosta koje želimo skenirati\&. +.PP +\fBPrimjer 1. Ovako izgleda primjer Nmap skena\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org playground + +Starting nmap ( https://nmap\&.org/ ) +Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X +OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11 +Uptime 33\&.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground\&.nmap\&.org (192\&.168\&.0\&.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios\-ssn +389/tcp open ldap? +445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds +1002/tcp open windows\-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper +5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3\&.8) +MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds +.fi +.if n \{\ +.RE +.\} +.PP +Najnoviju verziju Nmap\-a možete downloadati sa sljedećeg linka: +\m[blue]\m[]\&\s-2\u[1]\d\s+2\&. Najnovija verzija man stranica (uputa) dostupna je na sljedećem linku: +\m[blue]\fB\%https://nmap.org/man/\fR\m[]\&. +.SH "NAPOMENE O PRIJEVODU" +.PP +Hrvatsku verziju Nmap vodiča je preveo Robert Petrunić s +\m[blue]\fBoriginalne Engleske verije\fR\m[]\&\s-2\u[2]\d\s+2 +2991\&. Iako se nadam da će prijevod učiniti Nmap dostupniji ljudima Hrvatskog govornog područja, ne mogu garantirati da je prijevod kompletan i up to date kao i originalna Engleska verzija\&. Projevod možete modificirati i redistribuirati pod uvjetima +\m[blue]\fBCreative Commons Attribution Licence\fR\m[]\&\s-2\u[3]\d\s+2\&. Ovo je prva verzija i najvjerovatnije ima dosta nekonzistentnih prijevoda (riječi koje su na različitim mjestima prevedene drugačije), ali smisao prijevoda je i dalje ostao isti\&. Nadam se da ću u idućim verzijama napisati više "književni" točan prijevod +.SH "PREGLED OPCIJA" +.PP +Sljedeći pregled opcija je ispisan kad pokrenete Nmap bez ikakvih parametara, a posljednja verzija je uvijek dostupna na: +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]\&. Pomaže ljudima zapamtiti najčešće opcije, ali nije zamjena za detaljne upute koje se nalaze u ovom manualu\&. Neke manje korištene opcije čak se ni ne nalaze u pregledu opcija\&. +.PP +.if n \{\ +.RS 4 +.\} +.nf +Upotreba: nmap [Tip(ovi) skeniranja] [Opcije] {ciljano računalo} +CILJANO RAČUNALO: + Možete upisati hostname (naziv računala), IP adrese, mreže (subnete) isl\&. + Primjer: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\&.0\-255\&.1\-254 + \-iL <naziv datoteke>: Naziv datoteke u kojoj se nalazi popis hostova/mreža + \-iR <broj hostova>: Odaberi nasumične hostove + \-\-exclude <host1[,host2][,host3],\&.\&.\&.>: Ne skeniraj navedene hostove/mreže + \-\-excludefile <datoteka>: Ne skeniraj navedene hostove/mreže koji se nalaze u navedenoj datoteci +OTKRIVANJE HOSTOVA: + \-sL: List Scan \- samo navedi mete koje skeniraš + \-sP: Ping Scan \- samo ustanovi da li je host online i ne radi ništa više + \-P0: Smatraj sve hostove online \-\- ne pokušavaj ustanoviti da li postoje\&. + \-PS/PA/PU [lista_portova]: koristi TCP SYN/ACK ili UDP za otkrivanje hostova + \-PE/PP/PM: ICMP echo, timestamp i netmask pokušaji skeniranja + \-n/\-R: Ne pokušavaj raditi DNS rezoluciju/uvijek koristi DNS rezoluciju [default: ponekad] +TEHNIKE SKENIRANJA: + \-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon skenovi + \-sN/sF/sX: TCP Null, FIN, and Xmas skenovi + \-\-scanflags <flagovi>: Navedi TCP flagove pomoću kojih želiš skenirati + \-sI <zombie host[:probeport]>: Idlescan + \-sO: IP protocol scan + \-b <ftp relay host>: FTP bounce scan +SPECIFIKACIJA PORTOVA I REDOSLJED SKENIRANJA: + \-p <port ranges>: Skeniraj samo navedene portove + Primjer: \-p22; \-p1\-65535; \-p U:53,111,137,T:21\-25,80,139,8080 + \-F: Brzo \- Skeniraj samo portove navedene u nmap\-services fileu + \-r: Skeniraj portove po redu \- ne randomiziraj +OTKRIVANJE SERVISA/VERZIJA: + \-sV: Pokušaj na osnovu otvorenih portova saznati informacije o servisu/verziji + \-\-version\-light: Koristi najvjerovatnije skenove zbog ubrzane detekcije verzije + \-\-version\-all: Isprobaj sve vrste skenova za saznavanje verzije + \-\-version\-trace: Pokaži detaljnu aktivnost skeniranja verzije (za debugging) +DETEKCIJA OS\-a: + \-O: Uključi OS detekciju + \-\-osscan\-limit: Ograniči OS detekciju samo na one ciljeve koji obećavaju + \-\-osscan\-guess: Pogađaj OS malo agresivnije +TIMING I PERFORMANSE: + \-T[0\-6]: Podesi predložak za timing (veći broj je brže) + \-\-min\-hostgroup/max\-hostgroup <numhosts>: Paralelno skeniraj hostove / veličina sken grupe + \-\-min\-parallelism/max\-parallelism <numprobes>: Paraleliziraj sonde + \-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msec>: Navedi vrijeme potrebno za povratak (engl\&. round trip time) sonde\&. + \-\-host\-timeout <msec>: Odustani od skeniranja ciljanog računala nakon navedenog vremena u milisekundama + \-\-scan\-delay/\-\-max\-scan\-delay <msec>: Podesi pauzu između slanja upita +OBILAŽENJE FIREWALL\-a/IDS\-a I SPOOFING: + \-f; \-\-mtu <vrijednost>: fragmentiraj pakete (opcionalno sa zadanim MTU\-om) + \-D <mamac1,mamac2[,ME],\&.\&.\&.>: Sakrij skan korištenjem mamaca + \-S <IP_Address>: Spoofaj ishodišnu (source) adresu + \-e <iface>: Koristi navedeni interface (mrežni adapter) + \-g/\-\-source\-port <broj_porta>: Koristi navedeni broj ishodišnog (source) porta + \-\-data\-length <broj>: Dodaj random podatke u poslane pakete + \-\-ttl <vrijednost>: Podesi IP time\-to\-live polje + \-\-spoof\-mac <mac adresa/prefiks/naziv proizvođača>: Spoofaj svoju MAC adresu +ISPIS: + \-oN/\-oX/\-oS/\-oG <file>: Ispiši scan normalno, kao XML, s|<rIpt kIddi3, + i Grep format u navedeni file + \-oA <osnovni_naziv>: Ispis u tri glavna formata istovremeno + \-v: Povećaj verbose nivo (ako želite postići veći efekt, stavite opciju \-vv) + \-d[nivo]: Podesi ili povećaj debuging nivo (Ima smisla do brojke 9, više od toga ne) + \-\-packet\-trace: Pokaži sve poslane i primljene pakete + \-\-iflist: Ispiši host interface i rute (za debuging) + \-\-append\-output: Dodaj ispis u postojeće datoteke \- nemoj ih prepisati + \-\-resume <naziv_datoteke>: Nastavi prekinuti scan + \-\-stylesheet <putanja/URL>: XSL stylesheet za transformiranje XML generiranog dokumenta u HTML + \-\-no\-stylesheet: Spriječi povezivanje XSL stylesheet\-a s XML ispisom +RAZNO: + \-6: Omogući skeniranje IPv6 protokola + \-A: Omogući prepoznavanje OS\-a i verzije OS\-a + \-\-datadir <naziv_direktorija>: Navedi customizirani Nmap data file + \-\-send\-eth/\-\-send\-ip: šalji sirove (RAW) ethernet frame\-ove ili IP pakete + \-\-privileged: Pretpostavka da je korisnik koji je pokrenuo Nmap u potpunosti privilegiran (ima admin ovlasti) + \-V: Ispiši verziju Nmap\-a + \-h: Ispiši ovaj help ekran +PRIMJERI: + nmap \-v \-A scanme\&.nmap\&.org + nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8 + nmap \-v \-iR 10000 \-P0 \-p 80 +.fi +.if n \{\ +.RE +.\} +.sp +.SH "ODABIR CILJANOG RAČUNALA" +.PP +Sve što unesete u komandnu liniju Nmap\-a, a nije opcija ili argument opcije (dakle nije parametar samog programa), tretira se kao ciljano računalo\&. Najjednostavniji slučaj je da unesete IP adrese ili naziv ciljanog hosta\&. +.PP +Ponekad želite skenirati čitavu mrežu hostova\&. Za tu namjenu Nmap podržava CIDR adresiranje\&. Dakle, nakon IP adrese ili naziva računala, možete dodati /\fInumbits (broj bitova)\fR +koji se koriste kao mrežni ID\&. Npr\&. 192\&.168\&.10\&.0/24 će skenirati 256 hostova između 192\&.168\&.10\&.0 (binarno: +11000000 10101000 00001010 00000000) i 192\&.168\&.10\&.255 (binarno: +11000000 10101000 00001010 11111111) uključujući i 192\&.168\&.10\&.0 i 192\&.168\&.10\&.255\&. 192\&.168\&.10\&.40/24 će učiniti istu stvar\&. Ako smo pak odabrali scanme\&.nmap\&.org, a recimo da je IP adresa tog hosta 205\&.217\&.153\&.62, scanme\&.nmap\&.org/16 bi skeniralo 65,536 IP adresa između 205\&.217\&.0\&.0 i 205\&.217\&.255\&.255\&. Najmanja dozvoljena vrijednost je 1 (što bi skeniralo gotovo cijeli internet), dok je najveća dozvoljena vrijednost 32, što skenira samo jednog hosta\&. +.PP +CIDR notacija je kratka, ali nije uvijek dovoljno fleksibilna\&. Npr\&. želite skenirati 192\&.168\&.0\&.0/16, ali želite izbjeći sve IP adrese koje završavaju s \&.0 ili \&.255, jer su to mrežni ID i broadcast IP adresa u klasful adresiranju\&. Nmap za tu situaciju podržava adresiranje na nivou okteta\&. Umjesto da navedete normalnu IP adresu, možete navesti listu brojeva odvojenih zarezom (1,2,3) ili područja za svaki oktet (1\-254)\&. Npr\&. 192\&.168\&.0\-255\&.1\-254 će preskočiti sve adrese u navedenom području koje završavaju na \&.0 i \&.255, tj\&. skenirat će sve IP adrese od 192\&.168\&.0\&.1 do 192\&.168\&.255\&.254, preskačući one IP adrese koje u zadnjem oktetu imaju 0 ili 255\&. Područja nisu limitirana na zadnji oktet, recimo, 0\-255\&.0\-255\&.13\&.37 će skenirati SVE IP adrese koje završavaju na 13\&.37\&. Ovaj način skeniranja može biti koristan za razna istraživanja i ispitivanja\&. +.PP +IPv6 adrese mogu biti specificirane isključivo u potpunosti definirane (fully qualified) kao IP adrese ili naziv hosta\&. CIDR i oktet područja nisu podržani za IPv6 jer se rijetko koriste\&. +.PP +Nmap prihvaća navođenje više hostova u komandnoj liniji, a hostovi ne moraju biti istog tipa\&. Naredba +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.0\-255\fR +će učiniti upravo ono što očekujete od nje\&. +.PP +Ciljevi skeniranja su obično navedeni u samoj komandnoj liniji, ali podržane su i sljedeće opcije: +.PP +\fB\-iL <naziv ulazne datoteke>\fR (Iščitaj parametre iz liste) +.RS 4 +Iščita informacije o ciljanom hostu iz +\fIulazne datoteke\fR\&. Proslijediti Nmapu veliku količinu hostova iz komandne linije izgleda nepregledno, ali to je ono što u većini slučajeva i želimo\&. Npr\&. iz DHCP servera ste izvukli popis 10 000 trenutno iznajmljenih IP adresa i želite ih skenirati ili možda želite skenirate sve ip adrese +\fIosim\fR +tih kako bi pronašli hostove koji imaju neautoriziranu statičku IP adresu\&. Da bi to postigli, generirajte popis hostova koje želite skenirati u neku datoteku i proslijedite tu datoteku Nmap\-u kao argument opciji +\fB\-iL\fR\&. U datoteci mogu biti unosi u bilo kojem formatu koji Nmap podržava u samoj komandnoj liniji (IP adresa, naziv hosta, CIDR, IPv6, ili oktet nekog područja)\&. Svaki unos mora biti odvojen s jednim ili s više razmaka, tabom ili novim redom\&. Isto tako možete staviti minus (\-), ukoliko želite da Nmap iščita hostove iz standardnog unosa umjesto iz navedene datoteke\&. +.RE +.PP +\fB\-iR <broj hostova>\fR (Nasumično odaberi ciljano računalo) +.RS 4 +Za istraživače interneta i ostale koji žele odabrati ciljano računalo nasumično\&. Argument +\fIbroj hostova\fR +kaže Nmap\-u koliko IP adresa da generira\&. Neželjene IP adrese, poput privatnih, multicast ili nedodjeljenih IP adresnih područja su automatski izbačene\&. Argument +0 +može biti naveden za skeniranje koje nikad neće završiti\&. Imajte na umu da neki mrežni administratori ne vole neautorizirano skeniranje i mogli bi se žaliti vašem ISP\-u, što bi pak moglo rezultirati zabranom pristupa internetu za vas\&. Koristitte ovu opciju na vlastitu odgovornost\&. Ukoliko se pak, jednog kišnog popodneva, nađete u situaciji da ne znate što bi sa sobom, iskušajte naredbu +\fBnmap \-sS \-PS80 \-iR 0 \-p80\fR +kako bi nasumično pronašli web servere za browsanje\&. +.RE +.PP +\fB\-\-exclude <host1[,host2][,host3],\&.\&.\&.>\fR (isključi iz skeniranja hostove/mreže) +.RS 4 +Navedite zarezom odvojenu listu hostova koje želite isključiti iz skena iako se nalaze u mrežnom području koje ste specificirali\&. Popis koji proslijedite na ovaj način koristi normalnu Nmap sintaksu, pa možete upisati naziv hosta, CIDR mrežne blokove, oktete rangeva isl\&. To može biti korisno u slučaju kad mreža koju želite skenirati ima nedodirljive i kritične servere, sisteme za koje se zna da će odmah reagirati na port sken, ili postoje podmreže koje administriraju drugi administratori i ne želite skenirati njihov dio mreže\&. +.RE +.PP +\fB\-\-excludefile <naziv_datoteke>\fR (Isključi iz skeniranja koristeći ulazni file) +.RS 4 +Ova opcija nudi istu funkcionalnost kao i prije opisana opcija +\fB\-\-exclude\fR, s tim da hostove koje ne želite skenirati ne navodite u komandnoj liniji, već unutar datoteke\&. Hostovi mogu biti navedeni u datoteci (\fInaziv_datoteke\fR) koji kao delimiter koristi novi red, razmak ili tab\&. +.RE +.SH "POSTUPAK PRONALAŽENJA HOSTOVA" +.PP +Jedan od prvih koraka kad je u pitanju sakupljanje informacija o mreži je smanjivanje (ponekad velike) količine IP adresnih područja u popis aktivnih i zanimljivih hostova\&. Skeniranje svih portova za svaku adresu je sporo i najčešće nepotrebno\&. Naravno, ono što nekog hosta čini zanimljivim uvelike ovisi o razlogu samog skena\&. Mrežni administratori će možda biti zainteresirani samo za hostove koji imaju pokrenut određeni servis, dok će sigurnosni auditori biti zainteresirani za svaki uređaj s IP adresom\&. Administratoru će možda biti dovoljno korištenje ICMP pinga kako bi pronašao hostove na mreži, dok će vanjski penetration tester koristiti široki spektar alata i nebrojene sonde u pokušaju da obiđe zabrane postavljene na vatrozidu\&. +.PP +Budući da su potrebe korisnika kod pronalaženja hostova tako različite, Nmap nudi široki spektar opcija za prilagođavanje korištenim tehnikama\&. Pronalaženje hostova (engl host discovery) se ponekad naziva Ping scan, ali ide daleko dalje od običnog ICMP echo paketa povezanog sa sveprisutnim +ping +alatom\&. Korisnici mogu preskočiti dio pinganja s list skenom (\fB\-sL\fR) ili isključivanjem pinganja (\fB\-P0\fR) ili da pristupe mreži s kombinacijama multi port TCP SYN/ACK, UDP i ICMP sondi\&. Namjena tih sondi je iznuđivanje odgovora koji dokazuje da je IP adresa u stvari aktivna (korištena je od strane hosta ili mrežnog uređaja)\&. Na većini mreža je samo jedan mali postotak IP adresa aktivan\&. To je pogotovo točno za mreže blagoslovljene RFC1918 dokumentom (privatni adresni prostor poput 10\&.0\&.0\&.0/8)\&. Navedena mreža ima 16 miliona IP adresa, ali imao sam prilike vidjeti da je koriste firme s manje od tisuću mašina\&. Postupak pronalaženja hostova može pronaći koja su to računala u tom moru neaktivnih IP adresa\&. +.PP +Ukoliko ne navedete nikakvu opciju Postupku pronalaženja hostova, Nmap šalje TCP ACK paket namjenjen portu 80 i ICMP echo zahtijev na ciljano računalo\&. Izuzetak od ovog pravila je taj da je ARP sken korišten za ciljana računala na lokalnoj ethernet mreži\&. Za neprivilegirane UNIX shell korisnike, Nmap šalje SYN paket umjesto ACK\-a korištenjem +\fBconnect()\fR +sistemskog poziva\&. To je jednako opcijama +\fB\-PA \-PE\fR\&. Takav način pronalaženja hostova je obično dostatan kad su u pitanju lokalne mreže, ali preporučen je malo potpuniji set sondi za istraživanje kod sigurnosnog auditinga\&. +.PP +Opcija +\fB\-P*\fR +(koja odabire ping tipove) može biti kombinirana\&. Možete povećati šanse provaljivanja vatrozida slanjem mnogo sondi koje koriste različite TCP portove/zastavice (engl\&. flags) i ICMP kodove\&. Također imajte na umu da se po defaultu na lokalnoj mreži za otkrivanje hostova koristi ARP discovery (\fB\-PR\fR) čak i kad navedete druge +\fB\-P*\fR +opcije zbog toga jer je gotovo uvijek brži i efikasniji\&. +.PP +Sljedeće opcije upravljaju postupkom otkrivanja hostova\&. +.PP +\fB\-sL\fR (List Sken) +.RS 4 +List sken nije skeniranje hosta, već saznavanje nekih javno dostupnih informacija o njemu bez slanja ijednog paketa prema tom hostu\&. List scan jednostavno ispiše svakog hosta kojeg smo specificirali i napravi reverse DNS rezoluciju da bi saznao njegovo ime\&. Iznenađujuće je koliko korisnih informacija možete dobiti ovim načinom "skeniranja"\&. Npr\&. +fw\&.chi\&.playboy\&.com +je vatrozid Čikaškog (Chichago) ureda firme Playboy Enterprises\&. Nmap na kraju navede i ukupan broj IP adresa koje pripadaju tom hostu\&. List Sken je koristan u situacijama kada se želite uvjeriti da imate ispravne IP adrese koje želite skenirati\&. Ukoliko List sken izbaci nazive domena koje ne poznajete bilo bi dobro provjeriti prije nego pokrenete skeniranje, jer ne bi bilo dobro da počnete skenirati krive hostove ;\-)\&. +.sp +Kako je ideja samo ispisati popis ciljanih hostova, ne možete kombinirati opcije za funkcionalnosti višeg nivoa, poput skeniranja portova, detekcije OS\-a, ping skeniranja isl\&. Ukoliko želite isključiti ping skeniranje, a ipak koristiti funkcionalnosti višeg nivoa, pročitajte opis +\fB\-P0\fR +opcije\&. +.RE +.PP +\fB\-sP\fR (Ping Sken) +.RS 4 +Ova opcija kaže Nmap\-u da napravi +\fIsamo\fR +ping sken (otkrivanje hostova) i da ispiše hostove koji su odgovorili na skeniranje\&. Ne radi se nikakvo dodatno testiranje (poput port skeniranja ili detekcije OS\-a)\&. To je način skeniranja koji je stupanj intruzivniji od list skena ali se može koristiti u istu svrhu\&. Dozvoljava lagano "pretraživanje neprijateljskog teritorija" (engl\&. reconnaissance), bez pretjeranog privlačenja pažnje, jer znati koliko hostova je stvarno "živo" na mreži je važnija informacija za napadača ili sigurnosnog auditora, nego lista koju je izbacio list scans popisom svih IP adresa i hostova koji postoje\&. +.sp +Sistemski administratori također nalaze ovu opciju poprilično korisnom\&. Može se koristiti za pronalaženje dostupnih računala na mreži ili koristiti kao alat za nadgledanje dostupnosti servera\&. Taj način primjene se naziva ping sweep i mnogo je pouzdaniji od pinganja broadcast adrese zato jer mnogi hostovi ne odgovaraju na broadcast upite\&. (Konkretno windows mašine ne odgovaraju na broadcast ping, ali odgovaraju na druge tipove broadcast paketa)\&. +.sp +Po defaultu +\fB\-sP\fR +opcija šalje ICMP echo i TCP paket na port 80\&. Kad je pokrenuta od strane neprivilegiranog korisnika (korisnika koji nije lokalni administrator), poslan je SYN paket na port 80 (korištenjem API poziva +\fBconnect()\fR +)\&. Kad privilegirani korisnik pokušava skenirati hostve na lokalnoj mreži, koriste se ARP zahtjevi (\fB\-PR\fR) osim ako nije specificirana opcija +\fB\-\-send\-ip\fR\&. Opciju +\fB\-sP\fR +možete kombinirati s bilo kojim tipom otkrivajućih (discovery) tipova skeniranja (sve +\fB\-P*\fR +opcije osim +\fB\-P0\fR +opcije) kako bi postigli veću fleksibilnost\&. Ukoliko se koristi bilo koji od tih tipova skeniranja i port broj, automatski su defaultne postavke skeniranja premošćene (ACK i echo zahtjevi)\&. Ukoliko su između hosta na kojem je pokrenut Nmap i ciljanog hosta nalaze vatrozidi, preporuka je koristiti upravo te tehnike kako vatrozid ne bi filtrirao upite ili odgovore na njih\&. +.RE +.PP +\fB\-P0\fR (Bez pinganja) +.RS 4 +Ova opcija preskače fazu otkrivanja hostova\&. Ukliko ne koristite ovu opciju, Nmap pokušava ping skeniranjem saznati koja računala su dostupna kako bi SAMO njih i skenirao\&. Ukoliko koristite ovu opciju Nmap će skenirati svakog navedenog hosta bez obzira da li je dostupan ili ne, jer neće raditi provjeru\&. Ukoliko odaberete kompletnu klasu B (/16 po CIDR notaciji) Nmap će skenirati svih 65536 hostova, bez obzira da li su "živi" ili ne\&. Napomena: drugi karakter u ovoj opciji je NULA, a ne veliko slovo O\&. Ukoliko je na hostu zatvoren ICMP protokol (što je slučaj kod 90% računala na internetu), a niste stavili +\fB\-P0\fR +opciju, Nmap neće skenirati ta računala, dakle, ukoliko želite skenirati računala koja ne odgovaraju na ICMP echo upit, a znate da postoje i da su "živi" stavite ovu opciju\&. +.RE +.PP +\fB\-PS [lista_portova]\fR (TCP SYN Ping) +.RS 4 +Ova opcija šalje prazan TCP paket s upaljenim SYN flagom\&. Defaultni odredišni port je 80 (možete se konfigurirati kod kompajliranja programa na način da promijenite DEFAULT_TCP_PROBE_PORT u +nmap\&.h +biblioteci), no, možete navesti i neki drugi port kao parametar\&. Isto tako je moguće poslati zarezom odvojenu listu portova kao parametar ovoj opciji (npr\&. +\fB\-PS22, 23,25,80,113,1050,35000\fR)\&. U tom će slučaju nmap poslati paket na svaki od navedenih portova paralelno\&. +.sp +SYN flag u paketu kaže ciljanom hostu da se želite spojiti na navedeni port/portove\&. Ukoliko je port zatvoren, odgovor koji će Nmap dobiti od ciljanog hosta je RST (reset)\&. Ukoliko je port otvoren, ciljano računalo će poslati SYN/ACK paket, što je drugi korak u trostrukom rukovanju TCP protokola\&. Računalo na kojem je pokrenut Nmap u tom trenutku prekida konekciju na način da pošalje RST paket (umjesto ACK paketa koji bi završio trostruko rukovanje i uspostavio konekciju sa ciljanim hostom)\&. RST paket je poslao kernel računala na kojem je pokrenut Nmap, jer je dobio SYN/ACK paket koji nije očekivao\&. +.sp +Nmap ne zanima da li je port otvoren ili zatvoren, RST ili SYN/ACK odgovor koji je dobio dovoljan su odgovor da je računalo "živo"\&. Bez obzira na to RST odgovor znači da je računalo tu i da je "živo", dok SYN/ACK odgovor uz to znači i da računalo "sluša" na navedenom portu\&. +.sp +Na UNIX mašinama samo privilegirani korisnik +root +može slati i primati sirove (RAW) TCP pakete\&. Za neprivilegirane korisnike napravljen je obilazni put u kojem Nmap automatski poziva connect() API na svaki navedeni port\&. To je postiglo efekt slanja SYN paketa na coljani host i iniciran je poušaj ostvarivanja konekcije\&. Ukoliko connect() API vrati brzi odgovor uspješnog spajanja ili ECONNREFUSED grešku, TCP stack na OS\-u je dobio SYN/ACK ili RST od ciljanog hosta i host je označen kao dostupan\&. Ukoliko konekcija "visi" dok ne istekne timeout, ciljani host je označen kao nedostupan (ugašen)\&. Navedeni obilazni put se koristi i kod IPv6 konekcija, je Nmap još nema implementiranu izradu sirovih (RAW) paketa za IPv6 protokol\&. +.RE +.PP +\fB\-PA [lista_portova]\fR (TCP ACK Ping) +.RS 4 +TCP ACK ping je sličan SYN pingu\&. Razlika je, što je lako zaključiti iz samog naziva, u tome što se umjsto SYN flaga upali ACK flag\&. Takav paket podrazumijeva da je konekcija već uspostavljena iako nije, samim tim bi ciljani hostovi uvijek trebali odgovoriti s RST paketom, te na taj način potvrditi svoje postojanje\&. +.sp +\fB\-PA\fR +opcija koristi isti defaultni port kao i SYN scan (port 80) i isto kao i SYN scan može primiti listu portova u istom formatu\&. Ukoliko neprivilegirani korisnik pokuša pokrenuti Nmap s ovom opcijom ili je u pitanju IPv6 TCP konekcija, koristi se obilazni put opisan u TCP SYN pingu\&. Ova opcija nije savršena, jer connect() u stvari šalje SYN pakete umjesto ACK paketa +.sp +Razlog zašto koristiti i SYN i ACK sonde je radi povećavanja šansi za obilaženje vatrozida\&. Mnogi administratori konfiguriraju rutere i ostale jednostavne vatrozide na način da zaustavljaju dolazeće SYN pakete osim ako nisu namijenjeni nekim javnim servisima, poput weba ili mail servera\&. Takav način podešavanja uređaja sprječava nedozovljene konekcije prema računalima tvrtke, ali omogućava neograničen izlazni promet prema internetu\&. Ovakav pristup konekcija bez stanja (engl\&. stateless) oduzima malo resursa na vatrozidima/ruterima i podržan je na gotovo svim hardverskim i softverskim filterima\&. Netfilter/ iptables, poznati vatrozid na Linux operativnom sustavu nudi opciju +\fB\-\-syn\fR +kako bi mogli implementirati ovakav pristup konekcija bez stanja (engl\&. stateless)\&. Kod tako konfiguriranih vatrozida, sonde SYN ping (\fB\-PS\fR) će najvjerovatnije biti blokirane kad ih pošaljete na zatvorene portove\&. No međutim, ACK sonde će bez problema prolaziti kroz njih\&. +.sp +Drugi tip vatrozida podržava konekcije sa stanjem (engl\&. stateful) koji odbacuju sve neočekivane pakete\&. Ova opcija se u početku koristila samo kod naprednijih vatrozid rješenja, ali je vremenom postala rasprostranjenija\&. Linux vatrozid Netfilter/iptables podržava ovu opciju korištenjem opcije +\fB\-\-state\fR, koja kategorizira pakete vezano uz stanje konekcije\&. Skeniranjem takvih sustava veća je vjerovatnost da ćemo od SYN sonde dobiti nekakvu informaciju, nego od ACK, jer se ACK sonde koje nemaju uspostavljenu konekciju tretiraju kao lažne i odbačeni su bez ikakvog odgovora\&. U slučaju dvojbe, najbolje je poslati i SYN i ACK sonde naviođenjem opcija +\fB\-PS\fR +i +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU [lista_portova]\fR (UDP Ping) +.RS 4 +Još jedna metoda detekcije hostova je i UDP ping\&. UDP ping šalje prazne UDP pakete (osim ako nije definirana opcija +\fB\-\-data\-length\fR) na navedene portove\&. Portlist opcija ima isti format kao i prije obrađene opcije +\fB\-PS\fR +i +\fB\-PA\fR\&. Ukoliko nije naveden niti jedan port, defaultni je 31338\&. To se može promijeniti kod kompajliranja promjenom DEFAULT_UDP_PROBE_PORT u +nmap\&.h +biblioteci\&. Namjerno je odabran visoki nestandardni port, jer bi slanje paketa na otvorene UDP portove dalo neželjene rezultate za ovu vrstu skena\&. +.sp +Nakon što je ciljano računalo dobilo paket na zatvoreni port, trebalo bi odgovoriti ICMP paketom " nedostupan port" (engl\&. port unreachable)\&. Na osnovu toga Nmap može zaključiti da je ciljani host "živ"\&. Drugi tipovi ICMP grešaka, poput nedostupan host/mreža ili premašen TTL (engl\&. TTL exceeded) nagovještavaju da je host ugašen ili nedostupan\&. Ukoliko nema nikakvog odgovora, Nmap također zaključi da je host ugašen/ nedostupan\&. Ukoliko je paket stigao na otvoreni UDP port, većina servisa će jednostavno ignorirati prazan UDP paket i Nmap neće dobiti nikakav odgovor\&. Zbog toga je defaultni port 32338, jer je mala mogućnost da će neki servis koristiti taj port\&. Postoje i neki servisi, poput chargen\-a, koji će odgovoriti na prazan UDP paket i na taj način otkriti Nmapu da je host "živ"\&. +.sp +Glavna prednost ovog tipa skeniranja je da obilazi vatrozide i paket filtere koji skeniraju samo TCP promet\&. Npr\&. Linksys BEFW11S4 bežični (wireless) ruter na vanjskom mrežnom adapteru filtrira samo TCP portove, a na UDP skenove odgovara s ICMP port nedostupan\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (ICMP tipovi pinganja) +.RS 4 +Uz do sad navedene tipove skeniranja i otkrivanja hostova, Nmap može slati i standardne ICMP pakete korištenjem klasičnog +ping +programa\&. Nmap šalje ICMP paket tipa 8 (echo request) na ciljanu IP adresu očekujući odgovor tipa 0 (echo reply), ukoliko je host "živ"\&. Na štetu mrežnih istraživača, većina hostova i vatrozida na internetu blokira te pakete umjesto da na njih odgovara kako je opisano u +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[4]\d\s+2 +dokumentu\&. Zbog toga su ICMP skenovi rijetko ili gotovo nikad pouzdani kad se ciljani host nalazi na internetu, ali za sistem administratore koji nadgledaju unutrašnje mreže, ovo je praktičan i najjednostavniji pristup za skeniranje hostova\&. Opisani način skeniranja možete upaliti korištenjem +\fB\-PE\fR +opcije\&. +.sp +Bez obzira na to što je echo zahtijev standardni ICMP ping upit, Nmap se nije zaustavio na tome\&. Ako pogledate ICMP standard (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[5]\d\s+2) vidjet ćete da je u njemu naveden i timestamp zahtijev, information zahtijev i zahtijev za adresnom maskom i to pod kodovima 13,15 i 17\&. Iako je namjena tih upita saznati informacije poput adresne maske i trenutnog vremena, vrlo ih je lako iskoristiti za otkrivanje hostova\&. Host koji odgovori je "živ"\&. Nmap u trenutnoj verziji ne podržava information zahtijev, jer se ne koristi često\&. RFC 1122 inzistira na tome da +\(lqhost NE BI TREBAO implementirati taj ICMP tip poruka\(rq\&. Upite za timestamp i adresnu masku možete poslati s +\fB\-PP\fR +i +\fB\-PM\fR +opcijama\&. Timestamp odgovor (ICMP kod 14) ili odgovor adresne maske (kod 18) otkrivaju da je ciljani host "živ"\&. Ta dva upita su korisni u slučajevima kad administratori blokiraju echo zahtijev pakete, ali zaborave blokirati ostale ICMP pakete\&. +.RE +.PP +\fB\-PR\fR (ARP Ping) +.RS 4 +Jedan od najčešćih scenarija korištenja Nmap\-a je skeniranje ethernet LAN\-a\&. Na većini LAN\-ova, posebno na onima koji koriste privatne ip adrese definirane u RFC 1918 dokumentu je većina IP adresa u stvari neiskorištena\&. Kad Nmap pokuša poslati sirovi IP paket poput ICMP echo zahtjeva, operativni sustav mora ustanoviti MAC adresu računala koja pripada ciljanoj IP adresi, kako bi moglo adresirati ethernet frame\&. To je obično sporo i problematično jer operativni sustavi nisu napisani s pretpostavkom da će u vrlo kratkom vremenskom periodu morati poslati milione ARP zahtjeva prema nepostojećim hostovima\&. +.sp +ARP sken zadužuje Nmap i njegove optimizirane algoritme za ARP zahtjeve i ukoliko Nmap dobije odgovor ne mora uopće pokretati IP bazirani ping, jer već zna da je računalo dostupno\&. Ovo čini ARP scan mnogo bržim i pouzdanijim od IP baziranog skena, pa se defaultno koristi kod skeniranje hostova na ethernetu za koje Nmap zaključi da su na lokalnoj mreži\&. Čak ako ste i naveli neke druge tipove pinga, (poput +\fB\-PE\fR +ili +\fB\-PS\fR), Nmap će koristiti ARP sken za sve hostove koji su na istoj mreži\&. Ukoliko ne želite koristiti ARP sken, navedite opciju +\fB\-\-send\-ip\fR\&. +.RE +.PP +\fB\-n\fR (Bez DNS rezolucije) +.RS 4 +Ova opcija kaže Nmap\-u da +\fInikad\fR +ne radi obrnutu DNS rezoluciju (engl\&. reverse DNS lookup) na aktivnim IP adresama koje pronađe\&. Kako je obrnuta DNS rezolucija često spora, ova opcija ubrzava postupak\&. +.RE +.PP +\fB\-R\fR (DNS rezolucija za sva ciljana računala) +.RS 4 +Ova opcija kaže Nmap\-u da +\fIuvijek\fR +radi obrnutu rezoluciju ciljanih IP adresa\&. U normalnim okolnostima to se radi samo kad je potvrđeno da računalo postoji\&. +.RE +.PP +\fB\-\-system\-dns\fR (Koristi sistemski DNS rezolver) +.RS 4 +Defaultno Nmap radi rezolving adresa slanjem upita direktno imenskim serverima (engl\&. name servers) koji su podešeni na vašem računalu i čeka odgovore\&. Mnogo zahtjeva je poslano istovremeno (10 i više) kako bi brže radilo\&. Ovu opciju navedite ukoliko želite koristiti sistemski rezolver (jedna po jedna IP adresa pozivom sistemskog API poziva getnameinfo())\&. Ovo je sporije i rijetko je korisno osim ako u Nmap DNS kodu postoji greška \-\- molim kontaktirajte nas u tom slučaju\&. Sistemski rezolver se uvijek koristi za IPv6 skenove\&. +.RE +.PP +\fB\-\-dns\-servers <server1[,server2],\&.\&.\&.> \fR (Serveri koji će se koristiti za obrnute DNS upite) +.RS 4 +U normalnim okolnostima, Nmap će pokušati pronaći vaše DNS servere iz resolv\&.conf datoteke (na UNIX\-u) ili iz registry baze podataka (na Win32)\&. Naravno, postoji mogućnost da navedete servere po želji korištenjem ove opcije\&. Ova opcija se ne koristi ako koristitite opciju +\fB\-\-system\-dns\fR +ili IPv6 sken\&. Korištenje više DNS servera je obično brže nego samo jednog\&. +.RE +.SH "OSNOVE SKENIRANJA PORTOVA" +.PP +Bez obzira na to što je vremenom Nmap porastao gledano s funkcionalne strane, počeo je kao efikasan port skener, te mu to i dalje ostaje osnovna namjena\&. Jednostavna naredba +\fBnmap \fR\fB\fIciljani host\fR\fR +skenira više od 1660 TCP portova na navedenom računalu\&. Iako je većina port skenera grupirala portove u otvorene ili zatvorene, Nmap ima granularniji pristup, te dijeli portove na: +otvorene, +zatvorene, +filtrirane, +nefiltriran, +otvorene|filtrirane +i +zatvorene|filtrirane\&. +.PP +Gore navedena stanja ne potiču od stvarnih stanja portova, već su opis onoga što Nmap u stvari vidi\&. Npr\&., ukoliko Nmap\-om skenirate neku mrežu, dok ste fizički spojeni na nju, Nmap bi mogao reći da je port 135 otvoren, dok bi isti taj sken u slučaju da tu istu mrežu skenirate s interneta, najvjerovatnije rekao da je port +filtriran +(nalazi se iza vatrozida ili paket filtera)\&. +.PP +\fBŠest stanja portova kako ih Nmap prepoznaje\fR +.PP +otvoren +.RS 4 +Aplikacija aktivno prihvaća TCP konekcije ili UDP pakete na navedenom portu\&. To je ujedno i cilj skoro svakog skeniranja\&. Osobe koje se bave sigurnošću znaju da je svaki otvoreni port, potencijalno mjesto napada\&. Napadači i penetration testeri žele iskoristiti otvorene portove, dok ih administratori pokušavaju zatvoriti ili zaštititi vatrozidima, bez da zabrane pristup legitimnim korisnicima\&. Skeniranje otvorenih portova je zanimljivo ne samo za sigurnosne skenove, već i u slučaju kad želite saznati koji servisi i aplikacije su dostupni na mreži\&. +.RE +.PP +zatvoren +.RS 4 +Zatvoreni port je dostupan (odgovorio je na Nmap\-ov upit), ali na njemu ne sluša niti jedna aplikacija\&. Zatvoreni port nam govori da se na toj IP adresi nalazi host koji je upaljen, koji najvjerovatnije nije iza vatrozida ili paket filtera, a to nam može pomoći i i otkrivanju verzije OS\-a\&. Kako su zatvoreni portovi dostupni (nitko nam nije zabranio pristup do njih), isplati se kasnije ponoviti sken, jer možda će kasnije biti otvoreni\&. Administratori se trude zabraniti pristup takvim portovima korištenjem vatrozida i paket filtera, u tom bi slučaju port bio filtriran, a ne zatvoren (što je objašnjeno u nastavku)\&. +.RE +.PP +filtriran +.RS 4 +Nmap ne može ustanoviti da li je port otvoren ili ne, jer neki uređaj (vatrozid, pravila na ruteru, paket filter) blokira upite prema tom portu\&. Ti su portovi frustrirajući za hakere, jer ne daju gotovo nikakve informacije\&. Ponekad odgovaraju s ICMP porukom o grešci poput tip 3 kod 13 (odredište je nedostupno \- komunikacija administrativno zabranjena), ali filteri koji samo odbace paket i ne daju nikakav odgovor na njegu su najčešći\&. Zbog toga Nmap mora poslati upit više puta kako bi bio siguran da je paket odbačen zbog filtriranja, a ne zbog mrežnog zagušenja te samim tim usporava skeniranje\&. +.RE +.PP +nefiltriran +.RS 4 +Ovo stanje znači da je port dostupan, ali Nmap ne može ustanoviti da li je otvoren ili zatvoren\&. Samo ACK sken (koji se koristi za otkrivanje pravila na vatrozidu može vratiti nefiltriran kao odgovor\&. Skeniranje nefiltriranih portova nekom drugom metodom (poput Windows skena, SYN skena ili FIN skena može dati odgovor na pitanje da li je port otvoren ili zatvoren\&. +.RE +.PP +otvoren|filtriran +.RS 4 +Nmap okarakterizira port ovim stanjem kada nije u mogućnosti ustanoviti da li je port otvoren ili filtriran\&. To se dogodi u situacijama kada na upit ne dobije nikakav odgovor\&. Nedostatak odgovora može značiti da je paket filter odbacio paket i/ili bilo kakav odgovor koji je taj paket inicirao\&. Samim tim Nmap nije siguran da li je port otvoren ili filtriran\&. UDP, IP protokol, FIN Null i Xmas scan mogu klasificirati port ovim stanjem\&. +.RE +.PP +zatvoren|filtriran +.RS 4 +U slučaju kad Nmap ne može ustanoviti da li je port zatvoren ili filtriran, okarakterizirat će ga ovim stanjem\&. IPID Idle Scan je jedina sken metoda koja može vratiti ovakav rezultat\&. +.RE +.SH "TEHNIKE SKENIRANJA PORTOVA" +.PP +Kako nisam previše vičan popravcima na automobilu, mogu potrošiti sate i sate samo da nađem odgovarajući alat (poput čekića, ljpljive trake, ključa isl\&.)\&. Nakon što odustanem od smješnih pokušaja da nešto popravim i odvezem auto kod stvarnog mehaničara, začuđen sam kako jednostavno i nadasve uspješno izvadi iz velike kutije s alatatom baš onaj koji je potreban za uspješan popravak\&. Umjestnost skeniranja portova je slična\&. Stručnjak razumije mnoštvo tehnika skeniranja i odabere baš onu (ili kombinaciju više tehnika) koja je odgovarajuća za određeni posao\&. Neiskusni korisnisi i script kiddies (osobe koje koriste skripte koje je napisao netko drugi ne razumijevajući što i kako te skripte rade), pokušavaju sve riješiti defaultnim SYN skanom\&. Kako je Nmap besplatan program, jedina prepreka između Vas i masteriranja port skeninga je znanje\&. To je definitivno suprotno od automehaničarskog posla, u kojem recimo mož ete znati da Vam treba zračni kompresor, ali to ne umanjuje činjenicu da ga trebate i kupiti\&. +.PP +Većina tipova skeniranja koje nmap podržava dostupni su privilegiranim korisnicima (morate biti ulogirani kao administrator)\&. To je zbog toga jer šalju sirove (RAW) pakete koji zahtjevaju root pristup u UNIX svijetu\&. Korištenje administratorskog korisničkog accounta je preporučeno na windows operativnim sustavima, mada Nmap ponekad radi i s neprivilegiranim korisnicima, ako je WinPCap prethodno instaliran na sustav i aktivan\&. Zahtjev za root privilegijama je bila ozbiljna prepreka kad je Nmap prvi put pušten u javnost 1997\&. godine, jer je većina korisnika imala pristup dijeljenim shell accountima\&. Sada je svijet drugačiji\&. Kompjutori su jeftiniji, veći broj ljudi ima stalni pristup internetu, a desktop UNIX sustavi su dominantni (uključujući linux i MAC OS X)\&. Windows verzija Nmap\-a je također dostupna, te je samim tim i Nmap dostupniji većem broju korisnika\&. Zbog svih tih razloga, sve je manja potreba korisnika da pokreću Nmap logirani sa dijeljenim shell accountima\&. To je naravno super stvarm jer je Nmap pokrenut pod accountom privilegiranog korisnika mnogo moćniji i fleksibilniji\&. +.PP +Iako Nmap pokušava reproducirati ispravan rezultat svojih skenova, imajte na umu da su sve unutrašnje komponente Nmap\-a bazirane na paketima vraćenim od ciljanih računala (ili firewall uređaja ispred njih)\&. Neki hostovi mogu biti nepouzdani i podešeni na način da vrate pakete koji će zavarati Nmap i dati krivi rezultat\&. Još češći su hostovi koji ne podržavaju RFC standard, te ne odgovaraju onako kako Nmap očekuje od njih\&. FIN, Null i Xmas skenovi su pogotovo podložni tim problemima\&. Problemi poput gore navedenih su specifični za pojedine tipove skeniranja i o tome se raspravlja u svakoj od tih tehnika skeniranja\&. +.PP +Ovo poglavlje dokumentira hrpu tehnika skeniranja portova koje podržava Nmap\&. Samo jedna od spomenutih metoda može biti korištena u jednom trenutku, osim UDP skena (\fB\-sU\fR) koji može biti kombiniran s bilo kojom od TCP sken matoda\&. Radi lakšeg pamćenja, opcije skeniranja portova su u obliku +\fB\-s\fR\fB\fIC\fR\fR, gdje je +\fIC\fR +vidljiv iz samog naziva sken tipa i obično je to prvo slovo\&. Jedini izuzetak je FTP bounce scan (\fB\-b\fR)\&. Defaultno, Nmap radi SYN scan iako će ga zamijeniti s Connect() skenom, ako korisnik nema odgovarajuće ovlasti slanja raw paketa (root pristup na UNIX sustavima) ili ako je specificirana IPv6 kao ciljana IP adresa\&. Od svih navedenih tipova skenova u ovom poglavlju, neprivilegirani korisnik može pokrenuti samo Connect() i FTP bounce scan\&. +.PP +\fB\-sS\fR (TCP SYN scan) +.RS 4 +SYN scan je defaultni i najpopularniji način skeniranja i to zbog opravdanih razloga\&. Može ga se izvesti brzo, može skenirati tisuće portova u sekundi na brzim mrežama koje nisu opterećene firewall uređajima koji utječu na kretanje paketa\&. SYN scan je relativno neagresivan i nevidljiv, jer nikad ne završi TCP konekciju (ne uspostavi trostruko rukovanje do kraja)\&. Također je jednako efikasan na svim implementacijama TCP stacka, jer ne ovisi o specifičnim platformama kao što je to slučaj kod Nmap\-ovog Fin/Null/Xmas, Maimon i Idle skena\&. Također je u mogućnosti čisto i pouzdano razlučiti između +otvorenog, +zatvorenog +i +filtriranog +stanja porta\&. +.sp +Tehnika SYN scana se najčešće naziva poluotvoreno skeniranje, jer nikad ne uspostavite potpunu TCP konekciju\&. Naime, pošaljete SYN paket, kao što bi ga poslali u slučaju da želite uspostaviti stvarnu TCP konekciju i čekate na odgovor\&. Ako kao odgovor dobijete SYN/ACK, znači da postoji aplikacija koja sluša na tom portu (port je otvoren), dok RST (reset) znači da ne postoji aplikacija koja sluša na tom portu (port je zatvoren)\&. Ukoliko i nakon nekoliko ponovnih slanja upita nema nikakvog odgovorar, port je okarakteriziran kao filtriran\&. Port je također označen kao filtriran ako kao odgovor dođe ICMP unreachable error (ICMP nedostupan \- tip 3, kodovi 1, 2, 3, 9, 10 ili 13)\&. +.RE +.PP +\fB\-sT\fR (TCP connect() scan) +.RS 4 +TCP Connect() scan je defaultni TCP tip skeniranja ukoliko je SYN scan nedostupan\&. To se događa u slučajevima kad korisnik nema privilegiju slanja raw paketa ili kad je skenirani host na IPv6 mreži\&. Umjesto da šalje raw pakete, kao što to radi većina drugih tipova skeniranja, Nmap zatraži operativni sustav da uspostavi konekciju s ciljanim računalom na poru kojiželimo skenirati, na način da pošalje +connect() +sistemski poziv\&. To je isti sistemski poziv koji koriste web preglednici, P2P klijenti i većina drugih mrežnih aplikacija kad ž ele uspostaviti konekciju\&. Dio je programskog unosa poznatog kao Berkeley Sockets API\&. Umjesto da iščitava raw pakete Nmap koristi navedeni API kako bi dobio statusne informacije svake pokušane konekcije\&. +.sp +Ukoliko je SYN scan dostupan, obično je i bolji odabir\&. Naime, Nmap ima puno manje kontrole nad +connect() +API pozivom, nego nad raw paketima, te je samim tim Nap manje efikasan\&. Sistemski poziv napravi potpunu konekciju na otvorene portove ciljanog računala umjesto da napravi reset kao što je slučaj kod SYN skena\&. Tim postupkom ne samo da gubimo više vremena kako bi saznali da li su portovi otvoreni ili ne, nego postoji i veća vjerovatnost dsa će host zapisati u log pokušaj spajanja\&. Činjenica je da će svaki IDS sustav logirati i SYN i Connect scan, ali isto tako je činjenica da većina računala nema IDS sustav\&. Većina servisa na UNIX\-oidima će dodati zapis u syslog i (ponekad) kriptičnu poruku o grešci, kad se Nmap spoji i odmah odspoji bez slanja podataka\&. Jadno napisani servisi se skrše kad se to dogodi, mada je to stvarno rijetkost\&. Administrator koji vidi hrpu pokušaja spajanja u logovima koji su svi inicirani s jednog hosta, odmah će znati da je netko skenirao portove Connect() metodom\&. +.RE +.PP +\fB\-sU\fR (UDP skenovi) +.RS 4 +Iako većina popularnih servisa na internetu korisiti TCP protokol, +\m[blue]\fBUDP\fR\m[]\&\s-2\u[6]\d\s+2 +servisi su isto tako široko zastupljeni\&. DNS, SNMP i DHCP (registrirani portovi 53, 161/162 i 67/68) su tri najpoznatija\&. Zbog toga što je UDP skeniranje mnogo sporije i teže za izvesti nego TCP, neki sigurnosni auditori, ignoriraju UDP portove\&. To je velika pogreška, jer su exploitabilni UDP servisi česta pojava i napadači ih sigurno neće ignorirati\&. Srećom, Nmap može pomoći u istraživanju UDP portova\&. +.sp +UDP scan aktivirate naredbom +\fB\-sU\fR\&. Može biti kombinirana s TCP skenom poput SYN skena (\fB \-sS\fR), kako bi oba protokola bili provjereni "jednim udarcem"\&. +.sp +UDP scan radi na način da pošalje prazan UDP header (bez podataka) na svaki ciljani port\&. Ukoliko je vraćen ICMP port unreachable (ICMP nedostupan port) i to tip 3 kod 3, onda je port +zatvoren\&. Druge ICMP greške (tip 3, kodovi 1, 2, 9, 10 ili 13) označavaju port kao +filtriran\&.Povremeno će servis odgovriti s UDP paketom, dokazujući da je port +otvoren\&. Ukoliko nakon nekoliko retransmisija nema nikakvog odgovora, port je okarakteriziran kao +otvoren|filtriran\&. To znači da bi port mogao biti otvoren ili možda paket filteri blokiraju promet prema njemu\&. Version scan (\fB\-sV\fR) može pomoći da se ustanovi koji portovi su stvarno otvoreni, a koji su filtrirani\&. +.sp +Veliki izaziv kod skeniranja UDP portova je napraviti ti brzo\&. Otvoreni i filtrirani portovi rijetko pošalju ikakav odgovor, ostavljajući Nmap da napravi time out, te nakon toga ponovno pošalje paket u slučaju da je prethodni iz bilo kojeg razloga bio izgubljen\&. Zatvoreni portovi su često još veći problem\&. Oni najčešće pošalju kao odgovor ICMP port unreacheble grešku\&. No, za razliku od RST paketa koje pošalju zatvoreni portovi na TCP protokolu kao odgovr na SYN ili Connect() scan, mnogi hostovi ograničavaju ICMP port urnreachable poruku po defaultu\&. Linnux i Solaris su jako striktni vezano za to\&. Tako npr\&. Linux 2\&.4\&.20 kernel ograničava destination unreachable poruku na jednu po sekundi (u +net/ipv4/icmp\&.c +biblioteci)\&.\&. +.sp +Nmap pokušava ustanoviti da li je to slučaj i smanjuje brzinu skeniranja veano uz to, kako bi spriječio zaguš ivanje nekorisnim paketima koje će ciljano računalo tako i tako tiho odbaciti\&. Nažalost, spomenuti limit koji je postavljen kod linuxa, znači da će skeniranje svih 65536 portova trajati više od 18 sati\&. Ideja ubrzavanja UDP skena je da se paralelno skenira više hostova, na način da se najprije skleniraju najpopularniji portovi na brz način, skenirajući iza firewall\-a i koristeći +\fB\-\-host\-timeout\fR +kako bi se izbjegli spori hostovi\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP Null, FIN i Xmas skenovi) +.RS 4 +Ova tri tipa skenova (moguće ih je postići i više korištenjem +\fB\-\-scanflags\fR +opcije opisane u sljedećoj sekciji) iskorištavaju rupu u standardu +\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[7]\d\s+2, kako bi razlučili koji port je +otvoren, a koji +zatvoren\&. Na strani 65 piše: +\(lqUkoliko je stanje odredišnog porta ZATVORENO \&.\&.\&. dolazeći segment koji ne sadrži RST prouzročuje da RST bude poslan kao odgovor\&.\(rq +Na idućoj stranici se raspravlja o paketima poslanim na otovorene portove bez upaljenih SYN, RST ili ACK bitova i kaže da: +\(lqnajvjerovatnije se nećete naći u takovoj situaciji, ali ako se nađete, jednostavno odbacite paket\&.\(rq +.sp +Kod skeniranja sistema koji su kompatibilni s tim RFC tekstom, svaki paket koji u sebi ima upaljene bitove SYN, RST ili ACK rezzultirat će vraćenim RST paketom ako je port zatvoren, a neće dati nikakav odgovor, ako je port otvoren\&. Dok god nije upaljen niti jedan od tih bitova, bilo koja kombinacija druga tri bita (FIN, PSH i URG) je u redu\&. Nmap to iskorištava s tri dolje navedena tipa skeniranja: +.PP +Null scan (\fB\-sN\fR) +.RS 4 +Ne uključuje niti jedan od bitova (TCP oznaka zaglavlja je 0) +.RE +.PP +FIN scan (\fB\-sF\fR) +.RS 4 +Uključuje samo TCP FIN bit +.RE +.PP +Xmas scan (\fB\-sX\fR) +.RS 4 +Uključuje FIN, PSH i URG flagove, "osvjetljavajući" paket kao božićno drvce\&. (op\&. prev\&. Xmas=Božić +.RE +.sp +Sva tri tipa skeniranja su potpuno ista što se ponašanja tiče, samo što su im upaljene različite TCP oznake u paketima\&. Ukoliko je kao odgovor dobiven RST paket, port se smatra +zatvorenim, dok situacija u kojoj nema odgovora, smatra da je port +otvoren|filtriran\&. Port je označen kao +filtriran, ako je odgovor na scan ICMP unreachable greška (tip 3, kodovi 1, 2, 3, 9, 10 ili 13)\&. +.sp +Glavna prednost ovih tipova skeniranja je ta da mogu "proviriti" kroz neke ne stateful firewall uređaje i paket filtering rutere\&. Druga prednost im je ta da su još više nevidljivi od SYN skena\&. No, nemojte se u to pouzdavati, jer većina modernih IDS sustava može biti konfigurirana da ih prepozna\&. Veliki nedostatak je da ne podržavaju svi sistemi RFC 793 do zadnjeg slova, pa tako većina sustava odgovara RST paketom bez obzira na to da li je port otvoren ili nije\&. Kod takvih sustava su svi portovi koje Nmap skenira okarakterizirani kao +zatvoreni\&. Većina operativnih sustava koji se tako ponašaju su Microsoft Windows, većina Cisco uređaja, BSDI i IBM OS/400\&. No, ovaj tip skeniranja radi na većini UNIX sustava\&. Dodatan nedostatak ovih tipova skenova je taj što ne mogu razlikovati +otvorene +portove od nekih +filtriranih, te kao odgovor dobijete +otvoren|filtriran, pa si vi mislite\&.\&.\&. +.RE +.PP +\fB\-sA\fR (TCP ACK scan) +.RS 4 +Ovaj tip skeniranja razlikuje se od ostalih do sad opisanih po tome što nikad ne otkrije +otvorene +ili čak +otvorene|filtrirane +portove\&. Namjena mu je mapirati pravila firewall\-a, tj\&. da zaključi da li je firewall stateful, te koji su portovi filtrirani\&. +.sp +Kad je u pitanju ACK scan, onda je upaljena samo ACK zastavica (flag) (osim ako koristite +\fB\-\-scanflags \fR)\&. Kad skenirate nefiltrirane hostove, +otvoreni +i +zatvoreni +portovi će vratiti RST paket\&. Nmap ih u tom slučaju označi kao +nefiltrirane, što znači da su dostupni ACK paketima, ali nije definirano da li su +otvoreni +ili +zatvoreni\&. Portovi koji ne odgovaraju na upite ili pošalju određene ICMP greške (tip 3, kod 1, 2, 3, 9, 10 ili 13) su označeni kao +filtrirani\&. +.RE +.PP +\fB\-sW\fR (TCP Window scan) +.RS 4 +Window scan je sličan ACK scanu, samo što exploatira implamentacijske detalje operativnih sustava kako bi razlučio otvorene portove od zatvorenih, umjesto da uvijek ispiše +nefiltriran +kad dobije RST kao odgovor\&. To radi na način da pregleda TCP Window polje RST paketa koji je dobio\&. Na nekim sustavima otovreni portovi koriste pozitivnu veličinu prozora (čak i za RST pakete), dok zatvoreni portovi imaju prozor veličine 0\&. Dakle, umjesto da uvijek označi port kao +nefiltriran +kad dobije RST kao odgovor, Window scan označi portove kao +otvorene +ili +zatvorene, ovisno o tome da li je veličina prozora pozitivna ili 0\&. +.sp +Ovaj način skeniranja se pouzdaje u implementacijske detalje nekih operativnih sustava, tako da mu ne morate uvijek vjerovati\&. Sistemi koji su "otporni" na ovaj način skeniranja obično će vratiti sve portove kao +zatvorene\&. Naravno isto tako je moguće da računal stvarno nema otovrenih portova\&. Ukoliko je većina portova +zatvorena, ali ima onih koji su označeni kao +filtrirani, (npr\&. češće korišteni portovi poput 22, 25, 53) , sustav je podložan ovom načinu skeniranja i rezultat je najvjerovatnije ispravan\&. Ukoliko pokrenete sken koji vam vrati 1000 zatvorenih portova i 3 otvorena ili filtrirana porta, najvjerovatnije su ta 3 porta uistinu i otvorena\&. +.RE +.PP +\fB\-sM\fR (TCP Maimon scan) +.RS 4 +Maimon scan je dobio naziv po osobi koja ga je otkrila \- Uriel Maimon\&. Tehniku skeniranja je opisao u časopisu Phrack broj 49 (Studeni 1996)\&. Nmap je izdan 2 godine kasnije i omogućavao je tu tehniku skeniranja\&. Tehnika je ista kao i Null, Xmas i FIN scan, osim što je paket koji se šalje FIN/ACK\&. Po RFC dokumentu 793 (TCP), treba odgovoriti RST paketom, bez obzira da li je port otvoren ili zatvoren\&. No, Uriel je primjetio da većina BSD sistema jednostavno odbaci paket ako je port otvoren\&. +.RE +.PP +\fB\-\-scanflags\fR (Custom TCP scan) +.RS 4 +Napredni Nmap korisnici nisu vezani uz poznate tipove skenova\&. +\fB\-\-scanflags\fR +opcija dozvoljava da dizajnirate vlastiti tip skeniranja, navodeći bilo koju kombinaciju TCP zastavica (flagova)\&. Neka važi kreativni sokovi teku, dok izbjegavate otkrivanje svojih radnji od strane IDS sustava čiji su autori samo prošli kroz Nmap opcije i dodali pravila koja prepoznaju navedene tipove skeniranja\&. +.sp +\fB\-\-scanflags\fR +argument može biti brojčana vrijednost poput 9 (PSH i FIN), ali korištenje simboličnih imena je jednostavnije\&. Jednostavno izmješajte zajedno bilo koju kombinaciju zastavica (flagova) +URG, +ACK, +PSH, +RST, +SYN +i +FIN\&. Npr\&. +\fB \-\-scanflags URGACKPSHRSTSYNFIN\fR +postavlja sve zastavice, ali nije pretjerano koristan za skeniranje\&. Redosljed navođenja zastavica je nebitan\&. +.sp +Uz navođenje željenih zastavica, možete navesti i bazni TCP tip skeniranja (poput +\fB\-sA\fR +ili +\fB\-sF\fR), što će objasniti Nmap\-u kako da interpretira odgovore\&. Npr\&. SYN scan tretira paket na koji nije dobio odgovor kao +filtriran +port, dok ga FIN scan tretira kao +otvoren|filtriran\&. Nmap će se ponašati isto kao što se ponaša kod specificiranog baznog skena, osim što će koristiti zastavice koje ste naveli\&. Ukoliko ne navedete bazni tip skeniranja, koristit će se SYN scan\&. +.RE +.PP +\fB\-sI <zombie host[:probeport]>\fR (Idlescan) +.RS 4 +Ova napredna metoda skeniranja omogućava slijepo skeniranje ciljanog računala (niti jedan paket nije poslan na ciljano računalo s vaše stvarne IP adrese)\&.Umjesto toga koristite zombie host računalo i predvidljiv IP fragmentation ID na njemu kako bi dobili informaciju o tome koji su portovi otvoreni na ciljanom računalu\&. IDS sustavi će pokazati da scan dolazi sa zombie mašine kojju ste specificirali kod pokretanja ovog tipa skeniranja (zombie mora biti upaljen i mora zadovoljavati neke kriterije)\&. Ovaj način skeniranja je prekompleksan da bi ga ovdje opisali u potpunosti, pa sam napisao i postao informativni članak sa svim detaljima na +\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&. +.sp +Osim što je nevjerovatno nevidljiv (zbog načina na koji radi) ovaj tip skeniranja omogućava mapiranje IP baziranih pravila između računala\&. Ispis portova pokazuje otvorene portove +\fIkako ih vidi zombi računalo\&.\fR +Dakle, možete koristiti više zombie računala za skeniranje ciljanog računala\&. +.sp +Možete staviti dvotočku i broj porta iza nje, kako bi na tom portu provjerili da li su IPID promjene predvidljive\&. Ukoliko to ne navedete, Nmap će koristiti standardni port za TCP pinganje (80)\&. +.RE +.PP +\fB\-sO\fR (IP protocol scan) +.RS 4 +IP protokol scan Vam omogućava da provjerite koji IP protokoli (TCP, ICMP, IGMP isl\&.) su podržani na ciljanim mašinama\&. Tehnički gledano, to i nije port scan jer prolazi kroz brojeve IP protokola, a ne kroz brojeve TCP i UDP portova\&. No ipak koristi opciju +\fB\-p\fR, kako bi odabrao skenirane brojeve IP protokola, ispisuje rezultate u normalnoj tabeli kao i kod skeniranja portova, pa čak koristi i isti engine za skeniranje kao i kod skeniranja portova\&. Kad sve to uzmemo u obzir \- ova metoda skeniranja je dovoljno slična skeniranju portova, pa je stoga i uključena u ovo poglavlje\&. +.sp +Osim što je koristan sam po sebi, protokol scan pokazuje i snagu open source softvera\&. Iako je temeljna metoda vrlo jednostavna, nisam je mislio uključiti u Nmap, niti sam dobio zahtjev za tom funkcionalnošću, sve dok u ljeto 2000, Gerhard Rieger nije razvio ideju, napisao izvanredan patch koji to implementira u Nmap i posalo na nmap\-hakers listu\&. Uključio sam taj patch u Nmap i pustio novu verziju već drugi dan\&. Jako malo komercijalnog softvera ima korisnike koji su toliki entuzijasti da bi razvili vlastita poboljšanja za pojedine produkte! +.sp +Protokol scan radi vrlo slično kao i UDP scan\&. Umjesto da prolazi kroz brojeve portova UDP paketa, šalje IP pakete i prolazi kroz 8 bitnio polje samog IP protokola\&. Headeri (zaglavlja) su obično prazni i ne sadrže nikakve podatke, pa čak niti ispravni header za određeni protokol\&. Izuzeci od tog pravila su TCP, UDP i ICMP protokol\&. Za te protokole je uključen ispravan protokol header (zaglavlje), jer neki sustavi u suprotonom ne žele poslati paket, tako da Nmap već ima funkcije za kreiranje ispravnih headera\&. Umjesto da čeka ICMP unreachable poruku, protokol scan traži ICMP +\fIprotoKol\fR +unreachable poruku\&. Ukoliko Nmap dobije bilo kakav odgovor u bilo kojem protokolu od ciljanog računala, Nmap označi taj protokol kao oOtvoren\&. ICMP protocol unreachable greška (tip 3, kod 2) označi protokol kao +Zatvoren\&. Sve ostale ICMP poruke (tip 3, kod 1, 3, 9, 10 i 13) označe protokol kao +filtriran +(iako je to istovremeno dokaz da je ICMP protokol +otvoren)\&. Ukoliko ne dođe nikakav odgovor nakon ponovnih pokušaja slanja, protokol je označen kao +otvoren|filtriran\&. +.RE +.PP +\fB\-b <ftp relay host>\fR (FTP bounce scan) +.RS 4 +Zanimljiva funkcionalnost FTP protokola (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[8]\d\s+2) je podrška za tzv\&. proxy ftp konekcije\&. To omogućuje korisniku da se spoji na jedan FTP server, te nakon toga zatraži da fileovi budu poslani na neki drugi FTP server\&. Ta funkcionalnost je sazrijela za napade na mnogo nivoa, tako da je većina servera prestala pružati podršku za to\&. Jedan od napada koji je izvediv je taj da omogućava napadaču natjerati FTP server da skenira druge FTP servera u potrazi za otvorenim portovima\&. Jednostavno zatražite od FTP servera da poš alje datoteku na svaki od portova koji vas zanima na ciljanom računalu\&. Poruka o grešci koju ćete dobiti će vam raći da li je port otvoren ili nije\&. To je ujedno i dobar način obilaženja firewall\-a (vatrozida), jer su mnogi FTP serveri smješteni tamo gdje imaju veći pristup unutrašnjim računalima, nego bilo koje računalo s interneta\&. Nmap podržava FTP bounce scan s opcijom +\fB\-b\fR\&. Prima parametar u sljedećem obliku: +\fIusername\fR: +\fIpassword\fR@\fIserver\fR:\fIport\fR\&. +\fIServer\fR +je naziv ili IP adresa ranjivog FTP servera\&. Kao i kod normalnog URL\-a, možete zanemariti +\fIusername\fR:\fIpassword\fR, te ćete se u tom slučaju spojiti kao anonymous user i koriste se sljedeći parametri +anonymous +password:\-wwwuser@\&. Broj porta i dvotočka ispred njega također mogu biti zanemarini, a u tom slučaju ćete se spojiti na standardni FTP port (21)\&. +.sp +1997\&., kad je Nmap lansiran, ova ranjivost je bila široko rasprostranjena, ali do sad je uglavnom "pokrpana" na većini računala\&. Ipak, još uvijek postoji ranjivi serveri, pa nije loše pokušati i ovu opciju kad sve oostale zataje\&. Ukoliko je obilaženje vatrozida vaš cilj, skenirajte ciljanu mrežu za otvorenim portom 21 (ili bilo koji ftp servis, ako skenirate sve portove s otkrivanjem verzije programa \- version detection), te nakon toga pokušajte ftp bounce scan\&. Nmap će vam reći da li je host ranjiv ili nije\&. Ukoliko samo pokušavate sakriti tragove, ne biste trebali (u stvari ne biste smjeli) skenirati samo hostove na ciljanoj mreži\&. No, prije nego nasumično počnete skenirati za ranjivim ftp serverima na internetu, imajte na umu da većina sysadmina neće cijeniti što im "iskorištavate" servere na taj način +.RE +.SH "SPECIFIKACIJA PORTOVA I REDOSLJED SKENIRANJA" +.PP +Uz sve do sad nabrojane metode skeniranja, Nmap nudi opcije pomoću kojih možete specificirati koje portove želite skenirati, da li će skeniranje portova biti nasumično ili sekvencionalno\&. Defaultno Nmap skenira sve portove od 0 do 1024 (uključujući i njih) kao i sve portove iznad 1024 koji su navedeni u +nmap\-services +datoteci\&. +.PP +\fB\-p <port ranges>\fR (Skeniraj samo navedene portove) +.RS 4 +Pomoću ove opcije možete odabrati koje portove ćete skenirati i na taj način obići defaultne postavke\&. Možete unijeti pojedinačne brojeve i/ili niz brojeva odvojenih minusom (npr\&. 1\-1023)\&.Ukoliko ž elite skenirati sve portove možete napisati samo parametar +\fB\-p\-\fR +i Nmap će skenirati sve portove od 1\-65535\&. Port 0 je moguće skenirati jedino ako ga navedete\&. Kad je u pitanju IP protokol scan (\fB\-sO\fR), opcija \-p definira koji protokol želite skenirati (od 0\-255)\&. +.sp +Kad skenirate i TCP i UDP portove zajedno, možete navesti identifikator protokola na način da prije brojeva portova stavite identifikator T: za TCP porove ili +U: +za UDP portove\&. Parametar vrijedi sve dok ne navedete neki drugi\&. Npr\&. možete napisati +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR\&. Na taj bi način skenirali UDP portove 53, 111 i 137, kao i TCP portove 21\-25, 80, 139 i 8080\&. Imajte na umu da morate navesti parametar +\fB\-sU\fR +i bar jedan TCP tip skeniranja (kao npr\&. +\fB\-sS\fR, +\fB\-sF\fR +ili +\fB\-sT\fR) kako bi mogli istovremeno skenirati i TCP i UDP portove\&. Ukoliko niste naveli identifikator protokola, navedeni portovi će biti skenirani i po TCP i po UDP protokolu\&. +.RE +.PP +\fB\-F\fR (brzi scan (s ograničenim portovima)) +.RS 4 +Ova opcija kaže Nmapu da skenira samo portove navedene u +nmap\-services +datoteci, koja dolazi s Nmap\-om\&. (ili protokol datoteke kad je u pitanju opcija +\fB\-sO \fR) To je mnogo brže nego skeniranje svih 65535 portova\&. Kako navedeni popis ima preko 1200 TCP portova, razlika u brzini između ove opcije i defaultnog TCP scana (koji ima oko 1650 portova) nije dramatična\&. Razlika može biti osjetno velika ako koristite svoju +nmap\-services +datoteku koristeći opciju +\fB\-\-datadir\fR +.RE +.PP +\fB\-r\fR (Ne miješaj portove) +.RS 4 +Defaultno, Nmap nasumično odabire potove koje skenira (osim nekih standardnih portova koji su stavljeni na početak zbog efikasnosti)\&. To "miješanje" portova je u normalnim situacijama poželjno, ali pomoću ove opcije možete skenirati portove baš onim redosljedom kojim ste ih naveli\&. +.RE +.SH "PREPOZNAVANJE SERVISA I NJIHOVIH VERZIJA" +.PP +Skenirajte neko računalo pomoću Nmap\-a i mogao bi vam reći da su portovi 25/tcp, 80/tcp i 53/tcp otvoreni\&. Koristeći +nmap\-services +bazu podataka u kojoj se nalazi preko 2200 poznatih servisa, Nmap će vam reći da su na navedenim portzovima najvjerovatnije mail server (SMTP), web server (HTTP) i name server (DNS)\&. To je u većini slučajeva ispravno, većina servera koji slušaju na portu 25 su uistinu mail serveri, ali nemojte biti 100% sigurni u to, jer postoje ljudi koji pokreću servise na "čudnim" portovima\&. +.PP +Ako je Nmap ipak u pravu i server o kojem je riječ ima pokrenut SMTP, HTTP i DNS server, to ipak nije pretjerano mnogo informacija\&. Ukoiko radite pregled ranjivosti (vulnerability assessment) ili samo jednostavan inventar mrež nih servisa na računalima u firmi, činjenica je da trebate mnogo više informacija od gore navedenih\&. Želite znati koje verzije mail, HTTP i DNS servera su pokrenute na tom računalu\&. Kad imate "pri ruci" ispravnu verziju serverske komponente nije teško ustanoviti koje ranjivosti dotični server ima\&. Otkrivanje verzije vam pomaže u dobivanju tih informacija\&. +.PP +Nakon što ste otkrili koji TCP i/ili UDP portovi su otvoreni korištenjem neke od do sad opisanih tehnika, otkrivanje verzije ispituje te portove ne bi li otkrilo što je u stvari na tim portovima, tj\&. koja aplikacija je otvorila dotičpne portove\&. +nmap\-service\-probes +baza podataka sadži upite za ispitivanje raznih servisa i prepoznavanje na osnovu odgovora koje dobije\&. Nmap pokušava ustanoviti protokol na kojem radi servis (npr\&. ftp, ssh, telnet, http), naziv aplikacije (npr\&. ISC Bind, Apache, httpd, Solaris telnetd) , verziju, naziv hosta, tip uređaja (npr\&. printer, ruter), porodicu iz koje dolazi OS (npr\&. Windows, Linux) i ponekad neke detalje poput toga da li je otvoren X server, verziju protokola koju koristi SSH ili KaZaA korisničko ime\&. Naravno, većina servisa ne daje sve te informacije\&. Ukoliko je Nmap kompajliran s podrškom za OpenSSL protokol, spojit će se na SSL servere kako bi ustanovio servise koji se nalaze iznad enkripcijskog sloja\&. Ako su otkriveni RPC servisi, Nmap RCP istraživač (\fB\-sR\fR) je automatski uključen kako bi otkrio koji program se nalazi iz RPC\-a i koja mu je verzija\&. Neki UDP portovi su označeni s +otvoren|filtriran, ako UDP scan nije mogao odrediti da li je port otvoren ili filtriran\&. Otkrivanje verzije će pokušati dobiti odgovor s tih portova (isto kao što to radi i kod otvorenih portova), te će promijeniti njihovo stanje u otvoren ako uspije dobiti odgovor\&. TCP portovi koji su okarakterizirani kao +otvoreni|filtrirani, tretirani su na isti način\&. Imajte na umu da opcija +\fB\-A\fR +omogućije otkrivanje verzije uz ostale stvari koje podržava\&. Dokument koji objašnjava rad, korištenje i mijenjanje ovog dijela programa je dostupan na linku: +\m[blue]\fB\%https://nmap.org/vscan/\fR\m[]\&. +.PP +Kad Nmap dobije odgovr od servisa, a ne može ga usporediti s ni jednim zapisom u svojoj bazi podataka, ispisat će scepijalni "fingerprint" i URL linka na koji ga možete poslati ukoliko ste sigurni u to što se nalazi na tom portu\&. Molim vas da odvojite nekoliko minuta svog vremena kako bi poslali te informacije, jer će kasnije nekom drugom biti od velike koristi\&. Zahvaljujući upravo takvom načinu prikupljanaj informacija, Nmap ima preko 3000 zapisa koji odgovaraju (prepoznavaju) preko 350 protokola, poput smtp\-a, ftp\-a, http\-a, itd\&.\&. +.PP +Otkrivanje verzije se uključuje i njime se upravlja korištenjem sljedećih opcija: +.PP +\fB\-sV\fR (Otkrivanje verzije) +.RS 4 +Uključuje otkrivanje verzije, kao što je opisano gore\&. Kao zamjenu, možete koristiti opciju +\fB\-A\fR +da bi istovremeno uključili OS detekciju i otkrivanje verzije servisa\&. +.RE +.PP +\fB\-\-allports\fR (koristi sve portove u otkrivanju verzije servisa) +.RS 4 +Nmap\-ovo otkrivanje verzije servisa preskače port 9100, jer neki printeri jednostavno isprintaju sve što se pošalje na taj port, što rezultira s hrpom stranica na kojima su HTTP GET zahtjevi, binarni SSL zahtjevi isl\&. Ukoliko ipak želite koristiti i takve portove, možete to napraviti na način da maknete +Exclude +naredbu u +nmap\-service\-probes +datoteci ili jednostavno uključite opciju +\fB\-\-allports\fR, koja će ignorirati +Exclude +naredbu u nmap\-services\-probes\&. +.RE +.PP +\fB\-\-version\-intensity <intensity>\fR (podesite intenzitet otkrivanja verzije servisa) +.RS 4 +Kad radite scan otkrivanja verzije (\fB\-sV\fR), Nmap šalje seriju upita od kojih je svakom dodijeljen broj od 1 do 9\&. Oni upiti koji imaju niže brojeve u efikasni kod većine često korištenih servisa, dok su oni s višim brojevima rijetko korisni\&. Nivo nntenziteta skeniranja određuje koji upiti će biti korišteni\&. Što je veći broj, to je veća vjerovatnost da će servis biti ispravno identificiran\&. No, takvi skenovi traju duže\&. Intenzitet mora biti između 0 i 9\&. Preddefinirana vrijednost je 7\&. Ukoliko je upit registriran u +nmap\-service\-probes +ports +naredbi, bit će isproban bez obzira na nivo intenziteta\&. To garantira da će DNS upiti uvijek biti odrađeni na portu 53, SSL na portu 443 itd\&. +.RE +.PP +\fB\-\-version\-light\fR (omogući "lagani" mod) +.RS 4 +To je jednostavniji način pozivanja opcije +\fB\-\-version\-intensity 2\fR\&. Lagani mod ubrzava skeniranje, ali je samim tim i manja vjerovatnost da će identificirati servis\&. +.RE +.PP +\fB\-\-version\-all\fR (isprobaj sve upite) +.RS 4 +Zamjena za opciju +\fB\-\-version\-intensity 9\fR\&. Isprobat će sve upite u bazi podataka +.RE +.PP +\fB\-\-version\-trace\fR (prati sve što se događa tijekom skena) +.RS 4 +Nmap ispiše opširne debug informacije o tome što trenutno radi opcija otkrivanja verzije servisa\&. To je dio onoga što ćete dobiti opcijom +\fB\-\-packet\-trace\fR\&. +.RE +.PP +\fB\-sR\fR (RPC scan) +.RS 4 +Ova metoda radi u sprezi s različitim port scan metodama Nmap\-a\&. Uzme sve TCP/UDP portove koji su identificirani kao otvoreni i preplavi ih sa SunRPC NULL naredbama pokušavajući ustanoviti da li su RPC portovi i ako jesu za koje programe rade\&. Stoga možete efikasno dobiti iste informacije kao i s naredbom +\fBrpcinfo \-p\fR, čak i kad je ciljani portmapper iza firewall\-a (ili zaštićen TCP omotačima)\&. Mamci trenutno NE rade s RPC skenom\&. To je automatski uključeno kao dio skeniranja verzije servisa (\fB\-sV\fR)\&. Budući da otkrivanje verzije servisa samo po sebi već ima uključenu ovu opciju, +\fB\-sR\fR +se rijetko koristi\&. +.RE +.SH "OTKRIVANJE OS\-A" +.PP +Jedna od najpoznatijih odlika Nmapa je otkrivanje OS\-a na ciljanom računalu korištenjem TCP/IP stack otiska (engl\&. fingerprint)\&. Nmap šalje mnoštvo TCP i UDP paketa na udaljeno računalo i istražuje svaki bit vraćenih paketa\&. Nakon što je učinio hrpu testova poput TCP ISN sampling, podrška i redosljed TCP opcija, IPID sampling i provjeru veličine inicijalnog TCP prozora, Nmap uspoređuje rezultate s +nmap\-os\-fingerprints +bazom podataka s više od 1500 poznatih OS otisaka (engl fingerprint), te ispiše detalje o OS\-u ukoliko ga je uspio "pogoditi"\&. Svaki otisak sadrži neformatirani tekstualni opis OS\-a i klasifikaciju u koju ulazi naziv izdavača (npr\&. Sun), OS (npr\&. Solaris), generacija OS\-a (npr\&. 10) i tip uređaja (općenite namjene, ruter, switch, igraća konzola isl\&.)\&. +.PP +Ukoliko Nmap nije u stanju odrediti koji OS je pokrenut na ciljanom računalu, a uvjeti su dobri (npr\&. postoji barem jedan otvoreni port na računalu), Nmap će vam ponuditi URL link preko kojeg možete poslati otisak ukoliko ste sigurni u to koji OS se nalazi na tom računalu\&. Na taj način pomažete u nastojanjima da Nmap nauči raspoznati što je moguće više sistema i samim tim postane precizniji u pogađanju\&. +.PP +Otkrivanje OS\-a omogućava još neke dodatne testove koji koriste informacije prikupljene tijekom procesa pogađanja\&. Jedan od tih dodatnih testova je i vrijeme od kad je upaljeno računalo (uptime), koji koristi TCP timestamp opciju (RFC 1323) kako bi pogodio kad je računalo zadnji put resetirano\&.To je prikazano samo za ona računala koja daju tu informaciju\&. Drugi test je predvidljivost TCP sekvenci\&. Taj test mjeri koliko je teško uspostaviti lažiranu TCP vezu s udaljenim računalom\&. To je korisno ukoliko želite iskoristiti povjerenje bazirano na ishodišnoj IP adresi (recimo kod rlogin\-a, vatrozida, filtera itd\&.) ili u situacijama kada želite sakriti svoje tragove\&. Ovaj način prikrivanja se danas rijetko koristi, no još uvijek postoji velika količina računala koja su ranjiva\&. Stvarni broj "težine" je baziran na statističkom skupljanju podataka i varira\&. Obično je bolje koristiti klasifikaciju poput +\(lqpopriličan izazov\(rq +i +\(lqtoliko jednostavno da je smiješno\(rq +\&. Ovakakv način izvještavanja dobit ćete u normalnom ispisu kad uključite verbose opciju (\fB\-v\fR)\&. Kad je verbose opcija uključena zajedno s +\fB\-O\fR, onda kao rezultat dobijete i izvještaj generiranja IPID sekvence\&. Većina računala je u tzv\&. +\(lqinkrementalnoj\(rq +klasi, što znači da sa svakim poslanim paketom uvećaju ID polje IP zaglavlja\&. To ih čini ranjivima na nekoliko naprednih načina sakupljanja informacija i napade zavaravanja (engl\&. spoofing)\&. +.PP +Dokument u kojem je opisano kako radi, kako se koristi i kako se može prilagoditi otkrivanje verzije, dostupan je u podosta jezika na linku: +\m[blue]\fB\%https://nmap.org/osdetect/\fR\m[]\&. +.PP +Otkrivanje OS\-a se uključuje i upravlja sa sljedećim opcijama +.PP +\fB\-O\fR (Uključi otkrivanje OS\-a) +.RS 4 +Ova opcije uključi otkrivanje OS\-a kako je opisano u prethodnom odlomku\&. Isto tak omožete koristiti opciju +\fB\-A\fR +da istovremeno uključite otkrivanje OS\-a i verzije +.RE +.PP +\fB\-\-osscan\-limit\fR (ograniči otkrivanje OS\-a samo na ciljeve koji obećavaju) +.RS 4 +Otkrivanje OS\-a je mnogo učinkovitije ako postoji bar jedan otvoren i zatvoren port\&. Ukoliko uključite ovu opciju, Nmap neće niti pokušati raditi otkrivanje OS\-a na hostovima koji nisu zadovoljili ovaj kriterij\&. To vam može uštedjeti mnogo vremena, pogotovo kod skeniranja s opcijom +\fB\-P0\fR +kad koristite mnogo ciljanih računala\&. Ovu opciju možete koristiti samo su kombinaciji s opcijama +\fB\-O\fR +ili +\fB\-A\fR\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (probaj pogoditi OS na osnovu rezultata) +.RS 4 +Ukoliko Nmap nije našao idealan rezultat, ponekad ponudi najbliži rezultat koji bi mogao biti\&. Ukoliko odaberete neku od ovih opcija, Nmap će +\(lqpogađati agresivnije\(rq\&. +.RE +.SH "VRIJEME ODAZIVA I PERFORMANSE" +.PP +Jedan od najviših prioriteta tijekom razvijanja Nmap\-a su performase\&. Defaultni scan (\fBnmap\fR\fB\fIhostname\fR\fR) nekog računala na lokalnoj mreži traje petinu sekunde\&. To je manje od vremena koje vam je potrebno za treptaj oka, ali naravno kad skenirate 10 ili 100 tisuća hostova postane osjetno\&. Uz to, neki tipovi skenova, poput UDP skeniranja i otkrivanja verzijemogu to vrijeme poprilično produžiti\&. Isto tako skeniranje mogu usporiti i neke konfiguracije vatrozida, pogptovo limitiranje količine odgovora u jedinici vremena\&.Iako Nmap koristi paralalno izvršavanje skenova kako bi ih dodatno ubrzao, sam korisnik ima potpunu kontrolu nad time\&. Napredni korisnici pažljivo kombiniraju Nmap naredbe kako bi dobili samo informacije koje im trebaju poštivajući vremenske termine koje su si zadali\&. +.PP +Tehnike za ubrzavanje skeniranja sastoje se od toga da izbacite nepotrebne testove i naravno da nadogradite Nmap na posljednju verziju (poboljšanja performansi se konstantno rade)\&. Optimiziranje vremena odziva (engl\&. Timing) takođem može utjecati na brzinu skeniranja\&. Opcije slijede: +.PP +\fB\-\-min\-hostgroup <numhosts>\fR; \fB\-\-max\-hostgroup <numhosts>\fR (Podešava veličinu grupe paralelnih skenova) +.RS 4 +Nmap ima mogućnost skeniranja više hostova paralelno\&. To radi na način da podijeli adresni prostor ciljanih računala u grupe i onda skenira grupu po grupu\&. U principu ispada da su veće grupe učinkovitije\&. Nedostatak je taj š to rezultati ne mogu biti prikazani dok cijela grupa nije odskenirana do kraja\&. Dakle, ako je Nmap krenuo skenirati grupu od 50 računala, korisnik nrćr vidjeti nikakve rezultate (osim onih koje ispisuje opcija \-v) dok svih 50 hostova nije odskenirano\&. +.sp +Defaultno Nmap radi kompromis\&. Počinje s grupom od 5 hostova, tako da se prvi rezultati brzo pojave na ekranu, a nakon toga poveća veličinu grupe na 1024\&. Točan broj ovisi o uključenim opcijama\&. Zbog povećane efikasnosti Nmap koristi veće grupe za UDP skenove, a manje za TCP skenove\&. +.sp +Kad definirate maksimalnu veličinu grupe pomoću opcije +\fB\-\-max\-hostgroup\fR, Nmap je neće nikad premašiti\&. Ukoliko pak specificirate minimalnu veličinu grupe s +\fB\-\-min\-hostgroup\fR, Nmap će pokušati zadržati veličinu grupe iznad tog nivoa\&. Naravno, ukoliko broj hostova koji su ostali za skeniranje bude manji od minimalne grupa Nmap će normalno odraditi svoj posao\&. Obje opcije možete koristiti istovremeno kako bi veličinu grupe zadržali u željenim okvirima, ali to je rijetko potrebno\&. +.sp +Primarna upotrenba ovih opcija je navođenje što veće minimalne veličine grupe kako bi skenovi brže odradili svoj posao\&. Najčeđći odabir je 256, kako bi skeniranje mreže išlo u odsječcima C klase\&. Za skenove u kojima se skenira mnogo portova, povećanje tog broja iznad 256 će rijetko pomoći\&. Ukoliko pak skenirate samo nekoliko portova, veličina grupe od 2048 ili više, može biti od pomoći\&. +.RE +.PP +\fB\-\-min\-parallelism <numprobes>\fR; \fB\-\-max\-parallelism <numprobes>\fR (Podesi paralelizam) +.RS 4 +Ove opcije upravljaju brojem sondi (engl\&. probe) koje mogu biti poslane po grupi hostova\&. Koriste se za skeniranje portova i otkrivanje hostova\&. Defaultno Nmap svaki put izračuna idealni paralelizam vezano uz mrežne performanse, a mijenja ga tijekom skena, ovisno o ujetima\&. Ukoliko dolazi do odbačenih paketa, Nmap uspori tj\&. šalje manje sondi\&. Broj sondi polako raste ako mreža daje naznaku da može prihvatiti više od trenutnog broja\&. Ove opcije postavljaju minimalnu i maksimalnu granicu\&. Defaultno paralelizam može pasti na 1 ako je mreža nepouzdana ili narasti na nekoliko stotina, ako imamo idealne uvjete\&. +.sp +Najčešći način upotrebe je da se podesi +\fB\-\-min\-parallelism\fR +na broj veći od 1 kako bi se ubrzalo skeniranje sporijih hostova i mreža\&. To je ujedno i riskantna opcija, jer ako podesite prevelik broj, utjecat ćete na točnost skena\&. Isto tako, ukolik opodesite ovu opciju, sprječavate Nmap da dinamički upravlja paralelizmom vezano uz stvarne uvjete na mreži\&. Broj 10 ima smisla, ali osobno podešavam tu vrijednost kad nemam ništa drugo na rapolaganju\&. +.sp +Opcija +\fB\-\-max\-parallelism\fR +stavite na 1 ukoliko želite spriječiti Nmap da koristi paralelizam, tj\&. želite da šalje samo jednu po jednu sondu\&.To može biti korisno u kombinaciji s opcijom +\fB\-\-scan\-delay \fR +(objasnit ćemo je kasnije), mada ta opcija sama po sebi služi svrsi dovoljno dobro\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout <time>\fR, \fB\-\-max\-rtt\-timeout <time>\fR, \fB\-\-initial\-rtt\-timeout <time>\fR (Podesi vrijeme trajanja sondi) +.RS 4 +Nmap pazi na vrijeme isteka da bi mogao ustanoviti koliko dugo će čekati na odgovor sonde prije nego odustane ili ponovno pokuša poslati istu sondu\&. To se izračunava na osnovu prethodnih sondi i vremenskog odaziva koji su imale\&. Ukoliko se mrežno kašnjenje pokaže značajnim i promjenjivim, vrijeme isteka može narasti i na nekoliko sekundi\&. Također počinje na konzervativnom (visokom) nivou i takvo će ostati u slučaju da Nmap skenira hostove koji ne odgovaraju\&. +.sp +Ove opcije primaju vrijednost u milisekundama, ali vi možete navesti vrijeme u sekundama, minutama ili satima na način da stavite opciju +s, +m +ili +h\&. Navođenje nižeg +\fB\-\-max\-rtt\-timeout\fR +i +\fB\-\-initial\-rtt\-timeout\fR +od defaultnog može osjetno skratiti vrijeme potrebno za skeniranje\&. To je posebno vidljivo kod (\fB\-P0\fR) skenova i skenova prema jako filtriranim mrežama\&. Ipak, nemojte biti preagresivni, jer vam u tom slučaju skeniranje može i dulje potrajati, jer će Nmap ponovno slati sonde, a odgovr na prethodne je možda na putu nazad\&. +.sp +Ukoliko su svi hostovi na lokalnoj mreži, 100ms je razumna vrijednost za +\fB\-\-max\-rtt\-timeout\fR +_timeout\&. Ukoliko postoje ruteri između Nmapa i hostova, najprije pingajte hosta s ICMP ping alatom ili s naprednijim alatom poput Hping2 koji ima veće mogućnosti proći kroz vatrozid\&. Pogledajte koja je srednja vrijednost vremena portebnog da se paket vrati za 10\-tak paketa\&. Tu vrijednost pomnožite s 2 za +\fB\-\-initial\-rtt\-timeout\fR +i s 3 ili 4 za +\fB\-\-max\-rtt\-timeout\fR\&. Osobno ne postavljam maksimalni rtt ispod 100ms, bez obzira na vrijednosti koje dobijem pinganjem, niti stavljam više od 1000ms\&. +.sp +\fB\-\-min\-rtt\-timeout\fR +je rijetko korištena opcija koja može biti korisna kod jako nepouzdanih mrež a na kojima su čak i Nmap\-ove defaultne postavke preagresivne\&. Kako Nmap spušta vrijeme isteka na minimum tek kad zaključi da je mreža pouzdana, ovo bi trebalo prijeviti kao bug na nmap\-dev mailing listu\&. +.RE +.PP +\fB\-\-max\-retries <numtries>\fR (Navedi maksimalni broj ponovnih slanja sondi) +.RS 4 +Kad Nmap ne dobije odgovor na sondu koja skenira port, to može značiti da je port filtriran ili to da je sonda ili odgovor na nju izgubljen na mreži\&. Isto tako je moguće da ciljani host ima podešenu granicu na količinu paketa na koje odgovara, pa je samo privremeno blokiran odgovor\&. Kako bi bio siuguran o čemiu je riječ, Nmap ponovno šalje sonde na koje nije dobio odgovor\&. Ukoliko ustanovi da je mreža nepouzdana, može se dogoditi da pošalje sondu još mnogo puta prije nego odustane\&. Ovo je opcija koja daje točnije rezultate, ali isto tako i usporava postupak skeniranja\&. Kad je brzina skeniranja ključna, možete koristiti ovu opciju kako bi ograničili broj ponovnih slanja sondi\&. Čak možete navesti i +\fB\-\-max\-retries 0\fR +kako bi u potunosti spriječili ponovno slanje, makar je to rijetko preporučljivo\&. +.sp +Defaultna postavka (bez +\fB\-T\fR +predloška) je 10 ponovnih slanja\&. Ukoliko se mreža pokaže pouzdanom i ciljani hostovi ne ograničavaju skeniranje, Nmap će napraviti samo jedno ponovno slanje\&. Gledano iz tog kuta, na većinu ciljanih računala ne utječe ako stavite +\fB\-\-max\-retries\fR +na nizak broj poput 3\&. To je vrijednost koja može mnogostruko ubrzati skeniranje sporih hostova (onih koji ne dozvoljavaju mnogo port skenova s jedne IP adrese, nego ih jednostavno blokiraju)\&. Istina je da obično izgubite neke informacija ako Nmap prerano odustane od hosta, ali i to je bolje nego ostaviti +\fB\-\-host\-timeout\fR +da istekne i izgibiti sve informacije o ciljanom hostu\&. +.RE +.PP +\fB\-\-host\-timeout <time>\fR (odustani od skeniranja sporih hostova) +.RS 4 +Skeniranje nekih hostova jednostavno traje +\fIjako\fR +dugo\&. To može biti zbog lošeg mrežnog hardvera ili softvera, ograničavanju količine paketa ili restriktivnih vatrozida\&. Nekoliko posto sporih hostova, mogu +\(lqpojesti\(rq +većinu vremena koje je potrebno za skeniranje\&. Ponekad je najbolje odustati od skeniranja takvih hostova kako bi stvar brže završila\&. To možete napraviti navođenjem parametra +\fB\-\-host\-timeout\fR +s brojem milisekundi koliko ste voljni čekati odgovor\&. Možete staviti i +s, +m +ili +h +kako bi naveli sekunde, minute i sate\&. Osobno obično stavim 30m kako bih se osigurao da Nmap ne troši više od +30m +vremena po hostu\&. Imajte na umu da će Nmap za to vrijeme skenirati i ostale hostove, tako da to nije u potpunosti izgubljeno vrijeme\&. Host koji je dosegao vrijeme isteka je preskočen i z anjega nije ispisan nikakav rezultat poput port tabele, OS detekcije ili detekcije verzija\&. +.RE +.PP +\fB\-\-scan\-delay <time>\fR; \fB\-\-max\-scan\-delay <time>\fR (podesi stanke između sondi) +.RS 4 +Ova opcija prisiljava Nmap da pričeka barem navedeno vrijeme u milisekundama prije nego pošalje iduću sondu prema tom hostu\&. Kao i kod većine drugih opcija koje imaju veze s vremenom, možete navesti +s, +m +ili +h +da bi definirali kašnjenje u sekundama, minutama ili satima\&. To je itekako korisno kod računala koja imaju upaljen "rate limiting"\&. Solaris računala (između ostalih) će na UDP sken sonde odgovarati samo s jednom ICMP porukom po sekundi\&. Ako Nmap šalje UDP pakete češće od 1 sekunde, ti su paketa jednostavno uludo bačeni\&. Opcija +\fB\-\-scan\-delay\fR +od +1s +će zadržati Nmap u sporom tempu\&. Nmap pokušava ustanoviti koji je "rate limit" podešen na jostu i prilagođava sken ovisno o tome, ali neće škoditi ako ga unaprijed definirate za hostove za koje ste sigurni da će se tako ponašati\&. +.sp +Kad Nmap podesi sken shodno tome, dolazi do dramatičnog usporavanja\&. +\fB\-\-max\-scan\-delay\fR +opcija definira najveće kašnjanje koje će Nmap dozvoliti\&. Ukoliko podesite ovu opciju na premalu vrijednost, doći će do uzaludnog (prečestog) slanja paketa i samim tim promašenih otvorenih portova ako ciljani host ima uključen +\(lq rate limiting\(rq\&. +.sp +Još jedno način korištenja opcije +\fB\-\-scan\-delay\fR +je da se izbjegnu intrusion detection i intrusion prevention (IDS/IPS) sustavi, koji su bazirani na zadanoj vrijednosti (engl\&. treshold)\&. +.RE +.PP +\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (Podesite predložak za vremenske postavke) +.RS 4 +Iako su do sad navedene opcije snažne i efikasne, većini ljudi su nerazumljive i zbunjujuće\&. Uz to, odabrati prave vrijednosti ponekad može potrajati duže od skena koji želite optimizirati\&. Zbog toga Vam Nmap nudi jednostavniji pristup, korištenjem 6 preddefiniranih predložaka\&. Možete ih navesti korištenjem +\fB\-T\fR +opcije s brojevima od 0\-5 ili njihovim imenima\&.Nazivi predložaka su: paranoidno (engl\&. paranoid) (0), skriven (engl\&. sneaky) (1), pristojan (eng\&. polite) (2), normalan (engl\&. normal) (3), agresivan (engl\&. aggressive) (4) i lud (engl\&. insane) (5)\&. Prva dva su za obilaženje IDS sustava\&. Predložak pristojan usporava skeniranje kako bi što je moguće manje opteretio mrežne resurse i računalo koje skenirate\&. Normalni mod je defaultna postavka i postavljanje opcije +\fB\-T3\fR +zapravo ne uvodi nikakve promjene\&. Agresivni mod ubrzava skeniranje pod pretpostavkom da ste na poprilično brzoj i pouzdanoj mreži\&. Na kraju "ludi" mod pretpostavlja da ste na posebno brzoj mreži i da ste spremni žrtvovati točnost rezultata kako bi dobili na brzini\&. +.sp +Navedeni predlošci omogućavaju korisnicima da navedu koliko agresivni žele biti, ostavljajući Nmap\-u da odabere točne vrijednosti\&. Predlošci također rade neka manja podešavanja brzine za koja trenutno ne postoje drugi načini\&. Npr\&. +\fB\-T4\fR +sprječava da dinamičko kašnjenje skeniranja prijeđe 10ms za TCP portove, dok +\fB\-T5\fR +drži tu vrijednost na 5ms\&. Predlođke možete kombinirati s finijim kontrolama, sve dok je template naveden prvi inače će vrijednosti iz predloška nadjačati one koje ste naveli\&. Predlažem korisštenje opcije +\fB\-T4\fR +kod skeniranja modernih i pouzdanih mreža\&. Ostavite tu opciju na početku komandne linije čak i kad koristite neke finije naredbe kako bi imali koristi od dodatnih optimizacija koje predložak donosi\&. +.sp +Ukoliko ste na pristojnoj broadband ili eternet konekciji, predlažem korištenje opcije +\fB\-T4\fR\&. Neki ljudi vole +\fB\-T5\fR, mada je preagresoivan za moj ukus\&. Isto tako ljudi ponekad stave +\fB\-T2\fR +misleći da je manja vjerovatnost da će tako srušiti host ili se inače smatraju pristojnima\&. No oni u stvari ne razumiju koliko je opcije +\fB\-T pristojno\fR +u stvari spora\&. Ovaj način skeniranja može potrajati i do 10 puta duže nego defaultni\&.Padovi računala i problemi s bandwithom su rijetki s korištenjem defaultne opcije +\fB\-T3\fR, pa je normalno preporučam opreznim skenerima\&.Izbjegavanje otkrivanja verzije je u svakom slučaju efikasnije u pokušaju rješevanja tih problema nego igranje s vremenima odaziva\&. +.sp +Iako su opcije +\fB\-T0\fR +i +\fB\-T1\fR +korisne u izbjegavanju otkrivanja od strane IDS sustava, skeniranje tisuću portova će trajati jaaaako dugo\&. Kod takcih skenova je možda bolje direktno navesti vremena odaziva nego se pouzdati u preddefinirane vrijednosti opcija +\fB\-T0\fR +i +\fB\-T1\fR\&. +.sp +Glavni efekt korištenja opcije +\fBT0\fR +je taj da su skenovi serijski (skenira se port po port) i nakon odskeniranog porta čeka 5 minuta prije nego će poslati iduću sondu\&.\fBT1\fR +i +\fBT2\fR +su slični s tim da +\fBT1\fR +čeka 15 sekundi između sondi, dok +\fBT2\fR +čeka 0\&.4 sekunde između sondi\&. +\fBT3\fR +je defaultna postavka koja uključuje paralilizam (skenirano je više portova istovremeno)\&. Opcije +\fBT3\fR +je isto kao i +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR, te podešava maksimalno TCP kašnjenje na 10ms\&. Opcija +\fBT5 \fR +je isto kao i +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 900000\fR +kao i postavljanje maksimalnog TCP sken kaš njenja na 5ms\&. +.RE +.SH "IZBJEGAVANJE I ZAVARAVANJE VATROZIDA I IDS\-A" +.PP +Mnogo pionira interneta zu zamislili globalnu otvorenu mrežu univerzalnog adresnog prostora u kojoj je dozvoljeno spajanje bilo koja dva čvora\&. To bi omogućilo hostovima da šalju i primaju informacije jedan od drugog\&. Ljudi bi mogli pristupiti svim svojim sustavima s posla i mijenjati postavke grijanja i hlađenja, pa čak i otključavati vrata gostima koji su uranili\&.Ta verzija univerzalne povezanosti je ugušena nedovoljnim adresnim prostorom i ponajviše iz sigurnosnih razloga\&. U ranim 90\-tima, firme su počele uvoditi vatrozide s primarnom namjenom da smanje mogućnosti povezivanja koje su postojale\&. Ogromne mreže su ofgrađene od nefiltriranog interneta korištenjem aplikacijskih proxy\-a, NAT uređajai paket filtera\&. Otvoreno kolanje informacija predalo je tron kontroliranim komunikacijskim kanalima i sadržajem koji je njima prolazio\&. +.PP +Mrežne barijere poput vatrozida mogu otežati mapiranje mreže, a vremenom neće biti ništa lakše, jer ugušiti lagodno istraživanje mreže je primarni cilj većine uređaja\&. No ipak, Nmap nudi mnogo mogućnosti kako bi nam pomogao u razumijevanju tih kompleksnih mreža i kako bi provjerio da li filteri uistinu rade onako kako smo zamislili\&. Čak podržava mehanizme za obilaženje loše implementiranih mjera zaštite\&. Jedna od najboljeh metoda pomoću koje ćete razumjeti postavke svoje mrežne sigurnosti je pokušaj da je obiđete\&. Pokušajte se postaviti u mentalni sklop napadača i iskoristite tehnike iz ovog poglavlja protiv svojih mreža\&. Pokrenite FTP bounce sken, idle sken, napad fragmentacijom ili pokušajte tunelirati kroz svoj proxy server\&. +.PP +Uz to što brane mrežnu aktivnost, firme sve više nadgledaju promet sa sustavima za otkrivanje upada (engl\&. intrusion detection system) IDS\&. Većina poznatijih IDS sustava dolaze s podešenim pravilima koja mogu prepoznati Nmap skenove, jer ponekad je sken u stvari prethodnik napada\&. Većina tih sustava je nedavno prerasla u sustave za zaštitu od upada (engl\&. intrusion +\fIprevention\fR +system) IPS koji aktivno blokiraju promet koji ocjene kao zloćudan\&. Na štetu mrežnih administratora i proizvođača IDS sustava, pouzdano ustanoviti što je zloćudno, a što nije samo analizom paketa je teško\&. Napadači koji imaju strpljenja i sposobnosti obično mogu uz pomoć nekin Nmap\-ovih opcija proći nezapaženo od IDS sustava\&. U međuvremenu admnistratori se moraju boriti s velikom količinom lažnih uzbuna, gdje je normalna mrežna aktivnost pogrešno dijagnosticirana i možda čak blokirana od IPS sustava\&. +.PP +Ponekad ljudi predlažu da Nmap ne bi trebao nuditi mogućnosti za obilaženjem vatrozida i provlašenja pored IDS\-a\&. Tvrde da će te mogućnosti biti korištene od strane napadača isto kao i od strane administratora\&. Problem u ovoj logici je taj što će metode tako i tako biti dostupne napadačima koji će koristiti neki fdrugi alat ili sami doprogramirati funkcionalnost u Nmap, dok bi administratori imali puno teži posao u sprješavanju upada na svoje sustave\&. Postavljanje samo modernih, zakrpanih FTP servera je mnogo učinkovitija obrana od sprječavanja distribucije alata koji mogu napraviti FTP bounce napad\&. +.PP +Ne postoji čarobni metak (ili Nmap opcija) za otkrivanje i potkopavanje vatrozida i IDS sustava\&. Za to je potrebna vještina i iskustvo\&. Tutorial je nešto što ne spada u ovaj dokument, koji samo navodi opcije i opisuje što one mogu\&. +.PP +\fB\-f\fR (fragmentiraj pakete); \fB\-\-mtu\fR (koristi navedeni MTU) +.RS 4 +\fB\-f\fR +opcija prisiljava pokrenuti sken (uključujući i ping sken) da koristi male fragmente IP paketa\&. Ideja se sastoji od toga da zaglavlje TCP paketa prelomi na više paketa kako bi paket filterima, IDS\-ovima i drugim dosadnjakovićima bilo teže otkriti što radite\&. Budite pažljivi s tim! Neki programi imaju problema u radu s takvim malim paketima\&. Jedan stari sniffer imenom Sniffit, je automatski pukao kad bi primio prvi fragment\&. Nakon što navedete ovu opciju jednom, Nmap podijeli pakete u 8 bytova ili manje\&. Tako će 20 bytno TCP zaglavlje biti podijeljeno u 3 paketa, dva po 8 bytova i jedan od 4\&. Imajte na umu da svaki od tih paketa koje smo prelomili dobiva novo zaglavlje, koje nema nikakve veze s originalnim\&. Navedite +\fB\-f\fR +još jednom i Nmap će koristiti 16 bytova po fragmentu (smanjujući broj fragmenata)\&. Isto tako možete definirati bilo koju željenu veličinu korištenjem \-\-mtu opcije\&. Ukoliko koristite +\fB\-\-mtu\fR +opciju nemojte koristiti i +\fB\-f\fR +opciju\&. Fragment mora biti višekratnik broja 8\&. Iako fragmenti neće proći pored paet filtera i vatrozida koji skupljaju se fragmente kako bi vidjeli što je u originalnom paketu, popout opcije CONFIG_IP_ALWAYS_DEFRAG u linux jezgri operativnog sustava, činjenica je da si neke mreže ne mogu dozvoliti udar na performanse koji ta opcija ima, pa je stoga na njima isključena\&. Drugi pak sustavi ne mogu imati upaljnu tu opciju, jer fragmenti mogu doći u njihovu mrežu drugom rutom\&. Neki sustavi defragmentiraju izlazne pakete u samoj jezgri, poput linuxa koji ima iptables s upaljenim modulom praćenja konekcije\&. Pokrenite sken dok je upaljen snifer poput ethereal\-a kako bi se osigurali da su odlazni paketi fragmentirani\&. Ukoliko vaš OS radi probleme (kao što smo naveli malo prije kod linuxa i iptables\-a), pokušajte slati sirove eternet frame\-ove opcijom +\fB \-\-send\-eth\fR\&. +.RE +.PP +\fB\-D <decoy1 [,decoy2][,ME],\&.\&.\&.>\fR (sakrij sken pomoću mamaca) +.RS 4 +Ovaj način skeniranja učini to da na hostu koji skenirate izgleda kao da ga skeniraju i sustavi koje ste stavili u mamce\&. Tako će IDS navesti 5\- port skenova s jedne IP adrese i tako za sve mamce koje ste naveli i za vas\&. Samim tim neće znati tko je stvarno skenirao mrežu, a tko je bio nevina žrtva (mamac)\&. Ovo može biti eliminirano traženjem ruterskog puta (engl\&. router path tracing), odbacivanja odgovora (engl\&. response\-dropping) i nekim drugim aktivnim mehanizmima, ali je ipak efikasna tehnika za sakrivanj IP adrese\&. +.sp +Odvojite svaki host mamac sa zarezimaa možete opcionalno navesti i +ME +(što predstavlja vašu IP adresu), kako bi bila pozicionirana baš na onom mjestu u skeniranju na kojem je želite\&. Ako postavite +ME +na 6\&. mjesto ili kasnije, neki uobičajeni detektori port skenova (poput alata "scanlogd" firme Solar Designer\*(Aqs) uopće neće pokazati Vašu IP adresu\&. Ukoliko ne kkoristite +ME +opciju, Nmap će staviti vašu IP adresu na proizvoljno mjesto\&. +.sp +Imajte na umu da hostovi koje navodite kao mamce moraju biti upaljeni, jer ćete inače slučajno napasti host koji skenirate Syn flood napadom\&. Isto tako poprilično je lako ustanoviti tko vas skenira ako samo jedan host od navedenih uistinu postoji na mreži\&. Možete koristiti IP adrese umjesto imena (kako vas mamci ne bi vidjeli u svojim name server logovima)\&. +.sp +Mamci se koriste u inicijalnom ping skenu (korištenjem ICMP, SYN, ACK ili bilo kojeg drugog načina) kao i za trajanja stvarnog skena portova\&. Mamci se također koriste i kod udaljenog otkrivanja operativnog sustava (\fB\-O\fR)\&. Mamci NE rade s otkrivanjem verzije ili TCP connect() skena\&. +.sp +Činjenica je da će korištenje previše mamaca usporiti skeniranje i potencijalno ga učiniti manje točnim\&. Isto tako, neki ISP\-ovi će filtrirati lažirane pakete, ali većina ih ne zabranjuje\&. +.RE +.PP +\fB\-S <IP_Address>\fR (Lažiraj ishodišnu adresu) +.RS 4 +U nekim situacijama Nmap neće moći ustanoviti vašu ishodišnu IP adresu (Nmap će vam reći ako dođe do toga)\&. U tom slučaju koristite opciju +\fB\-S\fR +s IP adresom mrežnog adaptera preko kojeg želite poslati paket\&. +.sp +Još jedna mogućnost korištenja ove opcije je lažirati sken kako bi ciljano računalo mislilo da ga skenira +\fInetko drugi\fR\&. Zamislite firmu koju konstantno skenira konkurencija! +\fB\-e\fR +opcija j eobično potrebna za ovu namjenu i +\fB\-P0\fR +je također preporučeno\&. +.RE +.PP +\fB\-e <interface>\fR (koristi navedenu mrežnu karticu) +.RS 4 +Ova opcija kaže Nmap\-u koju mrežnu karticu da koristi za slanje i primanje paketa\&. Nmap bi to trebao otkriti automatski, a sam će vam reći ako to ne uspije\&. +.RE +.PP +\fB\-\-source\-port <portnumber>;\fR \fB\-g <portnumber>\fR (Lažiraj broj ishodišnog porta) +.RS 4 +Iznenađujuće česta greška je samo vjerovanje prometu koji dolazi s određenog porta\&. Jednostavno je shvatiti odakle to dolazi\&. Administrator podesi novi novcati vatrozid i najednom je obasut pritužbama korisnika kako su im aplikacije prestale raditi\&. Čak štoviše, možda je prestao raditi i DNS, jer UDP DNS odgovori s vanjskih servera više ne mogu ući u mrežu\&. FTP je još jedan dobar primjer\&. Kod aktivnih FTP prijenosa, FTP pokuša uspostaviti vezu nazad prema klijentu da bi poslao zatraženu datoteku\&. +.sp +Postoje sigurna rješenja tih problema, često u obliku proxy\-a na aplikacijskom nivou ili modula na vatrozidu koji parsaju protokol\&. Nažalost postoje i lakša, manje sigurna rješenja\&. Vidjevši da DNS odgovori dolaze s porta 53 i aktivni FTP s porta 20, mnogi su administratori pali u zamku jednostavno dozvoljavajući ulazni promet s tih portova\&. Obično pretpostavljaju da napadači neće uočiti i iskoristiti takve rupe u vatrozidu\&. U nekim slučajevima administratori smatraju to rješenje kao privremenu zakrpu, dok ne implementiraju bolje rješenje, a onda zaborave na to\&. +.sp +U te zamke ne padaju samo preopterećeni mrežni administratori\&. Mnogo uređaja je isporučeno s takvim nesigurnim pravilima\&. Čak je i Microsoft bio kriv\&. IPSec filter koji dolazi s Windows 2000 i s WIndows XP OS\-om ima implicitno pravilo koje dozvoljava sav TCP i UDP promet s porta 88 (Kerberos)\&. Još jedan dobro poznati primjer je ZOne Alarm osobni vatrozid, koji je do verzije 2\&.1\&.25 dozvoljavao bilo koje dolazne UDP pakete sa ishodišnog porta 53 (DNS) i 67 (DHCP)\&. +.sp +Nmap nudi opcije +\fB\-g\fR +i +\fB\-\-source\-port\fR +(iste su) kako bi iskoristili ovakve slabosti\&. Jednostavno navedite broj porta i Nmap će ga koristiti kao ishodišni port gdje je to moguće\&. Nmap mora koristiti različite portove kako bi neki testovi otkrivanja OS\-a radili ispravno,a DNS zahtjevi ignoriraju opciju +\fB\-\-source\-port\fR, jer se kod toga Nmap oslanja na sistemske biblioteke\&. Većina TCP skenova uključujući i SYN sken podržava ove opcije u potpunosti isto kao i UDP sken\&. +.RE +.PP +\fB\-\-data\-length <number>\fR (Dodaj proizvoljne podatke na pakete koje šalješ) +.RS 4 +U normalnim situacijama Nmap šalje minimalističke pakete koji se sastoje samo od zaglavlja\&. Tako da su Nmap\-ovi TCP paketu u načelu veličine 40 bytova, a ICMP paketi 28 bytova\&. Ova opcija kaže Nmap\-u da doda određenu količinu proizvoljnih bytova u paket koji šalje\&. Paketi koje koristi otkrivanje OS\-a (\fB\-O\fR) nisu zahvaćeni ovom opcijom, dok većina ping skenova i portskenova je\&. To usporava skeniranje, ali ga isto tako čini manje sumnjivim\&. +.RE +.PP +\fB\-\-ttl <value>\fR (Podesi polje IP time\-to\-live) +.RS 4 +Podešava polje time\-to\-live i IPv4 paketima na zadanu vrijednost\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Proizvoljno poredaj hostove koje skeniraš) +.RS 4 +Ova opcija kaže Nmap\-u da pomiješa svaku grupu od 8096 hostova prije nego ih počne skenirati\&. To može učiniti skeniranje manje očitim za većinu sustava za nadgledanje mreže, pogotovo kad ovu opciju kombinirate sa sporim vremenima kašnjenja (engl\&. timing options)\&. Ukoliko želite pomiješati veće grupe, povećajte PING_GROUP_SZ u +nmap\&.h +biblioteci i ponovno kompajlirajte Nmap\&. Alternativno rješenje je da kreirate listu ciljanih IP adresa s list skenom (\fB\-sL \-n \-oN \fR\fB\fInaziv datoteke\fR\fR), pomiješate je s perl skriptom i onda dodate tu listu Nmap\-u s opcijom +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac <mac adresa, prefiks ili naziv proizvođača>\fR (Lažiraj MAC adresu) +.RS 4 +Ova opcija zatraži Nmap da koristi navedenu MAC adresu za sve ethernet frame\-ove koje pošalje\&. Ova opcija podrazumijeva +\fB\-\-send\-eth\fR +opciju kako bi osigurala da Nmap uistinu šalje pakete na nivou etherneta\&. MAC adresa može imati nekoliko formata\&. Ukoliko je string +\(lq0\(rq, Nmap će sam odabrtati proizvoljnu MAC adresu za trajanje sesije\&. Ukoliko je zadani string sačinjen od parnog broja hex znamenaka (gdje su parovi opcionalno odvojenih dvotočkom), Nmap će korisiti tu MAC adresu\&. Ako je upisano manje od 12 znamenaka, Nmap će ostatak nadopuniti s proizvoljnim vrijednostima\&. Ako nije navedena 0 niti hex string, Nmap pregleda datoteku +nmap\-mac\-prefixes +tražeći naziv proivođača koji sadrži navedeni string (case sensitive)\&. Ako se nešto poklopi, Nmap koristi OUI (3 bytni prefix) proizvođača, a ostatak dopuni proizvoljno\&. Ispravni +\fB\-\-spoof\-mac\fR +argumenti su npr\&. +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2, and +Cisco\&. +.RE +.PP +\fB\-\-badsum\fR (Šalji pakete s lažnim TCP/UDP checksumom) +.RS 4 +Ova opcija traži od Nmap\-a da koristi neispravne TCP i UDP checksume za pakete koje šalje na ciljano računalo\&. Kako skoro svaki IP stack odbacuje takve pakete, svaki odgovor koji dobijete najvjerovatnie dolazi od vatrozida ili IDS sustava koji nisu provjeravali checksum\&. Za više detalja o ovoj tehnici, pogledajte: +\m[blue]\fB\%https://nmap.org/p60-12.txt\fR\m[]\&. +.RE +.SH "IZVJEŠTAJI" +.PP +Svaki sigurnosni alat je koristan onoliko koliko dobar izvještaj ponudi\&. Kompleksni testovi i algoritmi su od malo koristi ako njihov rezultat nije predstavljen na organiziran i razumljiv način\&. Obzirom na različite načine korištenja Nmap\-a od strane ljudi i drugih programa, jedan format ne može zadovoljiti sve, tako da Nmap nudi više formata izvještaja, uključujući interaktivni mod koji direktno možete pročitati i XML kako bi ga kasnije mogli pregledavati i analizirati drugi automatizirani alati\&. +.PP +Uz to što nudi različite formate izvještaja, Nmap nudi opcije za upravljanje količinom prikazanih informacija, kao i poruke za debugiranje\&. Izvještaji mogu biti standardni (na ekran op prev\&.) ili spremljeni u datoteke, u koje Nmap može dodavati podatke ili ih prepisati\&. Datoteke u koje se spremaju rezultati taskođer mogu biti korištene za prekinute skenove koje ste nastavili\&. +.PP +Nmap nam nudi izvještaje u 5 različitih formata\&. Defaultni se zove +interaktivni izvješ taj +i poslan je na standardni izlaz (sdtout) (zaslon računala, op\&. prev\&.)\&. Također postoji i +normalni izvještaj +koji je sličan +interaktivnom +s tim da prikazuje manje informacija i upozorenja, jer je predviđen za kasniju analizu, a ne trenutnu\&.\&. +.PP +XML izvještaj je jedan od najbitnijih, jer ga lako možete konvertirati u HTML, može lako biti pregledavan pomoću programa poput Nmap\-ovog grafičkog korisničkog sučelja, te može biti importiran u bazu podataka\&. +.PP +Dva preostala tipa izvještaja su jednostavni +grepabilni izvještaj +koji uključuje većinu informacija o hostu u jednoj liniji i +sCRiPt KiDDi3 Izvj3št4j +za korisnike koji se smatraju |<\-r4d\&. +.PP +Dok je interaktivni izvještaj defaultni i nema komandnolinijskih opcija, preostale 4 opcije koriste istu sintaksu\&. Mogu preuzeti jedan parametar, a to je naziv datoteke u koji će biti pohranjeni rezultati\&. Možete navesti više različitih formata, ali svaki od njih smijete navesesti samo jednom\&. Npr\&. želite gledati normalni izvještaj za sebe, dok istovremeno želite razultate pohraniti i u XML datoteku, za kasniju programsku analizu\&. To možete postići opcijama +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Iako su u ovom poglavlju korištena imena poput +myscan\&.xml +zbog jasnoće, preporučeno je korištenje određenijih i jasnijih imena\&. Imena koja ćete odabrati ovise o vašim željama i navikama, mada osobno koristim dugačka imena u kojima se nalazi datum skeniranjai nekoliko riječi koje opisuju što je u stvari skenirano, a sve to pohranim u direktorij nazvan imenom tvrtke koju skeniram\&. +.PP +Iako navedene opcije spremaju rezultat u datoteke, Nmap i dalje ispisuje interaktivni izvještaj na zaslon računala\&. Npr\&. naredba +\fBnmap \-oX myscan\&.xml target\fR +sprema rezultate skena u XML datoteku imenom +myscan\&.xml +i također ispisuje na zaslon računala ono što bi ispisao da opcija +\fB\-oX\fR +nije bila navedena\&. Ovo možete promijeniti dodajući znak "\-" (minus op\&. prev\&.) kao parametar jednom od tipova izvještaja, što će prisiliti Nmap da deaktivira interaktivni izvještaj i umjesto njega na stdout pošalje format koji ste naveli\&. Tako će naredba +\fBnmap \-oX \- target\fR +posalti samo XML na stdout\&. Ozbiljne greške će i dalje biti ispisane na normalni tok grešaka \- stderr\&. +.PP +Za razliku od nekih Nmap\-ovih opcija, razmak između opcije za naziv log datoteke (poput +\fB\-oX\fR) i naziva datoteke ili znamka minus je obavezan\&. Ukoliko ga izostavite, npr\&. napišete +\fB\-oG\-\fR +ili +\fB\-oXscan\&.xml\fR, Nmap će napraviti datoteke +\fInormalnog formata \fR +imenom +G\- +i +Xscan\&.xml\&. +.PP +Nmap također nudi i opcije za upravljanje količinom prikazanih informacija i opcije da doda podatke u postojeću datoteku , a ne da je prepiše\&. Sve navedene opcije opisane su u daljnjem tekstu: +.PP +\fBFormati Nmap\-ovih izvještaja\fR +.PP +\fB\-oN <filespec>\fR (Normalni izvještaj) +.RS 4 +Zahtjeva da +normalni izvještaj +bude spremljen u navedeno ime\&. Kao što je opisano gore u tekstu, to se malo razlikuje od +interactivnog izvještaja\&. +.RE +.PP +\fB\-oX <filespec>\fR (XML izvještaj) +.RS 4 +XML izvještaj +će biti pohranjen u navedenu datoteku\&. Nmap ima i definiciju tipa dokumenta (engl Document Type Definition) kratica: DTD koja dozvoljava XML parserima da provjere Nmap\-ov XML izvještaj\&. Iako je primarno namijenjeno za programsko korištenje, može pomoći i ljudima da interpretiraju Nmap\-ov XML izvještaj\&. DTD definira ispravne elemente formata i često navodi atribute i vrijednosti koje mogu poprimiti\&. Najsvježija verija je uvijek dostupna na: +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]\&. +.sp +XML nudi stabilan format koji je lako čitljiv od strane programa\&. Besplatni XML parseri su dostupni za većinu kompjutorskih jezika, uključujući C/C++, Perl, Python i Java\-u\&. Čak postoje i poveznice za većinu tih jezika koje omogućuju direktno interpretiranje Nmap\-ovih izvještaja\&. Primjeri su: +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[9]\d\s+2 +i +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[10]\d\s+2 +u Perlu i CPAN\-u\&. U većini slučajeva kad neka ozbiljnija aplikacija komunicira s Nmap\-om, XML je željeni format\&. +.sp +XML izvještaj se poziva na XSL stilove, koji mogu biti korišteni za formatiranje rezultata u HTML\&. Najjednostavniji način je da jednostavno učitate XML izvještaj u web preglednik poput firefox\-a ili IE\-a\&. Defaultno će to raditi samo na računalu nakojem ste pokrenuli nmap (ili na računalu koje je slično konfigurirano), jer je +nmap\&.xsl +hardkodiran\&. Koristite opciju +\fB\-\-webxml\fR +ili +\fB\-\-stylesheet\fR +kako bi kreirali prenosive XML datoteke koje prikazuju podatke u HTML\-u na bilo kojem računalu spojenom na web\&. +.RE +.PP +\fB\-oS <filespec>\fR (ScRipT KIdd|3 izvještaj) +.RS 4 +Script kiddie izvještaj je poput interaktivnog s tim d je naknadno obrađen kako bi bolje odgovarao l33t HaXXorZ koji je prije pazio na Nmap zbog njegovog konstantnog pisanja velikih slova i spelinga\&. Osobe koje ne razumiju humor (prije nego me počnu napadati), trebale bi shvatiti da ova opcija tu da bi ismijavala script kiddie\-je, a ne da bi im +\(lqpomagala\(rq\&. +.RE +.PP +\fB\-oG <filespec>\fR (Grepabilni izvještaj) +.RS 4 +Ovaj format zvještaja je obrađen zadnji jer nije previše popularan\&. XML je mnogo moćniji i odgovara većini iskusnih korisnika\&. XML je format za koji postoji hrpa izvrsnih parsera, dok je grepabilni izvještaj moj osobni mali hack\&. XML je proširiv i podržava nove stvari koje budu ugrađene u Nmap, dok je to često ispušteno u grepabilnom izvještaju, jer nema mjesta za njih\&. +.sp +No ipak, grepabilni izvještaj je poprilično popularan\&. To je jednostavni format koji prikazuje svakog hosta na jednoj liniji i može ga se lako pretraživati standardnim UNIX alatima, poput grep\-a, awk\-a, cut\-a, sed\-a, diff\-a i Perl\-a\&. Čak ga i ja koristim za jednokratne testove iz komandne linije\&. Pronaći sve hostove koji imaju otvoren ssh port ili se na njima vrti Solaris je vrlo lako pomoću grep naredbe, a to pak može biti poslano awk ili cut naredbi da bi se prikazala željena polja\&. +.sp +Grepabilni izvještaj sastoji se od komentara (linija koje počinju s pound znakom (#)) i ciljanih linija\&. Ciljana linija sadrži kombinaciju od 6 imenovanih polja, odvojenih tabovima i iza njih dolazi dvotočka\&. Polja su: +Host, +Ports, +Protocols, +Ignored State, +OS, +Seq Index, +IPID, and +Status\&. +.sp +Najvažnije od tih polja je obično +Ports, koje daje datalje o svakom zanimljivom portu\&. To je zarezom odvojena lista portova\&. Svaki zapis o portu predstavlja jedan zanimljivi port i ima oblik sedam podpolja odvojenih slash znakom (/)\&. Podpolja su: +Port number, +State, +Protocol, +Owner, +Service, +SunRPC info, and +Version info\&. +.sp +Kao i kod XML formata, više informacija možete naći na sljedećem linku: +\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]\&. +.RE +.PP +\fB\-oA <basename>\fR (Izvještaj u svim formatima) +.RS 4 +Radi jednostavnosti, možete navesti opciju +\fB\-oA \fR\fB\fIbasename\fR\fR, kako bi spremili rezultate u normalnom, XML i grepabilnom formatu odjednom\&. spremljeni su u datoteke imanom +\fIbasename\fR\&.nmap, +\fI basename\fR\&.xml i +\fIbasename\fR\&.gnmap\&. Kao i kod većine programa možete staviti prefiks ispred naziva datoteke kako bi je spremili u željeni direktorij, kao npr\&. +~/nmaplogs/foocorp/ +na UNIX\-u ili +c:\ehacking\esco +na Windows platformi\&. +.RE +.PP +\fBOpcije za prikaz količine informacija i debugiranje\fR +.PP +\fB\-v\fR (povećaj količinu prikazanih informacija) +.RS 4 +Povećava nivo količine prikazanih informacija, te Nmap prikazuje više informacija o tekućem sken procesu\&. Otvoreni portovi su prikazani odmah čim su otkrivani i Nmap prikazuje procjenu koliko vremena mu treba za završetak posla ako procijeni da će sken trajati više od nekoliko minuta\&. Ukoliko želite još više informacija, upišite ga dvaput\&. Korištenje \-v opcije više od dva puta nema nikakav učinak\&. +.sp +Većina promjena koje se dobiju korištenjem ove opcije utječu na normalni i script kiddie izvještaj\&. Ostali izvještaji su namijenjeni za automatiziranu obradu, pa Nmap u njima može navesti dodatne informacije bez suvišnog opterećivanja korisnika\&. Ipak, postoji nekoliko promjena u ostalim modovima gdje veličinu izvještaja možete osjetno smanjiti ne navodeći neke detalje\&. Npr\&. komentirana linija u gerepabilnom formatu, koja daje listu svih skeniranih portova isprintana je samo u verose modu, jer može biti poprilično velika\&. +.RE +.PP +\fB\-d [level]\fR (povećaj ili podesi nivo debugiranja) +.RS 4 +Čak i kad verbose mod ne daje dovoljno informacija, debuging Vam stoji na raspolaganju, kako bi vas preplavio s još više podataka! Kao i kod opcje verbose (\fB\-v\fR), uključujete ga s opcijom (\fB\-d\fR), a sam nivo debugiranja možete povećati navođenjem opcije više puta\&. Čak možete navesti nivo debugiranja i navođenjem brojke nakon opcije (\fB\-d\fR)\&. Npr\&. (\fB\-d9\fR) podešava nivo debugiranja 9\&. To je najviši mogući nivo i kao rezultat će dazi tisuće linija osim ako ste pokrenuli jako jednostavan sken s par ciljeva i portova\&. +.sp +Debuging izvještaj je koristan kad sumnjate da u Nmap\-u postoji greška ili ako ste jednostavno zbunjeni oko toga što Nmap radi i zašto\&. Kako je ova opcija najviše namjenjena developerima, debug linije nisu uvijek samoobjaš njavajuće\&. Možete dobiti nešto poput: Timeout vals: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Ukoliko ne razumijete liniju, jedini smjer kojim možete nastaviti je da je ignorirate, potražite u izvornom kodu programa ili zatražite pomoć na razvojnoj listi (nmap\-dev)\&. Neke linije su samoobjašnjavajuće, ali poruke postaju sve čudnije što je nivo debugiranja veći\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Prati pakete i podatke koji su poslani/primljeni) +.RS 4 +Nmap ispiše informaciju o svakom poslanom i primljenom paketu\&. Ovo se najčešće koristi za debugiranje, ali je isto tako dobar način za nove korisnike da saznaju što Nmap radi ispod haube\&. Kako bi izbjegli ispisivanje tisuća linija, odaberite ograničeni broj portova koje skenirate, npr\&. +\fB\-p20\-30\fR\&. Ako Vas pak zanima samo što radi podsustav otkrivanja verzije, radije koristite opciju +\fB\-\-version\-trace\fR\&. +.RE +.PP +\fB\-\-iflist\fR (Izlista mrežne adaptere i rute) +.RS 4 +Ispiše popis mrežnih adaptera i ruta kako ih vidi Nmap\&. To je korisno u debugiranju problema s rutanjem ili krivog prepoznavanja uređaja (kao kad recimo Nmap tretira PPP konekciju kao ethernet)\&. +.RE +.PP +\fBOstale opcije izvještaja\fR +.PP +\fB\-\-append\-output\fR (Dodaj rezultate u postojeći file umjesto da ih prepišeš) +.RS 4 +Kad navedete naziv datoteke nakon opcija poput +\fB\-oX\fR +ili +\fB\-oN\fR, datoteka istog imena je prepisan aako postoji\&. Ukoliko želite zadržati sadržaj postojeće datoteke i u njega dodati nove rezultate, navedite +\fB\-\-append\-output\fR +opciju\&. Svie navedene datoteke u tom pokretanju Nmap\-a će biti sačuvane i u njoh će biti dodani novi podaci\&. To ne radi dobro s XML datotekama (\fB\-oX\fR), jer tako dobivena datoteka neće biti ispravna dok je ručno ne prepravite\&. +.RE +.PP +\fB\-\-resume <filename>\fR (Nastavi prekinut sken) +.RS 4 +Neka temeljita Nmap skeniranja mogu potrajati i danima\&. Takvi skenovi ne uspiju uvijek odraditi posao do kraja\&. Zabrane mogu spriječiti Nmap da radi tijekom radnih sati, mreža može pasti, računalo na kojem je pokrenut Nmap može biti resetirano (planski ili neplanski) ili se čak sam Nmap može srušiti\&. Čak i osoba koja je pokrenula Nmap sken može biti ta koja će ga prekinuti korištenjem tipaka +ctrl\-C\&. Ponovno pokretanje cijelog skena nije isplativo\&. Na sreću, ukoliko ste spremali normalne (\fB\-oN\fR) ili grepabilne (\fB\-oG\fR) logove, možete zatraž iti Nmap da nastavi skeniranje tamo gdje je stalo\&. Jednostavno navedite opciju +\fB\-\-resume\fR +i proslijedite naziv datoteke normalnom ili grepabilnom načinu skeniranja\&. Nisu dozvoljeni nikakvi drugi argumenti, jer će Nmap pretražiti postojeću datoteku i koristiti iste opcije koje je koristio i prije\&. jednostavno pozovite Nmap: +\fBnmap \-\-resume\fR\fB\fIlogfilename\fR\fR\&. Nmap će dodati nove rezultate u postojeću datoteku\&. Nastavljanje ne podržava XML izvještaje, jer bi spajanje dvije datoteke u jednu ispravnu bilo prekomplicirano\&. +.RE +.PP +\fB\-\-stylesheet <putanja ili URL>\fR (Podesi XSL stil za transformiranje XML izvještaja) +.RS 4 +Nmap dolazi s XSL stilom nazvanim +nmap\&.xsl +koji je namijenjen za gledanje ili prevođenje XML izvještaja u HTML\&. XML izvještaj sadrži +xml\-stylesheet +naredbu koja pokazuje na +nmap\&.xml +datoteku gdje je inicijalno instalitrana od Nmap\-a (ili u trenutni direktorij u kojem je pokrenut Nmap kad je u pitanju Windows OS)\&. Jednostavno otvorite Nmap\-ov XML izvještaj u neki noviji web preglednik i on bi trebao dohvatiti +nmap\&.xsl +i iskoristiti ga za prikaz rezultata\&. Ukoliko ž elite koristiti neki drugi stil, navedite ga kao argument opciji +\fB\-\-stylesheet\fR\&. Morate navesti kompletnu putanju do njega ili URL\&. Npr\&. \-\-stylesheet +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. Ova naredba kaže pregledniku da učita zadnju verziju stila s isecure\&.org\&. Opcija +\fB\-\-webxml\fR +čini isto to bez potrebe pretjeranog pisanja i pamćenja linka\&. Učitavanje XSL stila sa stranica insecure\&.org omogućava gledanje rezultata na jednostavniji način čak i računalima koja nemaju instaliran Nmap (a samim tim i +nmap\&.xsl)\&. Tako da je URL najčešće i korisniji, no, nmap\&.xsl\-a koji se nalazi na datotečnom sustavu koristi se ukoliko želite imati više privatnosti\&. +.RE +.PP +\fB\-\-webxml\fR (Učitaj stil sa stranice Insecure\&.Org) +.RS 4 +Ovo je jednostavno kratica za +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl \fR\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Izbaci deklaraciju stila iz XML\-a) +.RS 4 +Ukoliko ne želite da Nmap poveže XSL stil s XML\-om, odaberite ovu opciju\&. U tom slučaju se ne koristi naredba +xml\-stylesheet +.RE +.SH "RAZNE OPCIJE" +.PP +Ovo poglavlje opisuje neke važne (i neke ne toliko važne) opcije koje jednostavno ne spadaju nigdje drugdje\&. +.PP +\fB\-6\fR (Uključi skeniranje IPv6 protokola) +.RS 4 +Od 2002\&. godine, Nmap nudi i podršku za IPv6 svojih najpopularnijih svojstava\&. Točnije, ping scan ( samo TCP), connect() scan i otkrivanje verzije podržavaju IPv6\&. Sintaksa je jednaka osim što dodate opciju +\fB\-6\fR\&. Naravno, morate koristiti IPv6 sintaksu IP adrese ako navedete IP Adresu,a ne naziv hosta\&. Adresa može izgledati kao +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, pa je stoga preporučeno korištenje host imena\&. Izvještaj izgleda isto osim što je na liniji +\(lq zanimljivih portova\(rq +IPv6 IP adresa\&. +.sp +Iako IPv6 nije pregazila svijet ipak se poprilično koristi u nekim zemljama (osobito Azijskim), a i većina modernih OS\-ova ima ugrađenu podršku\&. Da bi mogli koristiti Nmap s IPv6 protokolom i ciljano računalo i vaše računalo moraju biti podešeni za korištenje IPv6\&. Ukoliko vaš ISP (poput većine drugih) ne dodjeljuje IPv6 IP adrese, postoje oni koji nude besplatno IPv6 tuneliranje, što poprilično dobro radi s Nmap\-om\&. Jedan od boljih davatelja takvih usluga je BT Exact\&. Također sam koristio i usluge tvrtke Hurricane Electric +\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]\&. 6to4 tuneli su još jedan popularan besplatan pristup\&. +.RE +.PP +\fB\-A\fR (opcija agresivnog skeniranja) +.RS 4 +OVa opcija omogućuje dodatne napredne i agresivne opcije\&. Još uvijek nisam u potpunosti odlučio na š to će se sve odnositi\&. Trenutno ova opcija omogućuje OS detekciju (\fB\-O\fR) i skeniranje verzije (\fB\-sV\fR)\&. U budućnosti mogu biti dodane nove mogućnosti\&. Poanta je u tome da se ljudima omogući pristojan set scan opcija bez potrebe za pamćenjem velikog broja zastavica (engl\&. flag)\&. Ova opcija samo uključuje navedene stvari bez podešavanja vremena odaziva (engl\&. timing) (poput +\fB\-T4\fR) ili verbose opcija (\fB\-v\fR) kojU najvjerovatnije također želite navesti\&. +.RE +.PP +\fB\-\-datadir <directoryname>\fR (Navedi korisnički definiranu lokaciju Nmap\-ovih datoteka) +.RS 4 +Nmap dohvaća neke podatke tijekom izvršavanja programa iz datoteka: +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes, and +nmap\-os\-fingerprints\&. Najprije ih traži u direktoriju navedenom u +\fB\-\-datadir\fR +opciji (ako postoji)\&. Sve datoteke koje se ne nalaze u navedenom direktoriju potražit će u direktoriju navedenom u NMAPDIR varijabli\&. Nakon toga je na redu +~/\&.nmap +za stvarne i efektivne UID\-e (samo kod POSIX sustava) ili lokacija Nmap izvršne datoteke (samo kod Win32 sustava), te na kraju u kompajliranoj lokaciji poput +/usr/local/share/nmap +ili +/usr/share/nmap\&. Kao posljednju đansu, Nmap će potražiti u tekućem direktoriju\&. +.RE +.PP +\fB\-\-send\-eth\fR (koristi sirove (raw) pakete za slanje preko etherneta) +.RS 4 +Zatraži Nmap da šalje pakete na sirovom (raw) ethernet (data link) sloju umjesto na višem IP (mrež nom) sloju\&. Defaultno, Nmap odabire koja je opcija bolja za platformu na kojoj je pokrenut\&. Sirove utičnice (engl\&. raw sockets) (IP sloj) su obično najefikasnije na UNIX mašinama, dok su ethernet frame\-ovi obavezni na Windows OS\-u (IP sloj), jer je Microsoft izbacio podršku za sirove utičnice\&. Nmap ipak koristi sirove IP pakete na UNIX\-u, bez obzira na ovu opciju, ako nema drugog izbora (recimo kad ste na mreži koja nije ethernet)\&. +.RE +.PP +\fB\-\-send\-ip\fR (Šalji na sirovom (raw) IP sloju) +.RS 4 +Zatraži Nmap da šalje pakete preko sirovih IP utičnica umjesto preko nižih ethernet okvira ( engl\&.frame)\&. To je dodatak opciji +\fB\-\-send\-eth\fR +objašnjenoj malo prije\&. +.RE +.PP +\fB\-\-privileged\fR (Pretpostavka da je korisnik u potpunosti privilegiran (op\&. prev\&. administrator sustava)) +.RS 4 +Kaže Nmap\-u da jednostavno pretpostavi kako je dovoljno privilegiran da može koristiti sirove utičnice (engl\&. raw sockets), snifati pakete i slične radnje koje na UNIX sustavima zahtjevaju root prava\&. Defaultno, Nmap prekida rad, ako su takve radnje zatražene od njega, ali getuid() nije nula (op\&. prev\&. korisnik nema ta prava)\&. +\fB\-\-privileged\fR +opcija je korisna na onim sustavima koji omogućuju neprivilegiranim korisnicima korištenje sirovih paketa (poput Linux kernela isl\&.)\&. Obavezno navedite ovu opciju prije bilo koje druge koja zahtijeva privilegije (poput SYN scan\-a, OS detekcije isl\&.)\&. Alternativa ovoj opciji je NMAP_PRIVILEGED varijabla\&. +.RE +.PP +\fB\-\-noninteractive\fR (Za pokretanje Nmap\-a iz nekog drugog programa) +.RS 4 +Ovu opciju možete navesti kad je Nmap pokrenut od strane neke druge aplikacije\&. Trenutno je jedina razlika u tome što je Runtime interaction (opisano u poglavlju nazvanom +the section called \(lqINTERAKCIJA ZA VRIJEME IZVRŠAVANJA\(rq) isključeno\&. Bez obzira na zbunjujuće slično ime, ova opcija +\fInije\fR +jednostavna suprotnost +\fB\-\-interactive\fR +opciji\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Ispiši broj verzije) +.RS 4 +Ispiše broj verzije Nmap\-a i prekine izvršavanje programa +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Ispiši sumarnu help stranicu) +.RS 4 +Ispiše kratki help ekran s najčešće korištenim mokandama i zastavicama\&. Pokretanje Nmap\-a bez ijednog argumenta napravi isto to\&. +.RE +.SH "INTERAKCIJA ZA VRIJEME IZVRŠAVANJA" +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBBilješka\fR +.ps -1 +.br +.PP +Ova opcija je za sad nedostupna na Windows OS\-u +.sp .5v +.RE +.PP +Tijekom izvršavanja Nmap\-a sve tipke koje pritisnete su uhvaćene\&. To omogućvava interakciju s programom bez da ga zaustavljate u radu\&. Određene specijalne tipke će mijenjati opcije, dok će druge ispisati statusne poruke koje vas obavještavaju o tekućem skenu\&. Konvencija je takva da +\fImala slova povećavaju\fR +količinu ispisa, dok +\fIvelika slova smanjuju\fR +količinu ispisa\&. Ova funkcionalnost može biti isključena navođenjem +\fB\-\-noninteractive\fR +opcije\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Povećaj / smanji količinu prikazanih informacija +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +povećaj / smanji nivo debugiranja +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Uključi / isključi praćenje paketa +.RE +.PP +Bilo što drugo +.RS 4 +Ispiše statusnu poruku poput sljedeće: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "PRIMJERI" +.PP +Ovdje su neki primjeri korištenja Nmap\-a i to od jednostavnih i rutinskih do malo manje kompleksnih i ezoteričnih\&. Korištene su neke stvarne IP adrese i domene kako bi stvar bila malo konkretnija\&. Umjesto njih trebali bi staviti adrese/domene +\fIiz svoje mreže\&.\fR\&. Iako osobno ne smatram da je skeniranje tuđih mreža iligelano i da bi trebalo biti, neki mrežni administratori ne vole nedozvoljeno skeniranje njihovih mreža i mogli bi se žaliti\&. Dobiti dozvolu prije samog čina je u svakom slučaju ispravan postupak\&. +.PP +Za testiranje imate dozvolu skenirati host +scanme\&.nmap\&.org\&. Dozvola vrijedi samo za skeniranje korištenjem Nmap\-a i ne vrijedi za testiranje exploita i DOS (denial of Service) napada\&. Kako ne bi preopteretili mrežu, molim Vas da ne skenirate više od 12\-tak portova dnevno\&. Ukoliko će ovaj host biti napadan na bilo koji način, uklonit ću ga s NET\-a i Nmap će javiti grešku +Failed to resolve given hostname/IP: scanme\&.nmap\&.org\&. Ova dozvola vrijedi i za hostove +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org +itd\&., iako navedeni hostovi za sad ne postoje\&. +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Ova naredba skenira sve rezervirane TCP portove na računalu +scanme\&.nmap\&.org\&. Opcija +\fB\-v\fR +uključuje verbose mod\&.\&. +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Pokreće skriveni (engl\&. stealth) SYN scan prema svakom računalu koje je upaljeno od njih 255 mogućih na mreži +\(lqclass C\(rq +na kojoj se nalazi scanme host\&. Također pokuša ustanoviti koji OS je pokrenut na svakom od otkrivnih (upaljenih) hostova\&. Ovo zahtijeva root prava zbog SYN scan\-a i OS detekcije\&. +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Pokreće enumeraciju hostova i TCP scan na prvoj polovici svakog od 255 mogućih 8 bitnih subneta u mrežnog ID\-a 192\&.168 klase B adresnog prostora\&. Scan provjerava da li je na ciljanim računalima pokrenut sshd, DNS, pop3d, imapd i/ili port 4564\&. Za svaki od navedenih portova koji su otvoreni, pokrenuto je i otkrivanje verzije, kak obi se ustanovilo koja aplikacija je otvorila taj port\&. +.PP +\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR +.PP +Ova naredba zatraži Nmap da nasumično odabere 100 000 hostova i skenira ih u potrazi za web serverom (port 80)\&. Enumeracija hostova je isključena opcijom +\fB\-P0\fR, jer slanje nekoliko sondi kako bi se ustanovilo da li je host upaljen ili ne kad se skenira samo jedan port je ionako nepotrebno\&. +.PP +\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Skenira 4096 IP adresa za web serverom (bez prethodnog pinganja) i sprema izvještaj u grepabilnom iXML formatu\&. +.SH "GREŠKE" +.PP +Poput svog autora niti Nmap nije savršen, no Vi možete pomoći slanjem prijava o greškama, pa čak i pišući patcheve\&. Ukoliko se Nmap ne ponaša onako kako očekujete od njega, najprije ga nadogradite na najnoviju verziju dostupnu na +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Ukoliko je problem i dalje tu, istražite da li je već otkriven i prijavljen\&. Pokušajte "zaguglati" poruku o grešci ili otiđite na Nmap\-dev arhive na +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. Također pročitajte i kompletan manual\&. Ukoliko ništa od toga ne pomogne, pošaljite izvještaj o grešci na +<dev@nmap\&.org>\&. Molim Vas napišite sve što ste do tad otkrili o problemu, te koju verziju Nmap\- imate i koju verziju OS\-a imate\&. Izvještaji o prijavljenim problemima i upiti o korištenju Nmap\-a koji su poslani na dev@nmap\&.org imaju više šansi da budu odgovoreni nego oni poslani direktno Fyodor\-u\&. +.PP +Patchevi za otklanjanje bugova su još i bolji od samih prijava\&. Osnovne upute za kreiranje patch datoteka s promjenama su dostupne na +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]\&. Patchevi mogu biti poslani na nmap\-dev (što je preporučeno) ili direktno Fyodoru\&. +.SH "AUTHOR" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%http://www.insecure.org\fR\m[]) +.PP +Stotine ljudi su doprinjeli u stvaranju Nmap\-a tijekom godina\&. To je navedeno u +CHANGELOG +datoteci koja je distribuirana s Nmap\-om, a dostupna je i na sljedećem linku: +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]\&. +.SH "PRAVNE SMJERNICE" +.SS "Nmap Copyright i licenciranje" +.PP +Nmap sigurnosni skener je (C) 1996\-2005 Insecure\&.Com LLC\&. Nmap je također reigistered trademark Insecure\&.Com LLC\&. Program je besplatan;možete ga redistribuirati a/ili modificirati pod uvjetima GNU General Public License kako je objavljeno od strane Free Software Fondacije;Verzija 2\&. To vam garantira pravo korištenja, modificiranja i redistribuiranja ovog softvera pod određenim uvjetima\&. Ukoliko želite inkorporirati Nmap tehnologiju u svoj softver, možda ćemo vam prodati dodatne licence (kontaktirajte +<sales@insecure\&.com>)\&. Mnogi proizvođači sigurnosnih skenera već imaju licencu Nmap tehnologije poput otkrivanja hostova, skeniranja portova, OS detekcije i otkrivanja servisa/verzije\&. +.PP +Imajte na umu da GPL postavlja važna ograničenja na +\(lqderivirana djela\(rq, ali ne daje detaljne definicije istih\&. Kako bi se izbjegli nesporazumi, za potrebe ove licence, mi smatramo da aplikacija sadrži +\(lq derivirano djelo\(rq, ako čini bilo što od navedenog: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Uključuje izvorni kod iz Nmap\-a +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Čita ili sadrži Nmap datoteke koje imaju copyright, poput +nmap\-os\-fingerprints +ili +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Pokreće Nmap i čita njegove rezultate (za razliku od tipičnih shell ili izvršnih meni aplikacija, koje jednostavno ispišu sirovi Nmap izvještaj i time nisu derivirana djela)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integrira/sadrži/agregira Nmap u neki izvršni instaler, poput onog napravljenog od strane InstallShield\-a\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linka na biblioteku (dll, op\&. prev\&.) ili izvršu datoteku koja radi bilo što od gore navedenog\&. +.RE +.PP +Naziv +\(lqNmap\(rq +je također uključen u to\&. Ova lista nije eksluzivna, ali je navedena kako bi pojasnila našu interpretaciju deriviranih djela s najčešćim primjerima\&. Zabrane se primjenjuju samo u slučaju da uistinu redistribuirate i Nmap\&. Npr\&. mišta vas ne sprječava da napišete i prodate front\-end za Nmap\&. Distribuirajte front end i usmjerite ljude na +\m[blue]\fB\%https://nmap.org/\fR\m[] +kako bi preuzeli Nmap\&. +.PP +Ne smatramo da su to dodatne zabrane povrh GPL\-a, nego samo pojašnjenja toga kako mi interpretiramo +\(lq derivirano djelo\(rq +jer se primjenjuje na naš produkt pod GPL licencom\&. To je slično načinu na koji je Linus Torvalds objavio svoju interpretaciju +\(lqderiviranog djela\(rq +i kako se to odnosi na module linux kernela\&. Naša interpretacija se odnosi samo na Nmap \- ne govorimo o nijednom drugom produktu licenciranom po GPL\-u\&. +.PP +Ukoliko imate bilo kakvo pitanje o GPL licenciranju i restrikcijama kod korištenja Nmap\-a u ne GPL djelima, rado ćemo Vam pomoći\&. Kao što je gore navedeno, također nudimo i alternativne licence za integriranje Nmapa u neke druge aplikacije i uređaje\&. Takvi ugovori su prodani mnogim sigurnosnim izdavačima i generalno sadrže stalnu licencu kao i uslugu prioritetne podrške, a uz to financijski pomažu kontinuirani razvoj Nmap tehnologije\&. Molimo Vas da poš aljete mail na +<sales@insecure\&.com> +za daljne informacije\&. +.PP +Kao posebno izuzeće od GPL uvjeta, Insecure\&.Com LLC daje dozvolu za povezivanje koda ovog programa s bilo kojom verzijom OpenSSL biblioteke koja je distribuirana pod sličnom licencom kao i s licencom koja se nalazi u datoteci Copying\&.OpenSSL i distribuirati povezanu kombinaciju oba programa\&. Morate poštivati GNU GPL na svim područjima za bilo koji kod koji nije OpenSSL\&. Ukoliko modificirate navedenu datoteku možete proširiti to izuzeće i na svoju verziju programa, ali niste obavezni to napraviti\&. +.PP +Ukoliko dobijete navedene datoteke s pismenom licencom ili ugovorom koji navodi drukčije uvjete od navedenih gore, onda je ta alternativna licenca jača i preuzima primat\&. +.SS "Creative Commons licenca za ove upute" +.PP +Nmap referentne upute su (C) 2005 Insecure\&.Com LLC\&. Time su stavljene pod verziju 2\&.5 +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[3]\d\s+2\&. To Vam omogućuje da redistribuirate, modificirate tekst po želji, dok god navodite druge izvore koji su radili na njemu\&. Osim toga, možete tretirati ovaj dokument kao da spada pod istu licencu kao i Nmap (obajšnjeno prije)\&. +.SS "Dostupnost izvornog koda i doprinos zajednici (engl\&. comunity)" +.PP +Izvorni kod je dostupan s programom zato jer vjerujemo da korisnik ima pravo znati što uistinu program radi prije nego će ga pokrenuti\&. To Vam isto tako omogućava provjeru softvera na sigurnosne rupe (do sad nije pronađena niti jedna)\&. +.PP +Izvorni Vam kod isto tako omogućava prijenos Nmap\-a na nove platforme, popravljanje grešaka i dodavanje novih mogućnosti\&. Potaknuti ste da promjene pošaljete na +<fyodor@nmap\&.org> +kako bi eventualno bile inkorporirane u buduće verzije glavne distribucije\&. Slanjem promjena Fyodoru ili nekom na Insecure\&.Org mailing listi developera, podrazumijeva se da Fyodoru i Insecure\&.Org\-u dajete puna prava na korištenje, modificiranje i relicenciranje koda\&. Nmap će uvijek biti dostupan kao open source, ali to je bitno jer je nemogućnost relicenciranja koda stvorila ogromne probleme nekim drugim besplatnim softverskim projektima (poput KDE\-a i NASM\-a)\&. Također povremeno relicenciramo kod drugim tvrtkama kako je navedeno gore\&. Ukoliko želite definirati posebne licenčne uvjete za svoj doprinos, navedite to odmah kad ih pošaljete\&. +.SS "Nema garancije" +.PP +Program je distribuiran u nadi da će bit koristan, ali BEZ IKAKVE GARANCIJE; čak i bez pretopstavljene garancije na PRIHVATLJIVU KVALITETU ili SPOSOBNOST ZA ODREĐENE ZADAĆE\&. Pogledajte GNU General Public License za više detalja na +\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[] +ili u COPYING datoteci uključenoj s Nmap distribucijom\&. +.PP +Treba uzeti u obzir da je Nmap povremeno srušio loše napisane aplikacije, TCP/IP stackove, pa čak i operativne sustave\&. Iako je to ekstremno rijetko, važno je za znati\&. +\fINmap nikad ne bi trebalo pokrenuti na kritičnim sustavima\fR +osim ako ste spremni prihvatiti da sustav neko vrijeme ne radi\&. Ovdje potvrđujemo da Nmap može srušiti vaš sustav ili mrežu i ograđujemo se od bilo kakve odgovornosti za bilo kakvu štetu ili problem prouzročen od Nmap\-a\&. +.SS "Neispravno korištenje" +.PP +Zbog male mogućnosti pada sustava i zbog toga što neki crno šeširaši vole koristiti Nmap za prikupljanje informacija, postoje administratori koji se uznemire i mogu se žaliti kad primjete da im je mreža skenirana\&. Stoga je uvijek preporučeno zatražiti dozvolu prije nego započnete i lagani scan mreže\&. +.PP +Nmap nikad ne bi trebao biti instaliran sa specijalnim privilegijama (npr\&. suid root) iz sigurnosnih razloga\&. +.SS "Softver drugih tvrtki" +.PP +Ovaj produkt sadrži softver razvijen od +\m[blue]\fBApache Software Fondacije\fR\m[]\&\s-2\u[11]\d\s+2\&. Modificirana verzija +\m[blue]\fBLibpcap prijenosne paket capture biblioteke\fR\m[]\&\s-2\u[12]\d\s+2 +je distribuirana zajedno s Nmap\-om\&. Windows verzija Nmap\-a koristi obradu libpcap\-a \- +\m[blue]\fBWinPcap\fR\m[]\&\s-2\u[13]\d\s+2\&. Podrška za regularne izraze je dana od +\m[blue]\fBPCRE biblioteke\fR\m[]\&\s-2\u[14]\d\s+2 +koja je open source softver\&. Napisao ga je Philip Hazel\&. Neke funkcije sirovog netvorkinga koriste +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[15]\d\s+2 +mrežnu biblioteku koju je napisao Dug Song\&. Modificirana verzija je distribuirana s Nmap\-om\&. Nmap se opcionalno može povezati s +\m[blue]\fBOpenSSL kriptografskim alatima\fR\m[]\&\s-2\u[16]\d\s+2 +za podršku detekcije SSL verzije\&. Sav gore navedeni softver se slobodno redistribuira pod softverskom licencom po BSD\-u\&. +.SS "Klasifikacija kontrole izvoza u US\-u\&." +.PP +Klasifikacija kontrole izvoza u US\-u: Insecure\&.Com LLC vjeruje da Nmap spada pod US ECCN (export control clasification number \- klasifikacijski broj kontrole izvoza) 5D992\&. Ta se kategorija zove +\(lqSoftver informacijske sigurnosti koji nije kontroliran ECCN\-om 5D002\(rq\&. Jedina zabrana te klasifikacije je AT (anti terorizam), koja se primjenjuje na gotovo svu robu i zabranjuje izvoz hrpi lažljivih zemalja, poput Iran\-a i Sjeverne Koreje (op\&. prev\&. iliti onih s kojima Ameri nisu dobri)\&. Tako da Nmap ne zahtijeva nikakvu posebnu licencu, dozvolu ili bilo kakvu drugu autorizaciju američke vlade\&. +.SH "BILJEŠKE" +.IP " 1." 4 +.RS 4 +\%https://nmap.org/ +.RE +.IP " 2." 4 +originalne Engleske verije +.RS 4 +\%https://nmap.org/man/ +.RE +.IP " 3." 4 +Creative Commons Attribution Licence +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 4." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 5." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 6." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 7." 4 +TCP RFC +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 8." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 9." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP "10." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP "11." 4 +Apache Software Fondacije +.RS 4 +\%http://www.apache.org +.RE +.IP "12." 4 +Libpcap prijenosne paket capture biblioteke +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "13." 4 +WinPcap +.RS 4 +\%http://www.winpcap.org +.RE +.IP "14." 4 +PCRE biblioteke +.RS 4 +\%http://www.pcre.org +.RE +.IP "15." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "16." 4 +OpenSSL kriptografskim alatima +.RS 4 +\%http://www.openssl.org +.RE diff --git a/docs/man-xlate/nmap-hu.1 b/docs/man-xlate/nmap-hu.1 new file mode 100644 index 0000000..7feb41e --- /dev/null +++ b/docs/man-xlate/nmap-hu.1 @@ -0,0 +1,2248 @@ +'\" t +.\" Title: nmap +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 17/05/2023 +.\" Manual: Nmap Referencia Útmutató +.\" Source: Nmap +.\" Language: Hungarian +.\" +.TH "NMAP" "1" "17/05/2023" "Nmap" "Nmap Referencia Útmutató" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NÉV" +nmap \- Hálózat feltérképező és biztonsági/kapu letapogató eszköz +.SH "ÁTTEKINTÉS" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fILetapogatási\ típus\fR...] [\fIBeállítások\fR] {\fIcél\ meghatározása\fR} +.SH "LEÍRÁS" +.PP +Az Nmap („Network Mapper\(rq) egy hálózatfelderítésre és biztonsági ellenőrzésre használható, nyílt forráskódú eszköz\&. Nagy hálózatok gyors feltérképezésére tervezték, ennek ellenére jól használható egyetlen számítógép ellenőrzésére is\&. Az Nmap egy új módon használja a nyers IP csomagokat annak kiderítésére, hogy mely számítógépek érhetők el a hálózaton, ezek a számítógépek milyen szolgáltatásokat (alkalmazás neve és változata) kínálnak fel, milyen operációs rendszert futtatnak (és annak melyik változatát), milyen csomagszűrőt/tűzfalat használnak, valamint számtalan egyéb jellemzőre\&. Noha az Nmap programot általában biztonsági ellenőrzésekre használják, sok hálózati rendszergazda hasznosnak fogja találni a napi rutinfeladatokban is, mint például a hálózati leltár elkészítésében, a szolgáltatások frissítésének ütemezésében, vagy egy számítógép/szolgáltatás üzemidejének meghatározásában\&. +.PP +Az Nmap kimenete egy lista a vizsgált célpontokról, mindegyikről kiegészítő információkkal, melyek részletessége a beállított paraméterektől függ\&. Ezek közül az információk közül a legfontosabb az +„érdekes kapuk táblázata\(rq\&. Ez a táblázat tartalmazza a kapuszámot és a protokollt, a szolgáltatás nevét és az állapotot\&. Az állapot lehet +nyitott (open), +szűrt (filtered), +zárt (closed), vagy +nem szűrt (unfiltered)\&. A nyitott (open) azt jelenti, hogy a célállomáson egy alkalmazás ezen a kapun kapcsolódásra/csomagokra vár\&. A +szűrt (filtered) +azt jelenti, hogy egy tűzfal, szűrő vagy egyéb hálózati akadály lezárja a kaput, így az Nmap nem tudja megmondani, hogy ez +nyitott (open) +vagy +zárt (closed)\&. A +zárt (closed) +kapukon nincs várakozó alkalmazás, ennek ellenére ezek bármikor nyitva lehetnek\&. A kapuk akkor kerülnek a +szűretlen (unfiltered) +kategóriába, ha válaszolnak ugyan az Nmap próbáira, de az Nmap nem tudja meghatározni, hogy nyitottak (open) vagy zártak (closed)\&. Az Nmap a +nyitott|szűrt (open|filtered) +és a +zárt|szűrt (closed|filtered) +kombinációt használja, amikor nem tudja meghatározni, hogy a kapu melyik állapotban van\&. A kaputáblázat tartalmazhatja a figyelő program nevét és változatszámát is, amennyiben a paraméterek között kérte ennek felderítését\&. Amikor IP protokoll ellenőrzést kér (\fB\-sO\fR), az Nmap a kapuk listája helyett a támogatott IP protokollokról közöl információt\&. +.PP +Az érdekes kapuk táblázatának kiegészítéseként az Nmap további információkat tud szolgáltatni a célállomásról, beleértve a fordított DNS neveket, feltételezéseket az operációs rendszerről, az eszközök típusa és a MAC címek\&. +.PP +Az +1. példa - Egy jellegzetes Nmap letapogatás +feliratú ábrán egy tipikus Nmap letapogatás látható\&. Ebben a példában csak a +\fB\-A\fR +paramétert használtuk az operációs rendszer és a szolgáltatások érzékelésére, a parancsfájl (script) alapú ellenőrzésre és az útvonal feltárására; a +\fB\-T4\fR +paramétert a gyorsabb végrehajtásra; végül pedig a két célállomás nevét\&. +.PP +\fB1. példa - Egy jellegzetes Nmap letapogatás\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org playground + +Starting nmap ( https://nmap\&.org ) +Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X +OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11 +Uptime 33\&.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground\&.nmap\&.org (192\&.168\&.0\&.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios\-ssn +389/tcp open ldap? +445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds +1002/tcp open windows\-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper +5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC port: 5900) +5900/tcp open vnc VNC (protocol 3\&.8) +MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds +.fi +.if n \{\ +.RE +.\} +.PP +Az Nmap legújabb változata a +\m[blue]\fB\%https://nmap.org\fR\m[] +címről tölthető le\&. A legfrissebb kézikönyv a +\m[blue]\fB\%https://nmap.org/man/\fR\m[] +címről tölthető le\&. +.SH "MEGJEGYZÉS A FORDÍTÁSHOZ" +.PP +Az Nmap Referencia Útmutató jelen magyar változatát Mlatilik Zsolt készítette a 6184\-es +\m[blue]\fBeredeti angol változat\fR\m[]\&\s-2\u[1]\d\s+2 +alapján +<drmac68@freemail\&.hu>\&. A fordítást annak reményében készítettem, hogy megkönnyítse a magyar nyelvű felhasználók számára a program használatát\&. Nem tudom garantálni, hogy ez a leírás olyan teljes vagy naprakész, mint az eredeti angol változat\&. Ez a fordítás a +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2 +alapján szabadon módosítható és terjeszthető\&. +.SH "PARAMÉTER ÖSSZEFOGLALÓ" +.PP +Ez az összefoglaló akkor jelenik meg, amikor az Nmap programot paraméterek nélkül indítjuk el\&. A legfrissebb változata a +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[] +címen érhető el\&. Ez a lista segít emlékezni a legáltalánosabb paraméterekre, de nem helyettesíti az útmutatóban található részletes dokumentációt\&. Néhány rejtett paraméter szintén nem található meg ebben a listában\&. +.PP + +.sp +.if n \{\ +.RS 4 +.\} +.nf +Nmap 4\&.53 ( https://nmap\&.org ) +Használat: nmap [Letapogatási típus(ok)] [Paraméterek] {Célpont meghatározások} +CÉLPONT MEGHATÁROZÁSOK: + Átadhatók állomásnevek, IP címek, hálózatok, stb\&. + Pl\&.: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\&.0\-255\&.1\-254 + \-iL <fájlnév>: A cél állomásnevek/hálózatok listája + \-iR <állomások száma>: Véletlen célpontok kiválasztása + \-\-exclude <állomás1[,állomás2][,állomás3],\&.\&.\&.>: Állomások/hálózatok kihagyása + \-\-excludefile <fájlnév>: A kivételek listája +ÁLLOMÁS FELDERÍTÉSE: + \-sL: Lista letapogatás \- egyszerűen kilistázza a letapogatni kívánt célpontokat + \-sP: Visszhang letapogatás \- meghatározza, hogy egy állomás elérhető\-e a hálózaton + \-PN: Minden állomást elérhetőnek tekint \-\- átugorja az állomás felderítését + \-PS/PA/PU [kapulista]: TCP SYN/ACK or UDP felderítés a megadott kapukon + \-PE/PP/PM: Felderítési próbák ICMP visszhang, időbélyeg és alhálózati maszk kéréssel + \-PO [protocol lista]: IP protokoll visszhang + \-n/\-R: Soha nem végez DNS feloldást/Mindig végez DNS feloldást [alapérték: esetenként] + \-\-dns\-servers <kiszolg1[,kiszolg2],\&.\&.\&.>: Saját DNS kiszolgáló megadása + \-\-system\-dns: Az operációs rendszer DNS felodóját használja +LETAPOGATÁSI TÍPUSOK: + \-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon letapogatás + \-sU: UDP letapogatás + \-sN/sF/sX: TCP Null, FIN, and Xmas letapogatások + \-\-scanflags <jelzőbitek>: A TCP jelzőbitek testreszabása + \-sI <zombi állomás[:probakapu]>: Üresjárati letapogatás + \-sO: IP protokoll letapogatás + \-b <FTP átjátszó állomás>: FTP ugráló letapogatás + \-\-traceroute: Útvonal követése minden állomáshoz + \-\-reason: Megjeleníti az okot, amiért egy kapu egy adott állapotban van +KAPU MEGHATÁROZÁS ÉS LETAPOGATÁSI SORREND: + \-p <kaputartomány(ok)>: Csak a megadott kapuk letapogatása + Pl\&.: \-p22; \-p1\-65535; \-p U:53,111,137,T:21\-25,80,139,8080 + \-F: Gyors mód \- Az alapértelmezettnél kevesebb kapu letapogatása + \-r: Kapuk letapogatása sorrendben \- nem véletlenszerűen + \-\-top\-ports <szám>: Csak a <szám> darab leggyakoribb kapu letapogatása + \-\-port\-ratio <arány>: Az <arány>\-nál gyakoribb kapuk letapogatása +SZOLGÁLTATÁS/VÁLTOZAT ÉRZÉKELÉS: + \-sV: A nyitott kapuk próbája a szolgáltatás/változat információ meghatározására + \-\-version\-intensity <szint>: Beállítás 0 (enyhe) és 9 (az összes proba lefuttatása) között lehetséges + \-\-version\-light: Csak a legvalószínűbb próbák lefuttatása (2\-es intenzitás) + \-\-version\-all: Minden egyes próba lefuttatása (9\-es intenzitás) + \-\-version\-trace: A letapogatási műveletek részletes megjelenítése (hibakereséshez) +PARANCSFÁJL ALAPÚ LETAPOGATÁS: + \-sC: megfelel a \-\-script=safe paraméternek,tolakodó + \-\-script=<Lua parancsfájlok>: A <Lua parancsfájlok paraméter> mappák, + parancsfájlok és parancsfájl kategóriák vesszővel elválasztott listája + \-\-script\-args=<n1=v1,[n2=v2,\&.\&.\&.]>: paraméterek átadása a parancsfájl(ok)nak + \-\-script\-trace: Az összes elküldött és fogadott adat megjelenítése + \-\-script\-updatedb: A parancsfájl adatbázis frissítése\&. +OPERÁCIÓS RENDSZER FELDERÍTÉSE: + \-O: Engedélyezi az operációs rendszer felderítését + \-\-osscan\-limit: Az operációs rendszer felderítését csak az ígéretes célpontokra korlátozza + \-\-osscan\-guess: Agresszívebb operációs rendszer felderítés +IDŐZÍTÉS ÉS TELJESÍTMÉNY: + Azoknál a paramétereknél, ahol <idő> meghatározás szerepel, az alapértelmezett + egység a milliszekundum, kivéve ha az értékhez hozzáfűzi az \*(Aqs\*(Aq (másodperc), + \*(Aqm\*(Aq (perc), vagy \*(Aqh\*(Aq (óra) módosítót (pl\&. 30m)\&. + \-T[0\-5]: Időzítési sablon megadása (a nagyobb érték a gyorsabb) + \-\-min\-hostgroup/max\-hostgroup <méret>: A párhuzamosan letapogatható állomások csoportmérete + \-\-min\-parallelism/max\-parallelism <szám>: A párhuzamosan végezhető próbák száma + \-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <time>: Az egyes próbák + időzítésének beállítása\&. + \-\-max\-retries <próbák>: Limitálja a kapuletapogatások ismétlését\&. + \-\-host\-timeout <idő>: Ennyi idő után abbahagyja az állomás letapogatását + \-\-scan\-delay/\-\-max\-scan\-delay <idő>: Az egyes próbák közti idő beállítása +TŰZFAL/BEHATOLÁS ÉRZÉKELŐ MEGKERÜLÉS ÉS BECSAPÁS: + \-f; \-\-mtu <érték>: csomagok tördelése (vagy küldés a megadott MTU értékkel) + \-D <csali1,csali2[,ME],\&.\&.\&.>: A letapogatás leplezése csalikkal + \-S <IP cím>: Forráscím hamisítása + \-e <csatoló>: Megadott hálózati csatoló használata + \-g/\-\-source\-port <kapuszám>: Megadott kapuszám használata + \-\-data\-length <szám>: Véletleszerű adat hozzáfűzése az elküldött csomagokhoz + \-\-ip\-options <paraméterek>: Csomagok küldése meghatározott IP paraméterekkel + \-\-ttl <érték>: Az IP csomag time\-to\-live értékének beállítása + \-\-spoof\-mac <mac cím/előtag/gyártó neve>: A saját MAC cím hamisítása + \-\-badsum: Csomagok küldése hamis TCP/UDP ellenőrző összeggel +KIMENET: + \-oN/\-oX/\-oS/\-oG <fájlnév>: A letapogatás eredményének mentése fájlba normál, + XML, s|<rIpt kIddi3, vagy grepelhető formátumban, a megadott fájlnévvel\&. + \-oA <bázisnév>: Mentés fájlba a három főbb formátumban egyszerre + \-v: Bőbeszédű üzemmód beállítása (kétszer használva még több információt ad) + \-d[szint]: Hibakeresési szint beállítása vagy növelése (maximum 9\-ig értelmes) + \-\-open: Csak a nyitott (vagy valószínűleg nyitott) kapukat mutatja + \-\-packet\-trace: Az összes elküldött és fogadott csomagot megjeleníti + \-\-iflist: Megjeleníti az állomás hálózati csatolóit és az útvonalakat (hibakereséshez) + \-\-log\-errors: Hibák/figyelmeztetések rögzítése normál formátumú kimenő fájlba + \-\-append\-output: Felülírás helyett hozzáfűzi az eredményeket a létező kimeneti fájlhoz + \-\-resume <fájlnév>: Megszakított letapogatás folytatása + \-\-stylesheet <útvonal/URL>: XSL stíluslap az XML kimenet HTML formátumúra alakításához + \-\-webxml: Referencia stíluslap az Insecure\&.Org weboldalról a hordozhatóbb XML dokumentumokért + \-\-no\-stylesheet: Nem rendel XSL stíluslapot az XML kimenethez +VEGYES: + \-6: Engedélyezi az IPv6 letapogatást + \-A: Engedélyezi az operációs rendszer és a változat érzékelését, a parancsfájl alapú + letapogatást és az útvonalkövetést + \-\-datadir <mappanév>: Saját Nmap adatfájl helyének megadása + \-\-send\-eth/\-\-send\-ip: Adatküldés nyers ethernet keretek vagy IP csomagok használatával + \-\-privileged: Feltételezi, hogy a felhasználó teljes jogosultsági szinttel rendelkezik + \-\-unprivileged: Feltételezi, hogy a felhasználónak nincs jogosultsága nyers socketek használatára + \-V: Az Nmap változat kiírása + \-h: Ennek a rövid összefoglalónak a megjelenítése\&. +PÉLDÁK: + nmap \-v \-A scanme\&.nmap\&.org + nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8 + nmap \-v \-iR 10000 \-PN \-p 80 +NÉZD MEG A MAN OLDALAKAT A TOVÁBBI PARAMÉTEREKHEZ, LEÍRÁSOKHOZ ÉS PÉLDÁKHOZ + +.fi +.if n \{\ +.RE +.\} +.sp +.SH "A CÉLPONT MEGHATÁROZÁSA" +.PP +Az Nmap parancssorban mindent, ami nem paraméter (vagy paraméter kiegészítés) célpont meghatározásként értelmez\&. Célpont meghatározása legegyszerűbben IP cím vagy állomásnév megadásával lehetséges\&. +.PP +Néha szükség lehet szomszédos állomások teljes hálózatának letapogatására\&. Ennek érdekében az Nmap támogatja a CIDR stílusú címzést\&. Hozzáfűzheti a + +/\fInumbits\fR +paramétert az IP címhez vagy az állomásnévhez és az Nmap letapogat minden IP címet, mely a +\fInumbits\fR +paraméter alapján a megadott IP címmel vagy állomással egy alhálózaton található\&. Például a 192\&.168\&.10\&.0/24 címzéssel letapogatható a 192\&.168\&.10\&.0 (bináris: +11000000 10101000 00001010 00000000) és a 192\&.168\&.10\&.255 (bináris: +11000000 10101000 00001010 11111111) címek közötti 256 állomás\&. A 192\&.168\&.10\&.40/24 címzést szintén ugyanezt az eredményt adja\&. Megadva a scanme\&.nmap\&.org állomást az IP címe 205\&.217\&.153\&.62\&. Így a scanme\&.nmap\&.org/16 címzéssel 65,536 IP cím tapogatható le a 205\&.217\&.0\&.0 és a 205\&.217\&.255\&.255 címek között\&. A legkisebb megadható érték a /1, mellyel az Internet fele tapogatható le\&. A legnagyobb megadható érték a 32, mellyel a megadott állomás vagy IP cím tapogatható le, mivel itt a címbitek rögzítettek\&. +.PP +A CIDR jelölés rövid, de nem eléggé rugalmas minden esetben\&. Például szeretné letapogatni a 192\&.168\&.0\&.0/16 címtartományt, de szeretné kihagyni a 0\-ra és 255\-re végződő IP címeket, mivel ezek általában üzenetszórási címek\&. Az Nmap ezt az úgynevezett oktett tartomány címzésen keresztül biztosítja\&. Ahelyett, hogy hagyományos IP címeket adna meg, megadhat vesszővel elválasztott számsorozatot vagy tartományt minden egyes oktettben\&. Például a 192\&.168\&.0\-255\&.1\-254 címzéssel átugorhat minden olyan IP címet, melynek utolsó oktettje 0\-ra vagy 255\-re végződik\&. A tartományok nem korlátozódnak kizárólag az utolsó oktettre: a 0\-255\&.0\-255\&.13\&.37 címzéssel a teljes Internet címtérből letapogathatja azokat az állomásokat, melyeknek IP címük 13\&.37 \-re végződik\&. Az ilyen nagy terjedelmű mintavétel hasznos lehet Internetes kutatásoknál és felméréseknél\&. +.PP +Az IPv6 címek kizárólag teljes alakjukban vagy állomásnév alakban adhatóak meg\&. CIDR címzés és oktett tartományok nem támogatottak az IPv6 címzésnél, mivel ezek itt ritkán hasznosak\&. +.PP +Az Nmap a parancssorban többféle célpont meghatározást elfogad és ezeknek nem kell azonosaknak lenniük\&. Az +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/16 10\&.0\&.0,1,3\-7\&.0\-255\fR +parancs erre mutat egy példát\&. +.PP +Bár a célpontok meghatározása általában a parancssorban történik, a következő paraméterek szintén használhatóak a célpontok megadására: +.PP +\fB\-iL <fájlnév>\fR (Bemenet listából) +.RS 4 +A célpontok kiválasztása a +\fIfájlnév\fR +által meghatározott fájlból\&. Nagyobb mennyiségű célpont megadása a parancssorban eléggé kényelmetlen, de mindennapos feladat\&. Például az Ön DHCP kiszolgálója nyilvántart 10,000 aktuális klienst, melyeket Ön mind le akar tapogatni\&. Vagy például le akarja tapogatni a teljes IP tartományt, +\fIkivéve\fR +a nyilvántartott címeket, hogy megtalálja azokat az állomásokat, amelyek érvénytelen statikus IP címet használnak\&. Egyszerűen generálja le a letapogatni kívánt állomások listáját és adja át a fájlnevet a +\fB\-iL\fR +paraméteren keresztül az Nmap részére\&. A bejegyzések minden olyan formátumban szerepelhetnek, melyet az Nmap a parancssorán keresztül is elfogad (IP cím, állomásnév, CIDR, IPv6 vagy oktett tartomány)\&. A bejegyzések elválasztására használhat a szóköz, a tabulátor, vagy írhat minden bejegyzést új sorba\&. Ha fájlnévként az elválasztójelet (\-) adja meg, akkor az Nmap a célpontok adatait a standard bemenetről veszi át\&. +.RE +.PP +\fB\-iR <állomások száma>\fR (Véletlen célpontok kiválasztása) +.RS 4 +A teljes Internetet felölelő megfigyeléseknél és más kutatásoknál szükség lehet véletlenszerű célpontok kiválasztására\&. Az +\fIállomások száma\fR +paraméterrel meghatározhatja, hogy az Nmap hány IP címet generáljon\&. A nemkívánatos IP címek \- privát, többesküldéses vagy ki nem osztott tartományok \- automatikusan kikerülnek a listából\&. Ha a +0 +paramétert adja meg, akkor a címek generálása a végtelenségig folytatódik\&. Vegye figyelembe, hogy néhány rendszergazdát zavarja, ha a hálózatát felhatalmazás nélkül vizsgálja és panasszal élhet\&. Így ezt a paramétert kizárólag saját felelősségére használja\&. Ha egy esős délutánon unatkozik, próbálja ki ezt a parancsot: +\fBnmap \-sS \-PS80 \-iR 0 \-p80\fR\&. Így véletlenszerűen keresgélhet eddig ismeretlen webkiszolgálók után\&. +.RE +.PP +\fB\-\-exclude <állomás1[,állomás2][,állomás3],\&.\&.\&.>\fR (Állomások/hálózatok kihagyása) +.RS 4 +Azoknak a célpontoknak a vesszővel elválasztott listája, melyeket ki akar hagyni a letapogatásból, még ha tagjai is a megadott hálózati tartománynak\&. Az átadott lista a megszokott Nmap szintaxist követi, tehát szerepelhet benne állomásnév, CIDR tartomány, oktett tartomány stb\&. Ez akkor lehet hasznos, ha a letapogatni kívánt hálózat olyan kritikus kiszolgálókat vagy rendszereket tartalmaz, melyek nem várt módon reagálnak a kapuletapogatásra, illetve ha a letapogatni kívánt hálózat egy részét más valaki üzemelteti\&. +.RE +.PP +\fB\-\-excludefile <fájlnév>\fR (A kivételek listája) +.RS 4 +Ez ugyanazt a funkciót valósítja meg, mint az +\fB\-\-exclude\fR +paraméter, csak a kivételeket nem a parancssorban adja át, hanem a +\fIfájlnév\fR +által meghatározott fájlban\&. A fájl formátumára ugyanazok érvényesek, mint a célpontokat tartalmazó fájlra\&. +.RE +.SH "ÁLLOMÁS FELDERÍTÉSE" +.PP +Bármilyen hálózati felderítési feladat legelső lépése, hogy a (sokszor) hatalmas IP tartományt leszűkítsük egy olyan listára, mely csak az aktív vagy érdekes állomásokat tartalmazza\&. Minden IP cím minden egyes kapujának letapogatása lassú és általában szükségtelen is\&. Természetesen hogy mi tesz egy állomást érdekessé, az nagymértékben függ a letapogatás céljától\&. Rendszergazdák érdeklődhetnek csak egy bizonyos szolgáltatást futtató állomások után, míg egy biztonsági ellenőrzésnél érdekes lehet minden berendezés, amelynek IP címe van\&. Egy rendszergazdának elegendő lehet egy ICMP visszhang alapú letapogatás, hogy felderítse a hálózatán lévő állomásokat, míg egy behatolási teszt során próbák ezreinek különféle csoportjait is be kell vetni egy tűzfal korlátozásainak megkerülésére\&. +.PP +Mivel a felderítési igények teljesen különbözőek, ezért az Nmap a használt technikák testreszabásához rengeteg lehetőséget kínál\&. Az állomás felderítést sokan egyszerűen csak PING letapogatásnak hívják, pedig ez sokkal több, mint egyszerű ICMP visszhang kérés küldése (erre kiválóan alkalmasa a széles körben elterjedt +ping +eszköz\&. A felhasználók teljesen kihagyhatják a visszahang kérést a lista alapú letapogatással (\fB\-sL\fR), a visszhang tiltásával (\fB\-PN\fR) vagy a hálózathoz kötött, több kapura kiterjedő TCP SYN/ACK, UDP, és ICMP próbák tetszőleges kombinációjával\&. Ezeknek a próbáknak a célja olyan válaszok kérése, melyek megmutatják, hogy egy adott IP cím aktív\-e (használja\-e valamely állomás, vagy hálózati eszköz)\&. A legtöbb hálózaton egy megadott időben az IP címeknek csak egy kis része aktív\&. Ez különösen igaz az RFC1918 által meghatározott privát címekre, mint például a 10\&.0\&.0\&.0/8 hálózat\&. Ebbe a hálózatba 16 millió IP cím tartozik, mégis a legtöbbször olyan vállalatok használják, melyeknek nincs 1000\-nél több gépük\&. Az állomás felderítéssel ezek az elszórt gépek megtalálhatók az IP címek tengerében\&. +.PP +Ha nincs megadva állomás felderítési paraméter, az Nmap minden egyes célpont felé elküld egy TCP ACK csomagot a 80\-as kapura, valamint elküld egy ICMP visszhang kérést is\&. Kivételt képez, ha egy helyi ethernet hálózaton végez ARP letapogatást\&. Ha nem rendszergazdaként futtatja a programoz, akkor az ACK helyett egy SYN csomag kerül elküldésre a +\fBconnect()\fR +rendszerhíváson keresztül\&. Ezek az alapértékek ugyanazok, mintha a +\fB\-PA \-PE\fR +paramétereket használta volna\&. A helyi hálózatokon ezek az állomásfelderítési próbák általában elegendőek, azonban egy biztonsági ellenőrzés során javasolt egy sokkal átfogóbb felderítést végezni\&. +.PP +A +\fB\-P*\fR +paraméterek (melyekkel a visszhang típusok adhatók meg) kombinálhatóak\&. Egy szigorú tűzfalon való átjutás esélyét növelheti, ha többféle próbát indít el különböző TCP kapukra, különféle jelzőbeállításokkal és ICMP kódokkal\&. Figyeljen arra, hogy a helyi ethernet hálózaton lévő célpontok esetén akkor is végrehajtódik egy ARP felderítés (\fB\-PR\fR), ha megad más +\fB\-P*\fR +paramétert, mivel ez szinte minden esetben gyorsabb és sokkal hatékonyabb\&. +.PP +Alaphelyzeben az Nmap elvégez egy állomás felderítést és ezután kezdi el az élő állomásoikon a kapuk letapogatását\&. Ez akkor is igaz, ha egy nem alapértelmezett állomás felderítési módot határozott meg, mint például az UDP próbák (\fB\-PU\fR)\&. Olvassa el a +\fB\-sP\fR +paraméter leírását, ha további információkra kiváncsi arról, hogyan hajthat végre +\fIcsak\fR +állomás felderítést\&. Használja a +\fB\-PN\fR +paramétert, ha ki akarja hagyni az állomás felderítési lépést és egyből a célpontok kapuletapogatására akar lépni\&. A következő paraméterekkel vezérelheti az állomások felderítését: +.PP +\fB\-sL\fR (Lista Letapogatás) +.RS 4 +A lista letapogatás az állomás felderítés legprimitívebb módja\&. Egyszerűen kilistázza a megadott hálózat(ok)on található állomásokat anélkül, hogy bármilyen adatcsomagot küldene\&. Alaphelyzeben az Nmap még ekkor is elvégez egy fordított DNS lekérdezést azért, hogy megkapja az állomások neveit\&. Gyakran meglepően sok információval szolgálhat egy egyszerű állomásnév is\&. Például az +fw\&.chi +egy vállalat Chicagoban lévő tűzfalának a neve\&. A lista végén az Nmap megadja az IP címek számát is\&. A lista letapogatással könnyen ellenőrizhető, hogy a célba vett állomásokhoz a megfeleő IP címek állnak\-e rendelkezésre\&. Ha az állomás esetleg ismeretlen tartománynevet ad vissza, érdemes további ellenőrzést is elvégezni, nehogy véletlenül más hálózatot tapogasson le\&. +.sp +Mivel az alapötlet az, hogy egyszerűen nyomtassunk egy listát a célpontokról, ezért a magasabb szintű funkciók, mint például a kapuletapogatás, az operációs rendszer érzékelése vagy a visszhang letapogatás nem kombinálható ezzel a funkcióval\&. Ha szeretné letiltani a visszhang letapogatást mialatt magasabb szintű funkciókat használ, olvassa el a +\fB\-PN\fR +paraméter leírását\&. +.RE +.PP +\fB\-sP\fR (Visszhang Letapogatás) +.RS 4 +Ezzel a paraméterrel arra utasítja az Nmap programot, hogy +\fIkizárólag\fR +visszhang letapogatást (állomás felderítést) hajtson végre, majd nyomtasson egy listát azokról az állomásokról, amelyek válaszoltak a letapogatásra\&. Semmilyen további teszt (mint például kapuletapogatás, vagy operációs rendszer felderítése) nem kerül végrehajtásra\&. Ez a lépés némileg tolakodóbb, mint a lista letapogatás és gyakran ugyanolyan céllal használják\&. Ez lehetőséget biztosít a célhálózat finom felderítésére anélkül, hogy túlságosan felkeltené a figyelmet\&. Egy támadó számára sokkal hasznosabb azt tudni, hogy hány élő állomás van a célhálózatban, mint a lista letapogatás által visszaadott állomásneveknevek és IP címek halmaza\&. +.sp +A rendszergazdák szintén hasznosnak fogják találni ezt a paramétert\&. Egyszerűen felderíthető vele a hálózatban elérhető állomások száma vagy ellenőrizhető egy kiszolgáló elérhetősége\&. Gyakran nevezik ezt a funkciót visszhang pásztázásnak is és sokkal megbízhatóbb, mint az üzenetszórási címre küldött viszhang kérés, mivel sok állomás nem válaszol az üzenetszórási címre küldött kérésre\&. +.sp +Az +\fB\-sP\fR +paraméter alapesetben egy ICMP visszhang kérést küld, valamint egy TCP csomagot a 80\-as kapura\&. Ha a parancsot nem rendszergazdaként adjuk ki, csak egy SYN csomag kerül elküldésre (a +\fBconnect()\fR +rendszerhívásonkeresztül) a célállomás 80\-as kapujára\&. Ha rendszergazdaként a helyi hálózaton próbál állomásokat letapogatni, akkor egy ARP kérés (\fB\-PR\fR) kerül elküldésres, hacsak nem adja meg a +\fB\-\-send\-ip\fR +paramétert\&. A nagyobb rugalmasság érdekében az +\fB\-sP\fR +paraméter kombinálható bármelyik felderítési próbával (\fB\-P*\fR +paraméterek, kivéve a +\fB\-PN\fR +paramétert)\&. Ha ezeket a próbatípusokat használja, akkor az alapértelemzett próbák (ACK csomag és visszhang kérés) kimaradnak\&. Ha az Nmap programot futtató gép és a célállomás között szigorú szabályokkal működő tűzfal találhat, akkor ezeknek a fejlett technikáknak az alkalmazása mindenképpen ajánlott\&. Máskülönben kimaradhatnak állomások, ha a tűzfal eldobálja a próbákat, vagy a célállomások válaszait\&. +.RE +.PP +\fB\-PN\fR (Nincs visszhang) +.RS 4 +Ezzel a paraméterrel az Nmap állomás felderítési lépése teljesen elhagyható\&. Normál esetben az Nmap ezt a lépést használja az aktív állomások meghatározására a további letapogatás előtt\&. Alapesetben az Nmap az erőteljesebb próbákat (kapuk letapogatása, változat érzékelés, operációs rebdszer érzékelése) csak azokon az állomásokon hajtja végre, amelyeket aktívnak érzékelt\&. Ha a +\fB\-PN\fR +paraméterrel letiltja a felderítési funkciót, az Nmap +\fIvalamennyi\fR +megadott célpont IP címén végrehajtja a kért letapogatási műveleteket\&. Tehát ha egy B osztályú címtartományt adott meg célpontként (/16), akkor mind a 65,536 IP cím letapogatásra kerül\&. Csakúgy, mint a lista letapogatásnál, a megfelelő állomás felderítési lépés kimarad, viszont a célpontok listájának kinyomtatása és a kilépés helyett az Nmap folytatja a kért műveletek végrehajtását és feltételezi, hogy valamennyi célpont aktív\&. A helyi ethernet hálózaton lévő gépeken az ARP letapogatás ekkor is végrehajtásra kerül (hacsak a +\fB\-\-send\-ip\fR +paramétert meg nem adja), mivel a további letapogatásokhoz az Nmap\-nek szüksége van a MAC címre\&. Ennek a paraméternek a régi meghatározása a +\fBP0\fR +volt, de átnevezésre került, hogy megakadályozható legyen a protokoll visszhang +\fBPO\fR +paraméterével való keveredése\&. +.RE +.PP +\fB\-PS [kapulista]\fR (TCP SYN visszhang) +.RS 4 +Ez a paraméter egy beállított SYN zászlójú üres TCP csomagot küld a célpont felé\&. Az alapértelmezett célkapu a 80\-as (ez fordítási időben megváltoztatható az +nmap\&.h) fájlban a DEFAULT_TCP_PROBE_PORT_SPEC paraméterrel\&. Futásidőben is megadható más célkapu paraméterként\&. A szintaxis ugyanaz, mint a +\fB\-p\fR +paraméternél, kivéve hogy a kaputípus megadása \- mint például a +T: +\- nem engedélyezett\&. Néhány példa: +\fB\-PS22\fR +és +\fB\-PS22\-25,80,113,1050,35000\fR\&. Figyeljen arra, hogy a +\fB\-PS\fR +paraméter és a kapulista között nem lehet szóköz\&. Ha több kaput is megadott, a próbák párhuzamosan kerülnek végrehajtásra\&. +.sp +A beállított SYN zászló azt sugallja a célpontnak, hogy Ön kapcsolatot kíván kezdeményezni\&. Normál helyzetben a célkapu zárva lesz és a célpont egy RST (reset) csomagot küld vissza\&. Ha a kapu nyitva van, a célpont végrehajtja a 3 lépéses kapcsolatfelépítés második lépését és egy SYN/ACK TCP csomagot küld vissza\&. Ezután az Nmap\-et futtató állomás egy RST csomag küldésével lebontja az éppen felépülő kapcsolatot ahelyett, hogy egy ACK csomag küldésével teljesen felépítené a kapcsolatot\&. Az RST csomagot nem az Nmap küldi, hanem a programot futtató állomás rendszermagja, válaszul a nem várt SYN/ACK csomagra\&. +.sp +Az Nmap nem foglalkozik azzal, hogy a kapu nyitott vagy zárt\&. Mind az RST mind a SYN/ACK válasz azt jelzi, hogy a célállomás elérhető és válaszol\&. +.sp +Unix rendszereken kizárólag a kiemelt +root +felhasználó képes nyers TCP csomagok küldésre és fogadására\&. Normál felhasználók esetén egy kerülő megoldást alkalmazunk a connect() rendszerhívás használatakor, minden egyes kapu esetén\&. Ennek során egy kapcsolat felépítését kezdeményező SYN csomagot küldünk a célpont felé\&. Ha a connect() sikeresen vagy az ECONNREFUSED hibával tér vissza, akkor az alsóbb TCP verem vagy SYN/ACK vagy RST csomagot fogadott\&. Ilyenkor a célállomás elérhetőnek lesz jelölve\&. Ha a kapcsolódási kísérlet az időzítés lejártáig függőben marad, a célállomás elérhetetlenként lesz jelölve\&. Ugyanez a kerülőút kerül alkalmazásra az IPv6 kapcsolatok esetén is, mivel jelenleg az Nmap nem rendelkezik nyers IPv6 csomagok összeállításának képességével\&. +.RE +.PP +\fB\-PA [kapulista]\fR (TCP ACK Visszhang) +.RS 4 +A TCP ACK visszhang próba meglehetősen hasonlít az előzőekben tárgyalt SYN visszhang próbához\&. A különbség annyi, hogy a SYN zászló helyett az ACK zászló a beállított állapotú\&. Az ACK csomag jelzi, hogy a csomagot küldő fél készen áll az adatok fogadására a felépített kapcsolaton keresztül\&. Azonban jelen esetben nincs ilyen létező kapcsolat\&. A célállomások ilyenkor szinte minden esetben egy RST csomagot küldenek, felfedvén ezzel a jelenlétüket\&. +.sp +A +\fB\-PA\fR +paraméter a SYN próbához hasonlóan ugyanazt az alapértelmezett kaput használja és ugyanolyan formátumban adható át neki más célkapuk listája is\&. Ha nem kiemelt felhasználó próbálja használni ezt a funkciót, vagy a célpont IPv6 formátumú, akkor az előzőekben már tárgyalt kerülőút kerül alkalmazásra\&. Azonban jelen esetben ez nem tökéletes, mivel a connect() valójában SYN csomagot küld, nem ACK csomagot\&. +.sp +Azért található meg mind a SYN, mind az ACK próba, hogy a lehető legjobban megnöveljük az esélyét a tűzfalak megkerülésének\&. A legtöbb rendszergazda úgy állítja be az útválasztóit és más egyszerű tűzfalait, hogy a nyilvános szolgáltatások felé tartó forgalom (pl\&. céges web\- vagy levelező kiszolgáló) kivételével minden bejövő SYN csomagot dobjon el\&. Ez megakadályozza a bejövő forgalmat a céges hálózatba, viszont a felhasználók részére zavartalan kimenő forgalmat biztosít az Internet felé\&. Ez a nem\-állapottartó megközelítés kevesebb erőforrást igényel a tűzfalakon/útválasztókon és széles körben támogatott\&. A Linux Netfilter/iptables tűzfalprogramja a +\fB\-\-syn\fR +paraméteren keresztül valósítja meg ezt a nem\-állapottartó működést\&. Az ilyen állapot nélküli tűzfalszabályok a SYN visszhang próbákat (\fB\-PS\fR) nagy valószínűséggel elutasítják, ha azok zárt kaput céloznak\&. Ilyenkor az ACK próba sikeresen vágja át magát ezeken a szabályokon\&. +.sp +Más általánosan használt tűzfalak állapottartó szabályok használatával utasítják el a nem várt csomagokat\&. Kezdetben ez a jellemző csak a felső kategóriás tűzfalakban volt megtalálható, de az utóbbi években egyre inkább elterjed az alsóbb kategóriákban is\&. A Linux Netfilter/iptables rendszere a +\fB\-\-state\fR +paraméteren keresztül valósítja ezt meg, melyben a csomagokat a kapcsolat állapota alapján kategorizálja\&. Az ilyen rendszerek ellen a SYN próbák hatásosabbak, mivel a nem várt ACK csomagokat hamisnak tekintik és eldobják\&. Ezt a zavart úgy lehet elhárítani, ha mind a SYN, mind ACK próbát végrehajtjuk a +\fB\-PS\fR +és +\fB\-PA\fR +paraméterek megadásával\&. +.RE +.PP +\fB\-PU [kapulista]\fR (UDP Visszhang) +.RS 4 +Egy újabb állomás felderítési módszer az UDP visszhang próba, mely során egy üres (hacsak nem adja meg a +\fB\-\-data\-length\fR +paramétert) UDP csomagot küldünk a megadott kapu felé\&. A kapulista formátuma megegyezik az előző pontokban tárgyalt +\fB\-PS\fR +és +\fB\-PA\fR +paraméterekével\&. Ha nem adunk meg kaput, akkor alapértelmezettként a 31338\-as kapu kerül használatra\&. Ez fordítási időben megváltoztatható az +nmap\&.h +állomány DEFAULT_UDP_PROBE_PORT_SPEC paraméterén keresztül\&. Ennél a letapogatásnál nem kifejezetten jó, ha egy nyitott kapuval próbálkozunk, ezért választunk egy magas számú, nagy valószínűséggel nem használt kaput\&. +.sp +Ha a célponton egy zárt kaput tapogatunk le az UDP próbával, a célállomásból kicsalhatunk egy kapu nem elérhető (port unreachable) ICMP válaszcsomagot\&. Ez jelzi az Nmap\-nek, hogy a célpont él és elérhető\&. Bármilyen más ICMP hibaüzenet (pl\&. állomás/hálózat nem elérhető, TTL élettartam lejárt) azt jelzi, hogy a célállomás nem érhető el\&. A válasz hiányát szintén így értelmezi a program\&. Ha nyitott kaput érünk el, a legtöbb szolgáltatás figyelmen kívül hagyja az üres csomagot és nem küld vissza semmilyen választ\&. Ezért használjuk alapértelmezésként a 31338\-as kaput, melyet nagy valószínűséggel nem használ semmi\&. Néhány szolgáltatás, mint például a chargen válaszol az üres csomagokra is, mely így szintén azt jelzi, hogy a célpont elérhető\&. +.sp +A legfőbb előnye ennek a letapogatásnak, hogy megkerüli azokat a szűrőket és útválasztókat, melyek kizárólag a TCP forgalmat figyelik\&. Például a program készítőjének volt egy Linksys BEFW11S4 vezeték nélküli útválasztója, mely a külső csatolóján az összes TCP kaput szűrte\&. Azonban az UDP próbák ellen védtelen volt\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (ICMP Visszhang Típusok) +.RS 4 +Az előzőekben tárgyalt szokatlan TCP és UDP állomás felderítési típusok mellett az Nmap képes a széles körben elterjedt +ping +program által használt csomagok küldésére is\&. Az Nmap egy 8\-as típusú (visszhang kérés) ICMP csomagot küld a cél IP címre és egy 0\-ás típusú (visszhang válasz) csomagot vár vissza az elérhető állomásoktól\&. A hálózati felderítők bánatára a legtöbb állomás és tűzfal blokkolja ezeket a csomagokat ahelyett, hogy az +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[3]\d\s+2 +leírás szerint válaszolna rájuk\&. Emiatt a kizárólag ICMP alapú letapogatások ritkán adnak megbízható eredményt ismeretlen célpontok felderítésekor\&. Azonban belső hálózatokat felügyelő rendszergazdák számára praktikus és hasznos eszköz lehet\&. Használja a +\fB\-PE\fR +paramétert a visszhang kérés engedélyezésére\&. +.sp +Noha a visszhang kérés a szabványos ICMP kérés, az Nmap ennél tovább megy\&. Az ICMP szabvány (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[4]\d\s+2) emellett meghatároz még időbélyeg kérést (13\-as kód), információ kérést (15\-ös kód) és címmaszk kérést (17\-es kód) is\&. Noha látszólag ezek a kérések arra szolgálnak, hogy információkat szerezzünk (például címmaszk vagy időbélyeg), de emellett könnyen használhatóak állomások felderítésére is\&. Amelyik rendszer válaszol az élő és elérhető\&. Az Nmap jelenleg nem támogatja az információ kérés csomagot, mivel ezt nem támogatják széles körben\&. Az RFC 1122 ragaszkodik ahhoz, hogy +„az állomásoknak nem kellene támogatniuk ezeket az üzeneteket\(rq\&. Az időbélyeg és a címmaszk kérések a +\fB\-PP\fR +és a +\fB\-PM\fR +paramétereken keresztül küldhetőek el\&. Az időbélyeg válasz (14\-es ICMP kód) vagy a címmaszk válasz (18\-as kód) elárulja, hogy az állomás elérhető\&. Ezek a kérések különösen akkor válnak értékessé, ha a rendszergazda letiltotta a visszhang kéréseket, miközben elfelejtett, hogy más ICMP kérések is használhatóak erre a célra\&. +.RE +.PP +\fB\-PO [protokollista]\fR (IP Protokoll Visszhang) +.RS 4 +Egy másik állomás federítési módszer az IPProto visszhang, amely az IP fejléc protokoll mezőjében megadott típusú IP csomagokat küld el\&. A protokoll lista ugyanolyan formátumú, mint az előzőekben tárgyal TCP és UDP felderítési paramétereknél használ kapulista\&. Ha nincs megadva protokoll, akkor alapértelmezettként ICMP (1\-es protokoll), IGMP (2\-es protokoll és IP\-in\-IP (4\-es protokoll) csomagok lesznek elküldve\&. Az alapértelmezett protokollok fordítási időben adhatók meg az +nmap\&.h +állomány DEFAULT_PROTO_PROBE_PORT_SPEC változójában\&. Figyeljen arra, hogy az ICMP, IGMP, TCP (6\-os protokoll és UDP (17\-es protokoll) protokollok esetén a csomagok további fejlécekkel kerülnek elküldésre, míg más protokolloknál az IP fejléc mögött más adat nem kerül elküldésre (kivéve, ha a +\fB\-\-data\-length\fR +paramétert is megadta)\&. +.sp +Ez a felderítési metódus kétféle választ vár\&. Vagy az elküldött protokollnak megfelelő válasz érkezik, vagy egy \*(AqProtocol Unreachable\*(Aq ICMP üzenet, mely szerint az állomás nem támogatja az adott protokollt (mellyel el is árulta a létezését)\&. +.RE +.PP +\fB\-PR\fR (ARP Visszhang) +.RS 4 +Az Nmap egyik leggyakoribb használata a helyi ethernet hálózat letapogatása\&. A legtöbb helyi hálózaton, különösen melyek az áldott RFC1918 alapú privát címtartományt használják, az IP címek legnagyobb része általában nincs használatban\&. Amikor az Nmap nyers IP csomagot próbál küldeni (például egy ICMP visszhang kérést), az operációs rendszernek meg kell határoznia a célpont IP címe alapján a hardvercímet (ARP) azért, hogy az ethernet keretet megfelelően tudja címezni\&. Ez gyakran lassú és problémás, mivel az operációs rendszereket nem úgy tervezik, hogy rövid ídő alatt több millió ARP kérést küldjenek el elérhetetlen állomások felé\&. +.sp +Az ARP letapogatásnál az ARP kéréseket az Nmap program kifinomult algoritmusára bízzuk\&. Ha itt válasz érkezik, akkor már nem szükséges az IP alapú visszhang kérésekkel foglalkozni, mivel a célpont elérhető\&. Ezért az ARP letapogatás sokkal gyorsabb és megbízhatóbb, mint az IP alapú letapogatások\&. Ezért ezt a letapogatást az Nmap alaphelyzetben elvégzi, ha úgy érzékeli, hogy a célpont a helyi ethernet hálózaton található\&. A helyi hálózaton az Nmap még akkor is az ARP letapogatást fogja végrehajtani, ha más visszhang alapú letapogatást adtunk meg (mint például a +\fB\-PE\fR +vagy a +\fB\-PS\fR)\&. Ha egyáltalán nem kívánja használni az ARP letapogatást, adja meg a +\fB\-\-send\-ip\fR +paramétert\&. +.RE +.PP +\fB\-\-traceroute\fR (Útvonal nyomkövetése az állomáshoz) +.RS 4 +Az útvonal nyomkövetése a letapogatás után történik meg, a letapogatás eredményének figyelembe vételével\&. A nyomkövetéshez a célponton elérhető kapuk és protokollok közül azok lesznek felhasználva, melyekkel a célpont nagy valószínűséggel elérhető\&. A nyomkövetés a kapcsolódási letapogatás (connect (\-sT)) és az üresjárati letapogatás (idle (\-sI)) kivételével minden letapogatási típussal működőképes\&. Minden nyomkövetés az Nmap dinamikus időzítési modelljét használja és párhuzamosan kérül végrehajtásra\&. +.sp +A nyomkövetéskor a csomagokat alacsony élettartam (time\-to\-live (TTL)) értékkel küldjük el, hogy az útvonalon lévő közbenső állomásokból az Időzítés letelt (Time Exceeded) ICMP hibaüzenetet tudjunk kicsalni\&. Alapesetben a nyomkövetésnél TTL=1 értékkel kezdünk és addig növeljük a TTL értékét, amíg el nem érjük a célállomást\&. Az Nmap nyomkövetése magas TTL értékkel indít és egészen nuuláig csökken\&. A visszafelé történő kereséssel és egy ügyes gyorstároló algoritmussal az Nmap felgyorsítja a több állomáson keresztül végzett nyomkövetést\&. Átlagban az Nmap 5\-10 csomaggal kevesebbet küld el állomásonként, de ez nagyban függ a hálózat állapotától\&. Ha csak egy alhálózat letapogatása történik (pl\&. 192\&.168\&.0\&.0/24), az Nmap a legtöbb állomáshoz valószínűleg csak egy csomagot küld\&. +.RE +.PP +\fB\-\-reason\fR (Állomás\- és kapuállapot oka) +.RS 4 +Megjeleníti, hogy az egyes állomások és kapuk miért lettek a megadott állapotúnak jelölve\&. Ez a paraméter megjeleníti annak a csomagnak a típusát, amely az állomás vagy kapu állapotát meghatározta\&. Például egy +RST +csomag egy zárt kapuról vagy egy visszhang válasz egy működő állomásról\&. Az Nmap által szolgáltatott információk a letapogatás vagy a visszhang típusától függenek\&. A SYN letapogatás és a SYN visszhang (\fB\-sS\fR +és +\fB\-PT\fR) eredményei például nagyon részletesek, míg a TCP kapcsolódási letapogatás és visszhang (\fB\-sT\fR) eredményei korlátozottak a +connect +rendszerhívás megvalósítása miatt\&. Ezt a jellemzőt a hibakeresési paraméter (\fB\-d\fR) automatikusan engedélyezi\&. Az eredmények egy XML fájlban tárolódnak akkor is, ha ezt a paramétert nem adja meg\&. +.RE +.PP +\fB\-n\fR (Nincs DNS feloldás) +.RS 4 +Utasítja az Nmap programot, hogy +\fIsoha\fR +ne végezzen fordított DNS feloldást az aktívnak talált IP címeken\&. Mivel a DNS még az Nmap beépített párhuzamos DNS feloldójával is lassú lehet, ennek a paraméternek a megadása felgyorsíthatja a letapogatást\&. +.RE +.PP +\fB\-R\fR (DNS feloldás minden célpontra) +.RS 4 +Utasítja az Nmap programot, hogy +\fImindig\fR +végezzen fordított DNS feloldást a célpontok IP címeire\&. Normál helyzetben csak az elérhető (online) állomásokon történik fordított DNS feloldás\&. +.RE +.PP +\fB\-\-system\-dns\fR (Használja a rendszer DNS feloldóját) +.RS 4 +Alaphelyzetben az Nmap a névfeloldást maga végzi úgy, hogy a rendszeren beállított névkiszolgáló felé közvetlenül küldi el a kéréseket és vár a válaszra\&. A teljesítmény javítása érdekében több kérés kerül elküldésre párhuzamosan (gyakran többszáz)\&. A rendszer DNS feloldójának használatához adja meg ezt a paramétert (egyszerre egy IP a getnameinfo() rendszerhíváson keresztül)\&. Ez sokkal lassabb és ritkán hasznos, kivéve ha valamilyen hibát talál az Nmap párhuzamos feloldójában (kérjük jelezze, ha így van)\&. Az IPv6 letapogatásokhoz mindig a rendszer feloldóját használja a program\&. +.RE +.PP +\fB\-\-dns\-servers <server1[,server2],\&.\&.\&.> \fR (A fordított DNS feloldáshoz használt kiszolgálók) +.RS 4 +Alaphelyzetben az Nmap a DNS kiszolgálók adatait a resolv\&.conf fájlból (UNIX) vagy a regisztrációs adatbázisból (Windows) próbálja meg kinyerni\&. Ezzel a paraméterrel Ön más kiszolgálókat is megadhat\&. A program nem veszi figyelembe ezt a paramétert, ha a +\fB\-\-system\-dns\fR +paramétert használja, vagy IPv6 letapogatást hajt végre\&. Több DNS kiszolgáló használat gyakran felgyorsítja a feloldást, különösen ha a célpont IP tartományának meghatalmazott kiszolgálóját használja\&. Ezzel a paraméterrel fokozható a rejtőzködés is, mivel a kérések tküldhetők több rekurzív DNS kiszolgálón is\&. +.sp +Szintén hasznos lehet ez a paraméter a magánhálózatok letapogatásakor\&. Néha csak néhány névkiszolgáló ad vissza megfelelő fordított DNS információkat és nem mindig tudhatja, hogy ezek hol vannak\&. Letapogathatja a hálózatot az 53\-as kapura keresve (esetleg változat érzékeléssel együtt), ezután kipróbálhatja a lista alapú letapogatást (\fB\-sL\fR) egyesével megadva a névkiszolgálókat a +\fB\-\-dns\-servers\fR +paraméterben addig, amíg meg nem találja a megfelelőt\&. +.RE +.SH "KAPULETAPOGATÁSI ALAPOK" +.PP +Bár az Nmap funkciói folyamatosan bővültek az évek folyamán, kezdetben még csak egy hatékony kapuletapogató volt és ez is maradt a fő funkciója\&. Az egyszerű +\fBnmap \fR\fB\fIcélpont\fR\fR +parancs kiadásával több, mint 1660 TCP kaput tapogathatunk le a +\fIcélpont\fR +gépen\&. Míg a legtöbb kapuletapogató hagyományosan csak nyitott vagy zárt csoportba sorolja a kapukat, az Nmap sokkal finomabban dolgozik\&. A kapukat hat csoportba sorolja: +nyitott, +zárt, +szűrt, +szűretlen, +nyitott|szűrt, vagy +zárt|szűrt\&. +.PP +Ezek nem a kapu valódi állapotát jelzik, hanem azt, hogy az Nmap hogyan látja őket\&. Például a célponttal egyező hálózatból induló Nmap letapogatás mutathatja a 135/tcp kaput nyitottnak, míg ugyanabban az időben, ugyanolyan paraméterekkel az Internet felől a letapogatás mutathatja a kaput +szűrt +állapotúnak\&. +.PP +\fBAz Nmap által felimert hat kapuállapot\fR +.PP +nyitott +.RS 4 +Egy alkalmazás ezen a kapun aktívan fogadja a TCP kapcsolatokat vagy az UDP csomagokat\&. A kapuletapogatás elsődleges célja ezeknek a felderítése\&. Biztonság\-tudatos emberek tudják, hogy minden nyitott kapu sugárút egy támadáshoz\&. A támadók és a tesztelők szeretnék kihasználni ezeket a nyitott kapukat, míg a rendszergazdák megpróbálják lezárni, vagy tűzfallal védeni őket anélkül, hogy a jogosult felhasználókat akadályoznák a használatban\&. A nyitott kapuk nem csak biztonsági szempontból lehetnek érdekesek, mivel valamilyen hálózaton keresztül elérhető szolgáltatást mutatnak\&. +.RE +.PP +zárt +.RS 4 +Egy zárt kapu elérhető (fogadja az Nmap próbacsomagjait és válaszol rájuk), de nem fut rajta semmilyen alkalmazás\&. Segítséget nyújtanak annak meghatározásában, hogy az IP címhez tartozó állomás működik (állomás felderítés, vagy visszhang letapogatás), valamint felhasználhatók az operációs rendszer meghatározására is\&. Mivel a zárt kapuk elérhetők, érdemes lehet őket később ismét letapogatni, hátha menet közben nyitottá válnak\&. A rendszergazdáknak érdemes figyelni arra, hogy az ilyen kapukat tűzfallal blokkolják\&. Ezután ezek a kapuk szűrt állapotot fognak mutatni, ahogy azt a következő rész is mutatja\&. +.RE +.PP +szűrt +.RS 4 +Az Nmap nem tudja meghatározni, hogy a kapu nyitott\-e, mert egy csomagszűrő megakadályozza, hogy a próbák eljussanak a kapuig\&. A szűrés történhet külön tűzfallal, útválasztó szabályokkal vagy az állomásra telepített tűzfal programmal\&. Ezek a kapuk zavarják a támadókat, mivel nagyon kevés információt közölnek\&. Néhány esetben visszaküldhetnek ICMP hibaüzeneteket (pl\&. ICMP 3\-as típus 13\-as kód: a célpont nem érhető el, a kommunikáció tiltott), de a legáltalánosabb, hogy a szűrők egyszerűen eldobálják a próbacsomagokat\&. Ez arra készteti az Nmap programot, hogy néhányszor újra megpróbálja a kapcsolódást, hogy kiszűrhetőek legyenek a hálózati hiba miatti csomagvesztések\&. Ez viszont drámai módon lelassítja a letapogatást\&. +.RE +.PP +szűretlen +.RS 4 +A szűretlen állapot azt jelenti, hogy a kapu elérhető, de az Nmap nem tudja meghatározni, hogy zárt vagy nyitott\&. Csak a tűzfal szabályok feltérképezésére használt ACK letapogatás sorolja a kapukat ebbe a csoportba\&. A szűretlen kapuk ismételt letapogatása más módszerekkel (pl\&. Window, SYN vagy FIN letapogatás) segíthet a kapu állapotának pontosabb meghatározásában\&. +.RE +.PP +nyitott|szűrt +.RS 4 +Az Nmap akkor sorolja a kapukat ebbe a csoportba, ha nem tudja meghatározni, hogy nyitott vagy szűrt\&. Ez olyan letapogatási típusoknál fordul elő, amelynél a nyitott kapu nem ad választ\&. A válasz hiánya jelentheti azt is, hogy egy csomagszűrő eldobta a próbacsomagot vagy a visszaadott választ\&. Így az Nmap nem tudja bioztosan meghatározni, hogy a kapu nyitott vagy szűrt\&. Az UDP, az IP protokoll, a FIN, a Null és az Xmas letapogatás minősíti így a kapukat\&. +.RE +.PP +zárt|szűrt +.RS 4 +Ezt az állapotot akkor adja vissza az Nmap, amikor nem tudja meghatározni, hogy a kapu zárt vagy szűrt állapotú\&. Csak az IP ID üresjárati letapogatásnál használt\&. +.RE +.SH "KAPULETAPOGATÁSI TECHNIKÁK" +.PP +Mint kezdő autószerelő, több órás küzdelmet folytattam azért, hogy a munkához szükséges legelemibb szerszámok (kalapács, ragasztószalag, csavarkulcs stb\&.) kéznél legyenek\&. Miután szánalmas kudarcot vallottam, elvontattam a tragacsomat egy igazi szerelőhöz\&. Ő szintén sokáig kotorászott egy óriási szerszámos ládában de végül előhúzta a megfelelő ketyerét, amivel aztán könnyedén elvégezte a munkát\&. A kapuletapogatás művészete is hasonló\&. A szakértők ismerik a letapogatási technikák százait és minden feladathoz a megfelelőt (vagy több kombinációját) használják\&. Másfelől viszont a gyakorlatlan felhasználók és a szkriptkölykök minden feladathoz az alap SYN letapogatást használják\&. Mivel az Nmap ingyenesen elérhető, így a mesteri letapogatás egyetlen határa a tudás\&. Így természetesen legyőzi az autóipart, ahol már annak a meghatározásához is elég sok szaktudás kell, hogy miféle szerszámra lesz szükség\&. Ráadásul ezt még meg is kell venni egy rakás pénzért\&. +.PP +A legtöbb letapogatási technikát kizárólag kiemelt felhasználók érik el\&. Ez azért van, mert ezek a technikák nyers csomagok küldésével dolgoznak, melyhez rendszergazdai hozzáférés szükséges\&. Windows rendszereken is ajánlatos rendszergazda szintű felhasználóként használni a programot még akkor is, ha a WinPcap programkönyvtár elérhető az operációs rendszerhez\&. A rendszergazda szintű használat az Nmap 1997\-es megjelenésekor egy komoly korlátozás volt, mivel akkoriban a legtöbb felhasználónak csak korlátozott parancshéj hozzáférése volt\&. Ma már más a helyzet\&. A számítógépek olcsóbbak, sokkal több ember kapcsolódik folyamatosan az Internetre és az asztali Unix rendszerek (mint például a Linux és a Mac OS X) is jobban elterjedtek\&. Ma már elérhető az Nmap Windows környezetben is, így még több gépen használható\&. Mindezeknek köszönhetően egyre kevesebb helyen kell az Nmap programot korlátozott parancshéj alatt futtani\&. Ez jó dolog, mivel a kiemelt felhasználóknak nyújtott szolgáltatások teszik a programot erőteljessé és rugalmassá\&. +.PP +Bár az Nmap a lehető legpontosabb eredményre törekszik, nem szabad megfeledkezni arról, hogy minden eredménye a célállomás (vagy egy előtte lévő tűzfal) által visszaküldött csomagokon alapul\&. Ezek lehetnek megbízhatatlan állomások, melyek szándékosan megtévesztő válaszokat küldenek\&. Meglehetősen elterjedtek az olyan állomások, melyek az Nmap próbáira nem úgy válaszolnak, ahogyan azt az RFC szabványok meghatározzák\&. A FIN, NULL és Xmas letapogatások különösen érzékenyek az ilyen problémákra\&. Ezek a problémák erősen kötődnek egyes letapogatási típusokhoz, így a megfelelő letapogatások leírásainál részletesen is foglalkozunk velük\&. +.PP +Ebben a szakaszban található az Nmap által támogatott tucatnyi letapogatási technika leírása\&. Egyszerre csak egyféle technika használható\&. Kivételt képez az UDP letapogatás (\fB\-sU\fR), mely bármelyik TCP letapogatással kombinálható\&. A letapogatások típusának megadása a következő formátumban lehetséges: +\fB\-s\fR\fB\fIC\fR\fR, ahol a +\fIC\fR +a letapogatás nevének egy kiemelt betűje, általában az első\&. Az egyetlen kivétel a sokak által utált FTP ugráló letapogatás (\fB\-b\fR)\&. Alapértelmezetten az Nmap egy SYN letapogatást hajt végre\&. Kivétel, ha a felhasználónak nincs megfelelő jogosultsága nyers csomagok küldésére, vagy a célpont címe IPv6 formátumú\&. Ilyenkor a hagyományos connect() letapogatás történik\&. Az ebben a szakaszban felsorolt letapogatásokat csak kiemelt felhasználók hajthatják végre\&. Normál felhasználók csak a connect() és az FTP ugráló letapogatásra jogosultak\&. +.PP +\fB\-sS\fR (TCP SYN letapogatás) +.RS 4 +A SYN letapogatás az alapértelmezett és a legelterjedtebb letapogatás, nem véletlenül\&. Gyorsan végrehajtható, gyors hálózatokon másodpercenként több ezer kapu lepróbálható anélkül, hogy tolakodó tűzfalak zavarnák a folyamatot\&. A SYN letapogatás eléggé diszkrét és rejtett, mivel sosem fejeződik be a TCP kapcsolat felépítése\&. Bármelyik megfelelő TCP veremmel működik, ellentétben a FIN/NULL/Xmas, a Maimon vagy az üresjárati letapogatással, melyek erősen függnek az egyes operációs rendszerek egyedi veremkialakításától\&. Szintén előnyös, hogy tisztán megkülönböztethetők a +nyitott, +zárt +és +szűrt +kapuállapotok\&. +.sp +Ezt a technikát gyakran nevezik félig nyitott letapogatásnak is, mivel sosem jön létre egy teljes TCP kapcsolat\&. Egy SYN csomag elküldésével szimuláljuk egy kapcsolat felépítését és várunk a válaszra\&. A SYN/ACK válasz jelzi, hogy a kapu fogadja a kapcsolódást (nyitott), az RST (reset) pedig azt, hogy nem\&. Ha néhány ismétlés után sem érkezik válasz, a kapu szűrt állapotúként lesz jelölve\&. Szintén ezt a jelölést kapja, ha egy ICMP nem elérhető hibaüzenet (kód 3, típus 1, 2, 3, 9, 10 vagy 13) érkezik\&. +.RE +.PP +\fB\-sT\fR (TCP connect letapogatás) +.RS 4 +Ha a SYN letapogatás nem érhető el, akkor a TCP connect() letapogatás válik alapértelmezetté\&. Ez akkor történik meg, ha a felhasználónak nincs jogosultsága nyers adatcsomagokkal dolgozni, vagy ha a célpont IPv6 címet használ\&. A nyers csomagok használata helyett az Nmap átadja a célpont címét és a célkapu számát az operációs rendszernek, hogy az építse fel a kapcsolatot a +connect() +rendszerhívás segítségével\&. Ugyanezt a magas szintű rendszerhívást használják a böngészők, a P2P kliensek és más hálózati alkalmazások is a kapcsolatok felépítéséhez\&. Ez része a Berkeley Sockets API néven ismert programozási felületnek\&. Az Nmap ilyenkor a nyers válaszcsomagok beolvasása helyett ezt a felületet használja az egyes kapcsolatok állapotának lekérdezésére\&. +.sp +Ha a SYN letapogatás elérhető, általában jobb azt választani\&. Az Nmap sokkal jobban kézben tudja tartani a nyers csomagokat, mint a magasabb szintű +connect() +rendszerhívást\&. A SYN letapogatás félig nyitott kapcsolataival ellentétben a rendszerhívás teljesen felépíti a kapcsolatot a célponttal\&. Ez nem csak tovább tart, de több adatcsomagra is van szükség ugyanannyi információ megszerzéséhez\&. Ráadásula célpont naplózhatja is a kapcsolódást\&. Egy rendes behatolás érzékelő még jelezhet is, bár a legtöbb gépen nincs ilyen riasztórendszer\&. Az átlagos Unix rendszereken a legtöbb szolgáltatás bejegyzést készit a rendszernaplóba a kapcsolatról, amit ráadásként még kiegészíthet egy hibaüzenettel is, ha a kapcsolatot adatküldés nélkül azonnal megszakítjuk\&. Néhány szánalmas szolgáltatás ilyenkor összeomlik, bár ez nem túl jellemző\&. Ha egy rendszergazda rengeteg, azonos helyről érkező kapcsolódást lát a rendszernaplóban, azonnal tudni fogja, hogy connect() letapogatás áldozata lett\&. +.RE +.PP +\fB\-sU\fR (UDP letapogatások) +.RS 4 +Bár a legismertebb Internetes szolgáltatások a TCP protokollt használják, azért az +\m[blue]\fBUDP\fR\m[]\&\s-2\u[5]\d\s+2 +alapú szolgáltatások is széles körben elterjedtek\&. A három legismertebb a DNS, az SNMP és a DHCP (a használt kapuk: 53, 161/162 és 67/68)\&. Mivel az UDP letapogatás általában lassabb és sokkal bonyolultabb, mint a TCP, néhány biztonsági felülvizsgáló nem is figyel ezekre a kapukra\&. Ez nagy hiba, mivel eléggé elterjedtek a kihasználható UDP alapú szolgáltatások és a támadók bizonyosan nem hagyják figyelmen kívül ezeket\&. Szerencsére az Nmap segít leltárba foglalni az UDP kapukat is\&. +.sp +Az UDP letapogatás az +\fB\-sU\fR +paraméterrel indítható\&. Kombinálható valamilyen TCP letapogatással, mint például a SYN letapogatás (\fB\-sS\fR), így egyidőben mindkét protokoll ellenőrizhető\&. +.sp +Az UDP letapogatás úgy működik, hogy egy üres (adat nélküli) UDP fejlécet küldünk minden egyes célkapura\&. Ha ICMP "Kapu nem elérhető" hiba (3\-as típus, 3\-as kód) érkezik vissza, a kapu +zárt\&. Más típusú ICMP "nem elérhető" hibák esetén (1, 2, 9, 10 vagy 13) a kapu +szűrt\&. Alkalmanként egy szolgáltatás valamilyen UDP csomagot küldhet vissza, ezzel jelezve, hogy a kapu +nyitott\&. Ha néhány megismételt próba után sem érkezik válasz, a kapu jelölése +nyitott|szűrt\&. Ez azt jelenti, hogy a kapu lehet nyitott, vagy egy csomagszűrő blokkolja az átvitelt\&. A szolgáltatások verzióletapogatása (\fB\-sV\fR) segíthet elkülöníteni a ténylegesen nyitott kapukat a szűrt kapuktól\&. +.sp +Az UDP letapogatás legnagyobb kihívása a gyors végrehajtás\&. A nyitott és a szűrt kapuk ritkán küldenek vissza valamilyen választ, arra kényszerítve az Nmap programot, hogy az időzítés lejártáig várakozzon, majd megismételje a próbát azt feltételezve, hogy a próba vagy a válasz elveszett\&. A zárt kapuk gyakran még nagyobb problémát jelentenek\&. Ezek általában egy ICMP "Kapu nem elérhető" hibaüzenetet küldenek vissza\&. De az RST csomagokkal ellentétben, melyeket a zárt TCP kapuk küldenek vissza válaszként a SYN vagy a connect() letapogatásra, a legtöbb állomás alapból korlátozza az elküldhető ICMP "Kapu nem elérhető" oüzenetek mennyiségét\&. A Linux és a Solaris operációs rendszerek különösen szigorúak ebből a szempontból\&. Például a Linux 2\&.4\&.20\-as rendszermagja a "Célállomás nem elérhető" üzenetekből csak másodpercenként egyet enged elküldeni (a +net/ipv4/icmp\&.c +fájlban)\&. +.sp +Az Nmap észleli ezt a korlátozást és képes eléggé lelassítani a próbákat, hogy megelőzze a hálózat elárasztását olyan haszontalan csomagokkal, melyeket a célállomás úgyis eldobna\&. Sajnos a Linux stílusú, egy csomag/másodperc korlátozás miatt a teljes 65536 UDP port letapogatása több,mint 18 óráig tart\&. Néhány ötlettel felgyorsítható az UDP letapogatás: több állomás letapogatása párhuzamosan, a legáltalánosabb kapuk letapogatása először, letapogatás tűzfalon belülről és a lassú állomások átugrása a +\fB\-\-host\-timeout\fR +paraméter megadásával\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP NULL, FIN és Xmas letapogatás) +.RS 4 +Az Nmap ennek a három letapogatásnak a segítségével (a +\fB\-\-scanflags\fR +paraméter segítségével még több lehet, erről bővebben a következő szakaszban) kiaknázza azt a hajszálnyi rést, mely a +\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[6]\d\s+2 +leírásban található és így tesz különbséget a +nyitott +és a +zárt +kapuk között\&. A 65\-dik oldalon ez áll: +„ha a célkapu ZÁRT \&.\&.\&.\&. egy RST bitet nem tartalmazó bejövő csomagra válaszként egy RST csomagot kell küldeni\&.\(rq +A következő oldalon azt tárgyalja, hogy egy nyitott kapura SYN, RST vagy ACK bit nélküli csomag +„valószínűtlen, hogy érkezne, de ha mégis ez történne, a csomagot el kell dobni\&.\(rq +.sp +Ha olyan rendszereket tapogatunk le, amelyek megfelelnek ennek az RFC leírásnak, akkor bármilyen olyan próbacsomag, amely nem tartalmazza a SYN, ACK vagy RST bitet egy RST választ fog kiváltani, ha a célkapu zárt és nem vált ki választ, ha a célkapu nyitott\&. Amíg ez a három bit nem szerepel, a másik három bit (FIN, PSH, URG) tetszőleges kombinációja használható\&. Az Nmap ezt három letapogatási típussal használja ki: +.PP +NULL letapogatás (\fB\-sN\fR) +.RS 4 +Nem állít be egyetlen bitet sem (a TCP zászlók értéke 0) +.RE +.PP +FIN letapogatás (\fB\-sF\fR) +.RS 4 +Csak a TCP FIN bitet állítja be\&. +.RE +.PP +Xmas letapogatás (\fB\-sX\fR) +.RS 4 +Beállítja a FIN, PSH és URG zászlókat, így a csomag olyan lesz, mint a karácsonyfa\&. +.RE +.sp +Mindhárom letapogatás ugyanúgy viselkedik, az egyetlen különbség a próbacsomagban beállított zászlók között van\&. Ha válaszként RST csomag érkezik, a kapu besorolása +zárt +lesz, míg ha nem érkezik válasz, a besorolás +nyitott|szűrt\&. Ha válaszként ICMP "nem elérhető" (kód 3, típus 1, 2, 3, 9, 10 vagy 13) hiba érkezik, a kapu jelölése +szűrt +lesz\&. +.sp +Ezeknek a letapogatásoknak a legnagyobb előnye, hogy könnyen átcsúsznak egyes nem\-állapottartó tűzfalakon és csomagszűrő útválasztókon\&. Másik előnyük, hogy némileg rejtettebbek, mint a hagyományok SYN letapogatás\&. Azért sokat ne várjunk \- a legtöbb modern behatolásérzékelő (IDS) képes észlelni ezt a fajta letapogatást\&. Nagy hátrány, hogy nem minden rendszer követi szigorúan az RFC 793 előírásait\&. Számos rendszer RST csomagot küld vissza ezekre a letapogatásokra a kapu állapotától függetlenül\&. Emiatt az összes kapu +zárt +jelölést kap\&. A jelentősebb operációs rendszerek, melyek így tesznek: a Microsoft Windows, több CISCO eszköz, a BSDI és az IBM OS/400\&. Ennek ellenére a legtöbb Unix alapú operációs rendszer ellen használhatók ezek a letapogatások\&. Másik hátránya ezeknek a letapogatásoknak, hogy nemképesek különbséget tenni a +nyitott +és a +szűrt +kapuk között, így ezek a kapuk a +nyitott|szűrtjelölést kapják\&. +.RE +.PP +\fB\-sA\fR (TCP ACK letapogatás) +.RS 4 +Ez a letapogatás teljesen eltér az előzőekben tárgyaltaktól, mivel sosem határozza meg a +nyitott +(vagy a +nyitott|szűrt) kapukat\&. Arra használható, hogy kikémleljük egy tűzfal szabályrendszerét, meghatározva hogy állapottartó vagy sem és hogy mely kapukat szűri\&. +.sp +Az ACK letapogatás során olyan csomagokat küldünk a célpont felé, melynek csak az ACK zászlóját állítjuk be (kivéve, ha a +\fB\-\-scanflags\fR +paramétert is használjuk)\&. Szűrés nélküli rendszereknél mind a +nyitott, mind a +zárt +kapuk RST csomagot küldenek vissza erre a próbára\&. Az Nmap ezeket a kapukat +szűretlen +jelzéssel látja el, így jelölve, hogy az ACK csomag eléri a kaput, de annak +nyitott +vagy +zárt +állapota nincs meghatározva\&. Azok a kapuk, melyek nem válaszolnak, vagy bizonyos ICMP hibaüzenetet (kód 3, típus 1, 2, 3, 9, 10 vagy 13) küldenek vissza, +szűrt +jelölést kapnak\&. +.RE +.PP +\fB\-sW\fR (TCP Window letapogatás) +.RS 4 +A Window letapogatás megegyezik az ACK letapogatással\&. Az egyetlen különbség, hogy kihasználja egyes rendszerek TCP megvalósításának jellegzetességét, így téve különbséget a nyitott és a zárt kapuk között, ahelyett hogy minden visszakapott RST csomag esetén a kaput +szűretlennek +jelölne\&. Ezt úgy éri el, hogy megvizsgálja a visszaküldött RST csomag Window szakaszát\&. Néhány rendszernél a nyitott kapu esetén a Window értéke pozitív, míg zárt kapunál nulla\&. Így pozitív Window érték esetén a kapu +nyitott, míg nulla Window érték esetén a kapu +zárt +jelölést kap\&. +.sp +Ez a letapogatás az interneten található rendszerek egy kis részének jellegzetességén alapul, így nem tekinthető teljesen megbízhatónak\&. Azoknál a rendszereknél, melyek nem így működnek az összes kapu +zárt +állapotot fog jelezni\&. Természetesen lehetséges, hogy a célpontnak nincs egyetlen nyitott kapuja sem\&. Ha a legtöbb letapogatott kapu +zárt, de néhány elterjedt kapu (például a 22, 25, 53) +szűrt +állapotú, a rendszer legalábbis gyanús\&. Alkalmanként a rendszerek teljesen ellentétesen viselkednek\&. Ha a letapogatás 1000 nyitott és 3 zárt vagy szűrt kaput jelez, akkor valószínűleg pont az a 3 kapu a nyitott\&. +.RE +.PP +\fB\-sM\fR (TCP Maimon letapogatás) +.RS 4 +A Maimon letapogatás a felfedezője, Uriel Maimon után kapta a nevét\&. Ő a technikát a Phrack Magazine 49\-es számában írta le (1996 November)\&. Az Nmap, mely két számmal később jelent meg, szintén ismeri ezt a technikát\&. Az eljárás ugyanaz, mint a NULL, FIN és Xmas letapogatásnál, csak itt FIN/ACK csomagot küldünk el\&. Az RFC 793 (TCP) szerint egy ilyen csomag beérkezésekor mind a nyitott, mind a zárt kapunka RST csomagot kell küldenie válaszként\&. Uriel észrevette, hogy sok BSD alapú rendszer nyitott kapuk esetén egyszerűen eldobja ezeket a csomagokat\&. +.RE +.PP +\fB\-\-scanflags\fR (Testreszabott TCP letapogatás) +.RS 4 +Az igazán képzett Nmap felhasználóknak nem kell magukat a programba beépített letapogatási típusokra korlátozniuk\&. A +\fB\-\-scanflags\fR +paraméterrel saját letapogatási típusokat tervezhetnek, tetszőleges TCP zászlók használatával\&. Engedje szabadon a fantáziáját, hogy kitérhessen az olyan behatolásérzékelő rendszerek elől, amelyek gyártói csak átlapozták az Nmap leírását a szabályok megadásakor! +.sp +A +\fB\-\-scanflags\fR +paraméterezése történhet számmal (például 9 (PSH and FIN)) is, de a szimbolikus nevek használata sokkal könnyebb\&. Csak keverje össze az +URG, +ACK, +PSH, +RST, +SYN +és +FIN +zászlókat tetszőleges kombinációban\&. Például a +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +beállítja az összes zászlót, bár ez nem túl hasznos\&. A zászlók megadásának sorrendje nem lényeges\&. +.sp +A kívánt zászlók megadása mellet megadhatja a TCP letapogatás típusát is (például +\fB\-sA\fR +vagy +\fB\-sF\fR)\&. Ezzel az alaptípussal meghatározhatja, hogy az Nmap hogyan értelmezze a válaszokat\&. Például a SYN letapogatásnál ha nem érkezik válasz, akkor a kapu állapota +szűrt, míg a FIN letapogatásnál ugyanez +nyitott|szűrt +állapotot jelez\&. Az Nmap ugyanúgy viselkedik, mint az alap letapogatásnál, csak a próbacsomagban a megadott zászlókat fogja használni az alap letapogatás zászlói helyett\&. Ha nem ad meg alaptípust, a SYN letapogatást fogja használni\&. +.RE +.PP +\fB\-sI <zombi állomás[:próbakapu]>\fR (Üresjárati letapogatás) +.RS 4 +Ez a fejlett eljárás egy igazi vakon végzett TCP letapogatást hajt végre a célállomáson (ez azt jelenti, hogy a saját IP címéről semmilyen csomag nem lesz elküldve a célállomásra)\&. Ehelyett kihasználjuk azt, hogy a zombi gépen megjósolható az IP töredezettségmező sorszámgenerátorának következő értéke és ezzel az oldaltámadással szerzünk információt a célgépen lévő nyitott kapukról\&. A behatolásérzékelő rendszerek úgy látják majd, hogy a letapogatás a zombi állomás felől érkezett (melynek élőnek kell lennie és meg kell felelnie bizonyos követelményeknek)\&. Ez az elbűvölő letapogatás túl bonyolult ahhoz, hogy ebben a leírásban részletesen is foglalkozhassunk vele, ezért írtam egy részletes leírást róla, mely a +\m[blue]\fB\%https://nmap.org/idlescan.html\fR\m[] +címen olvasható\&. +.sp +Amellett, hogy különösen rejtett, ezzel a letapogatással kihasználható a gépek közötti, IP alapú bizalmi viszony\&. A nyitott kapuk ebben az esetben +\fIa zombi gép nézőpontjából láthatóak nyitottnak\&.\fR +Megpróbálhat letapogatni egy célállomást több olyan zombi használatával, melyekről sejthető, hogy a célpont megbízhatónak tekinti (útválasztó vagy csomagszűrő szabályok alapján)\&. +.sp +A zombigép nevéhez kettősponttal elválasztva hozzáadhat egy kapuszámot is, ha le akarja tesztelni az IP ID változásait a zombigépen\&. Egyébként az Nmap a TCP visszhang próbakapuját (80) fogja használni\&. +.RE +.PP +\fB\-sO\fR (IP protokoll letapogatás) +.RS 4 +Az IP protokoll letapogatással meghatározható, hogy a célállomás mely IP protokollokat (TCP, ICMP, IGMP stb\&.) támogatja\&. Technikai szempontból ez nem igazán kapuletapogatás, mivel a TCP és UDP kapuszámok helyett az IP protokoll számokon megy végig\&. Ugyanúgy a +\fB\-p\fR +paramétert használja, csak itt a kapu száma helyett a protokoll számát kell megadni, az eredményeket ugyanolyan formátumban adja vissza, mint a kapuletapogatások és ugyanazt a letapogató motort használja, mint a kapuletapogatás\&. gy elég közel áll a kapuletapogatáshoz, hogy ide tartozzon\&. +.sp +Amellett, hogy magában is hasznos, a protokoll letapogatáson látszik a nyílt forráskódú programok igazi ereje\&. Bár az alapötlet meglehetősen egyszerű, nem gondoltam, hogy bele kéne vennem a programba és nem is érkezett ilyen kérés felém\&. Aztán 2000 nyarán Gerhard Rieger fejében megfogalmazódott az ötlet, készített egy nagyszerű kiegészítést, melyben megvalósította a letapogatást és elküldte az nmap\-hackers levelezőlistára\&. n beillesztettem az Nmap forrásfájába és másnap kiadtam egy új változatot a programból\&. Csak kevés kereskedelmi programnak vannak olyan lelkes felhasználói, akik megterveznék és tadnák a saját fejlesztéseiket! +.sp +A protokoll letapogatás az UDP letapogatáshoz hasonlóan működik\&. Ahelyett, hogy a kapuszámokat váltogatná az UDP csomagban, IP fejléceket küldözget, melyben a 8 bites protokollmező változtatja\&. A fejlécek általában üresek, nem tartalmaznak adatot és egyáltalán nem felelnek meg a tesztelt protokollnak\&. Három kivétel van: A TCP, az UDP és az ICMP\&. Ezekhez a protokollokhoz létezik a megfelelő fejléc, mert egyrészt a legtöbb rendszer nem hajlandó egyébként elküldeni a csomagot, másrészt az Nmap rendelkezik az összeállításukhoz szükséges tudással\&. Ahelyett, hogy az ICMP "kapu nem elérhető" üzenetre várakozna, a protokoll letapogatás az ICMP +\fIprotokoll\fR +nem elérhető üzenetre vár\&. Ha az Nmap bármelyik protokollnál bármilyen választ kap, akkor a protokoll +nyitott +jelölést kap\&. Ha egy ICMP "protokoll nem elérhető" hiba érkezik (típus 3, kód 2), akkor a protokoll +zárt +jelölést kap\&. Más ICMP hibaüzenetek (típus 3, kód 1, 3, 9, 10 vagy 13) esetén a protokoll +szűrt +jelölést kap (bár ez azt bizonyítja, hogy ugyanakkor az ICMP protokoll +nyitott)\&. Ha néhány ismétlés után sem érkezik válasz, akkor a protokoll +nyitott|szűrt +jelölést kap\&. +.RE +.PP +\fB\-b <FTP átjátszó állomás>\fR (FTP ugráló letapogatás) +.RS 4 +Az FTP protokoll egy érdekes lehetősége (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[7]\d\s+2) az úgynevezett megbízott (proxy) FTP kapcsolat\&. Ez lehetővé teszi a felhasználónak, hogy csatlakozzon egy FTP kiszolgálóhoz, majd utasítsa a kiszolgálót, hogy fájlokat küldjön egy harmadik kiszolgálónak\&. Ez a lehetőség olyan sok visszaélésre alkalmas, hogy a legtöbb kiszolgáló nem is támogatja\&. Az egyik visszaélési lehetőség, hogy az FTP kiszolgálót kapuletapogatásra lehet használni egy harmadik állomás ellen\&. Egyszerűen arra kell utasítani az FTP kiszolgálót, hogy küldjön el egy fájlt a célállomás minden egyes érdekes kapujára\&. A hibaüzenetek jelzik, hogy a kapu nyitott, vagy zárt\&. Ez egy jó módszer a tűzfalak megkerülésére, mivel a szervezetek FTP kiszolgálói általában a tűzfalakon belül vannak, hogy a többi állomásnak szabad hozzáférése legyen a fájlokhoz\&. Az Nmap a +\fB\-b\fR +paraméteren keresztül támogatja az FTP ugráló letapogatást, melynek formátuma a következő: +\fIfelhasználói név\fR:\fIjelszó\fR@\fIkiszolgáló\fR:\fIkapu\fR\&. A +\fIkiszolgáló\fR +a kihasználni kívánt FTP kiszolgáló neve, vagy IP címe\&. Csakúgy, mint egy hagyományos URL\-nél, itt is elhagyható a +\fIfelhasználói név\fR:\fIjelszó\fR +páros, ha a névtelen bejelentkezés engedélyezett (felhasználó: +anonymous +jelszó:\-wwwuser@)\&. Szintén elhaygható a kapu megadása (a bevezető kettősponttal együtt), ilyenkor az alapértelmezett FTP kaput (21) használja a program a +\fIkiszolgálón\fR\&. +.sp +Ez a sérülékenység az Nmap 1997\-es megjelenésekor széles körben elterjedt volt, de mára már nagyrészt javították\&. Ennek ellenére még mindig találhatók sérülékeny FTP kiszolgálók, tehát megéri kipróbálni, ha már minden más kudarcot vallott\&. Ha egy tűzfal megkerülése a cél, tapogassa le a célhálózatot nyitott 21\-es kaput után kutatva (vagy bármilyen FTP szolgáltatás után, ha az összes kaput vizsgálja változat ellenőrzésse), azután próbálja meg az ugráló letapogatást ezek használatával\&. Az Nmap megadja, hogy az állomás sérülékeny\-e ebből a szempontból\&. Ha csak a nyomait szeretné eltakarni, akkor nem szükséges kizárólag a célhálózatban lévő gépekre korlátoznia magát\&. Mielőtt nekiállna sérülékeny FTP kiszolgálókat keresni az Interneten, jegyezze meg, hogy a rendszergazdák nem szeretik, ha a kiszolgálóikat ilyen célból próbálják kihasználni\&. +.RE +.SH "KAPU MEGHATÁROZÁS ÉS LETAPOGATÁSI SORREND" +.PP +Az előzőekben leírt letapogatási eljárások mellett az Nmap lehetőséget biztosít arra, hogy meghatározza a letapogatni kívánt kapukat és a letapogatás sorrendjét (véletlenszerűen vagy sorban)\&. Alapesetben az Nmap letapogatja az első 1024 kaput, valamint az +nmap\-services +fájlban felsorolt kapukat és protokollokat\&. +.PP +\fB\-p <kaputartomány(ok)>\fR (Csak a megadott kapu letapogatása) +.RS 4 +Ezzel a paraméterrel megadhatja a letapogatni kívánt kapukat, így felülbírálhatja az alapértelmezést\&. Megadhatók egyedi kapuk és kaputartományok kötőjellel elválasztva (pl\&. 1\-1023)\&. A tartomány kezdő\- és/vagy záróértéke kimaradhat, ilyenkor az Nmap az 1\-et vagy a 65535\-öt fogja használni\&. Tehát a +\fB\-p\-\fR +paraméterben megadható az is, hogy a letapogatás az 1\-65535 intervalumban történjen meg\&. A nullás kapu letapogatása is lehetséges, amennyiben külön megadja\&. Ha az IP protokoll letapogatást használja (\fB\-sO\fR), akkor ez a paraméter a letapogatni kívánt protokoll számát adja meg (0\-255)\&. +.sp +Ha mind a TCP, mind az UDP kapukat letapogatja, külön megadhatja a protokollt a kapuszám előtti +T: +vagy +U: +minősítővel\&. A minősítő hatása addig tart, amíg másikat nem ad meg\&. Például a +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +paraméter megadásával letapogatja az 53,111 és 137 UDP kapukat, majd a listán szereplő megfelelő TCP kapukat\&. Ha UDP és TCP letapogatást is akar végezni, meg kell adnia a +\fB\-sU\fR +paramétert és még legalább egy TCP letapogatás típusát (például +\fB\-sS\fR, +\fB\-sF\fR, or +\fB\-sT\fR)\&. Ha nem ad meg protokoll minősítőt, a kapuszámok minden protokoll listába bekerülnek\&. +.sp + +A kapuk megadhatók azzal a nevükkel is, amellyel az +nmap\-services +fájlban szerepelnek\&. A elnevezésekben használható mind a *, mind a ? helyettesítő karakter\&. Például ha le akarja tapogatni az FTP szolgáltatást, valamint az összes olyan kaput, melynek szolgáltatásneve http\-vel kezdődik, adja meg a +\fB\-p ftp,http*\fR +paramétert\&. Vigyázzon a parancsértelmezők kiterjesztéseire és tegye idézőjelbe a +\fB\-p\fR +utáni kifejezést, ha bizonytalan\&. +.sp +A kaputartományok bezárhatók szögletes zárójlebe\&. Ekkor a megadott tartományból csak azokat a kapukat tapogatja le, melyek szerepelnek az +nmap\-services +fájlban\&. Például a +\fB\-p [\-1024]\fR +megadásával letapogathatja az +nmap\-services +fájlban lévő összes kaput 1024\-el bezárólag\&. Vigyázzon a parancsértelmezők kiterjesztéseire és tegye idézőjelbe a +\fB\-p\fR +utáni kifejezést, ha bizonytalan\&. +.RE +.PP +\fB\-F\fR (Gyors letapogatás (kevesebb kapuval) ) +.RS 4 +Arra utasítja a programot, hogy csak az +nmap\-services +fájlban (mely a program része) felsorolt kapukat tapogassa le (vagy a protokollokat, ha az +\fB\-sO\fR +paramétert adja meg)\&. Ez sokkal gyorsabb, mintha a célpont mind a 65535 kapuját letapogatnánk\&. Mivel ez a lista több, mint 1200 kaput tartalmaz, ezért az alapértelmezett TCP letapogatáshoz képest (1650\-nél több kapu) nem sokkal gyorsabb\&. Akkor tapasztalhat jelentős sebesség növekedést, ha elkészíti saját, testreszabott +nmap\-services +fájlját a +\fB\-\-servicedb\fR +vagy a +\fB\-\-datadir\fR +paraméterekkel\&. +.RE +.PP +\fB\-r\fR (Ne keverje a kapukat) +.RS 4 +Alaphelyzetben az Nmap véletlenszerűen tapogatja le a kapukat (kivéve néhány elterjedten használt kaput, melyet előre vesz a sorban)\&. Ez a keverés normál esetben kívánatos, de szükség esetén a +\fB\-r\fR +paraméter használatával sorrendben is letapogathatja a kapukat\&. +.RE +.SH "SZOLGÁLTATÁS ÉS VÁLTOZAT ÉRZÉKELÉS" +.PP +Állítsa rá az Nmap programot egy távoli állomásra és megtudhatja, hogy a 25/tcp, 80/tcp és az 53/udp kapuk nyitottak\&. Az +nmap\-services +adatbázisa alapján kb\&. 2200 jól ismert szolgáltatás azonosítható, így az előbb felsorolt kapuk valószínűleg egy levelező\- (SMTP), web\- (HTTP) és névkiszolgálóra (DNS) utalnak\&. Ez a lekérdezés általában pontos \- az esetek jelentős részében a levelezőkiszolgálók a 25\-ös TCP kapun figyelnek\&. Ennek ellenére nem lehet csak erre alapozni a következtetéseinket! Az emberek gyakran futtatnak megszokott szolgáltatásokat furcsa kapukon\&. +.PP +Még ha az Nmap helyesen is következtet és a fent említett kiszolgálók valóban SMTP, HTTP és DNS kiszolgálók, ez akkor sem túl so információ\&. Ha a cége vagy az ügyfelei részére felmérést készít a sebezhetőségekről (vagy csak egy egyszerű hálózati leltárt készít), szüksége lehet a működő levelező\- és a DNS kiszolgáló típusára és változatszámára\&. A pontos változatszám ismeretében sokkal könnyebb meghatározni, hogy az adott kiszolgáló mely sérülékenységekre érzékeny\&. A változat érzékelés segít kideríteni ezt az információt\&. +.PP +Miután valamelyik letapogatási módszer felderítette az elérhető TCP és UDP kapukat, a változat érzékelő kivallatja azokat a rajtuk futó alkalmazásokról\&. Az +nmap\-service\-probes +adatbázis számos próbát és válaszkifejezést tartalmaz a szolgáltatások azonosításához\&. Az Nmap megpróbálja meghatároznia szolgáltatás protokollját (pl\&. FTP, SSH, telnet, http), Az alkalmazás nevét (pl\&. ISC BIND, Apache httpd, Solaris telnetd), a szolgáltatás változatszámát, az állomás nevét, az eszköz típusát (pl\&. nyomtató, útválasztó), az operációs rendszer családját (pl\&. Windows, Linux) és néhány kiegészítő részletet (pl\&. fut\-e kapcsolatra váró X kiszolgáló, az SSH milyen protokollverziót használ, vagy a KaZaA felhasználói név)\&. Természetesen a legtöbb szolgáltatás nem adja ki az összes információt\&. Ha az Nmap programot SSL támogatással fordították, akkor kapcsolódik az SSL kiszolgálókhoz, hogy meghatározza a titkosítási réteg mögött található szolgáltatást\&. Ha RPC szolgáltatást talált, a program RPC "darálója" (\fB\-sR\fR) automatikusan megpróbálja kideríteni az RPC program típusát és változatát\&. Néhány UDP kapu +nyitott|szűrt +állapotban maradhat egy UDP letapogatás után, mivel a program nem tudja pontosan meghatározni az állapotát\&. A változat érzékelő megpróbál választ kicsalni ezekből a kapukból (csakúgy, mint a nyitott kapukból) és siker esetén nyitottra változtatja a kapu állapotát\&. A +nyitott|szűrt +TCP kapukat hasonló módon kezeli\&. Jegyezze meg, hogy az Nmap +\fB\-A\fR +paramétere más dolgok mellett a változat érzékelést is engedélyezi\&. A változat érzékelés működéséről, használatáról és paraméterezéséről a +\m[blue]\fB\%https://nmap.org/vscan/\fR\m[] +címen talál részletes leírást\&. +.PP +Ha az Nmap kap ugyan választ egy szolgáltatástól, de az adatbázis alapján nem tudja azonosítani, kinyomtat egy különleges ujjlenyomatot és egy URL\-t\&. Ha biztos abban, hogy milyen szolgáltatás fut az adott kapun, a megadott címen az ujjlenyomat segítségével megadhatja a szolgáltatás típusát\&. Szánjon erre pár percet, hogy mindenki élvezhesse az Ön felfedezésének eredményét\&. Ezeknek az adatoknak köszönhetően az Nmap kb\&. 3000 mintát ismer több, mint 350 protokollhoz\&. +.PP +A változat érzékelés a következő paraméterekkel engedélyezhető és vezérelhető: +.PP +\fB\-sV\fR (Változat érzékelés) +.RS 4 +Engedélyezi a változat érzékelést az előbbiekben leírt módon\&. Emellett használhatja még a +\fB\-A\fR +paramétert is, mely a változat érzékelés mellett más dolgokat is engedélyez\&. +.RE +.PP +\fB\-\-allports\fR (Ne hagyjon ki egy kaput sem a változat érzékelésből) +.RS 4 +Alapesetben az Nmap változat érzékelője átugorja a 9100/TCP kaput, mivel néhány nyomtató mindent kinyomtat, ami erre a kapura érkezik\&. Ez több oldal kinyomtatott http vagy SSL munkamenet kéréshez vezethet\&. Ez a viselkedés megváltoztatható, ha átírja vagy eltávolítja az +Exclude +irányelvet az +nmap\-service\-probes +fájlban, vagy ha megadja az +\fB\-\-allports\fR +paramétert, amellyel teljesen felülbírálhatja az +Exclude +irányelveket\&. +.RE +.PP +\fB\-\-version\-intensity <intenzitás>\fR (Beállítja a változat érzékelés erősségi szintjét) +.RS 4 +Amikor változat érzékelést hajt végre (\fB\-sV\fR), az Nmap egy sor próbát hajt végre, melyek mindegyikéhez egy\-egy gyakoriság érték van rendelve 1 és 9 között\&. Az alacsonyabb számú próbák jól használhatók az általánosan használt szolgáltatások széles skálája ellen, míg a magasabb számúak ritkábban hasznosak\&. Ezzel a paraméterrel megadhatja, hogy mely próbák legyenek végrehajtva\&. Minél magasabb a szám, annál valószínűbb, hogy a szolgáltatás azonosítása pontosan sikerül\&. Azonban jó tudni, hogy a magasabb intenzitás hosszabb végrehajtást is jelent\&. A szintnek 0 és 9 közé kell esnie, az alapérték 7\&. Ha egy próba az +nmap\-service\-probes +fájlban egy kapuhoz van rendelve a +ports +irányelv alatt, akkor ezt a próbát az intenzitás beállításától függetlenül végrehajtja a program\&. Ezzel biztosítható, hogy a nyitott 53\-as kapukon mindig lefutnak a DNS próbák és a 443\-as kapukon az SSl próbák stb\&. +.RE +.PP +\fB\-\-version\-light\fR (Tapintatos mód engedélyezése) +.RS 4 +Ez egy kényelmesebb megnevezése a +\fB\-\-version\-intensity 2\fR +paraméternek\&. Ezzel a móddal a változat érzékelés felgyorsítható, de a szolgáltatások azonosítása is bizonytalanabbá válik\&. +.RE +.PP +\fB\-\-version\-all\fR (Minden próba végrehajtása) +.RS 4 +A +\fB\-\-version\-intensity 9\fR +paraméter helyettesítése, mellyel minden kapun minde próbát elvégez a program\&. +.RE +.PP +\fB\-\-version\-trace\fR (A változat érzékelés nyomkövetése) +.RS 4 +Ennek a paraméternek a hatására az Nmap bőséges hibakeresési információt nyomtat ki az éppen futó változat érzékelési próbáról\&. Ez egy részhalmaza a +\fB\-\-packet\-trace\fR +paraméter által visszaadott információknak\&. +.RE +.PP +\fB\-sR\fR (RPC letapogatás) +.RS 4 +Ez az eljárás az Nmap legtöbb kapuletapogatási eljárásával együtt dolgozik\&. Veszi az összes nyitva talált TCP/UDP kaput és elárasztja őket a SunRPC program NULL parancsaival hogy meghatározza, melyek az RPC kapuk és milyen programot futtatnak\&. Így pontosan ugyanazokat az információkat szerezheti meg, melyeket az +\fBrpcinfo \-p\fR +paranccsal, még akkor is ha a célpont tűzfal mögött van (vagy TCP burkoló védi)\&. Az RPC letapogatáshoz jelenleg nem használhatók csalétkek\&. Ez a letapogatás automatikusan lezajlik, ha a változat érzékelést (\fB\-sV\fR) engedélyezi\&. Mivel a változat érzékelés tartalmazza ezt a letapogatást és sokkal átfogóbb eredményt ad, ezért a +\fB\-sR\fR +paraméterre ritkán van szükség\&. +.RE +.SH "OPERÁCIÓS RENDSZER ÉRZÉKELÉSE" +.PP +Az Nmap egyik legjobban ismert tulajdonsága az operációs rendszerek távoli felismerése a TCP/IP verem ujjlenyomata alapján\&. Az Nmap egy sor TCP és UDP csomagot küld a célpont felé és gyakorlatilag a válaszok minden egyes bitjét kielemzi\&. Tesztek tucatjainak végrehajtása után \- mint például a TCP ISN mintavételezés, a támogatott TCP beállítások, az IP ID mintavételezés és a kezdeti ablakméret ellenőrzése \- az Nmap összehasonlítja az eredményeket az +nmap\-os\-db +adatbázisban tárolt több, mint 800 ismert ujjlenyomattal és egyezés esetén kiírja az adott operációs rendszer részleteit\&. Minden ujjlenyomathoz tartozik egy kötetlen formátumú szöveges leírás az operációs rendszerről és egy besorolás, mely megadja a gyártó nevét (pl\&. SUN), az alap operációs rendszert (pl\&. Solaris), az operációs rendszer genercióját (pl\&. 10) és az eszköz típusát (általános célú, útválasztó, kapcsoló, játékkonzol stb\&.)\&. +.PP +Ha az Nmap nem tudja kitalálni az operációs rendszer típusát és a feltételek jók (pl\&. található legalább egy nyitott és egy zárt kapu), az Nmap megad egy webcímet, ahová elküdheti az ujjlenyomatot az operációs rendszer típusával, feltéve ha biztos benne\&. Ezzel hozzájárulhat az ismert operációs rendszerek adatbázisának bővítéséhez és segíthet az Nmap programot még pontosabbá tenni mindenki számára\&. +.PP +Az operációs rendszer érzékelésének során számos olyan adatot is felhasznál a program, melyeket más folyamatok során már begyűjtött\&. Az egyik az üzemidő felmérése, mely a TCP időbélyeg paramétert használja (RFC 1323) annak kiderítésére, hogy az eszközt mikor indították újra legutoljára\&. Ez csak azoknál az eszközöknél működik, melyek kiadják ezt az információt\&. A másik a TCP sorszám megjósolhatóságának osztályozása\&. Ez azt méri, hogy mennyire nehéz hamisított TCP kapcsolatot felépíteni a célponttal\&. Ez hasznos lehet a forrás IP cím alapú bizalmi kapcsolatokat (távoli bejelentkezés, tűzfalak, szűrők stb\&.) kihasználó támadások esetén a támadás valódi forrásának az elrejtésében\&. Ezeket a megtévesztéseket ma már ritkán használják, de elég sok rendszer sérülékeny velük szemben\&. Az aktuális bonyolultsági szám egy statisztikai mintavételezés alapján alakul ki és változhat\&. Általában jobb az angol nyelvű szöveges osztályozást használni, mint például a +„méltó kihívás (worthy challenge)\(rq +vagy az +„egyszerűen vicc (trivial joke)\(rq\&. EZek csak a bőbeszédű (\fB\-v\fR) üzemmód normál kimenetén jelennek meg\&. Ha a bőbeszédű üzemmódot a +\fB\-O\fR +paraméter mellett használja, az IP ID sorszám előállításról is jelentést kap\&. A legtöbb eszköz a +„növekményes (incremental)\(rq +osztályba tartozik, ami azt jelenti, hogy minden egyes elküldött csomagnál növelik az IP fejléc ID mezőjének értékét\&. Ez sebezhetővé teszi őket néhány fejlett információ gyűjtési és megtévesztési támadással szemben\&. +.PP +Az operációs rendszer érzékelésének működésével, használatával és testreszabásával kapcsolatban a +\m[blue]\fB\%https://nmap.org/osdetect/\fR\m[] +címen talál egy leírást\&. +.PP +Az operációs rendszer érzékelése és vezérlése a következő paraméterekkel lehetséges: +.PP +\fB\-O\fR (Operációs rendszer érzékelésének engedélyezése) +.RS 4 +Engedélyezi az operációs rendszer érzékelését a fentiekben leírt módon\&. Választhatja a +\fB\-A\fR +paramétert is, mellyel az operációs rendszer érzékelése mellett néhány más dolgot is elvégezhet\&. +.RE +.PP +\fB\-\-osscan\-limit\fR (Az operációs rendszer érzékelését csak az ígéretes állomásokra korlátozza) +.RS 4 +Az operációs rendszer érzékelése sokkal hatékonyabb, ha legalább egy nyitott és egy zárt TCP kapu található\&. Ennek a paraméternek a hatására az Nmap csak azokon a célpontokon hajtja végre az operációs rendszer érzékelését, amelyek megfelelnek ennek a kritériumnak\&. Ezzel rengeteg idő megtakarítható, különösen ha +\fB\-PN\fR +letapogatást hajt végre sok célponton\&. Ennek csak akkor van jelentősége, ha a +\fB\-O\fR +vagy a +\fB\-A\fR +paraméterrel engedélyezte az operációs rendszer érzékelését\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Eredmények találgatása) +.RS 4 +Ha az Nmap nem talál pontosan egyező operációs rendszert, esetenként felkínálhat lehetséges közelítő eredményeket\&. Alaphelyzetben ennek a közelítő eredménynek nagyon közelinek kell lennie\&. Ezeknek a paramétereknek a hatására az Nmap sokkal agreszívebben próbálja kitalálni az operációs rendszer típusát\&. Az Nmap ezután is jelzi, ha nem talált tökéletes egyezést és minden találgatás mellé megadja a valószínűséget is (százalékosan)\&. +.RE +.PP +\fB\-\-max\-os\-tries\fR (Maximális próbálkozások száma) +.RS 4 +Amikor az Nmap operációs rendszer érzékelést végez egy célponton és nem talál tökéletes egyezést, általában ismét tesz egy próbát\&. Alaphelyzet az Nmap ötször próbálkozik, ha a feltételek jók az ujjlenyomat ellenőrzéshez és kétszer, ha nem jók\&. Ha alacsonyabb +\fB\-\-max\-os\-tries\fR +értéket ad meg (pl\&. 1), felgyorsíthatja a folyamatot, de elmulaszthat egy olyan próbát, ami esetleg pontosan azonosíthatja az operációs rendszert\&. Emellett egy magasabb érték több próbát tesz lehetővé, ha a feltételek kedvezőek\&. Ez ritkán hasznos, kivéve ha az adatbázis bővítése céljából szeretne pontosabb ujjlenyomatot előállítani\&. +.RE +.SH "NMAP PARANCSFÁJL MOTOR (NMAP SCRIPTING ENGINE (NSE))" +.PP +Az Nmap parancsfájl motor (NSE) egyesíti az Nmap hatékony hálózatkezelését a +\m[blue]\fBLua\fR\m[]\&\s-2\u[8]\d\s+2 +könnyűsúlyú parancsnyelv sokoldalúságával, így kínálva számtalan lehetőséget\&. A +\m[blue]\fB\%https://nmap.org/nse/\fR\m[] +címen bőséges dokumentációt talál az NSE\-ről (beleértve a programozói felületet is)\&. Az NSE célja, hogy hatékony környezetet biztosítson az Nmap képességeinek kiterjesztéséhez és a felhasználók számára egyszerűbbé tegye testreszabott tesztek létrehozását\&. Az NSE felhasználási területei: +.PP +\fIKiterjesztett változat érzékelés\fR +(kategória +version) — Bár az Nmap rendelkezik egy saját szolgáltatás\- és változatérzékelő rendszerrel, mely hatékonyságában és működési körében páratlan, egy bonyolultabb próbákat igénylő szolgáltatás felderítésekor ez az erő nem használható ki\&. Például a Skype\-Protocol 2\-es változatának azonosításához két független próbacsomagot kell elküldeni, melyre a beépített rendszer nem képes\&. Egy egyszerű NSE parancsfájl végre tudja hajtani ezt a feladatot és frissíteni tudja a kapukhoz tartozó szolgáltatások információit\&. +.PP +\fIKárokozó érzékelés\fR +(kategóriák +malware +és +backdoors) \- Mind a támadók, mind a féregprogramok gyakran hagynak maguk után hátsó bejáratokat \- például a levélszemetek küldői gyakran használnak szokatlan kapukon működő SMTP kiszolgálókat a leveleik továbbítására, vagy a betörők egyfajta FTP kiszolgálót használva próbálnak meg hozzáférni kritikus adatokhoz\&. Pár sor Lua kóddal ezek a rések könnyen felderíthetők\&. +.PP +\fISebezhetőség érzékelés\fR +(kategória +vulnerability)\- Az NSE képességeinek kihasználásával könnyen azonosíthat olyan veszélyeket, mint például az alapértelmezett jelszavak, vagy az SMTP kiszolgálók levél\-átjátszási képessége tetszőleges tartományokból\&. +.PP +\fIHálózati felderítés és Információgyújtés\fR +(kategóriák +safe, +intrusive +és +discovery) — Egyrészt a parancsnyelv és a hatékony aszinkron hálózati programfelület, másrészt a korábbi letapogatások során begyűjtött információk segítségével az NSE lehetőséget nyújt ara, hogy a célgépen futó szolgáltatásokhoz ügyfélprogramokat készítsen\&. Ezekkel az ügyfelekkel olyan információkat is begyűjthet, mint például az elérhető NFS/SMB/RPC megosztások, egy IRC hálózaton lévő csatornák vagy az éppen bejelentkezett felhasználók száma\&. +.PP +A különböző felhasználási formák miatt és a megfelelő parancsfájl kiválasztásának leegyszerűsítése érdekében minden parancsfájl tartalmaz egy mezőt, mellyel a fenti kategóriák bármelyikébe (akár több kategóriába is) besorolható\&. A kategóriák és parancsfájlok kapcsolatának nyilvántartására egy +script\&.db +nevű fájl is telepítésre kerül a parancsfájlok mellett\&. Így például ha egy gépről szeretné megállapítani, hogy fertőzött\-e valamilyen féregprogrammal, az Nmap által biztosított egyik parancsfájl segítségével és az +\fBnmap \-\-script=malware [célpont]\fR +parancs lefuttatásával ezt könnyen kiderítheti\&. A +version +kategóriába sorolt parancsfájlok mindig lefutnak, beleértve a parancsfájl letapogatás kiválasztását is\&. A +script\&.db +fájl maga is egy Lua parancsfájl és a +\fB\-\-script\-updatedb\fR +paraméteren keresztül frissíthető\&. +.PP +Minden NSE parancsfájl egy darab Lua kód, mely két szakaszból áll: egy teszt, hogy az adott parancsfájl lefuttatható\-e egy megadott állomáson vagy kapun (ezek neve +hostrule +vagy +portrule) és egy +action +szakasz, mely akkor fut le, ha az előző teszt visszatérési értéke igaz\&. A parancsfájlok az Nmap által korábban összegyűjtött legtöbb információhoz hozzáférnek\&. Ezek minden állomásnál az IP cím, az állomás neve (ha elérhető) és az operációs rendszer\&. Ha a parancsfájl célja egy kapu, akkor hozzáfér a kapu számához, a protokollhoz (tcp, +udp +vagy +ssl), a kapu mögött futó szolgáltatás nevéhez és feltételesen a változat érzékeléssel megszerzett információkhoz\&. Az NSE parancsfájlok hagyományosan rendelkeznek egy +nse +kiterjesztéssel\&. Bár jelenleg nem szükséges követnie ezt a szokást, ez a jövőben változhat\&. Az Nmap figyelmeztetni fogja, ha egy fájlnak más a kiterjesztése\&. Az NSE\-ről további bőséges dokumentációt találhat (beleértve a programozói felület leírását) a +\m[blue]\fB\%https://nmap.org/nse/\fR\m[] +címen\&. +.PP +\fB\-sC\fR +.RS 4 +végrehajt egy parancsfájl alapú letapogatást az alap paransfájl készlettel (egyenértékű a +\fB\-\-script=safe,intrusive\fR +paraméterrel +.RE +.PP +\fB\-\-script <paransfájl kategória|könyvtár|fájlnév|all>\fR +.RS 4 +Lefuttat egy parancsfájl alapú letapogatást (mint az +\fB\-sC\fR) a kiválasztott parancsfájlokkal\&. A paraméterek lehetnek parancsfájl kategóriák, meghatározott parancsfájlok, parancsfájlokat tartalmazó könyvtárak, melyek a célpont ellen lesznek kipróbálva\&. Az Nmap a paramétereket először kategóriáknak próbálja értelmezni, azután fájloknak vagy könyvtáraknak\&. Abszolút útvonalak használata egyértelmű, a relatív útvonalak keresési sorrendje az első találatig: +\-\-datadir/; +$(NMAPDIR)/; +~user/nmap/ +(Windows alatt nem); +NMAPDATADIR/ +vagy +\&./\&. Ezen könyvtárak mindegyikében a +scripts/ +alkönyvtár is ki lesz próbálva\&. Az +all +paraméter megadásával az Nmap adatbázisában lévő valamennyi parancsfájl végrehajtódik\&. +.sp +Ha egy megadott könyvtárat megtalál, az Nmap betölti az összes NSE parancsfájlt (minden +nse +kiterjesztésű fájlt) a könyvtárból\&. A fájloknak +nse +kiterjesztéssel kell rendelkezniük\&. Az Nmap a parancsfájlok keresésekor nem vizsgálja meg az alkönyvtárakat\&. Ha egyedi fájlnevet adott meg, akkor nem kötelező a fájlnak +nse +kiterjesztéssel rendelkeznie\&. +.sp +Alaphelyzetben az Nmap parancsfájlok az Nmap adatkönyvtárának +scripts +alkönyvtárában találhatóak\&. A +scripts/script\&.db +adatbázisban tárolt paranscfájlok indexeltek\&. Az adatbázis tartalmazza az összes kategóriához tartozó összes parancsfájlt\&. Egy parancsfájl több kategóriához is tartozhat\&. +.RE +.PP +\fB\-\-script\-args=<név1=érték1,név2={név3=érték3},név4=érték4>\fR +.RS 4 +Paramétereket adhat át az NSE parancsfájloknak\&. A paraméterek +név=érték +párokban kerülnek át a parancsfájlokhoz\&. Az átadott paraméterek egy Lua táblázatban lesznek tárolva és feldolgozva, melyhez valamennyi parancsfájl hozzáfér\&. A nevek karakterláncként lesznek kezelve (melyeknek alfanumerikus értékeknek kell lenniük) és a +paraméter táblában +kulcsként lesznek használva\&. Az értékek lehetnek karakterláncok vagy maguk is táblázatok (\(oq{\(cq és \(oq}\(cq közé zárva\&. Az altáblázatok segítségével egyes parancsfájloknál felülbírálhatók a paraméterek (mondjuk ha minden parancsfájlhoz más felhasználói név/jelszó párost akar használni)\&. Például átadhatók a következő, vesszővel elválasztott paraméterek: +user=bar,password=foo, és +anonFTP={password=nobody@foobar\&.com}\&. Ha egy parancsfájl paramétereit felül akarja bírálni, használja az altáblázat indexelésére a parancsfájl +azonosítóját (id), mivel a parancsfájlok csak így szerezhetnek tudomást a különleges paramétereikről\&. +.RE +.PP +\fB\-\-script\-trace\fR +.RS 4 +Ez a paraméter ugyanazt teszi, mint a +\fB\-\-packet\-trace\fR, csak egy ISO szinttel feljebb\&. Ha megadja ezt a aparamétert, akkor az összes, parancsfájl által generált kimenő és bejövő forgalom nyomtatásra kerül\&. A megjelenített információ tartalmazza a kommunikációs protokollt, a forrást, a célt és az átvitt adatot\&. Ha az átvitt adatok több, mint 5%\-a nem nyomtatható, akkor a kimenet hexadecimális alakban jelenik meg\&. +.RE +.PP +\fB\-\-script\-updatedb\fR +.RS 4 +Frissíti a parancsfájl adatbázist, mely a kategória\-cimkék és a fájlnevek közti kapcsolatokat tárolja\&. Az adatbázis egy Lua parancsfájl, mely akkor lesz értelmezve, amikor a +\fB\-\-script\fR +paraméterben megadott kategóriák közül ki kell választani a szükséges parancsfájl készletet\&. Akkor kell lefutatni, amikor megváltozik egy parancsfájl +kategória +mezője, ha új parancsfájlokat adott hozzá a készlethez, vagy ha eltávolított néhány parancsfájlt a +scripts/ +könyvtárból\&. +.RE +.SH "IDŐZÍTÉS ÉS TELJESÍTMÉNY" +.PP +Az Nmap fejlesztésének legfontosabb szempontja a teljesítmény\&. Egy alapértelmezett letapogatás (\fBnmap \fR\fB\fIgépnév\fR\fR) egy helyi hálózaton lévő gépen nagyjából 0\&.2 másodpercig tart\&. Ez épp egy pislogásnyi idő, amely azonban egyre nő, ahogy növekszik a célpontként meghatározott gépek száma\&. Továbbá bizonyos letapogatási formák, mint például az UDP letapogatás, vagy a változat érzékelés számottevően megnövelik a letapogatás időtartamát\&. Ugyanilyen hatása van bizonyos tűzfal beállításoknak, különösen ha korlátozták az egységnyi idő alatt kibocsátható válaszok számát\&. Bár az Nmap ezeknek a letapogatásoknak a felgyorsítására sok párhuzamosítást és fejlett eljárásokat használ, a felhasználó alapjaiban befolyásolhatja az Nmap működését\&. Szakértő felhasználók gondosan összeállított Nmap parancsokkal rövid idő alatt megszerezhetik a számukra fontos információkat\&. +.PP +A letapogatási idő csökkenthetők a nem kritikus tesztek elhagyásával és az Nmap legfrissebb változatának telepítésével (gyakran történnek teljesítményt növelő változtatások)\&. Számottevő javulás érhető el az időzítési paraméterek helyes megválasztásával is\&. Ezek a paraméterek az alábbiakban találhatóak\&. +.PP +Néhány paraméternél használható a +time +kiegészítés is\&. Alaphelyzetben ez milliszekundumban értendő, de az érték után írt \*(Aqs\(cq, \(oqm\(cq vagy \(oqh\(cq karakterekkel megadhat másodperces, perces vagy órás időtartamot is\&. Például a +\fB\-\-host\-timeout\fR +paraméternek átadott +900000, +900s +és +15m +értékek mind ugyanazt jelentik\&. +.PP +\fB\-\-min\-hostgroup <méret>\fR; \fB\-\-max\-hostgroup <érték>\fR (A párhuzamosan letapogatható állomások száma) +.RS 4 +Az Nmap képes kapuletapogatást és változat érzékelést végezni egyszerre több állomáson is\&. Az Nmap ezt úgy csinálja, hogy az IP tartományt csoportokra osztja és egyszerre tapogat le egy csoportot\&. Általában a nagyobb csoportok hatékonyabbak\&. A hátránya, hogy az egyes állomásokhoz tartozó eredmények csak akkor érhetők el, ha végetért a teljes csoport letapogatása\&. Tehát ha az Nmap 50\-es csoportmérettel lett elindítva, a felhasználó addig nem kap semmilyen eredményt (kivéve a bőbeszédű üzemmód frissítési információit), amíg az első 50 állomás letapogatása el nem készült\&. +.sp +Ennek a konfliktusnak a feloldására az Nmap egy kompromisszumos megoldást használ\&. Kezdésként csak egy 5 elemből álló csoportot hoz létre, így az első eredmények gyorsan megérkeznek\&. Ezután a csoportméretet folyamatosan növeli, akár 1024\-ig\&. A kezdeti csoportméret pontos értéke a megadott paraméterektől függ\&. A hatékonyabb működés érdekében az Nmap nagyobb csoportokat hoz létre az UDP letapogatásoknál, illetve a csak néhány TCP kaput érintő letapogatásoknál\&. +.sp +Ha a +\fB\-\-max\-hostgroup\fR +paraméterben megadta a maximális csoportméretet, az Nmap ezt nem fogja túllépni\&. Ha megadja a +\fB\-\-min\-hostgroup\fR +paramétert, az Nmap megpróbálja a csoportméretet efölött tartani\&. Az Nmap kialakíthat kisebb csoportot is a megadottnál, ha nem áll rendelkezésre elegendő állomás a megadott minimális csoportméret létrehozásához\&. Megadható mindkét határérték is, hogy a csoportméret egy meghatározott sávban maradjon, de erre ritkán van szükség\&. +.sp +Ezeknek a paramétereknek nincs hatásuk a letapogatásnak abban a részében, mikor még csak az állomások felderítése történik\&. Ebbe beletartozik az egyszerű visszhang letapogatás is(\fB\-sP\fR)\&. Az állomások felderítése mindig nagy csoportokban történik a sebesség és a pontosság növelésének érdekében\&. +.sp +Ezeknek a paramétereknek az elsődleges haszna egy megfelelő méretű minimális csoprt létrehozása, így a teljes letapogatás gyorsabban lefut\&. Egy megszokott választás a 256\-os csoport, így egy hálózat C osztályú blokkokban tapogatható le\&. Sok kaput tartalmazó letapogatásnál ezt a számot nem célszerű túllépni\&. Ha a letapogatás csak néhány kapura korlátozódik, a csoportméret akár 2048\-ig (vagy tovább) is növelhető\&. +.RE +.PP +\fB\-\-min\-parallelism <szám>\fR; \fB\-\-max\-parallelism <szám>\fR (Párhuzamos próbák beállítása) +.RS 4 +Ezekkel a paraméterekkel meghatározható, hogy az állomások egy csoportja felé párhuzamosan hány próba küldhető\&. Ez a kapuk letapogatására és az állomások felderítésér egyaránt vonatkozik\&. Alapesetben az Nmap a hálózat teljesítménye alapján kiszámítja az ideális \- de folyton változó \- párhuzamosság mértékét\&. Ha az átvitel során csomagvesztés alakul ki, az Nmap lassít és kevesebb próbát küld ki\&. Az ideális próbaszám a hálózat minőségének javulása alapján lassan emelkedik\&. Ezekkel a paraméterekkel egy minimum és egy maximum határt szabhat ezeknek az értékeknek\&. Ha a hálózat megbízhatatlannak bizonyul, a párhuzamosság értéke akár 1\-re is csökkenhet, míg tökéletes feltételek esetén a párszázas értéket is elérheti\&. +.sp +A legáltalánosabb felhasználás, mikor a +\fB\-\-min\-parallelism\fR +értékét egynél magasabbra állítják, hogy felgyorsítsák a gyengébb teljesítményű állomások vagy hálózatok letapogatását\&. Ezzel a paraméterrel eléggé kockázatos játszani, mert egy túl magas érték ronthatja a pontosságot\&. Ennek a paraméternek az állításával korlátozzuk az Nmap azon képességét, hogy a hálózat paraméterei alapján dinamikusan szabályozza a párhuzamos működést\&. A 10\-es érték elég jó lehet, de érdemesebb ezt a paramétert csak a legvégső esetben beállítani\&. +.sp +A +\fB\-\-max\-parallelism\fR +paraméter szintén beállítható 1\-re, ezzel megakadályozható, hogy az Nmap egyszerre egynél több próbát küldjön a célpont felé\&. Ez jól használható a +\fB\-\-scan\-delay\fR +paraméterrel együtt (lásd később), bár ez utóbbi önmagában is jól használható\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout <idő>\fR, \fB\-\-max\-rtt\-timeout <idő>\fR, \fB\-\-initial\-rtt\-timeout <idő>\fR (Próbák érvényességi ideje) +.RS 4 +Az Nmap kezel egy futó időzítőt annak meghatározására, hogy mennyi ideig várjon egy próba esetén a válaszra, mielőtt feladná vagy újra megpróbálná\&. Ennek a kiszámítása azok alapján történik, hogy az előző próbákra mennyi idő alatt érkezett válasz\&. Ha a hálózati késleltetés jelentős és folyton változik, ez az érték akár néhány másodpercre is nőhet\&. Az érték indulhat egy magasabb szintről is és egy nem válaszoló állomás esetén ezen a szinten is marad\&. +.sp +Az alapértelmezettnél alacsonyabb +\fB\-\-max\-rtt\-timeout\fR +és +\fB\-\-initial\-rtt\-timeout\fR +érték jelentősen lerövidíti a letapogatás idejét\&. Ez különösen igaz a visszhang nélküli (\fB\-PN\fR) letapogatásoknál és az erős tűzfallal védett hálózatoknál\&. Azonban nem szabad túl agresszíven gondolkodni\&. Túl alacsony értéknél a letapogatási idő meg is nőhet, mivel a próbák ideje lejár és ismétlésre kerülnek, mialatt az előző próbákra adott válaszok még úton vannak visszafelé\&. +.sp +Ha az összes állomás egy helyi hálózaton található, 100 milliszekundum +\fB\-\-max\-rtt\-timeout\fR +érték eléggé agresszív\&. Ha menet közben útválasztó is található, érdemesebb először az ICMP ping eszközzel, vagy más csomagösszeállító programmal (például hping2) letesztelni a hálózat minőségét\&. Válassza ki 10 csomagból a leghosszabb válaszidejűt\&. Az +\fB\-\-initial\-rtt\-timeout\fR +értéke lehet ennek a duplája, a +\fB\-\-max\-rtt\-timeout\fR +pedig a három\- vagy négyszerese\&. A maximum RTT értékét általában nem érdemes 100 milliszekundumnál kisebbre és 1 másodpercnél nagyobbra választani\&. +.sp +A +\fB\-\-min\-rtt\-timeout\fR +egy ritkán használt paraméter, de hasznos lehet, ha a hálózat annyira megbízhatatlan, hogy az Nmap alapértékei is túl agresszívnek bizonyulnak\&. +.RE +.PP +\fB\-\-max\-retries <próbák>\fR (Hányszor küldje újra egy kapura a letapogatási próbát) +.RS 4 +Ha az Nmap nem kap választ aegy letapogatási próbára, ez jelentheti azt, hogy a kaput tűzfallal szűrik, vagy a válasz elveszett a hálózatban\&. De jelentheti azt is, hogy a kapu forgalma limitált és átmenetileg nem tud válaszolni\&. Így az Nmap ismét elküldi a próbát\&. Ha az Nmap gyenge hálózati teljesítményt érzékel, ezt többször is megismételheti mielőtt feladná a próbálkozást\&. Bár ez javítja a pontosságot, de egyben elnyújtja a letapogatás idejét is\&. Ha a teljesítmény fontos szempont, a letapogatás felgyorsítható az újrapróbálkozások számának korlátozásával\&. Megadhat akár +\fB\-\-max\-retries 0\fR +értéket is, hogy megakadályozza az újrapróbálkozást, azonban ez ritkán ajánlott\&. +.sp +Az alapérték (ha nem használ +\fB\-T\fR +sablont) 10 ismétlés\&. Ha a hálózat megbízható és a célállomás forgalmát nem szabályozták, az Nmap általában csak egyszer ismétli meg a próbát\&. Így a legtöbb célpont letapogatására nincs hatással, ha a +\fB\-\-max\-retries\fR +értékét például 3\-ra csökkenti\&. Ilyen alacsony értékek csak a lassú (korlátozott) célállomások letapogatását gyorsítják fel\&. Mivel adatokat veszíthet azzal, ha az Nmap korábban feladja egy kapu letapogatását, ezért hasznosabb a +\fB\-\-host\-timeout\fR +paraméter időzítésének lejártát megvárni és elveszteni a célponttal kapcsolatos valamennyi adatot, mint hiányos adatokkal dolgozni\&. +.RE +.PP +\fB\-\-host\-timeout <idő>\fR (Lassú célpontoknál ennyi idő után feladja a próbálkozást) +.RS 4 +Néhány állomás letapogatása +\fIhosszú\fR +idő vesz igénybe\&. Ezt okozhatja gyenge vagy megbízhatatlan hálózati eszköz vagy program, a forgalom szabályozása, vagy egy szigorú szabályokkal rendelkező tűzfal\&. A letapogatott állomások leglassabb néhány százaléka emésztheti fel a letapogatási idő nagyrészét\&. Néha jobb csökkenteni az időveszteséget és átugrani az ilyen célpontokat már az elején\&. Adja meg a +\fB\-\-host\-timeout\fR +paraméterben azt a maximális időt, amennyit hajlandó egy\-egy állomás válaszára várni\&. Hasznos lehet a +30m +beállítás, így az Nmap nem tölt fél óránál többet egy állomás vizsgálatával\&. Mivel ezalatt az Nmap más állomásokat is vizsgálni tud, ezért ez a fél óra nem tekinthető teljes veszteségnek\&. Ha egy állomásnak lejárt az időzítése, az Nmap kihagyja a listából\&. Nen készül kapulista, nincs operációs rendszer felderítés és változat érzékelés sem\&. +.RE +.PP +\fB\-\-scan\-delay <idő>\fR; \fB\-\-max\-scan\-delay <idő>\fR (A próbák közti késleltetés) +.RS 4 +Ezzel a paraméterrel utasíthatja az Nmap programot, hogy a célpont felé küldendő próbák között a megadott időtartamot várjon\&. Ez különösen hasznos olyan célpontok esetében, amelyeknek forgalma szabályozott\&. A Solaris állomások (sok mással egyetemben) például az UDP letapogatási próbákra másodpercenként csak egy ICMP választ küldenek\&. Minden további elküldött próba csak veszteség\&. A +\fB\-\-scan\-delay\fR +értékének +1s\-os beállításával az Nmap lelassítható erre a sebességre\&. Az Nmap megpróbálja érzékelni a forgalomszabályzást és pontosan beállítani a próbák közti késleltetést, azonban nem okoz gondot az érték kézzel történő megadása sem\&. +.sp +Amikor az Nmap növeli a próbák közti késleltetést, hogy megbirkózzon a forgalomszabályzással, a letapogatás drámaian lelassul\&. A +\fB\-\-max\-scan\-delay\fR +paraméterrel megadhatja a két próba közti legnagyobb megengedett késleltetést\&. Ha ezt az értéket túl alacsonyra választja, az feleslegesen újraküldött csomagokat generál, ami egy szigorú forgalomkorlátozással működő állomásnál kihagyott kapukhoz vezethet\&. +.sp +A +\fB\-\-scan\-delay\fR +paraméter másik felhasználása a küszöbérték figyelés alapján működő behatolás érzékelő és megelőző rendszerek (IDS/IPS) megtévesztése\&. +.RE +.PP +\fB\-\-defeat\-rst\-ratelimit\fR +.RS 4 +Sok állomás hosszú késleltetésű forgalomszabályzást használ a kiküldhető ICMP hibaüzenetek (például kapu nem elérhető) mennyiségének korlátozására\&. Néhány rendszer ugyanilyen korlátozásokat használ az RST (reset) csomagok esetébenis\&. Ez drámaian lelassítja az Nmap működését, mivel megpróbál alkalmazkodni ehhez a korlátozáshoz\&. A +\fB\-\-defeat\-rst\-ratelimit\fR +paraméterrel utasíthatja az Nmap programot, hogy hagyja figyelmen kívül az ilyen korlátozásokat (például a SYN letapogatásnál, mely a nem válaszoló kapukat nem +nyitott +állapotúként kezeli)\&. +.sp +Ennek a paraméternek a használata csökkenti a pontosságot, hiszen néhány kapu elérhetetlennek bizonyul, mivel az Nmap nem vár eléggé sokáig a korlátozott RST válaszra\&. Egy SYN letapogatásnál a válasz nélküli kapuk jelölése +szűrt +lesz ahelyett, hogy az RST csomag megvárásával +zárt +jelölést kapna\&. Ez a paraméter hasznos lehet akkor, ha csak a nyitott kapuk érdekesek és nem kell különbséget tenni a +zárt +és a +szűrt +kapuk között\&. +.RE +.PP +\fB\-T <paranoid|sneaky|polite|normal|aggressive|insane>\fR (Időzítési sablon) +.RS 4 +Bár az előzőekben tárgyalt időzítési paraméterek eléggé hatékonyak és eredményesek, de néhány felhasználó túl bonyolultnak találhatja őket\&. Ráadásul a megfelelő értékek kiválasztása gyakran hosszabb idő igényel, mint az optimalizálni kívánt letapogatási művelet maga\&. Az Nmap felkínál egy egyszerűbb megközelítést is hat időzítési sablon segítségével\&. Ezeket megadhatja a +\fB\-T\fR +paraméterrel és a számukkal (0–5) vagy a nevükkel\&. A sablonok nevei: +\fBparanoid\fR +(\fB0\fR), +\fBtrükkös [sneaky])\fR +(\fB1\fR), +\fBudvarias [polite]\fR +(\fB2\fR), +\fBnormál [normal]\fR +(\fB3\fR), +\fBagresszív [aggressive]\fR +(\fB4\fR) és +\fBrült [insane]\fR +(\fB5\fR)\&. Az első kettő a behatolásérzékelők megtévesztésére szolgál\&. Az udvarias mód lassú letapogatást végez kevesebb sávszélességet, valamint a célállomáson kevesebb erőforrást használva\&. A normál mód az alapértelmezett, így a +\fB\-T3\fR +paraméter megadása semmilyen változást nem idéz elő\&. Az agresszív mód felgyorsítja a letapogatást azt feltételezve, hogy gyors és megbízható hálózatot használ\&. Végül az őrült mód azt feltételezi, hogy egy különösen gyors hálózatot használ és a sebesség érdekében hajlandó feláldozni valamennyit a pontosságból\&. +.sp +Ezekkel a sablonokkal megadható, hogy a letapogatás mennyire legyen agresszív, de meghagyja a lehetőséget az Nmap programnak, hogy az időzítéseket maga álltsa be\&. A sablonok ezen kívül elvégeznek néhány olyan sebesség beállítást, melyek önálló paraméterként jelenleg nem adhatók meg\&. Például a +\fB\-T4\fR +paraméter megakadályozza, hogy a dinamikusan változó letapogatásikésleltetés a TCP kapukon meghaladja a 10 milliszekundumot, míg a +\fB\-T5\fR +paraméter ugyanezt az értéket 5 milliszekundumra korlátozza\&. A sablonok mellett továbbra is használhatóak az egyedi időzítési paraméterek és ezek minden esetben felülbírálják a sablonokban beállított alapértékeket\&. Modern és megbízható hálózatok letapogatása esetén ajánlott a +\fB\-T4\fR +paraméter használata\&. Tartsa meg ezt a paramétert még akkor is, ha egyedi időzítési paramétereket használ, így kihasználhatja a sablonban lévő kisebb extra optimalizációt is\&. +.sp +Ha tisztességes szélessávú vagy ethernet kapcsolatot használ, javasolt a +\fB\-T4\fR +paraméter állandó használata\&. Néhányan szeretik használni a +\fB\-T5\fR +paramétert, ám ez sok esetben túl agresszív lehet\&. Vannak akik a +\fB\-T2\fR +paramétert szeretik használni, mert azt gondolják, hogy így kisebb valószínűséggel döntik romba a célpontot, vagy mert magukat általában udvarias embernek gondolják\&. Ők azonban gyakran nem veszik észre, hogy a +\fB\-Tpolite\fR +valójában milyen lassú\&. Ez a letapogatás tízszer hosszabb is lehet, mint egy alapértelemeztt\&. Az alapértelmezett időzítésnél (\fB\-T3\fR) ritkán fordulnak elő összeomlások vagy sávszélesség problémák, ezért vatoss letapogatásnál célszerű ezt használni\&. Ezeknek a problémáknak a csökkentésére sokkal alkalmasabb a változat érzékelés elhagyása, mint az időzítési paraméterek állítgatása\&. +.sp +Bár a +\fB\-T0\fR +és +\fB\-T1\fR +paraméterek hasznosak a behatolásérzékelők megtévesztésére, de sok célgép vagy kapu esetén a letapogatási idő különösen elnyújtják\&. Ilyen hosszú letapogatások esetén hasznosabb az időzítési paraméterek kézzel történő beállítása, mint a +\fB\-T0\fR +és +\fB\-T1\fR +paraméterekhez tartozó konzerv értékek használata\&. +.sp +A +\fBT0\fR +fő működési elve a letapogatások sorbaállítása, így egyszerre csak egy kaput tapogat le és a minden próba után vár 5 percet\&. A +\fBT1\fR +és +\fBT2\fR +beállításai hasonlóak, de a próbák között csak 15 másodpercet, illetve 0\&.4 másodpercet várnak\&. A +\fBT3\fR +az Nmap alapértelmezett beállítása, mely már használja a párhuzamos működést is\&. A +\fBT4\fR +paraméter megfelel a +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR +beállításoknak és a TCP letapogatási késleltetést 0\&.01 másodpercre állítja\&. A +\fBT5\fR +megfelel a +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 15m\fR +beállításoknak és a TCP letapogatási késleltetést 5 milliszekundumra állítja\&. +.RE +.SH "TŰZFAL/IDS MEGKERÜLÉS ÉS BECSAPÁS" +.PP +Az Internet úttörőinek szeme előtt egy teljesen nyitott hálózat lebegett, egy univerzális IP címtartománnyal, melyben bárki bárkivel kapcsolatot létesíthet\&. Itt bármely állomás információt kérhet és adhat bármely állomásnak\&. Az emberek a munkahelyükről is elérhetik az otthoni rendszereiket, beállíthatják a légkondicionálót, vagy kinyithatják az ajtó egy korán érkezett vendég előtt\&. Azonban a címtartomány szűkössége és bizonyos biztonsági megfontolások miatt ennek a látomásnak a megvalósítása nehézkessé vált\&. Az 1990\-es évek elején a cégek tűzfalakat kezdtek telepíteni azzal a kifejezett szándékkal hogy az információ szabad áramlását akadályozzák\&. Nagyméretű hálózatokat kerítettek le az Internetről alkalmazás szűrőkkel, hálózati címfordítókkal és csomagszűrőkkel\&. Az információ szabad áramát szigorúan szabályozott csatornákba kényszerítették\&. +.PP +A hálózati akadályok, mint például a tűzfalak nagymértékben megnehezítik egy hálózat felderítését\&. Nehezebbé teszik a hétköznapi hálózati felderítést, mivel éppen ebbőlk a célból tervezik őket\&. Mindezek ellenére az Nmap számos lehetőséget kínál az ilyen komplex hálózatok megértéséhez és a szűrők működésének ellenőrzéséhez\&. Arra is lehetőséget biztosít, hogy bizonyos gyengén kivitelezett védelmeket meg tudjunk kerülni\&. Az egyik legjobb módszer a saját hálózat viselkedésének megértésére, ha megpróbálja legyőzni azt\&. Helyezze magát a támadó szemszögébe és próbáljon ki néhány technikát ebből a fejezetből a saját hálózata ellen\&. Indítson el egy FTP ugráló letapogatást, egy üresjárati letapogatást, csomagtöredék alapú támadást vagy próbáljon alagutat létrehozni egy saját proxy kiszolgálón keresztül\&. +.PP +Hogy tovább korlátozzák a hálózati aktivitást, a társaságok egyre gyakrabban ellenőrzik a hálózati forgalmat behatolásérzékelő rendszerekkel (IDS)\&. Az összes nagyobb ilyen rendszer olyan szabálykészlettel érkezik, mely képes érzékelni az Nmap letapogatásait, mivel az ilyen letapogatások általában egy közelgő támadás előjelei\&. A legtöbb ilyen terméket azóta átalakították behatolás +\fImegelőző\fR +rendszerré (IPS), mivel képesek blokkolni a gyanúsnak ítélt forgalmat\&. A hálózati rendszergazdák és az IDS rendszerek szállítóinak nagy bánata, hogy a csomagok egyszerű analizálásával nagyon nehéz felismerni a rossz szándékot\&. A kellő türelemmel és szakértelemmel rendelkező támadók az Nmap egyes paramétereinek a segítségével könnyen megkerülhetik az IDS rendszereket\&. Ezalatt a rendszergazdáknak meg kell küzdeniük a rengeteg téves jelzéssel, ahol az ártatlan forgalom könnyen válthat ki riasztást vagy okozhatja a forgalom blokkolását\&. +.PP +Időnként emberek azt javasolják, hogy az Nmap ne biztosítson lehetőséget a tűzfalak megkerülésére, vagy az IDS rendszerek megtévesztésére\&. Azzal érvelnek, hogy ezeket sokkal inkább fogja egy támadó rossz szándékkal használni, mint egy rendszergazda a biztonság növelésére\&. Ezzel a logikával az a probléma, hogy a támadók akkor is ezeket a módszereket fogják használni, legfeljebb más eszközt fognak használni, vagy maguk írják bele azokat az Nmap programba\&. Eközben a rendszergazdák egyre nehezebben fogják tudni ellátni a munkájukat\&. Sokkal jobb védekezés egy modern, folyamatosan javított FTP kiszolgálót használni, mint egy FTP ugráló letapogatást megvalósító program terjesztését megakadályozni\&. +.PP +Nincs varázsfegyver (vagy Nmap paraméter) a tűzfalak és IDS rendszerek felismerésére és érzékelésére\&. Ehhez tudás és tapasztalat szükséges\&. Egy ilyen témájú oktatóanyag meghaladja ennek a leírásnak a kereteit, így csak a kapcsolódó paraméterek felsorolására és működésük rövid leírására szorítkozunk\&. +.PP +\fB\-f\fR (csomagok tördelése); \fB\-\-mtu\fR (a megadott MTU érték használata) +.RS 4 +Az +\fB\-f\fR +paraméter használatakor a megadott letapogatást (beleértve a visszhang letapogatást is) az Nmap apróra tördelt IP csomagokkal hajtja végre\&. Az alapötlet az, hogy osszuk el a TCP fejlécet több csomagra, így nehezítve meg a csomagszűrők, behatolás érzékelők és más zavaró eszközök dolgát a tevékenységünk felismerésében\&. Azonban legyen óvatos! Néhány programnak gondot jelent az ilyen apró csomagok kezelése\&. A jó öreg Sniffit szaglászóprogram az első töredék vételekor azonnal szegmentációs hibát okoz\&. Ha egyszer adja meg ezt a paramétert, az Nmap 8 bájtos vagy kisebb darabokra tördeli a csomagokat az IP fejléc után\&. Így egy 20 bájtos TCP fejlécet 3 csomagra oszt fel, 2 csomag 8 bájtot, egy csomag pedig a maradék 4 bájtot fog szállítani\&. Természetesen minden darab tartalmaz egy IP fejlécet is\&. Ha ismét megadja az +\fB\-f\fR +paramétert, akkor 16 bájtos töredékeket fog használni (csökkentve a töredékek számát)\&. De megadhat saját eltolási értéket is az +\fB\-\-mtu\fR +paraméter használatával\&. Ne használja egyszerre az +\fB\-f\fR +és az +\fB\-\-mtu\fR +paramétert\&. Az eltolás értékének mindig oszthatónak kell lennie nyolccal\&. Míg egyes csomagszűrőkön és tűzfalakon nem csúsznak át a töredezett csomagok (ilyen például a Linux rendszermag bekapcsolt CONFIG_IP_ALWAYS_DEFRAG paramétere, mely sorba állítja a töredékeket), addig egyes eszközök nem engedhetik meg ezt a teljesítmény csökkenést, így tiltják ezt a lehetőséget\&. Ismét más rendszerek azért nem engedélyezik ezt, mert a töredékek más\-más útvonalon érkezhetnek a hálózatba\&. Néhány forrásrendszer a rendszermagon belül állítja össze a kimenő csomagtöredékeket\&. Erre példa a Linux iptables kapcsolatkövetési modulja\&. Hogy biztos lehessen abban, hogy a kimenő csomagok töredezettek, futtasson a letapogatással együtt egy szaglászót is, mint például a +Wireshark\&. Ha az ön operációs rendszer ilyen problémákat okoz, próbálja ki a +\fB\-\-send\-eth\fR +paramétert, így kikerülheti az IP réteget és nyers ethernet kereteket küldhet el\&. +.RE +.PP +\fB\-D <csali1 [,csali2][,ME],\&.\&.\&.>\fR (Letapogatás álcázása csalikkal) +.RS 4 +Végrehajt egy letapogatást csalik használatával, így a célpont azt érzékeli, hogy a csaliként megadott állomások is letapogatással próbálkoznak\&. Így az IDS rendszere egyidőben 5\-10 letapogatást is érzékel, de nem tudja eldönteni, melyik a valós IP cím és melyik az ártatlan csali\&. Bár ezek legyőzhetőek útválasztón keresztüli nyomkövetéssel, a válasz eldobásával és más aktív eljárásokkal, de általánosságban ez egy jó mödszer a saját IP cím elrejtésére\&. +.sp +A csalikat listáját vesszővel kell elválasztani\&. Kiegészítésként használhatja a +ME +paramétert a csalik listájában, amely a saját IP címét jelenti\&. Ha a +ME +paramétert a hatodik vagy későbbi pozícióban használja, a legtöbb letapogatás érzékelő (mint például a Solaris Scanlogd) valószínűleg egyáltalán nem fogja megjeleníteni az IP címét\&. Ha nem használja a +ME +paramétert, az Nmap véletlen pozícióba teszi az IP címét\&. Használhatja az RND paramétert, így véletlenszerű, nem fenntartott IP címeket generálhat, vagy az RND:<szám> paramétert, így a <szám>\-nak megfelelő mennyiségű IP címet kap\&. +.sp +Jegyezze meg, hogy a megadott csaliknak élő állomásoknak kell lenniük, különben véletlenül SYN elárasztásnak teheti ki a célpontokat\&. Ráadásul eléggé könnyű kitalálni a támadó kilétét, ha az IP címek közül csak egy él a hálózaton\&. Célszerűbb nevek helyett IP címeket használni (így a csalik hálózatában lévő névszerverek naplóiban nem jelenik meg az Ön IP címe)\&. +.sp +A program a csalikat mind a kezdeti visszhang letapogatásnál (az ICMP, SYN, ACK vagy bármi más használatakor) mind a későbbi kapuletapogatásoknál használja\&. Szintén használja a csalikat a távoli ooperációs rendszer felderítésekor (\fB\-O\fR)\&. Nem használ csalikat a változat érzékeléskor és a TCP kapcsolódási letapogatásnál\&. +.sp +Nem érdemes túl sok csalit használni, mivel lelassíthatja a letapogatást és ronthatja a pontosságot\&. Ezen kívül néhány szolgáltató kiszűri a hamisított csomagokat, bár a legtöbb nem foglalkozik velük egyáltalán\&. +.RE +.PP +\fB\-S <IP cím>\fR (Hamis forráscím) +.RS 4 +Néhány esetben az Nmap nem tudja meghatározni az Ön forráscímét (ilyenkor az Nmap figyelmeztető üzenetet küld)\&. Ilyenkor az +\fB\-S\fR +paraméter után adja meg annak a hálózati illesztőnek az IP címét, amelyen keresztül a csomagokat küldeni szeretné\&. +.sp +Ennek a paraméternek egy másik lehetséges használata, hogy amikor a célponttal elhiteti, hogy +\fIvalaki más\fR +próbálja meg letapogatni\&. Képzelje el, amikor egy cég azt látja, hogy egy versenytársa próbálja meg letapogatni! Az ilyen használathoz általában szükség van az +\fB\-e\fR +és a +\fB\-PN\fR +paraméterek használatára is\&. Jegyezze meg, hogy ilyenkor semmilyen választ nem fog kapni (azok a hamisított feladóhoz továbbítódnak), így az Nmap sem tud használható jelentést készíteni\&. +.RE +.PP +\fB\-e <illesztő>\fR (Megadott illesztő használata) +.RS 4 +Megadja, hogy az Nmap melyik illesztőt használja a csomagok küldésére és fogadására\&. Az Nmap ezt automatikusan is képes érzékelni, de meg is adhatja, ha ez nem történik meg\&. +.RE +.PP +\fB\-\-source\-port <kapu száma>;\fR \fB\-g <portnumber>\fR (A forráskapu számának hamisítása) +.RS 4 +Az egyik meglepően elterjedt hiba, hogy a forráskapu alapján bíznak meg egyes hálózati forgalmakban\&. Könnyű megérteni, miért is van ez így\&. Egy rendszergazda szeretne beállítani egy új, csillogó tűzfalat\&. Azonban a beüzemelés után a felhasználók elárasztják a panaszaikkal, mivel a programjaik többé nem működnek\&. Különösen a névfeloldással lehetnek problémák, mivel a külső hálózatból érkező UDP DNS válaszok többé nem tudnak belépni a belső hálózatba\&. Az FTP egy másik szokványos példa\&. Aktív FTP átviteleknél a kiszolgáló megpróbál visszafelé felépíteni egy kapcsolatot az ügyfél által kért fájl átviteléhez\&. +.sp +Ezekre a problémákra léteznek biztonságos megoldások, akár alkalmazásszűrők, akár protokoll feldolgozó tűzfalmodulok formájában\&. Sajnos vannak könnyebb, de kevésbé biztonságos megoldások is\&. Felismervén, hogy a DNS válaszok az 53\-as kapuról, az aktív FTP kapcsolatok pedig a 20\-as kapuról érkeznek, a legtöbb rendszergazda beleesik abba a csapdába, hogy egyszerűen engedélyezi ezekről a kapukról a bejövő forgalmat\&. Gyakran azt feltételezik, hogy a támadók nem ismerik fel és nem használják ki ezeket a réseket\&. Máskor úgy gondolják, hogy ez csak ideiglenes lesz, amíg egy biztonságosabb megoldást nem találnak\&. Aztán elfelejtkeznek róla\&. +.sp +Ám nemcsak a túlterhelt rendszergazdák esnek ebbe a csapdába\&. Számos termék érkezik ilyen gyenge szabályokkal\&. Különösen a Microsoft bűnös ebben a körben\&. A Windows 2000 és Windows XP rendszerekkel szállított IPsec szűrő tartalamaz egy hallgatólagos szabályt, mely beenged minden TCP és UDP forgalmat, mely a 88\-as forráskapuról érkezik (Kerberos)\&. Egy másik, jól ismert eset volt a Zone Alarm személyi tűzfalakban a 2\&.1\&.25\-ös változatig meglévő hiba, mely beengedett minden UDP forgalmat az 53\-as (DNS) vagy a 67\-es (DHCP) forráskapukról\&. +.sp +Ezeknek a hibáknak a kihasználásához az Nmap a +\fB\-g\fR +és a +\fB\-\-source\-port\fR +paramétereket biztosítja (ezek egyenértékűek)\&. Csak adja meg kapu számát és amennyiben lehetséges, az Nmap ezzel a forráskapuval fogja elküldeni a próbákat\&. Bizonyos operációs rendszer érzékelési tesztekhez az Nmap más kaput fog használni a helyes működéshez\&. A DNS kérések végrehajtásakor a +\fB\-\-source\-port\fR +beállításait nem veszi figyelembe, mivel ezeknek a kéréseknek a kezelését az Nmap a rendszer könyvtárain keresztül végzi\&. A legtöbb TCP letapogatás, beleértve a SYN letapogatást, valamint az UDP letapogatás teljes mértékben támogatja ezt a paramétert\&. +.RE +.PP +\fB\-\-data\-length <szám>\fR (Véletlen adatok hozzáfűzése az elküldött csomagokhoz) +.RS 4 +Normális esetben az Nmap csak minimális méretű csomagokat küld, melyek csak a fejlécet tartalmazzák\&. Így a TCP csomagjai általában csak 40, az ICMP visszhang kérései pedig csak 28 bájt hosszúak\&. Ennek a paraméternek a hatására az Nmap a megadott számú véletlen bájtot fűz hozzá a legtöbb elküdött csomaghoz\&. Az operációs rendszer érzékelésének (\fB\-O\fR) próbacsomagjait ez nem érinti, mivel a pontosság miatt itt állandó próbákra van szükség\&. A legtöbb visszhang és kapuletapogató csomag azonban támogatja ezt a paramétert\&. Ez egy kicsit lelassítja a letapogatást, viszont kevésbé lesz feltűnő\&. +.RE +.PP +\fB\-\-ip\-options <S|R [útvonal]|L [útvonal]|T|U \&.\&.\&. >;\fR \fB\-\-ip\-options <hexa karakterlánc>\fR (Csomagok küldése megadott IP paraméterekkel) +.RS 4 +Az +\m[blue]\fBIP protokoll\fR\m[]\&\s-2\u[9]\d\s+2 +leírása felkínál pár paramétert, melyek a csomagok fejlécében használhatók\&. Nem úgy, mint a széles körben használt TCP paraméterek, az IP paraméterek ritkán láthatók praktikus és biztonsági megfontolások miatt\&. Valójában az Interneten lévő legtöbb útválasztó blokkolja a veszélyes paramétereket, mint például a forrás nyomkövetést\&. Néhány esetben a paraméterek hasznosak lehetnek a célpont felé vezető útvonal felderítésében és manipulálásában\&. Például felhasználhatja az útvonal rögzítése paramétert a célponthoz vezető útvonal felderítéséhez még akkor is, ha a hagyományos traceroute nem jár sikerrel\&. Vagy ha a csomagokat bizonyos tűzfalak eldobják, megadhat egy másik útvonalat a szigorú és a laza útválasztás paraméterekkel\&. +.sp +Az IP paraméterek megadásának leghatásosabb módja ha az +\fB\-\-ip\-options\fR +után beírja az értékeket\&. A hexadecimális értékeket mindig +\ex +karakterrek kezdje, majd következik két szám\&. Bizonyos karaktereket ismételhet is, ha a karakter után egy csillagot ír, majd megadja az ismétlések számát\&. Például a +\ex01\ex07\ex04\ex00*36\ex01 +egy olyan hexadecimális karaktersorozat, mely 36 darab NULL bájtot tartalmaz\&. +.sp +Az Nmap a paraméterek megadásának egy rövidebb módját is felkínálja\&. Az +R, +T +és +U +paraméterekkel az útvonal rögzítését, az időbélyeg rögzítését, vagy mindkettőt kérheti\&. A laza vagy a szigorú útvonalkövetést az +L +vagy az +S +paraméter és az IP címek szóközzel elválasztott listájának megadásával kérhet\&. +.sp +Ha szeretné nyomon követni az elküdött és a beérkezett csomagokban lévő beállításokat, adja meg a +\fB\-\-packet\-trace\fR +paramétert\&. Ha további információkra és példákra kíváncsi az Nmap programban használható IP paraméterekkel kapcsolatban, látogasson el a +\m[blue]\fB\%https://seclists.org/nmap-dev/2006/q3/0052.html\fR\m[] +címre\&. +.RE +.PP +\fB\-\-ttl <érték>\fR (A time\-to\-live mező beállítása) +.RS 4 +Beállítja az IPv4 csomag time\-to\-live mezőjét a megadott értékre\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Összekeveri a célpontok sorrendjét) +.RS 4 +Utasítja az Nmap programot, hogy a letapogatás előtt keverje össze a célpontok csoportjának sorrendjét (maximum 16384 gép)\&. Ez a letapogatást kevésbé nyilvánvalóvá teszi a legtöbb hálózati megfigyelő rendszer számára, különösen ha egy lassú időzítéssel is kombinálja\&. Ha nagyobb csoportot szeretne megkeverni, állítsa be a PING_GROUP_SZ paramétert az +nmap\&.h +fájlban és fordítsa le újra a programot\&. Egy másik megoldás lehet, ha a célpontok címeit egy lista letapogatással szedi össze (\fB\-sL \-n \-oN \fR\fB\fIfájlnév\fR\fR), megkeveri azokat egy Perl parancsfájllal, majd ezt a listát adja át az Nmap programnak az +\fB\-iL\fR +paraméterrel\&. +.RE +.PP +\fB\-\-spoof\-mac <MAC cím, előtag vagy gyártó name>\fR (MAC cím hamisítása) +.RS 4 +Arra utasítja az Nmap programot, hogy az összes elküldött ethernet kerethez a megadott MAC címet használja\&. Ehhez a paraméterhez automatikusan hozzáadódik a +\fB\-\-send\-eth\fR +paraméter is, így biztosítva, hogy az Nmap valójában ethernet\-szintű csomagokat küldjön\&. A MAC cím több formátumban is megadható\&. Ha a megadott paraméter egy egyszerű +„0\(rq, az Nmap egy teljesen véletlen MAC címet választ arra munkamenetre\&. Ha a megadott karakterlánc páros számú hexadecimális számból áll (a párok elválaszthatók kettősponttal), az Nmap ezt a MAC címet fogja használni\&. Ha kevesebb, mint 12 számjegyet adott meg, az Nmap a fennmaradó részt véletlen értékekkel tölti fel\&. Ha a megadott érték nem 0 vagy hexadecimális karakterlánc, az Nmap elvégez egy keresést az +nmap\-mac\-prefixes +fájlban, hogy található\-e a megadott karakterlánccal megegyező nevű gyártó (ez érzékeny a nagy\- és kisbetűkre)\&. Ha talál egyezést, az Nmap a gyártó OUI mezőjét fogja használni (3 bájtos előtag), a fennmaradó 3 bájtot pedig véletlen értékekkel tölti fel\&. Példák az érvényes +\fB\-\-spoof\-mac\fR +paraméterre: +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2 +és +Cisco\&. +.RE +.PP +\fB\-\-badsum\fR (Csomagok küldése hamis TCP/UDP ellenőrző összeggel) +.RS 4 +Az Nmap a csomagokat hamis TCP vagy UDP ellenőrző összeggel fogja elküldeni a célpont felé\&. Mivel elméletileg minden állomás IP verme az ilyen csomagokat helyesen eldobja, ezért bármilyen válasz tűzfalra vagy IDS rendszerre utal, melyek nem foglalkoznak az ellenőrző összeg vizsgálatával\&. További részletek erről a technikáról a +\m[blue]\fB\%https://nmap.org/p60-12.txt\fR\m[] +címen\&. +.RE +.SH "KIMENET" +.PP +Bármely biztonsági eszköz csak annyira hasznos, amennyire az általa generált kimenet használható\&. A bonyolult tesztek és eljárások keveset érnek, ha az eredményt nem áttekinthető és érhető módon szolgáltatják\&. Az Nmap programot annyiféle módon használják emberek és más programok is, hogy egyféle kimeneti formátum nem lenne megfelelő mindenkinek\&. Így az Nmap többféle formátumot kínál, beleértve az emberek számára hasznos interaktív módot és a programok által könnyen feldolgozható XML\-t\&. +.PP +A különböző kimeneti formátumok mellett az Nmap néhány paraméterrel lehetővé teszi mind a kimenet, mind a hibakeresési információk bőbeszédűségének beállítását\&. A kimenti adatok mind a szabványos kimenetre, mind egy megadott nevű fájlba kerülhetnek\&. Az Nmap képes a fájlhoz hozzáfűzni, vagy felülírni azt\&. A kimeneti fájlok alkalmasak még megszakított letapogatások folytatására is\&. +.PP +Az Nmap kimenete öt különféle formátumban érhető el\&. Az alapértelmezett elnevezése az +interaktív kimenet +amely a szabványos kimenetre kerül (stdout)\&. Létezik még egy +normál kimenet +is, mely csak annyiban különbözik az +interaktívtól, hogy kevesebb futásidejű üzenetet és figyelmeztetést jelenít meg, mivel feltételezi, hogy az adatok elemzésére csak a letapogatás befejezése után kerül sor, nem pedig folyamatosan\&. +.PP +Az XML kimenet az egyik legfontosabb kimeneti típus, mivel átalakítható HTML dokumentummá, könnyen feldolgozható más programmal (mint például az Nmap grafikus felülete) és adatbázisba is importálható\&. +.PP +A fennmaradó két kimeneti típus közül az egyik az egyszerű +grep által feldolgozható kimenet, mely a legtöbb információt jeleníti meg az állomásról egy sorban, a másik a +sCRiPt KiDDi3 0utPUt +azoknak, akik úgy gondolnak magukra, mint |<\-r4d\&. +.PP +Míg az alapértelmezett interaktív kimenetnek nincs parancssori kapcsolója, a többi négy formátum ugyanazt a szintaktikát használja\&. Egyetlen paraméterük van, az eredményt tároló fájl neve\&. Több formátum is megadható egyszerre, de minden formátum csak egyszer használható\&. Például ha szeretné később átnézni a normál kimenet eredményét és egyben szeretné programmal is feldolgozni, akkor használhatja az +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR +paramétert\&. Bár ebben a fejezetben az egyszerűség kedvéért rövid fájlneveket használunk (például +myscan\&.xml), általában ajánlott hosszabb, jelentéssel bíró neveket használni\&. A nevek kiválasztásakor figyeljünk a személyes igényekre, használhatunk dátumot, vagy egy\-két szavas rövid leírást a munka típusáról\&. +.PP +Bár ezekkel a paraméterekkel az eredményeket fájlba menthetjük, az Nmap ettől függetlenül az interaktív kimenetet megjeleníti a szabvány kimeneten\&. Például az +\fBnmap \-oX myscan\&.xml célpont\fR +parancs az XML kimenetet a +myscan\&.xml +fájlba írja és egyben megjeleníti azt az interaktív kimenetet is, amely az +\fB\-oX\fR +paraméter megadása nélkül is megjelent volna\&. Ez a viselkedés megváltoztatható, ha a kimeneti formátum után egy kötőjelet ad meg paraméterként\&. Ilyenkor az Nmap kikapcsolja az interaktív kimenetet és ehelyett a szabványos kimeneti adatfolyamba írja a kívánt kimeneti formátumú adatokat\&. Így az +\fBnmap \-oX \- célpont\fR +parancs csak a stdout eszközre küldi el az XML kimenetet\&. A komoly hibákat továbbra is a normál hibakimenetre, a stderr eszközre írja\&. +.PP +Az Nmap más paramétereitől eltérően a naplófájl paraméterjelzője (mint az +\fB\-oX\fR) és a fájlnév vagy kötőjel között kötelező szóközt hagyni\&. Ha ezt elhagyja és például az +\fB\-oG\-\fR +vagy az +\fB\-oXscan\&.xml\fR +formátumban adja meg a paramétert, akkor kompatibilitási okoból egy +\fInormál formátumú\fR +kimeneti fájl jön létre +G\- +és +Xscan\&.xml +nevekkel\&. +.PP +Ezek közül a paraméterek közül mindegyik támogatja a fájlnevek +\fBstrftime()\fR\-szerű átalakítását\&. A +%H, +%M, +%S, +%m, +%d, +%y +és +%Y +megadása pontosan azt jelenti, mint az +\fBstrftime()\fR +függvényben\&. A +%T +ugyanazt jelenti, mint a +%H%M%S, a +%R +ugyanazt jelenti, mint a +%H%M +és a +%D +ugyanazt jelenti, mint a +%m%d%y\&. ha a +% +jelet bármilyen más karakter követi, akkor azt a karaktert egyszerűen tovább adja (például a +%% +egy százalékjelet ad tovább)\&. Így az +\fB\-oX \*(Aqscan\-%T\-%D\&.xml\*(Aq\fR +paraméter megadása egy XML fájlt hoz létre +scan\-144840\-121307\&.xml +névvel\&. +.PP +Az Nmap lehetőséget biztosít a letapogatás részletességének beállítására, valamint arra, hogy az eredményeket hozzáfűzze egy meglévő fájlhoz ahelyett, hogy felülírná\&. A paraméterek leírása az alábbiakban található\&. +.PP +\fBNmap kimeneti formátumok\fR +.PP +\fB\-oN <fájlnév>\fR (normál kimenet) +.RS 4 +Ezzel a kéréssel a +normál kimenet +a megadott nevű fájlba lesz átirányítva\&. Ahogy a fentiekben olvashatta, ez egy kicsit különbözik az +interaktív kimenettől\&. +.RE +.PP +\fB\-oX <fájlnév>\fR (XML kimenet) +.RS 4 +Ezzel a kéréssel az +XML kimenet +a megadott nevű fájlba lesz átirányítva\&. Az Nmap a fájlhoz hozzáfűz egy dokumentum típusmeghatározást si (DTD), így az XML feldolgozók ellenőrizhetik az Nmap XML kimenetét\&. Bár ez elsősorban programbeli felhasználásra készült, de segítséget nyújt az embereknek is az Nmap XML kimenetének értelmezésében\&. A DTD leírja a formátum érvényes elemeit és gyakran felsorolja a tulajdonságokat és azok értékeit is\&. A legfrissebb változat mindig megtalálható a +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[] +címen\&. +.sp +XML egy stabil formátumot kínál, mely programból könnyen feldolgozható\&. Ingyenes XML feldolgozók az összes nagyobb programozási nyelvhez elérhetők, beleértve a C/C++, Perl, Python és Java nyelveket\&. Az Nmap kimenetének feldolgozására és működésének vezérlésére a legtöbb nyelvhez már készültek kapcsolódó munkák\&. Perl CPAN példák találhatók a +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[10]\d\s+2 +és a +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[11]\d\s+2 +címeken\&. A legtöbb esetben az XML az előnyben részesített formátum\&. +.sp +Az XML kimenet hivatkozik egy XSL stíluslapra, melynek segítségével az eredmények HTML formátumra alakíthatók\&. Ezt a legegyszerűbben úgy használhatja, hogy az XML kimenetet betölti egy böngészőbe\&. Alapesetben ez csak azon a gépen működik, amelyen az Nmap fut (vagy egy hasonlóan beálított gépen), mivel az +nmap\&.xsl +elérési útvonala bele van drótozva a programba\&. A +\fB\-\-webxml\fR +vagy a +\fB\-\-stylesheet\fR +paraméterek megadásával olyan hordozható XML fájlt hozhat létre, mely bármely Internetre kötött gépen megjeleníthető HTML formátumban\&. +.RE +.PP +\fB\-oS <fájlnév>\fR (Szkriptkölyök kimenet) +.RS 4 +A szkriptkölyök kimenet olyan, mint az interaktív kimenet, csak még átmegy egy végső feldolgozáson\&. Így jobban passzol az olyan hekkerek lelkivilágához, akik előzőleg lenézték az Nmap egységes helyesírását és a nagybetűk használatát\&. Gyenge humorérzékűek úgy gondolhatják, hogy ez a paraméter nevetségessé akarja tenni a szkriptkölyköket ahelyett, hogy +„segítené őket\(rq\&. +.RE +.PP +\fB\-oG <fájlnév>\fR (grep által feldolgozható kimenet) +.RS 4 +Ez a kimenti formátum maradt a végére, mivel ez egy elavult formátum\&. Az XML sokkal használhatóbb és tapasztalat felhasználók számára majdnem olyan kényelmes is\&. Az XML egy szabvány, melyet feldolgozó programok százai támogatnak, míg a greppel feldolgozható kimenet csak egy egyszerű barkácsolás\&. Az XML könnyen bővíthető az új Nmap tulajdonságok támogatásához, míg ezek a bővítések a helyhiány miatt gyakran kimaradnak a greppel feldolgozható kimentből\&. +.sp +Mindezek ellenére a greppel feldolgozható kimenet még mindig nagyon népszerű\&. Egyszerű formátumú, mely minden egyes célpont adatait egyetlen sorban adja vissza, egyszerűen kereshető és feldolgozható olyan alap Unix eszközökkel, mint a grep, awk, cut, sed, diff, vagy egy Perl parancsfájl\&. Emellett használható még egyszeri tesztek parancssorból történő elvégzésére\&. Az összes nyitott SSH kapujú, vagy Solaris operációs rendszert futtató állomás megtalálásához elég egy egyszerű greppel feldolgozható kimenet, melyet az awk vagy a cut programba átirányítva kinyomtatható a kívánt információ\&. +.sp +A greppel feldolgozható kimenet megjegyzésekből (#\-tel kezdődő sorok) és a célpont soraiból áll\&. A célpont sora 6 címzett mezőt tartalmaz, tabulátorral elválasztva, kettősponttal a végén\&. A mezők nevei: +Állomás (Host), +Kapuk (Ports), +Protokollok (Protocols), +Mellőzött állapot (Ignored State), +Operációs rendszer (OS), +Sorozatszám (Seq Index), +IP ID +és +Állapot (Status)\&. +.sp +Ezek közül a mezők közül általábana legfontosabb a +Ports, mely információkat tartalmaz az összes érdekes kapuról\&. Ez egy vesszővel elválasztott lista\&. Minden egyes bejegyzés egy\-egy kaput jelent és hét almezőt tartalmaz perjellel (/) elválasztva\&. Az almezők nevei: +Kapuszám (Port number), +Állapot (State), +Protokoll (Protocol), +Tulajdonos (Owner), +Szolgáltatás (Service), +SunRPC info +és +Változat (Version info)\&. +.sp +Csakúgy, mint az XML kimenet esetében, ez a leírás ennek a kimenetnek sem tartalmazza a teljes leírását\&. Az Nmap greppel feldolgozható kimenetének részletes leírása a +\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[] +címen található\&. +.RE +.PP +\fB\-oA <alapnév>\fR (Minden kimeneti formátum használata) +.RS 4 +Kényelemből használhatja az +\fB\-oA \fR\fB\fIalapnév\fR\fR +paramétert, ha a kimenetet egyszerre akarja normál, XML és greppel feldolgozható formátumban\&. Ezek az +\fIalapnév\fR\&.nmap, az +\fIalapnév\fR\&.xml és az +\fIalapnév\fR\&.gnmap fájlokban tárolódnak\&. Mint minden programban, itt is megadhatja a fájlok tárolásának teljes útvonalát, mint például +~/nmaplogs/foocorp/ +Unix vagy +c:\ehacking\esco +Windows rendszereknél\&. +.RE +.PP +\fBRészletezés és hibakeresési paraméterek\fR +.PP +\fB\-v\fR (Növeli az adatok részletességét) +.RS 4 +Ha növeli a részletességi szintet, az Nmap több információt jelenít meg a folyamatban lévő letapogatásról\&. A nyitott kapu a megtalálásuk sorrendjében jelennek meg\&. Ha az Nmap úgy érzékeli, hogy a letapogatás pár percnél többet fog igénybe venni, akkor megjelenít egy várható befejezési időpontot is\&. Ha még részletesebb információkra kiváncsi, használja kétszer a paramétert\&. +.sp +A legtöbb változás csak az interaktív kimenetet érinti és csak néhány van hatással a normál és a szkriptkölyök kimenetre\&. A többi kimenet gépi feldolgozásra készült, így ezekben az Nmap alaphelyzetben is részletes információkat jelenít meg\&. Ennek ellenére van pár változás ezekben a módokban, mivel néhány részlet elhagyása jelentősen csökkenti a kimenet méretét\&. Például a greppel feldolgozható kimenetben a megjegyzések csak a részletes módban jelennek meg, mivel ezek eléggé hosszúak lehetnek\&. +.RE +.PP +\fB\-d [szint]\fR (Növeli vagy beállítja a hibakeresés szintjét) +.RS 4 +Ha a részletes üzemmód nem ad visza elegendő információt, a hibakeresési mód képes elárasztani adatokkal! Csakúgy, mint a részletes üzemmód (\fB\-v\fR), a hibakeresési üzemmód is egy parancssori kapcsolóval aktivizálható (\fB\-d\fR), melynek szintje a kapcsoló többszóri megadásával növelhető\&. Emellett a hibakeresés szintjét a +\fB\-d\fR +paraméternek átadott értékkek is beállíthatja\&. Például a +\fB\-d9\fR +9\-es szintet állít be\&. Ez a legmagasabb beállítható szint és \- hacsak nem egy egyszerű letapogatás futtat \- több száz sornyi információt fog kinyomtatni\&. +.sp +A hibakeresési kimenet hasznos lehet, ha valamilyen hibát gyanít az Nmap program működésében, vagy egyszerűen csak szeretné megérteni, hogy mit és miért csinál az Nmap\&. Mivel ez a funkció elsősorban fejlesztőknek készült, ezért a legtöbb megjelenő információ nem is értelmezhető könnyen\&. Kaphat például egy ilyen kimenetet: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Ha nem ért egy sort egyszerűen figyelmen kívül hagyhatja, megnézheti a program forráskódjában vagy segítséget kérhet a fejlesztői levelező listán (nmap\-dev)\&. Néhány sor könnyen érthető, de a hibakeresési szint növekedésével az üzenetek egyre homályosabbá válnak\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Az elküldött és fogadott csomagok és adatok követése) +.RS 4 +Az Nmap minden elküldött és fogadott csomagról összegzést készít\&. Ezt a legtöbbször csak hibakeresésre használják, de hasznos lehet olyanoknak is, akik szeretnék megérteni, hogy mi történik a színfalak mögött\&. Hogy elkerülhető legyen sorok százainak a megjelenítése, érdemes korlátozni a letapogatni kívánt kapuk számát például a +\fB\-p20\-30\fR +paraméter megadásával\&. Ha csak a változat érzékelés részleteire kiváncsi, használja a +\fB\-\-version\-trace\fR +paramétert\&. +.RE +.PP +\fB\-\-open\fR (Csak a nyitott (vagy valószínűleg nyitott) kapukat mutatja) +.RS 4 +Néha csak azok a kapuk érdekesek, amelyekhez kapcsolódni lehet (nyitott) és nincs szükség agyonzsúfolni a kimenetet a +zárt, +szűrt +és +zárt|szűrt +kapukkal\&. A kimenet testreszabása általában a letapogatás után történik a +grep, +awk +vagy +Perl +használatával, de a rengeteg kérés hatására ez a lehetőség is bekerült a programba\&. Az +\fB\-\-open\fR +megadásával csak a +nyitott, +nyitott|szűrt +és a +szűretlen +állapotú kapuk kerülnek a kimenetre\&. Ezeknek a kapuknak a kezelése ugyanúgy történik, mint normál esetben, így a +nyitott|szűrt +és a +szűretlen +kapuk csak egy számként jelennek meg, ha túl sok van belőlük\&. +.RE +.PP +\fB\-\-iflist\fR (Illesztők és útvonalak listázása) +.RS 4 +Megjeleníti az Nmap által érzékelt illesztőket és rendszerútvonalakat\&. Ez hasznos lehet az útválasztási problémák hibakeresésében vagy az eszközök hibás kezelésekor (például az Nmap egy PPP kapcsolatot ethernet kapcsolatnak érzékel)\&. +.RE +.PP +\fB\-\-log\-errors\fR (A hibák/figyelmeztetések rögzítése a normál módú kimenti fájlba) +.RS 4 +Az nmap által kiírt hibák és figyelmeztetések általában csak a képernyőn (interaktív kimenet) jelnnek meg, a normál formátumú kimenti fájlt érintetlenül hagyva\&. Ha szeretné ezeket az üzeneteket a normál kimenti fájlban is látni, adja meg ezt a paramétert\&. Ez hasznos lehet akkor, ha nem figyeli az interaktív kimenetet vagy valamilyen hibát próbál megtalálni\&. Az üzenetek az interaktív kimeneten ezután is megjelennek\&. Ez a paraméter nem működik azokkal a hibákkal, melyek a hibásan megadott parancssori kapcsolókkal függnek össze, mivel az Nmap ilyenkor még nem készítette elő a kimenti fájlt\&. Ráadásként néhány NMap hiba/figyelmeztetés más rendszert használ és nem támogatja ezt a paramétert\&. Ennek a paraméternek az alternatívája lehet az interaktív kimenet (beleértve a szabvány hibakimenetet) átirányítása egy fájlba\&. Míg a legtöbb Unix parancshéj ezt könnyen lehetővé teszi, Windows alatt ez egy kissé bonyolult lehet\&. +.RE +.PP +\fBVegyes kimeneti paraméterek\fR +.PP +\fB\-\-append\-output\fR (Felülírás helyett hozzáfűzés a kimenti fájlhoz) +.RS 4 +Ha megad egy fájlnevet egy kimeneti paraméterhez (mint például az +\fB\-oX\fR +vagy az +\fB\-oN\fR), akkor a program alapértelmezettként felülírja a meglévő fájlt\&. Ha szeretné megtartani a fájl tartalmát és hozzáfűzni az új eredményeket, adja meg az +\fB\-\-append\-output\fR +paramétert\&. Így futtatva az Nmap programot az összes megadott fájlhoz hozzáfűzi az új eredményeket a felülírás helyett\&. Ez az XML kimenettel (\fB\-oX\fR) nem működik jól együtt, így ez \- a fájl kézzel történő javításáig \- feldolgozási problémát okozhat\&. +.RE +.PP +\fB\-\-resume <fájlnév>\fR (Megszakított letapogatás folytatása) +.RS 4 +Néhány kiterjedt NMap letapogatás nagyon hosszú időt vehet igénybe \- néha napokig tarthat\&. Néhány letapogatás nem mindig fut le a befejezésig\&. Bizonyos korlátozások megakadályozhatják, hogy az Nmap munkaidő alatt fusson, leállhat a hálózat, az Nmap programot futtató gép elszenvedhet egy nem várt újraindítást, de maga az Nmap is összeomolhat\&. Az Nmap futását a rendszergazda is megszakíthatja a +ctrl\-C +lenyomásával\&. A teljes letapogatás újraindítása a kezdetektől nem éppen egy kívánt állapot\&. Szerencsére ha a normál (\fB\-oN\fR) vagy a greppel feldolgozható (\fB\-oG\fR) naplófájl megmaradt, a felhasználó utasíthatja az Nmap programot, hogy folytassa a letapogatást a megszakítás pontjánál\&. Egyszerűen adja meg a +\fB\-\-resume\fR +kapcsolót és a normál/greppel feldolgozható kimeneti fájl nevét\&. Más paraméter nem adható meg, mivel az Nmap a kimeneti fájl feldolgozásával visszaállítja az eredeti paramétereket\&. Egyszerűen írja be az +\fBnmap \-\-resume \fR\fB\fIfájlnév\fR\fR +parancsot\&. Az Nmap az új adatokat hozzáfűzi az előző futtatás során megadott fájlhoz\&. Az XML kimeneti formátumnál a folytatás nem támogatott, mivel a két futtatás eredményének egy fájlba történő összevonása eléggé bonyolult lehet\&. +.RE +.PP +\fB\-\-stylesheet <útvonal vagy cím>\fR (XSL stíluslap beállítása az XML kimenet átalakításhoz) +.RS 4 +Az XML fájlok megtekintéséhez és átalakításához HTML formátumra az Nmap rendelkezik egy saját XSL stíluslappal +nmap\&.xsl +néven\&. Az XML kimenet tartalmaz egy +xml\-stylesheet +irányelvet, mely az Nmap programmal eredetileg telepített +nmap\&.xml +fájlra hivatkozik (Windowson az aktuális munkakönyvtárra)\&. Egyszerűen töltse be az XML kimenetet egy modern webböngészőbe és az automatikusan betölti az +nmap\&.xsl +fájlt és megjeleníti az eredményeket\&. Ha más stíluslapot akar használni, adja meg azt a +\fB\-\-stylesheet\fR +kapcsoló után\&. A teljes útvonalat vagy címet meg kell adnia\&. Egy megszokott hivatkozás a +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. Ez arra utasítja a böngészőt, hogy az Insecure\&.org címről töltse be a legfrissebb stíluslapot\&. A +\fB\-\-webxml\fR +paraméterrel ugyanezt a hatást érheti el, csak kevesebbet kell gépelni és megjegyezni\&. Az Insecure\&.org címről letöltött stíluslap segítségével olyan gépen is megtekintheti az eredményeket, melyen nincs telepítve az Nmap (és így az +nmap\&.xsl +sem)\&. Gyakran a cím megadása sokkal hasznosabb, de biztonsági okokból az alapértelmezett a helyi fájlrendszeren lévő +nmap\&.xsl +használata\&. +.RE +.PP +\fB\-\-webxml\fR (Stíluslap betöltése az Insecure\&.Org oldalról) +.RS 4 +Ez egy kényelmesebb megvalósítása a +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR +kapcsolónak\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Kihagyja az XSL stíluslap meghatározását az XML fájlból) +.RS 4 +Megakadályozza, hogy az Nmap az XML kimeneti fájlban stíluslap bejegyzést hozzon létre\&. Kimarad az +xml\-stylesheet +irányelv\&. +.RE +.SH "VEGYES PARAMÉTEREK" +.PP +Ebben a szakaszban néhány olyan fontos (és kevésbé fontos) paraméter leírása található, melyek nem igazán illenek más fejezetekbe\&. +.PP +\fB\-6\fR (IPv6 letapogatás engedélyezése) +.RS 4 +2002 óta az Nmap legnépszerűbb tulajdonsága az IPv6 támogatás\&. A visszhang letapogatás (csak TCP), a kapcsolódási letapogatás és a változat érzékelés támogatott IPv6 formátumban is\&. A parancs leírása megegyezik az általánossal, a különbség annyi, hogy a +\fB\-6\fR +kapcsolót is meg kell adnia\&. Természetesen IPv6 formátumú címet kell megadnia, ha nem állomásnevet akar használni\&. Egy cím például így nézhet ki: +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, tehát javasolt inkább az állomásnév használata\&. A kimenet ugyanúgy néz ki, mint általában, az egyetlen különbség az +„érdekes kapuknál\(rq +látható IPv6 cím\&. +.sp +Bár az IPv6 nem terjedt el viharos gyorsasággal a világban, egyes országokban (általában Ázsiában) egyre inkább ezt használják és a legtöbb modern operációs rendszer támogatja\&. Ha az Nmap programot IPv6 támogatással akarja használni, akkor mind a forrás\- mind a célgépnek IPv6 beállítást kell használnia\&. Ha az Ön szolgáltatója (mint a legtöbb általában) nem biztosít Önnek IPv6 címet, igénybe vehet ingyenes alagút szolgáltatókat, melyek kiválóan működnek együtt az Nmap programmal\&. Az egyik legjobb ezek közül a BT Exact\&. Szintén jól használható még a Hurricane Electric nevű szolgáltató +\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]\&. Szintén népszerűek az Ipv6\-ról Ipv4\-re alagutat biztosító szolgáltatók is\&. +.RE +.PP +\fB\-A\fR (Agresszív letapogatási paraméterek) +.RS 4 +Ez a paraméter további agresszív és fejlett tulajdonságokat engedélyez\&. Jelenleg engedélyezi az operációs rendszer érzékelést (\fB\-O\fR), a változat érzékelést (\fB\-sV\fR), a parancsfájl alapú letapogatást (\fB\-sC\fR) és az útvonalkövetést (\fB\-\-traceroute\fR)\&. A jövőben további funkciók is bekerülhetnek a körbe\&. A cél az, hogy a felhasználók számára egy átfogó letapogatási készletet biztosítson anélkül, hogy rengeteg paramétert kelljen megjegyezni\&. Ez a paraméter csak a tulajdonságokat engedélyezi\&. Nincs hatással az időzítési paraméterekre (mint a +\fB\-T4\fR) vagy a részletességi paraméterekre (\fB\-v\fR), melyeket külön be kell állítani\&. +.RE +.PP +\fB\-\-datadir <könyvtárnév>\fR (Saját Nmap adatfájl helyének megadása) +.RS 4 +Az Nmap futás közben az alábbi fájlokból szerez be speciális információkat: +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes +és +nmap\-os\-db\&. Ha ezek közül bármelyik fájlnak külön megadja az elérhetőséggét (a +\fB\-\-servicedb\fR +vagy a +\fB\-\-versiondb\fR +paraméterrel), akkor ezt a fájlt ezen a helyen fogja keresni\&. Ezután az NMap ezeket a fájlokat a +\fB\-\-datadir\fR +paraméterben megadott könyvtárban fogja keresni (ha megadta)\&. Azokat a fájlokat, melyeket ott nem talál meg, az NMAPDIR környezeti változóban megadott könyvtárban fogja keresni\&. Ezután következik az +~/\&.nmap +fájl (csak POSIX rendszereknél) vagy az Nmap futtatható állomány helye (csak Win32 rendszereknél), majd a fordításnál megadott helyek, mint például az +/usr/local/share/nmap +vagy az +/usr/share/nmap\&. Legvégső próbaként az Nmap körülnéz az aktuális könyvtárban\&. +.RE +.PP +\fB\-\-servicedb <szolgáltatásfájl>\fR (Saját szolgáltatásfájl megadása) +.RS 4 +Arra utasítja az Nmap programot, hogy a megadott szolgáltatásfájlt használja a programmal szállított +nmap\-services +fájl helyett\&. Ennek a paraméternek a használata gyors letapogatást (\fB\-F\fR) eredményez\&. További információkért nézze meg a +\fB\-\-datadir\fR +paraméter leírását\&. +.RE +.PP +\fB\-\-versiondb <szolgáltatás próbafájl>\fR (Saját szolgáltatás próbafájl megadása) +.RS 4 +Arra utasítja az Nmap programot, hogy a megadott szolgáltatás próbafájlt használja a programmal szállított +nmap\-service\-probes +fájl helyett\&. További információkért nézze meg a +\fB\-\-datadir\fR +paraméter leírását\&. +.RE +.PP +\fB\-\-send\-eth\fR (Nyers ethernet keretek küldése) +.RS 4 +Arra utasítja az Nmap programot, hogy a csomagokat az ethernet (adatkapcsolati) rétegen keresztül küldje a magasabb IP (hálózati) réteg helyett\&. Alaphelyzetben a Nmap a futattó környezethez legjobban illeszkedő megoldást választja\&. Unix rendszereken általában a nyers csatolók (IP réteg) adják a leghatékonyabb eredményt, míg a Windows rendszereknél szükség van az ethernet keretekre, mivel a Microsoft tiltja a nyers csatolók használatának támogatását\&. Unix rendszereken az Nmap ennek a paraméternek a megadása ellenére is a nyers IP csomagokat fogja használni, ha nem talál más választási lehetőséget (például nincs ethernet kapcsolat)\&. +.RE +.PP +\fB\-\-send\-ip\fR (Küldés az IP rétegen keresztül) +.RS 4 +Arra utasítja az Nmap programot, hogy a csomagokat IP csatolókon keresztül küldje az alacsonyabb szintű ethernet keretek helyett\&. Ez az előzőekben tárgyalt +\fB\-\-send\-eth\fR +paraméter kiegészítője\&. +.RE +.PP +\fB\-\-privileged\fR (Feltételezi, hogy a felhasználó teljes jogosultsággal rendelkezik) +.RS 4 +Az Nmap feltételezi, hogy a felhasználó elegendő jogosultsággal rendelkezik olyan műveletek elvégzéséhez, mint az adatküldés nyers csatolókon keresztül, csomagok fürkészése és más olyan műveletek, melyek általában rendszergazdai jogosultságokat igényelnek a Unix rendszereken\&. Alapesetben az Nmap kilép, ha ilyen műveletre utasítják és a geteuid() függvény nem nullát ad vissza\&. A +\fB\-\-privileged\fR +paraméter jól használható a Linux rendszermag képességeivel és olyan rendszerekkel, amelyek lehetővé teszik, hogy alacsonyabb jogosultságú felhasználók nyers csomagokat küldjenek\&. Figyeljen arra, hogy ezt a paramétert még a jogosultságot igénylő műveletek (SYN letapogatás, operációs rendszer érzékelés stb\&.) paraméterei előtt meg kell adnia\&. A +\fB\-\-privileged\fR +paraméterrel egyenértékű az NMAP_PRIVILEGED környezeti változó beállítása\&. +.RE +.PP +\fB\-\-unprivileged\fR (Feltételezi, hogy a felhasználónak nincs elegendő jogosultsága) +.RS 4 +Ez a +\fB\-\-privileged\fR +paraméter ellentéte\&. Az Nmap úgy kezeli a felhasználót, mint akinek nincs jogosultsága nyers csatolók használatára és csomagok kifürkészésére\&. Hasznos lehet tesztelésnél, hibakeresésnél vagy amikor az operációs rendszer nyers hálózati funkciói sérültek\&. Az +\fB\-\-unprivileged\fR +paraméterrel egyenértékű az NMAP_UNPRIVILEGED környezeti változó beállítása\&. +.RE +.PP +\fB\-\-release\-memory\fR (Kilépés előtt felszabadítja a memóriát) +.RS 4 +Ez a paraméter csak a memóriaszivárgási hibák keresésekor hasznos\&. Arra utasítja az Nmap programot, hogy a kilépés előtt szabadítsa fel a lefoglalt memóriát, így a memóriaszivárgás könnyen felderíthető\&. Normál helyzetben az Nmap átugorja ezt, mivel a program leállításakor az operációs rendszert ezt amúgy is végrehajtja\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Programváltozat megjelenítése) +.RS 4 +Megjeleníti az Nmap program változatszámát és kilép\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Súgólap megjelenítése) +.RS 4 +Megjelenít egy rövid súgót a leggyakrabban használt parancsokról és paraméterekről\&. Ugyanezt a képernyőt kapja, ha az Nmap parancsot paraméterek nélkül futtatja le\&. +.RE +.SH "FUTÁSIDEJŰ KAPCSOLAT" +.PP +Az Nmap program futása alatt minden billentyű lenyomása rögzítésre kerül\&. Így kapcsolat létesíthető a programmal anélkül, hogy le kellene állítani majd újraindítani azt\&. Bizonyos billentyűkkel módosíthat egyes paramétereket, míg a többi billentyű lenyomásával egy állapotjelentés jelenik meg az éppen futó letapogatásról\&. ltalános szabály, hogy +\fIa kisbetűk növelik\fR +a megjelenített információ mennyiségét, míg +\fIa nagybetűk csökkentik\fR +azt\&. Segítségért használja a \(oq\fI?\fR\(cq billentyűt\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Növeli / csökkenti a megjelenített információk mennyiségét +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Növeli / csökkenti a hibakeresési adatok mennyiségét +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Bekapcsolja / kikapcsolja a csomagok nyomkövetését +.RE +.PP +\fB?\fR +.RS 4 +Megjeleníti a futásidejű súgót +.RE +.PP +Bármely más billentyű +.RS 4 +Megjelenít egy hasonló állapotjelentést: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "PÉLDÁK" +.PP +Ebben a fejezetben néhány példa következik az Nmap használatára, az egyszerűbb rutinfeladatoktól a bonyolultabb, beavatottabbak számára valókig\&. Néhány IP cím és tartománynév azért került be a példákba, hogy a dolgok eléggé konkrétak legyenek\&. Ezeket helyettesítse olyan IP címekkel és nevekkel, melyek a +\fIsaját hálózatából\fR +származnak\&. A program készítői nem hiszik, hogy a kapuletapogatás valójában illegális vagy illegális lehet\&. Ennek ellenére néhány rendszergazda nem veszi szívesen a kéretlen letapogatásokat és panaszt emelhet\&. A legjobb előzetesen megszerezni a szükséges engedélyeket\&. +.PP +Tesztelési célból kipróbálhatja a +scanme\&.nmap\&.org +állomást\&. Ez az engedély kizárólag az Nmap programmal történő letapogatásra vonatkozik és nem terjed ki ártó kódok kipróbálására vagy szolgáltatásmegtagadási (DOS) támadások végrehajtására\&. A hálózat kapacításának megőrzése érdekében kérjük, hogy ne indítson napi néhány tucatnál több letapogatást\&. Ha valaki visszaélne ezzel az ingyenes tesztelési lehetőséggel, a tulajdonosok leállítják a rendszert és az Nmap a következő hibaüzenettel fog visszatérni: +Failed to resolve given hostname/IP:scanme\&.nmap\&.org\&. Ugyanezek az engedélyek vonatkoznak a +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org +és a további állomásokra is, bár ezek jelenleg még nem üzemelnek\&. +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Ezzel a paranccsal letapogatható az összes foglalt TCP kapu a +scanme\&.nmap\&.org +állomáson\&. A +\fB\-v\fR +paraméter engedélyezi a bőbeszédű üzemmódot\&. +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Elindít egy lopakodó SYN letapogatást minden olyan állomáson, mely a Scanme állomás +„C osztályú\(rq +címterében található és elérhető\&. Emelett megpróbálja kideríteni, hogy az elérhető állomások milyen operációs rendszert futtatnak\&. A SYN letapogatás és az operációs rendszer felderítése miatt ennek a parancsnak a futtatásához rendszergazdai jogosultságok szükségesek\&. +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Felderíti az állomásokat a 198\&.116\-os B osztályú hálózat mind a 255 8 bites alhálózatának alsó felében és végrehajt rajtuk egy TCP letapogatást\&. Ellenőrzi, hogy a rendszereken fut\-e SSH, DNS, POP3 vagy IMAP szolgáltatás a szabványos kapukon, illetve fut\-e bármilyen szolgáltatás a 4564\-os kapun\&. Ha bármely kapu nyitva található, egy változat érzékeléssel meghatározzuk az azon futó alkalmazás típusát\&. +.PP +\fBnmap \-v \-iR 100000 \-PN \-p 80\fR +.PP +Arra utasítja az Nmap programot, hogy válasszon ki véletlenszerűen 100 000 állomást és keressen rajtuk webkiszolgálót (80\-as kapu)\&. Az állomások felderítését a +\fB\-PN\fR +paraméterrel kikapcsoljuk, mivel egy kapu letapogatásakor felesleges először néhány próbával kideríteni, hogy az állomás elérhető\-e\&. +.PP +\fBnmap \-PN \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Visszhang próbák nélkül letapogat 4096 IP címet webkiszolgáló után kutatva, a kimenetet pedig elmenti greppel feldolgozható és XML formátumban\&. +.SH "HIBÁK" +.PP +Akárcsak a program készítője, az Nmap sem tökéletes\&. De segíthet jobbá tenni, ha elküldi a felfedezett hibák leírását, vagy javítást készít hozzájuk\&. Ha az Nmap nem az elvárásai szerint működik, először mindig szerezze be a legfrissebb változatot a +\m[blue]\fB\%https://nmap.org\fR\m[] +címről\&. Ha a probléma továbbra is fennáll, nézzen utána, hogy felfedezték\-e már mások is\&. Keressen rá a Google\-ban a hibaüzenetre vagy böngéssze át az Nmap fejlesztői listát a +\m[blue]\fB\%https://seclists.org/\fR\m[] +címen\&. Olvassa végig ezt a leírást is\&. Ha nem talál semmit, küldjön egy hibajelentést az +<dev@nmap\&.org> +címre\&. Írjon le mindent, amit a hibával kapcsolatban tapasztalt\&. Adja meg pontosan a használt Nmap változatot és a futtató operációs rendszer változatát is\&. Az dev@nmap\&.org címre küldött hibajelzések és az Nmap használatával kapcsolatos kérdések valószínűleg gyorsabban megválaszolásra kerülnek, mintha azokat közvetlenül a program készítőjének (Fyodor) küldené\&. +.PP +A hibajavítások sokkal hasznosabbak, mint a hibajelentések\&. A hibajavítások elkészítésével kapcsolatban tanácsokat kaphat a +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[] +címen\&. A hibajavítások elküldhetők az nmap\-dev listára (ez a javasolt), vagy közvetlenül a készítőnek is\&. +.SH "SZERZŐ" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%https://insecure.org\fR\m[]) +.PP +Az évek során emberek százai járultak hozzá értékes munkájukkal az Nmap programhoz\&. Ezek részletezése megtalálható a +CHANGELOG +fájlban, mely az Nmap program terjesztése mellett elérhető a +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[] +címen is\&. +.SH "JOGI NYILATKOZAT" +.SS "Nmap szerzői jog és licenc" +.PP +Nmap Biztonsági letapogató (C) 1996\-2007 Insecure\&.Com LLC\&. Az Nmap az Insecure\&.Com LLC bejegyzett védjegye\&. Ez egy szabad program; szabadon továbbadható és/vagy módosítható a Szabad Szoftver Alapítvány által kiadott GNU General Public License 2\-es változatának irányelvei szerint\&. Ez biztosítja Önnek a jogot, hogy bizonyos feltételek esetén ezt a programot használja, módosítsa és továbbadja\&. Ha az Nmap technológiáját üzleti célú programba kívánja beágyazni, más licencre van szüksége (írjon a +<sales@insecure\&.com> +címre)\&. Több, biztonsági letapogatót forgalmazó cég kapott ilyen licencet az Nmap technológiájának használatára az állomás felderítés, kapupásztázás, operációs rendszer érzékelés és szolgáltatás/változat érzékelés területén\&. +.PP +A GPL fontos korlátozásokat alkalmaz a +„származtatott munkákkal\(rq +kapcsolatban, bár jelenleg a kifejezés nincs részletesen meghatározva\&. A félreértések elkerülése érdekében \- és a GPL szándékait szem előtt tartva \- a készítők úgy vélik, hogy egy alkalmazás akkor tekinthető +„származtatott munkának\(rq, ha az alábbiak közül bármelyik teljesül: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Tartalmazza az Nmap forráskódját, vagy annak részletét +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Olvassa vagy felhasználja az Nmap jogvédett adatfájljait, mint az +nmap\-os\-fingerprints +vagy az +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Futtatja az Nmap programot és feldolgozza az eredményt (ellentétben a tipikus parancshéj vagy végrehajtási menü alkalmazásokkal, melyek csak megjelenítik az Nmap nyers kimenetét, így nem tekinthetők származtatott munkának\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integrálja/beépíti az Nmap programot egy üzleti célú futtatható telepítő programba, mint amilyen például az InstallShield\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Kapcsolódik olyan programkönyvtárhoz, vagy futtat olyan programot mely az előbbiek közül bármelyiket teszi\&. +.RE +.PP +Az +„Nmap\(rq +kifejezés felhasználható az Nmap programból származtatott munkák bármely részére\&. A fenti lista nem kizárólagos, csak néhány példán keresztül megpróbálja tisztázni az Nmap készítőinek értelmezését a származtatott munkákkal kapcsolatban\&. Ezek a korlátozások kizárólag akkor érvényesek, ha Ön valójában továbbértékesíti az Nmap programot\&. Például semmi nem tiltja, hogy Ön kezelő felületet készítsen az Nmap programhoz és azt üzleti céllal forgalmazza\&. Terjessze a programot önállóan és hívja fel a felhasználók figyelmét, hogy az Nmap programot külön kell letölteniük a +\m[blue]\fB\%https://nmap.org\fR\m[] +címről\&. +.PP +A program készítői nem gondolják, hogy a fentiek további korlátozásokat adnának a GPL\-hez, kizárólag annak tisztázására szolgálnak, hogyan értelmezik a +„származtatott munkák\(rq +fogalmát a GPL engedély alatt terjesztett Nmap programmal kapcsolatban\&. Ez hasonló ahhoz, ahogyan Linus Torvalds kifejtette a véleményét a Linux rendszermag\-modulokhoz kapcsolódó +„származtatott munkákkal\(rq +kapcsolatban\&. A készítők értelmezése kizárólag az Nmap programra vonatkozik \- nem vonatkozik más GPL termékekre\&. +.PP +A készítők örömmel segítenek a GPL korlátozásainak értelmezésében, ha az Nmap programot nem GPL licenc alatt terjesztett munkában kívánja felhasználni és bármilyen kérdése merülne fel ezzel kapcsolatban\&. Ahogy a fentiekben már szóba került, a készítőktől más licenc is beszerezhető, ha az Nmap programot üzleti célú alkalmazásban vagy eszközben kívánja felhasználni\&. Több biztonsági eszköz szállítója kötött ilyen szerződést, amely általában tartalmaz egy állandó licencet az Nmap használatára, kiemelt támogatást és frissítést\&. Emellett segít fedezni az Nmap technológiájának folyamatos fejlesztésével járó költségeket is\&. További információkat a +<sales@insecure\&.com> +címre küldött levélben kérhet\&. +.PP + +A GPL előírásaihoz képest különleges kivételként az Insecure\&.Com LLC hozzájárulását adja, hogy a program kódjához az OpenSSL könyvtár bármely változatát hozzákapcsolják\&. Ezt a könyvtárat külön licenc alatt terjesztik, melynek leírása megtalálható a +Copying\&.OpenSSL +fájlban, vagy a program saját copyright fájljához csatolva\&. Az OpenSSL kivételével Önnek minden használt kód esetében engedelmeskednie kell a GNU GPL előírásainak\&. Ha módosítja ezt a fájlt, kiterjesztheti ezt a kivételt a saját változatára, de erre semmi sem kötelezi\&. +.PP +Ha Ön ezeket a fájlokat egy írott licenc megállapodással, vagy olyan szerződéssel kapja, mely a fentiektől eltérő kitételeket tartalmaz, akkor ezek a megállapodások elsőbbséget élveznek a fentiekkel szemben\&. +.SS "Creative Commons License ehhez az Nmap Útmutatóhoz" +.PP +Nmap Referencia Útmutató (C) 2005 Insecure\&.Com LLC\&. Ez az útmutató a +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2 +2\&.5\-ös változata alatt jelenik meg\&. Ez lehetővé teszi az Ön számára, hogy szabadon terjessze és módosítsa saját igényei szerint mindaddig, amíg hivatkozik az eredeti forrásra\&. Alternatív megoldásként kezelheti úgy is ezt a dokumentumot, mintha az Nmap programmal azonos licenc alá tartozna (az előzőek szerint)\&. +.SS "Unofficial Translation Disclaimer / Nem hivatalos fordítói nyilatkozat" +.PP +This is an unnofficial translation of the +\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[12]\d\s+2 +into hungarian\&. It was not written by Insecure\&.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\&. However, we hope that this translation helps hungarian speakers understand the Nmap license better\&. +.PP +Ez az +\m[blue]\fBNmap licenc részletek\fR\m[]\&\s-2\u[12]\d\s+2 +nem hivatalos magyar fordítása\&. Ezt nem az Insecure\&.Com LLC készítette és nem tartalmazza az Nmap hivatalos terjesztési irányelveit\&. Ezeket kizárólag az eredeti angol nyelvű szöveg tartalmazza\&. Azonban reméljük, hogy ez a fordítás segít a magyarul beszélőknek jobban megérteni az Nmap licencét\&. +.SS "A forráskód elérhetősége és a közösségi hozzájárulás" +.PP +Azért biztosítjuk a hozzáférést a program forráskódjához, mert hiszünk abban, hogy a felhasználónak jogában áll megismerni a program működését annak elindítása előtt\&. Emellett a program esetleges biztonsági rései is vizsgálhatóak (régóta nem találtak egyet sem)\&. +.PP +A forráskód segítségével az Nmap átvihető új rendszerekre, kijavíthatók a hibák és új képességekkel is bővíthető a program\&. Bátorítunk mindenkit, hogy az általa készített változtatásokat küldje el a +<fyodor@nmap\&.org> +címre, hogy azok bekerülhessenek a fő terjesztésbe\&. Azzal, hogy ezeket a módosításokat elküldi Fyodornak vagy valamely Insecure\&.Org fejlesztői listának, Ön korlátozás nélküli, nem\-kizárólagos jogot biztosít Fyodornak és az Insecure\&.Com LLC\-nek a kód újrafelhasználásához, módosításához és új licenc alatti kibocsátásához\&. Bár az Nmap mindig elérhető lesz nyílt forrásúként, de ha nincs lehetőség a kód új licenc alatti kibocsátására, ez számos szabad program szempontjából katasztrofális\&. Alkalmanként harmadik fél számára is új licenc alatt engedélyezzük a kód használatát a fentiek szerint\&. Ha a saját kódját különleges licenc alatt szeretné engedélyezni, kérjük jelezze azt az elküldéssel egyidőben\&. +.SS "Nincs garancia" +.PP +A programot annak reményében terjesztjük, hogy hasznos lesz, de MINDENFÉLE GARANCIA NÉLKÜL; beleértve az ELADHATÓSÁGRA vagy EGY ADOTT CÉLRA VALÓ MEGFELELŐSÉGRE vonatkozó garanciát\&. További részletekért látogasson el a +\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[] +címre, vagy olvassa el az Nmap programmal terjesztett +COPYING +fájlt\&. +.PP +Szükséges megjegyezni, hogy alkalmanként az Nmap miatt öszeomolhatnak bizonyos gyengén megírt alkalmazások, TCP/IP vermek és operációs rendszerek is\&. Bár ezek nagyon ritkán fordulnak elő, fontos észben tartani\&. +\fISoha ne használja az Nmap programot kritikus feladatot ellátó rendszer letapogatására\fR +addig, míg fel nem készült egy esetleges leállás minden következményére\&. A készítők elismerik, hogy az Nmap okozhatja egyes rendszerek vagy hálózatok összeomlását és elutasítanak minden felelősséget az Nmap által esetleg okozott kárral vagy problémákkal kapcsolatban\&. +.SS "Helytelen használat" +.PP +Az esetleges összeomlások kockázata miatt és mert rossz szándékű behatolók előzetes felderítésre használják az Nmap programot, egyes rendszergazdák idegesen reagálnak a legkisebb letapogatásra is és hajlamosak panasszal élni\&. Így a legkisebb letapogatás előtt is célszerű a rendszer tulajdonosától engedélyt kérni\&. +.PP +Biztonsági okokból az Nmap programot soha nem szabad különleges jogosultságokkal (pl\&. suid root) telepíteni\&. +.SS "Harmadik féltől származó programok" +.PP +Ez a program az +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[13]\d\s+2 +által fejlesztett programrészeket tartalmaz\&. Az Nmap programmal együtt a +\m[blue]\fBLibpcap hordozható csomagelfogó könyvtár\fR\m[]\&\s-2\u[14]\d\s+2 +egy módosított változata is terjesztésre kerül\&. Az Nmap Windowos változata a Libpcap könyvtárból származó +\m[blue]\fBWinPcap könyvtárral\fR\m[]\&\s-2\u[15]\d\s+2 +kerül terjesztésre\&. A szabályos kifejezések támogatását a +\m[blue]\fBPCRE könyvtár\fR\m[]\&\s-2\u[16]\d\s+2 +biztosítja, mely egy nyílt forráskódú program és Philip Hazel munkája\&. Egyes nyers hálózati funkciók a +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[17]\d\s+2 +hálózati könyvtárat használják, mely Dug Song munkája\&. Az Nmap programmal ennek egy módosított változata érkezik\&. Igény esetén az Nmap felkészíthető az SSL változat érzékelésre az +\m[blue]\fBOpenSSL titkosító eszköztár\fR\m[]\&\s-2\u[18]\d\s+2 +segítségével\&. Az Nmap Parancsfájl motor a +\m[blue]\fBLua programozási nyelv\fR\m[]\&\s-2\u[19]\d\s+2 +egy beágyazott változatát használja\&. Az ebben a szakaszban szereplő valamennyi harmadik féltől származó program szabadon újra terjeszthető a BSD stílusú programlicencek alapján\&. +.SS "USA export korlátozások" +.PP +USA export korlátozás: az Insecure\&.Com LLC úgy véli, hogy az Nmap a US ECCN (export control classification number) 5D992 alá tartozik\&. Ennek a kategóriának az elnevezése: +„Az 5D002 alá nem tartozó információbiztonsági program\(rq\&. Ennek a besorolásnak egyetlen korlátozása a terrorizmus ellenesség, mely minden árura vonatkozik és megtiltja ezek exportálását olyan terrorista államoknak, mint Irán és Észak Korea\&. Így az Nmap exportálásához nem szükséges különleges engedély, hozzájárulás vagy kormányzati felhatalmazás\&. +.SH "MEGJEGYZÉSEK" +.IP " 1." 4 +eredeti angol változat +.RS 4 +\%https://nmap.org/book/man.html +.RE +.IP " 2." 4 +Creative Commons Attribution License +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 3." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 4." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 5." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 6." 4 +TCP RFC +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 7." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 8." 4 +Lua +.RS 4 +\%http://lua.org +.RE +.IP " 9." 4 +IP protokoll +.RS 4 +\%http://www.ietf.org/rfc/rfc0791.txt +.RE +.IP "10." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP "11." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP "12." 4 +Nmap license details +.RS 4 +\%https://nmap.org/book/man-legal.html +.RE +.IP "13." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "14." 4 +Libpcap hordozható csomagelfogó könyvtár +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "15." 4 +WinPcap könyvtárral +.RS 4 +\%http://www.winpcap.org +.RE +.IP "16." 4 +PCRE könyvtár +.RS 4 +\%http://www.pcre.org +.RE +.IP "17." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "18." 4 +OpenSSL titkosító eszköztár +.RS 4 +\%http://www.openssl.org +.RE +.IP "19." 4 +Lua programozási nyelv +.RS 4 +\%http://www.lua.org +.RE diff --git a/docs/man-xlate/nmap-id.1 b/docs/man-xlate/nmap-id.1 new file mode 100644 index 0000000..429c0a9 --- /dev/null +++ b/docs/man-xlate/nmap-id.1 @@ -0,0 +1,2312 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "Penulis" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 05/17/2023 +.\" Manual: Panduan Referensi Nmap +.\" Source: Nmap +.\" Language: Indonesian +.\" +.TH "NMAP" "1" "05/17/2023" "Nmap" "Panduan Referensi Nmap" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAMA" +nmap \- Tool eksplorasi jaringan dan keamanan / scanner port +.SH "SINOPSIS" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fIJenis\ Scan\fR...] [\fIOpsi\fR] {\fIspesifikasi\ target\fR} +.SH "DESKRIPSI" +.PP +Nmap (\(lqNetwork Mapper\(rq) merupakan sebuah tool open source untuk eksplorasi dan audit keamanan jaringan\&. Ia dirancang untuk memeriksa jaringan besar secara cepat, meskipun ia dapat pula bekerja terhadap host tunggal\&. Nmap menggunakan paket IP raw dalam cara yang canggih untuk menentukan host mana saja yang tersedia pada jaringan, layanan (nama aplikasi dan versi) apa yang diberikan, sistem operasi (dan versinya) apa yang digunakan, apa jenis firewall/filter paket yang digunakan, dan sejumlah karakteristik lainnya\&. Meskipun Nmap umumnya digunakan untuk audit keamanan, namun banyak administrator sistem dan jaringan menganggapnya berguna untuk tugas rutin seperti inventori jaringan, mengelola jadwal upgrade layanan, dan melakukan monitoring uptime host atau layanan\&. +.PP +Output Nmap adalah sebuah daftar target yang diperiksa, dengan informasi tambahannya tergantung pada opsi yang digunakan\&. Hal kunci di antara informasi itu adalah +\(lqtabel port menarik\(rq\&. +Tabel tersebut berisi daftar angka port dan protokol, nama layanan, dan status\&. Statusnya adalah +terbuka (open), +difilter (filtered), +tertutup (closed), atau +tidak difilter (unfiltered)\&. +Terbuka +berarti bahwa aplikasi pada mesin target sedang mendengarkan (listening) untuk koneksi/paket pada port tersebut\&. +Difilter +berarti bahwa sebuah firewall, filter, atau penghalang jaringan lainnya memblokir port sehingga Nmap tidak dapat mengetahui apakah ia +terbuka +atau +tertutup\&. +Tertutup +port tidak memiliki aplikasi yang sedang mendengarkan, meskipun mereka dapat terbuka kapanpun\&. Port digolongkan sebagai +tidak difilter +ketika mereka menanggapi probe Nmap, namun Nmap tidak dapat menentukan apakah mereka terbuka atau tertutup\&. Nmap melaporkan kombinasi status +open|filtered +dan +closed|filtered +ketika ia tidak dapat menentukan status manakah yang menggambarkan sebuah port\&. Tabel port mungkin juga menyertakan detil versi software ketika diminta melakukan pemeriksaan versi\&. Ketika sebuah pemeriksaan protokol IP diminta (\fB\-sO\fR), Nmap memberikan informasi pada protokol IP yang didukung alih\-alih port\-port yang mendengarkan\&. +.PP +Selain tabel port yang menarik, Nmap dapat pula memberikan informasi lebih lanjut tentang target, termasuk nama reverse DNS, prakiraan sistem operasi, jenis device, dan alamat MAC\&. +.PP +Pemeriksaan Nmap yang umum ditunjukkan dalam +Contoh 1\&. Argumen yang digunakan pada contoh ini hanyalah +\fB\-A\fR, untuk memeriksa sistem operasi dan versi, pemeriksaan skrip, dan traceroute; +\fB\-T4\fR +untuk eksekusi yang lebih cepat; dan dua buah nama host target\&. +.PP +\fBContoh 1. Sebuah gambaran pemeriksaan Nmap\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org + +Starting Nmap ( https://nmap\&.org ) +Interesting ports on scanme\&.nmap\&.org (64\&.13\&.134\&.52): +Not shown: 994 filtered ports +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 4\&.3 (protocol 2\&.0) +25/tcp closed smtp +53/tcp open domain ISC BIND 9\&.3\&.4 +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.2\&.2 ((Fedora)) +|_ HTML title: Go ahead and ScanMe! +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.6\&.X +OS details: Linux 2\&.6\&.20\-1 (Fedora Core 5) + +TRACEROUTE (using port 80/tcp) +HOP RTT ADDRESS +[Cut first seven hops for brevity] +8 10\&.59 so\-4\-2\-0\&.mpr3\&.pao1\&.us\&.above\&.net (64\&.125\&.28\&.142) +9 11\&.00 metro0\&.sv\&.svcolo\&.com (208\&.185\&.168\&.173) +10 9\&.93 scanme\&.nmap\&.org (64\&.13\&.134\&.52) + +Nmap done: 1 IP address (1 host up) scanned in 17\&.00 seconds +.fi +.if n \{\ +.RE +.\} +.PP +Versi terbaru Nmap dapat diperoleh dari +\m[blue]\fB\%https://nmap.org\fR\m[]\&. Versi terbaru man page tersedia di +\m[blue]\fB\%https://nmap.org/book/man.html\fR\m[]\&. +.SH "CATATAN TERJEMAHAN" +.PP +Edisi bahasa Indonesia Nmap Reference Guide ini diterjemahkan dari versi [12855] +\m[blue]\fBversi Inggris\fR\m[]\&\s-2\u[1]\d\s+2 +oleh Tedi Heriyanto\&. Meskipun kami berharap bahwa hal ini akan membuat Nmap lebih dapat diakses oleh para pengguna bahasa Indonesia di seluruh dunia, namun kami tidak dapat menjamin bahwa terjemahanan ini lengkap atau up\-to\-date seperti versi bahasa Inggris resminya\&. Pekerjaan ini dapat dimodifikasi dan didistribusikan kembali berdasarkan syarat\-syarat +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. +.SH "RINGKASAN OPSI" +.PP +Ringkasan opsi ini ditampilkan ketika Nmap dijalankan tanpa argumen, dan versi terakhir selalu tersedia di +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]\&. Ia membantu mengingat opsi\-opsi umum, namun ia bukanlah pengganti dokumentasi lengkap dalam halaman\-halaman berikut manual ini\&. Bahkan beberapa opsi tersembunyi tidak disertakan di sini\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +Nmap 4\&.85BETA7 ( 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 + \-sP: Ping Scan \- go no further than determining if host is online + \-PN: Treat all hosts as online \-\- skip host discovery + \-PS/PA/PU[portlist]: TCP SYN/ACK or UDP 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\*(Aqs 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 + \-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 + \-F: Fast mode \- Scan fewer ports than the default scan + \-r: Scan ports sequentially \- don\*(Aqt 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\-trace: Show all data sent and received + \-\-script\-updatedb: Update the script database\&. +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 milliseconds, unless you append \*(Aqs\*(Aq + (seconds), \*(Aqm\*(Aq (minutes), or \*(Aqh\*(Aq (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 + \-\-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 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 twice or more for greater effect) + \-d[level]: Set or increase debugging level (Up to 9 is meaningful) + \-\-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: Enables OS detection and 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 \-sP 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 +.fi +.if n \{\ +.RE +.\} +.SH "SPESIFIKASI TARGET" +.PP +Semua yang ada pada perintah baris Nmap yang bukan berupa opsi (atau argumen opsi) dianggap sebagai spesifikasi host target\&. Kasus paling sederhana adalah menspesifikasikan alamat IP target atau nama host untuk diperiksa\&. +.PP +Terkadang anda ingin memeriksa seluruh jaringan host\-host yang berdekatan\&. Untuk hal ini, Nmap mendukung pengalamatan CIDR\-style\&. Anda dapat menambahkan /\fInumbits\fR +ke sebuah alamat IPv4 atau nama host dan Nmap akan memeriksa setiap alamat IP yang alamat +\fInumbits\fR +pertamanya sama dengan alamat IP referensi atau nama host yang diberikan\&. Sebagai contoh, 192\&.168\&.10\&.0/24 akan memeriksa 256 host antara 192\&.168\&.10\&.0 (biner: +11000000 10101000 00001010 00000000) dan 192\&.168\&.10\&.255 (biner: +11000000 10101000 00001010 11111111), inklusif\&. 192\&.168\&.10\&.40/24 akan memeriksa target\-target yang sama\&. Misalkan host +scanme\&.nmap\&.org +memiliki alamat IP 64\&.13\&.134\&.52, spesifikasi scanme\&.nmap\&.org/16 akan memeriksa sebanyak 65\&.536 alamat IP antara 64\&.13\&.0\&.0 dan 64\&.13\&.255\&.255\&. Nilai terkecil yang diijinkan adalah /0, yang akan memeriksa seluruh Internet\&. Nilai terbesar adalah /32, yang hanya akan memeriksa host atau alamat IP yang disebutkan karena seluruh bit alamat tetap\&. +.PP +Notasi CIDR pendek namun tidak selalu fleksibel\&. Sebagai contoh, anda mungkin ingin memeriksa 192\&.168\&.0\&.0/16 namun ingin melewati IP yang diakhiri dengan \&.0 atau \&.255 karena mereka mungkin digunakan sebagai subnet jaringan dan alamat broadcast\&. Nmap mendukung hal ini melalui pengalamatan rentang oktet\&. Alih\-alih menspesifikasikan alamat IP normal, anda dapat menspesifikasikan daftar angka atau rentang untuk setiap oktet\&. Sebagai contoh, 192\&.168\&.0\-255\&.1\-254 akan melewati seluruh alamat dalam rentang yang berakhiran dalam \&.0 atau \&.255, dan 192\&.168\&.3\-5,7\&.1 akan memeriksa empat alamat 192\&.168\&.3\&.1, 192\&.168\&.4\&.1, 192\&.168\&.5\&.1, dan 192\&.168\&.7\&.1\&. Kedua sisi rentang dapat dihilangkan; nilai baku adalah 0 di sisi kiri dan 255 untuk sisi kanan\&. Penggunaan +\- +sama artinya dengan 0\-255, namun ingat untuk menggunakan 0\- dalam oktet pertama sehingga spesifikasi target tidak terlihat seperti opsi perintah baris\&. Rentang tidak hanya terbatas pada oktet akhir: 0\-255\&.0\-255\&.13\&.37 akan melakukan pemeriksaan Internet\-wide untuk seluruh alamat IP yang berakhiran 13\&.37\&. Sampling luas seperti ini dapat bermanfaat untuk riset dan survei Internet\&. +.PP +Alamat IPv6 hanya dapat dispesifikasikan dengan alamat IPv6 lengkap mereka atau nama host\&. CIDR dan rentang oktet tidak didukung untuk IPv6 karena mereka jarang bermanfaat\&. +.PP +Nmap menerima spesifikasi banyak host pada perintah baris, dan mereka tidak perlu dalam jenis yang sama\&. Perintah +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.\-\fR +melakukan apa yang anda harapkan\&. +.PP +Meskipun target biasanya dispesifikasikan pada perintah baris, opsi berikut juga tersedia untuk mengendalikan pemilihan target: +.PP +\fB\-iL \fR\fB\fIinputfilename\fR\fR (Input dari daftar) +.RS 4 +Membaca spesifikasi target dari +\fIinputfilename\fR\&. Memberikan banyak daftar host pada perintah baris seringkali tidak mengasyikkan\&. Sebagai contoh, DHCP server anda mungkin mengekspor daftar 10\&.000 lease saat ini yang ingin anda periksa\&. Atau mungkin anda ingin memeriksa seluruh alamat IP +\fIkecuali\fR +bagi mereka untuk mencari host yang menggunakan alamat IP statik tidak terotorisasi\&. Cukup buat daftar host yang ingin diperiksa dan berikan namafilenya ke Nmap sebagai sebuah argumen bagi opsi +\fB\-iL\fR\&. Entrinya dapat dalam beragam format yang diterima oleh Nmap di perintah baris (alamat IP, nama host, CIDR, IPv6, atau rentang oktet)\&. Setiap entri harus dipisahkan dengan satu atau lebih spasi, tab, atau baris baru\&. Anda dapat menspesifikasikan sebuah tanda hubung (hyphen) (\-) sebagai nama file jika anda ingin Nmap membaca host dari input standar alih\-alih dari sebuah file\&. +.RE +.PP +\fB\-iR \fR\fB\fInum hosts\fR\fR (Pilih target acak) +.RS 4 +Untuk survei dan riset lain skala\-Internet, anda mungkin ingin memilih target secara acak\&. Argumen +\fInum hosts\fR +memberitahu Nmap berapa banyak IP yang ingin dihasilkan\&. IP yang tidak diinginkan seperti dalam rentang alamat privat, multicast, atau tidak dialokasi secara otomatis akan dilewati\&. Argumen +0 +dapat dispesifikasikan untuk pemeriksaan yang tidak pernah berakhir\&. Perhatikan bahwa beberapa administrator jaringan tidak suka terhadap pemeriksaan yang tidak terotorisasi terhadap jaringan mereka dan mungkin mengeluh\&. Gunakan opsi ini dengan risiko anda! Jika anda benar\-benar merasa bosan di sore hari yang hujan, coba perintah +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR + + + +untuk mencari server web acak untuk browsing\&. +.RE +.PP +\fB\-\-exclude \fR\fB\fIhost1\fR\fR\fB[,\fIhost2\fR[,\&.\&.\&.]]\fR (Kecualikan host/jaringan) +.RS 4 +Spesifikasikan daftar target yang ingin dikecualikan dari pemeriksaan meskipun mereka merupakan bagian dari rentang jaringan yang anda spesifikasikan\&. Daftar yang anda berikan menggunakan sintaks Nmap normal, sehingga ia dapat mencakup nama host, blok CIDR, rentang oktet, dsb\&. Hal ini dapat bermanfaat ketika jaringan yang ingin anda periksa menyertakan server\-server kritis, sistem yang diketahui terganggu dengan port scan, atau subnet yang dikelola oleh pihak lain\&. +.RE +.PP +\fB\-\-excludefile \fR\fB\fIexclude_file\fR\fR (Daftar pengecualian dari file) +.RS 4 +Opsi ini memberikan fungsionalitas yang sama dengan opsi +\fB\-\-exclude\fR, namun target yang dikecualikan diberikan dalam sebuah +\fIexclude_file\fR +alih\-alih diberikan pada perintah baris\&. +.RE +.SH "PENCARIAN HOST (HOST DISCOVERY)" +.PP +Salah satu langkah pertama dalam misi network reconnaissance adalah mengurangi satu rentang IP (biasanya besar) ke sebuah daftar host yang aktif atau menarik\&. Memeriksa setiap port dari setiap alamat IP adalah lambat dan biasanya tidak perlu\&. Tentu saja apa yang membuat sebuah host menarik tergantung pada tujuan pemeriksaan\&. Administrator jaringan mungkin hanya tertarik pada host yang menjalankan layanan tertentu, sementara auditor keamanan ingin mengetahui semua device dalam satu alamat IP\&. Administrator mungkin nyaman cukup dengan menggunakan ping ICMP untuk menemukan host pada jaringan internalnya, sementara penetration tester eksternal mungkin menggunakan beragam probe dalam usahanya menghindari pembatasan firewall\&. +.PP +Oleh karena kebutuhan pencarian host sangat beragam, Nmap menawarkan sejumlah opsi untuk kustomisasi teknik yang dibutuhkan\&. Pencarian host seringkali disebut ping scan, namun ia lebih daripada sekedar melakukan pengiriman paket echo request ICMP yang diasosiasikan dengan tool terkenal +ping\&. Pengguna dapat melewati langkah ping dengan list scan (\fB\-sL\fR) atau dengan meniadakan ping (\fB\-PN\fR), atau melakukan kombinasi probe multi\-port TCP SYN/ACK, UDP, dan ICMP\&. Tujuan probe ini adalah memperoleh respon yang menunjukkan bahwa alamat IP sedang aktif (sedang digunakan oleh host atau device jaringan)\&. Pada banyak jaringan, hanya sejumlah kecil persentase alamat IP yang aktif pada satu waktu\&. Hal ini terutama umum terjadi pada alamat IP privat seperti 10\&.0\&.0\&.0/8\&. Jaringan tersebut memiliki 16 juta IP, namun saya telah melihatnya digunakan oleh perusahaan dengan mesin berjumlah kurang dari seribu\&. Pencarian host dapat menemukan mesin\-mesin dalam lautan alamat IP\&. +.PP +Jika tidak diberikan opsi pencarian host, Nmap mengirimkan sebuah paket TCP ACK yang ditujukan ke port 80 dan sebuah query ICMP echo request ke setiap mesin target\&. Pengecualian atas hal ini adalah scan ARP digunakan untuk sembarang target yang ada pada jaringan ethernet lokal\&. Untuk user shell Unix biasa, sebuah paket SYN dikirimkan alih\-alih paket ACK dengan menggunakan system call +\fBconnect\fR\&. + +Nilai\-nilai baku ini sama dengan opsi +\fB\-PA \-PE\fR\&. Pencarian host ini seringkali cukup ketika melakukan pemeriksaan jaringan lokal, namun disarankan untuk melakukan probe pencarian yang lebih komprehensif ketika melakukan audit keamanan\&. +.PP +Opsi\-opsi +\fB\-P*\fR +(yang memilih tipe ping) dapat digabungkan\&. Anda dapat meningkatkan peluang anda menyusup firewall yang ketat dengan mengirimkan banyak jenis probe dengan menggunakan berbagai macam port/flag TCP dan kode ICMP\&. Perhatikan pula bahwa pencarian ARP discovery (\fB\-PR\fR) +secara baku dilakukan terhadap target pada jaringan ethernet lokal bahkan bila anda menspesifikasikan opsi +\fB\-P*\fR +lain, karena ia selalu lebih cepat dan lebih efektif\&. +.PP +Secara baku, Nmap melakukan pencarian host dan lalu melakukan scan port terhadap setiap host yang ditentukan online\&. Hal ini benar bahkan bila anda menspesifikasikan tipe pencarian host yang tidak baku seperti probe UDP (\fB\-PU\fR)\&. Bacalah mengenai opsi +\fB\-sP\fR +untuk mempelajari bagaimana melakukan hanya pencarian host, atau gunakan +\fB\-PN\fR +untuk melewati pencarian host dan melakukan scan port untuk seluruh host\&. Opsi\-opsi berikut ini mengendalikan pencarian host: +.PP +\fB\-sL\fR (List Scan) +.RS 4 +Scan daftar (list scan) merupakan sebuah bentuk pencarian host yang hanya menampilkan setiap host pada jaringan yang dispesifikasikan, tanpa mengirimkan paket ke host target\&. Secara baku, Nmap tetap melakukan resolusi reverse\-DNS pada host untuk mengetahui namanya\&. Seringkali mengejutkan berapa banyak informasi berharga yang diberikan nama host\&. Sebagai contoh, +fw\&.chi +adalah nama firewall satu perusahaan di Chicago\&. + +Nmap juga melaporkan jumlah total alamat IP pada bagian akhir\&. Scan daftar merupakan sebuah pemeriksaan untuk memastikan anda memiliki alamat IP yang tepat untuk target anda\&. Jika host menemukan nama domain yang tidak anda kenali, maka anda perlu melakukan penyelidikan lanjutan untuk mencegah pemeriksaan jaringan perusahaan yang tidak tepat\&. +.sp +Karena gagasannya adalah hanya menampilkan daftar host target, opsi untuk fungsionalitas lebih tinggi misalnya pemeriksaan port, deteksi sistem operasi, atau scanning ping tidak dapat dikombinasikan dengan opsi ini\&. Jika anda ingin meniadakan pemeriksaan ping namun masih ingin melakukan fungsionalitas tingkat tinggi, bacalah opsi +\fB\-PN\fR\&. +.RE +.PP +\fB\-sP\fR (Ping Scan) +.RS 4 +Opsi ini memberitahu Nmap untuk hanya melakukan scan ping (host discovery), lalu menampilkan host yang menanggapi pemeriksaan\&. Skrip host traceroute dan NSE juga dijalankan jika diminta, namun tidak dilakukan pemeriksaan lebih lanjut (seperti scan port atau deteksi SO)\&. Opsi ini secara baku satu langkah lebih intrusif daripada list scan, dan seringkali dapat digunakan untuk tujuan yang sama\&. Ia memungkinkan reconnaissance ringan atas jaringan target tanpa menarik banyak perhatian\&. Mengetahui berapa banyak host yang up lebih bermanfaat bagi penyerang daripada daftar yang dihasilkan oleh list scan atas setiap IP dan nama host\&. +.sp +Administrator sistem juga sering menganggap opsi ini bermanfaat\&. Ia dapat digunakan untuk menghitung mesin\-mesin yang tersedia pada jaringan atau memonitor ketersediaan server\&. Hal ini seringkali disebut ping sweep, dan lebih handal daripada mem\-ping alamat broadcast karena banyak host tidak akan melakukan reply terhadap query broadcast\&. +.sp +Opsi +\fB\-sP\fR +secara baku mengirimkan sebuah request ICMP echo dan sebuah paket TCP ACK ke port 80\&. Ketika dilakukan oleh user biasa, hanya sebuah paket SYN yang dikirimkan (dengan menggunakan call +\fBconnect\fR) ke port 80 pada target\&. Ketika user dengan privilege berusaha memeriksa target pada jaringan ethernet lokal, request ARP digunakan kecuali dispesifikasikan +\fB\-\-send\-ip\fR\&. Opsi +\fB\-sP\fR +dapat dikombinasikan dengan tipe probe pencarian lainnya (opsi\-opsi +\fB\-P*\fR, kecuali +\fB\-PN\fR) untuk fleksibilitas yang lebih tinggi\&. Jika digunakan sembarang opsi tipe probe dan nomor port, probe baku (ACK dan echo request) akan di\-override\&. Ketika terdapat firewall ketat di antara host sumber yang menjalankan Nmap dan jaringan target, direkomendasikan untuk menggunakan teknik lanjutan di atas\&. Jika tidak host dapat luput ketika firewall men\-drop probe atau responnya\&. +.RE +.PP +\fB\-PN\fR (No ping) +.RS 4 +Opsi ini melompati tahap pencarian Nmap secara utuh\&. Secara normal, Nmap menggunakan tahap ini untuk menentukan mesin aktif untuk pemeriksaan lebih lanjut\&. Secara baku, Nmap hanya melakukan probe lanjutan seperti scan port, pemeriksaan versi, atau pemeriksaan SO terhadap host yang ditemukan up\&. Peniadaan pencarian host dengan opsi +\fB\-PN\fR +menyebabkan Nmap melakukan fungsi pemeriksaan yang diminta terhadap +\fIsetiap\fR +alamat IP target yang dispesifikasikan\&. Jadi bila pada perintah baris dispesifikasikan sebuah alamat target kelas B (/16), maka semua alamat IP yang berjumlah 65\&.536 akan diperiksa\&. Pencarian host yang tepat akan dilewati sebagaimana dengan list scan, namun alih\-alih berhenti dan menampilkan daftar target, Nmap lalu melakukan fungsi\-fungsi yang diminta sebagaimana bila setiap IP target aktif\&. Untuk mesin\-mesin pada jaringan ethernet lokal, pemeriksaan ARP akan tetap dilakukan (kecuali diberikan opsi +\fB\-\-send\-ip\fR) karena Nmap butuh alamat MAC untuk melakukan pemeriksaan lanjutan atas host target\&. Flag opsi ini dulunya adalah +\fBP0\fR +(menggunakan nol), namun kemudian diganti untuk menghindari kerancuan dengan flag protokol ping +\fBPO\fR +(menggunakan huruf O)\&. +.RE +.PP +\fB\-PS \fR\fB\fIport list\fR\fR (TCP SYN Ping) +.RS 4 +Opsi ini mengirimkan sebuah paket TCP kosong dengan flag SYN diset\&. Port tujuan baku adalah 80 (dapat dikonfigurasi pada waktu kompilasi dengan merubah +\fIDEFAULT_TCP_PROBE_PORT_SPEC\fR + +dalam +nmap\&.h)\&. + +Port\-port alternatif dapat dispesifikasikan sebagai parameter\&. Sintaksnya sama dengan opsi +\fB\-p\fR +kecuali specifier jenis port seperti +T: +tidak diperbolehkan\&. Contohnya adalah +\fB\-PS22\fR +dan +\fB\-PS22\-25,80,113,1050,35000\fR\&. Perhatikan bahwa tidak boleh ada spasi antara +\fB\-PS\fR +dan daftar port\&. Jika dispesifikasikan banyak probe mereka akan dikirim secara paralel\&. +.sp +Flag SYN memberitahu sistem remote bahwa anda berusaha membuat sebuah koneksi\&. Normalnya port tujuan tertutup, dan sebuah paket RST (reset) akan dikirimkan\&. Jika port terbuka, target akan melakukan langkah kedua dari TCP three\-way\-handshake +dengan mengirimkan paket SYN/ACK TCP\&. Mesin yang menjalankan Nmap lalu memutuskan koneksi tersebut dengan mengirimkan sebuah paket RST alih\-alih mengirimkan sebuah paket ACK yang akan melengkapi three\-way\-handshake dan membuat koneksi penuh\&. Paket RST dikirim oleh kernel mesin yang menjalankan Nmap sebagai tanggapan atas SYN/ACK yang tidak diharapkan, bukan oleh Nmap sendiri\&. +.sp +Nmap tidak peduli apakah port terbuka atau tertutup\&. Tanggapan RST atau SYN/ACK yang didiskusikan di atas memberitahu Nmap bahwa host tersedia dan menanggapi\&. +.sp +Pada mesin Unix, umumnya hanya user privilege +root +yang dapat mengirim dan menerima paket\-paket TCP raw\&. +Untuk user tanpa privilege, secara otomatis sebuah workaround akan dijalankan + +yaitu system call +\fBconnect\fR +akan digunakan untuk setiap port target\&. Hal ini mempunyai efek mengirimkan paket SYN ke host target, dalam usaha membuat koneksi\&. Jika +\fBconnect\fR +memberikan sukses cepat atau kegagalan ECONNREFUSED, stack TCP di bawahnya telah menerima sebuah SYN/ACK atau RST dan host ditandai sebagai tersedia\&. Jika usaha koneksi dibiarkan hingga tercapai timeout, host ditandai sebagai down\&. Workaround ini juga digunakan untuk koneksi IPv6, karena dukungan untuk pembuatan paket raw IPv6 belum tersedia di Nmap\&. +.RE +.PP +\fB\-PA \fR\fB\fIport list\fR\fR (TCP ACK Ping) +.RS 4 +Ping TCP ACK hampir serupa dengan ping SYN yang baru didiskusikan\&. Perbedaannya adalah, sebagaimana dapat anda duga, bahwa flag TCP ACK diset alih\-alih flag SYN\&. Paket ACK tersebut memberitahu data pada koneksi TCP yang telah tercipta, namun tidak ada koneksi\&. Sehingga host remote harus selalu menanggapi dengan sebuah paket RST, yang akan memberitahukan keberadaan mereka\&. +.sp +Opsi +\fB\-PA\fR +menggunakan port baku yang sama dengan probe SYN (80) dan dapat menerima daftar port tujuan dalam format yang sama\&. Jika user tanpa privilege mencobanya, atau dispesifikasikan target IPv6, workaround +\fBconnect\fR +yang didiskusikan sebelumnya akan digunakan\&. Workaround ini tidak sempurna karena +\fBconnect\fR +sebenarnya mengirimkan paket SYN dan bukan paket ACK\&. +.sp +Alasan menyertakan probe ping SYN dan ACK adalah memaksimalkan peluang melewati firewall\&. Banyak administrator mengkonfigurasi router dan firewall sederhana untuk memblokir paket SYN incoming kecuali yang ditujukan untuk layanan publik seperti server website atau mail perusahaan\&. Hal ini mencegah koneksi incoming lainnya ke organisasi, namun tetap membolehkan user melakukan koneksi outgoing ke Internet\&. Pendekatan non\-stateful ini membutuhkan sedikit sumber daya pada firewall/router dan didukung luas oleh filter hardware dan software\&. Software firewall Linux Netfilter/iptables +memberikan opsi +\fB\-\-syn\fR +untuk mengimplementasikan pendekatan stateless ini\&. Ketika rule firewall stateless seperti ini digunakan, probe ping SYN (\fB\-PS\fR) kemungkinan akan diblokir ketika dikirim ke port target yang tertutup\&. Dalam kasus ini, probe ACK akan bersinar karena ia dapat mengatasi rule tersebut\&. +.sp +Jenis firewall umum lainnya menggunakan rule stateful yang akan men\-drop paket tidak diharapkan\&. Fitur ini mulanya hanya ditemukan pada firewall high\-end, namun sekarang telah umum digunakan\&. Sistem Linux Netfilter/iptables mendukungnya melalui opsi +\fB\-\-state\fR, yang mengkategorikan paket berdasarkan status koneksi\&. Probe SYN kemungkinan berfungsi untuk sistem tersebut, karena paket ACK yang tidak diharapkan umumnya dikenali sebagai palsu dan di\-drop\&. Solusi untuk masalah ini adalah dengan mengirimkan probe SYN dan ACK secara bersamaan dengan memberikan opsi +\fB\-PS\fR +and +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU \fR\fB\fIport list\fR\fR (UDP Ping) +.RS 4 +Opsi pencarian host lainnya adalah ping UDP, yang mengirim paket UDP kosong (kecuali +\fB\-\-data\-length\fR +dispesifikasikan) ke port yang diberikan\&. Daftar port menggunakan format yang sama dengan yang telah didiskusikan pada opsi +\fB\-PS\fR +dan +\fB\-PA\fR\&. Jika tidak ada port yang dispesifikasikanya, bakunya adalah 31338\&. Port baku ini dapat dikonfigurasi pada waktu kompilasi dengan merubah +\fIDEFAULT_UDP_PROBE_PORT_SPEC\fR +dalam +nmap\&.h\&. +Port tinggi yang tidak umum, digunakan secara baku karena mengirim ke port terbuka seringkali tidak diharapkan untuk jenis pemeriksaan ini\&. +.sp +Ketika menemui port tertutup pada mesin target, probe UDP seharusnya menerima paket ICMP port unreachable\&. Hal ini memberitahu Nmap bahwa mesin up dan tersedia\&. Banyak jenis kesalahan ICMP lainnya, seperti host/network unreachables atau TTL exceeded menandakan host down atau tidak dapat dihubungi\&. Tidak ada respon juga termasuk di dalamnya\&. Jika ditemukan sebuah port terbuka, kebanyakan layanan akan mengabaikan paket kosong dan gagal mengirim tanggapan\&. Inilah alasan mengapa port probe bakunya adalah 31338, yang kemungkinan tidak digunakan\&. Beberapa layanan, seperti protokol Character Generator (chargen), akan menanggapi paket UDP kosong, dan karenanya memberitahu Nmap bahwa mesin tersedia\&. +.sp +Keuntungan utama jenis scan ini adalah ia melewati firewall dan filter yang hanya memeriksa TCP\&. Sebagai contoh, saya pernah memiliki Linksys BEFW11S4 wireless broadband router\&. Interface external device ini secara baku memfilter seluruh port TCP, namun probe UDP tetap memberikan pesan port unreachable dan karenanya memberitahu mengenai device ini\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (ICMP Ping Types) +.RS 4 +Selain tipe pencarian host TCP dan UDP yang tidak umum di atas, Nmap dapat mengirimkan paket dengan menggunakan program +ping\&. Nmap mengirim sebuah paket ICMP tipe 8 (echo request) ke alamat IP target, mengharapkan balasan paket tipe 0 (echo reply) dari host yang ada\&. +Sayangnya bagai pengeksplorasi jaringan, saat ini banyak host dan firewall yang memblokir paket\-paket ini, alih\-alih menanggapi sebagaimana yang ditentukan oleh +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[3]\d\s+2\&. Karena alasan ini, scan ICMP\-only relatif tidak handal terhadap target tak dikenal pada Internet\&. Namun untuk administrator sistem yang memonitor jaringan internal, mereka mungkin merupakan pendekatan yang praktis dan efisien\&. Gunakan opsi +\fB\-PE\fR +untuk menggunakan perilaku echo request ini\&. +.sp +Meski echo request merupakan standar query ping ICMP, Nmap tidak berhenti di sana\&. Standar ICMP (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[4]\d\s+2) juga menspesifikasikan paket timestamp request, information request, dan address mask request dengan kode 13, 15, dan 17\&. Walaupun tujuan query\-query ini adalah untuk memperoleh informasi seperti address masks dan waktu saat ini, mereka dapat dengan mudah digunakan sebagai pencarian host\&. Sistem yang memberi tanggapan adalah up dan tersedia\&. Nmap tidak mengimplementasikan paket information request, karena mereka tidak didukung luas\&. RFC 1122 berkeras bahwa +\(lqsebuah host TIDAK SEHARUSNYA mengimplementasikan pesan ini\(rq\&. Query timestamp dan address mask dapat dikirim dengan opsi +\fB\-PP\fR +and +\fB\-PM\fR\&. Reply timestamp (ICMP kode 14) atau reply address mask (kode 18) memberitahukan bahwa host tersedia\&. Kedua query ini bermanfaat ketika administrator secara khusus memblokir paket\-paket echo request namun lupa bahwa query ICMP lainnya dapat digunakan untuk tujuan yang sama\&. +.RE +.PP +\fB\-PO \fR\fB\fIprotocol list\fR\fR (IP Protocol Ping) +.RS 4 +Opsi pencarian host terbaru adalah ping protokol IP, yang mengirimkan paket IP dengan nomor port yang dispesifikasikan dalam header IP\-nya\&. Daftar protokol menggunakan format yang sama seperti daftar port dalam opsi pencarian host TCP dan UDP yang telah didiskusikan sebelumnya\&. Jika tidak didefinisikan protokol, secara bakunya adalah mengirimkan banyak paket IP untuk ICMP (protokol 1), IGMP (protokol 2), dan IP\-in\-IP (protokol 4)\&. Protokol baku dapat dikonfigurasi pada waktu kompilasi dengan merubah +\fIDEFAULT_PROTO_PROBE_PORT_SPEC\fR +dalam +nmap\&.h\&. Perhatikan bahwa untuk ICMP, IGMP, TCP (protokol 6), dan UDP (protokol 17), paket dikirim dengan header protokol yang sesuai sementara protokol lainnya dikirim tanpa data tambahan selain header IP (kecuali diberikan opsi +\fB\-\-data\-length\fR)\&. +.sp +Metode pencarian host ini melihat respon yang menggunakan protokol yang sama dengan probe, atau protokol ICMP unreachable messages yang memberitahu bahwa protokol dimaksud tidak didukung pada host tujuan\&. Kedua jenis respon di atas menandakan bahwa host target ada\&. +.RE +.PP +\fB\-PR\fR (ARP Ping) +.RS 4 +Salah satu skenario penggunaan Nmap yang umum adalah memeriksa LAN ethernet\&. Pada kebanyakan LAN, terutama yang menggunakan rentang alamat privat sebagaimana dijelaskan oleh +\m[blue]\fBRFC 1918\fR\m[]\&\s-2\u[5]\d\s+2, mayoritas alamat IP tidak digunakan\&. Ketika Nmap berusaha mengirim paket IP raw seperti sebuah ICMP echo request, sistem operasi harus menentukan alamat hardware tujuan (ARP) yang sesuai dengan IP target sehingga ia dapat mengirimkan frame ethernet dengan tepat\&. Hal ini seringkali lambat dan bermasalah, karena sistem operasi tidak ditulis dengan maksud mereka akan melakukan jutaan request ARP atas host\-host yang tidak ada dalam waktu yang singkat\&. +.sp +Scan ARP menempatkan Nmap dan algoritma teroptimisasinya untuk menangani request ARP\&. Dan bila ia memperoleh respon, Nmap tidak perlu kuatir mengenai paket ping berbasis IP karena ia telah mengetahui bahwa host up\&. Hal ini membuat scan ARP jauh lebih cepat dan handal dibanding scan berbasis IP\&. Sehingga ia dilakukan secara baku ketika memeriksa host ethernet yang dideteksi Nmap berada pada jaringan ethernet lokal\&. Bahkan bila digunakan jenis ping (seperti +\fB\-PE\fR +atau +\fB\-PS\fR), Nmap menggunakan ARP untuk sembarang target yang berada dalam LAN yang sama\&. Jika anda tidak menginginkan scan ARP, berikan opsi +\fB\-\-send\-ip\fR\&. +.RE +.PP +\fB\-\-traceroute\fR (Trace path to host) +.RS 4 +Traceroute dilakukan setelah scan menggunakan informasi dari hasil sscan untuk menentukan port dan protocol yang berpeluang besar mencapai target\&. Ia dapat digunakan untuk seluruh jenis scan kecuali scan connect (\fB\-sT\fR) dan scan idle (\fB\-sI\fR)\&. Seluruh pelacakan menggunakan model pewaktuan dinamis Nmap dan dilakukan secara paralel\&. +.sp +Traceroute bekerja dengan mengirimkan paket dengan TTL (time\-to\-live) rendah agar tidak memperoleh pesan ICMP Time Exceeded dari hop langsung antara scanner dan host target\&. Implementasi standar traceroute dimulai dengan TTL 1 dan menaikkan TTL hingga host tujuan tercapai\&. Traceroute Nmap dimulai dengan TTL tinggi dan kemudian menurunkan TTL hingga nol\&. Dengan melakukan secara terbalik Nmap menggunakan algoritma caching cerdas untuk mempercepat pelacakan atas banyak host\&. Secara rata\-rata Nmap mengirimkan paket kurang dari 5–10 per host, tergantung pada kondisi jaringan\&. Jika dilakukan scan atas satu subnet tunggal (misal 192\&.168\&.0\&.0/24) Nmap mungkin hanya perlu mengirim satu paket untuk kebanyakan host tersebut\&. +.RE +.PP +\fB\-n\fR (No DNS resolution) +.RS 4 +Memberitahu Nmap untuk +\fItidak\fR +melakukan resolusi reverse DNS + +pada alamat IP aktif yang ditemukannya\&. Karena DNS dapat lambat meskipun dengan menggunakan resolver paralel built\-in Nmap, opsi ini dapat mempercepat waktu pemeriksaan\&. +.RE +.PP +\fB\-R\fR (DNS resolution for all targets) +.RS 4 +Memberitahu Nmap untuk +\fIselalu\fR +melakukan resolusi reverse DNS pada alamat IP target\&. Normalnya reverse DNS hanya dilakukan terhadap host yang online\&. +.RE +.PP +\fB\-\-system\-dns\fR (Use system DNS resolver) +.RS 4 +Secara baku, Nmap meresolve alamat IP dengan mengirimkan query secara langsung ke server DNS yang dikonfigurasi pada host anda dan mendengarkan responnya\&. Banyak request (seringkali selusin) dilakukan secara paralel untuk meningkatkan kinerja\&. Gunakan opsi ini untuk menggunakan resolver sistem anda (satu IP pada satu waktu melalui call +\fBgetnameinfo\fR)\&. Hal ini lebih lambat dan jarang bermanfaat kecuali anda menemukan bug dalam resolver paralel Nmap (mohon beritahu kami bila demikian)\&. Resolver sistem selalu digunakan untuk scan IPv6\&. +.RE +.PP +\fB\-\-dns\-servers \fR\fB\fIserver1\fR\fR\fB[,\fIserver2\fR[,\&.\&.\&.]]\fR\fB \fR (Servers to use for reverse DNS queries) +.RS 4 +Secara baku, Nmap menentukan server DNS anda (untuk resolusi rDNS) dari file resolv\&.conf anda (Unix) atau Registry (Win32)\&. Selain itu, anda dapat menggunakan opsi ini untuk menspesifikasikan server alternatif\&. Opsi ini tidak diindahkan bila anda menggunakan +\fB\-\-system\-dns\fR +atau melakukan scan IPv6\&. Dengan menggunakan banyak server DNS seringkali lebih cepat, terutama bila anda memilih server otoritatif untuk ruang IP target anda\&. Opsi ini juga dapat meningkatkan kemampuan sembunyi (stealth), karena request anda dapat diberikan ke sembarang server DNS rekursif di Internet\&. +.sp +Opsi ini juga bermanfaat ketika memeriksa jaringan privat\&. Terkadang hanya beberapa name server yang memberikan informasi rDNS yang tepat, dan mungkin anda tidak tahu di mana mereka\&. Anda dapat memeriksa jaringan untuk port 53 (mungkin dengan deteksi versi), lalu coba scan list Nmap (\fB\-sL\fR) dengan menspesifikasikan setiap name server pada satu waktu dengan +\fB\-\-dns\-servers\fR +hingga anda menemukan yang berfungsi\&. +.RE +.SH "DASAR SCANNING PORT" +.PP +Meskipun selama ini Nmap telah mengalami perkembangan fungsionalitas, namun ia bermula sebagai sebuah scanner port yang efisien, dan hal itu tetap menjadi fungsi utamanya\&. Perintah sederhana +\fBnmap \fR\fB\fItarget\fR\fR +akan memeriksa lebih dari 1660 port TCP pada host +\fItarget\fR\&. Ketika banyak scanner port secara tradisional membagi seluruh port ke dalam status terbuka (open) atau tertutup (closed), Nmap lebih granular\&. Ia membagi port menjadi enam status : +open, +closed, +filtered, +unfiltered, +open|filtered, or +closed|filtered\&. +.PP +Status ini bukan merupakan properti intrinsik dari port itu sendiri, namun menggambarkan bagaimana Nmap memandang mereka\&. Sebagai contoh, scan Nmap dari jaringan yang sama dengan target mungkin menampilkan port +135/tcp +sebagai terbuka, sementara scan yang sama pada waktu dan opsi yang sama dari Internet mungkin menunjukkan bahwa port tersebut +filtered\&. +.PP +\fBEnam status port yang dikenali Nmap\fR +.PP +open +.RS 4 +Sebuah aplikasi secara aktif menerima koneksi paket TCP atau UDP pada port ini\&. Menemukan port terbuka ini seringkali merupakan tujuan utama scanning port\&. Orang dengan pikiran keamanan (security\-minded) tahu bahwa setiap port terbuka merupakan celah untuk serangan\&. Penyerang dan pen\-testers ingin mengeksploitasi port terbuka, namun administrator berusaha menutup atau melindungi mereka dengan firewall tanpa mengganggu user yang berhak\&. Port terbuka juga menarik bagi scan bukan keamanan karena mereka memberitahu layanan yang dapat digunakan pada jaringan\&. +.RE +.PP +closed +.RS 4 +Port tertutup dapat diakses (ia menerima dan menanggapi paket probe Nmap), namun tidak ada aplikasi yang mendengarkan padanya\&. Mereka bermanfaat dengan menunjukkan bahwa host up pada alamat IP tersebut (host discovery, atau ping scanning), dan sebagai bagian deteksi SO\&. Oleh karena port tertutup dapat dijangkau, bermanfaat untuk mencoba scan di waktu yang lain jikalau port tersebut terbuka\&. Administrator mungkin perlu mempertimbangkan untuk memblok port tersebut dengan firewall\&. Lalu mereka akan muncul dalam status filtered, yang akan didiskusikan\&. +.RE +.PP +filtered +.RS 4 +Nmap tidak dapat menentukan apakah port terbuka karena packet filtering mencegah probenya mencapai port\&. Filter ini dapat dilakukan oleh device firewall, aturan pada router, atau software firewall pada host\&. Port ini membuat penyerang frustrasi karena mereka memberikan sedikit informasi\&. Terkadang mereka menanggapi dengan pesan kesalahan ICMP misalnya tipe 3 kode 13 (tujuan tidak dapat dicapai: komunikasi dilarang secara administratif), namun yang lebih umum adalah filter yang hanya men\-drop probe tanpa memberi tanggapan\&. Hal ini memaksa Nmap berusaha beberapa kali untuk memastikan probe tidak di\-drop akibat jaringan yang padat\&. Hal ini sangat memperlambat proses scan\&. +.RE +.PP +unfiltered +.RS 4 +Status unfiltered berarti bahwa port dapat diakses, namun Nmap tidak dapat menentukan apakah ia open atau closed\&. Hanya scan ACK, yang digunakan untuk mengetahui aturan firewall, menggolongkan port ke dalam status ini\&. Pemeriksaan port unfiltered dengan tipe pemeriksaan lain seperti Window scan, SYN scan, atau FIN scan, dapat membantu mengetahui apakah port terbuka\&. +.RE +.PP +open|filtered +.RS 4 +Nmap menganggap port dalam status ini bila ia tidak dapat menentukan apakah port open atau filtered\&. Hal ini terjadi untuk jenis pemeriksaan ketika port terbuka tidak memberi respon\&. Tidak adanya tanggapan dapat pula berarti bahwa packet filter men\-drop probe atau respon yang diberikan\&. Sehingga Nmap tidak dapat mengetahui dengan tepat apakah port terbuka atau difilter\&. Scan UDP, IP protocol, FIN, NULL, dan Xmas mengklasifikasikan port dengan cara ini\&. +.RE +.PP +closed|filtered +.RS 4 +Status ini digunakan ketika Nmap tidak dapat menentukan apakah port tertutup atau di\-filter\&. Ia hanya digunakan pada scan idle ID IP\&. +.RE +.SH "TEKNIK SCANNING PORT" +.PP +Sebagai seorang pemula yang melakukan perbaikan otomotif, saya dapat berjuang berjam\-jam untuk menyesuaikan alat sederhana saya (palu, duct tape, dsb\&.) untuk tugas yang ada\&. Ketika saya gagal dan menyerahkannya pada mekanik sebenarnya, ia mencari dalam kotak perangkatnya hingga menemukan alat yang tepat yang membuat pekerjaan tersebut menjadi mudah\&. Seni scanning port juga serupa\&. Para ahli memahami beragam teknik pemindaian dan memilih satu (atau kombinasi) yang sesuai untuk tugas yang ada\&. User tidak berpengalaman dan script kiddies, +di lain pihak, berusaha menyelesaikan semua masalah dengan scan SYN baku\&. Oleh karena Nmap gratis, satu\-satunya penghalang menguasai scanning port adalah pengetahuan\&. Hal itu tentu saja mengalahkan dunia otomotif, setelah membutuhkan keahlian tinggi untuk menentukan bahwa anda butuh kompresor pegas strut, lalu anda mesti harus membayar ribuan dolar untuknya\&. +.PP +Kebanyakan jenis scan hanya tersedia untuk user privilege\&. +Hal ini karena mereka mengirim dan menerima paket raw, +yang membutuhkan akses root pada sistem Unix\&. Pada sistem Windows, menggunakan akun administrator disarankan, meski terkadang Nmap dapat bekerja untuk unprivileged users ketika WinPcap telah dimuatkan ke SO\&. Kebutuhan akan privilege root merupakan sebuah batasan serius ketika Nmap dirilis pada tahun 1997, karena banyak user hanya mempunyai akses ke shared shell\&. Saat ini, hal tersebut berbeda\&. Komputer telah lebih murah, lebih banyak orang memiliki akses langsung Internet always\-on, dan banyak sistem Unix desktop (termasuk Linux dan Mac OS X)\&. Versi Nmap Windows kini tersedia, membuatnya berjalan di lebih banyak desktop\&. Karena alasan\-alasan ini, user memiliki sedikit alasan untuk menjalankan Nmap dari akun shared shell yang terbatas\&. Ini merupakan keberuntungan, karena opsi privilege membuat Nmap lebih powerful dan fleksibel\&. +.PP +Meski Nmap berusaha memberikan hasil yang akurat, namun perlu diperhatikan bahwa seluruh pandangannya didasarkan pada paket yang dikembalikan oleh mesin target (atau firewall di depan mereka)\&. Host tersebut mungkin tidak dapat dipercaya dan responnya bertujuan membingungkan atau mengacaukan Nmap\&. Yang lebih umum adalah host yang tidak sesuai dengan RFC yang tidak menanggapi sebagaimana yang seharusnya atas probe Nmap\&. Scan FIN, NULL, dan Xmas terutama rentan terhadap masalah ini\&. Isu tersebut adalah spesifik untuk jenis scan tertentu dan didiskusikan dalam entri jenis scan individual\&. +.PP +Bagian ini mendokumentasikan selusin atau lebih teknik scan port yang didukung oleh Nmap\&. Hanya satu metode yang boleh digunakan di satu waktu, kecuali scan UDP (\fB\-sU\fR) dapat digabungkan dengan sembarang jenis scan TCP\&. Sebagai pengingat, opsi jenis scan port adalah dalam bentuk +\fB\-s\fR\fB\fIC\fR\fR, dengan +\fIC\fR +merupakan karakter utama dalam nama scan, biasanya yang pertama\&. Satu pengecualian untuk ini adalah scan bounce FTP yang telah kuno (\fB\-b\fR)\&. Secara baku, Nmap melakukan SYN Scan, meski ia menggantinya dengan scan connect bila user tidak memiliki privilege untuk mengirim paket raw (membutuhkan akses root pada Unix) atau bila dispesifikasikan target IPv6\&. Dari semua scan yang ada di bawah ini, unprivileged user hanya dapat menjalankan scan connect dan FTP bounce\&. +.PP +\fB\-sS\fR (TCP SYN scan) +.RS 4 +SYN scan merupakan opsi scan baku dan terpopuler dengan alasan yang baik\&. Ia dapat dilakukan dengan cepat, memeriksa ribuan port per detik pada jaringan yang cepat tidak dihalangi oleh firewall yang membatasi\&. Scan SYN relatif tidak mengganggu dan tersembunyi, karena ia tidak pernah melengkapi koneksi TCP\&. Ia juga bekerja terhadap stack TCP yang sesuai alih\-alih tergantung pada platform khusus sebagaimana scan FIN/NULL/Xmas, Maimon dan idle\&. Ia juga memungkinkan pembedaan yang tegas dan handal antara status +open, +closed, dan +filtered\&. +.sp +Teknik ini seringkali diacu sebagai pemeriksaan setengah terbuka (half\-open scanning), karena anda tidak membuka seluruh koneksi TCP\&. Anda mengirim sebuah paket SYN, seperti anda ingin melakukan koneksi sesungguhnya dan kemudian menunggu tanggapan\&. SYN/ACK menandakan port sedang mendengarkan (open), RST (reset) menandakan tidak sedang mendengarkan\&. Jika tidak ada tanggapan setelah beberapa kali pengiriman ulang, port ditandai sebagai tersaring (filtered)\&. Port juga ditandai sebagai tersaring bila diterima kesalahan ICMP unreachable (tipe 3, kode 1, 2, 3, 9, 10, atau 13)\&. +.RE +.PP +\fB\-sT\fR (TCP connect scan) +.RS 4 +Scan TCP connect merupakan jenis scan baku TCP ketika scan SYN tidak dapat digunakan\&. Hal ini terjadi ketika user tidak memiliki privilege untuk paket raw atau ketika melakukan pemeriksaan jaringan IPv6\&. Alih\-alih menulis paket raw sebagaimana dilakukan jenis scan lainnya, Nmap meminta SO membuat koneksi dengan mesin target dan port dengan memberikan system call +\fBconnect\fR\&. Ini merupakan system call yang digunakan oleh web browsers, klien P2P, dan kebanyakan aplikasi jaringan lainnya untuk membuat koneksi\&. Ia merupakan bagian dari interface pemrograman yang dikenal sebagai Berkeley Sockets API\&. Nmap juga menggunakan API ini untuk memperoleh informasi status setiap usaha koneksi\&. +.sp +Ketika tersedia SYN scan, ia merupakan pilihan yang lebih baik\&. Nmap kurang memiliki kendali atas call +\fBconnect\fR +daripada paket raw, membuatnya kurang efisien\&. System call membuat koneksi lengkap untuk membuka port target daripada membuat reset setengah\-terbuka (half\-open reset) yang dilakukan SYN scan\&. Hal ini tidak saja lebih lambat dan membutuhkan lebih banyak paket untuk memperoleh informasi yang sama, namun juga mesin target kemungkinan mencatat koneksi\&. IDS yang baik akan mendeteksi hal ini, namun kebanyakan mesin tidak memiliki sistem alarm tersebut\&. Kebanyakan layanan pada sistem Unix umum akan membuat catatan ke syslog, dan seringkali pesan kesalahan yang rumit, ketika Nmap membuka dan menutup koneksi tanpa mengirim data\&. Layanan yang benar\-benar buruk akan crash ketika hal ini terjadi, meskipun tidak umum\&. Administrator yang melihat serangkaian usaha koneksi dari sistem tunggal di lognya seharusnya tahu bahwa ia telah diperiksa dengan metode connect\&. +.RE +.PP +\fB\-sU\fR (UDP scan) +.RS 4 +Walau kebanyakan layanan populer di Internet menggunakan protokol TCP, layanan +\m[blue]\fBUDP\fR\m[]\&\s-2\u[6]\d\s+2 +luas dipergunakan\&. DNS, SNMP, dan DHCP (port 53, 161/162, dan 67/68) adalah tiga yang paling umum\&. Karena pemeriksaan UDP umumnya lebih lambat dan lebih sulit dibanding TCP, beberapa audit keamanan mengabaikan port ini\&. Ini merupakan kesalahan, karena eksploitasi layanan UDP cukup umum dan penyerang tentu saja tidak mengabaikan seluruh protokol\&. Untungnya, Nmap dapat membantu inventori port UDP\&. +.sp +Scan UDP diaktifkan dengan opsi +\fB\-sU\fR\&. Ia dapat digabungkan dengan jenis scan TCP seperti SYN scan (\fB\-sS\fR) untuk memeriksa kedua buah protokol sekaligus\&. +.sp +Scan UDP bekerja dengan mengirimkan header UDP kosong (tanpa data) ke setiap port yang diinginkan\&. Jika diperoleh kesalahan ICMP port unreachable (tipe 3, kode 3), port itu +closed\&. Kesalahan ICMP lainnya (tipe 3, kode 1, 2, 9, 10, atau 13) menandakan port sebagai +filtered\&. Seringkali, sebuah layanan akan menanggapi dengan paket UDP, membuktikan bahwa ia +open\&. Jika tidak ada tanggapan setelah transmisi ulang, port dianggap +open|filtered\&. Hal ini berarti bahwa port dapat berada dalam keadaan open, atau mungkin packet filter memblokir komunikasi\&. Deteksi versi (\fB\-sV\fR) dapat digunakan untuk membantu membedakan antara port yang terbuka dengan yang disaring\&. +.sp +Tantangan terbesar scanning UDP adalah melakukannya dengan cepat\&. Port terbuka dan tersaring jarang mengirimkan tanggapan, membuat Nmap time out dan kemudian melakukan transmisi ulang bilamana probe atau respon hilang\&. Port tertutup seringkali merupakan masalah yang lebih besar\&. Mereka umumnya mengirimkan ulang kesalahan ICMP port unreachable\&. Namun tidak seperti paket RST yang dikirim oleh port TCP tertutup sebagai respon atas scan SYN atau connect, banyak host secara baku membatasi pesan + +ICMP port unreachable\&. Linux dan Solaris terutama sangat ketat mengenai hal ini\&. Sebagai contoh, kernel Linux 2\&.4\&.20 membatasi pesan destination unreachable ke satu per detik (dalam +net/ipv4/icmp\&.c)\&. +.sp +Nmap mendeteksi pembatasan ini dan memperlambat kerjanya untuk menghindari pemenuhan jaringan dengan paket\-paket tidak perlu yang akan di\-drop oleh mesin target\&. Sayangnya, pembatasan ala Linux dengan satu paket per detik membuat pemeriksaan 65\&.536 membutuhkan waktu lebih 18 jam\&. Ide untuk mempercepat scan UDP termasuk pemeriksaan lebih banyak host secara paralel, melakukan pemeriksaan atas port\-port populer dulu, pemeriksaan di belakang firewall, dan menggunakan +\fB\-\-host\-timeout\fR +untuk melewati host lambat\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP NULL, FIN, dan Xmas scan) +.RS 4 +Ketiga jenis scan ini (bahkan kemungkinan lebih dengan adanya opsi +\fB\-\-scanflags\fR +yang dijelaskan pada bagian berikutnya) mengeksploitasi kelemahan dalam +\m[blue]\fBRFC TCP\fR\m[]\&\s-2\u[7]\d\s+2 +untuk membedakan antara port +open +dan +closed\&. Halaman 65 RFC 793 mengatakan bawha +\(lqif the [destination] port state is CLOSED \&.\&.\&.\&. an incoming segment not containing a RST causes a RST to be sent in response\&.\(rq +Lalu halaman berikutnya mendiskusikan paket yang dikirim ke port terbuka tanpa bit SYN, RST, atau ACK diset, menyatakan bahwa : +\(lqyou are unlikely to get here, but if you do, drop the segment, and return\&.\(rq +.sp +Ketika memeriksa sistem yang sesuai dengan teks RFC ini, sembarang paket yang tidak berisikan bit SYN, RST, atau ACK akan berakibat pengembalian RST bila port tertutup dan tidak ada respon bila port terbuka\&. Selama ketiga bit ini tidak disertakan, sembarang kombinasi ketiga bit lainnya (FIN, PSH, dan URG) adalah OK\&. Nmap mengeksploitasi celah ini dengan ketiga jenis scan berikut : +.PP +Null scan (\fB\-sN\fR) +.RS 4 +Tidak mengirimkan bit(header flag TCP adalah 0) +.RE +.PP +FIN scan (\fB\-sF\fR) +.RS 4 +Hanya menset bit FIN TCP\&. +.RE +.PP +Xmas scan (\fB\-sX\fR) +.RS 4 +Menset flag FIN, PSH, dan URG, menerangi paket seperti sebuah pohon Natal\&. +.RE +.sp +Ketiga jenis scan ini serupa perilakunya kecuali untuk flag TCP yang diset dalam paket probe\&. Jika diterima paket RST, port dianggap +closed, tidak ada respon berarti ia +open|filtered\&. Port ditandai +filtered +bila diterima kesalahan ICMP unreachable (tipe 3, kode 1, 2, 3, 9, 10, atau 13)\&. +.sp +Keuntungan utama jenis scan ini adalah bahwa mereka dapat menyusup melalui non\-stateful firewall dan router packet filtering tertentu\&. Keunggulan lain adalah bahwa ketiga scan ini lebih tersembunyi bahkan bila dibandingkan dengan SYN scan\&. Jangan mengandalkan hal ini karena produk IDS modern dapat dikonfigurasi untuk mendeteksi mereka\&. Kelemahan utama adalah tidak semua sistem mematuhi RFC 793 secara tepat\&. Sejumlah sistem mengirim respon RST atas probe tanpa perduli apakah port terbuka atau tertutup\&. Hal ini membuat seluruh port dianggap sebagai +closed\&. Sistem operasi utama yang melakukan hal ini adalah Microsoft Windows, banyak device Cisco devices, BSDI, dan IBM OS/400\&. Scan ini tidak bekerja terhadap kebanyakan sistem berbasis Unix\&. Kekurangan lainnya adalah scan ini tidak dapat membedakan antara port +open +dengan port tertentu yang +filtered, memberikan anda tanggapan +open|filtered\&. +.RE +.PP +\fB\-sA\fR (TCP ACK scan) +.RS 4 +Scan ini berbeda dengan yang telah didiskusikan sejauh ini yaitu ia tidak pernah menentukan port +open +(or even +open|filtered)\&. Ia digunakan untuk memetakan aturan firewall, menentukan apakah mereka stateful atau tidak dan port mana saja yang disaring\&. +.sp +Paket probe scan ACK hanya memiliki flag ACK di\-set (kecuali anda menggunakan +\fB\-\-scanflags\fR)\&. Ketika memeriksa sistem yang tidak disaring, port +open +dan +closed +keduanya akan mengembalikan paket RST\&. Nmap kemudian menandakan mereka sebagai +unfiltered, yang berarti mereka dapat dicapai oleh paket ACK, namun belum dapat ditentukan apakah mereka +open +atau +closed\&. Port yang tidak menanggapi, atau mengirim kembali pesan kesalahan ICMP (tipe 3, kode 1, 2, 3, 9, 10, atau 13), dianggap sebagai +filtered\&. +.RE +.PP +\fB\-sW\fR (TCP Window scan) +.RS 4 +Window scan serupa dengan ACK scan kecuali bahwa ia mengeksploitasi detil implementasi pada sistem tertentu yang membedakan port terbuka dengan port tertutup, alih\-alih selalu menampilkan +unfiltered +ketika dikembalikan RST\&. Ia melakukan hal ini dengan memeriksa field TCP Window paket RST yang dikembalikan\&. Pada beberapa sistem, port terbuka menggunakan ukuran jendela positif (bahkan untuk paket RST) sementara port tertutup memiliki jendela nol\&. Sehingga alih\-alih selalu menampilkan port sebagai +unfiltered +ketika menerima kembali RST, Window scan menampilkan port sebagai +open +atau +closed +jika nilai TCP Window dalam reset tersebut positif atau nol\&. +.sp +Scan ini mengandalkan detil implementasi sedikit sistem yang ada di Internet, sehingga anda tidak dapat selalu mempercayainya\&. Sistem yang tidak mendukungnya biasanya akan mengembalikan semua port sebagai +closed\&. Tentu saja, adalah mungkin mesin benar\-benar tidak memiliki port terbuka\&. Jika kebanyakan port yang diperiksa adalah +closed +namun beberapa angka port umum (seperti 22, 25, 53) adalah +filtered, informasi ini kemungkinan benar\&. Seringkali, sistem akan memberitahukan perilaku sebaliknya\&. Jika scan anda menunjukkan bahwa 1000 port terbuka dan tiga port tertutup atau disaring, maka ketiga port tersebut mungkin saja adalah port yang terbuka\&. +.RE +.PP +\fB\-sM\fR (TCP Maimon scan) +.RS 4 +Scan Maimon dinamakan dengan nama penemunya, Uriel Maimon\&. +Ia menjelaskan teknik ini dalam +Phrack +Magazine issue #49 (November 1996)\&. +Nmap, yang menyertakan teknik ini, dirilis dua isu kemudian\&. Teknik ini sama persis dengan scan NULL, FIN, dan Xmas, kecuali probenya adalah FIN/ACK\&. Menurut +\m[blue]\fBRFC 793\fR\m[]\&\s-2\u[7]\d\s+2 +(TCP), paket RST seharusnya dihasilkan sebagai tanggapan atas probe tersebut entah port terbuka atau tertutup\&. Namun demikian, Uriel memperhatikan bahwa banyak sistem berbasis BSD men\-drop paket jika port terbuka\&. +.RE +.PP +\fB\-\-scanflags\fR (Custom TCP scan) +.RS 4 +User Nmap mahir tidak perlu membatasi dirinya pada jenis scan yang tersedia secara baku\&. Opsi +\fB\-\-scanflags\fR +memungkinkan anda merancang scan anda sendiri dengan menspesifikasikan sembarang flag TCP\&.\&. Biarkan cairan kreatif anda mengalir, sementara mengakali intrusion detection system +yang vendornya sekedar membaca man page Nmap menambahkan aturan khusus! +.sp +Argumen +\fB\-\-scanflags\fR +dapat berupa nilai flag numerik seperti 9 (PSH dan FIN), namun menggunakan nama simbolik lebih mudah\&. Gabungkan saja sembarang kombinasi +URG, +ACK, +PSH, +RST, +SYN, dan +FIN\&. Sebagai contoh, +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +menset semuanya, meskipun ia tidak terlalu bermanfaat untuk pemeriksaan\&. Urutan spesifikasi tidaklah relevan\&. +.sp +Selain dengan menspesifikasikan flag yang diinginkan, anda dapat pula memberikan jenis scan TCP (seperti +\fB\-sA\fR +atau +\fB\-sF\fR)\&. Jenis dasar tersebut memberitahu Nmap bagaimana menginterpretasikan respon\&. Sebagai contoh, SYN scan menganggap no\-response sebagai indikasi port +filtered, sementara FIN scan mengganggapnya sebagai +open|filtered\&. Nmap akan berperilaku sama dengan jenis scan dasar, kecuali ia akan menggunakan flag TCP yang anda spesifikasikan Jika anda tidak menspesifikasikan tipe dasar, akan digunakan SYN scan\&. +.RE +.PP +\fB\-sI \fR\fB\fIzombie host\fR\fR\fB[:\fIprobeport\fR]\fR (idle scan) +.RS 4 +Metode scan tingkat tinggi ini memungkinkan scan port TCP secara tersembunyi (artinya tidak ada paket dikirim ke target dari alamat IP anda yang sebenarnya)\&. Alih\-alih, serangan side\-channel mengeksploitasi pembuatan urutan ID fragmentasi IP yang mudah ditebak pada host zombi untuk memperoleh informasi tentang port terbuka pada target\&. Sistem IDS akan menampilkan scan berasal dari mesin zombi yang anda spesifikasikan (yang harus up dan memenuhi beberapa kriteria)\&. +Jenis scan menarik ini terlalu kompleks untuk dijelaskan dalam panduan referensi ini, sehingga saya menulis dan menaruh paper informal dengan detil penuh di \m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&. +.sp +Selain sangat tersembunyi (karena sifat blind\-nya), jenis scan ini mengijinkan pemetaan relasi kepercayaan berbasis IP antar mesin\&. Daftar port menampilkan port terbuka +\fIdari perspektif host zombi\&.\fR +Sehingga anda dapat berusaha memeriksa target dengan menggunakan beragam zombi yang anda anggap terpercaya + +(melalui aturan router/packet filter)\&. +.sp +Anda dapat menambah tanda titik dua diikuti nomor port pada host zombi jika anda ingin memeriksa port tertentu pada zombi untuk perubahan ID IP\&. Jika tidak Nmap akan menggunakan port baku yang digunakan untuk ping TCP (80)\&. +.RE +.PP +\fB\-sO\fR (IP protocol scan) +.RS 4 +Scan protokol IP memungkinkan anda menentukan protokol IP mana (TCP, ICMP, IGMP, dsb\&.) yang didukung oleh mesin target\&. Secara teknis ini bukanlah scan port, karena ia menggunakan nomor protokol IP alih\-alih nomor port TCP atau UDP\&. Namun ia tetap menggunakan opsi +\fB\-p\fR +untuk memilih nomor protokol yang diperiksa, melaporkan hasilnya dalam format tabel port normal, dan bahkan menggunakan mesin scan yang sama dengan metode scanning port sebenarnya\&. Ia cukup dekat dengan scan port sehingga berada di sini\&. +.sp +Selain memiliki fungsi tertentu, scan protokol mendemonstrasikan kekuatan software open\-source\&. Meskipun ide dasarnya cukup sederhana, saya tidak berpikir atau menerima permintaan untuk menambah fungsionalitas semacam itu\&. Lalu pada musim panas tahun 2000, Gerhard Rieger +menerima ide tersebut, menulis patch yang bagus untuk mengimplementasikannya, dan mengirimnya ke milis +nmap\-hackers\&. +Saya menggabungkan patch tersebut ke Nmap dan merilis versi baru di hari berikutnya\&. Sedikit software komersial memiliki user yang cukup antusias untuk merancang dan memberikan kontribusi perbaikan! +.sp +Scan protocol bekerja dalam cara yang sama dengan scan UDP\&. Alih\-alih beriterasi atas field nomor port paket UDP, ia mengirim header paket IP dan beriterasi pada field protokol IP delapan\-bit\&. Header biasanya kosong, tidak berisi data dan bahkan tiada header yang sesuai untuk protokol yang diklaim\&. Tiga pengecualian adalah TCP, UDP, dan ICMP\&. Header protokol yang sesuai untuk mereka disertakan karena beberapa sistem tidak akan mengirimnya dan karena Nmap telah memiliki fungsi untuk membuatnya\&. Alih\-alih mengamati pesan ICMP port unreachable, scan protocol mencari pesan ICMP +\fIprotocol\fR +unreachable\&. Bila Nmap menerima respon dalam sembarang protokol dari host target, Nmap menandai protokol tersebut sebagai +open\&. Kesalahan ICMP protocol unreachable (tipe 3, kode 2) menyebabkan protokol ditandai sebagai +closed\&. Kesalahan ICMP unreachable lainnya (tipe 3, kode 1, 3, 9, 10, atau 13) menyebabkan protokol ditandai +filtered +(meskipun mereka membuktikan bahwa ICMP +open +di waktu yang sama)\&. Jika tidak menerima respon setelah transmisi ulang, protokol ditandai sebagai +open|filtered +.RE +.PP +\fB\-b \fR\fB\fIFTP relay host\fR\fR (FTP bounce scan) +.RS 4 +Satu fitur menarik protokol FTP (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[8]\d\s+2) mendukung koneksi FTP proxy\&. Hal ini memungkinkan user untuk koneksi ke satu server FTP, lalu meminta file dikirimkan ke server pihak ketiga\&. Fitur tersebut rentan terhadap penyalahgunaan di banyak tingkat, sehingga banyak server berhenti mendukungnya\&. Salah satu penyalahgunaan yang dibolehkan fitur ini adalah membuat server FTP melakukan scan port ke host lain\&. Cukup minta server FTP mengirim sebuah file ke setiap port yang diinginkan pada host target\&. Pesan kesalahan akan menjelaskan apakah port terbuka atau tidak\&. Hal ini merupakan cara yang baik untuk melewati firewall karena server FTP organisasi biasanya lebih memiliki akses ke host internal daripada host Internet\&. Nmap mendukung scan bounce FTP dengan opsi +\fB\-b\fR +option\&. Ia mengambil argumen dalam bentuk +\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fR\&. +\fIServer\fR +adalah nama atau alamat IP server FTP yang rentan\&. Sebagaimana dengan URL normal, anda dapat menghilangkan +\fIusername\fR:\fIpassword\fR, sehingga menggunakan login anonim (user: +anonymous +password:\-wwwuser@) \&. Nomor port (dan tanda titik dua sebelumnya) dapat dihilangkan juga, sehingga menggunakan port FTP baku (21) pada +\fIserver\fR\&. +.sp +Kerentanan ini meluas di tahun 1997 ketika Nmap dirilis, namun telah diperbaiki\&. Server\-server yang rentan masih ada, sehingga patut dicoba bila teknik yang lainnya gagal\&. Jika tujuan anda adalah melewati firewall, scan jaringan target untuk port 21 (atau bahkan untuk sembarang layanan FTP jika anda scan seluruh port dengan deteksi versi) yang terbuka, lalu coba scan bounce\&. Nmap akan memberitahu anda apakah host rentan atau tidak\&. Jika anda hanya ingin menutupi jejak anda, anda tidak perlu (dan bahkan tidak seharusnya) membatasi diri anda pada host pada jaringan target\&. Sebelum anda memeriksa alamat Internet acak untuk mencari server FTP yang rentan, pertimbangkan bahwa sysadmin mungkin tidak akan menghargai anda menggunakan server mereka dengan cara ini\&. +.RE +.SH "SPESIFIKASI PORT DAN URUTAN SCAN" +.PP +Selain menawarkan semua metode scan yang telah dijelaskan sebelumnya, Nmap juga memberikan opsi untuk menspesifikasikan port mana yang ingin diperiksa dan apakah urutan scan secara acak atau berurutan\&. Secara baku, Nmap memeriksa 1\&.000 port untuk setiap protokol yang paling umum\&. + +.PP +\fB\-p \fR\fB\fIport ranges\fR\fR (Hanya memeriksa port yang dispesifikasikan) +.RS 4 +Opsi ini menentukan port yang ingin anda periksa dan meniadakan nilai baku\&. Nomor port individu adalah OK, dan juga rentang yang dipisahkan oleh tanda sambung (misaln +1\-1023)\&. Nilai awal dan/atau akhir sebuah rentang dapat dihilangkan, Nmap lalu akan menggunakan 1 dan 65535\&. Jadi anda dapat memberikan opsi +\fB\-p\-\fR +untuk memeriksa port dari 1 hingga 65535\&. Anda diperbolehkan memeriksa port nol + +jika anda menspesifikasikannya secara eksplisit\&. Untuk pemeriksaan protokol IP (\fB\-sO\fR), opsi ini menspesifikasikan nomor protokol yang ingin anda periksa (0–255)\&. +.sp +Ketika memeriksa port TCP dan UDP, anda dapat menentukan protokol tertentu dengan menambahkan +T: +atau +U: +di depan nomor port\&. Qualifier ini berlaku hingga anda menspesifikasikan qualifier lain\&. Sebagai contoh, argumen +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +akan memeriksa port UDP 53, 111,dan 137, dan juga port TCP yang disebutkan\&. Untuk memeriksa UDP dan TCP, anda harus menspesifikasikan +\fB\-sU\fR +dan paling tidak satu jenis scan TCP (seperti +\fB\-sS\fR, +\fB\-sF\fR, atau +\fB\-sT\fR)\&. Jika tidak diberikan qualifier protokol, nomor port akan ditambahkan ke seluruh daftar protokol\&. +Port dapat juga dispesifikasikan dengan nama sesuai dengan apa yang diacu dalam file +nmap\-services\&. Anda bahkan dapat menggunakan wildcard * dan ? dengan nama\&. Sebagai contoh, untuk memeriksa port FTP dan seluruh port yang namanya dimulai dengan +\(lqhttp\(rq, gunakan +\fB\-p ftp,http*\fR\&. Berhati\-hatilah dengan ekspansi shell dan berilah tanda kutip pada argumen +\fB\-p\fR +jika tidak yakin\&. +.sp +Rentang port dapat dikelilingi oleh tanda kurung siku (square bracket) untuk mengindikasikan port yang berada di dalam rentang tersebut yang ada dalam +nmap\-services\&. Sebagai contoh, opsi berikut ini akan memeriksa seluruh port dalam +nmap\-services +yang kurang dari sama dengan 1024: +\fB\-p [\-1024]\fR\&. Berhati\-hatilah dengan ekspansi shell dan berilah tanda kutip pada argumen +\fB\-p\fR +jika tidak yakin\&. +.RE +.PP +\fB\-F\fR (Fast (limited port) scan) +.RS 4 +Memberitahukan bahwa anda ingin memeriksa lebih sedikit port daripada jumlah baku\&. Normalnya Nmap memeriksa 1\&.000 port umum untuk setiap protokol yang diperiksa\&. Dengan +\fB\-F\fR, jumlahnya dikurangi menjadi 100\&. +.sp +Nmap membutuhkan file +nmap\-services +dengan informasi frekuensi untuk mengetahui port yang paling umum +\&. Jika informasi frekuensi port tidak tersedia, mungkin karena penggunaan file +nmap\-services +kustom, +\fB\-F\fR +berarti memeriksa hanya port yang ada di dalam file services (normalnya Nmap memeriksa seluruh port yang memiliki nama dan port 1–1024)\&. +.RE +.PP +\fB\-r\fR (Jangan randomisasi port) +.RS 4 +Secara baku, Nmap merandomisasi urutan port yang diperiksa (kecuali port tertentu yang biasa diakses dipindahkan ke awal untuk alasan efisiensi)\&. Randomisasi ini biasanya diinginkan,namun anda dapat memberikan opsi +\fB\-r\fR +untuk pemeriksaan port secara berurutan\&. +.RE +.PP +\fB\-\-port\-ratio <angka desimal antara 0 dan 1>\fR +.RS 4 +Memeriksa seluruh port dalam file +nmap\-services +dengan rasio lebih daripada angka yang diberikan sebagai argumen\&. +.RE +.PP +\fB\-\-top\-ports <integer 1 atau lebih>\fR +.RS 4 +Memeriksa port\-port dengan rasio tertinggi N yang ditemukan dalam file +nmap\-services\&. +.RE +.SH "DETEKSI VERSI DAN LAYANAN" +.PP +Arahkan Nmap ke mesin remote dan ia dapat memberitahu anda bahwa port +25/tcp, +80/tcp, dan +53/udp +terbuka\&. Dengan menggunakan database +nmap\-services +yang berisi lebih dari 2\&.200 layanan yang dikenal, +Nmap akan melaporkan bahwa port tersebut mungkin adalah server mail (SMTP), server web (HTTP), dan name server (DNS)\&. Pencocokan ini biasanya akurat\- sebagian besar daemon yang mendengarkan TCP port 25 adalah, mail server\&. Namun demikian, anda tidak seharusnya terpaku pada hal ini! Orang\-orang dapat dan menjalankan layanan pada port\-port aneh\&. +.PP +Bahkan bila Nmap benar, dan server hipotetis di atas menjalankan server SMTP, HTTP, dan DNS, itu bukanlah informasi yang banyak\&. Ketika melakukan vulnerability assessment (atau inventori jaringan) atas perusahaan atau klien anda, anda benar\-benar ingin mengetahui server mail dan DNS mana serta versi apa yang dijalankan\&. Dengan memiliki angka versi yang akurat akan membantu secara dramatis dalam menentukan eksploitasi yang tepat terhadap server tersebut\&. Deteksi versi membantu anda memperoleh informasi ini\&. +.PP +Setelah port TCP dan/atau UDP ditemukan dengan menggunakan salah satu metode scan, deteksi versi menginterogasi port tersebut untuk menentukan lebih jauh mengenai apa yang sedang berjalan\&. Database +nmap\-service\-probes +berisikan probe untuk melakukan query ke sejumlah layanan dan ekspresi pencocokan untuk mengenali dan memproses respon\&. Nmap berusaha menentukan protokol layanan (misalnya FTP, SSH, Telnet, HTTP), nama aplikasi (misalnya ISC BIND, Apache httpd, Solaris telnetd), angka versi, nama host, jenis device (misal printer, router), keluarga SO (misal Windows, Linux) dan terkadang detil lainnya seperti apakah X server terbuka untuk koneksi, versi protokol SSH, atau nama user KaZaA)\&. Tentu saja, kebanyakan layanan tidak memberikan informasi ini\&. Jika Nmap dikompilasi dengan dukungan OpenSSL, ia akan koneksi ke server SSL untuk mendapatkan layanan yang berada di belakang lapisan enkripsi\&. +Ketika ditemukan layanan RPC, Nmap RPC grinder +(\fB\-sR\fR) +secara otomatis digunakan untuk menentukan program dan angka versi RPC\&. Beberapa port UDP diinformasikan dalam status +open|filtered +setelah scan port UDP tidak dapat menentukan apakah port terbuka atau disaring\&. Deteksi versi akan berusaha memperoleh respon dari port ini (sebagaimana dari port terbuka), dan merubah status port menjadi terbuka bila ia berhasil\&. Port TCP +open|filtered +diperlakukan dalam cara yang sama\&. Perhatikan bahwa opsi +\fB\-A\fR +di antaranya mengaktifkan deteksi versi\&. +Sebuah paper yang mendokumentasikan cara kerja, penggunaan, dan kustomisasi deteksi versi tersedia di \m[blue]\fB\%https://nmap.org/book/vscan.html\fR\m[]\&. +.PP +Bila Nmap menerima respon dari sebuah layanan namun tidak dapat mencocokkannya ke database, ia akan mencetak fingerprint khusus dan sebuah URL untuk menyerahkannya bila anda tahu secara pasti apa yang berjalan pada port tersebut\&. Mohon meluangkan waktu beberapa menit untuk menyerahkannya sehingga dapat bermanfaat bagi semua orang\&. Berkat penyerahan ini, Nmap memiliki sekitar 3\&.000 pola yang sesuai untuk lebih dari 350 protokol seperti SMTP, FTP, HTTP, dsb\&. +.PP +Deteksi versi diaktifkan dan dikendalikan dengan opsi\-opsi berikut: +.PP +\fB\-sV\fR (Deteksi Versi) +.RS 4 +Mengaktifkan deteksi versi, seperti yang dijelaskan di atas\&. Anda dapat pula menggunakan +\fB\-A\fR, yang salah satunya mengaktifkan deteksi versi\&. +.RE +.PP +\fB\-\-allports\fR (Sertakan seluruh port dalam deteksi versi) +.RS 4 +Secara baku, deteksi versi Nmap melewati TCP port 9100 karena beberapa printer akan mencetak segala yang dikirim ke port itu, berakibat puluhan halaman request HTTP GET, sesi biner SSL, dsb\&. Perilaku ini dapat diubah dengan memodifikasi atau menghapus direktif +Exclude +dalam +nmap\-service\-probes, atau anda dapat menspesifikasikan +\fB\-\-allports\fR +untuk memeriksa seluruh port tanpa mengindahkan direktif +Exclude\&. +.RE +.PP +\fB\-\-version\-intensity \fR\fB\fIintensity\fR\fR (Menset intensitas pemeriksaan versi) +.RS 4 +Ketika melakukan pemeriksaan versi (\fB\-sV\fR), Nmap mengirim serangkaian probe, dan setiap probe diberi nilai antara satu dan sembilan\&. Probe dengan nomor rendah efektif terhadap beragam layanan umum, sementara nomor lebih tinggi jarang berguna\&. Level intensitas menspesifikasikan probe mana yang harus diaplikasikan\&. Semakin tinggi angkanya, semakin mungkin layanan diidentifikasi dengan benar\&. Namun demikian, scan dengan intensitas tinggi membutuhkan waktu yang lebih lama\&. Intensitas harus antara 0 dan 9\&. + +Nilai bakunya adalah 7\&. + +Ketika sebuah probe didaftarkan ke port target melalui direktif +nmap\-service\-probes +ports, probe tersebut akan dicoba tanpa memperdulikan level intensitas\&. Hal ini memastikan bahwa probe DNS akan selalu dicoba terhadap sembarang port terbuka 53, probe SSL akan dilakukan terhadap port 443, dst\&. +.RE +.PP +\fB\-\-version\-light\fR (Aktifkan mode ringan) +.RS 4 +Opsi ini merupakan alias dari +\fB\-\-version\-intensity 2\fR\&. Mode ringan ini membuat pemeriksaan versi lebih cepat, namun mungkin kurang dapat mengidentifikasi layanan\&. +.RE +.PP +\fB\-\-version\-all\fR (Coba semua probe tunggal) +.RS 4 +Sebuah alias bagi +\fB\-\-version\-intensity 9\fR, memastikan bahwa setiap probe tunggal dicoba terhadap setiap port\&. +.RE +.PP +\fB\-\-version\-trace\fR (Melacak aktivitas pemeriksaan versi) +.RS 4 +Hal ini membuat Nmap mencetak info debugging yang ekstensif tentang pemeriksaan versi yang sedang dilakukan\&. Ia merupakan subset dari +\fB\-\-packet\-trace\fR\&. +.RE +.PP +\fB\-sR\fR (RPC scan) +.RS 4 +Metode ini bekerja sama dengan beragam metode pemeriksaan port Nmap\&. Ia menggunakan seluruh port TCP/UDP yang terbuka dan membanjiri mereka dengan perintah NULL program SunRPC dalam usaha menentukan apakah mereka adalah port RPC, dan bila ya, menentukan program dan nomor versinya\&. Karenanya anda dapat secara efektif memperoleh info yang sama dengan +\fBrpcinfo \-p\fR +bahkan bila portmapper target berada di belakang firewall (atau dilindungi oleh TCP wrapper)\&. Saat ini tidak dapat menggunakan umpan dalam RPC scan\&. +Ia secara otomatis diaktifkan sebagai bagian pemeriksaan versi (\fB\-sV\fR) jika anda memintanya\&. Oleh karena deteksi versi menyertakannya dan jauh lebih lengkap, +\fB\-sR\fR +jarang dibutuhkan\&. +.RE +.SH "DETEKSI SO" +.PP +Salah satu fitur Nmap yang paling dikenal adalah deteksi SO dengan menggunakan fingerprint stack TCP/IP\&. Nmap mengirimkan serangkaian paket TCP dan UDP ke host remote dan menguji setiap bit paket responnya\&. Setelah melakukan serangkaian test seperti sampling TCP ISN, dukungan dan urutan opsi TCP, sampling ID IP, dan pemeriksaan ukuran jendela awal, Nmap membandingkan hasilnya ke database +nmap\-os\-db +yang berisi lebih dari seribu fingerprint SO yang dikenal dan mencetak detil SO bila terjadi kesesuaian\&. Setiap fingerprint menyertakan deskripsi SO tekstual dalam format bebas, klasifikasi yang memberikan nama vendor (misalnya Sun), SO di bawahnya (misalnya Solaris), generasi OS (misalnya 10), dan jenis device (fungsi umum, router, switch, konsol game, dsb\&.)\&. +.PP +Jika Nmap tidak dapat menduga SO mesin, dan kondisinya bagus (misalnya paling tidak ditemukan satu port terbuka dan tertutup), Nmap akan memberikan URL yang dapat anda gunakan untuk menyerahkan fingerprint jika anda tahu (dengan pasti) SO yang berjalan di mesin itu\&. Dengan melakukan hal ini anda berkontribusi ke database sistem operasi yang dikenali Nmap dan karenanya ia akan lebih akurat\&. +.PP +Deteksi SO mengaktifkan beberapa tes lain yang menggunakan informasi yang dikumpulkan selama proses\&. Salah satunya adalah TCP Sequence Predictability Classification\&. Ukuran ini menentukan seberapa sulit memalsukan koneksi TCP ke host remote\&. Ia bermanfaat dalam mengeksploitasi relasi trust berbasis IP\-sumber (rlogin, filter firewall, dsb) atau untuk menyembunyikan sumber serangan\&. Spoofing jenis ini jarang dilakukan lagi, namun banyak mesin masih rentan terhadapnya\&. Angka kesulitan aktualnya berdasarkan pada sampling statistik dan mungkin berfluktuasi\&. Umumnya lebih baik menggunakan klasifikasi bahasa Inggris seperti +\(lqworthy challenge\(rq +or +\(lqtrivial joke\(rq\&. Hal ini hanya dilaporkan dalam output normal dalam mode verbose (\fB\-v\fR)\&. Ketika digunakan mode verbose bersama dengan +\fB\-O\fR, pembuatan urutan ID IP ID juga dilaporkan\&. Kebanyakan mesin berada dalam kelas +\(lqincremental\(rq, yang berarti mereka menaikkan field ID dalam header IP untuk setiap paket yang mereka kirim\&. Hal ini membuat mereka rentan atas beberapa serangan spoofing dan pengumpulan informasi tingkat tinggi\&. +.PP +Informasi ekstra lain yang disertakan dalam deteksi SO adalah menduga waktu uptime target\&. Tekniknya menggunakan opsi timestamp TCP (\m[blue]\fBRFC 1323\fR\m[]\&\s-2\u[9]\d\s+2) untuk menduga waktu terakhir mesin direboot\&. Dugaan dapat tidak akurat akibat counter timestamp tidak diinisialisasi ke nol atau counter overflow dan kembali ke awal, sehingga ia hanya dicetak dalam mode verbose\&. +.PP +Sebuah paper yang mendokumentasikan cara kerja, penggunaan, dan kustomisasi deteksi SO tersedia di \m[blue]\fB\%https://nmap.org/book/osdetect.html\fR\m[]\&. +.PP +Deteksi SO diaktifkan dan dikendalikan dengan opsi\-opsi berikut: +.PP +\fB\-O\fR (Aktifkan deteksi SO) +.RS 4 +Aktifkan deteksi SO, seperti didiskusikan di atas\&. Anda dapat juga menggunakan +\fB\-A\fR +untuk mengaktifkan deteksi SO dan hal lainnya\&. +.RE +.PP +\fB\-\-osscan\-limit\fR (Batasi deteksi SO untuk target yang menjanjikan) +.RS 4 +Deteksi SO jauh lebih efektif bila ditemukan paling tidak satu port TCP terbuka dan tertutup\&. Set opsi ini dan Nmap tidak akan melakukan deteksi SO terhadap host yang tidak memenuhi kriteria ini\&. Hal ini dapat menghemat waktu, terutama pada pemeriksaan +\fB\-PN\fR +atas banyak host\&. Ia hanya penting ketika deteksi SO diminta dengan opsi +\fB\-O\fR +atau +\fB\-A\fR\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Duga hasil deteksi SO) +.RS 4 +Ketika Nmap tidak dapat mendeteksi SO secara tepat, ia terkadang memberikan kemungkinan terdekat\&. Tebakan yang cocok harus sangat dekat agar dilakukan secara baku oleh Nmap\&. Semua opsi ekivalen ini membuat Nmap menduga dengan lebih agresif\&. Nmap tetap akan memberitahu anda ketika kecocokan tidak sempurna dicetak dan menampilkan tingkat kepercayaan (persentase) untuk setiap dugaan\&. +.RE +.PP +\fB\-\-max\-os\-tries\fR (Menset jumlah usaha maksimum deteksi SO atas target) +.RS 4 +Ketika Nmap melakukan deteksi SO terhadap target dan gagal menemukan kecocokan sempurna, ia biasanya mengulang usahanya\&. Secara baku, Nmap berusaha lima kali jika kondisi memungkinkan penyerahan fingerprint SO, dan dua kli ketika kondisi tidak begitu baik\&. Menspesifikasikan nilai +\fB\-\-max\-os\-tries\fR +yang lebih rendah (seperti 1) mempercepat Nmap, meski anda kehilangan usaha yang secara potensial dapat mengindentifikasi SO\&. Anda dapat pula menset perulangan yang lebih banyak ketika kondisi lebih baik\&. Hal ini jarang dilakukan, kecuali untuk menghasilkan fingerprint yang lebih baik untuk penyerahan dan integrasi ke database SO Nmap\&. +.RE +.SH "NMAP SCRIPTING ENGINE (NSE)" +.PP +Nmap Scripting Engine (NSE) adalah salah satu fitur Nmap yang paling powerful dan fleksibel\&. Ia memungkinkan user untuk menulis (dan membagi) skrip sederhana (menggunakan +\m[blue]\fBbahasa pemrograman Lua\fR\m[]\&\s-2\u[10]\d\s+2, +) untuk mengotomasi beragam tugas jaringan\&. Skrip\-skrip tersebut dieksekusi secara parale dengan kecepatan dan efisiensi yang anda harapkan dari Nmap\&. User dapat mengandalkan beragam skrip yang didistribusikan dengan Nmap, atau menulis sendiri sesuai kebutuhan\&. +.PP +Tugas\-tugas yang kami pikirkan ketika membuat sistem termasuk penemuan jaringan, deteksi versi yang lebih canggih, deteksi kerentanan\&. NSE bahkan dapat digunakan untuk eksploitasi kerentanan\&. +.PP +Untuk mencerminkan penggunaan yang berbeda dan untuk memudahkan pilihan skrip yang diinginkan, setiap skrip berisi field yang mengasosiasikannya dengan satu atau lebih kategori\&. Kategori yang ada saat ini adalah +safe, +intrusive, +malware, +version, +discovery, +vuln, +auth, and +default\&. These are all described +at \m[blue]\fB\%https://nmap.org/book/nse-usage.html#nse-categories\fR\m[]\&. +.PP +Nmap Scripting Engine dijelaskan lebih rinci +di \m[blue]\fB\%https://nmap.org/book/nse.html\fR\m[] + +dan dikendalikan oleh opsi\-opsi berikut ini: +.PP +\fB\-sC\fR +.RS 4 +Melakukan scan skrip menggunakan sejumlah skrip baku\&. Ia merupakan ekivalen +\fB\-\-script=default\fR\&. Beberapa skrip dalam kategori ini dianggap intrusif dan tidak seharusnya dijalankan terhadap jaringan target tanpa ijin\&. +.RE +.PP +\fB\-\-script \fR\fB\fIscript\-categories\fR\fR\fB|\fR\fB\fIdirectory\fR\fR\fB|\fR\fB\fIfilename\fR\fR\fB|all\fR +.RS 4 +Menjalankan scan skrip (seperti +\fB\-sC\fR) menggunakan daftar kategori skrip, skrip individual, atau direktori berisikan skrip, aih\-alih menggunakan set baku\&. Nmap akan mencoba dulu menginterpretasikan argumen sebagai kategori, kemudian sebagai file atau direktori\&. Skrip atau direktori skrip dapat dispesifikasikan dengan path absolut atau relatif\&. Path absolut digunakan seperti yang diberikan\&. Path relatif akan dicari dalam tempat\-tempat berikut hingga ditemukan : + +\-\-datadir/; +$NMAPDIR/; +~/\&.nmap/ +(tidak dicari pada Windows); +NMAPDATADIR/ or +\&./\&. A +scripts/ +subdirektori juga dicari untuk setiap direktori ini\&. +.sp +Jika diberikan sebuah direktori dan ditemukan, Nmap memuat seluruh skrip NSE (semua nama file yang berakhiran dengan +\&.nse) dari direktori tersebut\&. Nama file tanpa ekstensi +nse +akan diabaikan\&. Nmap tidak mencari secara rekursif ke subdirektori untuk mencari skrip\&. Jika diberikan nama file individual, ekstensi file tidak perlu harus +nse\&. +.sp +Skrip Nmap secara baku disimpan dalam subdirektori +scripts +direktori data Nmap +(lihat \m[blue]\fB\%https://nmap.org/book/data-files.html\fR\m[])\&. + +Demi efisiensi, skrip diindeks dalam database yang disimpan dalam +scripts/script\&.db\&. +yang mendaftar kategori atau kategori\-kategori yang dimiliki skrip\&. Berikan argumen +all +untuk menjalankan seluruh skrip dalam database skrip Nmap\&. +.sp +Skrip berbahaya tidak dijalankan dalam sandbox dan karenanya dapat merusak sistem anda atau menggangu privasi anda\&. Jangan pernah menjalankan skrip dari pihak ketiga kecuali anda mempercayai penulisnya atau telah mengaudit skrip tersebut dengan cermat\&. +.RE +.PP +\fB\-\-script\-args \fR\fB\fIname1\fR\fR\fB=\fR\fB\fIvalue1\fR\fR\fB,\fR\fB\fIname2\fR\fR\fB={\fR\fB\fIname3\fR\fR\fB=\fR\fB\fIvalue3\fR\fR\fB},\fR\fB\fIname4\fR\fR\fB=\fR\fB\fIvalue4\fR\fR +.RS 4 +Membolehkan anda memberik argumen ke skrip NSE\&. Argument diberikan sebagai pasangan +name=value\&. Argumen yang diberikan diproses dan disimpan dalam tabel Lua, yang dapat diakses oleh semua skrip\&. Nama\-nama dianggap sebagai string (yang harus berupa nilai alfanumerik) dan digunakan sebagai kunci dalam +argument\-table\&. Nilai dapat berupa string atau tabel (dilingkupi oleh \(oq{\(cq dan \(oq}\(cq)\&. Sebagai contoh, anda dapat memberikan argumen : +user=bar,pass=foo,whois={whodb=nofollow+ripe}\&. Argumen string secara potensial digunakan oleh beberapa skrip; subtables normalnya hanya digunakan oleh satu skrip\&. Dalam skrip yang menggunakan subtable, ia dinamakan sesuai dengan nama skripnya (seperti +whois +dalam contoh ini)\&. +.RE +.PP +\fB\-\-script\-trace\fR +.RS 4 +Opsi ini melakukan apa yang dilakukan oleh +\fB\-\-packet\-trace\fR, namun satu tingkat ISO lebih tinggi\&. Jika diberikan opsi ini seluruh komunikasi incoming dan outgoing yang dilakukan skrip akan dicetak\&. Informasi yang ditampilkan mencakup protokol komunikasi, sumber, target dan data yang ditransmisikan\&. Jika lebih dari 5% seluruh data yang ditransmisikan tidak dapat dicetak, maka output trace dalam format hex\&. +\fB\-\-packet\-trace\fR +juga mengaktifkan tracing skrip\&. +.RE +.PP +\fB\-\-script\-updatedb\fR +.RS 4 +Opsi ini mengupdate database skrip yang ditemukan dalam +scripts/script\&.db +yang digunakan Nmap untuk menentukan skrip baku dan kategori yang tersedia\&. Opsi ini digunakan bila anda menambah atau mengurangi skrip NSE dari direktori baku +scripts +atau bila anda merubah kategori sembarang skrip\&. Opsi ini biasanya digunakan sendirian: +\fBnmap \-\-script\-updatedb\fR\&. +.RE +.SH "PEWAKTUAN DAN KINERJA" +.PP +Salah satu prioritas pengembangan tertinggi Nmap adalah kinerja\&. Scan baku (\fBnmap \fR\fB\fIhostname\fR\fR) sebuah host pada jaringan lokal saya membutuhkan seperlima detik\&. Hal tersebut cukup cepat, namun tambahkan bila anda memeriksa ratusan atau ribuan host\&. Terlebih lagi, beberapa opsi scan seperti pemeriksaan UDP dan deteksi versi dapat meningkatkan waktu pemeriksaan secara substansial\&. Begitu pula dengan beberapa konfigurasi firewall, terutama pembatasan rate respon\&. Meskipun Nmap menggunakan paralelisme dan algoritma canggih untuk mempercepat scan ini, user memiliki kendali penuh atas jalannya Nmap\&. User ahli secara cermat memberikan perintah Nmap yang hanya mengambil informasi yang dibutuhkan dengan batasan waktu yang sesuai\&. +.PP +Teknik\-teknik untuk memperbaiki waktu pemeriksaan mencakup menghilangkan tes\-tes yang tidak kritikal, dan mengupgrade ke versi terakhir Nmap (perbaikan kinerja dibuat secara rutin)\&. Optimisasi parameter pewaktuan juga dapat memberikan perbedaan yang substansial\&. Opsi\-opsi tersebut diberikan di bawah ini\&. +.PP +Beberapa opsi menerima sebuah parameter +waktu\&. Ia dispesifikasikan secara baku dalam milidetik, meskipun anda dapat menambahkan \(oqs\(cq, \(oqm\(cq, atau \(oqh\(cq ke nilai untuk menspesifikasikan detik, menit, atau jam\&. Sehingga argumen +\fB\-\-host\-timeout\fR +900000, +900s, dan +15m +semuanya melakukan hal yang sama\&. +.PP +\fB\-\-min\-hostgroup \fR\fB\fInumhosts\fR\fR; \fB\-\-max\-hostgroup \fR\fB\fInumhosts\fR\fR (Adjust parallel scan group sizes) +.RS 4 +Nmap memiliki kemampuan untuk melakukan scan port atau versi ke banyak host secara paralel\&. Nmap melakukan hal ini dengan membagi ruang IP target ke dalam kelompok dan kemudian memeriksa satu kelompok pada satu waktu\&. Secara umum, kelompok yang lebih besar lebih efisien\&. Kelemahannya adalah hasilnya tidak dapat disediakan hingga seluruh kelompok selesai\&. Jadi bila Nmap dimulai dengan kelompok berukuran 50, user tidak akan menerima laporan (kecuali update yang diberikan dalam mode verbose) hingga seluruh 50 host pertama selesai\&. +.sp +Secara baku, Nmap menggunakan pendekatan kompromi untuk konflik in\&. Ia mulai dengan ukuran kelompok paling kecil lima sehingga dapat segera diperoleh hasil dan kemudian menaikkan ukuran kelompok hingga maksimum 1024\&. Angka baku tergantung pada opsi yang diberikan\&. Demi alasan efisiensi, Nmap menggunakan ukuran kelompok yang lebih besar untuk scan UDP atau sedikit\-port TCP\&. +.sp +Ketika ukuran kelompok maksimum diberikan dengan +\fB\-\-max\-hostgroup\fR, Nmap tidak akan melampaui ukuran tersebut\&. Berikan ukuran minimum dengan +\fB\-\-min\-hostgroup\fR +dan Nmap akan berusaha ukuran kelompok di atas angka tersebut\&. Nmap mungkin akan menggunakan kelompok lebih kecil daripada yang anda spesifikasikan jika tidak terdapat cukup target pada interface yang diberikan untuk memenuhi ukuran minimum\&. Kedua opsi dapat digunakan untuk menset ukuran kelompok dalam rentang tertentu, namun hal ini jarang diperlukan\&. +.sp +Opsi\-opsi ini tidak memiliki efek ketika melalukan fase penemuan host dalam sebuah pemeriksaan\&. Ini mencakup scan ping biasa (\fB\-sP\fR)\&. Penemuan host selalu bekerja dalam kelompok host besar untuk meningkatkan kecepatan dan akurasi\&. +.sp +Penggunaan utama opsi ini adalah untuk menspesifikasikan ukuran kelompok minimum yang besar sehingga scan penuh dapat dilakukan lebih cepat\&. Pilihan umum adalah 256 untuk memeriksa jaringan dalam Kelas C\&. Untuk scan dengan banyak port, melampaui angka tersebut tidak berarti banyak\&. Untuk scan terhadap beberapa port saja, ukuran kelompok host 2048 atau lebih mungkin bermanfaat\&. +.RE +.PP +\fB\-\-min\-parallelism \fR\fB\fInumprobes\fR\fR; \fB\-\-max\-parallelism \fR\fB\fInumprobes\fR\fR (Adjust probe parallelization) +.RS 4 +Opsi\-opsi ini mengendalikan jumlah total probe yang dapat dilakukan untuk sekelompok host\&. Mereka digunakan untuk pemeriksaan port dan penemuan host\&. Secara baku, Nmap menghitung nilai paralel yang ideal berdasarkan kinerja jaringan\&. Jika paket di\-drop, Nmap mengurangi dan membolehkan lebih sedikit probe yang tersisa\&. Angka probe ideal akan meningkat seiring dengan membaiknya jaringan\&. Opsi ini menempatkan batas minimum atau maksimum pada variabel tersebut\&. Secara baku, nilai idealnya dapat menurun ke angka satu bila jaringan ternyata tidak handal dan meningkat ke beberapa ratus dalam kondisi sempurna\&. +.sp +Penggunaan paling umum adalah menset +\fB\-\-min\-parallelism\fR +ke angka lebih tinggi daripada satu untuk mempercepat scan host atau jaringan yang lambat\&. Ini adalah opsi berisiko untuk dimainkan, karena bila mensetnya terlalu tinggi akan mempengaruhi akurasi\&. Dengan menset opsi ini juga akan mengurangi kemampuan Nmap untuk mengendalikan paralelisme secara dinamis berdasarkan kondisi jaringan\&. Nilai sepuluh adalah cukup, meskipun saya hanya menyesuaikan nilai ini sebagai usaha terakhir\&. +.sp +Opsi +\fB\-\-max\-parallelism\fR +seringkali diset ke satu untuk mencegah Nmap mengirimkan lebih dari satu probe di satu waktu ke host\&. Opsi ini dapat bermanfaat saat berkombinasi dengan +\fB\-\-scan\-delay\fR +(akan didiskusikan kemudian), meskipun yang terakhir biasanya dapat digunakan sendiri\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout \fR\fB\fItime\fR\fR, \fB\-\-max\-rtt\-timeout \fR\fB\fItime\fR\fR, \fB\-\-initial\-rtt\-timeout \fR\fB\fItime\fR\fR (Adjust probe timeouts) +.RS 4 +Nmap memelihara sebuah nilai timeout untuk menentukan berapa lama ia harus menunggu atas respon probe sebelum ia menyerah atau mentransmisi ulang probe\&. Nilai ini dihitung berdasarkan waktu respon probe sebelumnya\&. + +Jika latensi jaringan menunjukkan signifikan dan bervariasi, nilai timeout ini dapat meningkat ke beberapa detik\&. Ia juga dimulai dari nilai konservatif (tinggi) dan tetap untuk sementara waktu ketika Nmap memeriksa host yang tidak responsif\&. +.sp +Menspesifikasikan nilai +\fB\-\-max\-rtt\-timeout\fR +dan +\fB\-\-initial\-rtt\-timeout\fR +lebih kecil daripada nilai baku dapat mempercepat waktu pemeriksaan secara signifikan\&. Hal ini terutama benar untuk scan tanpa ping (\fB\-PN\fR), dan terhadap jaringan yang disaring secara ketat\&. Meskipun jangan terlalu agresif\&. Pemeriksaan dapat lebih lama jika anda menspesifikasikan nilai rendah sehingga banyak probe timeout dan dilakukan transmisi ulang ketika respons sedang dalam transit\&. +.sp +Bila seluruh host berada pada jaringan lokal, 100 milidetik adalah nilai +\fB\-\-max\-rtt\-timeout\fR +agresif yang wajar\&. Jika melibatkan routing, ping host pada jaringan terlebih dulu dengan utilitas ping ICMP, atau dengan pembuat paket kustom seperti +\fBhping2\fR +yang lebih mungkin melewati firewall\&. Lihat maximum round trip time out dari sepuluh paket atau lebih\&. Anda mungkin ingin menggandakannya untuk +\fB\-\-initial\-rtt\-timeout\fR +dan mengalikan tiga atau empat untuk +\fB\-\-max\-rtt\-timeout\fR\&. Umumnya saya tidak menset nilai maksimum RTT di bawah 100\ \&ms, berapapun waktu ping\&. Ataupun melebihi 1000\ \&ms\&. +.sp +\fB\-\-min\-rtt\-timeout\fR +merupakan opsi yang jarang digunakan yang berguna ketika jaringan tidak handal, yang bahkan nilai baku Nmap terlalu agresif\&. Karena Nmap hanya mengurangi timeout ke minimum ketika jaringan tampaknya handal, kebutuhan ini tidak umum dan seharusnya dilaporkan sebagai bug ke +nmap\-dev +mailing list\&. +.RE +.PP +\fB\-\-max\-retries \fR\fB\fInumtries\fR\fR (Specify the maximum number of port scan probe retransmissions) +.RS 4 +Ketika Nmap tidak menerima respon atas probe scan port, hal ini dapat berarti bahwa port disaring\&. Atau mungkin probe atau respon hilang dalam jaringan\&. Mungkin juga host target melakukan pembatasan sehingga memblokir respon sementara\&. Sehingga Nmap mencoba kembali mentransmisi probe awal\&. Jika Nmap mendeteksi kehandalan jaringan yang buruk, ia akan mencoba beberapa kali sebelum menyerah\&. Meskipun hal ini bermanfaat untuk akurasi, namun akan memperpanjang waktu pemeriksaan\&. Ketika kinerja lebih diutamakan, pemeriksaan dapat dipercepat dengan membatasi jumlah transmisi ulang yang dibolehkan\&. Anda bahkan dapat menspesifikasikan +\fB\-\-max\-retries 0\fR +untuk mencegah terjadinya transmisi ulang, meskipun hanya direkomendasikan bagi situasi seperti survei informal ketika terjadi port dan host yang tidak didata tidak menjadi masalah\&. +.sp +Bakunya (dengan template tanpa +\fB\-T\fR) adalah membolehkan sepuluh transmisi ulang\&. Jika jaringan tampak handal dan host target tidak membatasi, Nmap biasanya melakukan hanya satu transmisi ulang\&. Sehingga kebanyakan pemeriksaan target tidak terpengaruh dengan mengurangi nilai +\fB\-\-max\-retries\fR +ke nilai yang rendah seperti tiga\&. Nilai tersebut dapat secara substansial mempercepat pemeriksaan host\-host lambat (rate limited)\&. Anda biasanya kehilangan beberapa informasi ketika Nmap menyerah dengan mudah, meskipun hal tersebut lebih disukai daripada membiarkan +\fB\-\-host\-timeout\fR +berakhir dan kehilangan seluruh informasi mengenai target\&. +.RE +.PP +\fB\-\-host\-timeout \fR\fB\fItime\fR\fR (Give up on slow target hosts) +.RS 4 +Beberapa host membutuhkan +\fIbanyak\fR +waktu untuk diperiksa\&. Hal ini mungkin disebabkan hardware atau software yang tidak berkinerja baik atau tidak handal, adanya pembatasan paket, atau firewall yang terlalu ketat\&. Beberapa persen host paling lambat yang diperiksa dapat menghabiskan sebagian besar waktu pemeriksaan\&. Terkadang adalah hal baik mengurangi kerugian dan melewati host\-host tersebut\&. Berikan +\fB\-\-host\-timeout\fR +dengan waktu maksimum anda ingin menunggu\&. Sebagai contoh, berikan +30m +untuk memastikan bahwa Nmap tidak menghabiskan lebih dari setengah jam pada satu host\&. Perhatikan bahwa Nmap mungkin memeriksa host lain pada waktu yang sama dalam waktu tersebut, sehingga itu bukan kerugian lengkap\&. Host yang timeout akan dilewati\&. Tidak ada hasil tabel port, deteksi SO, atau deteksi versi akan dicetak untuk host tersebut\&. +.RE +.PP +\fB\-\-scan\-delay \fR\fB\fItime\fR\fR; \fB\-\-max\-scan\-delay \fR\fB\fItime\fR\fR (Adjust delay between probes) +.RS 4 +Opsi ini menyebabkan Nmap menunggu selama waktu yang diberikan antara setiap probe yang dikirimkan ke host yang diberikan\&. Hal ini terutama bermanfaat dalam hal pembatasan\&. +Mesin\-mesin Solaris (di antara yang lainnya) akan menanggapi paket probe scan UDP dengan hanya satu pesan ICMP per detik\&. Bila dikirimkan oleh Nmap lebih dari itu akan percuma\&. Nilai +\fB\-\-scan\-delay\fR +1s +akan membuat Nmap tetap pada rate lambat tersebut\&. Nmap berusaha untuk mendeteksi pembatasan rate dan menyesuaikan delay scan, namun tidaklah rugi untuk menspesifikasikannya secara eksplisit bila anda telah tahu rate terbaik\&. +.sp +Ketika Nmap menyesuaikan delay scan lebih tinggi untuk menanggapi pembatasn rate, scan akan melambat secara dramatis\&. Opsi +\fB\-\-max\-scan\-delay\fR +menspesifikasikan delay terbesar yang dibolehkan Nmap\&. Nilai +\fB\-\-max\-scan\-delay\fR +rendah akan mempercepat Nmap, namun berisiko\&. Dengan menset nilai ini terlalu rendah dapat menyebabkan transmisi ulang paket yang tidak perlu dan mungkin port\-port luput ketika target mengimplementasikan pembatasan rate ketat\&. +.sp +Penggunaan lain +\fB\-\-scan\-delay\fR +adalah untuk menghindari sistem deteksi dan pencegahan intrusi (IDS/IPS) yang berbasis pembatasan + +.RE +.PP +\fB\-\-min\-rate \fR\fB\fInumber\fR\fR; \fB\-\-max\-rate \fR\fB\fInumber\fR\fR (Directly control the scanning rate) +.RS 4 +Pewaktuan dinamis Nmap melakukan pekerjaan yang baik dalam menemukan kecepatan yagn tepat untuk melakukan pemeriksaan\&. Namun terkadang, anda mungkin mengetahui rate pemeriksaan jaringan yang tepat, atau anda harus memastikan bahwa pemeriksaan akan selesai pada waktu tertentu\&. Atau mungkin anda harus menjaga Nmap dari melakukan pemeriksaan terlalu cepat\&. Opsi +\fB\-\-min\-rate\fR +dan +\fB\-\-max\-rate\fR +dirancang untuk situasi ini\&. +.sp +Ketika opsi +\fB\-\-min\-rate\fR +diberikan Nmap akan melakukan yang terbaik untuk mengirim paket secepat atau lebih cepat daripada rate yang diberikan\&. Argumen merupakan angka real positif mewakili rate paket per detik\&. Sebagai contoh, dengan menspesifikasikan +\fB\-\-min\-rate 300\fR +berarti bahwa Nmap akan berusaha menjaga rate pengiriman pada atau di atas 300 paket per detik\&. Penspesifikasian rate minimum tidak mencegah Nmap mengirimkan lebih cepat bila kondisi memungkinkan\&. +.sp +Demikian pula, +\fB\-\-max\-rate\fR +membatasi rate pengiriman ke nilai maksimum yang diberikan\&. Gunakan +\fB\-\-max\-rate 100\fR, misalnya, untuk membatasi pengiriman 100 paket per detik pada jaringan yang cepat\&. Gunakan +\fB\-\-max\-rate 0\&.1\fR +untuk scan lambat satu paket setiap sepuluh detik\&. Gunakan +\fB\-\-min\-rate\fR +dan +\fB\-\-max\-rate\fR +bersama untuk menjaga rate pada rentang tertentu\&. +.sp +Kedua opsi ini bersifat global, mempengaruhi seluruh pemeriksaan, bukan host individual\&. Mereka hanya mempengaruhi scan port dan pencarian host Fitur lain seperti deteksi SO mengimplementasikan pewaktuan mereka sendiri\&. +.sp +Terdapat dua kondisi ketika rate pemeriksaan aktual kurang dari nilai minimum yang diminta\&. Pertama adalah bila nilai minimum lebih cepat daripada rate tercepat pengiriman Nmap, yang tergantung pada hardware\&. Dalam kasus ini Nmap akan mengirim paket secepat mungkin, namun waspadai bahwa rate tinggi tersebut kemungkinan akan menyebabkan kehilangan akurasi\&. Kasus kedua adalah ketika Nmap tidak memiliki sesuatu untuk dikirim, sebagai contoh di akhir pemeriksaan ketika probe terakhir telah dikirim dan Nmap menunggu mereka time out atau mendapat respon\&. Adalah normal melihat rate pemeriksaan menurun pada akhir pemeriksaan atau di antara kelompok host\&. Rate pengiriman mungkin melebihi nilai maksimum untuk sementara waktu untuk mengimbangi delay yang tak terduga, namun secara rata\-rata rate akan tetap pada atau di bawah nilai maksimum\&. +.sp +Menspesifikasikan nilai rate minimum harus dilakukan dengan hati\-hati\&. Pemeriksaan yang lebih cepat daripada yang dapat didukung oleh jaringan akan menyebabkan hilangnya akurasi\&. Dalam beberapa kasus, dengan menggunakan rate yang lebih cepat dapat membuat pemeriksaan menjadi +\fIlebih lama\fR +daripada bila menggunakan rate yang lebih lambat\&. Hal ini karena algoritma + +adaptive retransmission +Nmap akan mendeteksi kepadatan jaringan yang disebabkan oleh rate pemeriksaan yang berlebihan dan meningkatkan angka transmisi ulang untuk memperbaiki akurasi\&. Jadi meskipun paket dikirim pada rate yang lebih tinggi, namun secara keseluruhan lebih banyak paket yang dikirimkan\&. Batasi angka transmisi ulang dengan opsi +\fB\-\-max\-retries\fR +jika anda ingin menset batas atas waktu scan total\&. +.RE +.PP +\fB\-\-defeat\-rst\-ratelimit\fR +.RS 4 +Banyak host telah lama menggunakan pembatasan rate + +untuk mengurangi jumlah pesan kesalahan ICMP (seperti kesalahan port\-unreachable) yang mereka kirim\&. Saat ini beberapa sistem menggunakan pembatasan limit ke paket RST (reset) yang mereka hasilkan\&. Hal ini akan memperlambat Nmap secara dramatis karena ia akan menyesuaikan pewaktuannya untuk mencerminkan batas rate tersebut\&. Anda dapat memberitahu Nmap untuk mengabaikan limit rate tersebut (untuk scan port seperti SYN scan yang +\fItidak\fR +memperlakukan port non\-responsiv sebagai +open) dengan menspesifikasikan +\fB\-\-defeat\-rst\-ratelimit\fR\&. +.sp +Dengan menggunakan opsi ini akan mengurangi akurasi, karena beberapa port akan tampak non\-responsiv karena Nmap tidak menunggu cukup lama untuk respon RST yang rate\-limited\&. Dengan SYN scan, hasil non\-respon dalam port akan ditandai dengan status +filtered +alih\-alih +closed +ketika menerima paket RST\&. Tambahan ini berguna ketika anda hanya perlu port terbuka, dan beda antara port +closed +dan +filtered +tidak cukup berharga\&. +.RE +.PP +\fB\-T paranoid|sneaky|polite|normal|aggressive|insane\fR (Set a timing template) +.RS 4 +Meski kendali waktu fine\-grained yang didiskusikan dalam bagian sebelumnya adalah powerful dan efektif, beberapa orang menganggapnya membingungkan\&. Terlebih lagi, memilih nilai yang tepat terkadang membutuhkan waktu lebih lama daripada pemeriksaan yang ingin dioptimisasi\&. Sehingga Nmap menawarkan pendekatan yang lebih mudah, dengan enam template waktu\&. Anda dapat menspesifikasikannya dengan opsi +\fB\-T\fR +dan angkanya (0–5) atau namanya\&. Nama templatenya adalah +\fBparanoid\fR\ \&(\fB0\fR), +\fBsneaky\fR\ \&(\fB1\fR), +\fBpolite\fR\ \&(\fB2\fR), +\fBnormal\fR\ \&(\fB3\fR), +\fBaggressive\fR\ \&(\fB4\fR), dan +\fBinsane\fR\ \&(\fB5\fR)\&. Dua yang pertama adalah untuk menghindari IDS\&. Mode Polite memperlambat scan untuk menggunakan lebih sedikit bandwidth dan sumber daya mesin target\&. Mode Normal adalah bakunya sehingga +\fB\-T3\fR +tidak melakukan apapun\&. Mode Aggressive mempercepat scan dengan membuat asumsi bahwa anda berada pada jaringan yang cepat dan handal\&. Akhirnya, mode insane + +mengasumsikan bahwa anda berada pada jaringan yang sangat cepat atau rela mengorbankan akurasi demi kecepatan\&. +.sp +Kesemua template ini memungkinkan user menspesifikasikan seberapa mereka ingin agresif, dan membiarkan Nmap memilih nilai pewaktuan yang tepat\&. Template juga membuat beberapa penyesuaian kecepatan minor yang tidak dimiliki oleh kendali fine\-grained saat ini\&. Sebagai contoh, +\fB\-T4\fR +melarang delay scan dinamis melebihi 10\ \&ms untuk port TCP dan +\fB\-T5\fR +membatasi nilai tersebut di 5\ \&ms\&. Template dapat digunakan dalam kombinasi dengan kendali fine\-grained, dan kendali fine\-grained yang anda berikan akan mengambil alih template pewaktuan baku untuk parameter tersebut\&. Saya merekomendasikan penggunaan +\fB\-T4\fR +ketika memeriksa jaringan modern dan handal\&. Pertahankan opsi tersebut bahkan ketika anda menambah kendali fine\-grained sehingga anda memperoleh manfaat dari optimisasi minor yang diberikan\&. +.sp +Bila anda berada pada koneksi broadband atau ethernet yang memadai, saya akan merekomendasikan untuk selalu menggunakan +\fB\-T4\fR\&. Beberapa orang mencintai +\fB\-T5\fR +meskipun itu terlalu agresif untuk selera saya\&. Orang terkadang memberikan +\fB\-T2\fR +karena mereka pikir ia lebih tidak mungkin akan menyebabkan host crash atau karena mereka mengganggap dirinya secara umum sopan\&. Mereka terkadang tidak menyadari betapa lambatnya +\fB\-T polite\fR\&. Scan mereka akan membutuhkan waktu sepuluh kali lebih lama daripada scan baku\&. Mesin crash dan masalah bandwidth adalah jarang dengan opsi pewaktuan baku (\fB\-T3\fR) sehingga normalnya saya merekomendasikan untuk pemeriksa yang berhati\-hati\&. Menghilangkan deteksi versi lebih efektif daripada bermain dengan nilai pewaktuan dalam mengurangi masalah ini\&. +.sp +Meski +\fB\-T0\fR +dan +\fB\-T1\fR +mungkin berguna untuk menghindari alert IDS, mereka akan membutuhkan waktu yang sangat lama untuk memeriksa ribuan mesin atau port\&. Untuk scan yang demikian lama, anda mungkin lebih menyukai menset nilai pewaktuan secara tepat anda butuhkan alih\-alih bergantung pada nilai template +\fB\-T0\fR +and +\fB\-T1\fR\&. +.sp +Efek utama +\fBT0\fR +adalah serialisasi scan sehingga hanya satu port yang diperiksa pada satu waktu, dan menunggu lima menit antara pengiriman setiap probe\&. +\fBT1\fR +dan +\fBT2\fR +adalah serupa namun mereka hanya menunggu 15 detik dan 0\&.4 detik, antar probe\&. +\fBT3\fR +merupakan perilaku baku Nmap, yang mencakup paralelisasi\&. +\fB\-T4\fR +ekivalen dengan +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR +dan menset delay scan TCP maksimum ke 10 milidetik\&. +\fBT5\fR +ekivalen dengan +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 15m\fR +dan juga menset delay scan TCP maksimum ke 5\ \&md\&. +.RE +.SH "FIREWALL/IDS EVASION AND SPOOFING" +.PP +Banyak pionir Internet mempunyai visi jaringan terbuka global dengan ruang alamat IP universal yang memungkinkan koneksi virtual antara dua node\&. Hal ini membuat host bertindak sebagai peer sebenarnya, menyajikan dan mengambil informasi satu sama lain\&. Orang dapat mengakses sistem di rumah mereka dari tempat kerja, merubah seting kendali iklim atau membuka pintu bagi tamu yang datang awal\&. Visi konektivitas universal ini telah dibatasi dengan kekurangan ruang alamat dan masalah keamanan\&. Di awal tahun 1990\-an, organisasi mulai menggunakan firewall dengan tujuan mengurangi konektivitas\&. Jaringan besar dibatasi dari Internet oleh proxy aplikasi, network address translation, dan filter paket\&. Aliran informasi yang tidak terbatas berubah menjadi regulasi ketat atas kanal komunikasi dan isi yang melaluinya\&. +.PP +Penghalang jaringan seperti firewall dapat membuat pemetaan jaringan sukar\&. Ia tidak akan menjadi lebih mudah, karena mengurangi reconnaissance umum adalah tujuan utama implementasi device tersebut\&. Namun demikian, Nmap menawarkan banyak fitur untuk membantu memahami jaringan yang kompleks ini, dan untuk memverifikasi bahwa filter bekerja sebagaimana yang diharapkan\&. Ia bahkan mendukung mekanisme untuk melewati pertahanan yang diimplementasikan dengan buruk\&. Salah satu metode terbaik untuk memahami postur keamanan jaringan anda adalah dengan berusaha mengalahkannya\&. Tempatkan diri anda dalam pola pikir penyerang, dan gunakan teknik\-teknik dari bagian ini terhadap jaringan anda\&. Lakukan scan FTP bounce, scan idle, serangan fragmentasi, atau berusaha melakukan tunnel melalui salah satu proxy anda\&. +.PP +Selain membatasi aktivitas jaringan, perusahaan semakin meningkatkan pemantauan lalu lintas dengan intrusion detection systems (IDS)\&. Seluruh IDS utama menyertakan aturan yang dirancang untuk mendeteksi scan Nmap karena scan terkadang merupakan awal serangan\&. Banyak dari produk\-produk ini yang sekarang berubah menjadi intrusion +\fIprevention\fR +systems (IPS) +yang secara aktif memblokir lalu lintas yang dianggap berbahaya\&. Sayangnya bagi administrator jaringan dan vendor IDS, mendeteksi tujuan jahat dengan menganalisis data paket merupakan masalah yang berat\&. Penyerang dengan kesabaran, keahlian, dan bantuan opsi\-opsi Nmap tertentu biasanya dapat melewati IDS tanpa terdeteksi\&. Selain itu, administrator harus berurusan dengan hasil false positive dalam jumlah besar sehingga aktivitas yang tidak berbahaya salah didiagnosa dan di\-alert atau diblokir\&. +.PP +Terkadang orang menyarankan bahwa Nmap tidak seharusnya menawarkan fitur\-fitur untuk melewati aturan firewall atau menyelinap dari IDS\&. Mereka berargumen bahwa fitur\-fitur ini akan disalahgunakan oleh penyerang alih\-alih digunakan oleh administrator untuk memperbaiki keamanan\&. Permasalahan dengan logika ini adalah metode\-metode tersebut tetap akan digunakan oleh penyerang, yang akan mencari tool lain atau menambahkan fungsionalitas tersebut ke dalam Nmap\&. Sedangkan, administrator akan merasa lebih sulit melakukan pekerjaan mereka\&. Menggunakan server FTP yang telah dipatch dan modern adalah pertahanan yang jauh lebih baik daripada mencegah penyebaran tool implementasi serangan FTP bounce\&. +.PP +Tidak ada peluru ajaib (atau opsi Nmap) untuk mendeteksi dan menghindari firewall dan sistem IDS\&. Ia membutuhkan kemampuan dan pengalaman\&. Tutorial adalah di luar cakupan panduan referensi ini, yang hanya mendaftarkan opsi\-opsi yang relevan dan menjelaskan apa yang mereka lakukan\&. +.PP +\fB\-f\fR (fragment packets); \fB\-\-mtu\fR (using the specified MTU) +.RS 4 +Opsi +\fB\-f\fR +menyebabkan scan yang diminta (termasuk ping scan) untuk menggunakan paket IP terfragmentasi kecil\&. Idenya adalah membagi header TCP ke beberapa paket untuk membuat filter paket, IDS, dan gangguan lain kesulitan mendeteksi apa yang sedang anda lakukan\&. Hati\-hatilah dengan ini! Beberapa program memiliki kesulitan menangani paket\-paket kecil ini\&. Sniffer old\-school bernama Sniffit akan menjadi segmentation faulted segera setelah menerima fragmen pertama\&. Spesifikasikan opsi ini sekali, dan Nmap membagi paket ke dalam delapan byte atau kurang setelah header IP\&. Sehingga paket header TCP 20\-byte akan dibagi ke dalam tiga paket\&. Dua paket dengan delapan byte header TCP, dan satu paket dengan empat byte akhir\&. Tentu saja setiap fragmen juga memiliki header IP\&. Spesifikasikan +\fB\-f\fR +lagi untuk menggunakan fragmen 16 byte (mengurangi jumlah fragmen)\&. +Atau anda dapat menspesifikasikan ukuran offset anda sendiri dengan opsi +\fB\-\-mtu\fR\&. Jangan berikan opsi +\fB\-f\fR +bila anda menggunakan +\fB\-\-mtu\fR\&. Offset harus merupakan kelipatan delapan\&. Meskipun paket fragmented tidak akan melewati filter paket dan firewall yang membuat antrian seluruh fragment IP, seperti opsi +\fICONFIG_IP_ALWAYS_DEFRAG\fR +dalam kernel Linux, beberapa jaringan tidak dapat mengatasi kerugian kinerja yang disebabkannya dan membiarkan opsi tersebut tidak aktif\&. Yang lain tidak dapat mengaktifkannya karena fragmen dapat mengambil rute yang berbeda ke jaringan mereka\&. Beberapa sistem sumber mendeframentasi paket outgoing dalam kernel\&. Linux dengan modul pelacakan koneksi iptable + +adalah salah satu contohnya\&. Lakukan scan ketika sniffer seperti +Wireshark +berjalan untuk memastikan bahwa paket yang dikirim terfragmentasi\&. Jika OS host anda menyebabkan masalah, cobalah opsi +\fB\-\-send\-eth\fR +untuk melewati lapisan IP dan mengirim frame ethernet raw\&. +.sp +Fragmentasi hanya didukung oleh fitur paket raw Nmap, yang mencakup scan port TCP dan UDP (kecuali scan connect dan FTP bounce scan) dan deteksi SO\&. Fitur seperti deteksi versi dan Nmap Scripting Engine umumnya tidak mendukung fragmentasi karena mereka tergantung pada stack TCP host anda untuk berkomunikasi dengan layanan target\&. +.RE +.PP +\fB\-D \fR\fB\fIdecoy1\fR\fR\fB[,\fIdecoy2\fR]\fR\fB[,ME]\fR\fB[,\&.\&.\&.]\fR (Cloak a scan with decoys) +.RS 4 +Menyebabkan dilakukannya decoy scan, yang membuat host remote menganggap bahwa host\-host yang anda berikan sebagai umpan (decoy) juga melakukan pemeriksaan jaringan target\&. Karenanya IDS mereka mungkin melaporkan scan port sebanyak 5–10 dari alamat IP yang unik, tetapi mereka tidak akan tahu IP mana yang memeriksa mereka dan mana yang umpan\&. Meski hal ini dapat dikalahkan dengan router path tracing, response\-dropping, dan mekanisme aktif lainnya, namun ia umumnya merupakan teknik efektif untuk menyembunyikan alamat IP anda\&. +.sp +Pisahkan setiap host umpan dengan koma, dan anda dapat secara opsional menggunakan +ME +sebagai salah satu umpan untuk mewakili posisi alamat IP real anda\&. Jika anda menempatkan +ME +pada posisi keenam atau lebih, beberapa detektor scan port umum (seperti Solar Designer\*(Aqs +Scanlogd yang bagus) +tidak akan menampilkan alamat IP anda sama sekali\&. Jika anda tidak menggunakan +ME, Nmap akan menempatkan anda pada posisi acak\&. Anda dapat juga menggunakan +RND +untuk menghasilkan alamat IP acak dan non\-reserved, atau +RND:\fInumber\fR +untuk menghasilkan alamat +\fInumber\fR +.sp +Perhatikan bahwa host yang anda gunakan sebagai umpan harus hidup atau anda akan secara tidak sengaja mebanjiri target anda dengan SYN\&. Juga mudah menentukan host mana yang memeriksa jika hanya satu host saja yang hidup pada jaringan\&. Anda mungkin ingin menggunakan alamat IP alih\-alih nama (sehingga jaringan umpan tidak melihat anda dalam log DNS mereka)\&. +.sp +Umpan digunakan dalam scan ping awal (menggunakan ICMP, SYN, ACK, atau apapun) dan selama fase pemeriksaan port\&. Umpan juga digunakan selama deteksi SO (\fB\-O\fR)\&. Umpan tidak bekerja dengan deteksi versi atau scan connect TCP\&. Ketika berlaku scan delay, delay ditegakkan antara setiap batch probe palsu, tidak antara setiap probe invididual\&. Karena umpan dikirim sebagai satu batch keseluruhan, mereka mungkin melanggar batasan kendali kongesti secara sementara\&. +.sp +Penting diperhatikan bahwa penggunaan terlalu banyak umpan mungkin memperlambat scan anda dan secara potensial membuatnya kurang akurat\&. Dan juga, beberapa ISP akan menyaring paket\-paket palsu anda, namun banyak juga yang tidak membatasi paket IP palsu\&. +.RE +.PP +\fB\-S \fR\fB\fIIP_Address\fR\fR (Spoof source address) +.RS 4 +Dalam beberapa keadaan, Nmap mungkin tidak dapat menentukan alamat sumber anda (Nmap akan memberitahu anda hal ini)\&. Dalam situasi ini, gunakan +\fB\-S\fR +dengan alamat IP interface yang ingin anda gunakan untuk mengirim paket\&. +.sp +Kemungkinan lain penggunaan flag ini adalah untuk memalsukan scan untuk membuat target berpikir bahwa +\fIorang lain \fR +sedang memeriksa mereka\&. Bayangkan sebuah perusahaan sedang diperiksa portnya secara berulang\-ulang oleh pesaing! Opsi +\fB\-e\fR +dan +\fB\-PN\fR +umumnya dibutuhkan untuk penggunaan seperti ini\&. Perhatikan bahwa anda biasanya tidak menerima paket reply (mereka akan ditujukan ke alamat IP yang anda palsukan), sehingga Nmap tidak akan menghasilkan laporan yang berguna\&. +.RE +.PP +\fB\-e \fR\fB\fIinterface\fR\fR (Use specified interface) +.RS 4 +Memberitahu Nmap interface untuk mengirim dan menerima paket\&. Nmap seharusnya dapat mendeteksinya secara otomatis, namun ia akan memberitahu anda bila ia tidak dapat melakukannya\&. +.RE +.PP +\fB\-\-source\-port \fR\fB\fIportnumber\fR\fR\fB;\fR \fB\-g \fR\fB\fIportnumber\fR\fR (Spoof source port number) +.RS 4 +Salah satu kesalahan konfigurasi umum yang mengagetkan adalah mempercayai lalu lintas hanya berdasarkan nomor port sumber\&. Adalah mudah memahami bagaimana hal ini terjadi\&. Administrator akan mensetup firewall baru, hanya untuk dibanjiri dengan keluhan user yang aplikasinya berhenti bekerja\&. Secara khusus, DNS mungkin tidak berfungsi karena reply UDP DNS dari server eksternal tidak dapat lagi memasuki jaringan\&. FTP adalah contoh umum lainnya\&. Dalam transfer FTP aktif, server remote berusaha membuka koneksi ke klien untuk mengirim file yang diminta\&. +.sp +Terdapat solusi aman untuk masalah ini, seringkali berupa proxy level\-aplikasi atau modul firewall protocol\-parsing\&. Sayangnya terdapat pula solusi yang lebih mudah dan tidak aman\&. Dengan memperhatikan bahwa balasan DNS datang dari port 53 dan active FTP dari port 20, banyak aadministrator terjebak dengan membolehkan lalu lintas incoming dari port\-port ini\&. Mereka terkadang berasumsi bahwa tidak ada penyerang akan memperhatikan dan memanfaatkan lubang firewall ini\&. Dalam kasus lain, administrator menganggap ini sebagai solusi sementara hingga mereka dapat mengimplementasikan solusi yang lebih aman\&. Lalu mereka lupa melakukan upgrade keamanan\&. +.sp +Administrator jaringan yang terlalu banyak kerja bukan satu\-satunya yang jatuh dalam jebakan ini\&. Sejumlah produk dikirim dengan rule tidak aman ini\&. Bahkan Microsoft telah bersalah\&. Filter IPsec yang disertakan dengan Windows 2000 dan Windows XP berisikan sebuah rule implisit yang membolehkan semua lalu lintas TCP atau UDP dari port 88 (Kerberos)\&. Dalam kasus terkenal lain, firewall personal Zone Alarm hingga versi 2\&.1\&.25 membolehkan sembarang paket UDP incoming dengan port sumber 53 (DNS) atau 67 (DHCP)\&. +.sp +Nmap menawarkan opsi +\fB\-g\fR +dan +\fB\-\-source\-port\fR +(mereka ekivalen) untuk mengeksploitasi kelemahan ini\&. Cukup berikan nomor port dan Nmap akan mengirim paket dari port itu bila memungkinkan\&. Nmap harus menggunakan nomor port yang berbeda bagi beberapa tes deteksi SO tertentu agar bekerja dengan benar, dan request DNS mengabaikan flag +\fB\-\-source\-port\fR +karena Nmap mengandalkan pada librari sistem untuk menangani hal ini\&. Kebanyakan scan TCP, termasuk SYN scan, mendukung opsi secara penuh, demikian pula scan UDP\&. +.RE +.PP +\fB\-\-data\-length \fR\fB\fInumber\fR\fR (Append random data to sent packets) +.RS 4 +Normalnya Nmap mengirim paket minimalis yang hanya berisi header\&. Sehingga paket TCP umumnya berukuran 40 byte dan request ICMP echo cuma 28\&. Opsi ini memberitahu Nmap untuk menambahkan random byte sejumlah tertentu untuk kebanyakan paket yang dikirimnya\&. Paket deteksi SO (\fB\-O\fR) tidak terpengaruh + +karena akurasinya membutuhkan konsistensi probe, namun kebanyakan paket ping dan portscan mendukung opsi ini\&. Ia sedikit memperlambat, namun dapat membuat scan tidak terlalu mencurigakan\&. +.RE +.PP +\fB\-\-ip\-options \fR\fB\fIS|R [route]|L [route]|T|U \&.\&.\&. \fR\fR\fB;\fR \fB\-\-ip\-options \fR\fB\fIhex string\fR\fR (Send packets with specified ip options) +.RS 4 +\m[blue]\fBProtokol IP\fR\m[]\&\s-2\u[11]\d\s+2 +menawarkan beberapa opsi yang dapat ditempatkan pada header paket\&. Tidak seperti opsi TCP yang umum, opsi IP jarang ditemukan karena masalah kepraktisan dan keamanan\&. Nyatanya, banyak router Internet memblokir opsi yang paling berbahaya seperti source routing\&. Namun opsi dapat tetap berguna dalam beberapa kasus untuk menentukan dan memanipulasi rute jaringan ke mesin target\&. Sebagai contoh, anda mungkin dapat menggunakan opsi record route untuk menentukan path ke target bahkan ketika pendekatan tradisional bergaya traceroute gagal\&. Atau bila paket anda di\-drop oleh firewall tertentu, anda mungkin dapat menspesifikasikan rute yang berbeda dengan opsi source routing yang ketat atau longgar\&. +.sp +Cara paling powerful untuk menspesifikasikan opsi IP adalah cukup dengan memberikan nilainya sebagai argumen ke +\fB\-\-ip\-options\fR\&. Dahului setiap angka hex dengan +\ex +lalu dua digit\&. Anda dapat mengulang karakter tertentu dengan menambahkan tanda bintang dan diikuti jumlah perulangan yang anda inginkan\&. Sebagai contoh, +\ex01\ex07\ex04\ex00*36\ex01 +adalah sebuah string hex berisi 36 NUL byte\&. +.sp +Nmap juga menawarkan mekanisme shortcut untuk menspesifikasikan opsi\&. Cukup berikan huruf +R, +T, atau +U +untuk meminta record\-route, +record\-timestamp, +atau keduanya, Source routing +ketat atau longgar dapat dispesifikasikan dengan tanda +L +atau +S +diikuti oleh spasi dan kemudian daftar alamat IP yang dipisah\-spasi\&. +.sp +Jika anda ingin melihat opsi dalam paket yang dikirim dan diterima, berikan +\fB\-\-packet\-trace\fR\&. Informasi dan contoh lebih lanjut tentang penggunaan opsi IP dengan Nmap, dapat dilihat di +\m[blue]\fB\%https://seclists.org/nmap-dev/2006/q3/0052.html\fR\m[]\&. +.RE +.PP +\fB\-\-ttl \fR\fB\fIvalue\fR\fR (Set IP time\-to\-live field) +.RS 4 +Set field time\-to\-live IPv4 dalam paket yang dikirim ke nilai yang diberikan\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Randomize target host order) +.RS 4 +Beritahu Nmap untuk mengacak setiap kelompok hingga 16384 host sebelum memeriksa merekaa\&. Hal ini dapat membuat scan kurang mencurigakan bagi berbagai sistem monitoring jaringan, terutama bila anda menggabungkannya dengan opsi pewaktuan yang lambat\&. Jika anda ingin mengacak dalam ukuran yang lebih besar, naikkan nilai +\fIPING_GROUP_SZ\fR +dalam +nmap\&.h +dan kompilasi ulang\&. Solusi alternatif adalah menghasilkan daftar IP target dengan list scan (\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR), acaklah dengan skrip Perl, lalu berikan seluruh daftar ke Nmap dengan +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac \fR\fB\fIMAC address, prefix, or vendor name\fR\fR (Spoof MAC address) +.RS 4 +Meminta Nmap untuk menggunakan alamat MAC + +yang diberikan untuk seluruh frame ethernet raw yang dikirimkan\&. Opsi ini mengimplikasikan +\fB\-\-send\-eth\fR +untuk memastikan bahwa Nmap benar\-benar mengirim paket level\-ethernet\&. MAC yang diberikan dapat dalam beragam format\&. Jika berupa angka +0, Nmap memilih alamat MAC yang acak untuk sesi itu\&. Jika string yang diberikan adalah angka genap digit hex (setiap digit berpasangan dipisahkan oleh tanda titik dua), Nmap akan menggunakannya sebagai MAC\&. Jika diberikan kurang dari 12 digit hex, Nmap mengisi sisa 6 byte\-nya dengan nilai acak\&. Jika argumen bukanlah nol atau string hex, Nmap mencari melalui file +nmap\-mac\-prefixes +untuk menemukan nama vendor berisikan string yang diberikan (tidak case sensitive)\&. Jika ditemukan kecocokan, Nmap menggunakan OUI (three\-byte prefix) +vendor dan mengisi tiga byte sisanya secara random\&. Contoh argumen yang valid +\fB\-\-spoof\-mac\fR +adalah +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2, dan +Cisco\&. Opsi ini hanya mempengaruhi scan paket raw seperti SYN scan atau deteksi SO, dan tidak berlaku pada fitur berorientasi\-koneksi seperti deteksi versi atau Nmap Scripting Engine\&. +.RE +.PP +\fB\-\-badsum\fR (Send packets with bogus TCP/UDP checksums) +.RS 4 +Meminta Nmap untuk menggunakan checksum TCP atau UDP tidak valid untuk paket yang dikirimkan ke host target\&. Karena secara virtual seluruh stack IP host akan secara tepat men\-drop paket ini, sembarang respon yang diterima adalah kemungkinan berasal dari firewall atau IDS yang tidak peduli untuk memverifikasi checksum\&. Detil lebih lanjut mengenai teknik ini, dapat dilihat pada +\m[blue]\fB\%https://nmap.org/p60-12.html\fR\m[] +.RE +.SH "OUTPUT" +.PP +Manfaat tool keamanan ditentukan oleh output yang dihasilkannya\&. Algoritma dan tes yang kompleks tidaklah berguna bila mereka tidak dipresentasikan dalam cara yang terorganisir dan lengkap\&. Dengan beragamnya cara penggunaan Nmap oleh orang dan software lainnya, tidak ada format yang dapat memuaskan semuanya\&. Sehingga Nmap memberikan beberapa format, termasuk mode interaktif agar manusia dapat membaca secara langsung dan XML untuk memudahkan parsing oleh software\&. +.PP +Selain memberikan beragam format output, Nmap juga menyediakan opsi untuk mengendalikan verbositas output dan pesan debug\&. Tipe output dapat dikirim ke output standar atau ke file\&. File output dapat pula digunakan untuk meresume scan\&. +.PP +Nmap menyediakan output dalam lima format berbeda\&. Bakunya disebut +interactive output, +dan dikirimkan ke output standar (stdout)\&. +Terdapat juga +normal output, +yang serupa dengan interaktif kecuali ia memberikan lebih sedikit informasi runtime dan peringatan karena ia diharap akan dianalisis setelah scan setelah alih\-alih secara interaktif\&. +.PP +XML output +adalah salah stau tipe output paling penting, karena ia dapat dikonversi ke HTML, dapat secara mudah diparse oleh program seperti Nmap graphical user interfaces, atau diimpor ke database\&. +.PP +Dua output terakhir adalah +grepable output +sederhana yang menyertakan informasi host target pada satu baris tunggal, dan +sCRiPt KiDDi3 0utPUt +bagi user yang mengganggap dirinya sebagai |<\-r4d\&. +.PP +Meskipun output interaktif merupakan bakunya dan tidak memiliki opsi command\-line, opsi keempat format lainnya menggunakan sintaks yang sama\&. Mereka mengambil satu argumen, nama file tempat menampung hasil\&. User dapat menspesifikasikan banyak format, namun setiap format hanya boleh dispesifikasikan satu kali\&. Sebagai contoh, anda mungkin ingin menyimpan output normal untuk review anda dan output XML untuk analisis programatik\&. Anda dapat melakukan hal ini dengan opsi +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Walau bab ini menggunakan nama sederhana seperti +myscan\&.xml +untuk singkatnya, disarankan untuk menggunakan nama yang lebih deskriptif\&. Nama yang dipilih merupakan masalah preferensi personal, meski saya menggunakan nama panjang yang menyertakan tanggal scan dan kata yang menjelaskan scan, ditempatkan dalam sebuah direktori dengan nama perusahaan yang saya periksa\&. +.PP +Meski opsi\-opsi ini menyimpan hasil ke file, Nmap tetap mencetak output interaktif ke stdout seperti biasa\&. Sebagai contoh, perintah +\fBnmap \-oX myscan\&.xml target\fR +mencetak XML ke +myscan\&.xml +dan mengisi seluruh output standar dengan hasil interaktif yang sama dengan yang akan dicetaknya bila +\fB\-oX\fR +tidak diberikan\&. Anda dapat merubahnya dengan memberikan karakter hyphen sebagai argumen ke salah satu tipe format\&. Hal ini membuat Nmap menonaktifkan output interaktif, dan mencetak hasilnya dalam format yang anda spesifikasikan ke stream output standar\&. Sehingga perintah +\fBnmap \-oX \- target\fR +hanya akan mengirim output XML ke stdout\&. +Kesalahan serius akan tetap dicetak ke stream kesalahan normal, stderr\&. +.PP +Tidak seperti beberapa argumen Nmap, spasi antara flag opsi logfile (seperti +\fB\-oX\fR) dan namafile atau hyphen adalah wajib\&. Jika anda menghilangkan flag dan memberi argumen seperti +\fB\-oG\-\fR +or +\fB\-oXscan\&.xml\fR, fitur kompatibiltas backward Nmap akan menyebabkan pembuatan +\fInormal format\fR +file output bernama +G\- +dan +Xscan\&.xml\&. +.PP +Seluruh argumen ini mendukung konversi +\fBstrftime\fR\-like +dalam namafile\&. +%H, +%M, +%S, +%m, +%d, +%y, dan +%Y +semuanya serupa seperti dalam +\fBstrftime\fR\&. +%T +sama dengan +%H%M%S, +%R +sama dengan +%H%M, dan +%D +sama dengan +%m%d%y\&. Sebuah +% +diikuti dengan sembarang karakter hanya menghasilkan karakter itu (%% +memberikan simbol persentase\&. Sehingga +\fB\-oX \*(Aqscan\-%T\-%D\&.xml\*(Aq\fR +akan menggunakan file XML dalam bentuk +scan\-144840\-121307\&.xml\&. +.PP +Nmap juga menawarkan opsi untuk mengendalikan verbositas scan dan untuk menambah file output daripada menghapusnya\&. Seluruh opsi ini dijelaskan di bawah\&. +.PP +\fBFormat Output Nmap\fR +.PP +\fB\-oN \fR\fB\fIfilespec\fR\fR (normal output) +.RS 4 +normal output +akan diarahkan ke nama file yang diberikan\&. Seperti yang didiskusikan di atas, opsi ini sedikit berbeda dari +interactive output\&. +.RE +.PP +\fB\-oX \fR\fB\fIfilespec\fR\fR (XML output) +.RS 4 +XML output +diarahkan ke namafile yang diberikan\&. Nmap menyertakan document type definition (DTD) yang memungkinkan parser XML memvalidasi output XML Nmap\&. Walau utamanya ditujukan untuk penggunaan programatik, ia dapat juga membantu manusia menginterpretasikan output XML Nmap\&. DTD mendefinisikan elemen legal format, dan seringkali merinci atribut dan nilai yang dapat mereka terima\&. Versi terakhir selalu tersedia di +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]\&. +.sp +XML memberikan format stabil yang dapat secara mudah diparse oleh software\&. Parser XML yang bebas tersedia untuk bahasa pemrograman utama, termasuk C/C++, Perl, Python, dan Java\&. Orang bahkan telah menulis binding untuk kebanyakan bahasa ini untuk menangani output Nmap dan dijalankan secara khusus\&. Contohnya adalah +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[12]\d\s+2 + +and +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[13]\d\s+2 + +dalam Perl CPAN\&. Dalam kebanyakan kasus bagi interface aplikasi dengan Nmap yang sulit, XML merupakan format yang lebih disukai\&. +.sp +Output XML mengacu ke XSL stylesheet yang dapat digunakan untuk memformat hasilnya sebagai HTML\&. Cara termudah menggunakan file ini adalah dengan memuat output XML dalam sebuah browser web seperti Firefox atau IE\&. Secara baku, ini hanya bekerja pada mesin tempat anda menjalankan Nmap (atau yang dikonfigurasi serupa) akibat path sistem file +nmap\&.xsl +yang di\-hardcoded\&. Gunakan opsi +\fB\-\-webxml\fR +atau +\fB\-\-stylesheet\fR +untuk membuat file XML portabel yang dibaca sebagai HTML pada semua mesin yang dapat terkoneksi ke web\&. +.RE +.PP +\fB\-oS \fR\fB\fIfilespec\fR\fR (ScRipT KIdd|3 oUTpuT) +.RS 4 +Output ini seperti output interaktif, kecuali kemudian ia diprose lagi agar sesuai dengan l33t HaXXorZ yang sebelumnya merendahkan Nmap karena kapitalisasi dan ejaan yang konsisten\&. Perlu diperhatikan bahwa opsi ini mengolok\-olok script kiddies alih\-alih +\(lqmembantu mereka\(rq\&. +.RE +.PP +\fB\-oG \fR\fB\fIfilespec\fR\fR (grepable output) +.RS 4 +Format output ini dijelaskan terakhir karena telah didepresiasi\&. Format output XML jauh lebih powerful, dan juga cukup nyaman bagi pengguna berpengalaman\&. XML merupakan standar yang memiliki lusinan parser bagus, sementara output grepable merupakan hack sederhana buatan saya\&. XML dapat dikembangkan untuk mendukung fitur baru Nmap ketika dirilis, sementara saya seringkali harus menghilangkan fitur\-fitur tersebut dari output grepable karena tidak ada tempat untuk menaruh mereka\&. +.sp +Namun demikian, output grepable masih cukup populer\&. Ia merupakan format sederhana yang mendaftar setiap host pada satu baris dan dapat secara mudah dicari dan diparse dengan tool standar Unix seperti grep, awk, cut, sed, diff, dan Perl\&. Bahkan saya menggunakannya untuk test sekali yang dilakukan pada perintah beris\&. Menemukan seluruh host dengan port SSH terbuka atau yang menjalankan Solaris hanya membutuhkan satu grep sederhana untuk mengidentifikasikan host, yang di\-pipe ke perintah awk atau cut untuk mencetak field yang diinginkan\&. +.sp +Output grepable terdiri dari komentar (baris yang dimulai dengan tanda pound (#)) +dan baris target\&. Sebuah baris target menyertakan kombinasi enam field berlabel, yang dipisahkan oleh tab dan diikuti oleh tanda titik dua\&. Field\-fieldnya adalah +Host, +Ports, +Protocols, +Ignored State, +OS, +Seq Index, +IP ID, dan +Status\&. +.sp +Field yang paling penting umumnya adalah +Ports, yang memberikan detil pada setiap port yang menarik\&. Ia merupakan daftar entri port yang dibatasi koma\&. Setiap entri port mewakili satu port menarik, dan memiliki bentuk subfield yang dibatasi oleh tujuh garis miring (/)\&. Subfieldnya adalah: +Port number, +State, +Protocol, +Owner, +Service, +SunRPC info, dan +Version info\&. +.sp +Sebagaimana dengan output XML, man page ini tidak memungkinkan untuk mendokumentasi seluruh format\&. Rincian lebih lanjut mengenai format output grepable Nmap tersedia +dari \m[blue]\fB\%https://nmap.org/book/output-formats-grepable-output.html\fR\m[]\&. +.RE +.PP +\fB\-oA \fR\fB\fIbasename\fR\fR (Output to all formats) +.RS 4 +Sebagai kenyamanan, anda dapat menspesifikasikan +\fB\-oA \fR\fB\fIbasename\fR\fR +untuk menyimpan hasil scan dalam format normal, XML, dan grepable sekaligus\&. Mereka disimpan dalam +\fIbasename\fR\&.nmap, +\fIbasename\fR\&.xml, dan +\fIbasename\fR\&.gnmap\&. Seperti kebanyakan program, anda dapat memberi awalan nama file dengan path direktori, seperti +~/nmaplogs/foocorp/ +pada Unix atau +c:\ehacking\esco +pada Windows\&. +.RE +.PP +\fBOpsi verbositas dan debugging\fR +.PP +\fB\-v\fR (Increase verbosity level) +.RS 4 +Peningkatan level verbositas, menyebabkan Nmap mencetak lebih banyak informasi tentang scan yang sedang berjalan\&. Port terbuka ditunjukkan saat ditemukan dan prakiraan waktu selesai disediakan ketika Nmap berpikir scan akan membutuhkan lebih dari beberapa menit\&. Gunakan dua kali atau lebih untuk lebih meningkatkan verbositas\&. +.sp +Kebanyakan perubahan hanya mempengaruhi output interaktif, dan beberapa juga mempengaruhi output normal dan script kiddie\&. Tipe output lainnya ditujukan untuk diproses oleh mesin, sehingga Nmap dapat memberikan detil yang substansial dalam format tersebut tanpa melelahkan user\&. Namun demikian, terdapat beberapa perubahan dalam mode lainnya ketika ukuran output dapat dikurangi secara berarti dengan meniadakan beberapa detil\&. Sebagai contoh, baris perintah dalam output grepable yang memberikan daftar seluruh port yang discan hanya dicetak dalam mode verbose karena ia cukup panjang\&. +.RE +.PP +\fB\-d [level]\fR (Increase or set debugging level) +.RS 4 +Ketika mode verbose tidak memberikan data yang cukup bagi anda, tersedia debugging untuk membanjiri anda dengan data! Sebagaimana dengan opsi verbositas (\fB\-v\fR), debugging diaktifkan dengan flag perintah baris (\fB\-d\fR) dan level debug dapat ditingkatkan dengan menspesifikasikannya berulang kali\&. + +Selain itu, anda dapat menset level debug dengan memberikan argumen ke +\fB\-d\fR\&. Sebagai contoh, +\fB\-d9\fR +menset level sembilan\&. Itu adalah level efektif tertinggi dan akan menghasilkan ribuan baris kecuali anda menjalankan scan yang sangat sederhana dengan sedikit port dan target\&. +.sp +Debugging output berguna ketika diduga terdapat bug dalam Nmap, atau anda bingung mengenai apa yang dilakukan Nmap dan alasannya\&. Karena fitur ini lebih ditujukan bagi pengembang, baris debug tidak selalu jelas\&. Anda mungkin akan menemui sesuatu seperti : +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Jika anda tidak memahami sebuah baris, anda dapat mengabaikannya, mencarinya dalam kode sumber, atau meminta bantuan dari list pengembangan (nmap\-dev)\&. +Beberapa baris cukup jelas, namun pesannya dapat semakin tidak jelas ketika level debug dinaikkan\&. +.RE +.PP +\fB\-\-reason\fR (Host and port state reasons) +.RS 4 +Tampilkan alasan setiap port diset ke status khusus dan alasan setiap host up atau down\&. Opsi ini menampilkan tipe paket yang menentukan status port atau host\&. Sebagai contoh, sebuah paket +RST +dari port tertutup atau echo reply dari host yang hidup\&. Informasi yang disediakan Nmap ditentukan oleh jenis scan atau ping\&. Scan SYN dan ping SYN (\fB\-sS\fR +dan +\fB\-PS\fR) sangat rinci, namun TCP connect scan (\fB\-sT\fR) dibatasi oleh implementasi system call +\fBconnect\fR\&. Fitur ini secara otomatis diaktifkan oleh opsi debug (\fB\-d\fR) +dan hasilnya disimpan dalam file log XML bahkan bila opsi ini tidak diberikan\&. +.RE +.PP +\fB\-\-stats\-every \fR\fB\fItime\fR\fR (Print periodic timing stats) +.RS 4 +Mencetak status waktu secara periodik setelah setiap interval +\fItime\fR\&. Waktu adalah spesifikasi yang dijelaskan dalam +bagian bernama \(lqPEWAKTUAN DAN KINERJA\(rq; sehingga sebagai contoh, gunakan +\fB\-\-stats\-every 10s\fR +untuk memperoleh update status setiap 10 detik\&. Update dicetak ke output interaktif (layar) dan output XML\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Trace packets and data sent and received) +.RS 4 +Menyebabkan Nmap untuk mencetak ringkasan seiap paket yang dikirim atau diterima\&. Opsi ini seringkali digunakan untuk debugging, namun juga bermanfaat bagi user baru untuk memahami secara tepat apa yang sebenarnya dilakukan oleh Nmap\&. Untuk menghindari pencetakan ribuan baris, anda mungkin ingin membatasi jumlah port yang ingin discan, seperti +\fB\-p20\-30\fR\&. Jika anda hanya mementingkan proses subsistem deteksi versi, gunakan +\fB\-\-version\-trace\fR\&. Jika anda hanya peduli dengan script tracing, berikan +\fB\-\-script\-trace\fR\&. Dengan +\fB\-\-packet\-trace\fR, anda memperoleh semua hal di atas\&. +.RE +.PP +\fB\-\-open\fR (Show only open (or possibly open) ports) +.RS 4 +Terkadang anda hanya peduli tentang port yang benar\-benar dapat dikoneksi (open +ones), dan tidak ingin mengacaukan hasilnya dengan port +closed, +filtered, dan +closed|filtered\&. Kustomisasi output normalnya dilakukan setelah scan dengan menggunakan tool seperti +grep, +awk, dan +Perl, namun fitur ini ditambahkan karena banyaknya permintaan\&. Berikan +\fB\-\-open\fR +untuk hanya melihat port +open, +open|filtered, dan +unfiltered\&. Ketiga port ini diperlakukan seperti normalnya, yang berarti bahwa +open|filtered +dan +unfiltered +dapat digabungkan bila terdapat dalam jumlah banyak\&. +.RE +.PP +\fB\-\-iflist\fR (List interfaces and routes) +.RS 4 +Cetak daftar interface dan rute sitem yang dideteksi oleh Nmap\&. Opsi ini berguna untuk debugging masalah routing atau kesalahan karakterisasi device (seperti Nmap memperlakukan koneksi PPP sebagai ethernet)\&. +.RE +.PP +\fB\-\-log\-errors\fR (Log errors/warnings to normal mode output file) +.RS 4 +Peringatan dan kesalahan dicetak oleh Nmap biasanya hanya ke layar (output interaktif), membiarkan file output format normal (biasanya dispesifikan dengan +\fB\-oN\fR) tidak terganggu\&. Ketika anda ingin melihat pesan\-pesan tersebut dalam file output normal yang anda spesifikasikan, tambahkan opsi ini\&. Ia berguna ketika anda tidak melihat output interaktif atau ketika anda ingin merekam kesalahan saat men\-debug masalah\&. Pesan kesalahan dan peringatan akan tetap muncul dalam mode interaktif\&. Hal ini tidak bekerja banyak kebanyakan kesalahan yang terkait dengan argumen perintah baris yang buruk karena Nmap mungkin belum menginisialisasi file outputnya\&. Sebagai tambahan, beberapa pesan kesalahan dan peringatan Nmap menggunakan sistem yang berbeda yang beum mendukung opsi ini\&. +.sp +Sebagai alternatif bagi +\fB\-\-log\-errors\fR +adalah dengan mengarahkan output interaktif (termasuk stream standard error) ke file\&. Kebanyakan shell Unix menjadikan pendekatan ini mudah, meskipun ia dapat sukar dilakukan pada Windows\&. +.RE +.PP +\fBMiscellaneous output options\fR +.PP +\fB\-\-append\-output\fR (Append to rather than clobber output files) +.RS 4 +Ketika anda menspesifikasikan nama file ke flag format output seperti +\fB\-oX\fR +atau +\fB\-oN\fR, file tersebut secara baku akan ditimpa\&. Jika anda ingin menjaga isi file yang ada dan menambahkan hasil baru, spesifikasikan opsi +\fB\-\-append\-output\fR\&. Seluruh nama file output yang dispesifikasikan dalam eksekusi Nmap tersebut kemudian akan ditambahkan alih\-alih ditimpa\&. Hal ini tidak bekerja baik untuk data scan XML (\fB\-oX\fR) karena file yang dihasilkan umumnya tidak akan dapat diparse dengan tepat hingga anda memperbaikinya secara manual\&. +.RE +.PP +\fB\-\-resume \fR\fB\fIfilename\fR\fR (Resume aborted scan) +.RS 4 +Beberapa penggunaan Nmap ekstensif membutuhkan waktu hingga dalam hitungan hari\&. Scan semacam itu tidak selalu berjalan hingga selesai\&. Pembatasan mungkin mencegah Nmap dijalankan ketika waktu kerja, jaringan dapat down, mesin yang menjalankan Nmap mungkin mengalami reboot terencana atau tidak, atau bahkan Nmap mengalami crash\&. Administrator yang menjalankan Nmap dapat membatalkannya demi alasan lainnya, +ctrl\-C\&. Memulai seluruh scan dari awal mungkin tidak diinginkan\&. Untungnya, bila log normal (\fB\-oN\fR) atau grepable (\fB\-oG\fR) disimpan, user dapat meminta Nmap melanjutkan scanning dengan target yang sedang dikerjakannya ketika eksekusi berhenti\&. Cukup berikan opsi +\fB\-\-resume\fR +dan berikan argumen file output normal/grepable\&. Tidak boleh ada argumen lainnya, karena Nmap memparse file output yang sama dengan yang digunakan sebelumnya\&. Cukup panggil Nmap dengan +\fBnmap \-\-resume \fR\fB\fIlogfilename\fR\fR\&. Nmap akan menambahkan hasil baru ke file data yang dispesifikasikan dalam eksekusi sebelumnya\&. Opsi ini tidak dapat dilakukan untuk format output XML karena penggabungan dua buah penjalanan Nmap ke satu file XML yang valid adalah sulit\&. +.RE +.PP +\fB\-\-stylesheet \fR\fB\fIpath or URL\fR\fR (Set XSL stylesheet to transform XML output) +.RS 4 +Nmap menyertakan sebuah stylesheet + +XSL + +bernama +nmap\&.xsl + +untuk melihat atau menerjemahkan output XML ke HTML\&. + +Output XML menyertakan sebuah direktif +xml\-stylesheet +yang mengarah ke +nmap\&.xml +tempat awalnya ia diinstalasi oleh Nmap (atau pada direktori kerja saat ini pada Windows)\&. Cukup buka output Nmap pada browser modern dan ia seharusnya mengambil +nmap\&.xsl +dari filesystem dan menggunakannya untuk merender hasil\&. Jika anda ingin menggunakan stylesheet yang berbeda, berikan ia sebagai argumen bagi +\fB\-\-stylesheet\fR\&. Anda harus memberikan nama path atau URL lengkap\&. Cara pemanggilan umum adalah +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. Cara ini memberitahu browser untuk memuat versi terakhir stylesheet dari Nmap\&.Org\&. Opsi +\fB\-\-webxml\fR +melakukan hal yang sama dengan cara yang lebih singkat\&. Memuatkan XSL dari Nmap\&.Org memudahkan melihat hasil pada mesin yang tidak memiliki Nmap (dan karenanya tidak memiliki +nmap\&.xsl)\&. Jadi URL seringkali lebih bermanfaat, namun lokasi filesistem lokal +nmap\&.xsl +digunakan secara baku demi alasan privasi\&. +.RE +.PP +\fB\-\-webxml\fR (Load stylesheet from Nmap\&.Org) +.RS 4 +Opsi kenyamanan ini adalah sekedar alias bagi +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Omit XSL stylesheet declaration from XML) +.RS 4 +Berikan opsi ini untuk mencegah Nmap dari mengasosiasikan sembarang sytlesheet XSL dengan output XML\-nya\&. Direktif +xml\-stylesheet +ditiadakan\&. +.RE +.SH "OPSI LAIN\-LAIN" +.PP +Bagian ini menjelaskan beberapa opsi penting (dan tidak begitu penting) yang tidak tercakup di manapun\&. +.PP +\fB\-6\fR (Enable IPv6 scanning) +.RS 4 +Sejak tahun 2002, Nmap memberikan dukungan IPv6 untuk fiturnya yang paling populer\&. Terutama, scanning ping (hanya\-TCP), connect scanning, dan deteksi versi semuanya mendukung IPv6\&. Sintaks perintahnya sama dengan yang biasa kecuali anda juga menambahkan opsi +\fB\-6\fR\&. Tentu saja anda harus menggunakan sintaks IPv6 jika anda menspesifikasikan sebuah alamat alih\-alih nama host\&. Sebuah alamat mungkin terlihat seperti +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, sehingga disarankan untuk menggunakan nama host\&. Outputnya tampak sama dengan yang biasa, dengan alamat IPv6 pada baris +\(lqport menarik\(rq\&. +.sp +Meskipun IPv6 belum tersebar luas, ia telah digunakan secara signifikan di beberapa negara (biasanya Asia) dan kebanyakan sistem operasi modern mendukungnya\&. Untuk menggunakan Nmap dengan IPv6, sumber dan target scan anda harus dikonfigurasi untuk IPv6\&. Jika ISP anda (seperti kebanyakan) tidak mengalokasikan alamat IPv6 bagi anda, broker tunnel bebas tersedia luas dan bekerja baik dengan Nmap\&. Saya menggunakan layanan broker tunnel IPv6 gratis + +di +\m[blue]\fB\%http://www.tunnelbroker.net\fR\m[]\&. Broker tunnel lainnya adalah +\m[blue]\fBdi daftar Wikipedia\fR\m[]\&\s-2\u[14]\d\s+2\&. 6to4 tunnels adalah pendekatan gratis dan populer lainnya\&. +.RE +.PP +\fB\-A\fR (Aggressive scan options) +.RS 4 +Opsi ini mengaktifkan opsi agresive dan advance tambahan\&. Saya belum memutuskan kepanjangannya\&. Saat ini ia mengaktifkan deteksi SO (\fB\-O\fR), scanning versi (\fB\-sV\fR), scanning script (\fB\-sC\fR) dan traceroute (\fB\-\-traceroute\fR)\&. + +Fitur lebih banyak mungkin ditambahkan di masa mendatang\&. Tujuannya adalah mengaktifkan set opsi scan yang lengkap tanpa perlu mengingat sejumlah besar flag\&. Namun demikian, karena scanning script dengan set baku dianggap mengganggu, anda tidak seharusnya menggunakan +\fB\-A\fR +terhadap jaringan target tanpa ijin\&. Opsi ini hanya mengaktifkan fitur, dan tidak opsi pewaktuan (seperti +\fB\-T4\fR) atau opsi verbositas (\fB\-v\fR) yang mungkin anda inginkan pula\&. +.RE +.PP +\fB\-\-datadir \fR\fB\fIdirectoryname\fR\fR (Specify custom Nmap data file location) +.RS 4 +Nmap memperoleh beberapa data khusus pada runtime dalam file bernama +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes, dan +nmap\-os\-db\&. Jika lokasi file\-file ini telah dispesifikasikan (dengan menggunakan opsi +\fB\-\-servicedb\fR +atau +\fB\-\-versiondb\fR), lokasi tersebut digunakan untuk file itu\&. Setelah itu, Nmap mencari file\-file ini dalam direktori yang dispesifikasikan dengan opsi +\fB\-\-datadir\fR +(bila ada)\&. File yang tidak ditemukan di sana, akan dicari pada direktori yang dispesifikasikan oleh variabel lingkungan NMAPDIR +\&. Kemudian +~/\&.nmap +untuk UID ril dan efektif (sistem POSIX) atau lokasi eksekutabel Nmap (Win32), dan kemudian lokasi yang digunakan saat kompilasi seperti +/usr/local/share/nmap +atau +/usr/share/nmap +\&. Dan terakhir, Nmap akan mencari dalam direktori saat ini\&. +.RE +.PP +\fB\-\-servicedb \fR\fB\fIservices file\fR\fR (Specify custom services file) +.RS 4 +Beritahu Nmap untuk menggunakan file service yang diberikan alih\-alih file +nmap\-services +yang disertakan dalam Nmap\&. Dengan menggunakan opsi ini juga menyebabkan opsi scan cepat (\fB\-F\fR) digunakan\&. Lihat deskripsi untuk +\fB\-\-datadir\fR +untuk informasi lebih lanjut mengenai file data Nmap\&. +.RE +.PP +\fB\-\-versiondb \fR\fB\fIservice probes file\fR\fR (Specify custom service probes file) +.RS 4 +Minta Nmap untuk menggunakan file pro be service yang diberikan alih\-alih file +nmap\-service\-probes +yang disertakan dalam Nmap\&. Lihat deskripsi untuk +\fB\-\-datadir\fR +untuk informasi lebih lanjut mengenai file data Nmap\&. +.RE +.PP +\fB\-\-send\-eth\fR (Use raw ethernet sending) +.RS 4 +Minta Nmap mengirim paket pada layer ethernet raw (data link) alih\-alih layer IP (jaringan) yang lebih tinggi\&. Secara baku, Nmap memilih satu yang umumnya terbaik untuk platform yang digunakan\&. Socket Raw (layer IP layer) +umumnya paling efisien pada mesin\-mesin Unix, sementara frame ethernet dibutuhkan bagi operasi Windows karena Microsoft meniadakan dukungan socket raw\&. Nmap tetap menggunakan paket IP raw pada Unix ketika tidak ada pilihan lainnya (seperti koneksi non\-ethernet)\&. +.RE +.PP +\fB\-\-send\-ip\fR (Send at raw IP level) +.RS 4 +Minta Nmap untuk mengirim paket melalui soket IP raw alih\-alih mengirimkan frame ethernet level lebih rendah\&. Ia merupakan komplemen opsi +\fB\-\-send\-eth\fR +yang didiskusikan sebelumnya\&. +.RE +.PP +\fB\-\-privileged\fR (Assume that the user is fully privileged) +.RS 4 +Beritahu Nmap untuk mengasumsikan bahwa ia memiliki cukup privilege untuk melakukan pengiriman socket raw, packet sniffing, dan operasi sejenis yang biasanya membutuhkan root privileges +pada sistem Unix\&. Secara baku Nmap berhenti bila operasi itu diminta namun +\fBgeteuid\fR +tidaklah nol\&. +\fB\-\-privileged\fR +berguna dengan kapabilitas kernel Linux dan sistem serupa yang mungkin dikonfigurasi untuk membolehkan user unprivileged melakukan scan raw\-packet\&. Pastikan untuk memberikan flag opsi ini sebelum flag lainnya bagi opsi yang membutuhkan privilege (SYN scan, deteksi SO, dsb\&.)\&. Variabel lingkungan +\fBNMAP_PRIVILEGED\fR +dapat juga diset sebagai alternatif ekivalen bagi +\fB\-\-privileged\fR\&. +.RE +.PP +\fB\-\-unprivileged\fR (Assume that the user lacks raw socket privileges) +.RS 4 +Opsi ini merupakan lawan +\fB\-\-privileged\fR\&. Ia memberitahu Nmap untuk memperlakukan user sebagai tidak memiliki privilege network raw socket dan sniffing\&. Hal ini berguna untuk testing, debugging, atau ketika fungsionalitas jaringan raw pada sistem operasi anda tampaknya rusak\&. Variabel lingkungan +\fBNMAP_UNPRIVILEGED\fR +dapat diset sebagai alternatif ekivalen bagi +\fB\-\-unprivileged\fR\&. +.RE +.PP +\fB\-\-release\-memory\fR (Release memory before quitting) +.RS 4 +Opsi ini hanya berguna untuk memory\-leak debugging\&. Ia membuat Nmap merilis memori yang telah dialokasikan sebelum ia berhenti sehingga kebocoran memori sebenarnya mudah ditemukan\&. Normalnya Nmap melewati langkah ini karena SO melakukannya setelah penghentian proses\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Print version number) +.RS 4 +Mencetak angka versi Nmap dan keluar\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Print help summary page) +.RS 4 +Mencetak layar bantuan singkat dengan flag\-flag yang paling umum\&. Menjalankan Nmap tanpa argumen melakukan hal yang sama\&. +.RE +.SH "INTERAKSI RUNTIME" +.PP +Selama eksekusi Nmap, seluruh kunci yang ditekan direkam\&. Hal ini memungkinkan anda beriteraksi dengan program tanpa membatalkan dan memulai ulang\&. Beberapa kunci khusus akan merubah opsi, sementara kunci lain akan mencetak pesan status yang memberitahu anda mengenai scan\&. Konvensinya adalah +\fIhuruf kecil meningkatkan\fR +jumlah yang dicetak, dan +\fIhuruf kapital mengurangi\fR +yang dicetak\&. Anda dapat juga menekan \(oq\fI?\fR\(cq untuk bantuan\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Naikkan / kurangi level verbositas +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Naikkan / kurangi level debugging +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Aktifkan/Non\-aktifkan packet tracing +.RE +.PP +\fB?\fR +.RS 4 +Cetak layar bantuan interaksi runtime +.RE +.PP +Lainnya +.RS 4 +Cetak pesan satus seperti ini: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "CONTOH\-CONTOH" +.PP +Berikut ini adalah beberapa contoh penggunaan Nmap, dari yang mudah dan rutin hingga yang sedikit kompleks dan canggih\&. Beberapa alamat IP dan nama domain aktual digunakan untuk membuatnya menjadi lebih kongkrit\&. Anda harus merubah alamat/nama dengan +\fIjaringan anda sendiri\&.\fR\&. Meskipun saya tidak menganggap scanning port jaringan lain adalah atau seharusnya ilegal, beberapa administrator jaringan tidak menghargai scanning jaringan mereka sembarangan dan akan mengajukan keluhan\&. Pendekatan terbaik adalah memperoleh ijin terlebih dulu\&. +.PP +Untuk tujuan pengujian, anda memperoleh ijin untuk memeriksa host +scanme\&.nmap\&.org\&. Ijin ini hanya mencakup pemeriksaan dengan Nmap dan tidak menguji eksploit atau serangan denial of service\&. Untuk menghemat bandwidth, mohon tidak menggunakan lebih dari selusin scan terhadap host tersebut per hari\&. Jika layanan target scanning gratis ini disalahgunakan, ia akan dinonaktifkan dan Nmap akan melaporkan +Failed to resolve given hostname/IP: scanme\&.nmap\&.org\&. Ijin ini juga berlaku untuk host\-host +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org, dan seterusnya, meskipun host\-host ini belum ada\&. +.PP + +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Opsi ini memeriksa seluruh port TCP reserved pada mesin +scanme\&.nmap\&.org +\&. Opsi +\fB\-v\fR +mengaktifkan mode verbose\&. +.PP + + +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Meluncurkan scan stealth SYN terhadap setiap mesin yang up dari 256 IP pada jaringan berukuran +\(lqkelas C\(rq +tempat Scanme berada\&. Ia juga berusaha menentukan sistem operasi yang digunakan pada setiap host yang hidup dan berjalan\&. Hal ini membutukan privilege root karena scan SYN dan deteksi SO\&. +.PP + +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Meluncurkan enumerasi host dan scan TCP pada setengah bagian pertama dari subnet dalam alamat kelas B 198\&.116\&. Scan ini menguji apakah sistem menjalankan SSH, DNS, POP3, atau IMAP pada port standarnya, atau apapun pada port 4564\&. Pada sembarang port yang ditemukan terbuka, akan digunakan deteksi versi untuk menentukan aplikasi apa yang berjalan\&. +.PP + + +\fBnmap \-v \-iR 100000 \-PN \-p 80\fR +.PP +Meminta Nmap memilih 100\&.000 host secara acak dan memeriksanya untuk web server (port 80)\&. Enumerasi host ditiadakan dengan +\fB\-PN\fR +karena mengirim beberapa probe untuk menentukan apakah host hidup adalah sia\-sia ketika anda hanya memprobe satu port pada setiap host target\&. +.PP + + +\fBnmap \-PN \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Memeriksa 4096 IP untuk sembarang web server (tanpa mem\-ping mereka) dan menyimpan hasilnya dalam format grepable dan XML\&. +.SH "BUGS" +.PP +Seperti penulisnya, Nmap tidaklah sempurna\&. Namun anda dapat membantu membuatnya lebih baik dengan mengirimkan laporan bug atau bahkan menulis patch\&. Jika Nmap tidak berlaku sesuai yang anda harapkan, pertama upgrade ke versi terakhir yang tersedia dari +\m[blue]\fB\%https://nmap.org\fR\m[]\&. Jika masalah masih tetap, lakukan riset untuk menentukan apakah ia telah ditemukan dan diselesaikan\&. Cobalah mencari pesan kesalahan pada halaman pencarian kami +\m[blue]\fB\%https://insecure.org/search.html\fR\m[] +atau di Google\&. Juga cobalah membrowsing arsip +nmap\-dev +di +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. +Bacalah juga halaman manual ini dengan baik\&. Jika masih belum selesai juga, kirimkan laporan bug ke +<dev@nmap\&.org>\&. Mohon sertakan semua yang anda telah pelajari mengenai masalah, dan juga versi Nmap dan sistem operasi yang anda gunakan\&. Laporan kesalahan dan pertanyaan penggunaan Nmap yang dikirim ke +<dev@nmap\&.org> +akan lebih mungkin dijawab daripada yang dikirimkan secara langsung ke Fyodor\&. Jika anda berlangganan ke list nmap\-dev sebelum posting, pesan anda akan melewati moderasi dan akan lewat dengan lebih cepat\&. Berlangganan di +\m[blue]\fB\%https://nmap.org/mailman/listinfo/dev\fR\m[]\&. +.PP +Patch code untuk memperbaiki bug adalah lebih baik daripada laporan kesalahan\&. Instruksi dasar untuk membuat file patch dengan perubahan anda tersedia di +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]\&. Patch dapat dikirim ke +nmap\-dev +(direkomendasikan) atau langsun ke Fyodor\&. +.SH "PENULIS" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%https://insecure.org\fR\m[]) +.PP +Selama ini, ratusan orang telah memberikan kontribusi berharga ke Nmap\&. Hal ini dirinci dalam file +CHANGELOG +yang didistribusikan bersama Nmap dan juga tersedia dari +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]\&. +.SH "LEGAL NOTICES" +.SS "Unofficial Translation Disclaimer / Disklaimer Terjemahan Tidak Resmi" +.PP +This is an unnofficial translation of the +\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[15]\d\s+2 +into Indonesian\&. It was not written by Insecure\&.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\&. However, we hope that this translation helps Indonesian speakers understand the Nmap license better\&. +.PP +Ini merupakan terjemahan tidak resmi dari +\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[15]\d\s+2 +ke dalam bahasa Indonesia\&. Ia tidak ditulis oleh Insecure\&.Com LLC, dan tidak secara legal menyatakan syarat distribusi untuk Nmap \-\- hanya teks berbahasa Inggris aslinya yang melakukan hal itu\&. Namun demikian, kami berharap bahwa terjemahan ini membantu pengguna bahasa Indonesia untuk lebih memahami lisensi Nmap\&. +.SS "Nmap Copyright and Licensing" +.PP +The Nmap Security Scanner is (C) 1996–2009 Insecure\&.Com LLC\&. Nmap is also a registered trademark of Insecure\&.Com LLC\&. This program is free software; you may redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; Version 2 with the clarifications and exceptions described below\&. This guarantees your right to use, modify, and redistribute this software under certain conditions\&. If you wish to embed Nmap technology into proprietary software, we sell alternative licenses (contact +<sales@insecure\&.com>)\&. Dozens of software vendors already license Nmap technology such as host discovery, port scanning, OS detection, and version detection\&. +.PP +Note that the GPL places important restrictions on +\(lqderived works\(rq, yet it does not provide a detailed definition of that term\&. To avoid misunderstandings, we consider an application to constitute a +\(lqderivative work\(rq +for the purpose of this license if it does any of the following: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integrates source code from Nmap +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Reads or includes Nmap copyrighted data files, such as +nmap\-os\-db +or +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Executes Nmap and parses the results (as opposed to typical shell or execution\-menu apps, which simply display raw Nmap output and so are not derivative works\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integrates/includes/aggregates Nmap into a proprietary executable installer, such as those produced by InstallShield\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Links to a library or executes a program that does any of the above\&. +.RE +.PP +The term +\(lqNmap\(rq +should be taken to also include any portions or derived works of Nmap\&. This list is not exclusive, but is meant to clarify our interpretation of derived works with some common examples\&. Our interpretation applies only to Nmap—we don\*(Aqt speak for other people\*(Aqs GPL works\&. +.PP +If you have any questions about the GPL licensing restrictions on using Nmap in non\-GPL works, we would be happy to help\&. As mentioned above, we also offer alternative license to integrate Nmap into proprietary applications and appliances\&. These contracts have been sold to many security vendors, and generally include a perpetual license as well as providing for priority support and updates as well as helping to fund the continued development of Nmap technology\&. Please email +<sales@insecure\&.com> +for further information\&. +.PP +As a special exception to the GPL terms, Insecure\&.Com LLC grants permission to link the code of this program with any version of the OpenSSL library which is distributed under a license identical to that listed in the included +COPYING\&.OpenSSL +file, and distribute linked combinations including the two\&. +You must obey the GNU GPL in all respects for all of the code used other than OpenSSL\&. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so\&. +.PP +If you received these files with a written license agreement or contract stating terms other than the terms above, then that alternative license agreement takes precedence over these comments\&. +.SS "Creative Commons License for this Nmap Guide" +.PP +This +Nmap Reference Guide +is (C) 2005–2008 Insecure\&.Com LLC\&. It is hereby placed under version 2\&.5 of the +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. This allows you redistribute and modify the work as you desire, as long as you credit the original source\&. Alternatively, you may choose to treat this document as falling under the same license as Nmap itself (discussed previously)\&. +.SS "Source Code Availability and Community Contributions" +.PP +Source is provided to this software because we believe users have a right to know exactly what a program is going to do before they run it\&. This also allows you to audit the software for security holes (none have been found so far)\&. +.PP +Source code also allows you to port Nmap to new platforms, fix bugs, and add new features\&. You are highly encouraged to send your changes to +<fyodor@nmap\&.org> +for possible incorporation into the main distribution\&. By sending these changes to Fyodor or one of the Insecure\&.Org development mailing lists, it is assumed that you are offering Fyodor and Insecure\&.Com LLC the unlimited, non\-exclusive right to reuse, modify, and relicense the code\&. Nmap will always be available Open Source, +but this is important because the inability to relicense code has caused devastating problems for other Free Software projects (such as KDE and NASM)\&. We also occasionally relicense the code to third parties as discussed above\&. If you wish to specify special license conditions of your contributions, just say so when you send them\&. +.SS "No Warranty" +.PP +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE\&. See the GNU General Public License v2\&.0 for more details at +\m[blue]\fB\%http://www.gnu.org/licenses/gpl-2.0.html\fR\m[], or in the +COPYING +file included with Nmap\&. +.PP +It should also be noted that Nmap has occasionally been known to crash poorly written applications, TCP/IP stacks, and even operating systems\&. +While this is extremely rare, it is important to keep in mind\&. +\fINmap should never be run against mission critical systems\fR +unless you are prepared to suffer downtime\&. We acknowledge here that Nmap may crash your systems or networks and we disclaim all liability for any damage or problems Nmap could cause\&. +.SS "Inappropriate Usage" +.PP +Because of the slight risk of crashes and because a few black hats like to use Nmap for reconnaissance prior to attacking systems, there are administrators who become upset and may complain when their system is scanned\&. Thus, it is often advisable to request permission before doing even a light scan of a network\&. +.PP +Nmap should never be installed with special privileges (e\&.g\&. suid root) for security reasons\&. +.SS "Third\-Party Software" +.PP +This product includes software developed by the +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[16]\d\s+2\&. A modified version of the +\m[blue]\fBLibpcap portable packet capture library\fR\m[]\&\s-2\u[17]\d\s+2 +is distributed along with Nmap\&. The Windows version of Nmap utilized the Libpcap\-derived +\m[blue]\fBWinPcap library\fR\m[]\&\s-2\u[18]\d\s+2 +instead\&. Regular expression support is provided by the +\m[blue]\fBPCRE library\fR\m[]\&\s-2\u[19]\d\s+2, +which is open\-source software, written by Philip Hazel\&. +Certain raw networking functions use the +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[20]\d\s+2 +networking library, which was written by Dug Song\&. +A modified version is distributed with Nmap\&. Nmap can optionally link with the +\m[blue]\fBOpenSSL cryptography toolkit\fR\m[]\&\s-2\u[21]\d\s+2 +for SSL version detection support\&. The Nmap Scripting Engine uses an embedded version of the +\m[blue]\fBLua programming language\fR\m[]\&\s-2\u[22]\d\s+2\&. +All of the third\-party software described in this paragraph is freely redistributable under BSD\-style software licenses\&. +.SS "United States Export Control Classification" +.PP +U\&.S\&. Export Control: Insecure\&.Com LLC believes that Nmap falls under U\&.S\&. ECCN (export control classification number) 5D992\&. This category is called +\(lqInformation Security software not controlled by 5D002\(rq\&. The only restriction of this classification is AT (anti\-terrorism), which applies to almost all goods and denies export to a handful of rogue nations such as Iran and North Korea\&. Thus exporting Nmap does not require any special license, permit, or other governmental authorization\&. +.SH "CATATAN" +.IP " 1." 4 +versi Inggris +.RS 4 +\%https://nmap.org/book/man.html +.RE +.IP " 2." 4 +Creative Commons Attribution License +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 3." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 4." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 5." 4 +RFC 1918 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1918.txt +.RE +.IP " 6." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 7." 4 +RFC TCP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 8." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 9." 4 +RFC 1323 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1323.txt +.RE +.IP "10." 4 +bahasa pemrograman Lua +.RS 4 +\%http://lua.org +.RE +.IP "11." 4 +Protokol IP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc791.txt +.RE +.IP "12." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP "13." 4 +Nmap::Parser +.RS 4 +\%http://nmapparser.wordpress.com/ +.RE +.IP "14." 4 +di daftar Wikipedia +.RS 4 +\%http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers +.RE +.IP "15." 4 +Nmap license details +.RS 4 +\%https://nmap.org/book/man-legal.html +.RE +.IP "16." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "17." 4 +Libpcap portable packet capture library +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "18." 4 +WinPcap library +.RS 4 +\%http://www.winpcap.org +.RE +.IP "19." 4 +PCRE library +.RS 4 +\%http://www.pcre.org +.RE +.IP "20." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "21." 4 +OpenSSL cryptography toolkit +.RS 4 +\%http://www.openssl.org +.RE +.IP "22." 4 +Lua programming language +.RS 4 +\%http://www.lua.org +.RE diff --git a/docs/man-xlate/nmap-it.1 b/docs/man-xlate/nmap-it.1 new file mode 100644 index 0000000..2167ae5 --- /dev/null +++ b/docs/man-xlate/nmap-it.1 @@ -0,0 +1,2584 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "Autore" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 17/05/2023 +.\" Manual: Guida di riferimento di Nmap +.\" Source: Nmap +.\" Language: Italian +.\" +.TH "NMAP" "1" "17/05/2023" "Nmap" "Guida di riferimento di Nmap" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NOME" +nmap \- Strumento di network exploration e security / port scanner +.SH "SINOSSI" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fITipo\ di\ Scansione\fR...] [\fIOpzioni\fR] {\fIObiettivo\fR} +.SH "DESCRIZIONE" +.PP +Nmap («Network Mapper») è uno strumento open\-source per la network exploration e l\*(Aqauditing\&. È stato progettato per scansionare rapidamente reti di grandi dimensioni, ma è indicato anche per l\*(Aqutilizzo 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\*(Aqapplicazione 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\*(Aqinventario delle macchine presenti in rete, per gestire gli aggiornamenti programmati dei servizi e per monitorare gli host o il loro uptime\&. +.PP +L\*(Aqoutput di Nmap è un elenco di obiettivi scansionati, con informazioni supplementari per ognuno a seconda delle opzioni usate\&. Tra queste informazioni è vitale la +«tabella delle porte interessanti »\&. Questa tabella elenca il numero della porta e il protocollo, il nome del servizio e lo stato attuale\&. Lo stato può essere +open (aperto), +filtered (filtrato), +closed (chiuso), o +unfiltered (non filtrato)\&. Aperto significa che vi è sulla macchina obiettivo un\*(Aqapplicazione in ascolto su quella porta per connessioni o pacchetti in entrata\&. +Filtrato +significa che un firewall, un filtro o qualche altro ostacolo di rete sta bloccando la porta al punto che Nmap non riesce a distinguere tra +aperta +o +chiusa\&. Le porte +chiuse +non hanno alcuna applicazione in ascolto, anche se potrebbero aprirsi in ogni momento\&. Le porte vengono classificate come +non filtrate +quando rispondono ad una scansione di Nmap, ma non è stato possibile determinare se sono aperte o chiuse\&. Nmap mostra le combinazioni +aperta|filtrata +e +chiusa|filtrata +quando non può determinare quale dei due stati descrive una porta\&. La tabella delle porte può anche includere dettagli quali le versioni dei software disponibili se è stata usata l\*(Aqopzione appropriata\&. Quando viene richiesta una scansione IP (\fB\-sO\fR), Nmap fornisce informazioni sui protocolli IP supportati anziché sulle porte in ascolto\&. +.PP +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\*(Aqindirizzo fisico (MAC address)\&. +.PP +Una tipica scansione con Nmap è mostrata su +Esempio 1, «Una scansione di esempio»\&. Le uniche opzioni usate di Nmap in questo esempio sono +\fB\-A\fR, per abilitare la rilevazione del sistema operativo e della versione, lo script scanning e il traceroute, +\fB\-T4\fR +per un\*(Aqesecuzione più rapida e infine l\*(Aqhost obiettivo\&. +.PP +\fBEsempio 1. Una scansione di esempio\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# 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 +.fi +.if n \{\ +.RE +.\} +.PP +L\*(Aqultima versione di Nmap si può ottenere dal sito +\m[blue]\fB\%https://nmap.org\fR\m[]\&. L\*(Aqultima versione di questa pagina del manuale è disponibile al sito +\m[blue]\fB\%https://nmap.org/book/man.html\fR\m[]\&. È anche inclusa come capitolo di +«Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning» +(\m[blue]\fB\%https://nmap.org/book/\fR\m[])\&. +.SH "ELENCO DELLE OPZIONI" +.PP +Questo elenco delle possibili opzioni viene stampato quando Nmap viene eseguito senza argomenti; una versione aggiornata di questo elenco è sempre disponibile sul sito +\m[blue]\fB\%https://svn.nmap.org/nmap/docs/nmap.usage.txt\fR\m[]\&. È utile per ricordarsi le opzioni più comuni ma non dev\*(Aqessere inteso come un\*(Aqalternativa alla documentazione approfondita presente in questa pagina di manuale\&. Alcune opzioni "oscure" non sono neanche incluse qui\&. +.PP +.if n \{\ +.RS 4 +.\} +.nf +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\*(Aqs 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\*(Aqt 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 \*(Aqms\*(Aq (milliseconds), + \*(Aqs\*(Aq (seconds), \*(Aqm\*(Aq (minutes), or \*(Aqh\*(Aq (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 +.fi +.if n \{\ +.RE +.\} +.sp +.SH "TARGET SPECIFICATION (SPECIFICA DEGLI OBIETTIVI)" +.PP +Ogni cosa sulla linea di comando di Nmap che non è un\*(Aqopzione (o un argomento di un\*(Aqopzione) è 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\&. +.PP +A volte può essere utile scansionare un\*(Aqintera rete di host adiacenti\&. Per questo, Nmap supporta l\*(Aqindirizzamento CIDR\&. Si possono aggiungere /\fInumero di bit\fR +a un indirizzo IP o a un nome di host e Nmap eseguirà la scansione su ogni indirizzo IP per il quale i primi +\fInumero di bit\fR +sono identici a quelli specificati nell\*(AqIP o nel nome di host fornito\&. Ad esempio, 192\&.168\&.10\&.0/24 eseguirà la scansione sui primi 256 host tra 192\&.168\&.10\&.0 (in binario: +11000000 10101000 00001010 00000000) e 192\&.168\&.10\&.255 (in binario: +11000000 10101000 00001010 11111111), estremi inclusi\&. 192\&.168\&.10\&.40/24 fa esattamente la stessa cosa\&. Dato che l\*(Aqhost scanme\&.nmap\&.org corrisponde all\*(Aqindirizzo 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\*(Aqhost o sull\*(AqIP specificato poiché tutti i bit di indirizzo sono fissati\&. +.PP +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\*(Aqindirizzamento 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\*(Aqintervallo 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\*(Aqobiettivo un\*(Aqopzione 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\&. +.PP +Indirizzi IPV6 possono essere indicati solo mediante il loro indirizzo IPv6 completo o il loro hostname\&. L\*(Aqindirizzamento CIDR e gli intervalli di ottetti non sono ancora supportati per IPv6\&. +.PP +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\*(Aqinterfaccia; un indirizzo completo potrebbe essere fe80::a8bb:ccff:fedd:eeff%eth0\&. Su Windows, si usa l\*(Aqidentificativo numerico dell\*(Aqinterfaccia al posto del suo nome: fe80::a8bb:ccff:fedd:eeff%1\&. Puoi vedere la lista degli identificativi numerici con il comando +\fBnetsh\&.exe interface ipv6 show interface\fR\&. +.PP +Nmap accetta più indirizzi di obiettivi sulla linea di comando ed essi non devono essere necessariamente indicati nello stesso modo\&. Il comando +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.\-\fR +fa esattamente ciò che ci si aspetta\&. +.PP +Così come gli obiettivi sono generalmente indicati sulla linea di comando, anche le seguenti opzioni sono disponibili per la selezione degli obiettivi: +.PP +\fB\-iL <inputfilename>\fR (Input from list) +.RS 4 +Legge gli obiettivi da +\fIinputfilename\fR\&. 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 +\fItranne\fR +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\*(Aqopzione +\fB\-iL\fR\&. Ogni elemento può essere in uno qualsiasi dei formati accettati da Nmap sulla linea di comando (indirizzo IP, nome dell\*(Aqhost, notazione CIDR, IPv6 o intervalli di indirizzi)\&. Ogni elemento dev\*(Aqessere separato da uno o più spazi, indentazioni (tabulazioni) o caratteri di a\-capo\&. Si può usare un trattino (\-) come nome di file se si vuole che Nmap legga gli host dallo standard input piuttosto che da un file esistente\&. +.sp +L\*(Aq\fIinputfilename\fR +può contenere commenti\&. Ogni commento inizia con # e finisce con un carattere di a\-capo\&. +.RE +.PP +\fB\-iR <num hosts>\fR (Choose random targets) +.RS 4 +Durante certe indagini su tutta Internet o altri tipi di ricerca, si potrebbe desiderare di scegliere gli obiettivi in maniera casuale\&. L\*(Aqargomento +\fInum hosts\fR +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\*(Aqargomento +0 +per una scansione senza fine\&. Va ricordato che alcuni amministratori di rete non apprezzano scansioni non autorizzate delle loro reti e potrebbero lamentarsi\&. Usare questa opzione a proprio rischio e pericolo! Se in un pomeriggio piovoso ci si trova ad essere annoiati, si può provare questo comando +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR +per trovare in maniera casuale dei server web sui quali navigare\&. +.RE +.PP +\fB\-\-exclude <host1>[,<host2>[,\&.\&.\&.]]\fR (Exclude hosts/networks) +.RS 4 +Questa opzione specifica un elenco, separato da virgola, di obiettivi da escludere dalla scansione anche se sono parte dell\*(Aqintervallo 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\&. +.RE +.PP +\fB\-\-excludefile <exclude_file>\fR (Exclude list from file) +.RS 4 +Questa opzione offre le stesse funzionalità dell\*(Aqopzione\fB\-\-exclude\fR, con la differenza che gli obiettivi da escludere dalla scansione sono elencate in un +\fIexclude_file\fR +(separate da spazi bianchi, a\-capo o tabulazioni) anziché sulla linea di comando\&. +.sp +L\*(Aq\fIexclude_file\fR +può contenere commenti\&. Ogni commento inizia con # e finisce con un carattere di a\-capo\&. +.RE +.SH "HOST DISCOVERING (RICERCA DI HOST)" +.PP +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\&. +.PP +Poiché le necessità di host discovering sono così diverse, Nmap offre una notevole varietà di opzioni per la customizzazione delle tecniche usate\&. Il semplice host discovery è spesso chiamato +«ping scan», anche se va molto oltre il semplice pacchetto ICMP di tipo "echo request" associato al famoso strumento di +ping\&. Un utente può evitare il passaggio per l\*(Aqutility +«ping» +usando una List Scan (scansione di tipo lista: +\fB\-sL\fR) o disabilitando il ping (\fB\-Pn\fR), 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\*(Aqesistenza di un host o di un dispositivo di rete con quell\*(Aqindirizzo IP\&. In molte reti solo una piccola percentuale di indirizzi IP è attiva in ogni momento, specialmente negli spazi di indirizzamento privati previsti dall\*(AqRFC 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\*(Aqhost discovery può trovare queste macchine in un mare di indirizzi IP non consecutivi\&. +.PP +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\*(Aqequivalente 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\*(Aqinterno di un ambiente UNIX, i probe di default saranno pacchetti SYN alle porte 80 e 443 inviati mediante la chiamata di sistema +\fBconnect\fR\&. 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\&. +.PP +L\*(Aqopzione +\fB\-P*\fR +(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\*(AqARP/Neighbor Discovery (\fB\-PR\fR) viene effettuata di default all\*(Aqinterno di una rete locale, anche se vengono specificate altre opzioni +\fB\-P*\fR, poiché è quasi sempre più veloce e più efficiente\&. +.PP +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\*(Aqhost discovery come i probe UDP (\fB\-PU\fR)\&. Si consulti la spiegazione per l\*(Aqopzione +\fB\-sn\fR +per sapere come effettuare +\fIsolo\fR +host discovery; si usi +\fB\-Pn\fR +per evitare l\*(Aqhost discovery e fare un portscan di tutti gli host di destinazione\&. Le seguenti opzioni controllano il comportamento dell\*(Aqhost discovery: +.PP +\fB\-sL\fR (List Scan) +.RS 4 +La List Scan è una forma banale di host discovery che semplicemente elenca ogni host delle reti specificate, senza inviare alcun pacchetto agli host obiettivo\&. Di default Nmap effettua una risoluzione inversa mediante DNS sugli host per ottenerne il nome completo\&. Spesso è sorprendente vedere quante informazioni utili possono fornire dei semplici hostname\&. Ad esempio, +fw\&.chi +è il nome del firewall di un\*(Aqazienda 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\*(Aqazienda sbagliata\&. +.sp +Poiché l\*(Aqidea è 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\*(Aqopzione +\fB\-Pn (No ping)\fR\&. +.RE +.PP +\fB\-sn\fR (No port scan) +.RS 4 +Questa opzione indica a Nmap di non effettuare un port scan dopo un host discovery e di mostrare gli host che hanno risposto\&. Quest\*(Aqopzione è spesso conosciuta come +«ping scan», ma si può anche richiedere il traceroute ed eseguire script host NSE\&. Quest\*(Aqazione è 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\&. +.sp +Gli amministratori di sistema trovano spesso questa opzione utile allo stesso modo\&. Può essere usata facilmente per enumerare le macchine disponibili in una rete o tenere sotto osservazione la disponibilità di un singolo server\&. Questo approccio viene anche chiamato +«ping sweep», ed è più affidabile di un ping all\*(Aqindirizzo broadcast poiché molti host non rispondono alle richieste di questa categoria\&. +.sp +L\*(Aqopzione +\fB\-sn\fR +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 +\fBconnect\fR +) alle porte 80 e 443 dell\*(Aqobiettivo\&. Quando invece un utente privilegiato prova ad effettuare una scansione all\*(Aqinterno di una rete locale, vengono usate richieste ARP a meno che non venga specificata l\*(Aqopzione +\fB\-\-send\-ip\fR\&. L\*(Aqopzione +\fB\-sn\fR +può essere usata in combinazione con qualsiasi tipo di discovery probe (ovvero la famiglia di opzioni +\fB\-P*\fR, tranne +\fB\-Pn\fR) 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\*(Aqhost 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\&. +.sp +Nelle versioni precedenti di Nmap, l\*(Aqopzione +\fB\-sn\fR +era chiamata +\fB\-sP\fR\&. +.RE +.PP +\fB\-Pn\fR (No ping) +.RS 4 +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\*(Aqhost discovery attraverso l\*(Aqopzione +\fB\-Pn\fR +obbliga Nmap a tentare la scansione richiesta su +\fItutti\fR +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\*(Aqhost 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 +\fIsia\fR +un ping scan +\fIche\fR +un port scan, ma permettere l\*(Aqesecuzione degli script NSE, utilizzare le due opzioni \-Pn \-sn insieme\&. +.sp +Per le macchine in una rete ethernet locale, la scansione ARP verrà ancora eseguita (a meno che siano specificate le opzioni +\fB\-\-disable\-arp\-ping\fR +e +\fB\-\-send\-ip\fR) in quanto Nmap necessita degli indirizzi fisici (MAC addresses) per ulteriori scansioni degli hosts\&. Nelle versioni precedenti di Nmap, +\fB\-Pn\fR +era chiamata +\fB\-P0\fR +e +\fB\-PN\fR\&. +.RE +.PP +\fB\-PS <port list>\fR (TCP SYN Ping) +.RS 4 +Questa opzione invia un pacchetto TCP vuoto con il flag SYN attivo\&. La porta di destinazione di default è la 80 (configurabile durante la compilazione cambiando il parametro di define DEFAULT_TCP_PROBE_PORT nel file +nmap\&.h), ma si possono specificare altre porte come parametro\&. La sintassi è la stessa dell\*(Aqopzione +\fB\-p\fR +tranne che gli indicatori del tipo di porta +\fBT:\fR +non sono permessi\&. Da notare che non ci devono essere spazi tra +\fB\-PS\fR +e il numero di porta, ad esempio +\fB\-PS22\fR\&. Nel caso di più porte specificate, separate da virgola (ad esempio +\fB\-PS22\-25,80,113,1050,35000\fR), si tenterà un probe verso ogni porta in parallelo\&. +.sp +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\*(Aqusuale pacchetto ACK che completerebbe l\*(Aqhandshake e stabilirebbe una connessione completa\&. Il pacchetto RST viene mandato dal kernel della macchina che sta eseguendo Nmap, non da Nmap stesso\&. +.sp +A Nmap non interessa se la porta è aperta o chiusa\&. In ogni caso l\*(AqRST o il SYN/ACK ricevuti indicano che l\*(Aqhost è disponibile e risponde alle connessioni\&. +.sp +Nelle macchine UNIX solo l\*(Aqutente privilegiato +root +generalmente è abilitato all\*(Aqinvio e alla ricezione di pacchetti TCP "raw" (non formattati, grezzi)\&. Per quanto riguarda gli utenti non privilegiati si deve ricorrere alla chiamata di sistema +\fBconnect\fR, la quale viene lanciata su ogni porta di destinazione\&. Questo ha l\*(Aqeffetto di inviare pacchetti SYN all\*(Aqhost di destinazione come per stabilire una connessione\&. Se la +\fBconnect\fR +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\*(Aqhost viene marcato come disponibile\&. Se il tentativo di connessione viene lasciato in sospeso fino al raggiungimento di un certo timeout l\*(Aqhost è marcato come down o non disponibile\&. +.RE +.PP +\fB\-PA <portlist>\fR (TCP ACK Ping) +.RS 4 +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\&. +.sp +L\*(Aqopzione +\fB\-PA\fR +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\*(Aqapproccio si usa la scorciatoia della +\fBconnect\fR +spiegata in precedenza\&. Questa scorciatoia non è ottimale perché in ogni caso la +\fBconnect\fR +invia un pacchetto SYN e non un ACK\&. +.sp +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\*(Aqesterno 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\*(Aqopzione +\fB\-\-syn\fR +per implementare questo approccio "stateless"\&. Quando un firewall implementa regole di questo tipo, un probe SYN (\fB\-PS\fR) 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\&. +.sp +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\*(Aqopzione +\fB\-\-state\fR, 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 +\fB\-PS\fR +e +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU <portlist>\fR (UDP Ping) +.RS 4 +Un\*(Aqaltra opzione di host discovery è il ping UDP, la quale manda un pacchetto UDP alle porte indicate\&. Per molte porte, il pacchetto sarà vuoto, anche se utilizzare un payload specifico del protocollo aumentale probabilità di risposta\&. Vedi la sezione +«UDP payloads: \fBnmap\-payloads\fR» +(\m[blue]\fB\%https://nmap.org/book/nmap-payloads.html\fR\m[]) per una descrizione del database dei payloads\&. Il contenuto del pacchetto può essere gestito con le opzioni +\fB\-\-data\fR, +\fB\-\-data\-string\fR +e +\fB\-\-data\-length\fR\&. +.sp +L\*(Aqelenco di porte va specificato nello stesso formato già discusso in precedenza nelle opzioni +\fB\-PS\fR +e +\fB\-PA\fR\&. Se non si specifica alcuna porta viene usata la 40125 di default\&. Questo valore può essere impostato durante la compilazione cambiando il parametro DEFAULT_UDP_PROBE_PORT nel file +nmap\&.h\&. Si usa di default una porta poco comune perché inviare dati ad una porta già aperta è spesso non desiderabile per questo tipo particolare di scansione\&. +.sp +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\*(Aqhost è funzionante e disponibile\&. Altri tipi di pacchetti ICMP di errore, come ad esempio host o rete "unreachable" (non disponibile) o "TTL exceeded" (superato il tempo di vita del pacchetto) indicano un host non funzionante o irraggiungibile\&. Una mancanza di risposta viene interpretata alla stessa maniera\&. Se si raggiunge una porta aperta la maggior parte dei servizi semplicemente ignorano il pacchetto vuoto e non rimandano alcuna risposta\&. Questo spiega perché il probe di default è la porta 40125, la quale si usa molto raramente\&. Pochi servizi, tra i quali +«chargen», rispondono a un pacchetto UDP vuoto, rivelando così a Nmap la disponibilità della macchina in questione\&. +.sp +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\*(Aqinterfaccia esterna di questa periferica filtrava tutte le porte TCP di default, ma i probe UDP provocavano messaggi di "Port unreachable" rivelando così l\*(Aqesistenza del device\&. +.RE +.PP +\fB\-PY <port list>\fR (SCTP INIT Ping) +.RS 4 +Questa opzione invia un pacchetto SCTP contenente un INIT chunk minimale\&. La porta di destinazione di default è la 80 (configurabile durante la compilazione cambiando il valore di DEFAULT_SCTP_PROBE_PORT_SPEC nel file +nmap\&.h)\&. Altre porte possono essere specificate come parametro\&. La sintassi è la stessa dell\*(Aqopzione +\fB\-p\fR +tranne che gli indicatori del tipo di porta +\fBS:\fR +non sono permessi\&. Da notare che non ci devono essere spazi tra +\fB\-PY\fR +e il numero di porta, ad esempio +\fB\-PY22\fR\&. Nel caso di più porte specificate, separate da virgola (ad esempio +\fB\-PY22,80,179,5060\fR), si tenterà un probe verso ogni porta in parallelo\&. +.sp +L\*(AqINIT chunk suggerisce al sistema remoto che stai tentando di stabilire un\*(Aqassociazione\&. Normalmente la porta di destinazione dovrebbe essere chiusa e un ABORT chunk verrà inviato come risposta\&. Se la porta invece dovesse essere aperta, l\*(Aqobiettivo 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\*(Aqassociazione 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\&. +.sp +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\*(Aqhost è disponibile e risponde alle connessioni\&. +.sp +Sulle macchine Unix, solo l\*(Aqutente privilegiato +root +generalmente è abilitato ad inviare e ricevere pacchetti SCTP "raw" (non formattati, grezzi)\&. Usare SCTP INIT Pings (\fB\-PY\fR) non è attualmente possibile per gli utenti non privilegiati\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (ICMP Ping Types) +.RS 4 +In aggiunta ai meno comuni tipi di host discovery TCP, UDP e SCTP discussi in precedenza, Nmap può anche mandare i pacchetti standard come il famoso programma +ping\&. Nmap manda un pacchetto ICMP type 8 ("echo request") all\*(Aqindirizzo 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\*(Aq\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[1]\d\s+2\&. 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\*(Aqopzione +\fB\-PE\fR +per abilitare questo comportamento di "echo request"\&. +.sp +Mentre la "echo request" è la richiesta standard del ping ICMP, Nmap non si ferma qui\&. Gli standard ICMP (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[2]\d\s+2 +e +\m[blue]\fBRFC 950\fR\m[]\&\s-2\u[3]\d\s+2) 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\*(Aqora corrente, essi possono facilmente essere usati per l\*(Aqhost 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\*(AqRFC 1122 specifica che +«un host NON DOVREBBE implementare questi messaggi» +(il maiuscolo negli RFC indica comportamenti precisi)\&. Il timestamp (data e ora) e le richieste di maschera di rete possono essere inviate rispettivamente mediante le opzioni +\fB\-PP\fR +e +\fB\-PM\fR\&. 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\&. +.RE +.PP +\fB\-PO <protocol list>\fR (IP Protocol Ping) +.RS 4 +Una delle nuove opzioni di host discovery è la IP Protocol Ping, la quale invia pacchetti IP con lo specifico numero di protocollo impostato nel loro IP header\&. La lista dei protocolli ha lo stesso formato della lista delle porte vista in precedenza nelle opzioni di host discovery TCP, UDP e SCTP\&. Se nessun protocollo viene specificato, di default vengono inviati pacchetti IP multipli per ICMP (protocollo 1), IGMP (protocollo 2) e IP\-in\-IP (protocollo 4)\&. I protocolli di default possono essere configurati in fase di compilazione cambiando il valore di DEFAULT_PROTO_PROBE_PORT_SPEC nel file +nmap\&.h\&. Si tenga presente che per i protocolli ICMP, IGMP, TCP (protocollo 6), UDP (protocollo 17) e SCTP (protocollo 132), i pacchetti vengono inviati con i loro opportuni headers mentre gli altri protocolli vengono inviati senza nessun dato aggiuntivo oltre all\*(AqIP header (a meno che non siano specificate le opzioni +\fB\-\-data\fR, +\fB\-\-data\-string\fR +o +\fB\-\-data\-length\fR)\&. +.sp +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\*(Aqhost di destinazione\&. Entrambe le risposte indicano che l\*(Aqobiettivo è attivo\&. +.RE +.PP +\fB\-PR\fR (ARP Ping) +.RS 4 +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\*(AqRFC 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\*(Aqindirizzo hardware (ARP) corrispondente all\*(Aqindirizzo 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\&. +.sp +L\*(AqARP scan lascia a Nmap e ai suoi algoritmi ottimizzati l\*(Aqincarico 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\*(Aqhost è raggiungibile\&. Questo rende l\*(AqARP 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 +\fB\-PE\fR +o +\fB\-PS\fR), Nmap usa comunque ARP per ogni target che è sulla stessa LAN\&. Se non si vuole assolutamente un ARP scan, specificare l\*(Aqopzione +\fB\-\-disable\-arp\-ping\fR\&. +.sp +Per IPv6 (opzione +\fB\-6\fR), +\fB\-PR\fR +utilizza ICMPv6 Neighbor Discovery al posto di ARP\&. Neighbor Discovery, definito nell\*(AqRFC 4861, può essere visto come l\*(Aqequivalente per IPv6 di ARP\&. +.RE +.PP +\fB\-\-disable\-arp\-ping\fR (No ARP or ND Ping) +.RS 4 +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 +\fB\-Pn\fR +o +\fB\-PE\fR, vengono utilizzate\&. Per disabilitare questo comportamento implicito, utilizzare l\*(Aqopzione +\fB\-\-disable\-arp\-ping\fR\&. +.sp +Il comportamento di default è solitamente più veloce, ma quest\*(Aqopzione è 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\&. +.RE +.PP +\fB\-\-traceroute\fR (Trace path to host) +.RS 4 +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\*(Aqobiettivo\&. Opera con tutte le tipologie di scansione tranne le connect scans (\fB\-sT\fR) e le idle scans (\fB\-sI\fR)\&. Tutti i tracciamenti utilizzano il modello di timing dinamico ("dynamic timing model") di Nmap e vengono eseguiti in parallelo\&. +.sp +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\*(Aqhost obiettivo\&. Le implementazioni standard di traceroute iniziano con un TTL settato a 1 e aumentano il TTL finché l\*(Aqhost 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\&. +.RE +.PP +\fB\-n\fR (No DNS resolution) +.RS 4 +Indica a Nmap di +\fInon effettuare mai\fR +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\*(Aqintero processo di scansione più veloce\&. +.RE +.PP +\fB\-R\fR (DNS resolution for all targets) +.RS 4 +Indica a Nmap di effettuare +\fIsempre\fR +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\&. +.RE +.PP +\fB\-\-system\-dns\fR (Use system DNS resolver) +.RS 4 +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\*(Aqordine delle dozzine) sono effettuate in parallelo per migliorare le performance\&. Si specifichi quest\*(Aqopzione se si vuole usare il proprio DNS (richiedendo un indirizzo IP alla volta usando la system call +\fBgetnameinfo\fR)\&. 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\&. +.RE +.PP +\fB\-\-dns\-servers <server1>[,<server2>][,\&.\&.\&.]]; \fR (Servers to use for reverse DNS queries) +.RS 4 +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\*(Aqopzione per indicare server alternativi\&. Tuttavia quest\*(Aqopzione viene ignorata nel caso si specifichi l\*(Aqopzione +\fB\-\-system\-dns\fR +o se si sta eseguendo una scansione IPv6\&. L\*(Aquso di più server DNS è spesso più veloce specialmente se si specificano server DNS autoritari per lo spazio IP di destinazione\&. Quest\*(Aqopzione inoltre attrae meno l\*(Aqattenzione, dato che le tue richieste possono essere rimbalzate praticamente da ogni server DNS su Internet\&. +.sp +Quest\*(Aqopzione 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 (\fB\-sL\fR) di Nmap specificando ogni volta un name server diverso con l\*(Aqopzione +\fB\-\-dns\-servers\fR +finché non si trova quello desiderato\&. +.RE +.SH "FONDAMENTI DI PORT SCANNING" +.PP +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 +\fBnmap \fR\fB\fItarget\fR\fR +effettua una scansione di 1\&.000 porte TCP sull\*(Aqhost +\fItarget\fR\&. Mentre molti port scanner considerano tutte le porte chiuse o aperte, Nmap è molto più preciso\&. Divide le porte in sei categorie o stati: +open +(aperta), +closed +(chiusa), +filtered +(filtrata), +unfiltered +(non filtrata), +open|filtered +(aperta|filtrata), +closed|filtered +(chiusa|filtrata)\&. +.PP +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\*(Aqobiettivo può mostrare la porta 135/tcp come aperta, mentre una scansione nello stesso momento con gli stessi parametri ma proveniente da Internet può mostrare quella stessa porta come +filtered\&. +.PP +\fBI sei stati nei quali Nmap classifica le porte\fR +.PP +open (aperta) +.RS 4 +Un\*(Aqapplicazione accetta attivamente su questa porta connessioni TCP, datagrammi UDP o associazioni SCTP\&. La ricerca di questo tipo di porte è spesso l\*(Aqobiettivo 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\*(Aqaltro 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\&. +.RE +.PP +closed (chiusa) +.RS 4 +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\*(Aqhost discovery o il ping scanning) o in quanto parte integrante dell\*(AqOperating 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\&. +.RE +.PP +filtered (filtrata) +.RS 4 +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\*(Aqattaccante\&. 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\&. +.RE +.PP +unfiltered (non filtrata) +.RS 4 +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\&. +.RE +.PP +open|filtered (aperta|filtrata) +.RS 4 +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\&. +.RE +.PP +closed|filtered (chiusa|filtrata) +.RS 4 +Questo stato è usato quando Nmap non è in grado di determinare se una porta sia chiusa o filtrata\&. Viene usato solo per l\*(AqIP ID idle scan\&. +.RE +.SH "TECNICHE DI PORT SCANNING" +.PP +Un neofita inesperto che cerca di aggiustarsi l\*(Aqautomobile 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\*(Aqennesimo 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\*(Aqarte 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\*(Aqaltro 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\*(Aqunico limite alla capacità di fare port scanning è solo la conoscenza\&. Questo lo rende sicuramente più accessibile del mondo delle automobili, dov\*(Aqè richiesta non solo una notevole abilità per sapere che serve uno specifico strumento, ma è anche necessario andarselo a comprare\&. +.PP +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\*(Aqaccesso come root su sistemi UNIX\&. L\*(Aquso 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\&. +.PP +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\&. +.PP +Questa sezione documenta le molteplici tecniche di port scanning supportate da Nmap\&. Si può usare solo un metodo per volta, a parte l\*(AqUDP scan (\fB\-sU\fR) e gli SCTP scan (\fB\-sY\fR, +\fB\-sZ\fR) che possono essere combinati con uno qualsiasi dei TCP scan\&. Per ricordarsi le varie opzioni di port scan, esse sono della forma +\fB\-s\fR\fB\fIC\fR\fR, dove +\fIC\fR +è un carattere significativo del nome della scansione, in genere il primo\&. L\*(Aqunica eccezione a questa regola generale è il cosiddetto FTP bounce scan che viene tuttavia sconsigliato (opzione +\fB\-b\fR)\&. Di default Nmap effettua un SYN scan, oppure un connect scan se l\*(Aqutente non ha privilegi sufficienti per mandare pacchetti raw (che richiedono l\*(Aqaccesso come root su UNIX)\&. Di tutte le scansioni elencate di seguito, gli utenti non privilegiati possono solo effettuare scansioni +\fBconnect\fR +ed FTP bounce\&. +.PP +\fB\-sS\fR (TCP SYN scan) +.RS 4 +Il SYN scan è l\*(Aqopzione di default ed è la più usata per buone ragioni\&. Può essere effettuato velocemente: effettua la scansione su migliaia di porte al secondo su una rete veloce non limitata da firewall restrittivi\&. Il SYN scan è relativamente nascosto e poco invasivo, poiché non completa mai le connessioni TCP\&. Funziona inoltre con ogni stack TCP compatibile e non dipende dalle idiosincrasie di piattaforme specifiche come fanno gli altri tipi di scan di Nmap quali FIN/NULL/Xmas, Maimon e Idle scan\&. Inoltre permette una differenziazione chiara ed affidabile tra le porte appartenenti agli stati +open, +closed +e +filtered\&. +.sp +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 +\m[blue]\fB\%https://nmap.org/misc/split-handshake.pdf\fR\m[])\&. +.RE +.PP +\fB\-sT\fR (TCP connect scan) +.RS 4 +La scansione di tipo TCP connect è la scansione TCP di default dove la scansione SYN non è un\*(Aqopzione viabile\&. Questo è il caso in cui un utente non ha privilegi sull\*(Aqinvio di pacchetti "raw"\&. Anziché scrivere pacchetti "raw" come in molti altri tipi di scansioni, Nmap richiede al sistema operativo sottostante di stabilire una connessione con la macchina di destinazione invocando la chiamata di sistema +connect\&. Questa è la stessa chiamata di alto livello invocata per stabilire una connessione da browser web, client p2p e molte altre applicazioni orientate all\*(Aqutilizzo in rete\&. Essa è parte dell\*(Aqinterfaccia 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\&. +.sp +Quand\*(Aqè possibile, il SYN scan è generalmente una scelta migliore\&. Nmap ha meno controllo sulla syscall +connect +rispetto ai pacchetti "raw", rendendolo quindi meno efficiente\&. La syscall completa le connessioni alle porte aperte specificate anziché limitarsi al reset dovuto alla scansione semi\-aperta del SYN scan\&. Non solo questo approccio richiede più tempo e numero maggiore di pacchetti per ottenere le stesse informazioni, ma le macchine obiettivo sono più propense a tenere traccia (log) della connessione\&. Inoltre un IDS ("Intrusion Detection System", sistema di controllo delle intrusioni) decente se ne accorgerà\&. Tuttavia la maggior parte delle macchine non hanno tali sistemi di allarme\&. Molti servizi sui propri sistemi UNIX standard aggiungeranno una nota al syslog, e alle volte un messaggio di errore criptico, quando Nmap si connette e chiude la connessione senza inviare dati di alcun tipo\&. Solo alcuni patetici servizi andranno in crash in queste condizioni, nonostante non sia comune\&. Un amministratore che dovesse vedere un insieme di tentativi di connessioni provenienti da un singolo sistema saprà infine che è vittima di un connect scan\&. +.RE +.PP +\fB\-sU\fR (UDP scans) +.RS 4 +Così come i servizi più comuni su Internet girano attraverso il protocollo TCP, anche i servizi +\m[blue]\fBUDP\fR\m[]\&\s-2\u[4]\d\s+2 +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\&. +.sp +Lo scan UDP si attiva con l\*(Aqopzione +\fB\-sU\fR\&. Può essere combinato con uno scan di tipo TCP come ad esempio un SYN scan (\fB\-sS\fR) per controllare entrambi i protocolli nel corso della stessa sessione\&. +.sp +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 +\fB\-\-data\fR, +\fB\-\-data\-string\fR +o +\fB\-\-data\-length\fR\&. Se viene restituito un errore ICMP "port unreachable" (tipo 3, codice 3) significa che la porta è +closed +(chiusa)\&. Altri errori ICMP di tipo "unreachable" (irraggiungibile) come quelli del tipo 3, codici 1, 2, 9, 10 o 13 andranno ad identificare la porta come +filtered +(filtrata)\&. Talvolta un servizio risponderà con un pacchetto UDP, dimostrando quindi che lo stato della porta è +open +(aperta)\&. Se non viene ricevuta alcuna risposta dopo alcune ritrasmissioni, la porta viene classificata come +open|filtered +(aperta|filtrata)\&. Questo significa che la porta può essere aperta o che probabilmente un filtro di pacchetti sta bloccando la comunicazione\&. Un version detection (\fB\-sV\fR) può essere usato per aiutare a differenziare le porte veramente aperte da quelle che sono filtrate\&. +.sp +La sfida maggiore con l\*(AqUDP scan è la velocità\&. Le porte aperte e filtrate raramente inviano qualche risposta, lasciando Nmap in timeout e facendolo ritrasmettere per evitare il caso in cui il probe o la risposta siano andati perduti\&. Le porte chiuse sono spesso un problema ancora maggiore: esse generalmente rimandano un pacchetto ICMP "port unreachable error", ma a differenza dei pacchetti RST rimandati dalle porte chiuse TCP come risposta ad un SYN o connect scan, molti host limitano il tasso di invio di tali pacchetti di default\&. Linux e Solaris sono particolarmente restrittivi da questo punto di vista\&. Ad esempio, il kernel 2\&.4\&.20 limita i messaggi di "destination unreachable" a uno al secondo (definito in +net/ipv4/icmp\&.c)\&. +.sp +Nmap si accorge di questi limiti sulla frequenza di invio e rallenta l\*(Aqinvio 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\*(Aqinterno del firewall ed infine usare l\*(Aqopzione +\fB\-\-host\-timeout\fR +per evitare host troppo lenti nel rispondere\&. +.RE +.PP +\fB\-sY\fR (SCTP INIT scan) +.RS 4 +\m[blue]\fBSCTP\fR\m[]\&\s-2\u[5]\d\s+2 +è un\*(Aqalternativa 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\*(Aqequivalente 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\*(AqINIT scan è relativamente nascosto e poco invasivo, dato che non completa mai le connessioni SCTP\&. Consente inoltre una chiara ed affidabile differenziazione tra gli stati della porta +open +(aperta), +closed +(chiusa) e +filtered +(filtrata)\&. +.sp +Questa tecnica è conosciuta come "half\-open" (semi\-aperta), in quanto non si completata l\*(Aqassociazione 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)\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP NULL, FIN, and Xmas scans) +.RS 4 +Queste tre tipologie di scansione (e molte altre sono possibili con l\*(Aqopzione +\fB\-\-scanflags\fR +descritta nella prossima sezione) sfruttano una piccola vulnerabilità nell\*(Aq\m[blue]\fBRFC del protocollo TCP\fR\m[]\&\s-2\u[6]\d\s+2 +per distinguere tra le porte +open +(aperte) e +closed +(chiuse)\&. A pagina 65 si dice che +«se lo stato della porta [di destinazione] è CHIUSO \&.\&.\&. un segmento in arrivo che non contiene un RST causerà l\*(Aqinvio di un RST in risposta»\&. La pagina successiva discute di pacchetti inviati a porte aperte senza i bit SYN, RST o ACK impostati, indicando che: +«questa situazione è decisamente improbabile, ma se dovesse capitare i segmenti vanno ignorati e si deve ritornare [alla funzione chiamante, NdT]»\&. +.sp +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: +.PP +NULL scan (\fB\-sN\fR) +.RS 4 +Non manda nessun bit (il TCP flag header è 0)\&. +.RE +.PP +FIN scan (\fB\-sF\fR) +.RS 4 +Setta solo il bit FIN\&. +.RE +.PP +Xmas scan (\fB\-sX\fR) +.RS 4 +Setta i bit FIN, PSH e URG, accendendo il pacchetto come un albero di natale\&. +.RE +.sp +Questi tre tipi di scan sono esattamente identici nel comportamento, ad eccezione delle attivazioni dei tre bit nei pacchetti TCP usati per la verifica delle porte\&. Se viene ricevuto un pacchetto RST, la porta è considerata +closed, mentre l\*(Aqassenza di risposta indica che la porta è +open|filtered\&. La porta è marcata come +filtered +se viene ricevuto un pacchetto ICMP "unreachable" (tipo 3, codice 1, 2, 3, 9, 10 o 13)\&. +.sp +Il vantaggio sostanziale di questi tipi di scan è che possono penetrare in certi non\-stateful firewall e packet filtering router\&. Un altro vantaggio è che questi tipi di scansione sono un po più invisibili anche dei SYN scan\&. In ogni caso non è corretto fare cieco affidamento su questo, gran parte dei moderni prodotti IDS possono essere configurati in modo da rilevarli\&. Il grande svantaggio è che non tutti i sistemi seguono alla lettera la RFC 793\&. Un buon numero di sistemi manda risposte RST ai pacchetti di controllo indipendentemente dal fatto che le porte siano aperte o chiuse\&. Questo causa il fatto che tutte le porte appaiano come +closed\&. I più diffusi sistemi operativi che fanno questo sono Microsoft Windows, molti apparati Cisco, BSDI e IBM OS/400\&. Questo scan funziona applicato alla maggior parte dei sistemi UNIX\&. Un altro svantaggio di questi scan è che non riescono a distinguere tra le porte +open +e quelle +filtered, dando come risposta +open|filtered\&. +.RE +.PP +\fB\-sA\fR (TCP ACK scan) +.RS 4 +Questo scan è diverso dagli altri discussi finora dal momento che non serve per determinare se le porte sono +open +(o +open|filtered)\&. Viene usato per mappare le regole di firewalling determinando se sono stateful o no e quali porte sono filtrate\&. +.sp +I pacchetti dell\*(AqACK scan hanno soltanto il flag ACK abilitato (a meno che non si usi +\fB\-\-scanflags\fR)\&. Mentre si scansionano sistemi non filtrati, sia le porte +open +che le porte +closed +manderanno pacchetti RST\&. Nmap poi le cataloga come +unfiltered, nel senso che è possibile raggiungerle con un pacchetto ACK, ma che siano aperte o chiuse non è determinabile\&. Le porte che non rispondono, o mandano certi errori ICMP (tipo 3, codice 1, 2, 3, 9, 10 o 13), sono etichettate come +filtered\&. +.RE +.PP +\fB\-sW\fR (TCP Window scan) +.RS 4 +Il window scan è esattamente la stessa cosa di ACK scan, ad eccezione del fatto che sfrutta un dettaglio di implementazione di certi sistemi per differenziare le porte aperte e quelle chiuse, invece di scrivere sempre +unfiltered +quando restituisce un RST\&. Lo fa esaminando il campo TCP Window del pacchetto RST che ritorna\&. In alcuni sistemi le porte aperte usano una grandezza della finestra positiva (anche per i pacchetti RST), mentre nelle porte chiuse la grandezza della finestra è zero\&. Quindi, invece di catalogare sempre le porte come +unfiltered +quando si riceve un RST di ritorno, il Window scan lista le porte come +open +o +closed +a seconda che il valore in quel RST (reset) sia, rispettivamente, positivo o pari a zero\&. +.sp +Questo scan fa affidamento a un dettaglio implementativo di una minoranza di sistemi presenti in Internet, quindi ciò non è sempre affidabile\&. Nei sistemi in cui questo dettaglio implementativo non sussiste, di norma lo scan segnalerà tutte le porte +closed\&. Ovviamente sarà possibile che la macchina non abbia realmente nessuna porta aperta\&. Se la maggior parte delle porte è +closed, ma alcune porte comuni (come la 22, la 25 o la 53) appaiono +filtered, il sistema è quasi sicuramente suscettibile a questo tipo di scan\&. Occasionalmente, alcuni altri sistemi presenteranno un comportamento esattamente opposto\&. Se lo scan riporta 1\&.000 porte aperte e 3 chiuse o filtrate, allora quelle 3 saranno con ogni probabilità proprio quelle aperte\&. +.RE +.PP +\fB\-sM\fR (TCP Maimon scan) +.RS 4 +Il Maimon scan è stato nominato così in onore al suo scopritore, Uriel Maimon\&. Egli descrisse questa tecnica nell\*(Aqarticolo #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 +\m[blue]\fBRFC 793\fR\m[]\&\s-2\u[6]\d\s+2 +(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\&. +.RE +.PP +\fB\-\-scanflags\fR (Custom TCP scan) +.RS 4 +Gli utilizzatori molto avanzati di Nmap hanno necessità di non limitarsi semplicemente ad utilizzare le scansioni tipiche offerte\&. L\*(Aqopzione +\fB\-\-scanflags\fR +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! +.sp +I parametri dell\*(Aqopzione +\fB\-\-scanflags\fR +possono essere un valore numerico indicante i flag TCP, come ad esempio 9 (PSH e FIN) anche se l\*(Aqutilizzo di nomi simbolici risulta comunque più semplice\&. Basta mettere creare una qualsiasi combinazione di +URG, +ACK, +PSH, +RST, +SYN +e +FIN\&. Per esempio, +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +imposta tutti i flag, anche se non risulta molto utile al fine della scansione\&. L\*(Aqordine con cui vengono specificati non è rilevante\&. +.sp +Oltre allo specificare i flag desiderati, è possibile indicare un tipo di scansione TCP (come +\fB\-sA\fR +o +\fB\-sF\fR)\&. Questo specifica come Nmap deve interpretare le risposte\&. Per esempio, un SYN scan considera la mancanza di risposta come una porta +filtered, mentre un FIN scan interpreta lo stesso comportamento per identificare una porta +open|filtered\&. Nmap si comporterà nello stesso modo che per la scansione normale, tranne che per il fatto di interpretare i flag TCP che sono stati specificati\&. Se non viene indicato un diverso tipo di scansione, viene automaticamente utilizzata la SYN scan\&. +.RE +.PP +\fB\-sZ (SCTP COOKIE ECHO scan)\fR +.RS 4 +L\*(AqSCTP COOKIE ECHO è più avanzato rispetto all\*(AqSCTP 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\*(AqINIT 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\*(Aqopzione renda un port scan invisibile; un buon IDS riesce ad individuare anche le scansioni SCTP COOKIE ECHO\&. Lo svantaggio è che le scansioni SCTP COOKIE ECHO non differenziano le porte tra +open +e +filtered +lasciando come stato +open|filtered +in entrambi i casi\&. +.RE +.PP +\fB\-sI <zombie host>[:<probeport>]\fR (idle scan) +.RS 4 +Questo metodo di scansione avanzato permette di effettuare una scansione TCP completamente invisibile dell\*(Aqobiettivo (ovvero nessun pacchetto viene inviato dall\*(Aqindirizzo IP reale da cui si sta effettuando la scansione\&.) Viene diversamente utilizzato un unico attacco parallelo che utilizza la predicibilità dell\*(AqID relativo alla sequenza di frammentazione generato dallo +\fIzombie host\fR +per ottenere informazioni sulle porte aperte dell\*(Aqobiettivo\&. 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 +« \m[blue]\fBTCP Idle Scan (\-sI)\fR\m[]\&\s-2\u[7]\d\s+2»\&. +.sp +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\*(Aqindirizzo IP\&. I risultati dalla scansione mostrano le porte aperte +\fIdalla prospettiva dell\*(Aqindirizzo IP della macchina zombie\&.\fR +Risulta così possibile effettuare scansioni utilizzando diversi zombie che si ritiene possano attraversare router o sistemi con packet filter\&. +.sp +È possibile aggiungere i due punti (:) seguiti dal numero di porta per l\*(Aqhost zombie, se si vuole sondare una particolare porta per vedere i cambiamenti nell\*(AqIP ID\&. Diversamente Nmap utilizzerà the porta che utilizza di default per i ping TCP (80)\&. +.RE +.PP +\fB\-sO\fR (IP protocol scan) +.RS 4 +L\*(AqIP 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\*(Aqopzione +\fB\-p\fR +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\&. +.sp +Oltre che essere intrinsecamente utile, il protocol scan dimostra la potenza del software open\-source\&. Per quanto l\*(Aqidea fondamentale è abbastanza semplice, non immaginavo di aggiungerla fino a quando non avessi ricevuto richieste per questa funzionalità\&. Nell\*(Aqestate del 2000, Gerhard Rieger concepì l\*(Aqidea e scrisse un\*(Aqeccellente patch che la implementasse, spedendola poi alla mailing list +\fInmap\-hackers\fR\&. 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! +.sp +Il protocol scan funziona in modo simile all\*(AqUDP 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\*(Aqheader 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 "\fIprotocol\fR +unreachable"\&. Se Nmap riceve una qualunque risposta di qualunque protocollo dall\*(Aqhost scansionato, Nmap indica tale protocollo come +open\&. Un errore ICMP "protocol unreachable" (tipo 3, codice 2) fa sì che il protocollo sia indicato come +closed\&. Altri errori ICMP "unreachable" (tipo 3, codice 1, 3, 9, 10 o 13) fanno classificare il protocollo come +filtered +(denotando, contestualmente, che il protocollo ICMP è +open)\&. Se non viene ricevuta alcuna risposta, il protocollo è identificato come +open|filtered\&. +.RE +.PP +\fB\-b <FTP relay host>\fR (FTP bounce scan) +.RS 4 +Un\*(Aqinteressante caratteristica del protocollo FTP (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[8]\d\s+2) è il supporto per le cosiddette "proxy FTP connections"\&. Questa permette all\*(Aqutente 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\*(Aqutilizzo 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\*(AqFTP bounce scan attraverso l\*(Aqopzione +\fB\-b\fR\&. I parametri per tale opzione devono rispettare il formato: +\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fR +dove +\fIServer\fR +è l\*(Aqhostname o l\*(Aqindirizzo IP di un server FTP vulnerabile a questo attacco\&. Come in una URL normale, è possibile omettere +\fIusername\fR:\fIpassword\fR, ed in tal caso verranno utilizzate credenziali anonime (user: +anonymous +password:\-wwwuser@)\&. Il numero di porta (ed i due punti che lo precedono) possono essere altresì omessi, in tal caso verrò utilizzata la porta FTP di default (21) per la connessione al +\fIserver\fR\&. +.sp +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\*(Aqobiettivo è oltrepassare un firewall, è necessario effettuare una scansione sulla rete cercando di trovare la porta 21 aperta (o anche cercando un servizio FTP su di una qualsiasi porta, utilizzando la version detection) e provare quindi lo script NSE +ftp\-bounce\&. Nmap sarà in grado di evidenziare se un host è vulnerabile o meno a questa tecnica\&. Se si sta cercando semplicemente di nascondere le proprie tracce, non vi è bisogno (e di fatto non si dovrebbe) di limitare la scansione alla rete che realmente ci interessa\&. Prima di iniziare ad effettuare scansioni su indirizzi Internet casuali per trovare server FTP vulnerabili è bene tenere presente che gli amministratori di sistema potrebbero non apprezzare che i loro server siano soggetti a tali abusi\&. +.RE +.SH "PORT SPECIFICATION E SCAN ORDER" +.PP +Oltre a tutti i metodi discussi in precedenza, Nmap offre la possibilità di specificare quali porte devono essere scansionate e se l\*(Aqordine delle porte deve essere casuale oppure sequenziale\&. Di default Nmap effettua la scansione delle 1\&.000 porte più comuni per ogni protocollo\&. +.PP +\fB\-p <port ranges>\fR (Only scan specified ports) +.RS 4 +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\*(Aqultimo valore di un intervallo possono essere omessi, facendo sì che Nmap utilizzi rispettivamente 1 e 65535 come limiti\&. È quindi possibile utilizzare l\*(Aqopzione +\fB\-p\-\fR +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 (\fB\-sO\fR), questa opzione indica il numero del protocollo che si desidera scansionare (0\-255)\&. +.sp +Quando si effettua una scansione combinata di protocolli (ad esempio TCP e UDP), è possibile specificare un protocollo particolare anteponendo al numero di porta +T: +per TCP, +U: +per UDP, +S: +per SCTP o +P: +per IP Protocol\&. Tale indicazione risulta valida sino a che non ne viene indicata un\*(Aqaltra\&. Per esempio, l\*(Aqopzione +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +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\*(Aqopzione +\fB\-sU\fR +e almeno un metodo di TCP scan (come +\fB\-sS\fR, +\fB\-sF\fR +o +\fB\-sT\fR)\&. Se non viene indicato nulla, i numeri di porta vengono aggiunti a tutte le liste dei protocolli\&. +.sp +Le porte possono anche essere indicate tramite il loro nome, così come sono indicate nell\*(Aqnmap\-services\&. Si possono anche utilizzare i caratteri speciali * e ? con i nomi\&. Ad esempio, per scansionare l\*(AqFTP e tutte le porte il cui nome inizia con "http", si può usare +\fB\-p ftp,http*\fR\&. Si raccomanda di prestare attenzione alla "shell expansions" e di racchiudere tra apici (quote) l\*(Aqargomento di +\fB\-p\fR +se non si è sicuri\&. +.sp +I range di porte possono essere racchiusi da parentesi quadre per indicare le porte all\*(Aqinterno di quel range che appare in +nmap\-services\&. Ad esempio, ciò che segue eseguirà la scansione di tutte le porte in +nmap\-services +uguali o minori di 1024: +\fB\-p [\-1024]\fR\&. Si raccomanda di prestare attenzione alla "shell expansions" e di racchiudere tra apici (quote) l\*(Aqargomento di +\fB\-p\fR +se non si è sicuri\&. +.RE +.PP +\fB\-\-exclude\-ports <port ranges>\fR (Exclude the specified ports from scanning) +.RS 4 +Quest\*(Aqopzione specifica quali porte Nmap deve escludere dalla scansione\&. I +\fIport ranges\fR +devono essere specificati in modo simile a +\fB\-p\fR\&. Per le scansioni IP protocol (\fB\-sO\fR), questa opzione specifica il numero di protocolli che si vuole escludere (0–255)\&. +.sp +Quando si richiede di escludere le porte, queste vengono escluse da tutti i tipi di scansione\&. Ciò include anche la fase di discovery\&. +.RE +.PP +\fB\-F\fR (Fast (limited port) scan) +.RS 4 +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\*(Aqopzione +\fB\-F\fR +il numero si riduce a 100\&. +.sp +Nmap ha bisogno del file +nmap\-services +che contiene le informazioni di frequenza, in modo da sapere quali sono le porte più comuni (vedi +«\m[blue]\fBWell Known Port List: \fBnmap\-services\fR\fR\m[]\&\s-2\u[9]\d\s+2» +per maggiori informazioni sulle "port frequencies")\&. Se la "port frequency information" non è disponibile, forse perché si sta utilizzando un file +nmap\-services +personalizzato, Nmap scansiona tutte le porte nominate più le porte nell\*(Aqintervallo 1\-1024\&. In questo caso, l\*(Aqopzione +\fB\-F\fR +indica di scansionare solo le porte che sono presenti nel file +nmap\-services\&. +.RE +.PP +\fB\-r\fR (Don\*(Aqt randomize ports) +.RS 4 +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\*(Aqopzione +\fB\-r\fR +così da effettuare i controlli in ordine sequenziale crescente\&. +.RE +.PP +\fB\-\-port\-ratio <ratio><decimal number between 0 and 1>\fR +.RS 4 +Scansiona tutte le porte presenti nel file +nmap\-services +con un rapporto maggiore di quello indicato\&. +\fIratio\fR +deve essere compreso tra 0\&.0 e 1\&.1\&. +.RE +.PP +\fB\-\-top\-ports <n>\fR +.RS 4 +Scansiona le +\fIn\fR +porte presenti nel file +nmap\-services +con il maggior rapporto, dopo aver escluso tutte le porte indicate in +\fB\-\-exclude\-ports\fR\&. +\fIn\fR +deve essere maggiore o uguale a 1\&. +.RE +.SH "SERVICE E VERSION DETECTION" +.PP +Utilizzando Nmap e dirigendo la scansione su una macchina remota è possibile scoprire che le porte 25/tcp, 80/tcp e 53/udp sono aperte\&. Utilizzando il suo database di circa 2\&.200 servizi noti, contenuto nel file +nmap\-services, Nmap probabilmente sarà in grado di indicare che ti tratta rispettivamente di un mail server (SMTP), di un web server (HTTP) e di un name server (DNS)\&. Tale riconoscimento è solitamente accurato \- la maggior parte dei demoni in ascolto sulla porta 25 sono, in effetti, mail server\&. Non è comunque opportuno fidarsi ciecamente di tali indicazioni! È infatti possibile erogare servizi su porte non convenzionali\&. +.PP +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\&. +.PP +Al momento dell\*(Aqidentificazione delle porte TCP e/o UDP da parte di uno dei vari metodi di scansione, il version detection interroga queste porte per rilevare ulteriori dati sui servizi erogati\&. Il database contenuto nel file +nmap\-service\-probes +contiene istruzioni per interrogare i vari servizi e per interpretarne le risposte\&. Nmap cerca quindi di determinare di che servizio si tratta (ad esempio FTP, SSH, Telnet, HTTP), il nome dell\*(Aqapplicazione (ad esempio ISC BIND, Apache httpd, Solaris telnetd), la versione, l\*(Aqhostname, 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\*(Aqapertura di un X server alle connessioni, la versione del protocollo SSH o l\*(Aqutenza utilizzata da KaZaA\&. Ovviamente la maggior parte dei servizi non rilasciano tutte queste informazioni\&. Se Nmap viene compilato con il supporto per OpenSSL, sarà in grado di connettersi ai server SSL per dedurre quale tipo di servizio viene offerto dietro al suo "encryption layer"\&. Alcune delle porte UDP vengono indicate come +open|filtered +se un UDP port scan non è in grado di determinare con precisione se la porta è open o filtered\&. Il version detection cercherà di ottenere una risposta da queste porte (esattamente come per le porte aperte), e modificherà lo stato in +open +se ci riuscirà\&. Le porte TCP +open|filtered +vengono trattate nello stesso modo\&. Bisogna tener presente che l\*(Aqopzione +\fB\-A\fR +abilita, fra le varie cose, il version detection\&. Il version detection viene descritto nel dettaglio in +\m[blue]\fBChapter 7, Service and Application Version Detection\fR\m[]\&\s-2\u[10]\d\s+2\&. +.PP +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 +\fBrpcinfo \-p\fR +anche se il portmapper dell\*(Aqobiettivo e dietro un firewall (o protetto da TCP wrappers)\&. I decoy attualmente non funzionano con l\*(AqRPC scan\&. +.PP +Quando Nmap riceve delle risposte da un servizio ma non è in grado di trovarne un\*(Aqinterpretazione 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\*(Aqinvio 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\&. +.PP +Version detection viene attivato e controllato dalle seguenti opzioni: +.PP +\fB\-sV\fR (Version detection) +.RS 4 +Abilita il version detection, come precedentemente illustrato\&. In alternativa, è possibile utilizzare l\*(Aqopzione +\fB\-A\fR +che attiva il version detection, tra le altre cose\&. +.sp +\fB\-sR\fR +è un alias +\fB\-sV\fR\&. Fino a Marzo 2011 era usata per attivare l\*(AqRPC separatamente dal version detection, ma ora queste opzioni sono sempre combinate\&. +.RE +.PP +\fB\-\-allports\fR (Don\*(Aqt exclude any ports from version detection) +.RS 4 +Normalmente, il version detection di Nmap non invia pacchetti alla porta TCP 9100 poiché alcune stampanti accettano e stampano direttamente qualunque dato ricevuto su questa porta\&. Se tale porta fosse sottoposta a scansione, verrebbero stampate decine di pagine contenenti richieste HTTP GET puri, dati binari di sessioni SSL e via discorrendo\&. È possibile cambiare il comportamento del version detection di Nmap con la modifica o la rimozione della direttiva +Exclude +nel file +nmap\-service\-probes +oppure specificando l\*(Aqopzione +\fB\-\-allports\fR, così da effettuare la scansione di tutte le porte, indipendentemente da quanto indicato nella direttiva +Exclude\&. +.RE +.PP +\fB\-\-version\-intensity <intensity>\fR (Set version scan intensity) +.RS 4 +Quando si effettua un version scan (\fB\-sV\fR), 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\*(Aqaltro canto, più una scansione è accurata e più tempo sarà necessario\&. I valori devono essere compresi tra 0 e 9; il valore di default è 7\&. Quando viene assegnato direttamente un probe ad una porta utilizzando la direttiva +ports +nel file +nmap\-service\-probes, esso viene utilizzato indipendentemente dal valore indicato per l\*(Aqaccuratezza 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\*(AqSSL e così via\&. +.RE +.PP +\fB\-\-version\-light\fR (Enable light mode) +.RS 4 +Questa opzione è un alias di +\fB\-\-version\-intensity 2\fR\&. Questa modalità rende il version scanning drasticamente più veloce, riducendone però la capacità di identificare accuratamente i servizi\&. +.RE +.PP +\fB\-\-version\-all\fR (Try every single probe) +.RS 4 +Questa opzione è equivalente a +\fB\-\-version\-intensity 9\fR, assicurando che ogni singolo probe venga utilizzato su ogni singola porta\&. +.RE +.PP +\fB\-\-version\-trace\fR (Trace version scan activity) +.RS 4 +Indica a Nmap di visualizzare informazioni di debug estese relative all\*(Aqattività del version scanning\&. È un subset di quanto si ottiene con l\*(Aqopzione +\fB\-\-packet\-trace\fR\&. +.RE +.SH "OS DETECTION" +.PP +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\*(Aqhost remoto ed esamina ogni bit ricevuto in risposta\&. Dopo aver effettuato decine di test come "il TCP ISN sampling", il "TCP option support and ordering", il "IP ID Sampling" ed il controllo del window size iniziale, Nmap compara i risultati con il suo database (nmap\-os\-db) contenente più di 2\&.600 fingerprint conosciuti e ne visualizza i dettagli se ne trova riscontro\&. Ogni fingerprint comprende una descrizione del sistema operativo ed una classificazione che indica il vendor (per esempio Sun), il sistema operativo (per esempio Solaris), la versione (per esempio 10) ed il tipo di device (per esempio "general purpose", router, switch, game console, ecc)\&. Molti fingerprint hanno anche la rappresentazione CPE (Common Platform Enumeration), come ad esempio +cpe:/o:linux:linux_kernel:2\&.6\&. +.PP +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\*(Aqhost in questione)\&. Inviando questi fingerprint è possibile contribuire ad ampliare la gamma di sistemi operativi conosciuti da Nmap, così da renderlo più accurato per tutti\&. +.PP +L\*(AqOS 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\*(Aqhost remoto\&. È utile per sfruttare exploit basati sul controllo del source\-IP (rlogin, filtri firewall, ecc\&.) o per nascondere la sorgente di un attacco\&. Questo tipo di spoofing viene raramente eseguito, ma molte macchine sono ancora vulnerabili ad esso\&. Il valore che indica la difficoltà è basato su campionamenti statistici e può variare\&. Generalmente è preferibile utilizzare la classificazione verbale, come +«worthy challenge» +o +«trivial joke», che viene riportata solo nel normale output in modalità "verbose" (\fB\-v\fR)\&. Quando questa modalità è abilitata insieme all\*(Aqopzione +\fB\-O\fR, viene anche riportata la sequenza di generazione dell\*(AqIP ID\&. La maggior parte delle macchine è nella classe +«incremental», il che significa che incrementano il campo ID dell\*(Aqheader IP per ogni pacchetto inviato\&. Ciò le rende vulnerabili a diversi attacchi avanzati di spoofing ed "information gathering"\&. +.PP +Altre informazioni extra abilitate dall\*(AqOS detection riguardano il tempo di attività (uptime) dell\*(Aqobiettivo\&. Sfruttando l\*(Aqopzione TCP timestamp (\m[blue]\fBRFC 1323\fR\m[]\&\s-2\u[11]\d\s+2) cerca di indovinare quando una macchina ha effettuato l\*(Aqultimo reboot\&. Quest\*(Aqinformazione 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"\&. +.PP +L\*(AqOS detection viene trattato nel dettaglio in +\m[blue]\fBChapter 8, Remote OS Detection\fR\m[]\&\s-2\u[12]\d\s+2\&. +.PP +OS detection viene attivato e controllato dalle le seguenti opzioni: +.PP +\fB\-O\fR (Enable OS detection) +.RS 4 +Abilita l\*(AqOS detection, come descritto sopra\&. In alternativa, è possibile utilizzare l\*(Aqopzione +\fB\-A\fR +per attivare sia l\*(AqOS detection, tra le altre cose\&. +.RE +.PP +\fB\-\-osscan\-limit\fR (Limit OS detection to promising targets) +.RS 4 +L\*(AqOS detection è molto più efficace se vengono rilevate almeno una porta TCP aperta ed una chiusa\&. Utilizzando questa opzione Nmap non cercherà di effettuare l\*(AqOS detection sugli host che non rispondo a questo criterio\&. È così possibile un sensibile risparmio di tempo, specialmente se si utilizza anche l\*(Aqopzione +\fB\-Pn\fR +su molti host\&. È importante unicamente quando l\*(AqOS detection è richiesto attraverso le opzioni +\fB\-O\fR +o +\fB\-A\fR\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Guess OS detection results) +.RS 4 +Quando Nmap non è in grado di rilevare una corrispondenza esatta dell\*(AqOS, 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\*(AqOS 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)\&. +.RE +.PP +\fB\-\-max\-os\-tries\fR(Set the maximum number of OS detection tries against a target) +.RS 4 +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\*(Aqinvio del fingerprint, e due volte se invece non lo sono\&. Specificando un valore più piccolo (ad esempio 1) nell\*(Aqopzione +\fB\-\-max\-os\-tries\fR, 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\&. +.RE +.SH "NMAP SCRIPTING ENGINE (NSE)" +.PP +L\*(AqNmap Scripting Engine (NSE) è una delle feature più potenti e flessibili di Nmap\&. Permette agli utenti di scrivere (e condividere) semplici script (utilizzando il +\m[blue]\fBlinguaggio di programmazione Lua\fR\m[]\&\s-2\u[13]\d\s+2) per automatizzare un gran varietà di networking task\&. Questi script vengono eseguito in parallelo con la velocità e l\*(Aqefficienza 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à\&. +.PP +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\&. +.PP +Per riflettere i differenti usi e semplificare la scelta di quale utilizzare, ogni script contiene un campo associato con una o più categorie\&. Attualmente le categorie definite sono +auth, +broadcast, +default, +discovery, +dos, +exploit, +external, +fuzzer, +intrusive, +malware, +safe, +version +e +vuln\&. Queste sono tutte descritte nella sezione +«\m[blue]\fBScript Categories\fR\m[]\&\s-2\u[14]\d\s+2»\&. +.PP +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\&. +.PP +L\*(AqNmap Scripting Engine è descritto nel dettaglio in +\m[blue]\fBChapter 9, Nmap Scripting Engine\fR\m[]\&\s-2\u[15]\d\s+2 +e viene controllato dalle seguenti opzioni: +.PP +\fB\-sC\fR +.RS 4 +Esegue uno script scan utilizzando il set di script di default\&. È l\*(Aqequivalente di +\fB\-\-script=default\fR\&. Alcuni degli script in questa categoria vengono considerati intrusivi e potrebbero non essere eseguiti su di un obiettivo di rete senza permessi\&. +.RE +.PP +\fB\-\-script <filename>|<category>|<directory>|<expression>[,\&.\&.\&.]\fR +.RS 4 +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\*(Aqespressione booleana che descrive un più complesso set di script\&. Gli elementi vengono interpretati prima come un\*(Aqespressione, poi come una categoria e infine come il nome di file o di una directory\&. +.sp +Sono presenti due feature speciali dedicate agli utenti esperti\&. La prima consiste nell\*(Aqaggiungere come prefisso al nome degli script e alle espressioni il carattere ++ +per forzarne l\*(Aqesecuzione anche quando non verrebbe fatta (ad esempio quando il relativo servizio non è stato trovato sulla porta dell\*(Aqhost)\&. L\*(Aqaltra feature è l\*(Aqargomento +\fBall\fR +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"\&. +.sp +I percorsi dei file e delle directory possono essere sia relativi che assoluti\&. I percorsi assoluti sono diretti, mentre quelli relativi vengono ricercati nelle cartelle +scripts +presenti in ogni seguente locazione: +.PP +\fB\-\-datadir\fR +.RS 4 +.RE +.PP +\fB$NMAPDIR\fR +.RS 4 +.RE +.PP +~/\&.nmap (non usato in Windows) +.RS 4 +.RE +.PP +<HOME>\eAppData\eRoaming\enmap (usato solo in Windows) +.RS 4 +.RE +.PP +la directory contenente l\*(Aqeseguibile di Nmap +.RS 4 +.RE +.PP +la directory contenente l\*(Aqeseguibile di Nmap, seguita da \&.\&./share/nmap +.RS 4 +.RE +.PP +\fBNMAPDATADIR\fR +.RS 4 +.RE +.PP +La directory corrente +.RS 4 +.RE +.sp +Quando viene specificata una directory, Nmap carica ogni file in quella directory che ha come estensione +\&.nse\&. Tutti gli altri file verranno ignorati e la directory non verrà scansionata in modo ricorsivo\&. Quando viene specificato un file, bisogna omettere l\*(Aqestensione +\&.nse, verrà aggiunta automaticamente se necessario\&. +.sp +Gli script Nmap sono archiviati di default in una subdirectory +scripts +della directory principale di Nmap (vedi +\m[blue]\fBChapter 14, Understanding and Customizing Nmap Data Files\fR\m[]\&\s-2\u[16]\d\s+2)\&. Per migliorare l\*(Aqefficienza, gli script vengono indicizzati nel database +scripts/script\&.db, che elenca le categorie cui ogni script appartiene\&. +.sp +Quando si usa il nome dagli script come riferimento dal file +script\&.db, si può utilizzare come nella shell il carattere speciale +«*»\&. +.PP +\fBnmap \-\-script "http\-*"\fR +.RS 4 +Carica tutti gli script il cui nome inizia con +http\-, come +http\-auth +e +http\-open\-proxy\&. L\*(Aqargomento di +\fB\-\-script\fR +è stato messo tra apici per proteggere il carattere speciale dall\*(Aqinterpretazione della shell\&. +.RE +.sp +Selezioni più complesse di script possono essere eseguite utilizzando gli operatori +and, +or +e +not +costruendo così espressioni booleane\&. Gli operatori hanno la stessa precedenza che hanno in Lua: +not +è il più alto, seguito dal +and +e quindi +or\&. Si può modificare la precedenza utilizzando le parentesi\&. Dato che le espressioni contengono caratteri di spazio, è necessario racchiuderle tra apici (quote)\&. +.PP +\fBnmap \-\-script "not intrusive"\fR +.RS 4 +Carica tutti gli script tranne quelli nella categoria +intrusive\&. +.RE +.PP +\fBnmap \-\-script "default or safe"\fR +.RS 4 +Questa funzionalità è l\*(Aqequivalente di +\fB\-\-script "default,safe"\fR\&. Carica tutti gli script che sono nelle categorie +default, +safe +o in entrambe\&. +.RE +.PP +\fBnmap \-\-script "default and safe"\fR +.RS 4 +Carica gli script che sono in +\fIentrambe\fR +le categorie +default +e +safe\&. +.RE +.PP +\fBnmap \-\-script "(default or safe or intrusive) and not http\-*"\fR +.RS 4 +Carica gli script che sono nelle categorie +default, +safe +o +intrusive +tranne quelli il cui nome inizia con +http\-\&. +.RE +.RE +.PP +\fB\-\-script\-args <n1>=<v1>,<n2>={<n3>=<v3>},<n4>={<v4>,<v5>}\fR +.RS 4 +Permette di fornire argomenti agli script NSE\&. Gli argomenti sono una lista, separati da virgola, di coppie +name=value\&. I nomi e i valori possono essere stringhe senza spazi o i caratteri "{", "}", "=" e ","\&. Per includere uno di questi caratteri in una stringa, si deve racchiudere la stringa tra apici singoli o doppi\&. Il carattere "\e" (backslash) in una stringa tra apici, annulla la funzionalità dell\*(Aqapice\&. Il backslash viene interpretato in questo modo solo in questo caso particolare, negli altri casi viene considerato "letteralmente"\&. I valori possono anche essere elenchi racchiusi tra parentesi graffe ("{}"), così come in Lua\&. Un elenco può contenere valori, nella forma di semplici stringhe, oppure altre coppie di nomi\-valori; sono consentiti anche gli elenchi annidati\&. Alcuni script definiscono i loro argomenti con il nome dello script, ad esempio +xmpp\-info\&.server_name\&. Si può utilizzare questa identificazione per agire solo sullo script specificato, oppure utilizzare la versione non identificativa (server_name +in questo caso) per agire su tutti gli script che utilizzano questo argomento\&. Uno script controllerà prima gli argomenti a lui identificati (il nome degli argomenti è specificato nella documentazione dello script) prima di accettare un argomento non qualificato\&. Un esempio complesso è +\fB\-\-script\-args \*(Aquser=foo,pass=",{}=bar",whois={whodb=nofollow+ripe},xmpp\-info\&.server_name=localhost\*(Aq\fR\&. L\*(AqNSE Documentation Portal all\*(Aqindirizzo +\m[blue]\fB\%https://nmap.org/nsedoc/\fR\m[] +elenca gli argomenti che ogni script accetta\&. +.RE +.PP +\fB\-\-script\-args\-file <filename>\fR +.RS 4 +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\*(Aqultimo 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 +\fB\-\-script\-args\fR, senza però particolari apici dato che non vengono elaborati dalla shell\&. +.RE +.PP +\fB\-\-script\-help <filename>|<category>|<directory>|<expression>|all[,\&.\&.\&.]\fR +.RS 4 +Mostra l\*(Aqhelp degli scripts\&. Per ogni script specificato, Nmap restituisce il nome, le categorie cui appartiene e la sua descrizione\&. La sintassi è la stessa dell\*(Aqopzione +\fB\-\-script\fR; quindi per esempio se si volesse l\*(Aqhelp dello script +ftp\-anon, si dovrà eseguire il comando +\fBnmap \-\-script\-help ftp\-anon\fR\&. Oltre all\*(Aqhelp per gli script individuali, si potrà anche ottenere l\*(Aqanteprima di cosa lo script eseguirà secondo una specifica, ad esempio +\fBnmap \-\-script\-help default\fR\&. +.RE +.PP +\fB\-\-script\-trace\fR +.RS 4 +Quest\*(Aqopzione è come l\*(Aqopzione +\fB\-\-packet\-trace\fR, solo un livello ISO più in alto\&. Se viene specificata quest\*(Aqopzione, tutte le comunicazioni in entrata ed in uscita eseguite da uno script vengono mostrate\&. Queste informazioni includono il protocollo di comunicazione, la sorgente, l\*(Aqobiettivo e i dati trasmessi\&. Se più del 5% di tutti i dati trasmessi non sono stampabili a video, allora l\*(Aqoutput sarà in esadecimale\&. Indicando l\*(Aqopzione +\fB\-\-packet\-trace\fR +anche lo script tracing verrà abilitato\&. +.RE +.PP +\fB\-\-script\-updatedb\fR +.RS 4 +Quest\*(Aqopzione aggiorna il database degli script che si trova nel file +scripts/script\&.db, il quale viene utilizzato da Nmap per determinare gli script e le categorie di default\&. È necessario aggiornare il database solo se vengono aggiunti o rimossi script NSE dalla directory di default o se sono state cambiate le categorie di qualche script\&. Quest\*(Aqopzione viene generalmente utilizzata da sola: +\fBnmap \-\-script\-updatedb\fR\&. +.RE +.SH "TIMING AND PERFORMANCE" +.PP +Le performance sono sempre state una delle principali priorità durante lo sviluppo di Nmap\&. Una scansione di default (\fBnmap \fR\fB\fIhostname\fR\fR) 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\*(Aqutente 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\*(Aqinterno della finestra temporale minima\&. +.PP +Alcune tecniche per migliorare i tempi di scansione sono l\*(Aqomissione di test non rilevanti e l\*(Aqaggiornamento all\*(Aqultima versione di Nmap (questo perché spesso gli aggiornamenti includono miglioramenti delle performance)\&. Anche ottimizzare i parametri di timing è un\*(Aqottima strategia per ottenere sostanziali differenze; queste opzioni sono elencate di seguito\&. +.PP +Alcune opzioni accettano il parametro +time\&. Questo indica una quantità di tempo in secondi (di default), ma è possibile aggiungere \*(Aqms\*(Aq, \*(Aqs\*(Aq, \*(Aqm\*(Aq o \*(Aqh\*(Aq per indicare millisecondi, secondi, minuti oppure ore\&. Ad esempio, per il parametro +\fB\-\-host\-timeout\fR +gli argomenti +900000ms, +900, +900s +e +15m +hanno tutti lo stesso effetto\&. +.PP +\fB\-\-min\-hostgroup <numhosts>\fR; \fB\-\-max\-hostgroup <numhosts>\fR (Adjust parallel scan group sizes) +.RS 4 +Nmap ha l\*(Aqabilità 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\*(Aqutente fino a quando l\*(Aqintero gruppo non è stato esplorato completamente\&. Quindi, se si lancia Nmap impostando la dimensione del gruppo a 50, l\*(Aqutente non vedrà alcun risultato fino a quando i primi 50 host non sono stati completati (a meno che non si selezioni la modalità verbose)\&. +.sp +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\&. +.sp +Nel caso in cui una dimensione massima del gruppo sia specificata con +\fB\-\-max\-hostgroup\fR, Nmap non oltrepasserà mai questo limite\&. Specificando invece una dimensione minima con +\fB\-\-min\-hostgroup\fR +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\*(Aqinterfaccia per raggiungere la minima quota specificata\&. Entrambe le opzioni possono essere impostate per mantenere la dimensione del gruppo all\*(Aqinterno di un certo limite, anche se questo succede raramente\&. +.sp +Queste opzioni durante la fase di host discovery di una scansione non hanno effetto; ciò include anche il plain ping scan (\fB\-sn\fR)\&. L\*(Aqhost discovery lavora sempre su grandi gruppi di host per aumentare la velocità e l\*(Aqaccuratezza\&. +.sp +L\*(Aqutilizzo 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\*(Aqaiuto\&. +.RE +.PP +\fB\-\-min\-parallelism <numprobes>\fR; \fB\-\-max\-parallelism <numprobes>\fR (Adjust probe parallelization) +.RS 4 +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\*(Aqè 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\&. +.sp +L\*(Aquso più comune consiste nell\*(Aqimpostare +\fB\-\-min\-parallelism\fR +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\*(Aqopzione, in quanto impostandola ad un valore troppo alto può influire negativamente sull\*(Aqaccuratezza\&. Impostandola manualmente inoltre riduce l\*(Aqabilità 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\&. +.sp +L\*(Aqopzione +\fB\-\-max\-parallelism\fR +viene impostata a volte sul valore 1 per impedire a Nmap di inviare più di un probe alla volta verso un determinato host\&. L\*(Aqopzione +\fB\-\-scan\-delay\fR +(discussa in seguito), è un altro modo per ottenere questo risultato\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout <time>\fR, \fB\-\-max\-rtt\-timeout <time>\fR, \fB\-\-initial\-rtt\-timeout <time>\fR (Adjust probe timeouts) +.RS 4 +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 +\m[blue]\fB«Idle Scan Implementation Algorithms»\fR\m[]\&\s-2\u[17]\d\s+2\&. 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\&. +.sp +Specificando limiti di +\fB\-\-max\-rtt\-timeout\fR +e di +\fB\-\-initial\-rtt\-timeout\fR +inferiori ai valori di default è possibile ridurre di molto i tempi di scansione\&. Questo è vero in particolare per scansioni di tipo "pingless" (opzione +\fB\-Pn\fR) 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\&. +.sp +Se tutti gli host sono su una rete locale, 100 millisecondi (\fB\-\-max\-rtt\-timeout 100ms\fR)è un valore ragionevolmente aggressivo\&. Se nella scansione è coinvolto qualche routing, sarebbe meglio effettuare un ping preliminare dell\*(Aqhost (con l\*(Aqutility 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\*(Aqopzione +\fB\-\-initial\-rtt\-timeout\fR +e triplicarlo o quadruplicarlo per l\*(Aqopzione +\fB\-\-max\-rtt\-timeout\fR\&. 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\&. +.sp +L\*(Aqopzione +\fB\-\-min\-rtt\-timeout\fR +è 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\&. +.RE +.PP +\fB\-\-max\-retries <numtries>\fR (Specify the maximum number of port scan probe retransmissions) +.RS 4 +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\*(Aqhost 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\*(Aqaccuratezza, 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 +\fB\-\-max\-retries 0\fR +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)\&. +.sp +Di default (senza nessun template, opzione +\fB\-T\fR) 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 +\fB\-\-max\-retries\fR +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 +\fB\-\-host\-timeout\fR +e perdere tutte le informazioni dell\*(Aqobiettivo\&. +.RE +.PP +\fB\-\-host\-timeout <time>\fR (Give up on slow target hosts) +.RS 4 +Alcuni host a volte richiedono un tempo estremamente +\fIlungo\fR +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\*(Aqopzione +\fB\-\-host\-timeout\fR +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\*(Aqora su di un singolo host\&. Si noti che Nmap può nel frattempo effettuare la scansione su altri host durante quella mezz\*(Aqora, per cui non si tratta di tempo completamente sprecato\&. Un host che dovesse andare in timeout viene semplicemente saltato\&. Non vengono mostrati l\*(Aqelenco delle porte, il detection del sistema operativo né risultati di version detection per quell\*(Aqhost\&. +.RE +.PP +\fB\-\-scan\-delay <time>\fR; \fB\-\-max\-scan\-delay <time>\fR (Adjust delay between probes) +.RS 4 +Quest\*(Aqopzione 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\*(Aqinvio ("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 +\fB\-\-scan\-delay\fR +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\&. +.sp +Quando Nmap aumenta lo scan delay in base al rate limiting, la scansione rallenta drammaticamente\&. L\*(Aqopzione +\fB\-\-max\-scan\-delay\fR +indica il valore massimo di delay che Nmap può adottare\&. Un valore basso di quest\*(Aqopzione 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\&. +.sp +Un altro uso dell\*(Aqopzione\fB\-\-scan\-delay\fR +è quello in cui si desidera evitare sistemi anti\-intrusione (IDS/IPS, "intrusion\-detection" e "intrusion\-prevention system")\&. Questa tecnica viene utilizzata nella sezione +«\m[blue]\fBA practical example: bypassing default Snort 2\&.2\&.0 rules\fR\m[]\&\s-2\u[18]\d\s+2» +per vincere il port scanner detector di default in Snort IDS\&. Molti altri IDS possono essere sconfitti con questo sistema\&. +.RE +.PP +\fB\-\-min\-rate <number>\fR; \fB\-\-max\-rate <number>\fR (Directly control the scanning rate) +.RS 4 +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 +\fB\-\-min\-rate\fR +e +\fB\-\-max\-rate\fR +sono state create proprio per queste situazioni\&. +.sp +Quando viene definita l\*(Aqopzione +\fB\-\-min\-rate\fR +Nmap farà del suo meglio per inviare i pacchetti non al di sotto del limite di frequenza impostato\&. L\*(Aqargomento è un numero reale positivo che rappresenta la frequenza di invio dei pacchetti in pacchetti/secondo\&. Per esempio, indicando +\fB\-\-min\-rate 300\fR +significa che Nmap proverà a mantenere una frequenza di invio di almeno 300 pacchetti al secondo\&. Quest\*(Aqopzione non impedisce ad Nmap di aumentare la frequenza se le condizioni lo permettono\&. +.sp +Viceversa, +\fB\-\-max\-rate\fR +forza la frequenza di invio dandogli un limite massimo\&. Utilizzare +\fB\-\-max\-rate 100\fR, ad esempio, per limitare l\*(Aqinvio a 100 pacchetti al secondo su una rete veloce\&. Usare +\fB\-\-max\-rate 0\&.1\fR +per una scansione lenta, un pacchetto ogni dieci secondi\&. Entrambe le opzioni +\fB\-\-min\-rate\fR +e +\fB\-\-max\-rate\fR +mantengono la frequenza all\*(Aqinterno del range specificato\&. +.sp +Queste due opzioni sono globali, hanno effetto cioè sull\*(Aqintera scansione, non sugli host individuali\&. Vanno ad agire sui port scan e gli host discovery\&. Altre feature, come l\*(AqOS detection, hanno le loro opzioni di timing\&. +.sp +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\*(Aqhardware 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\*(Aqaffidabilità\&. 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\&. +.sp +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 +\fIpiù lenta\fR +rispetto ad una scansione con un rate più basso\&. Questo perché l\*(Aqalgoritmo +\m[blue]\fBadaptive retransmission\fR\m[]\&\s-2\u[19]\d\s+2 +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\*(Aqopzione +\fB\-\-max\-retries\fR +se si deve rispettare un tempo massimo per la scansione totale\&. +.RE +.PP +\fB\-\-defeat\-rst\-ratelimit\fR +.RS 4 +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\*(Aqinvio 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 +\fInon\fR +considerano le porte silenziose come +aperte) mediante l\*(Aqopzione +\fB\-\-defeat\-rst\-ratelimit\fR\&. +.sp +L\*(Aqutilizzo di quest\*(Aqopzione può ridurre la precisione di uno scan, poiché alcune porte potrebbero restituire uno stato di non\-risposta perché Nmap non è rimasto in attesa abbastanza a lungo a causa di meccanismi di rate\-limiting dei pacchetti RST\&. Con una scansione di tipo SYN le porte "mute" (dalle quali non si è ricevuto un RST) in questo caso vengono indicate con +filtered +piuttosto che +closed\&. Quest\*(Aqopzione è utile solo quando si è interessati alle porte aperte, e la distinzione tra porte +closed +e +filtered +non è di alcun interesse rispetto al tempo che richiede\&. +.RE +.PP +\fB\-\-nsock\-engine epoll|kqueue|poll|select\fR +.RS 4 +Forza l\*(Aqutilizzo di un determinato "nsock IO multiplexing engine"\&. Solo per il "\fBselect(2)\fR\-based fallback engine" viene garantita la compatibilità con il sistema in uso\&. Gli engine vengono dichiarati dopo il nome del "IO management facility" cui fanno riferimento\&. Gli engine attualmente implementati sono +epoll, +kqueue, +poll +e +select, ma non saranno tutti presenti su tutte le piattaforme\&. Utilizzare +\fBnmap \-V\fR +per sapere quali engine sono supportati\&. +.RE +.PP +\fB\-T <paranoid|sneaky|polite|normal|aggressive|insane>\fR (Set a timing template) +.RS 4 +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\*(Aqaggressività della scansione\&. Esse si specificano mediante l\*(Aqopzione +\fB\-T\fR +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\*(Aqopzione +\fB\-T3\fR +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\*(Aqaccuratezza in nome della velocità\&. +.sp +Questi template consentono all\*(Aqutente 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\*(Aqopzione +\fB\-T4\fR +impedisce al ritardo dinamico per una scansione di andare al di sotto della soglia dei 10 millisecondi per le porte TCP, e l\*(Aqopzione +\fB\-T5\fR +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\*(Aqutente\&. Si raccomanda di usare l\*(Aqopzione +\fB\-T4\fR +nel caso in cui si desideri effettuare scansioni di reti abbastanza recenti e affidabili; inoltre è consigliabile mantenere quell\*(Aqopzione (intesa come inserita all\*(Aqinizio dei comandi) anche qualora si dovessero aggiungere controlli più precisi in modo da beneficiare da tutti i piccoli miglioramenti che dovessero intervenire\&. +.sp +Se la propria connessione è a banda larga o di tipo ethernet, si raccomanda di usare sempre l\*(Aqopzione +\fB\-T4\fR\&. Alcuni prediligono anche l\*(Aqopzione +\fB\-T5\fR, nonostante per i più sia troppo aggressiva\&. Altri a volte usano l\*(Aqopzione +\fB\-T2\fR +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\*(Aqopzione +\fB\-T polite\fR; 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 +\fB\-T3\fR) e pertanto è l\*(Aqopzione consigliata a chi deve effettuare scansioni senza dare troppo nell\*(Aqocchio\&. Omettere una scansione di tipo version detection è molto più efficiente del giocare con i valori di timing per ridurre i problemi sopracitati\&. +.sp +Mentre le opzioni +\fB\-T0\fR +e +\fB\-T1\fR +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 +\fB\-T0\fR +e +\fB\-T1\fR\&. +.sp +Gli effetti principali dell\*(Aqopzione +\fBT0\fR +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\*(Aqinvio di un probe e il successivo\&. Le opzioni +\fBT1\fR +e +\fBT2\fR +sono simili ma attendono rispettivamente 15 secondi e 0\&.4 secondi tra un probe e l\*(Aqaltro\&. L\*(Aqopzione +\fBT3\fR +è il comportamento di default di Nmap (che include il parallelismo)\&. L\*(Aqopzione +\fBT4\fR +ha lo stesso risultato dell\*(Aqimpostare +\fB\-\-max\-rtt\-timeout 1250ms \-\-initial\-rtt\-timeout 500ms \-\-max\-retries 6\fR +e di impostare il ritardo massimo per una scansione TCP a 10 millisecondi\&. Infine l\*(Aqopzione +\fBT5\fR +è equivalente a +\fB\-\-max\-rtt\-timeout 300ms \-\-min\-rtt\-timeout 50ms \-\-initial\-rtt\-timeout 250ms \-\-max\-retries 2 \-\-host\-timeout 15m\fR +e ad impostare il massimo ritardo TCP (maximum delay) a 5 millisecondi\&. +.RE +.SH "BYPASSING E SPOOFING DI FIREWALL E INTRUSION DETECTION SYSTEM (FIREWALL/IDS EVASION AND SPOOFING)" +.PP +Tanti pionieri dell\*(Aqepoca 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\*(Aqaltro\&. 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\*(AqInternet 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\&. +.PP +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\*(Aqè 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\&. +.PP +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\*(Aqattacco segue direttamente la scansione\&. Molti di questi strumenti inoltre si sono evoluti in sistemi di +\fIprevenzione\fR +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\*(Aqaiuto 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\&. +.PP +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\*(Aqattacco "FTP bounce"\&. +.PP +Non esiste alcuna bacchetta magica (o opzione di Nmap) per riconoscere o bypassare un firewall o un sistema anti\-intrusione\&. È un\*(Aqattività 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\&. +.PP +\fB\-f\fR (fragment packets); \fB\-\-mtu\fR (using the specified MTU) +.RS 4 +L\*(Aqopzione +\fB\-f\fR +obbliga la scansione (anche i ping scan) a usare pacchetti IP frammentati\&. L\*(Aqidea di base è quella di frammentare l\*(Aqheader 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\*(Aquso 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\*(Aqopzione una volta Nmap dividerà i pacchetti in piccoli insiemi di al più 8 byte ciascuno, inserendoli dopo l\*(Aqheader 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\*(Aqopzione +\fB\-f\fR +si useranno insiemi di 16 byte (riducendo così il numero di frammenti)\&. In alternativa si può indicare lo spiazzamento ("offset") desiderato mediante l\*(Aqopzione +\fB\-\-mtu\fR\&. Non si usi l\*(Aqopzione +\fB\-f\fR +se si è usato +\fB\-\-mtu\fR\&. L\*(Aqoffset dev\*(Aqessere 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\*(Aqopzione 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\*(Aqopzione abilitata\&. Altri ancora non possono abilitare quell\*(Aqopzione perché i frammenti potrebbero prendere direzioni differenti una volta all\*(Aqinterno\&. 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\*(Aqopzione +\fB\-\-send\-eth\fR +per bypassare il livello IP ed inviare direttamente frame Ethernet sul cavo\&. +.RE +.PP +\fB\-D <decoy1>[,<decoy2>][,ME][,\&.\&.\&.]\fR (Cloak a scan with decoys) +.RS 4 +Quest\*(Aqopzione invoca una "decoy scan" (ovvero una scansione utilizzando esche) che agli occhi dell\*(Aqhost di destinazione apparirà come se provenisse dagli host specificati come decoy\&. In questo modo l\*(AqIDS della rete bersaglio mostrerà 5\-10 port scan provenienti da indirizzi IP singoli, e non potrà capire quale IP è veramente la sorgente dell\*(Aqattacco e quale IP è usato solo come mascheramento\&. Nonostante quest\*(Aqopzione 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\&. +.sp +Gli host decoy vanno separati con una virgola; è inoltre possibile usare il parametro +ME +come uno dei decoy per rappresentare la posizione del proprio indirizzo IP\&. Se si pone il parametro +ME +nella sesta posizione o ancora oltre, alcuni sensori di port scan (come l\*(Aqeccellente "Scanlogd" di Solar Designer) difficilmente mostreranno il vostro indirizzo IP\&. Se non si dovesse usare il parametro +ME, Nmap metterà il vostro IP in una posizione a caso\&. Si può anche utilizzare +\fBRND\fR +per generare un numero casuale di indirizzi IP non riservati, oppure +\fBRND:\fR\fB\fInumber\fR\fR +per generare +\fInumber\fR +indirizzi\&. +.sp +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\&. +.sp +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\*(AqOS detection remoto (opzione +\fB\-O\fR)\&. L\*(Aqutilizzo 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\&. +.sp +Inutile bisogna ricordare che l\*(Aquso 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\&. +.RE +.PP +\fB\-S <IP_Address>\fR (Spoof source address) +.RS 4 +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\*(Aqopzione +\fB\-S\fR +seguita dall\*(Aqindirizzo IP dell\*(Aqinterfaccia che si vuole usare per inviare pacchetti\&. +.sp +Un altro possibile uso di quest\*(Aqopzione potrebbe essere per falsificare (spoof) la scansione per far credere al bersaglio che +\fIqualcun altro\fR +li sta prendendo di mira e sta effettuando una scansione su di loro\&. Si immagini solo cosa potrebbe succedere se un\*(Aqazienda si accorgesse di essere preda di port scan da parte dei propri concorrenti! L\*(Aqopzione +\fB\-e\fR +è in genere richiesta per questo particolare utilizzo, e si consiglia anche di usare +\fB\-Pn\fR\&. Da notare che così facendo solitamente non si ricevono i pacchetti di risposta, saranno infatti inviati all\*(Aqindirizzo IP fasullo; Nmap di conseguenza produrrà dei report inutili\&. +.RE +.PP +\fB\-e <interface>\fR (Use specified interface) +.RS 4 +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à\&. +.RE +.PP +\fB\-\-source\-port <portnumber>; \-g <portnumber>\fR (Spoof source port number) +.RS 4 +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\*(AqFTP è 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\&. +.sp +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\*(Aqerrore 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\&. +.sp +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\*(Aqingresso nel sistema a qualsiasi pacchetto UDP che avesse come porta di origine la 53 (DNS) o 67 (DHCP)\&. +.sp +Nmap offre le opzioni (equivalenti) +\fB\-g\fR +e +\fB\-\-source\-port\fR +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\*(Aqopzione\&. 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\*(Aqopzione +\fB\-\-source\-port\fR +poiché Nmap si appoggia alle librerie di sistema per gestirle\&. +.RE +.PP +\fB\-\-data <hex string>\fR (Append custom binary data to sent packets) +.RS 4 +Quest\*(Aqopzione permette di includere valori binari come dati nei pacchetti da inviare\&. +\fIhex string\fR +può avere uno dei seguenti formati: +\fB0xAABBCCDDEEFF<\&.\&.\&.>\fR, +\fBAABBCCDDEEFF<\&.\&.\&.>\fR +o +\fB\exAA\exBB\exCC\exDD\exEE\exFF<\&.\&.\&.>\fR\&. Alcuni esempi sono +\fB\-\-data 0xdeadbeef\fR +e +\fB\-\-data \exCA\exFE\ex09\fR\&. Da notare che se si indica un valore come +\fB0x00ff\fR +nessuna conversione dell\*(Aqordine dei byte viene effettuata\&. Fare in modo che l\*(Aqinformazione indicata arrivi al destinatario con l\*(Aqordine dei byte che si aspetta\&. +.RE +.PP +\fB\-\-data\-string <string>\fR (Append custom string to sent packets) +.RS 4 +Quest\*(Aqopzione permette di inviare una stringa come dati nei pacchetti da inviare\&. +\fIstring\fR +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: +\fB\-\-data\-string "Scan conducted by Security Ops, extension 7192"\fR +oppure +\fB\-\-data\-string "Ph34r my l33t skills"\fR\&. Tenere a mente che nessuno può effettivamente vedere i commenti lasciati da quest\*(Aqopzione, a meno che non si stia monitorando attentamente la rete con uno sniffer o delle regole IDS personalizzate\&. +.RE +.PP +\fB\-\-data\-length <number>\fR (Append random data to sent packets) +.RS 4 +In genere Nmap invia pacchetti nella dimensione più piccola possibile, contenenti soltanto l\*(Aqheader\&. 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\*(Aqopzione 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 +\fB\-\-data\-length 0\fR +per nessun valore random e nessun valore specifico del protocollo)\&. I pacchetti di OS detection (\fB\-O\fR) tuttavia non vengono modificati, perché la precisione in essi richiede una certa consistenza nell\*(Aqinvio 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\&. +.RE +.PP +\fB\-\-ttl <value>\fR (Set IP time\-to\-live field) +.RS 4 +Imposta il campo time\-to\-live (tempo di vita del pacchetto IPv4) al valore richiesto\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Randomize target host order) +.RS 4 +Quest\*(Aqopzione indica a Nmap di rimescolare l\*(Aqordine di scansione di ogni gruppo di host (fino a 16384) prima di iniziare la scansione\&. Questo può nascondere le scansioni a vari sistemi di network monitoring, specialmente quando è affiancato a opzioni di rallentamento ("slow timing")\&. Se si desidera un random su gruppi di dimensione maggiore, è necessario incrementare la direttiva PING_GROUP_SZ in +nmap\&.h +e ricompilare l\*(Aqapplicativo\&. Una soluzione alternativa potrebbe essere quella di generare una lista degli IP sui quali effettuare lo scan mediante un list scan (opzione +\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR), randomizzarla con uno script Perl e passare la lista a Nmap con l\*(Aqopzione +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac <MAC address, prefix, or vendor name>\fR (Spoof MAC address) +.RS 4 +Richiede ad Nmap di usare l\*(Aqindirizzo hardware (MAC) per tutti i frame ethernet raw che invia\&. Quest\*(Aqopzione implica +\fB\-\-send\-eth\fR +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\*(Aqargomento non è ne uno zero ne una stringa esadecimale, Nmap cercherà nel file +nmap\-mac\-prefixes +per cercare il nome di un produttore contenente la stringa indicata (senza distinguere tra maiuscole e minuscole)\&. Se trova una corrispondenza, Nmap userà la parte OUI del produttore (il prefisso di 3 byte) e riempirà i restanti 6 byte in maniera casuale\&. Esempi validi dell\*(Aquso di +\fB\-\-spoof\-mac\fR +sono +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2, e +Cisco\&. Quest\*(Aqopzione 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\*(AqNSE\&. +.RE +.PP +\fB\-\-proxies <Comma\-separated list of proxy URLs>\fR (Relay TCP connections through a chain of proxies) +.RS 4 +Richiede ad Nmap ti stabilire connessioni TCP con l\*(Aqobiettivo 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 +\fB\-\-max\-parallelism\fR +più basso potrebbe aiutare dato che alcuni proxy non gestiscono diverse connessioni contemporanee, come invece fa Nmap di default\&. +.sp +Quest\*(Aqopzione riceve una lista di proxy come argomento, espressa come URL nel formato +proto://host:port\&. Utilizzare la virgola come separatore di URL in una catena\&. È anche supportata la non autenticazione\&. I protocolli sono HTTP e SOCKS4\&. +.sp +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\*(AqNSE 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)\&. +.RE +.PP +\fB\-\-badsum\fR (Send packets with bogus TCP/UDP checksums) +.RS 4 +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 +\m[blue]\fB\%https://nmap.org/p60-12.txt\fR\m[]\&. +.RE +.PP +\fB\-\-adler32\fR (Use deprecated Adler32 instead of CRC32C for SCTP checksums) +.RS 4 +Richiede ad Nmap di usare l\*(Aqalgoritmo deprecato Adler32 per calcolare il checksum SCTP\&. se +\fB\-\-adler32\fR +non viene impostato, viene usato CRC\-32C (Castagnoli)\&. L\*(Aq\m[blue]\fBRFC 2960\fR\m[]\&\s-2\u[20]\d\s+2 +originariamente definisce Adler32 come l\*(Aqalgoritmo di checksum per SCTP; L\*(Aq +\m[blue]\fBRFC 4960\fR\m[]\&\s-2\u[5]\d\s+2 +successivamente ha ridefinito il checksum SCTP specificando l\*(Aquso di CRC\-32C\&. Le implementazioni attuali SCTP dovrebbero utilizzare CRC\-32C, ma allo scopo di suscitare risposta dalle più datate, è preferibile usare Adler32\&. +.RE +.SH "OUTPUT" +.PP +Qualunque tool di sicurezza è utile quanto l\*(Aqoutput 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\*(Aqoutput facilmente interpretabile dal software\&. +.PP +Inoltre per offrire differenti formati di output, Nmap fornisce opzioni per il controllo della verbosità dell\*(Aqoutput, 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\&. +.PP +Nmap rende l\*(Aqoutput disponibile in cinque formati differenti\&. Il formato predefinito è chiamato +interactive output, e viene mandato allo standard output (stdout)\&. Poi si ha il +normal output, simile all\*(Aqinteractive 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\&. +.PP +L\*(AqXML output +è uno dei tipi di output più importanti, dal momento che può essere convertito in HTML, interpretato con facilità dai programmi (come ad esempio le interfacce grafiche di Nmap) o importato in un database\&. +.PP +I rimanenti due tipi di output sono il semplice +grepable output, che include la maggior parte delle informazioni su un obiettivo in una linea singola, e lo +sCRiPt KiDDi3 0utPUt +per gli utenti che si considerano |<\-r4d\&. +.PP +Mentre l\*(Aqoutput 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\*(AqXML per l\*(Aqanalisi programmatica\&. Ciò si potrebbe realizzare con le opzioni +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Questo capitolo usa per brevità dei nomi semplici come +myscan\&.xml, ma sono generalmente consigliati nomi più descrittivi\&. I nomi scelti sono un problema di preferenza personale, anche se è solito usarne di lunghi che incorporano la data della scansione e un paio di parole che descrivano la scansione, messi in una directory chiamata come l\*(Aqazienda che si sta scansionando\&. +.PP +Mentre queste opzioni salvano i risultati su files, Nmap mostra anche l\*(Aqoutput interattivo in standard output come sempre\&. Per esempio, il comando +\fBnmap \-oX myscan\&.xml target\fR +stampa XML dentro +myscan\&.xml +e scrive in standard output gli stessi risultati interattivi che avrebbe stampato se +\fB\-oX\fR +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\*(Aqoutput interattivo e stampi il risultato nel formato che specificato nello stream dello standard output\&. Così il comando +\fBnmap \-oX \- target\fR +manderà in stdout soltanto l\*(Aqoutput XML\&. Gli errori gravi possono comunque essere mostrati sullo stream di standard error (stderr)\&. +.PP +A differenza di alcuni argomenti di Nmap, lo spazio tra l\*(Aqopzione di log (ad esempio +\fB\-oX\fR) e il nome del file o il trattino, è obbligatorio\&. Se si omettono le opzioni e si danno argomenti come +\fB\-oG\-\fR +o +\fB\-oXscan\&.xml\fR, una feature di retro\-compatibilità causerà la creazione di file di output in +normal format +chiamati rispettivamente +G\- +e +Xscan\&.xml\&. +.PP +Tutti questi argomenti supportano le conversioni di tipo +strftime +nel nome del file\&. +%H, +%M, +%S, +%m, +%d, +%y +e +%Y +sono gli stessi parametri che si trovano in +strftime\&. +%T +è l\*(Aqequivalente di +%H%M%S, +%R +è l\*(Aqequivalente di +%H%M +e +%D +è l\*(Aqequivalente di +%m%d%y\&. Un % seguito da qualsiasi altro carattere da precedenza a quel carattere (%% mostra il simbolo percentuale)\&. Quindi +\fB\-oX \*(Aqscan\-%T\-%D\&.xml\*(Aq\fR +lavorerà su di un file XML con un nome del tipo +scan\-144840\-121307\&.xml\&. +.PP +Nmap offre inoltre l\*(Aqopzione di controllo della verbosità e la possibilità di accodare ai file invece di sovrascriverli\&. Tutte queste opzioni sono descritte di seguito\&. +.PP +\fBI Formati di Output di Nmap\fR +.PP +\fB\-oN <filespec>\fR (normal output) +.RS 4 +Richiede che il normal output venga rediretto al file specificato\&. Come sopra, quest\*(Aqoutput diverge leggermente da +interactive output\&. +.RE +.PP +\fB\-oX <filespec>\fR (XML output) +.RS 4 +Richiede che l\*(Aqoutput XML sia rediretto al file specificato\&. Nmap contiene un document type definition (DTD) che permette agli interpreti XML di validare l\*(Aqoutput XML di Nmap\&. Sebbene serva principalmente per l\*(Aquso programmatico, può essere d\*(Aqaiuto anche agli utenti\&. Il DTD definisce gli elementi convenzionali del formato, e spesso enumera gli attributi e i valori che possono assumere\&. L\*(Aqultima versione è sempre disponibile al link +\m[blue]\fB\%https://svn.nmap.org/nmap/docs/nmap.dtd\fR\m[]\&. +.sp +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\*(Aqoutput e l\*(Aqesecuzione di Nmap\&. Ne sono esempio: +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[21]\d\s+2 +e +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[22]\d\s+2 +nel Perl CPAN\&. In quasi tutti i casi il formato preferito per interpretare i risultati di Nmap è stato XML\&. +.sp +L\*(Aqoutput XML fa riferimento ad uno stylesheet XSL che può essere usato per formattare il risultato in HTML\&. La maniera più facile di usarlo è semplicemente aprire il file XML in un web browser, come Firefox o IE\&. Di norma questa procedura dovrebbe funzionare solo sulla macchina su cui si esegue Nmap (o su una configurata in maniera simile) dato che il percorso a +nmap\&.xsl +è quello scritto nel codice di Nmap\&. Si vedano le opzioni +\fB\-\-webxml\fR +o +\fB\-\-stylesheet\fR +per creare un file XML portabile che renderizza come HTML in ogni macchina connessa al web\&. +.RE +.PP +\fB\-oS <filespec>\fR (ScRipT KIdd|3 oUTpuT) +.RS 4 +Lo script kiddie output è come l\*(Aqinteractive output, ad eccezione del post\-processing che meglio adatta l\*(Aqoutput ai l33t HaXXorZ che prima guardavano dall\*(Aqalto in basso Nmap per la sua troppo corretta ortografia e per l\*(Aquso 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"\&. +.RE +.PP +\fB\-oG <filespec>\fR (grepable output) +.RS 4 +Questo formato di output viene descritto per ultimo perché il suo uso è deprecato\&. L\*(Aqoutput 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\&. +.sp +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\&. +.sp +Il grepable output contiene commenti (le righe che iniziano con il cancelletto (#)) e righe target\&. Una riga target include una combinazione di 6 campi etichettati, separati da tabulazioni e terminati da un due punti (:)\&. I campi sono +Host, +Ports, +Protocols, +Ignored State, +OS, +Seq Index, +IP ID +e +Status\&. +.sp +Il più importante tra questi campi è generalmente il campo +Ports, che da dettagli su ogni porta interessante\&. È una lista di "port entries" separate da una virgola\&. Ogni "port entry" rappresenta una porta interessante e prende la forma di sette sotto\-campi separati da uno slash (/)\&. Questi sotto\-campi sono: +Port number, +State, +Protocol, +Owner, +Service, +SunRPC info +e +Version info\&. +.sp +Così come nell\*(Aqoutput XML, questa pagina di manuale non permette di documentare l\*(Aqintero formato\&. È disponibile una descrizione più dettagliata del formato grepable output nella sezione +«\m[blue]\fBGrepable Output (\-oG)\fR\m[]\&\s-2\u[23]\d\s+2»\&. +.RE +.PP +\fB\-oA <basename>\fR (Output to all formats) +.RS 4 +In caso di bisogno, si potrebbe specificare +\fB\-oA \fR\fB\fIbasename\fR\fR\fB \fR +per salvare i risultati dello scan nei formati normal, XML e grepable in una sola volta\&. Questi vengono salvati rispettivamente nei file +\fIbasename\fR\&.nmap, +\fIbasename\fR\&.xml e +\fIbasename\fR\&.gnmap\&. Come la maggior parte dei programmi, si può aggiungere un prefisso ai nomi dei file, come ad esempio un percorso ad una directory, +~/nmaplogs/foocorp/ +su UNIX o +c:\ehacking\esco +su Windows\&. +.RE +.PP +\fBVerbosità e opzioni di debugging\fR +.PP +\fB\-v\fR (Increase verbosity level), \fB\-v<level>\fR (Set verbosity level) +.RS 4 +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\*(Aqopzione due o più volte per aumentare ulteriormente il livello di verbosità\&. +.sp +La maggior parte dei cambiamenti riguarda l\*(Aqinteractive 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\*(Aqoutput 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\&. +.RE +.PP +\fB\-d\fR (Increase debugging level), \fB\-d<level>\fR (Set debugging level) +.RS 4 +Quando anche il verbose mode non fornisce dati a sufficienza, è disponibile la modalità debugging, che sommergerà l\*(Aqutente di informazioni! Così come succede per l\*(Aqopzione verbosity (\fB\-v\fR), il debugging viene attivato da un\*(Aqopzione di riga di comando (\fB\-d\fR) e il livello di debug può essere aumentato ripetendo l\*(Aqopzione diverse volte, ad esempio +\fB\-dd\fR, o si può settare il debug level dando come argomento di +\fB\-d\fR +un numero\&. Ad esempio, +\fB\-d9\fR +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\&. +.sp +L\*(Aqoutput di debugging è utile quando si sospetta un bug in Nmap, oppure se si rimane confusi su cosa stia facendo Nmap e perché\&. Siccome questa feature è stata pensata principalmente per gli sviluppatori, le linee di debug non sono granché autoesplicative\&. Si potrebbe incontrare qualcosa tipo: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Se non si capisce una linea, quello che si può fare è ignorarla, guardarla nel codice sorgente, o richiedere aiuto alla lista di sviluppo (nmap\-dev)\&. Alcune linee si spiegano bene da sé, ma i messaggi divengono sempre più oscuri man mano che il livello di debugging sale\&. +.RE +.PP +\fB\-\-reason\fR (Host and port state reasons) +.RS 4 +Mostra il motivo per cui ad ogni singola porta è stato assegnato quello stato e la ragione per cui ogni host è attivo o meno\&. Quest\*(Aqopzione 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\*(Aqinformazione che Nmap restituisce dipende dal tipo di scansione o di ping\&. Il SYN scan e il SYN ping (\fB\-sS\fR +e +\fB\-PS\fR) sono molto dettagliati, mentre il TCP connect scan (\fB\-sT\fR) è limitato all\*(Aqimplementazione della chiamata di sistema +\fBconnect\fR\&. Questa feature è automaticamente abilitata dall\*(Aqopzione di debug (\fB\-d\fR) e i suoi risultati vengono salvati in file log in formato XML anche se quest\*(Aqopzione non viene specificata\&. +.RE +.PP +\fB\-\-stats\-every <time>\fR (Print periodic timing stats) +.RS 4 +Periodicamente stampa un messaggio di timing status ogni intervallo di +\fItime\fR\&. Il tempo è una specifica del tipo descritto nella sezione +«\m[blue]\fBTiming and Performance\fR\m[]\&\s-2\u[24]\d\s+2» +di questo manuale; quindi per esempio, si utilizzerà +\fB\-\-stats\-every 10s\fR +per avere un aggiornamento dello stato ogni 10 secondi\&. Gli aggiornamenti vengono stampati sull\*(Aqinteractive output (a schermo) e sull\*(AqXML output\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Trace packets and data sent and received) +.RS 4 +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 +\fB\-p20\-30\fR\&. Se importa soltanto vedere come procede il version detection si può usare +\fB\-\-version\-trace\fR\&. Se invece si è solo interessati allo script tracing, indicare +\fB\-\-script\-trace\fR\&. Con +\fB\-\-packet\-trace\fR, si avranno tutti quelli sopra\&. +.RE +.PP +\fB\-\-open\fR (Show only open (or possibly open) ports) +.RS 4 +Può succedere di essere interessati solamente alle porte cui ci si può connettere al momento (le +open) e non si vuole mischiare i risultati con quelle +closed, +closed +o +closed|filtered\&. Si potrebbe personalizzare l\*(Aqoutput dopo la scansione utilizzando tool come grep, awk e Perl, ma è stata aggiunta quest\*(Aqopzione a causa di richieste travolgenti\&. Indicare +\fB\-\-open\fR +per vedere solamente gli host con almeno una porta +open, +open|filtered +o +unfiltered, e vedere solamente le porte con questi stati\&. Questi tre stati vengono trattati normalmente, il che significa che +open|filtered +e +unfiltered +potrebbero essere raggruppate se ce ne dovessero essere troppe\&. +.RE +.PP +\fB\-\-iflist\fR (List interfaces and routes) +.RS 4 +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)\&. +.RE +.PP +\fBAltre opzioni di output\fR +.PP +\fB\-\-append\-output\fR (Append to rather than clobber output files) +.RS 4 +Quando si specifica un nome di file mediante un parametro di output come +\fB\-oX\fR +o +\fB\-oN\fR, questo file viene sovrascritto di default\&. Se si preferisce mantenere il contenuto del file e aggiungerci i nuovi risultati, si deve usare l\*(Aqopzione +\fB\-\-append\-output\fR\&. Tutti i file di output specificati in quell\*(Aqistanza di Nmap verranno usati in append mode anziché essere sovrascritti\&. Quest\*(Aqopzione non è di grande aiuto (e non funziona molto bene) nel caso di output in formato XML (\fB\-oX\fR), poiché il parsing del file risultante non sarà corretto fino a quando non si controllerà il file manualmente\&. +.RE +.PP +\fB\-\-resume <filename>\fR (Resume aborted scan) +.RS 4 +Alcune esecuzioni di Nmap possono richiedere molto tempo \- dell\*(Aqordine 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\*(Aqamministratore che sta usando Nmap può interromperlo per qualsiasi ragione, premendo +ctrl\-C\&. Ricominciare l\*(Aqintera scansione dall\*(Aqinizio può diventare fastidioso\&. Fortunatamente se sono rimasti i log in formato "normal" (\fB\-oN\fR) o "grepable" (\fB\-oG\fR), l\*(Aqutente può richiedere a Nmap di ricominciare la scansione dall\*(Aqhost sul quale stava lavorando quando l\*(Aqesecuzione è stata interrotta\&. Semplicemente basta specificare l\*(Aqopzione +\fB\-\-resume\fR +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 +\fBnmap \-\-resume \fR\fB\fIlogfilename\fR\fR\&. Nmap aggiungerà i nuovi risultati ai file specificati nell\*(Aqesecuzione precedente\&. La ripresa di un\*(Aqesecuzione non supporta il formato di output XML poiché sarebbe troppo difficile combinare le due esecuzioni in un unico file XML valido\&. +.RE +.PP +\fB\-\-stylesheet <path or URL>\fR (Set XSL stylesheet to transform XML output) +.RS 4 +Nmap viene fornito con un foglio di stile XSL chiamato +nmap\&.xsl +per vedere o tradurre l\*(Aqoutput XML in HTML\&. L\*(Aqoutput XML include una direttiva +xml\-stylesheet +che punta al file +nmap\&.xml +dove è stato installato Nmap la prima volta\&. Processare il file XML con un XSLT processor come +\m[blue]\fBxsltproc\fR\m[]\&\s-2\u[25]\d\s+2 +per produrre un file HTML\&. Aprire direttamente l\*(Aqoutput 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\*(Aqopzione +\fB\-\-stylesheet\fR\&. Il file va indicato con il percorso completo o l\*(AqURL\&. Un esempio di invocazione con quest\*(Aqopzione è +\fB\-\-stylesheet https://nmap\&.org/svn/docs/nmap\&.xsl\fR\&. Questo indica ad un XSLT processor di caricare l\*(Aqultima versione del foglio di stile da Nmap\&.Org\&. L\*(Aqopzione +\fB\-\-webxml\fR +fa la stessa cosa ma richiede meno digitazioni e meno cose da ricordare\&. Caricando l\*(AqXSL da Nmap\&.Org rende più semplice visualizzare i risultati su una macchina che non ha Nmap (e quindi il file +nmap\&.xsl) installato\&. Quindi l\*(AqURL è spesso una scelta migliore, ma di default viene usato il file dal filesystem locale per ragioni di privacy\&. +.RE +.PP +\fB\-\-webxml\fR (Load stylesheet from Nmap\&.Org) +.RS 4 +Quest\*(Aqopzione è semplicemente una comodità per l\*(Aqopzione +\fB\-\-stylesheet https://nmap\&.org/svn/docs/nmap\&.xsl\fR\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Omit XSL stylesheet declaration from XML) +.RS 4 +Quest\*(Aqopzione va specificata quando non si vuole che Nmap associ un qualsiasi foglio di stile XSL al proprio output XML\&. La direttiva +xml\-stylesheet +viene omessa\&. +.RE +.SH "OPZIONI MISCELLANEE" +.PP +Questa sezione descrive alcune opzioni importanti (e altre non così importanti) che non hanno trovato posto in altre sezioni\&. +.PP +\fB\-6\fR (Enable IPv6 scanning) +.RS 4 +Nmap offre supporto IPv6 per le sue funzioni più comuni\&. Le funzioni ping scanning, port scanning, rivelazione di versione e l\*(AqNSE supportano tutti IPv6\&. La sintassi dei comandi è la stessa di sempre, ad eccezione dell\*(Aqaggiunta dell\*(Aqopzione +\fB\-6\fR\&. Ovviamente si dovrà utilizzare la sintassi IPv6 se si vuole specificare un indirizzo anziché un hostname\&. Un indirizzo sarà qualcosa del tipo +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, ne consegue che è raccomandato l\*(Aquso degli hostname\&. L\*(Aqoutput ha il solito aspetto, l\*(Aqunica differenza è l\*(Aqindirizzo IPv6 sulla linea delle "interesting ports"\&. +.sp +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\*(AqIPv6, sia l\*(Aqobiettivo che la sorgente dello scan devono essere configurate per IPv6\&. Se il proprio l\*(AqISP (come la maggior parte) non alloca indirizzi IPv6, c\*(Aqè una vasta disponibilità di tunnel broker gratuiti e funzionano bene con Nmap\&. Uno dei migliori è fornito da +\m[blue]\fB\%http://www.tunnelbroker.net/\fR\m[]\&. Altri tunnel broker si possono trovare +\m[blue]\fBsu Wikipedia\fR\m[]\&\s-2\u[26]\d\s+2\&. Un altro approccio free comune sono i tunnel 6to4\&. +.sp +Su Windows, gli scan IPv6 raw\-socket sono supportati solo su dispositivi ethernet (non tunnel) e solo da Windows Vista in poi\&. Utilizzare l\*(Aqopzione +\fB\-\-unprivileged\fR +nelle altre situazioni\&. +.RE +.PP +\fB\-A\fR (Aggressive scan options) +.RS 4 +Quest\*(Aqopzione abilita altre opzioni addizionali avanzate ed aggressive\&. Al momento questa opzione attiva l\*(AqOS detection (\fB\-O\fR), il version scanning (\fB\-sV\fR), lo script scanning (\fB\-sC\fR) e il traceroute (\fB\-\-traceroute\fR)\&. 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 +\fB\-A\fR +contro le reti senza averne avuto autorizzazione\&. Quest\*(Aqopzione attiva solo delle modalità di funzionamento, ma non le opzioni di timing (come +\fB\-T4\fR), né quelle di verbosity (\fB\-v\fR) che si potrebbero comunque volere\&. Le opzione che richiedono privilegi speciali (ad esempio i permessi di root), come l\*(AqOS detection e il traceroute, saranno abilitate solo se si questi permessi sono attivi\&. +.RE +.PP +\fB\-\-datadir <nomedirectory>\fR(Specify custom Nmap data file location) +.RS 4 +Nmap ottiene alcuni dati speciali in runtime dai files chiamati +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes +ed +nmap\-os\-fingerprints\&. Se la location di uno questi file viene specificata(usando l\*(Aqopzione +\fB\-\-servicedb\fR +o l\*(Aqopzione +\fB\-\-versiondbNmap\fR), questa location viene utilizzata per tutti quanti\&. Altrimenti, Nmap cerca i file nella directory specificata con l\*(Aqopzione +\fB\-\-datadir\fR +(qualora specificata)\&. Qualunque file non trovato in questa locazione, verrà cercato nella directory specificata nella variabile d\*(Aqambiente +NMAPDIR\&. Segue poi +~/\&.nmap +per le vere e proprie UID (valido solo per i sistemi POSIX) o, su Windows, +<HOME>\eAppData\eRoaming\enmap +(dove +<HOME> +è la home directory dell\*(Aqutente, tipo +C:\eUsers\euser)\&. Seguono poi la directory dell\*(Aqeseguibile di Nmap e le sue subdirectory +\&.\&./usr/share/nmap\&. Infine vengono utilizzate le locazioni precompilate come +/usr/local/share/nmap +o +/usr/share/nmap\&. +.RE +.PP +\fB\-\-servicedb <services file>\fR (Specify custom services file) +.RS 4 +Chiede ad Nmap di utilizzare specifici file "services" invece che il file +nmap\-services +che viene fornito con Nmap\&. Inoltre quest\*(Aqopzione attiva l\*(Aqopzione +\fB\-F\fR +che esegue una scansione veloce\&. Vedere la descrizione di +\fB\-\-datadir\fR +per avere più informazioni sui data files di Nmap\&. +.RE +.PP +\fB\-\-versiondb <service probes file>\fR (Specify custom service probes file) +.RS 4 +Chiede ad Nmap di utilizzare specifici file "service probes" invece che il file +nmap\-service\-probes +che viene fornito con Nmap\&. Vedere la descrizione di +\fB\-\-datadir\fR +per avere più informazioni sui data files di Nmap\&. +.RE +.PP +\fB\-\-send\-eth \fR (Use raw ethernet sending) +.RS 4 +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\*(Aqè alternativa (ad esempio se si ha una connessione non ethernet) +.RE +.PP +\fB\-\-send\-ip\fR (Send at raw IP level) +.RS 4 +Chiede a Nmap di mandare pacchetti via raw socket IP, piuttosto che mandare trame al livello inferiore, ethernet\&. È l\*(Aqopzione complementare di +\fB\-\-send\-eth\fR +discussa precedentemente\&. +.RE +.PP +\fB\-\-privileged\fR (Assume that the user is fully privileged) +.RS 4 +Dice semplicemente a Nmap di assumere che l\*(Aqutente 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\*(Aqesecuzione se si tentano di usare certe operazioni e +geteuid +non è zero\&. +\fB\-\-privileged\fR +è 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\*(Aqambiente NMAP_PRIVILEGED può comunque essere settata e rappresenta un\*(Aqequivalente alternativa all\*(Aqopzione +\fB\-\-privileged\fR\&. +.RE +.PP +\fB\-\-unprivileged\fR (Assume that the user lacks raw socket privileges) +.RS 4 +quest\*(Aqopzione è l\*(Aqopposta di +\fB\-\-privilegerd\fR\&. Dice ad Nmap di trattare l\*(Aqutente 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\*(Aqambiente NMAP_PRIVILEGED può comunque essere settata e rappresenta un\*(Aqequivalente alternativa all\*(Aqopzione +\fB\-\-unprivileged\fR\&. +.RE +.PP +\fB\-\-release\-memory \fR(Release memory before quitting) +.RS 4 +Quest\*(Aqopzione è 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\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Print version number) +.RS 4 +Stampa a video il numero di versione di Nmap ed esce\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Print help summary page) +.RS 4 +Stampa a video una breve schermata di aiuto con le opzioni più comuni\&. Eseguire Nmap senza argomenti fa la stessa cosa\&. +.RE +.SH "INTERAZIONE IN RUNTIME" +.PP +Durante l\*(Aqesecuzione 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 +\fIle lettere minuscole aumentano\fR +la quantità di messaggi stampati, mentre +\fIle lettere maiuscole la diminuiscono\fR\&. È inoltre possibile premere +\*(Aq?\*(Aq +per avere un aiuto\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Aumenta / diminuisce la quantità di informazioni +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Aumenta / diminuisce il livello di debug +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Attiva / disattiva il tracing dei pacchetti +.RE +.PP +\fB?\fR +.RS 4 +Stampa una schermata di aiuto per le interazioni in tempo reale +.RE +.PP +Qualsiasi altro tasto +.RS 4 +Stampa un messaggio di stato come il seguente: +.sp +.if n \{\ +.RS 4 +.\} +.nf + 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) + +.fi +.if n \{\ +.RE +.\} +.RE +.SH "ESEMPI" +.PP +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 +\fIpropria rete\fR\&. 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\*(Aqapproccio migliore\&. +.PP +Per motivi di test, è concesso il permesso di effettuare uno scan verso +scanme\&.nmap\&.org\&. Questo permesso include esclusivamente lo scan attraverso Nmap e non il test di exploits o attacchi denial of service\&. Per preservare al banda, è meglio non attivare più di una dozzina di scan verso questo host al giorno\&. Qualora si abusasse di questo servizio, questo verrà disattivato e Nmap riporterà il seguente errore: +Failed to resolve given hostname/IP: scanme\&.nmap\&.org\&. Questi permessi si applichino agli host +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org +e così via, finché ne esisteranno\&. +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Questa opzione esegue uno scan su tutte le porte TCP riservate sulla macchina +scanme\&.nmap\&.org\&. L\*(Aqopzione +\fB\-v\fR +attiva la modalità verbose\&. +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Lancia un SYN scan invisibile verso ciascuna macchina che risulta accesa tra le 256 nell\*(Aqintera 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\&. +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Lancia una enumerazione di hosts e uno scan TCP alla prima metà di ognuna delle 255 sottoreti di 8 bit all\*(Aqinterno dello spazio di indirizzamento della classe B 198\&.116\&. Quest\*(Aqoperazione 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\&. +.PP +\fBnmap \-v \-iR 100000 \-Pn \-p 80\fR +.PP +Chiede a Nmap di scegliere 100\&.000 hosts casuali ed effettuare su questi uno scan per ricercare dei web servers (porta 80)\&. L\*(Aqenumerazione degli host è disabilitata con l\*(Aqopzione +\fB\-Pn\fR +dal momento che verificare se un host è attivo è uno spreco quando si sta analizzando soltanto una porta per ogni hosts\&. +.PP +\fBnmap \-Pn \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Questo scansiona 4096 indirizzi IP in cerca di webservers (ma senza effettuare ping) e salva l\*(Aqoutput sia in formato XML che in formato "greppabile"\&. +.SH "NMAP BOOK" +.PP +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 +\m[blue]\fB\fINmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning\fR\fR\m[]\&\s-2\u[27]\d\s+2\&. Gli argomenti trattati sono sovvertire i firewall e gli IDS, ottimizzare le performance di Nmap e l\*(Aqautomazione di comuni processi di rete con l\*(AqNmap 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\*(Aqannullamento di possibili worm\&. Esempi e diagrammi mostrano l\*(Aqattuale sistema di comunicazione via cavo\&. Più della metà del libro è disponibile gratuitamente online\&. Per maggiori informazioni +\m[blue]\fB\%https://nmap.org/book\fR\m[]\&. +.SH "BUGS" +.PP +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\*(Aqultima versione disponibile su +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. 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 +\m[blue]\fB\%https://insecure.org/search.html\fR\m[] +o su Google il messaggio di errore o ancora a sfogliare l\*(Aqarchivio Nmap\-dev all\*(Aqindirizzo +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. Leggi inoltre tutta questa pagina di manuale\&. Se nulla di questo riguarda il tuo caso, manda un bug report a +<dev@nmap\&.org>\&. Accertati di includere ogni cosa che sei riuscito a sapere sul problema, la versione di Nmap che hai installato e su quale sistema operativo la stai usando\&. Segnalazioni di problemi ed eventuali domande sull\*(Aquso di Nmap inviate a +<dev@nmap\&.org> +hanno più probabilità di avere risposta di quelle inviate a Fyodor direttamente\&. Se ti registri alla lista di nmap\-dev prima di inviare il messaggio, quest\*(Aqultimo non verrà moderato e quindi arriverà più velocemente\&. Iscriviti su +\m[blue]\fB\%https://nmap.org/mailman/listinfo/dev\fR\m[]\&. +.PP +Le patch che risolvono i bug sono molto meglio di una segnalazione\&. Le istruzioni di base per creare delle patch sono disponibili su +\m[blue]\fB\%https://svn.nmap.org/nmap/HACKING\fR\m[]\&. Le patch potranno essere inviate a nmap\-dev (raccomandato) oppure direttamente a Fyodor\&. +.SH "AUTORE" +.PP +Gordon +«Fyodor» +Lyon +<fyodor@nmap\&.org> +(\m[blue]\fB\%http://www.insecure.org\fR\m[]) +.PP +Parte 1/2 e revisione: Lorenzo G\&. +<lorenzo\&.grespan@gmail\&.com> +.PP +Parte 2/2: Simone Scarduzio +<scarduzio@gmail\&.com> +.PP +Aggiornamento e revisione 04/2015: Andrea Pizzarotti +<andrew3686@gmail\&.com> +.PP +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 +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]\&. +.SH "NOTE LEGALI" +.SS "Copyright e Licenze di Nmap" +.PP +Nmap Security Scanner è (C) 1996\-2015 Insecure\&.Com LLC\&. Nmap è inoltre un marchio registrato di Insecure\&.Com LLC\&. Questo programma è free software, è liberamente redistribuibile e/o modificabile in accordo con i termini della GNU General Public License come pubblicata dalla Free Software Foundation; Versione 2 («GPL») MA SOLO CON TUTTE LE PRECISAZIONI ED ECCEZIONI QUI DESCRITTE\&. Questo garantisce il diritto di utilizzare, modificare e redistribuire questo software entro certe condizioni\&. Se si desidera incorporare la tecnologia Nmap in software proprietari, potremmo essere disponibili a vendere licenze alternative (contattare +<sales@insecure\&.com>)\&. Molti produttori di security scanner usano già le tecnologie di Nmap come per esempio "host discovery", "port scanning", "OS detection", "version detection" e l\*(AqNmap Scripting Engine\&. +.PP +Si noti che la licenza GPL implica importanti vincoli sui +«progetti derivati», sebbene essa non fornisca una precisa definizione di questi\&. Allo scopo di evitare malintesi, interpretiamo questo termine nel modo più ampio che la legge sul copyright permetta\&. Ad esempio, consideriamo un\*(Aqapplicazione 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\*(Aqora in poi definiti +«Covered Software»): +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integra codice sorgente di +«Covered Software» +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Legge o include data file protetti da copyright, quali +nmap\-os\-db +o +nmap\-service\-probes +di Nmap\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +È progettato specificatamente per eseguire +«Covered Software» +e ne utilizza i risultati (al contrario delle tipiche applicazioni shell o eseguibili da menù che eseguono qualsiasi cosa venga detto loro)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integra/include/aggrega +«Covered Software» +in un eseguibile di installazione proprietario, come ad esempio quelli prodotti da InstallShield\&. Includere Nmap con altro software in forma compressa o di archiviazione, non rientra in questi casi, fornire appropriati software open\-source di decompressione o di de\-archiviazione è ampiamente disponibile senza nessun ricarico\&. Ai fini di questa licenza, viene considerato programma di installazione ciò che include +«Covered Software», anche se in realtà recupera una copia di +«Covered Software» +da un\*(Aqaltra fonte in fase di installazione (come, ad esempio, scaricandola da Internet)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +È collegato (staticamente o dinamicamente) a una libreria che presenta una delle caratteristiche sopracitate\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Esegue un programma di aiuto, un modulo o uno script che presenta una delle caratteristiche sopracitate\&. +.RE +.PP +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\*(Aqeccezione speciale alla GPL che applicheremo a +«Covered Software»\&. Le opere che soddisfano una qualsiasi di queste condizioni, devono essere conformi a tutti i termini di questa licenza, in particolar modo i requisiti della Sezione 3 della licenza GPL di fornire il codice sorgente e permettere la libera ridistribuzione del lavoro nel suo complesso\&. Come altra eccezione ai termini della GPL, Insecure\&.Com LLC garantisce il permesso di collegare il codice di questo programma con qualunque versione della libreria OpenSSL che è distribuita sotto una licenza identica a quella che si trova nel file +docs/licenses/OpenSSL\&.txt +e di redistribuire combinazioni collegate che includono entrambi\&. +.PP +Ogni redistribuzione di +«Covered Software», inclusa ogni eventuale opera derivata, deve sottostare e portare avanti tutti i termini di questa licenza, incluso sottostare a tutte le regole e restrizioni della GPL\&. Ad esempio, deve essere fornito il codice sorgente di un intero progetto ed autorizzata la sua libera e gratuita distribuzione\&. Tutti i riferimenti alla GPL con +«questa Licenza», sono da considerarsi come inclusioni dei termini e delle condizioni nel testo di questa stessa licenza\&. +.PP +Dato che questa licenza impone eccezioni speciali alla GPL, "Covered Work" non è cumulabile (neanche con parte di un più ampio lavoro) con il semplice software GPL\&. I termini, le condizioni e le eccezioni di questa licenza devono altresì essere inclusi\&. Questa licenza è incompatibile con qualsiasi altra licenza open\-source\&. In alcuni casi potremmo porre sotto diversa licenza parti di Nmap o concedere permessi speciali di utilizzo in altro software open\-source\&. Per qualsiasi informazioni contattare +<fyodor@nmap\&.org>\&. Allo stesso modo, non incorporiamo software incompatibile al principio di open\-source in +«Covered Software» +senza uno speciale permesso dai titolari del copyright\&. +.PP +Se avete domande a proposito delle limitazioni imposte all\*(Aquso di Nmap in altri progetti, saremo felici di aiutarvi\&. Come detto poc\*(Aqanzi, offriamo anche licenze alternative per l\*(Aqintegrazione 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\*(Aqaiuto con la contribuzione allo sviluppo della tecnologia Nmap\&. Per ulteriori informazioni contattare +<sales@insecure\&.com>\&. +.PP +Se si riceve questo file con accordo di licenza scritto, o un contratto per +«Covered Software» +che afferma termini diversi da quelli appena descritti, allora si può scegliere di utilizzare e ridistribuire +«Covered Software» +sotto quei termini anziché quelli qui riportati\&. +.SS "Creative Commons License per questa Guida di Nmap" +.PP +Questa +\fINmap Reference Guide\fR +è 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\*(Aqopera 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)\&. +.SS "Disponibilità del Codice Sorgente e Contribuzioni della Comunità" +.PP +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\&. +.PP +Il codice sorgente permette anche di rendere Nmap portabile a nuove architetture, correggere i bug e aggiungere nuove funzioni\&. Si è molto incoraggiati a mandare le proprie modifiche ad +<dev@nmap\&.org> +per possibili inclusioni nella distribuzione principale\&. Mandando le modifiche a Fyodor o altri sviluppatori della mailing list di Insecure\&.Org, si assume che si sta offrendo all\*(Aq 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\*(Aqimpossibilità 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\*(Aqinvio\&. +.SS "Nessuna Garanzia" +.PP +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 +\m[blue]\fB\%http://www.gnu.org/licenses/gpl-2.0.html\fR\m[] +oppure nel file COPYING incluso nel pacchetto di Nmap\&. +.PP +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\&. +\fINmap non dovrebbe mai essere lanciato contro sistemi "mission critical"\fR +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\&. +.SS "Uso Inappropriato" +.PP +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\&. +.PP +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\&. +.SS "Software di Terze Parti" +.PP +Questo prodotto include software sviluppato da +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[28]\d\s+2\&. Una versione modificata di +\m[blue]\fBLibpcap portable packet capture library\fR\m[]\&\s-2\u[29]\d\s+2 +è distribuita assieme a Nmap\&. La versione per Windows di Nmap utilizza invece un derivato di Libpcap, +\m[blue]\fBWinPcap library\fR\m[]\&\s-2\u[30]\d\s+2\&. Il supporto per le regular espressions è garantito dalla libreria +\m[blue]\fBPCRE library\fR\m[]\&\s-2\u[31]\d\s+2, che è software open\-source, scritta da Philip Hazel\&. Alcune funzioni di raw networking usano la libreria +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[32]\d\s+2, che è stata scritta da Dug Song\&. Con Nmap ne è distribuita una versione modificata\&. Nmap può opzionalmente collegarsi con l\*(Aq\m[blue]\fBOpenSSL cryptography toolkit\fR\m[]\&\s-2\u[33]\d\s+2 +per supportare il riconoscimento della versione di SSL\&. L\*(AqNmap Scripting Engine utilizza una versione implementata di +\m[blue]\fBLua programming language\fR\m[]\&\s-2\u[34]\d\s+2\&. La +\m[blue]\fBLiblinear linear classification library\fR\m[]\&\s-2\u[35]\d\s+2 +viene utilizzata per le nostre tecniche di apprendimento automatico dell\*(AqOS version su IPv6 (vedi la sezione +«\m[blue]\fBIPv6 matching\fR\m[]\&\s-2\u[36]\d\s+2»)\&. Tutto il software di terze parti descritto in questo paragrafo è liberamente ridistribuibile sotto licenza stile BSD\&. +.SS "United States Export Control" +.PP +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\*(Aqexport U\&.S\&. +\m[blue]\fBExport Administration Regulations (EAR)\fR\m[]\&\s-2\u[37]\d\s+2\&. Come tale, non esiste ECCN (numero di classificazione di controllo delle esportazioni) applicabile e l\*(Aqesportazione non richiede licenze speciali, permessi o altre autorizzazioni governative\&. +.PP +Quando compilato col supporto ad OpenSSL o distribuito come codice sorgente, Insecure\&.Com LLC crede che Nmap rientri sotto U\&.S\&. ECCN +\m[blue]\fB5D002\fR\m[]\&\s-2\u[38]\d\s+2 +(«Information Security Software»)\&. Distribuiamo Nmap secondo l\*(Aqeccezione TSU per il software di crittografia disponibile pubblicamente definito in +\m[blue]\fBEAR 740\&.13(e)\fR\m[]\&\s-2\u[39]\d\s+2\&. +.PP +La presente traduzione ha il solo scopo di aiutare nella comprensione del testo originale +«Nmap Reference Guide», non ne costituisce copia sostitutiva e nemmeno licenza alternativa di +«Covered Software»\&. Per qualsiasi informazione o chiarimento e per la versione più aggiornata, fare riferimento al testo originale disponibile al link +\m[blue]\fB\%https://nmap.org/book/man.html\fR\m[]\&. +.SH "NOTE" +.IP " 1." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 2." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 3." 4 +RFC 950 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc950.txt +.RE +.IP " 4." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 5." 4 +SCTP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc4960.txt +.RE +.IP " 6." 4 +RFC del protocollo TCP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 7." 4 +TCP Idle Scan (-sI) +.RS 4 +\%https://nmap.org/book/idlescan.html +.RE +.IP " 8." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 9." 4 +Well Known Port List: + \fBnmap-services\fR +.RS 4 +\%https://nmap.org/book/nmap-services.html +.RE +.IP "10." 4 +Chapter 7, Service and Application Version Detection +.RS 4 +\%https://nmap.org/book/vscan.html +.RE +.IP "11." 4 +RFC 1323 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1323.txt +.RE +.IP "12." 4 +Chapter 8, Remote OS Detection +.RS 4 +\%https://nmap.org/book/osdetect.html +.RE +.IP "13." 4 +linguaggio di programmazione Lua +.RS 4 +\%http://lua.org/ +.RE +.IP "14." 4 +Script Categories +.RS 4 +\%https://nmap.org/book/nse-usage.html#nse-categories +.RE +.IP "15." 4 +Chapter 9, Nmap Scripting Engine +.RS 4 +\%https://nmap.org/book/nse.html +.RE +.IP "16." 4 +Chapter 14, Understanding and Customizing Nmap Data Files +.RS 4 +\%https://nmap.org/book/data-files.html +.RE +.IP "17." 4 +\(lqIdle + Scan Implementation Algorithms\(rq +.RS 4 +\%https://nmap.org/book/scan-methods.html#port-scanning-algorithms +.RE +.IP "18." 4 +A practical example: bypassing default Snort 2.2.0 rules +.RS 4 +\%https://nmap.org/book/firewalls.html#defeating-ids-snort-portscan +.RE +.IP "19." 4 +adaptive retransmission +.RS 4 +\%https://nmap.org/book/scan-methods.html#scan-methods-adaptive-retransmission +.RE +.IP "20." 4 +RFC 2960 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc2960.txt +.RE +.IP "21." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP "22." 4 +Nmap::Parser +.RS 4 +\%http://nmapparser.wordpress.com/ +.RE +.IP "23." 4 +Grepable Output (-oG) +.RS 4 +\%https://nmap.org/book/output-formats-grepable-output.html +.RE +.IP "24." 4 +Timing and Performance +.RS 4 +\%https://nmap.org/book/man-performance.html +.RE +.IP "25." 4 +xsltproc +.RS 4 +\%http://xmlsoft.org/XSLT/ +.RE +.IP "26." 4 +su Wikipedia +.RS 4 +\%http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers +.RE +.IP "27." 4 +\fINmap + Network Scanning: The Official Nmap Project Guide to Network Discovery + and Security Scanning\fR +.RS 4 +\%https://nmap.org/book/ +.RE +.IP "28." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "29." 4 +Libpcap portable packet capture library +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "30." 4 +WinPcap library +.RS 4 +\%http://www.winpcap.org +.RE +.IP "31." 4 +PCRE library +.RS 4 +\%http://www.pcre.org +.RE +.IP "32." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "33." 4 +OpenSSL cryptography toolkit +.RS 4 +\%http://www.openssl.org +.RE +.IP "34." 4 +Lua programming language +.RS 4 +\%http://www.lua.org/ +.RE +.IP "35." 4 +Liblinear linear classification library +.RS 4 +\%http://www.csie.ntu.edu.tw/~cjlin/liblinear/ +.RE +.IP "36." 4 +IPv6 matching +.RS 4 +\%https://nmap.org/book/osdetect-guess.html#osdetect-guess-ipv6 +.RE +.IP "37." 4 +Export Administration Regulations (EAR) +.RS 4 +\%http://www.access.gpo.gov/bis/ear/ear_data.html +.RE +.IP "38." 4 +5D002 +.RS 4 +\%http://www.access.gpo.gov/bis/ear/pdf/ccl5-pt2.pdf +.RE +.IP "39." 4 +EAR 740.13(e) +.RS 4 +\%http://www.access.gpo.gov/bis/ear/pdf/740.pdf +.RE diff --git a/docs/man-xlate/nmap-ja.1 b/docs/man-xlate/nmap-ja.1 new file mode 100644 index 0000000..185b384 --- /dev/null +++ b/docs/man-xlate/nmap-ja.1 @@ -0,0 +1,1269 @@ +'\" t +.\" Title: nmap +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 17/05/2023 +.\" Manual: Nmap リファレンスガイド +.\" Source: Nmap +.\" Language: Japanese +.\" +.TH "NMAP" "1" "17/05/2023" "Nmap" "Nmap リファレンスガイド" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "名前" +nmap \- ネットワーク調査ツールおよびセキュリティ/ポート スキャナ +.SH "概要" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fIスキャンタイプ\fR...] [\fIオプション\fR] {\fIターゲットの指定\fR} +.SH "ツール説明" +.PP +Nmap (「Network Mapper」)は、ネットワーク調査およびセキュリティ監査を行うためのオープンソースのツールである。大規模ネットワークを高速でスキャンするように設計されているが、単一のホストに対してもまったく問題なく機能する。Nmapは生の(raw)IPパケットを用いて、ネットワーク上でどのようなホストか利用可能になっているか、これらのホストが提供しているサービス(アプリケーション名とバージョン)は何か、ホストが実行しているOS(OS名とバージョン)は何か、どのような種類のパケットフィルタ/ファイアウォールが使用されているかなど、その他数多くの特徴を斬新な方法で判別する。Nmapは、セキュリティ監査用に広く利用されているばかりでなく、ネットワーク・インベントリ(資産情報収集)、サービスのアップグレード予定管理、ホストやサービスのアップタイム(利用可能時間)の監視等の日常業務にNmapを役立てているシステム管理者やネットワーク管理者も多い。 +.PP +Nmapは、スキャン調査対象の一覧を、使用したオプションに応じた補足情報とともに出力する。このなかで最も重要な情報は、「interesting ports table」(興味深いポートの一覧表)である。この一覧表には、ポート番号、プロトコル、サービス名、状態が記載されている。状態は、open、filtered、closed、またはunfilteredのいずれかになる。open(開いた)ポートは、調査対象マシン上のアプリケーションがそのポート上で接続/パケットを待ち受けている状態であることを示す。 +Filtered(フィルタあり)は、ファイアウォールやフィルタなどのネットワーク上の障壁でポートが遮られている状態にあり、ポートが開いているか閉じているかをNmapが判断できないことを意味する。Closed(閉じた)ポートには、待ち受け状態のアプリケーションは何もないが、これらはいつでも開放することが可能である。ポートがNmapのプローブには応答するが、開いているか閉じているかをNmapが判別できない場合には +unfilteredに分類される。ポートの状態がopen|filteredやclosed|filteredのように、2つの状態の組み合わせで報告されるのは、そのどちらがポートの状態を表しているかをNmapが判断できない場合である。またこのポート一覧表には、バージョンの検出が求められた場合には、ソフトウェアのバージョン情報も記載される。IPプロトコルスキャン(\fB\-sO\fR)が要求された場合には、ポートを一覧表示するのではなく、対応可能なIPプロトコルに関する情報が提供される。 +.PP +Nmapは、このポート一覧表以外にも、逆引きDNS名、OSの推測、デバイスの種類、MACアドレスなどの、調査対象に関するさらに詳細な情報を提供できる。 +.PP +典型的なNmapスキャンの例を、以下の +例1「Nmapスキャンの典型的な例」に示した。この例で使用されているNmapの引数は、OSとそのバージョンの検出を可能にする\fB\-A\fRと、処理を高速に実行するための\fB\-T4\fR、および2つのターゲットホスト名だけである。 +.PP +\fB例1 Nmapスキャンの典型的な例\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# \fBnmap \-A \-T4 scanme\&.nmap\&.org\fR + +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 +.fi +.if n \{\ +.RE +.\} +.PP +Nmapの最新バージョンは、\m[blue]\fB\%https://nmap.org\fR\m[]から入手できる。また、本マニュアルページの最新版は、\m[blue]\fB\%https://nmap.org/book/man.html\fR\m[]で参照できる。 +.SH "オプション概要" +.PP +このオプション概要は、Nmapを引数なしで実行すると表示される。最新版は\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]で参照できる。これを見ると、比較的利用機会の多いオプションについての概要を確認できるが、本マニュアルの以下に掲載する詳細な解説に代わるものではない。使用頻度の低いオプションには、ここに含まれていないものもある。 +.sp +.if n \{\ +.RS 4 +.\} +.nf +Nmap 7\&.94 ( 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\*(Aqs 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\*(Aqt 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 \*(Aqms\*(Aq (milliseconds), + \*(Aqs\*(Aq (seconds), \*(Aqm\*(Aq (minutes), or \*(Aqh\*(Aq (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) + \-\-append\-output: Append to rather than clobber specified output files + \-\-resume <filename>: Resume an aborted scan + \-\-noninteractive: Disable runtime interactions via keyboard + \-\-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 +.fi +.if n \{\ +.RE +.\} +.SH "ターゲットの指定" +.PP +Nmapのコマンドラインで、オプション(もしくはオプションの引数)でないものはすべて、ターゲットホストの指定として扱われる。最も簡単な例は、スキャンを行うターゲットのIPアドレスやホスト名の指定である。 +.PP +隣接した複数のホストから成るネットワーク全体をスキャン対象としたい場合は、CIDR表記のアドレス指定を利用できる。IPアドレスやホスト名の末尾に\fIbit数\fRを付加すると、Nmapは、アドレスの上位から指定した\fIbit数\fRまでが参照するIPアドレスや特定のホスト名と同じアドレスをすべてスキャンする。例えば、192\&.168\&.10\&.0/24を指定すると 192\&.168\&.10\&.0 (2進表示: +11000000 10101000 00001010 00000000)から192\&.168\&.10\&.255 (2進表示: +11000000 10101000 00001010 11111111)までの256のホストがスキャンされる。192\&.168\&.10\&.40/24を指定しても、まったく同じ結果になる。ホスト scanme\&.nmap\&.orgのIPアドレスが205\&.217\&.153\&.62であるとすると、scanme\&.nmap\&.org/16という指定では、205\&.217\&.0\&.0 から 205\&.217\&.255\&.255 までの65,536個のIPアドレスをスキャンすることになる。指定可能な最小値は/1であり、これはインターネットの半分をスキャンすることになる。最大値は/32で、すべてのアドレスビットが固定されるので、指定したホストやIPアドレスだけがスキャンされる。 +.PP +CIDR表記は簡潔であるが、必ずしも十分な柔軟性があるわけではない。例えば、192\&.168\&.0\&.0/16をスキャンする際に、\&.0や\&.255で終わるアドレスは、通常はブロードキャストアドレスなのですべて対象から除外したい場合があるだろう。Nmapではこのケースには、オクテット(octet=8bit)範囲のアドレス指定によって対応する。通常のIPアドレスを指定する代わりに、コンマ区切りの数のリストや各オクテット(8bit)の範囲を指定できる。例えば、192\&.168\&.0\-255\&.1\-254と指定すると、\&.0と\&.255で終わる範囲のアドレスはすべて省かれる。この範囲は最後のオクテットだけに限る必要はない。すなわち、0\-255\&.0\-255\&.13\&.37と指定すると、13\&.37で終わるすべてのIPアドレスをインターネット全体でスキャンする。このような広範囲からのサンプリングは、インターネットの調査や研究を行う場合に役立つ。 +.PP +IPv6アドレスは、完全修飾形(省略なし)のIPv6アドレスやホスト名でしか指定できない。IPv6では、CIDRやオクテット範囲は使い道がほとんどないため、サポートされない。 +.PP +Nmapはコマンドラインでの複数のホスト指定方法に対応しており、すべて同じ形式にしなくてもよい。\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.0\-255\fRというコマンドを実行しても、期待通りの結果になる。 +.PP +ターゲットは通常、コマンドライン上で指定されるが、以下のオプションもまた、ターゲットの選択を制御するために利用できる。 +.PP +\fB\-iL \fR\fB\fIinputfilename\fR\fR (リストから入力) +.RS 4 +\fI入力ファイル名\fRから、ターゲットの指定を読み込む。コマンドラインで非常に巨大なホストリストを渡すのは不適切である場合が多いが、それが望まれるのもよくあるケースである。例えば、スキャンの対象にしたいと考えている目下の割り当てアドレスの10000個のリストが、DHCPサーバからエクスポートされる可能性もある。あるいは、不正な固定IPアドレスを使用しているホストの位置を示すアドレスを\fI除いた\fRすべてのIPアドレスをスキャンしたいと思う場合もあるかもしれない。とにかく、スキャンするべきホストのリストを作成し、そのファイル名を\fB\-iL\fRオプションの引数としてNmapに渡せばよい。入力の形式は、Nmapがコマンドラインで対応しているもの(IPアドレス、ホスト名、CIDR、IPv6、オクテット範囲)なら何でもよいが、各入力は、1つ以上のスペース、タブ、改行文字で区切る必要がある。実際のファイルではなくて標準入力から、Nmapにホストを読み込ませたい場合は、ファイル名としてハイフン(\-)を指定するとよい。 +.RE +.PP +\fB\-iR \fR\fB\fInum hosts\fR\fR (ターゲットを無作為に選ぶ) +.RS 4 +インターネット全域に対する調査や研究を行う場合、ターゲットを無作為に選びたい場合もあるだろう。\fIホスト数\fRの引数は、IPをいくつ生成するべきかをNmapに伝える。プライベート、マルチキャスト、未割り当てなどのアドレス範囲のような望ましくないIPは、自動的に飛ばして進むようになっている。引数に0(ゼロ)を指定すると、スキャンが無限に続けられる。ただし、ネットワーク管理者のなかには、自身の管理するネットワークを不正にスキャンされたことに腹を立ててクレームをつける場合もあることに注意しておこう。このオプションは、自己責任で使用すること! 雨の日の午後、退屈しのぎに拾い見るためのWebサーバを無作為に見つけたい場合は、\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fRというコマンドを試してみるとよい。 +.RE +.PP +\fB\-\-exclude \fR\fB\fIhost1\fR\fR\fB[,\fIhost2\fR[,\&.\&.\&.]]\fR (ホスト/ネットワークを除外する) +.RS 4 +ターゲットのコンマ区切りリストを指定し、それらが指定した全ネットワーク範囲の一部であっても、スキャン対象から除外されるようにする。引数として渡すリストでは通常のNmap構文が用いられるので、ホスト名、CIDR表記のネットブロック、オクテット範囲などを含めることもできる。このオプションが役に立つのは、スキャンしたいネットワークに、ポートスキャンによって悪影響が及ぶことがわかっている、触れてはならないミッションクリティカルなサーバやシステムや、他人が管理しているサブネットワークが含まれる場合である。 +.RE +.PP +\fB\-\-excludefile \fR\fB\fIexclude_file\fR\fR (ファイルからリストを除外する) +.RS 4 +\fB\-\-exclude\fRオプションとほぼ同じ機能を提供するが、異なる点は、除外されるターゲットが、コマンドラインではなく、改行文字、スペース、タブなどで区切った\fI除外ファイル\fRで渡されることである。 +.RE +.SH "ホストの発見" +.PP +ネットワーク偵察ミッションの第一段階に行うべきことの1つは、一連の(非常に広範な場合もある)IP範囲を限定して、アクティブな状態であるか、関心のあるホストのリストを作成することである。各IPアドレスのポートを1つ1つスキャンするのは、時間はかかるもののなかなか進まない、通常は無駄な作業である。もちろん、あるホストに興味を引かれる要因は、スキャンの目的に大きく左右される。ネットワーク管理者なら、特定のサービスを実行しているホストにしか興味を示さないかもしれないし、セキュリティ監査人なら、IPアドレスを持つデバイス1つ1つに関心を引かれる場合もあるだろう。内部ネットワーク管理者なら、自分が管理するネットワーク上のホストの位置を確認するためにICMP pingを使えるだけで満足かもしれないし、外部のペネトレーションテストの実施担当者なら、ファイアウォールの制限をすり抜けようとして、多種多様な調査手法を使う場合もあるだろう。 +.PP +このように、ホスト発見のニーズは多岐にわたるので、Nmapには、使用する技法をカスタマイズするための幅広い種類のオプションが備わっている。ホスト探索はpingスキャンと呼ばれることもあるが、一般的なpingツールによる単純なICMPエコー要求パケットよりもはるかに優れている。ユーザは、リストスキャン(\fB\-sL\fR)を用いるか、pingを無効にして(\fB\-Pn\fR)、このping段階を完全に省略するか、もしくはネットワークに対してマルチポートのTCP SYN/ACK、UDP、ICMPなどのプローブを任意に組み合わせて行うことができる。これらのプローブの目的は、IPアドレスが実際にアクティブな状態(ホストやネットワークデバイスによって使用中)であることを示す応答を誘い出すことである。多くのネットワークでは、いつでもアクティブなIPアドレスは全体のほんのわずかしかない。RFC1918で定められたプライベートアドレス空間(例:10\&.0\&.0\&.0/8)では特にそうなっている。このネットワークには、1600万個のIPアドレスがあるが、これが1000台足らずのマシンしかない企業で使われているのを見たことがある。ホスト発見を実行すると、こうした広大なIPアドレスの海の中から、まばらにIPアドレスを割り振られたマシンを探し出すことができる。 +.PP + ホスト発見のオプションが何も指定されない場合、Nmapはポート80宛てのTCP ACKパケットと、ICMPエコー要求クエリを各ターゲットマシンに送信する。この例外は、ローカル イーサネット ネットワーク上にあるターゲットに対して、ARPスキャンが用いられている場合である。高い権限のないUNIXシェルユーザでは、\fBconnect()\fRシステムコールを使って、ACKの代わりにSYNパケットが送られる。これらのデフォルトは、\fB\-PA \-PE\fR +オプションに相当する。このホスト発見機能は、ローカルネットワークをスキャンする場合は十分だが、より包括的な一連の発見調査は、セキュリティ監査に任せた方がよい。 +.PP +\fB\-P*\fRオプション(pingの種類を選ぶ)を組み合わせることもできる。様々なTCPポート/フラグやICMPコードを用いた多種多様なプローブを送ることで、制限の厳しいファイアウォールをすり抜ける確率を上げることができる。さらに留意すべき点は、ローカル イーサネット ネットワーク上のターゲットに対しては、その他の\fB\-P*\fRオプションを指定している場合でも、ARP探索(\fB\-PR\fR)がデフォルトで行われることである。これはほとんどの場合、他よりも高速で効果的に実施できるからである。 +.PP +ホスト発見を制御するオプションを以下に挙げる。 +.PP +\fB\-sL\fR (リストスキャン) +.RS 4 +ホスト発見の縮小版で、単に指定されたネットワークの全ホストを一覧するだけであり、ターゲットホストには何もパケットを送らない。デフォルトでは、Nmapはホスト名を知るために、ホスト上でDNSの逆引き解決も行う。単なるホスト名とはいえ、意外なほど有用な情報をもたらしてくれることも多い。例えばfw\&.chi\&.playboy\&.comは、プレイボーイ社(Playboy Enterprises)のシカゴ(Chicago)支社のファイアウォールである。また最終的には、IPアドレスの総数についての報告もある。リストスキャンは、自分のターゲットに対して正しいIPアドレスが得られていることを確認するための有効な健全性検査になる。ターゲットのホストが見覚えのないドメイン名を示している場合は、間違って別の会社のネットワークをスキャンしてしまわないように、さらに詳しく調査するだけの価値はある。 +.sp +リストスキャンの狙いは、単にターゲットホストのリストを出力するだけなので、ポートスキャン、OS検出、pingスキャンなどのより高度なレベルの機能を実現するためのオプションは、これと組み合わせることはできない。これらのハイレベルの機能を実行する際に、pingスキャンを無効にしたい場合は、\fB\-Pn\fRオプションの項を参照のこと。 +.RE +.PP +\fB\-sn\fR (Ping スキャン) +.RS 4 +このオプションを使うと、Nmapはpingスキャン(ホスト発見)\fIのみ\fRを実行し、応答した利用可能なホストの一覧を出力する。それ以上の調査(ポートスキャンやOS検出など)は行わない。リストスキャンよりも一歩立ち入った調査になるが、同じ目的で使用される場合が多い。ターゲットネットワークの予備調査を、あまり注意を引かずに軽く実行できる。攻撃者にとっては、IPおよびホスト名を1つ1つリストスキャンして得られるリストよりも、アクティブなホストがいくつあるかを知ることのほうが価値がある。 +.sp +またこのオプションは、システム管理者の役に立つ場合も多く、ネットワーク上の利用可能なマシンの数を数えたり、サーバの可用性を監視したりするために容易に利用できる。pingスウィープと呼ばれることも多く、ブロードキャストのクエリには応答しないホストが多いために、ブロードキャストアドレスにpingを打つよりも信頼性が高い。 +.sp +\fB\-sn\fRオプションはデフォルトで、ICMPエコー要求と80番ポート宛てのTCPパケットを送信する。高い権限がないユーザが実行する場合は、SYNパケットが(\fBconnect()\fRコールを使って)ターゲットの80番ポートに送られる。高い権限を持つユーザが、ローカル イーサネット ネットワーク上のターゲットのスキャンを試みる場合は、\fB\-\-send\-ip\fRが指定されていない限り、ARP要求(\fB\-PR\fR)が用いられる。\fB\-sn\fRオプションを、発見プローブタイプ(\fB\-Pn\fRを除く\fB\-P*\fRタイプ)のオプションと組み合わせると、さらに柔軟に対応できる。このプローブタイプのどれかとポート番号のオプションを使うと、デフォルトのプローブ(ACKやエコー要求)よりも優先される。Nmapを実行している発信元ホストとターゲットネットワークの間に、制限の厳しいファイアウォールが設置してある場合は、これらの高度なテクニックを用いるべきである。さもないと、ファイアウォールでプローブパケットやホストの応答パケットが破棄された場合に、ホストを検出し損ねる可能性がある。 +.RE +.PP +\fB\-Pn\fR (ping なし) +.RS 4 +このオプションを指定すると、Nmapが実行するホスト発見の段階が完全に省略される。Nmapは通常この検出段階で、さらに立ち入ったスキャンを行うためのアクティブなマシンを割り出す。Nmapはデフォルトでは、ポートスキャン、バージョン検出、OS検出などの立ち入ったプローブは、作動していることが判明したホストに対してしか実行しないようになっている。\fB\-Pn\fRを使ってホスト発見を無効にすると、Nmapはターゲットに指定されたIPアドレス\fIすべて\fRに対して、要求されたスキャン機能を実行しようとする。つまり、クラスBのサイズのアドレス空間(/16)を、コマンドラインでターゲットに指定した場合、65,536個のIPアドレスすべてがスキャンされる。\fB\-Pn\fRの2番目の文字は数字のゼロであり、英字のオーではない。リストスキャンの場合と同様に、本来行うべきホスト発見の段階は省略されるが、Nmapはそこで停止してターゲットのリストを出力するのではなくて、各ターゲットIPがアクティブであるかのように、要求された機能を実行し続ける。 +.RE +.PP +\fB\-PS \fR\fB\fIportlist\fR\fR (TCP SYN Ping) +.RS 4 +このオプションによって、SYNフラグ付きの空のTCPパケットが送信される。デフォルトの送信先ポートは80番(この設定は、nmap\&.hのDEFAULT_TCP_PROBE_PORTを書き換えてコンパイルすると変更できる)だが、代わりのポートをパラメタとして指定できる。また、コンマ区切りのポート番号リスト(例:\fB\-PS22,23,25,80,113,1050,35000\fR)を指定することも可能である。この場合、各ポートに対するプローブは同時並行で試みられる。 +.sp +SYNフラグによって、こちら側がコネクションの確立を試みていることをリモートのシステムに知らせる。通常は送信先ポートが閉じており、RST(リセット)パケットが送り返される。このポートがたまたま開いていた場合は、ターゲットはSYN/ACK TCPパケットで応答し、TCPの3ウェイハンドシェイクの第二段階に進む。続いて、Nmapを実行しているマシンが、ACKパケットを送って3ウェイハンドシェイクを完了すれば、完全なコネクションが確立されるが、その代わりにRSTで応答することで、生成途中のコネクションを切断する。このRSTパケットは、Nmap自身ではなくて、Nmapを実行しているマシンのカーネルが、予期せぬSYN/ACKに応答して送るものである。 +.sp +Nmapでは、対象のポートが開いているか閉じているかは問題にしない。対象のホストがアクセス可能で、反応があることをNmapに告げるのは、上で述べたRSTかSYN/ACKの応答である。 +.sp +UNIXマシンでは通常、生のTCPパケットを送受信できるのはroot権限を持つユーザに限られる。こうした権限のないユーザの場合は、次善策が自動的に採用され、各ターゲットポートに対してconnect()システムコールが起動される。これにより、SYNパケットをターゲットホストに送信し、コネクションの確立を試みる。connect()の戻り値としてすみやかに成功か失敗(ECONNREFUSED)が得られた場合、下位のTCPスタックではSYN/ACKかRSTパケットを受信したことになり、ターゲットホストはアクセス可能と見なされる。このコネクションの試みが未確立のままでタイムアウトに達した場合は、ホストはダウンしていると見なされる。Nmapは生のIPv6パケットの生成にはまだ対応していないので、この次善策はIPv6による接続にも用いられる。 +.RE +.PP +\fB\-PA \fR\fB\fIportlist\fR\fR (TCP ACK Ping) +.RS 4 +TCP ACK pingは、すぐ上で述べたSYN pingのケースに酷似している。異なる点は、想像される通り、SYNフラグの代わりにTCP ACKフラグが付けられることである。こうしたACKパケットは、確立されたTCPコネクション上のデータを承認していると称しているが、そのようなコネクションは存在しないのである。そのため、リモートホストは常にRSTパケットで応答しなければならなくなり、この過程で自らの存在を明らかにすることになる。 +.sp +\fB\-PA\fRオプションは、SYNプローブと同じデフォルトポート(80)を使用し、同じ形式の目的ポートリストを得ることができる。権限のないユーザがこれを試みる場合や、IPv6ターゲットが指定された場合は、上で述べたconnect()の次善策が用いられる。ただし実際には、connect()はACKではなくてSYNパケットを送るので、この次善策は完全とは言えない。 +.sp +SYNおよびACKの両方の pingが使えるようになっている理由は、ファイアウォールをすり抜ける可能性を最大限高くするためである。多くの管理者は、内向きのSYNパケットに関しては、企業のWebサイトやメールサーバなどの共用サービス宛てのもの以外はすべてブロックするように、ルータや簡易ファイアウォールを設定している。これにより、組織へのその他の内向きコネクションは阻止されるものの、ユーザが利用するインターネットへの外向きコネクションは、何にも妨げられずに許可されている。このようなステートフル(処理状態を把握して動的に対処する)でないアプローチは、ファイアウォール/ルータ上でリソースをほとんど消費せず、ハードウェアおよびソフトウェアフィルタで広くサポートされている。Linux用ファイアウォールソフトウェア「Netfilter/iptables」には、こうしたステートレスなアプローチを実装するための「\-\-syn」という便利なオプションが用意されている。このようなステートレスなファイアウォールルールが設定されている場合、SYN pingプローブ(\fB\-PS\fR)を閉じたターゲットポートに送ってもブロックされる可能性が高い。そうした場合は、ACKプローブが効力を発揮し、このルールを突破する。 +.sp +またよく使われるファイアウォールで、別の種類のものには、想定外のパケットは破棄するというステートフルルールが採用されている。当初こうした機能はハイエンドのファイアウォールでしか見られなかったが、ここ数年の間に一般に広く普及してきている。LinuxのNetfilter/iptablesシステムは、\fB\-\-state\fRオプションでこの機能をサポートしており、コネクションの状態に応じてパケットを分類する。このようなシステムでは、想定外のACKパケットは通常、偽物と認識されて破棄されるので、SYNプローブのほうが有効である可能性が高い。この難題に対する解決策の1つは、\fB\-PS\fR +および +\fB\-PA\fRを指定して、SYN および ACKの両方のプローブを送ることである。 +.RE +.PP +\fB\-PU \fR\fB\fIportlist\fR\fR (UDP Ping) +.RS 4 +これもホスト発見用オプションで、空の(\fB\-\-data\-length\fRが指定されている場合を除き)UDPパケットを特定のポートに送信する。ポートリストは、上で述べた\fB\-PS\fR +や +\fB\-PA\fRのオプションの場合と同じ形式にする。特にポートが指定されていない場合、デフォルトでは31338番になる。このデフォルト値を設定するには、nmap\&.hのDEFAULT_UDP_PROBE_PORTを書き換えてコンパイルする。ほとんど使われることがないポートがデフォルトで使用されている理由は、開放ポートへの送信が、このスキャンタイプでは特に望ましくない場合が多いからである。 +.sp +UDPプローブがターゲットマシンで閉じたポートに行き着いた場合は、ICMPポート到達不能パケットが返送されるはずである。Nmapはこれにより、ターゲットマシンが稼動中でアクセス可能であることを知ることになる。ICMPにはこの他にも、ホスト/ネットワーク到達不能やTTL超過などの、ホストがダウンしているか到達不能であることを示す多様なエラーメッセージがある。応答がないのも、これと同様に解釈される。空のパケットが開放ポートに到達した場合、ほとんどのサービスはこれを無視して、何の応答も返さない。デフォルトのプローブポートが、ほぼ使用中ではない31338番になっているのは、このためである。「chargen」などのサービスには、空のUDPパケットに応答するものがいくつかあり、マシンが利用可能であることをNmapに知らせることになる。 +.sp +この種類のスキャンの主なメリットは、TCPしかふるいに掛けないファイアウォールやフィルタをすり抜けることである。例えば、筆者が以前持っていたLinksys社の無線ブロードバンドルータ、BEFW11S4の外部インターフェースは、デフォルトですべてのTCPポートにフィルタ処理するようになっていたが、UDPプローブを使うと、ポート到達不能メッセージを引き出し、デバイスの正体を明らかにすることができた。 +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (ICMP Ping タイプ) +.RS 4 +Nmapは、上で述べたようなTCP や UDPによるホスト発見の特異なタイプに加えて、どこにでもあるpingプログラムによって送信される標準的なパケットを送ることもできる。Nmapは、ICMPタイプ8(エコー要求)パケットをターゲットのIPアドレスに送信し、利用可能なホストからタイプ0(エコー応答)が返されるのを待ち受ける。ネットワーク調査を行う者にとっては残念なことに、最近のホストやファイアウォールは、\m[blue]\fBRFC1122\fR\m[]\&\s-2\u[1]\d\s+2の要件通り応答を返すよりは、これらのパケットをブロックするものが多い。そのため、インターネット上の未知のターゲットに対しては、ICMPスキャンだけでは十分な信頼性が得られない。だが、内部ネットワークを監視しているシステム管理者にとっては、実用的で効率的なアプローチになる場合もある。このエコー要求動作を有効にするには、\fB\-PE\fRオプションを使用すること。 +.sp +エコー要求は標準的なICMP pingクエリであるが、Nmapはそれだけにとどまらない。ICMP規格(\m[blue]\fBRFC792\fR\m[]\&\s-2\u[2]\d\s+2)には、タイムスタンプ要求、情報要求、アドレスマスク要求などのパケットが、それぞれコード13、15、17として指定されている。これらのクエリの表向きの目的は、アドレスマスクや現在の時刻などの情報を知ることだが、ホスト発見にも容易に利用できる。応答を返すシステムはすなわち、稼動中で利用可能なのである。情報要求パケットは、それほど広くサポートされているわけではないので、今のところNmapには実装されていない。RFC 1122では「ホストにはこの種のメッセージを実装するべきではありません」と提唱されている。タイムスタンプとアドレスマスクに関するクエリは、それぞれ\fB\-PP\fRと\fB\-PM\fRのオプションを付けることで送信できる。タイムスタンプ応答(ICMP コード14)やアドレスマスク応答(コード18)によって、ホストが利用可能であることが明らかになる。これら2つのクエリは、管理者がエコー要求パケットを限定してブロックしているが、他のICMPクエリが同じ目的で用いられる可能性があることを見落としている場合に有効である。 +.RE +.PP +\fB\-PR\fR (ARP Ping) +.RS 4 +Nmapの最も一般的な使用法の1つは、イーサネットLANのスキャンである。たいていのLAN、特にRFC1918提唱のプライベートアドレス範囲が用いられているLANでは、IPアドレスの大部分は常に未使用のままになっている。NmapがICMPエコー要求のような生のIPパケットを送信する場合、OSはイーサネットフレームのアドレスを正しく指定できるように、ターゲットIPに対応する送信先ハードウェア(ARP)のアドレスを決める必要がある。だがこの処理は遅く、不確実である場合が多い。なぜなら、OSは、利用できないホストに対して何百万という数のARP要求を短時間で行わなければならないことを想定して作られているわけではないからである。 +.sp +NmapのARPスキャンでは、ARP要求の処理を行うのに、そのために最適化したアルゴリズムを用いている。応答が返された場合、Nmapはすでにそのホストが稼動中であることがわかるので、IPベースのpingパケット処理の心配はしなくてよくなる。これにより、ARPスキャンはIPベースのスキャンよりもずっと高速で信頼性の高い処理を行うことができる。そのため、Nmapがローカル イーサネット ネットワーク上で検出したイーサネット ホストをスキャンする場合は、デフォルトでARPスキャンが行われるようになっている。別のpingタイプ(\fB\-PE\fRや\fB\-PS\fRなど)が指定されている場合でも、同一のLAN上にあるターゲットに対しては、Nmapはそれらの代わりにARPを用いる。あくまでもARPスキャンを行いたくない場合は、\fB\-\-send\-ip\fRを指定すること。 +.RE +.PP +\fB\-n\fR (DNS解決を行わない) +.RS 4 +Nmapが発見したアクティブなIPアドレスに対して逆引きのDNS解決を\fI行わない\fRように指定する。DNSは処理が遅いことが多いので、これによって進行を速めることができる。 +.RE +.PP +\fB\-R\fR (全ターゲットにDNS解決を行う) +.RS 4 +ターゲットのIPアドレスに対して常に逆引きDNS解決を\fI常に行う\fRように指定する。この指定は通常、対象のマシンが稼動していることが判明している場合にのみ行われる。 +.RE +.PP +\fB\-\-system\-dns\fR (システムのDNSリゾルバを使う) +.RS 4 +Nmapはデフォルトでは、ホスト上に構成されたネームサーバに直接クエリを送り、応答を待ち受けることで、IPアドレスを解決する。パフォーマンスを上げるために、数多くの要求(数十件に及ぶことも多い)が並行処理される。代わりに自分のシステムのリゾルバを使いたい(getnameinfo()コールを介して1回に1個のIPを処理する)場合は、このオプションを指定すること。だがこれは低速でほとんど使い物にならない。ただし、NmapのDNSコードにバグがある場合はこの限りではない--その場合は連絡していただきたい。IPv6スキャンでは常に、システムのリゾルバが使われる。 +.RE +.SH "ポートスキャンの基本" +.PP +Nmapはここ数年で、機能面でいろいろと拡充されてきたが、もとは効率的なポートスキャナとして開発されたものであり、ポートスキャンは今でもNmapの中核を成す機能である。\fBnmap \fR\fB\fItarget\fR\fRというシンプルなコマンドで、\fIターゲット\fRホスト上の1660個あまりのTCPポートをスキャンできる。多くのポートスキャナでは従来、すべてのポートは一括してopen」(開いている)かclosed(閉じている)のどちらかの状態にあるものとして扱われてきたが、Nmapではさらにきめ細かく取り扱われる。すなわち、ポートは以下の6つの状態に分類される: open、closed、filtered、unfiltered、open|filtered、またはclosed|filtered。 +.PP +これらの状態は、ポート自体に固有の特性ではなくて、Nmapがポートをどのように認識しているかを表している。例えば、Nmapがターゲットと同じネットワークからスキャンを行うと、135番/tcpポートはopen状態にあるように見えるが、同時刻に同じオプションでこのスキャンをインターネット上から行った場合、同ポートはfilteredと見えるだろう。 +.PP +\fBNmapに認識されるポートの6つの状態\fR +.PP +open +.RS 4 +このポートでは、アプリケーションがTCPコネクションやUDPパケットをアクティブに受け入れている。多くの場合、ポートスキャンの第一の目的は、この種のポートを見つけることである。セキュリティを重視する人なら、openポートが攻撃者の通り道になることをご存知だろう。攻撃者やペンテスト実施者は、このopenポートの弱点を突こうとする一方で、管理者は正規ユーザの利用を妨げることなく、これらのポートをファイアウォールで閉じたり防御したりしようとする。また、Openポートを見ると、ネットワーク上で利用可能なサービスが何かわかるので、セキュリティスキャン以外でも興味を引かれるポートである。 +.RE +.PP +closed +.RS 4 +closed(閉じた)ポートは、アクセス可能(Nmapのプローブパケットを受信したり応答したりする)だが、そこで受信待機しているアプリケーションはない。この種のポートは、あるIPアドレスでホストが稼動中であることを確認する場合(ホスト発見やpingスキャン)や、OS検出の一環として役に立つ場合もある。closedポートは到達可能なので、後にその一部が開放された場合は、スキャンの対象になる可能性がある。管理者がこの種のポートもファイアウォールでブロックすることを検討する場合もあるだろう。そうなると、これらは次で述べるfiltered(フィルタあり)状態として見えるようになる。 +.RE +.PP +filtered +.RS 4 +Nmapは、このポートが開いているかどうかを判別できない。なぜなら、パケットフィルタのせいで、プローブがポートまで到達できないからである。このフィルタ処理は、ファイアウォール専用機器、ルータのルール、ホストベースのファイアウォールソフトなどで実行できる。これらのポートからは情報がほとんど得られないので、攻撃者の企てを阻むことになる。場合によっては、タイプ3コード13(destination unreachable(宛先到達不能):通信が管理上の理由で禁止されている)などのICMPエラーメッセージを返すこともあるが、応答しないでプローブを破棄するだけのフィルタのほうがはるかに多く使われるようになっている。この場合、Nmapは、プローブが破棄されたのはフィルタリングではなくてネットワークの混雑のせいと見なして、再試行を数回行わざるを得なくなるので、スキャンの進行速度が格段に落ちる。 +.RE +.PP +unfiltered +.RS 4 +unfiltered状態とは、ポートにはアクセス可能だが、そのポートが開いているか閉じているかをNmapでは判別できないことを意味する。ポートをこの状態に分類できるのは、ファイアウォールルールを解読するのに使われるACKスキャンだけである。unfilteredポートのスキャンをその他のスキャンタイプ、例えばWindowスキャン、SYNスキャン、FINスキャンなどで行うと、ポートが開いているかどうかを決めるのに役立つ場合もある。 +.RE +.PP +open|filtered +.RS 4 +Nmapがポートをこの状態に分類するのは、対象のポートが開いているかフィルタ処理されているかを判別できない場合である。openポートからの応答がないタイプのスキャンには、こうしたケースが発生する。また、応答がないことは、プローブやそれが引き出した応答をパケットフィルタが破棄したことを意味する場合もある。そのためNmapは、対象のポートがopenなのかfilteredなのかを確実に見分けることができない。UDP、IP プロトコル、FIN、Null、Xmasなどのスキャンは、ポートをこの状態に分類する。 +.RE +.PP +closed|filtered +.RS 4 +この状態は、ポートが閉じているかフィルタ処理されているかを、Nmapが判断できない場合に用いられる。IPID Idleスキャンにのみ使用される。 +.RE +.SH "ポートスキャンのテクニック" +.PP +自動車修理に関して全くの初心者である筆者が修理を行う場合、原始的な工具(ハンマー、ダクトテープ、レンチなど)を次々と取り出し、目の前の作業を行うのに適した工具を探してあれでもないこれでもないと何時間も悪戦苦闘する様が想像できる。結局うまく行かず、ポンコツ車を本物の修理工のところまで引っ張っていくと、彼はいつも巨大な工具箱をごそごそ漁って、最適な小道具を引っ張り出し、いとも簡単に作業を終わらせてしまう。ポートスキャンの技術も、これに似ている。専門家は数多くのスキャンテクニックを熟知しており、与えられた作業を行うのに最適のテクニック(あるいは組み合わせ)を選択する。一方、経験の乏しいユーザやスクリプトキディたちは、あらゆる問題をデフォルトのSYNスキャンだけで解決しようとする。Nmapは無料なので、ポートスキャン技術に精通するか否かの分かれ目は、知識だけなのだ。その点については、自動車業界よりましなのは間違いない。なにしろ自動車業界では、ストラット スプリングコンプレッサーが必要と判断するには卓越したスキルが必要であるばかりか、それを手に入れるために数千ドルを支払わなければならないからだ。 +.PP +ほとんどのスキャンタイプを利用できるのは、高い権限を持つユーザに限られる。こうしたスキャンでは生パケットが送受信されるが、これを行うのにUNIXシステムではrootアクセス権が必要だからである。Windowsでは管理者アカウントの使用が推奨されるが、このプラットフォームでは、WinPcapがすでにOSにロードされている場合には、Nmapが高い権限を持たないユーザにも役に立つ場合がある。Nmapがリリースされた1997年当時は、共用のシェルアカウントしか使えないユーザが多かったので、root権限が必要という条件は重大な制約になった。だが今や、世の中は変わった。コンピュータはますます安くなり、常時接続のインターネットアクセスを利用するユーザは激増し、デスクトップのUNIXシステム(Linux や MAC OS Xなど)も広く普及している。WindowsバージョンのNmapも利用可能になり、さらに多くのデスクトップでNmapを実行できるようになっている。これらの理由により、ユーザが制限のある共用シェルアカウントからNmapを実行する必要性が少なくなってきている。これは好都合なことである。高い権限を必要とするオプションを利用できれば、Nmapははるかに大きな効果と柔軟性を発揮するからだ。ほとんどのスキャンタイプを利用できるのは、高い権限を持つユーザに限られる。こうしたスキャンでは生パケットが送受信されるが、これを行うのにUNIXシステムではrootアクセス権が必要だからである。Windowsでは管理者アカウントの使用が推奨されるが、このプラットフォームでは、WinPcapがすでにOSにロードされている場合には、Nmapが高い権限を持たないユーザにも役に立つ場合がある。Nmapがリリースされた1997年当時は、共用のシェルアカウントしか使えないユーザが多かったので、root権限が必要という条件は重大な制約になった。だが今や、世の中は変わった。コンピュータはますます安くなり、常時接続のインターネットアクセスを利用するユーザは激増し、デスクトップのUNIXシステム(Linux や MAC OS Xなど)も広く普及している。WindowsバージョンのNmapも利用可能になり、さらに多くのデスクトップでNmapを実行できるようになっている。これらの理由により、ユーザが制限のある共用シェルアカウントからNmapを実行する必要性が少なくなってきている。これは好都合なことである。高い権限を必要とするオプションを利用できれば、Nmapははるかに大きな効果と柔軟性を発揮するからだ。 +.PP +Nmapは正確な結果を出そうと試みるが、その洞察はすべて、ターゲットマシン(もしくは前面のファイアウォール)から送り返されるパケットに基づいて得られたものであるという点に留意する必要がある。RFCに準拠していないホストがますます広く使われるようになっているが、これらのホストからは、Nmapのプローブに対して、当然想定される応答は返ってこない。FIN、Null、Xmasスキャンなどは特に、この問題の影響を受けやすい。これらは特定のスキャンタイプに固有の問題なので、個々のスキャンタイプの項で述べることにする。 +.PP +本節では、Nmapがサポートする10個あまりのスキャンテクニックについて述べる。この手法は一度に1つしか使えないが、UDPスキャン(\fB\-sU\fR)だけは例外で、TCPスキャンタイプのいずれか1つと組み合わせて用いることができる。ポートスキャンタイプのオプションは、覚えやすいように\fB\-s\fR\fB\fIC\fR\fRの形式になっている。ここで\fIC\fRは、スキャン名のなかの目立つ文字で、通常は頭文字になる。この規則の例外の1つは、廃止予定のFTPバウンススキャン(\fB\-b\fR)である。デフォルトでは、NmapはSYNスキャンを実行するが、ユーザが生パケットを送信するための然るべき権限(UNIX上ではrootアクセス権が必要)を持っていない場合や、IPv6のターゲットが指定された場合は、代わりにConnect()スキャンが用いられる。ここで一覧したスキャンのなかで、高い権限を持たないユーザが実行できるのは、connect()スキャンと ftpバウンススキャンだけである。 +.PP +\fB\-sS\fR (TCP SYN スキャン) +.RS 4 +SYNスキャンはデフォルトであり、正当な理由で最もよく使用されるスキャンオプションである。強制的なファイアウォールによる妨害のない、高速なネットワーク上では、数千ポート毎秒という高速なスキャンを実行できる。SYNスキャンは、TCPコネクションを確立しないため、比較的秘匿性が高い。また、NmapのFin/Null/Xmas、Maimon、Idleスキャンのように特定のプラットフォームの特質に左右されることはなく、規格準拠のTCPスタックなら何に対しても機能する。さらには、open、closed、およびfilteredというポートの状態を明確かつ確実に区別することができる。 +.sp +この技法は、完全なTCPコネクションを開くわけではないので、 ハーフオープン(half\-open)スキャンと呼ばれることも多い。あたかも実際にコネクションを開くつもりがあるかのように、SYNパケットを送信し、応答を待つ。SYN/ACKの応答は、ポートが待ち受け状態(open)であることを示し、またRST(reset)は、待ち受け状態にないことを示している。数回再送信しても何の応答もない場合、ポートはfilteredと見なされる。また、ICMP到達不能エラー(タイプ 3、コード 1、2、3、9、10、13)が送り返された場合も、ポートはfilteredと見なされる。 +.RE +.PP +\fB\-sT\fR (TCP connect() スキャン) +.RS 4 + TCP Connect()スキャンは、SYNスキャンを選択できない場合のデフォルトのTCPスキャンタイプである。ユーザが生パケットの権限を持たないか、IPv6ネットワークをスキャンする場合がこれにあてはまる。Nmapは、他のほとんどのスキャンタイプのように生パケットに書き込むのではなく、connect()システムコールを発行して、ターゲットのマシンやポートにとのコネクションを確立するよう下位OSに要求する。これは、Webブラウザ、P2Pクライアント、その他ほとんどのネットワーク対応アプリケーションがコネクションを確立するために使用するのと同じ高レベルのシステムコールである。これは、「BerkeleyソケットAPI」というプログラミングインターフェースの一部である。Nmapは、生パケットの応答を回線から読み込むのではなく、このAPIを使って、接続を試みるたびにステータス情報を入手する。 +.sp +SYNスキャンが利用できる場合は通常、そちらを使用した方がよい。Nmapは生パケットよりも、高レベルのシステムコールであるconnect()に対するほうが制御の自由度が低いので、処理効率も悪くなるからだ。connect()システムコールは、SYNスキャンが行うようにハーフオープン接続をリセットするのではなく、ターゲットのopenポートとのコネクションを確立する。この処理は、同じ情報を得るのにさらに多くの時間とパケットを必要とするだけでなく、ターゲットマシンのログに接続が記録される可能性も高くなる。まともなIDSならどちらも検知するはずだが、たいがいのマシンにはそのような警告システムは備わっていない。平均的なUNIXシステムで実行されているサービスの多くは、Nmapが接続を確立し、その後データ送信を行わずに接続を閉じた場合、syslogに簡単な記録や時には不可解なエラーメッセージを追加する。真にお粗末なサービスは、これが起きた場合に停止してしまうが、まずめったにないことだ。管理者は、特定のシステムからの接続試行がかなりの回数にわたってログに記録されているのを発見したら、このconnect()スキャンのターゲットになっていると見なすべきである。 +.RE +.PP +\fB\-sU\fR (UDP スキャン) +.RS 4 +インターネット上で最も広く利用されているサービスの大部分は、TCPプロトコルで実行されているが、\m[blue]\fBUDP\fR\m[]\&\s-2\u[3]\d\s+2サービスも広く導入されている。DNS、SNMP、DHCP(それぞれ登録ポートは 53、161/162、67/68)の3つは、最もよく利用されているUDPサービスである。UDPスキャンは通常、TCPよりも処理に時間がかかり難易度も高いので、セキュリティ監査人のなかにはこれらのポートを無視する人もいる。だがこれは誤りである。悪用可能なUDPサービスは極めてよくあるものであり、攻撃者がこうしたプロトコルを見過ごすわけはないからだ。好都合なことに、NmapはUDPポートの一覧表を作成するのに役立てることができる。 +.sp +UDPスキャンを作動させるには、\fB\-sU\fRオプションを指定する。SYN スキャン(\fB\-sS\fR)などのTCPスキャンタイプと組み合わせて用いて、同じ実行時間中に両方のプロトコルをチェックできる。 +.sp +UDPスキャンは、空の(データなし)UDPヘッダを各ターゲットポートに送ることで機能する。ICMPポート到達不能エラー(タイプ3、コード 1、2、9、10、13)が返された場合、ポートはclosed(閉じている)状態にある。その他のICMPポート到達不能エラー(タイプ3、コード3)が返された場合、ポートはfiltered(フィルタあり)と見なされる。まれにサービスがUDPパケットで応答することがあるが、その場合はポートがopenであることがわかる。数回の再試行の後も応答がない場合、ポートはopen|filteredに分類される。これは、ポートが開いているか、もしくはパケットフィルタが通信を阻んでいることを意味する。バージョンスキャン(\fB\-sV\fR)を用いて、実際に開いているポートとフィルタ処理されたポートを識別することもできる。 +.sp +UDPスキャンに関する大きな課題は、処理の高速化である。Openポートやfilteredポートから応答が送り返されることはほとんどないため、Nmapはそのままタイムアウトし、プローブや応答が行方不明になった場合に備えて再試行を行うことになる。閉じたポートは、さらに大きな問題になる場合が多い。閉じたポートからは通常、ICMPポート到達不能エラーが返されるが、閉じたTCPポートがSYNやConnectスキャンに応答してRSTパケットを送る場合とは異なり、多くのホストでは、ICMPポート到達不能メッセージがデフォルトでレート制限されている。Linux や Solarisは、この点に関して特に厳しい。例えば、Linux 2\&.4\&.20カーネルは、宛先到達不能メッセージを毎秒1個(net/ipv4/icmp\&.cで指定)に制限している。 +.sp +Nmapはレート制限を検出し、それに応じて処理速度を下げて、ターゲットマシンで落とされるような無用なパケットでネットワークを溢れさせないようにする。残念ながら、Linux方式で毎秒1パケットに制限されると、65,536個のポートをスキャンするのに18時間あまりかかる。UDPスキャンの速度を上げるためのアイデアには、次のようなものがある。同時並行でスキャンするホストの数を増やす、よく使われるポートだけを先に重点的にスキャンする、ファイアウォールの背後からスキャンする、\fB\-\-host\-timeout\fRオプションを使って低速なホストをスキップする。 +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP Null、FIN、およびXmasスキャン) +.RS 4 +これら3つのスキャンタイプ(次の節で述べる\fB\-\-scanflags\fRオプションを併用するとさらにいろいろなことができる)は、\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[4]\d\s+2の巧妙な抜け穴を突いて、openポートとclosedポートを識別するためのものである。TCP RFCの65ページには、「宛先ポートの状態が CLOSEDならば\&.\&.\&. RSTを含まない入力セグメントは、その応答としてRSTを送信する」とある。次のページでは、SYN、RST、ACKなどのビットセットを含まない、openポート宛てパケットについて述べてあり、「ここに至ることはなさそうであるが、もし至ったらセグメントを破棄してリターンする」とある。 +.sp +このRFC文書に準拠しているシステムをスキャンすると、SYN、RST、ACKなどのフラグビットを含まないパケットに対しては、ポートが閉じている場合はRSTが返され、ポートが開いている場合は何の応答も返されないことになる。これら3つのフラグビットが含まれない限り、他の3つ(FIN、PSH、URG)をどのように組み合わせてもよい。Nmapは以下の3つのスキャンタイプでこの弱点を突く。 +.PP +Null スキャン (\fB\-sN\fR) +.RS 4 +何のビットも設定しない(tcpヘッダのフラグは0) +.RE +.PP +FIN スキャン (\fB\-sF\fR) +.RS 4 +TCP FINビットだけを設定する +.RE +.PP +Xmas スキャン (\fB\-sX\fR) +.RS 4 +FIN、PSH、URGのフラグをすべて設定し、クリスマスツリーのようにパケットをライトアップする +.RE +.sp +これら3つのスキャンタイプは、プローブパケットに設定されるTCPフラグの違いを除けば、まったく同じ動作を示す。RSTが返された場合、ターゲットポートはclosedと見なされ、何の応答もない場合はopen|filteredになる。ポートがfilteredに分類されるのは、ICMP到達不能エラー(タイプ 3、コード 1、2、3、9、10、13)が返された場合である。 +.sp +これらのスキャンの最大の利点は、特定のステートレスなファイアウォールやパケットフィルタリング・ルータをすり抜けることができる点である。さらには、SYNスキャンよりもやや秘匿性が高いことも利点として挙げられる。しかし、あまり当てにしないように。最近のIDS製品はほとんど、これらを検知するように設定できるからだ。不利な点は、すべてのシステムがRFC 793に忠実に準拠しているわけではないことだ。ポートが開いているか否かに関係なく、プローブに対してRST応答を送信するシステムは数多くある。これにより、すべてのポートはclosedに分類されることになる。メジャーなOSでこれを行うのは、マイクロソフトWindows、多くのシスコ製デバイス、BSDI、IBM OS/400などが挙げられる。それでもこのスキャンは、ほとんどのUNIXベースのシステムに対しては有効である。またもう1つ不利な点は、openポートと特定のfilteredポートを区別できないので、応答がopen|filteredに分類されることである。 +.RE +.PP +\fB\-sA\fR (TCP ACK スキャン) +.RS 4 +このACKスキャンは、openポート(open|filteredも)を判別しないという点で、これまで述べてきたスキャンとは異なっている。ファイアウォールのルールセットを明らかにするために用いられ、ファイアウォールがステートフルか否か、どのポートがフィルタされているかなどを決定する。 +.sp +ACKスキャンのプローブパケットは、ACKフラグだけが設定されている(\fB\-\-scanflags\fRを用いている場合を除く)。フィルタなしのシステムをスキャンする場合は、openポートとclosedポートの両方からRSTパケットが返される。Nmapはこれらをunfilteredとして分類する。すなわち、ポートはACKパケットで到達可能だが、openかclosedかは判別できないことを意味する。応答を返さないポートや、特定のICMPエラーメッセージ(タイプ 3、コード 1、2、3、9、10、13)を返すポートはfilteredに分類される。 +.RE +.PP +\fB\-sW\fR (TCP ウィンドウスキャン) +.RS 4 +ウィンドウスキャンは、以下の点を除いては、ACKスキャンとまったく同じものである。すなわち、RSTが返されたら常にunfilteredと分類するのではなく、特定のシステムの実装に関する情報を用いて、openポートとclosedポートを識別する点である。これは、返されるRSTパケットのTCPウィンドウのフィールドを調査して判断する。一部のシステムでは、openポートで正の値のウィンドウサイズ(RSTパケットに対しても)が使われ、closedポートではゼロになる。これにより、ウィンドウスキャンは、RSTが返された場合は常にポートをunfilteredに分類するのではなく、RSTパケット内のTCPウィンドウサイズの値が正であるかゼロであるかによって、それぞれopenポートかclosedポートかに分類する。 +.sp +このスキャンは、インターネット上では少数派のシステムの実装に関する情報に基づいているので、必ずしも信用できるとは限らない。通常、この実装をサポートしていないシステムは、すべてのポートがclosedという応答を返す。もちろん、対象マシンに開ポートが本当に1つもない場合もあり得る。スキャンしたポートのほとんどがclosedでも、よく使われるポート番号(22、25、53など)がいくつかfilteredである場合、このシステムは影響を受ける可能性が最も高い。またまれに、システムがまさに正反対の挙動を示す場合もある。スキャンの結果、開ポートが1000個で、closed や filteredが3個あることがわかった場合、この3個のポートこそが、本当はopenポートである可能性はかなり高い。 +.RE +.PP +\fB\-sM\fR (TCP Maimon スキャン) +.RS 4 +Maimonスキャンは、発見者であるUriel Maimon氏の名前にちなんで名付けられた。この技法に関する同氏の論文は、「Phrack」誌の第49号(1996年11月発行)に掲載された。この技法を搭載したNmapは、これの2号後の第51号で公開された。Maimonスキャンは、プローブがFIN/ACKであるという点以外は、Null、FIN、Xmasスキャンとまったく同じものである。RFC 793 (TCP)によると、この種のプローブの応答としては、ポートがopenか closedかに関係なく、RSTパケットが生成されることになっている。だがMaimon氏は、BSD由来のシステムの多くで、ポートが開いている場合には、単にパケットが破棄されるだけになるという現象を見出した。 +.RE +.PP +\fB\-\-scanflags\fR (カスタム TCP スキャン) +.RS 4 +本物のNmap上級ユーザなら、あらかじめ用意されたスキャンタイプを使うだけで満足している必要はない。この\fB\-\-scanflags\fRオプションを使うと、任意のTCPフラグを指定することで、ユーザ独自のスキャンを設計することができる。さあ、創造力を全開にして、Nmapのmanページをただ流し読みして具体的なルールを追加しているようなメーカーのIDSの裏をかいてやろう。 +.sp +\fB\-\-scanflags\fRの引数は、例えば9(PSH と FIN)などの数字のフラグ値で指定することもできるが、記号名を使った方が簡単である。URG、ACK、PSH、RST、SYN、FINをごちゃまぜに組み合わせればよいだけだ。例えば\fB\-\-scanflags URGACKPSHRSTSYNFIN\fRで全部指定できるわけだが、もっともこれは、実際のスキャンには使えない。引数を指定する順序は不同である。 +.sp +またここでは、使いたいフラグだけでなく、TCPスキャンタイプ(\fB\-sA\fR +や +\fB\-sF\fRなど)も指定できる。この基本タイプによって、応答を解釈する方法をNmapに伝える。例えば、SYNスキャンであれば、応答なしはfilteredポートであることと見なし、FINスキャンであれば、同じ応答なしをopen|filteredと解釈するわけだ。Nmapは、この基本のスキャンタイプと同じ動作をするが、異なる点は、ユーザが指定するTCPフラグを代わりに使うことである。基本のスキャンタイプが指定されない場合は、SYNスキャンが使用される。 +.RE +.PP +\fB\-sI \fR\fB\fIzombie host\fR\fR\fB[:\fIprobeport\fR]\fR (Idle スキャン) +.RS 4 +この高度なスキャン手法を使用すると、対象ホストに対して完全に匿名でTCPポートスキャンを実行できる(スキャンする側の実IPアドレスからは、対象ホストにパケットが送信されない)。それだけではなく、ゾンビホスト上で連続的に生成されるIPフラグメントID(識別子)が予測可能であることを巧妙に利用した独自のサイドチャネル攻撃を実行して、対象ホスト上のopenポートに関する情報を収集することもできる。IDSシステムでは、このスキャンはこちらで指定したゾンビマシン(稼動中でかつ特定の条件を満たす必要がある)から行われているものとして表示される。この非常に興味深いスキャンタイプは複雑すぎて本稿ではとても全容を説明しきれないので、完全な詳細を掲載した非公式の論文を以下に投稿しておくことにする:\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[] +.sp +このスキャンタイプは、(その匿名性のために)格別に秘匿性が高いことに加え、マシン間のIPベースの信頼関係を明らかにすることができる。ポートリストには、\fI指定したゾンビホストから見た\fRopenポートが表示される。よって、(ルータ/パケットフィルタのルールから)信頼関係にあると思われる様々なゾンビマシンを使ってターゲットをスキャンしてみることもできる。 +.sp +IPIDの変化について、ゾンビホストの特定のポートを調査したい場合は、コロンの後にポート番号を付けたものをゾンビホストに追加して指定できる(ゾンビホスト:プローブポート)。ここでポートを指定しない場合、NmapはTCP Ping用にデフォルトで使用するポート(80)を用いる。 +.RE +.PP +\fB\-sO\fR (IP プロトコル スキャン) +.RS 4 +IPプロトコルスキャンを使うと、ターゲットマシン上でどのIPプロトコル(TCP、ICMP、IGMPなど)がサポートされているかを特定できる。繰り返し表示されるのは、TCP や UDPのポート番号ではなくて、IPプロトコル番号なので、厳密にはポートスキャンとは言えない。とはいえ、スキャンするプロトコル番号を選定するのに\fB\-p\fRオプションを使い、結果は標準的なポートテーブル形式でレポートし、実際のポートスキャン手法と同じスキャンエンジンを基礎に用いている。そのため、ポートスキャンに十分近いものとして、ここに含めた。 +.sp +プロトコルスキャンは機能として有用であるだけでなく、オープンソースソフトウェアとしての強力さを示すものでもある。この機能については、基本となるアイデアは極めて単純だが、筆者自身追加しようと思ったこともなかったし、周りからそうした要望が寄せられることもなかった。そして2000年の夏、Gerhard Rieger氏がアイデアを考案し、素晴らしい実装パッチを作成して、「nmap\-hackers」メーリングリストに投稿してくれた。筆者はこのパッチをNmapのツリーに組み込んで、その翌日に新バージョンとして公開した。市販のソフトウェアで、その機能向上のために設計段階から寄与するほど熱心なユーザを持つソフトはほとんどない +.sp +プロトコルスキャンは、UDPスキャンと同様の仕組みで機能する。すなわち、UDPパケットのポート番号フィールドをすべて繰り返し試行する代わりに、IPパケットヘッダを送信して、8bitのIPプロトコル番号フィールドをすべて繰り返し試行する。このヘッダは通常は空で、何のデータも、求められるプロトコルに適したヘッダすら含まれていない。これには例外が3つあり、TCP、UDP、ICMPである。これらのプロトコルについては、適切なプロトコルヘッダが含まれる。そうしないとヘッダを送信しないシステムがあるからで、Nmapはすでにこれらを作成する機能を備えている。プロトコルスキャンは、ICMPポート到達不能メッセージではなくて、ICMP\fIprotocol\fR到達不能メッセージが返されるのを待つ。Nmapはターゲットホストから何らかの応答を何らかのプロトコルで受信した場合、そのプロトコルをopenとして分類する。ICMPプロトコル到達不能エラー(タイプ 3、 コード 2)が返されたら、プロトコルはclosedと分類される。その他のICMP到達不能エラー(タイプ 3、 コード 1、3、9、10、13)が返されたら、プロトコルはfilteredとマークされる(またこれにより、ICMPがopenであることも同時に明らかになる)。数回再送しても何の応答もない場合、プロトコルはopen|filteredとして分類される。 +.RE +.PP +\fB\-b \fR\fB\fIftp relay host\fR\fR (FTP バウンス スキャン) +.RS 4 +FTPプロトコル(\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[5]\d\s+2)の興味深い特徴の1つは、いわゆるプロキシFTP接続に対応していることである。これにより、ユーザは一台のFTPサーバに接続し、そのファイルを第三者サーバに送るように要求できる。これは、様々なレベルの悪用にうってつけの機能なので、たいていのサーバでは、サポートするのを止めている。例えば、この機能を悪用して、FTPサーバに他のホストをポートスキャンさせることも可能である。単に、ターゲットホストの興味あるポートに順にファイルを送信するよう、そのFTPサーバに要求するだけでよい。エラーメッセージには、ポートが開いているか否かが記述される。これは、ファイアウォールをすり抜けるための有効な手段になる。組織のFTPサーバは、どんなインターネットホストよりも、他の内部ホストにアクセスしやすい場所に設置されている場合が多いからだ。Nmapは、\fB\-b\fRオプションでftpバウンススキャンを実行できる。引数は\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fRのような形式になる。\fIServer\fRは、この脆弱性の影響を受けるFTPサーバの名前かIPアドレスを指定する。通常のURLの場合と同様に、匿名ログインの認証情報(user: +anonymous +password:\-wwwuser@)が使われる場合は、\fIusername\fR:\fIpassword\fRの部分は省略できる。\fIserver\fRのデフォルトのFTPポート(21)を用いる場合は、ポート番号(と前のコロン)も省略可能である。 +.sp +この脆弱性は、Nmapがリリースされた1997年に大きく広まったが、今ではほとんど修正されている。それでも、脆弱なサーバは、いまだにあちらこちらにあるので、その他の方法がすべて失敗した場合は、試してみるだけの価値はある。ファイアウォールの回避が目的なら、ターゲットネットワークをスキャンして開いている21番ポート(もしくはバージョン検出ですべてのポートをスキャンする場合はftpサービスなら何でもよい)を探し出し、それぞれのポートを用いてバウンススキャンを試してみることだ。Nmapを使うと、対象のホストが脆弱か否かを見分けることができる。単に自分の行動の形跡を隠そうとしているだけであれば、ターゲットネットワーク上のホストだけに対象を限定する必要はない(し、むしろそうするべきではない)。脆弱なFTPサーバを求めてインターネットアドレスを無作為にスキャンする場合は、始める前に、システム管理者はこのような方法で自分のサーバを不正に使用されることを迷惑がる場合もあることを頭に入れておく必要がある。 +.RE +.SH "ポートの指定とスキャンの順序" +.PP +Nmapには、これまでに述べたすべてのスキャン手法に加えて、どのポートをスキャンするかや、スキャンの順序をランダムにするか順序通りにするかなどを指定するためのオプションが用意されている。デフォルトでは、Nmapは、1024番(を含む)までの全ポートと、1025番以降のポートはスキャン対象のプロトコルに応じてnmap\-servicesファイルに記載されたポートをスキャンする。 +.PP +\fB\-p \fR\fB\fIport ranges\fR\fR (指定されたポートのみスキャン) +.RS 4 +このオプションで、スキャンしたいポートを指定できる。この指定は、デフォルトより優先される。ポート番号は個別に指定しても、ハイフン区切りの範囲(例:1\-1023)で指定してもよい。範囲の先頭や終端の値は省略できる場合があり、この場合は範囲の先頭に1、終端に65535がそれぞれ使われる。したがって、\fB\-p\-\fRと指定すると、1番から65535番までのポートをスキャンできる。ゼロ番ポートのスキャンは、明示的に指定することで実行できる。IPプロトコルスキャン(\fB\-sO\fR)を行うには、このオプションでスキャンしたいプロトコル番号を指定する(0\-255)。 +.sp +TCPポートとUDPポート両方のスキャンを実行する場合は、ポート番号の前にT:やU:という限定子を付けることで、特定のプロトコルを指定できる。この限定子は、次に別の限定子が指定されるまで有効になる。例えば、\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +という引数を指定すると、UDPポートの53番、111番、137番と、列挙したTCPポートのスキャンが実行される。UDPとTCPポート両方のスキャンを実行するためには、\fB\-sU\fRおよび最低1つのTCPスキャンタイプ(\fB\-sS\fR、\fB\-sF\fR、\fB\-sT\fRなど)を指定する必要があるので注意すること。プロトコル限定子が特に指定されていない場合、指定したこれらのポート番号はすべてのプロトコルリストに追加される。 +.RE +.PP +\fB\-F\fR (高速 (限定したポートだけ) スキャン) +.RS 4 +Nmapに同梱されているnmap\-servicesファイル(\fB\-sO\fRでは「protocols」ファイル)に列挙されているポートだけをスキャンするように指定する。こうすることで、ホスト上の全65535ポートをスキャンするよりもはるかに高速になる。このリストには非常に多く(1200以上)のTCPポートが含まれているので、デフォルトのTCPスキャン(約1650ポート)との速度差はそれほど大きくはない。\fB\-\-datadir\fRオプションを使って、自分で独自に作成した小さなnmap\-servicesファイルを指定すると、この速度差をかなり大きくすることができる。 +.RE +.PP +\fB\-r\fR (ポートの順番を無作為にしない) +.RS 4 +デフォルトでは、Nmapはスキャンするポートの順番を無作為に選ぶようになっている(効率化のために特定のよく使われるポートを最初のほうに移動した場合を除く)。このような無作為化は通常であれば望ましいが、代わりに番号順にポートスキャンを行いたい場合はこの\fB\-r\fRオプションを指定する。 +.RE +.SH "サービスとバージョンの検出" +.PP +リモートマシンをターゲットにしてNmapを実行した結果、25/tcp、80/tcp、53/udpの各ポートが開いていることが判明したとしよう。Nmapは、約2200個のよく知られたサービスから成るnmap\-servicesのデータベースを用いて、これらのポートがそれぞれメールサーバ(SMTP)、Webサーバ(HTTP)、ネームサーバ(DNS)に相当するとレポートする。通常、この検索結果は正確である。すなわち、TCPポート25番で待ち受けするデーモンの大部分は、実際にメールサーバである。だが、これをすべて鵜呑みにしてはいけない。通常とは異なるポートでサービスが実行されるケースも実際にあり得る。 +.PP +たとえNmapが正しくて、上で仮定したサーバがそれぞれSMTP、HTTP、DNSサーバを実行している場合でも、これは多くの情報にはならない。自社やクライアントの脆弱性調査(簡単なインベントリ調査の場合でも)を実施する際には、どのメールサーバやDNSサーバが動作中であるかを知りたいはずである。正確なバージョン番号を入手することは、サーバがどのような攻撃に対して脆弱であるかを判断するのに大いに役に立つ。バージョン検出はこうした情報を入手するのに役立つ手法である。 +.PP +別のスキャン手法を用いてTCPポートや UDPポートを発見したら、そこで何が実行されているかについての詳細を明らかにするために、これらのポートをバージョン検出によってさらに綿密に調査する。nmap\-service\-probesデータベースには、様々なサービスの問い合わせを行うためのプローブや、応答を識別して解析するための照合表現が含まれている。Nmapは以下の情報の特定を試みる:サービスプロトコル(例:ftp、ssh、telnet、http)、アプリケーション名(例:ISC Bind、Apache httpd、Solaris telnetd)、バージョン番号、ホスト名、デバイスタイプ(例:プリンタ、ルータ)、OSファミリ(例:Windows、 Linux) さらには、Xサーバが接続に対してopen状態にあるかどうかや、SSHプロトコルのバージョン、KaZaAのユーザ名などのその他様々な詳細情報の特定が試みられる場合もある。もちろんたいていのサービスは、これらの情報をすべて提供できるわけではない。NmapにOpenSSLのサポート機能が組み困れている場合は、SSLサーバに接続して、この暗号化層の背後で待ち受けしているサービスを推定する。RPC(Remote Procedure Call)サービスが発見された場合は、RPCプログラムとバージョン番号を特定するためにNmapのRPCグラインダー(\fB\-sR\fR)が自動的に使用される。UDPポートスキャンを実行しても、「open」か「filtered」かを判定できなかった一部のポートは、open|filtered状態として保留される。バージョン検出は、これらのポートから応答を導き出して、可能な場合はその状態を「open」に変更しようと試みる。open|filteredのTCPポートも同様に取り扱われる。ここで注目すべき点は、バージョン検出がNmapの\fB\-A\fRオプションで有効になる機能の1つに含まれることである。バージョン検出のメカニズム、使用法、カスタマイズ方法に関する論文は、以下で入手できる:\m[blue]\fB\%https://nmap.org/vscan/\fR\m[] +.PP +Nmapがサービスからの応答を受信しても、データベースに一致するものが見つからなかった場合は、特別なフィンガープリントとURLが出力される。このURLは、ポートで何が動作しているかが確実に分かっている場合に、フィンガープリントを投稿していただくためのものだ。あなたの発見がいろいろな人のためになるよう、2、3分もかからないのでぜひ投稿していただきたい。こうした投稿のおかげで、Nmapは、smtp, ftp, httpなどの350以上のプロトコルに対する約3000件のパターン照合例を備えるまでになっている。 +.PP +バージョン検出は、以下のオプションで実行および制御が可能である: +.PP +\fB\-sV\fR (バージョン検出) +.RS 4 +上で述べたようなバージョン検出を実行する。またもう1つの方法として、\fB\-A\fRオプションを使うと、OS検出とバージョン検出の両方を実行できる。 +.RE +.PP +\fB\-\-allports\fR (バージョン検出の対象からすべてのポートを除外しない) +.RS 4 +デフォルトでは、Nmapのバージョン検出は、TCPポート9100番をスキップするようになっている。一部のプリンタはこのポートに送られたものは何でも出力するので、HTTP GETリクエストやバイナリ形式のSSLセッションリクエストなどのページが何十枚も印刷されることになるからだ。この動作を変更するには、nmap\-service\-probesの当該の「除外」(Exclude)ディレクティブを変更あるいは削除するか、もしくは\fB\-\-allports\fRを指定すると、Excludeディレクティブに関係なくすべてのポートがスキャンされるようにできる。 +.RE +.PP +\fB\-\-version\-intensity \fR\fB\fIintensity\fR\fR (バージョンスキャンの強度を設定) +.RS 4 +Nmapは、バージョンスキャン(\fB\-sV\fR)を実行する際に、1から9までの「希少」(rarity)値が割り振られた一連のプローブを送信する。この希少値が小さいプローブほど、よく用いられる各種サービスに対して有効であり、この希少値が大きいプローブほど、用途が限られることになる。強度レベルは、どのプローブを適用するべきかを指定するオプションである。この数字が大きいほど、サービスが正しく特定される確率は高くなる。だが、強度が高いスキャンは、それだけ時間がかかる。強度は0から9の間で指定する必要があり、デフォルトは7である。nmap\-service\-probesのportsディレクティブによって、ターゲットポートにプローブを登録すると、このプローブは強度レベルに関係なく試行される。これにより、DNSプローブは常に開ポート53番に対して試行され、SSLプローブはポート443番に対して実行されるようにすることなどができる。 +.RE +.PP +\fB\-\-version\-light\fR (ライトモードを有効にする) +.RS 4 +これは、\fB\-\-version\-intensity 2\fRの場合に便利なエイリアスである。このライトモードを使うと、スキャンを通常よりずっと高速に行うことができるが、サービスを特定できる確率はやや低くなる。 +.RE +.PP +\fB\-\-version\-all\fR (プローブを1つずつ試行する) +.RS 4 +\fB\-\-version\-intensity 9\fRの場合に有用なエイリアスで、各ポートに対してプローブが1つずつ試行されるようにする。 +.RE +.PP +\fB\-\-version\-trace\fR (バージョンスキャンの動作状況を追跡する) +.RS 4 +これにより、Nmapは、どのようなバージョンスキャンが実行されているかに関する広範なデバッグ情報を出力する。この情報は、\fB\-\-packet\-trace\fRによって得られるものの一部である。 +.RE +.PP +\fB\-sR\fR (RPC スキャン) +.RS 4 +この手法は、Nmapの他の様々なポートスキャン手法と連携して機能する。「open」状態であることが確認されたすべてのTCP/UDPポートに対して、SunRPCプログラムのNullコマンドを大量に送信し、ポートがRPCポートであるかどうかを判定し、そうである場合は、そこで実行されているプログラム名とバージョン番号の特定を試みる。従って、ターゲットのポートマッパーがファイアウォールの背後にある(あるいはTCPラッパーで保護されている)場合でも、\fBrpcinfo \-p\fRの結果と同じ情報を効率的に取得することができる。現時点では、囮(おとり)は、RPCスキャンとは連携して機能しない。要求があれば、バージョンスキャン(\fB\-sV\fR)の一部として自動的に有効になる。すでにバージョン検出に含まれており、そちらのほうがずっと包括的なので、\fB\-sR\fRが必要になることはめったにない。 +.RE +.SH "OS 検出" +.PP +Nmapの最も有名な機能の1つは、TCP/IPスタック・フィンガープリンティングを用いた、リモートからのOS検出機能である。Nmapは、一連のTCPやUDPのパケットをリモートホストに送り、その応答をほぼ全面的に調査する。TCP ISN(イニシャルシーケンス番号)サンプリング、TCPオプションのサポートや順序の調査、IPIDサンプリング、TCP初期ウィンドウサイズ調査などの数多くのテストを実施した後、Nmapはこれらの結果を、既知のOSフィンガープリントが1500件以上データベース化されたnmap\-os\-fingerprintsと照合し、一致するものがあった場合はそのOSに関する詳細情報を出力する。各フィンガープリントには、フリーテキスト形式のOSの解説、ベンダ名を与える分類(例:Sun)、下位のOS(例:Solaris)、OSの世代(例:10)、デバイスの種類(汎用、ルータ、スイッチ、ゲーム機など)が含まれる。 +.PP +条件(例えば少なくともopenポート1つとclosedポート1つの存在がわかっているなど)は整っているが、NmapがターゲットマシンのOSを推測できない場合は、フィンガープリント投稿用URLがNmapから提供される。対象のマシンで動作しているOSが何か(確実に)わかっている場合は、当該のフィンガープリントをこのURLを使って投稿できる。こうした投稿が行われることで、Nmapが認識できるOSのデータベースに新たなデータが蓄積され、あらゆるユーザがさらに精度の高い調査を行えるようになる。 +.PP +OS検出を行うことで、そのプロセスのなかで収集される情報を利用した別のテストをいくつか行うこともできる。例えば、アップタイムの測定がその1つで、TCPのタイムスタンプオプション(RFC 1323)を用いて、マシンが最後に再起動されたのはいつかを推定する。これは、その情報を返したマシンに関してのみ報告される。もう一つのテストは、TCPシーケンス番号の予測可能性の分類である。これにより、リモートホストに対して偽造したTCP接続を確立するのがどの程度困難であるかがおおよそ判定できる。これは、発信元IPベースの信頼関係(rlogin、ファイアウォール、フィルタなど)の弱点を悪用したり、攻撃の出所を隠蔽したりする場合に役立つ。この種のスプーフィングはもはやめったに行われないが、これに対して脆弱なマシンがいまだに数多くある。難易度を表す実際の数値は、統計的なサンプリングに基づいているために上下する可能性がある。通常は「worthy challenge(価値ある挑戦)」や「trivial joke(つまらないジョーク)」などの言葉の表現による分類を利用する方がよい。これは、冗長(\fB\-v\fR)モードの標準出力にのみレポートされる。\fB\-O\fRオプションとともに冗長モードが有効になっている場合、IPIDシーケンス番号の生成に関する情報もレポートされる。ほとんどのマシンは、「インクリメンタル(incremental)」に分類される。これは、送信するパケットごとに、IPヘッダのIDフィールドの値を1ずつ増加させることを意味する。この仕組みのせいで、これらのマシンは高度な情報収集攻撃やスプーフィング攻撃に対して脆弱になっている。 +.PP +OS検出のメカニズム、使用法、カスタマイズ方法について述べた論文は、以下で入手できる(十数ヶ国語の翻訳版あり): +\m[blue]\fB\%https://nmap.org/osdetect/\fR\m[] +.PP +OS検出は、以下のオプションで実行および制御できる: +.PP +\fB\-O\fR (OS検出を実行) +.RS 4 +上で述べたOS検出を実行する。また別な方法として\fB\-A\fRオプションを使うと、OS検出とバージョン検出の両方を実行できる。 +.RE +.PP +\fB\-\-osscan\-limit\fR (OS検出を有望なターゲットに絞る) +.RS 4 +少なくとも1つのopenおよびclosedのTCPポートが見つかれば、OS検出の効率はかなり上がる。このオプションを設定すると、Nmapは上の基準に満たないホストにはOS検出を試行しないようになる。これにより、かなりの時間が節約できる。多くのホストに対して\fB\-Pn\fRスキャンを行う場合は特にそうである。\fB\-O\fR +あるいは +\fB\-A\fRで、OS検出の実行をいつ要求するかだけが重要になる。 +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (OS検出の結果を推測) +.RS 4 +Nmapが完全に一致するOSを検出できない場合、それに近似するものを候補として挙げる場合がある。Nmapがこれをデフォルトで行うためには、近似はかなり近いものでなければならない。上のどちらか(同等)のオプションを指定すると、Nmapはより大まかな近似をアグレッシブに行うようになる。 +.RE +.SH "タイミングとパフォーマンス" +.PP +Nmapの開発を行ううえで、常に優先事項の1つとして念頭に置いているのが「パフォーマンス」である。筆者のローカルネットワーク上のホストにデフォルトスキャン(\fBnmap \fR\fB\fIhostname\fR\fR)を実行するのにかかる時間は、5分の1秒である。瞬き1回程度の時間だが、何万、いや何十万というホストをスキャンする場合は、この時間も積算されるわけだ。さらには、UDPスキャンやバージョン検出などの特定のスキャンオプションによって、スキャン時間が大幅に増加する可能性がある。特定のファイアウォール設定、特に応答レート制限の場合も同様である。Nmapには、スキャン速度を上げるための並行処理や高度なアルゴリズムが使用されているが、Nmapをどのように実行するかを最終的に決めるのはユーザである。熟練したユーザは、自分たちの時間的制約を満たしつつ、関心のある情報だけを取得するように、Nmapコマンドに入念な細工を施すものだ。 +.PP +スキャン時間を改善するテクニックとしては、重要でないテストの省略や、Nmapを最新版にアップグレードする(パフォーマンスの強化は頻繁に行われている)などが挙げられる。タイミング(時間調節)パラメタを最適化すると、かなりの違いが生じる場合もある。この種のオプションを、以下に列挙する。 +.PP +\fB\-\-min\-hostgroup \fR\fB\fIsize\fR\fR; \fB\-\-max\-hostgroup \fR\fB\fIsize\fR\fR (並列スキャンのグループサイズを調節する) +.RS 4 +Nmapには、複数のホストを並行してポートスキャンやバージョンスキャンする能力がある。これは、ターゲットのIP空間をいくつかのグループに分割し、一度に1グループずつスキャンすることで行われる。一般に、グループの規模を大きくするほど、効率がよくなる。デメリットは、グループ全体のスキャンが終了してからでないと、ホストの結果が得られないことである。そのため、グループサイズが50から始めた場合、ユーザがレポートを受け取るのは、(冗長モードで最新情報が提供される場合を除く)最初の50台のホストが完了してからになる。 +.sp +デフォルトでは、Nmapはこうした競合問題に対して、妥協的なアプローチを採る。すなわち、最初の結果がすぐに得られるように、5程度の小さなグループサイズから始めて、それから1024くらいにまで増やすようにする。初めに設定する数値は、指定するオプションによって決まる。効率上の理由で、Nmapは、UDPスキャンやポート数の少ないTCPスキャンに対しては比較的大きなグループサイズを用いる。 +.sp +グループサイズの最大値が\fB\-\-max\-hostgroup\fRで指定されている場合、Nmapがこのサイズを超過することは決してない。グループサイズの最小値を\fB\-\-min\-hostgroup\fRで指定すると、Nmapはグループサイズがこの値よりも小さくならないようにしようとする。Nmapは、オプションで指定された最小値の条件を満たすのに十分な数のターゲットホストが、所定のインターフェース上に残っていない場合は、指定より小さいグループサイズを使わざるを得なくなる場合もある。グループサイズを特定の範囲内に収めるために、最大値と最小値の両方を設定する場合もあるが、これが必要になるケースはめったにない。 +.sp +このオプションの主な使用法は、スキャンをより高速に完了できるように、グループサイズの最小値に大きな値を指定することである。クラスC規模のネットワークをスキャンするには通常、256を指定する。数多くのポートに対してスキャンを実行する場合は、これ以上の数値を設定しても、あまり効果は期待できない。ポート数がごくわずかのスキャンを行う場合は、ホストのグループサイズを2048以上に設定すると有効だろう。 +.RE +.PP +\fB\-\-min\-parallelism \fR\fB\fInumprobes\fR\fR; \fB\-\-max\-parallelism \fR\fB\fInumprobes\fR\fR (プローブの並列処理を調節する) +.RS 4 +ホストグループに向けて送信されるプローブの総数を決めるオプションで、ポートスキャンやホスト発見に用いられる。デフォルトでは、Nmapは、ネットワークパフォーマンスに基づいて、常に変化する理想的な並列処理可能数を算出している。パケットが続けて破棄される場合は、Nmapは処理速度を落とし、送信するプローブの数を減らす。理想的なプローブ数は、ネットワークが示すパフォーマンスの高さに応じて、緩やかに増加する。これらのオプションは、この変数に対して上限と下限を設定する。デフォルトでは、理想的な並列処理可能数は、ネットワークの信頼性が低い場合は1まで下がり、最高の状態の場合は数百まで上がる場合もある。 +.sp +最も一般的な使用法は、\fB\-\-min\-parallelism\fRに1より大きな数値を設定して、パフォーマンスの低いホストやネットワークに対するスキャンの処理速度を上げることである。ただし、軽く使うにはリスクを伴うオプションであり、あまりに大きな値を設定すると、精度に悪影響が及ぶ場合がある。またこれにより、ネットワーク状態に基づいて並列処理可能数を動的に制御するNmapの能力を低下させることにもなる。10程度にしておくのが妥当かと思われるが、この値の調節は最後の手段としてしか行わない。 +.sp +Nmapがホストに対して一度に2つ以上のプローブを送れないようにするために、\fB\-\-max\-parallelism\fRオプションに「1」が設定される場合がある。これは、(下で述べる)\fB\-\-scan\-delay\fRオプションと組み合わせて用いると便利である。もっとも、後者のオプションは通常は単独でも十分に役立つものである。 +.RE +.PP +\fB\-\-min\-rtt\-timeout \fR\fB\fItime\fR\fR, \fB\-\-max\-rtt\-timeout \fR\fB\fItime\fR\fR, \fB\-\-initial\-rtt\-timeout \fR\fB\fItime\fR\fR (プローブのタイムアウトを調節する) +.RS 4 +Nmapは、プローブを中止もしくは再送信するまで、プローブの応答を待機する時間をどのくらいにするかを決める実行タイムアウト値を保持している。 この値は、それまでに送信したプローブの応答時間に基づいて算出される。 ネットワークの待ち時間が、かなり長くて変化しやすい場合、タイムアウト値は数秒にまで達する可能性もある。 また、反応が鈍いホストをスキャンする際には、控え目な(高い)レベルから始めて、しばらくの間そのままの値にしておく場合もある。 +.sp +\fB\-\-max\-rtt\-timeout\fR +と +\fB\-\-initial\-rtt\-timeout\fRにデフォルトより小さな値を指定すると、スキャン時間を大幅に短縮できる。 厳重なフィルタ処理が施されたネットワークに対してpingなし(\fB\-Pn\fR)スキャンを行う場合は特にそうなる。 とはいえ、あまりアグレッシブに小さくしすぎないように。 小さすぎる値を指定してしまったために、応答が送信されている間に数多くのプローブがタイムアウトして再送信されてしまい、結果的にスキャンの実行に通常より余計に時間がかかる可能性があるからだ。 +.sp +すべてのホストがローカルネットワーク上にある場合、100ミリ秒(ms)(\fB\-\-max\-rtt\-timeout 100ms\fR)にするのが、アグレッシブに小さく指定するとしても妥当な値である。 ルーティングが関係してくる場合は、ICMP pingユーティリティか、ファイアウォールを通過できる可能性が高いhping2などのカスタムパケット作成ツールを用いて、最初にネットワーク上のホストにpingを実行する必要がある。 10個程度のパケットを送信してみて、最大往復時間(RTT)を調べること。 +\fB\-\-initial\-rtt\-timeout\fRの値は、この値を2倍にするとよい。 また、\fB\-\-max\-rtt\-timeout\fRの値は、これを3倍か4倍にしたものにするとよいだろう。 筆者は通常、pingで調査した時間の大小に関係なく、最大RTTを100ms未満に設定することはないし、1000msを超える値にすることもない。 +.sp +\fB\-\-min\-rtt\-timeout\fRは、ほとんど使用されないオプションであるが、ネットワークの信頼性があまりに低いために、Nmapのデフォルト値でも小さく設定しすぎになる場合に役立つと思われる。 Nmapは単にタイムアウト時間を指定された最小値まで小さくするだけなので、ネットワークが信頼できると思われる場合は、この要求は異常であり、nmap\-devメーリングリストにバグとして報告すべきである。 +.RE +.PP +\fB\-\-host\-timeout \fR\fB\fItime\fR\fR (遅いターゲットホストを見切る) +.RS 4 +ホストのなかには、とにかくスキャンに\fI長い\fR時間がかかるものがある。 理由としては、性能・信頼性の低いネットワークハードウェアやソフトウェア、パケットレート制限、厳重なファイアウォールなどが考えられる。 スキャン対象ホスト全体の数パーセントを占める、最も反応が遅いホストによって、スキャン時間の大半を使われてしまうこともある。このような無駄はカットして、遅いホストは最初から省くほうがよい場合がある。 これは、待機しても構わない時間の最大値を\fB\-\-host\-timeout\fRに指定することで実現できる。 たとえば、30m +を指定して、Nmapが1つのホストで30分以上無駄にしないようにできる。 この30分の待ち時間に、Nmapは他のホストも同時にスキャンしているので、完全な時間の損失にはならないことに注意。 タイムアウトするホストはスキップされ、ポートテーブル、OS検出、バージョン検出などの結果は出力されない。 +.sp +0 +は特別な値で +「タイムアウトをしない」 +を指定できる。 ホストのタイムアウトを15分にデフォルトで指定する +\fBT5\fR +タイミングテンプレートの挙動を上書きする際に有用である。 +.RE +.PP +\fB\-\-script\-timeout \fR\fB\fItime\fR\fR +.RS 4 +スクリプトの中にはコンマ数秒で完了するものもあるが、スクリプトの性質、渡された引数、ネットワークやアプリケーションの状態などによって、数時間以上かかるものもある。 +\fB\-\-script\-timeout\fR +オプションは、スクリプトの実行時間に上限を設定する。 設定された時間を超えたスクリプトは終了し、何も表示されません。 デバッグ (\fB\-d\fR) オプションを指定すると、各タイムアウトの詳細が表示される。 ホストおよびサービススクリプトの場合、スクリプトは1つの対象ホストまたはポートのみをスキャンし、タイムアウト時間は次のスクリプトのためにリセットされる。 +0 は特別な値で 「タイムアウトをしない」 を意味する。 +タイムアウトを10分とデフォルトで指定している\fBT5\fR タイミングテンプレートを上書きするために使用できる。 + + .RE +.PP +\fB\-\-scan\-delay \fR\fB\fItime\fR\fR; \fB\-\-max\-scan\-delay \fR\fB\fItime\fR\fR (プローブ間の遅滞時間を調節する) +.RS 4 +指定したホスト宛てに送られる各プローブの送信間隔において、指定した時間だけNmapを待機状態にする。 これは、が行われている場合に特に役に立つ。 Solarisマシンは(制限が特に厳しく)、通常はUDPスキャンのプローブパケットに対して、ICMPメッセージの応答を毎秒1回しか返さない。 Nmapがそれ以上のパケットを送ってもすべて無駄になる。\fB\-\-scan\-delay\fR +は次のように設定する。 +1sとすると、Nmapはその遅い速度に保たれる。Nmapは毎秒1回という遅いレートを保つことになる。 Nmapは、レート制限を検出し、それに応じてスキャン遅延を調整しようとするが、どの程度のレートが最適であるかがすでにわかっている場合は明示的に指定してもよい。 +.sp +Nmapがレート制限に対処するためにスキャン遅延を増加させた場合、スキャンの速度は大幅に低下する。 +\fB\-\-max\-scan\-delay\fRは、Nmapが許容する最大の遅延時間を指定できる。 +\fB\-\-max\-scan\-delay\fR +に少ない時間を指定すれば、スキャンを高速化できるが、リスクがある。 時間を少なく設定しすぎると、対象が厳格なレート制限を実装している場合に、無駄なパケット再送信や、ポートの取りこぼしが発生する可能性がある。 +.sp +\fB\-\-scan\-delay\fR +には、使用法がもうひとつある。 それは、閾値ベースの侵入検知・防御システム(IDS/IPS)の回避である。 + +.RE +.PP +\fB\-\-min\-rate \fR\fB\fInumber\fR\fR; \fB\-\-max\-rate \fR\fB\fInumber\fR\fR (スキャンレートを細かく制御) +.RS 4 +Nmapのスキャン速度の自動制御は、適切なスキャン速度を見つけるのに効果的である。 しかし、適切なスキャン速度が事前にわかっている場合や、ある時間までにスキャンが終了することを保証しなければならない場合もある。 あるいは、Nmapがあまりに速くスキャンしないようにしなければならないかもしれない。 +\fB\-\-min\-rate\fR +と +\fB\-\-max\-rate\fR +オプションは、このような状況に対応するために用意されている。 +.sp +\fB\-\-min\-rate\fR +オプションが与えられると、Nmap は与えられたレートと同じかそれよりも速くパケットを送信するよう最善を尽くす。 引数は、1 秒あたりの送信パケット数を表す正の実数である。 例えば、\fB\-\-min\-rate 300\fR +を指定すると、Nmap は送信レートを毎秒300パケット以上に維持しようとする。 最小レートを指定しても、条件が許す限り、Nmapがより速くなることはない。 +.sp +同様に、\fB\-\-max\-rate\fRは送信レートを最大値を指定できる。 例えば、高速なネットワークを対象に毎秒100パケットの送信に制限するには、\fB\-\-max\-rate 100\fRを使用する。 10秒に1パケットという遅いスキャンを行うには、\fB\-\-max\-rate 0\&.1\fRを使用する。 +\fB\-\-min\-rate\fR +と +\fB\-\-max\-rate\fR +を一緒に使うと、レートをある範囲内に保つことができる。 +.sp +これらの2つのオプションは全体的なもので、個々のホストにではなく、スキャン全体に影響する。 ポートスキャンとホスト発見にのみ影響する。 OS検出のような他の機能では、独自のタイミングが実装されている。 +.sp +実際のスキャン速度が指定した最小値を下回る可能性があるのは2つの条件である。 1つは、最小値がNmapが送信できる最速レートよりも速い場合であり、これはハードウェアに依存する。 この場合、Nmapは単に可能な限り高速にパケットを送信するが、このような高速なレートでは精度が低下する可能性が高いので注意が必要である。 2つ目のケースは、Nmapが何も送信しない場合である。たとえば、スキャンの最後にプローブが送信され、Nmapがタイムアウトや応答を待っているときである。 スキャンの終了時やホストグループ間でスキャンレートが低下するのは正常な現象である。 予測できない遅延を補うために、送信レートが一時的に最大値を超えることがあるが、平均してレートは最大値以下にとどまるだろう。 +.sp +最小レートの指定は慎重に行う必要がある。 ネットワークが対応できる速度よりも速くスキャンすると、精度が低下する可能性がある。 場合によっては、速いレートを使うと、遅いレートを使ったときよりもスキャンが\fI長く\fRなることがある。 これはNmapの +適応伝送 +アルゴリズムが、過剰なスキャン速度によるネットワークの輻輳を検知し、精度を上げるために再送信の回数を増やすからである。 そのため、パケットが高いレートで送信されても、全体としてはより多くのパケットが送信される。 総スキャン時間の上限の設定は、\fB\-\-max\-retries\fRで再送信の回数を制限できる +.RE +.PP +\fB\-\-defeat\-rst\-ratelimit\fR +.RS 4 +多くのホストは、送信するICMPエラーメッセージ(ポート到達不能エラーなど)の数を減らすために、長い間レート制限 + +を使用してきた。 現在、いくつかのシステムは、生成するRST(リセット)パケットに同様のレート制限を適用している。 このようなレート制限を反映させるためにタイミングを調整するため、Nmapの速度が大幅に低下することがある。 +\fB\-\-defeat\-rst\-ratelimit\fR +を指定することにより、Nmapにこれらのレート制限を無視させることができる (SYN スキャンなど、応答がないポートを +open +として扱わないスキャンのために)。 +.sp +このオプションを使用すると、Nmapがレート制限されたRST応答を十分に待たないために、一部のポートが無応答に見えるため、精度が低下する可能性がある。 SYNスキャンでは、無応答に見えたポートは +filtered +となり、RSTパケット受信時に見られるclosed +状態にはならない。 このオプションは、開いているポートにしか関心がなく、closed +と +filtered +を区別することに余分の時間を割けない場合に有用である。 +.RE +.PP +\fB\-\-defeat\-icmp\-ratelimit\fR +.RS 4 +\fB\-\-defeat\-rst\-ratelimit\fR +と同様に、 +\fB\-\-defeat\-icmp\-ratelimit\fR +オプションは精度と引き換えに速度を優先し、ICMP エラーメッセージをレート制限するホストに対して UDP スキャン速度を向上させるものである。 このオプションは、Nmap がポート到達不能メッセージを受信するために遅延しないようにするので、応答しないポートには、デフォルトの +open|filtered +の代わりに +closed|filtered +というラベルが付くことになる。 これは、UDP で実際に応答するポートだけを +open +として扱う。 多くの UDP サービスはこの方法では応答しないので、 このオプションは +\fB\-\-defeat\-rst\-ratelimit\fR +よりも不正確である可能性が高い。 +.RE +.PP +\fB\-\-nsock\-engine iocp|epoll|kqueue|poll|select\fR +.RS 4 +与えられたnsock IO多重化エンジンの使用を強制する。 +select(2) +ベースのフォールバックエンジンのみが、システム上で利用可能と保証されている。 エンジンの名前は、利用するIO管理機能の名前にちなんで付けられている。 現在実装されているエンジンは、epoll、kqueue、poll、select +だが、どのプラットフォームにも存在しないものもないとは言い切れない。 デフォルトでは、Nmapは「最適な」エンジン、すなわち、このリストの中で最初にサポートされたエンジンを使用する。 +\fBnmap \-V\fRを使って、自分のプラットフォームでどのエンジンがサポートされているかを確認できる。 +.RE +.PP +\fB\-T paranoid|sneaky|polite|normal|aggressive|insane\fR (タイミングテンプレートを設定する) +.RS 4 +前節で述べたような、タイミングのきめ細やかな制御はとても効果が大きいが、分かりにくいと感じるユーザもいるようだ。 さらには、最適化を試みているスキャンを実行するよりも、適切な数値を選ぶほうが時間がかかるという事態に陥る可能性もある。 そこでNmapには、6つのタイミングテンプレートを用いたもっと簡単なアプローチが用意されている。 テンプレートは、\fB\-T\fRオプションと番号(0 \- 5)か名前で指定できる。 テンプレート名は、\fBparanoid\fR\ \&(\fB0\fR)、 +\fBsneaky\fR\ \&(\fB1\fR)、 +\fBpolite\fR\ \&(\fB2\fR)、 +\fBnormal\fR\ \&(\fB3\fR)、 +\fBaggressive\fR\ \&(\fB4\fR)、\fBinsane\fR\ \&(\fB5\fR)である。 最初の2つは、IDS回避用のテンプレートである。Politeモードは、スキャン処理速度を落とし、帯域幅とターゲットマシンのリソースの使用量を少なくするためのものである。 Normalモードはデフォルトなので、\fB\-T3\fRとしても特に何もしない。Aggressiveモードは、ユーザが適度に高速で信頼性の高いネットワーク上にいることを想定して、スキャン速度を上げる。 最後にInsaneモードは、 非常に高速なネットワーク上にいるか、あるいは速度と引き換えに精度の一部を犠牲にしても構わない場合を想定したモードである。 +.sp +これらのテンプレートを利用すると、ユーザは、的確なタイミング値の選定はNmapに任せつつ、どの程度アグレッシブなスキャンを実行したいかを指定できる。 また、今のところきめ細かい制御のオプションが存在しない、速度の微調整の一部をこのテンプレートで行うこともできる。 例えば、\fB\-T4\fRは、TCPポートに対するスキャン処理の動的な遅延時間が10msを越えないようにすることができ、また\fB\-T5\fRでは、この値の上限が5msに制限される。 テンプレートを最初に指定する場合に限り、きめ細かい制御オプションとテンプレートを組み合わせて用いることができる。 そうしないと、テンプレートの標準値がユーザの指定した値で上書きされてしまう。適度に最近の信頼性が高いネットワークをスキャンする場合は、\fB\-T4\fRがお勧めである。 きめ細かい制御オプションを追加する場合でも、このオプションを(コマンドラインの最初に)付けておくことで、テンプレートによって有効になる細部にわたる最適化のメリットを享受できる。 +.sp +適正なブロードバンド接続やイーサネット接続の環境にいる場合は、常時\fB\-T4\fRを利用することをお勧めする。 +\fB\-T5\fRを好む人もいるが、私にはアグレッシブすぎるように思われる。 +\fB\-T2\fRを指定しているユーザもたまにいるが、ホストをクラッシュさせる可能性が低いと見ているからか、自分のことを全般的に礼儀正しい(polite)と思っているからのようだ。 こうしたユーザは単に、「\-T Polite」が実際にはいかに遅いものであるかを理解していないだけだ。 Politeモードは、デフォルトスキャンの10倍の時間がかかる。デフォルトのタイミングオプション(\fB\-T3\fR)に関しては、マシンのクラッシュや帯域幅が問題になることはめったにないので、慎重なスキャンユーザには通常はこれを勧めている。 タイミング値をあれこれ操作して、これらの問題を軽減しようとするよりも、バージョン検出を省略するほうがずっと効率的である。 +.sp +\fB\-T0\fR +や +\fB\-T1\fRは、IDSの警告を回避するには役立つかもしれないが、何千ものマシンやポートをスキャンするには非常に長い時間がかかる。 そのように長いスキャンを行う場合は、あらかじめ用意された\fB\-T0\fR +や +\fB\-T1\fRの値に頼るよりも、必要に応じて的確なタイミング値を設定するほうが好ましいだろう。 +.sp +\fBT0\fRの主な効果は、スキャンを連続的に実行して一度に1つのポートしかスキャンされないようにすることと、各プローブを送信する間に5分間待機することである。 +\fBT1\fR +と +\fBT2\fRは似ているが、それぞれプローブ間の待機時間が15秒と0\&.4秒しかない。 +\fBT3\fRはNmapのデフォルト動作で、並列処理が含まれる。\fBT4\fRは\fB\-\-max\-rtt\-timeout 1250ms \-\-min\-rtt\-timeout 100ms \-\-initial\-rtt\-timeout 500ms \-\-max\-retries 6\fRに相当し、TCPおよびSCTPスキャンの最大遅延時間を10msに設定する。 +\fBT5\fRは\fB\-\-max\-rtt\-timeout 300ms \-\-min\-rtt\-timeout 50ms \-\-initial\-rtt\-timeout 250ms \-\-max\-retries 2 \-\-host\-timeout 15m \-\-script\-timeout 10m \-\-max\-scan\-delay\fRに相当し、TCPおよびSCTPスキャンの最大遅延時間を5msに設定する。 UDPの最大スキャン遅延時間は +\fBT4\fR +や +\fBT5\fR +では設定できないが、 +\fB\-\-max\-scan\-delay\fR +オプションで設定できる。 +.RE +.SH "ファイアウォール/IDS の回避とスプーフィング" +.PP +多くのインターネット先駆者たちは、あらゆるノード間のネットワーク接続を可能にする、世界共通のIPアドレス空間を有する世界規模のオープンネットワークの構想を描いていた。これにより、ホストは文字通りピアとして機能し、お互いに情報のやり取りができるようになる。ユーザは、自宅のすべてのシステムに仕事場からアクセスして、エアコンの設定を変えたり、早めに来た客のためにドアを開錠したりできるだろう。このような世界規模の相互接続性の構想の拡大は、アドレス空間の不足とセキュリティ上の問題によって阻害されている。1990年代初期、組織は特に相互接続性を軽減する目的で、ファイアウォールを導入し始めた。大規模なネットワークと玉石混淆のインターネットとの間に、アプリケーションプロキシ、ネットワークアドレス変換、パケットフィルタなどによる防御線が張り巡らされた。情報の自由な流れは、認可された通信チャンネルとそこを通るコンテンツに対する厳しい規制にとって代わられた。 +.PP +ファイアウォールなどのネットワーク上の障害物によって、ネットワークのマッピングは著しく困難になる。これは、もうこれ以上軽減されることはないはずだ。いつ行われるかわからない探索行為を阻止することが、こうした機器を実装する主な目的である場合が多いからである。それでも、Nmapは、この複雑なネットワークを理解するのに役立てたり、フィルタが目的通りに機能していることを検証したりするための機能を数多く備えている。また、実装が不完全な防御策を回避する仕組みにも対応している。自身のネットワークセキュリティ状況を理解する最善の方法の1つは、それを打ち破ってみることだ。自分が攻撃者になったつもりで、本節のテクニックを自分自身のネットワークに対して実行してみるとよい。FTPバウンススキャン、Idleスキャン、フラグメンテーション攻撃などを仕掛けたり、自分のプロキシの1つにトンネルを通したりしてみよう。 +.PP +企業は、ネットワーク活動を制限することに加えて、侵入検知システム(IDS)によるトラフィック監視を強化してきている。メジャーなIDSにはすべて、Nmapによるスキャンを検知するように設計されたルールが標準で搭載されている。これは、スキャンが攻撃に先立って行われる場合があるからだ。これらの製品の多くは最近、侵入\fI防止\fRシステム(IPS)に姿を変えている。IPSは、悪意があると見なされるトラフィックを積極的にブロックする。ネットワーク管理者やIDSベンダにとって残念なことに、パケットデータを解析して悪意を確実に検知するのは困難な課題である。根気とスキル、それにNmapの特定のオプションの手助けがあれば、攻撃者はたいていの場合、IDSに検知されないで通り過ぎることができる。その一方で、管理者は大量の誤検知結果の対処に追われることになる。IDSの誤検知によって、悪意のない活動が誤診され、警告が発せられたりブロックされたりする。 +.PP +Nmapには、ファイアウォールルールを回避したりIDSをこっそりすり抜けたりするための機能は搭載しないようにするべきだと言われることがたまにある。こうした人々の言い分は、その手の機能は、管理者がセキュリティ向上のために利用するのと同じくらいの確率で、攻撃者に悪用されるおそれがあるというものだ。この論理の問題点は、いずれにしろこの種の手法は攻撃者に悪用されるに決まっているということだ。攻撃者は、別のツールを見つけてきたり、Nmapに機能を組み込んだりするものだからである。一方、管理者は、自分たちの業務がそれだけますますやりにくくなると思われるだろう。最新型の、パッチを適用したFTPサーバを導入することは、FTPバウンス攻撃を実装しているツールの配布を阻止しようとすることよりも、はるかに強力な防御策になる。 +.PP +ファイアウォールやIDSシステムを検出して破壊するための「魔法の弾丸」のようなNmapオプションなど存在しない。それには、スキルと経験が必要なのだ。チュートリアルについては、本リファレンスガイドの範囲を超えている。本稿の目的は単に、関連したオプションを列挙し、それで何ができるかについて説明することだけである。 +.PP +\fB\-f\fR (パケットをフラグメント化する); \fB\-\-mtu\fR (指定したMTUを用いる) +.RS 4 +\fB\-f\fRオプションを指定すると、要求されたスキャン(pingスキャンを含む)は小さく断片化されたIPパケットを利用するようになる。これを行う目的は、TCPヘッダを複数のパケットに分割することで、パケットフィルタや侵入検知システム(IDS)などの厄介なセキュリティ策にスキャンを検知されにくくすることである。ただし、以下の点には注意が必要だ。すなわち、プログラムのなかには、このような小さなパケットの処理によって問題を生じるものがあることだ。旧式のスニファ「Sniffit」は、最初のフラグメントを受信した瞬間にセグメンテーション障害を起こした。このオプションを一度指定すると、NmapはIPヘッダを8バイトかそれ以下の大きさのパケットに分割する。つまり、20バイトのTCPヘッダは3つのパケットに分割されることになる。8バイトのパケットが2つと、残りの1つが4バイトになる。もちろん、各フラグメントにもIPヘッダがある。\fB\-f\fRを再度指定すると、フラグメントあたり16バイトが使われる(フラグメントの数は減る)。あるいは、\fB\-\-mtu\fRオプションで、ユーザ独自の分割サイズを指定することもできる。\fB\-\-mtu\fRを使う場合は、同時に\fB\-f\fRは指定しないこと。分割サイズは8の倍数にする必要がある。断片化されたパケットは、すべてのIPフラグメントを待ち行列に入れるパケットフィルタやファイアウォール(例えば、LinuxカーネルのCONFIG_IP_ALWAYS_DEFRAGオプションなど)を通り抜けることはできないが、ネットワークによっては、この断片化によって生じるパフォーマンスの低下に耐えきれないために、これを無効にしているところがある。またそれ以外にも、各フラグメントがそれぞれ異なる経路を通ってネットワークに至る可能性があるために、この機能を有効にできないところもある。一部の発信元システムでは、カーネルで発信パケットのフラグメント化を解消するものもある。コネクション追跡モジュールの「iptables」を備えるLinuxなどがこれにあたる。送信パケットがきちんとフラグメント化されていることを確認するために、Etherealなどのスニファを実行しながら、スキャンを行うようにすること。自身のホストのOSが原因で問題が生じる場合は、IP層を回避して「生」イーサネット フレームを送るために、\fB\-\-send\-eth\fRを試してみるとよい。 +.RE +.PP +\fB\-D \fR\fB\fIdecoy1\fR\fR\fB[,\fIdecoy2\fR]\fR\fB[,ME]\fR\fB[,\&.\&.\&.]\fR (おとりを使ってスキャンを隠蔽する) +.RS 4 +おとり(囮)スキャンを実行する。おとりスキャンとは、実際のスキャンの他に、おとりとして指定したホスト(複数可)もターゲットネットワークをスキャンしているようにリモートホストに見せかけるためのものである。この結果、対象ホストのIDSは、それぞれ異なる複数のIPアドレスから、5から10のポートスキャンが実行されたことを報告する場合もあるが、実際にどのIPがスキャンを実行していたもので、どれが無実のおとりだったのかを知られることはない。このおとりスキャンは、ルータの経路追跡、応答の破棄、その他の動的メカニズムによって阻止される可能性があるが、通常は攻撃元のIPアドレスを隠蔽する技法として非常に効果的である。 +.sp +各おとりホストはコンマで区切る。おとりの1つとしてME(自分)オプションを用いて、ユーザの本物のIPアドレスをその位置に表示することもできる。MEをおとりホストの6番目以降に置くと、(Solar Designerの優れたscanlogdなどの)よく使われる一部のポートスキャン検出ツールが、ユーザのIPアドレスを明らかにすることはほぼ不可能である。MEオプションを使わない場合、ユーザはNmapが無作為に選んだ位置に置かれる。 +.sp +注意すべき点は、おとりとして使用するホストが稼動中でないと、ターゲットに誤ってSYN flood攻撃を仕掛けることになる。また、ネットワーク上で実際に稼動しているホストが1つしかない場合は、どのホストがスキャンを実行しているかを容易に特定されてしまう。また、ホスト名よりもIPアドレスを使った方がよいだろう(おとりネットワークのネームサーバのログに記録されないようにするため)。 +.sp +おとりは、初期段階に行うpingスキャン(ICMP、SYN、ACK、その他利用できるものなら何でも)と、実際のポートスキャンの実行段階の両方で使用される。また、リモートOS検出(\fB\-O\fR)を行う際にも使われる。だが、バージョン検出やTCP connect()スキャンとは連携しない。 +.sp +おとりを多く使いすぎると、スキャンの速度が低下するだけでなく、精度も下がるおそれがあることに注意する。また、一部のISPは偽装パケットをフィルタで除外しているが、偽装したIPパケットを制限しているところは少ない。 +.RE +.PP +\fB\-S \fR\fB\fIIP_Address\fR\fR (ソースアドレスを偽装する) +.RS 4 +一部の環境では、Nmapがユーザのソースアドレスを特定できない場合がある(その場合はかならず、Nmapからユーザに通知がある)。こうした状況では、\fB\-S\fRオプションを使って、パケットの送信に利用したいインターフェースのIPアドレスを指定すること。 +.sp +このフラグの他の利用方法として考えられるのは、スキャンを偽装して、\fI第三者(誰か別の人間)\fRがスキャンを実行しているとターゲットに思い込ませることだ。企業が、ライバル企業から繰り返しポートスキャンを受けたとしたらどうなるだろうか。この種の用途に用いるには、たいていの場合\fB\-e\fRオプションが必要になるだろう。また通常は\fB\-Pn\fRも使った方が望ましい。 +.RE +.PP +\fB\-e \fR\fB\fIinterface\fR\fR (特定のインターフェースを使用する) +.RS 4 +パケットを送受信する際に、どのインターフェースを利用するかをNmapに伝えるためのオプション。Nmapは、インターフェースを自動的に検知できるようになっているが、検知できない場合はその旨がユーザに通知される。 +.RE +.PP +\fB\-\-source\-port \fR\fB\fIportnumber\fR\fR\fB;\fR \fB\-g \fR\fB\fIportnumber\fR\fR (ソースポート番号を偽装する) +.RS 4 +よく見かける設定ミスの1つは、ソースポート番号だけを基準にして、トラフィックを信頼していることである。これがどのようにして起きるかを理解するのは簡単である。管理者が真新しいファイアウォールをセットアップすると必ず、恩知らずのユーザから、アプリケーションが機能しなくなったという苦情が殺到することになるものだ。特に、外部サーバからのUDP DNS応答がネットワークに入れなくなることが原因で、DNSが動かなくなる場合がある。この他に、FTPもよく見られる例である。アクティブFTP転送が行われる際に、リモートサーバは、要求されたファイルを転送するために、再びクライアントへのコネクションを確立しようとする。 +.sp +これらの問題に対するセキュアなソリューションは、多くの場合、アプリケーションレベルのプロキシや、プロトコル解析型ファイアウォールモジュールの形で存在する。だが残念ながら、もっと簡単で、安全性の低いソリューションもあるのだ。多くの管理者は、DNS応答は53番ポートから、アクティブftpは20番ポートから来ることに注目し、これらのポートからの内向きトラフィックを無条件に許可してしまうという罠に陥る。こうしたファイアウォールの抜け穴の存在に気付いて悪用するような攻撃者がいるとは思ってもいない場合が多い。また別のケースでは、管理者がこうした処置を、より安全性の高いソリューションを実装するまでの短期間の応急処置と見なしている場合もある。そして結局、セキュリティを向上させることなどすっかり忘れてしまうわけだ。 +.sp +こうした罠に陥るのは何も、多忙なネットワーク管理者だけではない。この種の安全性の低いルールが標準で装備されてくる製品は膨大な数にのぼる。マイクロソフト社にも、責任の一端はある。Windows 2000 や Windows XPに標準装備されているIPsecフィルタには、88番ポート(Kerberos)からのTCP や UDPのトラフィックをすべて許可するという暗黙のルールが含まれている。この他に有名なケースでは、Zone Alarm社製パーソナルファイアウォールの2\&.1\&.25以下のバーションでは、ソースポートが53番(DNS)と67番(DHCP)の内向きUDPパケットをすべて許可するようになっていた。 +.sp +Nmapには、この種の弱点を突くためのオプションとして、\fB\-g\fR +や\fB\-\-source\-port\fR(これらは同等のもの)が用意されている。単ポート番号を指定すると、可能な場合であれば、Nmapはそのポートからパケットを送信する。特定のOS検出検査が正しく機能するようにするために、Nmapは様々なポート番号を使用する必要がある。NmapはDNS要求の処理にシステムのライブラリを用いているので、この\fB\-\-source\-port\fRフラグを指定していても、DNS要求には無視されることになる。SYNスキャンを含む大部分のTCPスキャン、およびUDPスキャンは、このオプションに完全に対応している。 +.RE +.PP +\fB\-\-data\-length \fR\fB\fInumber\fR\fR (送信パケットにランダムデータを付加する) +.RS 4 +通常、Nmapはヘッダのみを含む最小限のパケットを送信する。従って、TCPパケットは通常40バイト、ICMPエコー要求パケットは28バイト程度の大きさしかない。このオプションは、Nmapが送信するほとんどのパケットに、指定したバイト数のランダムデータを付加するようにする。OS検出(\fB\-O\fR)パケットにはデータは付加されないが、ほとんどのping およびポートスキャンのパケットには付加される。これにより、処理速度は低下するが、スキャンを幾分でも目立たなくすることができる。 +.RE +.PP +\fB\-\-ttl \fR\fB\fIvalue\fR\fR (IPのTTLフィールド値を設定する) +.RS 4 +送信パケットのIPv4生存時間(TTL:Time\-to\-Live)フィールドを指定した値に設定する。 +.RE +.PP +\fB\-\-randomize\-hosts\fR (ターゲットホストの順番を無作為化する) +.RS 4 +このオプションは、Nmapがスキャンを実行する前に、各グループあたり最大8096のホストをランダムに並び替えるようにする。これにより、特にスキャン速度を遅く設定するタイミングオプションと併用する場合は、各種ネットワーク監視システムにスキャンが検知される可能性を小さくすることができる。より大規模なグループを無作為化したい場合は、nmap\&.hのPING_GROUP_SZを増やして再コンパイルする。別の手段としては、リストスキャンでターゲットIPリストを作成し(\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR)、これをPerlスクリプトで無作為化して、\fB\-iL\fRでリストをそのままNmapに渡す。 +.RE +.PP +\fB\-\-spoof\-mac \fR\fB\fImac address, prefix, or vendor name\fR\fR (MACアドレスを偽装する) +.RS 4 +Nmapが送信するすべての生イーサネット フレームに、指定したMACアドレスを使うようにする。このオプションは、Nmapが実際にイーサネットレベルのパケットを送信するように、\fB\-\-send\-eth\fRが必要条件になる。MACアドレスは、さまざまな形式で指定できる。文字列の「0」だけが指定された場合は、NmapはセッションのMACアドレスを完全に無作為に選ぶ。指定した文字列が偶数の16進数(一組ずつ状況に応じてコロンで区切る)の場合は、NmapはこれをMACアドレスとして使用する。12桁未満の16進数が指定された場合は、Nmapは残りの6バイトにランダムな値を補充する。引数が0や16進文字列ではない場合は、Nmapはnmap\-mac\-prefixes +を調べて、指定した文字列を含むベンダ名を見つける(大文字と小文字は区別されない)。一致するものがあった場合、そのベンダのOUI(Organizationally Unique Identifier:3バイトのベンダコード)を使用し、残りの3バイトにはランダムに記入する。有効な\fB\-\-spoof\-mac\fR引数は、Apple、0、01:02:03:04:05:06、deadbeefcafe、0020F2、Ciscoなどになる。 +.RE +.SH "出力" +.PP +セキュリティツールの実用性は、生成される出力で決まる。複雑なテストやアルゴリズムも、結果が整理された、わかりやすい形で提示されなければ、ほとんど価値はない。ユーザや他のソフトウェアによるNmapの使い方がこれほど数多くあることを考えると、たった1つですべてのユーザが満足するようなフォーマットが存在するはずもない。そこでNmapには、人間が直接読めるようにしたインタラクティブ方式や、ソフトウェアで簡単に解析できるXML方式などのさまざまな出力フォーマットが用意されている。 +.PP +Nmapには様々な出力フォーマットが備わっているだけでなく、出力やデバッグメッセージの冗長性を制御するオプションも用意されている。出力結果は標準出力(stdout)や指定したファイルに送られる。ファイルにはデータを追加したり上書きしたりできる。また、出力ファイルは、中断したスキャンを再開するためにも使われる。 +.PP +Nmapの出力は、5種類のフォーマットが利用できる。デフォルトはinteractive output(インタラクティブ出力)と呼ばれるもので、標準出力に送られる。また、出力には、normal output(通常出力)というのがある。これは、インタラクティブに似ているが、異なる点は、実行時間情報や警告が表示される回数が少ないことである。その理由は、この出力が、インタラクティブにではなくて、スキャン完了後に解析するために提供されるものだからである。 +.PP +XML出力は、最も重要な出力タイプの1つであり、HTMLに変換し、NmapのGUIやデータベースにインポートして、プログラムで容易に解析できる。 +.PP +残り2つの出力タイプは、grepで検索可能なシンプルな出力で、ターゲットホストに関するほとんどの情報が1行で表示されるものと、自分のことを>sCRiPt KiDDi3だと思うユーザ向けのsCRiPt KiDDi3 0utPUt(出力)だ。 +.PP +インタラクティブ出力はデフォルトで、関連するコマンドラインオプションはないが、他の4つのフォーマットオプションでは、同じ構文が使われる。取る引数は1つで、結果を保存するファイル名である。複数のフォーマットを指定してもよいが、各フォーマットは1度しか指定できない。例えば、自分の調査用に通常の出力を保存し、同時に同じスキャン結果をプログラムの解析用にXML形式で保存したい場合もあるだろう。これは、\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fRというオプションを使って実行できる。なお、ここでは簡潔にするためにmyscan\&.xmlのような単純なファイル名を用いているが、通常はもっと説明的な名前にするのが推奨されている。どのようなファイル名にするかは、個人の好みの問題だが、筆者はスキャンの実施日と簡単なコメントを組み入れた長い名前を使い、スキャン対象の企業名にちなんだ名前のディレクトリに入れている。 +.PP +これらのオプションは結果をファイルに保存するが、同時にNmapは通常通りインタラクティブ出力を標準出力(stdout)に書き出している。例えば、\fBnmap \-oX myscan\&.xml target\fRというコマンドで、XML出力がmyscan\&.xmlに書き込まれ、同じ結果のインタラクティブ出力が標準出力に書き出される。この出力は、\fB\-oX\fRが指定されなかった場合でも行われる。ハイフン(\-)文字を引数としてフォーマットタイプの1つに渡すと、これを変更することができる。すなわち、Nmapはインタラクティブ出力を停止して、代わりにユーザが指定した形式の結果を、標準出力ストリーム(stdout)に書き出すことになる。\fBnmap \-oX \- target\fRというコマンドでは、XML出力だけがstdoutに送られる。この場合も、重大なエラーは標準エラーストリーム(stderr)に書き出される場合がある。 +.PP +Nmapの一部の引数とは異なり、ログファイルオプションのフラグ(例:\fB\-oX\fR)とファイル名やハイフンとの間のスペースは必須である。この注意を無視して、引数を\fB\-oG\-\fRや\fB\-oG\-\fRのように指定したら、Nmapの下位互換機能により、それぞれG\-やXscan\&.xmlという名前の\fI標準フォーマット\fRの出力ファイルが作成される。 +.PP +またNmapには、スキャン結果の冗長性を制御するオプションや、出力ファイルに上書きしないで追加書き込みするためのオプションも用意されている。これらのオプションについてはすべて以下で説明する。 +.PP +\fBNmapの出力フォーマット\fR +.PP +\fB\-oN \fR\fB\fIfilespec\fR\fR (通常出力) +.RS 4 +通常の出力が指定した名前のファイルに書き込まれるようにする。上で述べた通り、これはインタラクティブ出力と一部異なる。 +.RE +.PP +\fB\-oX \fR\fB\fIfilespec\fR\fR (XML 出力) +.RS 4 +XML出力が指定した名前のファイルに書き込まれるようにする。Nmapには文書型定義(DTD)が組み込まれており、XMLパーサーはこれを用いて、NmapのXML出力を検証する。本来はプログラムによる使用を目的としたものだが、人間がNmapのXML出力を解釈するのにも役立つ。DTDには、フォーマットの文法要素が定義されており、これらの要素が取ることのできる属性や値が列挙されていることが多い。最新版は以下から常時入手できる:\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[] +.sp +XMLは、ソフトウェアで容易に解析できる定型書式を提供する。C/C++、Perl、Python、Javaなどを含む、あらゆるメジャーなコンピュータ言語用のXMLパーサーが、フリーで入手できるようになっている。これらの言語のほとんどについては、Nmapの出力と実行に特化して処理するためのバインディングも作成されている。例えば、Perl CPAN(Comprehensive Perl Archive Network)の\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[6]\d\s+2 +や +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[7]\d\s+2などがある。重要なアプリケーションがNmapとインターフェースで連結する場合はほとんど、XMLが推奨フォーマットになる。 +.sp +XML出力はXSLスタイルシートを参照して、出力結果の書式をHTMLに変換できる。これを使用する最も簡単な方法としては、単にFirefoxやIEなどのWebブラウザでXML出力を読み込むだけでよい。デフォルトでは、これはNmapを実行したマシン上(もしくは同じ構成のマシン)でのみ機能する。これは、nmap\&.xslのファイルシステムのパスがハードコード化されているためである。Webに接続したマシン上であればHTMLとして表示されるような、移植性のあるXMLファイルを作成する方法については、\fB\-\-stylesheet\fRオプションの項を参照のこと。 +.RE +.PP +\fB\-oS \fR\fB\fIfilespec\fR\fR (ScRipT KIdd|3 oUTpuT) +.RS 4 +スクリプトキディ出力は、インタラクティブ出力に似ているが、異なる点は、「l33t HaXXorZ」(leet hacker)向けに後処理してあることだ。Nmapは以前より、一貫性のある大文字やスペルの使い方のせいで、この人たちに見下されてきた。ユーモアを解さない人々は、「スクリプトキディの手助けをしている」として筆者に非難の言葉を浴びせる前に、まず気付くべきだ。このオプションが、彼らをからかうためのものだということを。 +.RE +.PP +\fB\-oG \fR\fB\fIfilespec\fR\fR (Grep検索可能出力) +.RS 4 +この出力フォーマットを最後に取り上げたのは、廃止予定だからだ。XML出力フォーマットのほうがはるかに強力であり、熟練ユーザにとっての使い勝手もほぼ変わらない。XMLはパーサーの標準で、多数の優れたXMLパーサーが利用可能になっているのに対し、grep可能出力は筆者独自のスクリプトに過ぎない。XMLは拡張性が高く、Nmapの新機能がリリースされるたびに対応可能だが、grep可能出力にはこうした機能を追加する余地がないため、割愛せざるを得ないことも多い。 +.sp +とはいえやはり、grep可能出力はいまだに広く使われている。各対象ホストが一行ずつ列挙されているというシンプルな形式で、grep、awk、cut、sed、diff、PerlなどのUNIXの標準ツールを使って簡単に検索や解析を行うことができる。筆者も通常、コマンドラインで行うちょっとしたテストのために使用している。sshポートが開いているホストや、Solarisを実行しているホストなどを見つける場合、簡単なgrep検索を行うと、こうしたホストをすべて特定し、パイプでawkやcutコマンドに送って、目的のフィールドを書き出すことができる。 +.sp +Grep可能出力は、コメント行(パウンド(#)記号で始まる行)とターゲット行で構成される。ターゲット行は、6つのラベル付きフィールドの組み合わせになっており、それぞれのフィールドはタブで区切られ、最後にコロンが付く。各フィールドは、Host、Ports、Protocols、Ignored State、OS、Seq Index、IPID、Statusになっている。 +.sp +これらのフィールドの中で通常最も重要なのは、Ports(ポート)であり、ここからそれぞれの興味あるポートに関する詳細情報が得られる。ポートエントリのカンマ区切りリストになっており、各ポートエントリは、1つの興味あるポートを表し、7つのスラッシュ(/)で区切られたサブフィールドから成る。各サブフィールドはPort number、State、Protocol、Owner、Service、SunRPC info、Version infoである。 +.sp +XML出力の場合と同様に、本稿でこのフォーマットのすべてを論ずることはできない。Nmapのgrep可能出力フォーマットについての詳細な解説は以下で入手できる:\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[] +.RE +.PP +\fB\-oA \fR\fB\fIbasename\fR\fR (全フォーマットに出力する) +.RS 4 +簡便のために、\fB\-oA \fR\fB\fIbasename\fR\fRを指定すると、スキャン結果を通常、XML、grep可能の3つのフォーマットで一度に保存できるようにした。それぞれ、\fIbasename\fR\&.nmap、\fIbasename\fR\&.xml、\fIbasename\fR\&.gnmapというファイルに保存される。たいていのプログラムと同じく、以下の例のようにファイル名の前にディレクトリパスを付けることもできる:~/nmaplogs/foocorp/(UNIX)、c:\ehacking\esco(Windows) +.RE +.PP +\fB冗長性とデバッグのオプション\fR +.PP +\fB\-v\fR (冗長性レベルを上げる) +.RS 4 +冗長性レベルを上げて、Nmapが進行中のスキャンに関してさらに多くの情報を書き出すようにする。開きポートは見つかり次第表示され、スキャンの実行に数分以上かかると見なされる場合は予測される完了時間が提示される。2回使用するとさらに冗長レベルは上がるが、3回以上の使用は無効である。 +.sp +ほとんどの変更の効果が表れるのはインタラクティブ出力だけだが、通常出力とスクリプトキディ出力にも一部効果がある。その他の出力タイプは、コンピュータ処理するための出力なので、ユーザの手を煩わさなくとも、デフォルトでかなり詳細な情報が与えられている。それでも、その他の出力モードでもいくつか変更される点があり、詳細情報を一部省略することで、出力サイズを大幅に減らすことができる。例えば、grep可能出力のコメント行で、スキャン対象の全ポートの一覧表を提供するものは、かなり長くなる可能性があるので、冗長モードでのみ書き出される。 +.RE +.PP +\fB\-d \fR\fB\fIlevel\fR\fR (デバッグレベルを上げる/設定する) +.RS 4 +冗長モードでも満足する情報が得られない場合は、さらに大量の情報を得るためにデバッグを利用できる。冗長オプション(\fB\-v\fR)の場合と同様に、デバッグもコマンドラインのフラグ(\fB\-d\fR)で有効になり、これを複数回指定することで、デバッグレベルを上げることができる。もしくは、デバッグレベルは\fB\-d\fRに引数として与えることでも設定できる。例えば、\fB\-d9\fRでレベル9に設定される。これは最も効果の高いレベルであり、ごく少数のポートやターゲットに対して非常に単純なスキャンを実行するのでない限り、数千行に及ぶ出力が生成される。 +.sp +デバッグ出力が有用なのは、Nmapにバグがある疑いがある場合や、Nmapが何をなぜ行っているのかについて単純によく分からなくなった場合である。この機能は主に開発者向けのものなので、デバッグ行は必ずしも誰が見てもすぐ分かるわけではない。例えば、このような出力が得られる: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000。こうした行の内容が理解できない場合は、無視するか、ソースコードを見て調べるか、開発リスト(nmap\-dev)に助けを求めるかなどをする他ない。見れば内容が分かる行もなかにはあるが、デバッグレベルが上がるほど、メッセージも分かりにくくなる。 +.RE +.PP +\fB\-\-packet\-trace\fR (送受信したパケットやデータを追跡する) +.RS 4 +Nmapが送受信した全パケットのサマリーを書き出すようにする。デバッグで用いられる場合が多いが、Nmapが見えないところで何を行っているかを新しいユーザが理解するための手段として役立てることができる。何千もの行が書き出されないようにするには、\fB\-p20\-30\fRなどを指定して、スキャン対象のポートの数を制限するとよいだろう。バージョン検出サブシステムの挙動にのみ関心がある場合は、代わりに\fB\-\-version\-trace\fRを使用すること。 +.RE +.PP +\fB\-\-iflist\fR (インターフェースや経路の一覧を表示する) +.RS 4 +Nmapが検出したインターフェースやシステム経路のリストを書き出す。これは、ルーティング問題やデバイスのキャラクタリゼーションの誤り(例えばNmapがPPP接続をイーサネットとして処理すること)などをデバッグするのに役立つ。 +.RE +.PP +\fBその他の出力オプション\fR +.PP +\fB\-\-append\-output\fR (出力ファイルは上書きせず追加する) +.RS 4 +\fB\-oX\fR +や +\fB\-oN\fRなどの出力フォーマットのフラグにファイル名を指定すると、デフォルトではそのファイルは上書きされる。既存のファイルの内容はそのままにして、新しい結果を追加したい場合は、この\fB\-\-append\-output\fRオプションを指定する。こうしてNmapを実行すれば、ここで指定した出力ファイルはすべて、上書きではなくて追加されることになる。だがこれは、XMLスキャン(\-oX)のデータに対してはあまり有効ではない。XMLの結果ファイルは通常、手動で修正しないと適正に解析できないからだ。 +.RE +.PP +\fB\-\-resume \fR\fB\fIfilename\fR\fR (中断したスキャンを再開する) +.RS 4 +対象が広範囲にわたるNmapの実行には非常に長い時間がかかり、数日ほどに及ぶ場合もある。そのようなスキャンは、常に完了するまで続けて実行できるとは限らない。様々な制約によってNmapを就業時間内に実行できなくなったり、ネットワークがダウンしたり、Nmapが動作しているマシンが計画的あるいは予定外に再起動させられたり、Nmap自体がクラッシュしたりなどが起こる可能性があるからだ。その他いかなる理由であっても同様に、Nmapを実行している管理者は、ctrl\-Cを押すことによって実行をキャンセルできる。このような場合、スキャン全体を最初から再開するのは望ましくないだろう。幸いにも、通常出力(\fB\-oN\fR)やgrep可能出力(\fB\-oG\fR)のログが残っていれば、ユーザは、実行を中断された際のターゲットに対するスキャンを再開するようNmapに命じることができる。これを行うには、\fB\-\-resume\fR +オプションを指定し、通常/grep可能の出力ファイルを引数として渡す。Nmapはその出力ファイルをパースして、前に指定されたのと同じものを使うので、それ以外の引数は指定できない。\fBnmap \-\-resume\fR\fB\fIlogfilename\fR\fRとして、Nmapを呼び出す。Nmapは、前回の実行で指定されたデータファイルに新たな結果を追加する。この再開オプションは、XML出力フォーマットをサポートしていない。2回の実行結果を結合して1つの妥当なXMLファイルにするのは困難であるためだ。 +.RE +.PP +\fB\-\-stylesheet \fR\fB\fIpath or URL\fR\fR (XML出力変換のXSLスタイルシートを設定する) +.RS 4 +Nmapには、XML出力を閲覧したりHTMLに変換したりするためのnmap\&.xslというXSLスタイルシートが同梱されている。XML出力には、xml\-stylesheetディレクティブが組み込まれており、Nmapが最初にインストールした場所(もしくはWindows上の現在作業中のフォルダ)にあるnmap\&.xmlを参照する。最近のWebブラウザにNmapのXML出力を読み込むと、ブラウザはファイルシステムからnmap\&.xsl +を読み出して、出力結果の処理に使用する。別のスタイルシートを使いたい場合は、この\fB\-\-stylesheet\fRオプションの引数として指定する。引数はフルパス名かURLで指定する。よく用いられる例を以下に示す: +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR +これで、スタイルシートの最新バージョンがInsecure\&.Orgからブラウザに読み込まれる。これにより、Nmap(および +nmap\&.xsl)がインストールされていないマシン上でも、結果を閲覧しやすくなる。そのため、URLのほうが便利な場合が多いが、デフォルトではプライバシー上の理由で、ローカルファイルシステムでのnmap\&.xslの場所が使われている。 +.RE +.PP +\fB\-\-no\-stylesheet\fR (XSLスタイルシート宣言をXMLから除外する) +.RS 4 +NmapがXML出力をXSLスタイルシートと関連付けないようにする。xml\-stylesheet +ディレクティブは無視される。 +.RE +.SH "その他のオプション" +.PP +本節では、他の節のどこにも適合しないオプションで、重要な(およびそれほど重要でない)ものについて述べる。 +.PP +\fB\-6\fR (IPv6スキャンを有効にする) +.RS 4 +Nmapは2002年より、その最もよく使われる機能に対してIPv6のサポートを提供している。特に、pingスキャン(TCPのみ)、connect()スキャン、バージョン検出などはすべてIPv6に対応している。コマンド構文は、\fB\-6\fRオプションを追加する以外は従来通りである。もちろん、ホスト名ではなくてアドレスを指定する場合は、IPv6の構文を使う必要がある。ただし、アドレス表示は3ffe:7501:4819:2000:210:f3ff:fe03:14d0のようになるので、ホスト名を使う方がよい。出力も従来とほぼ同じであり、「興味のあるポート」行のアドレスがIPv6方式になっているのが唯一のIPv6の証拠である。 +.sp +IPv6は必ずしも世界を席巻しているわけではないが、一部(通常はアジア)の国々ではかなり普及しており、最近のOSのほとんどでサポートされている。NmapをIPv6で使用するためには、スキャンのソースとターゲットの両方をIPv6対応に設定する必要がある。自分のISP(他の多くのISPと同様の)からIPv6アドレスを割り当てられていない場合は、様々な場所で入手可能なフリーのトンネルブローカーがNmapとうまく連携して機能する。優れたトンネルブローカーの1つに、BT Exact社が以下で運営しているものがある。 Hurricane Electric社が以下で提供しているものも使ったことがある:\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]。「6to4 tunnels」という人気のフリーソフトもある。 +.RE +.PP +\fB\-A\fR (アグレッシブ・スキャンオプション) +.RS 4 +このオプションは、Additional(付加的)、Advanced(高度)、Aggressive(アグレッシブ)なオプションを有効にする。だが、このうちのどれを表すのかはまだ明確には決めていない。現在はこのオプションを指定すると、OS検出(\fB\-O\fR)とバージョンスキャン(\fB\-sV\fR)を実行できる。今後、さらに多くの機能が追加されるだろう。ポイントは、ユーザが数多くのフラグをまとめて覚えなくても済むように、複数のスキャンオプションを包括的にまとめて実行できるようにすることである。このオプションが有効にするのは機能のみで、同じくそうしたいと思われるタイミングオプション(例えば\fB\-T4\fR)や冗長オプション(\fB\-v\fR)などは、有効にならない。 +.RE +.PP +\fB\-\-datadir \fR\fB\fIdirectoryname\fR\fR (Nmapの特別データファイルの位置を指定する) +.RS 4 +Nmapは、実行時に特別なデータを、nmap\-service\-probes、nmap\-services、nmap\-protocols、nmap\-rpc、nmap\-mac\-prefixes、nmap\-os\-fingerprintsという名前のファイルに取得する。Nmapはまず、(ある場合は)\fB\-\-datadir\fR +オプションで指定したディレクトリ内で、これらのファイルを探す。ここで見つからなかったファイルは、「NMAPDIR」環境変数で指定したディレクトリから検索する。次に、実在する有効なUID(POSIXシステムの場合)やNmapの実行ファイル(Win32の場合)が格納されているディレクトリの~/\&.nmap +を探し、その次に、組み込みディレクトリの/usr/local/share/nmap +や/usr/share/nmapを探す。それでもない場合は最後の手段として、Nmapはカレントディレクトリを検索する。 +.RE +.PP +\fB\-\-send\-eth\fR (raw(生の)イーサネット層で送信する) +.RS 4 +Nmapが、上層のIP(ネットワーク)層ではなくて、rawイーサネット(データリンク)層でパケットを送信するようにする。デフォルトでは通常、Nmapは動作しているプラットフォームに最適の層を選ぶようになっている。raw ソケット (IP層)は一般に、UNIXマシンには最適であるが、マイクロソフト社がraw ソケットに対応する機能を無効にしているため、Windows OSにはイーサネットフレームが必要になる。Nmapは、他に選択肢がない(非イーサネット接続などの)場合は、このオプションがあるにもかかわらずUNIX上ではいまだにraw IPパケットを使用する。 +.RE +.PP +\fB\-\-send\-ip\fR (raw IPレベルで送信する) +.RS 4 +Nmapがパケットを送信するのに、下位のイーサネットフレームではなくて、raw IPソケットを介して送るようにする。これは、上で述べた\fB\-\-send\-eth\fRを補完するオプションである。 +.RE +.PP +\fB\-\-privileged\fR (ユーザが十分な権限を持つことを想定する) +.RS 4 +Nmapが、通常はUNIXシステム上のroot権限を必要とする操作を行うのに十分な特権を持つことを想定する。こうした操作には、生ソケットの送信やパケット盗聴などがある。デフォルトでは、Nmapはこのような操作が要求された場合でも、geteuid()がゼロでなければ実行を中止するようになっている。\fB\-\-privileged\fR +は、Linuxカーネル機能や、権限のないユーザが生パケットスキャンを実行できるように設定可能な同様のシステムとともに用いると便利である。注意点は、このオプションフラグを、特権を必要とするオプション(SYNスキャンやOS検出など)より前に指定することだ。\fB\-\-privileged\fRオプションに相当する別の方法には、「NMAP_PRIVILEGED」変数の設定がある。 +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (バージョン番号を表示する) +.RS 4 +Nmapのバージョン番号を書き出して終了する。 +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (ヘルプのサマリーページを表示する) +.RS 4 +最も一般的なコマンドフラグについての短いヘルプ画面を表示する。Nmapを引数なしで実行しても同様の結果が得られる。 +.RE +.SH "実行時の対話型操作" +.PP +.PP +Nmapの実行中に、すべてのキープロセスをキャプチャする。これにより、停止して再開という手順を経ないでも、プログラムとの情報のやり取りが可能になる。特定の特殊キーで、オプションを変更する。その他のキーは、スキャンに関する情報を伝えるステータスメッセージを表示する。仕様としては、\fI小文字は書き出される情報量を増やし\fR、\fI大文字は減らす\fR。 +.PP +\fBv\fR / \fBV\fR +.RS 4 +冗長レベルを上げる / 下げる +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +デバッグレベルを上げる / 下げる +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +パケット追跡を有効にする / 無効にする +.RE +.PP +その他 +.RS 4 +書き出されるステータスメッセージは以下のようになる: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "使用例" +.PP +以下に、Nmapの使用例を、単純なものからやや複雑で難解なものまでいくつか示した。例で使用したIPアドレスやドメイン名は、あくまでも具体性を持たせることが目的であるため、実際のスキャンでは、それらを\fI自分のネットワーク\fRのアドレスまたはホスト名で置き換えることに注意する。筆者は個人的に、他人のネットワークに対してポートスキャンを実行することは違法行為には当たらないと見ているが、ネットワーク管理者のなかには、自分のネットワークを勝手にスキャンされるのを快く思わずに苦情を訴える者もいるかもしれない。最初に許可を得たほうが得策である。 +.PP +ユーザには、テスト目的で、ホストscanme\&.nmap\&.orgをスキャンする許可が与えられている。この許可の対象は、Nmapによるスキャンに限定されるものであり、エクスプロイトやサービス妨害攻撃のテストは含まれない。帯域幅を節約するために、このホストに対するスキャンは、一日につき十数回以上は行わないようにすること。このフリーのスキャン対象提供サービスが悪用された場合、サービスは停止され、NmapはFailed to resolve given hostname/IP: scanme\&.nmap\&.org(指定したホスト名/IP:scanme\&.nmap\&.orgの解決に失敗しました)という報告を出す。これらの許可は、scanme2\&.nmap\&.org、scanme3\&.nmap\&.org等の各ホストにも適用されるが、これらのホストは、現在は存在しない。 +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +このオプションを利用すると、scanme\&.nmap\&.orgというマシン上の予約済みTCPポートすべてに対してスキャンを実行する。また、\fB\-v\fRが指定されているため、冗長モードが有効になる。 +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +scanme\&.nmap\&.orgが属している「クラスC」ネットワーク上のマシン255台のうちで稼動している各マシンに対して、SYNスキャン(ステルススキャン)を実行する。また、稼動中の各ホスト上で動作しているOSの特定も同時に試行する。SYNスキャンとOSの検出を行うため、root権限が必要となる。 +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +198\&.116のクラスBアドレス空間で、8ビットで表せる255のサブネットに属するホストのうち、前半(1\-127)のIPアドレスを持つホストに対して、ホストの列挙とTCPスキャンを行う。このスキャンを行う目的は、対象システムでsshd、DNS、POP3d、IMAPd、4564番ポートが動作しているかどうかを調査することだ。これらのポートのなかで開いている(open)ことが判明したポートすべてに対してバージョン検出を使用して、何のアプリケーションが動作しているかを特定する。 +.PP +\fBnmap \-v \-iR 100000 \-Pn \-p 80\fR +.PP +Nmapは100,000台のホストを無作為に選び、Webサーバ(80番ポート)のスキャンを行う。ホストの列挙は\fB\-Pn\fR +で無効にしてある。各ターゲットホスト上で1つのポートしか調査しないのに、どのホストが稼動中であるかを特定するためにプローブを送るのは無駄だからだ。 +.PP +\fBnmap \-Pn \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +4096個のIPをスキャンしてWebサーバを見つけ出し(pingなしで)、結果出力をgrep可能およびXMLフォーマットで保存する。 +.PP +\fBhost \-l company\&.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR +.PP +company\&.comに存在するホストを発見するためにDNSのゾーン転送を実行し、発見したIPアドレスをnmapに渡す。このコマンドは、筆者のGNU/Linuxマシンで使用しているものだ。他のシステムには、ゾーン転送を実行するための別のコマンドがある。 +.SH "バグ" +.PP +Nmapも作者と同様に完全ではない。それでもNmapのほうは、ユーザによるバグの報告やパッチの作成のおかげで、よりよいものにしてゆくことができる。Nmapを使っていて、思い通りに動かない場合は、まず\m[blue]\fB\%https://nmap.org/\fR\m[]から入手できる最新のバージョンにアップグレードしてみる。問題が続くようなら、すでに発見・対処が行われた問題かどうかを調査して確かめる。エラーメッセージをGoogle検索したり、\m[blue]\fB\%https://seclists.org/\fR\m[]でNmap\-devアーカイブを閲覧したりしてみる。このmanページも全体に目を通した方がよい。それでもどうにもならない場合は、バグレポートを<dev@nmap\&.org>宛てにメールで送ること。メールには、使用しているNmapのバージョンと、Nmapを実行しているOSの名前とバージョンなどの情報だけでなく、問題に関して分かったことは何でも書いていただきたい。問題の報告やNmapの使い方についての質問などは、dev@nmap\&.org宛てに送るほうが、筆者宛てに直接送るよりも返事がある可能性ははるかに高い。 +.PP +またバグレポートより、バグを修正するためのコードパッチのほうが歓迎される。ユーザ自身のコード変更によるパッチファイルの作成方法についての基本的な注意事項は\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[] +で参照できる。パッチは、nmap\-dev宛てに送る(推奨)か、筆者Fyodorまで直接送っていただきたい。 +.SH "作者" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%http://www.insecure.org\fR\m[]) +.PP +翻訳者 +.PP +修正(2022/7):Taichi Kotake, a\&.k\&.a tkmru +<taichi\&.kotake@sterrasec\&.com> +.PP +ここ数年で何百人もの人々から、Nmapに対して貴重な貢献をしていただいた。この詳細については、Nmapとともに配布されているCHANGELOGファイルを参照のこと。CHANGELOGファイルは以下からも入手できる:\m[blue]\fB\%https://nmap.org/nmap_changelog.html\fR\m[] +.SH "法的通知事項" +.SS "著作権と使用許諾" +.PP +Nmapセキュリティスキャナの著作権は、Insecure\&.Com LLCに帰属している(1996\-2005)。また、Nmapは、Insecure\&.Com LLCの登録商標。このプログラムはフリーソフトウェアであり、Free Software Foundation(FSF)が発行するGNU一般公衆利用許諾契約書のバージョン2で定められている条件に従い、再配布、改変することが可能である。これは、特定の条件下でNmapを使用、改変、再配布する権利を保証するものである。Nmapの技術を独自仕様のソフトウェアに組み込むことを希望する場合は、喜んで別の形態のライセンスを販売する(その際は、<sales@insecure\&.com>に連絡)。多くのセキュリティスキャナのベンダーは、ホスト発見、ポートスキャン、OS検出、サービス/バージョンの検出などの、Nmap技術のライセンスを受けている。 +.PP +GPL(一般公有使用許諾)は、「派生著作物」に対して重要な制約を課していることに注意する必要がある。けれども、この用語の詳細な定義はいまだに与えられていない。ここでは誤解を避けるため、以下のいずれかの事項が行われた場合に、アプリケーションが、GPLにおける「派生著作物」を構成するものと見なす: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Nmapのソースコードを統合する +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +nmap\-os\-fingerprints +や +nmap\-service\-probesなどの、Nmapの著作権のあるデータファイルを読み込む +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Nmapを実行して結果を解析処理する(通常のシェルや実行メニューのアプリケーションとは異なる。これらは未処理のNmap出力を単に表示するだけなので、派生著作物にはならない) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +InstallShield社の製品のような独自開発の実行可能インストーラに統合/組込/集約する +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +上で述べたことを行うような、ライブラリにリンクしたりプログラムを実行したりする +.RE +.PP +「Nmap」という用語は、Nmapの一部あるいは派生物を含めるために用いられるべきである。このリストは排他的な性質のものではなく、一般的な例を用いて、派生著作物の解釈を明確にすることを意図したものである。これらの制約事項は、実際にNmapを再配布する場合にのみ適用される。例えば、Nmap向けの独自開発フロントエンドを作成して販売することには何ら支障はない。ただし、その製品を単体で配布することと、ユーザにNmapのダウンロード先として以下を示すことが必要である:\m[blue]\fB\%https://nmap.org/\fR\m[] +.PP +われわれはこれらを、GPLにさらに追加された制約とは見なしていない。そうではなくて、「派生著作物」 +という用語がGPL準拠のNmap製品に適用される場合に、それをどのように解釈するかを明確にするためのものと見なしている。これは、Linus Torvalds氏が、Linuxカーネルモジュールに「派生著作物」 +がどのように適用されるかについての自分の解釈を表明したやり方に似ている。われわれの解釈はNmapだけに言及するもので、その他のGPL製品について述べているわけではない。 +.PP +GPL準拠でない著作物におけるNmapの使用に対する、GPLライセンスによる制約について質問がある場合は喜んでお答えするつもりだ。上で述べたように、独自開発のアプリケーションやアプライアンスにNmapを統合するための代替ライセンスも提供している。このライセンス契約はすでに多くのセキュリティベンダに販売されており、その内容には通常、永久ライセンス、サポートやアップデートの優先提供、Nmap技術の開発継続のための資金援助などが含まれている。詳細については電子メールで<sales@insecure\&.com> +に問い合わせていただきたい。 +.PP +Insecure\&.Com LLCは、GPLの取り決めに対する特例として、NmapのコードとOpenSSLライブラリとのリンクを認めており、この2つをリンクで組み合わせたものを配布している。OpenSSLライブラリは、同梱のCopying\&.OpenSSLファイルにリストされたものと同一のライセンスのもとで配布されている。OpenSSL以外の使用されているすべてのコードに対しては、あらゆる点でGNU GPLに従わなければならない。このファイルの一部を変更する場合、そのファイルの自身のバージョンにこの例外を拡大して適用できるが、そのように行う義務を負うものではない。 +.PP +上記の条件以外の条件が記載されたライセンス契約書とともにこれらのファイルを入手した場合、そのライセンス契約書は、ここで述べた内容に優先する。 +.SS "ソースコードの入手可能性とコミュニティへの寄与" +.PP +われわれは、ユーザーにこのプログラムのソースコードを提供している。その理由は、ユーザが実際にプログラムを実行する前に、そのプログラムがどんな動作を行うのかを正確に知る権利がある、と考えているからだ。また、ソフトウェアに対して脆弱性を見つけるための監査を行うこともできる(まだ1つも見つかったことはないが)。 +.PP +ソースコードは、新しいプラットフォームへの移植、バグの修正、新しい機能の追加を可能にする。コードに何らかの変更を加えた場合は、主要ディストリビューションに組み込まれる可能性もあるため、その内容を<fyodor@nmap\&.org> +までぜひお送りいただきたい。ただし、変更したコードをFyodorまたはInsecure\&.orgの開発用メーリングリストの1つに送信することで、そのコードを無制限かつ非独占的に再利用、改変、再ライセンスする権利をFyodorおよびInsecure\&.Com LLCに提供するものと見なす。Nmapは常にオープンソースで利用できるようにする予定だが、これが重要なのは、コードのライセンス再発行ができなかったことで、他のフリーソフトウェア・プロジェクト(KDEやNSAMなど)に壊滅的な問題が発生したことがあったためである。また上で述べた通り、サードパーティに対してコードの再ライセンスを行こともある。自分が寄与したコードに特別なライセンス条件を指定したい場合は、コードの送信時にその旨を伝えて欲しい。 +.SS "無保証" +.PP +このプログラムは、人々の役に立つことを期待して配布されているが、その保証は一切行わない。すなわち、商品適格性や特定目的への適合性の黙示保証は一切行わない。詳細については、GNU一般公有使用許諾契約書を参照のこと。GNU GPLは、 +\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[]から、またはNmapに同梱のCOPYINGファイルで参照できる。 +.PP +またNmapは、不完全なアプリケーション、TCP/IPスタック、OSなどをクラッシュさせることが確認されていることに注意すること。きわめてまれなこととはいえ、記憶に留めておく必要がある。ダウンタイムを受容する準備ができていない限り、\fINmapをミッションクリティカルなシステムに対して実行してはならない\fR +。Nmapがシステムやネットワークに障害を与える可能性がある点については認めたうえで、Nmapの使用により発生しうるいかなる損害や問題に対しても一切の責任を負わないものとする。 +.SS "不適切な使用" +.PP +システム障害のリスクがわずかながらあることや、悪意のある攻撃者が攻撃を実行する前の調査手段としてNmapを好んで利用することなどのせいで、管理しているシステムがスキャンされると気分を害し、場合によっては苦情を申し立てる管理者もいる。従って、たとえネットワークを軽くスキャンする際も、事前に管理者の許可を取っておくことを推奨する。 +.PP +セキュリティ上の理由から、Nmapは特権(suid rootなど)でインストールしてはならない。 +.SS "サードパーティ ソフトウェア" +.PP +Nmapには、 +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[8]\d\s+2 +によって開発されたソフトウェアが含まれており、改訂版の\m[blue]\fBLibpcap portable packet capture library\fR\m[]\&\s-2\u[9]\d\s+2 +が、Nmapとともに配布されている。Windows版Nmapでは、libpcapより派生した\m[blue]\fBWinPcap ライブラリ\fR\m[]\&\s-2\u[10]\d\s+2が用いられる。正規表現のサポートは、Philip Hazel氏作成のオープンソースのソフトウェアである +\m[blue]\fBPCRE ライブラリ\fR\m[]\&\s-2\u[11]\d\s+2パッケージで提供されている。特定のRAWネットワーク機能では、Dug Song氏作の\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[12]\d\s+2ネットワークライブラリが使用される。修正バージョンが、Nmapとともに配布されている。Nmapはオプションで、SSLバージョン検出をサポートするために、 +\m[blue]\fBOpenSSL 暗号化ツールキット\fR\m[]\&\s-2\u[13]\d\s+2 +とリンクできる。ここで述べたすべてのサードパーティ・ソフトウェアは、BSD方式のソフトウェアライセンスのもとで、自由に再配布できる。 +.SS "米国輸出管理分類" +.PP +米国輸出管理:Insecure\&.Com LLCでは、NmapはUS ECCN(輸出管理分類番号)5D992に該当すると考えている。5D992に分類されるものは、「5D002で規制されない情報セキュリティソフトウェア」となっており、この分類に唯一適用される規制は、AT(テロ防止)規制である。ATは、ほぼすべての物品に適用され、イランや北朝鮮などの少数の無法国家への輸出を禁止する規制である。このため、Nmapの輸出には、特別なライセンスや許可、あるいは政府の承認を一切必要としない。 +.SH "注記" +.IP " 1." 4 +RFC1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 2." 4 +RFC792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 3." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 4." 4 +TCP RFC +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 5." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 6." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP " 7." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP " 8." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP " 9." 4 +Libpcap portable packet capture library +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "10." 4 +WinPcap ライブラリ +.RS 4 +\%http://www.winpcap.org +.RE +.IP "11." 4 +PCRE ライブラリ +.RS 4 +\%http://www.pcre.org +.RE +.IP "12." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "13." 4 +OpenSSL 暗号化ツールキット +.RS 4 +\%http://www.openssl.org +.RE diff --git a/docs/man-xlate/nmap-man-de.xml b/docs/man-xlate/nmap-man-de.xml new file mode 100644 index 0000000..1365bf5 --- /dev/null +++ b/docs/man-xlate/nmap-man-de.xml @@ -0,0 +1,4344 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- $Id: nmap-man.xml 13215 2009-05-08 02:47:14Z fyodor $ --> +<article id="man" lang="de"> +<artheader> + <title>Nmap-Referenz-Handbuch (Man Page)</title> +</artheader> +<indexterm><primary>Manpage</primary><see>Referenz-Handbuch</see></indexterm> +<indexterm class="startofrange" id="man-nmap1-indexterm"><primary>Referenz-Handbuch (Manpage)</primary></indexterm> +<refentry id='man-nmap1'> + <refmeta> + <refentrytitle>nmap</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Nmap-Referenz-Handbuch</refmiscinfo> + </refmeta> + <refnamediv id='man-name'> + <refname>nmap</refname> + <refpurpose>Netzwerk-Analysewerkzeug und Sicherheits-/Portscanner</refpurpose> + </refnamediv> + <!-- body begins here --> + <refsynopsisdiv id='man-synopsis'> + <cmdsynopsis> + <command>nmap</command> + <arg choice='opt' rep='repeat'> + <replaceable>Scan Type</replaceable> + </arg> + <arg choice='opt'> + <replaceable>Options</replaceable> + </arg> + <arg choice='req'> + <replaceable>target specification</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1 id='man-description'> + <title>Beschreibung</title> + <indexterm><primary>Nmap</primary><secondary>Beschreibung</secondary></indexterm> + <web> + <note><para>Dieses Dokument beschreibt Nmap Version 4.85BETA8. Die + neueste Dokumentation ist in englischer Sprache verfügbar unter + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + +<para>Nmap (<quote>Network Mapper</quote>) ist ein Open-Source-Werkzeug +für die Netzwerkanalyse und Sicherheitsüberprüfung. Es wurde entworfen, +um große Netzwerke schnell zu scannen, auch wenn es bei einzelnen Hosts +auch gut funktioniert. Nmap benutzt rohe IP-Pakete auf neuartige Weise, +um festzustellen, welche Hosts im Netzwerk verfügbar sind, welche Dienste +(Anwendungsname und -version) diese Hosts bieten, welche Betriebssysteme +(und Versionen davon) darauf laufen, welche Art von +Paketfiltern/-Firewalls benutzt werden sowie Dutzende anderer +Eigenschaften. Auch wenn Nmap üblicherweise für Sicherheitsüberprüfungen +verwendet wird, wird es von vielen Systemen und Netzwerkadministratoren +für Routineaufgaben benutzt, z.B. Netzwerkinventarisierung, Verwaltung von +Ablaufplänen für Dienstaktualisierungen und die Überwachung von +Betriebszeiten von Hosts oder Diensten.</para> + +<para>Die Ausgabe von Nmap ist eine Liste gescannter Ziele mit zusätzlicher +Information zu jedem, abhängig von den benutzten Optionen. Die entscheidende +Information dabei steht in der <quote>Tabelle der interessanten +Ports</quote>.<indexterm><primary>Ports</primary><secondary sortas="interessante">interessante</secondary></indexterm> +Diese Tabelle listet die Portnummer und das -protokoll sowie den Dienstnamen +und -zustand auf. Der Zustand ist entweder +<literal>offen</literal>, <literal>gefiltert</literal>, +<literal>geschlossen</literal> oder <literal>ungefiltert</literal>. +<literal>Offen</literal><indexterm><primary><literal>offen</literal> Portzustand</primary></indexterm> +bedeutet, dass auf diesem Port des Zielrechners eine Anwendung +auf eingehende Verbindungen/Pakete lauscht. +<literal>Gefiltert</literal><indexterm><primary><literal>gefiltert</literal> Portzustand</primary></indexterm> +bedeutet, dass eine Firewall, ein Filter oder ein anderes +Netzwerkhindernis den Port blockiert, so dass Nmap nicht wissen kann, +ob er <literal>offen</literal> oder <literal>geschlossen ist</literal>. +Für <literal>geschlossene</literal><indexterm><primary><literal>geschlossen</literal> Portzustand</primary></indexterm> +Ports gibt es keine Anwendung, die auf ihnen lauscht, +auch wenn sie jederzeit geöffnet werden könnten. +Als <literal>ungefiltert</literal><indexterm><primary><literal>ungefiltert</literal> Portzustand</primary></indexterm> +werden Ports dann klassifiziert, wenn sie auf Nmaps Testpakete antworten, +Nmap aber nicht feststellen kann, ob sie offen oder gechlossen sind. +Nmap gibt die Zustandskombinationen +<literal>offen|gefiltert</literal><indexterm><primary><literal>offen|gefiltert</literal> Portzustand</primary></indexterm> +und <literal>geschlossen|gefiltert</literal><indexterm><primary><literal>geschlossen|gefiltert</literal> Portzustand</primary></indexterm> +an, wenn es nicht feststellen kann, welcher der beiden Zustände +für einen Port zutrifft. Die Port-Tabelle enthält eventuell auch Details +zur Softwareversion, sofern eine Versionserkennung verlangt wurde. +Wurde ein IP-Protokoll-Scan verlangt (<option>-sO</option>), dann +bietet Nmap Angaben über die unterstützten IP-Protokolle +statt über lauschende Ports.</para> + +<para>Zusätzlich zur Tabelle der interessanten Ports kann Nmap weitere +Angaben über Ziele bieten, darunter Reverse-DNS-Namen, Mutmaßungen über +das benutzte Betriebssystem, Gerätearten und MAC-Adressen.</para> + +<para>Einen typischen Nmap-Scan sehen Sie in +<xref linkend="man-ex-repscan" xrefstyle="select: label nopage" />. +Die einzigen in diesem Beispiel benutzten Nmap-Argumente sind +<option>-A</option> für die Betriebssystem- und Versionserkennung, +Script-Scanning und Traceroute und <option>-T4</option> für eine +schnellere Ausführung. Danach kommen die Namen der Zielhosts.</para> + +<example id="man-ex-repscan"><title>Ein repräsentativer Nmap-Scan</title> +<indexterm><primary><option>-A</option></primary><secondary>Beispiel</secondary></indexterm> +<screen> +# nmap -A -T4 scanme.nmap.org + +Starting Nmap ( https://nmap.org ) +Interesting ports on scanme.nmap.org (64.13.134.52): +Not shown: 994 filtered ports +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 4.3 (protocol 2.0) +25/tcp closed smtp +53/tcp open domain ISC BIND 9.3.4 +70/tcp closed gopher +80/tcp open http Apache httpd 2.2.2 ((Fedora)) +|_ HTML title: Go ahead and ScanMe! +113/tcp closed auth +Device type: general purpose +Running: Linux 2.6.X +OS details: Linux 2.6.20-1 (Fedora Core 5) + +TRACEROUTE (using port 80/tcp) +HOP RTT ADDRESS +[Cut first seven hops for brevity] +8 10.59 so-4-2-0.mpr3.pao1.us.above.net (64.125.28.142) +9 11.00 metro0.sv.svcolo.com (208.185.168.173) +10 9.93 scanme.nmap.org (64.13.134.52) + +Nmap done: 1 IP address (1 host up) scanned in 17.00 seconds +</screen> +</example> + +<para>Die neueste Version von Nmap erhält man unter +<ulink url="https://nmap.org" />, und die neueste Version der Manpage +ist unter <ulink url="https://nmap.org/book/man.html"/> verfügbar.</para> + + </refsect1> + + <refsect1 id='man-briefoptions'> + <title>Übersicht der Optionen</title> + +<para>Diese Übersicht wird ausgegeben, wenn Nmap ohne Argumente +aufgerufen wird; die neueste Version davon ist immer unter +<ulink url="https://nmap.org/data/nmap.usage.txt" /> verfügbar. +Sie hilft dabei, sich die am häufigsten benutzten Optionen zu merken, +ist aber kein Ersatz für die detaillierte Dokumentation im Rest +dieses Handbuchs. Einige obskure Optionen werden hier nicht einmal +erwähnt.</para> + +<!-- sortas="#" puts it before the entries that start with '-' in the options + section. --> +<indexterm class="startofrange" id="nmap-usage-indexterm"><primary sortas="#">Optionsübersicht</primary></indexterm> +<indexterm class="startofrange" id="nmap-usage-nmap-indexterm"><primary>Kommandozeilenoptionen</primary><secondary>von Nmap</secondary></indexterm> +<?dbfo-need height="1in"?> +<literallayout format="linespecific" class="normal">Nmap 4.85BETA8 ( 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 + -sP: Ping Scan - go no further than determining if host is online + -PN: Treat all hosts as online -- skip host discovery + -PS/PA/PU[portlist]: TCP SYN/ACK or UDP 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 + -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 + -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-trace: Show all data sent and received + --script-updatedb: Update the script database. +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 milliseconds, unless you append '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 + --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 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 twice or more for greater effect) + -d[level]: Set or increase debugging level (Up to 9 is meaningful) + --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: Enables OS detection and 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 -sP 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> + + +<indexterm class="endofrange" startref="nmap-usage-nmap-indexterm"/> +<indexterm class="endofrange" startref="nmap-usage-indexterm"/> + + </refsect1> + + <refsect1 id='man-target-specification'> + <title>Angabe von Zielen</title> + <indexterm><primary>Zielangabe</primary></indexterm> + +<para>Nmap betrachtet alles in der Kommandozeile, was keine Option (oder +ein Argument einer Option) ist, als Bezeichnung eines Zielhosts. Der +einfachste Fall ist die Beschreibung einer IP-Zieladresse oder eines +Zielhostnamens zum Scannen.</para> + +<para>Manchmal möchten Sie ein ganzes Netzwerk benachbarter Hosts scannen. +Dafür unterstützt Nmap Adressen im +CIDR-Stil.<indexterm><primary>CIDR (Classless Inter-Domain Routing)</primary></indexterm> +Sie können +/<replaceable>numbits</replaceable> an eine IPv4-Adresse oder einen Hostnamen +anfügen, und Nmap wird alle IP-Adressen scannen, bei denen die ersten +<replaceable>numbits</replaceable> mit denen der gegebenen IP oder des +gegebenen Hostnamens übereinstimmen. Zum Beispiel würde 192.168.10.0/24 die +256 Hosts zwischen 192.168.10.0 (binär: <literal>11000000 10101000 00001010 00000000</literal>) +und 192.168.10.255 (binär: <literal>11000000 10101000 00001010 11111111</literal>, inklusive) scannen. +192.168.10.40/24 würde genau dieselben Ziele scannen. Dadurch, dass der Host +<literal>scanme.nmap.org</literal><indexterm><primary><literal>scanme.nmap.org</literal></primary></indexterm> +die IP-Adresse 64.13.134.52 hat, würde die Angabe scanme.nmap.org/16 +die 65.536 IP-Adressen zwischen 64.13.0.0 und 64.13.255.255 scannen. +Der kleinste erlaubte Wert ist /0, der das gesamte Internet scannt. +Der größte Wert ist /32 und scannt lediglich den Host mit angegebenem Namen +oder IP-Adresse, da alle Adressen-Bits festgelegt sind.</para> + +<indexterm><primary>Adressbereiche</primary></indexterm> +<para>Die CIDR-Notation ist kurz, aber nicht immer flexibel genug. +Vielleicht möchten Sie z.B. 192.168.0.0/16 scannen, aber IPs auslassen, +die mit .0 oder .255 enden, weil sie als Unternetzwerk und Broadcast-Adressen +benutzt werden können. Nmap unterstützt das in Form einer +Oktett-Bereichsadressierung. +Statt eine normale IP-Adresse +anzugeben, können Sie eine mit Kommata getrennte Liste von Zahlen oder +Bereichen für jedes Oktett angeben. Zum Beispiel überspringt +192.168.0-255.1-254 alle Adressen im Bereich, die mit .0 oder .255 +enden, und 192.168.3-5,7.1 scannt die vier Adressen 192.168.3.1, +192.168.4.1, 192.168.5.1 und 192.168.7.1. Beide Bereichsgrenzen können +weggelassen werden, die Standardwerte sind 0 für die linke und 255 +für die rechte Grenze. Wenn Sie allein <literal>-</literal> benutzen, +ist das identisch mit 0-255, aber denken Sie daran, im ersten Oktett 0- +zu benutzen, damit die Zielangabe nicht wie eine Kommandozeilenoption +aussieht. +Diese Bereiche müssen nicht auf die endgültigen Oktetts beschränkt sein: +die Angabe 0-255.0-255.13.37 führt einen internetweiten Scan über alle +IP-Adressen aus, die mit 13.37 enden. Diese Art von breiter Abtastung +kann bei Internet-Umfragen und -Forschungen hilfreich sein.</para> + +<para>IPv6-Adressen können nur durch ihre vollständige IPv6-Adresse oder +ihren Hostnamen angegeben werden. CIDR und Oktettbereiche werden für IPv6 +nicht unterstützt, weil sie selten nützlich sind.</para> + +<para>Nmap akzeptiert in der Kommandozeile mehrere Host-Angaben, +die auch nicht vom selben Typ sein müssen. Der Befehl +<command>nmap scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.-</command> +macht also das, was Sie erwarten würden.</para> + +<para>Auch wenn Ziele normalerweise in der Kommandozeile angegeben werden, +gibt es auch die folgenden Optionen, um die Zielauswahl zu steuern:</para> + +<variablelist> +<varlistentry> +<term> +<option>-iL <replaceable>inputfilename</replaceable></option> (Eingabe aus +einer Liste) +<indexterm><primary><option>-iL</option></primary></indexterm> +<indexterm><primary>Zielangabe</primary><secondary>aus Liste</secondary></indexterm> +</term> +<listitem> +<para>Eine sehr lange Liste von Hosts in der Kommandozeile anzugeben +ist oft sehr umständlich, kommt aber sehr häufig vor. Ihr DHCP-Server +z.B. exportiert vielleicht eine Liste von 10.000 aktuellen Adresszuweisungen +(engl. leases), die Sie scannen möchten. Oder vielleicht möchten Sie +alle IP-Adressen <emphasis>außer</emphasis> denjenigen scannen, um Hosts +zu finden, die unautorisierte statische IP-Adressen benutzen. Erzeugen +Sie einfach die Liste der zu scannenden Hosts und übergeben Sie deren +Dateinamen als Argument zur Option <option>-iL</option> an Nmap. +Die Einträge dürfen alle Formate haben, die Nmap auf der Kommandozeile +akzeptiert (IP-Adresse, Hostname, CIDR, IPv6 oder Oktettbereiche). +Alle Einträge müssen durch ein oder mehrere Leerzeichen, Tabulatoren +oder Zeilenumbrüche getrennt sein. Wenn Sie einen Bindestrich +(<literal>-</literal>) als Dateinamen angeben, liest Nmap die Hosts +von der Standardeingabe statt aus einer normalen Datei.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>-iR <replaceable>num hosts</replaceable></option> (zufällige Auswahl von Zielen) +<indexterm><primary><option>-iR</option></primary></indexterm> +<indexterm><primary>randomisierte Ziele</primary></indexterm> +<indexterm><primary>Zielangabe</primary><secondary>randomisiert</secondary></indexterm> +</term> +<listitem> +<para>Für internetweite Umfragen und andere Forschungsaktivitäten möchten +Sie Ziele vielleicht zufällig auswählen. Das kann man mit der Option +<option>-iR</option>, die als Argument die Anzahl der zu erzeugenden IPs +annimmt. +Nmap lässt automatisch bestimmte unerwünschte IPs aus, +wie solche in privaten, Multicast- oder unbesetzten Adressbereichen. +Für einen endlosen Scan kann man das Argument <literal>0</literal> angeben. +Denken Sie aber daran, dass manche Netzwerkadministratoren sich gegen +unautorisierte Scans ihrer Netzwerke sträuben. Lesen Sie +<xref linkend="man-legal" /> sorgfältig, bevor Sie -iR benutzen.</para> + +<para>Falls Sie mal an einem regnerischen Tag wirklich Langeweile haben, +probieren Sie einmal den Befehl <command>nmap -sS -PS80 -iR 0 -p 80</command> +<indexterm><primary><option>-iR</option></primary><secondary>Beispiel</secondary></indexterm> +<indexterm><primary><option>-sS</option></primary><secondary>Beispiel</secondary></indexterm> +<indexterm><primary><option>-PS</option></primary><secondary>Beispiel</secondary></indexterm> +aus, um zufällig Webserver zu finden, auf denen Sie herumstöbern +können.</para> + +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>--exclude +<replaceable>host1</replaceable><optional>,<replaceable>host2</replaceable><optional>,...</optional></optional></option> (Ziele ausklammern) +<indexterm significance="preferred"><primary><option>--exclude</option></primary></indexterm> +<indexterm><primary>Ausklammern von Zielen</primary></indexterm> +</term> +<listitem> +<para>Gibt eine mit Kommata getrennte Liste von Zielen an, die vom +Scan ausgeschlossen sein sollen, selbst wenn sie in den angegebenen +Netzwerkbereich fallen. Die übergebene Liste benutzt die normale +Nmap-Syntax und kann folglich Hostnamen, CIDR-Netzblöcke, +Oktettbereiche usw. enthalten. Das kann nützlich sein, wenn das zu +scannende Netzwerk hochkritische Server und Systeme enthält, die man +nicht anfassen darf, weil sie bekanntermaßen ungünstig auf Port-Scans +reagieren, oder Unternetze, die von anderen Leuten administriert +werden.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>--excludefile <replaceable>exclude_file</replaceable></option> +(Liste aus Datei ausklammern) +<indexterm significance="preferred"><primary><option>--excludefile</option></primary></indexterm> +</term> +<listitem> +<para>Das bietet dieselbe Funktionalität wie die Option +<option>--exclude</option>, mit dem Unterschied, dass die ausgeklammerten +Ziele in der mit Zeilenumbrüchen, Leerzeichen oder Tabulatoren getrennten +Datei <replaceable>exclude_file</replaceable> statt auf der Kommandozeile +angegeben werden.</para> +</listitem> +</varlistentry> +</variablelist> +</refsect1> + + +<refsect1 id='man-host-discovery'> +<title>Host-Erkennung</title> +<indexterm class="startofrange" id="man-host-discovery-indexterm"><primary>Host-Erkennung</primary></indexterm> + +<para>Einer der allerersten Schritte bei jeder Netzwerkerkundung ist die +Reduktion einer (manchmal riesigen) Menge von IP-Bereichen auf eine Liste +aktiver oder interessanter Hosts. Wenn man für alle einzelnen IP-Adressen +alle Ports scannt, so ist das nicht nur langsam, sondern normalerweise auch +unnötig. Was einen Host interessant macht, hängt natürlich stark vom Zweck +der Untersuchung ab. Netzwerkadministratoren interessieren sich vielleicht +nur für Hosts, auf denen ein bestimmter Dienst läuft, während +Sicherheitsprüfer sich vielleicht für alle Geräte interessieren, die eine +IP-Adresse haben. Ein Administrator benötigt vielleicht nur einen ICMP-Ping, +um Hosts in seinem internen Netzwerk zu finden, während ein externer +Penetrationstester vielleicht Dutzende ganz verschiedener Tests einsetzen +wird, um zu versuchen, die Firewall-Beschränkungen zu umgehen.</para> + +<para>Da die Anforderungen bei der Host-Erkennung so verschieden sind, bietet +Nmap eine breite Palette von Optionen zur Anpassung der eingesetzten +Verfahren. Trotz seines Namens geht ein Ping-Scan weit über die einfachen +ICMP Echo-Request-Pakete hinaus, die mit dem allgegenwärtigen Werkzeug +<application>ping</application> verbunden sind. Man kann den Ping-Schritt +völlig auslassen, indem man einen List-Scan (<option>-sL</option>) benutzt, +Ping ausschaltet (<option>-PN</option>) oder beliebige Kombinationen +von Multi Port TCP-SYN/ACK, UDP- und ICMP-Testanfragen auf ein Netzwerk +loslässt. Der Zweck dieser Anfragen ist der, Antworten hervorzurufen, +die zeigen, dass eine IP-Adresse tatsächlich aktiv ist (d.h. von einem +Host oder Gerät im Netzwerk benutzt wird). In vielen Netzwerken ist nur ein +kleiner Prozentsatz von IP-Adressen zu einem bestimmten Zeitpunkt aktiv. +Das gilt besonders für einen privaten Adressraum wie 10.0.0.0/8. Dieses +Netzwerk enthält 16,8 Millionen IPs, aber ich habe auch Firmen gesehen, die +es mit weniger als tausend Rechnern benutzen. Mit der Host-Erkennung kann +man diese spärlichen Rechnerinseln in einem Meer von IP-Adressen finden.</para> + +<para>Falls keine Optionen für die Host-Erkennung angegeben werden, +sendet Nmap ein TCP-ACK-Paket an Port 80 und ein ICMP Echo-Request an +alle Zielrechner. Eine Ausnahme ist, dass bei allen Zielen in einem +lokalen Ethernet-Netzwerk ein ARP-Scan benutzt wird. Für unprivilegierte +Unix-Shell-Benutzer wird mit dem <function>connect</function>-Systemaufruf +ein SYN-Paket statt eines ACK +gesendet.<indexterm><primary>Benutzer ohne Sonderrechte</primary><secondary>Beschränkungen</secondary></indexterm> +Diese Standardeinstellungen sind äquivalent zu den Optionen +<option>-PA -PE</option>. Diese Host-Erkennung ist oft ausreichend, +wenn man lokale Netzwerke scannt, aber für Sicherheitsüberprüfungen +empfiehlt sich eine umfangreichere Menge von Erkennungstestpaketen.</para> + +<para>Die Optionen <option>-P*</option> (die Ping-Typen auswählen) +lassen sich kombinieren. Sie können Ihre Chancen steigern, bei strengen +Firewalls durchzukommen, indem Sie viele Testpaketarten mit verschiedenen +TCP-Ports/-Flags und ICMP-Codes senden. Beachten Sie auch, dass die +ARP-Erkennung +(<option>-PR</option>)<indexterm><primary><option>-PR</option></primary></indexterm> +bei Zielen in einem lokalen Ethernet-Netzwerk standardmäßig erfolgt, +selbst dann, wenn Sie andere <option>-P*</option>-Optionen angeben, +weil sie fast immer schneller und effizienter ist.</para> + +<para>Standardmäßig führt Nmap eine Host-Erkennung und dann einen +Port-Scan auf jedem Host aus, den es als online erkennt. Das gilt auch +dann, wenn Sie nicht standardmäßige Host-Erkennungstypen wie UDP-Testpakete +(<option>-PU</option>) angeben. Lesen Sie über die Option +<option>-sP</option> nach, um zu lernen, wie man nur eine Host-Erkennung +durchführt, oder über <option>-PN</option>, um die Host-Erkennung zu +überspringen und einen Port-Scan aller Zielhosts durchzuführen. Folgende +Optionen steuern die Host-Erkennung:</para> + +<variablelist> + +<varlistentry> +<term> +<option>-sL</option> (List-Scan) +<indexterm><primary><option>-sL</option></primary></indexterm> +<indexterm><primary>List-Scan</primary></indexterm> +</term> +<listitem> +<para>Ein List-Scan ist eine degenerierte Form der Host-Erkennung, die einfach +jeden Host im angegebenen Netzwerk (bzw. den Netzwerken) auflistet, ohne +Pakete an die Ziel-Hosts zu senden. Standardmäßig führt Nmap immer noch eine +Reverse-DNS-Auflösung der Hosts durch, um deren Namen zu lernen. +Es ist oft erstaunlich, wie viel nützliche Informationen einfache +Hostnamen verraten. Zum Beispiel ist <literal>fw.chi</literal> +der Name einer Firewall einer Firma in Chicago. +<indexterm><primary>DNS</primary><secondary>Einträge als Informationsquelle</secondary></indexterm> +Nmap gibt am Ende auch die gesamte Anzahl der IP-Adressen aus. +Ein List-Scan ist eine gute +Plausibilitätsprüfung, um sicherzustellen, dass Sie saubere IP-Adressen +für Ihre Ziele haben. Falls die Hosts Domainnamen enthalten, die Ihnen nichts +sagen, lohnt sich eine weitere Untersuchung, um zu verhindern, dass Sie das +Netzwerk der falschen Firma scannen.</para> + +<para>Da die Idee einfach die ist, eine Liste der Zielhosts auszugeben, +lassen sich Optionen für eine höhere Funktionalität wie z.B. Port-Scanning, +Betriebssystemerkennung oder Ping-Scanning damit nicht kombinieren. +Falls Sie einen Ping-Scan abschalten und trotzdem solch höhere +Funktionalität durchführen möchten, lesen Sie bei der Option +<option>-PN</option> weiter.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>-sP</option> (Ping-Scan) +<indexterm><primary><option>-sP</option></primary></indexterm> +<indexterm><primary>Ping-Scan</primary></indexterm> +</term> +<listitem> +<para>Diese Option verlangt, dass Nmap nur einen Ping-Scan +(Host-Erkennung) durchführt und dann die verfügbaren Hosts +ausgibt, die auf den Scan geantwortet haben. +Darüber hinaus werden keine weiteren Tests (z.B. +Port-Scans oder Betriebssystemerkennung) durchgeführt, außer bei +Host-Scripts mit der Nmap Scripting Engine und traceroute-Tests, +sofern Sie diese Optionen angegeben haben. +Das ist eine Stufe aufdringlicher als ein List-Scan +und kann oft für dieselben Zwecke benutzt werden. Sie führt schnell eine +schwache Aufklärung des Zielnetzwerks durch, ohne viel Aufmerksamkeit zu +erregen. Für Angreifer ist es wertvoller, zu wissen, wie viele Hosts +verfügbar sind, als die Liste aller IPs und Hostnamen aus einem +List-Scan zu kennen.</para> + +<para>Für Systemadministratoren ist diese Option oft ebenfalls wertvoll. +Mit ihr kann man sehr leicht die verfügbaren Rechner in einem Netzwerk +zählen oder die Server-Verfügbarkeit überwachen. So etwas nennt man oft auch +einen Ping-Sweep, und es ist zuverlässiger als ein Pinging auf die +Broadcast-Adresse, weil viele Hosts auf Broadcast-Anfragen nicht +antworten.</para> + +<para>Die Option <option>-sP</option> sendet standardmäßig einen +ICMP Echo-Request und ein TCP-ACK-Paket an Port 80. Bei Ausführung +ohne Sonderrechte wird nur ein SYN-Paket (mit einem +<function>connect</function>-Aufruf) an Port 80 an das Ziel gesendet. +Wenn ein Benutzer mit Sonderrechten versucht, Ziele in einem lokalen +Ethernet-Netzwerk zu scannen, werden ARP-Requests verwendet, es sei +denn, die Option <option>--send-ip</option> wird angegeben. +Die Option <option>-sP</option> kann mit allen Erkennungsmethoden +(die Optionen <option>-P*</option>, außer <option>-PN</option>) +kombiniert werden, um eine höhere Flexibilität zu erhalten. +Falls zwischen dem Ausgangs-Host, auf dem Nmap läuft, und dem Zielnetzwerk +strenge Firewalls installiert sind, empfehlen sich diese fortgeschrittenen +Methoden. Ansonsten könnten Hosts übersehen werden, wenn die Firewall +Testanfragen oder Antworten darauf verwirft</para> + +</listitem> +</varlistentry> + + +<varlistentry> +<term> +<option>-PN</option> (Ping abschalten) +<indexterm><primary><option>-PN</option></primary></indexterm> +<indexterm><primary>Host-Erkennung</primary><secondary>ausschalten</secondary></indexterm> +</term> +<listitem> +<para>Eine weitere Möglichkeit ist die, die Erkennungsphase von Nmap völlig +auszulassen. Normalerweise bestimmt Nmap in dieser Phase aktive Rechner, +die es anschließend stärker scannt. Standardmäßig führt Nmap heftigere +Tests wie Port-Scans, Versions- oder Betriebssystemerkennung bei Hosts +durch, die es bereits als aktiv eingestuft hat. Das Ausschalten der +Host-Erkennung mit der Option <option>-PN</option> bewirkt, dass Nmap +versucht, die gewünschten Scan-Funktionen auf +<emphasis>allen</emphasis> angegebenen Ziel-IP-Adresssen durchzuführen. +Wenn also ein Zieladressraum der Größe Klasse B (/16) auf der Kommandozeile +angegeben wird, werden alle 65.536 IP-Adressen gescannt. +Eine richtige Host-Erkennung wird wie bei einem List-Scan übersprungen, +aber statt anzuhalten und die Zielliste auszugeben, fährt Nmap mit +der Durchführung der gewünschten Funktionen fort, so als ob jede Ziel-IP +aktiv wäre. +Bei Rechnern im lokalen Ethernet-Netzwerk wird ein ARP-Scan weiterhin +ausgeführt (es sei denn, es wird <option>--send-ip</option> angegeben), +da Nmap MAC-Adressen braucht, um Zielhosts weiter zu scannen. Diese Option +lautete früher einaml <option>P0</option> (mit einer Null), wurde dann +aber umbenannt, um Verwirrung mit der Option <option>PO</option> von +Protokoll-Pings (benutzt den Buchstaben O) zu vermeiden.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>-PS <replaceable>port list</replaceable></option> (TCP-SYN-Ping) +<indexterm><primary><option>-PS</option></primary></indexterm> +<indexterm><primary>SYN-Ping</primary></indexterm> +</term> +<listitem> + +<para>Diese Option sendet ein leeres TCP-Paket mit gesetztem SYN-Flag. +Der vorgegebene Zielport ist 80 (lässt sich zum Zeitpunkt des +Kompilierens durch Ändern von +<varname>DEFAULT_TCP_PROBE_PORT_SPEC</varname><indexterm><primary><varname>DEFAULT_TCP_PROBE_PORT_SPEC</varname></primary></indexterm> +in <filename>nmap.h</filename> +konfigurieren),<indexterm><primary><filename>nmap.h</filename></primary></indexterm> +aber man kann einen alternativen Port als Parameter angeben. +Die Syntax ist dieselbe wie bei <option>-p</option>, mit dem Unterschied, +dass Porttypenbezeichner wie <literal>T:</literal> nicht erlaubt sind. +Beispiele hierfür sind <option>-PS22</option> und +<option>-PS22-25,80,113,1050,35000</option>. Beachten Sie, dass es +kein Leerzeichen zwischen <option>-PS</option> und der Port-Liste +geben darf. Falls mehrere Tests angegeben werden, werden sie +parallel durchgeführt.</para> + +<para>Das SYN-Flag bedeutet für das entfernte System, dass Sie versuchen, +eine Verbindung herzustellen. Normalerweise wird der Zielport geschlossen +sein, und es wird ein RST-(Reset-)Paket zurückgeschickt. Falls der Port +offen ist, führt das Ziel den zweiten Schritt eines TCP-three-way-handshake +<indexterm><primary>Three-way-Handshake</primary></indexterm> durch, indem +es mit einem SYN/ACK-TCP-Paket antwortet. Der Rechner, auf dem Nmap läuft, +bricht dann die entstehende Verbindung ab, indem er mit einem RST antwortet, +statt ein ACK-Paket zu senden, mit dem der three-way handshake komplett und +eine vollständige Verbindung hergestellt wäre. Das RST-Paket +wird als Antwort auf das unerwartete SYN/ACK vom Betriebssystem-Kernel des +Rechners gesendet, auf dem Nmap läuft, nicht von Nmap selbst.</para> + +<para>Für Nmap ist es egal, ob der Port offen oder geschlossen ist. Aus beiden +Antworten, ob RST oder SYN/ACK, schließt Nmap, dass der Host verfügbar ist +und antwortet.</para> + +<para>Auf Unix-Rechnern kann im Allgemeinen nur der mit Sonderrechten +ausgestattete Benutzer +<literal>root</literal><indexterm><primary>Benutzer mit Sonderrechten</primary></indexterm> +rohe TCP-Pakete senden und +empfangen.<indexterm><primary>rohe Pakete</primary></indexterm> +Bei normalen Benutzern kommt automatisch eine Umgehungslösung zum +Tragen,<indexterm><primary>Benutzer ohne Sonderrechte</primary><secondary>Beschränkungen</secondary></indexterm> +bei der für alle Zielports der <function>connect</function>-Systemaufruf +verwendet wird. Das bewirkt, dass an den Zielhost ein SYN-Paket gesendet +wird, mit der Absicht, eine Verbindung herzustellen. Falls +<function>connect</function> schnell ein erfolgreiches Ergebnis oder +einen ECONNREFUSED-Fehler zurückgibt, muss der darunterliegende TCP-Stack +ein SYN/ACK oder RST empfangen haben, und der Host wird als verfügbar +vermerkt. Falls der Verbindungsversuch hängenbleibt, bis eine +Zeitbeschränkung erreicht ist, wird der Host als inaktiv vermerkt. +Diese Behelfslösung wird auch bei IPv6-Verbindungen +verwendet, da Nmap den Bau roher IPv6-Pakete noch nicht +unterstützt.<indexterm><primary>IPv6</primary><secondary>Beschränkungen</secondary></indexterm> +</para> + +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>-PA <replaceable>port list</replaceable></option> (TCP-ACK-Ping) +<indexterm><primary><option>-PA</option></primary></indexterm> +<indexterm><primary>ACK-Ping</primary></indexterm> +</term> +<listitem> +<para>Der TCP-ACK-Ping ist ziemlich ähnlich zum SYN-Ping. Der Unterschied +ist der, dass das TCP-ACK-Flag statt dem SYN-Flag gesetzt wird, was Sie +sich bestimmt schon gedacht haben. Ein solches ACK-Paket erweckt den +Eindruck, es wolle Daten auf einer bestehenden TCP-Vebindung bestätigen, +während eine solche Verbindung gar nicht existiert. Entfernte Hosts sollten +darauf immer mit einem RST-Paket antworten, wobei sie ihre Existenz +verraten.</para> + +<para>Die Option <option>-PA</option> benutzt denselben Standard-Port wie der +SYN-Test (80) und nimmt ebenfalls eine Liste von Zielports im selben Format +an. Falls ein unprivilegierter Benutzer das ausprobiert oder falls ein IPv6-Ziel +angegeben wird, wird die bereits erwähnte Behelfslösung mit +<function>connect</function> eingesetzt. Diese ist nicht perfekt, +da <function>connect</function> tatsächlich ein +SYN-Paket statt eines ACK sendet.</para> + +<para>Der Grund für die Existenz sowohl von SYN- als auch ACK-Ping-Tests +liegt darin, die Chancen für die Umgehung von Firewalls zu erhöhen. Viele +Administratoren konfigurieren Router und andere einfache Firewalls so, +dass sie eingehende SYN-Pakete blockieren, außer bei solchen für öffentliche +Dienste wie bei der Website oder dem Mailserver der Firma. Das verhindert +weitere eingehende Verbindungen zur Organisation, während es den Benutzern +freie Verbindungen ins Internet erlaubt. Dieser zustandslose Ansatz benötigt +wenige Ressourcen in der Firewall bzw. im Router und wird von Hardware- und +Software-Filtern weithin unterstützt. Die Firewall-Software +Netfilter/iptables<indexterm><primary>iptables</primary></indexterm> +in Linux bietet die komfortable Option <option>--syn</option>, um diesen +zustandslosen Ansatz zu implementieren. Wenn solche Firewall-Regeln +vorhanden sind, werden SYN-Ping-Tests +(<option>-PS</option>), die an geschlossene Zielports gesendet werden, +sehr wahrscheinlich blockiert. In solchen Fällen greift der ACK-Test, +da er diese Regeln einfach kappt.</para> + +<para>Eine weitere häufige Art von Firewalls verwendet zustandsbehaftete +Regeln, die unerwartete Pakete verwerfen. Dieses Merkmal konnte man zuerst +bei hochwertigen Firewalls finden, es hat sich aber mit der Zeit deutlich +verbreitet. In Linux unterstützt das Netfilter/iptables-System das mit der +Option <literal>--state</literal>, die Pakete nach einem Verbindungszustand +kategorisiert. In solchen Fällen hat der SYN-Test eine wesentlich +bessere Chance auf Erfolg, da unerwartete ACK-Pakete im Allgemeinen als +fehlerhaft erkannt und verworfen werden. Eine Lösung aus diesem Dilemma +besteht darin, mit <option>-PS</option> und <option>-PA</option> +SYN- und ACK-Testpakete zu senden.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>-PU <replaceable>port list</replaceable></option> (UDP-Ping) +<indexterm><primary><option>-PU</option></primary></indexterm> +<indexterm><primary>UDP-Ping</primary></indexterm> +</term> +<listitem> + +<para>Eine weitere Möglichkeit bei der Host-Erkennung ist der UDP-Ping, +bei dem ein leeres (außer bei Angabe von <option>--data-length</option>) +UDP-Paket an die angegebenen Ports gesendet wird. Die Portliste hat dasselbe +Format wie bei den weiter oben beschriebenen Optionen <option>-PS</option> +und <option>-PA</option>. Falls keine Ports angegeben werden, ist die +Standardeinstellung 31338. Dieser Wert kann zum Zeitpunkt des Kompilierens +dürch Änderung von +<varname>DEFAULT_UDP_PROBE_PORT_SPEC</varname><indexterm><primary><varname>DEFAULT_UDP_PROBE_PORT_SPEC</varname></primary></indexterm> +in <filename>nmap.h</filename> konfiguriert werden.<indexterm><primary><filename>nmap.h</filename></primary></indexterm> +Es wird absichtlich ein sehr unwahrscheinlicher Port verwendet, weil bei +dieser bestimmten Art des Scannens das Senden an offene Ports oft unerwünscht +ist.</para> + +<para>Trifft der UDP-Test beim Zielrechner auf einen geschlossenen Port, +so sollte dieser ein ICMP-Paket zurückschicken, das besagt, dass der Port +nicht erreichbar ist. Daraus schließt Nmap, dass der Rechner läuft und +verfügbar ist. Viele weitere Arten von ICMP-Fehlern, z.B. bei unerreichbaren +Hosts/Netzwerken oder überschrittener TTL (Time To Live), sind Zeichen für +einen abgeschalteten oder unerreichbaren Host. Auch eine ausbleibende Antwort +wird so interpretiert. Falls ein offener Port erreicht wird, ignorieren die +meisten Dienste das leere Paket einfach und geben keine Antwort zurück. Deswegen +wird als Standardport 31338 benutzt, bei dem es sehr unwahrscheinlich ist, +dass er benutzt wird. Einige Dienste, wie z.B. das Character +Generator-Protokoll (chargen), antworten auf ein leeres UDP-Paket und enthüllen +damit Nmap gegenüber, dass der Rechner zugänglich ist.</para> + +<para>Der Hauptvorteil dieses Scan-Typs liegt darin, dass er Firewalls und +Filter umgeht, die nur TCP überprüfen. Ich hatte z.B. einmal ein BEFW11S4, +einen Wireless-Breitband-Router von Linksys. Die externe Schnittstelle dieses +Geräts filterte standardmäßig alle TCP-Ports, aber UDP-Tests entlockten ihm +weiterhin Meldungen über unerreichbare Ports und verrieten damit das +Gerät.</para> + +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>-PE</option>; +<option>-PP</option>; +<option>-PM</option> (ICMP-Ping-Arten) +<indexterm><primary><option>-PE</option></primary></indexterm> +<indexterm><primary><option>-PP</option></primary></indexterm> +<indexterm><primary><option>-PM</option></primary></indexterm> +<indexterm><primary>ICMP-Ping</primary></indexterm> +</term> +<listitem> + +<para>Zusätzlich zu den genannten ungewöhnlichen TCP- und +UDP-Host-Erkennungsarten kann Nmap auch Standardpakete senden, wie sie +das allgegenwärtige Programm <application>ping</application> sendet. Nmap +sendet ein ICMP Typ-8-Paket (Echo-Request) an die Ziel-IP-Adressen und +erwartet eine Typ-0-Antwort (Echo-Reply) vom verfügbaren Host.<indexterm><primary>ICMP Echo</primary></indexterm> +Zum Leidwesen von Netzwerkerkundern blockieren viele Hosts und +Firewalls heute diese Pakete, statt, wie in +<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC 1122</ulink> verlangt, +darauf zu antworten. Aus diesem Grund sind ICMP-Scans allein bei +unbekannten Zielen über das Internet selten zuverlässig genug. Aber für +Systemadministratoren, die ein internes Netzwerk überwachen, kann das ein +praktischer und wirksamer Ansatz sein. Benutzen Sie die Option +<option>-PE</option>, um dieses Verhalten mit Echo-Requests +einzuschalten.</para> + +<para>Auch wenn ein Echo-Request die Standard-ICMP-Ping-Abfrage +ist, hört Nmap hier nicht auf. Der ICMP-Standard +(<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC 792</ulink>) +spezifiziert auch Anfragepakete für Zeitstempel, Information und +Adressmaske mit den jeweiligen Codes 13, 15 und 17. +Während diese Anfragen +angeblich den Zweck haben, an Informationen wie Address Mask und Timestamp zu +gelangen, können sie auch leicht für die Host-Erkennung benutzt werden. +Im Moment implementiert Nmap keine Information-Request-Pakete, da sie +nicht weit verbreitet sind (RFC 1122 besteht darauf, dass <quote>ein Host +diese Nachrichten NICHT implementieren SOLLTE</quote>). +Anfragen nach Timestamp und Address Mask können jeweils mit den +Optionen <option>-PP</option> und <option>-PM</option> +gesendet werden. Eine Timestamp-Antwort (ICMP-Code 14) oder +Address-Mask-Antwort (Code 18) +enthüllt, dass der Host greifbar ist. Diese beiden +Abfragen können wertvoll sein, wenn Administratoren ausdrücklich +Echo-Request-Pakete blockieren, aber vergessen, dass man für den +gleichen Zweck auch andere ICMP-Abfragen benutzen kann.</para> + +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>-PO <replaceable>protocol list</replaceable></option> (IP-Protokoll-Ping) +<indexterm><primary><option>-PO</option></primary></indexterm> +<indexterm><primary>IP-Protokoll-Ping</primary></indexterm> +</term> +<listitem> + +<para>Die neueste Möglichkeit der Host-Erkennung ist ein IP-Protokoll-Ping, +der IP-Pakete sendet, in deren IP-Header die angegebene Protokollnummer +gesetzt ist. Die Protokoll-Liste hat dasselbe Format wie Portlisten bei +den weiter oben vorgestellten Optionen der TCP- und UDP-Host-Erkennung. +Ohne Angabe von Protokollen werden standardmäßig mehrere IP-Pakete für +ICMP (Protokoll 1), IGMP (Protokoll 2) und IP-in-IP (Protokoll 4) gesendet. +Die Standardprotokolle können zum Zeitpunkt des Kompilierens durch +Veränderung von <varname>DEFAULT_PROTO_PROBE_PORT_SPEC</varname><indexterm><primary><varname>DEFAULT_PROTO_PROBE_PORT_SPEC</varname></primary></indexterm> +in <filename>nmap.h</filename> konfiguriert werden. +Beachten Sie, dass für ICMP, IGMP, TCP (Protokoll 6) und UDP (Protokoll 17) +die Pakete mit den richtigen Protokoll-Headern gesendet werden, während +andere Protokolle ohne weitere Daten über den IP-Header hinaus gesendet werden +(es sei denn, die Option <option>--data-length</option> wird angegeben).</para> + +<para>Diese Methode der Host-Erkennung sucht nach Antworten, die entweder +dasselbe Protokoll wie der Test haben, oder Meldungen, dass das +ICMP-Protokoll nicht erreichbar ist, was bedeutet, dass das gegebene +Protokoll vom Zielhost nicht unterstützt wird. Beide Antworten bedeuten, +dass der Zielhost am Leben ist.</para> + +</listitem> +</varlistentry> +<varlistentry> +<term> +<option>-PR</option> (ARP-Ping) +<indexterm><primary><option>-PR</option></primary></indexterm> +<indexterm><primary>ARP-Ping</primary></indexterm> +</term> +<listitem> + +<para>Eines der häufigsten Einsatzszenarien für Nmap ist das Scannen eines +Ethernet-LANs. In den meisten LANs, besonders jenen, die durch +<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc1918.txt">RFC 1918</ulink> erteilte +private Adressbereiche verwenden, wird der Großteil der IP-Adressen meistens +nicht genutzt. Wenn Nmap versucht, ein rohes IP-Paket wie z.B. ein +ICMP Echo-Request zu senden, muss das Betriebssystem die der Ziel-IP +entsprechende Hardware-Zieladresse (ARP) bestimmen, damit es den +Ethernet-Frame korrekt adressieren kann. Das ist oft langsam und +problematisch, da Betriebssysteme nicht in der Erwartung geschrieben +wurden, dass sie in kurzer Zeit Millionen von ARP-Anfragen bei nicht +erreichbaren Hosts durchführen müssen.</para> + +<para>Beim ARP-Scan ist Nmap mit seinen optimierten Algorithmen +zuständig für ARP-Anfragen. Und wenn es eine Antwort erhält, muss +sich Nmap nicht einmal um die IP-basierten Ping-Pakete kümmern, da +es bereits weiß, dass der Host aktiv ist. Das macht den ARP-Scan +viel schneller und zuverlässiger als IP-basierte Scans. +Deswegen wird er standardmäßig ausgeführt, wenn Ethernet-Hosts +gescannt werden, bei denen Nmap bemerkt, dass sie sich in einem +lokalen Ethernet-Netzwerk befinden. Selbst wenn verschiedene Ping-Arten +(wie z.B. <option>-PE</option> oder <option>-PS</option>) angegeben +werden, benutzt Nmap stattdessen ARP bei allen Zielen, die im selben +LAN sind. Wenn Sie einen ARP-Scan auf gar keinen Fall durchführen +möchten, geben Sie <option>--send-ip</option> an.</para> + +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>--traceroute</option> (Traceroutes zum Host) +<indexterm significance="preferred"><primary><option>--traceroute</option></primary></indexterm> +<indexterm significance="preferred"><primary>traceroute</primary></indexterm> +</term> +<listitem> + +<para> +Traceroutes werden nach einem Scan mit Hilfe der Information aus den +Scan-Ergebnissen durchgeführt, um den wahrscheinlichsten Port und das +wahrscheinlichste Protokoll zu bestimmen, die zum Ziel führen. Es +funktioniert mit allen Scan-Arten außer Connect-Scans +(<option>-sT</option>) und Idle-Scans (<option>-sI</option>). +Alle Traces benutzen Nmaps dynamisches Timing-Modell und werden parallel +durchgeführt. +</para> + +<para> +Traceroute funktioniert dadurch, dass es Pakete mit kurzer TTL +(Time To Live) sendet und damit versucht, ICMP Time-Exceeded-Nachrichten +von Sprungstellen zwischen dem Scanner und dem Zielhost hervorzurufen. +Standardimplementationen von Traceroute fangen mit einer TTL von 1 an +und inkrementieren die TTL, bis der Zielhost erreicht ist. Nmaps +Traceroute fängt mit einer hohen TTL an und verringert sie, bis sie +Null erreicht. Durch dieses umgekehrte Vorgehen kann Nmap clevere +Caching-Algorithmen benutzen, um Traces über mehrere Hosts zu +beschleunigen. Im Durchschnitt sendet Nmap je nach Netzwerkbedingungen +5–10 Pakete weniger pro Host. Wenn ein einziges Unternetz gescannt +wird (z.B. 192.168.0.0/24), muss Nmap an die meisten Hosts eventuell nur ein +einziges Paket senden. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>-n</option> (keine DNS-Auflösung) +<indexterm><primary><option>-n</option></primary></indexterm> +</term> +<listitem> + +<para>Weist Nmap an, <emphasis>niemals</emphasis> eine +Reverse-DNS-Auflösung<indexterm><primary>Reverse-DNS</primary><secondary>ausschalten mit <option>-n</option></secondary></indexterm> +bei den gefundenen aktiven IP-Adressen durchzuführen. +Da DNS selbst mit Nmaps eingebautem parallelen Stub-Resolver +langsam sein kann, kann diese Option die Scan-Zeiten dramatisch +reduzieren.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>-R</option> (DNS-Auflösung für alle Ziele) +<indexterm><primary><option>-R</option></primary></indexterm> +</term> +<listitem> +<para>Weist Nmap an, <emphasis>immer</emphasis> eine +Reverse-DNS-Auflösung bei den Ziel-IP-Adressen durchzuführen. +Normalerweise wird Reverse-DNS nur bei anwortenden Hosts +(die online sind) durchgeführt.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>--system-dns</option> (verwendet DNS-Auflösung des Systems) +<indexterm significance="preferred"><primary><option>--system-dns</option></primary></indexterm> +</term> +<listitem> + +<para>Standardmäßig löst Nmap IP-Adressen auf, indem es Anfragen direkt +an die auf Ihrem Host konfigurierten Nameserver schickt und dann auf +Antworten wartet. Um die Performance zu erhöhen, werden viele Anfragen +(oftmals Dutzende) parallel ausgeführt. +Wenn Sie diese Option angeben, verwenden Sie stattdessen die +Auflösungsmethode Ihres Systems (zu jedem Zeitpunkt nur eine IP mit dem +Aufruf <function>getnameinfo</function> call). Das ist langsam und selten +nützlich, es sei denn, Sie finden einen Fehler bei der parallelen +Auflösung in Nmap (bitte teilen Sie uns das mit). Bei IPv6-Scans wird +immer die Auflösungsmethode des Systems verwendet. +<indexterm><primary>IPv6</primary><secondary>Beschränkungen</secondary></indexterm> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>--dns-servers <replaceable>server1</replaceable><optional>,<replaceable>server2</replaceable><optional>,...</optional></optional> +</option> (Server, die für Reverse-DNS-Anfragen benutzt werden) +<indexterm significance="preferred"><primary><option>--dns-servers</option></primary></indexterm> +</term> +<listitem> + +<para>Standardmäßig bestimmt Nmap Ihre DNS-Server (für die +rDNS-Auflösung) aus Ihrer Datei resolv.conf (Unix) oder der +Registry (Win32). Mit dieser Option können Sie alternative Server +dazu angeben. Diese Option bleibt unbeachtet, falls Sie +<option>--system-dns</option> oder einen IPv6-Scan benutzen. Oft ist +es schneller, mehrere DNS-Server zu benutzen, besonders dann, wenn +Sie für Ihren Ziel-IP-Raum maßgebende Server benutzen. Diese Option +kann auch die Heimlichkeit erhöhen, da Ihre Anfragen von fast jedem +rekursiven DNS-Server im Internet abprallen können.</para> + +<para>Diese Option ist auch beim Scannen privater Netzwerke praktisch. +Manchmal bieten nur einige wenige Nameserver saubere rDNS-Information, +und Sie wissen vielleicht nicht einmal, wo sie sind. Sie können das +Netzwerk auf Port 53 scannen (vielleicht mit Versionserkennung), dann +Nmap-List-Scans versuchen (<option>-sL</option>) und dabei mit der +Option <option>--dns-servers</option> immer nur einen Nameserver +angeben, bis Sie einen finden, der funktioniert.</para> + + +</listitem> +</varlistentry> +</variablelist> +<indexterm class="endofrange" startref="man-host-discovery-indexterm"/> +</refsect1> + +<refsect1 id='man-port-scanning-basics'> +<title>Grundlagen von Port-Scans</title> + +<para>Nmap hat über die Jahre an Funktionalität zugelegt, aber angefangen +hat es als effizienter Port-Scanner, und das ist weiterhin seine Kernfunktion. +Der einfache Befehl +<command>nmap <replaceable>target</replaceable></command> scannt die am +häufigsten verwendeten 1000 TCP-Ports auf dem Host +<replaceable>target</replaceable> und klassifiziert jeden Port in einen der +Zustände +<literal>offen</literal>, <literal>geschlossen</literal>, +<literal>gefiltert</literal>, <literal>ungefiltert</literal>, +<literal>offen|gefiltert</literal> oder +<literal>geschlossen|gefiltert</literal>.</para> + +<para>Diese Zustände sind +keine echten Eigenschaften eines Ports selbst, sondern beschreiben, wie Nmap +ihn sieht. Ein Nmap-Scan z.B., bei dem Ausgangs- und Zielnetzwerk identisch +sind, könnte Port <literal>135/tcp</literal> als offen anzeigen, während ein +Scan zur selben Zeit mit denselben Optionen über das Internet diesen Port +als <literal>gefiltert</literal> anzeigen könnte.</para> + +<variablelist><title>Die sechs von Nmap erkannten Port-Zustände</title> + +<varlistentry><term> +<indexterm><primary><literal>offen</literal> Portzustand</primary></indexterm> +offen</term> +<listitem><para>Ein Programm ist bereit, TCP-Verbindungen oder UDP-Pakete +auf diesem +Port anzunehmen. Beim Port-Scanning ist es oftmals das Ziel, solche Ports +zu finden. Sicherheitsbewusste Leute wissen, dass jeder offene Port eine +breite Einfahrtstrasse für Angriffe darstellt. Angreifer und +Penetrationstester wollen offene Ports ausbeuten (engl. exploit), +während Administratoren versuchen, sie zu schließen oder mit Firewalls +zu schützen, ohne legitime Benutzer zu behindern. +Offene Ports sind auch für Scans von Interesse, bei denen es nicht um +Sicherheit geht, weil sie Dienste anzeigen, die im Netzwerk benutzt werden +können. +</para></listitem></varlistentry> + +<varlistentry><term> +<indexterm><primary><literal>geschlossen</literal> Portzustand</primary></indexterm> +geschlossen</term> + +<listitem><para>Ein geschlossener Port ist erreichbar (er empfängt und +antwortet auf Nmap-Testpakete), aber es gibt kein Programm, das ihn +abhört. Er kann von Nutzen sein, um zu zeigen, dass ein Host online ist +und eine IP-Adresse benutzt (Host-Erkennung oder Ping-Scanning), sowie +als Teil der Betriebssystemerkennung. Weil geschlossene Ports erreichbar +sind, sind sie es wert, gescannt zu werden, falls sie später einmal +geöffnet werden sollten. +Administratoren möchten solche Ports vielleicht mit einer Firewall +blockieren, damit sie im Zustand gefiltert erscheinen, der als Nächstes +beschrieben wird. +</para></listitem></varlistentry> + +<varlistentry><term> +<indexterm><primary><literal>gefiltert</literal> Portzustand</primary></indexterm> +gefiltert</term> + +<listitem><para>Nmap kann nicht feststellen, ob der Port offen ist, weil +eine Paketfilterung verhindert, dass seine Testpakete den Port erreichen. +Die Filterung könnte durch dafür vorgesehene Firewall-Geräte, Router-Regeln +oder hostbasierte Firewall-Software erfolgen. Weil sie so wenig Information +bringen, sind diese Ports für Angreifer frustrierend. Manchmal +antworten sie mit ICMP-Fehlermeldungen wie Typ 3, Code 13 +(Destination Unreachable: Communication Administratively Prohibited), +aber Filter, die Testpakete ohne Antwort einfach verwerfen, kommen +wesentlich häufiger vor. Das zwingt Nmap zu mehreren wiederholten +Versuchen, um auszuschließen, dass das Testpaket wegen einer +Netzwerküberlastung statt durch eine Filterung verworfen wurde. Diese +Art der Filterung verlangsamt einen Scan +dramatisch.</para></listitem></varlistentry> + +<varlistentry><term> +<indexterm><primary><literal>ungefiltert</literal> Portzustand</primary></indexterm> +ungefiltert</term> +<listitem><para>Der Zustand ungefiltert bedeutet, dass ein Port +zugänglich ist, aber Nmap nicht feststellen kann, ob er offen oder +geschlossen ist. Nur der ACK-Scan, +der benutzt wird, um Firewall-Regelwerke zu bestimmen, +klassifiziert Ports in diesen Zustand. +Um festzustellen, ob ein ungefilterter Port offen ist, kann es hilfreich +sein, ihn mit anderen Scan-Methoden wie Window-Scan, +SYN-Scan oder FIN-Scan zu scannen. +</para></listitem></varlistentry> + +<varlistentry><term> +<indexterm><primary><literal>offen|gefiltert</literal> Portzustand</primary></indexterm> +offen|gefiltert</term> +<listitem><para>Nmap klassifiziert einen Port in diesen Zustand, +wenn es nicht feststellen kann, ob der Port offen oder gefiltert ist. +Das kommt bei Scan-Methoden vor, in denen offene Ports keine Antwort +geben. Das Fehlen einer Antwort könnte auch bedeuten, dass ein Paketfilter +das Testpaket verworfen hat oder dass keine Antwort provoziert werden +konnte. Deswegen weiß Nmap nicht sicher, ob der Port offen ist oder +gefiltert wird. Ports werden von den UDP-, IP-Protokoll-, FIN-, NULL- und +Xmas-Scans auf diese Weise klassifiziert. +</para></listitem></varlistentry> + +<varlistentry><term> +<indexterm><primary><literal>geschlossen|gefiltert</literal> Portzustand</primary></indexterm> +geschlossen|gefiltert</term> +<listitem><para>Dieser Zustand wird benutzt, wenn Nmap nicht feststellen +kann, ob ein Port geschlossen ist oder gefiltert wird. Er wird nur vom +IP-ID-Idle-Scan benutzt. +</para></listitem></varlistentry> +</variablelist> +</refsect1> + + +<refsect1 id='man-port-scanning-techniques'> +<title>Port-Scanning-Methoden</title> + +<para>Als Hobby-Automechaniker kann ich mich stundenlang damit +herumquälen, meine einfachsten Werkzeuge (Hammer, Klebeband, +Schraubenschlüssel etc.) an mein Problem anzupassen. Wenn ich dann +kläglich versage und meine alte Blechkiste zu einem echten Mechaniker +schleppe, fischt er immer so lange in einer riesigen Werkzeugkiste +herum, bis er das perfekte Ding gefunden hat, mit dem sich die Aufgabe +fast von allein löst. Bei der Kunst des Port-Scannings ist es ähnlich. +Experten kennen Dutzende von Scan-Methoden und wählen für jede +Aufgabe die geeignete (oder eine Kombination von mehreren) aus. +Auf der anderen Seite versuchen unerfahrene Benutzer und +Script-Kiddies,<indexterm><primary>Script Kiddies</primary></indexterm> +jedes Problem mit dem standardmäßigen SYN-Scan zu lösen. Da Nmap gratis +ist, ist Unwissen das einzige Hindernis auf dem Weg zur Meisterschaft +im Port-Scanning. +Das ist bestimmt besser als in der Autowelt, wo man eventuell sehr viel +Können haben muss, um festzustellen, dass man einen +Federbein-Kompressor benötigt, +und dann immer noch Tausende dafür bezahlen muss.</para> + +<para>Die meisten Scan-Typen stehen nur privilegierten Benutzern zur +Verfügung,<indexterm><primary>Benutzer mit Sonderrechten</primary></indexterm> +und zwar deswegen, weil sie rohe +IP-Pakete<indexterm><primary>rohe Pakete</primary></indexterm> +senden und empfangen, wofür auf Unix-Systemen root-Rechte benötigt werden. +Auf Windows empfiehlt sich ein Administrator-Account, +wenngleich auf dieser Plattform Nmap manchmal auch für unprivilegierte Benutzer +funktioniert, sofern WinPcap bereits in das +Betriebssystem geladen wurde. Als Nmap 1997 veröffentlicht wurde, war die +Voraussetzung von root-Rechten eine ernsthafte Beschränkung, da viele Benutzer +nur Zugriff zu Shell-Accounts hatten. Die Welt von heute ist anders. +Computer sind billiger, wesentlich mehr Menschen verfügen über einen +immer verfügbaren direkten Internet-Zugang, und Desktop-Unix-Systeme +(inklusive Linux und Mac OS X) sind weit verbreitet. Eine Windows-Version +von Nmap ist nun auch verfügbar, wodurch es nun auf noch mehr Rechnern +laufen kann. Aus all diesen Gründen sind Benutzer nur noch selten +gezwungen, Nmap von einem beschränkten Shell-Account aus einzusetzen. +Das ist erfreulich, denn die privilegierten Optionen machen Nmap wesentlich +mächtiger und flexibler.</para> + +<para>Auch wenn Nmap versucht, genaue Ergebnisse zu produzieren, sollten +Sie nicht vergessen, dass all seine Erkenntnisse auf Paketen basieren, die +von den Zielrechnern (oder den Firewalls davor) zurückkommen. Solche Hosts +können unzuverlässig sein und eine Antwort senden, die Nmap verwirren oder +täuschen soll. Wesentlich häufiger sind Hosts, die nicht RFC-konform sind +und auf Testpakete von Nmap nicht so antworten, wie sie sollten. FIN-, +NULL- und Xmas-Scans sind für dieses Problem besonders anfällig. Solche +Probleme sind spezifisch für bestimmte Scan-Methoden und werden daher +in den jeweiligen Abschnitten erörtert.</para> + +<para>Dieser Abschnitt dokumentiert die etwa ein Dutzend von Nmap +unterstützten Port-Scan-Methoden. Es darf immer nur eine Methode +allein benutzt werden, mit der Ausnahme von +UDP-Scans (<option>-sU</option>), die sich mit allen anderen +TCP-Scan-Methoden kombinieren lassen. Hier eine Gedächtnisstütze: +Optionen für Port-Scan-Methoden haben die Form +<option>-s<replaceable>C</replaceable></option>, wobei +<replaceable>C</replaceable> ein bedeutender Buchstabe im Scan-Namen ist, +normalerweise der erste. Die eine Ausnahme hiervon ist der als veraltet +betrachtete FTP-Bounce-Scan (<option>-b</option>). +Nmap führt standardmäßig einen SYN-Scan durch, ersetzt diesen aber mit +einem Connect-Scan, falls der Benutzer nicht die nötigen Rechte hat, +um rohe Pakete (benötigen unter Unix root-Rechte) zu senden, oder falls er +IPv6-Ziele angegeben hat. Von den in diesem Abschnitt aufgelisteten +Scans dürfen Benutzer ohne Sonderrechte nur den Connect- und +FTP-Bounce-Scan ausführen.</para> + + <variablelist> + <varlistentry> + <term> + <option>-sS</option> (TCP-SYN-Scan) + <indexterm><primary><option>-sS</option></primary></indexterm> + <indexterm><primary>SYN-Scan</primary></indexterm> + </term> + <listitem> + +<para>Der SYN-Scan ist aus gutem Grund die Standardeinstellung +und die beliebteste Scan-Methode. Er kann schnell durchgeführt werden +und scannt dabei Tausende von Ports pro Sekunde, wenn das Netzwerk schnell +ist und nicht von einer intrusiven Firewall behindert wird. +Der SYN-Scan ist relativ unauffällig, da er TCP-Verbindungen niemals +abschließt. Außerdem funktioniert er auch bei allen konformen TCP-Stacks +und ist unabhängig von spezifischen Eigenarten von Plattformen, wie es bei den +FIN-/NULL-/Xmas-, Maimon- und Idle-Scans in Nmap der Fall ist. Er erlaubt +auch eine klare, zuverlässige Unterscheidung zwischen den Zuständen +<literal>offen</literal>, <literal>geschlossen</literal> und +<literal>gefiltert</literal>.</para> + +<para>Diese Methode wird oft als halboffenes Scannen bezeichnet, +weil keine vollständige TCP-Verbindung hergestellt wird. Sie senden +ein SYN-Paket, als ob Sie eine echte Verbindung herstellen würden, +und warten dann auf eine Antwort. Ein SYN/ACK zeigt, dass jemand auf +dem Port lauscht (dass er offen ist), während ein RST (Reset) anzeigt, +dass niemand darauf lauscht. Falls nach mehreren erneuten Übertragungen +keine Antwort erhalten wird, wird der Port als gefiltert markiert. +Der Port wird auch dann als gefiltert markiert, wenn ein +ICMP Unreachable-Fehler +(Typ 3, Code 1, 2, 3, 9, 10 oder 13) empfangen wird.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sT</option> (TCP-Connect-Scan) + <indexterm><primary><option>-sT</option></primary></indexterm> + <indexterm><primary>Connect-Scan</primary></indexterm> + </term> + <listitem> +<para>Der TCP-Connect-Scan ist der standardmäßig eingestellte TCP-Scan-Typ, +falls der SYN-Scan nicht möglich ist. Das ist dann der Fall, wenn der +Benutzer kein Recht hat, rohe Pakete zu senden, oder wenn er IPv6-Netzwerke +scannt. Statt rohe Pakete zu schreiben, wie es die meisten anderen Scan-Typen +machen, bittet Nmap das darunterliegende Betriebssystem, eine Verbindung +mit dem Zielrechner und -port herzustellen, indem es einen Systemaufruf +namens <function>connect</function> benutzt. Das ist derselbe Systemaufruf +auf höherer Ebene, den Webbrowser, P2P-Clients und die meisten anderen +netzwerkfähigen Anwendungen benutzen, um eine Verbindung herzustellen. +Er ist Teil einer Programmierschnittstelle, die unter dem Namen Berkeley +Sockets-API bekannt ist. Statt Antworten in Form roher Pakete von der +Leitung zu lesen, benutzt Nmap diese API, um zu jedem Verbindungsversuch +eine Statusinformation zu erhalten. +</para> + +<para>Wenn der SYN-Scan verfügbar ist, ist er normalerweise die bessere Wahl. +Nmap hat weniger Einfluss auf den <function>connect</function>-Systemaufruf +als auf rohe Pakete, wodurch es weniger effizient wird. Der Systemaufruf +beendet Verbindungen zu offenen Ziel-Ports vollständig, statt sie in +halboffenen Zustand zurückzusetzen, wie es der SYN-Scan macht. Das dauert +nicht nur länger und erfordert mehr Pakete, um an dieselbe Information zu +gelangen, sondern es ist sehr viel wahrscheinlicher, dass die Zielrechner +die Verbindung protokollieren. Ein anständiges IDS wird beides mitbekommen, +aber die meisten Rechner verfügen nicht über ein solches Alarmsystem. +Viele Dienste auf Ihrem durchschnittlichen Unix-System fügen eine Notiz +ins syslog hinzu und manchmal eine kryptische Fehlermeldung, wenn Nmap +eine Verbindung herstellt und sofort wieder schließt, ohne Daten zu senden. +Ganz armselige Dienste stürzen auch ab, wenn so etwas passiert, was aber +eher selten ist. Ein Administrator, der in seinen Protokollen einen Haufen +Verbindungsversuche von einem einzelnen System aus sieht, sollte wissen, +dass er Ziel eines Connect-Scans wurde.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sU</option> (UDP-Scan) +<indexterm><primary><option>-sU</option></primary></indexterm> +<indexterm><primary>UDP-Scan</primary></indexterm> +</term> + <listitem> + +<para>Obwohl die meisten bekannten Dienste im Internet über das TCP-Protokoll +laufen, sind <ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink>-Dienste +weitverbreitet. Drei der häufigsten sind DNS, SNMP und DHCP (auf den +registrierten Ports 53, 161/162 und +67/68). Weil UDP-Scans im Allgemeinen langsamer und schwieriger als TCP-Scans sind, +werden diese Ports von manchen Sicherheitsprüfern einfach ignoriert. +Das ist ein Fehler, denn ausbeutbare UDP-Dienste sind recht häufig, und +Angreifer ignorieren bestimmt nicht das ganze Protokoll. Zum Glück kann +Nmap helfen, diese UDP-Ports zu inventarisieren.</para> + +<para>Ein UDP-Scan wird mit der Option <option>-sU</option> aktiviert. +Er kann mit einem TCP-Scan-Typ wie einem SYN-Scan (<option>-sS</option>) +kombiniert werden, um beide Protokolle im gleichen Durchlauf zu +prüfen.</para> + +<para>Beim UDP-Scan wird ein leerer UDP-Header (ohne Daten) an alle +Ziel-Ports geschickt. Falls ein +ICMP Port-unreachable-Fehler (Typ 3, Code 3) zurückkommt, ist der +Port <literal>geschlossen</literal>. Andere ICMP Unreachable-Fehler +(Typ 3, Codes 1, 2, 9, 10 oder 13) markieren den Port als +<literal>filtered</literal>. Gelegentlich wird ein Dienst mit einem +UDP-Paket antworten, was beweist, das er <literal>offen</literal> ist. +Falls nach einigen erneuten Übertragungen keine Antwort erhalten wird, +wird der Port als <literal>offen|gefiltert</literal> klassifiziert. +Das heißt, der Port könnte offen sein, oder aber es gibt Paketfilter, +die die Kommunikation blockieren. Man kann eine Versionserkennung +(<option>-sV</option>) benutzen, um bei der Unterscheidung der wirklich +offenen von den geschlossenen Ports zu helfen.</para> + +<para>Eine große Herausforderung beim UDP-Scanning ist Geschwindigkeit. +Offene und gefilterte Ports antworten nur selten, wodurch Nmap +Zeitbeschränkungen überschreitet und seine Anfragen erneut sendet, +für den Fall, dass das Testpaket oder die Antwort verloren ging. +Geschlossene Ports sind oftmals ein noch größeres Problem. +Sie senden normalerweise eine ICMP Port-unreachable-Fehlermeldung +zurück. Aber anders als die RST-Pakete, die von geschlossenen TCP-Ports +als Antwort auf einen SYN- oder Connect-Scan geschickt werden, +beschränken viele Hosts standardmäßig die +Rate<indexterm><primary>Ratenbeschränkung</primary></indexterm> +der ICMP Port-unreachable-Nachrichten. Linux und Solaris sind dabei +besonders streng. Der Linux-Kernel 2.4.20 z.B. beschränkt +Destination-unreachable-Nachrichten auf eine pro Sekunde +(in <filename>net/ipv4/icmp.c</filename>).</para> + +<para>Nmap erkennt eine Ratenbeschränkung und verlangsamt seinen Betrieb +entsprechend, um zu vermeiden, dass das Netzwerk mit nutzlosen Paketen +überflutet wird, die vom Zielrechner verworfen werden. Unglücklicherweise +führt eine Beschränkung wie in Linux auf ein Paket pro Sekunde +dazu, dass ein Scan von 65.536 Ports über 18 Stunden dauert. Um Ihre +UDP-Scans zu beschleunigen, können Sie z.B. mehr Hosts parallel scannen, +zuerst nur einen schnellen Scan der beliebten Ports durchführen, +von hinter der Firewall scannen und die Option +<option>--host-timeout</option> benutzen, um langsame Hosts +auszulassen.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (TCP-NULL-, FIN- und -Xmas-Scans) +<indexterm><primary><option>-sN</option></primary></indexterm> +<indexterm><primary><option>-sF</option></primary></indexterm> +<indexterm><primary><option>-sX</option></primary></indexterm> +<indexterm><primary>NULL-Scan</primary></indexterm> +<indexterm><primary>FIN-Scan</primary></indexterm> +<indexterm><primary>Xmas-Scan</primary></indexterm> +</term> + <listitem> + +<para>Diese drei Scan-Typen (noch mehr sind mit der im nächsten Abschnitt +beschriebenen Option <option>--scanflags</option> möglich) +beuten ein subtiles Schlupfloch im <ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP RFC</ulink> +aus, um zwischen <literal>offenen</literal> und +<literal>geschlossenen</literal> Ports zu unterscheiden. Seite 65 von +RFC 793 besagt: <quote>Falls der Zustand des +[Ziel-] Ports GESCHLOSSEN ist ... bewirkt ein eingehendes Segment, in dem +sich kein RST befindet, dass ein RST als Antwort gesendet wird.</quote> +Die nächste Seite beschreibt dann Pakete, die ohne gesetztes SYN-, RST- +oder ACK-Bit an offene Ports geschickt werden, und dort heißt es weiter: +<quote>Es ist unwahrscheinlich, dass Sie hierhin kommen, aber wenn doch, +dann verwerfen Sie das Segment und springen Sie zurück.</quote></para> + +<para>Beim Scannen von Systemen, die konform zu diesem RFC-Text sind, +führt jedes Paket, das kein SYN-, RST- oder ACK-Bit enthält, dazu, dass +ein RST zurückgegeben wird, wenn der Port geschlossen ist, bzw. zu gar +keiner Antwort, falls der Port offen ist. Solange keines dieser drei Bits +gesetzt ist, sind alle Kombinationen der anderen drei (FIN, PSH und URG) +okay. Das nutzt Nmap mit drei Scan-Typen aus:</para> + +<variablelist> + <varlistentry><term>Null-Scan (<option>-sN</option>)</term> + <listitem><para>Setzt keinerlei Bits (der TCP-Flag-Header ist 0).</para></listitem></varlistentry> + + <varlistentry><term>FIN-Scan (<option>-sF</option>)</term> + <listitem><para>Setzt nur das TCP-FIN-Bit.</para></listitem></varlistentry> + + <varlistentry><term>Xmas-Scan (<option>-sX</option>)</term> + <listitem><para>Setzt die FIN-, PSH- und URG-Flags und beleuchtet + das Paket wie einen Weihnachtsbaum (engl. Xmas).</para></listitem></varlistentry> +</variablelist> + +<para>Diese drei Scan-Typen haben exakt dasselbe Verhalten und unterscheiden +sich nur in den TCP-Flags ihrer Testpakete. Wenn ein RST-Paket empfangen +wird, wird der Port als <literal>geschlossen</literal> betrachtet, während +keine Antwort bedeutet, dass er <literal>offen|gefiltert</literal> ist. +Der Port wird als <literal>gefiltert</literal> markiert, falls ein +ICMP Unreachable-Fehler (Type 3, Code 1, 2, 3, 9, 10 oder 13) +empfangen wird.</para> + +<para>Der Schlüsselvorteil dieser Scan-Arten ist, dass sie sich an +bestimmten zustandslosen Firewalls und paketfilternden Routern +vorbeschleichen können. Ein weiterer Vorteil ist, dass diese Scan-Arten +ncoh ein wenig unauffälliger sind als ein SYN-Scan. Aber verlassen +Sie sich nicht darauf – die meisten modernen IDS-Produkte können +so konfiguriert werden, dass sie diese Scans erkennen. Der große Nachteil +ist, dass nicht alle Systeme sich ganz genau an RFC 793 halten. Eine +Reihe von Systemen sendet RST-Antworten auf die Testpakete, unabhängig +davon, ob der Port offen ist oder nicht. Das bewirkt, dass alle Ports +als <literal>geschlossen</literal> markiert werden. Hauptvertreter +der Betriebssysteme, die das machen, sind Microsoft Windows, viele +Cisco-Geräte, BSDI und IBM OS/400. +Aber auf den meisten Unix-basierten Systemen funktioniert dieser Scan. +Ein weiterer Nachteil dieser Scans ist, dass sie keine Unterscheidung +zwischen <literal>offenen</literal> und bestimmten +<literal>gefilterten</literal> Ports machen, sondern lediglich das +Ergebnis <literal>offen|gefiltert</literal> ausgeben.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sA</option> (TCP-ACK-Scan) + <indexterm><primary><option>-sA</option></primary></indexterm> + <indexterm><primary>ACK-Scan</primary></indexterm> + </term> + <listitem> + +<para>Dieser Scan unterscheidet sich insofern von den bisher hier +vorgestellten, als er nie <literal>offene</literal> (oder auch nur +<literal>offene|gefilterte</literal>) Ports bestimmt. Er wird dazu benutzt, +Firewall-Regeln zu bestimmen, festzustellen, ob sie zustandsbehaftet sind +oder nicht, und welche Ports gefiltert werden.</para> + +<para>Beim Testpaket eines ACK-Scans wird nur das ACK-Flag gesetzt +(es sei denn, Sie benutzen <option>--scanflags</option>). Beim Scannen +ungefilterter Systeme werden sowohl <literal>offene</literal> als auch +<literal>geschlossene</literal> Ports ein RST-Paket zurückgeben. Nmap +markiert sie dann als <literal>ungefiltert</literal>, d.h. sie werden +vom ACK-Paket erreicht, aber es kann nicht bestimmt werden, ob sie +<literal>offen</literal> oder <literal>geschlossen</literal> sind. +Ports, die nicht antworten oder bestimmte ICMP-Fehlermeldungen +zurückgeben (Type 3, Code 1, 2, 3, 9, 10 oder 13), werden als +<literal>gefiltert</literal> markiert.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sW</option> (TCP-Window-Scan) +<indexterm><primary><option>-sW</option></primary></indexterm> +<indexterm><primary>Window-Scan</primary></indexterm> +</term> + <listitem> + +<para>Der Window-Scan ist genau derselbe wie der ACK-Scan, nur dass er +ein Implementationsdetail bestimmter Systeme zur Unterscheidung zwischen +offenen und geschlossenen Ports nutzt, statt bei jedem erhaltenen RST immer +nur <literal>ungefiltert</literal> anzugeben. Das geschieht durch Analyse +der TCP-Fenstergröße der zurückgegebenen RST-Pakete. +Auf manchen Systemen benutzen offene Ports eine positive Fenstergröße +(sogar für RST-Pakete), während geschlossene eine Fenstergröße von Null +haben. Statt einen Port immer als <literal>ungefiltert</literal> +aufzulisten, wenn von dort ein RST zurückkommt, listet der Window-Scan +den Port als <literal>offen</literal> oder <literal>geschlossen</literal> +auf, je nachdem, ob die TCP-Fenstergröße in diesem Reset jeweils positiv +oder Null ist.</para> + +<para>Dieser Scan baut auf einem Implementationsdetail einer Minderheit von +Systemen im Internet auf, d.h. Sie können sich nicht immer darauf verlassen. +Systeme, die es nicht unterstützen, werden normalerweise alle Ports als +<literal>geschlossen</literal> zurückgeben. Natürlich ist es möglich, dass +auf dem Rechner wirklich keine offenen Ports sind. Falls die meisten +gescannten Ports <literal>geschlossen</literal>, aber einige Ports +mit geläufigen Nummern (wie 22, 25 und 53) <literal>gefiltert</literal> sind, +dann ist das System sehr wahrscheinlich anfällig. Gelegentlich zeigen +Systeme auch genau das gegenteilige Verhalten. Falls Ihr Scan 1000 offene +und drei geschlossene oder gefilterte Ports anzeigt, dann könnten jene drei +sehr wohl die wirklich wahren offenen Ports sein.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sM</option> (TCP-Maimon-Scan) +<indexterm><primary><option>-sM</option></primary></indexterm> +<indexterm><primary>Maimon-Scan</primary></indexterm> +</term> + <listitem> + +<para>Der Maimon-Scan wurde nach seinem Erfinder, Uriel +Maimon,<indexterm><primary>Maimon, Uriel</primary></indexterm> benannt. +Er hat diese Methode im +<citetitle>Phrack</citetitle>-Magazin, Ausgabe #49 (November 1996),<indexterm><primary><citetitle>Phrack</citetitle></primary></indexterm> +beschrieben. +Zwei Ausgaben später war diese Methode in Nmap enthalten. Sie macht genau +das Gleiche wie der NULL-, FIN- und Xmas-Scan, außer, dass sie ein +FIN/ACK-Testpaket verwendet. Laut <ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC 793</ulink> (TCP) +sollte als Antwort auf solch ein Paket ein RST-Paket erzeugt werden, +egal ob der Port offen oder geschlossen ist. Allerdings hatte Uriel bemerkt, +dass viele von BSD abgeleitete Systeme das Paket einfach verwerfen, +wenn der Port offen ist.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scanflags</option> (Benutzerdefinierter TCP-Scan) + <indexterm><primary><option>--scanflags</option></primary></indexterm></term> + <listitem> + + +<para>Wirklich fortgeschrittene Nmap-Benutzer brauchen sich nicht auf die +vorgefertigten Scan-Typen zu beschränken. Mit der Option +<option>--scanflags</option> können Sie Ihren eigenen Scan entwerfen, +für den Sie beliebige TCP-Flags angeben +können.<indexterm><primary>TCP-Flags</primary></indexterm> +Lassen Sie Ihrer Kreativität freien Lauf und umgehen Sie +Intrusion-Detection-Systeme,<indexterm><primary>Intrusion-Detection-Systeme</primary><secondary>umgehen</secondary></indexterm> +deren Hersteller einfach die Nmap-Manpage durchgeblättert und spezifische +Regeln dafür angegeben haben!</para> + +<para>Das Argument für <option>--scanflags</option> kann ein numerischer +Flag-Wert wie z.B. 9 (PSH und FIN) sein, aber symbolische Namen sind +einfacher zu benutzen. Erstellen Sie einfach eine beliebige Kombination von +<literal>URG</literal>, <literal>ACK</literal>, <literal>PSH</literal>, +<literal>RST</literal>, <literal>SYN</literal> und +<literal>FIN</literal>. So setzt z.B. <option>--scanflags +URGACKPSHRSTSYNFIN</option> alle Flags, auch wenn das beim Scannen nicht +besonders hilfreich ist. Die Reihenfolge, in der Sie diese Flags angeben, +spielt keine Rolle.</para> + +<para>Zusätzlich zu den gewünschten Flags können Sie einen TCP-Scan-Typen +(z.B. <option>-sA</option> oder <option>-sF</option>) angeben. +Dieser Basistyp sagt Nmap, wie es die Antworten interpretieren soll. +Ein SYN-Scan z.B. betrachtet das Fehlen einer Antwort als einen Hinweis auf +einen <literal>gefilterten</literal> Port, während ein FIN-Scan das als einen +Hinweis auf einen<literal>offen|gefilterten</literal> Port ansieht. Nmap +verhält sich genauso wie beim Scan-Basistyp, nur mit dem Unterschied, +dass es die von Ihnen angegebenen TCP-Flags benutzt. Ohne Angabe eines +Basistyps wird ein SYN-Scan benutzt.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sI <replaceable>zombie host</replaceable><optional>:<replaceable>probeport</replaceable></optional></option> (Idle-Scan) + <indexterm><primary><option>-sI</option></primary></indexterm> + <indexterm><primary>Idle-Scan</primary></indexterm> + </term> + + <listitem> + +<para>Diese fortgechrittene Scan-Methode ermöglicht einen wirklich +blinden TCP-Port-Scan des Ziels, d.h. es werden keine Pakete von Ihrer +wahren IP-Adresse an das Ziel gesendet. Stattdessen wird mit einem +Angriff auf einem parallelen Kanal eine vorhersagbare Erzeugung von +Folgen von IP-Fragmentation-IDs auf dem Zombie-Host ausgebeutet, um an +Information über offene Ports auf dem Ziel zu gelangen. IDS-Systeme +zeigen als Urheber des Scans den Zombie-Rechner an, den Sie angeben +(der aktiv sein und einige bestimmte Bedingungen erfüllen muss). +<man> +Da dieser faszinierende Scan-Typ zu komplex ist, um ihn in diesem Handbuch +vollständig zu beschreiben, habe ich einen Artikel mit vollständigen +Details dazu geschrieben und unter +<ulink url="https://nmap.org/book/idlescan.html" /> veröffentlicht. +</man> +<notman> +Alle Details zu diesem faszinierenden Scan-Typ finden Sie in +<xref linkend="idlescan"/>. +</notman> +</para> + +<para>Dieser Scan-Typ ist nicht nur extrem unauffällig (wegen seiner +Blindheit), sondern erlaubt auch, IP-basierte Vetrauensbeziehungen +zwischen Rechnern festzustellen. Die Portliste zeigt offene Ports +<emphasis>aus der Sicht des Zombie-Hosts</emphasis> an. Also können +Sie versuchen, ein Ziel mit verschiedenen Zombies zu scannen, von +denen Sie denken, dass sie vertrauenswürdig +sind<indexterm><primary>Vertrauensbeziehungen</primary></indexterm> +(über Router-/Paketfilterregeln). +</para> + +<para>Wenn Sie einen bestimmten Port auf dem Zombie auf IP-ID-Änderungen +testen möchten, können Sie einen Doppelpunkt gefolgt von einer Portnummer +an den Zombie-Host hinzufügen. Sonst benutzt Nmap den Port, den es +standardmäßig bei TCP-Pings benutzt (80).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sO</option> (IP-Protokoll-Scan) + <indexterm><primary><option>-sO</option></primary></indexterm> + <indexterm><primary>IP-Protokoll-Scan</primary></indexterm> + </term> + <listitem> + +<para>Der IP-Protokoll-Scan ermöglicht die Bestimmung der IP-Protokolle +(TCP, ICMP, IGMP etc.), die von Zielrechnern unterstützt werden. Rein +technisch ist das kein Port-Scan, da er über Nummern von IP-Protokollen +statt TCP- oder UDP-Ports vorgeht. Dennoch benutzt er die Option +<option>-p</option> für die Auswahl der zu scannenden Protokollnummern, +gibt seine Ergebnisse im normalen Port-Tabellenformat aus und benutzt sogar +dieselbe grundlegende Scan-Engine wie die echten Port-Scanning-Methoden. +Damit ist er einem Port-Scan ähnlich genug, um an dieser Stelle beschrieben +zu werden.</para> + +<para>Abgesehen davon, dass er schon als solcher nützlich ist, zeigt der +Protokoll-Scan die Macht von Open-Source-Software. +Auch wenn die grundlegende Idee recht simpel ist, hatte ich nicht daran +gedacht, ihn hinzuzufügen, und bekam auch keine Anfragen nach einer solchen +Funktionalität. Dann, im Sommer 2000, +hatte Gerhard Rieger<indexterm><primary>Rieger, Gerhard</primary></indexterm> +die Idee, schrieb einen exzellenten Patch als Implementation und sendete +ihn an die Mailingliste +<citetitle>nmap-hackers</citetitle>.<indexterm><primary><citetitle>nmap-hackers</citetitle> Mailingliste</primary></indexterm> +Diesen Patch habe ich in den Nmap-Baum aufgenommen und einen Tag später +eine neue Version veröffentlicht. Es gibt nur wenig kommerzielle Software, +deren Benutzer so enthusiastisch sind, dass sie eigene Verbesserungen +dafür entwerfen und beitragen!</para> + +<para>Der Protokoll-Scan funktioniert auf ähnliche Weise wie der UDP-Scan. +Statt über das Portnummernfeld eines UDP-Pakets zu iterieren, sendet er +IP-Paketheader und iteriert über das acht Bit große IP-Protokollfeld. +Die Header sind normalerweise leer, enthalten keine Daten und nicht einmal +den richtigen Header für das behauptete Protokoll. Die drei Ausnahmen davon +sind TCP, UDP und ICMP. +Für diese werden richtige Protokoll-Header verwendet, da manche Systeme sie +sonst nicht versenden und weil Nmap bereits über die Funktionen verfügt, +um sie zu erzeugen. Statt Nachrichten der Art ICMP Port unreachable +sucht der Protokoll-Scan nach +ICMP <emphasis>Protocol</emphasis> unreachable. +Falls Nmap zu irgendeinem Protokoll eine Antwort vom Zielhost erhält, +markiert es das Protokoll als <literal>offen</literal>. Bei einem +ICMP Protocol-unreachable-Fehler (Typ 3, Code 2) wird das Protokoll +als <literal>geschlossen</literal> markiert. Bei anderen +ICMP Unreachable-Fehlern (Typ 3, Code 1, 3, 9, 10 oder 13) wird das +Protokoll als <literal>gefiltert</literal> markiert (auch wenn sie +gleichzeitig beweisen, dass ICMP <literal>offen</literal> ist). +Falls nach einigen erneuten Übertragungen keine Antwort erhalten wird, +wird das Protokoll als <literal>offen|gefiltert</literal> markiert.</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>-b <replaceable>FTP relay host</replaceable></option> (FTP-Bounce-Scan) + <indexterm><primary><option>-b</option></primary></indexterm> + <indexterm><primary>FTP-Bounce-Scan</primary></indexterm> + </term> + <listitem> + +<para>Eine interessante Eigenschaft des FTP-Protokolls (<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) +ist dessen Unterstützung sogenannter Proxy-FTP-Verbindungen. Damit kann +sich ein Benutzer mit einem FTP-Server verbinden und dann verlangen, dass +Dateien an einen Server einer dritten Partei gesendet werden. Solch eine +Eigenschaft ist auf vielen Ebenen sturmreif für Missbrauch, weswegen die +meisten Server sie nicht mehr unterstützen. Ein solcher Missbrauch, den +diese Eigenschaft ermöglicht, ist, den FTP-Server für Port-Scans anderer +Hosts zu benutzen. Bitten Sie den FTP-Server einfach, eine Datei nacheinander +an alle interessanten Ports eines Zielhosts zu senden. Die Fehlermeldung +wird beschreiben, ob der Port offen ist oder nicht. Das ist ein guter Weg, +Firewalls zu umgehen, weil FTP-Server von Organisationen oft an Orten +platziert sind, von denen aus sie besseren Zugriff auf weitere interne Hosts +haben, als es jeder alte Internet-Host hätte. Nmap unterstützt den +FTP-Bounce-Scan mit der Option <option>-b</option>. Sie erwartet ein +Argument der Form +<replaceable>username</replaceable>:<replaceable>password</replaceable>@<replaceable>server</replaceable>:<replaceable>port</replaceable>. +Dabei ist <replaceable>Server</replaceable> der Name oder die IP-Adresse +eines anfälligen FTP-Servers. Wie bei einer normalen URL können Sie +<replaceable>username</replaceable>:<replaceable>password</replaceable> +auch weglassen, wobei dann eine anonyme Anmeldung erfolgt (username: +<literal>anonymous</literal> password:<literal>-wwwuser@</literal>). +Die Portnummer (samt Doppelpunkt davor) können Sie ebenfalls weglassen, +wobei dann auf <replaceable>server</replaceable> der +Standard-FTP-Port (21) benutzt wird.</para> + +<para>Als Nmap 1997 veröffentlicht wurde, war diese +Schwachstelle weit verbreitet, wurde seitdem aber größtenteils behoben. +Aber da es immer noch anfällige Server gibt, lohnt sich ein Versuch, +falls alles andere versagt. Wenn Sie eine Firewall umgehen möchten, +scannen Sie das Zielnetzwerk nach einem offenen Port 21 (oder sogar nach +beliebigen FTP-Diensten, falls Sie alle Ports mit Versionserkennung +scannen können), und probieren Sie dann für jeden einen Bounce-Scan aus. +Nmap wird Ihnen sagen, ob der Host angreifbar ist oder nicht. Versuchen +Sie lediglich, Ihre Spuren zu verwischen, dann brauchen Sie sich nicht +(und tatsächlich sollten Sie das nicht einmal) auf Hosts im Zielnetzwerk +zu beschränken. Bevor Sie anfangen, zufällige Internet-Adressen nach +anfälligen FTP-Servern zu scannen, bedenken Sie, dass Sysadmins keinen +Gefallen daran finden werden, dass Sie ihre Server auf diese Weise +missbrauchen.</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id='man-port-specification'> + <title>Port-Angabe und Scan-Reihenfolge</title> + <indexterm><primary>Port-Angabe</primary></indexterm> + +<para>Zusätzlich zu all den bisher erläuterten Scan-Methoden bietet +Nmap Optionen, mit denen man angibt, welche Ports gescannt werden +und ob die Scan-Reihenfolge randomisiert oder sequentiell ist. Nmap +scannt standardmäßig für jedes Protokoll die 1000 meistbenutzten Ports. +<indexterm><primary>vorgegebene Ports</primary></indexterm> +</para> + + <variablelist> + <varlistentry> + <term> + <option>-p <replaceable>port ranges</replaceable></option> (scannt nur angegebene Ports) + <indexterm><primary><option>-p</option></primary></indexterm> + </term> + <listitem> + +<para>Diese Option gibt an, welche Ports Sie scannen möchten, und +überschreibt die Voreinstellung. Einzelne Portnummern sind okay, +ebenso wie mit einem Bindestrich getrennte Bereiche (z.B. +<literal>1-1023</literal>). Anfangs- und/oder Endwerte eines +Bereichs können weggelassen werden und werden von Nmap dann mit +jeweils 1 bzw. 65535 ersetzt. So können Sie mit <option>-p-</option> +alle Ports von 1 bis 65535 scannen. Es ist erlaubt, den Port Null<indexterm><primary>Port Null</primary></indexterm> +zu scannen, wenn Sie ihn explizit angeben. Bei IP-Protokoll-Scans +(<option>-sO</option>) gibt diese Option die Protokollnummern an, +die Sie scannen möchten (0–255).</para> + +<para>Wenn Sie sowohl TCP- als auch UDP-Ports scannen, können Sie ein +bestimmtes Protokoll angeben, indem Sie den Portnummern ein +<literal>T:</literal> bzw. <literal>U:</literal> voranstellen. +Dieser Kennzeichner gilt so lange, bis Sie einen anderen angeben. +Zum Beispiel werden bei dem Argument +<option>-p U:53,111,137,T:21-25,80,139,8080</option> die UDP-Ports +53, 111 und 137 sowie die angegebenen TCP-Ports gescannt. Beachten +Sie, dass Sie +<option>-sU</option> und mindestens einen TCP-Scan-Typ (z.B. +<option>-sS</option>, <option>-sF</option> oder <option>-sT</option>) angeben müssen, +um sowohl UDP als auch TCP zu scannen. Falls kein Protokollkennzeichner +angegeben ist, werden die Portnummern zu allen Protokolllisten +hinzugefügt.</para> + +<indexterm><primary>Port-Angabe</primary><secondary>Joker in</secondary></indexterm> +<indexterm><primary>Wildcards</primary><see>Port-Auswahl, Joker in</see></indexterm> +<para> +Ports können auch mit dem Namen angegeben werden, der für diesen Port +in <filename>nmap-services</filename> definiert ist. Sie können bei diesen +Namen sogar die Joker * und ? verwenden. Um z.B. FTP und alle Ports +zu scannen, deren Namen mit <quote>http</quote> anfangen, benutzen Sie +<option>-p ftp,http*</option>. Passen Sie auf eine eventuelle Erweiterung +durch die Shell auf und setzen Sie das Argument von <option>-p</option> +in Anführungszeichen, wenn Sie unsicher sind.</para> + +<para>Port-Bereiche können in eckigen Klammern angegeben werden, um Ports +innerhalb dieses Bereiches anzugeben, die in +<filename>nmap-services</filename> vorkommen. +Zum Beispiel scannt Folgendes alle Ports in <filename>nmap-services</filename> +kleiner oder gleich 1024: <option>-p [-1024]</option>. +Passen Sie auf eine eventuelle Erweiterung +durch die Shell auf und setzen Sie das Argument von <option>-p</option> +in Anführungszeichen, wenn Sie unsicher sind.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-F</option> (schneller (beschränkter Port-) Scan) + <indexterm significance="preferred"><primary><option>-F</option></primary></indexterm> + <indexterm><primary>schneller Scan</primary><see><option>-F</option></see></indexterm> + </term> + <listitem> +<para>Gibt an, dass Sie weniger Ports scannen möchten, als standardmäßig +vorgesehen. Normalerweise scannt Nmap die 1000 am häufigsten vorkommenden +Ports bei jedem gescannten Protokoll. Mit <option>-F</option> werden diese +auf 100 beschränkt.</para> + +<para>Nmap benötigt die Datei <filename>nmap-services</filename> mit +Informationen zur Häufigkeit, um zu wissen, welche Ports am häufigsten +benutzt werden<notman> (see <xref linkend="nmap-services"/> +for more about port frequencies)</notman>. Wenn keine Angaben über +die Port-Häufigkeit verfügbar sind, vielleicht weil eine benutzerdefinierte +<filename>nmap-services</filename>-Datei verwendet wird, +dann bedeutet <option>-F</option>, dass nur Ports gescannt werden, +die in der Dienstedatei mit Namen vorkommen (normalerweise scannt Nmap +alle benannten Ports plus die Ports 1–1024).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-r</option> (Ports nicht randomisieren) + <indexterm><primary><option>-r</option></primary></indexterm> + <indexterm><primary>Randomisierung von Ports</primary></indexterm> + </term> + <listitem> +<para>Standardmäßig randomisiert Nmap die Reihenfolge der gescannten Ports +(bis auf einige allgemein zugängliche Ports, die aus Effizienzgründen +vorgezogen werden). Diese Randomisierung ist normalerweise erwünscht, +aber Sie können stattdessen auch <option>-r</option> für einen sequentiellen +Port-Scan angeben.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--port-ratio <decimal number between 0 and 1></option> + </term> + <listitem> + <indexterm><primary>--port-ratio</primary></indexterm> + <para>Scannt alle Ports in der Datei +<filename>nmap-services</filename> mit einem größeren Bruchteil als +die Zahl, die als Argument angegeben wird.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--top-ports <integer of 1 or greater></option> + </term> + <listitem> + <indexterm><primary>--top-ports</primary></indexterm> + <para>Scannt die N Ports mit dem höchsten Bruchteil +in der Datei <filename>nmap-services</filename>.</para> + </listitem> + </varlistentry> + + </variablelist> + +</refsect1> + + + <refsect1 id='man-version-detection'> + <title>Dienst- und Versionserkennung</title> + <indexterm class="startofrange" id="man-version-detection-indexterm"><primary>Versionserkennung</primary></indexterm> + +<para>Lassen Sie Nmap auf einen entfernten Rechner los, und Sie +erfahren z.B. dass die Ports <literal>25/tcp</literal>, +<literal>80/tcp</literal> und <literal>53/udp</literal> offen sind. +Dank der über 2200 bekannten Dienste in seiner Datenbank in +<filename>nmap-services</filename><indexterm><primary><filename>nmap-services</filename></primary></indexterm> würde Nmap noch ausgeben, dass diese Ports +wahrscheinlich jeweils zu einem Mailserver (SMTP), Webserver (HTTP) und +Nameserver (DNS) gehören. Normalerweise sind diese Angaben genau — +die überwiegende Mehrheit an Daemons, die den TCP-Port 25 abhören, sind +tatsächlich Mailserver. Allerdings sollten Sie nicht Ihre Sicherheit darauf +verwetten! Manche Leute können nicht nur Dienste auf seltsamen Ports +betreiben, sondern tun es +auch.<indexterm><primary>Nicht-Standard-Ports</primary></indexterm> +</para> + +<para>Selbst wenn Nmap recht hat und auf dem Server im obigen Beispiel +SMTP-, HTTP- und DNS-Server laufen, ist das nicht besonders viel an Information. +Bei der Beurteilung der Angreifbarkeit (oder auch nur beim Erstellen +einfacher Netzwerkinventare) Ihrer Firmen oder Kunden möchten Sie auch +wissen, welche Mail- und DNS-Server und welche Versionen davon laufen. Eine genaue +Versionsnummer hilft enorm bei der Bestimmung der Exploits, für die ein +Server anfällig ist. +Die Versionserkennung hilft Ihnen, an diese Information heranzukommen. +</para> + +<para>Nachdem TCP- und/oder UDP-Ports mit einer der anderen Scan-Methoden +entdeckt wurden, fragt die Versionserkennung diese Ports ab, um mehr +darüber zu erfahren, was tatsächlich darauf läuft. Die Datenbank in +<filename>nmap-service-probes</filename><indexterm><primary><filename>nmap-service-probes</filename></primary></indexterm> +enthält Testpakete für die Abfrage verschiedenster Dienste und Ausdrücke +für den Vergleich und das Parsen der Antworten. Nmap versucht, das +Dienstprotokoll zu bestimmen (z.B. FTP, SSH, Telnet, HTTP), aber auch +Anwendungsnamen (z.B. ISC BIND, Apache httpd, Solaris telnetd), +Versionsnummer, Hostnamen, Gerätetyp (z.B. Drucker, Router), die +Betriebssystemfamilie (z.B. Windows, Linux) und manchmal verschiedene +Details: etwa ob ein X-Server Verbindungen annimmt, die SSH-Protokollversion +oder der KaZaA-Benutzername. Natürlich bieten die meisten Dienste +nicht all diese Information. Falls Nmap mit OpenSSL-Unterstützung +kompiliert wurde, verbindet es sich mit SSL-Servern, um den hinter dieser +Verschlüsselungsebene<indexterm><primary>SSL</primary><secondary>in Versionserkennung</secondary></indexterm> +lauschenden Dienst zu ermitteln. +Wenn RPC-Dienste erkannt werden, wird automatisch Nmaps +RPC-Holzhammer<indexterm><primary>RPC-Holzhammer</primary></indexterm> +(<option>-sR</option>)<indexterm><primary><option>-sR</option></primary></indexterm> +benutzt, um die RPC-Programm- und Versionsnummern zu bestimmen. Manche +UDP-Ports bleiben im Zustand <literal>offen|gefiltert</literal>, nachdem +ein UDP-Port-Scan nicht bestimmen konnte, ob der Port offen oder gefiltert +ist. Die Versionserkennung versucht, diesen Ports eine Antwort zu entlocken +(genauso wie bei offenen Ports) und den Zustand auf offen zu ändern, +wenn das gelingt. <literal>Offene|gefilterte</literal> TCP-Ports werden +genauso behandelt. Beachten Sie, dass die Nmap-Option <option>-A</option> +unter anderem auch die Versionserkennung einschaltet. +<man> +A paper documenting the workings, usage, and customization of version +detection is available at +<ulink url="https://nmap.org/book/vscan.html" />. +</man> +<notman> +Die Versionserkennung wird detailliert in <xref linkend="vscan"/> behandelt. +</notman> +</para> + +<para>Wenn Nmap Antworten von einem Dienst erhält, aber keine Übereinstimmungen +dafür in seiner Datenbank finden kann, gibt es einen speziellen Fingerprint +und eine URL aus, damit Sie diese Antwort einsenden können, falls Sie genau +wissen, was auf diesem Port läuft. Bitte nehmen Sie sich ein paar Minuten +Zeit, um sie einzusenden, damit Ihr Fund für alle ein Gewinn sein kann. +Dank dieser Beiträge hat Nmap über 3000 Musterübereinstimmungen für +über 350 Protokolle wie SMTP, FTP, HTTP usw.<indexterm><primary>Einsenden von Dienst-Fingerprints</primary></indexterm> +</para> + +<para>Die Versionserkennung wird mit den folgenden Optionen aktiviert und +gesteuert:</para> + + <variablelist> + + <varlistentry> + <term> + <option>-sV</option> (Versionserkennung) + <indexterm><primary><option>-sV</option></primary></indexterm></term> + <listitem> + +<para>Aktiviert die Versionserkennung wie oben beschrieben. +Alternativ dazu können Sie <option>-A</option> benutzen, was unter +anderem auch die Versionserkennung aktiviert.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--allports</option> (keine Ports von der Versionserkennung ausschließen) + <indexterm><primary><option>--allports</option></primary></indexterm> + </term> + <listitem> + +<para>Standardmäßig schließt Nmaps Versionserkennung den TCP-Port 9100 +aus, weil manche Drucker einfach alles ausdrucken, was an diesen Port +gesendet wird, was zu Dutzenden von Seiten mit HTTP-GET-Requests, +binären SSL-Session-Requests usw. führen würde. Dieses Verhalten kann +man ändern, indem man die <literal>Exclude</literal>-Anweisung in +<filename>nmap-service-probes</filename> verändert oder entfernt, oder +Sie geben <option>--allports</option> an, um alle Port zu scannen, +unabhängig von einer <literal>Exclude</literal>-Anweisung. +<indexterm><primary><literal>Exclude</literal> Anweisung (<filename>nmap-service-probes</filename>)</primary></indexterm> +</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-intensity <replaceable>intensity</replaceable></option> (Intensität des Versions-Scans setzen) + <indexterm><primary><option>--version-intensity</option></primary></indexterm> + </term> + <listitem> + +<para>Bei einem Versions-Scan (<option>-sV</option>) sendet Nmap eine +Reihe von Testpaketen, die alle über einen zugeordneten Seltenheitswert +zwischen eins und neun verfügen. Die Testpakete mit kleineren Werten +sind bei einer großen Zahl verbreiteter Dienste wirkungsvoll, während +die mit höheren Werten seltener nützlich sind. Die Intensitätsstufe gibt +an, welche Testpakete angewendet werden sollten. Je höher die Zahl, desto +wahrscheinlicher wird der Dienst richtig identifiziert. Allerdings +brauchen Scans mit hoher Intensität mehr Zeit. Diese Intensität muss +zwischen 0 und 9 liegen. +<indexterm><primary>Versionserkennung</primary><secondary>Intensität</secondary></indexterm> +Die Standardeinstellung ist 7. +<indexterm><primary>Versionserkennung</primary><secondary>Standardintensität</secondary></indexterm> +Wenn ein Testpaket mit der <literal>ports</literal>-Anweisung in +<filename>nmap-service-probes</filename> für den Zielport registriert +ist, wird dieses Testpaket ausprobiert, unabhängig von der Intensitätsstufe. +Das garantiert, dass die DNS-Testpakete bei jedem offenen Port 53 immer +benutzt werden, das SSL-Testpaket bei Port 443 usw.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-light</option> (leichten Modus setzen) + <indexterm><primary><option>--version-light</option></primary></indexterm> + </term> + <listitem> + +<para>Das ist ein Alias für <option>--version-intensity 2</option> aus +Bequemlichkeitsgründen. Dieser leichte Modus macht die Versionserkennung +wesentlich schneller, identifiziert die Dienste aber mit geringerer +Wahrscheinlichkeit.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-all</option> (benutze alle Testpakete) + <indexterm><primary><option>--version-all</option></primary></indexterm> + </term> + <listitem> + +<para>Das ist ein Alias für <option>--version-intensity 9</option>, der +garantiert, dass jedes einzelne Testpaket bei jedem Port ausprobiert +wird.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-trace</option> (verfolge Aktivität des Versions-Scans) + <indexterm significance="preferred"><primary><option>--version-trace</option></primary></indexterm> + </term> + <listitem> +<para>Das bewirkt, dass Nmap umfangreiche Debugging-Information darüber +ausgibt, was die Versionserkennung gerade macht. Das ist eine Untermenge +dessen, was Sie mit <option>--packet-trace</option> erhalten.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sR</option> (RPC-Scan) + <indexterm significance="preferred"><primary><option>-sR</option></primary></indexterm> + <indexterm><primary>RPC scan</primary><see>RPC-Holzhammer</see></indexterm> + <indexterm><primary>RPC-Holzhammer</primary></indexterm> + </term> + + <listitem> +<para>Diese Methode funktioniert zusammen mit den verschiedenen +Port-Scan-Methoden von Nmap. Sie nimmt alle offenen TCP-/UDP-Ports +und überflutet sie mit NULL-Befehlen für das SunRPC-Programm, in dem +Versuch, festzustellen, ob es RPC-Ports sind, und wenn ja, welches +Programm und welche Versionsnummer darauf läuft. Dadurch können Sie +quasi dieselbe Information herausfinden wie mit +<command>rpcinfo -p</command>, selbst wenn der Portmapper des Ziels +hinter einer Firewall liegt (oder von TCP-Wrappern geschützt wird). +Köder funktionieren im Moment nicht mit dem +RPC-Scan.<indexterm><primary>Köder</primary><secondary>von Scans benutzte</secondary></indexterm> +Das wird automatisch als Teil einer Versionserkennung aktiviert +(<option>-sV</option>), wenn Sie diese verlangen. Da die +Versionserkennung das enthält und wesentlich umfangreicher ist, +wird <option>-sR</option> selten benötigt.</para> + </listitem> + </varlistentry> + + </variablelist> + <indexterm class="endofrange" startref="man-version-detection-indexterm"/> + </refsect1> + + + <refsect1 id='man-os-detection'> + + <title>Betriebssystem-Erkennung</title> + <indexterm class="startofrange" id="man-os-detection-indexterm"><primary>Betriebssystemerkennung</primary></indexterm> + +<para>Eines der bekanntesten Merkmale von Nmap ist dessen Erkennung +entfernter Betriebssysteme mit TCP/IP-Stack-Fingerprinting. Nmap +sendet eine Reihe von TCP- und UDP-Paketen an den entfernten Host +und untersucht praktisch jedes Bit in der Antwort. Nach der Durchführung +Dutzender von Tests, wie z.B. einer TCP-ISN-Abtastung, Unterstützung und +Reihenfolge von TCP-Optionen, IP-ID-Abtastung und Prüfung der initialen +Fenstergröße, vergleicht Nmap die Ergebnisse mit seiner Datenbank in +<filename>nmap-os-db</filename><indexterm><primary><filename>nmap-os-db</filename></primary></indexterm> +von über eintausend bekannten Betriebssystem-Fingerprints und gibt +die Details zum Betriebssystem aus, wenn es eine Übereinstimmung gefunden +hat. +Jeder Fingerprint enthält eine formlose Beschreibung des Betriebssystems +und eine Klassifikation, aus der der Herstellername (z.B. Sun), das +eigentliche Betriebssystem (z.B. Solaris), dessen Generation (z.B. 10) +und der Gerätetyp (allgemein, Router, Switch, Spielkonsole +usw.) hervorgeht.</para> + +<para>Falls Nmap das Betriebssystem eines Rechner nicht erraten kann +und die Umstände günstig sind (z.B. wenn mindestens ein offener und ein +geschlossener Port gefunden wurde), präsentiert Nmap eine URL, unter +der Sie den Fingerprint einsenden können, wenn Sie (ganz sicher) wissen, +welches Betriebssystem auf dem Rechner läuft. Dadurch erweitern Sie den +Pool der Betriebssysteme, die Nmap kennt, wodurch es für alle Benutzer +genauer wird.</para> + +<para>Die Betriebssystem-Erkennung verwendet einige weitere Tests, +die Informationen benutzen, die während des Vorgangs ohnehin gesammelt +werden. Eine davon ist die Klassifikation der Vorhersagbarkeit der +TCP-Sequenznummern. Sie gibt ungefähr an, wie schwer es ist, eine +gefälschte TCP-Verbindung zum entfernten Host aufzubauen. Sie ist +hilfreich zur Ausbeutung von Vertrauensbeziehungen auf Basis von +Quell-IPs (rlogin, Firewall-Filter usw.) oder zum Verbergen des +Ursprungs eines Angriffs. Diese Art von Täuschung wird kaum noch +praktiziert, aber viele Rechner sind nach wie vor anfällig dafür. +Die eigentliche Maßzahl basiert auf statistischen Abtastungen und +kann schwanken. Im Allgemeinen ist es besser, die englische Bezeichnung +wie z.B. <quote>worthy challenge</quote> oder +<quote>trivial joke</quote> zu benutzen. Das wird nur in der normalen +Ausgabe im ausführlichen Modus (<option>-v</option>) ausgegeben. Wenn +dieser Modus zusammen mit <option>-O</option> aktiviert ist, wird auch +die IP-ID-Sequenzerzeugung berichtet. Die meisten Rechner finden sich +in der Klasse <quote>incremental</quote>, d.h. sie inkrementieren das +ID-Feld im IP-Header für jedes von ihnen gesendete Paket. Dadurch +werden sie anfällig für diverse avancierte Angriffe mittels +Täuschung und Sammlung von Informationen.</para> + +<indexterm><primary>Betriebszeit-Schätzung</primary></indexterm> +<para> +Eine weitere zusätzliche Information, die die Betriebssystem-Erkennung +aktiviert, ist eine Schätzung der Betriebszeit des Zielhosts. Dabei +wird die TCP-Timestamp-Option +(<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc1323.txt">RFC 1323</ulink>) +benutzt, um zu raten, wann ein Rechner das letzte Mal neu gestartet wurde. +Wenn der Timestamp-Zähler nicht bei null gestartet wurde oder der Zähler +überläuft und wieder von vorn zählt, kann diese Schätzung ungenau werden, +weshalb sie nur im ausführlichen Modus ausgegeben wird. +</para> + +<para> +<man> +A paper documenting the workings, usage, and customization of OS +detection is available at +<ulink url="https://nmap.org/book/osdetect.html" />. +</man> + +<notman> +Die Betriebssystem-Erkennung wird in <xref linkend="osdetect"/> behandelt. +</notman> +</para> + +<para>Eingeschaltet und gesteuert wird die Betriebssystem-Erkennung +mit den folgenden Optionen:</para> + +<variablelist> + +<varlistentry> +<term> +<option>-O</option> (Betriebssystem-Erkennung aktivieren) +<indexterm significance="preferred"><primary><option>-O</option></primary></indexterm> +</term> +<listitem> +<para>Aktiviert die Betriebssystem-Erkennung wie oben beschrieben. +Alternativ dazu können Sie <option>-A</option> benutzen, um eine +Betriebssystem-Erkennung zusammen mit anderen Dingen einzuschalten. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>--osscan-limit</option> (Betriebssystem-Erkennung auf vielversprechende Ziele beschränken) +<indexterm significance="preferred"><primary><option>--osscan-limit</option></primary></indexterm> +</term> +<listitem> +<para>Die Betriebssystem-Erkennung ist wesentlich effektiver, wenn +mindestens ein offener und ein geschlossener TCP-Port gefunden werden. +Wenn Sie diese Option angeben, versucht Nmap eine Betriebssystem-Erkennung +gar nicht erst bei Hosts, die dieses Kriterium nicht erfüllen. Das kann +viel Zeit sparen, besonders bei Scans mit <option>-PN</option> auf +vielen Hosts. Diese Option gilt nur, wenn eine Betriebssystem-Erkennung +mit <option>-O</option> oder <option>-A</option> verlangt wird. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>--osscan-guess</option>; <option>--fuzzy</option> (Ergebnisse der Betriebssystem-Erkennung raten) +<indexterm significance="preferred"><primary><option>--osscan-guess</option></primary></indexterm> +<indexterm><primary><option>--fuzzy</option></primary><see><option>--osscan-guess</option></see></indexterm> +</term> +<listitem> +<para>Falls Nmap keine perfekte Übereinstimmung mit einem Betriebssystem +finden kann, präsentiert es manchmal mögliche Kandidaten, die dem sehr +nahe kommen. Damit Nmap das standardmäßig macht, muss die Übereinstimmung +sehr hoch sein. Diese beiden (äquivalenten) Optionen lassen Nmap aggressiver +schätzen. Dann gibt Nmap auch unvollkommene Übereinstimmungen aus, +zusammen mit einem Vertrauensgrad (in Prozent).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>--max-os-tries</option> (setzt die maximale Anzahl der Versuche für eine Betriebssystem-Erkennung bei einem Ziel) +<indexterm significance="preferred"><primary><option>--max-os-tries</option></primary></indexterm> +</term> +<listitem> +<para>Wenn Nmap eine Betriebssystem-Erkennung auf einem Ziel durchführt +und dafür keine perfekte Übereinstimmung findet, macht es normalerweise +einen weiteren Versuch. Standardmäßig macht Nmap fünf Versuche, wenn +die Bedingungen zum Einsenden eines Betriebssystem-Fingerprints günstig +sind, und zwei, wenn sie es nicht sind. Die Angabe eines kleineren Wertes +für <option>--max-os-tries</option> (z.B. 1) beschleunigt Nmap, auch wenn +Sie Versuche auslassen, bei denen das Betriebssystem möglicherweise +erkannt werden könnte. Alternativ dazu kann ein hoher Wert gesetzt werden, +um bei günstigen Bedinungen noch mehr Versuche zu erlauben. Das macht man +aber selten, außer um bessere Fingerprints zu erzeugen, die man einsenden +kann, um sie in Nmaps Betriebssystem-Datenbank zu integrieren.</para> +</listitem> +</varlistentry> + + </variablelist> + <indexterm class="endofrange" startref="man-os-detection-indexterm"/> + </refsect1> + + + <refsect1 id='man-nse'> + <title>Nmap Scripting Engine (NSE)</title> + <indexterm class="startofrange" id="man-nse-indexterm"><primary>Nmap Scripting Engine (NSE)</primary></indexterm> + +<para>Die Nmap Scripting Engine (NSE) ist eines der mächtigsten und +flexibelsten Merkmale von Nmap. Mit ihr können Benutzer einfache Scripts +schreiben und weitergeben (geschrieben in der +<ulink url="http://lua.org">Programmiersprache Lua</ulink> +<indexterm><primary>Programmiersprache Lua</primary></indexterm>), +um eine breite Palette von Netzwerkaufgaben +zu automatisieren. Diese Scripts werden dann parallel mit der Geschwindigkeit +und Effizienz abgearbeitet, die Sie von Nmap erwarten. Als Benutzer können +Sie auf eine wachsende und vielfältige Menge von Scripts vertrauen, die mit +Nmap veröffentlicht werden, oder eigene Scripts für eigene Bedürfnisse +schreiben.</para> + +<para>Zu den Aufgaben, die wir bei der Konzeption dieses Systems +anvisierten, gehören die Netzwerkerkennung, eine ausgefeiltere +Versionserkennung sowie eine Verwundbarkeitserkennung. NSE kann aber +sogar bei der Ausbeutung von Schwachstellen benutzt werden. +</para> + +<para> +Um diese verschiedenen Anwendungen widerzuspiegeln und um die Auswahl +des richtigen Scripts zu vereinfachen, verfügen alle Scripts über ein +Kategorie-Feld. +Im Moment sind folgende Kategorien definiert: +<literal>safe</literal>, <literal>intrusive</literal>, +<literal>malware</literal>, <literal>version</literal>, +<literal>discovery</literal>, <literal>vuln</literal>, +<literal>auth</literal> und <literal>default</literal>. +Sie alle werden +<man>at <ulink url="https://nmap.org/book/nse-usage.html#nse-categories" />.</man> +<notman>in <xref linkend="nse-categories"/> beschrieben.</notman> +</para> + +<para> +Die Nmap Scripting Engine wird detailliert +<man>at <ulink url="https://nmap.org/book/nse.html" /></man> +<notman>in <xref linkend="nse"/></notman> beschrieben und wird mit den +folgenden Optionen gesteuert: +</para> + +<variablelist> + +<varlistentry> +<term><option>-sC</option> +<indexterm significance="preferred"> +<primary><option>-sC</option></primary> +</indexterm> +</term> +<listitem> +<para>Führt einen Script-Scan mit dem Standardsatz an Scripts durch. +Das ist äquivalent zu <option>--script=default</option>. Manche der +Scripts in dieser Kategorie werden als +aufdringlich betrachtet und sollten nicht ohne Genehmigung auf einem +Zielnetzwerk ausgeführt werden. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><option>--script <replaceable>script-categories</replaceable>|<replaceable>directory</replaceable>|<replaceable>filename</replaceable>|all</option><indexterm significance="preferred"><primary><option>--script</option></primary></indexterm></term> + +<listitem> +<para>Führt einen Script-Scan (wie z.B. <option>-sC</option>) durch +und benutzt dabei die mit Kommata getrennte Liste von Script-Kategorien, +individuellen Scripts oder Script-Verzeichnissen statt des Standardsatzes. +Zuerst versucht Nmap, die Argumente als Kategorien zu interpretieren, +dann (wenn das nicht gelingt) als Datei- oder Verzeichnisnamen. Ein Script +oder Verzeichnis von Scripts kann als absoluter oder relativer Pfad angegeben +werden. Absolute Pfade werden unverändert benutzt. Relative Pfade werden an +den folgenden Orten gesucht, bis sie gefunden +werden:<indexterm><primary>Datendateien</primary><secondary>Verzeichnis-Suchreihenfolge</secondary></indexterm><indexterm><primary>Scripts, Orte</primary></indexterm> +<filename>--datadir/</filename>; +<filename>$NMAPDIR/</filename>;<indexterm><primary><envar>NMAPDIR</envar> Umgebungsvariable</primary></indexterm> +<filename>~/.nmap/</filename> (wird unter Windows nicht durchsucht);<indexterm><primary sortas="nmap Verzeichnis"><filename>.nmap</filename> Verzeichnis</primary></indexterm> +<literal>NMAPDATADIR</literal>/ oder<indexterm><primary>NMAPDATADIR</primary></indexterm> +<filename>./</filename>. +In all diesen Verzeichnissen wird außerdem auch ein +<filename>scripts/</filename>-Unterverzeichnis ausprobiert. +</para> + +<para>Falls ein Verzeichnis angegeben und gefunden wird, lädt Nmap alle +NSE-Scripts (alle Dateinamen, die mit <literal>.nse</literal> enden) +aus diesem Verzeichnis. Dateinamen ohne die Endung <literal>nse</literal> +werden ignoriert. Nmap sucht keine Unterverzeichnisse rekursiv durch, +um Scripts zu finden. Wenn individuelle Dateinamen angegeben werden, +dann muss deren Dateierweiterung nicht <literal>nse</literal> lauten. +</para> + +<para>Nmap-Scripts werden standardmäßig in einem +<filename>scripts</filename>-Unterverzeichnis des Nmap-Datenverzeichnisses +gespeichert +<man>(see <ulink url="https://nmap.org/book/data-files.html"/>).</man> +<notman>(siehe <xref linkend="data-files"/>).</notman> Aus Effizienzgründen +werden Scripts in einer Datenbank indiziert, die in <filename>scripts/script.db</filename>.<indexterm><primary><filename>script.db</filename></primary></indexterm> +gespeichert ist und für jedes Script auflistet, in welche Kategorie +bzw. Kategorien es gehört. Um alle Scripts in der Nmap-Script-Datenbank +auszuführen, geben Sie das Argument <literal>all</literal> an. +</para> + +<para>Die Scripts werden nicht in einer Sandbox ausgeführt und können +Ihr System somit versehentlich oder böswillig beschädigen oder in Ihre +Privatsphäre eindringen. Sie sollten Scripts von Dritten nur dann ausführen, +wenn Sie deren Autoren vertrauen oder sie selbst eingehend studiert +haben.</para> + +</listitem> +</varlistentry> + + <varlistentry> + <term><option>--script-args <replaceable>name1</replaceable>=<replaceable>value1</replaceable>,<replaceable>name2</replaceable>={<replaceable>name3</replaceable>=<replaceable>value3</replaceable>},<replaceable>name4</replaceable>=<replaceable>value4</replaceable></option> + <indexterm significance="preferred"><primary><option>--script-args</option></primary></indexterm> + <indexterm><primary>Script-Argumente</primary><seealso><option>--script-args</option></seealso></indexterm></term> + +<listitem> +<para>Hiermit können Sie Argumente für NSE-Scripts angeben. Argumente +werden als <literal>name=value</literal>-Paare angegeben. Die Argumente +werden verarbeitet und in einer Lua-Tabelle gespeichert, auf die alle +Scripts Zugriff haben. Die Namen werden als Strings (die alphanumerische +Werte sein müssen) in <literal>argument-table</literal> als Schlüssel +gespeichert. Die Werte sind ihrerseits entweder Strings oder Tabellen +(innerhalb von ‘<literal>{</literal>’ und +‘<literal>}</literal>’). +Sie könnten z.B. diese mit Kommmata getrennten Argumente angeben: +<literal>user=bar,pass=foo,whois={whodb=nofollow+ripe}</literal>. +String-Argumente werden potenziell von mehreren Scripts benutzt, +während Untertabellen normalerweise nur von einem Script benutzt werden. +In Scripts, die eine Untertabelle annehmen, wird diese Untertabelle +normalerweise nach dem Script benannt (in diesem Fall z.B. +<literal>whois</literal>). +</para> +</listitem> + +</varlistentry> + + +<varlistentry> +<term><option>--script-trace</option> +<indexterm significance="preferred"><primary><option>--script-trace</option></primary></indexterm></term> + +<listitem> +<para> +Diese Option macht das, was <option>--packet-trace</option> macht, +aber eine ISO-Ebene höher. Wenn diese Option +angegeben wird, wird die gesamte ein- und ausgehende Kommunikation +von Scripts ausgegeben. Die angezeigte Information enthält das +Kommunikationsprotokoll, Quell- und Zieladressen sowie die übertragenen +Daten. Falls mehr als fünf Prozent der übertragenen Daten nicht druckbar sind, +werden sie stattdessen als Hexadezimal-Auszug ausgegeben. +Auch die Angabe von <option>--packet-trace</option> schaltet diese +Mitverfolgung von Scripts ein. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><option>--script-updatedb</option> +<indexterm significance="preferred"><primary><option>--script-updatedb</option></primary></indexterm></term> +<listitem> +<para>Diese Option aktualisiert die Script-Datenbank in +<filename>scripts/script.db</filename>, die von Nmap benutzt wird, +um die verfügbaren Standard-Scripts und Kategorien zu bestimmen. +Man muss die Datenbank nur dann aktualisieren, wenn man NSE-Scripts +in das Standardverzeichnis <filename>scripts</filename> hinzufügt oder +von dort entfernt, oder wenn man die Kategorie eines Scripts ändert. +Diese Option wird ohne Argumente benutzt: +<command>nmap --script-updatedb</command>. +</para> +</listitem> +</varlistentry> +</variablelist> + + <indexterm class="endofrange" startref="man-nse-indexterm"/> + </refsect1> + +<refsect1 id='man-performance'> +<title>Timing und Performance</title> +<indexterm class="startofrange" id="man-performance-timing-indexterm"><primary>Timing</primary></indexterm> +<indexterm class="startofrange" id="man-performance-indexterm"><primary>Performance</primary></indexterm> + +<para>Bei der Entwicklung von Nmap hatte dessen Performance immer eine der +höchsten Prioritäten. Ein Standardscan (<command>nmap +<replaceable>hostname</replaceable></command>) eines Hosts in meinem lokalen +Netzwerk dauert eine Fünftelsekunde. In dieser Zeit kann man kaum blinzeln, +aber wenn man Hunderte oder Tausende von Rechnern scannt, dann kommt einiges +zusammen. Außerdem können bestimmte Scan-Optionen wie UDP-Scanning und eine +Versionserkennung die Scan-Zeiten erheblich erhöhen. Das Gleiche gilt für +bestimmte Firewall-Konfigurationen und besonders für die Beschränkung der +Antwortrate. Auch wenn Nmap parallel arbeitet und viele ausgefeilte +Algorithmen benutzt, um diese Scans zu beschleunigen, hat doch der Benutzer +die letzte Kontrolle darüber, was Nmap genau macht. Experten erstellen ihre +Nmap-Befehle sehr sorgfältig, um in einer beschränkten Zeit genau die +gewünschte Information zu bekommen.</para> + +<para>Um die Scan-Zeiten zu verbessern, kann man z.B. nicht-kritische Tests +weglassen und auf die neueste Version von Nmap aktualisieren +(Performance-Verbesserungen werden häufig gemacht). Auch die Optimierung +von Timing-Parametern kann einen großen Unterschied ausmachen. +Diese Optionen werden im Folgenden beschrieben.</para> + +<para>Manche Optionen erwarten einen <literal>time</literal>-Parameter. +Dieser wird standardmäßig in Millisekunden angegeben, aber Sie können +‘s’, ‘m’ oder ‘h’ an den Wert +anhängen, um Sekunden, Minuten oder Stunden anzugeben. Das heißt, bei +<option>--host-timeout</option> haben die Argumente +<literal>900000</literal>, <literal>900s</literal> und +<literal>15m</literal> alle denselben Effekt.</para> + +<variablelist> + +<varlistentry> +<term> +<option>--min-hostgroup <replaceable>numhosts</replaceable></option>; +<option>--max-hostgroup +<replaceable>numhosts</replaceable></option> (Größe der parallel gescannten Gruppen anpassen) +<indexterm><primary><option>--min-hostgroup</option></primary></indexterm> +<indexterm><primary><option>--max-hostgroup</option></primary></indexterm> +</term> +<listitem> + +<para>Nmap hat die Fähigkeit, Port-Scans oder Versions-Scans von mehreren +Hosts parallel durchzuführen. Das macht Nmap, indem es den Ziel-IP-Adressraum +in Gruppen aufteilt und dann jeweils eine Gruppe scannt. Im Allgemeinen +sind größere Gruppen effizienter. Der Nachteil daran ist, dass die +Host-Ergebnisse erst dann ausgegeben werden können, wenn die gesamte +Gruppe fertig ist. Wenn Nmap mit einer Gruppengröße von 50 anfängt, würde +der Benutzer erst dann Ergebnisse sehen (bis auf die Aktualisierungen +im ausführlichen Modus), wenn die ersten 50 Hosts abgearbeitet sind.</para> + +<para>Diesen Konflikt löst Nmap standardmäßig mit einem Kompromissansatz. +Es fängt mit einer kleinen Gruppengröße von etwa fünf an, damit die ersten +Ergebnisse schnell kommen, und erhöht dann die Gruppengröße bis auf +etwa 1024. Die genau vorgegebenen Zahlen hängen von den benutzten Optionen +ab. Aus Effizienzgründen benutzt Nmap größere Gruppen bei UDP-Scans oder +bei TCP-Scans über wenige Ports.</para> + +<para>Falls mit <option>--max-hostgroup</option> eine maximale Gruppengröße +angegeben wird, wird Nmap diese nie überschreiten. Und wenn Sie mit +<option>--min-hostgroup</option> eine minimale Größe angeben, versucht +Nmap, die Gruppengröße oberhalb dieses Wertes zu belassen. Falls es auf +einer gegebenen Schnittstelle nicht genug Zielhosts gibt, um dieses +Minimum zu erfüllen, muss Nmap einen kleineren Wert benutzen. Es können +auch beide gesetzt werden, um die Gruppengröße in einem bestimmten +Bereich zu belassen, aber das ist selten gewünscht.</para> + +<para>Diese Optionen haben während der Host-Entdeckungsphase eines Scans +keinen Effekt. Dazu gehören einfache Ping-Scans (<option>-sP</option>). +Die Host-Entdeckung funktioniert immer in großen Gruppen von Hosts, +um die Geschwindigkeit und Genauigkeit zu verbessern.</para> + +<para>Der Hauptnutzen dieser Optionen liegt darin, eine hohe minimale +Gruppengröße anzugeben, damit der gesamte Scan schneller läuft. Häufig +wird 256 gewählt, um ein Netzwerk in Brocken der Größe von Klasse C zu +scannen. Bei einem Scan mit vielen Ports bringt eine größere Zahl +vermutlich keine Vorteile. Bei Scans über nur wenige Ports können +Gruppengrößen von 2048 oder mehr hilfreich sein.</para> + +</listitem> +</varlistentry> + +<varlistentry> +<term> +<option>--min-parallelism <replaceable>numprobes</replaceable></option>; +<option>--max-parallelism +<replaceable>numprobes</replaceable></option> (Parallelität von Testpaketen anpassen) +<indexterm><primary><option>--min-parallelism</option></primary></indexterm> +<indexterm><primary><option>--max-parallelism</option></primary></indexterm> +</term> +<listitem> + +<para>Diese Optionen steuern die Gesamtanzahl an Testpaketen, die für +eine Host-Gruppe anstehen dürfen. Sie werden beim Port-Scanning und +bei der Host-Entdeckung benutzt. Abhängig von der Netzwerk-Performance +berechnet Nmap standardmäßig eine immer wechselnde ideale Parallelität. +Falls Pakete verworfen werden, verlangsamt sich Nmap und erlaubt weniger +unerledigte Testpakete. Die ideale Anzahl von Testpaketen steigt mit +den zunehmenden Möglichkeiten des Netzwerks. Diese Optionen setzen +minimale oder maximale Schranken für diese Variable. Standardmäßig kann +die ideale Parallelität auf eins sinken, wenn sich das Netzwerk als +unzuverlässig herausstellt, und im Idealfall kann sie auf mehrere hundert +steigen.</para> + +<para>Meistens setzt man <option>--min-parallelism</option> auf eine +Zahl größer als eins, um Scans von langsamen Hosts oder Netzwerken zu +beschleunigen. Aber das Spielen mit dieser Option kann gefährlich sein, +weil die Genaugkeit leiden kann, wenn man einen zu großen Wert setzt. +Dabei verringert sich auch Nmaps Möglichkeit, die Parallelität je nach +Netzwerkbedingungen dynamisch anzupassen. Ein Wert von zehn mag vernünftig +sein, auch wenn ich nur als letzter Ausweg an diesem Wert drehe.</para> + +<para>Die Option <option>--max-parallelism</option> wird manchmal auf eins +gesetzt, um zu verhindern, dass Nmap mehr als ein Testpaket auf einmal an +Hosts sendet. In Kombination mit <option>--scan-delay</option> (wird +später behandelt) kann das nützlich sein, auch wenn Letzteres diesen Zweck +gut genug allein erfüllt.</para> + +</listitem> +</varlistentry> + + +<varlistentry> +<term> +<option>--min-rtt-timeout <replaceable>time</replaceable></option>, +<option>--max-rtt-timeout <replaceable>time</replaceable></option>, +<option>--initial-rtt-timeout +<replaceable>time</replaceable></option> (Timeouts von Testpaketen anpassen) +<indexterm><primary><option>--min-rtt-timeout</option></primary></indexterm> +<indexterm><primary><option>--max-rtt-timeout</option></primary></indexterm> +<indexterm><primary><option>--initial-rtt-timeout</option></primary></indexterm> +</term> +<listitem> + +<para>Nmap verwaltet einen laufenden Timeout-Wert, der bestimmt, wie +lange es auf eine Antwort zu einem Testpaket wartet, bevor es aufgibt +oder das Paket erneut sendet. Dieser wird auf der Grundlage der +Antwortzeiten bei früheren Testpaketen berechnet. +<notman>Die genaue Formel finden Sie in +<xref linkend="port-scanning-algorithms" />.</notman> +Falls die Netzwerk-Latenzzeit sich als groß genug und variabel erweist, +kann dieser Timeout bis auf mehrere Sekunden wachsen. Er beginnt auch +bei einem konservativen (hohen) Wert und kann diesen eine Weile behalten, +wenn Nmap Hosts scannt, die nicht antworten.</para> + +<para> +Werden Werte für <option>--max-rtt-timeout</option> und +<option>--initial-rtt-timeout</option> angegeben, die kleiner als deren +Standardwerte sind, so kann die Scan-Zeit erheblich verkürzt werden. +Das gilt besonders für pinglose (<option>-PN</option>) Scans und solche +von stark gefilterten Netzwerken. Aber verlangen Sie nicht zu viel. +Der Scan kann am Ende länger brauchen, wenn Sie einen so kleinen Wert +angeben, dass bei vielen Testpaketen der Timeout erreicht wird und +sie erneut gesendet werden, während die Antwort unterwegs ist.</para> + +<para>Falls alle Hosts in einem lokalen Netzwerk sind, sind 100 Millisekunden +ein vernünftig aggressiver Wert für <option>--max-rtt-timeout</option>. +Falls ein Routing ins Spiel kommt, pingen Sie zuerst einen Host im Netzwerk, +sei es mit einem ICMP-Ping oder mit einem Programm zur Erstellung +benutzerdefinierter Pakete wie +<command>hping2</command>,<indexterm><primary><command>hping2</command></primary></indexterm> +das eine höhere Chance hat, durch eine Firewall zu kommen. +Betrachten Sie dann die maximale Umlaufzeit bei circa zehn Paketen. +Diese möchten Sie vielleicht für <option>--initial-rtt-timeout</option> +verdoppeln und für <option>--max-rtt-timeout</option> verdrei- oder +vervierfachen. Im Allgemeinen setze ich die maximale RTT nicht unter +100 ms, egal, welche Ping-Zeiten ich habe. Und ich gehe auch nicht +über 1000 ms.</para> + +<para>Die Option <option>--min-rtt-timeout</option> wird selten benutzt, +könnte aber nützlich sein, wenn ein Netzwerk so unzuverlässig ist, dass +selbst Nmaps Standardeinstellung zu aggressiv ist. Da Nmap das Timeout +nur dann auf das Minimum reduziert, wenn das Netzwerk zuverlässig scheint, +sollte ein Bedarf hierfür eher ungewöhnlich sein und sollte als Fehler +auf der <citetitle>nmap-dev</citetitle>-Mailingliste<indexterm><primary><citetitle>nmap-dev</citetitle> Mailingliste</primary></indexterm> +berichtet werden. +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--max-retries <replaceable>numtries</replaceable></option> (gibt die + maximale Anzahl erneuter Sendeversuche bei Port-Scan-Testpaketen an) + <indexterm><primary><option>--max-retries</option></primary></indexterm> + </term> + <listitem> + +<para>Falls Nmap keine Antwort auf ein Testpaket eines Port-Scans erhält, +könnte das heißen, dass der Port gefiltert ist. Oder aber das Testpaket +oder die Antwort darauf ging im Netzwerk verloren. Es ist auch möglich, +dass der Zielhost eine Ratenbeschränkung aktiviert hat, die die Antwort +temporär blockiert hat. Also versucht es Nmap erneut, indem es das +ursprüngliche Paket noch einmal sendet. Falls Nmap eine mangelnde +Netzwerkzuverlässigkeit feststellt, führt es eventuell viele weitere +Wiederholungen durch, bevor es bei einem Port aufgibt. Das verbessert +zwar die Genauigkeit, verlängert aber auch die Scan-Zeiten. Wenn es auf +die Performance ankommt, kann man die Scans durch eine Beschränkung +der Anzahl dieser Wiederholungen beschleunigen. Sie können sogar +<option>--max-retries 0</option> angeben, um sie ganz zu verbieten, +auch wenn sich das nur in Situationen wie formlosen Überprüfungen +empfiehlt, bei denen einige verpasste Ports oder Hosts +nicht so wichtig sind. +</para> + +<para>Der Standardwert (ohne <option>-T</option>-Template) sind bis zu zehn +Wiederholungen. Falls das Netzwerk zuverlässig zu sein scheint und die +Zielhosts keine Ratenbeschränkung haben, führt Nmap normalerweise nur eine +Wiederholung durch. Daher sind die meisten Scans gar nicht betroffen, wenn +man <option>--max-retries</option> z.B. auf den kleinen Wert drei verringert. +Solche Werte können Scans von langsamen (ratenbeschränkten) Hosts aber +erheblich beschleunigen. Wenn Nmap frühzeitig bei Ports aufgibt, verlieren +Sie eventuell einiges an Information, aber das kann vorteilhafter sein, als +ein Timeout von <option>--host-timeout</option> zu erreichen und alle +Informationen über das Ziel zu verlieren.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--host-timeout <replaceable>time</replaceable></option> (bei langsamen Zielhosts aufgeben) + <indexterm><primary><option>--host-timeout</option></primary></indexterm> + </term> + <listitem> + +<para>Bei manchen Hosts braucht es einfach <emphasis>lange</emphasis>, +sie zu scannen. Das kann an leistungsschwacher oder unzuverlässiger +Netzwerk-Hardware oder -Software, an einer Paketratenbeschränkung +oder einer restriktiven Firewall liegen. Die langsamsten paar Prozent +der gescannten Hosts können einen Großteil der Scan-Zeit verbrauchen. +Dann ist es manchmal das Beste, die Verluste abzuschneiden und diese +Hosts erst einmal wegzulassen. Geben Sie <option>--host-timeout</option> +mit der gewünschten maximalen Wartezeit an. Sie können z.B. +<literal>30m</literal> angeben, um sicherzustellen, dass Nmap nicht +mehr als eine halbe Stunde verschwendet, indem es auf einen einzelnen +Host wartet. Beachten Sie, dass Nmap während dieser halben Stunde auch +andere Hosts scannen kann, d.h. es ist keine komplette Zeitverschwendung. +Ein Host, der das Timeout erreicht, wird übersprungen. +Für diesen Host werden keine Ergebnisse der Port-Tabelle, +Betriebssystem- oder Versionserkennung ausgegeben.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scan-delay <replaceable>time</replaceable></option>; + <option>--max-scan-delay + <replaceable>time</replaceable></option> (Verzögerung zwischen Testpaketen anpassen) + <indexterm><primary><option>--scan-delay</option></primary></indexterm> + <indexterm><primary><option>--max-scan-delay</option></primary></indexterm> + </term> + <listitem> + +<para>Diese Option bewirkt, dass Nmap mindestens die angegebene Zeit +zwischen zwei Testpaketen an einen Host wartet. Das ist besonders bei +einer Ratenbeschränkung<indexterm><primary>Ratenbeschränkung</primary></indexterm> +sinnvoll. Solaris-Rechner (und viele andere auch) antworten auf +UDP-Scan-Testpakete normalerweise nur mit einer ICMP-Nachricht pro +Sekunde. Wenn Nmap mehr sendet, ist das Verschwendung. Mit einem +<option>--scan-delay</option> von <literal>1s</literal> bleibt Nmap +bei dieser langsamen Rate. Nmap versucht eine Ratenbeschränkung zu +erkennen und die Scan-Verzögerung entsprechend anzupassen, aber es +schadet nicht, sie explizit anzugeben, falls Sie schon wissen, welche +Rate am besten funktioniert.</para> + +<para>Wenn Nmap die Scan-Verzögerung nach oben anpasst, um mit der +Ratenbeschränkung klarzukommen, verlangsamt sich der Scan dramatisch. +Die Option <option>--max-scan-delay</option> gibt die größte Verzögerung +an, die Nmap erlaubt. Ein kleiner Wert für <option>--max-scan-delay</option> +kann Nmap beschleunigen, ist aber riskant. Ein zu kleiner Wert kann zu +verschwenderischen wiederholten Sendungen führen und möglicherweise zu +verpassten Ports, wenn das Ziel eine strenge Ratenbeschränkung +implementiert.</para> + +<para>Ein weiterer Einsatz von <option>--scan-delay</option> liegt bei +der Umgehung schwellwertbasierter Intrusion-Detection- und +-Prevention-Systeme (IDS/IPS).<indexterm><primary>intrusion detection +systems</primary><secondary>evading</secondary></indexterm> <notman>Diese +Methode wird in <xref linkend="defeating-ids-snort-portscan" /> benutzt, +um den standardmäßigen Port-Scan-Detektor im Snort-IDS zu besiegen. +Auf dieselbe Weise können auch die meisten anderen Intrusion-Detection-Systeme +besiegt werden.</notman> +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-rate <replaceable>number</replaceable></option>; <option>--max-rate <replaceable>number</replaceable></option> + (direkte Steuerung der Scan-Rate) + <indexterm><primary><option>--min-rate</option></primary></indexterm> + <indexterm><primary><option>--max-rate</option></primary></indexterm> + </term> + <listitem> + +<para>Nmaps dynamisches Timing findet sehr gut die passende +Scan-Geschwindigkeit. Aber manchmal kennen Sie vielleicht die passende +Scan-Rate für ein Netzwerk, oder vielleicht müssen Sie garantieren, +dass ein Scan bis zu einem bestimmten Zeitpunkt fertig wird. Oder Sie +müssen Nmap vielleicht davon abhalten, zu schnell zu scannen. +Für diese Situationen sind die Optionen <option>--min-rate</option> +und <option>--max-rate</option> vorgesehen.</para> + +<para>Bei der Option <option>--min-rate</option> versucht Nmap sein +Bestes, um Pakete so schnell wie die damit angegebene Rate zu senden +oder noch schneller. Das Argument ist eine positive Fießkommazahl, +die die Paketrate in Paketen pro Sekunde angibt. +Die Angabe <option>--min-rate 300</option> bedeutet z.B., dass Nmap +eine Rate von 300 Paketen pro Sekunde oder höher einzuhalten versucht. +Die Angabe einer Minimalrate hält Nmap nicht davon ab, bei günstigen +Bedingungen schneller zu werden.</para> + +<para>Umgekehrt beschränkt <option>--max-rate</option> die Senderate auf +das angegebene Maximum. Bei <option>--max-rate 100</option> wird sie +auf 100 Pakete pro Sekunde bei einem schnellen Netzwerk beschränkt. Und +bei <option>--max-rate 0.1</option> wird der Scan auf ein Paket pro +zehn Sekunden verlangsamt. Mit <option>--min-rate</option> und +<option>--max-rate</option> gleichzeitig können Sie die Rate in einem +bestimmten Bereich halten.</para> + +<para>Diese beiden Optionen sind global und betreffen den gesamten Scan, +nicht nur einzelne Hosts. Sie betreffen nur Port-Scans und +Host-Entdeckungs-Scans. Andere Merkmale wie die Betriebssystemerkennung +implementieren ihr eigenes Timing.</para> + +<para>Unter zwei Bedingungen kann die tatsächliche Scan-Rate unter das +verlangte Minimum fallen. Die erste ist, wenn das Minimum schneller als +die schnellste Rate ist, mit der Nmap senden kann, was hardwareabhängig +ist. +In diesem Fall sendet Nmap Pakete einfach so schnell wie möglich, aber +Sie sollten wissen, dass solch hohe Raten sehr wahrscheinlich einen Verlust +an Genauigkeit bedeuten. +Die zweite Bedingung ist, wenn Nmap nichts zu senden hat, z.B. am Ende +eines Scans, nachdem die letzten Testpakete gesendet wurden und Nmap +darauf wartet, dass sie einen Timeout verursachen oder beantwortet werden. +Eine sinkende Scan-Rate am Ende eines Scans oder zwischen Gruppen von +Hosts ist normal. Die Senderate kann temporär das Maximum übersteigen, +um unvorhergesehene Verzögerungen auszugleichen, aber im Durchschnitt +bleibt die Rate bei oder unter dem Maximum.</para> + +<para>Eine minimale Rate sollte man mit Vorsicht angeben. Scans, die +schneller sind, als das Netzwerk erlaubt, können zu einem Verlust von +Genauigkeit führen. In manchen Fällen kann die Wahl eines schnelleren +Scans dazu führen, dass er <emphasis>länger</emphasis> braucht als bei +einer kleineren Rate. Das liegt daran, dass Nmaps Algorithmen für die +<notman><link linkend="scan-methods-adaptive-retransmission">adaptive erneute Übertragung</link><indexterm><primary>adaptive erneute Übertragung</primary><see>erneute Übertragung</see></indexterm><indexterm><primary>erneute Übertragung</primary></indexterm> +</notman> +<man>adaptive retransmission</man> +die von einer zu hohen Scan-Rate verursachte Netzwerküberlastung erkennen +und die Anzahl der Wiederholungen erhöhen, um die Genauigkeit zu verbessern. +Das heißt, selbst wenn Pakete mit höherer Rate gesendet werden, werden +mehr Pakete insgesamt gesendet. Begrenzen Sie diese Anzahl von Wiederholungen +nach oben mit der Option <option>--max-retries</option>, wenn Sie eine +obere Grenze für die gesamte Scan-Zeit setzen müssen.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--defeat-rst-ratelimit</option> + <indexterm><primary><option>--defeat-rst-ratelimit</option></primary></indexterm></term> + <listitem> + +<para>Viele Hosts haben lange eine +Ratenbeschränkung<indexterm><primary>Ratenbeschränkung</primary></indexterm> +benutzt, um die Anzahl der von ihnen gesendeten ICMP-Fehlermeldungen +(z.B. Port-Unreachable-Fehler) zu reduzieren. +Manche Systeme wenden nun ähnliche Ratenbeschränkungen auf die +von ihnen erzeugten RST-(Reset-)Pakete an. Das kann Nmap dramatisch +verlangsamen, weil es sein Timing an diese Ratenbeschränkungen anpasst. +Mit der Option <option>--defeat-rst-ratelimit</option> können Sie Nmap +sagen, dass es diese Ratenbeschränkungen ignorieren soll (z.B. bei +Port-Scans wie dem SYN-Scan, die nicht-antwortende Ports +<emphasis>nicht</emphasis> als <literal>offen</literal> behandeln).</para> + +<para>Diese Option kann die Genauigkeit reduzieren, da einige Ports nicht +zu antworten scheinen, weil Nmap nicht lange genug auf eine ratenbeschränkte +RST-Antwort gewartet hat. Bei einem SYN-Scan führt die ausbleibende Antwort +dazu, dass für den Port der Zustand <literal>gefiltert</literal> und +<literal>geschlossen</literal> markiert wird, den wir sehen, wenn +RST-Pakete empfangen werden. Diese Option ist nützlich, wenn Sie sich nur +für offene Ports interessieren und eine Unterscheidung zwischen +<literal>geschlossenen</literal> und <literal>gefilterten</literal> Ports +die zusätzliche Zeit nicht wert ist.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-T + paranoid|sneaky|polite|normal|aggressive|insane</option> + (setzt ein Timing-Template) + <indexterm><primary><option>-T</option></primary></indexterm> + <indexterm><primary>Timing-Templates</primary><seealso><literal>paranoid</literal>, <literal>sneaky</literal>, <literal>polite</literal>, <literal>normal</literal>, <literal>aggressive</literal> und <literal>insane</literal></seealso></indexterm> + </term> + <listitem> +<indexterm><primary><option>-T0</option></primary><see><literal>paranoid</literal> Timing-Template</see></indexterm> +<indexterm><primary><option>-T1</option></primary><see><literal>sneaky</literal> Timing-Template</see></indexterm> +<indexterm><primary><option>-T2</option></primary><see><literal>polite</literal> Timing-Template</see></indexterm> +<indexterm><primary><option>-T3</option></primary><see><literal>normal</literal> Timing-Template</see></indexterm> +<indexterm><primary><option>-T4</option></primary><see><literal>aggressive</literal> Timing-Template</see></indexterm> +<indexterm><primary><option>-T5</option></primary><see><literal>insane</literal> Timing-Template</see></indexterm> + +<para>Auch wenn die feinkörnigen Timing-Einstellungen im letzten Abschnitt +mächtig und effektiv sind, finden manche Leute sie verwirrend. +Außerdem kann die Wahl der passenden Werte manchmal mehr Zeit erfordern +als der Scan, den Sie damit optimieren möchten. Deswegen bietet Nmap auch +einen einfacheren Ansatz mit sechs Timing-Templates. Diese können Sie mit +der Option <option>-T</option> und ihrer Nummer (0–5) oder mit +ihrem Namen angeben. Diese Template-Namen lauten: +<option>paranoid</option> (<option>0</option>), +<option>sneaky</option> (<option>1</option>), +<option>polite</option> (<option>2</option>), +<option>normal</option> (<option>3</option>), +<option>aggressive</option> (<option>4</option>) +und <option>insane</option> (<option>5</option>). +Die ersten beiden sind für die Umgehung von IDS gedacht. +Der Polite-Modus verlangsamt den Scan, damit er weniger Bandbreite und +Ressourcen auf dem Zielrechner verbraucht. Der Normal-Modus ist der +Standardwert, d.h. <option>-T3</option> macht gar nichts. Der +Aggressive-Modus beschleunigt Scans, indem er davon ausgeht, dass +Sie sich in einem einigermaßen schnellen und zuverlässigen Netzwerk +befinden. Und schließlich geht der +Insane-Modus<indexterm><primary><literal>insane</literal> (<option>-T5</option>) Timing-Template</primary></indexterm> +davon aus, dass sie sich in einem außergewöhnlich schnellen Netzwerk +befinden bzw. gewillt sind, für mehr Geschwindigkeit auf etwas Genauigkeit +zu verzichten.</para> + +<para>Mit diesen Templates können Benutzer angeben, wie aggressiv +sie vorgehen möchten, und trotzdem Nmap die Wahl der genauen Zeitwerte +überlassen. Diese Templates führen außerdem auch kleine +Geschwindigkeitsanpassungen aus, für die es zur Zeit keine feinkörnigen +Einstellungsoptionen gibt. Zum Beispiel +verbietet <option>-T4</option>,<indexterm><primary><literal>aggressive</literal> (<option>-T4</option>) Timing-Template</primary></indexterm> +dass die dynamische Scan-Verzögerung bei TCP-Ports über 10 ms ansteigt, +und <option>-T5</option> begrenzt diesen Wert auf 5 ms. +Templates könen auch in Kombination mit feinkörnigen Einstellungen +benutzt werden, wobei die feinkörnigeren Optionen die entsprechenden +allgemeinen Werte aus den Templates überschreiben. Ich empfehle den Einsatz +von <option>-T4</option> beim Scannen halbwegs moderner und zuverlässiger +Netzwerke. Wenn Sie diese Option angeben, +auch dann, wenn Sie zusätzliche feinkörnige Einstellungen benutzen, +profitieren Sie von den weiteren kleinen Optimierungen, die damit +verbunden sind.</para> + +<para>Falls Sie eine anständige Breitband- oder Ethernet-Verbindung haben, +würde ich empfehlen, immer <option>-T4</option> zu benutzen. Manche Leute +lieben <option>-T5</option>, was für meinen Geschmack aber zu aggressiv +ist. Manchmal geben Leute <option>-T2</option> an, weil sie denken, dadurch +würden Hosts weniger abstürzen, oder weil sie sich selbst im Allgemeinen +für höflich halten. Oft realisieren sie einfach nicht, wie langsam +<option>-T polite</option><indexterm><primary><literal>polite</literal> (<option>-T2</option>) Timing-Template</primary></indexterm> +tatsächlich ist. Ein solcher Scan kann zehnmal mehr Zeit benötigen als +ein Standard-Scan. Rechnerabstürze und Bandbreitenprobleme kommen mit den +standardmäßigen Timing-Optionen (<option>-T3</option>) selten vor, +weswegen ich das normalerweise vorsichtigen Scannern empfehle. +Auf die Versionserkennung zu verzichten ist weit wirksamer bei der Reduktion +dieser Probleme als das Herumprobieren mit Zeiteinstellungen.</para> + +<para>Zwar sind +<option>-T0</option><indexterm><primary><literal>paranoid</literal> (<option>-T0</option>) Timing-Template</primary></indexterm> +und <option>-T1</option><indexterm><primary><literal>sneaky</literal> (<option>-T1</option>) Timing-Template</primary></indexterm> +vielleicht hilfreich bei der Vermeidung von IDS-Alarmen, benötigen aber +außergewöhnlich viel Zeit beim Scannen von Tausenden von Rechnern oder +Ports. Für einen derart langen Scan möchten Sie vielleicht doch lieber die +genau benötigten Zeitwerte angeben, statt sich auf die vorgefertigten +Werte von <option>-T0</option> und <option>-T1</option> zu verlassen.</para> + +<para>Die Haupteffekte von <option>T0</option> sind die Serialisierung des +Scans, bei der immer nur ein Port gescannt wird, und eine Wartezeit von +fünf Minuten zwischen zwei Testpaketen. <option>T1</option> und +<option>T2</option> sind ähnlich, warten aber jeweils nur 15 bzw. +0,4 Sekunden zwischen zwei Testpaketen. <option>T3</option> ist die +Standardeinstellung in Nmap, die eine +Parallelisierung<indexterm><primary><literal>normal</literal> (<option>-T3</option>) Timing-Template</primary></indexterm> +beinhaltet. <option>-T4</option> macht das Äquivalent von +<option>--max-rtt-timeout 1250 --initial-rtt-timeout 500 --max-retries 6</option> +und setzt die maximale TCP-Scan-Verzögerung auf 10 Millisekunden. +<option>T5</option> macht das Äquivalent von +<option>--max-rtt-timeout 300 --min-rtt-timeout 50 +--initial-rtt-timeout 250 --max-retries 2 --host-timeout 15m</option> +und setzt die maximale TCP-Scan-Verzögerung auf 5 ms.</para> + + </listitem> + </varlistentry> + </variablelist> + <indexterm class="endofrange" startref="man-performance-indexterm"/> + <indexterm class="endofrange" startref="man-performance-timing-indexterm"/> + </refsect1> + + <refsect1 id='man-bypass-firewalls-ids'> + <title>Firewall-/IDS-Umgehung und -Täuschung</title> + <indexterm class="startofrange" id="man-bypass-filewalls-indexterm"><primary>Firewalls</primary><secondary>umgehen</secondary></indexterm> + <indexterm class="startofrange" id="man-bypass-ids-indexterm"><primary>Intrusion-Detection-Systeme</primary><secondary>umgehen</secondary></indexterm> + +<para>Viele Internet-Pioniere hatten die Vision eines globalen, offenen +Netzwerks, in dem ein universeller IP-Adressraum virtuelle Verbindungen +zwischen zwei beliebigen Knoten erlaubt. Dadurch können Hosts als echte, +gleichberechtigte Partner agieren und Information untereinander senden und +empfangen. Die Menschen könnten von ihrer Arbeitsstelle auf all ihre Systeme +daheim zugreifen, die Einstellungen der Klimaanlage ändern oder die Türen +für verfrühte Gäste aufsperren. Diese Vision einer universellen Konnektivität +wurde durch eine Verknappung im Adressraum und Sicherheitsbedenken abgewürgt. +In den frühen 1990er Jahren begannen Organisationen mit der Aufstellung von +Firewalls mit dem ausdrücklichen Zweck einer Reduktion der Konnektivität. +Riesige Netzwerke wurden mit Anwendungs-Proxies, NAT (Network Address +Translation)-Geräten +und Paketfiltern vom ungefilterten Internet abgeriegelt. Der +ungehinderte Fluss von Informationen hat einer strengen Regulierung von +zugelassenen Kommunikationskanälen und der darüber ausgetauschten Inhalte +Platz gemacht.</para> + +<para>Netzwerkhindernisse wie Firewalls können die Analyse eines Netzwerks +außerordentlich schwer machen. Und leichter wird es nicht werden, da das +Verhindern von Ausspähungen oft ein Schlüsselziel beim Einsatz +dieser Geräte ist. Trotzdem bietet Nmap viele Eigenschaften, um beim +Verständnis dieser komplexen Netzwerke zu helfen und um zu überprüfen, +dass diese Filter arbeiten wie gewünscht. +Es bietet sogar Mechanismen zur Umgehung schlechter Abwehrstrategien. +Eine der besten Methoden, Ihre Lage in puncto Netzwerksicherheit +zu verstehen, ist die, sie anzugreifen. Versetzen Sie sich selbst in +die Denkweise eines Angreifers und wenden Sie Verfahren aus diesem Kapitel +gegen Ihr Netzwerk an. Starten Sie einen FTP-Bounce-Scan, Idle-Scan, +Fragmentierungsangriff, oder versuchen Sie durch einen Ihrer eigenen Proxies +zu tunneln.</para> + +<para>Zusätzlich zur Beschränkung der Netzwerkaktivität überwachen Firmen +ihren Datenverkehr immer mehr mit Intrusion-Detection-Systemen +(IDS). Alle wichtigen IDS werden mit Regeln ausgeliefert, die entworfen wurden, +um Nmap-Scans zu erkennen, weil Scans manchmal Vorboten von Angriffen sind. +Viele dieser Produkte haben sich in Intrusion-<emphasis>Prevention</emphasis>-Systeme +(IPS)<indexterm><primary>Intrusion-Prevention-Systeme</primary><seealso>Intrusion-Detection-Systeme</seealso></indexterm> +verwandelt, die für böswillig gehaltenen Datenverkehr aktiv blockieren. +Dummerweise ist es für Netzwerkadministratoren und IDS-Hersteller eine sehr +schwierige Aufgabe, böswillige Absichten durch die Analyse von Paketdaten +zuverlässig zu erkennen. Angreifer mit Geduld, Geschick und der Hilfe +bestimmter Nmap-Optionen können meist unerkannt an einem IDS vorbeikommen. +Währenddessen müssen Administratoren mit riesigen Mengen falscher +positiver Ergebnisse kämpfen, bei denen eine nicht böswillige Aktivität +fehldiagnostiziert wird und Alarm schlägt oder blockiert wird. +</para> + +<para>Ab und zu schlagen Leute vor, dass Nmap keine Eigenschaften für die +Umgehung von Firewallregeln oder IDS enthalten sollte. Ihr Argument ist, +dass diese Eigenschaften genauso wahrscheinlich von Angreifern missbraucht +werden wie von Administratoren, die die Sicherheit verbessern. Das Problem +bei dieser Logik ist, dass diese Methoden trotzdem von Angreifern benutzt +würden, die einfach andere Werkzeuge finden oder die Funktionalität in +Nmap einbauen würden. Zugleich wäre es für Administratoren sehr viel +schwerer, ihren Job zu machen. Das Aufstellen nur moderner, gepatchter +FTP-Server ist eine wesentlich bessere Verteidigung als der Versuch, +die Verbreitung von Werkzeugen zu verhindern, die einen FTP-Bounce-Angriff +implementieren. +</para> + +<para>Es gibt keine Wunderlösung (oder Nmap-Option) zur Erkennung und +Umgehung von Firewalls und IDS-Systemen. Es braucht Kompetenz und Erfahrung. +Eine Anleitung dazu würde den Rahmen dieses Referenz-Handbuches sprengen, +das nur die wichtigsten Optionen auflistet und beschreibt, was sie +machen.</para> + +<variablelist> + <varlistentry> + <term> + <option>-f</option> (Pakete fragmentieren); + <option>--mtu</option> (benutzt angegebene MTU) + <indexterm significance="preferred"><primary><option>-f</option></primary></indexterm> + <indexterm significance="preferred"><primary><option>--mtu</option></primary></indexterm> + </term> + + <listitem> +<para>Die Option <option>-f</option> bewirkt, dass der gewünschte Scan +(inklusive Ping-Scans) winzig fragmentierte IP-Pakete benutzt. Die Idee +dabei ist, den TCP-Header über mehrere Pakete aufzuteilen, um es +Paketfiltern, Intrusion-Detection-Systemen und anderen Ärgernissen +schwerer zu machen, Ihre Aktivitäten zu durchschauen. Seien Sie dabei +vorsichtig! Manche Programme haben Mühe, mit diesen winzigen Paketen +umzugehen. Ein Sniffer alter Schule namens Sniffit ist beim Erhalt des +ersten Fragments sofort mit einem Segmentation-Fault-Fehler abgestürzt. +Wenn Sie diese Option einmal angeben, spaltet Nmap die Pakete in acht +Bytes oder weniger nach dem IP-Header auf. Das heißt, ein 20 Byte langer +TCP-Header würde in drei Pakete aufgeteilt, zwei mit acht Bytes des +TCP-Headers und eines mit den restlichen vier. Natürlich hat jedes +Fragment auch einen IP-Header. Geben Sie erneut <option>-f</option> an, +um 16 Bytes pro Fragment zu benutzen (was die Anzahl der Fragmente +verkleinert).<indexterm><primary><option>-f</option></primary><secondary>zweimal angeben</secondary></indexterm> +Oder Sie geben eine eigene Offset-Größe mit der Option +<option>--mtu</option> (für engl. maximum transmission unit) an. +Wenn Sie <option>--mtu</option> angeben, +sollten Sie nicht auch <option>-f</option> angeben. Das Offset muss ein +Vielfaches von acht sein. Zwar kommen fragmentierte Pakete nicht durch +Paketfilter und Firewalls durch, die alle IP-Fragmente in eine +Warteschlange stellen, wie z.B. die Option +<varname>CONFIG_IP_ALWAYS_DEFRAG</varname> im Linux-Kernel, aber einige +Netzwerke können sich den damit verbundenen Performance-Einbruch nicht +leisten und lassen sie folglich deaktiviert. Andere können sie nicht +aktivieren, weil die Fragmente auf verschiedenen Routen in ihre Netzwerke +kommen könnten. Manche Quellsysteme defragmentieren hinausgehende Pakete +im Kernel. Ein Beispiel dafür ist Linux mit dem Verbindungsmodul +iptables.<indexterm><primary>iptables</primary></indexterm> +Führen Sie einen Scan aus, während ein Sniffer wie z.B. +<application>Wireshark</application><indexterm><primary><application>Wireshark</application></primary></indexterm> +läuft, um sicherzustellen, dass die gesendeten Pakete fragmentiert sind. +Falls Ihr Host-Betriebssystem Probleme macht, probieren Sie die Option +<option>--send-eth</option><indexterm><primary><option>--send-eth</option></primary></indexterm> +aus, um die IP-Schicht zu umgehen und rohe Ethernet-Rahmen zu +schicken.</para> + +<para>Eine Fragmentierung wird von Nmap nur für rohe Pakete unterstützt, +die man mit TCP- und UDP-Port-Scans (außer beim Connect-Scan und +FTP-Bounce-Scan) und der Betriebssystemerkennung benutzen kann. +Merkmale wie die Versionserkennung und die Nmap Scripting Engine +unterstützen im Allgemeinen keine Fragmentierung, weil sie sich auf +den TCP-Stack Ihres Hosts verlassen, um mit anderen Zielen zu +kommunizieren.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-D <replaceable>decoy1</replaceable><optional>,<replaceable>decoy2</replaceable></optional><optional>,ME</optional><optional>,...</optional></option> + (verdeckt einen Scan mit Ködern) + <indexterm><primary><option>-D</option></primary></indexterm> + <indexterm><primary>Köder</primary></indexterm> + </term> + <listitem> +<para>Führt einen Decoy-Scan durch, was für den entfernten Host den +Anschein erweckt, dass der oder die Hosts, die Sie als Köder +angeben, das Zielnetzwerk ebenfalls scannen. Deren IDS kann also +5–10 Port-Scans von eindeutigen IP-Adressen verzeichnen, aber +es weiß nicht, welche IP sie gescannt hat und welche unschuldige Köder +waren. Das kann man zwar bekämpfen, indem man Router-Pfade mitverfolgt, +Antworten verwirft oder weitere aktive Mechanismen anwendet, aber im +Allgemeinen ist es eine wirksame Methode zum Verbergen Ihrer +IP-Adresse.</para> + +<para>Trennen Sie alle Köder mit Kommata voneinander, wobei Sie +optional +<literal>ME</literal><indexterm><primary><literal>ME</literal> (Köder-Adresse)</primary></indexterm> +als einen der Köder angeben können, um die Position Ihrer echten +IP-Adresse zu bestimmen. Falls Sie <literal>ME</literal> an +sechster Stelle oder später setzen, zeigen einige verbreitete +Port-Scan-Detektoren (wie z.B. der hervorragende +Scanlogd<indexterm><primary><application>Scanlogd</application></primary></indexterm> +von Solar Designer<indexterm><primary>Solar Designer</primary></indexterm>) +Ihre IP-Adresse wahrscheinlich überhaupt nicht an. Wenn Sie kein +<literal>ME</literal> angeben, setzt es Nmap an eine zufällig gewählte +Position. Sie können auch +<literal>RND</literal><indexterm><primary><literal>RND</literal> (Köder-Adresse)</primary></indexterm> +benutzen, um eine zufällige, nicht-reservierte IP-Adresse zu +erzeugen, oder <literal>RND:<replaceable>number</replaceable></literal>, +um <replaceable>number</replaceable> Adressen zu erzeugen.</para> + +<para>Beachten Sie, dass die Hosts, die Sie als Köder benutzen, eingeschaltet +sein sollten, sonst könnten Sie versehentlich einen SYN-Flood-Angriff auf +Ihre Ziele auslösen. Außerdem lässt sich der scannende Host sehr einfach +bestimmen, wenn nur einer davon im Netzwerk eingeschaltet ist. Vielleicht +möchten Sie IP-Adressen statt -Namen benutzen (damit die Köder-Netzwerke +Sie nicht in ihren Nameserver-Protokollen sehen).</para> + +<para>Köder werden sowohl im initialen Ping-Scan (mit ICMP, SYN, ACK +oder was auch immer) als auch während der eigentlichen Port-Scan-Phase +benutzt. Auch bei der Erkennung entfernter Betriebssysteme +(<option>-O</option>) werden Köder benutzt. Bei der Versionserkennung +oder beim TCP-Connect-Scan funktionieren Köder jedoch nicht. Falls +eine Scan-Verzögerung stattfindet, wird sie zwischen zwei Stapeln +vorgetäuschter Testpakete erzwungen, nicht zwischen einzelnen Testpaketen. +Weil Köder stapelweise auf einmal gesendet werden, können sie vorübergehend +die Beschränkungen der Überlastungssteuerung verletzen.</para> + +<para>Man sollte hierbei noch erwähnen, dass beim Einsatz von zu vielen +Ködern Ihr Scan sich verlangsamen und sogar ungenauer werden kann. +Manche ISPs filtern außerdem Ihre vorgetäuschten Pakete, aber viele +beschränken solche vorgetäuschten IP-Pakete in keinster Weise.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-S <replaceable>IP_Address</replaceable></option> (Quelladresse vortäuschen) + <indexterm><primary><option>-S</option></primary></indexterm> + <indexterm><primary>Vortäuschen der Quelladresse</primary></indexterm> + </term> + <listitem> + +<para>Unter gewissen Umständen kann Nmap eventuell Ihre Quelladresse +nicht bestimmen (wenn dem so ist, dann sagt Ihnen Nmap Bescheid). +Benutzen Sie in diesem Fall <option>-S</option> mit der IP-Adresse +der Schnittstelle, über die Sie die Pakete senden möchten.</para> + +<para>Eine weitere mögliche Anwendung dieses Flags ist eine Vortäuschung +des Scans, um die Ziele glauben zu machen, dass <emphasis>jemand +anderes</emphasis> sie scannt. Stellen Sie sich eine Firma vor, die +wiederholt von einem Mitbewerber gescannt wird! Bei dieser Art von +Anwendung werden im Allgemeinen die Optionen <option>-e</option> und +<option>-PN</option> benötigt. Beachten Sie, dass Sie normalerweise +Antwortpakete zurückbekommen (sie werden an die IP adressiert, die Sie +vortäuschen), d.h. Nmap kann keinen sinnvollen Bericht produzieren.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-e <replaceable>interface</replaceable></option> (angegebene Schnittstelle benutzen) + <indexterm><primary><option>-e</option></primary></indexterm> + <indexterm><primary>interface</primary><seealso><option>-e</option></seealso></indexterm> + </term> + <listitem> + +<para>Sagt Nmap, auf welcher Schnittstelle es Pakete senden und +empfangen soll. Nmap sollte das automatisch erkennen können, +sagt Ihnen aber Bescheid, wenn nicht.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--source-port <replaceable>portnumber</replaceable>;</option> + <option>-g <replaceable>portnumber</replaceable></option> (Quell-Portnummer vortäuschen) + <indexterm significance="preferred"><primary><option>--source-port</option></primary></indexterm> + <indexterm significance="preferred"><primary><option>-g</option></primary></indexterm> + <indexterm><primary>Quellportnummer</primary></indexterm> + </term> + <listitem> + +<para>Eine Fehlkonfiguration, die überraschend häufig vorkommt, ist es, dem +Netzwerkverkehr allein auf Basis der Quell-Portnummer zu vertrauen. Wie +das zustande kommt, kann man leicht verstehen. Ein Administrator setzt +eine glänzende neue Firewall auf und wird sofort mit Beschwerden von +undankbaren Benutzern überflutet, deren Anwendungen nicht mehr laufen. +Vor allem DNS könnte einen Aussetzer haben, weil die UDP-DNS-Antworten +von externen Servern nicht länger ins Netzwerk hineinkommen. Ein +weiteres häufiges Beispiel ist FTP. Bei aktiven FTP-Übertragungen +versucht der entfernte Server, eine Verbindung zurück zum Client +herzustellen, um die gewünschte Datei zu übertragen.</para> + +<para>Für diese Probleme existieren sichere Lösungen, oftmals in Form von +Proxies auf Anwendungsebene oder Protokoll-parsenden Firewall-Modulen. +Leider gibt es auch einfachere, unsichere Lösungen. Viele Administratoren +haben beobachtet, dass DNS-Antworten von Port 53 und aktive FTP-Antworten +von Port 20 kommen, und sind in die Falle getappt, eingehenden Datenverkehr +nur von diesen Ports zu erlauben. Oft gehen sie davon aus, dass kein Angreifer +solche Firewall-Lecks bemerken und ausbeuten würde. In anderen Fällen +betrachten das Administratoren als kurzfristige Überbrückungsmaßnahme, +bis sie eine sicherere Lösung implementieren können. Und dann vergessen sie +diese Sicherheitsaktualisierung. +</para> + +<para>Aber nicht nur überarbeitete Netzwerkadministratoren tappen in diese +Falle. Zahlreiche Produkte wurden mit diesen unsicheren Regeln ausgeliefert. +Sogar Microsoft hat sich schuldig gmacht. Die IPsec-Filter, die mit +Windows 2000 und Windows XP ausgeliefert wurden, enthalten eine implizite +Regel, die jeden TCP- oder UDP-Datenverkehr von Port 88 (Kerberos) erlaubt. +Ein weiterer bekannter Fall sind Versionen der Zone Alarm Personal-Firewall +bis 2.1.25, die alle empfangenen UDP-Pakete vom Quell-Port 53 (DNS) oder +67 (DHCP) erlauben.</para> + +<para>Nmap bietet die Optionen <option>-g</option> und +<option>--source-port</option> (sind äquivalent), um diese Schwächen +auszunutzen. Geben Sie einfach eine Portnummer an, und Nmap wird, wenn +möglich, Pakete von diesem Port senden. +Damit es richtig funktioniert, muss Nmap für bestimmte +Betriebssystemerkennungstests verschiedene Portnummern benutzen, +und DNS-Anfragen ignorieren das <option>--source-port</option>-Flag, +weil Nmap sich bei ihnen auf System-Bibliotheken verlässt. Die meisten +TCP-Scans, inklusive dem SYN-Scan, unterstützen die Option vollständig, +ebenso wie der UDP-Scan.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--data-length <replaceable>number</replaceable></option> (Zufallsdaten an gesendete Pakete anfügen) + <indexterm><primary><option>--data-length</option></primary></indexterm> + </term> + <listitem> +<para>Normalerweise sendet Nmap minimale Pakete, die nur einen Header +enthalten. Daher haben seine TCP-Pakete im Allgemeinen nur 40 Bytes +und die ICMP Echo-Requests nur 28. Mit dieser Option sagen Sie Nmap, +dass es die angegebene Anzahl von zufälligen Bytes an die meisten +gesendeten Pakete hinzufügen soll. Pakete für die Betriebssystemerkennung +(<option>-O</option>) sind davon nicht +betroffen,<indexterm><primary><option>--data-length</option></primary><secondary>kein Effekt in der Betriebssystemerkennung</secondary></indexterm> +weil dort aus Genauigkeitsgründen konsistente Pakete verlangt werden, +aber die meisten Ping- und Port-Scan-Pakete unterstützen das. Das kann +den Scan etwas verlangsamen, aber auch etwas unauffälliger machen.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--ip-options <replaceable>S|R [route]|L [route]|T|U ... </replaceable>;</option> + <option>--ip-options <replaceable>hex string</replaceable></option> (sendet Pakete mit angegebenen IP-Optionen) + <indexterm><primary><option>--ip-options</option></primary></indexterm> + <indexterm><primary>IP-Optionen</primary></indexterm> + </term> + <listitem> + +<para>Laut +<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc791.txt">IP-Protokoll</ulink> +können in den Paket-Headern mehrere Optionen enthalten sein. Anders als +die allgegenwärtigen TCP-Optionen sieht man IP-Optionen aus Gründen +der praktischen Anwendbarkeit und Sicherheit nur selten. Tatsächlich +blockieren die meisten Internet-Router die gefährlichsten Optionen +wie Source Routing sogar. Dennoch können diese Optionen in manchen +Fällen nützlich sein, um die Netzwerk-Route zu Zielrechnern zu +bestimmen und zu manipulieren. Sie können z.B. vielleicht die Option +Record Route dazu benutzen, einen Pfad zum Ziel sogar dann zu +bestimmen, wenn traditionellere, traceroute-artige Ansätze versagen. +Oder wenn Ihre Pakete von einer bestimmten Firewall verworfen werden, +können Sie mit den Optionen Strict oder Loose Source Routing +möglicherweise eine andere Route angeben.</para> + +<para>Die meisten Möglichkeiten bei der Angabe von IP-Optionen hat man, +wenn man einfach Werte als Argumente für <option>--ip-options</option> +angibt. Stellen Sie vor jede Hex-Zahl ein <literal>\x</literal> und +zwei Ziffern. Einzelne Zeichen können Sie wiederholen, indem Sie ihnen +ein Sternchen und dann die Anzahl der Wiederholungen nachstellen. So ist +z.B. <literal>\x01\x07\x04\x00*36\x01</literal> ein Hex-String mit +36 NUL-Bytes.</para> + +<para>Nmap bietet auch einen verkürzten Mechanismus für die Angabe +von Optionen. Geben Sie einfach die Buchstaben <literal>R</literal>, +<literal>T</literal> oder <literal>U</literal> an, um jeweils +Record Route,<indexterm><primary>Record-Route-IP-Option</primary></indexterm> +Record Timestamp<indexterm><primary>Record-Timestamp-IP-Option</primary></indexterm> +oder beide Optionen gemeinsam anzugeben. +Loose oder Strict Source +Routing<indexterm><primary>Source Routing</primary></indexterm> +kann man mit <literal>L</literal> bzw. <literal>S</literal>, gefolgt von +einem Leerzeichen und einer mit Leerzeichen getrennten Liste von +IP-Adressen angeben.</para> + +<para>Wenn Sie die Optionen in den gesendeten und empfangenen Paketen +sehen möchten, geben Sie <option>--packet-trace</option> an. Mehr +Informationen und Beispiele zum Einsatz von IP-Optionen mit Nmap finden +Sie unter <ulink url="https://seclists.org/nmap-dev/2006/q3/0052.html"/>. +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--ttl <replaceable>value</replaceable></option> (setzt IP-Time-to-live-Feld) + <indexterm><primary><option>--ttl</option></primary></indexterm> + <indexterm><primary>Time-To-Live (TTL)</primary></indexterm> + </term> + <listitem> +<para>Setzt bei IPv4 das Time-to-live-Feld in gesendeten Paketen +auf den angegebenen Wert.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--randomize-hosts</option> (randomisiert Reihenfolge der Zielhosts) + <indexterm significance="preferred"><primary><option>--randomize-hosts</option></primary></indexterm> + <indexterm><primary>Randomisierung von Hosts</primary></indexterm> + </term> + <listitem> + +<para>Verlangt von Nmap, dass es alle Gruppen von bis zu 16.384 Hosts +durcheinanderwürfelt, bevor es sie scannt. Das kann den Scan für +verschiedene Netzwerk-Überwachungssysteme weniger offensichtlich +machen, besonders dann, wenn Sie ihn mit einer langsamen +Timing-Option kombinieren. Wenn Sie größere Gruppen randomisieren +möchten, müssen Sie +<varname>PING_GROUP_SZ</varname><indexterm><primary><varname>PING_GROUP_SZ</varname></primary></indexterm> +in <filename>nmap.h</filename><indexterm><primary><filename>nmap.h</filename></primary></indexterm> +erhöhen und neu kompilieren. +Eine alternative Lösung ist es, die Liste der Ziel-IPs mit einem List-Scan +(<option>-sL -n -oN <replaceable>filename</replaceable></option>) zu +erzeugen, dann z.B. mit einem Perl-Script zu randomisieren, um sie +schließlich als Ganzes mit +<option>-iL</option><indexterm><primary><option>-iL</option></primary><secondary>Hosts randomisieren mit</secondary></indexterm> +an Nmap zu übergeben. +</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--spoof-mac <replaceable>MAC address, prefix, or vendor + name</replaceable></option> (MAC-Adresse vortäuschen) + <indexterm significance="preferred"><primary><option>--spoof-mac</option></primary></indexterm> + <indexterm><primary>Vortäuschen einer MAC-Adresse</primary></indexterm> + </term> + <listitem> + +<para>Verlangt von Nmap, dass es in allen gesendeten rohen Ethernet-Rahmen +die angegebene MAC-Adresse<indexterm><primary>MAC-Adresse</primary></indexterm> +benutzt. Diese Option impliziert +<option>--send-eth</option>,<indexterm><primary><option>--send-eth</option></primary><secondary>impliziert von <option>--spoof-mac</option></secondary></indexterm> +um sicherzustellen, dass Nmap tatsächlich Pakete auf Ethernet-Ebene +sendet. Die MAC-Adresse kann in mehreren Formaten angegeben werden. +Wenn es einfach die Zahl <literal>0</literal> ist, wählt Nmap eine +völlig zufällige MAC-Adresse für diese Sitzung. Falls der angegebene +String aus einer geraden Anzahl von Hexadezimalziffern besteht (in dem +Paare optional mit Doppelpunkten getrennt sein können), benutzt Nmap +diese als MAC. Werden weniger als 12 Hexadezimalziffern angegeben, +dann füllt Nmap die restlichen sechs Bytes mit zufälligen Werten. Falls +das Argument weder null noch ein Hex-String ist, schaut Nmap in +<filename>nmap-mac-prefixes</filename> nach, um einen Herstellernamen +zu finden, der den angegebenen String enthält (unabhängig von der +Schreibweise). Wird eine Übereinstimmung gefunden, benutzt Nmap die +OUI dieses Herstellers (einen drei Byte langen +Präfix)<indexterm><primary>Organizationally Unique Identifier (OUI)</primary><seealso><filename>nmap-mac-prefixes</filename></seealso></indexterm> +und füllt die verbleibenden drei Bytes mit Zufallswerten. Gültige +Beispiele für Argumente von <option>--spoof-mac</option> sind +<literal>Apple</literal>, <literal>0</literal>, +<literal>01:02:03:04:05:06</literal>, <literal>deadbeefcafe</literal>, +<literal>0020F2</literal> und <literal>Cisco</literal>. +Diese Option betrifft nur Scans mit rohen Paketen wie den SYN-Scan oder +die Betriebssystemerkennung, keine verbindungsorientierten Merkmale wie +die Versionserkennung oder die Nmap Scripting Engine.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--badsum</option> (sendet Pakete mit falschen TCP/UDP-Prüfsummen) + <indexterm><primary><option>--badsum</option></primary></indexterm> + <indexterm><primary>TCP-Prüfsumme</primary></indexterm> + <indexterm><primary>Prüfsummen</primary></indexterm> + </term> + <listitem> + +<para>Verlangt von Nmap, bei den an Zielhosts gesendeten Paketen +ungültige TCP- oder UDP-Prüfsummen zu benutzen. Da so gut wie alle +Host-IP-Stacks solche Pakete verwerfen, kommen eventuelle Antworten +sehr wahrscheinlich von einer Firewall oder einem IDS, das sich nicht +die Mühe macht, die Prüfsumme zu überprüfen. Mehr Details zu dieser +Methode finden Sie unter <ulink url="https://nmap.org/p60-12.html"/>.</para> + </listitem> + </varlistentry> + + </variablelist> + + <indexterm class="endofrange" startref="man-bypass-ids-indexterm"/> + <indexterm class="endofrange" startref="man-bypass-filewalls-indexterm"/> + </refsect1> + + + <refsect1 id='man-output'> + <title>Ausgabe</title> + <indexterm class="startofrange" id="man-output-indexterm"><primary>Ausgabeformate</primary></indexterm> + +<para>Alle Sicherheitswerkzeuge sind nur so gut wie die Ausgabe, die +sie erzeugen. Komplexe Tests und Algorithmen haben einen geringen Wert, +wenn sie nicht auf übersichtliche und verständliche Weise dargestellt +werden. Da Nmap auf vielfältige Weise von verschiedenen Leuten und +anderer Software benutzt wird, kann kein Format allein es allen recht +machen. Daher bietet Nmap mehrere Formate, darunter den interaktiven +Modus, den Menschen direkt lesen können, und XML, das von Software +leicht geparst werden kann.</para> + +<para>Zusätzlich zu verschiedenen Ausgabeformaten bietet Nmap Optionen +zur Steuerung der Ausführlichkeit dieser Ausgabe sowie Debugging-Meldungen. +Die Ausgaben können an die Standardausgabe oder an benannte Dateien gehen, +die Nmap überschreiben bzw. an die es seine Ausgabe anfügen kann. +Mit den Ausgabedateien können außerdem abgebrochene Scans fortgesetzt +werden.</para> + +<para>Nmap erzeugt seine Ausgabe in fünf verschiedenen Formaten. +Das Standardformat heißt +<firstterm>interaktive Ausgabe</firstterm><indexterm><primary>interaktive Ausgabe</primary></indexterm> +und wird an die Standardausgabe (stdout)<indexterm><primary>Standardausgabe</primary></indexterm> +gesendet. +Es gibt auch die +<firstterm>normale Ausgabe</firstterm>,<indexterm><primary>normale Ausgabe</primary></indexterm> +die ähnlich zur interaktiven Ausgabe ist, außer dass sie weniger +Laufzeitinformation und Warnungen ausgibt, weil man davon ausgeht, +dass sie erst nach Abschluss des Scans analysiert wird und nicht, +während er noch läuft.</para> + +<para>Die <firstterm>XML-Ausgabe</firstterm><indexterm><primary>XML-Ausgabe</primary></indexterm> +ist eines der wichtigsten Ausgabeformate, da sie einfach nach HTML +konvertiert, von Programmen wie Nmap-GUIs geparst oder in Datenbanken +importiert werden kann.</para> + +<para>Die zwei verbleibenden Ausgabeformate sind die einfache +<firstterm>grepbare Ausgabe</firstterm>,<indexterm><primary>grepbare Ausgabe</primary></indexterm> +in der die meiste Information über einen Zielhost in einer einzigen +Zeile enthalten ist, und +<firstterm>sCRiPt KiDDi3 0utPUt</firstterm><indexterm><primary sortas="script kiddie Ausgabe">scR1pT kIddI3-Ausgabe</primary></indexterm> +für Benutzer, die sich selbst als |<-r4d sehen.</para> + +<para>Die interaktive Ausgabe ist standardmäßig vorgegeben und verfügt +über keine eigenen Kommandozeilenoptionen, aber die anderen vier Formate +benutzen dieselbe Syntax. Sie erwarten ein Argument, den Namen der Datei, +in der die Ergebnisse gespeichert werden sollen. Es können mehrere Formate +angegeben werden, aber jedes nur einmal. Vielleicht möchten Sie z.B. eine +normale Ausgabe für eine eigene Untersuchung speichern und eine XML-Ausgabe +desselben Scans für eine programmbasierte Analyse. Das erreichen Sie mit +den Optionen <option>-oX myscan.xml -oN myscan.nmap</option>. +Auch wenn in diesem Kapitel der Kürze wegen einfache Namen wie +<literal>myscan.xml</literal> benutzt werden, empfehlen sich im Allgemeinen +aussagekräftigere Namen. Welche Namen Sie wählen, ist Geschmackssache, aber +ich benutze lange Namen, die das Scandatum und ein oder zwei Worte über den +Scan enthalten, in einem Verzeichnis, das den Namen der gescannten Firma +enthält.</para> + +<para>Auch wenn diese Optionen Ergebnisse in Dateien speichern, gibt Nmap +weiterhin die interaktive Ausgabe wie üblich auf die Standardausgabe aus. +Zum Beispiel speichert der Befehl <command>nmap -oX myscan.xml target</command> +XML in <filename>myscan.xml</filename> und füllt die +Standardausgabe mit demselben interaktiven Ergebnis, wie es auch ohne Angabe von +<option>-oX</option> der Fall wäre. Das können Sie ändern, indem Sie ein +Minuszeichen als Argument für eines der Formate angeben. Dann schaltet +Nmap die interaktive Ausgabe ab und gibt stattdessen Ergebnisse im +gewünschten Format auf den Standardausgabestrom aus. Das heißt, der Befehl +<command>nmap -oX - target</command> schreibt nur die XML-Ausgabe auf +die Standardausgabe.<indexterm><primary>Ausgabe</primary><secondary>auf stdout mit <literal>-</literal></secondary></indexterm> +Ernste Fehler werden weiterhin auf den normalen +Standardfehlerstrom, stderr,<indexterm><primary>Standardfehlerausgabe</primary></indexterm> +ausgegeben.</para> + +<para>Anders als bei anderen Nmap-Argumenten ist das Leerzeichen zwischen +dem Options-Flag für eine Ausgabedatei (z.B. <option>-oX</option>) und dem +Dateinamen oder Minuszeichen obligatorisch. Falls Sie die Leerzeichen weglassen +und Argumente wie z.B. <option>-oG-</option> oder <option>-oXscan.xml</option> +angeben, erzeugt Nmap aus Gründen der Rückwärtskompatibilität Ausgabedateien +im <emphasis>normalen Format</emphasis>, die jeweils die Namen +<filename>G-</filename> und <filename>Xscan.xml</filename> haben.</para> + +<para>All diese Argumente unterstützen +<function>strftime</function>-ähnliche<indexterm><primary><function>strftime</function> Konvertierungen in Dateinamen</primary></indexterm> +Umwandlungen im Dateinamen. <literal>%H</literal>, <literal>%M</literal>, +<literal>%S</literal>, <literal>%m</literal>, <literal>%d</literal>, +<literal>%y</literal> und <literal>%Y</literal> sind alle exakt gleich +wie in <function>strftime</function>. <literal>%T</literal> entspricht +<literal>%H%M%S</literal>, <literal>%R</literal> entspricht +<literal>%H%M</literal> und <literal>%D</literal> entspricht +<literal>%m%d%y</literal>. Ein <literal>%</literal>, dem ein anderes Zeichen +folgt, ergibt nur genau dieses Zeichen (<literal>%%</literal> ergibt ein +Prozentzeichen). Also erzeugt <option>-oX 'scan-%T-%D.xml'</option> eine +XML-Datei in der Form <filename>scan-144840-121307.xml</filename>.</para> + +<para>Nmap bietet auch Optionen zur Steuerung der Scan-Ausführlichkeit +und Optionen, um an Ausgabedateien anzuhängen, statt sie zu überschreiben. All +diese Optionen werden unten beschrieben.</para> + +<variablelist><title>Nmap-Ausgabeformate</title> + <varlistentry> + <term> + <option>-oN <replaceable>filespec</replaceable></option> (normale Ausgabe) + <indexterm><primary><option>-oN</option></primary></indexterm> + <indexterm><primary>normale Ausgabe</primary></indexterm></term> + <listitem> + +<para>Verlangt, dass eine <literal>normale Ausgabe</literal> in der +angegebenen Datei gespeichert wird. Wie oben erwähnt, unterscheidet +sich das leicht von der <literal>interaktiven Ausgabe</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oX <replaceable>filespec</replaceable></option> (XML-Ausgabe) + <indexterm><primary><option>-oX</option></primary></indexterm> + <indexterm><primary>XML-Ausgabe</primary></indexterm></term> + <listitem> + +<para>Verlangt, dass eine <literal>XML-Ausgabe</literal> in der +angegebenen Datei gespeichert wird. Nmap fügt eine DTD (Document +Type Definition) hinzu, mit der XML-Parser Nmaps XML-Ausgabe +validieren können. Diese ist vor allem für die Benutzung durch +Programme gedacht, kann aber auch Menschen bei der Interpretation +von Nmaps XML-Ausgabe helfen. Die DTD definiert die gültigen Elemente +des Formats und zählt an vielen Stellen die dafür erlaubten Attribute +und Werte auf. Die neueste Version ist immer unter +<ulink url="https://nmap.org/data/nmap.dtd"/> verfügbar.</para> + +<para>XML bietet ein stabiles Format, das man mit Software leicht +parsen kann. Solche XML-Parser sind für alle wichtigen Programmiersprachen +wie C/C++, Perl, Python und Java gratis verfügbar. Manche Leute haben +sogar Anbindungen für die meisten dieser Sprachen geschrieben, um +speziell die Ausgabe und Ausführung von Nmap zu steuern. +Beispiele sind +<ulink url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> +<indexterm><primary>Nmap::Scanner</primary></indexterm> +und <ulink url="http://nmapparser.wordpress.com/">Nmap::Parser</ulink> +<indexterm><primary>Nmap::Parser</primary></indexterm> +für Perl in CPAN. In fast allen Fällen, in denen eine nicht-triviale +Anwendung eine Schnittstelle zu Nmap benutzt, ist XML das bevorzugte +Format.</para> + +<para>Die XML-Ausgabe verweist auf ein XSL-Stylesheet, mit dem man +die Ergebnisse als HTML formatieren kann. Am einfachsten benutzt +man das, indem man einfach die XML-Ausgabe in einem Webbrowser wie +Firefox oder IE lädt. Standardmäßig funktioniert das nur auf dem +Rechner, auf dem Sie Nmap ausgeführt haben (oder auf einem, der +ähnlich konfiguriert ist), weil der Pfad zu <filename>nmap.xsl</filename> +darin festkodiert ist. Um portable XML-Dateien zu erzeugen, die auf +allen mit dem Web verbundenen Rechnern als HTML angezeigt werden, +können Sie die Optionen <option>--webxml</option> oder +<option>--stylesheet</option> benutzen.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oS <replaceable>filespec</replaceable></option> (ScRipT KIdd|3-Ausgabe) + <indexterm><primary><option>-oS</option></primary></indexterm> + <indexterm><primary sortas="script kiddie Ausgabe">scR1pT kIddI3-Ausgabe</primary></indexterm></term> + <listitem> + +<para>Die Script-Kiddie-Ausgabe ist ähnlich zur interaktiven Ausgabe, mit +dem Unterschied, dass sie nachbearbeitet ist, um die 'l33t HaXXorZ besser +anzusprechen! Vorher haben sie wegen dessen konsistent richtiger Schreibweise +und Buchstabierung auf Nmap herabgesehen. Humorlose Menschen sollten wissen, +dass diese Option sich über Script Kiddies lustig macht, bevor sie mich +dafür angreifen, dass ich <quote>ihnen helfe</quote>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oG <replaceable>filespec</replaceable></option> (grepbare Ausgabe) + <indexterm><primary><option>-oG</option></primary></indexterm> + <indexterm><primary>grepbare Ausgabe</primary></indexterm></term> + <listitem> + +<para>Dieses Ausgabeformat wird zum Schluss beschrieben, weil es als +überholt gilt. +Das XML-Ausgabeformat ist wesentlich leistungsstärker und für erfahrene +Benutzer fast genauso bequem. XML ist eim Standard, für den Dutzende +hervorragender Parser verfügbar sind, während die grepbare Ausgabe nur +mein eigener einfacher Hack ist. XML ist erweiterbar und kann neue +Nmap-Eigenschaften unterstützen, die ich beim grepbaren Format +aus Platzgründen oft weglassen muss.</para> + +<para>Dessen ungeachtet ist die grepbare Ausgabe immer noch recht beliebt. +Es ist ein einfaches Format, das pro Zeile einen Host auflistet und das +mit Unix-Standardwerkzeugen wie grep, awk, cut, sed, diff und auch mit Perl +auf triviale Weise durchsucht und geparst werden kann. Selbst ich benutze es +für einmalige schnelle Tests in der Kommandozeile. Zum Beispiel kann man alle +Hosts, auf denen der SSH-Port offen ist oder auf denen Solaris läuft, auf +einfache Weise mit einem grep bestimmen, das die Hosts findet, umgeleitet in +einen awk- oder cut-Befehl, der die gewünschten Felder ausgibt.</para> + +<para>Die grepbare Ausgabe besteht aus Kommentaren (Zeilen, die mit einem +# anfangen)<indexterm><primary>grepbare Ausgabe</primary><secondary>Kommentare in</secondary></indexterm> +sowie aus Zielzeilen. Eine Zielzeile enthält eine Kombination aus sechs +benannten Feldern, durch Tabulatoren getrennt, gefolgt von einem +Doppelpunkt. Diese Felder lauten <literal>Host</literal>, +<literal>Ports</literal>, <literal>Protocols</literal>, +<literal>Ignored State</literal>, <literal>OS</literal>, +<literal>Seq Index</literal>, <literal>IP ID</literal> und +<literal>Status</literal>.</para> + +<para>Das wichtigste dieser Felder ist im Allgemeinen <literal>Ports</literal>, +das Details zu einem interessanten Port enthält. Es ist eine mit Kommata +getrennte Liste von Port-Einträgen, wobei jeder Eintrag einen interessanten +Port darstellt und aus sieben mit Schrägstrichen (/) getrennten Unterfeldern +besteht. Diese Unterfelder lauten: <literal>Port number</literal>, +<literal>State</literal>, <literal>Protocol</literal>, +<literal>Owner</literal>, <literal>Service</literal>, +<literal>SunRPC info</literal> und <literal>Version info</literal>.</para> + +<para>Wie bei der XML-Ausgabe kann diese Manpage auch hier nicht das +vollständige Format dokumentieren. Eine detailliertere Betrachtung des +grepbaren Ausgabeformats in Nmap finden Sie +<man>from <ulink url="https://nmap.org/book/output-formats-grepable-output.html" />.</man> +<notman>in <xref linkend="output-formats-grepable-output"/>.</notman> +</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oA <replaceable>basename</replaceable></option> (Ausgabe in allen Formaten) + <indexterm significance="preferred"><primary><option>-oA</option></primary></indexterm></term> + <listitem> + +<para> +Aus Gründen der Bequemlichkeit können Sie Scan-Ergebnisse mit +<option>-oA <replaceable>basename</replaceable></option> gleichzeitig +in normalem, in XML- und in grepbarem Format speichern. Sie werden +jeweils in +<filename><replaceable>basename</replaceable>.nmap</filename>, +<filename><replaceable>basename</replaceable>.xml</filename> und +<filename><replaceable>basename</replaceable>.gnmap</filename>, +gespeichert. +Wie in den meisten Programmen können Sie vor den Dateinamen ein Präfix +mit einem Verzeichnispfad darin setzen, z.B. +<filename>~/nmaplogs/foocorp/</filename> unter Unix oder +<filename>c:\hacking\sco</filename> unter Windows.</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Optionen für Ausführlichkeit und Debugging</title> + <varlistentry> + <term> + <option>-v</option> (größere Ausführlichkeit) + <indexterm><primary><option>-v</option></primary></indexterm> + <indexterm><primary>Ausführlichkeit</primary></indexterm> + </term> + <listitem> + +<para>Erhöht die Ausführlichkeit, d.h. Nmap gibt mehr Informationen +über den laufenden Scan aus. Offene Ports werden angezeigt, direkt +nachdem sie gefunden werden, und es werden Schätzungen für die Dauer +bis zur Fertigstellung angegeben, falls Nmap meint, dass ein Scan mehr +als ein paar Minuten benötigt. Noch mehr Information erhalten Sie, +wenn Sie diese Option zweimal oder noch öfter angeben. +<indexterm><primary><option>-v</option></primary><secondary>mehrmals angeben</secondary></indexterm> +</para> + +<para>Die meisten Änderungen betreffen +nur die interaktive Ausgabe, manche betreffen auch die normale und +die Script-Kiddie-Ausgabe. Die anderen Ausgabearten sind für die +Weiterverarbeitung durch Maschinen gedacht, d.h. Nmap kann in diesen +Formaten standardmäßig alle Details angeben, ohne einen menschlichen +Leser zu ermüden. Allerdings gibt es in den anderen Modi einige Änderungen, +bei denen die Ausgabegröße durch Weglassen einiger Details erheblich +reduziert werden kann. Zum Beispiel wird eine Kommentarzeile in der +grepbaren Ausgabe, die eine Liste aller gescannten Ports enthält, nur +im wortreichen Modus ausgegeben, weil sie ziemlich lang werden kann.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-d [level]</option> (erhöhe oder setze Debugging-Stufe) + <indexterm><primary><option>-d</option></primary></indexterm> + <indexterm><primary>Debugging</primary></indexterm> + </term> + <listitem> + +<para>Wenn nicht einmal der wortreiche Modus genug Daten für Sie liefert, +können Sie beim Debugging noch wesentlich mehr davon bekommen! Wie bei der +Ausführlichkeits-Option (<option>-v</option>) wird auch das Debugging mit einem +Kommandozeilen-Flag eingeschaltet (<option>-d</option>), und die Debug-Stufe +kann durch eine mehrfache Angabe gesteigert +werden.<indexterm><primary><option>-d</option></primary><secondary>mehrmals angeben</secondary></indexterm> +Alternativ dazu können Sie eine Debug-Stufe auch als Argument an +<option>-d</option> übergeben. So setzt z.B. <option>-d9</option> die +Stufe neun. Das ist die höchste verfügbare Stufe, die Tausende +von Zeilen produziert, sofern Sie keinen sehr einfachen Scan mit sehr wenigen Ports +und Zielen ausführen.</para> + +<para>Eine Debugging-Ausgabe ist sinnvoll, wenn Sie einen Fehler in Nmap +vermuten oder wenn Sie einfach verwirrt darüber sind, was und warum Nmap +etwas genau macht. Da dieses Merkmal überwiegend für Entwickler gedacht ist, +sind Debug-Zeilen nicht immer selbsterklärend. Vielleicht bekommen Sie +etwas wie: <computeroutput>Timeout +vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 +rttvar: 14987 to: 100000</computeroutput>. Wenn Sie eine Zeile nicht +verstehen, ist Ihre einzige Zuflucht, sie zu ignorieren, im Quellcode +nachzuschauen oder Hilfe auf der Entwicklerliste +(<citetitle>nmap-dev</citetitle>).<indexterm><primary><citetitle>nmap-dev</citetitle> Mailingliste</primary></indexterm> +zu erfragen. +Manche Einträge sind selbsterklärend, aber je höher die Debug-Stufe ist, +desto obskurer werden die Meldungen.</para> + + </listitem> + </varlistentry> + +<varlistentry> + <term> + <option>--reason</option> (Gründe für Host- und Portzustände) + <indexterm><primary><option>--reason</option></primary></indexterm> + <indexterm><primary>Angabe von Gründen</primary><see><option>--reason</option></see></indexterm> + </term> + <listitem> + +<para> +Gibt die Gründe an, warum ein Port auf einen bestimmten Zustand gesetzt +wurde und warum ein Host als ein- oder ausgeschaltet betrachtet wird. +Diese Option zeigt die Paketart an, die einen Port- oder Hostzustand +ermittelt hat, z.B. ein <literal>RST</literal>-Paket von einem +geschlossenen Port oder ein Echo Reply von einem eingeschalteten Host. +Die Information, die Nmap angeben kann, hängt von der Art des Scans +oder Pings ab. Der SYN-Scan und der SYN-Ping (<option>-sS</option> und +<option>-PS</option>) sind sehr detailliert, aber der TCP-Connect-Scan +(<option>-sT</option>) wird durch die Implementierung des +<function>connect</function>-Systemaufrufs beschränkt. Dieses Merkmal +wird automatisch von der Debug-Option +(<option>-d</option>)<indexterm><primary><option>--reason</option></primary><secondary>impliziert von <option>-d</option></secondary></indexterm> +aktiviert, und die Ergebnisse werden auch dann in XML-Protokolldateien +gespeichert, wenn diese Option gar nicht angegeben wird. + +</para> +</listitem> +</varlistentry> + + <varlistentry> + <term> + <option>--stats-every <replaceable>time</replaceable></option> (periodische Timing-Statistik ausgeben) + <indexterm><primary><option>--stats-every</option></primary></indexterm> + </term> + <listitem> +<para> +Gibt periodisch eine Timing-Statusmeldung nach einem Intervall der +Länge <replaceable>time</replaceable> aus. Dabei kann diese Zeitangabe +beschrieben werden, wie in <xref linkend="man-performance"/> dargestellt, +d.h. Sie können z.B. <command>--stats-every 10s</command> benutzen, um +alle 10 Sekunden eine Statusaktualisierung zu erhalten. Diese erscheint +in der interaktiven Ausgabe (auf dem Bildschirm) und in der XML-Ausgabe. +</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--packet-trace</option> (gesendete und empfangene Pakete und Daten mitverfolgen) + <indexterm><primary><option>--packet-trace</option></primary></indexterm> + </term> + <listitem> + +<para>Bewirkt, dass Nmap für jedes gesendete oder empfangene +Paket eine Zusammenfassung ausgibt. Das wird bei der Fehlersuche +oft gemacht, ist aber auch eine willkommene Methode für Neulinge, um genau +zu verstehen, was Nmap unter der Oberfläche macht. Um zu verhindern, dass +Tausende von Zeilen ausgegeben werden, möchten Sie vielleicht eine +beschränkte Anzahl zu scannender Ports angeben, z.B. mit +<option>-p20-30</option>. Wenn Sie nur wissen möchten, was +im Versionserkennungssubsystem vor sich geht, benutzen Sie stattdessen +<option>--version-trace</option>. Wenn Sie nur an einer Script-Mitverfolgung +interessiert sind, geben Sie <option>--script-trace</option> an. +Mit <option>--packet-trace</option> erhalten Sie all das zusammen.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--open</option> (zeige nur offene (oder möglicherweise offene) Ports an) + <indexterm><primary><option>--open</option></primary></indexterm> + </term> + <listitem> + +<para>Manchmal interessieren Sie sich nur für Ports, mit denen Sie tatsächlich +eine Verbindung herstellen können (<literal>offene</literal> Ports), und +wollen Ihre Ergebnisse nicht mit anderen Ports überhäufen, die +<literal>geschlossen</literal>, <literal>gefiltert</literal> und +<literal>geschlossen|gefiltert</literal> sind. Die Ausgabe wird normalerweise +nach dem Scan mit Werkzeugen wie <application>grep</application>, +<application>awk</application> und <application>Perl</application> +angepasst, aber dieses Merkmal wurde auf überwältigend vielfachen +Wunsch hinzugefügt. Geben Sie <option>--open</option> an, um nur +<literal>offene</literal>, <literal>offene|gefilterte</literal> und +<literal>ungefilterte</literal> Ports zu sehen. Diese drei Ports werden +ganz wie gewöhnlich behandelt, d.h. dass <literal>offen|gefiltert</literal> +und <literal>ungefiltert</literal> in Zählungen zusammengefasst werden, +wenn es eine sehr große Anzahl davon gibt. +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--iflist</option> (liste Schnittstellen und Routen auf) + <indexterm><primary><option>--iflist</option></primary></indexterm> + </term><listitem> +<para>Gibt die Liste der Schnittstellen und Systemrouten aus, die Nmap +entdeckt hat. Das ist hilfreich bei der Fehlersuche bei Routing-Problemen +oder fehlerhaften Gerätebeschreibungen (z.B. wenn Nmap eine PPP-Verbindung +als Ethernet behandelt).</para> + </listitem> </varlistentry> + + <varlistentry> + <term> + <option>--log-errors</option> (protokolliere Fehler/Warnungen in eine Datei im normalen Ausgabeformat) + <indexterm significance="preferred"><primary><option>--log-errors</option></primary></indexterm> + </term> + <listitem> + +<para>Von Nmap ausgegebene Warnungen und Fehlermeldungen gehen normalerweise +nur auf den Bildschirm (interaktive Ausgabe), was die Ordnung aller +Ausgabedateien im normalen Format (üblicherweise mit <option>-oN</option> +angegeben) nicht stört. Wenn Sie diese Meldungen in den angegebenen +normalen Ausgabedateien wirklich sehen möchten, können Sie diese Option +benutzen. Diese ist dann hilfreich, wenn Sie die interaktive Ausgabe +nicht übersehen oder wenn Sie Fehler beim Debugging speichern möchten. +Die Fehlermeldungen und Warnungen werden auch im interaktiven Modus +weiterhin erscheinen. Bei den meisten Fehlern bezüglich schlechter +Kommandozeilenargumente wird das nicht funktionieren, da Nmap seine +Ausgabedateien eventuell noch nicht initialisiert hat. +Außerdem benutzen einige Nmap-Fehlermeldungen und -Warnungen ein anderes +System, das diese Option noch nicht unterstützt.</para> + +<para>Eine Alternative zu <option>--log-errors</option> ist die Umleitung +der interaktiven Ausgabe (inklusive des Standardfehlerstroms) in eine +Datei. Die meisten Unix-Shells machen einem diesen Ansatz leicht, aber +auf Windows kann er schwierig sein.</para> + + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Weitere Ausgabeoptionen</title> + + <varlistentry> + <term> + <option>--append-output</option> (an Ausgabedateien hinzufügen, statt sie zu überschreiben) + <indexterm><primary><option>--append-output</option></primary></indexterm> + </term> + <listitem> + +<para>Wenn Sie einen Dateinamen für ein Ausgabeformat wie z.B. +<option>-oX</option> oder <option>-oN</option> angeben, wird diese +Datei standardmäßig überschrieben. +Wenn Sie deren Inhalt lieber behalten und die neuen Ergebnisse anhängen +möchten, benutzen Sie die Option <option>--append-output</option>. +Dann wird bei allen angegebenen Ausgabedateinamen dieses Nmap-Aufrufs +an die Dateien angehängt, statt sie zu überschreiben. Mit XML-Scandaten +(<option>-oX</option>) funktioniert das nicht so gut, da die erzeugte Datei +im Allgemeinen nicht mehr sauber geparst wird, es sei denn, Sie reparieren sie +von Hand.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--resume <replaceable>filename</replaceable></option> (abgebrochenen Scan fortsetzen) + <indexterm><primary><option>--resume</option></primary></indexterm> + <indexterm><primary>Scans fortsetzen</primary></indexterm> + </term> + <listitem> + +<para>Manche umfangreichen Nmap-Läufe benötigen sehr viel Zeit – in der +Größenordnung von Tagen. Solche Scans laufen nicht immer bis zum Ende. +Vielleicht gibt es Beschränkungen, die verhindern, dass man Nmap während +der normalen Arbeitszeit ausführen kann, das Netzwerk könnte abstürzen, +der Rechner, auf dem Nmap läuft, könnte einen geplanten oder ungeplanten +Neustart erleben oder Nmap selbst könnte abstürzen. Der Administrator, +der Nmap ausführt, könnte es auch aus irgendeinem anderen Grund abbrechen, +indem er <keycap>ctrl-C</keycap> eingibt. Und den ganzen Scan von vorne neu +zu starten, ist eventuell nicht wünschenswert. Wenn ein normales +(<option>-oN</option>) oder ein grepbares (<option>-oG</option>) Protokoll +geführt wurde, kann der Benutzer Nmap jedoch bitten, den Scan bei dem Ziel +fortzusetzen, an dem es beim Abbruch gearbeitet hat. Geben Sie einfach die +Option <option>--resume</option> an und übergeben Sie die normale/grepbare +Ausgabedatei als Argument. Andere Argumente sind nicht erlaubt, da Nmap +die Ausgabedatei parst, um dieselben Argumente zu benutzen, die zuvor +benutzt wurden. Rufen Sie Nmap einfach als <command>nmap --resume +<replaceable>logfilename</replaceable></command> auf. Nmap fügt neue +Ergebnisse dann an die Datendateien an, die im vorherigen Lauf angegeben +wurden. Diese Fortsetzung funktioniert nicht aus XML-Ausgabedateien, +weil es schwierig wäre, die zwei Läufe in +einer gültigen XML-Datei zu kombinieren.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--stylesheet <replaceable>path or URL</replaceable></option> (setze XSL-Stylesheet, um eine XML-Ausgabe zu transformieren) + <indexterm significance="preferred"><primary><option>--stylesheet</option></primary></indexterm> + </term> + <listitem> + +<para>Die Nmap-Distribution enthält ein +XSL-Stylesheet<indexterm><primary>XSL</primary></indexterm> +<indexterm><primary>Stylesheet</primary></indexterm> +namens <filename>nmap.xsl</filename> +<indexterm><primary><filename>nmap.xsl</filename></primary></indexterm> +zum Betrachten oder Übersetzen einer XML-Ausgabe nach HTML. +<indexterm><primary>HTML aus XML-Ausgabe</primary></indexterm> +Die XML-Ausgabe enthält eine <literal>xml-stylesheet</literal>-Anweisung, +die auf <filename>nmap.xml</filename> an der Stelle verweist, wo es von Nmap +ursprünglich installiert wurde (oder im aktuellen Arbeitsverzeichnis +unter Windows). Laden Sie einfach Nmaps XML-Ausgabe in einem modernen +Webbrowser, und er sollte <filename>nmap.xsl</filename> im Dateisystem +finden und benutzen, um die Ergebnisse darzustellen. Wenn Sie ein anderes +Stylesheet benutzen möchten, geben Sie es als Argument für +<option>--stylesheet</option> an. Dabei müssen Sie den vollständigen +Pfadnamen oder die URL angeben. Sehr häufig wird +<option>--stylesheet https://nmap.org/data/nmap.xsl</option> benutzt. +Das sagt einem Browser, dass er die neueste Version des Stylesheets +von Nmap.Org laden soll. Die Option <option>--webxml</option> +macht dasselbe, verlangt aber weniger Tipparbeit und Merkfähigkeit. +Wenn man das XSL von Nmap.Org lädt, wird es einfacher, die Ergebnisse +auf einem Rechner anzuschauen, auf dem kein Nmap (und folglich auch kein +<filename>nmap.xsl</filename>) installiert ist. Daher ist die URL oft +nützlicher, doch aus Datenschutzgründen wird standardmäßig das +<filename>nmap.xsl</filename> im lokalen Dateisystem benutzt.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--webxml</option> (lade Stylesheet von Nmap.Org) + <indexterm significance="preferred"><primary><option>--webxml</option></primary></indexterm> + </term> + <listitem> + +<para>Diese bequeme Option ist nur ein Alias für +<option significance="preferred">--stylesheet https://nmap.org/data/nmap.xsl</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option significance="preferred">--no-stylesheet</option> (lasse XSL-Stylesheet-Deklaration im XML weg) + <indexterm significance="preferred"><primary><option>--no-stylesheet</option></primary></indexterm> + </term> + <listitem> + +<para>Geben Sie diese Option an, wenn Nmap in seiner XML-Ausgabe auf +keinerlei XSL-Stylesheet verweisen soll. Die +<literal>xml-stylesheet</literal>-Anweisung wird dann weggelassen.</para> + </listitem> + </varlistentry> + + </variablelist> + <indexterm class="endofrange" startref="man-output-indexterm"/> + </refsect1> + + <refsect1 id='man-misc-options'> + <title>Verschiedene Optionen</title> + <para>Dieser Abschnitt beschreibt einige wichtige (und weniger wichtige) + Optionen, für die es keinen anderen richtig passenden Ort gibt.</para> + + <variablelist> + <varlistentry> + <term> + <option>-6</option> (schaltet IPv6-Scans ein) + <indexterm significance="preferred"><primary><option>-6</option></primary></indexterm> + <indexterm><primary>IPv6</primary></indexterm> + </term> + <listitem> + +<para>Seit 2002 unterstützt Nmap bei seinen beliebtesten Features IPv6. +Insbesondere das Ping-Scanning (nur für TCP), Connect-Scanning und die +Versionserkennung unterstützen IPv6. Die Befehlssyntax ist die +übliche, nur dass man auch die Option <option>-6</option> angibt. +Natürlich müssen Sie die IPv6-Syntax angeben, wenn Sie eine Adresse +statt eines Hostnamens angeben. Eine Adresse könnte wie folgt aussehen: +<literal>3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, d.h. es +empfehlen sich Hostnamen. Die Ausgabe sieht genauso aus +wie üblich. Nur die IPv6-Adresse in der Zeile der +<quote>interessanten Ports</quote> deutet auf IPv6.</para> + +<para>Zwar hat IPv6 die Welt nicht gerade im Sturm erobert, aber in +einigen (besonders asiatischen) Ländern wird es stark eingesetzt, und von +den meisten modernen Betriebssystemen wird es unterstützt. +Um Nmap mit IPv6 zu benutzen, müssen sowohl die Quelle als auch das +Ziel Ihres Scans für IPv6 konfiguriert sein. Falls Ihnen Ihr ISP +(so wie die meisten) keine IPv6-Adressen bereitstellt, gibt es frei +verfügbare sogenannte +Tunnel-Broker,<indexterm><primary>IPv6-Tunnel-Broker</primary></indexterm> +die mit Nmap funktionieren. Weitere Tunnel-Broker sind +<ulink url="http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers">in Wikipedia aufgelistet</ulink>. +Ein weiterer freier Ansatz sind 6to4-Tunnels.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-A</option> (aggressive Scan-Optionen) + <indexterm significance="preferred"><primary><option>-A</option></primary></indexterm> + </term> + <listitem> + +<para>Diese Option schaltet zusätzlich erweiterte und aggressive Optionen +ein. Ich habe noch nicht entschieden, wofür sie genau steht. Im Moment schaltet +sie die Betriebssystemerkennung (<option>-O</option>), +die Versionserkennung (<option>-sV</option>), +das Scannen mit Scripts (<option>-sC</option>) und +traceroute (<option>--traceroute</option>) ein. +<indexterm><primary><option>-A</option></primary><secondary>eingeschaltete Merkmale von</secondary></indexterm> +In der Zukunft kommen vielleicht noch weitere Eigenschaften hinzu. +Ziel ist es, einen umfassenden Satz von Scan-Optionen zu aktivieren, +ohne dass man sich viele Flags merken muss. Weil aber das scriptbasierte +Scannen mit dem Standardsatz als aufdringlich betrachtet wird, sollten +Sie <option>-A</option> nicht ohne Genehmigung auf Zielnetzwerke loslassen. +Diese Option aktiviert nur Eigenschaften, aber keine Optionen für das +Timing (z.B. <option>-T4</option>) oder die Ausführlichkeit +(<option>-v</option>), die Sie eventuell auch benutzen möchten.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--datadir <replaceable>directoryname</replaceable></option> (gibt benutzerdefinierten Ort für Nmap-Datendateien an) + <indexterm significance="preferred"><primary><option>--datadir</option></primary></indexterm> + </term> + <listitem> + +<!-- DG: siehe data-files.xml (UID) --> +<para>Nmap erhält einige spezielle Daten zur Laufzeit aus Dateien namens +<filename>nmap-service-probes</filename>, +<filename>nmap-services</filename>, +<filename>nmap-protocols</filename>, +<filename>nmap-rpc</filename>, +<filename>nmap-mac-prefixes</filename> und +<filename>nmap-os-db</filename>. +Falls der Ort einer dieser Dateien angegeben wurde (mit den Optionen +<option>--servicedb</option> oder <option>--versiondb</option>), +wird dieser Ort für diese Datei benutzt. Danach sucht Nmap diese +Dateien im Verzeichnis, das mit der Option <option>--datadir</option> +angegeben wurde (sofern vorhanden). Dateien, die dort nicht gefunden +werden, werden in einem Verzeichnis gesucht, das durch die +Umgebungsvariable NMAPDIR angegeben +wird<indexterm><primary><envar>NMAPDIR</envar> Umgebungsvariable</primary></indexterm>. +Danach kommt +<filename>~/.nmap</filename><indexterm><primary sortas="nmap Verzeichnis"><filename>.nmap</filename> Verzeichnis</primary></indexterm> +für echte und effektive UIDs (nur bei POSIX-Systemen) oder der Ort +des ausführbaren Nmap-Programms (nur unter Win32) und dann ein bei +der Kompilierung angegebener Ort wie z.B. +<filename>/usr/local/share/nmap</filename> oder +<filename>/usr/share/nmap</filename>. Als letzte Rettung sucht Nmap +im aktuellen Arbeitsverzeichnis.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--servicedb <replaceable>services file</replaceable></option> (gibt benutzerdefinierte Dienstedatei an) + <indexterm significance="preferred"><primary><option>--servicedb</option></primary></indexterm> + </term> + <listitem> + +<para>Verlangt von Nmap, die angegebene Dienstedatei zu benutzen statt +der Datendatei <filename>nmap-services</filename>, die in Nmap enthalten +ist. Bei dieser Option wird außerdem auch ein schneller Scan +(<option>-F</option>) benutzt. Weitere Details zu Nmaps Datendateien +finden Sie in der Beschreibung zu <option>--datadir</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--versiondb <replaceable>service probes file</replaceable></option> (gibt benutzerdefinierte Dienstepakete an) + <indexterm significance="preferred"><primary><option>--versiondb</option></primary></indexterm> + </term> + <listitem> + +<para>Verlangt von Nmap, die angegebene Dienstepaketedatei zu benutzen statt +der Datendatei <filename>nmap-service-probes</filename>, die in Nmap enthalten +ist. Weitere Details zu Nmaps Datendateien +finden Sie in der Beschreibung zu <option>--datadir</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-eth</option> (sendet rohe Ethernet-Pakete) + <indexterm significance="preferred"><primary><option>--send-eth</option></primary></indexterm> + </term> + <listitem> + +<para>Verlangt von Nmap, Pakete auf der rohen Ethernet-(Datenlink-)Schicht +zu schicken, statt auf der höheren IP-(Netzwerk-)Schicht. +Nmap wählt standardmäßig diejenige, die im Allgemeinen die beste für +die gegebene Plattform ist. Rohe Sockets +(IP-Schicht)<indexterm><primary>rohe Sockets</primary></indexterm> +sind im Allgemeinen auf Unix-Rechnern am effizientesten, während +unter Windows Ethernet-Rahmen benötigt werden, da Microsoft keine +rohen Sockets unterstützt. Trotz dieser Option benutzt Nmap rohe +IP-Pakete unter Unix, wenn es keine andere Wahl hat +(z.B. Verbindungen über etwas anderes als Ethernet).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-ip</option> (sendet auf der rohen IP-Schicht) + <indexterm significance="preferred"><primary><option>--send-ip</option></primary></indexterm> + </term> + <listitem> + +<para>Verlangt von Nmap, Pakete über rohe IP-Sockets zu senden, statt +über low-level Ethernet-Rahmen. Diese Option ist das Komplement zur +weiter oben beschriebenen Option <option>--send-eth</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--privileged</option> (nimmt an, dass der Benutzer alle Sonderrechte genießt) + <indexterm significance="preferred"><primary><option>--privileged</option></primary></indexterm> + </term> + <listitem> + +<para>Sagt Nmap, dass es davon ausgehen soll, dass es über genügend Rechte +verfügt, um über rohe Sockets zu senden, Paket-Sniffing und ähnliche +Operationen zu betreiben, die auf Unix-Rechnern normalerweise +root-Rechte<indexterm><primary>Benutzer mit Sonderrechten</primary></indexterm><indexterm><primary>autorisierte Benutzer</primary><see>Benutzer mit Sonderrechten</see></indexterm> +benötigen. Standardmäßig terminiert Nmap, wenn solche Operationen +verlangt werden, aber <function>geteuid</function> nicht null ist. +<option>--privileged</option> ist nützlich bei Linux-Kernel-Capabilities +und ähnlichen Systemen, die so konfiguriert sein können, dass sie +Benutzern ohne Sonderrechte erlauben, rohe Paket-Scans durchzuführen. +Vergewissern Sie sich, dass Sie diese Option vor weiteren Optionen +angeben, die Sonderrechte benötigen (SYN-Scan, Betriebssystemerkennung +usw.). Als äquivalente Alternative zur Option <option>--privileged</option> +kann die Umgebungsvariable +<envar>NMAP_PRIVILEGED</envar><indexterm><primary><envar>NMAP_PRIVILEGED</envar> Umgebungsvariable</primary></indexterm> +gesetzt werden.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--unprivileged</option> (nimmt an, dass der Benutzer keine Sonderrechte für rohe Sockets genießt) + <indexterm significance="preferred"><primary><option>--unprivileged</option></primary></indexterm> + <indexterm><primary>Benutzer ohne Sonderrechte</primary></indexterm> + </term> + <listitem> + +<para>Diese Option ist das Gegenteil von <option>--privileged</option>. +Sie sagt Nmap, dass es den Benutzer so behandeln soll, als genösse er keine +Sonderrechte für rohe Sockets und Sniffing. Das ist nützlich beim +Testen, Debugging oder falls die Möglichkeiten des rohen Netzwerkzugriffs +auf Ihrem Betriebssystem vorübergehend irgendwie defekt sind. +Als äquivalente Alternative zur Option <option>--unprivileged</option> +kann die Umgebungsvariable +<envar>NMAP_UNPRIVILEGED</envar><indexterm><primary><envar>NMAP_UNPRIVILEGED</envar> Umgebungsvariable</primary></indexterm> +gesetzt werden.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--release-memory</option> (gibt Speicher vor Terminierung frei) + <indexterm><primary><option>--release-memory</option></primary></indexterm> + </term> + <listitem> + +<para>Diese Option ist nur bei der Suche nach Speicherlecks nützlich. +Sie bewirkt, dass Nmap den von ihm belegten Speicher direkt vor seiner +Terminierung freigibt, damit man echte Speicherlecks einfacher finden kann. +Normalerweise macht Nmap das nicht, weil es das Betriebssystem ohnehin +macht, wenn es den Prozess terminiert.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-V</option>; <option>--version</option> (gibt Versionsnummer aus) + <indexterm><primary><option>-V</option></primary></indexterm> + <indexterm><primary><option>--version</option></primary></indexterm> + </term> + <listitem> + <para>Gibt Nmaps Versionsnummer aus und terminiert.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-h</option>; <option>--help</option> (gibt zusammengefasste Hilfeseite aus) + <indexterm><primary><option>-h</option></primary></indexterm> + <indexterm><primary><option>--help</option></primary></indexterm> + </term> + <listitem> +<para>Gibt eine kurze Hilfeseite mit den am meisten benutzten +Optionen aus. Sie kommt auch dann, wenn man Nmap ganz ohne Argumente +startet.</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + + <refsect1 id='man-runtime-interaction'> + <title>Laufzeit-Interaktion<indexterm><primary>Laufzeitinteraktion</primary></indexterm></title> + +<para>Während der Ausführung von Nmap wird jeder Tastendruck abgefangen. +Das ermöglicht Ihnen, mit dem Programm zu interagieren, ohne es abzubrechen +und neu zu starten. Bestimmte Spezialtasten ändern Optionen, während alle +anderen Tasten eine Statusmeldung über den Scan ausgeben. Konvention ist, +dass der Ausgabeumfang durch +<emphasis>Kleinbuchstaben vergrößert</emphasis> und durch +<emphasis>Großbuchstaben verkleinert</emphasis> wird. +Sie können auch ‘<emphasis>?</emphasis>’ drücken, +um eine Hilfe zu erhalten.</para> + + <variablelist> + <varlistentry> + <term> + <option>v</option> / <option>V</option> + </term> + <listitem> + <para>Vergrößert/verkleinert die Ausführlichkeit</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>d</option> / <option>D</option> + </term> + <listitem> + <para>Vergrößert/verkleinert die Debugging-Stufe</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>p</option> / <option>P</option> + </term> + <listitem> + <para>Schaltet Paketverfolgung ein/aus</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>?</option> + </term> + <listitem> + <para>Gibt einen Hilfeschirm zur Laufzeit-Interaktion aus</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + Alles andere + </term> + <listitem> + <para>Gibt eine Statusmeldung wie die folgende aus:</para> + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), + 5 undergoing Service Scan</para> + <para>Service scan Timing: About 28.00% done; ETC: 16:18 + (0:00:15 remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id='man-examples'> + <title>Beispiele</title> + +<para>Hier sind einige Anwendungsbeispiele für Nmap, von einfachen und +routinemäßigen bis zu etwas komplexeren und esoterischen. Um die Sache +etwas konkreter zu machen, werden einige echte IP-Adressen und Domainnamen +benutzt. Diese sollten Sie mit Adressen/Namen aus +<emphasis>Ihrem eigenen Netzwerk</emphasis> ersetzen. Auch wenn ich nicht +der Meinung bin, dass Port-Scans anderer Netzwerke illegal sind oder sein +sollten, mögen manche Netzwerkadministratoren es nicht, wenn ihre Netzwerke +unverlangt gescannt werden, und könnten sich beschweren. Der beste Ansatz +ist der, sich zuerst eine Genehmigung zu verschaffen.</para> + +<para>Zu Testzwecken haben Sie die Genehmigung, den Host +<literal>scanme.nmap.org</literal> zu scannen. Diese Genehmigung gilt +nur für das Scannen mit Nmap und nicht für das Testen von Exploits oder +Denial-of-Service-Angriffen. Bitte führen Sie nicht mehr als ein Dutzend +Scans pro Tag auf diesem Host durch, um die Bandbreite nicht zu erschöpfen. +Falls diese freie Dienstleistung missbraucht wird, wird sie abgeschaltet, +und Nmap wird dann <computeroutput>Failed to resolve given hostname/IP: +scanme.nmap.org</computeroutput> ausgeben. Diese Genehmigung gilt auch +für die Hosts <literal>scanme2.nmap.org</literal>, +<literal>scanme3.nmap.org</literal> usw., auch wenn diese Hosts noch +nicht existieren.</para> + + <para> + <indexterm><primary><option>-v</option></primary><secondary>Beispiel</secondary></indexterm> + <command>nmap -v scanme.nmap.org</command> + </para> +<para>Diese Option scannt alle reservierten TCP-Ports auf dem Rechner +<literal>scanme.nmap.org</literal>. Die Option <option>-v</option> +schaltet den ausführlichen Modus an.</para> +<para> + <indexterm><primary><option>-sS</option></primary><secondary>Beispiel</secondary></indexterm> + <indexterm><primary><option>-O</option></primary><secondary>Beispiel</secondary></indexterm> + <command>nmap -sS -O scanme.nmap.org/24</command> + </para> +<para>Startet einen Stealth-SYN-Scan auf allen aktiven Rechnern unter +den 256 IPs im Netzwerk der Größe <quote>Klasse C</quote>, in dem +Scanme sitzt. Es versucht auch herauszufinden, welches Betriebssystem +auf jedem aktiven Host läuft. Wegen des SYN-Scans und der +Betriebssystemerkennung sind dazu root-Rechte notwendig.</para> + <para> + <indexterm><primary><option>-p</option></primary><secondary>Beispiel</secondary></indexterm> + <command>nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</command> + </para> + +<para>Startet eine Host-Auflistung und einen TCP-Scan in der ersten Hälfte +von allen 255 möglichen acht-Bit-Unternetzen im Klasse-B-Adressraum 198.116. +Dabei wird getestet, ob die Systeme SSH, DNS, POP3 oder IMAP auf ihren +Standardports laufen haben oder irgendetwas auf Port 4564. Falls einer +dieser Ports offen ist, wird eine Versionserkennung benutzt, um festzustellen, +welche Anwendung darauf läuft.</para> + + <para> + <indexterm><primary><option>-iR</option></primary><secondary>Beispiel</secondary></indexterm> + <indexterm><primary><option>-PN</option></primary><secondary>Beispiel</secondary></indexterm> + <command>nmap -v -iR 100000 -PN -p 80</command> + </para> + +<para>Verlangt von Nmap, 100.000 Hosts zufällig auszuwählen und sie nach +Webservern (Port 80) zu scannen. Eine Host-Auflistung wird mit +<option>-PN</option> unterbunden, weil es Verschwendung ist, zuerst eine +Reihe von Testpaketen zu senden, um festzustellen, ob ein Host aktiv ist, +wenn Sie auf jedem Zielhost ohnehin nur einen Port testen.</para> + + <para> + <indexterm><primary><option>-oX</option></primary><secondary>Beispiel</secondary></indexterm> + <indexterm><primary><option>-oG</option></primary><secondary>Beispiel</secondary></indexterm> + <command>nmap -PN -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</command> + </para> +<para>Das scannt 4096 IPs nach Webservern (ohne sie anzupingen) +und speichert die Ausgabe im grepbaren und im XML-Format.</para> + + </refsect1> + +<refsect1 id='man-book'> +<title>Das Nmap-Buch</title> +<!-- This paragraph is a bit jumbled together for man page rendering purposes, where extra newlines were causing problems --> +<para>Auch wenn dieser Reference Guide alle wesentlichen +Nmap-Optionen genau beschreibt, kann er nicht vollständig zeigen, +wie man diese Features anwendet, um Aufgaben der realen Welt zu lösen. +Zu diesem Zweck haben wir das Buch +<notweb><citetitle>Nmap Network Scanning: The Official +Nmap Project Guide to Network Discovery and Security +Scanning</citetitle>.</notweb><web><ulink url="https://nmap.org/book/"><citetitle>Nmap Network Scanning: The Official +Nmap Project Guide to Network Discovery and Security +Scanning</citetitle></ulink> veröffentlicht.</web> +Es zeigt, wie man Firewalls und Intrusion Detection-Systeme unterwandert, +die Performance von Nmap optimiert, und wie man häufige Netzwerkaufgaben +mit der Nmap Scripting Engine automatisiert. Außerdem enthält es Tipps +und Anleitungen für häufige Nmap-Aufgaben wie die Netzwerkinventarisierung, +Penetrationstests, die Erkennung schurkischer Wireless Access Points und +das Verhindern von Wurmausbrüchen im Netzwerk. +Dabei zeigt es mit Beispielen und Diagrammen, wie die Kommunikation +auf der Leitung aussieht. Mehr als die Hälfte des Buches ist online +frei verfügbar. Weitere Informationen finden Sie unter +<ulink url="https://nmap.org/book"/>.</para> +<para>Die deutsche Übersetzung dieses Buches von Dinu Gherman ist im Mai +2009 unter dem Titel +<citetitle><ulink url="https://www.opensourcepress.de/index.php?26&backPID=178&tt_products=270">Nmap: Netzwerke scannen, analysieren und absichern</ulink></citetitle> +im <ulink url="http://www.opensourcepress.de">Open Source Press</ulink>-Verlag +erschienen.</para> +</refsect1> + + + <refsect1 id='man-bugs'> + <title>Fehler</title> + <indexterm><primary>Fehlerberichte</primary></indexterm> + +<para>Wie sein Autor ist auch Nmap selbst nicht perfekt. Aber Sie +können helfen, es zu verbessern, indem Sie Fehlerberichte schicken oder +sogar Patches schreiben. Falls Nmap sich nicht wie erwartet verhält, +sollten Sie zuerst auf die neueste Version aktualisieren, die unter +<ulink url="https://nmap.org"/> verfügbar ist. Wenn das Problem anhält, +versuchen Sie herauszufinden, ob es bereits erkannt und bearbeitet +wurde. Suchen Sie nach der Fehlermeldung auf unserer Suchseite unter +<ulink url="https://insecure.org/search.html"/> oder bei Google. Stöbern +Sie in den <citetitle>nmap-dev</citetitle>-Archiven unter +<ulink url="https://seclists.org/" />.<indexterm><primary><citetitle>nmap-dev</citetitle> Mailingliste</primary></indexterm> +Lesen Sie auch diese Manpage vollständig. Wenn Sie keine Lösung finden, +schicken Sie einen Fehlerbericht per E-Mail an +<email>dev@nmap.org</email>. Beschreiben Sie darin bitte alles, +was Sie über das Problem wissen, inklusive der Nmap-Version und der +Betriebssystemversion, unter der Sie Nmap einsetzen. Berichte von Problemen +und Fragen zur Anwendung von Nmap werden sehr viel wahrscheinlicher +beantwortet, wenn sie an <email>dev@nmap.org</email> geschickt +werden statt direkt an Fyodor. Wenn Sie sich erst auf der nmap-dev-Liste +eintragen, bevor Sie Ihre E-Mail schicken, entgeht Ihre Nachricht auch +der Moderation und kommt schneller an. Eintragen können Sie sich unter +<ulink url="https://nmap.org/mailman/listinfo/dev"/>.</para> + +<para>Code-Patches zur Behebung von Fehlern sind noch besser als +Fehlerberichte. Eine einfache Anweisung für die Erstellung von Patch-Dateien +mit Ihren Änderungen ist unter +<ulink url="https://nmap.org/data/HACKING" /> verfügbar. Patches können +an <citetitle>nmap-dev</citetitle> (empfohlen) oder direkt an Fyodor +geschickt werden.</para> + </refsect1> + + <refsect1 id='man-author'> + <title>Autor</title> + <para>Fyodor + <email>fyodor@nmap.org</email> + (<ulink url="https://insecure.org" />) + </para> + + <para>Über die Jahre haben hunderte von Menschen wertvolle Beiträge + zu Nmap geleistet. Sie sind detailliert in der Datei + <filename>CHANGELOG</filename><indexterm><primary>changelog</primary></indexterm> + aufgeführt, die mit dem Nmap-Quellcode verbreitet wird und auch unter + <ulink url="https://nmap.org/changelog.html" /> verfügbar ist.</para> + + </refsect1> + + <refsect1 id='man-legal'> + <para>Sorry, this section has not yet been translated to German. Please see the <ulink url="https://nmap.org/book/man-legal.html">English version</ulink>.</para> + </refsect1> +</refentry> +<indexterm class="endofrange" startref="man-nmap1-indexterm"/> +</article> diff --git a/docs/man-xlate/nmap-man-es.xml b/docs/man-xlate/nmap-man-es.xml new file mode 100644 index 0000000..d74c127 --- /dev/null +++ b/docs/man-xlate/nmap-man-es.xml @@ -0,0 +1,3819 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Translation based on revision $Id: manhtml.xml 3137 2005-11-17 22:39:47Z fyodor $ --> + +<!-- TODO: + * Pasar corrector ortográfico a todo el texto + * Homogeneizar nombre de sondeos (y cambiar los que se ponen en inglés) + * scanme.nmap -> analizame.nmap ? + * Revisar discrepancias con https://nmap.org/nmap-fingerprinting-article-mx.html +--> +<!-- Jfs, glosario: + * Decoy: señuelo + * Delay: demora + * Fingerprinting: comprobación de huellas + * Host: equipo, sistema + * Port scan: barrido de puertos + * Probe: sonda + * Raw: crudo + * Scan: sondeo / análisis + * Spoof: Falsificar +--> +<article id="man" lang="es"> +<artheader> + <title>Guía de referencia de Nmap (Página de manual)</title> +</artheader> +<refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Guía de referencia de Nmap</refmiscinfo> + </refmeta> + <refnamediv id="man-name"> + <refname>nmap</refname> + <refpurpose>Herramienta de exploración de redes y de sondeo de seguridad / puertos</refpurpose> + </refnamediv> + <!-- body begins here --> + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis sepchar=" "> + <command moreinfo="none">nmap</command> + <arg choice="opt" rep="repeat"> + <replaceable>Tipo de sondeo</replaceable> + </arg> + <arg choice="opt" rep="norepeat"> + <replaceable>Opciones</replaceable> + </arg> + <arg choice="req" rep="norepeat"> + <replaceable>especificación de objetivo</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + + <web> + <note><para> + Este documento describe Nmap versión 4.00. La última documentación está disponible en inglés en + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + <refsect1 id="man-description"> + <title>Descripción</title> + + <para>Nmap (<quote>mapeador de redes</quote>) es una herramienta + de código abierto para exploración de red y auditoría de + seguridad. Se diseñó para analizar rápidamente grandes redes, + aunque funciona muy bien contra equipos individuales. Nmap utiliza + paquetes IP "crudos" («raw», N. del T.) en formas originales para determinar qué + equipos se encuentran disponibles en una red, qué servicios + (nombre y versión de la aplicación) ofrecen, qué sistemas + operativos (y sus versiones) ejecutan, qué tipo de filtros de + paquetes o cortafuegos se están utilizando así como docenas de + otras características. Aunque generalmente se utiliza Nmap en + auditorías de seguridad, muchos administradores de redes y + sistemas lo encuentran útil para realizar tareas rutinarias, como + puede ser el inventariado de la red, la planificación de + actualización de servicios y la monitorización del tiempo que + los equipos o servicios se mantiene activos.</para> + + <para>La salida de Nmap es un listado de objetivos analizados, con + información adicional para cada uno dependiente de las opciones + utilizadas. La información primordial es la <quote>tabla de + puertos interesantes</quote>. Dicha tabla lista el número de + puerto y protocolo, el nombre más común del servicio, y su + estado. El estado puede ser <literal + moreinfo="none">open</literal> (abierto), <literal + moreinfo="none">filtered</literal> (filtrado), <literal + moreinfo="none">closed</literal> (cerrado), o <literal + moreinfo="none">unfiltered</literal> (no filtrado). Abierto + significa que la aplicación en la máquina destino se encuentra + esperando conexiones o paquetes en ese puerto. <literal + moreinfo="none">Filtrado</literal> indica que un cortafuegos, + filtro, u otro obstáculo en la red está bloqueando el acceso a ese + puerto, por lo que Nmap no puede saber si se encuentra <literal + moreinfo="none">abierto</literal> o <literal + moreinfo="none">cerrado</literal>. Los puertos <literal + moreinfo="none">cerrados</literal> no tienen ninguna aplicación + escuchando en los mismos, aunque podrían abrirse en cualquier + momento. Los clasificados como <literal moreinfo="none">no + filtrados</literal> son aquellos que responden a los sondeos de + Nmap, pero para los que que Nmap no puede determinar si se + encuentran abiertos o cerrados. Nmap informa de las combinaciones + de estado <literal moreinfo="none">open|filtered</literal> y + <literal moreinfo="none">closed|filtered</literal> cuando no puede + determinar en cual de los dos estados está un puerto. La tabla de + puertos también puede incluir detalles de la versión de la + aplicación cuando se ha solicitado detección de versiones. Nmap + ofrece información de los protocolos IP soportados, en vez de + puertos abiertos, cuando se solicita un análisis de protocolo IP + con la opción (<option>-sO</option>).</para> + + <para>Además de la tabla de puertos interesantes, Nmap puede dar + información adicional sobre los objetivos, incluyendo el nombre de + DNS según la resolución inversa de la IP, un listado de sistemas + operativos posibles, los tipos de dispositivo, y direcciones + MAC.</para> + + <para>Puede ver un análisis típico con Nmap en <xref + linkend="man-ex-repscan"/>. Los únicos parámetros de Nmap que se + utilizan en este ejemplo son la opción <option>-A</option>, que + habilita la detección de sistema operativo y versión, y la opción + <option>-T4</option> que acelerar el proceso, y después el nombre + de los dos objetivos.</para> + +<example id="man-ex-repscan"><title>Ejemplo típico de análisis con Nmap</title> +<screen format="linespecific"> +# nmap -A -T4 scanme.nmap.org saladejuegos + +Starting nmap ( https://nmap.org/ ) +Interesting ports on scanme.nmap.org (205.217.153.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2.0.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2.4.X|2.5.X|2.6.X +OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 +Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on saladejuegos.nmap.org (192.168.0.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios-ssn +389/tcp open ldap? +445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds +1002/tcp open windows-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H.323/Q.931 CompTek AquaGateKeeper +5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3.8) +MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds +</screen> +</example> + +<para>Puede obtener la versión más reciente de Nmap en <ulink +url="https://nmap.org/"/>. La versión más reciente de la +página de manual está disponible en <ulink +url="https://nmap.org/man/"/>.</para> + + </refsect1> + +<refsect1 id="translation"> + <title>Notas de la traducción</title> + +<para>Esta edición de la Guía de referencia de Nmap ha sido traducida +de la versión 3137 de la <ulink +url="https://nmap.org/man/">versión original en +inglés</ulink> por Arturo Busleiman +<email>buanzo_AT_buanzo.com.ar</email>, Pablo Fernández +<email>pablo_AT_littleQ.net</email> y Javier Fernández-Sanguino +<email>jfs_AT_computer.org</email>. Aunque nuestra +intención es hacer Nmap más accesible a los lectores españoles en todo +el mundo no podemos garantizar que esta traducción está tan +actualizada o completa como la versión oficial en inglés. Este trabajo +puede ser modificado y redistribuido bajo los términos de la <ulink +url="http://creativecommons.org/licenses/by/2.5/">Licencia Creative +Commons Atribución</ulink>.</para> + +<para>Esta traducción ha sido adaptada al español como se +habla en España (localización «es_ES») por Javier Fernández-Sanguino. +Cualquier comentario o errata sobre esta traducción debe enviarse +a Javier Fernández-Sanguino a la dirección arriba indicada. +El coordinador de la traducción quiere agradecer el esfuerzo de revisión +realizado por Jesús Escoredo.</para> + +<refsect2 id="translation-glossary"> + <title>Glosario de traducción</title> + +<para>A continuación se listan las traducciones utilizadas a los términos +originales en inglés en este documento, es decir, el glosario utilizado en +este documento:</para> + + <variablelist> + + <varlistentry> + <term> + <emphasis>Decoy</emphasis> + </term> + <listitem> + <para>Traducido con el término «señuelo».</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <emphasis>Fingerprinting</emphasis> + </term> + <listitem> + <para>«Identificación por huellas» (se entiende digitales), se utilizado conjuntamente con la detección de sistema operativo por lo que a veces se utiliza éste o se reduce a «identificación».</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <emphasis>Host</emphasis> + </term> + <listitem> + <para>Traducido habitualmente como «equipo» o «sistema».</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <emphasis>Port scan</emphasis> + </term> + <listitem> + <para>Barrido de puertos.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <emphasis>(to) Probe</emphasis> + </term> + <listitem> + <para>Traducido con el término «sondear» (o «sonda»).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <emphasis>(to) Scan</emphasis> + </term> + <listitem> + <para>Traducido como «sondear» (o «sondeo») o «análizar» (o «análisis»), no se utiliza «escanear» (o «escaneo») ya que éste término es, literalmente <quote>pasar por el escáner</quote>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <emphasis>(To) Spoof</emphasis> + </term> + <listitem> + <para>Traducido por «falsificar».</para> + </listitem> + </varlistentry> + + </variablelist> + +<para>Existen otros términos que puedan aparecer en el documento traducidos pero cuya +traducción es ambigua. En este caso las traducciones se introducen en el texto +acompañadas de notas de traducción (mostradas como «N. del T.») indicando el +término original la primera vez que éste aparezca en el texto.</para> + +<para>Nótese que éste glosario difiere en algunos términos del utilizado para +otras traducciones, como la traducción realizada por Marbo Babosa del artículo +<ulink +url="https://nmap.org/nmap-fingerprinting-article-mx.html">Deteccion +Remota de SO via Reconocimiento de Pila TCP/IP</ulink> (documento traducido al +español como se habla en México).</para> + +</refsect2> + +</refsect1> + + <refsect1 id="man-briefoptions"> + <title>Resumen de opciones</title> + +<para>Cuando se ejecuta Nmap sin parámetros se muestra este resumen de +opciones. Puede encontrar siempre la última versión en <ulink +url="https://nmap.org/data/nmap.usage.txt"/>. Aunque ayuda a +recordar las opciones más habituales no es un sustituto de la +documentación en detalle que acompaña al resto de este manual. Algunas +de las opciones menos conocidas no se incluyen aquí.</para> + +<!-- JFS: Scanme.nmap.org es un host válido, pedir a Fyodor que incluya + scanme.nmap.org ? --> + +<para> +<literallayout format="linespecific" class="normal">Uso: nmap [Tipo(s) de Análisis] [Opciones] {especificación de objetivos} +ESPECIFICACIÓN DE OBJETIVO: + Se pueden indicar nombres de sistema, direcciones IP, redes, etc. + Ej: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 + -iL <archivo_entrada>: Lee una lista de sistemas/redes del archivo. + -iR <número de sistemas>: Selecciona objetivos al azar + --exclude <sist1[,sist2][,sist3],...>: Excluye ciertos sistemas o redes + --excludefile <fichero_exclusión>: Excluye los sistemas indicados en el fichero +DESCUBRIMIENTO DE HOSTS: + -sL: Sondeo de lista - Simplemente lista los objetivos a analizar + -sP: Sondeo Ping - Sólo determina si el objetivo está vivo + -P0: Asume que todos los objetivos están vivos + -PS/PA/PU [listadepuertos]: Análisis TCP SYN, ACK o UDP de los puertos indicados + -PE/PP/PM: Solicita un análisis ICMP del tipo echo, marca de fecha y máscara de red + -n/-R: No hacer resolución DNS / Siempre resolver [por omisión: a veces] + --dns-servers <serv1[,serv2],...>: Especificar servidores DNS específicos + --system-dns: Utilizar la resolución del sistema operativo +TÉCNICAS DE ANÁLISIS: + -sS/sT/sA/sW/sM: Análisis TCP SYN/Connect()/ACK/Window/Maimon + -sN/sF/sX: Análisis TCP Null, FIN, y Xmas + --scanflags <indicador>: Personalizar los indicadores TCP a utilizar + -sI <sistema zombi[:puerto_sonda]>: Análisis pasivo («Idle», N. del T.) + -sO: Análisis de protocolo IP + -b <servidor ftp rebote>: Análisis por rebote FTP +ESPECIFICACIÓN DE PUERTOS Y ORDEN DE ANÁLISIS: + -p <rango de puertos>: Sólo sondear los puertos indicados + Ej: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 + -F: Rápido - Analizar sólo los puertos listados en el archivo nmap-services + -r: Analizar los puertos secuencialmente, no al azar. +DETECCIÓN DE SERVICIO/VERSIÓN: + -sV: Sondear puertos abiertos, para obtener información de servicio/versión + --version-intensity <nivel>: Fijar de 0 (ligero) a 9 (probar todas las sondas) + --version-light: Limitar a las sondas más probables (intensidad 2) + --version-all: Utilizar todas las sondas (intensidad 9) + --version-trace: Presentar actividad detallada del análisis (para depurar) + DETECCIÓN DE SISTEMA OPERATIVO + -O: Activar la detección de sistema operativo (SO) + --osscan-limit: Limitar la detección de SO a objetivos prometedores + --osscan-guess: Adivinar el SO de la forma más agresiva +TEMPORIZADO Y RENDIMIENTO: + -T[0-5]: Seleccionar plantilla de temporizado (los números altos son más rápidos) + --min-hostgroup/max-hostgroup <tamaño>: Paralelizar los sondeos + --min-parallelism/max-parallelism <numsondas>: Paralelización de sondeos + --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msegs>: Indica + el tiempo de ida y vuelta de la sonda + --max-retries <reintentos>: Limita el número máximo de retransmisiones de las + sondas de análisis de puertos + --host-timeout <msegs>: Abandonar un objetivo pasado este tiempo + --scan-delay/--max-scan-delay <msegs>: Ajusta el retraso entre sondas +EVASIÓN Y FALSIFICACIÓN PARA CORTAFUEGOS/IDS: + -f; --mtu <valor>: fragmentar paquetes (opc. con el MTU indicado) + -D <señuelo1,señuelo2[,ME],...>: Disimular el análisis con señuelos + N. del T.: «ME» es «YO» mismo. + -S <Dirección_IP>: Falsificar la dirección IP origen + -e <interfaz>: Utilizar la interfaz indicada + -g/--source-port <numpuerto>: Utilizar el número de puerto dado + --data-length <num>: Agregar datos al azar a los paquetes enviados + --ttl <val>: Fijar el valor del campo time-to-live (TTL) de IP + --spoof-mac <dirección mac/prefijo/nombre de fabricante>: Falsificar la dirección MAC + --badsum: Enviar paquetes con una suma de comprobación TCP/UDP falsa +SALIDA: + -oN/-oX/-oS/-oG <file>: Guardar el sondeo en formato normal, XML, + s|<rIpt kIddi3 (n3n3b4n4n4), y Grepeable (para usar con grep(1), N. del T.), + respectivamente, al archivo indicado. + -oA <nombre_base>: Guardar en los tres formatos principales al mismo tiempo + -v: Aumentar el nivel de mensajes detallados (-vv para aumentar el efecto) + -d[nivel]: Fijar o incrementar el nivel de depuración (Tiene sentido hasta 9) + --packet-trace: Mostrar todos los paquetes enviados y recibidos + --iflist: Mostrar interfaces y rutas (para depurar) + --append-output: Agregar, en vez de sobreescribir, a los archivos indicados con -o. + --resume <archivo>: Retomar un análisis abortado/detenido + --stylesheet <ruta/URL>: Convertir la salida XML a HTML según la hoja de estilo + XSL indicada + --webxml: Referenciar a la hoja de estilo de Insecure.Org para tener un XML más portable + --no-stylesheet: No asociar la salida XML con ninguna hoja de estilos XSL +MISCELÁNEO: + -6: Habilitar análisis IPv6 + -A: Habilita la detección de SO y de versión + --datadir <nombreDir>: Indicar la ubicación de los archivos de datos Nmap + personalizados. + --send-eth/--send-ip: Enviar paquetes utilizando tramas Ethernet o paquetes IP + "crudos" + --privileged: Asumir que el usuario tiene todos los privilegios + -V: Muestra el número de versión + -h: Muestra esta página resumen de la ayuda. +EJEMPLOS: + nmap -v -A scanme.nmap.org + nmap -v -sP 192.168.0.0/16 10.0.0.0/8 + nmap -v -iR 10000 -P0 -p 80 +</literallayout> + +</para> + + </refsect1> + + + <refsect1 id="man-target-specification"> + <title>Especificación de objetivos</title> + +<para>Todo lo que se escriba en la línea de parámetros de Nmap que no sea una +opción se considera una especificación de sistema objetivo. El +caso más sencillo es la indicación de sólo una IP, o nombre de sistema, +para que sea analizado.</para> + +<para>Puede darse la situación en que uno desee analizar una red +completa de equipos adyacentes. Nmap soporta +el direccionamiento estilo CIDR para estos casos. Puede añadir +/<replaceable>numBits</replaceable> a una dirección IP o nombre de +sistema para que Nmap sondee toda IP cuyos primeros +<replaceable>numBits</replaceable> sean los mismos que los de la +dirección IP o nombre de sistema indicado. Por ejemplo, 192.168.10.0/24 +analizaría los 256 sistemas que existen entre la dirección 192.168.10.0 (que en binario se +representa como <literal moreinfo="none">11000000 10101000 00001010 +00000000</literal>) y la dirección 192.168.10.255 (binario: <literal +moreinfo="none">11000000 10101000 00001010 11111111</literal>), ambas +inclusives. +De hecho, si usa 192.168.10.40/24 obtendría exactamente el mismo resultado. En el +caso del sistema scanme.nmap.org que posee una dirección IP 205.217.153.62, la +especificación scanme.nmap.org/16 analizaría las 65.536 direcciones IP entre +205.217.0.0 y 205.217.255.255. La máscara mas pequeña permitida es /1, que +analizaría media Internet. La más grande, /32, analizaría únicamente +la IP o nombre de sistema indicados porque todos los bits estarían +fijos.</para> + +<para>La notación CDIR es breve pero no siempre es suficiemente +flexible. Por ejemplo, puede querer sondear la red 192.168.0.0/16 pero +omitir cualquier IP que termine por .0 o por .255 ya que son +habitualmente direcciones de difusión. Es posible hacer esto con Nmap +mediante el direccionamiento por octetos. En lugar de +especificar una dirección IP normal puede especificar una lista +separada por comas de números o rangos para cada octeto. Por ejemplo, +si utiliza 192.168.0-255.1-254 se omitirán todas las direcciones del +rango que terminen en .0 o .255. Los rangos no tienen por qué estar +limitados a los últimos octetos. Por ejemplo, si especifica +0-255.0-255.13.37 se realizará un sondeo en todo Internet de las +direcciones IP que terminan en 13.37. Este tipo de muestreo amplio +puede ser útil para encuestas en Internet y con fines de +investigación.</para> + +<para>Sólo puede especificar direcciones IPv6 si utiliza su nombre +IPv6 totalmente cualificado o su nombre de sistema. No se soporta el uso +de CIDR o rangos de octetos para IPv6 porque raramente son +útiles.</para> + +<para>Con Nmap puede especificar múltiples sistemas en la línea de +órdenes y no tienen por qué ser del mismo tipo. Por ejemplo, la orden +<command moreinfo="none">nmap scanme.nmap.org 192.168.0.0/16 +10.0.0,1,3-7.0-255</command> hace lo que uno esperaría.</para> + +<para>Aunque habitualmente se especifican los objetivos en la línea de +órdenes puede utilizar las siguientes opciones para controlar la +selección de objetivos:</para> + + <variablelist> + <varlistentry> + <term> + <option>-iL <archivo_entrada></option> (Entrada de una lista) + </term> + <listitem> + <para>Toma la especificación de objetivos del archivo + <replaceable>archivo_entrada</replaceable>. Habitualmente es + un tanto molesto especificar una lista de sistemas muy grande en + la línea de órdenes, pero es algo que también uno quiere hacer. + Por ejemplo, si tu servidor + DHCP puede exportar un listado de las 10.000 direcciones entregadas IP que querría + analizar. O tal vez quiera analizar todas las direcciones IP + <emphasis>excepto</emphasis> esas mismas direcciones, para así + localizar sistemas que estén utilizando direcciones IP estáticas + sin autorización. Para sondear un número elevado de objetivos + sólo tiene que generar la lista en un + archivo, y entregárselo a Nmap con la opción + <option>-iL</option>. Las entradas de ese archivo pueden estar + en cualquiera de los formatos aceptados por Nmap en la línea + de órdenes (direcciones IP, nombres de sistema, CIDR, IPv6 o + rangos de octeto). Cada elemento debe estar separado por uno o más + espacios, tabuladores, o por líneas. Si quiere leer el archivo de la entrada + estándar + puede especificar un guión (<literal + moreinfo="none">-</literal>) como nombre de archivo. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-iR <cant. sistemas></option> (Elegir objetivos al azar) + </term> + <listitem> + <para>Cuando se quieren realizar encuestas que cubran toda Internet uno + puede querer elegir objetivos al azar. La opción + <replaceable>cant. sistemas</replaceable> indica a Nmap + cuántas direcciones IP debe generar aleatoriamente. Se filtran de forma + automática las direcciones no deseables, incluyendo + las direcciones privadas, de multicast o direccionamiento no asignado. + Si se utiliza el valor <literal + moreinfo="none">0</literal>, Nmap realizará un análisis que no + acabará nunca. + Hay que tener en cuenta que a algunos administradores + de red puede no gustarle que les analicen sus redes, y + pueden llegar a quejarse ¡Utilice esta opción bajo su propia + responsabilidad! Si está realmente aburrido un día de tarde lluviosa, puede intentar + la orden <command moreinfo="none">nmap -sS -PS80 -iR 0 -p + 80</command> para encontrar servidores web al azar para + navegar.</para> </listitem> + + </varlistentry> + + <varlistentry> + <term> + <option>--exclude + <equipo1[,equipo2][,equipo3],...></option> (Excluir equipo o redes) + </term> + <listitem> + <para>Indica con una lista separada por comas los objetivos que + deben excluirse del análisis. Se excluirán aunque se encuentren + dentro de un rango especificado en la línea de + órdenes. La lista que se indica utiliza la sintaxis + normal de Nmap, por lo que puede incluir nombres de equipo, + rangos de red CIDR, rangos de octeto, etc. Esto puede ser útil + cuando la red a analizar tiene objetivos que no se deben tocar, como + puedan ser servidores de misión crítica, que pueden reaccionar + adversamente a un análisis de puertos, o si la red incluye subredes + administradas por otras personas.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--excludefile <archivo></option> (Excluir desde una Lista) + </term> + <listitem> + <para>Al igual que <option>--exclude</option>, esta función + permite excluir objetivos, pero en lugar de utilizar la línea + de órdenes toma el listado de un + <replaceable>archivo</replaceable>, que utiliza la misma + sintaxis que la opción <option>-iL</option>.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-host-discovery"> + <title>Descubriendo sistemas</title> + + <para>Uno de los primeros pasos en cualquier misión de reconocimiento de +red es el de reducir un (muchas veces enorme) conjunto de rangos de direcciones +IP en una lista de equipos activos o interesantes. Analizar cada puerto de +cada una de las direcciones IP es lento, y usualmente innecesario. Por +supuesto, lo que hace a un sistema interesante depende ampliamente del +propósito del análisis. Los administradores de red pueden interesarse sólo +en equipos que estén ejecutando un cierto servicio, mientras que los auditores de +seguridad pueden interesarse en todos y cada uno de los dispositivos que +tengan una dirección IP. Un administrador puede sentirse cómodo con obtener +un listado de equipos en su red interna mediante un ping ICMP, mientras que un +consultor en seguridad realizando un ataque externo puede llegar a utilizar +un conjunto de docenas de sondas en su intento de saltarse las restricciones de +los cortafuegos.</para> + + <para>Siendo tan diversas las necesidades de descubrimiento de sistemas, +Nmap ofrece una gran variedad de opciones para personalizar las técnicas +utilizadas. Al descubrimiento de sistemas («Host Discovery») se lo suele llamar +sondeo ping, pero va más allá de la simple solicitud ICMP +echo-request de los paquetes asociados al querido y nunca bien ponderado <application moreinfo="none">ping</application>. + +Los usuarios pueden evitar el paso de ping utilizando un sondeo de lista +(<option>-sL</option>) o deshabilitando el ping (<option>-P0</option>), o +enviando combinaciones arbitrarias de sondas TCP SYN/ACK, UDP e ICMP a +múltiples puertos de la red remota. El propósito de estas sondas es el de +solicitar respuestas que demuestren que una dirección IP se encuentra activa +(está siendo utilizada por un equipo o dispositivo de red). En varias redes +solo un pequeño porcentaje de direcciones IP se encuentran activos en cierto +momento. Esto es particularmente común en las redes basadas en +direccionamiento privado RFC1918, como la 10.0.0.0/8. Dicha red tiene más de +16 millones de direcciones IP, pero la he visto siendo utilizada por +empresas con menos de mil máquinas. El descubrimiento de sistemas puede +encontrar dichas maquinas en un rango tan grande como el indicado. +</para> + +<para>Si no se proveen opciones de descurbrimiento de sistemas, Nmap envía un paquete TCP +ACK al puerto 80 y un ICMP Echo Request a cada máquina objetivo. Una +excepción a este comportamiento es cuando se utiliza un análisis ARP, para +los objetivos que se encuentren en la red Ethernet local. Para usuarios de +shell UNIX que no posean privilegios, un paquete SYN es enviado en vez del +ACK, utilizando la llamada al sistema <function +moreinfo="none">connect()</function>. Estos valores por omisión son el equivalente a +las opciones <option>-PA -PE</option>. Este descubrimiento de sistemas es +generalmente suficiente cuando se analizan redes locales, pero para +auditorías de seguridad se recomienda utilizar un conjunto más completo de sondas +de descubrimiento.</para> + +<para>Las opciones <option>-P*</option> (que permiten seleccionar los tipos +de ping) pueden combinarse. Puede aumentar sus probabilidades de penetrar +cortafuegos estrictos enviando muchos tipos de sondas utilizando diferentes +puertos o banderas TCP y códigos ICMP. Recuerde que el ARP discovery +(<option>-PR</option>) se realiza por omisión contra objetivos de la red +Ethernet local incluso si se especifica otra de las opciones +<option>-P*</option>, porque es generalmente más rápido y efectivo.</para> + +<para>Las siguientes opciones controlan el descubrimiento de sistemas.</para> + <variablelist> + + <varlistentry> + <term> + <option>-sL</option> (Sondeo de lista)</term> + <listitem> + <para> +El sondeo de lista es un tipo de descubrimiento de sistemas que tan solo lista +cada equipo de la/s red/es especificada/s, sin enviar paquetes de ningún tipo +a los objetivos. Por omisión, Nmap va a realizar una resolución inversa DNS +en los equipos, para obtener sus nombres. Es sorprendente cuanta información útil +se puede obtener del nombre de un sistema. Por ejemplo <literal moreinfo="none">fw.chi.playboy.com</literal> +es el cortafuegos de la oficina en Chicago de Playboy Enterprises. Adicionalmente, al +final, Nmap reporta el número total de direcciones IP. El sondeo de lista es una +buena forma de asegurarse de que tenemos las direcciones IP correctas de nuestros +objetivos. Si se encontraran nombres de dominio que no reconoces, vale la pena +investigar un poco más, para evitar realizar un análisis de la red de la +empresa equivocada. +</para> + + <para>Ya que la idea es simplemente emitir un listado de los +sistemas objetivo, las opciones de mayor nivel de funcionalidad como análisis +de puertos, detección de sistema operativo, o análisis ping no pueden +combinarse con este sondeo. Si desea deshabilitar el análisis ping +aún realizando dicha funcionalidad de mayor nivel, compruebe la documentación +de la opción <option>-P0</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sP</option> (Sondeo ping)</term> + <listitem> + + <para>Esta opción le indica a Nmap que <emphasis>únicamente</emphasis> +realice descubrimiento de sistemas mediante un sondeo ping, y que luego +emita un listado de los equipos que respondieron al mismo. No se realizan más +sondeos (como un análisis de puertos o detección de sistema operativo). A diferencia +del sondeo de lista, el análisis ping es intrusivo, ya que envía paquetes a +los objetivos, pero es usualmente utilizado con el mismo propósito. +Permite un reconocimiento liviano de la red objetivo sin llamar mucho la atención. +El saber cuántos equipos se encuentran activos es de mayor valor para los atacantes +que el listado de cada una de las IP y nombres proporcionado por el sondeo de lista.</para> + + <para>De la misma forma, los administradores de sistemas suelen +encontrar valiosa esta opción. Puede ser fácilmente utilizada para contabilizar +las máquinas disponibles en una red, o monitorizar servidores. A esto se lo +suele llamar barrido ping, y es más fiable que hacer ping a la dirección +de broadcast, ya que algunos equipos no responden a ese tipo de consultas.</para> + + <para>La opción <option>-sP</option> envía una solicitud de eco ICMP +y un paquete TCP al puerto 80 por omisión. Cuando un usuario sin privilegios +ejecuta Nmap se envía un paquete SYN (utilizando la +llamada <function moreinfo="none">connect()</function>) al puerto 80 +del objetivo. Cuando un usuario privilegiado intenta analizar objetivos +en la red Ethernet local se utilizan solicitudes ARP (<option>-PR</option>) +a no ser que se especifique la opción <option>--send-ip</option>.</para> + +<para>La opción <option>-sP</option> puede combinarse con cualquiera de las opciones +de sondas de descubrimiento (las opciones <option>-P*</option>, excepto +<option>-P0</option>) para disponer de mayor flexibilidad. Si se utilizan cualquiera +de las opciones de sondas de descubrimiento y número de puerto, se ignoran las sondas por omisión (ACK y solicitud de eco ICMP). +Se recomienda utilizar estas técnicas si hay un cortafuegos con un filtrado estricto entre el sistema que ejecuta Nmap y la red objetivo. +Si no se hace así pueden llegar a pasarse por alto ciertos equipos, +ya que el cortafuegos anularía +las sondas o las respuestas a las mismas.</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>-P0</option> (No realizar ping) + </term> + <listitem> + <para>Con esta opción, Nmap no realiza la etapa de descubrimiento. +Bajo circunstancias normales, Nmap utiliza dicha etapa para determinar +qué máquinas se encuentran activas para hacer un análisis más agresivo. Por omisión, +Nmap sólo realiza ese tipo de sondeos, como análisis de puertos, detección de versión +o de sistema operativo contra los equipos que se están «vivos». +Si se deshabilita el descubrimiento de sistemas con la opción <option>-P0</option> +entonces Nmap utilizará las funciones de análisis solicitadas contra <emphasis>todas</emphasis> +las direcciones IP especificadas. Por lo tanto, si se especifica una red +del tamaño de una clase B cuyo espacio de direccionamiento es de 16 bits, en la línea +de órdenes, se analizará cada una de las 65.536 direcciones IP. +El segundo carácter en la opción <option>-P0</option> es un cero, y no la letra +O. Al igual que con el sondeo de lista, se evita el descubrimiento apropiado de sistemas, +pero, en vez de detenerse y emitir un listado de objetivos, Nmap continúa y realiza +las funciones solicitadas como si cada IP objetivo se encontrara activa.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PS [lista de puertos]</option> (Ping TCP SYN)</term> + <listitem> + + <para>Esta opción envía un paquete TCP vacío con la bandera SYN puesta. + El puerto destino por omisión es el 80 (se puede configurar en + tiempo de compilación cambiando el valor de + DEFAULT_TCP_PROBE_PORT en + <filename moreinfo="none">nmap.h</filename>), pero se puede añadir + un puerto alternativo como parámetro. También se puede especificar + una lista de puertos separados por comas + (p.ej. <option>-PS22,23,25,80,113,1050,35000</option>). Si hace esto + se enviarán sondas en paralelo a cada uno de los puertos. </para> + + <para>La bandera SYN indica al sistema remoto que quiere establecer + una conexión. Normalmente, si el puerto destino está cerrado se + recibirá un paquete RST (de «reset»). Si el puerto está abierto + entonces el objetivo responderá con el segundo paso del saludo en + tres pasos TCP respondiendo con un paquete TCP SYN/ACK. El sistema + donde se ejecuta Nmap romperá la conexión que se está estableciendo + enviando un paquete RST en lugar de enviar el paquete ACK que + completaría el saludo TCP. Nmap no envía este paquete, sino que lo + envía el núcleo del sistema donde se ejecuta Nmap respondiendo al + paquete SYN/ACK que no esperaba.</para> + + <para>A Nmap no le importa si el puerto está abierto o cerrado. Si, + tal y como se acaba de describir, llega una respuesta RST ó SYN/ACK + entonces Nmap sabrá que el sistema está disponible y responde.</para> + + <para>En sistemas UNIX, generalmente sólo el usuario privilegiado + <literal moreinfo="none">root</literal> puede enviar paquetes TCP + crudos. Los usuarios no privilegiados tienen una forma de evitar + esta restricción utilizando la llamada al sistema «connect()» contra + el puerto destino. Esto hace que se envíe el paquete SYN al sistema, + para establecer la conexión. Si la llamada «connect()» devuelve un + resultado de éxito rápidamente o un fallo ECONNREFUSED entonces se + puede deducir que la pila TCP que tiene bajo ésta ha recibido un + SYN/ACK o un RST y que puede marcar el sistema como disponible. El + sistema se puede marcar como no disponible si el intento de conexión + se mantiene parado hasta que vence un temporizador. Esta es también + la forma en la que se gestiona esto en conexiones IPv6 ya que Nmap + aún no puede crear paquetes IPv6 crudos.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PA [lista de puertos]</option> (Ping TCP ACK)</term> + <listitem> + <para>El ping TCP ACK es muy parecido al ping SYN que se + acaba de tratar. La diferencia es que en este caso se envía un + paquete con la bandera ACK en lugar de la SYN. Este paquete indica + que se han recibido datos en una conexión TCP establecida, pero se + envían sabiendo que la conexión no existe. En este caso los sistemas + deberían responder con un paquete RST, lo que sirve para determinar + que están vivos.</para> + + <para>La opción <option>-PA</option> utiliza el mismo puerto por + omisión que la sonda SYN (el puerto 80) y también puede tomar una + lista de puertos destino en el mismo formato. Si un usuario sin + privilegios intenta hacer esto, o se especifica un objetivo IPv6, se + utiliza el procedimiento descrito anteriormente. Aunque en este caso + el procedimiento no es perfecto porque la llamada «connect()» enviará + un paquete SYN en lugar de un ACK.</para> + + <para>Se ofrecen tanto mecanismos de sondeo con ping SYN y ACK para + maximizar las posibilidades de atravesar cortafuegos. Muchos + administradores configuran los enrutadores y algunos cortafuegos + sencillos para que se bloqueen los paquetes SYN salvo para aquellos + destinados a los servicios públicos, como pudieran ser el servidor + web o el servidor de correo de la organización. Esto evita que se + realicen otras conexiones entrantes al mismo tiempo que permite a los + usuarios realizar conexiones salientes a Internet. Este acercamiento + de filtrado sin estados toma pocos recursos de los + cortafuegos/enrutadores y está ampliamente soportado por filtros + hardware y software. El programa de cortafuegos Netfilter/iptables de + Linux ofrece la opción <option>--syn</option> para implementar este + acercamiento sin estados. Cuando se han implementado reglas de + filtrado como éstas es posible que se bloqueen las sondas ping SYN + (<option>-PS</option>) cuando éstas se envíen a un puerto cerrado. + Sin embargo, en estos casos, las sondas ACK podrían saltarse las + reglas y llegar a su destino.</para> + + <para>Otros tipos de cortafuegos comunes utilizan reglas con estados que + descartan paquetes no esperados. Esta funcionalidad se encontraba + antes fundamentalmente en los cortafuegos de gama alta pero se ha + hecho cada vez más común. El sistema Netfilter/iptables de Linux + soporta esta posibilidad a través de la opción + <option>--state</option>, que hace categorías de paquetes en base a + su estado de conexión. En estos sistemas es más probable que funcione + una sonda SYN, dado que los paquetes ACK no esperados se reconocen + como falsos y se descartan. Una solución a este dilema es enviar + sondas SYN y ACK especificando tanto la opción <option>-PS</option> + como <option>-PA</option>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PU [lista de puertos]</option> (Ping UDP)</term> + <listitem> + + <para>El ping UDP es otra opción para descubrir sistemas. Esta opción + envía un paquete UDP vacío (salvo que se especifique + <option>--data-length</option>) a los puertos indicados. La lista de + puertos se debe dar en el mismo formato que se ha indicado + anteriormente para las opciones <option>-PS</option> y + <option>-PA</option> . Si no se especifica ningún puerto se + utiliza el puerto 31338 por omisión. Se puede configurar este puerto + por omisión en el momento de compilar cambiando + DEFAULT_UDP_PROBE_PORT en <filename + moreinfo="none">nmap.h</filename>. Se utiliza un puerto alto y poco + común por omisión porque no es deseable enviar este sondeo + a otro tipo de puertos.</para> + + <para>La sonda UDP debería generar un paquete ICMP de puerto no + alcanzable si da contra un puerto cerrado en el equipo objetivo. Si + llega éste entonces Nmap puede identificar ese sistema como vivo y + alcanzable. Otros errores ICMP, como el de sistema o red + inalcanzables o TTL excedido indican un sistema que está muerto o que + no es alcanzable. Si no llega ninguna respuesta también se entiende + que el sistema no está disponible. Si se alcanza un puerto abierto la + mayoría de los servicios simplemente descartarán el paquete vacío y + no devolverán ninguna respuesta. Ésta es la razón por la que se + utiliza el puerto por omisión 31338 ya que es poco probable que esté + utilizándose. Algunos servicios, como chargen, responderán con un + paquete UDP vacío lo que ayuda a Nmap a determinar que el sistema + está disponible.</para> + + <para>La principal ventaja de este tipo de sondeos es que atraviesan + cortafuegos y filtros que sólo analizan TCP. Yo, por ejemplo, una vez + fui propietario de un encaminador de banda ancha inalámbrico + BEFW11S4. El interfaz externo de este dispositivo filtraba por + omisión todos los puertos TCP, pero las sondas UDP podían generar + mensajes de puerto no alcanzable y permitían detectar al + dispositivo.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PE</option>; + <option>-PP</option>; + <option>-PM</option> (Tipos de ping ICMP)</term> + <listitem> + + <para>Nmap puede enviar los paquetes estándar que envía el programa + <application moreinfo="none">ping</application> además de los tipos + de descubrimiento de equipos con TCP y UDP. Nmap envía paquetes ICMP + tipo 7 («echo request») a las direcciones IP objetivos y espera + recibir un tipo 0 («Echo Reply») de los sistemas que estén + disponibles. Lamentablemente para los exploradores de redes, muchos + sistemas y cortafuegos ahora bloquean esos paquetes en lugar de + responder como requiere el estándar <ulink + url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC 1122</ulink>. + Por ésta razón los sondeos que sólo utilizan el protocolo ICMP no son muy fiables + para analizar sistemas desconocidos en Internet. Aunque pueda ser + una forma eficiente y práctica de hacerlo para administradores que + tengan que monitorizar una red interna. Utilice la opción + <option>-PE</option> para activar este comportamiento de solicitud de + eco.</para> + + <para>Nmap no hace sólo ésto, aunque la solicitud eco es la consulta + estándar de ping ICMP. El estándar ICMP + (<ulink url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC + 792</ulink>) también específica solicitudes de huellas de tiempo, de + información y de máscara de red, que corresponden con los códigos 13, + 15 y 17 respectivamente. Aunque el objetivo de estas solicitudes es + obtener la máscara de red o fecha actual de un sistema también pueden + utilizarse para descubrir sistemas. Un sistema que responde es por + que está vivo y disponible. Nmap no implementa los paquetes de + solicitud de información en sí, ya que no están muy soportados. El + estándar RFC 1122 insiste en que <quote>un equipo NO DEBE implementar + estos mensajes</quote>. Las consultas de huella de tiempo y máscara + de red se pueden enviar con las opciones <option>-PP</option> y + <option>-PM</option>, respectivamente. Si se recibe una respuesta de + huella de tiempo (código ICMP 14) o de máscara de red (código 18) + entonces es que el sistema está disponible. Estas dos consultas + pueden ser útiles cuando los administradores bloquean los paquetes de + consulta eco explícitamente pero se olvidan de que se pueden utilizar + otras consultas ICMP con el mismo fin.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PR</option> (Ping ARP)</term> + <listitem> + + <para>Una de las formas de uso más comunes de Nmap es el sondeo de + una red de área local Ethernet. En la mayoría de las redes locales hay + muchas direcciones IP sin usar en un momento determinado. Esto es así + especialmente en las que utilizan rangos de direcciones privadas + definidas en el RFC1918. Cuando Nmap intenta enviar un paquete IP + crudo, como pudiera ser una solicitud de eco ICMP, el sistema + operativo debe determinar primero la dirección (ARP) correspondiente + a la IP objetivo para poder dirigirse a ella en la trama Ethernet. + Esto es habitualmente un proceso lento y problemático, dado que los + sistemas operativos no se escribieron pensando en que tendrían que + hacer millones de consultas ARP contra sistemas no disponibles en un + corto periodo de tiempo.</para> + + <para>El sondeo ARP hace que sea Nmap y su algoritmo optimizado el + que se encargue de las solicitudes ARP. Si recibe una respuesta, no + se tiene ni que preocupar de los paquetes basados en IP dado que ya + sabe que el sistema está vivo. Esto hace que el sondeo ARP sea mucho + más rápido y fiable que los sondeos basados en IP. Por ello se + utiliza por omisión cuando se analizan sistemas Ethernet si Nmap + detecta que están en la red local. Nmap utiliza ARP para objetivos + en la misma red local aún cuando se utilicen distintos tipos de ping + (como <option>-PE</option> o <option>-PS</option>). Si no quiere + hacer un sondeo ARP tiene que especificar la opción + <option>--send-ip</option>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-n</option> (No realizar resolución de nombres) + </term> + <listitem> + <para>Le indica a Nmap que + <emphasis>nunca</emphasis> debe realizar resolución DNS +inversa de las direcciones IP activas que encuentre. Ya que DNS +es generalmente lento, esto acelera un poco las cosas.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-R</option> (Realizar resolución de nombres con todos los objetivos) + </term> + <listitem> + <para>Le indica a Nmap que deberá realizar + <emphasis>siempre</emphasis> la resolución DNS inversa de +las direcciones IP objetivo. Normalmente se realiza esto sólo si se +descubre que el objetivo se encuentra vivo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--system-dns</option> (Utilizar resolución DNS del sistema) + </term> + <listitem> + <para>Por omisión, Nmap resuelve direcciones IP por si mismo enviando +las consultas directamente a los servidores de nombres configurados +en el sistema, y luego espera las respuestas. Varias solicitudes (generalmente +docenas) son realizadas en paralelo para mejorar el rendimiento. Especifica +esta opción si desea que sí utilice la resolución del sistema (una IP por vez +utilizando la llamada getnameinfo()). Este método es más lento y raramente +útil, a no ser que hubiera un error en el código DNS de Nmap (por favor, notifíquelo +si ese fuera el caso). Éste es el método por omisión para los sondeos IPv6.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--dns-servers <servidor1[,servidor2],...> + </option> (Servidores a utilizar para las consultas DNS) + </term> + <listitem> + <para>Nmap generalmente determina los servidores DNS de + su archivo resolv.conf (UNIX) o del registro (Win32). + Puede utilizar esta opción para especificar sus propios + servidores. Esta opción no se utiliza si utiliza la opción + <option>--system-dns</option> o está realizando un sondeo + IPv6. La resolución a través de más de un servidor de DNS + es generalmente más rápida que la consulta a uno solo.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + + <refsect1 id="man-port-scanning-basics"> + <title>Introducción al análisis de puertos</title> + + <para>Nmap comenzó como un analizador de puertos eficiente, + aunque ha aumentado su funcionalidad a través de los años, + aquella sigue siendo su función primaria. La sencilla orden + <command moreinfo="none">nmap + <replaceable>objetivo</replaceable></command> analiza más de + 1660 puertos TCP del equipo + <replaceable>objetivo</replaceable>. Aunque muchos + analizadores de puertos han agrupado tradicionalmente los + puertos en dos estados: abierto o cerrado, Nmap es mucho más + descriptivo. Se dividen a los puertos en seis estados + distintos: <literal moreinfo="none">abierto</literal>, + <literal moreinfo="none">cerrado</literal>, <literal + moreinfo="none">filtrado</literal>, <literal + moreinfo="none">no filtrado</literal>, <literal + moreinfo="none">abierto|filtrado</literal>, o <literal + moreinfo="none">cerrado|filtrado</literal>.</para> + +<para>Estos estados no son propiedades intrínsecas del puerto en sí, +pero describen como los ve Nmap. Por ejemplo, un análisis con Nmap +desde la misma red en la que se encuentra el objetivo puede mostrar el +puerto 135/tcp como <literal moreinfo="none">abierto</literal>, +mientras que un análisis realizado al mismo tiempo y con las mismas +opciones, pero desde Internet, puede presentarlo como <literal +moreinfo="none">filtrado</literal>.</para> + +<variablelist><title>Los seis estados de un puerto, según Nmap</title> + + <varlistentry><term>abierto</term> + <listitem><para>Una aplicación acepta conexiones TCP o +paquetes UDP en este puerto. El encontrar esta clase de puertos es generalmente +el objetivo primario de realizar un sondeo de puertos. Las personas orientadas a +la seguridad saben que cada puerto abierto es un vector de ataque. Los +atacantes y las personas que realizan pruebas de intrusión intentan aprovechar +puertos abiertos, por lo que los administradores intentan cerrarlos, o +protegerlos con cortafuegos, pero sin que los usuarios legítimos pierdan acceso +al servicio. Los puertos abiertos también son interesantes en sondeos que no +están relacionados con la seguridad porque indican qué servicios están +disponibles para ser utilizados en una red.</para></listitem></varlistentry> + + <varlistentry><term>cerrado</term> + + <listitem><para>Un puerto cerrado es accesible: recibe y responde a las +sondas de Nmap, pero no tiene una aplicación escuchando en él. Pueden ser útiles para determinar si un equipo está activo +en cierta dirección IP (mediante descubrimiento de sistemas, o sondeo ping), y es +parte del proceso de detección de sistema operativo. Como los puertos cerrados +son alcanzables, o sea, no se encuentran filtrados, puede merecer la pena +analizarlos pasado un tiempo, en caso de que alguno se abra. Los administradores +pueden querer considerar bloquear estos puertos con un cortafuegos. Si se +bloquean aparecerían filtrados, como se discute a continuación. + </para></listitem></varlistentry> + + <varlistentry><term>filtrado</term> + + <listitem><para>Nmap no puede determinar si el puerto se encuentra abierto +porque un filtrado de paquetes previene que sus sondas alcancen el puerto. +El filtrado puede provenir de un dispositivo de cortafuegos dedicado, de las reglas +de un enrutador, o por una aplicación de cortafuegos instalada en el propio equipo. Estos puertos suelen +frustrar a los atacantes, porque proporcionan muy poca información. A veces responden +con mensajes de error ICMP del tipo 3, código 13 (destino inalcanzable: +comunicación prohibida por administradores), pero los filtros que +sencillamente descartan las sondas sin responder son mucho más comunes. +Esto fuerza a Nmap a reintentar varias veces, considerando que la +sonda pueda haberse descartado por congestión en la red en vez de +haberse filtrado. Esto ralentiza drásticamente los sondeos. +</para></listitem></varlistentry> + + <varlistentry><term>no filtrado</term> + <listitem><para>Este estado indica que el puerto es accesible, +pero que Nmap no puede determinar si se encuentra abierto o cerrado. +Solamente el sondeo ACK, utilizado para determinar las reglas de un cortafuegos, +clasifica a los puertos según este estado. El analizar puertos no filtrados +con otros tipos de análisis, como el sondeo Window, SYN o FIN, +pueden ayudar a determinar si el puerto se encuentra abierto. + </para></listitem></varlistentry> + + <varlistentry><term>abierto|filtrado</term> + <listitem><para>Nmap marca a los puertos en este estado cuando no puede +determinar si el puerto se encuentra abierto o filtrado. Esto ocurre para +tipos de análisis donde no responden los puertos abiertos. La ausencia +de respuesta puede también significar que un filtro de paquetes ha +descartado la sonda, o que se elimina cualquier respuesta asociada. De esta forma, Nmap no +puede saber con certeza si el puerto se encuentra abierto o filtrado. Los +sondeos UDP, protocolo IP, FIN, Null y Xmas clasifican a los puertos de esta manera. +</para></listitem></varlistentry> + + <varlistentry><term>cerrado|filtrado</term> + <listitem><para>Este estado se utiliza cuando Nmap no puede determinar +si un puerto se encuentra cerrado o filtrado, y puede aparecer aparecer sólo +durante un sondeo IPID pasivo. +</para></listitem></varlistentry> + </variablelist> +</refsect1> + +<refsect1 id="man-port-scanning-techniques"> + <title>Técnicas de sondeo de puertos</title> + +<para>Cuando intento realizar un arreglo de mi coche, siendo novato, +puedo pasarme horas intentando utilizar mis herramientas rudimentarias +(martillo, cinta aislante, llave inglesa, etc.). Cuando fallo +miserablemente y llevo mi coche antiguo en grúa al taller a un +mecánico de verdad siempre pasa lo mismo: busca en su gran cajón de +herramientas hasta que saca una herramienta que hace que la tarea se +haga sin esfuerzo. El arte de sondear puertos es parecido. Los +expertos conocen docenas de técnicas de sondeo y eligen la más +apropiada (o una combinación de éstas) para la tarea que están +realizando. Los usuarios sin experiencia y los "script kiddies", sin +embargo, intentan resolver cada problema con el sondeo SYN por +omisión. Dado que Nmap es libre, la única barrera que existe para ser +un experto en el sondeo de puertos es el conocimiento. Esto es mucho +mejor que el mundo del automóvil, donde puedes llegar a saber que +necesitas un compresor de tuerca, pero tendrás que pagar mil dolares +por él.</para> + +<para>La mayoría de los distintos tipos de sondeo disponibles sólo los +puede llevar a cabo un usuario privilegiado. Esto es debido a que +envían y reciben paquetes en crudo, lo que hace necesario tener acceso como +administrador (root) en la mayoría de los sistemas UNIX. En los +entornos Windows es recomendable utilizar una cuenta de administrador, +aunque Nmap algunas veces funciona para usuarios no privilegiados en +aquellas plataformas donde ya se haya instalado WinPcap. La necesidad +de privilegios como usuario administrador era una limitación +importante cuando se empezó a distribuir Nmap en 1997, ya que muchos +usuarios sólo tenían acceso a cuentas compartidas en sistemas como +usuarios normales. Ahora, las cosas son muy distintas. Los ordenadores +son más baratos, hay más personas que tienen acceso permanente a +Internet, y los sistemas UNIX (incluyendo Linux y MAC OS X) son más +comunes. También se dispone de una versión para Windows de Nmap, lo +que permite que se ejecute en más escritorios. Por todas estas razones, cada vez es menos +necesario ejecutar Nmap utilizando cuentas de sistema compartidas. +Esto es bueno, porque las opciones que requieren +de más privilegios hacen que Nmap sea más potente y flexible.</para> + +<para>Aunque Nmap intenta generar resultados precisos, hay que tener +en cuenta que estos resultados se basan en los paquetes que devuelve el +sistema objetivo (o los cortafuegos que están delante de éstos). Estos +sistemas pueden no ser fiables y envíar respuestas cuyo objetivo sea +confundir a Nmap. Son aún más comunes los sistemas que no cumplen con +los estándares RFC, que no responden como deberían a las sondas de Nmap. Son +especialmente susceptibles a este problema los sondeos FIN, Null y +Xmas. Hay algunos problemas específicos a algunos tipos de sondeos que +se discuten en las entradas dedicadas a sondeos concretos.</para> + +<para>Esta sección documenta las aproximadamente doce técnicas de +sondeos de puertos que soporta Nmap. Sólo puede utilizarse un método +en un momento concreto, salvo por el sondeo UDP (<option>-sU</option>) +que puede combinarse con cualquiera de los sondeos TCP. Para que sea +fácil de recordar, las opciones de los sondeos de puertos son del +estilo <option>-s<replaceable>C</replaceable></option>, donde +<replaceable>C</replaceable> es una letra característica del nombre +del sondeo, habitualmente la primera. La única excepción a esta regla +es la opción obsoleta de sondeo FTP rebotado +(<option>-b</option>). Nmap hace un sondeo SYN por omisión, aunque lo +cambia a un sondeo Connect() si el usuario no tiene los suficientes +privilegios para enviar paquetes en crudo (requiere +acceso de administrador en UNIX) o si se especificaron objetivos +IPv6. De los sondeos que se listan en esta sección los usuarios sin +privilegios sólo pueden ejecutar los sondeos Connect() o de rebote +FTP.</para> + + <variablelist> + <varlistentry> + <term> + <option>-sS</option> (sondeo TCP SYN)</term> + <listitem> + +<para>El sondeo SYN es el utilizado por omisión y el más popular por +buenas razones. Puede realizarse rápidamente, sondeando miles de +puertos por segundo en una red rápida en la que no existan +cortafuegos. El sondeo SYN es relativamente sigiloso y poco molesto, +ya que no llega a completar las conexiones TCP. También funciona +contra cualquier pila TCP en lugar de depender de la idiosincrasia +específica de una plataforma concreta, al contrario de lo que pasa +con los sondeos de Nmap Fin/Null/Xmas, Maimon o pasivo. También +muestra una clara y fiable diferenciación entre los estados <literal +moreinfo="none">abierto</literal>, <literal +moreinfo="none">cerrado</literal>, y <literal +moreinfo="none">filtrado</literal>.</para> + +<para>A esta técnica se la conoce habitualmente como sondeo medio +abierto, porque no se llega a abrir una conexión TCP completa. Se +envía un paquete SYN, como si se fuera a abrir una conexión real y +después se espera una respuesta. Si se recibe un paquete SYN/ACK esto +indica que el puerto está en escucha (abierto), mientras que si se +recibe un RST (reset) indica que no hay nada escuchando en el +puerto. Si no se recibe ninguna respuesta después de realizar algunas +retransmisiones entonces el puerto se marca como filtrado. También se +marca el puerto como filtrado si se recibe un error de tipo ICMP no +alcanzable (tipo 3, códigos 1,2, 3, 9, 10, ó 13).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sT</option> (sondeo TCP connect())</term> + <listitem> + +<para>El sondeo TCP Connect() es el sondeo TCP por omisión cuando no +se puede utilizar el sondeo SYN. Esto sucede, por ejemplo, cuando el +usuario no tiene privilegios para enviar paquetes en crudo o cuando se +están sondeando redes IPv6. Nmap le pide al sistema operativo +subyacente que establezcan una conexión con el sistema objetivo en el +puerto indicado utilizando la llamada del sistema <literal +moreinfo="none">connect()</literal>, a diferencia de otros tipos de +sondeo, que escriben los paquetes a bajo nivel. Ésta es la misma +llamada del sistema de alto nivel que la mayoría de las aplicaciones +de red, como los navegadores web o los clientes P2P, utilizan para +establecer una conexión. Esta llamada es parte del interfaz de +programación conocido como la API de conectores de Berkeley. También, +en lugar de leer las respuestas directamente de la línea, Nmap utiliza +esta API para obtener la información de estado de cada intento de +conexión.</para> + +<para>Generalmente es mejor utilizar un sondeo SYN, si éste está +disponible. Nmap tiene menos control sobre la llamada de alto nivel +<literal moreinfo="none">Connect()</literal> que cuando utiliza +paquetes en crudo, lo que hace que sea menos eficiente. La llamada al +sistema completa las conexiones para abrir los puertos objetivo, en +lugar de realizar el reseteo de la conexión medio abierta como hace el +sondeo SYN. Esto significa que se tarda más tiempo y son necesarios +más paquetes para obtener la información, pero también significa que +los sistemas objetivos van a registrar probablemente la conexión. Un +IDS decente detectará cualquiera de los dos, pero la mayoría de los +equipos no tienen este tipo de sistemas de alarma. Sin embargo, muchos +servicios de los sistemas UNIX habituales añadirán una nota en el +syslog, y algunas veces con un mensaje de error extraño, dado que Nmap +realiza la conexión y luego la cierra sin enviar ningún dato. Los +servicios realmente patéticos morirán cuando ésto pasa, aunque esto no +es habitual. Un administrador que vea muchos intentos de conexión en +sus registros que provengan de un único sistema debería saber que ha +sido sondeado con este método.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sU</option> (sondeos UDP)</term> + <listitem> + +<para>Aunque la mayoría de los servicios más habituales en Internet +utilizan el protocolo TCP, los servicios <ulink +url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> también son +muy comunes. Tres de los más comunes son los servicios DNS, SNMP, y +DHCP (puertos registrados 53, 161/162, y 67/68 respectivamente). Dado +que el sondeo UDP es generalmente más lento y más difícil que TCP, +algunos auditores de seguridad ignoran estos puertos. Esto es un +error, porque es muy frecuente encontrarse servicios UDP vulnerables y +los atacantes no ignoran estos protocolos. Afortunadamente, Nmap puede +utilizarse para hacer un inventario de puertos UDP.</para> + +<para>El sondeo UDP se activa con la opción +<option>-sU</option>. Puede combinarse con un tipo de sondeo TCP como +el sondeo SYN (<option>-sS</option>) para comprobar ambos protocolos +al mismo tiempo.</para> + +<para>Los sondeos UDP funcionan mediante el envío (sin datos) de una +cabecera UDP para cada puerto objetivo. Si se obtiene un error ICMP +que indica que el puerto no es alcanzable (tipo 3, código 3) entonces +se marca el puerto como <literal moreinfo="none">cerrado</literal>. Si +se recibe cualquier error ICMP no alcanzable (tipo 3, códigos 1, 2, 9, +10, o 13) se marca el puerto como <literal +moreinfo="none">filtrado</literal>. En algunas ocasiones se recibirá +una respuesta al paquete UDP, lo que prueba que el puerto está +<literal moreinfo="none">abierto</literal>. Si no se ha recibido +ninguna respuesta después de algunas retransmisiones entonces se +clasifica el puerto como <literal +moreinfo="none">abierto|filtrado</literal>. Esto significa que el +puerto podría estar abierto o que hay un filtro de paquetes bloqueando +la comunicación. Puede utilizarse el sondeo de versión +(<option>-sV</option>) para diferenciar de verdad los puertos abiertos +de los filtrados.</para> + +<para>Uno de las grandes problemas con el sondeo UDP es hacerlo +rápidamente. Pocas veces llega una respuesta de un puerto abierto o +filtrado, lo que obliga a expirar a Nmap y luego a retransmitir los +paquetes en caso de que la sonda o la respuesta se perdieron. Los +puertos cerrados son aún más comunes y son un problema +mayor. Generalmente envían un error ICMP de puerto no +alcanzable. Pero, a diferencia de los paquetes RST que envían los +puertos TCP cerrados cuando responden a un sondeo SYN o Connect, +muchos sistemas imponen una tasa máxima de mensajes ICMP de puerto +inalcanzable por omisión. Linux y Solaris son muy estrictos con +esto. Por ejemplo, el núcleo de Linux versión 2.4.20 limita la tasa de +envío de mensajes de destino no alcanzable a uno por segundo (en +<filename moreinfo="none">net/ipv4/icmp.c</filename>).</para> + +<para>Nmap detecta las limitaciones de tasa y se ralentiza para no +inundar la red con paquetes inútiles que el equipo destino acabará +descartando. Desafortunadamente, un límite como el que hace el núcleo +de Linux de un paquete por segundo hace que un sondeo de 65536 puertos +tarde más de 18 horas. Puede acelerar sus sondeos UDP incluyendo más +de un sistema para sondearlos en paralelo, haciendo un sondeo rápido +inicial de los puertos más comunes, sondeando detrás de un +cortafuegos, o utilizando la opción <option>--host-timeout</option> +para omitir los sistemas que respondan con lentitud.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (sondeos TCP Null, FIN, y Xmas)</term> + <listitem> + +<para>Estos tres tipos de sondeos (aunque puede hacer muchos más a +través de la opción <option>--scanflags</option> que se describe en la +próxima sección) aprovechan una indefinición en la <ulink +url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC de TCP</ulink> que +diferencia los puertos <literal moreinfo="none">abiertos</literal> y +<literal moreinfo="none">cerrados</literal>. La página 65 dice que +<quote>si el estado del puerto [destino] es CERRADO .... un segmento +entrante que contiene un RST hace que se envíe un RST en la +respuesta.</quote> Después la página siguiente discute los paquetes +que se envían a puertos abiertos sin fijar los bits SYN, RST, o ACK, +diciendo: <quote>es improbable que llegue aquí, pero si lo hace, debe +descartar el segmento y volver.</quote></para> + +<para>Cuando se sondean sistemas que cumplen con el texto de esta RFC, +cualquier paquete que no contenga los bits SYN, RST, o ACK resultará +en el envío de un RST si el puerto está cerrado. Mientras que no se +enviará una respuesta si el puerto está cerrado. Siempre y cuando se +incluyan esos tres bits es válida la combinación de cualquiera de los +otros tres (FIN, PSH, y URG). Nmap aprovecha esto con tres tipos de +sondeo:</para> + +<variablelist> + <varlistentry><term>Sondeo Null(<option>-sN</option>)</term> + <listitem><para>No fija ningún bit (la cabecera de banderas TCP es 0)</para></listitem></varlistentry> + + <varlistentry><term>sondeo FIN (<option>-sF</option>)</term> + <listitem><para>Solo fija el bit TCP FIN.</para></listitem></varlistentry> + + <varlistentry><term>sondeo Xmas (<option>-sX</option>)</term> + <listitem><para>Fija los bits de FIN, PSH, y URG flags, iluminando el paquete + como si fuera un árbol de Navidad.</para></listitem></varlistentry> +</variablelist> + +<para>Estos tres tipos de sondeos son exactamente los mismos en +comportamiento salvo por las banderas TCP que se fijen en los paquetes +sonda. Si se recibe un paquete RST entonces se considera que el puerto +está <literal moreinfo="none">cerrado</literal>. Si no se recibe +ninguna respuesta el puerto se marca como <literal +moreinfo="none">abierto|filtrado</literal>. El puerto se marca +<literal moreinfo="none">filtrado</literal> si se recibe un error ICMP +no alcanzable (tipo 3, código 1, 2, 3, 9, 10, o 13).</para> + +<para>La ventaja fundamental de este tipo de sondeos es que pueden +atravesar algunos cortafuegos que no hagan inspección de estados o +encaminadores que hagan filtrado de paquetes. Otra ventaja es que este +tipo de sondeos son algo más sigilosos que, incluso, un sondeo +SYN. Sin embargo, no cuente con que pase siempre esto ya que la +mayoría de los productos IDS pueden configurarse para detectarlos. El +problema es que no todos los sistemas siguen el estándar RFC 793 al +pie de la letra. Algunos sistemas envían respuestas RST a las sondas +independientemente de si el puerto está o no cerrado. Esto hace que +la mayoría de los puertos se marquen como <literal +moreinfo="none">cerrados</literal>. Algunos sistemas operativos muy +utilizados que hacen ésto son Microsoft Windows, muchos dispositivos +Cisco, BSDI, e IBM OS/400. Este sondeo no funciona contra sistemas +basados en UNIX. Otro problema de estos sondeos es que no se puede +distinguir los puertos <literal moreinfo="none">abiertos</literal> de +algunos puertos <literal moreinfo="none">filtrados</literal>, lo que +resulta en la respuesta <literal +moreinfo="none">abierto|filtrado</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sA</option> (sondeo TCP ACK)</term> + <listitem> + +<para>Este sondeo es distinto de otros que se han discutido hasta +ahora en que no puede determinar puertos <literal +moreinfo="none">abiertos</literal> (o incluso <literal +moreinfo="none">abiertos|filtrados</literal>). Se utiliza para mapear +reglas de cortafuegos, y para determinar si son cortafuegos con +inspección de estados y qué puertos están filtrados.</para> + +<para>La sonda de un sondeo ACK sólo tiene fijada la bandera ACK (a +menos que utilice <option>--scanflags</option>). Cuando se sondean +sistemas no filtrados los puertos <literal +moreinfo="none">abiertos</literal> y <literal +moreinfo="none">cerrados</literal> devolverán un paquete RST. Nmap +marca el puerto como <literal moreinfo="none">no filtrado</literal>, +lo que significa que son alcanzables por el paquete ACK, pero no se +puede determinar si están <literal moreinfo="none">abiertos</literal> +o <literal moreinfo="none">cerrados</literal>. Los puertos que no +responden o que envían mensajes de error ICMP en respuesta (tipo 3, +código 1, 2, 3, 9, 10, o 13), se marcan como <literal +moreinfo="none">filtrados</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sW</option> (sondeo de ventana TCP)</term> + <listitem> + +<para>El sondeo de ventana («window», N. del T.) es exactamente igual +al sondeo ACK que se aprovecha de un detalle de implementación de +algunos sistemas que permite diferenciar puertos abiertos de los +cerrados, en lugar de imprimir <literal moreinfo="none">no +filtrado</literal> cuando se devuelve un RST. Hace esto examinando el +campo de ventana TCP del paquete RST devuelto. Algunos sistemas fijan +un tamaño de ventana positivo para puertos abiertos (incluso para +paquetes RST) mientras que se utiliza una ventana de tamaño cero para +los cerrados. Así, en lugar de listar el puerto como <literal +moreinfo="none">no filtrado</literal> cuando se recibe un RST, el +sondeo de ventana permite listar el puerto como <literal +moreinfo="none">abierto</literal> o <literal +moreinfo="none">cerrado</literal> en función de si el valor de la +ventana TCP en ese paquete RST es positivo o cero, +respectivamente.</para> + +<para>Este sondeo depende de un detalle de implementación de una +minoría de sistemas q que existen en Internet, así que no es siempre +fiable. Los sistemas que no hacen ésto habitualmente harán que se +muestren los puertos como <literal +moreinfo="none">cerrados</literal>. Por supuesto, es posible que el +sistema no tenga ningún puerto abierto. Si la mayoría de los puertos +están <literal moreinfo="none">cerrados</literal> pero alguno de los +números de puertos comunes (como pueda ser el 22, 25 ó 53) están +<literal moreinfo="none">filtrados</literal>, entonces el sistema es +posible que sea susceptible a ésto. Algunas veces hay sistemas que +mostrarán el comportamiento justo contrario. Si su sondeo muestra 1000 +puertos abiertos y 3 puertos cerrados o filtrados entonces es posible +que sean estos últimos los que están abiertos en realidad.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sM</option> (sondeo TCP Maimon)</term> + <listitem> + +<para>El sondeo Maimon debe su nombre a la persona que lo descubrió: +Uriel Maimon. Describió la técnica en la revista Phrack número 49 +(noviembre de 1996). Nmap, que incluye esta técnica, se publicó dos +números más tarde. Esta técnica es exactamente la misma a los sondeos +Null, FIN, y Xmas, pero en los que se envía una sonda +FIN/ACK. Según el RFC 793 (TCP), se debería generar un paquete RST +cuando se responde a dicha sonda independientemente de si el puerto +está cerrado o abierto. Uriel se dio cuenta, sin embargo, de que +muchos sistemas derivados de BSD simplemente descartan el paquete si +el puerto está abierto.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scanflags</option> (Sondeo TCP a medida)</term> + <listitem> + +<para>Los usuarios realmente avanzados de Nmap no tienen por qué +limitarse a los tipos de sondeos preparados que se ofrecen. La opción +<option>--scanflags</option> le permite diseñar su propio sondeo +mediante la especificación de banderas TCP arbitrarias. Deje volar a +su imaginación al tiempo que evita las reglas de los sistemas de +detección de intrusos cuyos fabricantes sólo echaron un vistazo a la +página de manual de Nmap y añadieron reglas específicas para +detectarlo.</para> + +<para>La opción <option>--scanflags</option> puede ser un valor +numérico como el 9 (PSH y FIN), aunque es más sencillo utilizar nombres +simbólicos. Sólo tienes que juntar una combinación de <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>, +y <literal moreinfo="none">FIN</literal>. Por ejemplo, la +configuración <option>--scanflags URGACKPSHRSTSYNFIN</option> fija +todas las banderas, aunque no es muy útil para sondear. No importa el +orden en que se especifiquen los nombres.</para> + +<para>Además de poder especificar las banderas que desee se puede +especificar el tipo de sondeo TCP (como <option>-sA</option> o +<option>-sF</option>). Ésto le dice a Nmap cómo debe interpretar las +respuestas. Por ejemplo, un sondeo SYN considera que si no se recibe +respuesta el puerto está <literal moreinfo="none">filtrado</literal> +mientras que si no se recibe una respuesta en un sondeo FIN se trata +como <literal moreinfo="none">abierto|filtrado</literal>. Nmap se +comportará igual que para el sondeo tipo base, con la diferencia de +que utilizará las banderas TCP que usted especifique. Se utiliza el +sondeo SYN si no se especifica ningún tipo base.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sI <sistema zombi + [:puerto_sonda]></option> (Sondeo ocioso)</term> + + <listitem> + + <para>Este es un método de sondeo avanzado que le permite + hacer un sondeo de puertos TCP a ciegas de verdad (lo que + significa que no se envía ningún paquete al sistema objetivo + desde su dirección IP real). En lugar de ésto se utiliza + un ataque con un canal alternativo que se aprovecha de la + generación de la secuencia de los identificadores de + fragmentación IP del sistema zombi para obtener información + de los puertos abiertos en el objetivo. Los sistemas IDS + mostrarán que el sondeo lo está realizando el sistema zombi + que especifique (que debe estar vivo y cumplir algunos + requisitos). Este tipo de sondeo tan fascinante es demasiado + complejo como para describirlo por completo en esta guía de + referencia por lo que escribí y publiqué un documento + informal que contiene todos los detalles, el documento está + disponible en <ulink + url="https://nmap.org/book/idlescan.html"/>.</para> + + <para>Además de ser extraordinariamente sigiloso (debido a + su funcionamiento a ciegas), este tipo de sondeo permite + determinar las relaciones basadas en IP entre distintos + sistemas. El listado de puertos muestra los puertos abiertos + <emphasis>desde la perspectiva del sistema zombi.</emphasis> + Así que puede analizar el mismo objetivo con zombis + distintos que cree que podrían ser de confianza para éste (a + través de las reglas de filtrados de los paquetes o reglas + de filtrados de encaminadores).</para> + + <para>Puede añadir un número de puerto separado por dos + puntos del sistema zombi si desea analizar un puerto + específico del zombi para consultar los cambios IPID. Si no + lo hace Nmap utilizará el puerto que utiliza para pings TCP + por omisión (el puerto 80).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sO</option> (sondeo de protocolo IP)</term> + <listitem> + +<para>El sondeo de protocolo IP le permite determinar qué protocolos +(TCP, ICMP, IGMP, etc.) soportan los sistemas objetivo. Esto no es, +técnicamente, un sondeo de puertos, dado que cambia los números de +protocolo IP en lugar de los números de puerto TCP ó UDP. Pero también +se puede utilizar la opción <option>-p</option> para seleccionar los +números de protocolo a analizar, los resultados se muestran en el +formato de tabla utilizado para los puertos e incluso utiliza el mismo +motor de sondeo que los métodos de sondeo de puertos reales. Es tan +parecido a un sondeo de puertos que debe tratarse aquí.</para> + +<para>El sondeo de protocolos, además de ser útil en sí mismo, +demuestra el poder del software de fuentes abiertas («opensource», N. del T.). Aunque la idea +fundamental era bastante sencilla, no había pensado añadirla ni +tampoco había habido personas que solicitaran esta +funcionalidad. Entonces, en el verano de 2000, se le ocurrió la idea a +Gerhard Rieger y la implementó escribiendo un parche excelente, +enviándolo posteriormente a la lista de correo de +nmap-hackers. Incorporé ese parche en el árbol de código de Nmap y +publiqué una nueva versión ese mismo día. ¡Pocas piezas de programas +comerciales tienen usuarios tan entusiastas que diseñan y contribuyen +sus propias mejoras!</para> + +<para>El sondeo de protocolos utiliza mecanismos parecidos al sondeo +UDP. Envía cabeceras de paquetes IP iterando por el campo de 8 bits +que indica el protocolo IP, en lugar de iterar por el campo de número +de puerto de un paquete UDP. Las cabeceras generalmente están vacías y +no contienen datos. De hecho, ni siquiera tienen una cabecera +apropiada para el protocolo que se indica. Las tres excepciones son +TCP, UDP e ICMP. Se incluye una cabecera de protocolo válida para +éstos porque algunos sistemas no los enviarán sin ellas y porque Nmap +ya tiene funciones para crearlas. El sondeo de protocolos espera la +recepción de mensajes de ICMP <emphasis>protocolo</emphasis> no +alcanzable en lugar de mensajes ICMP puerto no alcanzable. Nmap marca +el protocolo como <literal moreinfo="none">abierto</literal> si recibe +una respuesta en cualquier protocolo del sistema objetivo. Se marca +como <literal moreinfo="none">cerrado</literal> si se recibe un error +ICMP de protocolo no alcanzable (tipo 3, código 2). Si se reciben otros +errores ICMP no alcanzable (tipo 3, códigos 1, 3, 9, 10, o 13) se +marca el protocolo como <literal moreinfo="none">filtrado</literal> +(aunque al mismo tiempo indican que el protocolo ICMP está <literal +moreinfo="none">abierto</literal>). El protocolo se marca como +<literal moreinfo="none">abierto|filtrado</literal> si no se recibe +ninguna respuesta después de las retransmisiones.</para> + + </listitem> + </varlistentry> + + + + <varlistentry> + <term> + <option>-b <sistema de rebote ftp></option> (sondeo de + rebote FTP)</term> + <listitem> + +<para>Una funcionalidad interesante en el protocolo FTP (<ulink +url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) es la +posibilidad de utilizar conexiones FTP de pasarela. Esta opción puede +abusarse a muchos niveles así que muchos servidores han dejado de +soportarla. Una de las formas de abusar de ésta es utilizar el +servidor de FTP para hacer un sondeo de puertos a otro +sistema. Simplemente hace falta decirle al servidor de FTP que envíe +un fichero a cada puerto interesante del servidor objetivo cada +vez. El mensaje de error devuelto indicará si el puerto está abierto o +no. Esta es una buena manera de atravesar cortafuegos porque, +habitualmente, los servidores de FTP de una organización están +ubicados en un lugar en el que tienen más acceso a otros sistemas +internos que el acceso que tiene un equipo en Internet. Nmap puede +hacer sondeos con rebotes de FTP con la opción +<option>-b</option>. Esta opción toma un argumento como: +<replaceable>usuario</replaceable>:<replaceable>contraseña</replaceable>@<replaceable>servidor</replaceable>:<replaceable>puerto</replaceable>. +<replaceable>Servidor</replaceable> es el nombre de la dirección IP del +servidor FTP vulnerable. Al igual que con una URL normal, se puede +omitir +<replaceable>usuario</replaceable>:<replaceable>contraseña</replaceable>, +en caso de que se deseen utilizar credenciales de acceso anónimo +(usuario: <literal moreinfo="none">anonymous</literal> +contraseña:<literal moreinfo="none">wwwuser@</literal>) También se +puede omitir el número de puerto (y los dos puntos que lo +preceden). Si se omiten se utilizará el puerto FTP estándar (21) en +<replaceable>servidor</replaceable>.</para> + +<para>Esta vulnerabilidad era muy habitual en 1997, el año que se +publicó Nmap, pero ya ha sido arreglada en muchos sitios. Aún siguen +existiendo servidores vulnerables así que merece la pena probar este +sondeo si lo demás falla. Si su objetivo es atravesar un cortafuegos, +analice la red objetivo en busca del puerto 21 (o incluso cualquier +servicio FTP, si sondea todos los puertos y activa la detección de +versiones). Después intente un sondeo de rebote utilizando cada +uno. Nmap le indicará si el sistema es o no vulnerable. Si está +intentado ocultar sus huellas no tiene que (y de hecho no debería) +limitarse a servidores en la red objetivo. En cualquier caso, antes de +empezar a sondear Internet al azar para buscar servidores de FTP +vulnerables, tenga en cuenta que pocos administradores de sistemas +apreciarán el que abuse de sus servidores de esta forma.</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-specification"> + <title>Especificación de puertos y orden de sondeo</title> + + <para>Nmap ofrece distintas opciones para especificar los puertos + que se van a sondear y si el orden de los sondeos es aleatorio o + secuencial. Estas opciones se añaden a los métodos de sondeos que se han + discutido previamente. Nmap, por omisión, sondea todos los puertos hasta el + 1024 además de algunos puertos con números altos listados en el fichero + <filename moreinfo="none">nmap-services</filename> para los protocolos que + se sondeen.</para> + + <variablelist> + <varlistentry> + <term> + <option>-p <rango de puertos></option> (Sólo sondea unos puertos específicos) + </term> + <listitem> + + <para>Esta opción especifica los puertos que desea sondear y + toma precedencia sobre los valores por omisión. Puede especificar + tanto números de puerto de forma individual, así como rangos + de puertos separados por un guión (p. ej. 1-1023). Puede omitir + el valor inicial y/o el valor final del rango. Nmap utilizará + 1 ó 65535 respectivamente. De esta forma, puede especificar + <option>-p-</option> para sondear todos los puertos desde el 1 + al 65535. Se permite sondear el puerto cero siempre que lo + especifique explícitamente. Esta opción especifica el número de + protocolo que quiere sondear (de 0 a 255) en el caso de que esté + sondeando protocolos IP (<option>-sO</option>).</para> + + <para>Puede especificar un protocolo específico cuando sondee + puertos TCP y UDP si precede el número de puerto con + <literal moreinfo="none">T:</literal> + o <literal moreinfo="none">U:</literal>. + El calificador dura hasta que especifique otro calificador. + Por ejemplo, la opción <option>-p + U:53,111,137,T:21-25,80,139,8080</option> sondearía los puertos + UDP 53,111, y 137, así como los puertos TCP listados. + Tenga en cuenta que para sondear tanto UDP como TCP deberá especificar + la opción + <option>-sU</option> y al menos un tipo de sondeo TCP (como + <option>-sS</option>, <option>-sF</option>, o <option>-sT</option>). + Si no se da un calificador de protocolo se añadirán los números de + puerto a las listas de todos los protocolos. </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-F</option> (Sondeo rápido (puertos limitados)) + </term> + <listitem> + + <para>Indica que sólo quiere sondear los puertos listados en el fichero + <filename moreinfo="none">nmap-services</filename> + que se incluye con nmap (o el fichero de protocolos si indica + <option>-sO</option>). Esto es más rápido que sondear todos los + 65535 puertos de un sistema. La diferencia de velocidad con el sondeo TCP + por omisión (unos 1650 puertos) no es muy alta dado que esta lista + contiene muchos puertos TCP (más de 1200). La diferencia puede + ser muy grande si especifica su propio fichero + <filename moreinfo="none">nmap-services</filename> más pequeño + si utiliza la opción <option>--datadir</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-r</option> (No aleatorizar los puertos) + </term> + <listitem> + <para>Nmap ordena de forma aleatoria los puertos a sondear por + omisión (aunque algunos puertos comúnmente accesibles se ponen al + principio por razones de eficiencia). Esta aleatorización + generalmente es deseable, pero si lo desea puede especificar la + opción <option>-r</option> para analizar de forma secuencial los + puertos.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-version-detection"> + <title>Detección de servicios y de versiones</title> + + + <para>Si le indica a Nmap que mire un sistema remoto le podrá decir que + tiene abiertos los puertos 25/tcp, 80/tcp y 53/udp. Informará que + esos puertos se corresponden habitualmente con un servidor de + correo (SMTP), servidor de web (HTTP) o servidor de nombres (DNS), + respectivamente, si utilizas su base de datos <filename + moreinfo="none">nmap-services</filename> con más de 2.200 puertos + conocidos. Generalmente este informe es correo dado que la gran + mayoría de demonios que escuchan en el puerto 25 TCP son, en + realidad, servidores de correo. ¡Pero no debe confiar su + seguridad en este hecho! La gente ejecuta a veces servicios + distintos en puertos inesperados</para> + + <para>Aún en el caso de que Nmap tenga razón y el servidor de + ejemplo indicado arriba está ejecutando servidores de SMTP, HTTP y + DNS ésto no dice mucho. Cuando haga un análisis de + vulnerabilidades (o tan sólo un inventario de red) en su propia + empresa o en su cliente lo que habitualmente también quiere saber + es qué versión se está utilizando del servidor de correcto y de + DNS. Puede ayudar mucho a la hora de determinar qué ataques pueden + afectar a un servidor el saber el número de versión exacto de + éste. La detección de versiones le ayuda a obtener esta + información. </para> + + <para>La detección de versiones pregunta para obtener más + información de lo que realmente se está ejecutando una vez se han + detectado los puertos TCP y/o UDP con alguno de los métodos de + sondeo. La base de datos <filename + moreinfo="none">nmap-service-probes</filename> contiene sondas + para consultar distintos servicios y reconocer y tratar distintas + respuestas en base a una serie de expresiones. Nmap intenta + determinar el protocolo del servicio (p. ej. ftp, ssh, telnet ó + http), el nombre de la aplicación (p. ej. Bind de ISC, http de + Apache, telnetd de Solaris), un número de versión, un tipo de + dispositivo (p. ej. impresora o router), la familia de sistema + operativo (p. ej. Windows o Linux) y algunas veces algunos + detalles misceláneos como, por ejemplo, si un servidor X acepta + cualquier conexión externa, la versión de protocolo SSH o el + nombre de usuario Kazaa). Por supuesto, la mayoría de los + servicios no ofrecen toda esta información. Si se ha compilado + Nmap con soporte OpenSSL se conectará también a servidores SSL + para determinar qué servicio escucha detrás de la capa de + cifrado. Se utiliza la herramienta de pruebas RPC de Nmap + (<option>-sR</option>) de forma automática para determinar el + programa RPC y el número de versión si se descubren servicios RPC. + Algunos puertos UDP se quedan en estado <literal + moreinfo="none">open|filtered</literal> (N. del T., + 'abierto|filtrado') si un barrido de puertos UDP no puede + determinar si el puerto está abierto o filtrado. La detección de + versiones intentará obtener una respuesta de estos puertos (igual + que hace con puertos abiertos) y cambiará el estado a abierto si + lo consigue. Los puertos TCP en estado <literal + moreinfo="none">open|filtered</literal> se tratan de forma + similar. Tenga en cuenta que la opción <option>-A</option> de Nmap + actualiza la detección de versiones entre otras cosas. Puede + encontrar un documento describiendo el funcionamiento, modo de + uso, y particularización de la detección de versiones en <ulink + url="https://nmap.org/vscan/"/>.</para> + + <para>Cuando Nmap obtiene una respuesta de un servicio pero no + encuentra una definición coincidente en la base de datos se + imprimirá una firma especial y un URL para que la envíe si sabe lo + que está ejecutándose detrás de ese puerto. Por favor, tómese + unos minutos para enviar esta información para ayudar a todo el + mundo. Gracias a estos envíos Nmap tiene ahora alrededor de 3.000 + patrones para más de 350 protocolos distintos como smtp, ftp, + http, etc.</para> + + <para>La detección de versiones se activa y controla con la + siguientes opciones:</para> + + + <variablelist> + + <varlistentry> + <term> + <option>-sV</option> (Detección de versiones)</term> + <listitem> + + <para>Activa la detección de versiones como se ha descrito + previamente. Puede utilizar la opción <option>-A</option> + en su lugar para activar tanto la detección de versiones + como la detección de sistema operativo.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--allports</option> (No excluir ningún puerto de la + detección de versiones) + </term> + <listitem> + <para>La detección de versiones de Nmap omite el puerto TCP 9100 por + omisión porque algunas impresoras imprimen cualquier cosa + que reciben en este puerto, lo que da lugar a la impresión + de múltiples páginas con solicitudes HTTP get, intentos de + conexión de SSL, etc. Este comportamiento puede cambiarse + modificando o eliminando la directiva <literal + moreinfo="none">Exclude</literal> en <filename + moreinfo="none">nmap-service-probes</filename>, o + especificando <option>--allports</option> para sondear todos + los puertos independientemente de lo definido en la + directiva <literal moreinfo="none">Exclude</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-intensity <intensidad></option> (Fijar + la intensidad de la detección de versiones) + </term> + <listitem> + + <para>Nmap envía una serie de sondas cuando se activa la + detección de versiones (<option>-sV</option>) con un nivel + de rareza preasignado y variable de 1 a 9. Las sondas con un + número bajo son efectivas contra un amplio número de + servicios comunes, mientras que las de números más altos se + utilizan rara vez. El nivel de intensidad indica que sondas + deberían utilizarse. Cuanto más alto sea el número, mayor las + probabilidades de identificar el servicio. Sin embargo, los + sondeos de alta intensidad tardan más tiempo. El valor de + intensidad puede variar de 0 a 9. El valor por omisión es 7. + Se probará una sonda independientemente del nivel de + intensidad cuando ésta se registra para el puerto objetivo a + través de la directiva <filename + moreinfo="none">nmap-service-probes</filename> <literal + moreinfo="none">ports</literal>. De esta forma se asegura + que las sondas de DNS se probarán contra cualquier puerto + abierto 53, las sondas SSL contra el puerto 443, etc.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-light</option> (Activar modo ligero) + </term> + <listitem> + <para>Éste es un alias conveniente para + <option>--version-intensity 2</option>. Este modo ligero + hace que la detección de versiones sea más rápida pero + también hace que sea menos probable identificar algunos servicios.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-all</option> (Utilizar todas las sondas) + </term> + <listitem> + <para>Éste es un alias para <option>--version-intensity 9</option>, + hace que se utilicen todas las sondas contra cada puerto.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-trace</option> (Trazar actividad de sondeo + de versiones) + </term> + <listitem> + <para>Esta opción hace que Nmap imprima información de + depuración detallada explicando lo que está haciendo el sondeo + de versiones. Es un conjunto de lo que obtendría si utilizara + la opción <option>--packet-trace</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sR</option> (Sondeo RPC)</term> + <listitem> + + <para>Este método funciona conjuntamente con los distintos + métodos de sondeo de puertos de Nmap. Toma todos los puertos + TCP/UDP que se han encontrado y los inunda con órdenes de + programa NULL SunRPC con el objetivo de determinar si son + puertos RPC y, si es así, los programas y número de versión + que están detrás. Así, puede obtener de una forma efectiva la + misma información que <command moreinfo="none">rpcinfo + -p</command> aunque el mapeador de puertos («portmapper», N. del T.) + está detrás de un cortafuegos (o protegido + por TCP wrappers). Los señuelos no funcionan con el sondeo RPC + actualmente. Esta opción se activa automáticamente como parte + de la detección de versiones (<option>-sV</option>) si la ha + seleccionado. Rara vez se utiliza la opción + <option>-sR</option> dado que la detección de versiones lo + incluye y es más completa.</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + + <refsect1 id="man-os-detection"> + + <title>Detección de sistema operativo</title> + + <para>Uno de los aspectos más conocidos de Nmap es la detección + del sistema operativo (SO) en base a la comprobación de huellas + TCP/IP. Nmap envía una serie de paquetes TCP y UDP al sistema + remoto y analiza prácticamente todos los bits de las + respuestas. Nmap compara los resultados de una docena de pruebas como puedan + ser el análisis de ISN de TCP, el soporte de opciones TCP y su + orden, el análisis de IPID y las comprobaciones de tamaño inicial + de ventana, con su base de datos + <filename moreinfo="none">nmap-os-fingerprints</filename>. Esta + base de datos consta de más de 1500 huellas de sistema operativo + y cuando existe una coincidencia se presentan los detalles del + sistema operativo. Cada huella contiene una descripción en texto + libre del sistema operativo, una clasificación que indica el + nombre del proveedor (por ejemplo, Sun), el sistema operativo + subyacente (por ejemplo, Solaris), la versión del SO (por + ejemplo, 10) y el tipo de dispositivo (propósito general, + encaminador, conmutador, consola de videojuegos, etc.).</para> + + <para>Nmap le indicará una URL donde puede enviar las huellas si + conoce (con seguridad) el sistema operativo que utiliza el equipo + si no puede adivinar el sistema operativo de éste y las + condiciones son óptimas (encontró al menos un puerto abierto y + otro cerrado). Si envía esta información contribuirá al conjunto + de sistemas operativos que Nmap conoce y la herramienta será así + más exacta para todo el mundo.</para> + + <para>La detección de sistema operativo activa, en cualquier caso, + una serie de pruebas que hacen uso de la información que ésta + recoge. Una de estas pruebas es la medición de tiempo de + actividad, que utiliza la opción de marca de tiempo TCP (RFC 1323) + para adivinar cuánto hace que un equipo fue reiniciado. Esta + prueba sólo funciona en sistemas que ofrecen esta + información. Otra prueba que se realiza es la clasificación de + predicción de número de secuencia TCP. Esta prueba mide de forma + aproximada cuánto de difícil es crear una conexión TCP falsa + contra el sistema remoto. Se utiliza cuando se quiere hacer uso de + relaciones de confianza basadas en la dirección IP origen (como es + el caso de rlogin, filtros de cortafuegos, etc.) para ocultar la + fuente de un ataque. Ya no se hace habitualmente este tipo de + malversación pero aún existen muchos equipos que son vulnerables a + ésta. Generalmente es mejor utilizar la clasificación en inglés + como: <quote>worthy challenge</quote> («desafío difícil», N. del + T.) o <quote>trivial joke</quote> («broma fácil», N. del T.). Esta + información sólo se ofrece en la salida normal en el modo + detallado (<option>-v</option>). También se informa de la + generación de números de secuencia IPID cuando se activa el modo + detallado conjuntamente con la opción <option>-O</option>. La + mayoría de los equipos estarán en la clase + <quote>incremental</quote>, lo que significa que incrementan el + campo ID en la cabecera IP para cada paquete que envían. Esto hace + que sean vulnerables a algunos ataques avanzados de obtención de + información y de falseo de dirección.</para> + + + <para>Puede encontrar un trabajo traducido a una docena de idiomas + que detalla el modo de funcionamiento, utilización y ajuste de la + detección de versiones en <ulink + url="https://nmap.org/osdetect/"/>.</para> + + <para>La detección de sistema operativo se activa y controla con + las siguientes opciones:</para> + + <variablelist> + <varlistentry> + <term> + <option>-O</option> (Activa la detección de sistema operativo) + </term> + <listitem> + <para>Tal y como se indica previamente, activa la detección + de sistema operativo. También se puede utilizar la opción + <option>-A</option> para activar la detección de sistema + operativo y de versiones.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-limit</option> (Limitar la detección de + sistema operativo a los objetivos prometedores) + </term> + <listitem> + <para>La detección de sistema operativo funcionará mejor si + se dispone de un puerto TCP abierto y otro cerrado. Defina + esta opción si no quiere que Nmap intente siquiera la + detección de sistema operativo contra sistemas que no + cumplan este criterio. Esta opción puede ahorrar mucho + tiempo, sobre todo si está realizando sondeos + <option>-P0</option> sobre muchos sistemas. Sólo es de + aplicación cuando se ha solicitado la detección de sistema + operativo con la opción <option>-O</option> o + <option>-A</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-guess</option>; <option>--fuzzy</option> + (Aproximar los resultados de la detección de sistema operativo) + </term> + <listitem> + <para>Cuando Nmap no puede detectar un sistema operativo que + encaje perfectamente a veces ofrecerá posibilidades que se + aproximen lo suficiente. Las opciones tienen que aproximarse + mucho al detectado para que Nmap haga esto por + omisión. Cualquiera de estas dos opciones (equivalentes) harán + que Nmap intente aproximar los resultados de una forma más + agresiva.</para> + </listitem> + </varlistentry> + + + </variablelist> + </refsect1> + + <refsect1 id="man-performance"> + <title>Control de tiempo y rendimiento</title> + <para>Una de las prioridades durante el desarrollo de Nmap ha sido + siempre el rendimiento. Un sondeo por omisión (<command + moreinfo="none">nmap + <replaceable>nombre_de_sistema</replaceable></command>) de + cualquier sistema en una red local tarda un quinto de + segundo. Esto es menos que el tiempo que uno tarda en parpadear, + pero se va sumando al tiempo que se tarda cuando se realiza un + sondeo sobre decenas o centenares o miles de equipos. Además, + ciertas opciones de sondeo como puedan ser el sondeo UDP y la + detección de versiones pueden incrementar los tiempos de sondeos + de forma sustancial. También puede afectar a este tiempo algunas + configuraciones de sistemas cortafuegos, especialmente cuando + implementan limitaciones a la tasa de respuestas. Aunque Nmap + trabaja en paralelo y tiene muchos algoritmos avanzados para + acelerar estos sondeos, el usuario tiene el control en última + instancia de cómo funciona éste. Los usuarios con experiencia + pueden definir las órdenes a Nmap cuidadosamente para obtener sólo + la información que necesitan mientras que, al mismo tiempo, + cumplen las limitaciones de tiempo que tengan.</para> + + <para>Algunas técnicas que pueden ayudar a mejorar los tiempos de + sondeo son el limitar el número de pruebas que no sean críticas y + actualizar a la última versión de Nmap (se hacen mejoras de + rendimiento con cierta frecuencia). La optimización de los + parámetros de control de tiempo pueden introducir también + diferencias significativas. Las opciones aplicables se detallan a + continuación.</para> + +<para>Algunas opciones aceptan un parámetro <literal +moreinfo="none">tiempo</literal>. Este valor se especifica, por omisión, en +milisegundos, aunque puede seguirlo de ‘s’, ‘m’, o +‘h’ para indicar segundos, minutos, u horas. Por tanto, el valor +<literal moreinfo="none">900000</literal>, <literal +moreinfo="none">900s</literal>, y <literal moreinfo="none">15m</literal> hacen +exáctamente lo mismo al aplicarse a la opción +<option>--host-timeout</option>.</para> + + <variablelist> + + <varlistentry> + <term> + <option>--min-hostgroup <numsists></option>; + <option>--max-hostgroup + <numsists></option> (Ajustar el tamaño del grupo para los sondeos + paralelos)</term> + <listitem> + <para>Nmap tiene la capacidad de hacer un sondeo de puertos o + versiones sobre múltiples sistemas en paralelo. Hace eso + dividiendo el espacio de direcciones IP en grupos y analizando + un grupo cada vez. Habitualmente es más eficiente utilizar + grupos grandes. La contrapartida es que los resultados por + sistema no se pueden dar hasta que se ha terminado de analizar + todo el grupo. En este caso, si Nmap empezara con un tamaño de + grupo de 50, el usuario no obtendría ningún resultado hasta + que termine con los primeros 50 (excepto + las actualizaciones que envía el modo detallado)</para> + + + <para>Nmap tiene una implementación de compromiso por omisión + para resolver este conflicto. Empieza los sondeos con un + tamaño de grupo inferior a cinco para que los primeros + resultados se obtengan con rapidez y después se incrementa el + tamaño de grupo hasta, como mucho, 1024. El número exacto por omisión + depende de las opciones dadas en la ejecución. Nmap utiliza + grupos más grandes para los sondeos UDP y para aquellos sondeos + TCP con pocos puertos por razones de eficiencia.</para> + + <para>Nmap nunca excede el tamaño indicado cuando éste se + especifica con <option>--max-hostgroup</option>. Si se indica + un valor mínimo en <option>--min-hostgroup</option> Nmap + intentará mantener el tamaño de los grupos por encima de ese + nivel. Nmap puede tener que utilizar grupos más pequeños si no + hay suficientes sistemas objetivo en una interfaz dada para + cumplir el mínimo especificado. Se pueden especificar ambos + valores para mantener el tamaño de grupo dentro de un rango + específico, aunque ésto es poco habitual.</para> + + <para>El uso principal de esta opción es el de especificar el + tamaño de grupo mínimo para que los sondeos se ejecuten más + rápidamente. 256 es un valor habitual para sondear la red + en trozos del tamaño de una clase C. Si se trata de un sondeo + con muchos puertos no sirve de mucho incrementar ese número. Si + los sondeos son de pocos puertos puede ayudar utilizar un tamaño + de grupo de 2048 o más elementos.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-parallelism <numsondas></option>; + <option>--max-parallelism + <numsondas></option> (Ajustar el número de sondas enviadas en paralelo)</term> + <listitem> + +<para>Esta opción controla el número de sondas activas para un grupo +de sistemas. Éstas se utilizan para los sondeos de puertos y el descubrimiento +de equipos. Por omisión, Nmap calcula un valor ideal del número de sondas a enviar en paralelo +basado en el rendimiento de la red. Si se pierden paquetes Nmap reduce +este valor para ir más lento y permitir menos sondas activas. El valor +ideal de las sondas se incrementará a medida que la red muestre que +puede utilizarse de nuevo. Estas opciones ponen un valor mínimo o +máximo a esa variable. Por omisión, el valor ideal +puede ser inferior a 1 si la red no es fiable e incrementarse a varios +cientos si ésta funciona correctamente.</para> + +<para>Lo más habitual es fijar el valor +<option>--min-parallelism</option> a un número mayor +que uno para que los sondeos contra sistemas o +redes poco eficientes sean rápidos. Esta es una opción que tiene sus +riesgos, ya que si se define un valor demasiado elevado se +puede reducir la precisión del sondeo. Si se fija también se impide a Nmap +controlar el paralelismo de forma dinámica basándose en las +condiciones de la red. Un valor razonable puede ser diez, aunque sólo +debe ajustarse como último recurso.</para> + +<para>A veces se fija la opción <option>--max-parallelism</option> a +uno para evitar que Nmap envíe más de una sonda a la vez a los sistemas. Esto +puede ser útil conjuntamente con <option>--scan-delay</option> (del +que se habla más adelante), aunque habitualmente es suficiente con +utilizar este último por sí sólo.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-rtt-timeout <tiempo></option>, + <option>--max-rtt-timeout <tiempo></option>, + <option>--initial-rtt-timeout + <tiempo></option> (Ajustar expiración de sondas)</term> + <listitem> + +<para>Nmap mantiene un valor de expiración en ejecución para saber +cuánto tiempo debe esperar para recibir la respuesta a una sonda o +para retransmitir la sonda. Este valor está calculado en base a los +tiempos de respuesta de las sondas previamente enviadas. El valor de +expiración puede llegar a ser de varios segundos si se demuestra que la +latencia de la red es significativa y variable. También empieza en un +valor conservador (alto) y puede mantenerse en ese valor durante un +tiempo cuando Nmap sondee equipos que no respondan.</para> + +<para>Se pueden +recortar los tiempos de análisis de forma apreciable si se especifican +valores para <option>--max-rtt-timeout</option> y +<option>--initial-rtt-timeout</option> por debajo de los de por +omisión. Esto es especialmente verdadero en sondeos +en los que no se envían paquetes ICMP (<option>-P0</option>) y en +aquellos realizados en redes con mucho filtrado. Sin embargo, no se debería +establecer a valores muy agresivos. El sondeo puede +acabar tardando más de lo esperado si se especifica un valor bajo que +hace que las sondas expiren y se retransmitan mientras está llegando +la respuesta.</para> + +<para>En el caso de que todos los sistemas estén en una red local al +equipo que sondea, un valor razonablemente agresivo para +<option>--max-rtt-timeout</option> es 100 milisegundos. Si se está +rutando, primero envíe un ping a un equipo en la red con la +herramienta ICMP ping, o con una herramienta para construir paquetes a +medida como hping2 dado que es más probable que atraviese cualquier +cortafuegos. Consulte el tiempo máximo de la ronda (tiempo entre solicitud y respuesta) después de haber +enviado unos diez paquetes. Una vez obtenido ese valor puede +utilizarlo el doble de éste para <option>--initial-rtt-timeout</option> y +triplicarlo o cuadruplicarlo para <option>--max-rtt-timeout</option>. +Yo no configuro habitualmente el valor máximo rtt por debajo de 100ms, +independientemente del valor que den los ping. Ni tampoco lo pongo por +encima de 1000ms.</para> + + +<para>La opción <option>--min-rtt-timeout</option> se utiliza rara vez, +aunque puede ser útil cuando la red es tan poco fiable que incluso los +valores por omisión son demasiado agresivos. Dado que Nmap sólo reduce +el tiempo al mínimo cuando la red parece fiable este valor es poco +habitual y debería reportarse como una errata en la lista de correo +nmap-dev.</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>--max-retries <reintentos></option> (Especifica + el número máximo de sondas de puertos que se retransmiten) + </term> + <listitem> + + <para>Un puerto podría estar filtrado si Nmap no recibe ninguna + respuesta a una sonda de análisis de puertos. O puede que la sonda o la + respuesta a ésta se perdiera en la red. También puede darse el caso de + que el sistema objetivo tenga una limitación de tasa de tráfico que + haga que la respuesta quede bloqueada temporalmente. Así, Nmap lo + intenta de nuevo retransmitiendo la sonda inicial. Puede que lo haga + más de una vez, si Nmap detecta que hay problemas en el funcionamiento + de la red, antes de abandonar los sondeos de un puerto. Cuando el + rendimiento es crítico, se pueden acelerar los sondeos limitando el + número de retransmisiones permitidas. Puede especificar + <option>--max-retries 0</option> para que no se haga ninguna + retransmisión, aunque no se recomienda. + </para> + + <para>El valor por omisión (cuando no hay una plantilla + <option>-T</option>) es permitir las retransmisiones. Nmap + generalmente sólo hará una retransmisión si la red parece fiable y el + sistema objetivo no tiene una limitación de tasa de tráfico. Es por + esto por lo que la mayoría de los sondeos no se verán afectados si + reduce el valor de <option>--max-retries</option> a un valor pequeño, + como pudiera ser tres. Estos valores pueden hacer que los sondeos a + equipos lentos (limitados en tasa) sean más rápidos. Puede que pierda + información cuando Nmap dé por finalizado el análisis de un puerto + antes de tiempo, aunque eso puede ser mejor que hacer que la expire el + <option>--host-timeout</option> y se pierda toda la información del + objetivo.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--host-timeout <tiempo></option> (Abandona + equipos objetivo lentos) + </term> + <listitem> + +<para>Hay algunos equipos en los que simplemente se tarda +<emphasis>demasiado</emphasis> en sondearlos. Esto puede deberse a +hardware de red de bajo rendimiento o poco fiable o bien a software, +limitaciones de tasas de paquetes o un cortafuegos demasiado +restrictivo. Puede llegar a darse que Nmap dedica la mayor parte del +tiempo de análisis en sondear un porcentaje reducido de sistemas. A +veces es mejor reducir las bajas y saltarse esos sistemas +inicialmente. Esto puede hacerse con la opción +<option>--host-timeout</option>, indicando el tiempo máximo +que está dispuesto a esperar. +Yo especifico habitualmente <literal moreinfo="none">30m</literal> para +asegurarse de que Nmap no gasta más de media hora en un solo sistema. +Tenga en cuenta que Nmap puede estar sondeando otros equipos +al mismo tiempo durante esa media hora, por lo que no se pierde todo +ese tiempo. Cualquier sistema que expire se salta. No se imprimirá la +tabla de puertos, la detección de sistema operativo o la detección de +versiones para ese sistema.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scan-delay <tiempo></option>; + <option>--max-scan-delay + <tiempo></option> (Ajusta la demora entre sondas)</term> + <listitem> + +<para>Esta opción hace que Nmap espere al menos el tiempo +indicado entre cada sonda enviada a un sistema +determinado. +Esto es muy útil cuando se quiere limitar la tasa de +tráfico. Los sistemas Solaris (entre otros) responderán a paquetes de +sondeos UDP con sólo un mensaje ICMP por segundo. Enviar más que eso +con Nmap sería perder el tiempo. Un valor de <literal moreinfo="none">1s</literal> para +<option>--scan-delay</option> hará que Nmap se mantenga a esa +velocidad reducida. Nmap intenta detectar limitaciones de tasa y +ajustar la demora del sondeo como considere necesario, pero a veces +viene bien especificarlo de forma explícita si ya sabe qué valor es +mejor.</para> + +<para>El sondeo se ralentiza de forma drástica cuando Nmap incrementa el valor +del tiempo de espera para poder tratar las limitaciones de tasa. Puede +utilizar la opción <option>--max-scan-delay</option> para indicar el tiempo +máximo de espera que permitirá Nmap. Si especifica un valor muy pequeño tendrá +retransmisiones inútiles de paquetes y posiblemente no detecte puertos para los +que el objetivo implemente tasas de tráfico estrictas.</para> + +<para>También se puede usar <option>--scan-delay</option> para evitar +sistemas de detección y prevención de intrusos (IDS/IPS) basados en +umbrales.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-T + <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane></option> + (Fija una plantilla de tiempos) + </term> + <listitem> + +<para>Algunas personas encuentran confusos los controles de grano fino +explicados previamente, aunque éstos sean muy potentes y +efectivos. Además, se puede a veces tardar más tiempo en encontrar los +valores más apropiados que en hacer el análisis que se quiere +optimizar. Nmap ofrece un acercamiento más sencillo, basado en seis +plantillas de tiempos. Puede especificar cualquiera de éstas con la +opción +<option>-T</option> seguido de un número o su nombre. +Los nombre de las plantillas son: paranoico (0), sigiloso (1), amable +(2), normal (3), agresivo (4) y loco (5) (respectivamente "paranoid", +"sneaky", "polite", "normal", "aggressive" e "insane", N. de. T.). +Las primeras dos se utilizan para evadir IDS. El modo amable reduce el +sondeo para que éste utilice menos ancho de banda y menos recursos de +los sistemas analizados. El modo normal es el valor por omisión, así +que la opción <option>-T3</option> no hace nada realmente. +El modo agresivo hace que los sondeos sean más rápidos al asumir que +está en una red razonablemente más rápida y fiable. En modo loco asume +que está en una red extraordinariamente rápida o que está dispuesto a +sacrificar fiabilidad por velocidad.</para> + +<para>Estas plantillas permiten que el usuario especifique cuan +agresivo quiere ser, al mismo tiempo que deja que sea Nmap el que +escoja los valores exactos de tiempos. Las plantillas hacen también +algunos ajustes menores de velocidad para los cuales no existe aún una +opción de control de grano fino. Por ejemplo, +<option>-T4</option> prohíbe que la expiración en sondeos dinámicos +exceda los 10ms para puertos TCP y <option>-T5</option> limita ese +valor a 5 milisegundos. Las plantillas pueden utilizarse combinadas +con controles de grano fino, siempre que se especifique primero la +plantilla. Si no lo hace así los valores especificados por la +plantilla modificarán los valores que defina como opción. Le +recomiendo utilizar <option>-T4</option> cuando sondee redes +razonablemente modernas y fiables. Mantenga esa opción al principio de +la línea de órdenes aún cuando especifique otras opciones de control +de grano fino para poder beneficiarse de las optimizaciones menores +que activa.</para> + +<para>Le recomiendo que empiece siempre con <option>-T4</option> si +está utilizando una conexión de banda ancha o conexión Ethernet +decente. Algunas personas adoran la opción <option>-T5</option> aunque +es demasiado agresiva para mi gusto. Otras personas especifican la +opción <option>-T2</option> porque piensan que es menos probable que +bloqueen sistemas o porque se consideran a sí mismos amables en +general. Muchas veces no se dan cuenta de lo lenta que <option>-T +Polite</option> es realmente. Su sondeo puede llegar a tardar diez +veces más que un sondeo por omisión. Dado que las +caídas de sistemas y problemas de ancho de banda son raros con las +opciones de tiempos por omisión (<option>-T3</option>), lo recomiendo +habitualmente para las personas cuidadosas. Para reducir estos +problemas es más efectivo omitir la detección de versiones que jugar +con los valores de tiempos.</para> + +<para>Mientras que puede ser útil evitar alarmas de IDS con +<option>-T0</option> y <option>-T1</option>, éste tardará mucho más +tiempo para sondear miles de sistemas o puertos. Para este tipo de +sondeos puede que prefiera fijar los valores exactos de tiempos que +necesita antes que utilizar los valores predefinidos para +<option>-T0</option> y <option>-T1</option>.</para> + +<para>Los efectos principales del uso de <option>T0</option> es la +serialización de los sondeos de forma que sólo se sondea un puerto +cada vez, y se espera cinco minutos antes de enviar cada sonda. Las +opciones <option>T1</option> y <option>T2</option> son similares pero +sólo esperan 15 y 0.4 segundos entre sondas, respectivamente. El +comportamiento por omisión de Nmap es <option>T3</option>, que incluye +sondeos en paralelo. <option>T4</option> es equivalente a especificar +<option>--max-rtt-timeout 1250 --initial-rtt-timeout 500 --max-retries 6</option> y +fija el valor máximo para las demoras de sondeos TCP a 10 +milisegundos. <option>T5</option> hace lo mismo que +<option>--max-rtt-timeout 300 --min-rtt-timeout 50 +--initial-rtt-timeout 250 --max-retries 2 --host-timeout 15m</option> así como +definir el valor máximo para las demoras de sondeos TCP a 5ms.</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-bypass-firewalls-ids"> + <title>Evasión de cortafuegos/IDS y falsificación</title> + +<para>Muchos pioneros de Internet habían previsto una red global abierta +con un espacio de direcciones IP universal que permitiese conexiones +virtuales entre dos nodos cualquiera. Esto permitiría a los equipos actuar +como verdaderos iguales, sirviendo y recuperando información el +uno del otro. La gente podría acceder a todos los sistemas de su casa desde +el trabajo, cambiando las propiedades del control del clima o desbloqueando +puertas. Esta visión de una conectividad universal fue sofocada por +la escasez del espacio de direcciones y los problemas de seguridad. Al +comienzo de la década de los años 90, las organizaciones empezaron a replegar +cortafuegos con el propósito de reducir la conectividad. Se acordonaron redes +enormes para protegerlas de la Internet no filtrada con +pasarelas («proxies», N. del T.) de aplicación, sistemas de traducción +de direcciones de red y filtros de paquetes. Del flujo sin restricciones +de la información se pasó a una regulación estricta de los canales de +comunicación aprobados y del contenido que pasa por ellos.</para> + +<para>Los filtros de red como los cortafuegos pueden hacer muy +difícil el análisis de una red. Esto no va a ser más fácil en el futuro, +ya que uno de los objetivos de estos dispositivos es generalmente limitar +el reconocimiento casual de la red. En cualquier caso, Nmap ofrece +varias funcionalidades para ayudar a entender estas redes complejas, y +que también sirven para verificar que los filtros funcionan como se +espera de ellos. Incluso tiene mecanismos para saltarse las defensas +que no hayan sido implementadas del todo correctamente. Uno de los mejores +métodos de entender la posición de la seguridad de su red es intentar +comprometerla. Empiece a pensar como un atacante, e intenta +utilizar las técnicas de esta sección contra sus propias redes. Lance +un sondeo de rebote FTP, un sondeo pasivo, un ataque de fragmentación, +o intente realizar un túnel desde una de sus propias pasarelas.</para> + +<para>Las compañías, además de restringir la actividad de red, están +monitorizando cada vez más el tráfico con sistemas de detección de intrusos (IDS, «Intrusion Detection Systems», N. del T.). Todos los IDS principales vienen preinstalados con reglas diseñadas para detectar sondeos de Nmap +porque, a veces, se realizan sondeos previos a un ataque. Muchos de estos productos han +mutado recientemente para convertirse en sistemas de +<emphasis>prevención</emphasis> de intrusiones (IPS) que bloquean activamente +el tráfico reconocido como maligno. Desafortunadamente para los administradores +de redes y para los fabricantes de IDS es muy difícil detectar las malas intenciones +analizando los datos de los paquetes. Los atacantes con +paciencia, habilidad y con la ayuda de ciertas opciones de Nmap pueden, generalmente, +esquivar el análisis de los IDS sin ser detectados. +Mientras tanto, los administradores deben lidiar con un alto número de falsos positivos +debido a que algunas actividades inocentes se diagnostican erróneamente y generan +alarmas o se bloquean.</para> + + +<para>Algunas personas sugieren que Nmap no debería ofrecer +funcionalidades de evasión de cortafuegos o para esquivar los IDS, +argumentando que es igual de probable que las funcionalidades las +utilicen los atacantes como que las utilicen los administradores para +mejorar la seguridad. El problema con esta forma de pensar es que los +atacantes van a utilizar estos métodos de todas formas: encontrarían +otra herramienta para hacerlo o parchearían a Nmap para añadírsela. Al +mismo tiempo, los administradores tendrían muchos más problemas para +hacer su trabajo. Es mucho mejor defensa utilizar servidores FTP +modernos y parcheados que intentar prevenir la distribución de +herramientas que permitan la implementación de ataques de rebote +FTP.</para> + +<para>No hay ninguna herramienta mágica (u opción de Nmap) que permita +detectar y evitar cortafuegos y sistemas IDS. Esto requiere habilidad +y experiencia. Un tutorial va más allá del alcance de esta guía de +referencia, que sólo lista las opciones relevantes y describe lo que +hacen.</para> + +<variablelist> + <varlistentry> + <term> + <option>-f</option> (fragmentar los paquetes); + <option>--mtu</option> (utilizar el MTU especificado) + </term> + + <listitem> + <para>La opción <option>-f</option> hace que el sondeo + solicitado (incluyendo los sondeos ping) utilicen paquetes + IP fragmentados pequeños. La idea es dividir la cabecera del + paquete TCP entre varios paquetes para hacer más difícil que + los filtros de paquetes, sistemas de detección de intrusos y + otras molestias detecten lo que se está haciendo. ¡Tenga + cuidado con esta opción! Algunos programas tienen problemas + para manejar estos paquetes tan pequeños. El viejo sniffer + llamado Sniffit da un fallo de segmentación inmediatamente + después de recibir el primero de estos pequeños + fragmentos. Especifica esta opción una sola vez y Nmap + dividirá los paquetes en ocho bytes o menos después de la + cabecera de IP. De esta forma, una cabecera TCP de veinte + bytes se dividiría en 3 paquetes. Dos con ocho bytes de + cabecera TCP y uno con los últimos ocho. Obviamente, cada + fragmento tiene su propia cabecera IP. Especifica la opción + <option>-f</option> otra vez para utilizar fragmentos de + dieciséis bytes (reduciendo la cantidad de fragmentos). O + puedes especificar tu propio tamaño con la opción + <option>--mtu</option>. No utilice la opción <option>-f</option> si + utiliza <option>--mtu</option>. El tamaño debe ser múltiplo + de ocho. Aunque la utilización de paquetes fragmentados no + le ayudará a saltar los filtros de paquetes y cortafuegos + que encolen todos los fragmentos IP (como cuando se utiliza + la opción CONFIG_IP_ALWAYS_DEFRAG del núcleo de Linux), + algunas redes no pueden tolerar la pérdida de rendimiento + que esto produce y deshabilitan esa opción. Otros no pueden + habilitar esta opción porque los fragmentos pueden tomar + distintas rutas para entrar en su red. Algunos sistemas + defragmentan los paquetes salientes en el núcleo. Un ejemplo + de ésto es Linux con el módulo de seguimiento de conexiones + de iptables. Realice un sondeo con un programa de captura de + tráfico, como Ethereal, para asegurar que los paquetes que + se envían están fragmentándose. Intente utilizar la opción + <option>--send-eth</option>, si su sistema operativo le está + causando problemas, para saltarse la capa IP y enviar tramas + directamente a la capa Ethernet en crudo.</para> </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-D <señuelo1 [,señuelo2][,ME],...></option> + (Esconde un sondeo con señuelos) + </term> + <listitem> + <para>Realiza un sondeo con señuelos. Esto hace creer que + el/los equipo/s que utilice como señuelos están también + haciendo un sondeo de la red. De esta manera sus IDS pueden + llegar a informar de que se están realizando de 5 a 10 + sondeos de puertos desde distintas direcciones IP, pero no + sabrán qué dirección IP está realizando el análisis y cuáles + son señuelos inocentes. Aunque esta técnica puede + vencerse mediante el seguimiento del camino de los encaminadores, + descarte de respuesta («response-dropping», N. del T.), y + otros mecanismos activos, generalmente es una técnica + efectiva para esconder su dirección IP.</para> + + <para>Se debe separar cada equipo de distracción mediante + comas, y puede utilizar <literal + moreinfo="none">ME</literal> («YO», N. del T.) como uno de + los señuelos para representar la posición de su verdadera + dirección IP. Si pone <literal moreinfo="none">ME</literal> + en la sexta posición o superior es probable que algunos + detectores de sondeos de puertos habituales (como el + excelente scanlogd de Solar Designer) ni siquiera muestren + su dirección IP. Si no utiliza <literal + moreinfo="none">ME</literal>, Nmap le pondrá en una posición + aleatoria.</para> + + <para>Tenga en cuenta que los equipos que utilice como + distracción deberían estar conectados o puede que + accidentalmente causes un ataque de inundación SYN a sus + objetivos. Además, sería bastante sencillo determinar qué + equipo está realmente haciendo el sondeo si sólo uno está + disponible en la red. Puede que quiera utilizar direcciones + IP en lugar de nombres (de manera que no aparezca en los + registros del servidor de nombres de los sistemas utilizados + como señuelo).</para> + + <para>Se utilizan los señuelos tanto para el sondeo de ping + inicial (si se utiliza ICMP, SYN, ACK, o cualquier otro) + como durante la fase de sondeo. También se utilizan los + señuelos durante la detección de sistema operativo + (<option>-O</option>). Los señuelos no funcionarán con la + detección de versión o el sondeo TCP connect().</para> + + <para>Vale la pena tener en cuenta que utilizar demasiados + señuelos puede ralentizar el sondeo y potencialmente hacerlo + menos exacto. Además, algunos proveedores de acceso a + Internet filtrarán los paquetes falsificados, aunque hay + muchos que no lo hacen.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-S <Dirección_IP></option> (Falsifica la dirección de origen) + </term> + <listitem> + + <para>Nmap puede que no sea capaz de determinar tu dirección + IP en algunas ocasiones (Nmap se lo dirá si pasa). En esta + situación, puede utilizar la opción <option>-S</option> + con la dirección IP de la interfaz a través de la cual + quieres enviar los paquetes.</para> + + <para>Otro uso alternativo de esta opción es la de + falsificar la dirección para que los objetivos del análisis + piensen que <emphasis>algún otro</emphasis> los está + sondeando. ¡Imagine una compañía a los que les sondea + repetidamente la competencia! Generalmente es necesaria la + opción <option>-e</option> si lo quiere utilizar así, y + también sería recomendable la opción + <option>-P0</option>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-e <interfaz></option> (Utilizar la interfaz especificada) + </term> + <listitem> + <para>Indica a Nmap a través de qué interfaz debe enviar y + recibir los paquetes. Nmap debería detectar esto + automáticamente, pero se lo dirá si no.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--source-port <número_de_puerto>;</option> + <option>-g <número_de_puerto></option> (Falsificar el puerto de origen) + </term> + <listitem> + + <para>Un error de configuración sorprendentemente común es + confiar en el tráfico basándose únicamente en el número de + puerto origen. Es fácil entender por qué pasa esto. Un + administrador que está configurando su nuevo y flamante + cortafuegos, recibe de repente quejas de todos sus usuarios + desagradecidos que le dicen que sus aplicaciones han dejado de + funcionar. En particular, puede romperse el DNS porque las + respuestas UDP de DNS de servidores externos ya no pueden + entrar en la red. Otro ejemplo habitual es el caso del FTP. En + una transferencia activa de FTP, el servidor remoto intenta + establecer una conexión de vuelta con el cliente para + transferir el archivo solicitado.</para> + + <para>Existen soluciones seguras para estos problemas, + como las pasarelas en el nivel de aplicación o + los módulos de cortafuegos que realizan un análisis del + protocolo. Desgraciadamente, también hay soluciones más fáciles + y menos seguras. Al darse cuenta que las respuestas de DNS + vienen del puerto 53 y que las conexiones activas de FTP + vienen del puerto 20, muchos administradores caen en la trampa + de configurar su sistema de filtrado para permitir el tráfico + entrante desde estos puertos. Generalmente asumen que ningún + atacante se dará cuenta de estos agujeros en el cortafuegos ni + los aprovechará. En otros casos, los administradores consideran + esto una solución a corto plazo hasta que puedan implementar + una solución más segura. Y después se olvidan de hacer la + mejora de la seguridad.</para> + + <para>Los administradores de red con mucho trabajo no son los + únicos que caen en esta trampa. Muchos productos se lanzan al + mercado con estas reglas inseguras. Hasta Microsoft lo ha + hecho. Los filtros de IPsec que se preinstalan con Windows + 2000 y Windows XP contienen una regla implícita que permite + todo el tráfico TCP o UDP desde el puerto 88 (Kerberos). Otro + caso conocido es el de las versiones de Zone Alarm Firewall + Personal que, hasta la versión 2.1.25, permitían cualquier + paquete entrante UDP desde el puerto 53 (DNS) o 67 + (DHCP).</para> + + <para>Nmap ofrece las opciones <option>-g</option> y + <option>--source-port</option> (son equivalentes) para + aprovecharse de estas debilidades. Simplemente indique el + número de puerto y Nmap enviará los paquetes desde ese puerto + cuando sea posible. Nmap debe utilizar distintos números de + puerto para ciertos tipos de prueba en la detección de sistema + operativo para que funcionen correctamente, y las solicitudes + de DNS ignoran la opción <option>--source-port</option> porque + Nmap depende de las librerías del sistema para hacerlas. Esta + opción se soporta completamente en muchos sondeos TCP, + incluyendo el sondeo SYN, al igual que los sondeos UDP.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--data-length <número></option> (Añadir datos aleatorios a los paquetes enviados) + </term> + <listitem> + + <para>Normalmente Nmap envía paquetes mínimos que contienen + sólo la cabecera. Así, los paquetes TCP que envía son + generalmente de 40 bytes y las solicitudes echo de ICMP son + de tan sólo 28. Esta opción le dice a Nmap que añada el + número indicado de bytes aleatorios a la mayoría de los + paquetes que envía. Esta opción no afecta a los paquetes + enviados para la detección de sistema operativo + (<option>-O</option>), pero sí a la mayoría de los paquetes + de ping y de sondeo de puertos. Esta opción hace que el + sondeo sea un poco más lento, pero también que el sondeo sea + un poco más difícil de detectar.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--ttl <valor></option> (Indica el valor del campo tiempo-de-vida de la cabecera IP) + </term> + <listitem> + + <para>Establece el campo tiempo-de-vida («time-to-live», + N. del T.) en la cabecera de los paquetes IPv4 al valor + especificado.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--randomize-hosts</option> (Mezclar aleatoriamente la lista de equipos a sondear) + </term> + <listitem> + <para>Indica a Nmap que debe mezclar aleatoriamente cada + grupo de hasta 8096 equipos antes de hacer un sondeo. Esto + puede hacer que el sondeo sea menos obvio para algunos + sistemas de monitorización de la red, especialmente cuando + se combina con las opciones que ralentizan el sondeo. Si + quiere mezclar aleatoriamente listas más grandes, incremente + el valor de la constante PING_GROUP_SZ en <filename + moreinfo="none">nmap.h</filename> y recompile el programa. + Una solución alternativa es generar la lista de sistemas a + sondear con un sondeo de lista (<option>-sL -n -oN + <replaceable>fichero</replaceable></option>), ordenarlo + aleatoriamente con un script de Perl, y luego darle a Nmap + la lista entera con la opción <option>-iL</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--spoof-mac <dirección MAC, prefijo o nombre del fabricante></option> (Falsifica la dirección MAC) + </term> + <listitem> + + <para>Solicita a Nmap que utilice la MAC dada para todas las + tramas de Ethernet enviadas. Esta opción activa + implícitamente la opción <option>--send-eth</option> para + asegurar que Nmap envía los paquetes del nivel Ethernet. La + MAC dada puede tener varios formatos. Nmap elegirá una MAC + completamente aleatoria para la sesión si se utiliza el + valor <quote>0</quote>. Nmap utilizará la MAC indicada si + el parámetro es un número par de dígitos hexadecimales + (separando opcionalmente cada dos dígitos con dos puntos). + Nmap rellenará los 6 bytes restantes con + valores aleatorios si se dan menos de 12 dígitos + hexadecimales. Si el argumento no es ni 0 ni un conjunto de + dígitos hexadecimales, Nmap mirará en <filename + moreinfo="none">nmap-mac-prefixes</filename> para encontrar + un fabricante cuyo nombre coincida con el parámetro + utilizado (en esta búsqueda no diferenciará entre mayúsculas + y minúsculas). Si se encuentra algún fabricante, Nmap + utilizará el OUI del fabricante (prefijo de 3 bytes) y + rellenará los otros 3 bytes aleatoriamente. Ejemplos de + argumentos <option>--spoof-mac</option> son: <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>, y <literal + moreinfo="none">Cisco</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--badsum</option> (Envía paquetes con sumas de comprobación TCP/UDP erróneas) + </term> + <listitem> + <para>Esta opción le indica a Nmap que debe generar sumas de + comprobación inválidas para los paquetes que se envíen a los equipos + objetivos. Cualquier respuesta que se reciba vendrá de un cortafuegos + o un IDS que no comprobó la suma, dado que la mayoría de las pilas IP + descartan estos paquetes. Para obtener más información de esta + técnica puede consultar <ulink + url="https://nmap.org/p60-12.txt"/></para> + </listitem> + </varlistentry> + + + </variablelist> + + </refsect1> + + <refsect1 id="man-output"> + <title>Salida</title> + + <para>La utilidad de una herramienta de seguridad está limitada por + la salida que genera. De poco sirven pruebas y algoritmos + complejos si luego no se presentan de una forma organizada y + comprensible. Dada la cantidad de formas en las que puede + utilizarse Nmap, tanto por personas como por otros programas, no es + posible complacer a todos con un único formato. Por ello Nmap + ofrece varios formatos, incluyendo el modo interactivo para que + los humanos lo lean directamente y un formato XML para que sea + interpretado por otros programas.</para> + + <para>Además de ofrecer distintos formatos de salida, Nmap ofrece + opciones adicionales para controlar cuanta información de más se + muestra en la salida, así como opciones para controlar los + mensajes de depuración que se muestran. Los tipos de salida pueden + enviarse a la salida estándar o a algún archivo especificando su + nombre. Nmap puede añadir información al archivo o + sobreescribirlo. Los formatos de salida pueden utilizarse también + para retomar un sondeo que se haya interrumpido.</para> + + <para>Nmap puede generar la salida en cinco formatos distintos. El + formato por omisión es el llamado <literal moreinfo="none">salida + interactiva</literal>, y se envía a la salida estándar («stdout»). + También está la <literal moreinfo="none">salida normal</literal>, + que es similar a la salida <literal + moreinfo="none">interactiva</literal> salvo que muestra menos + información de ejecución y menos advertencias, ya que se espera que + se analice una vez que el sondeo haya terminado en lugar de ser + analizada interactivamente.</para> + + <para>La salida XML es uno de los formatos de salida más + importantes, ya que puede convertirse a HTML, los programas (como + la interfaz de usuario de Nmap) pueden interpretarla fácilmente o + puede importarse a una base de datos.</para> + + <para>Los dos tipos de salida restantes son la sencilla <literal + moreinfo="none">salida para grep</literal> (o «grepeable») que incluye la mayoría + de la información de un sistema analizado en una sola línea, y la + <literal moreinfo="none">s4L1d4 sCRiPt KiDDi3</literal> para + usuarios que se consideran a sí mismos |<-r4d.</para> + + <para>Aunque se utiliza la salida interactiva por omisión y no + tiene ninguna opción de la línea de órdenes, los demás formatos + utilizan la misma sintaxis. Toman un solo argumento, que es el + archivo donde se guardarán los resultados. Pueden especificarse + múltiples formatos al mismo tiempo, pero sólo puede especificar el + mismo formato una vez. Por ejemplo, puede querer guardar la salida + normal para su propia visualización mientras se guarda la + información del mismo sondeo en formato XML para realizar un + análisis posterior con un programa. Para hacer ésto debe utilizar + las opciones <option>-oX misondeo.xml -oN + misondeo.nmap</option>. Se recomienda utilizar nombres más + descriptivos, si bien este capítulo utiliza nombres sencillos como + <literal moreinfo="none">misondeo.xml</literal> por razones de + brevedad. Los nombres elegidos son una cuestión de preferencia + personal. Yo utilizo nombres largos que incluyen la fecha del + análisis y una palabra o dos describiendo el sondeo, dentro de un + directorio con el nombre de la empresa que estoy + analizando.</para> + + <para>Nmap seguirá imprimiendo la salida interactiva en «stdout» + como lo hace habitualmente aunque se guarden en archivos la salida + con estas opciones. Por ejemplo, la orden <command + moreinfo="none">nmap -oX misondeo.xml destino</command> imprime + XML en <filename moreinfo="none">misondeo.xml</filename> y llena + la salida estándar con los mismos resultados interactivos que + habría impreso si no se hubiese especificado la opción + <option>-oX</option>. Puedes cambiar este comportamiento dando un guión como + argumento a una de las opciones de salida. Esto hace que Nmap + desactive la salida interactiva y que imprima en su lugar los + resultados en el formato especificado en la salida estándar. Con + lo que la orden <command moreinfo="none">nmap -oX - + destino</command> enviará únicamente la salida XML a la salida + estándar («stdout»). Los errores graves seguirán presentándose, + posiblemente, en la salida normal de error, «stderr».</para> + + <para>A diferencia de algunos argumentos de Nmap, es obligatorio + separar con un espacio la opción de salida (como + <option>-oX</option>) y el nombre del archivo o el guión. Si los + omite y pone el argumento como <option>-oG-</option> o + <option>-oXsondeo.xml</option>, una funcionalidad de + compatibilidad con versiones anteriores hará que se cree una + <emphasis>salida normal</emphasis> en los ficheros llamados + <filename moreinfo="none">G-</filename> y <filename + moreinfo="none">Xscan.xml</filename> respectivamente.</para> + + <para>Nmap también ofrece opciones para controlar la información + extra que se ofrece sobre el sondeo y añadirlo a los archivos de + salida en lugar de sobreescribirlos. Todas estas opciones se + describen a continuación.</para> + +<variablelist><title>Formatos de salida de Nmap</title> + <varlistentry> + <term> + <option>-oN <filespec></option> (Salida normal)</term> + <listitem> + <para>Solicita que la <literal moreinfo="none">salida normal</literal> sea + redirigida al archivo especificado. Como se ha dicho anteriormente, esto + difiere un poco + de la <literal moreinfo="none">salida interactiva</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oX <filespec></option> (salida XML)</term> + <listitem> + + <para>Solicita que la <literal moreinfo="none">salida en XML</literal> se + redirigida al archivo especificado. Nmap incluye un DTD + que pueden utilizar los intérpretes de XML para validar + la salida XML. Aunque está dirigida a que la utilicen programas, + también puede ayudar a que una persona interprete la salida de Nmap. + El DTD define los elementos legales del formato, y generalmente + enumera los atributos y valores que pueden tener. La última versión + está siempre disponible en + <ulink url="https://nmap.org/data/nmap.dtd"/>.</para> + + <para>XML ofrece un formato estable que es fácilmente + interpretado por cualquier programa. Hay intérpretes libres + de XML para los lenguajes de ordenador más importantes, + incluyendo C/C++, Perl, Python, y Java. La gente ha escrito + librerías para la mayoría de estos lenguajes que manejan + específicamente la salida de Nmap. Por ejemplo <ulink + url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> + y <ulink + url="http://www.nmapparser.com">Nmap::Parser</ulink> en el + CPAN de Perl. XML es el formato preferente en la mayoría de + los casos en que una aplicación no trivial quiere utilizar + Nmap.</para> + + <para>La salida de XML hace referencia a la hoja de estilo + XSL que puede utilizarse para formatear los resultados en HTML. La forma + más fácil de utilizarla es simplemente cargar la salida XML en un navegador web + como Firefox o IE. Por omisión, ésto solo funcionará en el equipo en el que + ejecutó Nmap (o uno configurado igual que dicho equipo) + ya que la ruta de + <filename moreinfo="none">nmap.xsl</filename> se incluye directamente + dentro del archivo. + Puede utilizar la opción <option>--webxml</option> o + <option>--stylesheet</option> para crear un XML portable que + pueda mostrarse como HTML en cualquier ordenador conectado a la web.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oS <filespec></option> (SaLiDa ScRipT KIdd|3)</term> + <listitem> + + <para>La salida «script kiddie» es como la salida + interactiva, excepto que se post-procesa para que la vean + mejor los «l33t HaXXorZ» a los que antes no les gustaba Nmap + por su uso consistente de mayúsculas y minúsculas. Aquellos + que no tengan sentido del humor deberían tomar nota de que + esta opción es una broma sobre los «script kiddies» antes de + criticarme por <quote>ayudarlos</quote>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oG <filespec></option> (Salida «grepeable»)</term> + <listitem> + + <para>Este formato de salida se trata el último porque está + obsoleto. La salida en formato XML es mucho más poderosa, y + es igual de conveniente para los usuarios experimentados. XML + es un estándar para el que se dispone de docenas de + intérpretes, mientras que la salida para grep es + un «hack» propio. XML puede extenderse para soportar nuevas + funcionalidades de Nmap tan pronto como se liberen, + mientras que en general tengo que omitir estas funcionalidades + de la salida para grep por no tener un lugar donde + ponerlas.</para> + + <para>Sin embargo, la salida para grep es todavía bastante + popular. Es simplemente un formato que lista cada sistema en una + línea y que puede ser fácilmente tratado con herramientas + estándar de UNIX como grep, awk, cut, sed, diff y + Perl. Incluso yo la utilizo para pruebas rápidas que hago + desde la línea de órdenes. Sólo hace falta un grep para + identificar todos los sistemas con el puerto de ssh abierto o + que ejecuten Solaris, enviando la salida a través de un + conector a awk o cut para mostrar los campos + deseados.</para> + +<para>La salida para grep consiste en comentarios (líneas que empiezan +por una almohadilla, «#») y líneas de objetivo. Una línea de objetivo +incluye una combinación de seis campos marcados, separados por +tabulaciones y seguidos de dos puntos. Los campos (en inglés) son +<literal moreinfo="none">Host</literal> (Sistema), <literal +moreinfo="none">Ports</literal> (Puertos), <literal +moreinfo="none">Protocols</literal> (Protocolos), <literal +moreinfo="none">Ignored State</literal> (Estado omitido), <literal +moreinfo="none">OS</literal> (Sistema operativo), <literal +moreinfo="none">Seq Index</literal> (índice de secuencia), <literal +moreinfo="none">IPID</literal>, y <literal +moreinfo="none">Status</literal> (Estado).</para> + +<para>El campo más importante de todos habitualmente es <literal +moreinfo="none">Ports</literal>, que es el que da los detalles de cada +puerto interesante encontrado. Consiste en una lista separada por +comas de entradas de puerto. Cada entrada de puerto representa uno de +los puertos de interés y se muestra con siete subcampos separados por +una barra («/»). Los subcampos son: <literal moreinfo="none">Port +number</literal> (Número de puerto), <literal +moreinfo="none">State</literal> (Estado), <literal +moreinfo="none">Protocol</literal> (Protocolo), <literal +moreinfo="none">Owner</literal> (Propietario), <literal +moreinfo="none">Service</literal> (Servicio), <literal moreinfo="none">SunRPC +info</literal> (Información SunRPC), y <literal moreinfo="none">Version +info</literal> (Información de versión).</para> + +<para>Esta página de manual, al igual que en el caso de la salida XML, +no puede incluir la documentación completa de este formato. Puede +encontrar más información detallada de la salida de Nmap para grep en +<ulink url="http://www.unspecific.com/nmap-oG-output"/>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oA <nombre_base></option> (Salida en todos los formatos)</term> + <listitem> + + <para>Por comodidad, puede especificar la opción <option>-oA + <replaceable>nombre_base</replaceable></option> para guardar + los resultados de los sondeos en + <replaceable>nombre_base</replaceable>.nmap, + <replaceable>nombre_base</replaceable>.xml, y + <replaceable>nombre_base</replaceable>.gnmap, + respectivamente. Al igual que la mayoría de los programas + puede poner un prefijo con la ruta del directorio como + pudiera ser <filename + moreinfo="none">~/registros_nmap/empresa_foo/</filename> en + UNIX o <filename moreinfo="none">c:\hacking\sco</filename> en + Windows.</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Opciones de depuración y de detalle</title> + <varlistentry> + <term> + <option>-v</option> (Incrementa el nivel de detalle) + </term> + <listitem> + + <para>Hace que Nmap imprima más información sobre el sondeo + que está realizando incrementando el nivel de detalle. Los + puertos abiertos se muestran en cuanto se encuentran y se + muestra una estimación del tiempo que Nmap espera que dure + la tarea de sondeo si piensa que va a durar más de un par de + minutos. Puede utilizarlo dos veces para obtener aún más + detalle. No tiene ningún efecto el utilizarlo más de dos + veces.</para> + + <para>La mayoría de los cambios sólo afectan a la salida + interactiva, y algunos también afectan a la salida «script + kiddie». Dado que los demás formatos van a ser tratados por + programas, Nmap da información detallada en estos formatos + por omisión sin fatigar a un usuario humano. Sin embargo, + hay algunos cambios en los otros modos que hacen que el + tamaño de la salida resultante se reduzca sustancialmente al + omitir información detallada. Por ejemplo, sólo se imprime + una línea de comentario con todos los puertos sondeados en + el formato de salida para grep si se activa el modo de + detalle, porque puede ser demasiada información.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-d [level]</option> (Incrementar o fijar el nivel de depuración) + </term> + <listitem> + +<para>Cuando no obtiene suficientes datos ni siquiera con el modo de +detalle, ¡puede utilizar el modo de depuración para inundarse de +detalles! Al igual que con la opción de detalle (<option>-v</option>), +puede activar la depuración con una opción en la línea de órdenes +(<option>-d</option>). Puede incrementar el nivel de depuración si la +especifica múltiples veces. También puede fijar directamente el nivel +de depuración si da un argumento a la opción <option>-d</option>. Por +ejemplo, si utiliza <option>-d9</option> se fijaría el nivel de +depuración en el nueve. Ese es el nivel más alto de depuración y +provocará que se impriman miles de líneas a no ser que haga sondeos +muy sencillos con pocos puertos y objetivos.</para> + +<para>La salida de depuración es útil cuando sospecha que hay un fallo +en Nmap o simplemente si está confundido y quiere saber qué hace Nmap +y por qué. Las líneas de depuración no son auto-explicativas, dado que +esta función está dirigida a los desarrolladores. Puede obtener algo +como esto: <computeroutput moreinfo="none">Timeout vals: srtt: -1 +rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 +to: 100000</computeroutput>. Su único recurso si no entiende una línea +es ignorarla, buscarla en el código fuente, o solicitar ayuda en la +lista de desarrolladores (nmap-dev). Algunas líneas sí son +auto-explicativas, pero los mensajes se vuelven más y más extraños a +medida que se incrementa el nivel de depuración.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--packet-trace</option> (Trazar paquetes y datos enviados y recibidos) + </term> + <listitem> + + <para>Esta opción hace que Nmap imprima un resumen de cada + paquete que envía o recibe. Esto se utiliza muchas veces + para poder depurar el programa, pero también es útil para + los usuarios nuevos que quieren entender exactamente que es + lo que hace Nmap bajo el capó. Puede especificar un número + reducido de puertos para evitar que se impriman miles de + líneas, como por ejemplo <option>-p20-30</option>. Si sólo + está interesado en el funcionamiento del subsistema de + detección de versiones debe utilizar la opción + <option>--version-trace</option>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--iflist</option> (Listar interfaces y rutas) + </term> + <listitem> + + <para>Imprime la lista de interfaces y las rutas del sistema + tal y como las detecta Nmap. Esta opción es útil para + depurar problemas de enrutamiento o caracterizaciones + equivocadas del tipo de interfaz (como por ejemplo, cuando + Nmap trata una conexión PPP como una interfaz + Ethernet).</para> + + </listitem> + </varlistentry> + + </variablelist> + + + <variablelist><title>Opciones misceláneas de salida</title> + + <varlistentry> + <term> + <option>--append-output</option> (Añadir en lugar de borrar los archivos de salida) + </term> + <listitem> + + <para>El fichero especificado como salida de un formato + como pueda ser <option>-oX</option> or <option>-oN</option> + se sobreescribe por omisión. Si prefiere mantener el + contenido existente y añadir los nuevos resultados tendrá + que especificar la opción + <option>--append-output</option>. La información obtenida + se añadirá a los ficheros especificados en esa ejecución de + Nmap en lugar de sobreescribirlos. Esto no funciona bien + para los ficheros de salida XML (<option>-oX</option>) ya + que el fichero resultante no se podrá leer correctamente, + por regla general, hasta que lo arregle manualmente.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--resume <nombre_archivo></option> (Continuar un sondeo detenido) + </term> + <listitem> + + <para>Algunas ejecuciones de Nmap tardan mucho tiempo, del + orden de días. Esos sondeos no siempre se ejecutan hasta el + final. Es posible que haya restricciones que impidan los sondeos + de Nmap durante la jornada laboral, se puede caer la red o + el sistema donde se está ejecutando Nmap puede sufrir un + reinicio esperado o uno no planificado, o incluso es posible + que Nmap aborte. El administrador que está ejecutando Nmap + podría cancelarlo también por cualquier otra razón, + simplemente pulsando <keycap + moreinfo="none">ctrl-C</keycap>. En estos casos puede no + desearse empezar el sondeo completo desde el + principio. Afortunadamente, si se ha guardado una salida + normal (<option>-oN</option>) o para tratarla con grep + (<option>-oG</option>), el usuarios puede pedir a Nmap que + continúe el sondeo con el objetivo en el que estaba + trabajando cuando se detuvo la ejecución. Simplemente se + tiene que especificar la opción <option>--resume</option> y + dar un archivo de salida normal o «grepeable» como + argumento. No se puede dar ningún otro argumento, ya que + Nmap trata el archivo para utilizar las mismas opciones que + se especificaron entonces. Sólo se debe llamar a Nmap con + <command moreinfo="none">nmap --resume + <replaceable>archivo_de_registro</replaceable></command>. + Nmap añadirá cualquier resultado nuevo a los ficheros de + datos especificados en la ejecución previa. No se soporta la + capacidad de reanudar un sondeo con el formato de salida XML + porque combinar dos salidas en un sólo fichero XML válido + sería difícil.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--stylesheet <ruta o URL></option> (Fija la hoja de estilo XSL para transformar la salida XML) + </term> + <listitem> + + <para>Nmap se distribuye conjuntamente con una hoja de + estilo XSL llamada <filename + moreinfo="none">nmap.xsl</filename> para poder ver o + traducir la salida XML a HTML. La Salida XML incluye una + directiva <literal moreinfo="none">xml-stylesheet</literal> + que apunta al punto donde está instalado <filename + moreinfo="none">nmap.xml</filename> (o al directorio de + trabajo actual en Windows). Para mostrar los resultados + basta cargar la salida XML en un navegador de web moderno y + éste recogerá y utilizará el archivo <filename + moreinfo="none">nmap.xsl</filename> del sistema de ficheros. + Si quiere especificar una hoja de estilo diferente, tiene + que especificarla como argumento a la opción + <option>--stylesheet</option>. Puede dar una ruta completa o + un URL. Una forma habitual de llamar a esta opción es la + siguiente: <option>--stylesheet + https://nmap.org/data/nmap.xsl</option>. Esto le + dice al navegador que descargue la última versión de la hoja + de estilo de Insecure.Org. La opción <option>--webxml</option> + hace lo mismo pero con menos teclas y es más fácil de recordar. + Esto facilita la visualización de + resultados en un sistema que no tiene Nmap instalado (y que + por tanto carece de un archivo <filename + moreinfo="none">nmap.xsl</filename>). Así, la URL es lo más + útil, pero se utiliza el sistema de ficheros local para el + archivo nmap.xsl por omisión por razones de + privacidad.</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>--webxml</option> (Carga la hoja de estilo de Insecure.Org) + </term> + <listitem> + <para>Esta opción es simplemente un alias para + <option>--stylesheet https://nmap.org/data/nmap.xsl</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--no-stylesheet</option> (Omite la declaración de hoja de estilo XSL del XML) + </term> + <listitem> + <para>Puede utilizar esta opción para evitar que Nmap asocie + una hoja de estilo XSL a su salida XML. En este caso, se + omite la directiva <literal + moreinfo="none">xml-stylesheet</literal> de la + salida.</para> + </listitem> + </varlistentry> + + + + </variablelist> + </refsect1> + + <refsect1 id="man-misc-options"> + <title>Opciones misceláneas</title> + + <para>Esta sección describe algunas opciones importantes (y no tan + importantes) que no encajan realmente en ningún otro sitio.</para> + + <variablelist> + <varlistentry> + <term> + <option>-6</option> (Activa el sondeo IPv6) + </term> + <listitem> + + <para>Nmap tiene soporte IPv6 para la mayoría de sus + funcionalidades más populares desde 2002. En particular, + tiene soporte de: sondeo ping (TCP-only), sondeo connect() y + detección de versiones. La sintaxis de las órdenes es igual + que las habituales salvo que debe especificar la opción + <option>-6</option> Por supuesto, debe utilizarse la sintaxis IPv6 si + se indica una dirección en lugar de un nombre de sistema. Una + dirección IPv6 sería parecida a + <literal + moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, + por lo que se recomienda utilizar nombres de equipo. La salida es + igual que en los otros casos. Lo único que distingue que + esta opción está habilitada es que se muestran las + direcciones IPv6 en la línea que indica los <quote>puertos + de interés</quote>.</para> + + <para>Aunque IPv6 no se está utilizando en todo el mundo, sí + que se utiliza mucho en algunos países (generalmente + asiáticos) y muchos sistemas operativos modernos lo + soportan. Tanto el origen como el objetivo de su sondeo + deben estar configurados para utilizar IPv6 si desea + utilizar Nmap con IPv6. Si su ISP (como sucede con la + mayoría) no le da direcciones IPv6, puede encontrar gestores + de túneles gratuitos en muchos sitios y funciona bien con + Nmap. Una lista de gestores está + <ulink url="http://es.wikipedia.org/wiki/Anexo:Proveedores_de_túneles_IPv6">en Wikipedia</ulink>. Los túneles IPv6 a IPv4 + («6to4») son también otro método muy popular y gratuito.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-A</option> (Opciones de sondeos agresivos) + </term> + <listitem> + + <para>Esta opción activa algunas opciones avanzadas y + agresivas. Aún no he decidido qué significa + exactamente. Actualmente esto activa la detección de sistema + operativo (<option>-O</option>) y el análisis de versiones + (<option>-sV</option>). Aunque se añadirán más opciones en + el futuro. La idea es que esta opción active un conjunto de + opciones para evitar que los usuarios de Nmap tengan que + recordar un número de opciones muy elevado. Esta opción sólo + activa funcionalidades, no afecta a las opciones de + temporización (como <option>-T4</option>) o de depuración + (<option>-v</option>) que quizás desee activar + también.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--datadir <nombre_directorio></option> (Indica la ubicación de un archivo de datos de Nmap) + </term> + <listitem> + + <para>Nmap obtiene algunos datos especiales al ejecutarse de + los archivos llamados <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>, y <filename + moreinfo="none">nmap-os-fingerprints</filename>. Nmap + buscará primero estos ficheros en el directorio que se + especifique con la opción <option>--datadir</option> (si se + indica alguno). Los archivos que no se encuentren allí se + buscarán en el directorio especificado por la variable de + entorno NMAPDIR. A continuación se buscará en <filename + moreinfo="none">~/.nmap</filename> tanto para el + identificador (UID) real como el efectivo (sólo en sistemas + POSIX) o la ubicación del ejecutable de Nmap (sólo sistemas + Win32), y también en una ubicación compilada en la + aplicación como pudiera ser <filename + moreinfo="none">/usr/local/share/nmap</filename> o <filename + moreinfo="none">/usr/share/nmap</filename>. Nmap, por + último, buscará en el directorio actual.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-eth</option> (Enviar tramas Ethernet en crudo) + </term> + <listitem> + + <para>Le indica a Nmap que debe enviar paquetes en la capa + Ethernet en crudo (enlace de datos) en lugar de en la capa + IP (red). Por omisión, Nmap elegirá cuál utilizar en función + de lo que sea mejor para la plataforma donde esté + ejecutándose. Los sockets crudos (capa IP) son generalmente + más eficientes para sistemas UNIX, mientras que las tramas + Ethernet son necesarias en sistemas Windows ya que Microsoft + deshabilitó el soporte de sockets crudos. Nmap seguirá + utilizando paquetes IP crudos en UNIX, aunque se especifique + esta opción, cuando no se pueda hacer de otra forma (como es + el caso de conexiones no Ethernet).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-ip</option> (Enviar al nivel crudo IP) + </term> + <listitem> + <para>Indica a Nmap que debe enviar utilizando sockets IP crudos en lugar + de enviar tramas Ethernet de bajo nivel. Esta opción es complementaria + a la opción <option>--send-eth</option> descrita + previamente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--privileged</option> (Asumir que el usuario tiene todos los privilegios) + </term> + <listitem> + + <para>Esta opción le dice a Nmap que simplemente asuma que + el usuario con el que se ejecuta tiene suficientes + privilegios para trabajar con sockets crudos, capturar + paquetes y hacer otras operaciones similares que + generalmente sólo puede hacerla en sistemas UNIX el usuario + root. Por omisión, Nmap aborta si se han solicitado esas + operaciones pero el resultado de geteuid() no es cero. La + opción <option>--privileged</option> es útil con las + capacidades del núcleo Linux y sistemas similares que pueden + configurarse para permitir realizar sondeos con paquetes + crudos a los usuarios no privilegiados. Asegúrese de indicar + esta opción antes de cualquier otra opción que pueda + requerir de privilegios específicos (sondeo SYN, detección + de SO, etc.). Una forma alternativa a + <option>--privileged</option> es fijar la variable de + entorno NMAP_PRIVILEGED.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-V</option>; <option>--version</option> (Mostrar el número de versión) + </term> + <listitem> + <para>Imprime el número de versión de Nmap y aborta.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-h</option>; <option>--help</option> (Mostrar la página resumen de ayuda) + </term> + <listitem> + <para>Imprime una pequeña pantalla de ayuda con las opciones de órdenes + más habituales. Pasa lo mismo si ejecuta Nmap sin argumentos.</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-runtime-interaction"> + <title>Ejecución interactiva</title> + <para>Todas las pulsaciones de teclado se capturan durante la + ejecución de Nmap. Esto le permite interactuar con el programa sin + abortarlo ni reiniciarlo. Algunas teclas especiales cambiarán las + opciones mientras que otras teclas imprimirán un mensaje de estado + informándole del estado del sondeo. La convención es que las + <emphasis>letras en minúsculas incrementan</emphasis> la cantidad + de información que se imprime, mientras que las <emphasis>letras + en mayúsculas reducen</emphasis> la información impresa. + Tambén puede pulsar ‘<emphasis>?</emphasis>’ + para obtener ayuda. + </para> + <variablelist> + <varlistentry> + <term> + <option>v</option> / <option>V</option> + </term> + <listitem> + <para>Incrementa / Reduce el detalle (más / menos verboso)</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>d</option> / <option>D</option> + </term> + <listitem> + <para>Incrementa / Reduce el nivel de depuración</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>p</option> / <option>P</option> + </term> + <listitem> + <para>Activa / Desactiva la traza de paquetes</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>?</option> + </term> + <listitem> + <para>Imprime la pantalla de ayuda de la ejecución interactiva</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + Cualquier otra tecla + </term> + <listitem> + <para>Imprime un mensaje de estado similar a ésta:</para> + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), + 5 undergoing Service Scan</para> + <para>Service scan Timing: About 28.00% done; ETC: 16:18 + (0:00:15 remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + + <refsect1 id="man-examples"> + <title>Ejemplos</title> + <para>A continuación se muestran algunos ejemplos de utilización, desde lo más simple y + rutinario hasta algo más complejo y esotérico. Se utilizan algunas direcciones IP y + dominios para concretar un poco las cosas. En su + lugar deberías poner las direcciones o nombres de + <emphasis>tu propia red.</emphasis>. Mientras que yo no considero + que sondear los puertos de otras redes es o debería ser ilegal, + algunos administradores de redes no aprecian un sondeo no solicitado + de sus redes y pueden quejarse. Lo mejor es pedir permiso primero.</para> + + <para>A modo de prueba, tienes permiso de sondear el servidor + <literal moreinfo="none">scanme.nmap.org</literal>. Este permiso sólo + incluye sondear mediante Nmap y no para probar "exploits" o ataques + de denegación de servicio. Por favor, para conservar el ancho de banda + no inicie más de una docena de sondeos contra este servidor el mismo día. + Si se abusa de este servicio de sondeo se desconectará y Nmap reportará + <computeroutput moreinfo="none">Failed to resolve given hostname/IP: + scanme.nmap.org</computeroutput> ("No se pudo resolver la dirección IP + o nombre datos: scanme.nmap.org"). Este permiso también se aplica + a los servidores + <literal moreinfo="none">analizame2.nmap.org</literal>, + <literal moreinfo="none">analizame3.nmap.org</literal>, y así sucesivamente, + aunque esos servidores actualmente no existen.</para> + + <para> + <userinput moreinfo="none">nmap -v scanme.nmap.org</userinput> + </para> + <para>Esta opción sondea todos los puertos TCP reservados en el servidor + <literal moreinfo="none">scanme.nmap.org</literal>. La opción + <option>-v</option> activa el modo detallado (también llamado verboso).</para> + <para> + <userinput moreinfo="none">nmap -sS -O scanme.nmap.org/24</userinput> + </para> + <para>Lanza un sondeo de tipo SYN sigiloso contra cada una de las 255 máquinas + en la <quote>clase C</quote> de la red donde está el sistema "analizame". + También intenta determinar cual es el sistema operativo que se ejecuta + en cada máquina que esté encendida. Esto requiere permisos de root + por la opción de sondeo SYN y por la de detección de sistema operativo.</para> + <para> + <userinput moreinfo="none">nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</userinput> + </para> + + <para>Lanza una enumeración de equipos y un sondeo TCP a cada uno de la + primera mitad de las 255 posibles subredes de 8 bit en la red de clase B + 198.116. Esto probará si los sistemas están ejecutando sshd, DNS, pop3d, + imapd o tienen un servidor en el puerto 4564. Para cualquier puerto que se encuentre abierto, + se realizará una detección de versión para determinar qué aplicación se + está ejecutando.</para> + + <para> + <userinput moreinfo="none">nmap -v -iR 100000 -P0 -p 80</userinput> + </para> + + <para>Solicita a Nmap que elija 100.000 sistemas aleatoriamente + y los sondee buscando servidores web (puerto 80). La enumeración de + sistemas se deshabilita con <option>-P0</option> ya que es un desperdicio + enviar un par de pruebas para determinar si el sistema debe ser analizado + cuando de todas maneras sólo se va a analizar un puerto.</para> + + <para> + <userinput moreinfo="none">nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</userinput> + </para> + <para>Esto sondea 4096 IPs para buscar cualquier servidor web (sin enviar + sondas ICMP) + y guarda la salida en formato para grep y en XML.</para> + + </refsect1> + + <refsect1 id="man-bugs"> + <title>Fallos</title> + + <para>Al igual que su autor, Nmap no es perfecto. Pero tu puedes + ayudar a hacerlo mejor enviando informes de fallo o incluso + escribiendo parches. Si Nmap no se comporta como tú esperas, + primero actualiza a la última versión disponible en <ulink + url="https://nmap.org/"/>. Si el problema persiste, + investiga para determinar si la causa ya ha sido descubierta y + solucionada. Busca en Google el mensaje de error o navega en los + archivos de Nmap-dev en <ulink + url="https://seclists.org/"/>. También deberías leer este manual + completo. Si esto no te ayuda, envía un informe de error en inglés + a <email>dev@nmap.org</email>. Por favor, incluya todo + lo que haya visto del problema, así como qué versión de Nmap + está utilizando y sobre qué versión del sistema operativo está + trabajando. Hay muchas más probabilidades de que un informe de + fallo o una pregunta sobre el uso de Nmap se contesten si se + envían a dev@nmap.org que si se envían directamente a + Fyodor.</para> + + <para>Es mejor enviar parches para arreglar el código que un + informe de error. Puedes encontrar las instrucciones básicas para + crear parches con sus cambios en <ulink + url="https://nmap.org/data/HACKING"/>. Puede enviar + los parches a nmap-dev (recomendado) o directamente a + Fyodor.</para> + + </refsect1> + + <refsect1 id="man-author"> + <title>Autor</title> + <para>Fyodor + <email>fyodor@nmap.org</email> + (<ulink url="http://www.insecure.org"/>) + </para> + + <para>Cientos de personas han realizado valiosas contribuciones a + Nmap a lo largo de los años. Sus nombres se detallan en el + archivo <filename moreinfo="none">CHANGELOG</filename> que se + distribuye conjuntamente con Nmap y que está también disponible en + <ulink + url="https://nmap.org/changelog.html"/>.</para> + + </refsect1> + + <refsect1 id="man-legal"> + <title>Notas legales</title> + +<refsect2 id="translation-disclaimer"><title>Unofficial Translation Disclaimer / Descargo de traducción no oficial</title> + +<para>This is an unnofficial translation of the <ulink +url="https://nmap.org/man/man-legal.html">Nmap license +details</ulink> into Spanish. It was not written by Insecure.Com +LLC, and does not legally state the distribution terms for Nmap -- +only the original English text does that. However, we hope that this +translation helps Spanish speakers understand the Nmap license +better.</para> + + +<para>Esta es una traducción no oficial de los <ulink +url="https://nmap.org/man/man-legal.html">detalles de la +licencia de Nmap details</ulink> al español. Esta traducción no ha +sido escrita por Insecure.Com LLC por lo que no refleja legalmente los +términos de distribución de Nmap, eso sólo puede hacerlo el texto +original en inglés. Esperamos, sin embargo, que esta traducción pueda +ayudar a aquellas personas que hablan español a entender mejor la +licencia de Nmap.</para> + + +</refsect2> + +<refsect2 id="nmap-copyright"> + <title>Licencia y copyright de Nmap</title> + +<!-- Nota (jfs): La versión en inglés es la que tiene vigencia legal, por eso + se pone una y luego la traducción al español --> +<para>The Nmap Security +Scanner is (C) 1996-2005 Insecure.Com LLC. Nmap is also a registered +trademark of Insecure.Com LLC. This program is free software; you may +redistribute and/or modify it under the terms of the GNU General +Public License as published by the Free Software Foundation; Version +2. This guarantees your right to use, modify, and redistribute this +software under certain conditions. If you wish to embed Nmap +technology into proprietary software, we may be willing to sell +alternative licenses (contact <email>sales@insecure.com</email>). Many +security scanner vendors already license Nmap technology such as host +discovery, port scanning, OS detection, and service/version +detection.</para> + +<para><emphasis>Traducción no autorizada:</emphasis> La herramienta de sondeos de seguridad +Nmap es (C) 1996-2005 Insecure.Com LLC. Nmap también es una marca +registrada por Insecure.Com LLC. Este programa es software libre. Puede +redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General +de GNU según es publicada por la Free Software Foundation, versión 2. +Esto garantiza su derecho a utilizarla, modificarla y redistribuirla bajo +ciertas condiciones. Si desea introducir la tecnología de Nmap en +programas propietarios podemos vender licencias alternativas +(póngase en contacto con <email>sales@insecure.com</email>). Hay +muchos fabricantes de herramientas de análisis de seguridad que licencian +la tecnología de Nmap como es el descubrimiento de equipos, +sondeos de puertos, detección de sistema operativo y detección de +servicios y versiones.</para> + +<para>Tenga en cuenta que la GPL impone restricciones importantes +en los <quote>trabajos derivados</quote>, pero no ofrece una definición precisa +de ese término. Para evitar malentendidos, a continuación se definen, para los +propósitos de esta licencia, las condiciones bajo las que una aplicación +constituye un <quote>trabajo derivado</quote>:</para> + +<itemizedlist> +<listitem><para>Integra código fuente de Nmap</para></listitem> +<listitem><para>Lee o incluye los ficheros de Nmap que están bajo + derechos de copia, eso incluye + <filename moreinfo="none">nmap-os-fingerprints</filename> o + <filename moreinfo="none">nmap-service-probes</filename>.</para></listitem> +<listitem><para>Ejecuta Nmap y analiza los resultados (en contraposición + del intérprete de órdenes típico o la ejecución desde un menú, que + simplemente muestra la salida de Nmap en crudo y no son, por tanto, + trabajos derivados)</para></listitem> +<listitem><para>Integra o incluye o agrega Nmap en un instalador ejecutable + propietario, como los que produce + InstallShield.</para></listitem> +<listitem><para>Enlaza a una librería o ejecuta un programa que hace cualquiera + de las cosas descritas anteriormente.</para></listitem> +</itemizedlist> + +<para>Se debe considerar que el término <quote>Nmap</quote> +incluye las porciones o trabajos derivados de Nmap. Esta lista no es exclusiva, +su único objetivo es clarificar la interpretación de trabajos derivados con +algunos ejemplos comunes. Estas restricciones no se aplican cuando +redistribuye Nmap. Por ejemplo, nada le impide escribir y vender una +interfaz propietaria a Nmap. Sólo debe distribuirla de forma separada +e indicar a sus usuarios que vayan a +<ulink url="https://nmap.org/"/> para obtener Nmap.</para> + +<para>No consideramos que las restricciones sean añadidos a la GPL, +sino simplemente una forma de clarificar cómo interpretamos el +término <quote>trabajos derivados</quote> y su aplicación al producto +Nmap licenciado GPL. Esto es parecido a la interpretación que +Linus Torvalds ha dado a <quote>trabajos derivados</quote> y +su aplicación a los módulos del núcleo de Linux. Nuestra interpretación +sólo aplica a Nmap, no hablamos en nombre de otros productos GPL.</para> + +<para>Estaremos encantados de ayudarle si tiene alguna pregunta +de cómo aplican las restricciones de licenciamiento GPL al uso +de Nmap en trabajos que no son GPL. Tal y como se menciona más arriba, +ofrecemos licencias alternativas para integrar Nmap en aplicaciones +propietarias así como en dispositivos hardware. Ya se han vendido +este tipo de contratos a fabricantes de dispositivos de seguridad y +habitualmente incluye una licencia perpetua, al tiempo que se da +soporte prioritario y actualizaciones. Estos contratos financian +el desarrollo continuo de la tecnología Nmap. Por favor, +contacte con <email>sales@insecure.com</email> si desea más información.</para> + +<para>Insecure.Com LLC da permiso para enlazar el código de este programa con +cualquier librería de OpenSSL que se distribuya bajo una licencia idéntica a la +indicada en el fichero Copying.OpenSSL adjunto, así como a +la distribución de la combinación enlazada que incluye a ambos. Ésta es una +excepción especial a los términos de la GPL. Debe obedecer los demás términos +de la GPL de GNU en cualquier otro aspecto en relación al código que utilice +que no sea OpenSSL. Si modifica este fichero puede extender esta excepción a su +versión del fichero, aunque no está obligado a hacerlo. +</para> + +<para>Si recibe estos ficheros con un acuerdo de licencia por escrito +o contrato que indique términos distintos de los que se describen +arriba entonces dicha licencia alternativa toma precedencia sobre estos +comentarios.</para> +</refsect2> + +<refsect2 id="man-copyright"> + <title>Licencia Creative Commons para esta guía Nmap</title> + <para>Esta guía de referencia de Nmap Reference Guide es (C) 2005 Insecure.Com LLC. + Se distribuye bajo la versión 2.5 de la + <ulink url="http://creativecommons.org/licenses/by/2.5/">Licencia Creative Commons + de Reconocimiento</ulink>. Esta licencia le permite redistribuir y modificar + el trabajo como desee siempre que reconozca la fuente original. + Puede, si lo desea, tratar este documento con la misma licencia con la que + distribuya Nmap (como se ha discutido previamente).</para> +</refsect2> + +<refsect2 id="source-contrib"> + <title>Disponibilidad del código fuente y contribuciones de la comunidad</title> + +<para>Se da el código fuente de este programa porque creemos que los usuarios +tienen el derecho a saber cómo funciona un programa con exactitud antes +de ejecutarlo. También le permite auditar el programa en búsqueda de agujeros +de seguridad (no se ha encontrado ninguno aún).</para> + +<para>El código fuente le permite migrar Nmap a otras plataformas, arreglar +erratas y añadir nuevas funciones. Le pedimos encarecidamente que envíe sus +cambios a <email>fyodor@nmap.org</email> para que puedan incorporarse en la +distribución principal. Al enviar estos cambios a Fyodor o cualquiera de las +listas de correo de desarrollo en Insecure.Org se asume que está ofreciendo a +Fyodor y a Insecure.Com LLC derechos ilimitados y no exclusivos para +reutilizar, modificar y relicenciar el código. Nmap siempre estará disponible +como software libre, pero esto es importante porque la incapacidad de +relicenciar el código ha dado muchos problemas a otros proyectos de software +libre (como es el caso de KDE y NASM). También relicenciamos el código de forma +ocasional a terceros, como se ha descrito previamente. Puede especificar +condiciones especiales de licencia para sus contribuciones, sólo tiene que +indicarlas cuando las envíe.</para> + +</refsect2> + +<refsect2 id="no-warranty"><title>Sin garantía</title> + +<para>Este programa se distribuye con la esperanza de que sea útil, pero SIN +NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin garantizar +la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. Véase la Licencia Pública General +de GNU para más detalles en <ulink +url="http://www.gnu.org/copyleft/gpl.html"/>, o en el fichero COPYING que se +incluye con Nmap.</para> + +<para>También debería tener en cuenta que se sabe que Nmap ha provocado +en algunas ocasiones +que alguna aplicación mal escrita se bloquee, como también ha pasado con +pilas TCP/IP e incluso sistemas operativos. Esto es muy raro, pero es importante +tenerlo en mente. <emphasis>Nunca debería utilizar Nmap contra sistemas de +misión crítica</emphasis> a no ser que esté preparado para sufrir +una caída. Reconocemos que Nmap puede bloquear sus sistemas o redes y +hacemos un descargo de responsabilidad frente a cualquier daño o problemas +que Nmap pueda causar. </para> +</refsect2> + +<refsect2 id="inappropriate-usage"><title>Uso inapropiado</title> +<para>Debido al ligero riesgo de que se produzcan caídas porque +un <emphasis>black hat</emphasis> (persona que ataca sistemas sin autorización, N. del T.) +utilice Nmap para realizar un análisis antes de atacar algún sistema +hay administradores que se molestan y se quejan cuando se sondean sus sistemas. +Así, por regla general es recomendable pedir permiso para hacer +cualquier tipo de sondeo, aún uno ligero, de una red.</para> + +<para>Nunca debería instalar Nmap con privilegios especiales +(p. ej. suid root) por razones de seguridad.</para> +</refsect2> + +<refsect2 id="third-party-soft"><title>Programas de terceros</title> +<para>Este producto incluye programas desarrollados por la +<ulink url="http://www.apache.org">Fundación Apache Software +Foundation</ulink>. También se distribuye una versión modificada de la <ulink +url="http://www.tcpdump.org">librería portable de captura de paquetes +Libpcap</ulink> conjuntamente con nmap. La versión para Windows de Nmap utiliza +la librería <ulink url="http://www.winpcap.org">WinPcap library</ulink> que es +una versión derivada de la libcap. La <ulink +url="http://www.pcre.org">librería PCRE</ulink>, software libre escrito por +Philip Hazel, da el soporte de expresiones regulares. Algunas de las funciones +de acceso a bajo nivel de la red utiliza la librería de red <ulink +url="http://libdnet.sourceforge.net">Libdnet</ulink>, escrita por Dug Song. Se +distribuye una versión modificada con Nmap. Nmap puede, opcionalmente, enlazar +con las <ulink url="http://www.openssl.org">herramientas criptográficas +OpenSSL</ulink> para poder hacer un análisis de versiones SSL. Todos los +programas de terceros descritos en este párrafo se distribuyen libremente bajo +licencias tipo BSD.</para> +</refsect2> + +<refsect2 id="us-export"><title>Clasificación de control de exportación de los EEUU</title> +<para>Control de exportación de los EEUU: Insecure.Com LLC cree que +Nmap se encuentra dentro del capítulo US ECCN (número de clasificación +de control de exportación) 5D992. Esta categoría se denomina +<quote>Programas de seguridad de la información no controlados en +5D002</quote>. La única restricción a esta clasificación es AT +(anti-terrorismo), que se aplica a casi todos los bienes y deniega +la exportación a un número reducido de naciones rebeldes como Irán +o Corea del Norte. Así, la exportación de Nmap no requiere de una licencia +especial, permiso o cualquier otra autorización del gobierno.</para> +</refsect2> + + </refsect1> +</refentry> + +</article> diff --git a/docs/man-xlate/nmap-man-fr.xml b/docs/man-xlate/nmap-man-fr.xml new file mode 100644 index 0000000..735d93c --- /dev/null +++ b/docs/man-xlate/nmap-man-fr.xml @@ -0,0 +1,2461 @@ +<?xml version = '1.0' encoding="UTF-8"?> +<!-- $Id: manhtml-fr.xml 2991 2007-20-12 14:00:56Z gutek $ --> +<article id="man" lang="fr"> + <artheader> + <title>Guide de référence Nmap (Man Page, French translation)</title> + </artheader> + <refentry id="man-nmap1" > + <refmeta> + <refentrytitle>nmap</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Guide de référence Nmap</refmiscinfo> + </refmeta> + <refnamediv id="man-name" > + <refname>nmap</refname> + <refpurpose>Outil d'exploration réseau et scanneur de ports/sécurité</refpurpose> + </refnamediv> + <refsynopsisdiv id="man-synopsis" > + <cmdsynopsis sepchar=" " > + <command moreinfo="none" >nmap</command> + <arg choice="opt" rep="repeat" > + <replaceable>Types de scans</replaceable> + </arg> + <arg choice="opt" rep="norepeat" > + <replaceable>Options</replaceable> + </arg> + <arg choice="req" rep="norepeat" > + <replaceable>spécifications des cibles</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1 id="man-description" > + <title>Description</title> + <web> + <note><para> + Ce document décrit Nmap version 4.50. La dernière documentation est disponible en anglais à + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + <para> + Nmap (<quote>Network Mapper</quote>) est un outil open source d'exploration réseau et d'audit de sécurité. Il a été conçu pour rapidement scanner de grands réseaux, mais il fonctionne aussi très bien sur une cible unique. Nmap innove en utilisant des paquets IP bruts (raw packets) pour déterminer quels sont les hôtes actifs sur le réseau, quels services (y compris le nom de l'application et la version) ces hôtes offrent, quels systèmes d'exploitation (et leurs versions) ils utilisent, quels types de dispositifs de filtrage/pare-feux sont utilisés, ainsi que des douzaines d'autres caractéristiques. Nmap est généralement utilisé pour les audits de sécurité mais de nombreux gestionnaires des systèmes et de réseau l'apprécient pour des tâches de routine comme les inventaires de réseau, la gestion des mises à jour planifiées ou la surveillance des hôtes et des services actifs. + </para> + <para> + Le rapport de sortie de Nmap est une liste des cibles scannées ainsi que des informations complémentaires en fonction des options utilisées. L'information centrale de la sortie est la + <quote>table des ports intéressants</quote>. + Cette table liste le numéro de port et le protocole, le nom du service et son état. L'état est soit + <literal moreinfo="none" >ouvert (open)</literal>, + <literal moreinfo="none" >filtré (filtered)</literal>, + <literal moreinfo="none" >fermé (closed)</literal> ou + <literal moreinfo="none" >non-filtré (unfiltered)</literal>. + + <literal moreinfo="none" >Ouvert</literal> indique que l'application de la machine cible est en écoute de paquets/connexions sur ce port. + <literal moreinfo="none" >Filtré</literal> indique qu'un pare-feu, un dispositif de filtrage ou un autre obstacle réseau bloque ce port, empêchant ainsi Nmap de déterminer s'il s'agit d'un port <literal moreinfo="none" >ouvert</literal> ou <literal moreinfo="none" >fermé</literal>. + Les ports <literal moreinfo="none" >fermés</literal> n'ont pas d'application en écoute, bien qu'ils puissent quand même s'ouvrir n'importe quand. Les ports sont considérés comme <literal moreinfo="none" >non-filtrés</literal> lorsqu'ils répondent aux paquets de tests (probes) de Nmap, mais Nmap ne peut déterminer s'ils sont ouverts ou fermés. Nmap renvoie également les combinaisons d'états <literal moreinfo="none" >ouverts|filtré</literal> et <literal moreinfo="none" >fermés|filtré</literal> lorsqu'il n'arrive pas à déterminer dans lequel des deux états possibles se trouve le port. La table des ports peut aussi comprendre des détails sur les versions des logiciels si la détection des services est demandée. Quand un scan du protocole IP est demandé (<option>-sO</option>), Nmap fournit des informations sur les protocoles IP supportés au lieu de la liste des ports en écoute.</para> + <para>En plus de la table des ports intéressants, Nmap peut aussi fournir de plus amples informations sur les cibles comme les noms DNS (reverse DNS), deviner les systèmes d'exploitation utilisés, obtenir le type de matériel ou les adresses MAC.</para> + <para> + Un scan classique avec Nmap est présenté dans + <xref linkend="man-ex-repscan" /> . + Les seuls arguments de Nmap utilisés dans cet exemple sont + <option>-A</option> + , qui permet la détection des OS et versions de logiciels utilisés, + <option>-T4</option> + pour une exécution plus rapide, et les noms d'hôte des cibles. + </para> + <example id="man-ex-repscan" > + <title>Un scan Nmap représentatif</title> + <screen format="linespecific" > +# nmap -A -T4 scanme.nmap.org playground + +Starting nmap ( https://nmap.org/ ) +Interesting ports on scanme.nmap.org (205.217.153.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2.0.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2.4.X|2.5.X|2.6.X +OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 +Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground.nmap.org (192.168.0.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios-ssn +389/tcp open ldap? +445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds +1002/tcp open windows-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H.323/Q.931 CompTek AquaGateKeeper +5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3.8) +MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds +</screen> + </example> + <para> + La plus récente version de Nmap peut être obtenue à l'url + <ulink url="https://nmap.org/" /> + . La plus récente version du manuel est disponible à + <ulink url="https://nmap.org/man/" /> + . + </para> + </refsect1> + <refsect1 id="translation" > + <title>Notes de Traduction</title> + <para>Cette édition Francaise du Guide de référence de Nmap a été traduite à partir de la version [2991] de la <ulink url="https://nmap.org/man/" >version originale + en Anglais</ulink> par Romuald THION <email>romuald.thion@insa-lyon.fr</email> et 4N9e Gutek <email>4n9e@futurezone.biz</email>. Elle a été relue et corrigée par Ghislaine Landry <email>g-landry@rogers.com</email>. Ce travail peut être modifié et redistribué selon les termes de la license <ulink url="http://creativecommons.org/licenses/by/2.5/" >Creative Commons Attribution License</ulink>.</para> + <para>Mise a jour au 19 dec 2007.</para> + </refsect1> + <refsect1 id="man-briefoptions" > + <title>Résumé des options</title> + <para> + Ce résumé des options est affiché quand Nmap est exécuté sans aucun argument; la plus récente version est toujours disponible sur + <ulink url="https://nmap.org/data/nmap.usage.txt" /> + . Il sert d'aide-mémoire des options les plus fréquemment utilisées, mais ne remplace pas la documentation bien plus détaillée de la suite de ce manuel. Les options obscures n'y sont pas incluses. + </para> + <para> + <literallayout class="normal" format="linespecific" > +Nmap 4.50 (insecure.org) +Utilisation: nmap [Type(s) de scan] [Options] {spécifications des cibles} + +SPÉCIFICATIONS DES CIBLES: +Les cibles peuvent être spécifiées par des noms d'hôtes, des adresses IP, des adresses de réseaux, etc. +Exemple: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0-255.0-255.1-254 +-iL <inputfilename>: Lit la liste des hôtes/réseaux cibles à partir du fichier +-iR <num hosts>: Choisit les cibles au hasard +--exclude <host1[,host2][,host3],...>: Exclut des hôtes/réseaux du scan +--excludefile <exclude_file>: Exclut des hôtes/réseaux des cibles à partir du fichier + +DÉCOUVERTE DES HÔTES: +-sL: List Scan - Liste simplement les cibles à scanner +-sP: Ping Scan - Ne fait que déterminer si les hôtes sont en ligne -P0: Considère que tous les hôtes sont en ligne -- évite la découverte des hôtes +-PN: Considérer tous les hôtes comme étant connectés -- saute l'étape de découverte des hôtes +-PS/PA/PU [portlist]: Découverte TCP SYN/ACK ou UDP des ports en paramètre +-PE/PP/PM: Découverte de type requête ICMP echo, timestamp ou netmask +-PO [num de protocole]: Ping IP (par type) +-n/-R: Ne jamais résoudre les noms DNS/Toujours résoudre [résout les cibles actives par défaut] +--dns-servers <serv1[,serv2],...>: Spécifier des serveurs DNS particuliers + +TECHNIQUES DE SCAN: +-sS/sT/sA/sW/sM: Scans TCP SYN/Connect()/ACK/Window/Maimon +-sN/sF/sX: Scans TCP Null, FIN et Xmas +-sU: Scan UDP +--scanflags <flags>: Personnalise les flags des scans TCP +-sI <zombie host[:probeport]>: Idlescan (scan passif) +-sO: Scan des protocoles supportés par la couche IP +-b <ftp relay host>: Scan par rebond FTP +--traceroute: Détermine une route vers chaque hôte +--reason: Donne la raison pour laquelle tel port apparait à tel état + +SPÉCIFICATIONS DES PORTS ET ORDRE DE SCAN: +-p <plage de ports>: Ne scanne que les ports spécifiés +Exemple: -p22; -p1-65535; -pU:53,111,137,T:21-25,80,139,8080 +-F: Fast - Ne scanne que les ports listés dans le fichier nmap-services +-r: Scan séquentiel des ports, ne mélange pas leur ordre +--top-ports <nombre>: Scan <nombre> de ports parmis les plus courants +--port-ratio <ratio>: Scan <ratio> pourcent des ports les plus courants + +DÉTECTION DE SERVICE/VERSION: +-sV: Teste les ports ouverts pour déterminer le service en écoute et sa version +--version-light: Limite les tests aux plus probables pour une identification plus rapide +--version-intensity <niveau>: De 0 (léger) à 9 (tout essayer) +--version-all: Essaie un à un tous les tests possibles pour la détection des versions +--version-trace: Affiche des informations détaillées du scan de versions (pour débogage) + +SCRIPT SCAN: +-sC: équivalent de --script=safe,intrusive +--script=<lua scripts>: <lua scripts> est une liste de répertoires ou de scripts séparés par des virgules +--script-args=<n1=v1,[n2=v2,...]>: passer des arguments aux scripts +--script-trace: Montre toutes les données envoyées ou recues +--script-updatedb: Met à jour la base de données des scripts. Seulement fait si -sC ou --script a été aussi donné. + +DÉTECTION DE SYSTÈME D'EXPLOITATION: +-O: Active la détection d'OS +--osscan-limit: Limite la détection aux cibles prometteuses +--osscan-guess: Devine l'OS de façon plus agressive + +TEMPORISATION ET PERFORMANCE: +Les options qui prennent un argument de temps sont en milisecondes a moins que vous ne spécifiiez 's' +(secondes), 'm' (minutes), ou 'h' (heures) à la valeur (e.g. 30m). + +-T[0-5]: Choisit une politique de temporisation (plus élevée, plus rapide) +--min-hostgroup/max-hostgroup <nombre>: Tailles des groupes d'hôtes à scanner en parallèle +--min-parallelism/max-parallelism <nombre>: Parallélisation des paquets de tests (probes) +--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Spécifie le temps d'aller-retour des paquets de tests +--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Spécifie le temps d'aller-retour des paquets de tests +--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Précise +le round trip time des paquets de tests. +--max-retries <tries>: Nombre de retransmissions des paquets de tests des scans de ports. +--host-timeout <msec>: Délai d'expiration du scan d'un hôte --scan-delay/--max-scan-delay <msec>: Ajuste le délai de retransmission entre deux paquets de tests +--scan-delay/--max-scan-delay <time>: Ajuste le delais entre les paquets de tests. + +ÉVASION PARE-FEU/IDS ET USURPATION D'IDENTITÉ +-f; --mtu <val>: Fragmente les paquets (en spécifiant éventuellement la MTU) +-D <decoy1,decoy2[,ME],...>: Obscurci le scan avec des leurres +-S <IP_Address>: Usurpe l'adresse source +-e <iface>: Utilise l'interface réseau spécifiée +-g/--source-port <portnum>: Utilise le numéro de port comme source +--data-length <num>: Ajoute des données au hasard aux paquets émis +--ip-options <options>: Envoi des paquets avec les options IP spécifiées. +--ttl <val>: Spécifie le champ time-to-live IP +--spoof-mac <adresse MAC, préfixe ou nom du fabriquant>: Usurpe une adresse MAC +--badsum: Envoi des paquets TCP/UDP avec une somme de controle erronnée. + +SORTIE: +-oN/-oX/-oS/-oG <file>: Sortie dans le fichier en paramètre des résultats du scan au format normal, XML, s|<rIpt kIddi3 et Grepable, respectivement +-oA <basename>: Sortie dans les trois formats majeurs en même temps +-v: Rend Nmap plus verbeux (-vv pour plus d'effet) +-d[level]: Sélectionne ou augmente le niveau de débogage (significatif jusqu'à 9) +--packet-trace: Affiche tous les paquets émis et reçus +--iflist: Affiche les interfaces et les routes de l'hôte (pour débogage) +--log-errors: Journalise les erreurs/alertes dans un fichier au format normal +--append-output: Ajoute la sortie au fichier plutôt que de l'écraser +--resume <filename>: Reprend un scan interrompu +--stylesheet <path/URL>: Feuille de styles XSL pour transformer la sortie XML en HTML +--webxml: Feuille de styles de références de Insecure.Org pour un XML plus portable +--no-stylesheet: Nmap n'associe pas la feuille de styles XSL à la sortie XML + +DIVERS: +-6: Active le scan IPv6 +-A: Active la détection du système d'exploitation et des versions +--datadir <dirname>: Spécifie un dossier pour les fichiers de données de Nmap +--send-eth/--send-ip: Envoie des paquets en utilisant des trames Ethernet ou des paquets IP bruts +--privileged: Suppose que l'utilisateur est entièrement privilégié +-V: Affiche le numéro de version +--unprivileged: Suppose que l'utilisateur n'a pas les privilèges d'usage des raw socket +-h: Affiche ce résumé de l'aide + +EXEMPLES: +nmap -v -A scanme.nmap.org +nmap -v -sP 192.168.0.0/16 10.0.0.0/8 +nmap -v -iR 10000 -P0 -p 80 + </literallayout> + </para> + </refsect1> + <refsect1 id="man-target-specification" > + <title>Spécification des cibles</title> + <para>Tout ce qui n'est pas une option (ou l'argument d'une option) dans la ligne de commande de Nmap est considéré comme une spécification d'hôte cible. Le cas le plus simple est de spécifier une adresse IP cible ou un nom d'hôte à scanner.</para> + <para> Si vous désirez scanner un réseau entier d'hôtes consécutifs, Nmap supporte l'adressage du style CIDR. Vous pouvez ajouter / <replaceable>numbits</replaceable> à une adresse IP ou à un nom d'hôte de référence et Nmap scannera toutes les adresses IP dont les <replaceable>numbits</replaceable> bits de poids fort sont les mêmes que la cible de référence. Par exemple, 192.168.10.0/24 scannerait les 256 hôtes entre 192.168.10.0 (en binaire: <literal moreinfo="none" >11000000 10101000 00001010 00000000</literal>) et 192.168.10.255 (en binaire:<literal moreinfo="none" >11000000 10101000 00001010 11111111</literal>) inclusivement. 192.168.10.40/24 ferait donc aussi la même chose. Étant donné que l'hôte scanme.nmap.org est à l'adresse IP 205.217.153.62, scanme.nmap.org/16 scannerait les 65 536 adresses IP entre 205.217.0.0 et 205.217.255.255. La plus petite valeur autorisée est /1 qui scanne la moitié d'Internet. La plus grande valeur autorisée est 32, ainsi Nmap ne scanne que la cible de référence car tous les bits de l'adresse sont fixés. + </para> + <para>La notation CIDR est concise mais pas toujours des plus pratiques. Par exemple, vous voudriez scanner 192.168.0.0/16 mais éviter toutes les adresses se terminant par .0 ou .255 car se sont souvent des adresses de diffusion (broadcast). Nmap permet de le faire grâce à l'adressage par intervalles. Plutôt que de spécifier une adresse IP normale, vous pouvez spécifier pour chaque octet de l'IP une liste d'intervalles séparés par des virgules. Par exemple, 192.168.0-255.1-254 évitera toutes les adresses se terminant par .0 ou .255. Les intervalles ne sont pas limités aux octets finals: 0-255.0-255.13.37 exécutera un scan de toutes les adresses IP se terminant par 137.37. Ce genre de spécifications peut s'avérer utile pour des statistiques sur Internet ou pour les chercheurs.</para> + <para>Les adresses IPv6 ne peuvent être spécifiées que par une adresse IPv6 pleinement qualifiée ou un nom d'hôte. L'adressage CIDR ou par intervalles n'est pas géré avec IPv6 car les adresses ne sont que rarement utiles.</para> + <para>Nmap accepte les spécifications de plusieurs hôtes à la ligne de commande, sans qu'elles soient nécessairement de même type. La commande <command moreinfo="none" >nmap scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.0-255</command> fait donc ce à quoi vous vous attendez. </para> + <para>Même si les cibles sont souvent spécifiées dans les lignes de commandes, les options suivantes sont également disponibles pour sélectionner des cibles :</para> + <variablelist> + <varlistentry> + <term> + <option>-iL <inputfilename></option>(Lit la liste des hôtes/réseaux cibles depuis le fichier) + </term> + <listitem> + <para> + Lit les spécifications des cibles depuis le fichier <replaceable>inputfilename</replaceable>. Il est souvent maladroit de passer une longue liste d'hôtes à la ligne de commande. Par exemple, votre serveur DHCP pourrait fournir une liste de 10 000 baux que vous souhaiteriez scanner. Ou alors voudriez scanner toutes les adresses IP <emphasis>sauf</emphasis> celles des baux DHCP pour identifier les hôtes qui utilisent des adresses IP statiques non-autorisées. Générez simplement la liste des hôtes à scanner et passez ce fichier comme argument de l'option <option>-iL</option>. Les entrées peuvent être spécifiées dans n'importe quel des formats acceptés par la ligne de commande de Nmap (adresses IP, noms d'hôtes, CIDR, IPv6 ou par intervalles). Les entrées doivent être séparées par un ou plusieurs espaces, tabulations ou retours chariot. Vous pouvez utiliser un tiret (<literal moreinfo="none" >-</literal>) comme nom de fichier si vous souhaitez que Nmap lise les hôtes depuis l'entrée standard.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-iR <num hosts></option>(Choisit des cibles au hasard) + </term> + <listitem> + <para> Pour des études à l'échelle d'Internet ou autres, vous pourriez désirer de choisir vos cibles au hasard. L'argument <replaceable>num hosts</replaceable> indique à Nmap combien d'IPs il doit générer. Les IPs à éviter, comme les plages d'adresses privées, multicast ou non allouées sont automatiquement évitées. On peut aussi utiliser l'argument <literal moreinfo="none" >0</literal> pour effectuer un scan sans fin. Rappelez-vous bien que certains administrateurs de réseau s'irritent lorsqu'on scanne leur réseau sans permission et peuvent porter plainte. Utilisez cette option à vos risques et périls! Un jour de pluie où vous ne savez pas quoi faire, essayez la commande <command moreinfo="none" >nmap -sS -PS80 -iR 0 -p 80</command> pour trouver des serveurs Web au hasard sur lesquels fureter. </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--exclude <host1[,host2][,host3],...></option> (Exclut des hôtes/des réseaux des cibles) + </term> + <listitem> + <para>Spécifie une liste de cibles séparées par des virgules à exclure du scan, même si elles font partie de la plage réseau que vous avez spécifiée. La liste que vous donnez en entrée utilise la syntaxe Nmap habituelle, elle peut donc inclure des noms d'hôtes, des blocs CIDR, des intervalles, etc. Ceci peut être utile quand le réseau que vous voulez scanner comprend des serveurs à haute disponibilité, des systèmes reconnus pour réagir défavorablement aux scans de ports ou des sous-réseaux administrés par d'autres personnes.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--excludefile <exclude_file></option> (Exclut des hôtes/des réseaux des cibles depuis le fichier) + </term> + <listitem> + <para>Cette option offre les mêmes fonctionnalités que l'option <option>--exclude</option>, à la différence qu'ici les cibles à exclure sont spécifiées dans le fichier <replaceable>exclude_file</replaceable> au lieu de la ligne de commande. Les cibles sont séparées entre elles dans le fichier par des retours chariot, des espaces ou des tabulations.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-host-discovery" > + <title>Découverte des hôtes </title> + <para>Une des toutes premières étapes dans la reconnaissance d'un réseau est de réduire un ensemble (quelques fois énorme) de plages d'IP à une liste d'hôtes actifs ou intéressants. Scanner tous les ports de chacune des IP est lent et souvent inutile. Bien sûr, ce qui rend un hôte intéressant dépend grandement du but du scan. Les administrateurs de réseau peuvent être uniquement intéressés par les hôtes où un certain service est actif tandis que les auditeurs de sécurité peuvent s'intéresser à tout équipement qui dispose d'une adresse IP. Alors que l'administrateur se satisferait d'un ping ICMP pour repérer les hôtes de son réseau, l'auditeur pourrait utiliser un ensemble varié de douzaines de paquets de tests (probes) dans le but de contourner les restrictions des pare-feux.</para> + <para>Parce que les besoins de découverte des hôtes sont si différents, Nmap propose une grande panoplie d'options pour individualiser les techniques utilisées. La découverte d'hôte est souvent appelée « scan ping » (ping scan), mais celle-ci va bien au delà d'une simple requête echo ICMP associée à l'incontournable outil <application moreinfo="none" >ping</application>. Les utilisateurs peuvent entièrement éviter l'étape scan ping en listant simplement les cibles (<option>-sL</option>), en désactivant le scan ping(<option>-P0</option>) ou alors en découvrant le réseau avec des combinaisons de tests TCP SYN/ACK, UDP et ICMP. Le but de ces tests est de solliciter une réponse des cibles qui prouvera qu'une adresse IP est effectivement active (utilisée par un hôte ou un équipement réseau). Sur de nombreux réseaux, seul un petit pourcentage des adresses IP sont actives à un moment donné. Ceci est particulièrement courant avec les plages d'adresses privées (définies par la sainte RFC 1918) comme 10.0.0.0/8. Ce réseau comprend 16 millions d'IPs, mais il s'est déjà vu utilisé par des entreprises disposant de moins d'un millier de machines. La découverte des hôtes permet de trouver ces machines dans l'immensité de cet océan d'adresses IP.</para> + <para>Lorsqu'aucune option de découverte n'est spécifiée, Nmap envoie un paquet TCP ACK sur le port 80 ainsi qu'une requête d'echo ICMP à chaque machine cible. Une exception à cette règle est qu'un scan ARP est utilisé pour chaque cible du réseau Ethernet local. Pour les utilisateurs UNIX non-privilégiés, un paquet SYN est utilisé à la place du ACK en utilisant l'appel système <function moreinfo="none" >connect()</function>. Ces options par défaut sont équivalentes à la combinaison d'option <option>-PA -PE</option>. Cette méthode de découverte des hôtes est souvent suffisante lors de scans de réseaux locaux, mais un ensemble plus complet de tests de découverte est recommandé pour les audits de sécurité.</para> + <para>Les options suivantes contrôlent la découverte des hôtes.</para> + <variablelist> + <varlistentry> + <term> + <option>-sL</option> (Liste simplement)</term> + <listitem> + <para>Cette forme dégénérée de découverte d'hôtes liste simplement chaque hôte du(des) réseau(x) spécifié(s), sans envoyer aucun paquet aux cibles. Par défaut, Nmap utilise toujours la résolution DNS inverse des hôtes pour connaître leurs noms. Il est souvent étonnant de constater combien ces simples informations peuvent être utiles. Par exemple, <literal moreinfo="none" >fw.chi.playboy.com</literal> est le pare-feu du bureau de Chicago de Playboy Enterprises. Nmap rend également compte du nombre total d'adresses IP à la fin de son rapport. Cette simple liste est un bon test pour vous assurer que vos adresses IP cibles sont les bonnes. Si jamais ces noms de domaines ne vous disent rien, il vaudrait mieux s'arrêter là afin d'éviter de scanner le réseau de la mauvaise entreprise.</para> + <para>Comme l'idée est de simplement afficher une liste des cibles, les options de fonctionnalités plus haut niveau comme le scan de ports, la détection du système d'exploitation ou la découverte des hôtes ne peuvent pas être combinées avec la liste simple. Si vous voulez juste désactiver la découverte des hôtes mais quand même effectuer des opérations de plus haut niveau, lisez sur l'option <option>-P0</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sP</option>(Scan ping)</term> + <listitem> + <para>Cette option indique à Nmap de n'effectuer <emphasis>que</emphasis> le scan ping (la découverte des hôtes), puis d'afficher la liste des hôtes disponibles qui ont répondu au scan. Aucun autre test (comme le scan des ports ou la détection d'OS) n'est effectué. Ce scan est légèrement plus intrusif que la simple liste, et peut souvent être utilisé dans le même but. Il permet un survol d'un réseau cible sans trop attirer l'attention. Savoir combien d'hôtes sont actifs est plus précieux pour un attaquant que la simple liste de chaque IP avec son nom d'hôte.</para> + <para>Les gestionnaires des systèmes apprécient également cette option. Elle peut facilement être utilisée pour compter le nombre de machines disponibles sur un réseau ou pour contrôler la disponibilité d'un serveur. Cette option est souvent appelée « balayage ping » (ping sweep). Elle est plus fiable que sonder par ping l'adresse de diffusion (broadcast) car beaucoup d'hôtes ne répondent pas à ces requêtes.</para> + <para>L'option <option>-sP</option> envoie une requête d'echo ICMP et un paquet TCP sur le port par défaut (80). Lorsqu'exécutée par un utilisateur non-privilégié, un paquet SYN est envoyé (en utilisant l'appel système <function moreinfo="none" >connect()</function>) sur le port 80 de la cible. Lorsqu'un utilisateur privilégié essaie de scanner des cibles sur un réseau local Ethernet, des requêtes ARP (<option>-PR</option>) sont utilisées à moins que l'option <option>--send-ip</option>soit spécifiée. L'option <option>-sP</option> peut être combinée avec chacun des tests de découverte des hôtes (les options <option>-P*</option>, sauf <option>-P0</option>) pour une plus grand flexibilité. Dès qu'un test de ce type est utilisé avec un numéro de port, il est prépondérante sur les tests par défaut (ACK et requête echo). Quand des pare-feux restrictifs sont présents entre la machine exécutant Nmap et le réseau cible, il est recommandé d'utiliser ces techniques avancées. Sinon des hôtes peuvent être oubliés quand le pare-feu rejète les paquets ou leurs réponses.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PN</option> (Pas de scan ping)</term> + <listitem> + <para>Cette option évite complètement l'étape de découverte des hôtes de Nmap. En temps normal, Nmap utilise cette étape pour déterminer quelles sont les machines actives pour effectuer un scan approfondi. Par défaut, Nmap n'examine en profondeur, avec le scan des ports ou la détection de version, que les machines qui sont actives. Désactiver la détection des hôtes avec l'option + <option>-P0</option>conduit Nmap à effectuer les scans demandés sur <emphasis>toutes</emphasis> les adresses IP cibles spécifiées. Ainsi, si une adresse IP de classe B (/16) est spécifiée à la ligne de commande, toutes les 65 536 adresses IP seront scannées. Le deuxième caractère dans l'option <option>-P0</option> est bien un zéro et non pas la lettre O. La découverte des hôtes est évitée comme avec la liste simple, mais au lieu de s'arrêter et d'afficher la liste des cibles, Nmap continue et effectue les fonctions demandées comme si chaque adresse IP était active. Pour les machines sur un reseau local en ethernet, un scan ARP scan sera quand même effectué (à moins que --send-ip ne soit spécifié) parceque Nmap a besoin de l'adresse MAC pour les scans ulterieurs. Cette option s'appelait P0 (avec un zéro) auparavant, mais a été renommée afin d'éviter la confusion avec le Ping par protocoles PO (lettre O).</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PS [portlist]</option>(Ping TCP SYN) + </term> + <listitem> + <para> + Cette option envoie un paquet TCP vide avec le drapeau (flag) SYN activé. La destination par défaut de ce paquet est le port 80 (configurable à la compilation en changeant la définition DEFAULT_TCP_PROBE_PORT dans <filename moreinfo="none" >nmap.h</filename> ), mais un autre port peut être spécifié en paramètre (ex.: <option>-PS22,23,25,80,113,1050,35000</option>), auquel cas les paquets de tests (probes) seront envoyés en parallèle sur chaque port cible.</para> + <para>Le drapeau SYN fait croire que vous voulez établir une connexion sur le système distant. Si le port de destination est fermé, un paquet RST (reset) est renvoyé. Si le port s'avère être ouvert, la cible va entamer la seconde étape de l'établissement de connexion TCP en 3 temps (TCP 3-way-handshake) en répondant par un paquet TCP SYN/ACK. La machine exécutant Nmap avortera alors la connexion en cours d'établissement en répondant avec un paquet RST au lieu d'un paquet ACK qui finaliserait normalement l'établissement de la connexion. Le paquet RST est envoyé par le noyau (kernel) de la machine exécutant Nmap en réponse au paquet SYN/ACK inattendu; ce n'est pas Nmap lui-même qui l'émet.</para> + <para>Nmap ne tient pas compte si le port est réellement ouvert ou fermé. Les paquets RST ou SYN/ACK évoqués précédemment indiquent tout deux que l'hôte est disponible et réceptif.</para> + <para>Sur les systèmes UNIX, seuls les utilisateurs privilégiés <literal moreinfo="none" >root</literal> sont généralement capables d'envoyer et de recevoir des paquets TCP bruts (raw packets). Pour les utilisateurs non-privilégiés, Nmap contourne cette restriction avec l'appel système connect() utilisé sur chaque port de la cible. Ceci revient à envoyer un paquet SYN sur l'hôte cible pour établir une connexion. Si connect() réussi ou échoue avec ECONNREFUSED, la pile TCP/IP sous-jacente doit avoir reçu soit un SYN/ACK soit un RST et l'hôte est alors considéré comme étant actif. Si la tentative de connexion est toujours en cours jusqu'à l'expiration du délai d'établissement, l'hôte est considéré comme étant inactif. Cette technique est aussi utilisée pour les connexions IPv6, du fait que les paquets bruts IPv6 ne sont pas encore supportés par Nmap.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PA [portlist]</option>(Ping TCP ACK)</term> + <listitem> + <para>Le ping TCP ACK ressemble fortement aux tests SYN précédemment évoqués. À la différence que, comme on l'imagine bien, le drapeau TCP ACK est utilisé à la place du drapeau SYN. Un tel paquet ACK acquitte normalement la réception de données dans une connexion TCP précédemment établie, or ici cette connexion n'existe pas. Ainsi, l'hôte distant devrait systématiquement répondre par un paquet RST qui trahirait son existence.</para> + <para>L'option <option>-PA</option> utilise le même port par défaut que le test SYN (80), mais peut aussi prendre une liste de ports de destination dans le même format. Si un utilisateur non-privilégié essaie cette option, ou si une cible IPv6 est spécifiée, la technique connect() précédemment évoquée est utilisée. Cette technique est imparfaite car connect() envoie un paquet SYN et pas un ACK. </para> + <para>La raison pour laquelle Nmap offre à la fois les tests SYN et ACK est de maximiser les chances de contourner les pare-feux. De nombreux administrateurs configurent leurs routeurs et leurs pare-feux pour bloquer les paquets entrants SYN sauf ceux destinés aux services publics comme les sites Web de l'entreprise ou le serveur de messagerie. Ceci empêche les autres connexions entrantes dans l'organisation, tout en permettant un accès complet en sortie à l'Internet. Cette approche sans état de connexion est peu consommatrice des ressources des pare-feux/routeurs et est largement supportée dans les dispositifs de filtrage matériels ou logiciels. Le pare-feu logiciel Linux Netfilter/iptables par exemple propose l'option <option>--syn</option> qui implante cette approche sans état (stateless). Quand de telles règles de pare-feu sont mises en place, les paquets de tests SYN ( <option>-PS</option>) seront certainement bloqués lorsqu'envoyés sur des ports fermés. Dans ces cas là, les tests ACK contournent ces règles, prenant ainsi toute leur saveur.</para> + <para>Un autre type courant de pare-feux utilise des règles avec état de connexion (statefull) qui jettent les paquets inattendus. Cette fonctionnalité était à la base fréquente sur les pare-feux haut-de-gamme, mais elle s'est répandue avec le temps. Le pare-feu Linux Netfilter/iptables supporte ce mécanisme grâce à l'option <option>--state</option> qui catégorise les paquets selon les états de connexion. Un test SYN marchera certainement mieux contre ces systèmes, car les paquets ACK sont généralement considérés comme inattendus ou bogués et rejetés. Une solution à ce dilemme est d'envoyer à la fois des paquets de tests SYN et ACK en utilisant conjointement les options <option>-PS</option> et <option>-PA</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PU [portlist]</option>(Ping UDP)</term> + <listitem> + <para>Une autre option de découverte des hôtes est le ping UDP, qui envoie un paquet UDP vide (à moins que l'option <option>--data-length</option> ne soit utilisée) aux ports spécifiés. La liste des ports est écrite dans le même format que les options <option>-PS</option> et <option>-PA</option> précédemment évoquées. Si aucun port n'est spécifié, le port par défaut est le 31338. Cette valeur par défaut peut être modifiée à la compilation en changeant la définition DEFAULT_UDP_PROBE_PORT dans le fichier <filename moreinfo="none" >nmap.h</filename>. Un numéro de port très peu courant est utilisé par défaut, car envoyer des paquets sur un port ouvert n'est que peu souhaitable pour ce type de scan particulier.</para> + <para>Lorsqu'on atteint un port fermé sur la cible, le test UDP s'attend à recevoir un paquet ICMP « port unreachable » en retour. Ceci indique à Nmap que la machine est active et disponible. De nombreuses autres erreurs ICMP, comme « host/network unreachable » ou « TTL exceeded » indiquent un hôte inactif ou inaccessible. Une absence de réponse est également interprétée de la sorte. Si un port ouvert est atteint, la majorité des services ignorent simplement ce paquet vide et ne répondent rien. Ceci est la raison pour laquelle le port par défaut du test est le 31338, qui n'a que très peu de chances d'être utilisé. Très peu de services, comme chargen, répondront à un paquet UDP vide, dévoilant ainsi à Nmap leur présence.</para> + <para>L'avantage principal de ce type de scan est qu'il permet de contourner les pare-feux et dispositifs de filtrage qui n'observent que TCP. Les routeurs sans-fil Linksys BEFW11S4 par exemple sont de ce type. L'interface externe de cet équipement filtre tous les ports TCP par défaut, mais les paquets de tests UDP se voient toujours répondre par des messages ICMP « port unreachable », rendant ainsi l'équipement désuet.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PE</option>; + <option>-PP</option>; + <option>-PM</option>(Types de ping ICMP)</term> + <listitem> + <para>En plus des inhabituels types de découverte des hôtes TCP et UDP précédemment évoqués, Nmap peut également envoyer les paquets standard émis par l'éternel programme <application moreinfo="none" >ping</application>. Nmap envoie un paquet ICMP type 8 (echo request) aux adresses IP cibles, attendant un type 0 (echo reply) en provenance des hôtes disponibles. Malheureusement pour les explorateurs de réseaux, de nombreux hôtes et pare-feux bloquent désormais ces paquets, au lieu d'y répondre comme indiqué par la <ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt" >RFC 1122</ulink>. Pour cette raison, les scans « purs ICMP » sont rarement fiables contre des cibles inconnues d'Internet. Cependant, pour les administrateurs surveillants un réseau local cette approche peut être pratique et efficace. Utilisez l'option <option>-PE</option> pour activer ce comportement de requête echo.</para> + <para>Même si la requête echo est le standard de la requête ICMP, Nmap ne s'arrête pas là, Le standard ICMP (<ulink url="http://www.rfc-editor.org/rfc/rfc792.txt" >RFC 792</ulink>) spécifie également les requêtes « timestamp », « information » et « adress mask », dont les codes sont respectivement 13, 15 et 17. Si le but avoué de ces requêtes est d'obtenir des informations comme le masque réseau ou l'heure courante, elles peuvent facilement être utilisées pour la découverte des hôtes: un système qui y répond est actif et disponible. Nmap n'implante actuellement pas les requêtes d'informations, car elles ne sont que rarement supportées. La RFC 1122 insiste sur le fait <quote>qu'un hôte ne DEVRAIT PAS implanter ces messages</quote>. Les requêtes timestamp et masque d'adresse peuvent être émises avec les options <option>-PP</option> et <option>-PM</option>, respectivement. Une réponse timestamp (code ICMP 14) ou masque d'adresse (code ICMP 18) révèle que l'hôte est disponible. Ces deux requêtes peuvent être très utiles quand les administrateurs bloquent spécifiquement les requêtes echo mais oublient que les autres requêtes ICMP peuvent être utilisées dans le même but.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PR</option>(Ping ARP)</term> + <listitem> + <para>Un des usages les plus courant de Nmap est de scanner un LAN Ethernet. Sur la plupart des LANS, particulièrement ceux qui utilisent les plages d'adresses privées de la RFC 1918, la grande majorité des adresses IP sont inutilisées à un instant donné. Quand Nmap essaie d'envoyer un paquet IP brut (raw packet) comme une requête ICMP echo, le système d'exploitation doit déterminer l'adresse matérielle (ARP) correspondant à la cible IP pour correctement adresser la trame Ethernet. Ceci est souvent lent et problématique, car les systèmes d'exploitation n'ont pas été écrits pour gérer des millions de requêtes ARP contre des hôtes indisponibles en un court intervalle de temps.</para> + <para>Les requêtes ARP sont prises en charge par Nmap qui dispose d'algorithmes optimisés pour gérer le scan ARP. Si Nmap reçoit une réponse à ces requêtes, il n'a pas besoin de poursuivre avec les ping basés sur IP car il sait déjà que l'hôte est actif. Ceci rend le scan ARP bien plus rapide et fiable que les scans basés sur IP. Ainsi, c'est le comportement adopté par défaut par Nmap quand il remarque que les hôtes scannés sont sur le réseau local. Même si d'autres types de ping (comme + <option>-PE</option> ou <option>-PS</option>) sont spécifiés, Nmap utilise ARP pour chaque cible qui sont sur le même sous-réseau que la machine exécutant Nmap. Si vous ne souhaitez vraiment pas utiliser le scan ARP, utilisez l'option <option>--send-ip</option> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PO</option>[protolist] (IP Protocol Ping)</term> + <listitem> + <para>Une autre otpion de découverte d'hôtes est le Ping IPProto, qui envoie des paquets IP avec les numéros de protocole(s) spécifiés dans le champ Protocol de l'en-tête IP. La liste des protocoles prend le même format qu'avec la liste des ports dans les options de découverte en TCP et UDP présentées précédement. Si aucun protocole n'est précisé, par défaut ce sont des paquets IP multiples ICMP (protocol 1), IGMP (protocol 2), et IP-in-IP (protocol 4) qui sont envoyés. Les protocoles par défaut peuvent être configurés à la compilation en changeant DEFAULT_PROTO_PROBE_PORT_SPEC dans nmap.h. Notez que pour ICMP, IGMP, TCP (protocol 6), et UDP (protocol 17), les paquets sont envoyés avec l'en-tête supplémentaire cependant que les autres protocoles sont envoyés sans données supplémentaires en sus de l'en-tête IP (à moins que l'option --data-length ne soit spécifiée).</para> + <para>Cette méthode de découverte des hôtes recherche les réponses dans le même protocole que la requète, ou le message ICMP Protocol Unreachable qui signifie que le protocole spécifié n'est pas supporté par l'hôte (ce qui implique indirectement qu'il est connecté).</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--reason</option>(Raisons données à l'état de l'hôte et des ports)</term> + <listitem> + <para>Montre les raisons pour lesquelles chaque port est désigné par un état spécifique et un hôte connecté ou non. Cette option affiche le type de paquet qui à déterminé l'état du port ou de l'hôte. Par exemple, un paquet RST en provenance d'un port fermé ou un echo relpy pour un hôte connecté. L'information que Nmap peut fournir est déterminée par le type de scan ou de ping. Le scan SYN et le ping SYN (-sS et -PT) sont très détaillés, mais les TCP connect scan et ping (-sT) sont limités par l'implémentation de l'appel système connect. Cette fonctionnalité est automatiquement activée par le mode de deboguage (-d) et les résultats sont enregistrés dans la sortie XML même si cette option n'est pas spécifiée.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-n</option>(Pas de résolution DNS) </term> + <listitem> + <para>Indique à Nmap de ne <emphasis>jamais</emphasis> faire la résolution DNS inverse des hôtes actifs qu'il a trouvé. Comme la résolution DNS est souvent lente, ceci accélère les choses. </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-R</option>(Résolution DNS pour toutes les cibles)</term> + <listitem> + <para> Indique à Nmap de <emphasis>toujours</emphasis>faire la résolution DNS inverse des adresses IP cibles. Normalement, ceci n'est effectué que si une machine est considérée comme active. </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--dns-servers <serveur1[,serveur2],...></option> (Serveurs à utiliser pour les requètes DNS inverses) +</term> + <listitem> + <para>Par defaut Nmap va essayer de déterminer vos serveurs DNS + (pour le résolution rDNS) depuis votre fichier resolv.conf (UNIX) ou + le registre (Win32). En alternative, vous pouvez utiliser cette option + pour spécifier des serveurs alternatifs. Cette option n'est pas honorée + si vous utilisez <option>--system-dns</option> ou un scan + IPv6 . Utiliser plusieurs serveurs DNS est souvent plus rapide, + spécialement si vous utilisez les serveurs dédiés pour votre + espace d'adresses cible. Cette option peut aussi améliorer la discretion, comme + vos requètes peuvent être relayées par n'importe quel serveur + DNS récursif sur Internet.</para> + <para>Cette option est aussi utile lors du scan de reseaux + privés. Parfois seuls quelques serveurs de noms fournissent + des informations rDNS propres, et vous pouvez même ne pas savoir où ils + sont. Vous pouvez scanner le reseau sur le port 53 (peut être + avec une détection de version), puis essayer un list scan + (<option>-sL</option>) spécifiant chaque serveur de nom un a la fois + avec <option>--dns-servers</option> jusqu'a en trouver un qui + fonctionne.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--system-dns</option>(Utilise la résolution DNS du système)</term> + <listitem> + <para>Par défaut, Nmap résout les adresses IP en envoyant directement les requêtes aux serveurs de noms configurés sur votre machine et attend leurs réponses. De nombreuses requêtes (souvent des douzaines) sont effectuées en parallèle pour améliorer la performance. Spécifiez cette option si vous souhaitez utiliser la résolution de noms de votre système (une adresse IP à la fois par le biais de l'appel getnameinfo()). Ceci est plus lent est rarement utile à moins qu'il n'y ait une procédure erronée dans le code de Nmap concernant le DNS -- nous contacter s'il vous plaît dans cette éventualité. La résolution système est toujours utilisée pour les scans IPv6.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-port-scanning-basics" > + <title>Les bases du scan de ports</title> + <para>Même si le nombre de fonctionnalités de Nmap a considérablement augmenté au fil des ans, il reste un scanner de ports efficace, et cela reste sa fonction principale. La commande de base <command moreinfo="none" >nmap <replaceable>target</replaceable> + </command> scanne plus de 1 660 ports TCP de l'hôte <replaceable>target</replaceable>. Alors que de nombreux autres scanners de ports ont partitionné les états des ports en ouverts ou fermés, Nmap a une granularité bien plus fine. Il divise les ports selon six états: + <literal moreinfo="none" >ouvert (open)</literal>, + <literal moreinfo="none" >fermé (closed)</literal>, + <literal moreinfo="none" >filtré (filtered)</literal>, + <literal moreinfo="none" >non-filtré (unfiltered)</literal>, + <literal moreinfo="none" >ouvert|filtré (open|filtered)</literal>, et + <literal moreinfo="none" >fermé|filtré (closed|filtered)</literal>. + </para> + <para>Ces états ne font pas partie des propriétés intrinsèques des ports eux-mêmes, mais décrivent comment Nmap les perçoit. Par exemple, un scan Nmap depuis le même réseau que la cible pourrait voir le port 135/tcp comme ouvert alors qu'un scan au même instant avec les mêmes options au travers d'Internet pourrait voir ce même port comme <literal moreinfo="none" >filtré</literal>.</para> + <variablelist> + <title>Les six états de port reconnus par Nmap </title> + <varlistentry> + <term>ouvert (open)</term> + <listitem> + <para>Une application accepte des connexions TCP ou des paquets UDP sur ce port. Trouver de tels ports est souvent le but principal du scan de ports. Les gens soucieux de la sécurité savent pertinemment que chaque port ouvert est un boulevard pour une attaque. Les attaquants et les pen-testers veulent exploiter ces ports ouverts, tandis que les administrateurs essaient de les fermer ou de les protéger avec des pare-feux sans gêner leurs utilisateurs légitimes. Les ports ouverts sont également intéressants pour des scans autres que ceux orientés vers la sécurité car ils indiquent les services disponibles sur le réseau.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>fermé (closed)</term> + <listitem> + <para>Un port fermé est accessible (il reçoit et répond aux paquets émis par Nmap), mais il n'y a pas d'application en écoute. Ceci peut s'avérer utile pour montrer qu'un hôte est actif (découverte d'hôtes ou scan ping), ou pour la détection de l'OS. Comme un port fermé est accessible, il peut être intéressant de le scanner de nouveau plus tard au cas où il s'ouvrirait. Les administrateurs pourraient désirer bloquer de tels ports avec un pare-feu, mais ils apparaîtraient alors dans l'état filtré décrit dans la section suivante.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>filtré (filtered)</term> + <listitem> + <para>Nmap ne peut pas toujours déterminer si un port est ouvert car les dispositifs de filtrage des paquets empêchent les paquets de tests (probes) d'atteindre leur port cible. Le dispositif de filtrage peut être un pare-feu dédié, des règles de routeurs filtrants ou un pare-feu logiciel. Ces ports ennuient les attaquants car ils ne fournissent que très peu d'informations. Quelques fois ils répondent avec un message d'erreur ICMP de type 3 code 13 (« destination unreachable: communication administratively prohibited »), mais les dispositifs de filtrage qui rejettent les paquets sans rien répondre sont bien plus courants. Ceci oblige Nmap à essayer plusieurs fois au cas où ces paquets de tests seraient rejetés à cause d'une surcharge du réseau et pas du filtrage. Ceci ralenti terriblement les choses.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>non-filtré (unfiltered)</term> + <listitem> + <para>L'état non-filtré signifie qu'un port est accessible, mais que Nmap est incapable de déterminer s'il est ouvert ou fermé. Seul le scan ACK, qui est utilisé pour déterminer les règles des pare-feux, catégorise les ports dans cet état. Scanner des ports non-filtrés avec un autre type de scan, comme le scan Windows, SYN ou FIN peut aider à savoir si un port est ouvert ou pas.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>ouvert|filtré (open|filtered)</term> + <listitem> + <para>Nmap met dans cet état les ports dont il est incapable de déterminer l'état entre ouvert et filtré. Ceci arrive pour les types de scans où les ports ouverts ne renvoient pas de réponse. L'absence de réponse peut aussi signifier qu'un dispositif de filtrage des paquets a rejeté le test ou les réponses attendues. Ainsi, Nmap ne peut s'assurer ni que le port est ouvert, ni qu'il est filtré. Les scans UDP, protocole IP, FIN, Null et Xmas catégorisent les ports ainsi.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>fermé|filtré (closed|filtered)</term> + <listitem> + <para>Cet état est utilisé quand Nmap est incapable de déterminer si un port est fermé ou filtré. Cet état est seulement utilisé par le scan Idle basé sur les identifiants de paquets IP.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-port-scanning-techniques" > + <title>Techniques de scan de ports</title> + <para>Comme un débutant tâchant d'effectuer une réparation automobile, je peux me battre pendant des heures en essayant d'utiliser convenablement mes rudimentaires outils (marteau, clefs, etc.) pour la tâche à laquelle je me suis attablé. Une fois que j'ai lamentablement échoué et que j'ai fait remorquer ma guimbarde par un vrai mécanicien, à chaque fois il farfouille dans sa grosse caisse à outils pour y trouver le parfait bidule qui, d'un coup de cuillère à pot, répare le truc. L'art du scan de port, c'est la même chose. Les experts connaissent des douzaines de techniques de scan et choisissent la bonne (ou une combinaison) pour une tâche donnée. D'un autre côté, les utilisateurs inexpérimentés et les script kiddies essaient de tout résoudre avec le scan SYN par défaut. Comme Nmap est gratuit, la seule barrière à franchir pour atteindre la maîtrise du scan est la connaissance. C'est bien mieux que l'automobile, où il faut une grande expérience pour déterminer que vous avez besoin d'une plieuse à tablier hydraulique, mais où quand bien même il faut encore payer des centaines d'euros pour en disposer.</para> + <para>La plupart des types de scans ne sont disponibles que pour les utilisateurs privilégiés. Ceci est dû au fait qu'ils émettent et reçoivent des paquets bruts (raw), qui nécessitent les droits root sur les systèmes UNIX. L'utilisation d'un compte administrateur est conseillé sous Windows, bien que Nmap puisse fonctionner avec des utilisateurs non-privilégiés si WinPcap est déjà chargé avec l'OS. Ce besoin des droits root était une sérieuse restriction quand Nmap a été diffusé en 1997, car beaucoup d'utilisateurs avaient seulement accès à des comptes Internet partagés. Maintenant, le monde est différent. Les ordinateurs sont moins chers, bien plus de gens disposent d'un accès 24/24 direct à Internet et les systèmes UNIX de bureau (comme Linux et Mac OS X) sont répandus. Une version Windows de Nmap est désormais disponible, permettant ainsi de le lancer sur encore plus de machines. Pour toutes ces raisons, les utilisateurs ont bien moins besoin de lancer Nmap depuis des comptes Internet limités. Ceci est heureux, car les options privilégiés rendent Nmap bien plus puissant et flexible.</para> + <para>Si Nmap essaie de produire des résultats précis, il faut garder à l'esprit que toute sa perspicacité est basée sur les paquets renvoyés par les machines cibles (ou les pare-feux qui les protègent). De tels hôtes ne sont pas toujours dignes de confiance et peuvent répondre dans le but de d'induire Nmap en erreur. Les hôtes qui ne respectent pas les RFCs et ne répondent pas comme ils devraient sont encore plus courants. Les scans FIN, Null et Xmas sont les plus sensibles à ce problème. Ces points sont spécifiques à certains types de scan et sont donc abordés dans leur section propre de la documentation.</para> + <para>Cette section documente la douzaine de techniques de scan de ports gérées par Nmap. Les méthodes ne peuvent pas être utilisés simultanément, excepté le scan UDP (<option>-sU</option>) qui peut être combiné avec chacun des types de scan TCP. A titre d'aide mémoire, les options de type de scan sont de la forme <option>-s<replaceable>C</replaceable> + </option>, où <replaceable>C</replaceable>est un caractère prépondérant dans le nom du scan, souvent le premier. La seule exception est le désuet scan par rebond FTP (<option>-b</option>). Par défaut, Nmap effectue un scan SYN, bien qu'il y substitue un scan connect() si l'utilisateur ne dispose pas des droits suffisants pour envoyer des paquets bruts (qui requièrent les droits root sous UNIX) ou si des cibles IPv6 sont spécifiées. Des scans listés dans cette section, les utilisateurs non-privilégiés peuvent seulement exécuter les scans connect() et le scan par rebond FTP. + </para> + <variablelist> + <varlistentry> + <term> + <option>-sS</option>(Scan TCP SYN)</term> + <listitem> + <para> + Le scan SYN est celui par défaut et le plus populaire pour de bonnes raisons. Il peut être exécuté rapidement et scanner des milliers de ports par seconde sur un réseau rapide lorsqu'il n'est pas entravé par des pare-feux. Le scan SYN est relativement discret et furtif, vu qu'il ne termine jamais les connexions TCP. Il marche également contre toute pile respectant TCP, au lieu de dépendre des particularités environnementales spécifiques comme les scans Fin/Null/Xmas, Maimon ou Idle le sont. Il permet de plus une différentiation fiable entre les états <literal moreinfo="none" >ouvert</literal>, <literal moreinfo="none" >fermé</literal> et <literal moreinfo="none" >filtré</literal>.</para> + <para>Cette technique est souvent appelée le scan demi-ouvert (half-open scanning), car il n'établi pas pleinement la connexion TCP. Il envoie un paquet SYN et attend sa réponse, comme s'il voulait vraiment ouvrir une connexion. Une réponse SYN/ACK indique que le port est en écoute (ouvert), tandis qu'une RST (reset) indique le contraire. Si aucune réponse n'est reçue après plusieurs essais, le port est considéré comme étant filtré. Le port l'est également si un message d'erreur « unreachable ICMP (type 3, code 1,2, 3, 9, 10 ou 13) » est reçu.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sT</option>(Scan TCP connect())</term> + <listitem> + <para>Le scan TCP connect() est le type de scan par défaut quand le SYN n'est pas utilisable. Tel est le cas lorsque l'utilisateur n'a pas les privilèges pour les paquets bruts (raw packets) ou lors d'un scan de réseaux IPv6. Plutôt que d'écrire des paquets bruts comme le font la plupart des autres types de scan, Nmap demande au système d'exploitation qui l'exécute d'établir une connexion au port de la machine cible grâce à l'appel système <literal moreinfo="none" >connect()</literal>. C'est le même appel système haut-niveau qui est appelé par les navigateurs Web, les clients P2P et la plupart des applications réseaux qui veulent établir une connexion. Cet appel fait partie de l'interface d'application connue sous le nom de « Berkeley Sockets API ». Au lieu de lire les réponses brutes sur le support physique, Nmap utilise cette application API pour obtenir l'état de chaque tentative de connexion.</para> + <para>Si le scan SYN est disponible, il vaut mieux l'utiliser. Nmap a bien moins de contrôles sur l'appel système haut niveau <literal moreinfo="none" >connect()</literal> que sur les paquets bruts, ce qui le rend moins efficace. L'appel système complète les connexions ouvertes sur les ports cibles au lieu de les annuler lorsque la connexion est à demie ouverte, comme le fait le scan SYN. Non seulement c'est plus long et demande plus de paquets pour obtenir la même information, mais de plus la probabilité que les cibles activent la connexion est plus grande. Un IDS décent le fera, mais la plupart des machines ne disposent pas de ce système d'alarme. De nombreux services sur les systèmes UNIX standards noteront cette connexion dans le journal, accompagné d'un message d'erreur sibyllin si Nmap ouvre puis referme la connexion sans n'envoyer aucune donnée. Les services réseaux les plus piteux risquent même de tomber en panne, mais c'est assez rare. Un administrateur qui verrait un tas de tentatives de connexions dans ses journaux en provenance d'une seule machine devrait se rendre compte qu'il a été scanné.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sU</option>(Scan UDP)</term> + <listitem> + <para>Même si les services les plus connus d'Internet son basés sur le protocole TCP, les services + <ulink url="http://www.rfc-editor.org/rfc/rfc768.txt" >UDP</ulink> sont aussi largement utilisés. DNS, SNMP ou DHCP (ports 53, 161/162 et 67/68) sont les trois exemples les plus courants. Comme le scan UDP est généralement plus lent et plus difficile que TCP, certains auditeurs de sécurité les ignorent. C'est une erreur, car les services UDP exploitables sont courants et les attaquants eux ne les ignoreront pas. Par chance, Nmap peut aider à répertorier les ports UDP.</para> + <para>Le scan UDP est activé avec l'option<option>-sU</option>. Il peut être combiné avec un scan TCP, comme le scan SYN ( <option>-sS</option>), pour vérifier les deux protocoles lors de la même exécution de Nmap.</para> + <para>Le scan UDP envoie un en-tête UDP (sans données) à chaque port visé. Si un message ICMP « port unreachable (type 3, code 3) » est renvoyé, le port est alors <literal moreinfo="none" >fermé</literal>. Les autres messages d'erreur « unreachable ICMP (type 3, codes 1, 2, 9, 10, or 13) » rendront le port <literal moreinfo="none" >filtré</literal>. À l'occasion, il arrive qu'un service répond par un paquet UDP, prouvant que le port est dans l'état <literal moreinfo="none" >ouvert</literal>. Si aucune réponse n'est renvoyée après plusieurs essais, le port est considéré comme étant <literal moreinfo="none" >ouvert|filtré</literal>. Cela signifie que le port peut être soit ouvert, soit qu'un dispositif de filtrage bloque les communications. Le scan de versions ( <option>-sV</option>) peut être utilisé pour différencier les ports ouverts de ceux filtrés.</para> + <para>Une des grandes difficultés avec le scan UDP est de l'exécuter rapidement. Les ports ouverts et filtrés ne renvoient que rarement des réponses, laissant Nmap expirer son délai de retransmission au cas où les paquets se soient perdus. Les ports fermés posent encore un plus grand problème: ils renvoient normalement une erreur ICMP « port unreachable ». Mais à la différence des paquets RST renvoyés par les ports TCP fermés en réponse à un scan SYN ou à un connect(), de nombreux hôtes limitent par défaut la cadence d'émission de ces messages. Linux et Solaris étant particulièrement stricts à ce sujet. Par exemple, le kernel 2.4.20 limite cette cadence des destinations inaccessibles (« destination unreachable ») à un par seconde (cf.<filename moreinfo="none" >net/ipv4/icmp.c</filename>).</para> + <para>Nmap détecte cette limitation de fréquence et s'y ralenti conformément afin d'éviter de saturer le réseau avec des paquets inutiles que la machine cible rejettera. Malheureusement, une limitation à la Linux d'un paquet par seconde fera qu'un scan des 65 536 ports prendra plus de 18 heures. Les idées pour accélérer les scans UDP incluent le scan des cibles en parallèle, ne scanner que les ports les plus courants en premier, scanner derrière le pare-feu et utiliser l'option + <option>--host-timeout</option>pour éviter les hôtes les plus lents.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sN</option>; + <option>-sF</option>; + <option>-sX</option> + (Scans TCP Null, FIN et Xmas) + </term> + <listitem> + <para>Ces trois types de scans (d'autres sont possibles en utilisant l'option <option>--scanflags</option> décrite dans la section suivante) exploitent une subtile faille de la <ulink url="http://www.rfc-editor.org/rfc/rfc793.txt" >RFC TCP</ulink> pour différencier les ports entre <literal moreinfo="none" >ouverts</literal> et <literal moreinfo="none" >fermés</literal>. La page 65 indique que <quote>si le port [de destination] est dans l'état fermé... un segment ne contenant pas le drapeau RST provoque l'émission d'un paquet RST comme réponse.</quote>. La page suivante indique que pour les paquets envoyés à des ports sans aucun des drapeaux SYN, RST ou ACK activés: <quote>il est peut vraisemblable que cela arrive, mais si cela est le cas, il faut rejeter le segment.</quote> + </para> + <para>Pour les systèmes respectant ce texte de la RFC, chaque paquet ne contenant ni SYN, ni RST, ni ACK se voit renvoyé un RST si le port est fermé et aucune réponse si le port est ouvert. Tant qu'aucun de ces drapeaux n'est utilisé, toute combinaison des trois autres (FIN, PSH et URG) son valides. Nmap exploite cela avec les trois types de scans:</para> + <variablelist> + <varlistentry> + <term>Scan Null (<option>-sN</option>)</term> + <listitem> + <para>N'active aucun des bits (les drapeaux de l'en-tête TCP vaut 0).</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Scan FIN (<option>-sF</option>)</term> + <listitem> + <para>N'active que le bit FIN.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Scan Xmas (<option>-sX</option>)</term> + <listitem> + <para>Active les drapeaux FIN, PSH et URG, illuminant le paquet comme un arbre de Noël (NDT: la fracture cognitive entre la culture anglo-saxonne et française se ressent fortement dans cette traduction...).</para> + </listitem> + </varlistentry> + </variablelist> + <para> + Ces trois types de scan ont exactement le même comportement, sauf pour les drapeaux TCP utilisés dans des paquets de tests (probes packets). Si un RST est reçu, le port est considéré comme étant <literal moreinfo="none" >fermé</literal>, tandis qu'une absence de réponse signifiera qu'il est dans l'état <literal moreinfo="none" >ouvert|filtré</literal>. Le port est marqué comme <literal moreinfo="none" >filtré</literal> si un message d'erreur ICMP « unreachable (type 3, code 1, 2, 3, 9, 10 ou 13) » est reçu.</para> + <para>L'avantage principal de ces types de scans est qu'ils peuvent furtivement traverser certains pare-feux ou routeurs filtrants sans état de connexion (non-statefull). Un autre avantage est qu'ils sont même un peu plus furtifs que le scan SYN. N'y comptez pas trop dessus cependant -- la plupart des IDS modernes sont configurés pour les détecter. L'inconvénient majeur est que tous les systèmes ne respectent pas la RFC 793 à la lettre. Plusieurs systèmes renvoient des RST aux paquets quelque soit l'état du port de destination, qu'il soit ouvert ou pas. Ceci fait que tous les ports sont considérés comme<literal moreinfo="none" >fermé</literal>. Les plus connus des systèmes qui ont ce comportement sont Microsoft Windows, plusieurs équipements Cisco, BSDI et IBM OS/400. Ce type de scan fonctionne cependant très bien contre la plupart des systèmes basés sur UNIX. Un autre désagrément de ce type de scan et qu'ils ne peuvent pas distinguer les ports <literal moreinfo="none" >ouverts</literal>de certains autres qui sont <literal moreinfo="none" >filtrés</literal>, vous laissant face à un laconique <literal moreinfo="none" >ouvert|filtré</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sA</option>(Scan TCP ACK)</term> + <listitem> + <para>Ce type de scan est différent des autres abordés jusqu'ici, dans le sens où ils ne peuvent pas déterminer si un port est <literal moreinfo="none" >ouvert</literal>(ni même <literal moreinfo="none" >ouvert|filtré</literal>). Il est utilisé pour établir les règles des pare-feux, déterminant s'ils sont avec ou sans états (statefull/stateless) et quels ports sont filtrés.</para> + <para>Le scan ACK n'active que le drapeau ACK des paquets (à moins que vous n'utilisiez l'option <option>--scanflags</option>). Les systèmes non-filtrés réagissent en retournant un paquet RST. Nmap considère alors le port comme <literal moreinfo="none" >non-filtré</literal>, signifiant qu'il est accessible avec un paquet ACK, mais sans savoir s'il est réellement <literal moreinfo="none" >ouvert</literal> ou <literal moreinfo="none" >fermé</literal>. Les ports qui ne répondent pas ou renvoient certains messages d'erreur ICMP (type 3, code 1, 2, 3, 9, 10, ou 13), sont considérés comme <literal moreinfo="none" >filtrés</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sW</option>(Scan de fenêtre TCP)</term> + <listitem> + <para>Le scan de fenêtre TCP est exactement le même que le scan ACK à la différence près qu'il exploite un détail de l'implémentation de certains systèmes pour identifier les ports fermés des autres, au lieu de toujours afficher <literal moreinfo="none" >non-filtré</literal>lorsqu'un RST est renvoyé. Sur certains systèmes, les ports ouverts utilisent une taille de fenêtre TCP positive (même pour les paquets RST), tandis que les ports fermés ont une fenêtre de taille nulle. Ainsi, au lieu de toujours afficher <literal moreinfo="none" >non-filtré</literal> lorsqu'un RST est reçu, le scan de fenêtre indique que le port est <literal moreinfo="none" >ouvert</literal> ou <literal moreinfo="none" >fermé</literal> selon que la taille de fenêtre TCP de ce paquet RST est respectivement positive ou nulle.</para> + <para>Ce scan repose sur un détail d'implémentation d'une minorité de systèmes Internet, vous ne pouvez donc pas toujours vous y fier. Les systèmes qui ne le supportent pas vont certainement se voir considérés leurs ports comme <literal moreinfo="none" >fermés</literal>. Bien sûr, il se peut que la machine n'ait effectivement aucun port ouvert. Si la plupart des ports scannés sont <literal moreinfo="none" >fermés</literal> mais que quelques-uns courants, comme le 22, 25 ou le 53, sont <literal moreinfo="none" >filtrés</literal>, le système est vraisemblablement prédisposé à ce type de scan. Quelquefois, les systèmes ont le comportement exactement inverse. Si votre scan indique que 1 000 ports sont ouverts et que 3 seulement sont fermés ou filtrés, ces trois derniers sont certainement ceux qui sont ouverts.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sM</option>(Scan TCP Maimon)</term> + <listitem> + <para>Le scan Maimon est nommé ainsi d'après celui qui l'a découvert, Uriel Maimon. Il a décrit cette technique dans le numéro 49 de Phrack Magazine (Novembre 1996). Nmap, qui inclut cette technique, a été publié deux numéros plus tard. Cette technique est la même que les scans NUll, FIN et Xmas, à la différence près que le paquet de test est ici un FIN/ACK. Conformément à la RFC 793 (TCP), un paquet RST devrait être renvoyé comme réponse à un tel paquet, et ce, que le port soit ouvert ou non. Uriel a cependant remarqué que de nombreux systèmes basés sur BSD rejettent tout bonnement le paquet si le port est ouvert.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--scanflags</option>(Scan TCP personnalisé)</term> + <listitem> + <para> + Les utilisateurs réellement experts de Nmap ne veulent pas se limiter aux seuls types de scans proposés. L'option + <option>--scanflags</option>vous permet de créer votre propre type de scan en spécifiant vos propres combinaisons de drapeaux TCP. Laisser courir votre imagination, tout en contournant les systèmes de détection d'intrusion dont les vendeurs n'ont fait qu'ajouter des règles spécifiques d'après la documentation Nmap!</para> + <para>L'argument de l'option <option>--scanflags</option> peut être soit un nombre comme 9 (PSH et FIN), mais l'utilisation des noms symboliques est plus facile. Mélanger simplement les drapeaux <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> et <literal moreinfo="none" >FIN</literal>. Par exemple, <option>--scanflags URGACKPSHRSTSYNFIN</option> les activent tous, bien que cela ne soit pas très utile pour effectuer un scan. L'ordre dans lequel les drapeaux sont spécifiés n'a pas d'importance.</para> + <para>En sus de la spécification des drapeaux désirés, vous pouvez spécifier également un type de scan TCP (comme <option>-sA</option> ou <option>-sF</option>). Ce type de scan de base indique à Nmap comment interpréter les réponses. Par exemple, un scan SYN considère que l'absence de réponse indique qu'un port est <literal moreinfo="none" >filtré</literal>, tandis qu'un scan FIN considèrera la même absence comme un port <literal moreinfo="none" >ouvert|filtré</literal>. Nmap se comportera de la même façon que le type de scan de base, à la différence près qu'il utilisera les drapeaux TCP que vous avez spécifié à la place. Si vous n'en spécifiez pas, le type de scan SYN par défaut sera utilisé.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sI <zombie host[:probeport]></option>(Scan passif -- idlescan)</term> + <listitem> + <para>Cette méthode de scan avancé permet de faire un véritable scan de port TCP en aveugle, (dans le sens où aucun paquet n'est envoyé directement à la cible depuis votre vraie adresse IP). En effet, la technique employée consiste à récolter des informations sur les ports ouverts de la cible en utilisant un exploit basé sur la prédictibilité de la génération des identifiants de fragmentation IP de l'hôte relais (le zombie). Les systèmes IDS considéreront que le scan provient de la machine zombie que vous avez spécifié (qui doit remplir certains critères). Le mécanisme de cette incroyable technique est trop complexe pour être expliqué en détail dans ce guide; un papier informel a été posté pour rendre compte de tous ces détails:<ulink url="https://nmap.org/book/idlescan.html" />.</para> + <para>En plus de son incroyable furtivité (en raison du caractère aveugle de la technique), ce type de scan permet de déterminer les relations de confiance entre les machines. La liste des ports ouverts est établie <emphasis>du point de vue de l'hôte zombie.</emphasis> Ainsi, vous pouvez essayer de scanner une cible en utilisant différents zombies pour lesquels vous pensez qu'il existe une relation de confiance entre eux et la cible (d'après les règles des dispositifs de filtrage).</para> + <para>Vous pouvez ajouter les deux points (:) suivis d'un numéro de port de l'hôte zombie si vous souhaitez tester les changements d'identifiants IP sur un port particulier du zombie. Par défaut, Nmap utilisera le port utilisé pour les pings tcp (le port 80).</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sO</option>(Scan du protocole IP)</term> + <listitem> + <para>Le scan du protocole IP permet de déterminer quels protocoles IP (TCP, ICMP, IGMP, etc.) sont supportés par les cibles. Ce n'est donc pas techniquement un scan de ports, car Nmap essaie les différents numéros de protocoles IP à la place des numéros de ports TCP ou UDP. Ce scan permet néanmoins d'utiliser l'option <option>-p</option> pour sélectionner les numéros de protocoles à scanner -- le rapport de Nmap étant toujours dans le style habituel des tables de ports -- et utilise le même moteur de scan utilisé pour le scan de ports. Ainsi, cette technique est suffisamment proche du scan de port pour être présenté ici.</para> + <para>Au delà de son intérêt propre, le scan de protocoles illustre la puissance des logiciels en libre accès. L'idée de base est assez simple: je n'avais même pas particulièrement pensé à l'ajouter ni reçu de requête me demandant une telle fonctionnalité. En fait, à l'été 2000, Gerhard Rieger a eu cette idée et a écrit un excellent programme de correction pour l'implanter; il l'a ensuite envoyé à la liste de distribution nmap-hackers. Je l'ai par la suite ajouté à l'arbre de développement de Nmap et j'ai publié la nouvelle version le lendemain même. Très peu de logiciels commerciaux peuvent se targuer d'avoir des utilisateurs si enthousiastes concevant et proposant leur propres améliorations!</para> + <para>Le scan de protocole fonctionne d'une façon similaire du scan UDP. Au lieu de parcourir les champs de numéro de port des paquets UDP, il envoie des paquets d'en-têtes IP et parcours les 8 bits du champ protocole IP. Les en-têtes son généralement vides, ne contenant pas de données ni même l'en-tête du protocole sollicité. Les trois seules exceptions étant TCP, UDP et ICMP. Un en-tête exact de ces protocoles est inclus, sinon certains systèmes refusent de les émettre et Nmap dispose déjà des fonctions permettant de construire ces en-têtes. Au lieu de scruter les messages ICMP « port unreachable », comme pour le scan UDP, le scan de protocole attend de recevoir les messages ICMP «<emphasis>protocol</emphasis>unreachable ». Dès que Nmap reçoit une réponse d'un protocole en provenance de la cible, Nmap considère ce protocole comme <literal moreinfo="none" >ouvert</literal>. Une erreur ICMP « protocol unreachable » (type 3, code 2) fait en sorte que le port est considéré comme étant <literal moreinfo="none" >fermé</literal>. Les autres messages d'erreur ICMP « unreachable (type 3, code 1, 3, 9, 10, or 13) » font en sorte que le port est considéré comme étant <literal moreinfo="none" >filtré</literal> (tout en prouvant que le protocole ICMP est quant à lui <literal moreinfo="none" >ouvert</literal>). Si aucune réponse n'est reçue après plusieurs transmissions, le protocole est considéré comme étant <literal moreinfo="none" >ouvert|filtré</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-b <ftp relay host></option>(Scan par rebond FTP)</term> + <listitem> + <para>Une caractéristique intéressante du protocole FTP (<ulink url="http://www.rfc-editor.org/rfc/rfc959.txt" >RFC 959</ulink>) est qu'il supporte les connexions par proxy ftp (proxy ftp connections, ainsi nommées dans la RFC). Ceci permet à un utilisateur de se connecter à un serveur FTP, puis de demander qu'un fichier soit envoyé à un tiers serveur FTP. Une telle fonctionnalité est propre à être détournée à tous les niveaux, c'est pourquoi la plupart des serveurs ont cessé de la supporter. Un des détournements possible de cette caractéristique conduit le serveur FTP à scanner les ports d'autres hôtes. Demandez simplement au serveur FTP d'envoyer un fichier à chaque port intéressant de votre cible, et il se chargera d'effectuer le scan. Le message d'erreur permettra de savoir si le port est ouvert ou non. C'est un très bon moyen de contourner les pare-feux car les serveurs FTP des organisations sont souvent situés de telle façon à avoir plus d'accès aux hôtes du réseau internes que toute autre machine Internet. Nmap supporte le scan par rebond FTP avec l'option <option>-b</option>. Cette option prend un argument du type <replaceable>username</replaceable>:<replaceable>password</replaceable>@<replaceable>server</replaceable>:<replaceable>port</replaceable>. <replaceable>Server</replaceable> est le nom ou l'adresse IP d'un serveur FTP vulnérable. Comme pour une adresse URL traditionnelle, vous pouvez omettre <replaceable>username</replaceable>:<replaceable>password</replaceable>, (user: <literal moreinfo="none" >anonymous</literal>, password: <literal moreinfo="none" >-wwwuser@</literal>) pour accéder de manière anonyme. Le numéro de port (et les deux points) peuvent être également omis si le port FTP par défaut (21) est utilisé par le serveur <replaceable>server</replaceable>.</para> + <para>Cette vulnérabilité était très répandue en 1997 quand Nmap a été publié mais a largement été corrigée depuis. Il existe encore quelques serveurs vulnérables qui traînent, autant les essayer si rien d'autre ne marche (!!!). Si votre but est de contourner un pare-feu, scannez le réseau cible pour trouver un port 21 ouvert (ou un serveur FTP sur tout autre port en activant la détection de version), essayez ensuite pour chacun d'entre eux le scan par rebond FTP. Nmap vous indiquera si chaque hôte y est vulnérable ou pas. Si vous voulez juste essayer de masquer vos attaques, vous n'avez pas besoin (et même en fait, vous ne devriez pas) vous limiter aux hôtes du réseau cible. Avant de vous lancer dans un scan sur des adresses Internet au hasard, à la recherche de serveurs FTP vulnérables, pensez bien que les gestionnaires des systèmes n'apprécieront pas trop que vous détourniez leurs serveurs à cet effet.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-port-specification" > + <title>Spécifications des ports et ordre du scan</title> + <para>En plus de toutes les méthodes de scan abordées précédemment, Nmap propose des options permettant la spécification des ports à scanner ainsi que l'ordre (au hasard ou séquentiel) dans lequel le scan doit se faire. Par défaut, Nmap scanne tous les ports jusqu'au 1 024 inclusivement ainsi que les ports supérieurs listés dans le fichier <filename moreinfo="none" >nmap-services</filename>pour le ou les protocoles demandés).</para> + <variablelist> + <varlistentry> + <term> + <option>-p <port ranges></option>(Ne scanne que les ports spécifiés)</term> + <listitem> + <para>Cette option spécifie quels ports vous voulez scanner et remplace le comportement par défaut. Les ports peuvent être spécifiés un à un ou par plages (séparés par des tirets, notamment 1-1023). Les valeurs de début ou de fin des plages peuvent être omises, de sorte que Nmap utilisera les ports 1 et 65 535, respectivement. Ainsi, vous pouvez spécifier <option>-p-</option> pour scanner tous les ports de 1 à 65 535. Le scan du port 0 est autorisé si spécifié explicitement. Pour ce qui est du scan du protocole IP (<option>-sO</option>), cette option spécifie les numéros de protocoles que vous souhaitez scanner (0-255).</para> + <para>Lorsque vous scannez à la fois des ports TCP et UDP, vous pouvez spécifier un protocole particulier en préfixant les numéros de ports par <literal moreinfo="none" >T:</literal> (pour TCP) ou <literal moreinfo="none" >U:</literal> (pour UDP). Le qualificateur reste actif à moins que vous n'en indiquiez un autre. Par exemple, l'argument <option>-p U:53,111,137,T:21-25,80,139,8080</option>scannerait les ports UDP numéros 53 111 et 137 et les ports TCP de 21 à 25 inclusivement, 80, 139 et 8080. Notez que si vous voulez à la fois scanner TCP et UDP, vous devez spécifier <option>-sU</option> et au moins un type de scan TCP (comme <option>-sS</option>, <option>-sF</option> ou <option>-sT</option>). Si aucun qualificateur de protocole n'est spécifié, les numéros de ports sont alors valables pour tous les protocoles.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-F</option>(Scan rapide (limite aux ports connus)</term> + <listitem> + <para>Cette option indique que vous souhaitez seulement scanner les ports listés dans le fichier <filename moreinfo="none" >nmap-services</filename> fourni avec Nmap (ou le fichier des protocoles avec l'option <option>-sO</option>). Ceci est bien plus rapide que de scanner les 65 535 ports d'un hôte. Comme cette liste contient beaucoup de ports TCP (plus de 1 200), la différence de vitesse avec le comportement par défaut (environ 1 650 ports) est relativement négligeable. Par contre, la différence peut être énorme si vous spécifiez votre propre mini-fichier <filename moreinfo="none" >nmap-services</filename> en utilisant l'option <option>--datadir</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-r</option>(Ne mélange pas les ports)</term> + <listitem> + <para>Par défaut, Nmap mélange au hasard l'ordre des ports (sauf que certains ports couramment accessibles sont placés vers le début de la liste pour des raisons d'efficacité). Ce mélange est normalement souhaitable, mais vous pouvez spécifier l'option <option>-r</option> pour effectuer un scan de port séquentiel.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-version-detection" > + <title>Détection de services et de versions</title> + <para>Supposons que Nmap vous ai signalé que les ports 25/tcp, 80/tcp et 53/udp d'une machine distante sont ouverts. En utilisant sa base de données <filename moreinfo="none" >nmap-services</filename>d'environ 2 200 services bien connus, Nmap indique que ces ports correspondent probablement à un serveur de messagerie (SMTP), un serveur Web (HTTP) et un serveur de noms (DNS), respectivement. Cette consultation est souvent pertinente -- une vaste majorité des démons écoutant sur le port 25, étant bien des serveurs de messagerie. Cependant, en sécurité, il ne faudrait pas trop parier là-dessus ! Les gens peuvent lancer des services sur des ports bizarres et ils le font effectivement.</para> + <para>Même si Nmap a raison, et que les serveurs hypothétiques du dessus sont bien des serveurs SMTP, HTTP et DNS, ce n'est pas très utile. Lors d'audit de sécurité (ou bien lors de simples inventaires de réseau) de votre entreprise ou de clients, vous voulez réellement savoir de quels serveurs de messagerie et de noms il s'agit, ainsi que leurs versions. Connaître avec précision le numéro de version aide considérablement à déterminer à quels exploits un serveur est vulnérable. La détection de version vous permet d'obtenir une telle information.</para> + <para>Après avoir découvert les ports TCP ou UDP par une des méthodes de scan, la détection de version interroge ces ports pour savoir quelle version tourne actuellement. La base de données <filename moreinfo="none" >nmap-service-probes</filename> contient les tests à effectuer selon les services, ainsi que les chaînes de caractères auxquelles comparer les réponses. Nmap essaie de déterminer le protocole (p. ex.: ftp, ssh, telnet, http), le nom de l'application (p. ex.: ISC Bind, Appache httpd, Solaris telnetd), le numéro de version, le nom d'hôte, le type d'équipement (p. ex.: imprimante, routeur), la famille d'OS (p. ex.: Windows, Linux) et quelquefois des détails divers (p. ex.: si un serveur X accepte ou non des connexions, la version du protocole SSH, le nom d'utilisateur KaZaA). Bien sûr, la plupart des services ne fournissent pas autant d'informations. Si Nmap a été compilé avec le support de OpenSSL, il se connectera aux serveurs SSL pour déduire le service écoutant derrière la couche de cryptage. Quand des services RPC sont découverts, la moulinette RPC de Nmap (<option>-sR</option>) est automatiquement utilisée pour déterminer le programme RPC et sa version. Des ports peuvent rester dans l'état <literal moreinfo="none" >ouvert|filtré</literal> lorsqu'un scan de ports UDP a été incapable de déterminer si le port était ouvert ou fermé. La détection de version tentera d'obtenir une réponse de ces ports (comme s'ils étaient ouverts), et changera l'état à ouvert si elle y parvient. Les ports TCP <literal moreinfo="none" >ouverts|filtré</literal> sont traités de la même façon. Notez que l'option<option>-A</option>de Nmap active notamment la détection de version. Un papier documentant le fonctionnement, l'utilisation et la personnalisation de la détection de version est disponible à <ulink url="https://nmap.org/vscan/" />.</para> + <para>Lorsque Nmap reçoit une réponse d'un service mais ne parvient pas à le faire correspondre à un service de sa base de données, il affiche une empreinte et une adresse URL où vous pouvez l'envoyer si vous êtes sûr de ce qui tourne sur ce port. Prendre quelques minutes pour faire cette soumission permettra à tout le monde de bénéficier de votre découverte. Grâce à ces soumissions, Nmap dispose d'environ 3 000 empreintes de référence liées à plus de 350 protocoles, comme smtp, ftp et http.</para> + <para>La détection de version est activée et contrôlée grâce aux options suivantes: </para> + <variablelist> + <varlistentry> + <term> + <option>-sV</option>(Détection de version)</term> + <listitem> + <para>Active la détection de version, tel que discuté ci-dessus. Autrement, vous pouvez utiliser l'option <option>-A</option> pour activer à la fois la détection de version et celle du système d'exploitation.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--allports(tous les ports)</option>(N'exclut aucun port de la détection de version)</term> + <listitem> + <para>Par défaut, la détection de version de Nmap évite le port TCP 9100 car certaines imprimantes impriment tout bonnement tout ce qui est envoyé sur ce port, ce qui conduit à l'impression de douzaines de pages de requêtes HTTP, des requêtes de sessions SSL en binaire, etc. (ce qui est particulièrement furtif). Ce comportement peut être changé en modifiant ou en supprimant la directive <literal moreinfo="none" >Exclude</literal> du fichier <filename moreinfo="none" >nmap-service-probes</filename>, ou en spécifiant l'option <option>--allports</option> pour scanner tous les ports sans tenir compte d'aucune directive <literal moreinfo="none" >Exclude</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--version-intensity <intensity></option>(Sélectionne l'intensité du scan de version)</term> + <listitem> + <para>Lors d'un scan de version (<option>-sV</option>), Nmap envoie une série de paquets de tests, à chacun duquel est associé une valeur de rareté allant de 1 à 9. Les tests aux basses valeurs sont efficaces pour une grande variété de services courants, tandis que les hautes valeurs indiquent ceux qui ne sont que rarement utiles. Le niveau d'intensité spécifie quels tests doivent être effectués. Plus la valeur est haute, plus le service a de chances d'être correctement identifié. Cependant, ces scans-ci sont plus longs. La valeur d'intensité doit être comprise entre 0 et 9, la valeur par défaut étant le 7. Quand un test est inscrit sur le port cible par le biais de la directive <filename moreinfo="none" >nmap-service-probes</filename> + <literal moreinfo="none" >ports</literal>, ce test est tenté quelque soit le niveau d'intensité. Cela permet de s'assurer que les tests DNS seront toujours tentés sur chaque port 53 ouvert, les tests SSL sur chaque 443, etc.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--version-light</option>(Active le mode léger)</term> + <listitem> + <para>Il s'agit d'un raccourci pour <option>--version-intensity 2</option>. Ce mode léger rend le scan de version bien plus rapide, mais il est un peu moins susceptible d'identifier les services.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--version-all</option>(Essaie chaque test possible)</term> + <listitem> + <para>Il s'agit d'un raccourci pour<option>--version-intensity 9</option>forçant chaque test unitaire à être testé contre chaque port.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--version-trace</option>(Trace l'activité du scan de version)</term> + <listitem> + <para>Ceci force Nmap à afficher un nombre considérable d'informations de débogage à propos de ce que fait le scan de version. Il s'agit d'un sous-ensemble de ce que vous obtenez avec l'option <option>--packet-trace</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sR</option>(Scan RPC)</term> + <listitem> + <para>Cette méthode fonctionne conjointement avec les différentes méthodes de scan de Nmap. Il prend tous les ports TCP/UDP ouverts et les submerge avec les commandes NULL du programme SunRPC dans le but de déterminer s'il s'agit de ports RPC, et le cas échéant, de quel programme et quel numéro de version il s'agit. Vous pouvez aussi obtenir les mêmes informations avec <command moreinfo="none" >rpcinfo -p</command>, et ce, même si le mapper de port (portmapper) de la cible se trouve derrière un pare-feu (ou protégé par des wrappers TCP). Les leurres ne fonctionnent pas avec le scan RPC. Cette option est automatiquement activée par le scan de version (<option>-sV</option>). Comme la détection de version inclus le scan RPC, et est bien plus complète, on a rarement besoin de l'option <option>-sR</option>.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id='man-os-detection'> + <title>Détection d'OS</title> + <para>Cette section n'a pas été traduite en français. Veuillez vous référer + à <ulink url="https://nmap.org/book/man-os-detection.html">la + documentation en anglais</ulink>.</para> + </refsect1> +<!--</refentry> + </article>--> + <refsect1 id="man-nse" > + <title>Nmap Scripting Engine (NSE)</title> + <para>Le moteur de scripts de Nmap (Nmap Scripting Engine -NSE) allie l'efficacité avec laquelle Nmap traite le réseau avec la souplesse d'un langage léger comme Lua, fournissant ainsi une infinité d'opportunités. Une documentation plus complète du NSE (y compris ses API) peut être obtenue sur <ulink url="https://nmap.org/nse"/>. Le but du NSE est de fournir à Nmap une infrastructure flexible afin d'étendre ses capacités et ainsi offrir à ses utilisateurs une facon simple de créer leurs propres tests personnalisés. Le cadre d'usage du NSE englobe (mais encore une fois n'est pas limité à) :</para> + <para><emphasis>Détection de version évoluée </emphasis>(catégorie <literal>version</literal>) - Alors que Nmap propose déja son système de détection de Service et de Version qui est inégalé en termes d'efficacité et de couverture, cette puissance trouve sa limite lorsqu'il s'agit de services qui demandent des tests plus complexes. La version 2 du Protocole Skype par exemple peut être identifié en envoyant deux paquets de tests pour lesquels le système n'est pas prévu d'origine: un simple script NSE peut alors faire le travail et mettre ainsi à jour les informations sur le service tournant sur le port.</para> + <para><emphasis>Détection de Malware</emphasis> (catégories <literal>malware</literal> et <literal>backdoor</literal>)- Que ce soit les attaquants ou les vers, ils laissent souvent des portes dérobées, par exemple sous la forme de serveurs SMTP écoutant sur des ports inhabituels, le plus souvent utilisés par les spammers pour le relais de leurs mails, ou sous forme de serveur FTP donnant des accès à des données critiques aux crackers. Quelques lignes de code Lua peut aider à identifier facilement ces pièges. </para> + <para><emphasis>Détection de vulnérabilités</emphasis> (catégorie <literal>vulnerability</literal>)- Le NSE permet de détecter les risques allant par exemple des mots de passe par défaut sur Apache au test de capacité d'agir en tant que relais pour un serveur SMTP concernant les mails en provenance de domaines divers.</para> + <para><emphasis>Découverte du Réseau et Collecte d'Informations</emphasis> (catégories <literal>safe</literal>, <literal>intrusive</literal> et <literal>discovery</literal>) - En vous fournissant un langage de scripts et une API réseau asynchrone vraiment efficace d'une part et la collecte d'informations durant les étapes ultérieures du scan d'autre part, le NSE est concu pour écrire des programmes clients adaptés aux services en écoute sur la machine cible. Ces clients peuvent collecter des informations comme : liste des partages NFS/SMB/RPC disponibles, le nombre de canaux d'un réseau IRC ou les utilisateurs actuellement connectés.</para> + <para>Afin de refléter ces différents usages et pour simplifier le choix des scripts à employer, chaque script contient un champ qui l'associe a une ou plusieurs de ces catégories. Pour maintenir le lien entre scripts et catégories un fichier appelé script.db est installé avec les scripts distribués. Ainsi si par exemple vous voulez voir si une machine est infectée par un ver Nmap vous donne un script que vous pouvez facilement utiliser par la commande <literal>nmap --script=malware ip-cible</literal> afin d'analyser les résultats après coup.Les scripts de version sont systématiquement lancés de facon implicite lorsqu'un scan de scripts est invoqué. Le fichier <literal>script.db</literal> est lui même un script Lua et peut être mis à jour via l'option <option>--script-updatedb</option>.</para> + <para>Un script NSE est simplement un code Lua qui a (parmis quelques champs d'information comme le nom, l'identifiant et la catégorie) 2 fonctions: un test dans le cas où le script en particulier doit être lancé contre une cible et un port spécifiques (appelés hostrule et portrule respectivement) et une action qui doit être menée si le test est positif. Les scripts ont acces à la plupart des informations collectées par Nmap durant les étapes précédentes. Pour chaque hôte ceci inclus l'adresse IP, le nom de l'hôte et (si disponible) le système d'exploitation. Si un script est destiné à un port en particulier, il a accès au numéro du port, son protocole (tcp, udp ou ssl), le service tournant derrière ce port et des informations optionnelles en provenance d'un scan de version. Par convention les scripts NSE ont une extension .nse. Toutefois vous n'avez pas besoin de suivre cette recommandation pour le moment, ceci pouvant changer dans l'avenir. Nmap donnera une mise en garde si un fichier a une autre extension. Une documentation plus exhaustive sur le NSE comprenant une description de son API peut être obtenue sur <ulink url="https://nmap.org/nse/"/>.</para> + <variablelist> + <varlistentry> + <term> + <option>-sC</option> + </term> + <listitem> + <para>effectue un scan de scripts en utilisant la catégorie de scripts par défaut. Cette option est équivalente à <literal>--script=safe,intrusive</literal></para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--script <catégories|répertoire|nom|all></option> +</term> + <listitem> + <para>Lance un scan de scripts (comme <option>-sC</option>) avec les scripts que vous avez choisi plutôt que ceux par défaut. Les arguments peuvent être des catégories de scripts, des scripts uniques ou des répertoires contenant des scripts qui doivent être lancés contre les hôtes cibles à la place des scripts par défaut. Nmap va essayer d'interpréter les arguments d'abord comme des catégories puis comme des noms de fichiers ou des répertoires. Les chemins absolus sont interpretés tels quels, les chemins relatifs sont recherchés dans les endroits suivants : <literal>--datadir/; $(NMAPDIR)/; ~user/nmap/</literal> (non cherché sous Windows); <literal>NMAPDATADIR/ ou ./. A scripts/</literal> les sous répertoires sont aussi essayés dans chacun d'eux. Donnez l'argument <literal>all</literal> pour exécuter tous les scripts de la base de données de Nmap.</para> + <para>Si un répertoire est précisé et trouvé, Nmap charge tous les scripts NSE (chaque fichier se terminant par .nse) dans ce répertoire. L'extension nse est obligatoire. Nmap ne fait pas de recherche récursive dans les sous répertoires éventuels pour trouver les scripts. Lorsque des noms de scripts individuels sont spécifiés, l'extension est facultative.</para> + <para>Les scripts de Nmap sont stockés dans un répertoire scripts du répertoire de données par défaut de Nmap. Les scripts sont indexés dans une base de données dans <literal>scripts/script.db</literal>. La base de données liste tous les scripts dans chaque catégorie. Un seul script peut être dans plusieurs catégories.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--script-args=<name1=value1,name2={name3=value3},name4=value4></option> + </term> + <listitem> + <para>vous permet de passer des arguments aux scripts NSE. Les arguments sont passés sous la forme de paires <literal>name=value</literal> . L'arguments fourni est interprété et stocké dans une table Lua à laquelle tous les scripts ont accès. Les noms sont pris comme des chaînes (qui doivent être des valeurs alphanumériques) et utilisés comme des clés dans la table <literal>argument-table</literal>. Les valeurs sont soit des chaînes soit des tables elles mêmes (encadrées par'{' et '}'). Les sous tables permettent de supplanter les arguments pour des scripts spécifiques (c'est à dire lorsque vous souhaitez fournir différents couples login/password pour des scripts différents). Par exemple vous pouvez passer les arguments séparés par des virgules : <literal>user=bar,password=foo, and anonFTP={password=nobody@foobar.com}</literal>. Si vous souhaitez outrepasser une option d'un script, vous devriez indexer la sous table avec l'identifiant du script étant donné que c'est la seule facon qu'a le script de connaitre ses arguments particuliers.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--script-trace</option> + </term> + <listitem> + <para>Cette option fait ce que fait <option>--packet-trace</option> , juste une couche OSI au dessus. Si cette option est spécifiée toutes les communications entrantes et sortantes en provenance d'un script sont affichées. Les informations affichées incluent le protocole de communication, la source, la cible et les données transmises. Si plus de 5% du traffic n'est pas imprimable, alors la sortie se fait au format hexadécimal.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--script-updatedb</option> + </term> + <listitem> + <para>met à jour la base de données de scripts qui contient les correspondances des catégories avec les noms de fichiers. La base de données est un script Lua qui est interprété pour choisir les scripts en fonction des catégories passées en arguments à <option>--script</option> . Ceci devrait être lancé si vous avez changé le champ categories d'un script, si vous avez ajouté de nouveaux scripts ou si vous en avez retiré du répertoire <literal>scripts/</literal> .</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-performance" > + <title>Timing et Performances</title> + <para>L'une des priorités les plus importantes dans le développement de Nmap a toujours été + la performance. Un scan par défaut (<command moreinfo="none" >nmap + <replaceable>hostname</replaceable> + </command>) d'un hôte sur mon réseau + local prend un cinquième de seconde. Il s'agit donc de très peu de temps + mais les minutes s'accumulent lorsque vous scannez des dizaines ou des centaines de milliers d'hôtes. + De plus, certains scans tels que le scan UDP et la détection de version + peuvent accroître le temps global du scan de façon significative. De plus, certains pare-feux limitent le taux de réponses dans leur configuration. + Bien que Nmap utilise un fonctionnement en parallèle et beaucoup d'autres algorithmes avancés + afin d'accélérer ces scans, l'utilisateur garde le contrôle total sur le fonctionnement de + Nmap. Les utilisateurs confirmés choisissent avec une grande attention leurs commandes afin d'obtenir + seulement les informations dont ils ont besoin en un minimum de temps.</para> + <para>Les techniques permettant d'affiner les temps de scan sont entre autres d'éviter + les tests non essentiels et d'avoir les versions les plus récentes de Nmap + (les augmentations de performance sont fréquentes). Optimiser ses paramètres de temps en temps + peut ainsi faire toute la différence. Ces options sont + décrites ci-dessous.</para> + <variablelist> + <varlistentry> + <term> + <option>--min-hostgroup <nombre></option>; + <option>--max-hostgroup + <nombre></option> (Ajuste la quantité du groupe de scans en parallèle)</term> + <listitem> + <para>Nmap peut scanner des ports ou faire un scan de version sur de multiples hôtes + en parallèle. Pour ce faire, Nmap divise la plage des adresses IP des cibles en + groupe puis scanne ces groupes un à la fois. En général, scanner un grand nombre de groupes améliore l'efficacité de la procédure. En contrepartie, les résultats ne peuvent être fournis que lorsque tout le groupe d'hôtes a été scanné. Par conséquent, si Nmap a commencé avec un groupe de 50, + l'utilisateur ne recevra aucun résultat tant que les premiers 50 hôtes ne seront pas terminés (exception + faite des informations données en mode verbeux).</para> + <para>Par défaut, Nmap adopte un compromis dans son approche de ce conflit. + Il commence avec une quantité aussi petite que 5 groupes de façon à obtenir rapidement les premiers résultats et augmente ensuite la quantité de groupes jusqu'à un maximum de1 024. Les + valeurs exactes par défaut dépendent des options configurées. Par soucis d'efficacité, + Nmap utilise une quantité de groupes plus grande lorsqu'il s'agit de scans UDP ou sur peu de ports en TCP.</para> + <para>Lorsqu'un maximum est spécifié en quantité de groupes avec l'option + <option>--max-hostgroup</option>, Nmap ne va jamais dépasser cette valeur. + Spécifiez une quantité minimale avec l'option <option>--min-hostgroup</option> et Nmap + tentera de garder la quantité de groupes au-dessus de cette valeur. Nmap devra peut-être utiliser + des groupes plus petits que ceux que vous demandez s'il n'y a plus assez d'hôtes cibles + sur une interface donnée par rapport au minimum que vous avez spécifié Les deux valeurs doivent + être déterminés pour de conserver la quantité de groupes dans une plage spécifique, quoique ceci ne soit que rarement souhaité.</para> + <para>Le premier usage de ces options est de spécifier un minimum assez grand pour que + le scan entier se fasse plus vite. Un choix fréquent est + 256 pour scanner un réseau de Classe C. S'il s'agit d'un scan incluanrt beaucoup de ports, + dépasser cette valeur n'aidera pas à grand chose. S'il s'agit de scans sur + peu de ports, une quantité de groupes de 2 048 ou plus peut faciliter la procédure.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--min-parallelism <nombre></option>; + <option>--max-parallelism' + <nombre></option> (Ajuste la mise en parallèle des paquets de test, probes)</term> + <listitem> + <para>Ces options permettent de contrôler le nombre total de probes idéal + pour un groupe d'hôtes. Elles permettent de scanner des ports et de découvrir des hôtes (host discovery). Par défaut, Nmap calcule un parallélisme + idéal et variable basé sur les performances du réseau. Si des paquets sont rejetés, + Nmap ralentit sa cadence en permettant moins de probes simultanés. Le nombre idéal de probes + augmente graduellement en même temps que le réseau démontre ses performances. Ces + options fixent les limites maximales et minimales selon cette variable. Par défaut, + le parallélisme idéal peut chuter à 1 si le réseau s'avère trop faible et monter à plusieurs centaines + dans des conditions parfaites.</para> + <para>L'usage habituel consiste à régler l'option + <option>--min-parallelism</option> à une valeur supérieure à 1 pour accélérer + les scans sur des réseaux de faible performance. Il est risqué de + trop modifier cette option puisqu'établir une valeur trop élevée peut affecter la précision des résultats. Modifier cette option réduit aussi la capacité de Nmap à contrôler le parallélisme + de façon dynamique selon les conditions du réseau. Une valeur de 10 peut être + raisonnable bien que je n'ajuste personnellement celle-ci qu'en dernier ressort.</para> + <para>L'option <option>--max-parallelism</option> est parfois réglée à 1 afin + d'éviter d'envoyer plus d'un probe en même temps vers les hôtes. Ceci peut être intéressant en combinaison avec l'option <option>--scan-delay</option> + (on verra plus tard), bien que cette option serve déjà elle-même à cet effet.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--min-rtt-timeout <millisecondes></option>, + <option>--max-rtt-timeout <millisecondes></option>, + <option>--initial-rtt-timeout + <millisecondes></option> (Ajuste la durée de vie des paquets de test, probe timeouts)</term> + <listitem> + <para>Nmap conserve une valeur + de durée de vie qui détermine combien de temps il devra attendre avant d'envoyer une réponse à un probe + avant de l'abandonner ou de le renvoyer. Cette valeur est calculée en fonction + du temps de réponse des probes précédents. Si + le temps de latence du réseau est significatif et variable, ce + délai d'inactivité ou cette durée de vie, peut augmenter jusqu'à plusieurs secondes. Elle est également de niveau élevé et peut rester ainsi pendant un bon moment lorsque Nmap scanne + des hôtes sans réponse.</para> + <para>Ces options acceptent des valeurs en millisecondes. Spécifier un + <option>--max-rtt-timeout</option> et un + <option>--initial-rtt-timeout</option> plus bas que ceux par défaut peuvent raccourcir + le temps de scan de façon significative. C'est particulièrement vrai pour les scans sans ping préalable + (<option>-P0</option>) et ceux contre des réseaux très filtrés. + Toutefois, ne soyez pas trop agressif. Le scan peut se finir en un temps plus significatif si, au contraire, vous spécifiez des valeurs tellement basses que les durées de vie des probes sont terminées + et ceux-ci renvoyés alors que leurs réponses sont en fait encore en transit.</para> + <para>Si tous les hôtes sont sur un réseau local, 100 millisecondes est une + valeur de <option>--max-rtt-timeout</option> seront suffisantes. Si vous etes face a un routage, mesurez d'abord le temps de réponse d'un hôte sur le réseau \ l'aide du ping ICMP de Nmap ou d'un autre outil, comme hping2 qui est plus à même + de passer un pare-feu si le paquet est spécialement forgé. Regardez les durées de transit + sur 10 paquets ou plus. Vous pouvez doubler cette valeur pour + <option>--initial-rtt-timeout</option> et tripler ou quadrupler + le <option>--max-rtt-timeout</option>. Généralement, je ne règle pas le + rtt maximum à moins de 100ms, et ce, quelles que soient les mesures de ping. De plus, je n'excède + pas 1 000ms.</para> + <para> + <option>--min-rtt-timeout</option> est une option rarement utilisée qui + peut s'avérer utile lorsqu'un réseau est si lent que même les réglages par défaut de Nmap + sont trop agressifs. Comme Nmap ne réduit le délai d'inactivité au + minimum que lorsque le réseau semble suffisamment rapide, ce genre de besoin est + inhabituel et devrait être rapporté en tant que procédure erronée à la liste de développement de nmap-dev.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--max-retries <nombreessais></option> (Spécifie le nombre maximum de retransmisison des paquets de test (probes)) + </term> + <listitem> + <para>Quand Nmap ne reçoit pas de réponse à un paquet de test sur un port, cela peut signifier que le port est filtré. Ou simplement que la réponse s'est perdue sur le réseau. Il est également possible que l'hôte cible ait limité son taux d'émission ce qui a temporairement bloqué la réponse. Pour ces raisons, Nmap recommence l'émission du paquet de test. Si Nmap détecte que le réseau est peu fiable, il peut essayer de re-émettre le paquet plus de fois encore avant de s'arrêter. Si cette technique améliore la fiabilité, elle ralonge la durée du scan. Quand la performance est un facteur critique, les scans peuvent être accélérés en limitant le nombre de retransmissions autorisé. Vous pouvez même spécifier <option>--max-retries 0</option> pour éviter toute retransmission, bien que cela ne soit pas trop recommandé. + </para> + <para> + Le paramétrage par défaut (sans politique <option>-T</option> spécifiée) est d'autoriser jusqu'à dic retransmissions. Si le réseau a l'air fiable et que les hôtes cibles ne limitent pas leur taux d'émission, Nmap ne fait généralement qu'une seule retransmission. Ainsi, réduire <option>--max-retries</option> à une valeur basse comme trois n'affecte pas la plupart des scans. Une telle valeur peut accélérer significativement les scans pour des hôtes lents (qui limitent leurs émissions). Généralement, vous perdez des informations si Nmap cesse de scanner un port trop tôt, mais cela peut être préférable à laisser <option>--host-timeout</option> expirer et perdre alors toutes les informations concernant la cible. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--host-timeout <millisecondes></option> (Abandon des hôtes cibles + trop lents) + </term> + <listitem> + <para>Certains hôtes prennent du temps <emphasis>long</emphasis> à scanner, tout simplement. + Ceci peut être dû à du matériel ou à des logiciels réseau peu performants ou inefficaces, + à un taux de paquets limité ou à un pare-feu restrictif. Le faible pourcentage de + hôtes lents scannés peut ralentir le temps de scan tout entier. + Il est donc parfois préférable d'écarter temporairement ces hôtes du scan initial. Ceci peut être fait en spécifiant <option>--host-timeout</option> avec le nombre de millisecondes maximales que + vous êtes prêt à attendre. Je choisis souvent 1 800 000 secondes pour m'assurer que Nmap + ne perde pas plus d'une demi-heure sur un seul hôte. Notez que Nmap + peut être en train de scanner d'autres hôtes en même temps durant cette demi-heure, + ce n'est donc pas une perte complète. Un hôte qui dépasse cette valeur est abandonné. + Pas de listage des ports, de détection d'OS ou de détection de version + dans les résultats pour celui-ci.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--scan-delay <millisecondes></option>; + <option>--max-scan-delay + <millisecondes></option> (Ajuste le délai entre les paquets de test)</term> + <listitem> + <para>Cette option force Nmap à attendre d'obtenir au moins la valeur donnée en + millisecondes entre chaque probe qu'il envoie sur un hôte donné. C'est particulièrement + utile en cas de limitation de nombre de paquets (taux limite). Les machines Solaris + (parmi beaucoup d'autres) vont habituellement répondre à des paquets de test d'un scan UDP + par seulement un message ICMP par seconde. Tout ce qui est envoyé au-delà par Nmap + serait inutile. Un <option>--scan-delay</option> de 1 000 gardera + Nmap à ce taux suffisamment lent. Nmap essaie de détecter le taux limite et + d'ajuster le délai en conséquence, mais il ne fait pas de mal de le préciser si vous + savez déjà quelle valeur est la meilleure.</para> + <para>Une autre utilisation de <option>--scan-delay</option> est d'éviter + les détections éventuelles des systèmes de détection et de prévention d'intrusion (IDS/IPS) basées sur ce genre de règle.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--defeat-rst-ratelimit</option> + </term> + <listitem> + <para>Beaucoup d'hôtes utilisent depuis longtemps un filtrage pour réduire le nombre + de messages d'erreur ICMP (comme les erreurs de ports inaccessibles) qu'ils envoient. + Certains systèmes appliquent a présent des limitations similaires aux paquets RST (reset) + qu'ils génèrent. Ceci peut ralentir Nmap dramaticalement étant donné qu'il + ajuste son timing pour refléter ces limitations. Vous pouvez dire a Nmap d'ignorer + ces limitations (pour les scans de ports comme le SYN scan qui + <emphasis>ne traitent pas</emphasis> les ports muets comme étant + <literal>ouverts</literal>) en spécifiant + + <option>--defeat-rst-ratelimit</option>.</para> + <para>Utiliser cette option peut réduire la précision, puisque certains ports apparaitront + comme muets parcequ'Nmap n'attend alors pas assez longtemps une réponse + RST qui serait limitée. Dans le cas d'un SYN + scan, l'absence de réponse se traduit par un port marqué + <literal>filtré</literal> plutot que <literal>fermé</literal> + quand des paquets RST sont recus. Cette option est utile + quand vous n'avez besoin que des ports ouverts, et que distinguer des + <literal>fermés</literal> ou des <literal>filtrés</literal> ne vaut pas + le temps supplémentaire que cela suppose.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-T + <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane></option> + (Régler un profil de comportement au niveau du délai) + </term> + <listitem> + <para>Bien que les contrôles avancés et précis du délai dont il est fait mention + dans les sections précédentes soient précis et efficaces, certains peuvent les trouver compliqués. + Qui plus est, choisir les valeurs appropriées peut parfois prendre plus de temps + que le scan que vous essayez d'optimiser. De ce fait, Nmap offre + une approche plus simple, avec six profils de timing. Vous pouvez les spécifier grâce à + l'option <option>-T</option> et aux numéros (0 à 5) ou aux noms correspondants. + Les noms des profils sont paranoid (0), sneaky (1), polite (2), normal + (3), agressive (4), et insane (5). Les deux premiers sont pour éviter les IDS. + Le profile « Polite » ralentit le scan afin d'utiliser moins de bande passante + et moins de ressources sur la machine cible. Le profil « Normal » est celui par défaut et + donc <option>-T3</option> ne fait rien. Le profil « Agressive » accélère les scans, partant du principe + que vous travaillez sur un réseau suffisamment rapide et efficace. + Enfin, le profil « Insane » suppose que vous êtes sur un réseau + extraordinairement rapide ou que vous êtes prêt à sacrifier un peu de précision pour + plus de vitesse.</para> + <para>Ces profils permettent à l'utilisateur de spécifier à quel point il + souhaite être agressif tout en laissant Nmap choisir les valeur adéquates. + Les profils effectuent aussi quelques ajustements que les options avancées + ne permettent pas encore. Par exemple, + <option>-T4</option> empêche la variation dynamique du délai de dépasser + 10ms pour les ports TCP et <option>-T5</option> met cette valeur à 5 + millisecondes. Les profils peuvent être utilisés en combinaison avec les options avancées + en autant que le profil est précisé en premier. Dans le cas contraire, + les valeurs normalisées pour le profil risquent d'écraser celles que vous spécifiez. + Je vous recommande d'utiliser <option>-T4</option> lorsque vous scannez des réseaux + plus ou moins rapides, efficaces et modernes. Utilisez cette option (en début de ligne de commande) + même si vous ajoutez des options avancées afin de bénéficier des petites améliorations liée à cette option.</para> + <para>Si vous travaillez sur une connexion large bande ou Ethernet, je vous + recommande toujours d'utiliser <option>-T4</option>. Certains aiment utiliser + <option>-T5</option> quoique ce soit, à mon avis, trop agressif. Les gens + utilisent parfois <option>-T2</option> parce qu'ils pensent que le rsique que les hôtes tombent en panne soit moins grand ou parce qu'ils se considèrent comme respectueux d'une façon générale. + Souvent ils ne réalisent pas à quel point l'option <option>-T + Polite</option> est lente en réalité. Leur scan peut prendre dix fois plus de temps qu'un scan par défaut. + Les machines qui tombent en panne et les problèmes liés à la bande passante sont rares avec + les options de scan par défaut (<option>-T3</option>). C'est pourquoi je les recommande + habituellement pour les scanneurs précautionneux. Le fait de ne pas faire de détection de version + est bien plus efficace pour limiter ces problèmes que de jouer sur les valeurs de timing.</para> + <para>Bien que les options <option>-T0</option> et <option>-T1</option> puissent être + utiles pour éviter les alertes des IDS, elles prendront un temps énorme + pour scanner des milliers de machines ou de ports. Lorsqu'il s'agit de tels scans, + vous devriez régler les valeurs exactes de timing dont vous avez besoin plutôt que + de vous appuyer sur les options <option>-T0</option> et <option>-T1</option> + et les valeurs qui y sont associées.</para> + <para>Les effets principaux de <option>T0</option> sont de mettre les scans en série + de façon à ce que seul un port ne soit scanné à la fois, puis d'attendre 5 minutes + entre chaque envoi de probe. <option>T1</option> et + <option>T2</option> sont semblables mais n'attendent que 15 secondes et 0,4 secondes, + Respectivement, entre chaque probe. <option>T3</option> est le profil par défaut de Nmap + et comporte la mise en parallèle. <option>T4</option> + est l'équivalent de <option>--max-rtt-timeout 1250 + --initial-rtt-timeout 500 --max-retries 6</option> et met le délai maximum de scan TCP + à 10 millisecondes. <option>T5</option> fait la même chose que + <option>--max-rtt-timeout 300 --min-rtt-timeout 50 + --initial-rtt-timeout 250 --max-retries 2 --host-timeout 900000</option> tout en + mettant le délai maximum de scan TCP à 5 millisecondes.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-performance" > + <title>Timing et Performances</title> + <para>L'une des priorités les plus importantes dans le développement de Nmap a toujours été + la performance. Un scan par défaut (<command moreinfo="none" >nmap + <replaceable>hostname</replaceable> + </command>) d'un hôte sur mon réseau + local prend un cinquième de seconde. Il s'agit donc de très peu de temps + mais les minutes s'accumulent lorsque vous scannez des dizaines ou des centaines de milliers d'hôtes. + De plus, certains scans tels que le scan UDP et la détection de version + peuvent accroître le temps global du scan de façon significative. De plus, certains pare-feux limitent le taux de réponses dans leur configuration. + Bien que Nmap utilise un fonctionnement en parallèle et beaucoup d'autres algorithmes avancés + afin d'accélérer ces scans, l'utilisateur garde le contrôle total sur le fonctionnement de + Nmap. Les utilisateurs confirmés choisissent avec une grande attention leurs commandes afin d'obtenir + seulement les informations dont ils ont besoin en un minimum de temps.</para> + <para>Les techniques permettant d'affiner les temps de scan sont entre autres d'éviter + les tests non essentiels et d'avoir les versions les plus récentes de Nmap + (les augmentations de performance sont fréquentes). Optimiser ses paramètres de temps en temps + peut ainsi faire toute la différence. Ces options sont + décrites ci-dessous.</para> + <variablelist> + <varlistentry> + <term> + <option>--min-hostgroup <nombre></option>; + <option>--max-hostgroup + <nombre></option> (Ajuste la quantité du groupe de scans en parallèle)</term> + <listitem> + <para>Nmap peut scanner des ports ou faire un scan de version sur de multiples hôtes + en parallèle. Pour ce faire, Nmap divise la plage des adresses IP des cibles en + groupe puis scanne ces groupes un à la fois. En général, scanner un grand nombre de groupes améliore l'efficacité de la procédure. En contrepartie, les résultats ne peuvent être fournis que lorsque tout le groupe d'hôtes a été scanné. Par conséquent, si Nmap a commencé avec un groupe de 50, + l'utilisateur ne recevra aucun résultat tant que les premiers 50 hôtes ne seront pas terminés (exception + faite des informations données en mode verbeux).</para> + <para>Par défaut, Nmap adopte un compromis dans son approche de ce conflit. + Il commence avec une quantité aussi petite que 5 groupes de façon à obtenir rapidement les premiers résultats et augmente ensuite la quantité de groupes jusqu'à un maximum de1 024. Les + valeurs exactes par défaut dépendent des options configurées. Par soucis d'efficacité, + Nmap utilise une quantité de groupes plus grande lorsqu'il s'agit de scans UDP ou sur peu de ports en TCP.</para> + <para>Lorsqu'un maximum est spécifié en quantité de groupes avec l'option + <option>--max-hostgroup</option>, Nmap ne va jamais dépasser cette valeur. + Spécifiez une quantité minimale avec l'option <option>--min-hostgroup</option> et Nmap + tentera de garder la quantité de groupes au-dessus de cette valeur. Nmap devra peut-être utiliser + des groupes plus petits que ceux que vous demandez s'il n'y a plus assez d'hôtes cibles + sur une interface donnée par rapport au minimum que vous avez spécifié Les deux valeurs doivent + être déterminés pour de conserver la quantité de groupes dans une plage spécifique, quoique ceci ne soit que rarement souhaité.</para> + <para>Le premier usage de ces options est de spécifier un minimum assez grand pour que + le scan entier se fasse plus vite. Un choix fréquent est + 256 pour scanner un réseau de Classe C. S'il s'agit d'un scan incluanrt beaucoup de ports, + dépasser cette valeur n'aidera pas à grand chose. S'il s'agit de scans sur + peu de ports, une quantité de groupes de 2 048 ou plus peut faciliter la procédure.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--min-parallelism <nombre></option>; + <option>--max-parallelism' + <nombre></option> (Ajuste la mise en parallèle des paquets de test, probes)</term> + <listitem> + <para>Ces options permettent de contrôler le nombre total de probes idéal + pour un groupe d'hôtes. Elles permettent de scanner des ports et de découvrir des hôtes (host discovery). Par défaut, Nmap calcule un parallélisme + idéal et variable basé sur les performances du réseau. Si des paquets sont rejetés, + Nmap ralentit sa cadence en permettant moins de probes simultanés. Le nombre idéal de probes + augmente graduellement en même temps que le réseau démontre ses performances. Ces + options fixent les limites maximales et minimales selon cette variable. Par défaut, + le parallélisme idéal peut chuter à 1 si le réseau s'avère trop faible et monter à plusieurs centaines + dans des conditions parfaites.</para> + <para>L'usage habituel consiste à régler l'option + <option>--min-parallelism</option> à une valeur supérieure à 1 pour accélérer + les scans sur des réseaux de faible performance. Il est risqué de + trop modifier cette option puisqu'établir une valeur trop élevée peut affecter la précision des résultats. Modifier cette option réduit aussi la capacité de Nmap à contrôler le parallélisme + de façon dynamique selon les conditions du réseau. Une valeur de 10 peut être + raisonnable bien que je n'ajuste personnellement celle-ci qu'en dernier ressort.</para> + <para>L'option <option>--max-parallelism</option> est parfois réglée à 1 afin + d'éviter d'envoyer plus d'un probe en même temps vers les hôtes. Ceci peut être intéressant en combinaison avec l'option <option>--scan-delay</option> + (on verra plus tard), bien que cette option serve déjà elle-même à cet effet.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--min-rtt-timeout <millisecondes></option>, + <option>--max-rtt-timeout <millisecondes></option>, + <option>--initial-rtt-timeout + <millisecondes></option> (Ajuste la durée de vie des paquets de test, probe timeouts)</term> + <listitem> + <para>Nmap conserve une valeur + de durée de vie qui détermine combien de temps il devra attendre avant d'envoyer une réponse à un probe + avant de l'abandonner ou de le renvoyer. Cette valeur est calculée en fonction + du temps de réponse des probes précédents. Si + le temps de latence du réseau est significatif et variable, ce + délai d'inactivité ou cette durée de vie, peut augmenter jusqu'à plusieurs secondes. Elle est également de niveau élevé et peut rester ainsi pendant un bon moment lorsque Nmap scanne + des hôtes sans réponse.</para> + <para>Ces options acceptent des valeurs en millisecondes. Spécifier un + <option>--max-rtt-timeout</option> et un + <option>--initial-rtt-timeout</option> plus bas que ceux par défaut peuvent raccourcir + le temps de scan de façon significative. C'est particulièrement vrai pour les scans sans ping préalable + (<option>-P0</option>) et ceux contre des réseaux très filtrés. + Toutefois, ne soyez pas trop agressif. Le scan peut se finir en un temps plus significatif si, au contraire, vous spécifiez des valeurs tellement basses que les durées de vie des probes sont terminées + et ceux-ci renvoyés alors que leurs réponses sont en fait encore en transit.</para> + <para>Si tous les hôtes sont sur un réseau local, 100 millisecondes est une + valeur de <option>--max-rtt-timeout</option> seront suffisantes. Si vous etes face a un routage, mesurez d'abord le temps de réponse d'un hôte sur le réseau \ l'aide du ping ICMP de Nmap ou d'un autre outil, comme hping2 qui est plus à même + de passer un pare-feu si le paquet est spécialement forgé. Regardez les durées de transit + sur 10 paquets ou plus. Vous pouvez doubler cette valeur pour + <option>--initial-rtt-timeout</option> et tripler ou quadrupler + le <option>--max-rtt-timeout</option>. Généralement, je ne règle pas le + rtt maximum à moins de 100ms, et ce, quelles que soient les mesures de ping. De plus, je n'excède + pas 1 000ms.</para> + <para> + <option>--min-rtt-timeout</option> est une option rarement utilisée qui + peut s'avérer utile lorsqu'un réseau est si lent que même les réglages par défaut de Nmap + sont trop agressifs. Comme Nmap ne réduit le délai d'inactivité au + minimum que lorsque le réseau semble suffisamment rapide, ce genre de besoin est + inhabituel et devrait être rapporté en tant que procédure erronée à la liste de développement de nmap-dev.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--max-retries <nombreessais></option> (Spécifie le nombre maximum de retransmisison des paquets de test (probes)) + </term> + <listitem> + <para>Quand Nmap ne reçoit pas de réponse à un paquet de test sur un port, cela peut signifier que le port est filtré. Ou simplement que la réponse s'est perdue sur le réseau. Il est également possible que l'hôte cible ait limité son taux d'émission ce qui a temporairement bloqué la réponse. Pour ces raisons, Nmap recommence l'émission du paquet de test. Si Nmap détecte que le réseau est peu fiable, il peut essayer de re-émettre le paquet plus de fois encore avant de s'arrêter. Si cette technique améliore la fiabilité, elle ralonge la durée du scan. Quand la performance est un facteur critique, les scans peuvent être accélérés en limitant le nombre de retransmissions autorisé. Vous pouvez même spécifier <option>--max-retries 0</option> pour éviter toute retransmission, bien que cela ne soit pas trop recommandé. + </para> + <para> + Le paramétrage par défaut (sans politique <option>-T</option> spécifiée) est d'autoriser jusqu'à dic retransmissions. Si le réseau a l'air fiable et que les hôtes cibles ne limitent pas leur taux d'émission, Nmap ne fait généralement qu'une seule retransmission. Ainsi, réduire <option>--max-retries</option> à une valeur basse comme trois n'affecte pas la plupart des scans. Une telle valeur peut accélérer significativement les scans pour des hôtes lents (qui limitent leurs émissions). Généralement, vous perdez des informations si Nmap cesse de scanner un port trop tôt, mais cela peut être préférable à laisser <option>--host-timeout</option> expirer et perdre alors toutes les informations concernant la cible. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--host-timeout <millisecondes></option> (Abandon des hôtes cibles + trop lents) + </term> + <listitem> + <para>Certains hôtes prennent du temps <emphasis>long</emphasis> à scanner, tout simplement. + Ceci peut être dû à du matériel ou à des logiciels réseau peu performants ou inefficaces, + à un taux de paquets limité ou à un pare-feu restrictif. Le faible pourcentage de + hôtes lents scannés peut ralentir le temps de scan tout entier. + Il est donc parfois préférable d'écarter temporairement ces hôtes du scan initial. Ceci peut être fait en spécifiant <option>--host-timeout</option> avec le nombre de millisecondes maximales que + vous êtes prêt à attendre. Je choisis souvent 1 800 000 secondes pour m'assurer que Nmap + ne perde pas plus d'une demi-heure sur un seul hôte. Notez que Nmap + peut être en train de scanner d'autres hôtes en même temps durant cette demi-heure, + ce n'est donc pas une perte complète. Un hôte qui dépasse cette valeur est abandonné. + Pas de listage des ports, de détection d'OS ou de détection de version + dans les résultats pour celui-ci.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--scan-delay <millisecondes></option>; + <option>--max-scan-delay + <millisecondes></option> (Ajuste le délai entre les paquets de test)</term> + <listitem> + <para>Cette option force Nmap à attendre d'obtenir au moins la valeur donnée en + millisecondes entre chaque probe qu'il envoie sur un hôte donné. C'est particulièrement + utile en cas de limitation de nombre de paquets (taux limite). Les machines Solaris + (parmi beaucoup d'autres) vont habituellement répondre à des paquets de test d'un scan UDP + par seulement un message ICMP par seconde. Tout ce qui est envoyé au-delà par Nmap + serait inutile. Un <option>--scan-delay</option> de 1 000 gardera + Nmap à ce taux suffisamment lent. Nmap essaie de détecter le taux limite et + d'ajuster le délai en conséquence, mais il ne fait pas de mal de le préciser si vous + savez déjà quelle valeur est la meilleure.</para> + <para>Une autre utilisation de <option>--scan-delay</option> est d'éviter + les détections éventuelles des systèmes de détection et de prévention d'intrusion (IDS/IPS) basées sur ce genre de règle.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--defeat-rst-ratelimit</option> + </term> + <listitem> + <para>Beaucoup d'hôtes utilisent depuis longtemps un filtrage pour réduire le nombre +de messages d'erreur ICMP (comme les erreurs de ports inaccessibles) qu'ils envoient. +Certains systèmes appliquent a présent des limitations similaires aux paquets RST (reset) +qu'ils génèrent. Ceci peut ralentir Nmap dramaticalement étant donné qu'il +ajuste son timing pour refléter ces limitations. Vous pouvez dire a Nmap d'ignorer +ces limitations (pour les scans de ports comme le SYN scan qui +<emphasis>ne traitent pas</emphasis> les ports muets comme étant +<literal>ouverts</literal>) en spécifiant + +<option>--defeat-rst-ratelimit</option>.</para> + <para>Utiliser cette option peut réduire la précision, puisque certains ports apparaitront +comme muets parcequ'Nmap n'attend alors pas assez longtemps une réponse +RST qui serait limitée. Dans le cas d'un SYN +scan, l'absence de réponse se traduit par un port marqué +<literal>filtré</literal> plutot que <literal>fermé</literal> +quand des paquets RST sont recus. Cette option est utile +quand vous n'avez besoin que des ports ouverts, et que distinguer des +<literal>fermés</literal> ou des <literal>filtrés</literal> ne vaut pas +le temps supplémentaire que cela suppose.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-T + <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane></option> + (Régler un profil de comportement au niveau du délai) + </term> + <listitem> + <para>Bien que les contrôles avancés et précis du délai dont il est fait mention + dans les sections précédentes soient précis et efficaces, certains peuvent les trouver compliqués. + Qui plus est, choisir les valeurs appropriées peut parfois prendre plus de temps + que le scan que vous essayez d'optimiser. De ce fait, Nmap offre + une approche plus simple, avec six profils de timing. Vous pouvez les spécifier grâce à + l'option <option>-T</option> et aux numéros (0 à 5) ou aux noms correspondants. + Les noms des profils sont paranoid (0), sneaky (1), polite (2), normal + (3), agressive (4), et insane (5). Les deux premiers sont pour éviter les IDS. + Le profile « Polite » ralentit le scan afin d'utiliser moins de bande passante + et moins de ressources sur la machine cible. Le profil « Normal » est celui par défaut et + donc <option>-T3</option> ne fait rien. Le profil « Agressive » accélère les scans, partant du principe + que vous travaillez sur un réseau suffisamment rapide et efficace. + Enfin, le profil « Insane » suppose que vous êtes sur un réseau + extraordinairement rapide ou que vous êtes prêt à sacrifier un peu de précision pour + plus de vitesse.</para> + <para>Ces profils permettent à l'utilisateur de spécifier à quel point il + souhaite être agressif tout en laissant Nmap choisir les valeur adéquates. + Les profils effectuent aussi quelques ajustements que les options avancées + ne permettent pas encore. Par exemple, + <option>-T4</option> empêche la variation dynamique du délai de dépasser + 10ms pour les ports TCP et <option>-T5</option> met cette valeur à 5 + millisecondes. Les profils peuvent être utilisés en combinaison avec les options avancées + en autant que le profil est précisé en premier. Dans le cas contraire, + les valeurs normalisées pour le profil risquent d'écraser celles que vous spécifiez. + Je vous recommande d'utiliser <option>-T4</option> lorsque vous scannez des réseaux + plus ou moins rapides, efficaces et modernes. Utilisez cette option (en début de ligne de commande) + même si vous ajoutez des options avancées afin de bénéficier des petites améliorations liée à cette option.</para> + <para>Si vous travaillez sur une connexion large bande ou Ethernet, je vous + recommande toujours d'utiliser <option>-T4</option>. Certains aiment utiliser + <option>-T5</option> quoique ce soit, à mon avis, trop agressif. Les gens + utilisent parfois <option>-T2</option> parce qu'ils pensent que le rsique que les hôtes tombent en panne soit moins grand ou parce qu'ils se considèrent comme respectueux d'une façon générale. + Souvent ils ne réalisent pas à quel point l'option <option>-T + Polite</option> est lente en réalité. Leur scan peut prendre dix fois plus de temps qu'un scan par défaut. + Les machines qui tombent en panne et les problèmes liés à la bande passante sont rares avec + les options de scan par défaut (<option>-T3</option>). C'est pourquoi je les recommande + habituellement pour les scanneurs précautionneux. Le fait de ne pas faire de détection de version + est bien plus efficace pour limiter ces problèmes que de jouer sur les valeurs de timing.</para> + <para>Bien que les options <option>-T0</option> et <option>-T1</option> puissent être + utiles pour éviter les alertes des IDS, elles prendront un temps énorme + pour scanner des milliers de machines ou de ports. Lorsqu'il s'agit de tels scans, + vous devriez régler les valeurs exactes de timing dont vous avez besoin plutôt que + de vous appuyer sur les options <option>-T0</option> et <option>-T1</option> + et les valeurs qui y sont associées.</para> + <para>Les effets principaux de <option>T0</option> sont de mettre les scans en série + de façon à ce que seul un port ne soit scanné à la fois, puis d'attendre 5 minutes + entre chaque envoi de probe. <option>T1</option> et + <option>T2</option> sont semblables mais n'attendent que 15 secondes et 0,4 secondes, + Respectivement, entre chaque probe. <option>T3</option> est le profil par défaut de Nmap + et comporte la mise en parallèle. <option>T4</option> + est l'équivalent de <option>--max-rtt-timeout 1250 + --initial-rtt-timeout 500 --max-retries 6</option> et met le délai maximum de scan TCP + à 10 millisecondes. <option>T5</option> fait la même chose que + <option>--max-rtt-timeout 300 --min-rtt-timeout 50 + --initial-rtt-timeout 250 --max-retries 2 --host-timeout 900000</option> tout en + mettant le délai maximum de scan TCP à 5 millisecondes.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-bypass-firewalls-ids" > + <title>Évitement de pare-feux/IDS et mystification</title> + <para>Beaucoup de pionniers d'Internet envisageaient un réseau global ouvert avec + un espace d'adressage IP universel permettant des connexions virtuelles entre n'importe quel + noeuds. Ceci permet aux hôtes d'agir en véritables relais, recevant et renvoyant + l'information les uns aux autres. Les gens pourraient accéder à l'ensemble + de leur système domestique du bureau, en changeant les réglages de climatisation ou + en déverrouillant leur porte pour les premiers invités. Cette vision d'une connectivité universelle + a été étouffée par la réduction de l'espace d'adressage et les considérations de sécurité. + Au début des années 90, les organisations commencèrent à déployer + des pare-feux dans le but explicite de réduire la connectivité. De gigantesques + réseaux furent cernés et coupés (NdT : le texte original dit <quote>barrés par un cordon de police</quote>) d'Internet non filtré + par des proxies applicatifs, la conversion des adresses réseau (network address translation) et les filtrages de paquets. Le + flux d'information libre céda la place à une régulation stricte de canaux de communication + approuvés et du contenu qui y transitait.</para> + <para>Les outils d'obstruction du réseau comme les pare-feux peuvent rendre la cartographie + d'un réseau beaucoup trop difficile. Ce fait ne va pas aller en s'arrangeant puisque + l'étouffement de toute possibilité de reconnaissance est souvent + un point clé de l'implémentation des interfaces. Nonobstant, Nmap offre un certain nombre + de fonctionnalités afin d'aider à comprendre ces réseaux complexes + ainsi que de s'assurer que les filtres agissent comme ils sont censés le faire. + Il supporte même des mécanismes pour contourner les défenses établies de façon trop + faibles. Une des meilleures méthodes pour mieux comprendre votre réseau + et la sécurité qui y est déployée est de tenter de la contourner. Mettez-vous à la place de l'attaquant et déployez les techniques de cette section + contre vos réseaux. Lancez un scan « FTP bounce », un « Idle scan », + une attaque par fragmentation, ou tentez d'établir un tunnel à travers un de vos + propres proxies.</para> + <para>Outre le fait de restreindre l'activité du réseau, les compagnies + surveillent de plus en plus le trafic à l'aide de systèmes de détection d'intrusion + (IDS). Tous les principaux IDSs sont prévus pour détecter les scans de Nmap + parce que les scans sont parfois précurseurs d'attaques. Beaucoup de + ces produits ont récemment migré vers des systèmes de + <emphasis>prévention</emphasis> et d'intrusion (IPS) qui bloquent de façon active + un trafic supposé malveillant. Malheureusement pour les administrateurs de réseau + et les distributeurs d'IDS, la fiabilité de détection de mauvaises intentions par analyse + des données de paquets demeure un problème. Les attaquants, avec de la patience, un certain niveau d'expertise et certaines quelques fonctions de Nmap, peuvent traverser un IDS sans être détectés. + Dans le même temps, les administrateurs doivent composer avec un grand nombre de + fausses alertes (false positive) qui bloquent et signalent une activité innocente.</para> + <para>De temps en temps, les gens suggèrent que Nmap ne devrait pas offrir de + possibilités de contourner les règles des pare-feux ou de tromper les IDSs. Ils font valoir que ces fonctionnalités sont utilisées par les attaquants de la même façon que les + administrateurs les utilisent pour renforcer leur sécurité. Le problème avec cette + logique est que ces méthodes seront toujours utilisées par les attaquants, qui ne feront + que trouver d'autres outils ou corriger ces fonctions sur Nmap. + Dans le même temps, les administrateurs trouveront plus de difficultés à faire + leur travail. Déployer seulement des serveurs FTP modernes et corrigés est une + défense bien plus efficace que d'empêcher la distribution d'outils permettant + les attaques « FTP Bounce ». + </para> + <para>Il n'y a pas de méthode miracle (ni d'option dans Nmap) pour détecter et + tromper les pare-feux et les systèmes IDS. Cela demande un niveau de connaissances et de l'expérience. + Un tutoriel est prévu pour ce guide de référence qui ne fait que + lister les options relatives à ces sujets et ce qu'elles font.</para> + <variablelist> + <varlistentry> + <term> + <option>-f</option> (fragmentation de paquets); + <option>--mtu</option> (utiliser le MTU spécifié) + </term> + <listitem> + <para>L'option <option>-f</option> force le scan demandé (y compris + les scans de type ping) à utiliser des paquets IP fragmentés en petits paquets. L'idée + est de partager l'en-tête TCP en plusieurs paquets pour + rendre plus difficile la détection de ce que vous faites par les dispositifs de filtrage de paquets, + les systèmes de détection et d'intrusion et autres systèmes ennuyeux. + Il faudra cependant faire attention ! Certains programmes ont du mal à + gérer ces petits paquets. Les anciens sniffers comme + Sniffit souffraient d'erreurs de segmentation immédiatement après avoir reçu + le premier fragment. Spécifiez cette option une fois, et Nmap + partage les paquets en 8 bytes ou moins après l'en-tête IP. + Par exemple, un en-tête de 20 bytes sera fragmenté en 3 paquets. + Deux avec 8 bytes d'en-tête TCP et un avec les 4 derniers. + Bien entendu, chaque paquet a son en-tête IP. Spécifiez encore + <option>-f</option> pour utiliser 16 bytes par fragment (ceci réduit + le nombre de fragments). Vous pouvez aussi spécifier + votre propre taille d'offset avec l'option <option>--mtu</option>. Par contre, ne + spécifiez pas <option>-f</option> si vous utilisez <option>--mtu</option>. L'offset doit être + un multiple de 8. Bien que les paquets fragmentés ne tromperont pas + les filtrages de paquets et les pare-feux, tenant compte de tous les fragments IP, + comme l'option CONFIG_IP_ALWAYS_DEFRAG dans le noyau Linux, + certains réseaux ne peuvent supporter la perte de performance que cela entraîne + et de ce fait laisse ceci désactivé. D'autres ne peuvent pas l'activer parce que les fragments peuvent prendre différentes routes au sein de leur réseau. + Certains systèmes source défragmentent les paquets sortant dans le noyau. + Linux, avec le module de connection « tracking iptables » est + un très bon exemple. Faites donc ce genre de scan avec un + sniffer comme Ethereal tournant en même temps + afin de vous assurer que les paquets envoyés sont + bien fragmentés. Si votre système d'exploitation causait des problèmes, essayez l'option <option>--send-eth</option> pour contourner la couche IP et envoyer des trames en raw Ethernet.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-D <decoy1 [,decoy2][,ME],...></option> + (Dissimuler un scan avec des leurres) + </term> + <listitem> + <para>Engendrez un scan avec des leurres, ce qui fait croire + à l'hôte distant que les hôtes que vous avez spécifié exécutent eux + aussi un scan contre lui. Un IDS fera état d'un scan de 5 à 10 ports + depuis des adresses IP différentes, dont la vôtre, + sans pouvoir faire la différence entre les leurres et la véritable origine. + Bien que ceci puisse être repéré par + la tracabilité des routeurs, le renvoi de réponses (response-dropping), + et d'autres mécanismes actifs, ceci reste une technique + généralement efficace pour cacher votre adresse IP.</para> + <para>Séparez chaque leure par une virgule et vous pourrez + utiliser de façon facultative <literal moreinfo="none" >ME</literal> en tant que l'un des leurres pour représenter + la position de votre véritable adresse IP. Si vous mettez + <literal moreinfo="none" >ME</literal> en sixième position ou après, certains systèmes + de détection de scans de ports (comme l'excellent scanlogd de Solar Designer) + sont incapables de voir votre adresse IP. Si vous + n'utilisez pas <literal moreinfo="none" >ME</literal>, Nmap vous placera à une position aléatoire.</para> + <para>Notez que les hôtes que vous utilisez comme leurres devraient être réellement actifs; sinon, vous risquez d'inonder votre cible par des SYN. Sans compter qu'il serait + très facile de déterminer quel hôte est en train de scanner si en fait un seul est actif sur le réseau. + Vous pourriez utiliser des adresses IP + plutôt que des noms afin de ne pas apparaître dans les logs + des serveurs de nom du réseau.</para> + <para>Les leurres sont utilisés autant dans la phase initiale de scan ping (utilisant les + ICMP, SYN, ACK, ou quoi que ce soit) que dans la phase proprement dite de scan + de ports. Les leurres sont aussi utilisés pendant la détection d'OS distant (<option>-O</option>). + Les leurres ne fonctionnent pas avec la détection de version ou un scan de type TCP connect().</para> + <para>Il est inutile d'utiliser trop de leurres car cela pourrait + ralentir votre scan et potentiellement le rendre moins précis. + Enfin, certains FAI peuvent filtrer vos paquets usurpés (spoofés) + toutefois beaucoup ne le font pas du tout.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-S <IP_Address></option> (Usurper votre adresse source) + </term> + <listitem> + <para>Dans certaines circonstances, + Nmap n'est pas capable de déterminer votre + adresse source ( + Nmap vous avisera le cas échéant). Dans cette situation, utilisez <option>-S</option> avec l'adresse IP de + l'interface avec laquelle vous souhaitez envoyer les paquets.</para> + <para>Un autre usage possible de ce drapeau est d'usurper (spoofer) le scan + afin de faire croire à la cible que <emphasis>quelqu'un + d'autre</emphasis> est en train de les scanner. Imaginez une compagnie + constamment scannée pas un concurrent ! L'option + <option>-e</option> est généralement requise pour ce genre d'usage + et <option>-P0</option> est à conseiller quoi qu'il en soit.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-e <interface></option> (Utiliser l'interface précisée) + </term> + <listitem> + <para>Avise Nmap sur quelle interface envoyer et recevoir les paquets. + Nmap devrait pouvoir la détecter automatiquement + mais il vous le dira + si ce n'est pas le cas.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--source-port <portnumber>;</option> + <option>-g <portnumber></option> (Usurper le numéro du port source) + </term> + <listitem> + <para>L'une des erreurs de configuration les plus surprenantes est de faire confiance + au trafic sur la base du port d'où il provient. Il est facile de comprendre pourquoi une telle situation se produit. Un administrateur va régler un tout nouveau pare-feu et être noyé sous les plaintes des utilisateurs dont les applications + ne fonctionnent plus. En particulier, les DNS peuvent être cassés + parce que les réponses UDP DNS depuis les serveurs externes ne peuvent plus entrer + sur le réseau. Le FTP est un autre exemple. Dans les transferts actifs en FTP, + le serveur distant essaie d'établir une connexion en retour vers le client + afin de transférer le fichier demandé.</para> + <para>La solution sécurisée pour ce problème existe, souvent sous la forme + de proxies applicatifs ou de modules de filtrage de protocoles au niveau du pare-feu. + Malheureusement, il existe aussi des solutions faciles non sécurisées. En remarquant que + les réponses DNS viennent du port 53 et le FTP actif du port 20, beaucoup d'administrateurs + sont tombés dans le piège de seulement permettre le trafic entrant depuis + ces ports. Ils imaginent souvent qu'aucun attaquant n'aura noté et + pensé exploiter de telles failles de pare-feux. Dans d'autres cas, l'administrateur va considérer que c'est + une solution à court terme jusqu'à ce qu'il implémente une solution plus sécurisée. + Ils oublient par la suite d'effectuer la mise à jour de sécurité. + </para> + <para>Les administrateurs de réseau surchargés de travail ne sont pas les seuls à tomber + dans ce piège. Beaucoup de produits sont pensés avec ce genre de règle + mal sécurisée. Même Microsoft en a été coupable. Les filtres IPsec, fournis avec + Windows 2000 et Windows XP, contiennent une règle implicite qui autorise + tout trafic depuis le port 88 (Kerberos) en TCP ou UDP. Dans un autre cas bien + connu, les versions du pare-feu Zone Alarm personal firewall jusqu'à 2.1.25 + permettaient tout paquet UDP provenant du port 53 (DNS) ou 67 + (DHCP).</para> + <para>Nmap propose les options <option>-g</option> et + <option>--source-port</option> qui sont équivalentes pour exploiter ces faiblesses. + Fournissez simplement un numéro de port et Nmap enverra les paquets depuis ce port + si possible. Nmap doit utiliser certains numéros de port + afin que certains tests de détection d'OS fonctionnent correctement. De plus, les requêtes DNS + ignorent le drapeau <option>--source-port</option> parce que Nmap se fonde sur un système de + bibliothèques pour les traiter. La plupart des scans TCP, y compris le SYN scan, + supportent entièrement l'option comme le fait aussi le scan UDP.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--data-length <number></option> (Ajoute des données aléatoires + aux paquets envoyés) + </term> + <listitem> + <para>Normalement, Nmap envoie des paquets minimalistes contenant seulement + un en-tête. Donc ces paquets TCP ne font généralement que 40 bytes + et les ICMP echo request seulement 28 bytes. Cette option indique + à Nmap d'ajouter le nombre donné de bytes aléatoires à la plupart des + paquets qu'il envoie. Les paquets de la détection d'OS (<option>-O</option>) + ne sont pas affectés, contrairement à la plupart des paquets de ping et de scan de port. Cette procédure ralentit bien entendu les choses mais permet toutefois de faire passer un scan + pour un peu moins suspect.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--ip-options <S|R [route]|L [route]|T|U ... >;></option> + <option>--ip-options <hex string>></option> (Envoie des paquets avec les options IP spécifiées) +</term> + <listitem> + <para>Le <ulink target="_top" url="http://www.ietf.org/rfc/rfc0791.txt" >protocole + IP</ulink> offre plusieurs options pouvant être placées dans + l'entête des paquets. Contrairement aux options TCP habituelles, les options IP + sont rarement rencontrées pour des raisons pratiques et de sécurité. En + fait, beaucoup de routeurs Internet bloquent les options les plus dangereuses + comme le routage de source. CEpendant les options peuvent s'avérer utiles dans certains + cases for determining and manipulating the network route to + cas de machines cibles. Par exemple vous pouvez être en mesure d'utiliser l'enregistrement + de routage pour déterminer un chemin vers une cible quand bien même une approche plus + traditionnelle de Traceroute échouerait. Ou si vos paquets sont + rejettés par un pare-feu, vous pouvez spécifier une autre + route avec des options plus ou moins vagues de routage.</para> + <para>La facon la plus puissante de spécifier ces options IP est simplement + de passer ces valeurs en argument à + <option>--ip-options</option>. Faites précéder chaque nombre héxadécimal par + <literal>\x</literal> puis les deux chiffres. Vous pouvez répèter + certains charactères en les séparant par un asterisk suivit du + nombre de répétions. Par exemple, + <literal>\x01\x07\x04\x00*36\x01</literal> est une chaine héxa + contenant 36 NUL bytes.</para> + <para>Nmap propose aussi un mechanisme de raccourcis pour spécifier + ces options. Donnez simplement la lettre <literal>R</literal>, + <literal>T</literal>, ou <literal>U</literal> pour demander + l'enregistrement de routage, de timestamp, ou les deux simultanement, + respectivement. Un routage strict ou plus vague peut être spécifié + avec un <literal>L</literal> ou un <literal>S</literal> suivit d'un espace + et d'une liste séparée d'espaces d'adresses IP.</para> + <para>Si vous souhaitez voir les options dans les paquets envoyés et + recus, spécifiez <option>--packet-trace</option>. Pour plus + d'information et d'exemples de l'utilisation des options IP avec Nmap, voir + <ulink url="https://seclists.org/nmap-dev/2006/q3/0052.html" />.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--badsum</option> (Envoyer des paquets avec des sommes de contrôle TCP/UDP erronnées) +</term> + <listitem> + <para>Demande a Nmap d'utiliser une somme de contrôle TCP ou UDP erronnée pour + les paquets envoyés aux hôtes cibles. Comme virtuellement toutes + les piles IP des hôtes rejettent ces paquets, toute réponse recue + doivent venir d'un pare-feu ou d'un IDS qui ne se préoccuppe pas de + vérifier les sommes de contrôle. Pour plus de détails sur cette technique, voir <ulink url="https://nmap.org/p60-12.txt" /> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--ttl <value></option> (Règle la valeur du champ IP de durée de vie (time-to-live)) + </term> + <listitem> + <para>Règle le champ IPv4 du time-to-live dans les paquets envoyés + à la valeur donnée.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--randomize-hosts</option> (Met les hôtes dans un ordre aléatoire) + </term> + <listitem> + <para>Indique à Nmap de mélanger tous les groupes contenant jusqu'à 8 096 hôtes + avant de les scanner. Ceci peut rendre les scans moins évidents + pour de nombreux systèmes de surveillance réseau, spécialement si vous le combinez à + des options de délai lentes. Si vous + souhaitez mélanger des groupes de taille plus importante, augmentez la valeur + PING_GROUP_SZ dans <filename moreinfo="none" >nmap.h</filename> et recompilez. + Une autre solution serait de générer la liste des IP cibles + avec un scan de listage (list scan, <option>-sL -n -oN + <replaceable>filename</replaceable> + </option>), le mélanger à l'aide + d'un script Perl, puis fournir la liste complète à Nmap avec + <option>-iL</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--spoof-mac <mac address, prefix, or vendor + name></option> (Usurpation d'adresses MAC) + </term> + <listitem> + <para>Demande à Nmap d'utiliser l'adresse MAC spécifiée pour l'ensemble des + trames en raw Ethernet qu'il envoie. Cette option implique + <option>--send-eth</option> pour s'assurer que Nmap envoie vraiment + des paquets au niveau Ethernet. Le MAC donné peut prendre plusieurs formes. S'il s'agit seulement de la chaîne <quote>0</quote>, Nmap choisit une adresse MAC totalement aléatoire + pour la session. Si la chaîne est un nombre hexadécimal + (avec les paires de nombres éventuellement séparées par les deux points), Nmap utilisera + ceci comme adresse MAC. Si moins de 12 chiffres sont spécifiés, Nmap + remplit le reste avec des valeurs aléatoires. Si l'argument + n'est ni 0 ni une chaîne hexadécimale, Nmap recherche dans sa base de données + <filename moreinfo="none" >nmap-mac-prefixes</filename> un nom de fournisseur contenant la chaîne en question + (non sensible à la casse). Si une correspondance est trouvée, Nmap utilise le numéro + OUI du distributeur (un préfixe de 3 bytes) et utilise les 3 bytes restants + de façon aléatoire. Des exemples de valeurs <option>--spoof-mac</option> valides sont <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> et <literal moreinfo="none" >Cisco</literal>.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-output" > + <title>Comptes rendus</title> + <para>Tout outil de sécurité n'est vraiment utile qu'en fonction des + comptes rendus qu'il génère. Des tests aussi complexes soient-ils et des algorithmes n'ont + finalement qu'une faible valeur s'ils ne sont pas présentés et organisés de façon compréhensible. + Étant donné que les utilisateurs emploient Nmap et d'autres + Logiciels de diverses façons, il n'y a pas un format qui puisse convenir à tout le monde. Nmap propose donc + plusieurs formats, y compris le mode interactif permettant d'être directement intelligible + et le XML pour une meilleure portabilité entre logiciels (parsing).</para> + <para>Outre le fait de proposer différents formats de sortie, Nmap comporte + des options permettant aussi bien de contrôler la verbosité des comptes rendus que + le déboggage. Les différents types de sorties peuvent être envoyés à des comptes rendus normalisés ou + à des fichiers spécifiques, dont le contenu peut s'agrémenter des scans successifs ou remplacer un contenu précédent. + Ces fichiers de sortie peuvent aussi être utilisés pour reprendre un scan temporairement suspendu.</para> + <para>Nmap rend les résultats disponibles en 5 formats différents. + Le format par défaut est appelé <literal moreinfo="none" >interactive output</literal>. Il est envoyé en sortie standard + (stdout). On trouve aussi le <literal moreinfo="none" >normal output</literal>, + qui est semblable à <literal moreinfo="none" >interactive</literal> à ceci près qu'il + affiche moins d'informations de fonctionnement et d'alertes étant donné qu'il est plutôt destiné à + être analysé à la fin des scans au lieu de façcon interactive.</para> + <para>La sortie au format XML est l'une des plus importante qui peut être + converti en HTML. Elle est facilement traitée par des programmes tiers comme les interfaces + graphiques pour Nmap, ou importée au sein de bases de données.</para> + <para>Les deux autres formats restants sont le simple <literal moreinfo="none" >grepable + output</literal>, qui inclus la plupart des informations concernant une cible dans une + seule ligne, et le <literal moreinfo="none" >sCRiPt KiDDi3 0utPUt</literal> pour les utilisateurs qui + se prennent au sérieux |<-r4d.</para> + <para>Alors que le format interactif représente la sortie par défaut et ne nécessite pas d'option + de ligne de commande particulière, les quatre autres options de format utilisent la même + syntaxe. Ils prennent un argument qui représente le nom du fichier dans lequel + les résultats devraient être inscrits. Des formats multiples peuvent être spécifiés mais chaque + format ne devrait être spécifié qu'une seule fois. Par exemple, vous pourriez souhaiter sauvegarder + une sortie de type normal (normal output) pour votre propre usage tout en sauvegardant un XML du même scan + pour une analyse par un programme. Vous pouvez le faire à l'aide des options + <option>-oX myscan.xml -oN myscan.nmap</option>. Bien que ce chapitre utilise + des noms de fichier simples, notamment <literal moreinfo="none" >myscan.xml</literal>, àdes fins pratiques, + des noms plus explicites sont en général recommandés. Le choix des noms relève des + préférences personnelles, toutefois pour ma part, j'en utilise de longs + contenant la date du scan ainsi qu'un mot ou deux décrivant le scan. Je les enregistre ensuite dans un répertoire nommé selon la compagnie pour laquelle je suis en train d'effectuer le scan.</para> + <para>Même si ces options sauvegardent les résultats dans des fichiers, Nmap continue à + fournir la sortie interactive en stdout comme d'habitude. Par exemple, la commande + <command moreinfo="none" >nmap -oX myscan.xml target</command> génère un fichier XML intitulé + <filename moreinfo="none" >myscan.xml</filename> tout en donnant la sortie standard avec le même résultat interactif qu'il aurait donné si l'option <option>-oX</option> + n'avait pas été spécifiée du tout. Vous pouvez changer cette procédure en entrant un tiret + en argument sur l'un des types de format. Ceci force Nmap à désactiver + la sortie interactive et d'inscrire à la place les résultats + dans le format que vous avez spécifié pour le flux de sortie standard. Par conséquent, la + commande <command moreinfo="none" >nmap -oX - target</command> enverra seulement une sortie XML en + stdout. Les erreurs sérieuses sont susceptibles d'être inscrites dans le flux normal + d'erreur, le stderr.</para> + <para>Contrairement à certains arguments de Nmap, l'espace entre le drapeau de l'option fichier + (comme <option>-oX</option>) et le nom de fichier ou le tiret est + obligatoire. Si vous l'omettez et entrez des arguments tels que + <option>-oG-</option> ou <option>-oXscan.xml</option>, une fonction de + compatibilité d'arrière-plan de Nmap forcera la création de formats de type + <emphasis>normal format</emphasis> comme fichiers de sortie nommés + <filename moreinfo="none" >G-</filename> et <filename moreinfo="none" >Xscan.xml</filename>, + respectivement.</para> + <para>Nmap offre en outre l'option de contrôler la verbosité du scan et d'ajouter les résultats + les uns à la suite des autres dans un même fichier plutôt que d'écraser les résultats précédants. Toutes ces options sont + décrites ci-dessous.</para> + <variablelist> + <title>Formats de Sortie sur Nmap</title> + <varlistentry> + <term> + <option>-oN <filespec></option> (sortie Normale)</term> + <listitem> + <para>Demande que le format <literal moreinfo="none" >normal output</literal> soit appliqué + au fichier donné. Tel que décrit ci-dessus, cette procédure + diffère légèrement d'une sortie de type <literal moreinfo="none" >interactive output</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-oX <filespec></option> (sortie XML)</term> + <listitem> + <para>Demande que le format <literal moreinfo="none" >XML output</literal> soit + donné au fichier spécifié. Nmap contient une définition + de type de document (DTD) qui permet le traitement XML des résultats + de Nmap. Bien que ce soit d'abord pensé aux fins d'utilisation de programmation, + cette procédure peut aussi aider à interpréter la sortie XML + de Nmap. Le DTD définit les éléments légaux du format + et énumère souvent les attributs et les valeurs qu'ils peuvent prendre. + La dernière version est toujours disponible sur <ulink url="https://nmap.org/data/nmap.dtd" />.</para> + <para>Le XML offre un format stable facilement traitable + au moyen d'un logiciel. Des outils de traitement XML sont offerts gratuitement dans tous les grands + langages de programmation, y compris C/C++, Perl, Python et + Java. Des gens ont même écrit des outils spécifiques dans ces langages + destinés au support de traitement des sorties de Nmap. + Notons comme exemples le <ulink url="http://sourceforge.net/projects/nmap-scanner/" >Nmap::Scanner</ulink> + et le <ulink url="http://www.nmapparser.com" >Nmap::Parser</ulink> en Perl + CPAN. Dans la plupart des cas où une application tierce + doit interagir avec Nmap, le XML est le format privilégié.</para> + <para>Les sorties XML font référence à une feuille de style XSL qui peut être + utilisée dans le but de formater les résultats au format HTML. La façon la plus simple + d'utiliser ceci est de charger la sortie XML dans un navigateur Web, comme Firefox ou IE. Par défaut, cette démarche ne pourra être appliquée qu'à partir dela machine + sur laquelle vous utilisez Nmap (ou une machine configurée de façon + semblable) en raison du chemin système vers <filename moreinfo="none" >nmap.xsl</filename> codé en dur. + Utilisez l'option <option>--webxml</option> ou <option>--stylesheet</option> pour une façon de + générer un fichier XML portable qui rendra un format HTML sur toute + machine connectée au Web.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-oS <filespec></option> (s0r713 ScRipT KIdd|3)</term> + <listitem> + <para>Le format de sortie Script kiddie est similaire à la sortie interactive, sauf qu'il est post-traité de façon à mieux coller au style l33t HaXXorZ qui s'intéresse + à Nmap soit les lettres majuscules et le contenu unique de sa + prononciation. Les gens dénués d'humour devraient réaliser que cette option + est surtout une moquerie envers les script kiddies avant de me + descendre en flammes en m'accusant de <quote>les aider</quote>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-oG <filespec></option> (sortie Grepable)</term> + <listitem> + <para>Ce format de sortie vit ses derniers instants de support parce qu'il devient désuet. + Le format XML est bien plus puissant et presque aussi + pratique pour les utilisateurs expérimentés. Le XML est un standard pour lequel des douzaines + d'excellents outils de traitement sont disponibles alors que le format de sortie grepable est mon + propre bidouillage. Le XML est évolutif afin de supporter les fonctions ultérieures de Nmap au rythme où elles sont disponibles alors que j'omets souvent ces fonctions pour les sorties grepables + par manque de place.</para> + <para>Toutefois, le format de sortie grepable reste toujours populaire. C'est un + format simple qui liste chaque hôte sur une seule ligne et peut être facilement + traité à l'aide d'outils uniformisés sous UNIX, notamment grep, awk, cut, + sed, diff et Perl. Je l'utilise même souvent pour certains tests + en ligne de commande. Trouver tous les hôtes ayant le port ssh ouvert ou tournant + sous Solaris ne prend qu'un simple grep pour identifier l'hôte, + envoyé sur un awk ou traité pour afficher le champ désiré.</para> + <para>Le format Grepable consiste en une suite de commentaires (des lignes commençant par un + dièze (#) et des lignes cibles. Une ligne cible inclus une combinaison + de 6 champs étiquetés, séparés par des tabulations et suivis d'un séparatif. + Les champs sont <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" >IPID</literal> et <literal moreinfo="none" >Status</literal>.</para> + <para>Le plus important de ces champs est généralement + <literal moreinfo="none" >Ports</literal> qui donne les détails sur chaque port considéré. + C'est une liste d'entrées séparées par une virgule. Chaque entrée de port + représente un port considéré et prend la forme de 7 sous-champs séparés d'une barre oblique (/) . Ces sous-champs sont les suivants : <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> et <literal moreinfo="none" >Version info</literal>.</para> + <para>Comme pour le format XML, cette page-manuel ne permet pas de documenter + de façon exhaustive l'ensemble de ce format. Une vision plus détaillée + est disponible sur <ulink url="http://www.unspecific.com/nmap-oG-output" />.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-oA <basename></option> (sortie en tous formats)</term> + <listitem> + <para> + À votre convenance, vous pouvez spécifier <option>-oA + <replaceable>basename</replaceable> + </option> pour stocker les résultats + de scans en format normal, XML et grepable, et ce, en une seule fois. Ils sont + stockés dans <replaceable>basename</replaceable>.nmap, + <replaceable>basename</replaceable>.xml et + <replaceable>basename</replaceable>.gnmap, respectivement. + Comme pour la plupart des programmes, vous pouvez ajouter en préfixe au nom de fichier + un chemin d'accès, comme + <filename moreinfo="none" >~/nmaplogs/foocorp/</filename> sous UNIX ou + <filename moreinfo="none" >c:\hacking\sco</filename> sous Windows.</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <title>options de verbosité et déboggage</title> + <varlistentry> + <term> + <option>-v</option> (Augmenter le niveau de verbosité) + </term> + <listitem> + <para>Augmente le niveau de verbosité, forçant Nmap à + afficher plus d'informations sur le scan qu'il effectue. Les ports ouverts + sont indiqués au fur et à mesure où ils sont trouvés ainsi qu'une évaluation + du temps qui reste à scanner si Nmap pense que cela prendra quelques minutes. + Utilisez cette option deux fois pour + encore plus de verbosité. L'utiliser plus de deux fois n'a aucun effet.</para> + <para> La plupart des changements modifient seulement la sortie interactive et certains + touchent aussi les sorties normales et les script kiddies. Les autres sorties + sont conçues de façon à traiter par une machine, c'est pourquoi Nmap + peut donner des détails importants par défaut dans ces formats + sans pour autant fatiguer un utilisateur humain. Toutefois, il y a quelques + modifications dans les autres modes pour lesquels les tailles de sorties peuvent être réduites + substantiellement par omission de quelques détails. Par exemple, une + ligne commentée dans le format grepable qui fournit une liste de tous + les ports scannés n'est affichée que dans le mode verbeux parce que + cela peut s'avérer très long.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-d [level]</option> (Augmenter ou régler le niveau de déboggage) + </term> + <listitem> + <para>Quand même le mode verbeux ne donne pas assez d'informations pour vous, + le déboggage est là pour vous noyer sous encore plus de données! Comme avec + l'option de verbosité (<option>-v</option>), le déboggage est mis en place + avec un drapeau de ligne de commande (<option>-d</option>) et le niveau de déboggage + peut être augmenté en le spécifiant plusieurs fois. Autrement, vous pouvez définir + un niveau de déboggage en donnant un argument à <option>-d</option>. Par + exemple, <option>-d9</option> définit le niveau 9. C'est le plus haut niveau + et fournira des milliers de lignes à moins que vous ne lanciez + un scan très simple avec très peu de ports et de cibles.</para> + <para>La sortie de déeboggage est utile lorsqu'une procédure erronée est soupçonnée dans Nmap + ou si vous désirez simplement savoir ce que fait Nmap et pourquoi. Comme cette + fonctionnalité est surtout faite pour les développeurs, les lignes de déboggage ne sont pas toujours + tres explicites. Vous pouvez obtenir quelque chose comme : <computeroutput moreinfo="none" >Timeout + vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 + rttvar: 14987 to: 100000</computeroutput>. Si vous ne comprenez pas une ligne, vos seuls recours + sont de l'ignorer, la chercher dans le code source ou obtenir de l'aide + sur la liste de développement (nmap-dev). Certaines sont quand même assez explicites, mais + les messages deviennent de plus en plus obscures au fur et à mesure où le niveau de déboggage est élevé.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--packet-trace</option> (Trace les paquets et les données envoyés et reçus) + </term> + <listitem> + <para>Force Nmap à afficher un résumé de chaque paquet envoyé + ou reçu. C'est souvent utilisé pour le déboggage mais c'est + aussi une bonne façon pour les nouveaux utilisateurs de mieux comprendre + ce que Nmap fait en arrière-lan. Afin d'éviter d'afficher des milliers de lignes, + vous pouvez spécifier un nombre limité + de ports à scanner, notamment <option>-p20-30</option>. Si vous ne vous préoccupez que de + ce que fait le sous-système de détection de version, utilisez + plutôt <option>--version-trace</option> à la place.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--open</option> (Montre seulement les ports ouverts (ou potentiellement ouverts)) +</term> + <listitem> + <para>Il arrive que vous ne soyez interressé que par les ports sur lesquels vous pouvez effectivment vous connecter (état <literal>open</literal>), et ne voulez pas de résultats pollués par ceux qui sont <literal>closed</literal>, <literal>filtered</literal>, et <literal>closed|filtered</literal> . La personnalisation est en général faite après le scan en utilisant des outils comme grep, awk, ou Perl, mais cette fonctionnalité a été ajoutée à cause d'un grand nombre de demandes à cet égard. Spécifiez <option>--open</option> pour voir seulement les ports <literal>open</literal>, <literal>open|filtered</literal>, et <literal>unfiltered</literal>. Ces trois états sont traités pour ce qu'ils sont normalement, ce qui signifie que <literal>open|filtered</literal> et <literal>unfiltered</literal> peuvent être regroupés dans le comptage si il y en a un grand nombre.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--log-errors</option> (Journalise les erreurs/alertes dans un fichier en mode normal) +</term> + <listitem> + <para>Les alertes et erreurs affichées par Nmap vont habituellement uniquement + sur l'écran (sortie interactive), laissant un eventuel fichier de sortie + qui aurait été spécifié en ordre. Mais quand vous souhaitez quand même + voir ces messages dans le fichier de sortie que vous avez spécifié, + ajoutez cette option. C'est utile quand vous ne regardez pas + l'affichage interactif ou si vous essayez de debogger un + probleme. Le message apparait quand même à l'écran. + Ceci ne marchera pas pour la plupart des erreurs dues à une ligne de commande + erronnée, étant donné que Nmap n'aura pas encore ouvert + de fichier de sortie a ce stade. De plus, certains messages d'alerte/erreurs + utilisent un système différent qui n'est pas encore supporté + par cette option. Une alternative à cette option est + de rediriger l'affichage interactif (flux d'erreurs standard inclus) + vers un fichier. Tandis que la plupart des shells UNIX permettent ceci facilement, + cela peut s'avérer difficile sous Windows.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--iflist</option> (Dresse la liste des interfaces et des routes) + </term> + <listitem> + <para>Affiche la liste des interfaces et des routes système telles que détectées + par Nmap. C'est utile pour le déboggage lié aux problèmes de cheminement + ou de détermination des interfaces (comme lorsque + Nmap traite une connexion PPP en tant qu'Ethernet).</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <title>Options de sortie diverses</title> + <varlistentry> + <term> + <option>--append-output</option> (Ajouter au fichier plutôt que de l'écraser) + </term> + <listitem> + <para>Lorsque vous spécifiez un fichier pour un format de sortie + comme <option>-oX</option> ou <option>-oN</option>, ce fichier + est écrasé par défaut. Si vous préférez garder le contenu + existant du fichier et rajouter les nouveaux résultats, + spécifiez l'option <option>--append-output</option>. Tout + fichier de sortie spécifié dans cette configuration de session de Nmap + se verra agrémenté des nouveaux résultats plutôt qu'écrasé. Cela ne fonctionne + pas très bien pour les données de scan au format XML (<option>-oX</option>) dont le + fichier résultant ne sera pas vraiment correct et devra être rectifié + à la main.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--resume <filename></option> (Reprendre un scan abandonné) + </term> + <listitem> + <para>Certaines sessions importantes de Nmap peuvent prendre beaucoup de temps -- de + l'ordre de plusieurs jours. De tels scans ne sont pas toujours menés à terme. + Des restrictions peuvent empêcher Nmap d'être utilisé pendant + les heures de travail, soit parce que le réseau peut s'écrouler, la machine + sur laquelle Nmap tourne peut subir une réinitialisation voulue ou non ou Nmap lui même peut tomber en panne. L'administrateur qui utilise Nmap + peut l'annuler pour toute autre raison de toutes façons, en appuyant sur + <keycap moreinfo="none" >ctrl-C</keycap>. Recommencer tout le scan à partir du + début peut être indésirable. Heureusement, si le format normal (<option>-oN</option>) ou grepable (<option>-oG</option>) + a été conservé, l'utilisateur peut demander à Nmap de reprendre le scan + sur la cible qu'il traitait au moment d'être arrêté. + Spécifiez simplement l'option <option>--resume</option> avec le nom + du fichier de sortie normal/grepable en argument. Aucun autre argument n'est autorisé + puisque Nmap va chercher dans le fichier de sortie en question sa + configuration précédente. Appelez donc simplement Nmap de cette façon : + <command moreinfo="none" >nmap --resume + <replaceable>logfilename</replaceable> + </command>. Nmap ajoutera + les nouveaux résultats aux données déjà présentes dans le fichier en question + lors de la précédente exécution. Le redémarrage n'est pas possible à partir d'un format XML + parce que combiner les deux sessions dans un même + fichier XML serait difficile.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--stylesheet <path or URL></option> (Défini la feuille de style XSL pour transformer la sortie XML) + </term> + <listitem> + <para>Nmap dispose d'une feuille de style XSL nommée + <filename moreinfo="none" >nmap.xsl</filename> afin de visionner ou transcrire la sortie + XML en HTML. La sortie XML comprend une directive <literal moreinfo="none" >xml-stylesheet</literal> + qui pointe sur <filename moreinfo="none" >nmap.xml</filename> + où il a été initialement installé par Nmap (où dans le répertoire + courant sous Windows). Chargez simplement la sortie XML de Nmap + dans un navigateur à jour et il devrait retrouver + <filename moreinfo="none" >nmap.xsl</filename> depuis le système de fichiers puis utilisez-le + pour obtenir le compte rendu des résultats. Si vous préférez utiliser une + feuille de style différente, spécifiez là en argument à + <option>--stylesheet</option>. Vous devez donner le chemin ou l'adresse URL + complète. <option>--stylesheet + https://nmap.org/data/nmap.xsl</option> est une utilisation classique qui indique au navigateur de charger la dernière version de la feuille de style + de Insecure.Org. Cette procédure rend plus facile le visionnage des résultats sur une machine qui ne + dispose pas de Nmap (et donc de + <filename moreinfo="none" >nmap.xsl</filename>) . Par conséquent, l'adresse URL + est souvent plus utile toutefois le nmap.xsl local est utilisé + par défaut pour des raisons de confidentialité.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--webxml</option> (Charge la feuille de style depuis Insecure.org) + </term> + <listitem> + <para>Cette option est seulement un alias pour <literal>--stylesheet https://nmap.org/data/nmap.xsl</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--no-stylesheet</option> (Ne pas déclarer de feuille de style XSL pour le XML) + </term> + <listitem> + <para>Spécifiez cette option pour empêcher Nmap d'associer toute feuille de style XSL + avec les sorties XML. La directive <literal moreinfo="none" >xml-stylesheet</literal> est + omise.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-misc-options" > + <title>Options diverses</title> + <para>Cette section décrit quelques options plus ou moins importantes qui ne + trouvent pas vraiment leur place ailleurs.</para> + <variablelist> + <varlistentry> + <term> + <option>-6</option> (Activer le scan en IPv6) + </term> + <listitem> + <para>Depuis 2002, Nmap a proposé le support IPv6 pour ses fonctionnalités + les plus populaires. En particulier les ping scan (TCP seulement), + connect() scan et détection de version qui supportent l'IPv6. + La synthaxe de la commande est la même qu'habituellement, sauf que vous précisez + aussi l'option <option>-6</option> . Bien sûr, vous devez utiliser la synthaxe IPv6 + si vous spécifiez une adresse plutôt qu'un + nom d'hôte. Une adresse doit ressembler à + <literal moreinfo="none" >3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, + c'est pourquoi les noms d'hôtes sont recommandés. Les résultats de sortie ressemblent + à ceux obtenus habituellement avec la notation IPv6 sur la ligne <quote>interesting + ports</quote> .</para> + <para>Bien qu'on ne puisse pas dire que l'IPv6 ait bouleversé le monde, + son utilisation reste notable dans certains pays (particulièrement en Asie). De plus, la plupart des systèmes d'exploitation modernes le supportent. Pour utiliser Nmap avec + des IPv6, la source et la cible du scan doivent être configurées pour l'IPv6. + Si votre fournisseur d'accès Internet (comme dans la plupart des cas) ne + vous a pas alloué d'adresse IPv6, des tunnels libres sont disponibles + et fonctionnent très bien avec Nmap. + J'en ai utilisé un + que Hurricane Electric fournit sur <ulink url="http://ipv6tb.he.net/" />. Les tunnels 6to4 sont aussi une autre + approche libre et populaire.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-A</option> (option de scan agressif) + </term> + <listitem> + <para>Cette option active des options agressives supplémentaires avancées. + Je n'ai pas vraiment déterminé ce que cela signifie jusqu'à présent. + Pour le moment, ceci active la détection d'OS + (<option>-O</option>) et le scan de version (<option>-sV</option>). Davantage de fonctions peuvent + être ajoutées dans le futur. L'idée est d'activer un panel + complet d'options de scan sans que les gens aient à se rappeler + d'un grand nombre de drapeaux. Cette option ne fait qu'activer des options + sans aucun réglage d'options de délai (comme <option>-T4</option>) ou + de verbosité (<option>-v</option>) que vous pourriez par ailleurs souhaiter.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--datadir <directoryname></option> (Indique l'emplacement personnalisé des fichiers de données pour Nmap) + </term> + <listitem> + <para>Nmap obtient certaines informations pendant son fonctionnement depuis + les fichiers <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> et + <filename moreinfo="none" >nmap-os-fingerprints</filename>. Nmap, dans un premier temps, + recherche ces fichiers dans un répertoire indiqué avec l'option + <option>--datadir</option> (si elle existe). Tout fichier non trouvé + à cet emplacement sera cherché dans l'emplacement spécifié + par la variable d'environnement NMAPDIR . Puis vient <filename moreinfo="none" >~/.nmap</filename> pour + les UIDs véritables et proprement dits (systèmes POSIX seulement) ou l'emplacement de + l'exécutable Nmap (Win32 seulement), et enfin un emplacement comme + <filename moreinfo="none" >/usr/local/share/nmap</filename> ou <filename moreinfo="none" >/usr/share/nmap</filename> + . En dernier ressort, Nmap va chercher dans le répertoire + courant.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--servicedb <fichier services></option> (spécifier un fichier de services spécifique) + </term> + <listitem> + <para> + Demande à Nmap d'utiliser le fichier de services précisé plutot que le fichier <literal moreinfo="none" >nmap-services</literal> fournis. Utiliser cette option force aussi l'usage d'un scan rapide (<option>-F</option>). Voir la description de <option>--datadir</option> pour plus d'informations sur les fichiers de données de Nmap. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--versiondb <fichier empreintes de services></option> (spécifier un fichier d'empreintes de services spécifique) + </term> + <listitem> + <para> + Demande à Nmap d'utiliser le fichier d'empreintes de services précisé plutot que le fichier <literal moreinfo="none" >nmap-services-probes</literal> fournis. Utiliser cette option force aussi l'usage d'un scan rapide (<option>-F</option>). Voir la description de <option>--datadir</option> pour plus d'informations sur les fichiers de données de Nmap. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--send-eth</option> (Utiliser l'envoi par raw Ethernet) + </term> + <listitem> + <para>Demande à Nmap d'envoyer les paquets à la couche raw Ethernet (liaison + données) plutôt que sur la couche plus élevée IP (réseau). Par + défaut, Nmap choisit celui qui convient le mieux à la plateforme sur laquelle + il tourne. Les raw sockets (couche IP) sont en général + plus efficaces sur les machines UNIX, alors que les trames Ethernet + frames sont obligatoires pour Windows depuis que Microsoft + a désactivé le support des raw sockets. Nmap utilise toujours des paquets en raw IP + sous UNIX en dépit de cette option quand il n'y a pas d'autre choix + (par exemple, une connexion non Ethernet).</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--send-ip</option> (Envoyer au niveau raw IP) + </term> + <listitem> + <para>Demande à Nmap d'envoyer les paquets par le biais des sockets raw IP plutôt + que d'envoyer des trames de niveau inférieur en Ethernet. C'est + le complément de l'option <option>--send-eth</option> discuté + précédement.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--privileged</option> (Suppose que l'utilisateur a des privilèges) + </term> + <listitem> + <para>Dit à Nmap de supposer simplement qu'il a les privilèges suffisants + pour effectuer des envois en raw socket, intercepter des paquets et + des opérations similaires qui, habituellement, nécessitent des privilèges root + sur les systèmes UNIX. Par défaut, Nmap quitte si de telles opérations + sont tentées mais que le geteuid() n'équivaut pas à + zéro. <option>--privileged</option> est utile avec les capacités des + noyaux Linux et des systèmes similaires pouvant être configurés + pour permettre à des utilisateurs non privilégiés d'accomplir des scans + avec des raw-packets. Assurez-vous de bien fournir cette option avant tout autre + pour les options qui nécessitent des privilèges (SYN scan, détection de système d'exploitation, + etc.). La variable NMAP_PRIVILEGED peut être utilisée comme + équivalent alternatif à <option>--privileged</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--unprivileged</option> (Suppose que l'utilisateur n'a pas les privilèges d'utiliser les raw sockets) +</term> + <listitem> + <para>Cette option est l'opposée de + <option>--privileged</option>. Elle précise à Nmap de faire comme si l' + utilisateur n'avait pas les privilègues de raw sockets et de sniffing. + C'est utile dans un environnement de tests, de deboggage, ou si les opérations en raw + sur le reseau ne sont pas disponibles pour une tierce raison. + La variable d'environnement NMAP_UNPRIVILEGED peut être utilisée comme + alternative à + <option>--unprivileged</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--release-memory</option> (Libérer la mémoire avant de quitter) +</term> + <listitem> + <para>Cette option n'est utile que dans le cadre du deboggage de fuites de mémoire. + Elle force Nmap a libérer la mémoire allouée juste avant de + quitter de facon a repérer les véritables fuites de mémoire. + En temps normal Nmap ne fait pas ceci étant donné que l'OS le fait de toutes facons + à la fin du processus.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-V</option>; <option>--version</option> (Affiche le numéro de version) + </term> + <listitem> + <para>Donne le numéro de version de Nmap et quitte.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-h</option>; <option>--help</option> (Affiche le sommaire d'aide) + </term> + <listitem> + <para>Affiche un petit écran d'aide avec les options les plus courantes + . Lancer Nmap sans aucun argument fait la même chose.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-runtime-interaction" > + <title>Interaction à la volée</title> + <para>Au cours de l'exécution de Nmap, toutes les touches pressées sont + capturées. Ceci permet d'interagir avec le programme + sans l'arrêter et le relancer. Certaines touches spéciales + changeront les options tandis que les autres touches afficheront un + message d'état parlant du scan en cours. La convention est + que + <emphasis>les minuscules baissent</emphasis> le niveau + d'affichage et que + <emphasis>les majuscules l'augmentent</emphasis>.</para> + <variablelist> + <varlistentry> + <term> + <option>v</option> / <option>V</option> + </term> + <listitem> + <para>Augmente / Baisse la verbosité</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>d</option> / <option>D</option> + </term> + <listitem> + <para>Augmente / Baisse le niveau de déboggage</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>p</option> / <option>P</option> + </term> + <listitem> + <para>Active / Désactive le traçage des paquets</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>?</option> (aide) +</term> + <listitem> + <para>Affiche un ecran d'aide durant l'execution.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + N'importe quoi d'autre + </term> + <listitem> + <para>Affiche un message d'état qui se lit comme suit :</para> + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), + 5 undergoing Service Scan</para> + <para>Service scan Timing: About 28.00% done; ETC: 16:18 + (0:00:15 remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-examples" > + <title>Exemples</title> + <para>Voici quelques exemples d'utilisation de Nmap, du plus simple + au un peu plus complexe et ésotérique. De véritables + adresses IP et noms de domaine sont utilisés pour rendre les choses + plus concrètes. Vous devez les substituer avec + celles de <emphasis>votre propre réseau.</emphasis>. Bien que je ne crois pas + que scanner les prots d'autres réseaux soit ou devrait être illégal, certains administrateurs de réseau + n'apprécient pas les scans non sollicités de leur réseau et peuvent + s'en plaindre. La meilleure approche est donc d'obtenir d'abord leur autorisation.</para> + <para>Pour des raisons de tests, vous avez l'autorisation de scanner l'hôte + <literal moreinfo="none" >scanme.nmap.org</literal>. Cette permission inclus seulement + les scans avec Nmap et non pas l'essai d'exploits ou d'attaques de Denis de + Service. Afin de préserver la bande passante, veuillez ne lancer qu'une douzaine + de scans sur cet hôte au maximum par jour. En cas d'abus de ce libre service + de cible de scan, il serait fermé et Nmap afficherait le message suivant : <computeroutput moreinfo="none" >Failed to resolve given hostname/IP: + scanme.nmap.org</computeroutput>. Ces permissions s'appliquent aussi à l'hôte + <literal moreinfo="none" >scanme2.nmap.org</literal>, à + <literal moreinfo="none" >scanme3.nmap.org</literal>, et ainsi de suite, même si ces hôtes + n'existent présentement pas.</para> + <para> + <userinput moreinfo="none" >nmap -v scanme.nmap.org</userinput> + </para> + <para>Cette option scanne tous les ports réservés TCP sur la machine + <literal moreinfo="none" >scanme.nmap.org</literal> . L'option <option>-v</option> + active le mode verbeux.</para> + <para> + <userinput moreinfo="none" >nmap -sS -O scanme.nmap.org/24</userinput> + </para> + <para>Lance un scan furtif (stealth SYN scan) contre chaque machine active parmi + les 255 machines du réseau de <quote>classe C</quote> sur lequel + Scanme réside. Il essaie aussi de déterminer le système d'exploitation + sur chaque hôte actif. Cette démarche nécessite les privilèges de root + puisqu'on utilise un SYN scan et une détection d'OS.</para> + <para> + <userinput moreinfo="none" >nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</userinput> + </para> + <para>Lance une recherche des hôtes et un scan TCP dans la première moitié + de chacun des 255 sous-réseaux à 8 bits dans l'espace d'adressage de classe B 198.116 + Cela permet de déterminer si les systèmes font tourner sshd, DNS, + pop3d, imapd ou le port 4564. Pour chacun de ces ports qui sont ouverts, + la détection de version est utilisée pour déterminer quelle application est + actuellement lancée.</para> + <para> + <userinput moreinfo="none" >nmap -v -iR 100000 -P0 -p 80</userinput> + </para> + <para>Demande à Nmap de choisir 100 000 hôtes de façon aléatoire et de les scanner + dans le but de trouver les serveurs Web (port 80). L'énumération des hôtes est désactivée avec + <option>-P0</option> puisque envoyer en premier lieu quelques probes pour déterminer + si un hôte est actif est inutile lorsque vous ne cherchez + à tester qu'un port sur chaque hôte.</para> + <para> + <userinput moreinfo="none" >nmap -PN -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</userinput> + </para> + <para>Cette procédure scanne 4 096 adresses IP à la recherche de serveurs Web (sans les pinguer + au préalable) et sauvegarde la sortie en format grepable et XML.</para> + <para> + <userinput moreinfo="none" >host -l company.com | cut -d -f 4 | nmap -v -iL + -</userinput> + </para> + <para>Effectue un transfert de zone DNS afin de trouver les hôtes au sein de company.com et + ensuite fournir les adresses IP à Nmap. Les commandes ci-dessus concerne mon + GNU/Linux -- les autres systèmes ont d'autres commandes pour effectuer les + transferts de zone.</para> + </refsect1> + <refsect1 id="man-bugs" > + <title>Bogues</title> + <para>Comme son auteur, Nmap n'est pas parfait. Mais vous pouvez aider à l'améliorer en envoyant les rapports de bogues ou même en écrivant des programmes de correction. Si Nmap + ne satisfait pas à vos attentes, mettez-le d'abord à jour en utilisant la dernière version + disponible sur <ulink url="https://nmap.org/" />. Si le problème persiste, + faites quelques recherches afin de déterminer s'il a déjà été remarqué et + signalé. Essayez pour cela de mettre l'erreur en argument sur Google + ou parcourez les archives de Nmap-dev sur <ulink url="https://seclists.org/" />. Lisez ce manuel en entier quoiqu'il en + soit. Si rien ne semble fonctionner, envoyez un rapport de bogue à + <email>dev@nmap.org</email>. Veillez à inclure tout ce que vous avez + appris au sujet de ce bogue ainsi que la version de Nmap concernée + et le système d'exploitation que vous utilisez. + Les rapports de problèmes et les questions sur l'utilisation de Nmap envoyés à + dev@nmap.org ont plus de chance de trouver une réponse que ceux + envoyés à Fyodor directement.</para> + <para>Les codes de programmes de correction destinés à régler des bogues sont encore meilleurs que les rapports de bogues. + Les instructions de base pour créer des fichiers de programmes de correction avec vos modifications + sont disponibles sur <ulink url="https://nmap.org/data/HACKING" />. Les programmes de correction peuvent + être envoyés à nmap-dev (recommandé) ou à Fyodor directement.</para> + </refsect1> + <refsect1 id="man-author" > + <title>Auteur</title> + <para>Fyodor + <email>fyodor@nmap.org</email> + (<ulink url="http://www.insecure.org" />) + </para> + <para>Traduction française :</para> + <para>Romuald THION + <email>romuald.thion@insa-lyon.fr</email> + 4N9e Gutek + <email>4n9e@futurezone.biz</email> + Relecture et corrections : Ghislaine Landry + <email>g-landry@rogers.com</email> + </para> + <para>Bien qu'un soin particulier ait été apporté à cette traduction, il est possible + que certaines erreurs s'y soient glissées. Le cas échéant, n'hésitez pas à communiquer avec les traducteurs. + La traduction ne remplace pas au texte original (version anglaise), tout particulièrement en ce qui concerne les dispositions légales. Une erreur d'interprétation dans cette traduction ne peut, en aucun cas, + se substituer à ces dispositions. + Insecure.Com LLC n'assume aucune responsabilité en ce qui a trait aux erreurs éventuelles de traduction ou d'interprétation.</para> + <para>Des centaines de personnes ont apporté de précieuses contributions à Nmap + au cours des années. Celles-ci sont détaillées dans le fichier + <filename moreinfo="none" >CHANGELOG</filename> qui est distribué avec Nmap + mais aussi disponible sur <ulink url="https://nmap.org/changelog.html" />.</para> + </refsect1> + <refsect1 id="man-legal" > + <title>Dispositions légales</title> + <refsect2> + <title id="nmap-copyright" >Droits d'auteur et licence</title> + <para>Le Nmap Security + Scanner est sous droits d'auteur (C) 1996-2005 Insecure.Com LLC. Nmap est aussi une marque + déposée de Insecure.Com LLC. Ce programme est un logiciel libre; vous pouvez + le redistribuer ou le modifier selon les termes de la licence GNU General + Public License comme publiée par la Free Software Foundation; Version + 2. Cela garantit vos droits d'utilisation, de modification et de redistribution de ce logiciel, et ce, sous certaines conditions. Si vous souhaitez inclure la technologie Nmap dans + un logiciel propriétaire, nous nous réservons le droit de vendre d'autres licences + (communiquez avec <email>sales@insecure.com</email>). Beaucoup de distributeurs de + scanners de sécurité ont déjà acquis une licence pour les technologies Nmap, notamment la découverte d'hôte, + le scan de ports, le détection du système d'exploitation et la détection de service ou de version.</para> + <para>Notez que la licence GPL comporte d'importantes restrictions relativement aux + <quote>travaux dérivés</quote>, bien qu'elle ne donne pas de détails suffisants + quant à la définition de ceux-ci. Afin d'éviter toute incompréhension, nous considérons + une application comme constituant un <quote>travail dérivé</quote> dans le cadre + de cette licence au cas où elle correspondrait à l'un de ces termes :</para> + <itemizedlist> + <listitem> + <para>Intègre le code source de Nmap</para> + </listitem> + <listitem> + <para>Lis ou inclus les fichiers déposés de Nmap, comme + <filename moreinfo="none" >nmap-os-fingerprints</filename> ou + <filename moreinfo="none" >nmap-service-probes</filename>.</para> + </listitem> + <listitem> + <para>Exécute Nmap et traite les résultats (par opposition à + une simple exécution en système essentiel ou en menu applicatif, qui ne fait qu'afficher les + sorties brutes de Nmap et, de ce fait, ne sont pas des travaux dérivés.)</para> + </listitem> + <listitem> + <para>Intègre/Inclus/Concatène Nmap dans un installeur exécutable + propriétaire, comme ceux produits par + InstallShield.</para> + </listitem> + <listitem> + <para>Lie à une librairie ou à un programme exécutable qui fait l'une des procédures ci-dessus.</para> + </listitem> + </itemizedlist> + <para>Le terme <quote>Nmap</quote> doit être pris comme incluant aussi toute + portion ou travail dérivé de Nmap. Cette liste n'est pas exhaustive; elle est simplement + conçue de façon à clarifier notre interprétation des travaux dérivés au moyen de quelques exemples connus. + Ces restrictions s'appliquent seulement lorsque vous redistribuez Nmap. + Par exemple, rien ne vous empêche d'écrire et de vendre une interface graphique + propriétaire pour Nmap. Distribuez-la seulement en entier + et assurez-vous de diriger les gensvers le lien <ulink url="https://nmap.org/" /> de façon à télécharger Nmap.</para> + <para>Nous ne considérons pas ce document comme étant un ajout à la licence + GPL, mais simplement une clarification de la façon dont nous interprétons <quote>les travaux + dérivés</quote> qui s'appliquent à notre produit Nmap sous licence GPL. Ceci est semblable + à la façon dont Linus Torvalds a annoncé son interprétation des <quote> travaux dérivés</quote> qui s'appliquent aux modules du noyau Linux. Notre + interprétation fait seulement référence à Nmap; nous ne parlons d'aucun + autre produit sous GPL.</para> + <para>Si vous avez des questions à propos des restrictions de la licence GPL + et de l'utilisation de Nmap dans le cadre des travaux non-GPL, nous serions heureux de vous aider. Tel que + mentionné ci-dessus, nous offrons une autre licence afin d'intégrer Nmap + au sein d'applications propriétaires. Ces contrats ont été vendus + à de nombreux distributeurs du domaine de la sécurité et comportent généralement une licence + perpétuelle tout en fournissant un support, des mises à jour prioritaires et une aide au développement constant de la technologie + Nmap. Veuillez envoyer un courriel à <email>sales@insecure.com</email> pour obtenir plus d'informations.</para> + <para>Comme exception particulière à la licence GPL, Insecure.Com LLC permet de lier le code de ce programme à toute version de + la librairie OpenSSL, qui est distribuée sous une licence identique à celle + spécifiée dans le fichier Copying.OpenSSL ci-inclus, et de distribuer les combinaisons de liens + incluant les deux. Vous devez observer le GNU GPL dans tous ses aspects + pour toute portion du code utilisée autre que OpenSSL. Si vous modifiez + ce fichier, vous pouvez étendre cette exception à votre version du fichier + mais vous n'êtes toutefois pas obligé de le faire.</para> + <para>Si vous recevez ces fichiers avec une licence écrite ou + un contrat établissant les termes autres que ceux mentionnés ci-dessus, cette autre + licence prend la préséance sur ces commentaires.</para> + </refsect2> + <refsect2 id="man-copyright" > + <title>Licence Creative Commons pour cette documentation de Nmap</title> + <para>Ce guide de référence Nmap est déposé par 2005 Insecure.Com LLC. Il est ainsi sous licence 2.5 de la licence <ulink url="http://creativecommons.org/licenses/by/2.5/" >Creative Commons + Attribution License</ulink>. Ceci vous permez de redistribuer et modifier ce travail comme bon vous semble, tant que vous citez la source originale. Autrement, vous pouvez considérer ce document comment tombant sous le coup de la même licence que Nmap lui-même.</para> + </refsect2> + <refsect2 id="source-contrib" > + <title>Disponibilité du code source et contribution communautaire</title> + <para>La source est fournie avec ce programme car nous croyons que les utilisateurs + ont le droit de savoir exactement ce qu'un programme va faire avant + d'être lancé. Cela vous permet aussi de vérifier ce logiciel relativement à d'éventuelles vulnérabilités + (aucune n'a été trouvée à ce jour).</para> + <para>Le code source vous permet aussi d'utiliser Nmap sur de nouvelles plateformes, de régler + des bogues et d'ajouter de nouvelles fonctionnalités. Vous êtes fortement encouragés à présenter + vos modifications à <email>fyodor@nmap.org</email> dans le but de les intégrer dans la distribution principale. Lorsque vous envoyez ces changements à + Fyodor ou à l'une des listes de développement d'Insecure.Org, + il est recommandé que vous cédiez à Fyodor et à Insecure.Com LLC le droit illimité + et non exclusif de réutiliser, de modifier et de concéder de nouveau une licence pour le code. Nmap sera toujours disponible en Open Source et ce, principalement en raison de l'impossibilité de concéder de nouveau une licence pour le code, ce qui a occasionné des problèmes dévastateurs + pour d'autres projets de développement libres (comme KDE et NASM). Nous + concédons aussi occasionnellement une licence pour le code à des tierces parties, tel que décrit ci-dessus. Si vous souhaitez spécifier une condition de licence à votre contribution, + indiquez-le simplement au moment de nous l'envoyer.</para> + </refsect2> + <refsect2 id="no-warranty" > + <title>Pas de garanties</title> + <para>Ce programme est distribué dans l'espoir qu'il sera utile, + mais SANS AUCUNE GARANTIE; sans même la garantie implicite de + VALEUR MARCHANDE ou DE FONCTIONNEMENT POUR UNE UTILISATION PARTICULIÈRE. Consultez la licence GNU + General Public License pour obtenir plus de détails sur <ulink url="http://www.gnu.org/copyleft/gpl.html" /> ou sur le fichier COPYING + inclus avec Nmap.</para> + <para>Il faut également noter que Nmap est reconnu pour avoir occasionnellement fait tomber en panne + des applications mal écrites, des piles TCP/IP, et même des systèmes + d'exploitation. Bien que ce soit extrêmement rare, il est important de le garder en + tête. <emphasis>Nmap ne doit jamais être lancé contre des systèmes d'importance + critique</emphasis> à moins que vous ne soyez prêts à en payer le prix. Nous acceptons ici que Nmap puisse faire tomber en panne vos systèmes ou + réseaux et nous nous dégageons de toute responsabilité pour tout dommage ou problème que Nmap + pourrait causer.</para> + </refsect2> + <refsect2 id="inappropriate-usage" > + <title>Usage inapproprié</title> + <para>De part le faible risque de tomber en panne et de quelques piratages électroniques au moyen de Nmap aux fins de reconnaissance avant attaque des systèmes, + certains administrateurs sont désormais mécontents et peuvent se plaindre lorsque leur système est scanné. + C'est pourquoi il est souvent préférable de demander d'abord la permission + avant d'effectuer le scan d'un réseau, et ce, aussi simple soit-il.</para> + <para>Nmap ne devrait jamais être installé avec des privilèges spéciaux + (par exemple, suid root) pour des raisons de sécurité.</para> + </refsect2> + <refsect2 id="third-party-soft" > + <title>Logiciels Tierce Partie</title> + <para>Ce produit comporte un logiciel développé par la <ulink url="http://www.apache.org" >Apache Software Foundation</ulink>. Une + version modifiée de la librairie de capture de paquets Libpcap <ulink url="http://www.tcpdump.org" >de chez + tcpdump</ulink> est distribuée en accompagnement + de Nmap. La version Windows de Nmap emploie la version dérivée de Libpcap <ulink url="http://www.winpcap.org" >WinPcap library</ulink>. Le support + des expressions régulières est assuré par la librairie <ulink url="http://www.pcre.org" >PCRE </ulink>, qui consiste en un logiciel open source + écrit par Philip Hazel. Certaines fonctions réseau + utilisent la librairie réseau <ulink url="http://libdnet.sourceforge.net" >Libdnet</ulink> + écrite par Dug Song. Une version modifiée + est distribuée avec Nmap. Nmap peut éventuellement pointer sur l'outil de cryptographie <ulink url="http://www.openssl.org" >OpenSSL cryptography toolkit</ulink> pour + le support de détection de version dans le cas du SSL. Tous les logiciels tierce partie + décrits dans ce paragraphe peuvent être de nouveau distribués sous les licences + de type BSD.</para> + </refsect2> + <refsect2 id="us-export" > + <title>Classification et contrôle des exportations depuis les États-Unis (US Export Control Classification)</title> + <para>Contrôle des exportations : Insecure.Com LLC pense que Nmap tombe sous + la juridiction de l'US ECCN (export control classification number), numéro 5D992. Cette catégorie + est appelée <quote>Information Security software not controlled + by 5D002</quote>, logiciel de sécurité et d'informations non contrôlé par le chapitre 5D002. La seule restriction de cette classification + concerne l'anti-terrorisme qui s'applique à la plupart des biens et des valeurs exportés + vers des pays sensibles comme l'Iran et la Corée du Nord. C'est pourquoi + l'exportation de Nmap ne requiert aucune licence particulière, permis, ou + autre autorisation gouvernementale.</para> + </refsect2> + </refsect1> + </refentry> +</article> diff --git a/docs/man-xlate/nmap-man-hr.xml b/docs/man-xlate/nmap-man-hr.xml new file mode 100644 index 0000000..e48889f --- /dev/null +++ b/docs/man-xlate/nmap-man-hr.xml @@ -0,0 +1,2570 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id: manhtml.xml 2991 2005-12-12 10:21:33Z fyodor $ -->
+<article id="man" lang="hr">
+<artheader>
+ <title>Nmap vodič (Upute)</title>
+</artheader>
+<refentry id="man-nmap1">
+ <refmeta>
+ <refentrytitle>nmap</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="source">Nmap</refmiscinfo>
+ <refmiscinfo class="manual">Nmap vodič</refmiscinfo>
+ </refmeta>
+ <refnamediv id="man-name">
+ <refname>nmap</refname>
+ <refpurpose>Alat za istraživanje mreže i sigurnosni/port skener</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id="man-synopsis">
+ <cmdsynopsis sepchar=" ">
+ <command moreinfo="none">nmap</command>
+ <arg choice="opt" rep="repeat">
+ <replaceable>Tip skena</replaceable>
+ </arg>
+ <arg choice="opt" rep="norepeat">
+ <replaceable>Opcije</replaceable>
+ </arg>
+ <arg choice="req" rep="norepeat">
+ <replaceable>specifikacija cilja</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="man-description">
+ <title>Opis</title>
+
+ <web>
+ <note><para>
+ Ovaj dokument opisuje Nmap verziju 3.95. Najnovija dokumentacija
+ dostupna je na engleskom jeziku, na
+ <ulink url="https://nmap.org/book/man.html" />.</para></note>
+ </web>
+ <para>Nmap (<quote>Network Mapper</quote>) je open source alat za istraživanje
+ mreže i sigurnosni auditing. Dizajniran je za brzo skeniranje velikih mreža,
+ ali radi jednako dobro i kad je u pitanju samo jedan host. Nmap koristi sirove
+ (raw) IP pakete na nov i originalan način da bi ustanovio koji hostovi su dostupni
+ na mreži, koji servisi (naziv aplikacije i verzija) su pokrenuti na tim hostovima,
+ o kojim operativnim sustavima (i verzijama) je riječ, koji tipovi paket filtera i
+ vatrozida se koriste, te mnogo drugih karakteristika. Iako je Nmap najčešće
+ korišten za sigurnosni auditing, mnogi sistemski i mrežni administratori pronašli
+ su u njemu koristan alat za rutinske zadatke poput sastavljanja popisa mrežnog inventara,
+ upravljanja vremenima nadogradnje servisa i nadgledanja uptime-a računala ili servisa.</para>
+
+ <para>Rezultat Nmap pretraživanja je popis skeniranih meta s dodatnim informacijama
+ o svakoj od njih ovisno o korištenim parametrima. Ključna informacija je <quote>
+ tabela zanimljivih portova</quote>. U tabeli se nalati broj porta i protokol,
+ naziv servisa i stanje.Stanje je ili:
+ <literal moreinfo="none">otvoreno</literal>, <literal moreinfo="none">filtrirano</literal>,
+ <literal moreinfo="none">zatvoreno</literal> ili <literal moreinfo="none">nefiltrirano</literal>.
+ <literal moreinfo="none">Otvoreno</literal> znači da na ciljanom računalu postoji
+ aplikacija koja sluša na tom portu i čeka na konekciju/pakete.
+ <literal moreinfo="none">Filtrirano</literal> znači da između nas i ciljanog računala postoji
+ vatrozid, paket filter ili neki drugi mrežni uređaj koji blokira port, pa Nmap
+ ne može reći da li je port <literal moreinfo="none">otvoren</literal> ili
+ <literal moreinfo="none">zatvoren</literal>.
+ <literal moreinfo="none">Zatvoreni</literal> portovi trenutno nemaju aplikacije koje slušaju na njima.
+ Portovi su klasificirani kao <literal moreinfo="none">nefiltrirani</literal> u situacijama
+ kada odgovaraju na Nmap-ove upite, ali Nmap nije u mogućnosti ustanoviti da li su otvoreni ili zatvoreni.
+ Nmap vraća sljedeće kombinacije u izvještajima:
+ <literal moreinfo="none">otvoren|filtriran</literal> i
+ <literal moreinfo="none">zatvoren|filtriran</literal> kad ne može ustanoviti koje od dva stanja točnije
+ opisuje port. Port tabela može također sadržavati i informacije o verziji softvera, kada
+ je ta opcija upaljena kod skeniranja. Kad je zatraženo skeniranje IP protokola
+ (<option>-sO</option>), Nmap vraća informacije o podržanim IP protokolima, a ne o portovima.
+ </para>
+
+ <para>Uz navedenu tabelu portova, Nmap može dati i dodatne informacije o ciljanom računalu,
+ uključujući reverse DNS imena, pretopstavku o tome koji operativni sustav je s druge strane,
+ tipove uređaja i MAC adrese.</para>
+
+ <para>Prikaz tipičnom Nmap skena je prikazan u: <xref linkend="man-ex-repscan"></xref>.
+ Jedan od Nmap argumenata korišten u navedenom primjeru je <option>-A</option>,
+ opcija za otkrivanje OS-a i njegove verzije, zatim<option>-T4</option> za brže skeniranje,
+ te nakon toga dva hosta koje želimo skenirati.</para>
+
+<example id="man-ex-repscan"><title>Ovako izgleda primjer Nmap skena</title>
+<screen format="linespecific">
+# nmap -A -T4 scanme.nmap.org playground
+
+Starting nmap ( https://nmap.org/ )
+Interesting ports on scanme.nmap.org (205.217.153.62):
+(The 1663 ports scanned but not shown below are in state: filtered)
+PORT STATE SERVICE VERSION
+22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99)
+53/tcp open domain
+70/tcp closed gopher
+80/tcp open http Apache httpd 2.0.52 ((Fedora))
+113/tcp closed auth
+Device type: general purpose
+Running: Linux 2.4.X|2.5.X|2.6.X
+OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11
+Uptime 33.908 days (since Thu Jul 21 03:38:03 2005)
+
+Interesting ports on playground.nmap.org (192.168.0.40):
+(The 1659 ports scanned but not shown below are in state: closed)
+PORT STATE SERVICE VERSION
+135/tcp open msrpc Microsoft Windows RPC
+139/tcp open netbios-ssn
+389/tcp open ldap?
+445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds
+1002/tcp open windows-icfw?
+1025/tcp open msrpc Microsoft Windows RPC
+1720/tcp open H.323/Q.931 CompTek AquaGateKeeper
+5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900)
+5900/tcp open vnc VNC (protocol 3.8)
+MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications)
+Device type: general purpose
+Running: Microsoft Windows NT/2K/XP
+OS details: Microsoft Windows XP Pro RC1+ through final release
+Service Info: OSs: Windows, Windows XP
+
+Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds
+</screen>
+</example>
+
+<para>Najnoviju verziju Nmap-a možete downloadati sa sljedećeg linka: <ulink url="https://nmap.org/">
+</ulink>. Najnovija verzija man stranica (uputa) dostupna je na sljedećem linku:
+<ulink url="https://nmap.org/man/"></ulink>.</para>
+
+ </refsect1>
+
+<refsect1 id="man-translation">
+ <title>Napomene o prijevodu</title>
+
+ <para>Hrvatsku verziju Nmap vodiča je preveo Robert Petrunić s <ulink url="https://nmap.org/man/">
+ originalne Engleske verije</ulink> 2991.
+ Iako se nadam da će prijevod učiniti Nmap dostupniji ljudima Hrvatskog govornog područja, ne mogu garantirati da je
+ prijevod kompletan i up to date kao i originalna Engleska verzija. Projevod možete modificirati i redistribuirati
+ pod uvjetima <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative
+ Commons Attribution Licence</ulink>. Ovo je prva verzija i najvjerovatnije ima dosta nekonzistentnih
+ prijevoda (riječi koje su na različitim mjestima prevedene drugačije), ali smisao prijevoda je i dalje ostao isti.
+ Nadam se da ću u idućim verzijama napisati više "književni" točan prijevod </para>
+</refsect1>
+
+
+ <refsect1 id="man-briefoptions">
+ <title>Pregled opcija</title>
+
+<para>Sljedeći pregled opcija je ispisan kad pokrenete Nmap bez ikakvih parametara,
+a posljednja verzija je uvijek dostupna na:
+<ulink url="https://nmap.org/data/nmap.usage.txt"></ulink>.
+Pomaže ljudima zapamtiti najčešće opcije, ali nije zamjena za detaljne upute koje se nalaze u ovom manualu.
+Neke manje korištene opcije čak se ni ne nalaze u pregledu opcija.</para>
+
+<para>
+<literallayout class="normal">Upotreba: nmap [Tip(ovi) skeniranja] [Opcije] {ciljano računalo}
+CILJANO RAČUNALO:
+ Možete upisati hostname (naziv računala), IP adrese, mreže (subnete) isl.
+ Primjer: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
+ -iL <naziv datoteke>: Naziv datoteke u kojoj se nalazi popis hostova/mreža
+ -iR <broj hostova>: Odaberi nasumične hostove
+ --exclude <host1[,host2][,host3],...>: Ne skeniraj navedene hostove/mreže
+ --excludefile <datoteka>: Ne skeniraj navedene hostove/mreže koji se nalaze u navedenoj datoteci
+OTKRIVANJE HOSTOVA:
+ -sL: List Scan - samo navedi mete koje skeniraš
+ -sP: Ping Scan - samo ustanovi da li je host online i ne radi ništa više
+ -P0: Smatraj sve hostove online -- ne pokušavaj ustanoviti da li postoje.
+ -PS/PA/PU [lista_portova]: koristi TCP SYN/ACK ili UDP za otkrivanje hostova
+ -PE/PP/PM: ICMP echo, timestamp i netmask pokušaji skeniranja
+ -n/-R: Ne pokušavaj raditi DNS rezoluciju/uvijek koristi DNS rezoluciju [default: ponekad]
+TEHNIKE SKENIRANJA:
+ -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon skenovi
+ -sN/sF/sX: TCP Null, FIN, and Xmas skenovi
+ --scanflags <flagovi>: Navedi TCP flagove pomoću kojih želiš skenirati
+ -sI <zombie host[:probeport]>: Idlescan
+ -sO: IP protocol scan
+ -b <ftp relay host>: FTP bounce scan
+SPECIFIKACIJA PORTOVA I REDOSLJED SKENIRANJA:
+ -p <port ranges>: Skeniraj samo navedene portove
+ Primjer: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
+ -F: Brzo - Skeniraj samo portove navedene u nmap-services fileu
+ -r: Skeniraj portove po redu - ne randomiziraj
+OTKRIVANJE SERVISA/VERZIJA:
+ -sV: Pokušaj na osnovu otvorenih portova saznati informacije o servisu/verziji
+ --version-light: Koristi najvjerovatnije skenove zbog ubrzane detekcije verzije
+ --version-all: Isprobaj sve vrste skenova za saznavanje verzije
+ --version-trace: Pokaži detaljnu aktivnost skeniranja verzije (za debugging)
+DETEKCIJA OS-a:
+ -O: Uključi OS detekciju
+ --osscan-limit: Ograniči OS detekciju samo na one ciljeve koji obećavaju
+ --osscan-guess: Pogađaj OS malo agresivnije
+TIMING I PERFORMANSE:
+ -T[0-6]: Podesi predložak za timing (veći broj je brže)
+ --min-hostgroup/max-hostgroup <numhosts>: Paralelno skeniraj hostove / veličina sken grupe
+ --min-parallelism/max-parallelism <numprobes>: Paraleliziraj sonde
+ --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Navedi vrijeme potrebno za povratak (engl. round trip time) sonde.
+ --host-timeout <msec>: Odustani od skeniranja ciljanog računala nakon navedenog vremena u milisekundama
+ --scan-delay/--max-scan-delay <msec>: Podesi pauzu između slanja upita
+OBILAŽENJE FIREWALL-a/IDS-a I SPOOFING:
+ -f; --mtu <vrijednost>: fragmentiraj pakete (opcionalno sa zadanim MTU-om)
+ -D <mamac1,mamac2[,ME],...>: Sakrij skan korištenjem mamaca
+ -S <IP_Address>: Spoofaj ishodišnu (source) adresu
+ -e <iface>: Koristi navedeni interface (mrežni adapter)
+ -g/--source-port <broj_porta>: Koristi navedeni broj ishodišnog (source) porta
+ --data-length <broj>: Dodaj random podatke u poslane pakete
+ --ttl <vrijednost>: Podesi IP time-to-live polje
+ --spoof-mac <mac adresa/prefiks/naziv proizvođača>: Spoofaj svoju MAC adresu
+ISPIS:
+ -oN/-oX/-oS/-oG <file>: Ispiši scan normalno, kao XML, s|<rIpt kIddi3,
+ i Grep format u navedeni file
+ -oA <osnovni_naziv>: Ispis u tri glavna formata istovremeno
+ -v: Povećaj verbose nivo (ako želite postići veći efekt, stavite opciju -vv)
+ -d[nivo]: Podesi ili povećaj debuging nivo (Ima smisla do brojke 9, više od toga ne)
+ --packet-trace: Pokaži sve poslane i primljene pakete
+ --iflist: Ispiši host interface i rute (za debuging)
+ --append-output: Dodaj ispis u postojeće datoteke - nemoj ih prepisati
+ --resume <naziv_datoteke>: Nastavi prekinuti scan
+ --stylesheet <putanja/URL>: XSL stylesheet za transformiranje XML generiranog dokumenta u HTML
+ --no-stylesheet: Spriječi povezivanje XSL stylesheet-a s XML ispisom
+RAZNO:
+ -6: Omogući skeniranje IPv6 protokola
+ -A: Omogući prepoznavanje OS-a i verzije OS-a
+ --datadir <naziv_direktorija>: Navedi customizirani Nmap data file
+ --send-eth/--send-ip: šalji sirove (RAW) ethernet frame-ove ili IP pakete
+ --privileged: Pretpostavka da je korisnik koji je pokrenuo Nmap u potpunosti privilegiran (ima admin ovlasti)
+ -V: Ispiši verziju Nmap-a
+ -h: Ispiši ovaj help ekran
+PRIMJERI:
+ nmap -v -A scanme.nmap.org
+ nmap -v -sP 192.168.0.0/16 10.0.0.0/8
+ nmap -v -iR 10000 -P0 -p 80
+</literallayout>
+
+</para>
+
+ </refsect1>
+
+ <refsect1 id="man-target-specification">
+ <title>Odabir ciljanog računala</title>
+
+<para>Sve što unesete u komandnu liniju Nmap-a, a nije opcija ili argument opcije (dakle nije parametar samog
+programa), tretira se kao ciljano računalo. Najjednostavniji slučaj je da unesete IP adrese ili naziv ciljanog
+hosta.</para>
+
+<para>Ponekad želite skenirati čitavu mrežu hostova.
+Za tu namjenu Nmap podržava CIDR adresiranje. Dakle, nakon IP adrese ili naziva računala, možete dodati
+/<replaceable>numbits (broj bitova)</replaceable> koji se koriste kao mrežni ID. Npr. 192.168.10.0/24 će skenirati
+256 hostova između 192.168.10.0 (binarno: <literal moreinfo="none">11000000 10101000 00001010 00000000</literal>) i
+192.168.10.255 (binarno: <literal moreinfo="none">11000000 10101000 00001010 11111111</literal>) uključujući i
+192.168.10.0 i 192.168.10.255. 192.168.10.40/24 će učiniti istu stvar. Ako smo pak odabrali scanme.nmap.org, a recimo
+da je IP adresa tog hosta 205.217.153.62, scanme.nmap.org/16 bi skeniralo 65,536 IP adresa između 205.217.0.0 i
+205.217.255.255. Najmanja dozvoljena vrijednost je 1 (što bi skeniralo gotovo cijeli internet), dok je najveća
+dozvoljena vrijednost 32, što skenira samo jednog hosta.</para>
+
+<para>CIDR notacija je kratka, ali nije uvijek dovoljno fleksibilna. Npr. želite skenirati 192.168.0.0/16, ali želite
+izbjeći sve IP adrese koje završavaju s .0 ili .255, jer su to mrežni ID i broadcast IP adresa u klasful adresiranju.
+Nmap za tu situaciju podržava adresiranje na nivou okteta. Umjesto da navedete normalnu IP adresu, možete navesti
+listu brojeva odvojenih zarezom (1,2,3) ili područja za svaki oktet (1-254). Npr. 192.168.0-255.1-254 će preskočiti
+sve adrese u navedenom području koje završavaju na .0 i .255, tj. skenirat će sve IP adrese od 192.168.0.1 do
+192.168.255.254, preskačući one IP adrese koje u zadnjem oktetu imaju 0 ili 255. Područja nisu limitirana na zadnji
+oktet, recimo, 0-255.0-255.13.37 će skenirati SVE IP adrese koje završavaju na 13.37. Ovaj način skeniranja može biti
+koristan za razna istraživanja i ispitivanja.</para>
+
+<para>IPv6 adrese mogu biti specificirane isključivo u potpunosti definirane (fully qualified) kao IP adrese ili
+naziv hosta. CIDR i oktet područja nisu podržani za IPv6 jer se rijetko koriste.</para>
+
+<para>Nmap prihvaća navođenje više hostova u komandnoj liniji, a hostovi ne moraju biti istog tipa. Naredba
+<command moreinfo="none">nmap scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.0-255</command> će učiniti upravo ono što
+očekujete od nje.</para>
+
+<para>Ciljevi skeniranja su obično navedeni u samoj komandnoj liniji, ali podržane su i sljedeće opcije:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-iL <naziv ulazne datoteke></option> (Iščitaj parametre iz liste)
+ </term>
+ <listitem>
+ <para>Iščita informacije o ciljanom hostu iz
+ <replaceable>ulazne datoteke</replaceable>. Proslijediti Nmapu veliku količinu hostova iz komandne linije
+ izgleda nepregledno, ali to je ono što u većini slučajeva i želimo. Npr. iz DHCP servera ste izvukli popis
+ 10 000 trenutno iznajmljenih IP adresa i želite ih skenirati ili možda želite skenirate sve ip adrese
+ <emphasis>osim</emphasis> tih kako bi pronašli hostove koji imaju neautoriziranu statičku IP adresu. Da bi
+ to postigli, generirajte popis hostova koje želite skenirati u neku datoteku i proslijedite tu datoteku
+ Nmap-u kao argument opciji <option>-iL</option>. U datoteci mogu biti unosi u bilo kojem formatu koji Nmap
+ podržava u samoj komandnoj liniji (IP adresa, naziv hosta, CIDR, IPv6, ili oktet nekog područja). Svaki
+ unos mora biti odvojen s jednim ili s više razmaka, tabom ili novim redom. Isto tako možete staviti minus
+ (<literal moreinfo="none">-</literal>), ukoliko želite da Nmap iščita hostove iz standardnog unosa umjesto
+ iz navedene datoteke.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-iR <broj hostova></option> (Nasumično odaberi ciljano računalo)
+ </term>
+ <listitem>
+ <para>Za istraživače interneta i ostale koji žele odabrati ciljano računalo nasumično. Argument
+ <replaceable>broj hostova</replaceable> kaže Nmap-u koliko IP adresa da generira. Neželjene IP adrese,
+ poput privatnih, multicast ili nedodjeljenih IP adresnih područja su automatski izbačene. Argument
+ <literal moreinfo="none">0</literal> može biti naveden za skeniranje koje nikad neće završiti.
+ Imajte na umu da neki mrežni administratori ne vole neautorizirano skeniranje i mogli bi se žaliti vašem
+ ISP-u, što bi pak moglo rezultirati zabranom pristupa internetu za vas. Koristitte ovu opciju na vlastitu
+ odgovornost. Ukoliko se pak, jednog kišnog popodneva, nađete u situaciji da ne znate što bi sa sobom,
+ iskušajte naredbu
+ <command moreinfo="none">nmap -sS -PS80 -iR 0 -p80</command> kako bi nasumično pronašli web servere za
+ browsanje.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--exclude
+ <host1[,host2][,host3],...></option> (isključi iz skeniranja hostove/mreže)
+ </term>
+ <listitem>
+ <para>Navedite zarezom odvojenu listu hostova koje želite isključiti iz skena iako se nalaze u mrežnom
+ području koje ste specificirali. Popis koji proslijedite na ovaj način koristi normalnu Nmap sintaksu, pa
+ možete upisati naziv hosta, CIDR mrežne blokove, oktete rangeva isl. To može biti korisno u slučaju kad
+ mreža koju želite skenirati ima nedodirljive i kritične servere, sisteme za koje se zna da će odmah
+ reagirati na port sken, ili postoje podmreže koje administriraju drugi administratori i ne želite skenirati
+ njihov dio mreže.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--excludefile <naziv_datoteke></option> (Isključi iz skeniranja koristeći ulazni file)
+ </term>
+ <listitem>
+ <para> Ova opcija nudi istu funkcionalnost kao i prije opisana opcija <option>--exclude</option>, s tim da
+ hostove koje ne želite skenirati ne navodite u komandnoj liniji, već unutar datoteke. Hostovi mogu biti
+ navedeni u datoteci (<replaceable>naziv_datoteke</replaceable>) koji kao delimiter koristi novi red, razmak
+ ili tab.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-host-discovery">
+ <title>Postupak Pronalaženja hostova</title>
+
+ <para>Jedan od prvih koraka kad je u pitanju sakupljanje informacija o mreži je smanjivanje (ponekad velike)
+ količine IP adresnih područja u popis aktivnih i zanimljivih hostova. Skeniranje svih portova za svaku adresu je
+ sporo i najčešće nepotrebno. Naravno, ono što nekog hosta čini zanimljivim uvelike ovisi o razlogu samog skena.
+ Mrežni administratori će možda biti zainteresirani samo za hostove koji imaju pokrenut određeni servis, dok će
+ sigurnosni auditori biti zainteresirani za svaki uređaj s IP adresom. Administratoru će možda biti dovoljno
+ korištenje ICMP pinga kako bi pronašao hostove na mreži, dok će vanjski penetration tester koristiti široki
+ spektar alata i nebrojene sonde u pokušaju da obiđe zabrane postavljene na vatrozidu.</para>
+
+ <para>Budući da su potrebe korisnika kod pronalaženja hostova tako različite, Nmap nudi široki spektar opcija za
+ prilagođavanje korištenim tehnikama. Pronalaženje hostova (engl host discovery) se ponekad naziva Ping scan, ali
+ ide daleko dalje od običnog ICMP echo paketa povezanog sa sveprisutnim
+ <application moreinfo="none">ping</application> alatom. Korisnici mogu preskočiti dio pinganja s list skenom
+ (<option>-sL</option>) ili isključivanjem pinganja (<option>-P0</option>) ili da pristupe mreži s kombinacijama
+ multi port TCP SYN/ACK, UDP i ICMP sondi. Namjena tih sondi je iznuđivanje odgovora koji dokazuje da je IP
+ adresa u stvari aktivna (korištena je od strane hosta ili mrežnog uređaja). Na većini mreža je samo jedan mali
+ postotak IP adresa aktivan. To je pogotovo točno za mreže blagoslovljene RFC1918 dokumentom (privatni adresni
+ prostor poput 10.0.0.0/8). Navedena mreža ima 16 miliona IP adresa, ali imao sam prilike vidjeti da je koriste
+ firme s manje od tisuću mašina. Postupak pronalaženja hostova može pronaći koja su to računala u tom moru
+ neaktivnih IP adresa.</para>
+
+ <para>Ukoliko ne navedete nikakvu opciju Postupku pronalaženja hostova, Nmap šalje TCP ACK paket namjenjen portu
+ 80 i ICMP echo zahtijev na ciljano računalo. Izuzetak od ovog pravila je taj da je ARP sken korišten za ciljana
+ računala na lokalnoj ethernet mreži. Za neprivilegirane UNIX shell korisnike, Nmap šalje SYN paket umjesto ACK-a
+ korištenjem <function moreinfo="none">connect()</function> sistemskog poziva. To je jednako opcijama
+ <option>-PA -PE</option>. Takav način pronalaženja hostova je obično dostatan kad su u pitanju lokalne mreže, ali
+ preporučen je malo potpuniji set sondi za istraživanje kod sigurnosnog auditinga.</para>
+
+ <para>Opcija <option>-P*</option> (koja odabire ping tipove) može biti kombinirana. Možete povećati šanse
+ provaljivanja vatrozida slanjem mnogo sondi koje koriste različite TCP portove/zastavice (engl. flags) i ICMP
+ kodove. Također imajte na umu da se po defaultu na lokalnoj mreži za otkrivanje hostova koristi ARP discovery
+ (<option>-PR</option>) čak i kad navedete druge <option>-P*</option> opcije zbog toga jer je gotovo uvijek brži i
+ efikasniji.</para>
+
+ <para>Sljedeće opcije upravljaju postupkom otkrivanja hostova.</para>
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ <option>-sL</option> (List Sken)</term>
+ <listitem>
+ <para>List sken nije skeniranje hosta, već saznavanje nekih javno dostupnih informacija o njemu bez slanja
+ ijednog paketa prema tom hostu. List scan jednostavno ispiše svakog hosta kojeg smo specificirali i napravi
+ reverse DNS rezoluciju da bi saznao njegovo ime. Iznenađujuće je koliko korisnih informacija možete dobiti
+ ovim načinom "skeniranja". Npr. <literal moreinfo="none">fw.chi.playboy.com</literal> je vatrozid Čikaškog
+ (Chichago) ureda firme Playboy Enterprises. Nmap na kraju navede i ukupan broj IP adresa koje pripadaju tom
+ hostu. List Sken je koristan u situacijama kada se želite uvjeriti da imate ispravne IP adrese koje želite
+ skenirati. Ukoliko List sken izbaci nazive domena koje ne poznajete bilo bi dobro provjeriti prije nego
+ pokrenete skeniranje, jer ne bi bilo dobro da počnete skenirati krive hostove ;-).</para>
+
+ <para>Kako je ideja samo ispisati popis ciljanih hostova, ne možete kombinirati opcije za funkcionalnosti
+ višeg nivoa, poput skeniranja portova, detekcije OS-a, ping skeniranja isl. Ukoliko želite isključiti ping
+ skeniranje, a ipak koristiti funkcionalnosti višeg nivoa, pročitajte opis <option>-P0</option> opcije.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sP</option> (Ping Sken)</term>
+ <listitem>
+
+ <para>Ova opcija kaže Nmap-u da napravi <emphasis>samo</emphasis> ping sken (otkrivanje hostova) i da
+ ispiše hostove koji su odgovorili na skeniranje. Ne radi se nikakvo dodatno testiranje (poput port
+ skeniranja ili detekcije OS-a). To je način skeniranja koji je stupanj intruzivniji od list skena ali se
+ može koristiti u istu svrhu. Dozvoljava lagano "pretraživanje neprijateljskog teritorija" (engl.
+ reconnaissance), bez pretjeranog privlačenja pažnje, jer znati koliko hostova je stvarno "živo" na mreži
+ je važnija informacija za napadača ili sigurnosnog auditora, nego lista koju je izbacio list scans popisom
+ svih IP adresa i hostova koji postoje.</para>
+
+ <para>Sistemski administratori također nalaze ovu opciju poprilično korisnom. Može se koristiti za
+ pronalaženje dostupnih računala na mreži ili koristiti kao alat za nadgledanje dostupnosti servera. Taj
+ način primjene se naziva ping sweep i mnogo je pouzdaniji od pinganja broadcast adrese zato jer mnogi
+ hostovi ne odgovaraju na broadcast upite. (Konkretno windows mašine ne odgovaraju na broadcast ping, ali
+ odgovaraju na druge tipove broadcast paketa).</para>
+
+ <para>Po defaultu <option>-sP</option> opcija šalje ICMP echo i TCP paket na port 80. Kad je pokrenuta od
+ strane neprivilegiranog korisnika (korisnika koji nije lokalni administrator), poslan je SYN paket na port
+ 80 (korištenjem API poziva <function moreinfo="none">connect()</function> ). Kad privilegirani korisnik
+ pokušava skenirati hostve na lokalnoj mreži, koriste se ARP zahtjevi (<option>-PR</option>) osim ako nije
+ specificirana opcija <option>--send-ip</option>.
+ Opciju <option>-sP</option> možete kombinirati s bilo kojim tipom otkrivajućih (discovery) tipova
+ skeniranja (sve <option>-P*</option> opcije osim <option>-P0</option> opcije) kako bi postigli veću
+ fleksibilnost. Ukoliko se koristi bilo koji od tih tipova skeniranja i port broj, automatski su defaultne
+ postavke skeniranja premošćene (ACK i echo zahtjevi). Ukoliko su između hosta na kojem je pokrenut Nmap i
+ ciljanog hosta nalaze vatrozidi, preporuka je koristiti upravo te tehnike kako vatrozid ne bi filtrirao
+ upite ili odgovore na njih.</para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>
+ <option>-P0</option> (Bez pinganja)
+ </term>
+ <listitem>
+ <para>Ova opcija preskače fazu otkrivanja hostova. Ukliko ne koristite ovu opciju, Nmap pokušava ping
+ skeniranjem saznati koja računala su dostupna kako bi SAMO njih i skenirao. Ukoliko koristite ovu opciju
+ Nmap će skenirati svakog navedenog hosta bez obzira da li je dostupan ili ne, jer neće raditi provjeru.
+ Ukoliko odaberete kompletnu klasu B (/16 po CIDR notaciji) Nmap će skenirati svih 65536 hostova, bez obzira
+ da li su "živi" ili ne. Napomena: drugi karakter u ovoj opciji je NULA, a ne veliko slovo O. Ukoliko je na
+ hostu zatvoren ICMP protokol (što je slučaj kod 90% računala na internetu), a niste stavili
+ <option>-P0</option> opciju, Nmap neće skenirati ta računala, dakle, ukoliko želite skenirati računala koja
+ ne odgovaraju na ICMP echo upit, a znate da postoje i da su "živi" stavite ovu opciju.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-PS [lista_portova]</option> (TCP SYN Ping)</term>
+ <listitem>
+
+ <para>Ova opcija šalje prazan TCP paket s upaljenim SYN flagom. Defaultni odredišni port je 80 (možete se
+ konfigurirati kod kompajliranja programa na način da promijenite DEFAULT_TCP_PROBE_PORT u
+ <filename moreinfo="none">nmap.h</filename> biblioteci), no, možete navesti i neki drugi port kao
+ parametar.
+ Isto tako je moguće poslati zarezom odvojenu listu portova kao parametar ovoj opciji (npr. <option>-PS22,
+ 23,25,80,113,1050,35000</option>). U tom će slučaju nmap poslati paket na svaki od navedenih portova
+ paralelno.</para>
+
+ <para>SYN flag u paketu kaže ciljanom hostu da se želite spojiti na navedeni port/portove. Ukoliko je port
+ zatvoren, odgovor koji će Nmap dobiti od ciljanog hosta je RST (reset). Ukoliko je port otvoren, ciljano
+ računalo će poslati SYN/ACK paket, što je drugi korak u trostrukom rukovanju TCP protokola. Računalo na
+ kojem je pokrenut Nmap u tom trenutku prekida konekciju na način da pošalje RST paket (umjesto ACK paketa
+ koji bi završio trostruko rukovanje i uspostavio konekciju sa ciljanim hostom). RST paket je poslao kernel
+ računala na kojem je pokrenut Nmap, jer je dobio SYN/ACK paket koji nije očekivao.</para>
+
+ <para>Nmap ne zanima da li je port otvoren ili zatvoren, RST ili SYN/ACK odgovor koji je dobio dovoljan su
+ odgovor da je računalo "živo". Bez obzira na to RST odgovor znači da je računalo tu i da je "živo",
+ dok SYN/ACK odgovor uz to znači i da računalo "sluša" na navedenom portu.</para>
+
+ <para>Na UNIX mašinama samo privilegirani korisnik <literal moreinfo="none">root</literal> može slati i
+ primati sirove (RAW) TCP pakete. Za neprivilegirane korisnike napravljen je obilazni put u kojem Nmap
+ automatski poziva connect() API na svaki navedeni port. To je postiglo efekt slanja SYN paketa na coljani
+ host i iniciran je poušaj ostvarivanja konekcije. Ukoliko connect() API vrati brzi odgovor uspješnog
+ spajanja ili ECONNREFUSED grešku, TCP stack na OS-u je dobio SYN/ACK ili RST od ciljanog hosta i host je
+ označen kao dostupan. Ukoliko konekcija "visi" dok ne istekne timeout, ciljani host je označen kao
+ nedostupan (ugašen). Navedeni obilazni put se koristi i kod IPv6 konekcija, je Nmap još nema implementiranu
+ izradu sirovih (RAW) paketa za IPv6 protokol.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-PA [lista_portova]</option> (TCP ACK Ping)</term>
+ <listitem>
+ <para>TCP ACK ping je sličan SYN pingu. Razlika je, što je lako zaključiti iz samog naziva, u tome što se
+ umjsto SYN flaga upali ACK flag. Takav paket podrazumijeva da je konekcija već uspostavljena iako nije,
+ samim tim bi ciljani hostovi uvijek trebali odgovoriti s RST paketom, te na taj način potvrditi svoje
+ postojanje.
+ </para>
+
+ <para><option>-PA</option> opcija koristi isti defaultni port kao i SYN scan (port 80) i isto kao
+ i SYN scan može primiti listu portova u istom formatu. Ukoliko neprivilegirani korisnik pokuša
+ pokrenuti Nmap s ovom opcijom ili je u pitanju IPv6 TCP konekcija, koristi se obilazni put opisan u TCP SYN
+ pingu. Ova opcija nije savršena, jer connect() u stvari šalje SYN pakete umjesto ACK paketa</para>
+
+ <para>Razlog zašto koristiti i SYN i ACK sonde je radi povećavanja šansi za obilaženje vatrozida.
+ Mnogi administratori konfiguriraju rutere i ostale jednostavne vatrozide na način da zaustavljaju dolazeće
+ SYN pakete osim ako nisu namijenjeni nekim javnim servisima, poput weba ili mail servera. Takav način
+ podešavanja uređaja sprječava nedozovljene konekcije prema računalima tvrtke, ali omogućava neograničen
+ izlazni promet prema internetu. Ovakav pristup konekcija bez stanja (engl. stateless) oduzima malo resursa
+ na vatrozidima/ruterima i podržan je na gotovo svim hardverskim i softverskim filterima. Netfilter/
+ iptables, poznati vatrozid na Linux operativnom sustavu nudi opciju <option>--syn</option> kako bi mogli
+ implementirati ovakav pristup konekcija bez stanja (engl. stateless). Kod tako konfiguriranih vatrozida,
+ sonde SYN ping (<option>-PS</option>) će najvjerovatnije biti blokirane kad ih pošaljete na zatvorene
+ portove. No međutim, ACK sonde će bez problema prolaziti kroz njih.</para>
+
+ <para>Drugi tip vatrozida podržava konekcije sa stanjem (engl. stateful) koji odbacuju sve neočekivane
+ pakete. Ova opcija se u početku koristila samo kod naprednijih vatrozid rješenja, ali je vremenom postala
+ rasprostranjenija. Linux vatrozid Netfilter/iptables podržava ovu opciju korištenjem opcije
+ <option>--state</option>, koja kategorizira pakete vezano uz stanje konekcije. Skeniranjem takvih sustava
+ veća je vjerovatnost da ćemo od SYN sonde dobiti nekakvu informaciju, nego od ACK, jer se ACK sonde koje
+ nemaju uspostavljenu konekciju tretiraju kao lažne i odbačeni su bez ikakvog odgovora. U slučaju dvojbe,
+ najbolje je poslati i SYN i ACK sonde naviođenjem opcija
+ <option>-PS</option> i
+ <option>-PA</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-PU [lista_portova]</option> (UDP Ping)</term>
+ <listitem>
+
+ <para>Još jedna metoda detekcije hostova je i UDP ping. UDP ping šalje prazne UDP pakete (osim ako nije
+ definirana opcija
+ <option>--data-length</option>) na navedene portove. Portlist opcija ima isti format kao
+ i prije obrađene opcije <option>-PS</option> i <option>-PA</option>. Ukoliko nije naveden niti jedan port,
+ defaultni je 31338. To se može promijeniti kod kompajliranja promjenom DEFAULT_UDP_PROBE_PORT u
+ <filename moreinfo="none">nmap.h</filename> biblioteci.
+ Namjerno je odabran visoki nestandardni port, jer bi slanje paketa na otvorene UDP portove dalo neželjene
+ rezultate za ovu vrstu skena.</para>
+
+ <para>Nakon što je ciljano računalo dobilo paket na zatvoreni port, trebalo bi odgovoriti ICMP paketom "
+ nedostupan port" (engl. port unreachable). Na osnovu toga Nmap može zaključiti da je ciljani host "živ".
+ Drugi tipovi ICMP grešaka, poput nedostupan host/mreža ili premašen TTL (engl. TTL exceeded) nagovještavaju
+ da je host ugašen ili nedostupan. Ukoliko nema nikakvog odgovora, Nmap također zaključi da je host ugašen/
+ nedostupan.
+ Ukoliko je paket stigao na otvoreni UDP port, većina servisa će jednostavno ignorirati prazan UDP paket i
+ Nmap neće dobiti nikakav odgovor. Zbog toga je defaultni port 32338, jer je mala mogućnost da će neki
+ servis koristiti taj port. Postoje i neki servisi, poput chargen-a, koji će odgovoriti na prazan UDP paket
+ i na taj način otkriti Nmapu da je host "živ".</para>
+
+ <para>Glavna prednost ovog tipa skeniranja je da obilazi vatrozide i paket filtere koji skeniraju samo
+ TCP promet. Npr. Linksys BEFW11S4 bežični (wireless) ruter na vanjskom mrežnom adapteru filtrira samo TCP
+ portove, a na UDP skenove odgovara s ICMP port nedostupan.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-PE</option>;
+ <option>-PP</option>;
+ <option>-PM</option> (ICMP tipovi pinganja)</term>
+ <listitem>
+
+ <para>Uz do sad navedene tipove skeniranja i otkrivanja hostova, Nmap može slati i standardne ICMP pakete
+ korištenjem klasičnog <application moreinfo="none">ping</application> programa. Nmap šalje ICMP paket tipa
+ 8 (echo request) na ciljanu IP adresu očekujući odgovor tipa 0 (echo reply), ukoliko je host "živ". Na
+ štetu mrežnih istraživača, većina hostova i vatrozida na internetu blokira te pakete umjesto da na njih
+ odgovara kako je opisano u <ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC 1122</ulink>
+ dokumentu. Zbog toga su ICMP skenovi rijetko ili gotovo nikad pouzdani kad se ciljani host nalazi na
+ internetu, ali za sistem administratore koji nadgledaju unutrašnje mreže, ovo je praktičan i
+ najjednostavniji pristup za skeniranje hostova. Opisani način skeniranja možete upaliti korištenjem
+ <option>-PE</option> opcije.</para>
+
+ <para>Bez obzira na to što je echo zahtijev standardni ICMP ping upit, Nmap se nije zaustavio na tome. Ako
+ pogledate ICMP standard (<ulink url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC 792</ulink>) vidjet ćete
+ da je u njemu naveden i timestamp zahtijev, information zahtijev i zahtijev za adresnom maskom i to pod
+ kodovima 13,15 i 17. Iako je namjena tih upita saznati informacije poput adresne maske i trenutnog vremena,
+ vrlo ih je lako iskoristiti za otkrivanje hostova. Host koji odgovori je "živ". Nmap u trenutnoj verziji ne
+ podržava information zahtijev, jer se ne koristi često. RFC 1122 inzistira na tome da <quote>host NE BI
+ TREBAO implementirati taj ICMP tip poruka</quote>. Upite za timestamp i adresnu masku možete poslati s
+ <option>-PP</option> i <option>-PM</option> opcijama. Timestamp odgovor (ICMP kod 14) ili odgovor adresne
+ maske (kod 18) otkrivaju da je ciljani host "živ". Ta dva upita su korisni u slučajevima kad administratori
+ blokiraju echo zahtijev pakete, ali zaborave blokirati ostale ICMP pakete.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-PR</option> (ARP Ping)</term>
+ <listitem>
+
+ <para>Jedan od najčešćih scenarija korištenja Nmap-a je skeniranje ethernet LAN-a. Na većini LAN-ova,
+ posebno na onima koji koriste privatne ip adrese definirane u RFC 1918 dokumentu je većina IP adresa u
+ stvari neiskorištena. Kad Nmap pokuša poslati sirovi IP paket poput ICMP echo zahtjeva, operativni sustav
+ mora ustanoviti MAC adresu računala koja pripada ciljanoj IP adresi, kako bi moglo adresirati ethernet
+ frame. To je obično sporo i problematično jer operativni sustavi nisu napisani s pretpostavkom da će u vrlo
+ kratkom vremenskom periodu morati poslati milione ARP zahtjeva prema nepostojećim hostovima.
+ </para>
+
+ <para> ARP sken zadužuje Nmap i njegove optimizirane algoritme za ARP zahtjeve i ukoliko Nmap dobije
+ odgovor ne mora uopće pokretati IP bazirani ping, jer već zna da je računalo dostupno. Ovo čini ARP scan
+ mnogo bržim i pouzdanijim od IP baziranog skena, pa se defaultno koristi kod skeniranje hostova na
+ ethernetu za koje Nmap zaključi da su na lokalnoj mreži. Čak ako ste i naveli neke druge tipove pinga,
+ (poput
+ <option>-PE</option> ili
+ <option>-PS</option>), Nmap će koristiti ARP sken za sve hostove koji su na istoj mreži. Ukoliko ne želite
+ koristiti ARP sken, navedite opciju
+ <option>--send-ip</option>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-n</option> (Bez DNS rezolucije)
+ </term>
+ <listitem>
+ <para>Ova opcija kaže Nmap-u da
+ <emphasis>nikad</emphasis> ne radi obrnutu DNS rezoluciju (engl. reverse DNS lookup) na aktivnim IP
+ adresama koje pronađe. Kako je obrnuta DNS rezolucija često spora, ova opcija ubrzava postupak.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-R</option> (DNS rezolucija za sva ciljana računala)
+ </term>
+ <listitem>
+ <para>Ova opcija kaže Nmap-u da
+ <emphasis>uvijek</emphasis> radi obrnutu rezoluciju ciljanih IP adresa. U normalnim okolnostima to se radi
+ samo kad je potvrđeno da računalo postoji.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--system-dns</option> (Koristi sistemski DNS rezolver)
+ </term>
+ <listitem>
+ <para>Defaultno Nmap radi rezolving adresa slanjem upita direktno imenskim serverima (engl. name servers)
+ koji su podešeni na vašem računalu i čeka odgovore. Mnogo zahtjeva je poslano istovremeno (10 i više) kako
+ bi brže radilo. Ovu opciju navedite ukoliko želite koristiti sistemski rezolver (jedna po jedna IP adresa
+ pozivom sistemskog API poziva getnameinfo()). Ovo je sporije i rijetko je korisno osim ako u Nmap DNS kodu
+ postoji greška -- molim kontaktirajte nas u tom slučaju. Sistemski rezolver se uvijek koristi za IPv6
+ skenove.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--dns-servers <server1[,server2],...>
+ </option> (Serveri koji će se koristiti za obrnute DNS upite)
+ </term>
+ <listitem>
+ <para>U normalnim okolnostima, Nmap će pokušati pronaći vaše DNS servere iz resolv.conf datoteke (na
+ UNIX-u) ili iz registry baze podataka (na Win32). Naravno, postoji mogućnost da navedete servere po želji
+ korištenjem ove opcije. Ova opcija se ne koristi ako koristitite opciju
+ <option>--system-dns</option>
+ ili IPv6 sken. Korištenje više DNS servera je obično brže nego samo jednog.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-port-scanning-basics">
+ <title>Osnove skeniranja portova</title>
+
+ <para>Bez obzira na to što je vremenom Nmap porastao gledano s funkcionalne strane, počeo je kao efikasan
+ port skener, te mu to i dalje ostaje osnovna namjena. Jednostavna naredba <command moreinfo="none">nmap
+ <replaceable>ciljani host</replaceable></command> skenira više od 1660 TCP portova na navedenom računalu.
+ Iako je većina port skenera grupirala portove u otvorene ili zatvorene, Nmap ima granularniji pristup, te
+ dijeli portove na:
+ <literal moreinfo="none">otvorene</literal>,
+ <literal moreinfo="none">zatvorene</literal>,
+ <literal moreinfo="none">filtrirane</literal>,
+ <literal moreinfo="none">nefiltriran</literal>,
+ <literal moreinfo="none">otvorene|filtrirane</literal> i
+ <literal moreinfo="none">zatvorene|filtrirane</literal>.</para>
+
+<para>Gore navedena stanja ne potiču od stvarnih stanja portova, već su opis onoga što Nmap u stvari vidi. Npr.,
+ukoliko Nmap-om skenirate neku mrežu, dok ste fizički spojeni na nju, Nmap bi mogao reći da je port 135 otvoren, dok
+bi isti taj sken u slučaju da tu istu mrežu skenirate s interneta, najvjerovatnije rekao da je port
+<literal moreinfo="none">filtriran</literal> (nalazi se iza vatrozida ili paket filtera).</para>
+
+<variablelist><title>Šest stanja portova kako ih Nmap prepoznaje</title>
+
+ <varlistentry><term>otvoren</term>
+ <listitem><para>Aplikacija aktivno prihvaća TCP konekcije ili UDP pakete na navedenom portu. To je ujedno i cilj
+ skoro svakog skeniranja. Osobe koje se bave sigurnošću znaju da je svaki otvoreni port, potencijalno mjesto napada.
+ Napadači i penetration testeri žele iskoristiti otvorene portove, dok ih administratori pokušavaju zatvoriti ili
+ zaštititi vatrozidima, bez da zabrane pristup legitimnim korisnicima. Skeniranje otvorenih portova je zanimljivo
+ ne samo za sigurnosne skenove, već i u slučaju kad želite saznati koji servisi i aplikacije su dostupni na mreži.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term>zatvoren</term>
+
+ <listitem><para>Zatvoreni port je dostupan (odgovorio je na Nmap-ov upit), ali na njemu ne sluša niti jedna
+ aplikacija. Zatvoreni port nam govori da se na toj IP adresi nalazi host koji je upaljen, koji najvjerovatnije nije
+ iza vatrozida ili paket filtera, a to nam može pomoći i i otkrivanju verzije OS-a. Kako su zatvoreni portovi
+ dostupni (nitko nam nije zabranio pristup do njih), isplati se kasnije ponoviti sken, jer možda će kasnije biti
+ otvoreni. Administratori se trude zabraniti pristup takvim portovima korištenjem vatrozida i paket filtera, u tom
+ bi slučaju port bio filtriran, a ne zatvoren (što je objašnjeno u nastavku).
+ </para></listitem></varlistentry>
+
+ <varlistentry><term>filtriran</term>
+
+ <listitem><para>Nmap ne može ustanoviti da li je port otvoren ili ne, jer neki uređaj (vatrozid, pravila na ruteru,
+ paket filter) blokira upite prema tom portu. Ti su portovi frustrirajući za hakere, jer ne daju gotovo nikakve
+ informacije. Ponekad odgovaraju s ICMP porukom o grešci poput tip 3 kod 13 (odredište je nedostupno - komunikacija
+ administrativno zabranjena), ali filteri koji samo odbace paket i ne daju nikakav odgovor na njegu su najčešći.
+ Zbog toga Nmap mora poslati upit više puta kako bi bio siguran da je paket odbačen zbog filtriranja, a ne zbog
+ mrežnog zagušenja te samim tim usporava skeniranje.</para></listitem></varlistentry>
+
+ <varlistentry><term>nefiltriran</term>
+ <listitem><para>Ovo stanje znači da je port dostupan, ali Nmap ne može ustanoviti da li je otvoren ili zatvoren.
+ Samo ACK sken (koji se koristi za otkrivanje pravila na vatrozidu može vratiti nefiltriran kao odgovor. Skeniranje
+ nefiltriranih portova nekom drugom metodom (poput Windows skena, SYN skena ili FIN skena može dati odgovor na
+ pitanje da li je port otvoren ili zatvoren.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term>otvoren|filtriran</term>
+ <listitem><para>Nmap okarakterizira port ovim stanjem kada nije u mogućnosti ustanoviti da li je port otvoren ili
+ filtriran. To se dogodi u situacijama kada na upit ne dobije nikakav odgovor. Nedostatak odgovora može značiti da
+ je paket filter odbacio paket i/ili bilo kakav odgovor koji je taj paket inicirao. Samim tim Nmap nije siguran da
+ li je port otvoren ili filtriran. UDP, IP protokol, FIN Null i Xmas scan mogu klasificirati port ovim stanjem.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term>zatvoren|filtriran</term>
+ <listitem><para>U slučaju kad Nmap ne može ustanoviti da li je port zatvoren ili filtriran, okarakterizirat će ga
+ ovim stanjem. IPID Idle Scan je jedina sken metoda koja može vratiti ovakav rezultat.
+ </para></listitem></varlistentry>
+ </variablelist>
+</refsect1>
+
+<refsect1 id="man-port-scanning-techniques">
+ <title>Tehnike skeniranja portova</title>
+
+<para>Kako nisam previše vičan popravcima na automobilu, mogu potrošiti sate i sate samo da nađem odgovarajući alat
+(poput čekića, ljpljive trake, ključa isl.). Nakon što odustanem od smješnih pokušaja da nešto popravim i odvezem
+auto kod stvarnog mehaničara, začuđen sam kako jednostavno i nadasve uspješno izvadi iz velike kutije s alatatom baš
+onaj koji je potreban za uspješan popravak. Umjestnost skeniranja portova je slična. Stručnjak razumije mnoštvo
+tehnika skeniranja i odabere baš onu (ili kombinaciju više tehnika) koja je odgovarajuća za određeni posao. Neiskusni
+korisnisi i script kiddies (osobe koje koriste skripte koje je napisao netko drugi ne razumijevajući što i kako te
+skripte rade), pokušavaju sve riješiti defaultnim SYN skanom. Kako je Nmap besplatan program, jedina prepreka između
+Vas i masteriranja port skeninga je znanje. To je definitivno suprotno od automehaničarskog posla, u kojem recimo mož
+ete znati da Vam treba zračni kompresor, ali to ne umanjuje činjenicu da ga trebate i kupiti.
+</para>
+
+<para>Većina tipova skeniranja koje nmap podržava dostupni su privilegiranim korisnicima (morate biti ulogirani kao
+administrator). To je zbog toga jer šalju sirove (RAW) pakete koji zahtjevaju root pristup u UNIX svijetu. Korištenje
+administratorskog korisničkog accounta je preporučeno na windows operativnim sustavima, mada Nmap ponekad radi i s
+neprivilegiranim korisnicima, ako je WinPCap prethodno instaliran na sustav i aktivan. Zahtjev za root privilegijama
+je bila ozbiljna prepreka kad je Nmap prvi put pušten u javnost 1997. godine, jer je većina korisnika imala pristup
+dijeljenim shell accountima. Sada je svijet drugačiji. Kompjutori su jeftiniji, veći broj ljudi ima stalni pristup
+internetu, a desktop UNIX sustavi su dominantni (uključujući linux i MAC OS X). Windows verzija Nmap-a je također
+dostupna, te je samim tim i Nmap dostupniji većem broju korisnika. Zbog svih tih razloga, sve je manja potreba
+korisnika da pokreću Nmap logirani sa dijeljenim shell accountima. To je naravno super stvarm jer je Nmap pokrenut
+pod accountom privilegiranog korisnika mnogo moćniji i fleksibilniji.</para>
+
+<para>Iako Nmap pokušava reproducirati ispravan rezultat svojih skenova, imajte na umu da su sve unutrašnje
+komponente Nmap-a bazirane na paketima vraćenim od ciljanih računala (ili firewall uređaja ispred njih). Neki hostovi
+mogu biti nepouzdani i podešeni na način da vrate pakete koji će zavarati Nmap i dati krivi rezultat. Još češći su
+hostovi koji ne podržavaju RFC standard, te ne odgovaraju onako kako Nmap očekuje od njih. FIN, Null i Xmas skenovi
+su pogotovo podložni tim problemima. Problemi poput gore navedenih su specifični za pojedine tipove skeniranja i o
+tome se raspravlja u svakoj od tih tehnika skeniranja.</para>
+
+<para>Ovo poglavlje dokumentira hrpu tehnika skeniranja portova koje podržava Nmap. Samo jedna od spomenutih metoda
+može biti korištena u jednom trenutku, osim UDP skena (<option>-sU</option>) koji može biti kombiniran s bilo kojom
+od TCP sken matoda. Radi lakšeg pamćenja, opcije skeniranja portova su u obliku
+<option>-s<replaceable>C</replaceable></option>, gdje je <replaceable>C</replaceable> vidljiv iz samog naziva sken
+tipa i obično je to prvo slovo. Jedini izuzetak je FTP bounce scan (<option>-b</option>). Defaultno, Nmap radi SYN
+scan iako će ga zamijeniti s Connect() skenom, ako korisnik nema odgovarajuće ovlasti slanja raw paketa (root pristup
+na UNIX sustavima) ili ako je specificirana IPv6 kao ciljana IP adresa. Od svih navedenih tipova skenova u ovom
+poglavlju, neprivilegirani korisnik može pokrenuti samo Connect() i FTP bounce scan.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-sS</option> (TCP SYN scan)</term>
+ <listitem>
+
+<para>SYN scan je defaultni i najpopularniji način skeniranja i to zbog opravdanih razloga. Može ga se izvesti brzo,
+može skenirati tisuće portova u sekundi na brzim mrežama koje nisu opterećene firewall uređajima koji utječu na
+kretanje paketa. SYN scan je relativno neagresivan i nevidljiv, jer nikad ne završi TCP konekciju (ne uspostavi
+trostruko rukovanje do kraja). Također je jednako efikasan na svim implementacijama TCP stacka, jer ne ovisi o
+specifičnim platformama kao što je to slučaj kod Nmap-ovog Fin/Null/Xmas, Maimon i Idle skena. Također je u
+mogućnosti čisto i pouzdano razlučiti između <literal moreinfo="none">otvorenog</literal>,
+<literal moreinfo="none">zatvorenog</literal> i <literal moreinfo="none">filtriranog</literal> stanja porta.</para>
+
+<para>Tehnika SYN scana se najčešće naziva poluotvoreno skeniranje, jer nikad ne uspostavite potpunu TCP konekciju.
+Naime, pošaljete SYN paket, kao što bi ga poslali u slučaju da želite uspostaviti stvarnu TCP konekciju i čekate na
+odgovor. Ako kao odgovor dobijete SYN/ACK, znači da postoji aplikacija koja sluša na tom portu (port je otvoren), dok
+RST (reset) znači da ne postoji aplikacija koja sluša na tom portu (port je zatvoren). Ukoliko i nakon nekoliko
+ponovnih slanja upita nema nikakvog odgovorar, port je okarakteriziran kao filtriran. Port je također označen kao
+filtriran ako kao odgovor dođe ICMP unreachable error (ICMP nedostupan - tip 3, kodovi 1, 2, 3, 9, 10 ili 13).</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sT</option> (TCP connect() scan)</term>
+ <listitem>
+
+<para>TCP Connect() scan je defaultni TCP tip skeniranja ukoliko je SYN scan nedostupan. To se događa u slučajevima
+kad korisnik nema privilegiju slanja raw paketa ili kad je skenirani host na IPv6 mreži. Umjesto da šalje raw pakete,
+kao što to radi većina drugih tipova skeniranja, Nmap zatraži operativni sustav da uspostavi konekciju s ciljanim
+računalom na poru kojiželimo skenirati, na način da pošalje <literal moreinfo="none">connect()</literal> sistemski
+poziv. To je isti sistemski poziv koji koriste web preglednici, P2P klijenti i većina drugih mrežnih aplikacija kad ž
+ele uspostaviti konekciju. Dio je programskog unosa poznatog kao Berkeley Sockets API. Umjesto da iščitava raw pakete
+Nmap koristi navedeni API kako bi dobio statusne informacije svake pokušane konekcije.</para>
+
+<para>Ukoliko je SYN scan dostupan, obično je i bolji odabir. Naime, Nmap ima puno manje kontrole nad <literal moreinfo="none">connect()</literal> API pozivom, nego nad raw paketima, te je samim tim Nap manje efikasan. Sistemski
+poziv napravi potpunu konekciju na otvorene portove ciljanog računala umjesto da napravi reset kao što je slučaj kod
+SYN skena. Tim postupkom ne samo da gubimo više vremena kako bi saznali da li su portovi otvoreni ili ne, nego
+postoji i veća vjerovatnost dsa će host zapisati u log pokušaj spajanja. Činjenica je da će svaki IDS sustav logirati
+i SYN i Connect scan, ali isto tako je činjenica da većina računala nema IDS sustav. Većina servisa na UNIX-oidima će
+dodati zapis u syslog i (ponekad) kriptičnu poruku o grešci, kad se Nmap spoji i odmah odspoji bez slanja podataka.
+Jadno napisani servisi se skrše kad se to dogodi, mada je to stvarno rijetkost. Administrator koji vidi hrpu pokušaja
+spajanja u logovima koji su svi inicirani s jednog hosta, odmah će znati da je netko skenirao portove Connect()
+metodom.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sU</option> (UDP skenovi)</term>
+ <listitem>
+
+<para>Iako većina popularnih servisa na internetu korisiti TCP protokol, <ulink url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> servisi su isto tako široko zastupljeni. DNS, SNMP i DHCP (registrirani portovi 53, 161/162 i
+67/68) su tri najpoznatija. Zbog toga što je UDP skeniranje mnogo sporije i teže za izvesti nego TCP, neki sigurnosni
+auditori, ignoriraju UDP portove. To je velika pogreška, jer su exploitabilni UDP servisi česta pojava i napadači ih
+sigurno neće ignorirati. Srećom, Nmap može pomoći u istraživanju UDP portova.</para>
+
+<para>UDP scan aktivirate naredbom <option>-sU</option>. Može biti kombinirana s TCP skenom poput SYN skena (<option>
+-sS</option>), kako bi oba protokola bili provjereni "jednim udarcem".</para>
+
+<para>UDP scan radi na način da pošalje prazan UDP header (bez podataka) na svaki ciljani port. Ukoliko je vraćen
+ICMP port unreachable (ICMP nedostupan port) i to tip 3 kod 3, onda je port
+<literal moreinfo="none">zatvoren</literal>. Druge ICMP greške (tip 3, kodovi 1, 2, 9, 10 ili 13) označavaju port kao
+<literal moreinfo="none">filtriran</literal>.Povremeno će servis odgovriti s UDP paketom, dokazujući da je port
+<literal moreinfo="none">otvoren</literal>. Ukoliko nakon nekoliko retransmisija nema nikakvog odgovora, port je
+okarakteriziran kao <literal moreinfo="none">otvoren|filtriran</literal>. To znači da bi port mogao biti otvoren ili
+možda paket filteri blokiraju promet prema njemu. Version scan (<option>-sV</option>) može pomoći da se ustanovi koji
+portovi su stvarno otvoreni, a koji su filtrirani.</para>
+
+<para>Veliki izaziv kod skeniranja UDP portova je napraviti ti brzo. Otvoreni i filtrirani portovi rijetko pošalju
+ikakav odgovor, ostavljajući Nmap da napravi time out, te nakon toga ponovno pošalje paket u slučaju da je prethodni
+iz bilo kojeg razloga bio izgubljen. Zatvoreni portovi su često još veći problem. Oni najčešće pošalju kao odgovor
+ICMP port unreacheble grešku. No, za razliku od RST paketa koje pošalju zatvoreni portovi na TCP protokolu kao odgovr
+na SYN ili Connect() scan, mnogi hostovi ograničavaju ICMP port urnreachable poruku po defaultu. Linnux i Solaris su
+jako striktni vezano za to. Tako npr. Linux 2.4.20 kernel ograničava destination unreachable poruku na jednu po
+sekundi (u <filename moreinfo="none">net/ipv4/icmp.c</filename> biblioteci)..</para>
+
+<para>Nmap pokušava ustanoviti da li je to slučaj i smanjuje brzinu skeniranja veano uz to, kako bi spriječio zaguš
+ivanje nekorisnim paketima koje će ciljano računalo tako i tako tiho odbaciti. Nažalost, spomenuti limit koji je
+postavljen kod linuxa, znači da će skeniranje svih 65536 portova trajati više od 18 sati. Ideja ubrzavanja UDP skena
+je da se paralelno skenira više hostova, na način da se najprije skleniraju najpopularniji portovi na brz način,
+skenirajući iza firewall-a i koristeći <option>--host-timeout</option> kako bi se izbjegli spori hostovi.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (TCP Null, FIN i Xmas skenovi)</term>
+ <listitem>
+
+<para>Ova tri tipa skenova (moguće ih je postići i više korištenjem <option>--scanflags</option> opcije opisane u
+sljedećoj sekciji) iskorištavaju rupu u standardu <ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP RFC
+</ulink>, kako bi razlučili koji port je <literal moreinfo="none">otvoren</literal>, a koji <literal moreinfo="none">
+zatvoren</literal>. Na strani 65 piše: <quote>Ukoliko je stanje odredišnog porta ZATVORENO ... dolazeći segment koji
+ne sadrži RST prouzročuje da RST bude poslan kao odgovor.</quote> Na idućoj stranici se raspravlja o paketima
+poslanim na otovorene portove bez upaljenih SYN, RST ili ACK bitova i kaže da: <quote>najvjerovatnije se nećete naći
+u takovoj situaciji, ali ako se nađete, jednostavno odbacite paket.</quote></para>
+
+<para>Kod skeniranja sistema koji su kompatibilni s tim RFC tekstom, svaki paket koji u sebi ima upaljene bitove SYN,
+RST ili ACK rezzultirat će vraćenim RST paketom ako je port zatvoren, a neće dati nikakav odgovor, ako je port
+otvoren. Dok god nije upaljen niti jedan od tih bitova, bilo koja kombinacija druga tri bita (FIN, PSH i URG) je u
+redu. Nmap to iskorištava s tri dolje navedena tipa skeniranja:</para>
+
+<variablelist>
+ <varlistentry><term>Null scan (<option>-sN</option>)</term>
+ <listitem><para>Ne uključuje niti jedan od bitova (TCP oznaka zaglavlja je 0)</para></listitem></varlistentry>
+
+ <varlistentry><term>FIN scan (<option>-sF</option>)</term>
+ <listitem><para>Uključuje samo TCP FIN bit</para></listitem></varlistentry>
+
+ <varlistentry><term>Xmas scan (<option>-sX</option>)</term>
+ <listitem><para>Uključuje FIN, PSH i URG flagove, "osvjetljavajući" paket kao božićno drvce. (op. prev. Xmas=Božić
+ </para></listitem></varlistentry>
+</variablelist>
+
+<para>Sva tri tipa skeniranja su potpuno ista što se ponašanja tiče, samo što su im upaljene različite TCP oznake u
+paketima. Ukoliko je kao odgovor dobiven RST paket, port se smatra <literal moreinfo="none">zatvorenim</literal>, dok
+situacija u kojoj nema odgovora, smatra da je port <literal moreinfo="none">otvoren|filtriran</literal>. Port je
+označen kao <literal moreinfo="none">filtriran</literal>, ako je odgovor na scan ICMP unreachable greška (tip 3,
+kodovi 1, 2, 3, 9, 10 ili 13).</para>
+
+<para>Glavna prednost ovih tipova skeniranja je ta da mogu "proviriti" kroz neke ne stateful firewall uređaje i paket
+filtering rutere. Druga prednost im je ta da su još više nevidljivi od SYN skena. No, nemojte se u to pouzdavati, jer
+većina modernih IDS sustava može biti konfigurirana da ih prepozna. Veliki nedostatak je da ne podržavaju svi sistemi
+RFC 793 do zadnjeg slova, pa tako većina sustava odgovara RST paketom bez obzira na to da li je port otvoren ili
+nije. Kod takvih sustava su svi portovi koje Nmap skenira okarakterizirani kao <literal moreinfo="none">zatvoreni
+</literal>. Većina operativnih sustava koji se tako ponašaju su Microsoft Windows, većina Cisco uređaja, BSDI i IBM
+OS/400. No, ovaj tip skeniranja radi na većini UNIX sustava. Dodatan nedostatak ovih tipova skenova je taj što ne
+mogu razlikovati <literal moreinfo="none">otvorene</literal> portove od nekih <literal moreinfo="none">filtriranih
+</literal>, te kao odgovor dobijete <literal moreinfo="none">otvoren|filtriran</literal>, pa si vi mislite...</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sA</option> (TCP ACK scan)</term>
+ <listitem>
+
+<para>Ovaj tip skeniranja razlikuje se od ostalih do sad opisanih po tome što nikad ne otkrije <literal moreinfo="
+none">otvorene</literal> ili čak <literal moreinfo="none">otvorene|filtrirane</literal> portove. Namjena mu je
+mapirati pravila firewall-a, tj. da zaključi da li je firewall stateful, te koji su portovi filtrirani.</para>
+
+<para>Kad je u pitanju ACK scan, onda je upaljena samo ACK zastavica (flag) (osim ako koristite <option>--scanflags
+</option>). Kad skenirate nefiltrirane hostove, <literal moreinfo="none">otvoreni</literal> i
+<literal moreinfo="none">zatvoreni</literal> portovi će vratiti RST paket. Nmap ih u tom slučaju označi kao <literal moreinfo="none">nefiltrirane</literal>, što znači da su dostupni ACK paketima, ali nije definirano da li su <literal moreinfo="none">otvoreni</literal> ili <literal moreinfo="none">zatvoreni</literal>. Portovi koji ne odgovaraju na
+upite ili pošalju određene ICMP greške (tip 3, kod 1, 2, 3, 9, 10 ili 13) su označeni kao <literal moreinfo="none">
+filtrirani</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sW</option> (TCP Window scan)</term>
+ <listitem>
+
+<para>Window scan je sličan ACK scanu, samo što exploatira implamentacijske detalje operativnih sustava kako bi
+razlučio otvorene portove od zatvorenih, umjesto da uvijek ispiše <literal moreinfo="none">nefiltriran</literal> kad
+dobije RST kao odgovor. To radi na način da pregleda TCP Window polje RST paketa koji je dobio. Na nekim sustavima
+otovreni portovi koriste pozitivnu veličinu prozora (čak i za RST pakete), dok zatvoreni portovi imaju prozor
+veličine 0. Dakle, umjesto da uvijek označi port kao <literal moreinfo="none">nefiltriran</literal> kad dobije RST
+kao odgovor, Window scan označi portove kao <literal moreinfo="none">otvorene</literal> ili <literal moreinfo="none">
+zatvorene</literal>, ovisno o tome da li je veličina prozora pozitivna ili 0.</para>
+
+<para>Ovaj način skeniranja se pouzdaje u implementacijske detalje nekih operativnih sustava, tako da mu ne morate
+uvijek vjerovati. Sistemi koji su "otporni" na ovaj način skeniranja obično će vratiti sve portove kao
+<literal moreinfo="none">zatvorene</literal>. Naravno isto tako je moguće da računal stvarno nema otovrenih portova.
+Ukoliko je većina portova <literal moreinfo="none">zatvorena</literal>, ali ima onih koji su označeni kao
+<literal moreinfo="none">filtrirani</literal>, (npr. češće korišteni portovi poput 22, 25, 53) , sustav je podložan
+ovom načinu skeniranja i rezultat je najvjerovatnije ispravan. Ukoliko pokrenete sken koji vam vrati 1000 zatvorenih
+portova i 3 otvorena ili filtrirana porta, najvjerovatnije su ta 3 porta uistinu i otvorena.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sM</option> (TCP Maimon scan)</term>
+ <listitem>
+
+<para>Maimon scan je dobio naziv po osobi koja ga je otkrila - Uriel Maimon. Tehniku skeniranja je opisao u časopisu Phrack broj 49 (Studeni 1996). Nmap je izdan 2 godine kasnije i omogućavao je tu tehniku skeniranja. Tehnika je ista kao i Null, Xmas i FIN scan, osim što je paket koji se šalje FIN/ACK. Po RFC dokumentu 793 (TCP), treba odgovoriti RST paketom, bez obzira da li je port otvoren ili zatvoren. No, Uriel je primjetio da većina BSD sistema jednostavno odbaci paket ako je port otvoren.
+</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--scanflags</option> (Custom TCP scan)</term>
+ <listitem>
+
+<para>Napredni Nmap korisnici nisu vezani uz poznate tipove skenova. <option>--scanflags</option> opcija dozvoljava
+da dizajnirate vlastiti tip skeniranja, navodeći bilo koju kombinaciju TCP zastavica (flagova). Neka važi kreativni
+sokovi teku, dok izbjegavate otkrivanje svojih radnji od strane IDS sustava čiji su autori samo prošli kroz Nmap
+opcije i dodali pravila koja prepoznaju navedene tipove skeniranja.</para>
+
+<para><option>--scanflags</option> argument može biti brojčana vrijednost poput 9 (PSH i FIN), ali korištenje
+simboličnih imena je jednostavnije. Jednostavno izmješajte zajedno bilo koju kombinaciju zastavica (flagova)
+<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> i <literal moreinfo="none">FIN</literal>.
+Npr. <option> --scanflags URGACKPSHRSTSYNFIN</option> postavlja sve zastavice, ali nije pretjerano koristan za
+skeniranje. Redosljed navođenja zastavica je nebitan.</para>
+
+<para>Uz navođenje željenih zastavica, možete navesti i bazni TCP tip skeniranja (poput <option>-sA</option> ili
+<option>-sF</option>), što će objasniti Nmap-u kako da interpretira odgovore. Npr. SYN scan tretira paket na koji
+nije dobio odgovor kao <literal moreinfo="none">filtriran</literal> port, dok ga FIN scan tretira kao
+<literal moreinfo="none">otvoren|filtriran</literal>. Nmap će se ponašati isto kao što se ponaša kod specificiranog
+baznog skena, osim što će koristiti zastavice koje ste naveli. Ukoliko ne navedete bazni tip skeniranja, koristit će
+se SYN scan.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sI <zombie
+ host[:probeport]></option> (Idlescan)</term>
+
+ <listitem>
+
+ <para>Ova napredna metoda skeniranja omogućava slijepo skeniranje ciljanog računala (niti jedan paket nije
+ poslan na ciljano računalo s vaše stvarne IP adrese).Umjesto toga koristite zombie host računalo i
+ predvidljiv IP fragmentation ID na njemu kako bi dobili informaciju o tome koji su portovi otvoreni na
+ ciljanom računalu. IDS sustavi će pokazati da scan dolazi sa zombie mašine kojju ste specificirali kod
+ pokretanja ovog tipa skeniranja (zombie mora biti upaljen i mora zadovoljavati neke kriterije). Ovaj način
+ skeniranja je prekompleksan da bi ga ovdje opisali u potpunosti, pa sam napisao i postao informativni
+ članak sa svim detaljima na <ulink url="https://nmap.org/book/idlescan.html"></ulink>.</para>
+
+ <para>Osim što je nevjerovatno nevidljiv (zbog načina na koji radi) ovaj tip skeniranja omogućava mapiranje
+ IP baziranih pravila između računala. Ispis portova pokazuje otvorene portove <emphasis>kako ih vidi zombi
+ računalo.</emphasis> Dakle, možete koristiti više zombie računala za skeniranje ciljanog računala.</para>
+
+ <para>Možete staviti dvotočku i broj porta iza nje, kako bi na tom portu provjerili da li su IPID promjene
+ predvidljive. Ukoliko to ne navedete, Nmap će koristiti standardni port za TCP pinganje (80).</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sO</option> (IP protocol scan)</term>
+ <listitem>
+
+<para>IP protokol scan Vam omogućava da provjerite koji IP protokoli (TCP, ICMP, IGMP isl.) su podržani na ciljanim
+mašinama. Tehnički gledano, to i nije port scan jer prolazi kroz brojeve IP protokola, a ne kroz brojeve TCP i UDP
+portova. No ipak koristi opciju <option>-p</option>, kako bi odabrao skenirane brojeve IP protokola, ispisuje
+rezultate u normalnoj tabeli kao i kod skeniranja portova, pa čak koristi i isti engine za skeniranje kao i kod
+skeniranja portova. Kad sve to uzmemo u obzir - ova metoda skeniranja je dovoljno slična skeniranju portova, pa je
+stoga i uključena u ovo poglavlje.</para>
+
+<para>Osim što je koristan sam po sebi, protokol scan pokazuje i snagu open source softvera. Iako je temeljna metoda
+vrlo jednostavna, nisam je mislio uključiti u Nmap, niti sam dobio zahtjev za tom funkcionalnošću, sve dok u ljeto
+2000, Gerhard Rieger nije razvio ideju, napisao izvanredan patch koji to implementira u Nmap i posalo na nmap-hakers
+listu. Uključio sam taj patch u Nmap i pustio novu verziju već drugi dan. Jako malo komercijalnog softvera ima
+korisnike koji su toliki entuzijasti da bi razvili vlastita poboljšanja za pojedine produkte!</para>
+
+<para>Protokol scan radi vrlo slično kao i UDP scan. Umjesto da prolazi kroz brojeve portova UDP paketa, šalje IP
+pakete i prolazi kroz 8 bitnio polje samog IP protokola. Headeri (zaglavlja) su obično prazni i ne sadrže nikakve
+podatke, pa čak niti ispravni header za određeni protokol. Izuzeci od tog pravila su TCP, UDP i ICMP protokol. Za te
+protokole je uključen ispravan protokol header (zaglavlje), jer neki sustavi u suprotonom ne žele poslati paket, tako
+da Nmap već ima funkcije za kreiranje ispravnih headera. Umjesto da čeka ICMP unreachable poruku, protokol scan traži
+ICMP <emphasis>protoKol</emphasis> unreachable poruku. Ukoliko Nmap dobije bilo kakav odgovor u bilo kojem protokolu
+od ciljanog računala, Nmap označi taj protokol kao o<literal moreinfo="none">Otvoren</literal>. ICMP protocol
+unreachable greška (tip 3, kod 2) označi protokol kao <literal moreinfo="none">Zatvoren</literal>. Sve ostale ICMP
+poruke (tip 3, kod 1, 3, 9, 10 i 13) označe protokol kao <literal moreinfo="none">filtriran</literal> (iako je to
+istovremeno dokaz da je ICMP protokol <literal moreinfo="none">otvoren</literal>). Ukoliko ne dođe nikakav odgovor
+nakon ponovnih pokušaja slanja, protokol je označen kao <literal moreinfo="none">otvoren|filtriran</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+
+
+ <varlistentry>
+ <term>
+ <option>-b <ftp relay host></option> (FTP bounce scan)</term>
+ <listitem>
+
+<para>Zanimljiva funkcionalnost FTP protokola (<ulink url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>)
+je podrška za tzv. proxy ftp konekcije. To omogućuje korisniku da se spoji na jedan FTP server, te nakon toga zatraži
+da fileovi budu poslani na neki drugi FTP server. Ta funkcionalnost je sazrijela za napade na mnogo nivoa, tako da je
+većina servera prestala pružati podršku za to. Jedan od napada koji je izvediv je taj da omogućava napadaču natjerati
+FTP server da skenira druge FTP servera u potrazi za otvorenim portovima. Jednostavno zatražite od FTP servera da poš
+alje datoteku na svaki od portova koji vas zanima na ciljanom računalu. Poruka o grešci koju ćete dobiti će vam raći
+da li je port otvoren ili nije. To je ujedno i dobar način obilaženja firewall-a (vatrozida), jer su mnogi FTP
+serveri smješteni tamo gdje imaju veći pristup unutrašnjim računalima, nego bilo koje računalo s interneta. Nmap
+podržava FTP bounce scan s opcijom <option>-b</option>. Prima parametar u sljedećem obliku:
+<replaceable>username</replaceable>:
+<replaceable>password</replaceable>@<replaceable>server</replaceable>:<replaceable>port</replaceable>.
+<replaceable>Server</replaceable> je naziv ili IP adresa ranjivog FTP servera. Kao i kod normalnog URL-a, možete
+zanemariti <replaceable>username</replaceable>:<replaceable>password</replaceable>, te ćete se u tom slučaju spojiti
+kao anonymous user i koriste se sljedeći parametri <literal moreinfo="none">anonymous</literal> password:<literal moreinfo="none">-wwwuser@</literal>. Broj porta i dvotočka ispred njega također mogu biti zanemarini, a u tom slučaju
+ćete se spojiti na standardni FTP port (21).</para>
+
+<para>1997., kad je Nmap lansiran, ova ranjivost je bila široko rasprostranjena, ali do sad je uglavnom "pokrpana" na većini računala. Ipak, još uvijek postoji ranjivi serveri, pa nije loše pokušati i ovu opciju kad sve oostale zataje. Ukoliko je obilaženje vatrozida vaš cilj, skenirajte ciljanu mrežu za otvorenim portom 21 (ili bilo koji ftp servis, ako skenirate sve portove s otkrivanjem verzije programa - version detection), te nakon toga pokušajte ftp bounce scan. Nmap će vam reći da li je host ranjiv ili nije. Ukoliko samo pokušavate sakriti tragove, ne biste trebali (u stvari ne biste smjeli) skenirati samo hostove na ciljanoj mreži. No, prije nego nasumično počnete skenirati za ranjivim ftp serverima na internetu, imajte na umu da većina sysadmina neće cijeniti što im "iskorištavate" servere na taj način</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-port-specification">
+ <title>Specifikacija portova i redosljed skeniranja</title>
+
+ <para>Uz sve do sad nabrojane metode skeniranja, Nmap nudi opcije pomoću kojih možete specificirati koje portove
+ želite skenirati, da li će skeniranje portova biti nasumično ili sekvencionalno. Defaultno Nmap skenira sve
+ portove od 0 do 1024 (uključujući i njih) kao i sve portove iznad 1024 koji su navedeni u
+ <filename moreinfo="none">nmap-services</filename> datoteci.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-p <port ranges></option> (Skeniraj samo navedene portove)
+ </term>
+ <listitem>
+
+ <para>Pomoću ove opcije možete odabrati koje portove ćete skenirati i na taj način obići defaultne
+ postavke. Možete unijeti pojedinačne brojeve i/ili niz brojeva odvojenih minusom (npr. 1-1023).Ukoliko ž
+ elite skenirati sve portove možete napisati samo parametar <option>-p-</option> i Nmap će skenirati sve
+ portove od 1-65535. Port 0 je moguće skenirati jedino ako ga navedete. Kad je u pitanju IP protokol scan
+ (<option>-sO</option>), opcija -p definira koji protokol želite skenirati (od 0-255).</para>
+
+ <para>Kad skenirate i TCP i UDP portove zajedno, možete navesti identifikator protokola na način da prije
+ brojeva portova stavite identifikator T: za TCP porove ili <literal moreinfo="none">U:</literal> za UDP
+ portove. Parametar vrijedi sve dok ne navedete neki drugi. Npr. možete napisati
+ <option>-p U:53,111,137,T:21-25,80,139,8080</option>. Na taj bi način skenirali UDP portove 53, 111 i 137,
+ kao i TCP portove 21-25, 80, 139 i 8080. Imajte na umu da morate navesti parametar <option>-sU</option> i
+ bar jedan TCP tip skeniranja (kao npr. <option>-sS</option>, <option>-sF</option> ili
+ <option>-sT</option>) kako bi mogli istovremeno skenirati i TCP i UDP portove. Ukoliko niste naveli
+ identifikator protokola, navedeni portovi će biti skenirani i po TCP i po UDP protokolu.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-F</option> (brzi scan (s ograničenim portovima))
+ </term>
+ <listitem>
+
+ <para>Ova opcija kaže Nmapu da skenira samo portove navedene u <filename moreinfo="none">nmap-services
+ </filename> datoteci, koja dolazi s Nmap-om. (ili protokol datoteke kad je u pitanju opcija <option>-sO
+ </option>) To je mnogo brže nego skeniranje svih 65535 portova. Kako navedeni popis ima preko 1200 TCP
+ portova, razlika u brzini između ove opcije i defaultnog TCP scana (koji ima oko 1650 portova) nije
+ dramatična. Razlika može biti osjetno velika ako koristite svoju <filename moreinfo="none">nmap-services
+ </filename> datoteku koristeći opciju <option>--datadir</option></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-r</option> (Ne miješaj portove)
+ </term>
+ <listitem>
+ <para>Defaultno, Nmap nasumično odabire potove koje skenira (osim nekih standardnih portova koji su
+ stavljeni na početak zbog efikasnosti). To "miješanje" portova je u normalnim situacijama poželjno, ali
+ pomoću ove opcije možete skenirati portove baš onim redosljedom kojim ste ih naveli.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-version-detection">
+ <title>Prepoznavanje servisa i njihovih verzija</title>
+
+ <para>Skenirajte neko računalo pomoću Nmap-a i mogao bi vam reći da su portovi 25/tcp, 80/tcp i 53/tcp otvoreni.
+ Koristeći <filename moreinfo="none">nmap-services</filename> bazu podataka u kojoj se nalazi preko 2200 poznatih
+ servisa, Nmap će vam reći da su na navedenim portzovima najvjerovatnije mail server (SMTP), web server (HTTP) i
+ name server (DNS). To je u većini slučajeva ispravno, većina servera koji slušaju na portu 25 su uistinu mail
+ serveri, ali nemojte biti 100% sigurni u to, jer postoje ljudi koji pokreću servise na "čudnim" portovima.</para>
+
+ <para>
+ Ako je Nmap ipak u pravu i server o kojem je riječ ima pokrenut SMTP, HTTP i DNS server, to ipak nije pretjerano
+ mnogo informacija. Ukoiko radite pregled ranjivosti (vulnerability assessment) ili samo jednostavan inventar mrež
+ nih servisa na računalima u firmi, činjenica je da trebate mnogo više informacija od gore navedenih. Želite znati
+ koje verzije mail, HTTP i DNS servera su pokrenute na tom računalu. Kad imate "pri ruci" ispravnu verziju
+ serverske komponente nije teško ustanoviti koje ranjivosti dotični server ima. Otkrivanje verzije vam pomaže u
+ dobivanju tih informacija.
+</para>
+
+ <para>Nakon što ste otkrili koji TCP i/ili UDP portovi su otvoreni korištenjem neke od do sad opisanih tehnika,
+ otkrivanje verzije ispituje te portove ne bi li otkrilo što je u stvari na tim portovima, tj. koja aplikacija je
+ otvorila dotičpne portove. <filename moreinfo="none">nmap-service-probes</filename> baza podataka sadži upite za
+ ispitivanje raznih servisa i prepoznavanje na osnovu odgovora koje dobije. Nmap pokušava ustanoviti protokol na
+ kojem radi servis (npr. ftp, ssh, telnet, http), naziv aplikacije (npr. ISC Bind, Apache, httpd, Solaris telnetd)
+ , verziju, naziv hosta, tip uređaja (npr. printer, ruter), porodicu iz koje dolazi OS (npr. Windows, Linux) i
+ ponekad neke detalje poput toga da li je otvoren X server, verziju protokola koju koristi SSH ili KaZaA
+ korisničko ime. Naravno, većina servisa ne daje sve te informacije. Ukoliko je Nmap kompajliran s podrškom za
+ OpenSSL protokol, spojit će se na SSL servere kako bi ustanovio servise koji se nalaze iznad enkripcijskog sloja.
+ Ako su otkriveni RPC servisi, Nmap RCP istraživač (<option>-sR</option>) je automatski uključen kako bi otkrio
+ koji program se nalazi iz RPC-a i koja mu je verzija. Neki UDP portovi su označeni s <literal moreinfo="none">
+ otvoren|filtriran</literal>, ako UDP scan nije mogao odrediti da li je port otvoren ili filtriran. Otkrivanje
+ verzije će pokušati dobiti odgovor s tih portova (isto kao što to radi i kod otvorenih portova), te će
+ promijeniti njihovo stanje u otvoren ako uspije dobiti odgovor. TCP portovi koji su okarakterizirani kao <literal moreinfo="none">otvoreni|filtrirani</literal>, tretirani su na isti način. Imajte na umu da opcija
+ <option>-A</option> omogućije otkrivanje verzije uz ostale stvari koje podržava. Dokument koji objašnjava rad,
+ korištenje i mijenjanje ovog dijela programa je dostupan na linku:
+ <ulink url="https://nmap.org/vscan/"></ulink>.
+ </para>
+
+ <para>Kad Nmap dobije odgovr od servisa, a ne može ga usporediti s ni jednim zapisom u svojoj bazi podataka, ispisat će scepijalni "fingerprint" i URL linka na koji ga možete poslati ukoliko ste sigurni u to što se nalazi na tom portu. Molim vas da odvojite nekoliko minuta svog vremena kako bi poslali te informacije, jer će kasnije nekom drugom biti od velike koristi. Zahvaljujući upravo takvom načinu prikupljanaj informacija, Nmap ima preko 3000 zapisa koji odgovaraju (prepoznavaju) preko 350 protokola, poput smtp-a, ftp-a, http-a, itd..</para>
+
+ <para>Otkrivanje verzije se uključuje i njime se upravlja korištenjem sljedećih opcija:</para>
+
+
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ <option>-sV</option> (Otkrivanje verzije)</term>
+ <listitem>
+
+ <para>Uključuje otkrivanje verzije, kao što je opisano gore. Kao zamjenu, možete koristiti opciju
+ <option>-A</option> da bi istovremeno uključili OS detekciju i otkrivanje verzije servisa.
+</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--allports</option> (koristi sve portove u otkrivanju verzije servisa)
+ </term>
+ <listitem>
+ <para>Nmap-ovo otkrivanje verzije servisa preskače port 9100, jer neki printeri jednostavno isprintaju sve
+ što se pošalje na taj port, što rezultira s hrpom stranica na kojima su HTTP GET zahtjevi, binarni SSL
+ zahtjevi isl. Ukoliko ipak želite koristiti i takve portove, možete to napraviti na način da maknete
+ <literal moreinfo="none">Exclude</literal> naredbu u <filename moreinfo="none">nmap-service-probes
+ </filename> datoteci ili jednostavno uključite opciju <option>--allports</option>, koja će ignorirati
+ <literal moreinfo="none">Exclude</literal> naredbu u nmap-services-probes.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--version-intensity <intensity></option> (podesite intenzitet otkrivanja verzije servisa)
+ </term>
+ <listitem>
+
+ <para>Kad radite scan otkrivanja verzije (<option>-sV</option>), Nmap šalje seriju upita od kojih je svakom
+ dodijeljen broj od 1 do 9. Oni upiti koji imaju niže brojeve u efikasni kod većine često korištenih
+ servisa, dok su oni s višim brojevima rijetko korisni. Nivo nntenziteta skeniranja određuje koji upiti će
+ biti korišteni. Što je veći broj, to je veća vjerovatnost da će servis biti ispravno identificiran. No,
+ takvi skenovi traju duže. Intenzitet mora biti između 0 i 9. Preddefinirana vrijednost je 7. Ukoliko je
+ upit registriran u <filename moreinfo="none">nmap-service-probes</filename> <literal moreinfo="none">ports
+ </literal> naredbi, bit će isproban bez obzira na nivo intenziteta. To garantira da će DNS upiti uvijek
+ biti odrađeni na portu 53, SSL na portu 443 itd.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--version-light</option> (omogući "lagani" mod)
+ </term>
+ <listitem>
+ <para>To je jednostavniji način pozivanja opcije <option>--version-intensity 2</option>. Lagani mod ubrzava
+ skeniranje, ali je samim tim i manja vjerovatnost da će identificirati servis.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--version-all</option> (isprobaj sve upite)
+ </term>
+ <listitem>
+ <para>Zamjena za opciju <option>--version-intensity 9</option>. Isprobat će sve upite u bazi podataka
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--version-trace</option> (prati sve što se događa tijekom skena)
+ </term>
+ <listitem>
+ <para>Nmap ispiše opširne debug informacije o tome što trenutno radi opcija otkrivanja verzije servisa. To
+ je dio onoga što ćete dobiti opcijom <option>--packet-trace</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sR</option> (RPC scan)</term>
+ <listitem>
+ <para>Ova metoda radi u sprezi s različitim port scan metodama Nmap-a. Uzme sve TCP/UDP portove koji su
+ identificirani kao otvoreni i preplavi ih sa SunRPC NULL naredbama pokušavajući ustanoviti da li su RPC
+ portovi i ako jesu za koje programe rade. Stoga možete efikasno dobiti iste informacije kao i s naredbom
+ <command moreinfo="none">rpcinfo -p</command>, čak i kad je ciljani portmapper iza firewall-a (ili zaštićen
+ TCP omotačima). Mamci trenutno NE rade s RPC skenom. To je automatski uključeno kao dio skeniranja verzije
+ servisa (<option>-sV</option>). Budući da otkrivanje verzije servisa samo po sebi već ima uključenu ovu
+ opciju, <option>-sR</option> se rijetko koristi.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-os-detection">
+
+ <title>Otkrivanje OS-a</title>
+
+ <para>Jedna od najpoznatijih odlika Nmapa je otkrivanje OS-a na ciljanom računalu korištenjem TCP/IP stack
+ otiska (engl. fingerprint). Nmap šalje mnoštvo TCP i UDP paketa na udaljeno računalo i istražuje svaki bit
+ vraćenih paketa. Nakon što je učinio hrpu testova poput TCP ISN sampling, podrška i redosljed TCP opcija, IPID
+ sampling i provjeru veličine inicijalnog TCP prozora, Nmap uspoređuje rezultate s <filename moreinfo="none">
+ nmap-os-fingerprints</filename> bazom podataka s više od 1500 poznatih OS otisaka (engl fingerprint), te ispiše
+ detalje o OS-u ukoliko ga je uspio "pogoditi". Svaki otisak sadrži neformatirani tekstualni opis OS-a i
+ klasifikaciju u koju ulazi naziv izdavača (npr. Sun), OS (npr. Solaris), generacija OS-a (npr. 10) i tip uređaja
+ (općenite namjene, ruter, switch, igraća konzola isl.).</para>
+
+ <para>Ukoliko Nmap nije u stanju odrediti koji OS je pokrenut na ciljanom računalu, a uvjeti su dobri (npr.
+ postoji barem jedan otvoreni port na računalu), Nmap će vam ponuditi URL link preko kojeg možete poslati otisak
+ ukoliko ste sigurni u to koji OS se nalazi na tom računalu. Na taj način pomažete u nastojanjima da Nmap nauči
+ raspoznati što je moguće više sistema i samim tim postane precizniji u pogađanju.</para>
+
+ <para>Otkrivanje OS-a omogućava još neke dodatne testove koji koriste informacije prikupljene tijekom procesa
+ pogađanja. Jedan od tih dodatnih testova je i vrijeme od kad je upaljeno računalo (uptime), koji koristi TCP
+ timestamp opciju (RFC 1323) kako bi pogodio kad je računalo zadnji put resetirano.To je prikazano samo za ona
+ računala koja daju tu informaciju. Drugi test je predvidljivost TCP sekvenci. Taj test mjeri koliko je teško
+ uspostaviti lažiranu TCP vezu s udaljenim računalom. To je korisno ukoliko želite iskoristiti povjerenje bazirano
+ na ishodišnoj IP adresi (recimo kod rlogin-a, vatrozida, filtera itd.) ili u situacijama kada želite sakriti
+ svoje tragove. Ovaj način prikrivanja se danas rijetko koristi, no još uvijek postoji velika količina računala
+ koja su ranjiva. Stvarni broj "težine" je baziran na statističkom skupljanju podataka i varira. Obično je bolje
+ koristiti klasifikaciju poput <quote>popriličan izazov</quote> i <quote>toliko jednostavno da je smiješno</quote>
+ . Ovakakv način izvještavanja dobit ćete u normalnom ispisu kad uključite verbose opciju (<option>-v</option>).
+ Kad je verbose opcija uključena zajedno s <option>-O</option>, onda kao rezultat dobijete i izvještaj generiranja
+ IPID sekvence. Većina računala je u tzv. <quote>inkrementalnoj</quote> klasi, što znači da sa svakim poslanim
+ paketom uvećaju ID polje IP zaglavlja. To ih čini ranjivima na nekoliko naprednih načina sakupljanja informacija
+ i napade zavaravanja (engl. spoofing).</para>
+
+ <para>Dokument u kojem je opisano kako radi, kako se koristi i kako se može prilagoditi otkrivanje verzije,
+ dostupan je u podosta jezika na linku:
+ <ulink url="https://nmap.org/osdetect/"></ulink>.</para>
+
+ <para>Otkrivanje OS-a se uključuje i upravlja sa sljedećim opcijama</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-O</option> (Uključi otkrivanje OS-a)
+ </term>
+ <listitem>
+ <para>Ova opcije uključi otkrivanje OS-a kako je opisano u prethodnom odlomku. Isto tak omožete koristiti
+ opciju <option>-A</option> da istovremeno uključite otkrivanje OS-a i verzije</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--osscan-limit</option> (ograniči otkrivanje OS-a samo na ciljeve koji obećavaju)
+ </term>
+ <listitem>
+ <para>Otkrivanje OS-a je mnogo učinkovitije ako postoji bar jedan otvoren i zatvoren port. Ukoliko
+ uključite ovu opciju, Nmap neće niti pokušati raditi otkrivanje OS-a na hostovima koji nisu zadovoljili
+ ovaj kriterij. To vam može uštedjeti mnogo vremena, pogotovo kod skeniranja s opcijom <option>-P0</option>
+ kad koristite mnogo ciljanih računala. Ovu opciju možete koristiti samo su kombinaciji s opcijama
+ <option>-O</option> ili <option>-A</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--osscan-guess</option>; <option>--fuzzy</option> (probaj pogoditi OS na osnovu rezultata)
+ </term>
+ <listitem>
+ <para>Ukoliko Nmap nije našao idealan rezultat, ponekad ponudi najbliži rezultat koji bi mogao biti.
+ Ukoliko odaberete neku od ovih opcija, Nmap će <quote>pogađati agresivnije</quote>.</para>
+ </listitem>
+ </varlistentry>
+
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-performance">
+ <title>Vrijeme odaziva i performanse</title>
+ <para>Jedan od najviših prioriteta tijekom razvijanja Nmap-a su performase. Defaultni scan
+ (<command moreinfo="none">nmap<replaceable>hostname</replaceable></command>) nekog računala na lokalnoj mreži
+ traje petinu sekunde. To je manje od vremena koje vam je potrebno za treptaj oka, ali naravno kad skenirate 10
+ ili 100 tisuća hostova postane osjetno. Uz to, neki tipovi skenova, poput UDP skeniranja i otkrivanja verzijemogu
+ to vrijeme poprilično produžiti. Isto tako skeniranje mogu usporiti i neke konfiguracije vatrozida, pogptovo
+ limitiranje količine odgovora u jedinici vremena.Iako Nmap koristi paralalno izvršavanje skenova kako bi ih
+ dodatno ubrzao, sam korisnik ima potpunu kontrolu nad time. Napredni korisnici pažljivo kombiniraju Nmap naredbe
+ kako bi dobili samo informacije koje im trebaju poštivajući vremenske termine koje su si zadali.</para>
+
+ <para>Tehnike za ubrzavanje skeniranja sastoje se od toga da izbacite nepotrebne testove i naravno da nadogradite
+ Nmap na posljednju verziju (poboljšanja performansi se konstantno rade). Optimiziranje vremena odziva (engl.
+ Timing) takođem može utjecati na brzinu skeniranja. Opcije slijede:</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ <option>--min-hostgroup <numhosts></option>;
+ <option>--max-hostgroup
+ <numhosts></option> (Podešava veličinu grupe paralelnih skenova)</term>
+ <listitem>
+<para>Nmap ima mogućnost skeniranja više hostova paralelno. To radi na način da podijeli adresni prostor ciljanih
+računala u grupe i onda skenira grupu po grupu. U principu ispada da su veće grupe učinkovitije. Nedostatak je taj š
+to rezultati ne mogu biti prikazani dok cijela grupa nije odskenirana do kraja. Dakle, ako je Nmap krenuo skenirati
+grupu od 50 računala, korisnik nrćr vidjeti nikakve rezultate (osim onih koje ispisuje opcija -v) dok svih 50 hostova
+nije odskenirano.</para>
+
+<para>
+Defaultno Nmap radi kompromis. Počinje s grupom od 5 hostova, tako da se prvi rezultati brzo pojave na ekranu, a
+nakon toga poveća veličinu grupe na 1024. Točan broj ovisi o uključenim opcijama. Zbog povećane efikasnosti Nmap
+koristi veće grupe za UDP skenove, a manje za TCP skenove.
+</para>
+
+<para>Kad definirate maksimalnu veličinu grupe pomoću opcije <option>--max-hostgroup</option>, Nmap je neće nikad
+premašiti. Ukoliko pak specificirate minimalnu veličinu grupe s <option>--min-hostgroup</option>, Nmap će pokušati
+zadržati veličinu grupe iznad tog nivoa. Naravno, ukoliko broj hostova koji su ostali za skeniranje bude manji od
+minimalne grupa Nmap će normalno odraditi svoj posao. Obje opcije možete koristiti istovremeno kako bi veličinu grupe
+zadržali u željenim okvirima, ali to je rijetko potrebno.</para>
+
+<para>Primarna upotrenba ovih opcija je navođenje što veće minimalne veličine grupe kako bi skenovi brže odradili
+svoj posao. Najčeđći odabir je 256, kako bi skeniranje mreže išlo u odsječcima C klase. Za skenove u kojima se
+skenira mnogo portova, povećanje tog broja iznad 256 će rijetko pomoći. Ukoliko pak skenirate samo nekoliko portova,
+veličina grupe od 2048 ili više, može biti od pomoći.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--min-parallelism <numprobes></option>;
+ <option>--max-parallelism
+ <numprobes></option> (Podesi paralelizam)</term>
+ <listitem>
+
+<para>Ove opcije upravljaju brojem sondi (engl. probe) koje mogu biti poslane po grupi hostova. Koriste se za
+skeniranje portova i otkrivanje hostova. Defaultno Nmap svaki put izračuna idealni paralelizam vezano uz mrežne
+performanse, a mijenja ga tijekom skena, ovisno o ujetima. Ukoliko dolazi do odbačenih paketa, Nmap uspori tj. šalje
+manje sondi. Broj sondi polako raste ako mreža daje naznaku da može prihvatiti više od trenutnog broja. Ove opcije
+postavljaju minimalnu i maksimalnu granicu. Defaultno paralelizam može pasti na 1 ako je mreža nepouzdana ili narasti
+na nekoliko stotina, ako imamo idealne uvjete.</para>
+
+<para>Najčešći način upotrebe je da se podesi <option>--min-parallelism</option> na broj veći od 1 kako bi se ubrzalo
+skeniranje sporijih hostova i mreža. To je ujedno i riskantna opcija, jer ako podesite prevelik broj, utjecat ćete na
+točnost skena. Isto tako, ukolik opodesite ovu opciju, sprječavate Nmap da dinamički upravlja paralelizmom vezano uz
+stvarne uvjete na mreži. Broj 10 ima smisla, ali osobno podešavam tu vrijednost kad nemam ništa drugo na
+rapolaganju.</para>
+
+<para>Opcija <option>--max-parallelism</option> stavite na 1 ukoliko želite spriječiti Nmap da koristi paralelizam,
+tj. želite da šalje samo jednu po jednu sondu.To može biti korisno u kombinaciji s opcijom <option>--scan-delay
+</option> (objasnit ćemo je kasnije), mada ta opcija sama po sebi služi svrsi dovoljno dobro.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--min-rtt-timeout <time></option>,
+ <option>--max-rtt-timeout <time></option>,
+ <option>--initial-rtt-timeout
+ <time></option> (Podesi vrijeme trajanja sondi)</term>
+ <listitem>
+
+<para>Nmap pazi na vrijeme isteka da bi mogao ustanoviti koliko dugo će čekati na odgovor sonde prije nego odustane
+ili ponovno pokuša poslati istu sondu. To se izračunava na osnovu prethodnih sondi i vremenskog odaziva koji su
+imale. Ukoliko se mrežno kašnjenje pokaže značajnim i promjenjivim, vrijeme isteka može narasti i na nekoliko
+sekundi. Također počinje na konzervativnom (visokom) nivou i takvo će ostati u slučaju da Nmap skenira hostove koji
+ne odgovaraju.</para>
+
+<para>Ove opcije primaju vrijednost u milisekundama, ali vi možete navesti vrijeme u sekundama, minutama ili satima
+na način da stavite opciju <literal moreinfo="none">s</literal>, <literal moreinfo="none">m</literal> ili
+<literal moreinfo="none">h</literal>. Navođenje nižeg <option>--max-rtt-timeout</option> i
+<option>--initial-rtt-timeout</option> od defaultnog može osjetno skratiti vrijeme potrebno za skeniranje. To je
+posebno vidljivo kod (<option>-P0</option>) skenova i skenova prema jako filtriranim mrežama. Ipak, nemojte biti
+preagresivni, jer vam u tom slučaju skeniranje može i dulje potrajati, jer će Nmap ponovno slati sonde, a odgovr na
+prethodne je možda na putu nazad.</para>
+
+<para>Ukoliko su svi hostovi na lokalnoj mreži, 100ms je razumna vrijednost za <option>--max-rtt-timeout</option>
+_timeout. Ukoliko postoje ruteri između Nmapa i hostova, najprije pingajte hosta s ICMP ping alatom ili s naprednijim
+alatom poput Hping2 koji ima veće mogućnosti proći kroz vatrozid. Pogledajte koja je srednja vrijednost vremena
+portebnog da se paket vrati za 10-tak paketa. Tu vrijednost pomnožite s 2 za <option>--initial-rtt-timeout</option> i
+s 3 ili 4 za <option>--max-rtt-timeout</option>. Osobno ne postavljam maksimalni rtt ispod 100ms, bez obzira na
+vrijednosti koje dobijem pinganjem, niti stavljam više od 1000ms.</para>
+
+<para><option>--min-rtt-timeout</option> je rijetko korištena opcija koja može biti korisna kod jako nepouzdanih mrež
+a na kojima su čak i Nmap-ove defaultne postavke preagresivne. Kako Nmap spušta vrijeme isteka na minimum tek kad
+zaključi da je mreža pouzdana, ovo bi trebalo prijeviti kao bug na nmap-dev mailing listu.</para>
+
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>
+ <option>--max-retries <numtries></option> (Navedi maksimalni broj ponovnih slanja sondi)
+ </term>
+ <listitem>
+
+<para>Kad Nmap ne dobije odgovor na sondu koja skenira port, to može značiti da je port filtriran ili to da je sonda
+ili odgovor na nju izgubljen na mreži. Isto tako je moguće da ciljani host ima podešenu granicu na količinu paketa na
+koje odgovara, pa je samo privremeno blokiran odgovor. Kako bi bio siuguran o čemiu je riječ, Nmap ponovno šalje
+sonde na koje nije dobio odgovor. Ukoliko ustanovi da je mreža nepouzdana, može se dogoditi da pošalje sondu još
+mnogo puta prije nego odustane. Ovo je opcija koja daje točnije rezultate, ali isto tako i usporava postupak
+skeniranja. Kad je brzina skeniranja ključna, možete koristiti ovu opciju kako bi ograničili broj ponovnih slanja
+sondi. Čak možete navesti i <option>--max-retries 0</option> kako bi u potunosti spriječili ponovno slanje, makar je
+to rijetko preporučljivo.
+</para>
+
+<para>Defaultna postavka (bez <option>-T</option> predloška) je 10 ponovnih slanja. Ukoliko se mreža pokaže pouzdanom
+i ciljani hostovi ne ograničavaju skeniranje, Nmap će napraviti samo jedno ponovno slanje. Gledano iz tog kuta, na
+većinu ciljanih računala ne utječe ako stavite <option>--max-retries</option> na nizak broj poput 3. To je vrijednost
+koja može mnogostruko ubrzati skeniranje sporih hostova (onih koji ne dozvoljavaju mnogo port skenova s jedne IP
+adrese, nego ih jednostavno blokiraju). Istina je da obično izgubite neke informacija ako Nmap prerano odustane od
+hosta, ali i to je bolje nego ostaviti <option>--host-timeout</option> da istekne i izgibiti sve informacije o
+ciljanom hostu.
+</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--host-timeout <time></option> (odustani od skeniranja sporih hostova)
+ </term>
+ <listitem>
+
+<para>Skeniranje nekih hostova jednostavno traje <emphasis>jako</emphasis> dugo. To može biti zbog lošeg mrežnog
+hardvera ili softvera, ograničavanju količine paketa ili restriktivnih vatrozida. Nekoliko posto sporih hostova, mogu
+<quote>pojesti</quote> većinu vremena koje je potrebno za skeniranje. Ponekad je najbolje odustati od skeniranja
+takvih hostova kako bi stvar brže završila. To možete napraviti navođenjem parametra <option>--host-timeout</option>
+s brojem milisekundi koliko ste voljni čekati odgovor. Možete staviti i <literal moreinfo="none">s</literal>,
+<literal moreinfo="none">m</literal> ili <literal moreinfo="none">h</literal> kako bi naveli sekunde, minute i sate.
+Osobno obično stavim 30m kako bih se osigurao da Nmap ne troši više od <literal moreinfo="none">30m</literal> vremena
+po hostu. Imajte na umu da će Nmap za to vrijeme skenirati i ostale hostove, tako da to nije u potpunosti izgubljeno
+vrijeme. Host koji je dosegao vrijeme isteka je preskočen i z anjega nije ispisan nikakav rezultat poput port tabele,
+OS detekcije ili detekcije verzija.
+</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--scan-delay <time></option>;
+ <option>--max-scan-delay
+ <time></option> (podesi stanke između sondi)</term>
+ <listitem>
+
+<para>Ova opcija prisiljava Nmap da pričeka barem navedeno vrijeme u milisekundama prije nego pošalje iduću sondu
+prema tom hostu. Kao i kod većine drugih opcija koje imaju veze s vremenom, možete navesti <literal moreinfo="none">
+s</literal>, <literal moreinfo="none">m</literal> ili <literal moreinfo="none">h</literal> da bi definirali kašnjenje
+u sekundama, minutama ili satima. To je itekako korisno kod računala koja imaju upaljen "rate limiting". Solaris
+računala (između ostalih) će na UDP sken sonde odgovarati samo s jednom ICMP porukom po sekundi. Ako Nmap šalje UDP
+pakete češće od 1 sekunde, ti su paketa jednostavno uludo bačeni. Opcija <option>--scan-delay</option> od
+<literal moreinfo="none">1s</literal> će zadržati Nmap u sporom tempu. Nmap pokušava ustanoviti koji je "rate limit"
+podešen na jostu i prilagođava sken ovisno o tome, ali neće škoditi ako ga unaprijed definirate za hostove za koje
+ste sigurni da će se tako ponašati.
+</para>
+
+<para>Kad Nmap podesi sken shodno tome, dolazi do dramatičnog usporavanja. <option>--max-scan-delay</option> opcija
+definira najveće kašnjanje koje će Nmap dozvoliti. Ukoliko podesite ovu opciju na premalu vrijednost, doći će do
+uzaludnog (prečestog) slanja paketa i samim tim promašenih otvorenih portova ako ciljani host ima uključen <quote>
+rate limiting</quote>.
+</para>
+
+<para>Još jedno način korištenja opcije <option>--scan-delay</option> je da se izbjegnu intrusion detection i
+intrusion prevention (IDS/IPS) sustavi, koji su bazirani na zadanoj vrijednosti (engl. treshold).</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-T
+ <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane></option>
+ (Podesite predložak za vremenske postavke)
+ </term>
+ <listitem>
+
+<para>Iako su do sad navedene opcije snažne i efikasne, većini ljudi su nerazumljive i zbunjujuće. Uz to, odabrati
+prave vrijednosti ponekad može potrajati duže od skena koji želite optimizirati. Zbog toga Vam Nmap nudi
+jednostavniji pristup, korištenjem 6 preddefiniranih predložaka. Možete ih navesti korištenjem <option>-T</option>
+opcije s brojevima od 0-5 ili njihovim imenima.Nazivi predložaka su: paranoidno (engl. paranoid) (0), skriven (engl.
+sneaky) (1), pristojan (eng. polite) (2), normalan (engl. normal) (3), agresivan (engl. aggressive) (4) i lud (engl.
+insane) (5). Prva dva su za obilaženje IDS sustava. Predložak pristojan usporava skeniranje kako bi što je moguće
+manje opteretio mrežne resurse i računalo koje skenirate. Normalni mod je defaultna postavka i postavljanje opcije
+<option>-T3</option> zapravo ne uvodi nikakve promjene. Agresivni mod ubrzava skeniranje pod pretpostavkom da ste na
+poprilično brzoj i pouzdanoj mreži. Na kraju "ludi" mod pretpostavlja da ste na posebno brzoj mreži i da ste spremni
+žrtvovati točnost rezultata kako bi dobili na brzini.
+</para>
+
+<para>Navedeni predlošci omogućavaju korisnicima da navedu koliko agresivni žele biti, ostavljajući Nmap-u da odabere
+točne vrijednosti. Predlošci također rade neka manja podešavanja brzine za koja trenutno ne postoje drugi načini.
+Npr. <option>-T4</option> sprječava da dinamičko kašnjenje skeniranja prijeđe 10ms za TCP portove, dok
+<option>-T5</option> drži tu vrijednost na 5ms. Predlođke možete kombinirati s finijim kontrolama, sve dok je
+template naveden prvi inače će vrijednosti iz predloška nadjačati one koje ste naveli. Predlažem korisštenje opcije
+<option>-T4</option> kod skeniranja modernih i pouzdanih mreža. Ostavite tu opciju na početku komandne linije čak i
+kad koristite neke finije naredbe kako bi imali koristi od dodatnih optimizacija koje predložak donosi.</para>
+
+<para>Ukoliko ste na pristojnoj broadband ili eternet konekciji, predlažem korištenje opcije <option>-T4</option>.
+Neki ljudi vole <option>-T5</option>, mada je preagresoivan za moj ukus. Isto tako ljudi ponekad stave
+<option>-T2</option> misleći da je manja vjerovatnost da će tako srušiti host ili se inače smatraju pristojnima. No
+oni u stvari ne razumiju koliko je opcije <option>-T pristojno</option> u stvari spora. Ovaj način skeniranja može
+potrajati i do 10 puta duže nego defaultni.Padovi računala i problemi s bandwithom su rijetki s korištenjem defaultne
+opcije <option>-T3</option>, pa je normalno preporučam opreznim skenerima.Izbjegavanje otkrivanja verzije je u svakom
+slučaju efikasnije u pokušaju rješevanja tih problema nego igranje s vremenima odaziva.</para>
+
+<para>Iako su opcije <option>-T0</option> i <option>-T1</option> korisne u izbjegavanju otkrivanja od strane IDS
+sustava, skeniranje tisuću portova će trajati jaaaako dugo. Kod takcih skenova je možda bolje direktno navesti
+vremena odaziva nego se pouzdati u preddefinirane vrijednosti opcija <option>-T0</option> i <option>-T1</option>.
+</para>
+
+<para>Glavni efekt korištenja opcije <option>T0</option> je taj da su skenovi serijski (skenira se port po port) i
+nakon odskeniranog porta čeka 5 minuta prije nego će poslati iduću sondu.<option>T1</option> i
+<option>T2</option> su slični s tim da <option>T1</option> čeka 15 sekundi između sondi, dok <option>T2</option> čeka
+0.4 sekunde između sondi. <option>T3</option> je defaultna postavka koja uključuje paralilizam (skenirano je više
+portova istovremeno). Opcije <option>T3</option> je isto kao i <option>--max-rtt-timeout 1250
+--initial-rtt-timeout 500 --max-retries 6</option>, te podešava maksimalno TCP kašnjenje na 10ms. Opcija <option>T5
+</option> je isto kao i <option>--max-rtt-timeout 300 --min-rtt-timeout 50
+--initial-rtt-timeout 250 --max-retries 2 --host-timeout 900000</option> kao i postavljanje maksimalnog TCP sken kaš
+njenja na 5ms.</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-bypass-firewalls-ids">
+ <title>Izbjegavanje i zavaravanje vatrozida i IDS-a</title>
+
+<para>Mnogo pionira interneta zu zamislili globalnu otvorenu mrežu univerzalnog adresnog prostora u kojoj je
+dozvoljeno spajanje bilo koja dva čvora. To bi omogućilo hostovima da šalju i primaju informacije jedan od drugog.
+Ljudi bi mogli pristupiti svim svojim sustavima s posla i mijenjati postavke grijanja i hlađenja, pa čak i
+otključavati vrata gostima koji su uranili.Ta verzija univerzalne povezanosti je ugušena nedovoljnim adresnim
+prostorom i ponajviše iz sigurnosnih razloga. U ranim 90-tima, firme su počele uvoditi vatrozide s primarnom namjenom
+da smanje mogućnosti povezivanja koje su postojale. Ogromne mreže su ofgrađene od nefiltriranog interneta korištenjem
+aplikacijskih proxy-a, NAT uređajai paket filtera. Otvoreno kolanje informacija predalo je tron kontroliranim
+komunikacijskim kanalima i sadržajem koji je njima prolazio.</para>
+
+<para>Mrežne barijere poput vatrozida mogu otežati mapiranje mreže, a vremenom neće biti ništa lakše, jer ugušiti
+lagodno istraživanje mreže je primarni cilj većine uređaja. No ipak, Nmap nudi mnogo mogućnosti kako bi nam pomogao u
+razumijevanju tih kompleksnih mreža i kako bi provjerio da li filteri uistinu rade onako kako smo zamislili. Čak
+podržava mehanizme za obilaženje loše implementiranih mjera zaštite. Jedna od najboljeh metoda pomoću koje ćete
+razumjeti postavke svoje mrežne sigurnosti je pokušaj da je obiđete. Pokušajte se postaviti u mentalni sklop napadača
+i iskoristite tehnike iz ovog poglavlja protiv svojih mreža. Pokrenite FTP bounce sken, idle sken, napad
+fragmentacijom ili pokušajte tunelirati kroz svoj proxy server.</para>
+
+<para>Uz to što brane mrežnu aktivnost, firme sve više nadgledaju promet sa sustavima za otkrivanje upada (engl.
+intrusion detection system) IDS. Većina poznatijih IDS sustava dolaze s podešenim pravilima koja mogu prepoznati Nmap
+skenove, jer ponekad je sken u stvari prethodnik napada. Većina tih sustava je nedavno prerasla u sustave za zaštitu
+od upada (engl. intrusion <emphasis>prevention</emphasis> system) IPS koji aktivno blokiraju promet koji ocjene kao
+zloćudan. Na štetu mrežnih administratora i proizvođača IDS sustava, pouzdano ustanoviti što je zloćudno, a što nije
+samo analizom paketa je teško. Napadači koji imaju strpljenja i sposobnosti obično mogu uz pomoć nekin Nmap-ovih
+opcija proći nezapaženo od IDS sustava. U međuvremenu admnistratori se moraju boriti s velikom količinom lažnih
+uzbuna, gdje je normalna mrežna aktivnost pogrešno dijagnosticirana i možda čak blokirana od IPS sustava.</para>
+
+<para>Ponekad ljudi predlažu da Nmap ne bi trebao nuditi mogućnosti za obilaženjem vatrozida i provlašenja pored
+IDS-a. Tvrde da će te mogućnosti biti korištene od strane napadača isto kao i od strane administratora. Problem u
+ovoj logici je taj što će metode tako i tako biti dostupne napadačima koji će koristiti neki fdrugi alat ili sami
+doprogramirati funkcionalnost u Nmap, dok bi administratori imali puno teži posao u sprješavanju upada na svoje
+sustave. Postavljanje samo modernih, zakrpanih FTP servera je mnogo učinkovitija obrana od sprječavanja distribucije
+alata koji mogu napraviti FTP bounce napad.
+</para>
+
+<para>Ne postoji čarobni metak (ili Nmap opcija) za otkrivanje i potkopavanje vatrozida i IDS sustava. Za to je
+potrebna vještina i iskustvo. Tutorial je nešto što ne spada u ovaj dokument, koji samo navodi opcije i opisuje što
+one mogu.
+</para>
+
+<variablelist>
+ <varlistentry>
+ <term>
+ <option>-f</option> (fragmentiraj pakete);
+ <option>--mtu</option> (koristi navedeni MTU)
+ </term>
+
+ <listitem>
+ <para><option>-f</option> opcija prisiljava pokrenuti sken (uključujući i ping sken) da koristi male
+ fragmente IP paketa. Ideja se sastoji od toga da zaglavlje TCP paketa prelomi na više paketa kako bi paket
+ filterima, IDS-ovima i drugim dosadnjakovićima bilo teže otkriti što radite. Budite pažljivi s tim! Neki
+ programi imaju problema u radu s takvim malim paketima. Jedan stari sniffer imenom Sniffit, je automatski
+ pukao kad bi primio prvi fragment. Nakon što navedete ovu opciju jednom, Nmap podijeli pakete u 8 bytova
+ ili manje. Tako će 20 bytno TCP zaglavlje biti podijeljeno u 3 paketa, dva po 8 bytova i jedan od 4. Imajte
+ na umu da svaki od tih paketa koje smo prelomili dobiva novo zaglavlje, koje nema nikakve veze s
+ originalnim. Navedite <option>-f</option> još jednom i Nmap će koristiti 16 bytova po fragmentu (smanjujući
+ broj fragmenata). Isto tako možete definirati bilo koju željenu veličinu korištenjem --mtu opcije. Ukoliko
+ koristite <option>--mtu</option> opciju nemojte koristiti i <option>-f</option> opciju. Fragment mora biti
+ višekratnik broja 8. Iako fragmenti neće proći pored paet filtera i vatrozida koji skupljaju se fragmente
+ kako bi vidjeli što je u originalnom paketu, popout opcije CONFIG_IP_ALWAYS_DEFRAG u linux jezgri
+ operativnog sustava, činjenica je da si neke mreže ne mogu dozvoliti udar na performanse koji ta opcija
+ ima, pa je stoga na njima isključena. Drugi pak sustavi ne mogu imati upaljnu tu opciju, jer fragmenti mogu
+ doći u njihovu mrežu drugom rutom. Neki sustavi defragmentiraju izlazne pakete u samoj jezgri, poput linuxa
+ koji ima iptables s upaljenim modulom praćenja konekcije. Pokrenite sken dok je upaljen snifer poput
+ ethereal-a kako bi se osigurali da su odlazni paketi fragmentirani. Ukoliko vaš OS radi probleme (kao što
+ smo naveli malo prije kod linuxa i iptables-a), pokušajte slati sirove eternet frame-ove opcijom <option>
+ --send-eth</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-D <decoy1 [,decoy2][,ME],...></option>
+ (sakrij sken pomoću mamaca)
+ </term>
+ <listitem>
+ <para>Ovaj način skeniranja učini to da na hostu koji skenirate izgleda kao da ga skeniraju i sustavi koje
+ ste stavili u mamce. Tako će IDS navesti 5- port skenova s jedne IP adrese i tako za sve mamce koje ste
+ naveli i za vas. Samim tim neće znati tko je stvarno skenirao mrežu, a tko je bio nevina žrtva (mamac). Ovo
+ može biti eliminirano traženjem ruterskog puta (engl. router path tracing), odbacivanja odgovora (engl.
+ response-dropping) i nekim drugim aktivnim mehanizmima, ali je ipak efikasna tehnika za sakrivanj IP
+ adrese.</para>
+
+ <para>Odvojite svaki host mamac sa zarezimaa možete opcionalno navesti i
+ <literal moreinfo="none">ME</literal> (što predstavlja vašu IP adresu), kako bi bila pozicionirana baš na
+ onom mjestu u skeniranju na kojem je želite. Ako postavite <literal moreinfo="none">ME</literal> na 6.
+ mjesto ili kasnije, neki uobičajeni detektori port skenova (poput alata "scanlogd" firme Solar Designer's)
+ uopće neće pokazati Vašu IP adresu. Ukoliko ne kkoristite <literal moreinfo="none">ME</literal> opciju,
+ Nmap će staviti vašu IP adresu na proizvoljno mjesto.</para>
+
+
+ <para>Imajte na umu da hostovi koje navodite kao mamce moraju biti upaljeni, jer ćete inače slučajno
+ napasti host koji skenirate Syn flood napadom. Isto tako poprilično je lako ustanoviti tko vas skenira ako
+ samo jedan host od navedenih uistinu postoji na mreži. Možete koristiti IP adrese umjesto imena (kako vas
+ mamci ne bi vidjeli u svojim name server logovima).</para>
+
+ <para>Mamci se koriste u inicijalnom ping skenu (korištenjem ICMP, SYN, ACK ili bilo kojeg drugog načina)
+ kao i za trajanja stvarnog skena portova. Mamci se također koriste i kod udaljenog otkrivanja operativnog
+ sustava (<option>-O</option>). Mamci NE rade s otkrivanjem verzije ili TCP connect() skena.</para>
+
+ <para>Činjenica je da će korištenje previše mamaca usporiti skeniranje i potencijalno ga učiniti manje
+ točnim. Isto tako, neki ISP-ovi će filtrirati lažirane pakete, ali većina ih ne zabranjuje.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-S <IP_Address></option> (Lažiraj ishodišnu adresu)
+ </term>
+ <listitem>
+ <para>U nekim situacijama Nmap neće moći ustanoviti vašu ishodišnu IP adresu (Nmap će vam reći ako dođe do
+ toga). U tom slučaju koristite opciju <option>-S</option> s IP adresom mrežnog adaptera preko kojeg želite
+ poslati paket.</para>
+
+ <para>Još jedna mogućnost korištenja ove opcije je lažirati sken kako bi ciljano računalo mislilo da ga
+ skenira <emphasis>netko drugi</emphasis>. Zamislite firmu koju konstantno skenira konkurencija!
+ <option>-e</option> opcija j eobično potrebna za ovu namjenu i <option>-P0</option> je također
+ preporučeno.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-e <interface></option> (koristi navedenu mrežnu karticu)
+ </term>
+ <listitem>
+ <para>Ova opcija kaže Nmap-u koju mrežnu karticu da koristi za slanje i primanje paketa. Nmap bi to trebao
+ otkriti automatski, a sam će vam reći ako to ne uspije.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--source-port <portnumber>;</option>
+ <option>-g <portnumber></option> (Lažiraj broj ishodišnog porta)
+ </term>
+ <listitem>
+
+<para>Iznenađujuće česta greška je samo vjerovanje prometu koji dolazi s određenog porta. Jednostavno je shvatiti
+odakle to dolazi. Administrator podesi novi novcati vatrozid i najednom je obasut pritužbama korisnika kako su im
+aplikacije prestale raditi. Čak štoviše, možda je prestao raditi i DNS, jer UDP DNS odgovori s vanjskih servera više
+ne mogu ući u mrežu. FTP je još jedan dobar primjer. Kod aktivnih FTP prijenosa, FTP pokuša uspostaviti vezu nazad
+prema klijentu da bi poslao zatraženu datoteku.</para>
+
+<para>Postoje sigurna rješenja tih problema, često u obliku proxy-a na aplikacijskom nivou ili modula na vatrozidu
+koji parsaju protokol. Nažalost postoje i lakša, manje sigurna rješenja. Vidjevši da DNS odgovori dolaze s porta 53 i
+aktivni FTP s porta 20, mnogi su administratori pali u zamku jednostavno dozvoljavajući ulazni promet s tih portova.
+Obično pretpostavljaju da napadači neće uočiti i iskoristiti takve rupe u vatrozidu. U nekim slučajevima
+administratori smatraju to rješenje kao privremenu zakrpu, dok ne implementiraju bolje rješenje, a onda zaborave na
+to.</para>
+
+<para>U te zamke ne padaju samo preopterećeni mrežni administratori. Mnogo uređaja je isporučeno s takvim nesigurnim
+pravilima. Čak je i Microsoft bio kriv. IPSec filter koji dolazi s Windows 2000 i s WIndows XP OS-om ima implicitno
+pravilo koje dozvoljava sav TCP i UDP promet s porta 88 (Kerberos). Još jedan dobro poznati primjer je ZOne Alarm
+osobni vatrozid, koji je do verzije 2.1.25 dozvoljavao bilo koje dolazne UDP pakete sa ishodišnog porta 53 (DNS) i 67
+(DHCP).</para>
+
+<para>Nmap nudi opcije <option>-g</option> i <option>--source-port</option> (iste su) kako bi iskoristili ovakve
+slabosti. Jednostavno navedite broj porta i Nmap će ga koristiti kao ishodišni port gdje je to moguće. Nmap mora
+koristiti različite portove kako bi neki testovi otkrivanja OS-a radili ispravno,a DNS zahtjevi ignoriraju opciju
+<option>--source-port</option>, jer se kod toga Nmap oslanja na sistemske biblioteke. Većina TCP skenova uključujući
+i SYN sken podržava ove opcije u potpunosti isto kao i UDP sken.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--data-length <number></option> (Dodaj proizvoljne podatke na pakete koje šalješ)
+ </term>
+ <listitem>
+ <para>U normalnim situacijama Nmap šalje minimalističke pakete koji se sastoje samo od zaglavlja. Tako da
+ su Nmap-ovi TCP paketu u načelu veličine 40 bytova, a ICMP paketi 28 bytova. Ova opcija kaže Nmap-u da doda
+ određenu količinu proizvoljnih bytova u paket koji šalje. Paketi koje koristi otkrivanje OS-a
+ (<option>-O</option>) nisu zahvaćeni ovom opcijom, dok većina ping skenova i portskenova je. To usporava
+ skeniranje, ali ga isto tako čini manje sumnjivim.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--ttl <value></option> (Podesi polje IP time-to-live)
+ </term>
+ <listitem>
+ <para>Podešava polje time-to-live i IPv4 paketima na zadanu vrijednost.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--randomize-hosts</option> (Proizvoljno poredaj hostove koje skeniraš)
+ </term>
+ <listitem>
+ <para>Ova opcija kaže Nmap-u da pomiješa svaku grupu od 8096 hostova prije nego ih počne skenirati. To može
+ učiniti skeniranje manje očitim za većinu sustava za nadgledanje mreže, pogotovo kad ovu opciju kombinirate
+ sa sporim vremenima kašnjenja (engl. timing options). Ukoliko želite pomiješati veće grupe, povećajte
+ PING_GROUP_SZ u <filename moreinfo="none">nmap.h</filename> biblioteci i ponovno kompajlirajte Nmap.
+ Alternativno rješenje je da kreirate listu ciljanih IP adresa s list skenom (<option>-sL -n -oN
+ <replaceable>naziv datoteke</replaceable></option>), pomiješate je s perl skriptom i onda dodate tu listu
+ Nmap-u s opcijom <option>-iL</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--spoof-mac <mac adresa, prefiks ili naziv proizvođača></option> (Lažiraj MAC adresu)
+ </term>
+ <listitem>
+
+ <para>Ova opcija zatraži Nmap da koristi navedenu MAC adresu za sve ethernet frame-ove koje pošalje. Ova
+ opcija podrazumijeva <option>--send-eth</option> opciju kako bi osigurala da Nmap uistinu šalje pakete na
+ nivou etherneta. MAC adresa može imati nekoliko formata. Ukoliko je string <quote>0</quote>, Nmap će sam
+ odabrtati proizvoljnu MAC adresu za trajanje sesije. Ukoliko je zadani string sačinjen od parnog broja hex
+ znamenaka (gdje su parovi opcionalno odvojenih dvotočkom), Nmap će korisiti tu MAC adresu. Ako je upisano
+ manje od 12 znamenaka, Nmap će ostatak nadopuniti s proizvoljnim vrijednostima. Ako nije navedena 0 niti
+ hex string, Nmap pregleda datoteku <filename moreinfo="none">nmap-mac-prefixes</filename> tražeći naziv
+ proivođača koji sadrži navedeni string (case sensitive). Ako se nešto poklopi, Nmap koristi OUI (3 bytni
+ prefix) proizvođača, a ostatak dopuni proizvoljno. Ispravni <option>--spoof-mac</option> argumenti su npr.
+ <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>, and <literal moreinfo="none">Cisco</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--badsum</option> (Šalji pakete s lažnim TCP/UDP checksumom)
+ </term>
+ <listitem>
+
+ <para>Ova opcija traži od Nmap-a da koristi neispravne TCP i UDP checksume za pakete koje šalje na ciljano
+ računalo. Kako skoro svaki IP stack odbacuje takve pakete, svaki odgovor koji dobijete najvjerovatnie
+ dolazi od vatrozida ili IDS sustava koji nisu provjeravali checksum. Za više detalja o ovoj tehnici,
+ pogledajte: <ulink url="https://nmap.org/p60-12.txt"></ulink>.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </refsect1>
+
+ <refsect1 id="man-output">
+ <title>Izvještaji</title>
+
+ <para>Svaki sigurnosni alat je koristan onoliko koliko dobar izvještaj ponudi. Kompleksni testovi i algoritmi su
+ od malo koristi ako njihov rezultat nije predstavljen na organiziran i razumljiv način. Obzirom na različite
+ načine korištenja Nmap-a od strane ljudi i drugih programa, jedan format ne može zadovoljiti sve, tako da Nmap
+ nudi više formata izvještaja, uključujući interaktivni mod koji direktno možete pročitati i XML kako bi ga
+ kasnije mogli pregledavati i analizirati drugi automatizirani alati.</para>
+
+<para>Uz to što nudi različite formate izvještaja, Nmap nudi opcije za upravljanje količinom prikazanih informacija,
+kao i poruke za debugiranje. Izvještaji mogu biti standardni (na ekran op prev.) ili spremljeni u datoteke, u koje
+Nmap može dodavati podatke ili ih prepisati. Datoteke u koje se spremaju rezultati taskođer mogu biti korištene za
+prekinute skenove koje ste nastavili.</para>
+
+<para>Nmap nam nudi izvještaje u 5 različitih formata. Defaultni se zove <literal moreinfo="none">interaktivni izvješ
+taj</literal> i poslan je na standardni izlaz (sdtout) (zaslon računala, op. prev.). Također postoji i
+<literal moreinfo="none">normalni izvještaj</literal> koji je sličan <literal moreinfo="none">interaktivnom</literal>
+s tim da prikazuje manje informacija i upozorenja, jer je predviđen za kasniju analizu, a ne trenutnu..</para>
+
+<para>XML izvještaj je jedan od najbitnijih, jer ga lako možete konvertirati u HTML, može lako biti pregledavan
+pomoću programa poput Nmap-ovog grafičkog korisničkog sučelja, te može biti importiran u bazu podataka.</para>
+
+<para>Dva preostala tipa izvještaja su jednostavni <literal moreinfo="none">grepabilni izvještaj</literal> koji
+uključuje većinu informacija o hostu u jednoj liniji i <literal moreinfo="none">sCRiPt KiDDi3 Izvj3št4j</literal> za
+korisnike koji se smatraju |<-r4d.</para>
+
+<para>Dok je interaktivni izvještaj defaultni i nema komandnolinijskih opcija, preostale 4 opcije koriste istu
+sintaksu. Mogu preuzeti jedan parametar, a to je naziv datoteke u koji će biti pohranjeni rezultati. Možete navesti
+više različitih formata, ali svaki od njih smijete navesesti samo jednom. Npr. želite gledati normalni izvještaj za
+sebe, dok istovremeno želite razultate pohraniti i u XML datoteku, za kasniju programsku analizu. To možete postići
+opcijama <option>-oX myscan.xml -oN myscan.nmap</option>. Iako su u ovom poglavlju korištena imena poput
+<literal moreinfo="none">myscan.xml</literal> zbog jasnoće, preporučeno je korištenje određenijih i jasnijih imena.
+Imena koja ćete odabrati ovise o vašim željama i navikama, mada osobno koristim dugačka imena u kojima se nalazi
+datum skeniranjai nekoliko riječi koje opisuju što je u stvari skenirano, a sve to pohranim u direktorij nazvan
+imenom tvrtke koju skeniram.</para>
+
+<para>Iako navedene opcije spremaju rezultat u datoteke, Nmap i dalje ispisuje interaktivni izvještaj na zaslon
+računala. Npr. naredba <command moreinfo="none">nmap -oX myscan.xml target</command> sprema rezultate skena u XML
+datoteku imenom <filename moreinfo="none">myscan.xml</filename> i također ispisuje na zaslon računala ono što bi
+ispisao da opcija <option>-oX</option> nije bila navedena. Ovo možete promijeniti dodajući znak "-" (minus op. prev.)
+kao parametar jednom od tipova izvještaja, što će prisiliti Nmap da deaktivira interaktivni izvještaj i umjesto njega
+na stdout pošalje format koji ste naveli. Tako će naredba <command moreinfo="none">nmap -oX - target</command>
+posalti samo XML na stdout. Ozbiljne greške će i dalje biti ispisane na normalni tok grešaka - stderr.</para>
+
+<para>Za razliku od nekih Nmap-ovih opcija, razmak između opcije za naziv log datoteke (poput <option>-oX</option>) i
+naziva datoteke ili znamka minus je obavezan. Ukoliko ga izostavite, npr. napišete
+<option>-oG-</option> ili <option>-oXscan.xml</option>, Nmap će napraviti datoteke <emphasis>normalnog formata
+</emphasis> imenom <filename moreinfo="none">G-</filename> i <filename moreinfo="none">Xscan.xml</filename>.</para>
+
+<para>Nmap također nudi i opcije za upravljanje količinom prikazanih informacija i opcije da doda podatke u postojeću
+datoteku , a ne da je prepiše. Sve navedene opcije opisane su u daljnjem tekstu:</para>
+
+<variablelist><title>Formati Nmap-ovih izvještaja</title>
+ <varlistentry>
+ <term>
+ <option>-oN <filespec></option> (Normalni izvještaj)</term>
+ <listitem>
+ <para>Zahtjeva da <literal moreinfo="none">normalni izvještaj</literal> bude spremljen u navedeno ime. Kao
+ što je opisano gore u tekstu, to se malo razlikuje od <literal moreinfo="none">interactivnog izvještaja
+ </literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-oX <filespec></option> (XML izvještaj)</term>
+ <listitem>
+
+ <para><literal moreinfo="none">XML izvještaj</literal> će biti pohranjen u navedenu datoteku. Nmap ima i
+ definiciju tipa dokumenta (engl Document Type Definition) kratica: DTD koja dozvoljava XML parserima da
+ provjere Nmap-ov XML izvještaj. Iako je primarno namijenjeno za programsko korištenje, može pomoći i
+ ljudima da interpretiraju Nmap-ov XML izvještaj. DTD definira ispravne elemente formata i često navodi
+ atribute i vrijednosti koje mogu poprimiti. Najsvježija verija je uvijek dostupna na:
+ <ulink url="https://nmap.org/data/nmap.dtd"></ulink>.</para>
+
+ <para>XML nudi stabilan format koji je lako čitljiv od strane programa. Besplatni XML parseri su dostupni
+ za većinu kompjutorskih jezika, uključujući C/C++, Perl, Python i Java-u. Čak postoje i poveznice za većinu
+ tih jezika koje omogućuju direktno interpretiranje Nmap-ovih izvještaja. Primjeri su:
+ <ulink url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink>
+ i <ulink url="http://www.nmapparser.com">Nmap::Parser</ulink> u Perlu i CPAN-u. U većini slučajeva kad neka
+ ozbiljnija aplikacija komunicira s Nmap-om, XML je željeni format.</para>
+
+ <para>XML izvještaj se poziva na XSL stilove, koji mogu biti korišteni za formatiranje rezultata u HTML.
+ Najjednostavniji način je da jednostavno učitate XML izvještaj u web preglednik poput firefox-a ili IE-a.
+ Defaultno će to raditi samo na računalu nakojem ste pokrenuli nmap (ili na računalu koje je slično
+ konfigurirano), jer je <filename moreinfo="none">nmap.xsl</filename> hardkodiran. Koristite opciju
+ <option>--webxml</option> ili
+ <option>--stylesheet</option> kako bi kreirali prenosive XML datoteke koje prikazuju podatke u HTML-u na
+ bilo kojem računalu spojenom na web.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-oS <filespec></option> (ScRipT KIdd|3 izvještaj)</term>
+ <listitem>
+ <para>Script kiddie izvještaj je poput interaktivnog s tim d je naknadno obrađen kako bi bolje odgovarao l33t
+ HaXXorZ koji je prije pazio na Nmap zbog njegovog konstantnog pisanja velikih slova i spelinga. Osobe koje ne
+ razumiju humor (prije nego me počnu napadati), trebale bi shvatiti da ova opcija tu da bi ismijavala script
+ kiddie-je, a ne da bi im <quote>pomagala</quote>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-oG <filespec></option> (Grepabilni izvještaj)</term>
+ <listitem>
+
+<para>Ovaj format zvještaja je obrađen zadnji jer nije previše popularan. XML je mnogo moćniji i odgovara većini
+iskusnih korisnika. XML je format za koji postoji hrpa izvrsnih parsera, dok je grepabilni izvještaj moj osobni mali
+hack. XML je proširiv i podržava nove stvari koje budu ugrađene u Nmap, dok je to često ispušteno u grepabilnom
+izvještaju, jer nema mjesta za njih.</para>
+
+<para>No ipak, grepabilni izvještaj je poprilično popularan. To je jednostavni format koji prikazuje svakog hosta na
+jednoj liniji i može ga se lako pretraživati standardnim UNIX alatima, poput grep-a, awk-a, cut-a, sed-a, diff-a i
+Perl-a. Čak ga i ja koristim za jednokratne testove iz komandne linije. Pronaći sve hostove koji imaju otvoren ssh
+port ili se na njima vrti Solaris je vrlo lako pomoću grep naredbe, a to pak može biti poslano awk ili cut naredbi da
+bi se prikazala željena polja.</para>
+
+<para>Grepabilni izvještaj sastoji se od komentara (linija koje počinju s pound znakom (#)) i ciljanih linija.
+Ciljana linija sadrži kombinaciju od 6 imenovanih polja, odvojenih tabovima i iza njih dolazi dvotočka. Polja su:
+<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">IPID</literal>, and <literal moreinfo="none">Status</literal>.</para>
+
+<para>Najvažnije od tih polja je obično <literal moreinfo="none">Ports</literal>, koje daje datalje o svakom
+zanimljivom portu. To je zarezom odvojena lista portova. Svaki zapis o portu predstavlja jedan zanimljivi port i ima
+oblik sedam podpolja odvojenih slash znakom (/). Podpolja su:
+<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>, and <literal moreinfo="none">Version info</literal>.</para>
+
+<para>
+Kao i kod XML formata, više informacija možete naći na sljedećem linku:
+<ulink url="http://www.unspecific.com/nmap-oG-output"></ulink>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-oA <basename></option> (Izvještaj u svim formatima)</term>
+ <listitem><para>Radi jednostavnosti, možete navesti opciju <option>-oA
+ <replaceable>basename</replaceable></option>, kako bi spremili rezultate u normalnom, XML i grepabilnom
+ formatu odjednom. spremljeni su u datoteke imanom <replaceable>basename</replaceable>.nmap, <replaceable>
+ basename</replaceable>.xml i <replaceable>basename</replaceable>.gnmap. Kao i kod većine programa možete
+ staviti prefiks ispred naziva datoteke kako bi je spremili u željeni direktorij, kao npr.
+ <filename moreinfo="none">~/nmaplogs/foocorp/</filename> na UNIX-u ili
+ <filename moreinfo="none">c:\hacking\sco</filename> na Windows platformi.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <variablelist><title>Opcije za prikaz količine informacija i debugiranje</title>
+ <varlistentry>
+ <term>
+ <option>-v</option> (povećaj količinu prikazanih informacija)
+ </term>
+ <listitem>
+ <para>Povećava nivo količine prikazanih informacija, te Nmap prikazuje više informacija o tekućem sken
+ procesu. Otvoreni portovi su prikazani odmah čim su otkrivani i Nmap prikazuje procjenu koliko vremena mu
+ treba za završetak posla ako procijeni da će sken trajati više od nekoliko minuta. Ukoliko želite još više
+ informacija, upišite ga dvaput. Korištenje -v opcije više od dva puta nema nikakav učinak.</para>
+
+ <para>Većina promjena koje se dobiju korištenjem ove opcije utječu na normalni i script kiddie izvještaj.
+ Ostali izvještaji su namijenjeni za automatiziranu obradu, pa Nmap u njima može navesti dodatne informacije
+ bez suvišnog opterećivanja korisnika. Ipak, postoji nekoliko promjena u ostalim modovima gdje veličinu
+ izvještaja možete osjetno smanjiti ne navodeći neke detalje. Npr. komentirana linija u gerepabilnom
+ formatu, koja daje listu svih skeniranih portova isprintana je samo u verose modu, jer može biti poprilično
+ velika.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-d [level]</option> (povećaj ili podesi nivo debugiranja)
+ </term>
+ <listitem>
+
+<para>Čak i kad verbose mod ne daje dovoljno informacija, debuging Vam stoji na raspolaganju, kako bi vas preplavio s
+još više podataka! Kao i kod opcje verbose (<option>-v</option>), uključujete ga s opcijom (<option>-d</option>), a
+sam nivo debugiranja možete povećati navođenjem opcije više puta. Čak možete navesti nivo debugiranja i navođenjem
+brojke nakon opcije (<option>-d</option>). Npr. (<option>-d9</option>) podešava nivo debugiranja 9. To je najviši
+mogući nivo i kao rezultat će dazi tisuće linija osim ako ste pokrenuli jako jednostavan sken s par ciljeva i
+portova.</para>
+
+<para>Debuging izvještaj je koristan kad sumnjate da u Nmap-u postoji greška ili ako ste jednostavno zbunjeni oko
+toga što Nmap radi i zašto. Kako je ova opcija najviše namjenjena developerima, debug linije nisu uvijek samoobjaš
+njavajuće. Možete dobiti nešto poput: Timeout vals: <computeroutput moreinfo="none">Timeout
+vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987
+rttvar: 14987 to: 100000</computeroutput>. Ukoliko ne razumijete liniju, jedini smjer kojim možete nastaviti je da je
+ignorirate, potražite u izvornom kodu programa ili zatražite pomoć na razvojnoj listi (nmap-dev). Neke linije su
+samoobjašnjavajuće, ali poruke postaju sve čudnije što je nivo debugiranja veći.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--packet-trace</option> (Prati pakete i podatke koji su poslani/primljeni)
+ </term>
+ <listitem>
+ <para>Nmap ispiše informaciju o svakom poslanom i primljenom paketu. Ovo se najčešće koristi za
+ debugiranje, ali je isto tako dobar način za nove korisnike da saznaju što Nmap radi ispod haube. Kako bi
+ izbjegli ispisivanje tisuća linija, odaberite ograničeni broj portova koje skenirate, npr.
+ <option>-p20-30</option>. Ako Vas pak zanima samo što radi podsustav otkrivanja verzije, radije koristite
+ opciju <option>--version-trace</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--iflist</option> (Izlista mrežne adaptere i rute)
+ </term>
+ <listitem>
+ <para>Ispiše popis mrežnih adaptera i ruta kako ih vidi Nmap. To je korisno u debugiranju problema s
+ rutanjem ili krivog prepoznavanja uređaja (kao kad recimo Nmap tretira PPP konekciju kao ethernet).</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <variablelist><title>Ostale opcije izvještaja</title>
+
+ <varlistentry>
+ <term>
+ <option>--append-output</option> (Dodaj rezultate u postojeći file umjesto da ih prepišeš)
+ </term>
+ <listitem>
+ <para>Kad navedete naziv datoteke nakon opcija poput <option>-oX</option> ili <option>-oN</option>,
+ datoteka istog imena je prepisan aako postoji. Ukoliko želite zadržati sadržaj postojeće datoteke i u
+ njega dodati nove rezultate, navedite <option>--append-output</option> opciju. Svie navedene datoteke u
+ tom pokretanju Nmap-a će biti sačuvane i u njoh će biti dodani novi podaci. To ne radi dobro s XML
+ datotekama (<option>-oX</option>), jer tako dobivena datoteka neće biti ispravna dok je ručno ne
+ prepravite.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--resume <filename></option> (Nastavi prekinut sken)
+ </term>
+ <listitem>
+
+ <para>Neka temeljita Nmap skeniranja mogu potrajati i danima. Takvi skenovi ne uspiju uvijek odraditi posao
+ do kraja. Zabrane mogu spriječiti Nmap da radi tijekom radnih sati, mreža može pasti, računalo na kojem je
+ pokrenut Nmap može biti resetirano (planski ili neplanski) ili se čak sam Nmap može srušiti. Čak i osoba
+ koja je pokrenula Nmap sken može biti ta koja će ga prekinuti korištenjem tipaka
+ <keycap moreinfo="none">ctrl-C</keycap>. Ponovno pokretanje cijelog skena nije isplativo. Na sreću, ukoliko
+ ste spremali normalne (<option>-oN</option>) ili grepabilne (<option>-oG</option>) logove, možete zatraž
+ iti Nmap da nastavi skeniranje tamo gdje je stalo. Jednostavno navedite opciju <option>--resume</option> i
+ proslijedite naziv datoteke normalnom ili grepabilnom načinu skeniranja. Nisu dozvoljeni nikakvi drugi
+ argumenti, jer će Nmap pretražiti postojeću datoteku i koristiti iste opcije koje je koristio i prije.
+ jednostavno pozovite Nmap:
+ <command moreinfo="none">nmap --resume<replaceable>logfilename</replaceable></command>. Nmap će dodati nove
+ rezultate u postojeću datoteku. Nastavljanje ne podržava XML izvještaje, jer bi spajanje dvije datoteke u
+ jednu ispravnu bilo prekomplicirano.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--stylesheet <putanja ili URL></option> (Podesi XSL stil za transformiranje XML izvještaja)
+
+ </term>
+ <listitem>
+ <para>Nmap dolazi s XSL stilom nazvanim <filename moreinfo="none">nmap.xsl</filename> koji je namijenjen za
+ gledanje ili prevođenje XML izvještaja u HTML. XML izvještaj sadrži <literal moreinfo="none">
+ xml-stylesheet</literal> naredbu koja pokazuje na <filename moreinfo="none">nmap.xml</filename> datoteku
+ gdje je inicijalno instalitrana od Nmap-a (ili u trenutni direktorij u kojem je pokrenut Nmap kad je u
+ pitanju Windows OS). Jednostavno otvorite Nmap-ov XML izvještaj u neki noviji web preglednik i on bi trebao
+ dohvatiti <filename moreinfo="none">nmap.xsl</filename> i iskoristiti ga za prikaz rezultata. Ukoliko ž
+ elite koristiti neki drugi stil, navedite ga kao argument opciji <option>--stylesheet</option>. Morate
+ navesti kompletnu putanju do njega ili URL. Npr. --stylesheet <option>--stylesheet
+ https://nmap.org/data/nmap.xsl</option>. Ova naredba kaže pregledniku da učita zadnju verziju
+ stila s isecure.org. Opcija <option>--webxml</option> čini isto to bez potrebe pretjeranog pisanja i
+ pamćenja linka. Učitavanje XSL stila sa stranica insecure.org omogućava gledanje rezultata na jednostavniji
+ način čak i računalima koja nemaju instaliran Nmap (a samim tim i
+ <filename moreinfo="none">nmap.xsl</filename>). Tako da je URL najčešće i korisniji, no, nmap.xsl-a koji se
+ nalazi na datotečnom sustavu koristi se ukoliko želite imati više privatnosti.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--webxml</option> (Učitaj stil sa stranice Insecure.Org)
+ </term>
+ <listitem>
+ <para>Ovo je jednostavno kratica za <option>--stylesheet https://nmap.org/data/nmap.xsl
+ </option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--no-stylesheet</option> (Izbaci deklaraciju stila iz XML-a)
+ </term>
+ <listitem>
+ <para>Ukoliko ne želite da Nmap poveže XSL stil s XML-om, odaberite ovu opciju. U tom slučaju se ne koristi
+ naredba <literal moreinfo="none">xml-stylesheet</literal></para>
+ </listitem>
+ </varlistentry>
+
+
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-misc-options">
+ <title>Razne opcije</title>
+ <para>Ovo poglavlje opisuje neke važne (i neke ne toliko važne) opcije koje jednostavno ne spadaju nigdje
+ drugdje.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-6</option> (Uključi skeniranje IPv6 protokola)
+ </term>
+ <listitem>
+
+ <para>Od 2002. godine, Nmap nudi i podršku za IPv6 svojih najpopularnijih svojstava. Točnije, ping scan (
+ samo TCP), connect() scan i otkrivanje verzije podržavaju IPv6. Sintaksa je jednaka osim što dodate opciju
+ <option>-6</option>. Naravno, morate koristiti IPv6 sintaksu IP adrese ako navedete IP Adresu,a ne naziv
+ hosta. Adresa može izgledati kao <literal moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>,
+ pa je stoga preporučeno korištenje host imena. Izvještaj izgleda isto osim što je na liniji <quote>
+ zanimljivih portova</quote> IPv6 IP adresa.</para>
+
+ <para>Iako IPv6 nije pregazila svijet ipak se poprilično koristi u nekim zemljama (osobito Azijskim), a i
+ većina modernih OS-ova ima ugrađenu podršku. Da bi mogli koristiti Nmap s IPv6 protokolom i ciljano
+ računalo i vaše računalo moraju biti podešeni za korištenje IPv6. Ukoliko vaš ISP (poput većine drugih) ne
+ dodjeljuje IPv6 IP adrese, postoje oni koji nude besplatno IPv6 tuneliranje, što poprilično dobro radi s
+ Nmap-om. Jedan od boljih davatelja takvih usluga je BT Exact.
+ Također sam koristio i usluge tvrtke Hurricane Electric
+ <ulink url="http://ipv6tb.he.net/"></ulink>. 6to4 tuneli su još jedan popularan besplatan pristup.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-A</option> (opcija agresivnog skeniranja)
+ </term>
+ <listitem>
+ <para>OVa opcija omogućuje dodatne napredne i agresivne opcije. Još uvijek nisam u potpunosti odlučio na š
+ to će se sve odnositi. Trenutno ova opcija omogućuje OS detekciju (<option>-O</option>) i skeniranje
+ verzije (<option>-sV</option>). U budućnosti mogu biti dodane nove mogućnosti. Poanta je u tome da se
+ ljudima omogući pristojan set scan opcija bez potrebe za pamćenjem velikog broja zastavica (engl. flag).
+ Ova opcija samo uključuje navedene stvari bez podešavanja vremena odaziva (engl. timing) (poput
+ <option>-T4</option>) ili verbose opcija (<option>-v</option>) kojU najvjerovatnije također želite
+ navesti.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--datadir <directoryname></option> (Navedi korisnički definiranu lokaciju Nmap-ovih datoteka)
+ </term>
+ <listitem>
+ <para>Nmap dohvaća neke podatke tijekom izvršavanja programa iz datoteka:
+ <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>, and
+ <filename moreinfo="none">nmap-os-fingerprints</filename>. Najprije ih traži u direktoriju navedenom u
+ <option>--datadir</option> opciji (ako postoji). Sve datoteke koje se ne nalaze u navedenom direktoriju
+ potražit će u direktoriju navedenom u NMAPDIR varijabli. Nakon toga je na redu
+ <filename moreinfo="none">~/.nmap</filename> za stvarne i efektivne UID-e (samo kod POSIX sustava) ili
+ lokacija Nmap izvršne datoteke (samo kod Win32 sustava), te na kraju u kompajliranoj lokaciji poput
+ <filename moreinfo="none">/usr/local/share/nmap</filename> ili
+ <filename moreinfo="none">/usr/share/nmap</filename>. Kao posljednju đansu, Nmap će potražiti u tekućem
+ direktoriju.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--send-eth</option> (koristi sirove (raw) pakete za slanje preko etherneta)
+ </term>
+ <listitem>
+ <para>Zatraži Nmap da šalje pakete na sirovom (raw) ethernet (data link) sloju umjesto na višem IP (mrež
+ nom) sloju. Defaultno, Nmap odabire koja je opcija bolja za platformu na kojoj je pokrenut. Sirove utičnice
+ (engl. raw sockets) (IP sloj) su obično najefikasnije na UNIX mašinama, dok su ethernet frame-ovi obavezni
+ na Windows OS-u (IP sloj), jer je Microsoft izbacio podršku za sirove utičnice. Nmap ipak koristi sirove IP
+ pakete na UNIX-u, bez obzira na ovu opciju, ako nema drugog izbora (recimo kad ste na mreži koja nije
+ ethernet).</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--send-ip</option> (Šalji na sirovom (raw) IP sloju)
+ </term>
+ <listitem>
+ <para>Zatraži Nmap da šalje pakete preko sirovih IP utičnica umjesto preko nižih ethernet okvira (
+ engl.frame). To je dodatak opciji <option>--send-eth</option> objašnjenoj malo prije.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--privileged</option> (Pretpostavka da je korisnik u potpunosti privilegiran (op. prev.
+ administrator sustava))
+ </term>
+ <listitem>
+ <para>Kaže Nmap-u da jednostavno pretpostavi kako je dovoljno privilegiran da može koristiti sirove
+ utičnice (engl. raw sockets), snifati pakete i slične radnje koje na UNIX sustavima zahtjevaju root prava.
+ Defaultno, Nmap prekida rad, ako su takve radnje zatražene od njega, ali getuid() nije nula (op. prev.
+ korisnik nema ta prava). <option>--privileged</option> opcija je korisna na onim sustavima koji omogućuju
+ neprivilegiranim korisnicima korištenje sirovih paketa (poput Linux kernela isl.). Obavezno navedite ovu
+ opciju prije bilo koje druge koja zahtijeva privilegije (poput SYN scan-a, OS detekcije isl.). Alternativa
+ ovoj opciji je NMAP_PRIVILEGED varijabla.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--noninteractive</option> (Za pokretanje Nmap-a iz nekog drugog programa)
+ </term>
+ <listitem>
+ <para>Ovu opciju možete navesti kad je Nmap pokrenut od strane neke druge aplikacije. Trenutno je jedina
+ razlika u tome što je Runtime interaction (opisano u poglavlju nazvanom
+ <xref linkend="man-runtime-interaction"></xref>) isključeno. Bez obzira na zbunjujuće slično ime, ova
+ opcija <emphasis>nije</emphasis> jednostavna suprotnost <option>--interactive</option> opciji.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-V</option>; <option>--version</option> (Ispiši broj verzije)
+ </term>
+ <listitem>
+ <para>Ispiše broj verzije Nmap-a i prekine izvršavanje programa</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-h</option>; <option>--help</option> (Ispiši sumarnu help stranicu)
+ </term>
+ <listitem>
+ <para>Ispiše kratki help ekran s najčešće korištenim mokandama i zastavicama. Pokretanje Nmap-a bez ijednog
+ argumenta napravi isto to.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-runtime-interaction">
+ <title>Interakcija za vrijeme izvršavanja</title>
+
+ <note><para>Ova opcija je za sad nedostupna na Windows OS-u</para></note>
+
+ <para>Tijekom izvršavanja Nmap-a sve tipke koje pritisnete su uhvaćene. To omogućvava interakciju s programom bez
+ da ga zaustavljate u radu. Određene specijalne tipke će mijenjati opcije, dok će druge ispisati statusne poruke
+ koje vas obavještavaju o tekućem skenu. Konvencija je takva da <emphasis>mala slova povećavaju</emphasis>
+ količinu ispisa, dok <emphasis>velika slova smanjuju</emphasis> količinu ispisa. Ova funkcionalnost može biti
+ isključena navođenjem <option>--noninteractive</option> opcije.</para>
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>v</option> / <option>V</option>
+ </term>
+ <listitem>
+ <para>Povećaj / smanji količinu prikazanih informacija</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>d</option> / <option>D</option>
+ </term>
+ <listitem>
+ <para>povećaj / smanji nivo debugiranja</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>p</option> / <option>P</option>
+ </term>
+ <listitem>
+ <para>Uključi / isključi praćenje paketa</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ Bilo što drugo
+ </term>
+ <listitem>
+ <para>Ispiše statusnu poruku poput sljedeće:</para>
+ <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan</para>
+ <para>Service scan Timing: About 28.00% done; ETC: 16:18 (0:00:15 remaining)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-examples">
+ <title>Primjeri</title>
+ <para>Ovdje su neki primjeri korištenja Nmap-a i to od jednostavnih i rutinskih do malo manje kompleksnih i
+ ezoteričnih. Korištene su neke stvarne IP adrese i domene kako bi stvar bila malo konkretnija. Umjesto njih
+ trebali bi staviti adrese/domene <emphasis>iz svoje mreže.</emphasis>. Iako osobno ne smatram da je skeniranje
+ tuđih mreža iligelano i da bi trebalo biti, neki mrežni administratori ne vole nedozvoljeno skeniranje njihovih
+ mreža i mogli bi se žaliti. Dobiti dozvolu prije samog čina je u svakom slučaju ispravan postupak.</para>
+
+ <para>Za testiranje imate dozvolu skenirati host <literal moreinfo="none">scanme.nmap.org</literal>. Dozvola
+ vrijedi samo za skeniranje korištenjem Nmap-a i ne vrijedi za testiranje exploita i DOS (denial of Service)
+ napada. Kako ne bi preopteretili mrežu, molim Vas da ne skenirate više od 12-tak portova dnevno. Ukoliko će ovaj
+ host biti napadan na bilo koji način, uklonit ću ga s NET-a i Nmap će javiti grešku
+ <computeroutput moreinfo="none">Failed to resolve given hostname/IP:
+ scanme.nmap.org</computeroutput>. Ova dozvola vrijedi i za hostove
+ <literal moreinfo="none">scanme2.nmap.org</literal>,
+ <literal moreinfo="none">scanme3.nmap.org</literal> itd., iako navedeni hostovi za sad ne postoje.</para>
+
+ <para>
+ <userinput moreinfo="none">nmap -v scanme.nmap.org</userinput>
+ </para>
+ <para>Ova naredba skenira sve rezervirane TCP portove na računalu
+ <literal moreinfo="none">scanme.nmap.org</literal>. Opcija <option>-v</option> uključuje verbose mod..</para>
+ <para>
+ <userinput moreinfo="none">nmap -sS -O scanme.nmap.org/24</userinput>
+ </para>
+ <para>Pokreće skriveni (engl. stealth) SYN scan prema svakom računalu koje je upaljeno od njih 255 mogućih na
+ mreži <quote>class C</quote> na kojoj se nalazi scanme host. Također pokuša ustanoviti koji OS je pokrenut na
+ svakom od otkrivnih (upaljenih) hostova. Ovo zahtijeva root prava zbog SYN scan-a i OS detekcije.</para>
+
+ <para>
+ <userinput moreinfo="none">nmap -sV -p 22,53,110,143,4564
+ 198.116.0-255.1-127</userinput>
+ </para>
+
+ <para>Pokreće enumeraciju hostova i TCP scan na prvoj polovici svakog od 255 mogućih 8 bitnih subneta u mrežnog
+ ID-a 192.168 klase B adresnog prostora. Scan provjerava da li je na ciljanim računalima pokrenut sshd, DNS,
+ pop3d, imapd i/ili port 4564. Za svaki od navedenih portova koji su otvoreni, pokrenuto je i otkrivanje verzije,
+ kak obi se ustanovilo koja aplikacija je otvorila taj port.</para>
+
+ <para>
+ <userinput moreinfo="none">nmap -v -iR 100000 -P0 -p 80</userinput>
+ </para>
+
+ <para>Ova naredba zatraži Nmap da nasumično odabere 100 000 hostova i skenira ih u potrazi za web serverom (port
+ 80). Enumeracija hostova je isključena opcijom <option>-P0</option>, jer slanje nekoliko sondi kako bi se
+ ustanovilo da li je host upaljen ili ne kad se skenira samo jedan port je ionako nepotrebno.</para>
+
+ <para>
+ <userinput moreinfo="none">nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG
+ logs/pb-port80scan.gnmap 216.163.128.20/20</userinput>
+ </para>
+ <para>Skenira 4096 IP adresa za web serverom (bez prethodnog pinganja) i sprema izvještaj u grepabilnom iXML
+ formatu.</para>
+
+ </refsect1>
+
+ <refsect1 id="man-bugs">
+ <title>Greške</title>
+
+ <para>Poput svog autora niti Nmap nije savršen, no Vi možete pomoći slanjem prijava o greškama, pa čak i pišući
+ patcheve. Ukoliko se Nmap ne ponaša onako kako očekujete od njega, najprije ga nadogradite na najnoviju verziju
+ dostupnu na
+ <ulink url="https://nmap.org/"></ulink>. Ukoliko je problem i dalje tu, istražite da li je već
+ otkriven i prijavljen. Pokušajte "zaguglati" poruku o grešci ili otiđite na Nmap-dev arhive na
+ <ulink url="https://seclists.org/"></ulink>. Također pročitajte i kompletan manual. Ukoliko ništa od toga ne
+ pomogne, pošaljite izvještaj o grešci na <email>dev@nmap.org</email>. Molim Vas napišite sve što ste do
+ tad otkrili o problemu, te koju verziju Nmap- imate i koju verziju OS-a imate. Izvještaji o prijavljenim
+ problemima i upiti o korištenju Nmap-a koji su poslani na dev@nmap.org imaju više šansi da budu
+ odgovoreni nego oni poslani direktno Fyodor-u.</para>
+
+ <para>Patchevi za otklanjanje bugova su još i bolji od samih prijava. Osnovne upute za kreiranje patch datoteka s
+ promjenama su dostupne na <ulink url="https://nmap.org/data/HACKING"></ulink>. Patchevi mogu biti
+ poslani na nmap-dev (što je preporučeno) ili direktno Fyodoru.</para>
+ </refsect1>
+
+ <refsect1 id="man-author">
+ <title>Author</title>
+ <para>Fyodor
+ <email>fyodor@nmap.org</email>
+ (<ulink url="http://www.insecure.org"></ulink>)
+ </para>
+
+ <para>Stotine ljudi su doprinjeli u stvaranju Nmap-a tijekom godina. To je navedeno u
+ <filename moreinfo="none">CHANGELOG</filename> datoteci koja je distribuirana s Nmap-om, a dostupna je i na
+ sljedećem linku: <ulink url="https://nmap.org/changelog.html"></ulink>.</para>
+
+ </refsect1>
+
+ <refsect1 id="man-legal">
+ <title>Pravne smjernice</title>
+
+<refsect2 id="nmap-copyright">
+ <title>Nmap Copyright i licenciranje</title>
+
+<para>Nmap sigurnosni skener je (C) 1996-2005 Insecure.Com LLC. Nmap je također reigistered trademark Insecure.Com
+LLC. Program je besplatan;možete ga redistribuirati a/ili modificirati pod uvjetima GNU General Public License kako
+je objavljeno od strane Free Software Fondacije;Verzija 2. To vam garantira pravo korištenja, modificiranja i
+redistribuiranja ovog softvera pod određenim uvjetima. Ukoliko želite inkorporirati Nmap tehnologiju u svoj softver,
+možda ćemo vam prodati dodatne licence (kontaktirajte <email>sales@insecure.com</email>). Mnogi proizvođači
+sigurnosnih skenera već imaju licencu Nmap tehnologije poput otkrivanja hostova, skeniranja portova, OS detekcije i
+otkrivanja servisa/verzije.</para>
+
+<para>Imajte na umu da GPL postavlja važna ograničenja na <quote>derivirana djela</quote>, ali ne daje detaljne
+definicije istih. Kako bi se izbjegli nesporazumi, za potrebe ove licence, mi smatramo da aplikacija sadrži <quote>
+derivirano djelo</quote>, ako čini bilo što od navedenog:</para>
+
+<itemizedlist>
+<listitem><para>Uključuje izvorni kod iz Nmap-a</para></listitem>
+<listitem><para>Čita ili sadrži Nmap datoteke koje imaju copyright, poput
+<filename moreinfo="none">nmap-os-fingerprints</filename> ili
+<filename moreinfo="none">nmap-service-probes</filename>.</para>
+</listitem>
+
+<listitem>
+<para>Pokreće Nmap i čita njegove rezultate (za razliku od tipičnih shell ili izvršnih meni aplikacija, koje
+jednostavno ispišu sirovi Nmap izvještaj i time nisu derivirana djela).</para></listitem>
+<listitem><para>Integrira/sadrži/agregira Nmap u neki izvršni instaler, poput onog napravljenog od strane
+InstallShield-a.</para></listitem>
+<listitem><para>Linka na biblioteku (dll, op. prev.) ili izvršu datoteku koja radi bilo što od gore navedenog.</para>
+</listitem>
+</itemizedlist>
+
+<para>Naziv <quote>Nmap</quote> je također uključen u to. Ova lista nije eksluzivna, ali je navedena kako bi
+pojasnila našu interpretaciju deriviranih djela s najčešćim primjerima. Zabrane se primjenjuju samo u slučaju da
+uistinu redistribuirate i Nmap. Npr. mišta vas ne sprječava da napišete i prodate front-end za Nmap. Distribuirajte
+front end i usmjerite ljude na <ulink url="https://nmap.org/"></ulink> kako bi preuzeli Nmap.</para>
+
+<para>Ne smatramo da su to dodatne zabrane povrh GPL-a, nego samo pojašnjenja toga kako mi interpretiramo <quote>
+derivirano djelo</quote> jer se primjenjuje na naš produkt pod GPL licencom. To je slično načinu na koji je Linus
+Torvalds objavio svoju interpretaciju <quote>deriviranog djela</quote> i kako se to odnosi na module linux kernela.
+Naša interpretacija se odnosi samo na Nmap - ne govorimo o nijednom drugom produktu licenciranom po GPL-u.</para>
+
+<para>Ukoliko imate bilo kakvo pitanje o GPL licenciranju i restrikcijama kod korištenja Nmap-a u ne GPL djelima,
+rado ćemo Vam pomoći. Kao što je gore navedeno, također nudimo i alternativne licence za integriranje Nmapa u neke
+druge aplikacije i uređaje. Takvi ugovori su prodani mnogim sigurnosnim izdavačima i generalno sadrže stalnu licencu
+kao i uslugu prioritetne podrške, a uz to financijski pomažu kontinuirani razvoj Nmap tehnologije. Molimo Vas da poš
+aljete mail na <email>sales@insecure.com</email> za daljne informacije.</para>
+
+<para>Kao posebno izuzeće od GPL uvjeta, Insecure.Com LLC daje dozvolu za povezivanje koda ovog programa s bilo kojom
+verzijom OpenSSL biblioteke koja je distribuirana pod sličnom licencom kao i s licencom koja se nalazi u datoteci
+Copying.OpenSSL i distribuirati povezanu kombinaciju oba programa. Morate poštivati GNU GPL na svim područjima za
+bilo koji kod koji nije OpenSSL. Ukoliko modificirate navedenu datoteku možete proširiti to izuzeće i na svoju
+verziju programa, ali niste obavezni to napraviti.</para>
+
+<para>Ukoliko dobijete navedene datoteke s pismenom licencom ili ugovorom koji navodi drukčije uvjete od navedenih gore, onda je ta alternativna licenca jača i preuzima primat.</para>
+</refsect2>
+
+<refsect2 id="man-copyright">
+ <title>Creative Commons licenca za ove upute</title>
+ <para>Nmap referentne upute su (C) 2005 Insecure.Com LLC. Time su stavljene pod verziju 2.5
+ <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative Commons
+ Attribution License</ulink>. To Vam omogućuje da redistribuirate, modificirate tekst po želji, dok god navodite
+ druge izvore koji su radili na njemu. Osim toga, možete tretirati ovaj dokument kao da spada pod istu licencu kao i
+ Nmap (obajšnjeno prije).</para>
+</refsect2>
+
+<refsect2 id="source-contrib">
+ <title>Dostupnost izvornog koda i doprinos zajednici (engl. comunity)</title>
+
+<para>Izvorni kod je dostupan s programom zato jer vjerujemo da korisnik ima pravo znati što uistinu program radi
+prije nego će ga pokrenuti. To Vam isto tako omogućava provjeru softvera na sigurnosne rupe (do sad nije pronađena
+niti jedna).</para>
+
+<para>Izvorni Vam kod isto tako omogućava prijenos Nmap-a na nove platforme, popravljanje grešaka i dodavanje novih
+mogućnosti. Potaknuti ste da promjene pošaljete na <email>fyodor@nmap.org</email> kako bi eventualno bile
+inkorporirane u buduće verzije glavne distribucije. Slanjem promjena Fyodoru ili nekom na Insecure.Org mailing listi
+developera, podrazumijeva se da Fyodoru i Insecure.Org-u dajete puna prava na korištenje, modificiranje i
+relicenciranje koda. Nmap će uvijek biti dostupan kao open source, ali to je bitno jer je nemogućnost relicenciranja
+koda stvorila ogromne probleme nekim drugim besplatnim softverskim projektima (poput KDE-a i NASM-a). Također
+povremeno relicenciramo kod drugim tvrtkama kako je navedeno gore. Ukoliko želite definirati posebne licenčne uvjete
+za svoj doprinos, navedite to odmah kad ih pošaljete.</para>
+</refsect2>
+
+<refsect2 id="no-warranty"><title>Nema garancije</title>
+
+<para>Program je distribuiran u nadi da će bit koristan, ali BEZ IKAKVE GARANCIJE; čak i bez pretopstavljene
+garancije na PRIHVATLJIVU KVALITETU ili SPOSOBNOST ZA ODREĐENE ZADAĆE. Pogledajte GNU General Public License za više
+detalja na <ulink url="http://www.gnu.org/copyleft/gpl.html"></ulink> ili u COPYING datoteci uključenoj s Nmap
+distribucijom.</para>
+
+<para>Treba uzeti u obzir da je Nmap povremeno srušio loše napisane aplikacije, TCP/IP stackove, pa čak i operativne
+sustave. Iako je to ekstremno rijetko, važno je za znati. <emphasis>Nmap nikad ne bi trebalo pokrenuti na kritičnim
+sustavima</emphasis> osim ako ste spremni prihvatiti da sustav neko vrijeme ne radi. Ovdje potvrđujemo da Nmap može
+srušiti vaš sustav ili mrežu i ograđujemo se od bilo kakve odgovornosti za bilo kakvu štetu ili problem prouzročen od
+Nmap-a.</para>
+</refsect2>
+
+<refsect2 id="inappropriate-usage"><title>Neispravno korištenje</title>
+<para>Zbog male mogućnosti pada sustava i zbog toga što neki crno šeširaši vole koristiti Nmap za prikupljanje
+informacija, postoje administratori koji se uznemire i mogu se žaliti kad primjete da im je mreža skenirana. Stoga je
+uvijek preporučeno zatražiti dozvolu prije nego započnete i lagani scan mreže.</para>
+
+<para>Nmap nikad ne bi trebao biti instaliran sa specijalnim privilegijama (npr. suid root) iz sigurnosnih razloga.</para>
+</refsect2>
+
+<refsect2 id="third-party-soft"><title>Softver drugih tvrtki</title>
+<para>Ovaj produkt sadrži softver razvijen od
+<ulink url="http://www.apache.org">Apache Software Fondacije</ulink>. Modificirana verzija
+<ulink url="http://www.tcpdump.org">Libpcap prijenosne paket capture biblioteke</ulink> je distribuirana zajedno s
+Nmap-om. Windows verzija Nmap-a koristi obradu libpcap-a -
+<ulink url="http://www.winpcap.org">WinPcap</ulink>. Podrška za regularne izraze je dana od
+<ulink url="http://www.pcre.org">PCRE biblioteke</ulink> koja je open source softver. Napisao ga je Philip Hazel.
+Neke funkcije sirovog netvorkinga koriste
+<ulink url="http://libdnet.sourceforge.net">Libdnet</ulink> mrežnu biblioteku koju je napisao Dug Song. Modificirana
+verzija je distribuirana s Nmap-om. Nmap se opcionalno može povezati s
+<ulink url="http://www.openssl.org">OpenSSL kriptografskim alatima</ulink> za podršku detekcije SSL verzije. Sav
+gore navedeni softver se slobodno redistribuira pod softverskom licencom po BSD-u.</para>
+</refsect2>
+
+<refsect2 id="us-export"><title>Klasifikacija kontrole izvoza u US-u.</title>
+<para>Klasifikacija kontrole izvoza u US-u: Insecure.Com LLC vjeruje da Nmap spada pod US ECCN (export control
+clasification number - klasifikacijski broj kontrole izvoza) 5D992. Ta se kategorija zove <quote>Softver
+informacijske sigurnosti koji nije kontroliran ECCN-om 5D002</quote>. Jedina zabrana te klasifikacije je AT (anti
+terorizam), koja se primjenjuje na gotovo svu robu i zabranjuje izvoz hrpi lažljivih zemalja, poput Iran-a i Sjeverne
+Koreje (op. prev. iliti onih s kojima Ameri nisu dobri). Tako da Nmap ne zahtijeva nikakvu posebnu licencu, dozvolu
+ili bilo kakvu drugu autorizaciju američke vlade.</para>
+</refsect2>
+
+ </refsect1>
+</refentry>
+
+</article>
diff --git a/docs/man-xlate/nmap-man-hu.xml b/docs/man-xlate/nmap-man-hu.xml new file mode 100644 index 0000000..3966a7d --- /dev/null +++ b/docs/man-xlate/nmap-man-hu.xml @@ -0,0 +1,3862 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- $Id: manhtml.xml 6184 2007-11-10 01:55:40Z fyodor $ --> +<article id="man" lang="hu"> +<artheader> + <title>Nmap Referencia Útmutató (Kézikönyv)</title> +</artheader> +<refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Nmap Referencia Útmutató</refmiscinfo> + </refmeta> + <refnamediv id="man-name"> + <refname>nmap</refname> + <refpurpose>Hálózat feltérképező és biztonsági/kapu letapogató eszköz</refpurpose> + </refnamediv> + <!-- body begins here --> + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis sepchar=" "> + <command moreinfo="none">nmap</command> + <arg choice="opt" rep="repeat"> + <replaceable>Letapogatási típus</replaceable> + </arg> + <arg choice="opt" rep="norepeat"> + <replaceable>Beállítások</replaceable> + </arg> + <arg choice="req" rep="norepeat"> + <replaceable>cél meghatározása</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1 id="man-description"> + <title>Leírás</title> + <web> + <note><para> + Ez a dokumentum leírja az Nmap változata X. A legfrissebb dokumentáció + elérhető angolul + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + <para>Az Nmap (<quote>Network Mapper</quote>) egy hálózatfelderítésre és biztonsági + ellenőrzésre használható, nyílt forráskódú eszköz. Nagy hálózatok gyors + feltérképezésére tervezték, ennek ellenére jól használható egyetlen számítógép + ellenőrzésére is. Az Nmap egy új módon használja a nyers IP csomagokat annak + kiderítésére, hogy mely számítógépek érhetők el a hálózaton, ezek a számítógépek + milyen szolgáltatásokat (alkalmazás neve és változata) kínálnak fel, milyen + operációs rendszert futtatnak (és annak melyik változatát), milyen csomagszűrőt/tűzfalat + használnak, valamint számtalan egyéb jellemzőre. Noha az Nmap programot általában + biztonsági ellenőrzésekre használják, sok hálózati rendszergazda hasznosnak + fogja találni a napi rutinfeladatokban is, mint például a hálózati leltár + elkészítésében, a szolgáltatások frissítésének ütemezésében, vagy egy + számítógép/szolgáltatás üzemidejének meghatározásában.</para> + + <para>Az Nmap kimenete egy lista a vizsgált célpontokról, mindegyikről + kiegészítő információkkal, melyek részletessége a beállított paraméterektől + függ. Ezek közül az információk közül a legfontosabb az <quote>érdekes kapuk + táblázata</quote>. Ez a táblázat tartalmazza a kapuszámot és a protokollt, + a szolgáltatás nevét és az állapotot. Az állapot lehet + <literal moreinfo="none">nyitott (open)</literal>, <literal moreinfo="none">szűrt (filtered)</literal>, + <literal moreinfo="none">zárt (closed)</literal>, vagy <literal moreinfo="none">nem szűrt (unfiltered)</literal>. + A nyitott (open) azt jelenti, hogy a célállomáson egy alkalmazás ezen + a kapun kapcsolódásra/csomagokra vár. A <literal moreinfo="none">szűrt (filtered)</literal> + azt jelenti, hogy egy tűzfal, szűrő vagy egyéb hálózati akadály lezárja a + kaput, így az Nmap nem tudja megmondani, hogy ez <literal moreinfo="none">nyitott (open)</literal> + vagy <literal moreinfo="none">zárt (closed)</literal>. + A <literal moreinfo="none">zárt (closed)</literal> kapukon nincs várakozó + alkalmazás, ennek ellenére ezek bármikor nyitva lehetnek. + A kapuk akkor kerülnek a <literal moreinfo="none">szűretlen (unfiltered)</literal> + kategóriába, ha válaszolnak ugyan az Nmap próbáira, de az Nmap nem tudja + meghatározni, hogy nyitottak (open) vagy zártak (closed). Az Nmap a + <literal moreinfo="none">nyitott|szűrt (open|filtered)</literal> és a + <literal moreinfo="none">zárt|szűrt (closed|filtered)</literal> kombinációt + használja, amikor nem tudja meghatározni, hogy a kapu melyik állapotban van. + A kaputáblázat tartalmazhatja a figyelő program nevét és változatszámát is, + amennyiben a paraméterek között kérte ennek felderítését. Amikor IP protokoll + ellenőrzést kér (<option>-sO</option>), az Nmap a kapuk listája helyett a + támogatott IP protokollokról közöl információt.</para> + + <para>Az érdekes kapuk táblázatának kiegészítéseként az Nmap további információkat + tud szolgáltatni a célállomásról, beleértve a fordított DNS neveket, + feltételezéseket az operációs rendszerről, az eszközök típusa és a MAC címek.</para> + + <para>Az <xref linkend="man-ex-repscan"></xref> feliratú ábrán egy tipikus Nmap + letapogatás látható. Ebben a példában csak a <option>-A</option> paramétert + használtuk az operációs rendszer és a szolgáltatások érzékelésére, a parancsfájl (script) + alapú ellenőrzésre és az útvonal feltárására; a <option>-T4</option> paramétert + a gyorsabb végrehajtásra; végül pedig a két célállomás nevét.</para> + +<example id="man-ex-repscan"><title>Egy jellegzetes Nmap letapogatás</title> +<screen format="linespecific"> +# nmap -A -T4 scanme.nmap.org playground + +Starting nmap ( https://nmap.org ) +Interesting ports on scanme.nmap.org (205.217.153.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2.0.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2.4.X|2.5.X|2.6.X +OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 +Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground.nmap.org (192.168.0.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios-ssn +389/tcp open ldap? +445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds +1002/tcp open windows-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H.323/Q.931 CompTek AquaGateKeeper +5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC port: 5900) +5900/tcp open vnc VNC (protocol 3.8) +MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds +</screen> +</example> + +<para>Az Nmap legújabb változata a <ulink url="https://nmap.org"></ulink> címről tölthető le. A legfrissebb kézikönyv +a <ulink url="https://nmap.org/man/"></ulink> címről tölthető le.</para> + + </refsect1> + + <refsect1 id="man-translation"> + <title>Megjegyzés a fordításhoz</title> + + <para>Az Nmap Referencia Útmutató jelen magyar változatát Mlatilik Zsolt készítette + a 6184-es <ulink url="https://nmap.org/book/man.html">eredeti angol változat</ulink> + alapján <email>drmac68@freemail.hu</email>. A fordítást annak reményében készítettem, + hogy megkönnyítse a magyar nyelvű felhasználók számára a program használatát. + Nem tudom garantálni, hogy ez a leírás olyan teljes vagy naprakész, mint az eredeti + angol változat. Ez a fordítás a <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative + Commons Attribution License</ulink> alapján szabadon módosítható és terjeszthető.</para></refsect1> + + <refsect1 id="man-briefoptions"> + <title>Paraméter összefoglaló</title> + +<para>Ez az összefoglaló akkor jelenik meg, amikor az Nmap programot +paraméterek nélkül indítjuk el. A legfrissebb változata a +<ulink url="https://nmap.org/data/nmap.usage.txt"></ulink> címen érhető el. +Ez a lista segít emlékezni a legáltalánosabb paraméterekre, de nem helyettesíti +az útmutatóban található részletes dokumentációt. Néhány rejtett paraméter szintén +nem található meg ebben a listában.</para> + +<para> +<?dbfo-need height="1in"?> +<literallayout format="linespecific" class="normal"> +Nmap 4.53 ( https://nmap.org ) +Használat: nmap [Letapogatási típus(ok)] [Paraméterek] {Célpont meghatározások} +CÉLPONT MEGHATÁROZÁSOK: + Átadhatók állomásnevek, IP címek, hálózatok, stb. + Pl.: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 + -iL <fájlnév>: A cél állomásnevek/hálózatok listája + -iR <állomások száma>: Véletlen célpontok kiválasztása + --exclude <állomás1[,állomás2][,állomás3],...>: Állomások/hálózatok kihagyása + --excludefile <fájlnév>: A kivételek listája +ÁLLOMÁS FELDERÍTÉSE: + -sL: Lista letapogatás - egyszerűen kilistázza a letapogatni kívánt célpontokat + -sP: Visszhang letapogatás - meghatározza, hogy egy állomás elérhető-e a hálózaton + -PN: Minden állomást elérhetőnek tekint -- átugorja az állomás felderítését + -PS/PA/PU [kapulista]: TCP SYN/ACK or UDP felderítés a megadott kapukon + -PE/PP/PM: Felderítési próbák ICMP visszhang, időbélyeg és alhálózati maszk kéréssel + -PO [protocol lista]: IP protokoll visszhang + -n/-R: Soha nem végez DNS feloldást/Mindig végez DNS feloldást [alapérték: esetenként] + --dns-servers <kiszolg1[,kiszolg2],...>: Saját DNS kiszolgáló megadása + --system-dns: Az operációs rendszer DNS felodóját használja +LETAPOGATÁSI TÍPUSOK: + -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon letapogatás + -sU: UDP letapogatás + -sN/sF/sX: TCP Null, FIN, and Xmas letapogatások + --scanflags <jelzőbitek>: A TCP jelzőbitek testreszabása + -sI <zombi állomás[:probakapu]>: Üresjárati letapogatás + -sO: IP protokoll letapogatás + -b <FTP átjátszó állomás>: FTP ugráló letapogatás + --traceroute: Útvonal követése minden állomáshoz + --reason: Megjeleníti az okot, amiért egy kapu egy adott állapotban van +KAPU MEGHATÁROZÁS ÉS LETAPOGATÁSI SORREND: + -p <kaputartomány(ok)>: Csak a megadott kapuk letapogatása + Pl.: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 + -F: Gyors mód - Az alapértelmezettnél kevesebb kapu letapogatása + -r: Kapuk letapogatása sorrendben - nem véletlenszerűen + --top-ports <szám>: Csak a <szám> darab leggyakoribb kapu letapogatása + --port-ratio <arány>: Az <arány>-nál gyakoribb kapuk letapogatása +SZOLGÁLTATÁS/VÁLTOZAT ÉRZÉKELÉS: + -sV: A nyitott kapuk próbája a szolgáltatás/változat információ meghatározására + --version-intensity <szint>: Beállítás 0 (enyhe) és 9 (az összes proba lefuttatása) között lehetséges + --version-light: Csak a legvalószínűbb próbák lefuttatása (2-es intenzitás) + --version-all: Minden egyes próba lefuttatása (9-es intenzitás) + --version-trace: A letapogatási műveletek részletes megjelenítése (hibakereséshez) +PARANCSFÁJL ALAPÚ LETAPOGATÁS: + -sC: megfelel a --script=safe paraméternek,tolakodó + --script=<Lua parancsfájlok>: A <Lua parancsfájlok paraméter> mappák, + parancsfájlok és parancsfájl kategóriák vesszővel elválasztott listája + --script-args=<n1=v1,[n2=v2,...]>: paraméterek átadása a parancsfájl(ok)nak + --script-trace: Az összes elküldött és fogadott adat megjelenítése + --script-updatedb: A parancsfájl adatbázis frissítése. +OPERÁCIÓS RENDSZER FELDERÍTÉSE: + -O: Engedélyezi az operációs rendszer felderítését + --osscan-limit: Az operációs rendszer felderítését csak az ígéretes célpontokra korlátozza + --osscan-guess: Agresszívebb operációs rendszer felderítés +IDŐZÍTÉS ÉS TELJESÍTMÉNY: + Azoknál a paramétereknél, ahol <idő> meghatározás szerepel, az alapértelmezett + egység a milliszekundum, kivéve ha az értékhez hozzáfűzi az 's' (másodperc), + 'm' (perc), vagy 'h' (óra) módosítót (pl. 30m). + -T[0-5]: Időzítési sablon megadása (a nagyobb érték a gyorsabb) + --min-hostgroup/max-hostgroup <méret>: A párhuzamosan letapogatható állomások csoportmérete + --min-parallelism/max-parallelism <szám>: A párhuzamosan végezhető próbák száma + --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Az egyes próbák + időzítésének beállítása. + --max-retries <próbák>: Limitálja a kapuletapogatások ismétlését. + --host-timeout <idő>: Ennyi idő után abbahagyja az állomás letapogatását + --scan-delay/--max-scan-delay <idő>: Az egyes próbák közti idő beállítása +TŰZFAL/BEHATOLÁS ÉRZÉKELŐ MEGKERÜLÉS ÉS BECSAPÁS: + -f; --mtu <érték>: csomagok tördelése (vagy küldés a megadott MTU értékkel) + -D <csali1,csali2[,ME],...>: A letapogatás leplezése csalikkal + -S <IP cím>: Forráscím hamisítása + -e <csatoló>: Megadott hálózati csatoló használata + -g/--source-port <kapuszám>: Megadott kapuszám használata + --data-length <szám>: Véletleszerű adat hozzáfűzése az elküldött csomagokhoz + --ip-options <paraméterek>: Csomagok küldése meghatározott IP paraméterekkel + --ttl <érték>: Az IP csomag time-to-live értékének beállítása + --spoof-mac <mac cím/előtag/gyártó neve>: A saját MAC cím hamisítása + --badsum: Csomagok küldése hamis TCP/UDP ellenőrző összeggel +KIMENET: + -oN/-oX/-oS/-oG <fájlnév>: A letapogatás eredményének mentése fájlba normál, + XML, s|<rIpt kIddi3, vagy grepelhető formátumban, a megadott fájlnévvel. + -oA <bázisnév>: Mentés fájlba a három főbb formátumban egyszerre + -v: Bőbeszédű üzemmód beállítása (kétszer használva még több információt ad) + -d[szint]: Hibakeresési szint beállítása vagy növelése (maximum 9-ig értelmes) + --open: Csak a nyitott (vagy valószínűleg nyitott) kapukat mutatja + --packet-trace: Az összes elküldött és fogadott csomagot megjeleníti + --iflist: Megjeleníti az állomás hálózati csatolóit és az útvonalakat (hibakereséshez) + --log-errors: Hibák/figyelmeztetések rögzítése normál formátumú kimenő fájlba + --append-output: Felülírás helyett hozzáfűzi az eredményeket a létező kimeneti fájlhoz + --resume <fájlnév>: Megszakított letapogatás folytatása + --stylesheet <útvonal/URL>: XSL stíluslap az XML kimenet HTML formátumúra alakításához + --webxml: Referencia stíluslap az Insecure.Org weboldalról a hordozhatóbb XML dokumentumokért + --no-stylesheet: Nem rendel XSL stíluslapot az XML kimenethez +VEGYES: + -6: Engedélyezi az IPv6 letapogatást + -A: Engedélyezi az operációs rendszer és a változat érzékelését, a parancsfájl alapú + letapogatást és az útvonalkövetést + --datadir <mappanév>: Saját Nmap adatfájl helyének megadása + --send-eth/--send-ip: Adatküldés nyers ethernet keretek vagy IP csomagok használatával + --privileged: Feltételezi, hogy a felhasználó teljes jogosultsági szinttel rendelkezik + --unprivileged: Feltételezi, hogy a felhasználónak nincs jogosultsága nyers socketek használatára + -V: Az Nmap változat kiírása + -h: Ennek a rövid összefoglalónak a megjelenítése. +PÉLDÁK: + nmap -v -A scanme.nmap.org + nmap -v -sP 192.168.0.0/16 10.0.0.0/8 + nmap -v -iR 10000 -PN -p 80 +NÉZD MEG A MAN OLDALAKAT A TOVÁBBI PARAMÉTEREKHEZ, LEÍRÁSOKHOZ ÉS PÉLDÁKHOZ + +</literallayout> + +</para> + + </refsect1> + + <refsect1 id="man-target-specification"> + <title>A célpont meghatározása</title> + +<para>Az Nmap parancssorban mindent, ami nem paraméter (vagy paraméter kiegészítés) +célpont meghatározásként értelmez. Célpont meghatározása legegyszerűbben +IP cím vagy állomásnév megadásával lehetséges.</para> + +<para>Néha szükség lehet szomszédos állomások teljes hálózatának letapogatására. +Ennek érdekében az Nmap támogatja a CIDR stílusú címzést. Hozzáfűzheti a <indexterm significance="normal"><primary>CIDR addressing</primary></indexterm> +/<replaceable>numbits</replaceable> paramétert az IP címhez vagy az állomásnévhez +és az Nmap letapogat minden IP címet, mely a <replaceable>numbits</replaceable> +paraméter alapján a megadott IP címmel vagy állomással egy alhálózaton található. +Például a 192.168.10.0/24 címzéssel letapogatható a 192.168.10.0 (bináris: <literal moreinfo="none">11000000 10101000 +00001010 00000000</literal>) és a 192.168.10.255 (bináris: <literal moreinfo="none">11000000 10101000 +00001010 11111111</literal>) címek közötti 256 állomás. +A 192.168.10.40/24 címzést szintén ugyanezt az eredményt adja. Megadva a +scanme.nmap.org állomást az IP címe 205.217.153.62. Így a scanme.nmap.org/16 +címzéssel 65,536 IP cím tapogatható le a 205.217.0.0 és a 205.217.255.255 címek +között. A legkisebb megadható érték a /1, mellyel az Internet fele tapogatható le. +A legnagyobb megadható érték a 32, mellyel a megadott állomás vagy IP cím tapogatható +le, mivel itt a címbitek rögzítettek.</para> + +<para>A CIDR jelölés rövid, de nem eléggé rugalmas minden esetben. Például szeretné +letapogatni a 192.168.0.0/16 címtartományt, de szeretné kihagyni a 0-ra és 255-re +végződő IP címeket, mivel ezek általában üzenetszórási címek. Az Nmap ezt az +úgynevezett oktett tartomány címzésen keresztül biztosítja. Ahelyett, hogy hagyományos +IP címeket adna meg, megadhat vesszővel elválasztott számsorozatot vagy tartományt +minden egyes oktettben. Például a 192.168.0-255.1-254 címzéssel átugorhat minden +olyan IP címet, melynek utolsó oktettje 0-ra vagy 255-re végződik. A tartományok +nem korlátozódnak kizárólag az utolsó oktettre: a 0-255.0-255.13.37 címzéssel a +teljes Internet címtérből letapogathatja azokat az állomásokat, melyeknek IP címük +13.37 -re végződik. Az ilyen nagy terjedelmű mintavétel hasznos lehet Internetes +kutatásoknál és felméréseknél.</para> + +<para>Az IPv6 címek kizárólag teljes alakjukban vagy állomásnév alakban adhatóak +meg. CIDR címzés és oktett tartományok nem támogatottak az IPv6 címzésnél, mivel +ezek itt ritkán hasznosak.</para> + +<para>Az Nmap a parancssorban többféle célpont meghatározást elfogad és ezeknek +nem kell azonosaknak lenniük. Az <command moreinfo="none">nmap +scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255</command> parancs erre mutat egy példát.</para> + +<para>Bár a célpontok meghatározása általában a parancssorban történik, a következő paraméterek szintén használhatóak a célpontok megadására:</para> + + <variablelist> + <varlistentry> + <term> + <option>-iL <fájlnév></option> (Bemenet listából) + <indexterm significance="normal"><primary>-iL</primary></indexterm> + </term> + <listitem> + <para>A célpontok kiválasztása a <replaceable>fájlnév</replaceable> + által meghatározott fájlból. Nagyobb mennyiségű célpont megadása a + parancssorban eléggé kényelmetlen, de mindennapos feladat. Például az Ön + DHCP kiszolgálója nyilvántart 10,000 aktuális klienst, melyeket Ön mind + le akar tapogatni. Vagy például le akarja tapogatni a teljes IP tartományt, + <emphasis>kivéve</emphasis> a nyilvántartott címeket, hogy megtalálja + azokat az állomásokat, amelyek érvénytelen statikus IP címet használnak. + Egyszerűen generálja le a letapogatni kívánt állomások listáját és + adja át a fájlnevet a <option>-iL</option> paraméteren keresztül az Nmap + részére. A bejegyzések minden olyan formátumban szerepelhetnek, melyet az + Nmap a parancssorán keresztül is elfogad (IP cím, állomásnév, CIDR, IPv6 + vagy oktett tartomány). A bejegyzések elválasztására használhat a szóköz, + a tabulátor, vagy írhat minden bejegyzést új sorba. Ha fájlnévként az + elválasztójelet (<literal moreinfo="none">-</literal>) adja meg, akkor az Nmap + a célpontok adatait a standard bemenetről veszi át.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-iR <állomások száma></option> (Véletlen célpontok kiválasztása) + <indexterm significance="normal"><primary>-iR</primary></indexterm> + </term> + <listitem> + <para>A teljes Internetet felölelő megfigyeléseknél és más kutatásoknál + szükség lehet véletlenszerű célpontok kiválasztására. Az <replaceable>állomások száma</replaceable> + paraméterrel meghatározhatja, hogy az Nmap hány IP címet generáljon. + A nemkívánatos IP címek - privát, többesküldéses vagy ki nem osztott tartományok - + automatikusan kikerülnek a listából. Ha a <literal moreinfo="none">0</literal> + paramétert adja meg, akkor a címek generálása a végtelenségig folytatódik. + Vegye figyelembe, hogy néhány rendszergazdát zavarja, ha a hálózatát + felhatalmazás nélkül vizsgálja és panasszal élhet. Így ezt a paramétert + kizárólag saját felelősségére használja. Ha egy esős délutánon unatkozik, + próbálja ki ezt a parancsot: <command moreinfo="none">nmap -sS -PS80 -iR 0 -p80</command>. + Így véletlenszerűen keresgélhet eddig ismeretlen webkiszolgálók után.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--exclude + <állomás1[,állomás2][,állomás3],...></option> (Állomások/hálózatok kihagyása) + <indexterm significance="normal"><primary>--exclude</primary></indexterm> + </term> + <listitem> + <para>Azoknak a célpontoknak a vesszővel elválasztott listája, melyeket + ki akar hagyni a letapogatásból, még ha tagjai is a megadott hálózati + tartománynak. Az átadott lista a megszokott Nmap szintaxist követi, + tehát szerepelhet benne állomásnév, CIDR tartomány, oktett tartomány stb. + Ez akkor lehet hasznos, ha a letapogatni kívánt hálózat olyan kritikus + kiszolgálókat vagy rendszereket tartalmaz, melyek nem várt módon reagálnak + a kapuletapogatásra, illetve ha a letapogatni kívánt hálózat egy részét + más valaki üzemelteti.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--excludefile <fájlnév></option> (A kivételek listája) + <indexterm significance="normal"><primary>--excludefile</primary></indexterm> + </term> + <listitem> + <para>Ez ugyanazt a funkciót valósítja meg, mint az <option>--exclude</option> + paraméter, csak a kivételeket nem a parancssorban adja át, hanem a + <replaceable>fájlnév</replaceable> által meghatározott fájlban. A fájl + formátumára ugyanazok érvényesek, mint a célpontokat tartalmazó fájlra.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-host-discovery"> + <title>Állomás felderítése</title> + + <para>Bármilyen hálózati felderítési feladat legelső lépése, hogy a (sokszor) + hatalmas IP tartományt leszűkítsük egy olyan listára, mely csak az aktív vagy + érdekes állomásokat tartalmazza. Minden IP cím minden egyes kapujának letapogatása + lassú és általában szükségtelen is. Természetesen hogy mi tesz egy állomást + érdekessé, az nagymértékben függ a letapogatás céljától. Rendszergazdák + érdeklődhetnek csak egy bizonyos szolgáltatást futtató állomások után, míg egy + biztonsági ellenőrzésnél érdekes lehet minden berendezés, amelynek IP címe van. + Egy rendszergazdának elegendő lehet egy ICMP visszhang alapú letapogatás, + hogy felderítse a hálózatán lévő állomásokat, míg egy behatolási teszt során + próbák ezreinek különféle csoportjait is be kell vetni egy tűzfal korlátozásainak + megkerülésére.</para> + + <para>Mivel a felderítési igények teljesen különbözőek, ezért az Nmap a + használt technikák testreszabásához rengeteg lehetőséget kínál. Az állomás + felderítést sokan egyszerűen csak PING letapogatásnak hívják, pedig ez sokkal + több, mint egyszerű ICMP visszhang kérés küldése (erre kiválóan alkalmasa a + széles körben elterjedt <application moreinfo="none">ping</application> eszköz. + A felhasználók teljesen kihagyhatják a visszahang kérést a lista alapú + letapogatással (<option>-sL</option>), a visszhang tiltásával (<option>-PN</option>) + vagy a hálózathoz kötött, több kapura kiterjedő TCP SYN/ACK, UDP, és ICMP próbák + tetszőleges kombinációjával. Ezeknek a próbáknak a célja olyan válaszok kérése, + melyek megmutatják, hogy egy adott IP cím aktív-e (használja-e valamely állomás, + vagy hálózati eszköz). A legtöbb hálózaton egy megadott időben az IP címeknek + csak egy kis része aktív. Ez különösen igaz az RFC1918 által meghatározott + privát címekre, mint például a 10.0.0.0/8 hálózat. Ebbe a hálózatba 16 millió + IP cím tartozik, mégis a legtöbbször olyan vállalatok használják, melyeknek + nincs 1000-nél több gépük. Az állomás felderítéssel ezek az elszórt gépek + megtalálhatók az IP címek tengerében.</para> + + <para>Ha nincs megadva állomás felderítési paraméter, az Nmap + minden egyes célpont felé elküld egy TCP ACK csomagot a 80-as + kapura, valamint elküld egy ICMP visszhang kérést is. Kivételt + képez, ha egy helyi ethernet hálózaton végez ARP letapogatást. + Ha nem rendszergazdaként futtatja a programoz, akkor az ACK + helyett egy SYN csomag kerül elküldésre a + <function moreinfo="none">connect()</function> rendszerhíváson + keresztül. Ezek az alapértékek ugyanazok, mintha a + <option>-PA -PE</option> paramétereket használta volna. A helyi + hálózatokon ezek az állomásfelderítési próbák általában elegendőek, + azonban egy biztonsági ellenőrzés során javasolt egy sokkal + átfogóbb felderítést végezni.</para> + + <para>A <option>-P*</option> paraméterek (melyekkel a visszhang típusok + adhatók meg) kombinálhatóak. Egy szigorú tűzfalon való átjutás esélyét + növelheti, ha többféle próbát indít el különböző TCP kapukra, különféle + jelzőbeállításokkal és ICMP kódokkal. Figyeljen arra, hogy a helyi ethernet + hálózaton lévő célpontok esetén akkor is végrehajtódik egy ARP felderítés + (<option>-PR</option>), ha megad más <option>-P*</option> paramétert, mivel + ez szinte minden esetben gyorsabb és sokkal hatékonyabb.</para> + + <para>Alaphelyzeben az Nmap elvégez egy állomás felderítést és ezután kezdi + el az élő állomásoikon a kapuk letapogatását. Ez akkor is igaz, ha egy nem + alapértelmezett állomás felderítési módot határozott meg, mint például az + UDP próbák (<option>-PU</option>). Olvassa el a <option>-sP</option> paraméter + leírását, ha további információkra kiváncsi arról, hogyan hajthat végre + <emphasis>csak</emphasis> állomás felderítést. Használja a <option>-PN</option> + paramétert, ha ki akarja hagyni az állomás felderítési lépést és egyből a + célpontok kapuletapogatására akar lépni. A következő paraméterekkel + vezérelheti az állomások felderítését:</para> + + <variablelist> + + <varlistentry> + <term> + <option>-sL</option> (Lista Letapogatás) + <indexterm significance="normal"><primary>-sL</primary></indexterm> + <indexterm significance="normal"><primary>Lista letapogatás</primary></indexterm> + </term> + <listitem> + <para>A lista letapogatás az állomás felderítés legprimitívebb módja. + Egyszerűen kilistázza a megadott hálózat(ok)on található állomásokat anélkül, + hogy bármilyen adatcsomagot küldene. Alaphelyzeben az Nmap még ekkor is + elvégez egy fordított DNS lekérdezést azért, hogy megkapja az állomások + neveit. Gyakran meglepően sok információval szolgálhat egy egyszerű + állomásnév is. Például az <literal moreinfo="none">fw.chi</literal> egy + vállalat Chicagoban lévő tűzfalának a neve. A lista végén az Nmap megadja az + IP címek számát is. A lista letapogatással könnyen ellenőrizhető, hogy + a célba vett állomásokhoz a megfeleő IP címek állnak-e rendelkezésre. + Ha az állomás esetleg ismeretlen tartománynevet ad vissza, érdemes + további ellenőrzést is elvégezni, nehogy véletlenül más hálózatot + tapogasson le.</para> + + <para>Mivel az alapötlet az, hogy egyszerűen nyomtassunk egy listát + a célpontokról, ezért a magasabb szintű funkciók, mint például a + kapuletapogatás, az operációs rendszer érzékelése vagy a visszhang + letapogatás nem kombinálható ezzel a funkcióval. Ha szeretné letiltani + a visszhang letapogatást mialatt magasabb szintű funkciókat használ, + olvassa el a <option>-PN</option> paraméter leírását.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sP</option> (Visszhang Letapogatás)</term> + <listitem> + <para>Ezzel a paraméterrel arra utasítja az Nmap programot, hogy + <emphasis>kizárólag</emphasis><indexterm significance="normal"><primary>-sP</primary></indexterm><indexterm significance="normal"><primary>visszhang letapogatás</primary></indexterm> + visszhang letapogatást (állomás felderítést) hajtson végre, majd nyomtasson + egy listát azokról az állomásokról, amelyek válaszoltak a letapogatásra. + Semmilyen további teszt (mint például kapuletapogatás, vagy operációs + rendszer felderítése) nem kerül végrehajtásra. Ez a lépés némileg tolakodóbb, + mint a lista letapogatás és gyakran ugyanolyan céllal használják. Ez + lehetőséget biztosít a célhálózat finom felderítésére anélkül, hogy + túlságosan felkeltené a figyelmet. Egy támadó számára sokkal hasznosabb + azt tudni, hogy hány élő állomás van a célhálózatban, mint a lista letapogatás + által visszaadott állomásneveknevek és IP címek halmaza.</para> + + <para>A rendszergazdák szintén hasznosnak fogják találni ezt a + paramétert. Egyszerűen felderíthető vele a hálózatban elérhető állomások + száma vagy ellenőrizhető egy kiszolgáló elérhetősége. Gyakran nevezik + ezt a funkciót visszhang pásztázásnak is és sokkal megbízhatóbb, mint + az üzenetszórási címre küldött viszhang kérés, mivel sok állomás nem + válaszol az üzenetszórási címre küldött kérésre.</para> + + <para>Az <option>-sP</option> paraméter alapesetben egy ICMP visszhang + kérést küld, valamint egy TCP csomagot a 80-as kapura. Ha a parancsot + nem rendszergazdaként adjuk ki, csak egy SYN csomag kerül elküldésre + (a <function moreinfo="none">connect()</function> rendszerhívásonkeresztül) + a célállomás 80-as kapujára. Ha rendszergazdaként a helyi hálózaton + próbál állomásokat letapogatni, akkor egy ARP kérés (<option>-PR</option>) + kerül elküldésres, hacsak nem adja meg a <option>--send-ip</option> + paramétert. A nagyobb rugalmasság érdekében az <option>-sP</option> + paraméter kombinálható bármelyik felderítési próbával (<option>-P*</option> + paraméterek, kivéve a <option>-PN</option> paramétert). Ha ezeket a + próbatípusokat használja, akkor az alapértelemzett próbák (ACK csomag + és visszhang kérés) kimaradnak. Ha az Nmap programot futtató gép és a + célállomás között szigorú szabályokkal működő tűzfal találhat, akkor + ezeknek a fejlett technikáknak az alkalmazása mindenképpen ajánlott. + Máskülönben kimaradhatnak állomások, ha a tűzfal eldobálja a próbákat, + vagy a célállomások válaszait.</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>-PN</option> (Nincs visszhang) + <indexterm significance="normal"><primary>-PN</primary></indexterm> + </term> + <listitem> + <para>Ezzel a paraméterrel az Nmap állomás felderítési lépése teljesen + elhagyható. Normál esetben az Nmap ezt a lépést használja az aktív + állomások meghatározására a további letapogatás előtt. Alapesetben az Nmap + az erőteljesebb próbákat (kapuk letapogatása, változat érzékelés, operációs + rebdszer érzékelése) csak azokon az állomásokon hajtja végre, amelyeket + aktívnak érzékelt. Ha a <option>-PN</option> paraméterrel letiltja a + felderítési funkciót, az Nmap <emphasis>valamennyi</emphasis> megadott + célpont IP címén végrehajtja a kért letapogatási műveleteket. Tehát ha + egy B osztályú címtartományt adott meg célpontként (/16), akkor mind a + 65,536 IP cím letapogatásra kerül. Csakúgy, mint a lista letapogatásnál, + a megfelelő állomás felderítési lépés kimarad, viszont a célpontok listájának + kinyomtatása és a kilépés helyett az Nmap folytatja a kért műveletek + végrehajtását és feltételezi, hogy valamennyi célpont aktív. A helyi + ethernet hálózaton lévő gépeken az ARP letapogatás ekkor is végrehajtásra + kerül (hacsak a <option>--send-ip</option> paramétert meg nem adja), + mivel a további letapogatásokhoz az Nmap-nek szüksége van a MAC címre. + Ennek a paraméternek a régi meghatározása a <option>P0</option> volt, + de átnevezésre került, hogy megakadályozható legyen a protokoll visszhang + <option>PO</option> paraméterével való keveredése.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PS [kapulista]</option> (TCP SYN visszhang) + <indexterm significance="normal"><primary>-PS</primary></indexterm> + <indexterm significance="normal"><primary>SYN visszhang</primary></indexterm> + </term> + <listitem> + + <para>Ez a paraméter egy beállított SYN zászlójú üres TCP csomagot küld + a célpont felé. Az alapértelmezett célkapu a 80-as (ez fordítási időben + megváltoztatható az <filename moreinfo="none">nmap.h</filename>) fájlban + a DEFAULT_TCP_PROBE_PORT_SPEC paraméterrel. Futásidőben is megadható más + célkapu paraméterként. A szintaxis ugyanaz, mint a <option>-p</option> + paraméternél, kivéve hogy a kaputípus megadása - mint például a <literal moreinfo="none">T:</literal> - + nem engedélyezett. Néhány példa: <option>-PS22</option> és + <option>-PS22-25,80,113,1050,35000</option>. Figyeljen arra, hogy a + <option>-PS</option> paraméter és a kapulista között nem lehet szóköz. + Ha több kaput is megadott, a próbák párhuzamosan kerülnek végrehajtásra.</para> + + <para>A beállított SYN zászló azt sugallja a célpontnak, hogy Ön kapcsolatot + kíván kezdeményezni. Normál helyzetben a célkapu zárva lesz és a célpont egy + RST (reset) csomagot küld vissza. Ha a kapu nyitva van, a célpont végrehajtja + a 3 lépéses kapcsolatfelépítés második lépését és egy SYN/ACK TCP csomagot + küld vissza. Ezután az Nmap-et futtató állomás egy RST csomag küldésével + lebontja az éppen felépülő kapcsolatot ahelyett, hogy egy ACK csomag + küldésével teljesen felépítené a kapcsolatot. Az RST csomagot nem az Nmap + küldi, hanem a programot futtató állomás rendszermagja, válaszul a + nem várt SYN/ACK csomagra.</para> + + <para>Az Nmap nem foglalkozik azzal, hogy a kapu nyitott vagy zárt. + Mind az RST mind a SYN/ACK válasz azt jelzi, hogy a célállomás elérhető + és válaszol.</para> + + <para>Unix rendszereken kizárólag a kiemelt <literal moreinfo="none">root</literal> + felhasználó képes nyers TCP csomagok küldésre és fogadására. Normál + felhasználók esetén egy kerülő megoldást alkalmazunk a connect() + rendszerhívás használatakor, minden egyes kapu esetén. Ennek során egy + kapcsolat felépítését kezdeményező SYN csomagot küldünk a célpont felé. + Ha a connect() sikeresen vagy az ECONNREFUSED hibával tér vissza, akkor + az alsóbb TCP verem vagy SYN/ACK vagy RST csomagot fogadott. Ilyenkor + a célállomás elérhetőnek lesz jelölve. Ha a kapcsolódási kísérlet az + időzítés lejártáig függőben marad, a célállomás elérhetetlenként lesz + jelölve. Ugyanez a kerülőút kerül alkalmazásra az IPv6 kapcsolatok esetén + is, mivel jelenleg az Nmap nem rendelkezik nyers IPv6 csomagok összeállításának + képességével.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PA [kapulista]</option> (TCP ACK Visszhang) + <indexterm significance="normal"><primary>-PA</primary></indexterm> + <indexterm significance="normal"><primary>ACK visszhang</primary></indexterm> + </term> + <listitem> + <para>A TCP ACK visszhang próba meglehetősen hasonlít az előzőekben tárgyalt + SYN visszhang próbához. A különbség annyi, hogy a SYN zászló helyett az + ACK zászló a beállított állapotú. Az ACK csomag jelzi, hogy a csomagot + küldő fél készen áll az adatok fogadására a felépített kapcsolaton keresztül. + Azonban jelen esetben nincs ilyen létező kapcsolat. A célállomások ilyenkor + szinte minden esetben egy RST csomagot küldenek, felfedvén ezzel a jelenlétüket. + </para> + + <para>A <option>-PA</option> paraméter a SYN próbához hasonlóan ugyanazt + az alapértelmezett kaput használja és ugyanolyan formátumban adható át + neki más célkapuk listája is. Ha nem kiemelt felhasználó próbálja használni + ezt a funkciót, vagy a célpont IPv6 formátumú, akkor az előzőekben már + tárgyalt kerülőút kerül alkalmazásra. Azonban jelen esetben ez nem + tökéletes, mivel a connect() valójában SYN csomagot küld, nem ACK csomagot.</para> + + <para>Azért található meg mind a SYN, mind az ACK próba, hogy a lehető + legjobban megnöveljük az esélyét a tűzfalak megkerülésének. A legtöbb + rendszergazda úgy állítja be az útválasztóit és más egyszerű tűzfalait, + hogy a nyilvános szolgáltatások felé tartó forgalom (pl. céges web- vagy + levelező kiszolgáló) kivételével minden bejövő SYN csomagot dobjon el. + Ez megakadályozza a bejövő forgalmat a céges hálózatba, viszont a felhasználók + részére zavartalan kimenő forgalmat biztosít az Internet felé. Ez a + nem-állapottartó megközelítés kevesebb erőforrást igényel a tűzfalakon/útválasztókon + és széles körben támogatott. A Linux Netfilter/iptables tűzfalprogramja + a <option>--syn</option> paraméteren keresztül valósítja meg ezt a nem-állapottartó + működést. Az ilyen állapot nélküli tűzfalszabályok a SYN visszhang próbákat + (<option>-PS</option>) nagy valószínűséggel elutasítják, ha azok zárt + kaput céloznak. Ilyenkor az ACK próba sikeresen vágja át magát ezeken a + szabályokon.</para> + + <para>Más általánosan használt tűzfalak állapottartó szabályok használatával + utasítják el a nem várt csomagokat. Kezdetben ez a jellemző csak a felső + kategóriás tűzfalakban volt megtalálható, de az utóbbi években egyre inkább + elterjed az alsóbb kategóriákban is. A Linux Netfilter/iptables rendszere + a <option>--state</option> paraméteren keresztül valósítja ezt meg, melyben + a csomagokat a kapcsolat állapota alapján kategorizálja. Az ilyen rendszerek + ellen a SYN próbák hatásosabbak, mivel a nem várt ACK csomagokat hamisnak + tekintik és eldobják. Ezt a zavart úgy lehet elhárítani, ha mind a + SYN, mind ACK próbát végrehajtjuk a <option>-PS</option> és <option>-PA</option> + paraméterek megadásával.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PU [kapulista]</option> (UDP Visszhang) + <indexterm significance="normal"><primary>-PU</primary></indexterm> + <indexterm significance="normal"><primary>UDP visszhang</primary></indexterm> + </term> + <listitem> + + <para>Egy újabb állomás felderítési módszer az UDP visszhang próba, + mely során egy üres (hacsak nem adja meg a <option>--data-length</option> + paramétert) UDP csomagot küldünk a megadott kapu felé. A kapulista formátuma + megegyezik az előző pontokban tárgyalt <option>-PS</option> és + <option>-PA</option> paraméterekével. Ha nem adunk meg kaput, akkor + alapértelmezettként a 31338-as kapu kerül használatra. Ez fordítási időben + megváltoztatható az <filename moreinfo="none">nmap.h</filename> állomány + DEFAULT_UDP_PROBE_PORT_SPEC paraméterén keresztül. Ennél a letapogatásnál + nem kifejezetten jó, ha egy nyitott kapuval próbálkozunk, ezért választunk + egy magas számú, nagy valószínűséggel nem használt kaput.</para> + + <para>Ha a célponton egy zárt kaput tapogatunk le az UDP próbával, a + célállomásból kicsalhatunk egy kapu nem elérhető (port unreachable) ICMP + válaszcsomagot. Ez jelzi az Nmap-nek, hogy a célpont él és elérhető. + Bármilyen más ICMP hibaüzenet (pl. állomás/hálózat nem elérhető, TTL + élettartam lejárt) azt jelzi, hogy a célállomás nem érhető el. A válasz + hiányát szintén így értelmezi a program. Ha nyitott kaput érünk el, a + legtöbb szolgáltatás figyelmen kívül hagyja az üres csomagot és nem küld + vissza semmilyen választ. Ezért használjuk alapértelmezésként a 31338-as + kaput, melyet nagy valószínűséggel nem használ semmi. Néhány szolgáltatás, + mint például a chargen válaszol az üres csomagokra is, mely így szintén + azt jelzi, hogy a célpont elérhető.</para> + + <para>A legfőbb előnye ennek a letapogatásnak, hogy megkerüli azokat a + szűrőket és útválasztókat, melyek kizárólag a TCP forgalmat figyelik. + Például a program készítőjének volt egy Linksys BEFW11S4 vezeték nélküli + útválasztója, mely a külső csatolóján az összes TCP kaput szűrte. Azonban + az UDP próbák ellen védtelen volt.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PE</option>; + <option>-PP</option>; + <option>-PM</option> (ICMP Visszhang Típusok) + <indexterm significance="normal"><primary>-PE</primary></indexterm> + <indexterm significance="normal"><primary>-PP</primary></indexterm> + <indexterm significance="normal"><primary>-PM</primary></indexterm> + <indexterm significance="normal"><primary>ICMP visszhang</primary></indexterm> + </term> + <listitem> + + <para>Az előzőekben tárgyalt szokatlan TCP és UDP állomás felderítési + típusok mellett az Nmap képes a széles körben elterjedt + <application moreinfo="none">ping</application> program által használt + csomagok küldésére is. Az Nmap egy 8-as típusú (visszhang kérés) ICMP + csomagot küld a cél IP címre és egy 0-ás típusú (visszhang válasz) csomagot + vár vissza az elérhető állomásoktól. A hálózati felderítők bánatára + a legtöbb állomás és tűzfal blokkolja ezeket a csomagokat ahelyett, hogy + az <ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC + 1122</ulink> leírás szerint válaszolna rájuk. Emiatt a kizárólag ICMP + alapú letapogatások ritkán adnak megbízható eredményt ismeretlen célpontok + felderítésekor. Azonban belső hálózatokat felügyelő rendszergazdák + számára praktikus és hasznos eszköz lehet. Használja a <option>-PE</option> + paramétert a visszhang kérés engedélyezésére.</para> + + <para>Noha a visszhang kérés a szabványos ICMP kérés, az Nmap ennél tovább + megy. Az ICMP szabvány (<ulink url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC + 792</ulink>) emellett meghatároz még időbélyeg kérést (13-as kód), + információ kérést (15-ös kód) és címmaszk kérést (17-es kód) is. Noha + látszólag ezek a kérések arra szolgálnak, hogy információkat szerezzünk + (például címmaszk vagy időbélyeg), de emellett könnyen használhatóak + állomások felderítésére is. Amelyik rendszer válaszol az élő és elérhető. + Az Nmap jelenleg nem támogatja az információ kérés csomagot, mivel ezt + nem támogatják széles körben. Az RFC 1122 ragaszkodik ahhoz, hogy + <quote>az állomásoknak nem kellene támogatniuk ezeket az üzeneteket</quote>. + Az időbélyeg és a címmaszk kérések a <option>-PP</option> és a <option>-PM</option> + paramétereken keresztül küldhetőek el. Az időbélyeg válasz (14-es ICMP kód) + vagy a címmaszk válasz (18-as kód) elárulja, hogy az állomás elérhető. + Ezek a kérések különösen akkor válnak értékessé, ha a rendszergazda + letiltotta a visszhang kéréseket, miközben elfelejtett, hogy más ICMP + kérések is használhatóak erre a célra.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PO [protokollista]</option> (IP Protokoll Visszhang) + <indexterm significance="normal"><primary>-PO</primary></indexterm> + <indexterm significance="normal"><primary>IP Protokoll visszhang</primary></indexterm> + </term> + <listitem> + + <para>Egy másik állomás federítési módszer az IPProto visszhang, amely + az IP fejléc protokoll mezőjében megadott típusú IP csomagokat küld el. + A protokoll lista ugyanolyan formátumú, mint az előzőekben tárgyal TCP + és UDP felderítési paramétereknél használ kapulista. Ha nincs megadva + protokoll, akkor alapértelmezettként ICMP (1-es protokoll), IGMP (2-es protokoll + és IP-in-IP (4-es protokoll) csomagok lesznek elküldve. Az alapértelmezett + protokollok fordítási időben adhatók meg az <filename moreinfo="none">nmap.h</filename> + állomány DEFAULT_PROTO_PROBE_PORT_SPEC változójában. Figyeljen arra, hogy + az ICMP, IGMP, TCP (6-os protokoll és UDP (17-es protokoll) protokollok + esetén a csomagok további fejlécekkel kerülnek elküldésre, míg más + protokolloknál az IP fejléc mögött más adat nem kerül elküldésre (kivéve, + ha a <option>--data-length</option> paramétert is megadta).</para> + + <para>Ez a felderítési metódus kétféle választ vár. Vagy az elküldött + protokollnak megfelelő válasz érkezik, vagy egy 'Protocol Unreachable' + ICMP üzenet, mely szerint az állomás nem támogatja az adott protokollt + (mellyel el is árulta a létezését).</para> + + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PR</option> (ARP Visszhang) + <indexterm significance="normal"><primary>-PR</primary></indexterm> + <indexterm significance="normal"><primary>ARP visszhang</primary></indexterm> + </term> + <listitem> + + <para>Az Nmap egyik leggyakoribb használata a helyi ethernet hálózat + letapogatása. A legtöbb helyi hálózaton, különösen melyek az áldott + RFC1918 alapú privát címtartományt használják, az IP címek legnagyobb + része általában nincs használatban. Amikor az Nmap nyers IP csomagot + próbál küldeni (például egy ICMP visszhang kérést), az operációs + rendszernek meg kell határoznia a célpont IP címe alapján a hardvercímet + (ARP) azért, hogy az ethernet keretet megfelelően tudja címezni. Ez + gyakran lassú és problémás, mivel az operációs rendszereket nem úgy + tervezik, hogy rövid ídő alatt több millió ARP kérést küldjenek el + elérhetetlen állomások felé.</para> + + <para>Az ARP letapogatásnál az ARP kéréseket az Nmap program kifinomult + algoritmusára bízzuk. Ha itt válasz érkezik, akkor már nem szükséges + az IP alapú visszhang kérésekkel foglalkozni, mivel a célpont elérhető. + Ezért az ARP letapogatás sokkal gyorsabb és megbízhatóbb, mint az IP + alapú letapogatások. Ezért ezt a letapogatást az Nmap alaphelyzetben + elvégzi, ha úgy érzékeli, hogy a célpont a helyi ethernet hálózaton + található. A helyi hálózaton az Nmap még akkor is az ARP letapogatást + fogja végrehajtani, ha más visszhang alapú letapogatást adtunk meg + (mint például a <option>-PE</option> vagy a <option>-PS</option>). Ha + egyáltalán nem kívánja használni az ARP letapogatást, adja meg a + <option>--send-ip</option> paramétert.</para> + + </listitem> + </varlistentry> + +<varlistentry> + <term> + <option>--traceroute</option> (Útvonal nyomkövetése az állomáshoz) + <indexterm significance="normal"><primary>--traceroute</primary></indexterm> + <indexterm significance="normal"><primary>Útvonal nyomkövetése az állomáshoz</primary></indexterm> + </term> + <listitem> + +<para> +Az útvonal nyomkövetése a letapogatás után történik meg, a letapogatás eredményének +figyelembe vételével. A nyomkövetéshez a célponton elérhető kapuk és protokollok +közül azok lesznek felhasználva, melyekkel a célpont nagy valószínűséggel elérhető. +A nyomkövetés a kapcsolódási letapogatás (connect (-sT)) és az üresjárati letapogatás +(idle (-sI)) kivételével minden letapogatási típussal működőképes. Minden +nyomkövetés az Nmap dinamikus időzítési modelljét használja és párhuzamosan kérül +végrehajtásra. +</para> + +<para> +A nyomkövetéskor a csomagokat alacsony élettartam (time-to-live (TTL)) értékkel +küldjük el, hogy az útvonalon lévő közbenső állomásokból az Időzítés letelt (Time +Exceeded) ICMP hibaüzenetet tudjunk kicsalni. Alapesetben a nyomkövetésnél TTL=1 +értékkel kezdünk és addig növeljük a TTL értékét, amíg el nem érjük a célállomást. +Az Nmap nyomkövetése magas TTL értékkel indít és egészen nuuláig csökken. A visszafelé +történő kereséssel és egy ügyes gyorstároló algoritmussal az Nmap felgyorsítja a +több állomáson keresztül végzett nyomkövetést. Átlagban az Nmap 5-10 csomaggal +kevesebbet küld el állomásonként, de ez nagyban függ a hálózat állapotától. Ha +csak egy alhálózat letapogatása történik (pl. 192.168.0.0/24), az Nmap a legtöbb +állomáshoz valószínűleg csak egy csomagot küld. +</para> +</listitem> +</varlistentry> + +<varlistentry> + <term> + <option>--reason</option> (Állomás- és kapuállapot oka) + <indexterm significance="normal"><primary>--reason</primary></indexterm> + <indexterm significance="normal"><primary>Állomás- és kapuállapot oka</primary></indexterm> + </term> + <listitem> + +<para> +Megjeleníti, hogy az egyes állomások és kapuk miért lettek a megadott állapotúnak +jelölve. Ez a paraméter megjeleníti annak a csomagnak a típusát, amely az állomás +vagy kapu állapotát meghatározta. Például egy <literal moreinfo="none">RST</literal> +csomag egy zárt kapuról vagy egy visszhang válasz egy működő állomásról. Az Nmap +által szolgáltatott információk a letapogatás vagy a visszhang típusától függenek. +A SYN letapogatás és a SYN visszhang (<option>-sS</option> és <option>-PT</option>) +eredményei például nagyon részletesek, míg a TCP kapcsolódási letapogatás és +visszhang (<option>-sT</option>) eredményei korlátozottak a <literal moreinfo="none">connect</literal> +rendszerhívás megvalósítása miatt. Ezt a jellemzőt a hibakeresési paraméter +(<option>-d</option>) automatikusan engedélyezi. Az eredmények egy XML fájlban +tárolódnak akkor is, ha ezt a paramétert nem adja meg. + +</para> +</listitem> +</varlistentry> + + <varlistentry> + <term> + <option>-n</option> (Nincs DNS feloldás) + <indexterm significance="normal"><primary>-n</primary></indexterm> + </term> + <listitem> + + <para>Utasítja az Nmap programot, hogy <emphasis>soha</emphasis> ne + végezzen fordított DNS feloldást az aktívnak talált IP címeken. Mivel a + DNS még az Nmap beépített párhuzamos DNS feloldójával is lassú lehet, + ennek a paraméternek a megadása felgyorsíthatja a letapogatást.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-R</option> (DNS feloldás minden célpontra) + <indexterm significance="normal"><primary>-R</primary></indexterm> + </term> + <listitem> + <para>Utasítja az Nmap programot, hogy <emphasis>mindig</emphasis> végezzen + fordított DNS feloldást a célpontok IP címeire. Normál helyzetben csak + az elérhető (online) állomásokon történik fordított DNS feloldás.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--system-dns</option> (Használja a rendszer DNS feloldóját) + <indexterm significance="normal"><primary>--system-dns</primary></indexterm> + </term> + <listitem> + + <para>Alaphelyzetben az Nmap a névfeloldást maga végzi úgy, hogy a + rendszeren beállított névkiszolgáló felé közvetlenül küldi el a kéréseket + és vár a válaszra. A teljesítmény javítása érdekében több kérés kerül + elküldésre párhuzamosan (gyakran többszáz). A rendszer DNS feloldójának + használatához adja meg ezt a paramétert (egyszerre egy IP a getnameinfo() + rendszerhíváson keresztül). Ez sokkal lassabb és ritkán hasznos, kivéve + ha valamilyen hibát talál az Nmap párhuzamos feloldójában (kérjük jelezze, + ha így van). Az IPv6 letapogatásokhoz mindig a rendszer feloldóját + használja a program.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--dns-servers <server1[,server2],...> + </option> (A fordított DNS feloldáshoz használt kiszolgálók) + <indexterm significance="normal"><primary>--dns-servers</primary></indexterm> + </term> + <listitem> + + <para>Alaphelyzetben az Nmap a DNS kiszolgálók adatait a resolv.conf + fájlból (UNIX) vagy a regisztrációs adatbázisból (Windows) próbálja meg + kinyerni. Ezzel a paraméterrel Ön más kiszolgálókat is megadhat. A program + nem veszi figyelembe ezt a paramétert, ha a <option>--system-dns</option> + paramétert használja, vagy IPv6 letapogatást hajt végre. Több DNS + kiszolgáló használat gyakran felgyorsítja a feloldást, különösen ha a + célpont IP tartományának meghatalmazott kiszolgálóját használja. Ezzel + a paraméterrel fokozható a rejtőzködés is, mivel a kérések tküldhetők + több rekurzív DNS kiszolgálón is.</para> + + <para>Szintén hasznos lehet ez a paraméter a magánhálózatok letapogatásakor. + Néha csak néhány névkiszolgáló ad vissza megfelelő fordított DNS információkat + és nem mindig tudhatja, hogy ezek hol vannak. Letapogathatja a hálózatot + az 53-as kapura keresve (esetleg változat érzékeléssel együtt), ezután + kipróbálhatja a lista alapú letapogatást (<option>-sL</option>) egyesével + megadva a névkiszolgálókat a <option>--dns-servers</option> paraméterben + addig, amíg meg nem találja a megfelelőt.</para> + + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-basics"> + <title>Kapuletapogatási alapok</title> + + <para>Bár az Nmap funkciói folyamatosan bővültek az évek folyamán, + kezdetben még csak egy hatékony kapuletapogató volt és ez is maradt + a fő funkciója. Az egyszerű <command moreinfo="none">nmap + <replaceable>célpont</replaceable></command> parancs kiadásával több, + mint 1660 TCP kaput tapogathatunk le a <replaceable>célpont</replaceable> + gépen. Míg a legtöbb kapuletapogató hagyományosan csak nyitott vagy + zárt csoportba sorolja a kapukat, az Nmap sokkal finomabban dolgozik. + A kapukat hat csoportba sorolja: <literal moreinfo="none">nyitott</literal>, + <literal moreinfo="none">zárt</literal>, <literal moreinfo="none">szűrt</literal>, + <literal moreinfo="none">szűretlen</literal>, + <literal moreinfo="none">nyitott|szűrt</literal>, vagy + <literal moreinfo="none">zárt|szűrt</literal>.</para> + +<para>Ezek nem a kapu valódi állapotát jelzik, hanem azt, hogy az Nmap hogyan látja +őket. Például a célponttal egyező hálózatból induló Nmap letapogatás mutathatja a +135/tcp kaput nyitottnak, míg ugyanabban az időben, ugyanolyan paraméterekkel az +Internet felől a letapogatás mutathatja a kaput <literal moreinfo="none">szűrt</literal> állapotúnak.</para> + +<variablelist><title>Az Nmap által felimert hat kapuállapot</title> + + <varlistentry><term>nyitott</term> + <listitem><para>Egy alkalmazás ezen a kapun aktívan fogadja a TCP kapcsolatokat + vagy az UDP csomagokat. A kapuletapogatás elsődleges célja ezeknek a felderítése. + Biztonság-tudatos emberek tudják, hogy minden nyitott kapu sugárút egy támadáshoz. + A támadók és a tesztelők szeretnék kihasználni ezeket a nyitott kapukat, míg a + rendszergazdák megpróbálják lezárni, vagy tűzfallal védeni őket anélkül, hogy + a jogosult felhasználókat akadályoznák a használatban. A nyitott kapuk nem csak + biztonsági szempontból lehetnek érdekesek, mivel valamilyen hálózaton keresztül + elérhető szolgáltatást mutatnak.</para></listitem></varlistentry> + + <varlistentry><term>zárt</term> + + <listitem><para>Egy zárt kapu elérhető (fogadja az Nmap próbacsomagjait és + válaszol rájuk), de nem fut rajta semmilyen alkalmazás. Segítséget nyújtanak + annak meghatározásában, hogy az IP címhez tartozó állomás működik (állomás felderítés, + vagy visszhang letapogatás), valamint felhasználhatók az operációs rendszer + meghatározására is. Mivel a zárt kapuk elérhetők, érdemes lehet őket később + ismét letapogatni, hátha menet közben nyitottá válnak. A rendszergazdáknak + érdemes figyelni arra, hogy az ilyen kapukat tűzfallal blokkolják. Ezután ezek + a kapuk szűrt állapotot fognak mutatni, ahogy azt a következő rész is mutatja.</para></listitem></varlistentry> + + <varlistentry><term>szűrt</term> + + <listitem><para>Az Nmap nem tudja meghatározni, hogy a kapu nyitott-e, mert egy + csomagszűrő megakadályozza, hogy a próbák eljussanak a kapuig. A szűrés történhet + külön tűzfallal, útválasztó szabályokkal vagy az állomásra telepített tűzfal + programmal. Ezek a kapuk zavarják a támadókat, mivel nagyon kevés információt + közölnek. Néhány esetben visszaküldhetnek ICMP hibaüzeneteket (pl. ICMP 3-as típus + 13-as kód: a célpont nem érhető el, a kommunikáció tiltott), de a legáltalánosabb, + hogy a szűrők egyszerűen eldobálják a próbacsomagokat. Ez arra készteti az Nmap + programot, hogy néhányszor újra megpróbálja a kapcsolódást, hogy kiszűrhetőek + legyenek a hálózati hiba miatti csomagvesztések. Ez viszont drámai módon lelassítja + a letapogatást.</para></listitem></varlistentry> + + <varlistentry><term>szűretlen</term> + <listitem><para>A szűretlen állapot azt jelenti, hogy a kapu elérhető, de az + Nmap nem tudja meghatározni, hogy zárt vagy nyitott. Csak a tűzfal szabályok + feltérképezésére használt ACK letapogatás sorolja a kapukat ebbe a csoportba. + A szűretlen kapuk ismételt letapogatása más módszerekkel (pl. Window, SYN vagy + FIN letapogatás) segíthet a kapu állapotának pontosabb meghatározásában.</para></listitem></varlistentry> + + <varlistentry><term>nyitott|szűrt</term> + <listitem><para>Az Nmap akkor sorolja a kapukat ebbe a csoportba, ha nem tudja + meghatározni, hogy nyitott vagy szűrt. Ez olyan letapogatási típusoknál fordul elő, + amelynél a nyitott kapu nem ad választ. A válasz hiánya jelentheti azt is, hogy egy + csomagszűrő eldobta a próbacsomagot vagy a visszaadott választ. Így az Nmap nem + tudja bioztosan meghatározni, hogy a kapu nyitott vagy szűrt. Az UDP, az IP protokoll, + a FIN, a Null és az Xmas letapogatás minősíti így a kapukat.</para></listitem></varlistentry> + + <varlistentry><term>zárt|szűrt</term> + <listitem><para>Ezt az állapotot akkor adja vissza az Nmap, amikor nem tudja meghatározni, + hogy a kapu zárt vagy szűrt állapotú. Csak az IP ID üresjárati letapogatásnál + használt.</para></listitem></varlistentry> + </variablelist> +</refsect1> + +<refsect1 id="man-port-scanning-techniques"> + <title>Kapuletapogatási technikák</title> + +<para>Mint kezdő autószerelő, több órás küzdelmet folytattam azért, hogy a +munkához szükséges legelemibb szerszámok (kalapács, ragasztószalag, csavarkulcs stb.) +kéznél legyenek. Miután szánalmas kudarcot vallottam, elvontattam a tragacsomat +egy igazi szerelőhöz. Ő szintén sokáig kotorászott egy óriási szerszámos ládában +de végül előhúzta a megfelelő ketyerét, amivel aztán könnyedén elvégezte a munkát. +A kapuletapogatás művészete is hasonló. A szakértők ismerik a letapogatási technikák +százait és minden feladathoz a megfelelőt (vagy több kombinációját) használják. +Másfelől viszont a gyakorlatlan felhasználók és a szkriptkölykök minden feladathoz +az alap SYN letapogatást használják. Mivel az Nmap ingyenesen elérhető, így a +mesteri letapogatás egyetlen határa a tudás. Így természetesen legyőzi az +autóipart, ahol már annak a meghatározásához is elég sok szaktudás kell, hogy +miféle szerszámra lesz szükség. Ráadásul ezt még meg is kell venni egy rakás +pénzért.</para> + +<para>A legtöbb letapogatási technikát kizárólag kiemelt felhasználók érik el. +Ez azért van, mert ezek a technikák nyers csomagok küldésével dolgoznak, melyhez +rendszergazdai hozzáférés szükséges. Windows rendszereken is ajánlatos rendszergazda +szintű felhasználóként használni a programot még akkor is, ha a WinPcap programkönyvtár +elérhető az operációs rendszerhez. A rendszergazda szintű használat az Nmap 1997-es +megjelenésekor egy komoly korlátozás volt, mivel akkoriban a legtöbb felhasználónak +csak korlátozott parancshéj hozzáférése volt. Ma már más a helyzet. A számítógépek +olcsóbbak, sokkal több ember kapcsolódik folyamatosan az Internetre és az asztali +Unix rendszerek (mint például a Linux és a Mac OS X) is jobban elterjedtek. +Ma már elérhető az Nmap Windows környezetben is, így még több gépen használható. +Mindezeknek köszönhetően egyre kevesebb helyen kell az Nmap programot korlátozott +parancshéj alatt futtani. Ez jó dolog, mivel a kiemelt felhasználóknak nyújtott +szolgáltatások teszik a programot erőteljessé és rugalmassá.</para> + +<para>Bár az Nmap a lehető legpontosabb eredményre törekszik, nem szabad megfeledkezni +arról, hogy minden eredménye a célállomás (vagy egy előtte lévő tűzfal) által +visszaküldött csomagokon alapul. Ezek lehetnek megbízhatatlan állomások, melyek +szándékosan megtévesztő válaszokat küldenek. Meglehetősen elterjedtek az olyan +állomások, melyek az Nmap próbáira nem úgy válaszolnak, ahogyan azt az RFC szabványok +meghatározzák. A FIN, NULL és Xmas letapogatások különösen érzékenyek az ilyen +problémákra. Ezek a problémák erősen kötődnek egyes letapogatási típusokhoz, így +a megfelelő letapogatások leírásainál részletesen is foglalkozunk velük.</para> + +<para>Ebben a szakaszban található az Nmap által támogatott tucatnyi letapogatási +technika leírása. Egyszerre csak egyféle technika használható. Kivételt képez az +UDP letapogatás (<option>-sU</option>), mely bármelyik TCP letapogatással kombinálható. +A letapogatások típusának megadása a következő formátumban lehetséges: <option>-s<replaceable>C</replaceable></option>, +ahol a <replaceable>C</replaceable> a letapogatás nevének egy kiemelt betűje, +általában az első. Az egyetlen kivétel a sokak által utált FTP ugráló letapogatás +(<option>-b</option>). Alapértelmezetten az Nmap egy SYN letapogatást hajt végre. +Kivétel, ha a felhasználónak nincs megfelelő jogosultsága nyers csomagok küldésére, +vagy a célpont címe IPv6 formátumú. Ilyenkor a hagyományos connect() letapogatás +történik. Az ebben a szakaszban felsorolt letapogatásokat csak kiemelt felhasználók +hajthatják végre. Normál felhasználók csak a connect() és az FTP ugráló letapogatásra +jogosultak.</para> + + <variablelist> + <varlistentry> + <term> + <option>-sS</option> (TCP SYN letapogatás) + <indexterm significance="normal"><primary>-sS</primary></indexterm> + <indexterm significance="normal"><primary>SYN letapogatás</primary></indexterm> + </term> + <listitem> + +<para>A SYN letapogatás az alapértelmezett és a legelterjedtebb letapogatás, nem +véletlenül. Gyorsan végrehajtható, gyors hálózatokon másodpercenként több ezer kapu +lepróbálható anélkül, hogy tolakodó tűzfalak zavarnák a folyamatot. A SYN letapogatás +eléggé diszkrét és rejtett, mivel sosem fejeződik be a TCP kapcsolat felépítése. +Bármelyik megfelelő TCP veremmel működik, ellentétben a FIN/NULL/Xmas, a Maimon +vagy az üresjárati letapogatással, melyek erősen függnek az egyes operációs rendszerek +egyedi veremkialakításától. Szintén előnyös, hogy tisztán megkülönböztethetők +a <literal moreinfo="none">nyitott</literal>, <literal moreinfo="none">zárt</literal> +és <literal moreinfo="none">szűrt</literal> kapuállapotok.</para> + +<para>Ezt a technikát gyakran nevezik félig nyitott letapogatásnak is, mivel sosem +jön létre egy teljes TCP kapcsolat. Egy SYN csomag elküldésével szimuláljuk egy +kapcsolat felépítését és várunk a válaszra. A SYN/ACK válasz jelzi, hogy a kapu +fogadja a kapcsolódást (nyitott), az RST (reset) pedig azt, hogy nem. Ha néhány +ismétlés után sem érkezik válasz, a kapu szűrt állapotúként lesz jelölve. Szintén ezt +a jelölést kapja, ha egy ICMP nem elérhető hibaüzenet (kód 3, típus 1, 2, 3, 9, 10 vagy 13) +érkezik.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sT</option> (TCP connect letapogatás) + <indexterm significance="normal"><primary>-sT</primary></indexterm> + <indexterm significance="normal"><primary>connect() letapogatás</primary></indexterm> + </term> + <listitem> +<para>Ha a SYN letapogatás nem érhető el, akkor a TCP connect() letapogatás válik +alapértelmezetté. Ez akkor történik meg, ha a felhasználónak nincs jogosultsága +nyers adatcsomagokkal dolgozni, vagy ha a célpont IPv6 címet használ. A nyers csomagok +használata helyett az Nmap átadja a célpont címét és a célkapu számát az operációs +rendszernek, hogy az építse fel a kapcsolatot a <literal moreinfo="none">connect()</literal> +rendszerhívás segítségével. Ugyanezt a magas szintű rendszerhívást használják a +böngészők, a P2P kliensek és más hálózati alkalmazások is a kapcsolatok felépítéséhez. +Ez része a Berkeley Sockets API néven ismert programozási felületnek. Az Nmap ilyenkor +a nyers válaszcsomagok beolvasása helyett ezt a felületet használja az egyes kapcsolatok +állapotának lekérdezésére.</para> + +<para>Ha a SYN letapogatás elérhető, általában jobb azt választani. Az Nmap sokkal +jobban kézben tudja tartani a nyers csomagokat, mint a magasabb szintű <literal moreinfo="none">connect()</literal> +rendszerhívást. A SYN letapogatás félig nyitott kapcsolataival ellentétben a rendszerhívás +teljesen felépíti a kapcsolatot a célponttal. Ez nem csak tovább tart, de több +adatcsomagra is van szükség ugyanannyi információ megszerzéséhez. Ráadásula célpont +naplózhatja is a kapcsolódást. Egy rendes behatolás érzékelő még jelezhet is, +bár a legtöbb gépen nincs ilyen riasztórendszer. Az átlagos Unix rendszereken a +legtöbb szolgáltatás bejegyzést készit a rendszernaplóba a kapcsolatról, amit +ráadásként még kiegészíthet egy hibaüzenettel is, ha a kapcsolatot adatküldés nélkül +azonnal megszakítjuk. Néhány szánalmas szolgáltatás ilyenkor összeomlik, bár ez +nem túl jellemző. Ha egy rendszergazda rengeteg, azonos helyről érkező kapcsolódást +lát a rendszernaplóban, azonnal tudni fogja, hogy connect() letapogatás áldozata lett.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sU</option> (UDP letapogatások) +<indexterm significance="normal"><primary>-sU</primary></indexterm> +<indexterm significance="normal"><primary>UDP letapogatás</primary></indexterm> +</term> + <listitem> + +<para>Bár a legismertebb Internetes szolgáltatások a TCP protokollt használják, +azért az <ulink url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> alapú +szolgáltatások is széles körben elterjedtek. A három legismertebb a DNS, az SNMP +és a DHCP (a használt kapuk: 53, 161/162 és 67/68). Mivel az UDP letapogatás általában +lassabb és sokkal bonyolultabb, mint a TCP, néhány biztonsági felülvizsgáló nem +is figyel ezekre a kapukra. Ez nagy hiba, mivel eléggé elterjedtek a kihasználható +UDP alapú szolgáltatások és a támadók bizonyosan nem hagyják figyelmen kívül ezeket. +Szerencsére az Nmap segít leltárba foglalni az UDP kapukat is.</para> + +<para>Az UDP letapogatás az <option>-sU</option> paraméterrel indítható. Kombinálható +valamilyen TCP letapogatással, mint például a SYN letapogatás (<option>-sS</option>), +így egyidőben mindkét protokoll ellenőrizhető.</para> + +<para>Az UDP letapogatás úgy működik, hogy egy üres (adat nélküli) UDP fejlécet +küldünk minden egyes célkapura. Ha ICMP "Kapu nem elérhető" hiba (3-as típus, 3-as kód) +érkezik vissza, a kapu <literal moreinfo="none">zárt</literal>. Más típusú ICMP +"nem elérhető" hibák esetén (1, 2, 9, 10 vagy 13) a kapu <literal moreinfo="none">szűrt</literal>. +Alkalmanként egy szolgáltatás valamilyen UDP csomagot küldhet vissza, ezzel jelezve, +hogy a kapu <literal moreinfo="none">nyitott</literal>. Ha néhány megismételt próba +után sem érkezik válasz, a kapu jelölése <literal moreinfo="none">nyitott|szűrt</literal>. +Ez azt jelenti, hogy a kapu lehet nyitott, vagy egy csomagszűrő blokkolja az átvitelt. +A szolgáltatások verzióletapogatása (<option>-sV</option>) segíthet elkülöníteni +a ténylegesen nyitott kapukat a szűrt kapuktól.</para> + +<para>Az UDP letapogatás legnagyobb kihívása a gyors végrehajtás. A nyitott és a +szűrt kapuk ritkán küldenek vissza valamilyen választ, arra kényszerítve az Nmap +programot, hogy az időzítés lejártáig várakozzon, majd megismételje a próbát azt +feltételezve, hogy a próba vagy a válasz elveszett. A zárt kapuk gyakran még nagyobb +problémát jelentenek. Ezek általában egy ICMP "Kapu nem elérhető" hibaüzenetet +küldenek vissza. De az RST csomagokkal ellentétben, melyeket a zárt TCP kapuk +küldenek vissza válaszként a SYN vagy a connect() letapogatásra, a legtöbb állomás +alapból korlátozza az elküldhető ICMP "Kapu nem elérhető" oüzenetek mennyiségét. +A Linux és a Solaris operációs rendszerek különösen szigorúak ebből a szempontból. +Például a Linux 2.4.20-as rendszermagja a "Célállomás nem elérhető" üzenetekből +csak másodpercenként egyet enged elküldeni (a <filename moreinfo="none">net/ipv4/icmp.c</filename> fájlban). +</para> + +<para>Az Nmap észleli ezt a korlátozást és képes eléggé lelassítani a próbákat, +hogy megelőzze a hálózat elárasztását olyan haszontalan csomagokkal, melyeket a +célállomás úgyis eldobna. Sajnos a Linux stílusú, egy csomag/másodperc korlátozás +miatt a teljes 65536 UDP port letapogatása több,mint 18 óráig tart. Néhány ötlettel +felgyorsítható az UDP letapogatás: több állomás letapogatása párhuzamosan, a +legáltalánosabb kapuk letapogatása először, letapogatás tűzfalon belülről és a +lassú állomások átugrása a <option>--host-timeout</option> paraméter megadásával.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (TCP NULL, FIN és Xmas letapogatás) +<indexterm significance="normal"><primary>-sN</primary></indexterm> +<indexterm significance="normal"><primary>-sF</primary></indexterm> +<indexterm significance="normal"><primary>-sX</primary></indexterm> +<indexterm significance="normal"><primary>NULL letapogatás</primary></indexterm> +<indexterm significance="normal"><primary>FIN letapogatás</primary></indexterm> +<indexterm significance="normal"><primary>Xmas letapogatás</primary></indexterm> +</term> + <listitem> + +<para>Az Nmap ennek a három letapogatásnak a segítségével (a <option>--scanflags</option> +paraméter segítségével még több lehet, erről bővebben a következő szakaszban) +kiaknázza azt a hajszálnyi rést, mely a <ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP RFC</ulink> +leírásban található és így tesz különbséget a <literal moreinfo="none">nyitott</literal> +és a <literal moreinfo="none">zárt</literal> kapuk között. A 65-dik oldalon ez áll: +<quote>ha a célkapu ZÁRT .... egy RST bitet nem tartalmazó bejövő csomagra válaszként +egy RST csomagot kell küldeni.</quote> A következő oldalon azt tárgyalja, hogy +egy nyitott kapura SYN, RST vagy ACK bit nélküli csomag <quote>valószínűtlen, +hogy érkezne, de ha mégis ez történne, a csomagot el kell dobni.</quote></para> + +<para>Ha olyan rendszereket tapogatunk le, amelyek megfelelnek ennek az RFC leírásnak, +akkor bármilyen olyan próbacsomag, amely nem tartalmazza a SYN, ACK vagy RST bitet +egy RST választ fog kiváltani, ha a célkapu zárt és nem vált ki választ, ha a +célkapu nyitott. Amíg ez a három bit nem szerepel, a másik három bit (FIN, PSH, URG) +tetszőleges kombinációja használható. Az Nmap ezt három letapogatási típussal +használja ki:</para> + +<variablelist> + <varlistentry><term>NULL letapogatás (<option>-sN</option>)</term> + <listitem><para>Nem állít be egyetlen bitet sem (a TCP zászlók értéke 0)</para></listitem></varlistentry> + + <varlistentry><term>FIN letapogatás (<option>-sF</option>)</term> + <listitem><para>Csak a TCP FIN bitet állítja be.</para></listitem></varlistentry> + + <varlistentry><term>Xmas letapogatás (<option>-sX</option>)</term> + <listitem><para>Beállítja a FIN, PSH és URG zászlókat, így a csomag olyan lesz, + mint a karácsonyfa.</para></listitem></varlistentry> +</variablelist> + +<para>Mindhárom letapogatás ugyanúgy viselkedik, az egyetlen különbség a próbacsomagban +beállított zászlók között van. Ha válaszként RST csomag érkezik, a kapu besorolása +<literal moreinfo="none">zárt</literal> lesz, míg ha nem érkezik válasz, a besorolás +<literal moreinfo="none">nyitott|szűrt</literal>. Ha válaszként ICMP "nem elérhető" +(kód 3, típus 1, 2, 3, 9, 10 vagy 13) hiba érkezik, a kapu jelölése +<literal moreinfo="none">szűrt</literal> lesz.</para> + +<para>Ezeknek a letapogatásoknak a legnagyobb előnye, hogy könnyen átcsúsznak +egyes nem-állapottartó tűzfalakon és csomagszűrő útválasztókon. Másik előnyük, hogy +némileg rejtettebbek, mint a hagyományok SYN letapogatás. Azért sokat ne várjunk - +a legtöbb modern behatolásérzékelő (IDS) képes észlelni ezt a fajta letapogatást. +Nagy hátrány, hogy nem minden rendszer követi szigorúan az RFC 793 előírásait. +Számos rendszer RST csomagot küld vissza ezekre a letapogatásokra a kapu állapotától +függetlenül. Emiatt az összes kapu <literal moreinfo="none">zárt</literal> jelölést +kap. A jelentősebb operációs rendszerek, melyek így tesznek: a Microsoft Windows, +több CISCO eszköz, a BSDI és az IBM OS/400. Ennek ellenére a legtöbb Unix alapú +operációs rendszer ellen használhatók ezek a letapogatások. Másik hátránya ezeknek +a letapogatásoknak, hogy nemképesek különbséget tenni a <literal moreinfo="none">nyitott</literal> +és a <literal moreinfo="none">szűrt</literal> kapuk között, így ezek a kapuk a +<literal moreinfo="none">nyitott|szűrt</literal>jelölést kapják.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sA</option> (TCP ACK letapogatás) + <indexterm significance="normal"><primary>-sA</primary></indexterm> + <indexterm significance="normal"><primary>ACK letapogatás</primary></indexterm> + </term> + <listitem> + +<para>Ez a letapogatás teljesen eltér az előzőekben tárgyaltaktól, mivel sosem +határozza meg a <literal moreinfo="none">nyitott</literal> (vagy a +<literal moreinfo="none">nyitott|szűrt</literal>) kapukat. Arra használható, hogy +kikémleljük egy tűzfal szabályrendszerét, meghatározva hogy állapottartó vagy sem +és hogy mely kapukat szűri.</para> + +<para>Az ACK letapogatás során olyan csomagokat küldünk a célpont felé, melynek +csak az ACK zászlóját állítjuk be (kivéve, ha a <option>--scanflags</option> paramétert +is használjuk). Szűrés nélküli rendszereknél mind a <literal moreinfo="none">nyitott</literal>, +mind a <literal moreinfo="none">zárt</literal> kapuk RST csomagot küldenek vissza +erre a próbára. Az Nmap ezeket a kapukat <literal moreinfo="none">szűretlen</literal> +jelzéssel látja el, így jelölve, hogy az ACK csomag eléri a kaput, de annak +<literal moreinfo="none">nyitott</literal> vagy <literal moreinfo="none">zárt</literal> +állapota nincs meghatározva. Azok a kapuk, melyek nem válaszolnak, vagy bizonyos +ICMP hibaüzenetet (kód 3, típus 1, 2, 3, 9, 10 vagy 13) küldenek vissza, +<literal moreinfo="none">szűrt</literal> jelölést kapnak.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sW</option> (TCP Window letapogatás) +<indexterm significance="normal"><primary>-sW</primary></indexterm> +<indexterm significance="normal"><primary>Window letapogatás</primary></indexterm> +</term> + <listitem> + +<para>A Window letapogatás megegyezik az ACK letapogatással. Az egyetlen különbség, +hogy kihasználja egyes rendszerek TCP megvalósításának jellegzetességét, így téve +különbséget a nyitott és a zárt kapuk között, ahelyett hogy minden visszakapott +RST csomag esetén a kaput <literal moreinfo="none">szűretlennek</literal> jelölne. +Ezt úgy éri el, hogy megvizsgálja a visszaküldött RST csomag Window szakaszát. +Néhány rendszernél a nyitott kapu esetén a Window értéke pozitív, míg zárt kapunál +nulla. Így pozitív Window érték esetén a kapu <literal moreinfo="none">nyitott</literal>, +míg nulla Window érték esetén a kapu <literal moreinfo="none">zárt</literal> jelölést +kap.</para> + +<para>Ez a letapogatás az interneten található rendszerek egy kis részének jellegzetességén +alapul, így nem tekinthető teljesen megbízhatónak. Azoknál a rendszereknél, melyek nem +így működnek az összes kapu <literal moreinfo="none">zárt</literal> állapotot fog +jelezni. Természetesen lehetséges, hogy a célpontnak nincs egyetlen nyitott kapuja sem. +Ha a legtöbb letapogatott kapu <literal moreinfo="none">zárt</literal>, de néhány +elterjedt kapu (például a 22, 25, 53) <literal moreinfo="none">szűrt</literal> +állapotú, a rendszer legalábbis gyanús. Alkalmanként a rendszerek teljesen ellentétesen +viselkednek. Ha a letapogatás 1000 nyitott és 3 zárt vagy szűrt kaput jelez, akkor +valószínűleg pont az a 3 kapu a nyitott.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sM</option> (TCP Maimon letapogatás) +<indexterm significance="normal"><primary>-sM</primary></indexterm> +<indexterm significance="normal"><primary>Maimon letapogatás</primary></indexterm> +</term> + <listitem> + +<para>A Maimon letapogatás a felfedezője, Uriel Maimon után kapta a nevét. Ő a +technikát a Phrack Magazine 49-es számában írta le (1996 November). Az Nmap, mely +két számmal később jelent meg, szintén ismeri ezt a technikát. Az eljárás ugyanaz, +mint a NULL, FIN és Xmas letapogatásnál, csak itt FIN/ACK csomagot küldünk el. +Az RFC 793 (TCP) szerint egy ilyen csomag beérkezésekor mind a nyitott, mind a zárt +kapunka RST csomagot kell küldenie válaszként. Uriel észrevette, hogy sok BSD alapú +rendszer nyitott kapuk esetén egyszerűen eldobja ezeket a csomagokat.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scanflags</option> (Testreszabott TCP letapogatás) + <indexterm significance="normal"><primary>--scanflags</primary></indexterm></term> + <listitem> + + +<para>Az igazán képzett Nmap felhasználóknak nem kell magukat a programba beépített +letapogatási típusokra korlátozniuk. A <option>--scanflags</option> paraméterrel +saját letapogatási típusokat tervezhetnek, tetszőleges TCP zászlók használatával. +Engedje szabadon a fantáziáját, hogy kitérhessen az olyan behatolásérzékelő rendszerek elől, +amelyek gyártói csak átlapozták az Nmap leírását a szabályok megadásakor!</para> + +<para>A <option>--scanflags</option> paraméterezése történhet számmal (például 9 +(PSH and FIN)) is, de a szimbolikus nevek használata sokkal könnyebb. Csak keverje +össze az <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> és <literal moreinfo="none">FIN</literal> +zászlókat tetszőleges kombinációban. Például a <option>--scanflags +URGACKPSHRSTSYNFIN</option> beállítja az összes zászlót, bár ez nem túl hasznos. +A zászlók megadásának sorrendje nem lényeges.</para> + +<para>A kívánt zászlók megadása mellet megadhatja a TCP letapogatás típusát is +(például <option>-sA</option> vagy <option>-sF</option>). Ezzel az alaptípussal +meghatározhatja, hogy az Nmap hogyan értelmezze a válaszokat. Például a SYN letapogatásnál +ha nem érkezik válasz, akkor a kapu állapota <literal moreinfo="none">szűrt</literal>, +míg a FIN letapogatásnál ugyanez <literal moreinfo="none">nyitott|szűrt</literal> +állapotot jelez. Az Nmap ugyanúgy viselkedik, mint az alap letapogatásnál, csak +a próbacsomagban a megadott zászlókat fogja használni az alap letapogatás zászlói +helyett. Ha nem ad meg alaptípust, a SYN letapogatást fogja használni.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sI <zombi állomás[:próbakapu]></option> (Üresjárati letapogatás) + <indexterm significance="normal"><primary>-sI</primary></indexterm> + <indexterm significance="normal"><primary>Üresjárati letapogatás</primary></indexterm> + </term> + + <listitem> + + <para>Ez a fejlett eljárás egy igazi vakon végzett TCP letapogatást hajt + végre a célállomáson (ez azt jelenti, hogy a saját IP címéről semmilyen + csomag nem lesz elküldve a célállomásra). Ehelyett kihasználjuk azt, hogy + a zombi gépen megjósolható az IP töredezettségmező sorszámgenerátorának + következő értéke és ezzel az oldaltámadással szerzünk információt a célgépen + lévő nyitott kapukról. A behatolásérzékelő rendszerek úgy látják majd, + hogy a letapogatás a zombi állomás felől érkezett (melynek élőnek kell + lennie és meg kell felelnie bizonyos követelményeknek). Ez az elbűvölő + letapogatás túl bonyolult ahhoz, hogy ebben a leírásban részletesen is + foglalkozhassunk vele, ezért írtam egy részletes leírást róla, mely a + <ulink url="https://nmap.org/idlescan.html"></ulink> címen olvasható.</para> + + <para>Amellett, hogy különösen rejtett, ezzel a letapogatással kihasználható + a gépek közötti, IP alapú bizalmi viszony. A nyitott kapuk ebben az + esetben <emphasis>a zombi gép nézőpontjából láthatóak nyitottnak.</emphasis> + Megpróbálhat letapogatni egy célállomást több olyan zombi használatával, + melyekről sejthető, hogy a célpont megbízhatónak tekinti (útválasztó + vagy csomagszűrő szabályok alapján).</para> + + <para>A zombigép nevéhez kettősponttal elválasztva hozzáadhat egy kapuszámot + is, ha le akarja tesztelni az IP ID változásait a zombigépen. Egyébként + az Nmap a TCP visszhang próbakapuját (80) fogja használni.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sO</option> (IP protokoll letapogatás) + <indexterm significance="normal"><primary>-sO</primary></indexterm> + <indexterm significance="normal"><primary>Protokoll letapogatás</primary></indexterm> + </term> + <listitem> + +<para>Az IP protokoll letapogatással meghatározható, hogy a célállomás mely IP +protokollokat (TCP, ICMP, IGMP stb.) támogatja. Technikai szempontból ez nem igazán +kapuletapogatás, mivel a TCP és UDP kapuszámok helyett az IP protokoll számokon +megy végig. Ugyanúgy a <option>-p</option> paramétert használja, csak itt a kapu +száma helyett a protokoll számát kell megadni, az eredményeket ugyanolyan formátumban +adja vissza, mint a kapuletapogatások és ugyanazt a letapogató motort használja, +mint a kapuletapogatás. gy elég közel áll a kapuletapogatáshoz, hogy ide tartozzon.</para> + +<para>Amellett, hogy magában is hasznos, a protokoll letapogatáson látszik a nyílt +forráskódú programok igazi ereje. Bár az alapötlet meglehetősen egyszerű, nem gondoltam, +hogy bele kéne vennem a programba és nem is érkezett ilyen kérés felém. Aztán +2000 nyarán Gerhard Rieger fejében megfogalmazódott az ötlet, készített egy nagyszerű +kiegészítést, melyben megvalósította a letapogatást és elküldte az nmap-hackers +levelezőlistára. n beillesztettem az Nmap forrásfájába és másnap kiadtam egy új +változatot a programból. Csak kevés kereskedelmi programnak vannak olyan lelkes +felhasználói, akik megterveznék és tadnák a saját fejlesztéseiket!</para> + +<para>A protokoll letapogatás az UDP letapogatáshoz hasonlóan működik. Ahelyett, +hogy a kapuszámokat váltogatná az UDP csomagban, IP fejléceket küldözget, melyben +a 8 bites protokollmező változtatja. A fejlécek általában üresek, nem tartalmaznak +adatot és egyáltalán nem felelnek meg a tesztelt protokollnak. Három kivétel van: +A TCP, az UDP és az ICMP. Ezekhez a protokollokhoz létezik a megfelelő fejléc, +mert egyrészt a legtöbb rendszer nem hajlandó egyébként elküldeni a csomagot, másrészt +az Nmap rendelkezik az összeállításukhoz szükséges tudással. Ahelyett, hogy az +ICMP "kapu nem elérhető" üzenetre várakozna, a protokoll letapogatás az ICMP +<emphasis>protokoll</emphasis> nem elérhető üzenetre vár. Ha az Nmap bármelyik +protokollnál bármilyen választ kap, akkor a protokoll <literal moreinfo="none">nyitott</literal> +jelölést kap. Ha egy ICMP "protokoll nem elérhető" hiba érkezik (típus 3, kód 2), +akkor a protokoll <literal moreinfo="none">zárt</literal> jelölést kap. Más ICMP +hibaüzenetek (típus 3, kód 1, 3, 9, 10 vagy 13) esetén a protokoll <literal moreinfo="none">szűrt</literal> +jelölést kap (bár ez azt bizonyítja, hogy ugyanakkor az ICMP protokoll +<literal moreinfo="none">nyitott</literal>). Ha néhány ismétlés után sem érkezik +válasz, akkor a protokoll <literal moreinfo="none">nyitott|szűrt</literal> jelölést kap.</para> + + </listitem> + </varlistentry> + + + + <varlistentry> + <term> + <option>-b <FTP átjátszó állomás></option> (FTP ugráló letapogatás) + <indexterm significance="normal"><primary>-b</primary></indexterm> + <indexterm significance="normal"><primary>FTP ugráló letapogatás</primary></indexterm> + </term> + <listitem> + +<para>Az FTP protokoll egy érdekes lehetősége (<ulink url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) +az úgynevezett megbízott (proxy) FTP kapcsolat. Ez lehetővé teszi a felhasználónak, +hogy csatlakozzon egy FTP kiszolgálóhoz, majd utasítsa a kiszolgálót, hogy fájlokat +küldjön egy harmadik kiszolgálónak. Ez a lehetőség olyan sok visszaélésre alkalmas, +hogy a legtöbb kiszolgáló nem is támogatja. Az egyik visszaélési lehetőség, hogy +az FTP kiszolgálót kapuletapogatásra lehet használni egy harmadik állomás ellen. +Egyszerűen arra kell utasítani az FTP kiszolgálót, hogy küldjön el egy fájlt a +célállomás minden egyes érdekes kapujára. A hibaüzenetek jelzik, hogy a kapu nyitott, +vagy zárt. Ez egy jó módszer a tűzfalak megkerülésére, mivel a szervezetek FTP +kiszolgálói általában a tűzfalakon belül vannak, hogy a többi állomásnak szabad +hozzáférése legyen a fájlokhoz. Az Nmap a <option>-b</option> paraméteren keresztül +támogatja az FTP ugráló letapogatást, melynek formátuma a következő: +<replaceable>felhasználói név</replaceable>:<replaceable>jelszó</replaceable>@<replaceable>kiszolgáló</replaceable>:<replaceable>kapu</replaceable>. +A <replaceable>kiszolgáló</replaceable> a kihasználni kívánt FTP kiszolgáló neve, +vagy IP címe. Csakúgy, mint egy hagyományos URL-nél, itt is elhagyható a +<replaceable>felhasználói név</replaceable>:<replaceable>jelszó</replaceable> páros, +ha a névtelen bejelentkezés engedélyezett (felhasználó: <literal moreinfo="none">anonymous</literal> +jelszó:<literal moreinfo="none">-wwwuser@</literal>). Szintén elhaygható a kapu +megadása (a bevezető kettősponttal együtt), ilyenkor az alapértelmezett FTP kaput (21) +használja a program a <replaceable>kiszolgálón</replaceable>.</para> + +<para>Ez a sérülékenység az Nmap 1997-es megjelenésekor széles körben elterjedt volt, +de mára már nagyrészt javították. Ennek ellenére még mindig találhatók sérülékeny +FTP kiszolgálók, tehát megéri kipróbálni, ha már minden más kudarcot vallott. Ha +egy tűzfal megkerülése a cél, tapogassa le a célhálózatot nyitott 21-es kaput után +kutatva (vagy bármilyen FTP szolgáltatás után, ha az összes kaput vizsgálja változat +ellenőrzésse), azután próbálja meg az ugráló letapogatást ezek használatával. Az Nmap +megadja, hogy az állomás sérülékeny-e ebből a szempontból. Ha csak a nyomait szeretné +eltakarni, akkor nem szükséges kizárólag a célhálózatban lévő gépekre korlátoznia +magát. Mielőtt nekiállna sérülékeny FTP kiszolgálókat keresni az Interneten, jegyezze +meg, hogy a rendszergazdák nem szeretik, ha a kiszolgálóikat ilyen célból próbálják +kihasználni.</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-specification"> + <title>Kapu meghatározás és Letapogatási sorrend</title> + + <para>Az előzőekben leírt letapogatási eljárások mellett az Nmap lehetőséget + biztosít arra, hogy meghatározza a letapogatni kívánt kapukat és a letapogatás + sorrendjét (véletlenszerűen vagy sorban). Alapesetben az Nmap letapogatja az + első 1024 kaput, valamint az <filename moreinfo="none">nmap-services</filename> + fájlban felsorolt kapukat és protokollokat.</para> + + <variablelist> + <varlistentry> + <term> + <option>-p <kaputartomány(ok)></option> (Csak a megadott kapu letapogatása) + <indexterm significance="normal"><primary>-p</primary></indexterm> + </term> + <listitem> + + + <para>Ezzel a paraméterrel megadhatja a letapogatni kívánt kapukat, így + felülbírálhatja az alapértelmezést. Megadhatók egyedi kapuk és kaputartományok + kötőjellel elválasztva (pl. 1-1023). A tartomány kezdő- és/vagy záróértéke + kimaradhat, ilyenkor az Nmap az 1-et vagy a 65535-öt fogja használni. + Tehát a <option>-p-</option> paraméterben megadható az is, hogy a letapogatás + az 1-65535 intervalumban történjen meg. A nullás kapu letapogatása is + lehetséges, amennyiben külön megadja. Ha az IP protokoll letapogatást + használja (<option>-sO</option>), akkor ez a paraméter a letapogatni + kívánt protokoll számát adja meg (0-255).</para> + + <para>Ha mind a TCP, mind az UDP kapukat letapogatja, külön megadhatja + a protokollt a kapuszám előtti <literal moreinfo="none">T:</literal> vagy + <literal moreinfo="none">U:</literal> minősítővel. A minősítő hatása + addig tart, amíg másikat nem ad meg. Például a <option>-p + U:53,111,137,T:21-25,80,139,8080</option> paraméter megadásával letapogatja + az 53,111 és 137 UDP kapukat, majd a listán szereplő megfelelő TCP kapukat. + Ha UDP és TCP letapogatást is akar végezni, meg kell adnia a <option>-sU</option> + paramétert és még legalább egy TCP letapogatás típusát (például + <option>-sS</option>, <option>-sF</option>, or + <option>-sT</option>). Ha nem ad meg protokoll minősítőt, a kapuszámok + minden protokoll listába bekerülnek.</para> + + + <para><indexterm significance="normal"><primary>helyettesítő karakter</primary></indexterm> + A kapuk megadhatók azzal a nevükkel is, amellyel az <filename moreinfo="none">nmap-services</filename> + fájlban szerepelnek. A elnevezésekben használható mind a *, mind a ? + helyettesítő karakter. Például ha le akarja tapogatni az FTP szolgáltatást, + valamint az összes olyan kaput, melynek szolgáltatásneve http-vel kezdődik, + adja meg a <option>-p ftp,http*</option> paramétert. Vigyázzon a parancsértelmezők + kiterjesztéseire és tegye idézőjelbe a <option>-p</option> utáni + kifejezést, ha bizonytalan.</para> + + <para>A kaputartományok bezárhatók szögletes zárójlebe. Ekkor a megadott + tartományból csak azokat a kapukat tapogatja le, melyek szerepelnek az + <filename moreinfo="none">nmap-services</filename> fájlban. Például a + <option>-p [-1024]</option> megadásával letapogathatja az + <filename moreinfo="none">nmap-services</filename> fájlban lévő összes kaput + 1024-el bezárólag. Vigyázzon a parancsértelmezők kiterjesztéseire és + tegye idézőjelbe a <option>-p</option> utáni kifejezést, ha bizonytalan.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-F</option> (Gyors letapogatás (kevesebb kapuval) ) + <indexterm significance="normal"><primary>-F</primary></indexterm> + </term> + <listitem> + <para>Arra utasítja a programot, hogy csak az <filename moreinfo="none">nmap-services</filename> + fájlban (mely a program része) felsorolt kapukat tapogassa le (vagy a + protokollokat, ha az <option>-sO</option> paramétert adja meg). Ez sokkal + gyorsabb, mintha a célpont mind a 65535 kapuját letapogatnánk. Mivel ez + a lista több, mint 1200 kaput tartalmaz, ezért az alapértelmezett TCP + letapogatáshoz képest (1650-nél több kapu) nem sokkal gyorsabb. Akkor + tapasztalhat jelentős sebesség növekedést, ha elkészíti saját, testreszabott + <filename moreinfo="none">nmap-services</filename> fájlját a + <option>--servicedb</option> vagy a <option>--datadir</option> paraméterekkel.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-r</option> (Ne keverje a kapukat) + <indexterm significance="normal"><primary>-r</primary></indexterm> + </term> + <listitem> + <para>Alaphelyzetben az Nmap véletlenszerűen tapogatja le a kapukat + (kivéve néhány elterjedten használt kaput, melyet előre vesz a sorban). + Ez a keverés normál esetben kívánatos, de szükség esetén a <option>-r</option> + paraméter használatával sorrendben is letapogathatja a kapukat.</para> + </listitem> + </varlistentry> + </variablelist> + +</refsect1> + + + <refsect1 id="man-version-detection"> + <title>Szolgáltatás és változat érzékelés<indexterm significance="normal"><primary>változat letapogatás</primary></indexterm></title> + + + <para>Állítsa rá az Nmap programot egy távoli állomásra és megtudhatja, hogy + a 25/tcp, 80/tcp és az 53/udp kapuk nyitottak. Az <filename moreinfo="none">nmap-services</filename> + adatbázisa alapján kb. 2200 jól ismert szolgáltatás azonosítható, így az előbb + felsorolt kapuk valószínűleg egy levelező- (SMTP), web- (HTTP) és névkiszolgálóra (DNS) + utalnak. Ez a lekérdezés általában pontos - az esetek jelentős részében a + levelezőkiszolgálók a 25-ös TCP kapun figyelnek. Ennek ellenére nem lehet csak + erre alapozni a következtetéseinket! Az emberek gyakran futtatnak megszokott + szolgáltatásokat furcsa kapukon.</para> + + <para>Még ha az Nmap helyesen is következtet és a fent említett kiszolgálók + valóban SMTP, HTTP és DNS kiszolgálók, ez akkor sem túl so információ. Ha a + cége vagy az ügyfelei részére felmérést készít a sebezhetőségekről (vagy csak + egy egyszerű hálózati leltárt készít), szüksége lehet a működő levelező- és a DNS + kiszolgáló típusára és változatszámára. A pontos változatszám ismeretében sokkal + könnyebb meghatározni, hogy az adott kiszolgáló mely sérülékenységekre érzékeny. + A változat érzékelés segít kideríteni ezt az információt. +</para> + + <para>Miután valamelyik letapogatási módszer felderítette az elérhető TCP és + UDP kapukat, a változat érzékelő kivallatja azokat a rajtuk futó alkalmazásokról. + Az <filename moreinfo="none">nmap-service-probes</filename> adatbázis számos + próbát és válaszkifejezést tartalmaz a szolgáltatások azonosításához. Az Nmap + megpróbálja meghatároznia szolgáltatás protokollját (pl. FTP, SSH, telnet, http), + Az alkalmazás nevét (pl. ISC BIND, Apache httpd, Solaris telnetd), a szolgáltatás + változatszámát, az állomás nevét, az eszköz típusát (pl. nyomtató, útválasztó), + az operációs rendszer családját (pl. Windows, Linux) és néhány kiegészítő + részletet (pl. fut-e kapcsolatra váró X kiszolgáló, az SSH milyen protokollverziót + használ, vagy a KaZaA felhasználói név). Természetesen a legtöbb szolgáltatás + nem adja ki az összes információt. Ha az Nmap programot SSL támogatással fordították, + akkor kapcsolódik az SSL kiszolgálókhoz, hogy meghatározza a titkosítási réteg + mögött található szolgáltatást. Ha RPC szolgáltatást talált, a program RPC + "darálója" (<option>-sR</option>) automatikusan megpróbálja kideríteni az + RPC program típusát és változatát. Néhány UDP kapu <literal moreinfo="none">nyitott|szűrt</literal> + állapotban maradhat egy UDP letapogatás után, mivel a program nem tudja pontosan + meghatározni az állapotát. A változat érzékelő megpróbál választ kicsalni ezekből + a kapukból (csakúgy, mint a nyitott kapukból) és siker esetén nyitottra változtatja + a kapu állapotát. A <literal moreinfo="none">nyitott|szűrt</literal> TCP kapukat + hasonló módon kezeli. Jegyezze meg, hogy az Nmap <option>-A</option> paramétere + más dolgok mellett a változat érzékelést is engedélyezi. A változat érzékelés + működéséről, használatáról és paraméterezéséről a <ulink url="https://nmap.org/vscan/"></ulink> + címen talál részletes leírást.</para> + + <para>Ha az Nmap kap ugyan választ egy szolgáltatástól, de az adatbázis alapján + nem tudja azonosítani, kinyomtat egy különleges ujjlenyomatot és egy URL-t. + Ha biztos abban, hogy milyen szolgáltatás fut az adott kapun, a megadott címen + az ujjlenyomat segítségével megadhatja a szolgáltatás típusát. Szánjon erre pár + percet, hogy mindenki élvezhesse az Ön felfedezésének eredményét. Ezeknek az + adatoknak köszönhetően az Nmap kb. 3000 mintát ismer több, mint 350 protokollhoz.</para> + + <para>A változat érzékelés a következő paraméterekkel engedélyezhető + és vezérelhető:</para> + + + <variablelist> + + <varlistentry> + <term> + <option>-sV</option> (Változat érzékelés) + <indexterm significance="normal"><primary>-sV</primary></indexterm></term> + <listitem> + + + <para>Engedélyezi a változat érzékelést az előbbiekben leírt módon. + Emellett használhatja még a <option>-A</option> paramétert is, mely a + változat érzékelés mellett más dolgokat is engedélyez.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--allports</option> (Ne hagyjon ki egy kaput sem a változat + érzékelésből) + <indexterm significance="normal"><primary>--allports</primary></indexterm> + </term> + <listitem> + + <para>Alapesetben az Nmap változat érzékelője átugorja a 9100/TCP kaput, + mivel néhány nyomtató mindent kinyomtat, ami erre a kapura érkezik. Ez + több oldal kinyomtatott http vagy SSL munkamenet kéréshez vezethet. Ez a + viselkedés megváltoztatható, ha átírja vagy eltávolítja az <literal moreinfo="none">Exclude</literal> + irányelvet az <filename moreinfo="none">nmap-service-probes</filename> + fájlban, vagy ha megadja az <option>--allports</option> paramétert, amellyel + teljesen felülbírálhatja az <literal moreinfo="none">Exclude</literal> + irányelveket.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-intensity <intenzitás></option> (Beállítja a változat + érzékelés erősségi szintjét) + <indexterm significance="normal"><primary>--version-intensity</primary></indexterm> + </term> + <listitem> + + + <para>Amikor változat érzékelést hajt végre (<option>-sV</option>), az + Nmap egy sor próbát hajt végre, melyek mindegyikéhez egy-egy gyakoriság + érték van rendelve 1 és 9 között. Az alacsonyabb számú próbák jól használhatók + az általánosan használt szolgáltatások széles skálája ellen, míg a magasabb + számúak ritkábban hasznosak. Ezzel a paraméterrel megadhatja, hogy mely + próbák legyenek végrehajtva. Minél magasabb a szám, annál valószínűbb, + hogy a szolgáltatás azonosítása pontosan sikerül. Azonban jó tudni, hogy + a magasabb intenzitás hosszabb végrehajtást is jelent. A szintnek 0 és 9 + közé kell esnie, az alapérték 7. Ha egy próba az <filename moreinfo="none">nmap-service-probes</filename> + fájlban egy kapuhoz van rendelve a <literal moreinfo="none">ports</literal> + irányelv alatt, akkor ezt a próbát az intenzitás beállításától függetlenül + végrehajtja a program. Ezzel biztosítható, hogy a nyitott 53-as kapukon + mindig lefutnak a DNS próbák és a 443-as kapukon az SSl próbák stb.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-light</option> (Tapintatos mód engedélyezése) + <indexterm significance="normal"><primary>--version-light</primary></indexterm> + </term> + <listitem> + + <para>Ez egy kényelmesebb megnevezése a + <option>--version-intensity 2</option> paraméternek. Ezzel a móddal + a változat érzékelés felgyorsítható, de a szolgáltatások azonosítása is + bizonytalanabbá válik.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-all</option> (Minden próba végrehajtása) + <indexterm significance="normal"><primary>--version-all</primary></indexterm> + </term> + <listitem> + + <para>A <option>--version-intensity 9</option> paraméter helyettesítése, + mellyel minden kapun minde próbát elvégez a program.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-trace</option> (A változat érzékelés nyomkövetése) + <indexterm significance="normal"><primary>--version-trace</primary></indexterm> + </term> + <listitem> + <para>Ennek a paraméternek a hatására az Nmap bőséges hibakeresési információt + nyomtat ki az éppen futó változat érzékelési próbáról. Ez egy részhalmaza + a <option>--packet-trace</option> paraméter által visszaadott információknak.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sR</option> (RPC letapogatás) + <indexterm significance="normal"><primary>--sR</primary></indexterm></term> + + <listitem> + <para>Ez az eljárás az Nmap legtöbb kapuletapogatási eljárásával + együtt dolgozik. Veszi az összes nyitva talált TCP/UDP kaput és + elárasztja őket a SunRPC program NULL parancsaival hogy meghatározza, + melyek az RPC kapuk és milyen programot futtatnak. Így pontosan + ugyanazokat az információkat szerezheti meg, melyeket az + <command moreinfo="none">rpcinfo -p</command> paranccsal, még akkor is + ha a célpont tűzfal mögött van (vagy TCP burkoló védi). Az RPC letapogatáshoz + jelenleg nem használhatók csalétkek. Ez a letapogatás automatikusan + lezajlik, ha a változat érzékelést (<option>-sV</option>) engedélyezi. + Mivel a változat érzékelés tartalmazza ezt a letapogatást és sokkal + átfogóbb eredményt ad, ezért a <option>-sR</option> paraméterre ritkán + van szükség.</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-os-detection"> + + <title>Operációs rendszer érzékelése<indexterm significance="normal"><primary>Operációs rendszer érzékelése</primary></indexterm></title> + + <para>Az Nmap egyik legjobban ismert tulajdonsága az operációs rendszerek + távoli felismerése a TCP/IP verem ujjlenyomata alapján. Az Nmap egy sor TCP + és UDP csomagot küld a célpont felé és gyakorlatilag a válaszok minden egyes + bitjét kielemzi. Tesztek tucatjainak végrehajtása után - mint például a TCP + ISN mintavételezés, a támogatott TCP beállítások, az IP ID mintavételezés + és a kezdeti ablakméret ellenőrzése - az Nmap összehasonlítja az eredményeket + az <filename moreinfo="none">nmap-os-db</filename> adatbázisban tárolt több, + mint 800 ismert ujjlenyomattal és egyezés esetén kiírja az adott operációs + rendszer részleteit. Minden ujjlenyomathoz tartozik egy kötetlen formátumú + szöveges leírás az operációs rendszerről és egy besorolás, mely megadja a + gyártó nevét (pl. SUN), az alap operációs rendszert (pl. Solaris), az operációs + rendszer genercióját (pl. 10) és az eszköz típusát (általános célú, útválasztó, + kapcsoló, játékkonzol stb.).</para> + + <para>Ha az Nmap nem tudja kitalálni az operációs rendszer típusát és a + feltételek jók (pl. található legalább egy nyitott és egy zárt kapu), az Nmap + megad egy webcímet, ahová elküdheti az ujjlenyomatot az operációs rendszer + típusával, feltéve ha biztos benne. Ezzel hozzájárulhat az ismert operációs + rendszerek adatbázisának bővítéséhez és segíthet az Nmap programot még pontosabbá + tenni mindenki számára.</para> + + <para>Az operációs rendszer érzékelésének során számos olyan adatot is + felhasznál a program, melyeket más folyamatok során már begyűjtött. Az egyik + az üzemidő felmérése, mely a TCP időbélyeg paramétert használja (RFC 1323) + annak kiderítésére, hogy az eszközt mikor indították újra legutoljára. Ez csak + azoknál az eszközöknél működik, melyek kiadják ezt az információt. A másik + a TCP sorszám megjósolhatóságának osztályozása. Ez azt méri, hogy mennyire + nehéz hamisított TCP kapcsolatot felépíteni a célponttal. Ez hasznos lehet + a forrás IP cím alapú bizalmi kapcsolatokat (távoli bejelentkezés, tűzfalak, + szűrők stb.) kihasználó támadások esetén a támadás valódi forrásának az + elrejtésében. Ezeket a megtévesztéseket ma már ritkán használják, de elég sok + rendszer sérülékeny velük szemben. Az aktuális bonyolultsági szám egy + statisztikai mintavételezés alapján alakul ki és változhat. Általában jobb + az angol nyelvű szöveges osztályozást használni, mint például a + <quote>méltó kihívás (worthy challenge)</quote> vagy az <quote>egyszerűen vicc (trivial joke)</quote>. + EZek csak a bőbeszédű (<option>-v</option>) üzemmód normál kimenetén jelennek + meg. Ha a bőbeszédű üzemmódot a <option>-O</option> paraméter mellett használja, + az IP ID sorszám előállításról is jelentést kap. A legtöbb eszköz a + <quote>növekményes (incremental)</quote> osztályba tartozik, ami azt jelenti, + hogy minden egyes elküldött csomagnál növelik az IP fejléc ID mezőjének értékét. + Ez sebezhetővé teszi őket néhány fejlett információ gyűjtési és megtévesztési + támadással szemben.</para> + + <para>Az operációs rendszer érzékelésének működésével, használatával és + testreszabásával kapcsolatban a <ulink url="https://nmap.org/osdetect/"></ulink> + címen talál egy leírást.</para> + + <para>Az operációs rendszer érzékelése és vezérlése a következő paraméterekkel + lehetséges:</para> + + <variablelist> + <varlistentry> + <term> + <option>-O</option> (Operációs rendszer érzékelésének engedélyezése) + <indexterm significance="normal"><primary>-O</primary></indexterm> + </term> + <listitem> + + + <para>Engedélyezi az operációs rendszer érzékelését a fentiekben leírt + módon. Választhatja a <option>-A</option> paramétert is, mellyel az + operációs rendszer érzékelése mellett néhány más dolgot is elvégezhet.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-limit</option> (Az operációs rendszer érzékelését + csak az ígéretes állomásokra korlátozza) + <indexterm significance="normal"><primary>--osscan-limit</primary></indexterm> + </term> + <listitem> + + <para>Az operációs rendszer érzékelése sokkal hatékonyabb, ha legalább + egy nyitott és egy zárt TCP kapu található. Ennek a paraméternek a + hatására az Nmap csak azokon a célpontokon hajtja végre az operációs + rendszer érzékelését, amelyek megfelelnek ennek a kritériumnak. Ezzel + rengeteg idő megtakarítható, különösen ha <option>-PN</option> letapogatást + hajt végre sok célponton. Ennek csak akkor van jelentősége, ha a + <option>-O</option> vagy a <option>-A</option> paraméterrel engedélyezte + az operációs rendszer érzékelését.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-guess</option>; <option>--fuzzy</option> (Eredmények találgatása) + <indexterm significance="normal"><primary>--osscan-guess</primary></indexterm> + </term> + <listitem> + + <para>Ha az Nmap nem talál pontosan egyező operációs rendszert, esetenként + felkínálhat lehetséges közelítő eredményeket. Alaphelyzetben ennek a + közelítő eredménynek nagyon közelinek kell lennie. Ezeknek a paramétereknek + a hatására az Nmap sokkal agreszívebben próbálja kitalálni az operációs + rendszer típusát. Az Nmap ezután is jelzi, ha nem talált tökéletes + egyezést és minden találgatás mellé megadja a valószínűséget is + (százalékosan).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--max-os-tries</option> (Maximális próbálkozások száma) + <indexterm significance="normal"><primary>--max-os-tries</primary></indexterm> + </term> + <listitem> + + + <para>Amikor az Nmap operációs rendszer érzékelést végez egy célponton + és nem talál tökéletes egyezést, általában ismét tesz egy próbát. + Alaphelyzet az Nmap ötször próbálkozik, ha a feltételek jók az ujjlenyomat + ellenőrzéshez és kétszer, ha nem jók. Ha alacsonyabb + <option>--max-os-tries</option> értéket ad meg (pl. 1), felgyorsíthatja + a folyamatot, de elmulaszthat egy olyan próbát, ami esetleg pontosan + azonosíthatja az operációs rendszert. Emellett egy magasabb érték + több próbát tesz lehetővé, ha a feltételek kedvezőek. Ez ritkán hasznos, + kivéve ha az adatbázis bővítése céljából szeretne pontosabb ujjlenyomatot + előállítani.</para> + + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + <refsect1 id="man-nse"> + <title>Nmap parancsfájl motor (Nmap Scripting Engine (NSE))<indexterm significance="normal"><primary>NSE</primary></indexterm></title> + <para> + Az Nmap parancsfájl motor (NSE) egyesíti az Nmap hatékony hálózatkezelését + a <ulink url="http://lua.org">Lua</ulink> könnyűsúlyú parancsnyelv + sokoldalúságával, így kínálva számtalan lehetőséget. A <ulink url="https://nmap.org/nse/"></ulink> + címen bőséges dokumentációt talál az NSE-ről (beleértve a programozói + felületet is). Az NSE célja, hogy hatékony környezetet biztosítson az + Nmap képességeinek kiterjesztéséhez és a felhasználók számára egyszerűbbé + tegye testreszabott tesztek létrehozását. Az NSE felhasználási területei: </para> + + <para> + <emphasis>Kiterjesztett változat érzékelés</emphasis> (kategória + <literal moreinfo="none">version</literal>) — Bár az Nmap rendelkezik egy saját + szolgáltatás- és változatérzékelő rendszerrel, mely hatékonyságában és működési + körében páratlan, egy bonyolultabb próbákat igénylő szolgáltatás felderítésekor + ez az erő nem használható ki. Például a Skype-Protocol 2-es változatának + azonosításához két független próbacsomagot kell elküldeni, melyre a beépített + rendszer nem képes. Egy egyszerű NSE parancsfájl végre tudja hajtani ezt a feladatot + és frissíteni tudja a kapukhoz tartozó szolgáltatások információit.</para> + + <para> + <emphasis>Károkozó érzékelés</emphasis> (kategóriák + <literal moreinfo="none">malware</literal> és <literal moreinfo="none">backdoors</literal>) + - Mind a támadók, mind a féregprogramok gyakran hagynak maguk után hátsó + bejáratokat - például a levélszemetek küldői gyakran használnak szokatlan kapukon + működő SMTP kiszolgálókat a leveleik továbbítására, vagy a betörők egyfajta + FTP kiszolgálót használva próbálnak meg hozzáférni kritikus adatokhoz. Pár sor + Lua kóddal ezek a rések könnyen felderíthetők.</para> + <para> + <emphasis>Sebezhetőség érzékelés</emphasis> (kategória + <literal moreinfo="none">vulnerability</literal>)- Az NSE képességeinek kihasználásával + könnyen azonosíthat olyan veszélyeket, mint például az alapértelmezett jelszavak, + vagy az SMTP kiszolgálók levél-átjátszási képessége tetszőleges tartományokból. + </para> + + <para> + <emphasis>Hálózati felderítés és Információgyújtés</emphasis> + (kategóriák <literal moreinfo="none">safe</literal>, <literal moreinfo="none">intrusive</literal> és + <literal moreinfo="none">discovery</literal>) — Egyrészt a parancsnyelv és + a hatékony aszinkron hálózati programfelület, másrészt a korábbi letapogatások + során begyűjtött információk segítségével az NSE lehetőséget nyújt ara, hogy + a célgépen futó szolgáltatásokhoz ügyfélprogramokat készítsen. Ezekkel az ügyfelekkel + olyan információkat is begyűjthet, mint például az elérhető NFS/SMB/RPC megosztások, + egy IRC hálózaton lévő csatornák vagy az éppen bejelentkezett felhasználók száma. + </para> + + <para> + A különböző felhasználási formák miatt és a megfelelő parancsfájl kiválasztásának + leegyszerűsítése érdekében minden parancsfájl tartalmaz egy mezőt, mellyel a + fenti kategóriák bármelyikébe (akár több kategóriába is) besorolható. A kategóriák + és parancsfájlok kapcsolatának nyilvántartására egy <filename moreinfo="none">script.db</filename> + nevű fájl is telepítésre kerül a parancsfájlok mellett. Így például ha egy + gépről szeretné megállapítani, hogy fertőzött-e valamilyen féregprogrammal, az + Nmap által biztosított egyik parancsfájl segítségével és az <command moreinfo="none">nmap --script=malware [célpont]</command> + parancs lefuttatásával ezt könnyen kiderítheti. A <literal moreinfo="none">version</literal> + kategóriába sorolt parancsfájlok mindig lefutnak, beleértve a parancsfájl letapogatás + kiválasztását is. A <filename moreinfo="none">script.db</filename> fájl maga + is egy Lua parancsfájl és a <option>--script-updatedb</option> paraméteren + keresztül frissíthető. </para> + + <para> + Minden NSE parancsfájl egy darab Lua kód, mely két szakaszból áll: egy teszt, + hogy az adott parancsfájl lefuttatható-e egy megadott állomáson vagy kapun + (ezek neve <literal moreinfo="none">hostrule</literal> vagy <literal moreinfo="none">portrule</literal>) + és egy <literal moreinfo="none">action</literal> szakasz, mely akkor fut le, + ha az előző teszt visszatérési értéke igaz. A parancsfájlok az Nmap által + korábban összegyűjtött legtöbb információhoz hozzáférnek. Ezek minden állomásnál + az IP cím, az állomás neve (ha elérhető) és az operációs rendszer. Ha a parancsfájl + célja egy kapu, akkor hozzáfér a kapu számához, a protokollhoz (<literal moreinfo="none">tcp</literal>, + <literal moreinfo="none">udp</literal> vagy <literal moreinfo="none">ssl</literal>), + a kapu mögött futó szolgáltatás nevéhez és feltételesen a változat érzékeléssel + megszerzett információkhoz. Az NSE parancsfájlok hagyományosan rendelkeznek + egy <literal moreinfo="none">nse</literal> kiterjesztéssel. Bár jelenleg nem + szükséges követnie ezt a szokást, ez a jövőben változhat. Az Nmap figyelmeztetni + fogja, ha egy fájlnak más a kiterjesztése. Az NSE-ről további bőséges dokumentációt + találhat (beleértve a programozói felület leírását) a <ulink url="https://nmap.org/nse/"></ulink> + címen. + </para> + + <variablelist> + <varlistentry> + <term><option>-sC</option> + <indexterm significance="normal"> + <primary>-sC</primary> + </indexterm> + </term> + + <listitem> + + <para>végrehajt egy parancsfájl alapú letapogatást az alap paransfájl + készlettel (egyenértékű a <option>--script=safe,intrusive</option> + paraméterrel</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--script <paransfájl kategória|könyvtár|fájlnév|all></option><indexterm significance="normal"><primary>--script</primary></indexterm></term> + +<listitem> +<para>Lefuttat egy parancsfájl alapú letapogatást (mint az <option>-sC</option>) a kiválasztott parancsfájlokkal. + A paraméterek lehetnek parancsfájl kategóriák, meghatározott parancsfájlok, parancsfájlokat tartalmazó + könyvtárak, melyek a célpont ellen lesznek kipróbálva. Az Nmap a paramétereket először kategóriáknak próbálja + értelmezni, azután fájloknak vagy könyvtáraknak. Abszolút útvonalak használata egyértelmű, a relatív útvonalak + keresési sorrendje az első találatig: <filename moreinfo="none">--datadir/</filename>; +<filename moreinfo="none">$(NMAPDIR)/</filename>; +<filename moreinfo="none">~user/nmap/</filename> (Windows alatt nem); +<filename moreinfo="none">NMAPDATADIR/</filename> vagy +<filename moreinfo="none">./</filename>. Ezen könyvtárak mindegyikében a <filename moreinfo="none">scripts/</filename> +alkönyvtár is ki lesz próbálva. Az <literal moreinfo="none">all</literal> paraméter megadásával az Nmap adatbázisában lévő +valamennyi parancsfájl végrehajtódik. +</para> + +<para>Ha egy megadott könyvtárat megtalál, az Nmap betölti az összes NSE parancsfájlt +(minden <literal moreinfo="none">nse</literal> kiterjesztésű fájlt) a könyvtárból. +A fájloknak <literal moreinfo="none">nse</literal> kiterjesztéssel kell rendelkezniük. +Az Nmap a parancsfájlok keresésekor nem vizsgálja meg az alkönyvtárakat. Ha egyedi +fájlnevet adott meg, akkor nem kötelező a fájlnak <literal moreinfo="none">nse</literal> +kiterjesztéssel rendelkeznie. +</para> + +<para>Alaphelyzetben az Nmap parancsfájlok az Nmap adatkönyvtárának <filename moreinfo="none">scripts</filename> +alkönyvtárában találhatóak. A <filename moreinfo="none">scripts/script.db</filename> +adatbázisban tárolt paranscfájlok indexeltek. Az adatbázis tartalmazza az összes +kategóriához tartozó összes parancsfájlt. Egy parancsfájl több kategóriához is +tartozhat.</para> + +</listitem> +</varlistentry> + + <varlistentry> + <term><option>--script-args=<név1=érték1,név2={név3=érték3},név4=érték4></option><indexterm significance="normal"><primary>--script-args</primary></indexterm></term> + +<listitem> +<para>Paramétereket adhat át az NSE parancsfájloknak. A paraméterek <literal moreinfo="none">név=érték</literal> +párokban kerülnek át a parancsfájlokhoz. Az átadott paraméterek egy Lua táblázatban +lesznek tárolva és feldolgozva, melyhez valamennyi parancsfájl hozzáfér. A nevek +karakterláncként lesznek kezelve (melyeknek alfanumerikus értékeknek kell lenniük) +és a <literal moreinfo="none">paraméter táblában</literal> kulcsként lesznek +használva. Az értékek lehetnek karakterláncok vagy maguk is táblázatok +(‘<literal moreinfo="none">{</literal>’ és ‘<literal moreinfo="none">}</literal>’ +közé zárva. Az altáblázatok segítségével egyes parancsfájloknál felülbírálhatók +a paraméterek (mondjuk ha minden parancsfájlhoz más felhasználói név/jelszó +párost akar használni). Például átadhatók a következő, vesszővel elválasztott +paraméterek: <literal moreinfo="none">user=bar</literal>,<literal moreinfo="none">password=foo</literal>, és +<literal moreinfo="none">anonFTP={password=nobody@foobar.com}</literal>. Ha egy +parancsfájl paramétereit felül akarja bírálni, használja az altáblázat indexelésére +a parancsfájl <literal moreinfo="none">azonosítóját (id)</literal>, mivel a +parancsfájlok csak így szerezhetnek tudomást a különleges paramétereikről.</para> +</listitem> + +</varlistentry> + + + <varlistentry> + <term><option>--script-trace</option> + <indexterm significance="normal"><primary>--script-trace</primary></indexterm></term> + + <listitem> + <para> + Ez a paraméter ugyanazt teszi, mint a <option>--packet-trace</option>, + csak egy ISO szinttel feljebb. Ha megadja ezt a aparamétert, akkor az + összes, parancsfájl által generált kimenő és bejövő forgalom nyomtatásra + kerül. A megjelenített információ tartalmazza a kommunikációs protokollt, + a forrást, a célt és az átvitt adatot. Ha az átvitt adatok több, mint + 5%-a nem nyomtatható, akkor a kimenet hexadecimális alakban jelenik meg.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--script-updatedb</option> + <indexterm significance="normal"><primary>--script-updatedb</primary></indexterm></term> + + <listitem> + + <para> + Frissíti a parancsfájl adatbázist, mely a kategória-cimkék és a + fájlnevek közti kapcsolatokat tárolja. Az adatbázis egy Lua + parancsfájl, mely akkor lesz értelmezve, amikor a <option>--script</option> + paraméterben megadott kategóriák közül ki kell választani a + szükséges parancsfájl készletet. Akkor kell lefutatni, amikor + megváltozik egy parancsfájl <literal moreinfo="none">kategória</literal> + mezője, ha új parancsfájlokat adott hozzá a készlethez, vagy + ha eltávolított néhány parancsfájlt a <filename moreinfo="none">scripts/</filename> + könyvtárból. + </para> + </listitem> + </varlistentry> + </variablelist> + + </refsect1> + + <refsect1 id="man-performance"> + <title>Időzítés és teljesítmény</title> + <para>Az Nmap fejlesztésének legfontosabb szempontja a teljesítmény. Egy + alapértelmezett letapogatás (<command moreinfo="none">nmap +<replaceable>gépnév</replaceable></command>) egy helyi hálózaton lévő gépen +nagyjából 0.2 másodpercig tart. Ez épp egy pislogásnyi idő, amely azonban egyre nő, +ahogy növekszik a célpontként meghatározott gépek száma. Továbbá bizonyos letapogatási +formák, mint például az UDP letapogatás, vagy a változat érzékelés számottevően +megnövelik a letapogatás időtartamát. Ugyanilyen hatása van bizonyos tűzfal +beállításoknak, különösen ha korlátozták az egységnyi idő alatt kibocsátható +válaszok számát. Bár az Nmap ezeknek a letapogatásoknak a felgyorsítására sok +párhuzamosítást és fejlett eljárásokat használ, a felhasználó alapjaiban befolyásolhatja +az Nmap működését. Szakértő felhasználók gondosan összeállított Nmap parancsokkal +rövid idő alatt megszerezhetik a számukra fontos információkat.</para> + + <para>A letapogatási idő csökkenthetők a nem kritikus tesztek elhagyásával és + az Nmap legfrissebb változatának telepítésével (gyakran történnek teljesítményt + növelő változtatások). Számottevő javulás érhető el az időzítési paraméterek + helyes megválasztásával is. Ezek a paraméterek az alábbiakban találhatóak.</para> + +<para>Néhány paraméternél használható a <literal moreinfo="none">time</literal> +kiegészítés is. Alaphelyzetben ez milliszekundumban értendő, de az érték után írt +'s’, ‘m’ vagy ‘h’ karakterekkel megadhat másodperces, perces vagy órás időtartamot +is. Például a <option>--host-timeout</option> paraméternek átadott <literal moreinfo="none">900000</literal>, +<literal moreinfo="none">900s</literal> és <literal moreinfo="none">15m</literal> +értékek mind ugyanazt jelentik.</para> + + <variablelist> + + <varlistentry> + <term> + <option>--min-hostgroup <méret></option>; + <option>--max-hostgroup + <érték></option> (A párhuzamosan letapogatható állomások száma) + <indexterm significance="normal"><primary>--min-hostgroup</primary></indexterm> + <indexterm significance="normal"><primary>--max-hostgroup</primary></indexterm> + </term> + <listitem> +<para>Az Nmap képes kapuletapogatást és változat érzékelést végezni egyszerre +több állomáson is. Az Nmap ezt úgy csinálja, hogy az IP tartományt csoportokra +osztja és egyszerre tapogat le egy csoportot. Általában a nagyobb csoportok +hatékonyabbak. A hátránya, hogy az egyes állomásokhoz tartozó eredmények csak +akkor érhetők el, ha végetért a teljes csoport letapogatása. Tehát ha az Nmap +50-es csoportmérettel lett elindítva, a felhasználó addig nem kap semmilyen eredményt +(kivéve a bőbeszédű üzemmód frissítési információit), amíg az első 50 állomás +letapogatása el nem készült.</para> + +<para>Ennek a konfliktusnak a feloldására az Nmap egy kompromisszumos megoldást +használ. Kezdésként csak egy 5 elemből álló csoportot hoz létre, így az első eredmények +gyorsan megérkeznek. Ezután a csoportméretet folyamatosan növeli, akár 1024-ig. +A kezdeti csoportméret pontos értéke a megadott paraméterektől függ. A hatékonyabb +működés érdekében az Nmap nagyobb csoportokat hoz létre az UDP letapogatásoknál, +illetve a csak néhány TCP kaput érintő letapogatásoknál.</para> + +<para>Ha a <option>--max-hostgroup</option> paraméterben megadta a maximális +csoportméretet, az Nmap ezt nem fogja túllépni. Ha megadja a <option>--min-hostgroup</option> +paramétert, az Nmap megpróbálja a csoportméretet efölött tartani. Az Nmap kialakíthat +kisebb csoportot is a megadottnál, ha nem áll rendelkezésre elegendő állomás a +megadott minimális csoportméret létrehozásához. Megadható mindkét határérték is, +hogy a csoportméret egy meghatározott sávban maradjon, de erre ritkán van szükség.</para> + +<para>Ezeknek a paramétereknek nincs hatásuk a letapogatásnak abban a részében, +mikor még csak az állomások felderítése történik. Ebbe beletartozik az egyszerű +visszhang letapogatás is(<option>-sP</option>). Az állomások felderítése mindig nagy +csoportokban történik a sebesség és a pontosság növelésének érdekében.</para> + +<para>Ezeknek a paramétereknek az elsődleges haszna egy megfelelő méretű minimális +csoprt létrehozása, így a teljes letapogatás gyorsabban lefut. Egy megszokott +választás a 256-os csoport, így egy hálózat C osztályú blokkokban tapogatható le. +Sok kaput tartalmazó letapogatásnál ezt a számot nem célszerű túllépni. Ha a letapogatás +csak néhány kapura korlátozódik, a csoportméret akár 2048-ig (vagy tovább) is +növelhető.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-parallelism <szám></option>; + <option>--max-parallelism + <szám></option> (Párhuzamos próbák beállítása) + <indexterm significance="normal"><primary>--min-parallelism</primary></indexterm> + <indexterm significance="normal"><primary>--max-parallelism</primary></indexterm> + </term> + <listitem> + +<para>Ezekkel a paraméterekkel meghatározható, hogy az állomások egy csoportja +felé párhuzamosan hány próba küldhető. Ez a kapuk letapogatására és az állomások +felderítésér egyaránt vonatkozik. Alapesetben az Nmap a hálózat teljesítménye +alapján kiszámítja az ideális - de folyton változó - párhuzamosság mértékét. Ha +az átvitel során csomagvesztés alakul ki, az Nmap lassít és kevesebb próbát küld +ki. Az ideális próbaszám a hálózat minőségének javulása alapján lassan emelkedik. +Ezekkel a paraméterekkel egy minimum és egy maximum határt szabhat ezeknek az +értékeknek. Ha a hálózat megbízhatatlannak bizonyul, a párhuzamosság értéke akár +1-re is csökkenhet, míg tökéletes feltételek esetén a párszázas értéket is elérheti.</para> + +<para>A legáltalánosabb felhasználás, mikor a <option>--min-parallelism</option> +értékét egynél magasabbra állítják, hogy felgyorsítsák a gyengébb teljesítményű +állomások vagy hálózatok letapogatását. Ezzel a paraméterrel eléggé kockázatos +játszani, mert egy túl magas érték ronthatja a pontosságot. Ennek a paraméternek +az állításával korlátozzuk az Nmap azon képességét, hogy a hálózat paraméterei +alapján dinamikusan szabályozza a párhuzamos működést. A 10-es érték elég jó lehet, +de érdemesebb ezt a paramétert csak a legvégső esetben beállítani.</para> + +<para>A <option>--max-parallelism</option> paraméter szintén beállítható 1-re, +ezzel megakadályozható, hogy az Nmap egyszerre egynél több próbát küldjön a célpont +felé. Ez jól használható a <option>--scan-delay</option> paraméterrel együtt +(lásd később), bár ez utóbbi önmagában is jól használható.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-rtt-timeout <idő></option>, + <option>--max-rtt-timeout <idő></option>, + <option>--initial-rtt-timeout + <idő></option> (Próbák érvényességi ideje) + <indexterm significance="normal"><primary>--min-rtt-timeout</primary></indexterm> + <indexterm significance="normal"><primary>--max-rtt-timeout</primary></indexterm> + <indexterm significance="normal"><primary>--initial-rtt-timeout</primary></indexterm> + </term> + <listitem> + +<para>Az Nmap kezel egy futó időzítőt annak meghatározására, hogy mennyi ideig +várjon egy próba esetén a válaszra, mielőtt feladná vagy újra megpróbálná. Ennek +a kiszámítása azok alapján történik, hogy az előző próbákra mennyi idő alatt érkezett +válasz. Ha a hálózati késleltetés jelentős és folyton változik, ez az érték akár +néhány másodpercre is nőhet. Az érték indulhat egy magasabb szintről is és egy +nem válaszoló állomás esetén ezen a szinten is marad.</para> + +<para> +Az alapértelmezettnél alacsonyabb <option>--max-rtt-timeout</option> és +<option>--initial-rtt-timeout</option> érték jelentősen lerövidíti a letapogatás +idejét. Ez különösen igaz a visszhang nélküli (<option>-PN</option>) letapogatásoknál +és az erős tűzfallal védett hálózatoknál. Azonban nem szabad túl agresszíven gondolkodni. +Túl alacsony értéknél a letapogatási idő meg is nőhet, mivel a próbák ideje lejár +és ismétlésre kerülnek, mialatt az előző próbákra adott válaszok még úton vannak +visszafelé.</para> + +<para>Ha az összes állomás egy helyi hálózaton található, 100 milliszekundum +<option>--max-rtt-timeout</option> érték eléggé agresszív. Ha menet közben útválasztó +is található, érdemesebb először az ICMP ping eszközzel, vagy más csomagösszeállító +programmal (például hping2) letesztelni a hálózat minőségét. Válassza ki 10 +csomagból a leghosszabb válaszidejűt. Az <option>--initial-rtt-timeout</option> +értéke lehet ennek a duplája, a <option>--max-rtt-timeout</option> pedig a három- +vagy négyszerese. A maximum RTT értékét általában nem érdemes 100 milliszekundumnál +kisebbre és 1 másodpercnél nagyobbra választani.</para> + +<para>A <option>--min-rtt-timeout</option> egy ritkán használt paraméter, de hasznos +lehet, ha a hálózat annyira megbízhatatlan, hogy az Nmap alapértékei is túl +agresszívnek bizonyulnak.</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>--max-retries <próbák></option> (Hányszor küldje újra + egy kapura a letapogatási próbát) + <indexterm significance="normal"><primary>--max-retries</primary></indexterm> + </term> + <listitem> + + +<para>Ha az Nmap nem kap választ aegy letapogatási próbára, ez jelentheti azt, +hogy a kaput tűzfallal szűrik, vagy a válasz elveszett a hálózatban. De jelentheti +azt is, hogy a kapu forgalma limitált és átmenetileg nem tud válaszolni. Így az Nmap +ismét elküldi a próbát. Ha az Nmap gyenge hálózati teljesítményt érzékel, ezt +többször is megismételheti mielőtt feladná a próbálkozást. Bár ez javítja a pontosságot, +de egyben elnyújtja a letapogatás idejét is. Ha a teljesítmény fontos szempont, +a letapogatás felgyorsítható az újrapróbálkozások számának korlátozásával. Megadhat +akár <option>--max-retries 0</option> értéket is, hogy megakadályozza az újrapróbálkozást, +azonban ez ritkán ajánlott.</para> + +<para>Az alapérték (ha nem használ <option>-T</option> sablont) 10 ismétlés. Ha +a hálózat megbízható és a célállomás forgalmát nem szabályozták, az Nmap általában csak +egyszer ismétli meg a próbát. Így a legtöbb célpont letapogatására nincs hatással, +ha a <option>--max-retries</option> értékét például 3-ra csökkenti. Ilyen alacsony +értékek csak a lassú (korlátozott) célállomások letapogatását gyorsítják fel. +Mivel adatokat veszíthet azzal, ha az Nmap korábban feladja egy kapu letapogatását, +ezért hasznosabb a <option>--host-timeout</option> paraméter időzítésének lejártát +megvárni és elveszteni a célponttal kapcsolatos valamennyi adatot, mint hiányos +adatokkal dolgozni.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--host-timeout <idő></option> (Lassú célpontoknál + ennyi idő után feladja a próbálkozást) + <indexterm significance="normal"><primary>--host-timeout</primary></indexterm> + </term> + <listitem> + + +<para>Néhány állomás letapogatása <emphasis>hosszú</emphasis> idő vesz igénybe. +Ezt okozhatja gyenge vagy megbízhatatlan hálózati eszköz vagy program, a forgalom +szabályozása, vagy egy szigorú szabályokkal rendelkező tűzfal. A letapogatott állomások +leglassabb néhány százaléka emésztheti fel a letapogatási idő nagyrészét. Néha +jobb csökkenteni az időveszteséget és átugrani az ilyen célpontokat már az elején. +Adja meg a <option>--host-timeout</option> paraméterben azt a maximális időt, +amennyit hajlandó egy-egy állomás válaszára várni. Hasznos lehet a <literal moreinfo="none">30m</literal> +beállítás, így az Nmap nem tölt fél óránál többet egy állomás vizsgálatával. Mivel +ezalatt az Nmap más állomásokat is vizsgálni tud, ezért ez a fél óra nem tekinthető +teljes veszteségnek. Ha egy állomásnak lejárt az időzítése, az Nmap kihagyja a +listából. Nen készül kapulista, nincs operációs rendszer felderítés és változat +érzékelés sem.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scan-delay <idő></option>; + <option>--max-scan-delay + <idő></option> (A próbák közti késleltetés) + <indexterm significance="normal"><primary>--scan-delay</primary></indexterm> + <indexterm significance="normal"><primary>--max-scan-delay</primary></indexterm> + </term> + <listitem> + +<para>Ezzel a paraméterrel utasíthatja az Nmap programot, hogy a célpont felé +küldendő próbák között a megadott időtartamot várjon. Ez különösen hasznos olyan +célpontok esetében, amelyeknek forgalma szabályozott. A Solaris állomások (sok +mással egyetemben) például az UDP letapogatási próbákra másodpercenként csak egy +ICMP választ küldenek. Minden további elküldött próba csak veszteség. A <option>--scan-delay</option> +értékének <literal moreinfo="none">1s</literal>-os beállításával az Nmap lelassítható +erre a sebességre. Az Nmap megpróbálja érzékelni a forgalomszabályzást és pontosan +beállítani a próbák közti késleltetést, azonban nem okoz gondot az érték kézzel +történő megadása sem.</para> + +<para>Amikor az Nmap növeli a próbák közti késleltetést, hogy megbirkózzon a +forgalomszabályzással, a letapogatás drámaian lelassul. A <option>--max-scan-delay</option> +paraméterrel megadhatja a két próba közti legnagyobb megengedett késleltetést. +Ha ezt az értéket túl alacsonyra választja, az feleslegesen újraküldött csomagokat +generál, ami egy szigorú forgalomkorlátozással működő állomásnál kihagyott kapukhoz +vezethet.</para> + +<para>A <option>--scan-delay</option> paraméter másik felhasználása a küszöbérték +figyelés alapján működő behatolás érzékelő és megelőző rendszerek (IDS/IPS) megtévesztése.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--defeat-rst-ratelimit</option> + <indexterm significance="normal"><primary>--defeat-rst-ratelimit</primary></indexterm></term> + <listitem> + +<para>Sok állomás hosszú késleltetésű forgalomszabályzást használ a kiküldhető +ICMP hibaüzenetek (például kapu nem elérhető) mennyiségének korlátozására. Néhány +rendszer ugyanilyen korlátozásokat használ az RST (reset) csomagok esetébenis. Ez +drámaian lelassítja az Nmap működését, mivel megpróbál alkalmazkodni ehhez a +korlátozáshoz. A <option>--defeat-rst-ratelimit</option> paraméterrel utasíthatja +az Nmap programot, hogy hagyja figyelmen kívül az ilyen korlátozásokat (például +a SYN letapogatásnál, mely a nem válaszoló kapukat nem <literal moreinfo="none">nyitott</literal> +állapotúként kezeli).</para> + +<para>Ennek a paraméternek a használata csökkenti a pontosságot, hiszen néhány kapu +elérhetetlennek bizonyul, mivel az Nmap nem vár eléggé sokáig a korlátozott RST +válaszra. Egy SYN letapogatásnál a válasz nélküli kapuk jelölése <literal moreinfo="none">szűrt</literal> +lesz ahelyett, hogy az RST csomag megvárásával <literal moreinfo="none">zárt</literal> +jelölést kapna. Ez a paraméter hasznos lehet akkor, ha csak a nyitott kapuk érdekesek +és nem kell különbséget tenni a <literal moreinfo="none">zárt</literal> és a +<literal moreinfo="none">szűrt</literal> kapuk között.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-T + <paranoid|sneaky|polite|normal|aggressive|insane></option> + (Időzítési sablon) + <indexterm significance="normal"><primary>--T</primary></indexterm> + </term> + <listitem> + + +<para>Bár az előzőekben tárgyalt időzítési paraméterek eléggé hatékonyak és +eredményesek, de néhány felhasználó túl bonyolultnak találhatja őket. Ráadásul +a megfelelő értékek kiválasztása gyakran hosszabb idő igényel, mint az optimalizálni +kívánt letapogatási művelet maga. Az Nmap felkínál egy egyszerűbb megközelítést is +hat időzítési sablon segítségével. Ezeket megadhatja a <option>-T</option> paraméterrel +és a számukkal (0–5) vagy a nevükkel. A sablonok nevei: <option>paranoid</option> (<option>0</option>), +<option>trükkös [sneaky])</option> (<option>1</option>), <option>udvarias [polite]</option> +(<option>2</option>), <option>normál [normal]</option> (<option>3</option>), <option>agresszív [aggressive]</option> +(<option>4</option>) és <option>rült [insane]</option> (<option>5</option>). Az +első kettő a behatolásérzékelők megtévesztésére szolgál. Az udvarias mód lassú +letapogatást végez kevesebb sávszélességet, valamint a célállomáson kevesebb +erőforrást használva. A normál mód az alapértelmezett, így a <option>-T3</option> +paraméter megadása semmilyen változást nem idéz elő. Az agresszív mód felgyorsítja +a letapogatást azt feltételezve, hogy gyors és megbízható hálózatot használ. +Végül az őrült mód azt feltételezi, hogy egy különösen gyors hálózatot használ és +a sebesség érdekében hajlandó feláldozni valamennyit a pontosságból.</para> + +<para>Ezekkel a sablonokkal megadható, hogy a letapogatás mennyire legyen agresszív, +de meghagyja a lehetőséget az Nmap programnak, hogy az időzítéseket maga álltsa be. +A sablonok ezen kívül elvégeznek néhány olyan sebesség beállítást, melyek önálló +paraméterként jelenleg nem adhatók meg. Például a <option>-T4</option> paraméter +megakadályozza, hogy a dinamikusan változó letapogatásikésleltetés a TCP kapukon +meghaladja a 10 milliszekundumot, míg a <option>-T5</option> paraméter ugyanezt +az értéket 5 milliszekundumra korlátozza. A sablonok mellett továbbra is használhatóak +az egyedi időzítési paraméterek és ezek minden esetben felülbírálják a sablonokban +beállított alapértékeket. Modern és megbízható hálózatok letapogatása esetén ajánlott +a <option>-T4</option> paraméter használata. Tartsa meg ezt a paramétert még akkor +is, ha egyedi időzítési paramétereket használ, így kihasználhatja a sablonban lévő +kisebb extra optimalizációt is.</para> + +<para>Ha tisztességes szélessávú vagy ethernet kapcsolatot használ, javasolt a +<option>-T4</option> paraméter állandó használata. Néhányan szeretik használni a +<option>-T5</option> paramétert, ám ez sok esetben túl agresszív lehet. Vannak akik +a <option>-T2</option> paramétert szeretik használni, mert azt gondolják, hogy így +kisebb valószínűséggel döntik romba a célpontot, vagy mert magukat általában udvarias +embernek gondolják. Ők azonban gyakran nem veszik észre, hogy a <option>-Tpolite</option> +valójában milyen lassú. Ez a letapogatás tízszer hosszabb is lehet, mint egy +alapértelemeztt. Az alapértelmezett időzítésnél (<option>-T3</option>) ritkán +fordulnak elő összeomlások vagy sávszélesség problémák, ezért vatoss letapogatásnál +célszerű ezt használni. Ezeknek a problémáknak a csökkentésére sokkal alkalmasabb +a változat érzékelés elhagyása, mint az időzítési paraméterek állítgatása.</para> + +<para>Bár a <option>-T0</option> és <option>-T1</option> paraméterek hasznosak +a behatolásérzékelők megtévesztésére, de sok célgép vagy kapu esetén a letapogatási +idő különösen elnyújtják. Ilyen hosszú letapogatások esetén hasznosabb az időzítési +paraméterek kézzel történő beállítása, mint a <option>-T0</option> és <option>-T1</option> +paraméterekhez tartozó konzerv értékek használata.</para> + +<para>A <option>T0</option> fő működési elve a letapogatások sorbaállítása, így +egyszerre csak egy kaput tapogat le és a minden próba után vár 5 percet. A +<option>T1</option> és <option>T2</option> beállításai hasonlóak, de a próbák +között csak 15 másodpercet, illetve 0.4 másodpercet várnak. A <option>T3</option> +az Nmap alapértelmezett beállítása, mely már használja a párhuzamos működést is. +A <option>T4</option> paraméter megfelel a <option>--max-rtt-timeout 1250 +--initial-rtt-timeout 500 --max-retries 6</option> beállításoknak és a TCP letapogatási +késleltetést 0.01 másodpercre állítja. A <option>T5</option> megfelel a +<option>--max-rtt-timeout 300 --min-rtt-timeout 50 +--initial-rtt-timeout 250 --max-retries 2 --host-timeout 15m</option> beállításoknak +és a TCP letapogatási késleltetést 5 milliszekundumra állítja.</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-bypass-firewalls-ids"> + <title>Tűzfal/IDS megkerülés és becsapás</title> + +<para>Az Internet úttörőinek szeme előtt egy teljesen nyitott hálózat lebegett, +egy univerzális IP címtartománnyal, melyben bárki bárkivel kapcsolatot létesíthet. +Itt bármely állomás információt kérhet és adhat bármely állomásnak. Az emberek +a munkahelyükről is elérhetik az otthoni rendszereiket, beállíthatják a légkondicionálót, +vagy kinyithatják az ajtó egy korán érkezett vendég előtt. Azonban a címtartomány +szűkössége és bizonyos biztonsági megfontolások miatt ennek a látomásnak a megvalósítása +nehézkessé vált. Az 1990-es évek elején a cégek tűzfalakat kezdtek telepíteni azzal +a kifejezett szándékkal hogy az információ szabad áramlását akadályozzák. Nagyméretű +hálózatokat kerítettek le az Internetről alkalmazás szűrőkkel, hálózati címfordítókkal +és csomagszűrőkkel. Az információ szabad áramát szigorúan szabályozott csatornákba +kényszerítették.</para> + +<para>A hálózati akadályok, mint például a tűzfalak nagymértékben megnehezítik egy +hálózat felderítését. Nehezebbé teszik a hétköznapi hálózati felderítést, mivel +éppen ebbőlk a célból tervezik őket. Mindezek ellenére az Nmap számos lehetőséget +kínál az ilyen komplex hálózatok megértéséhez és a szűrők működésének ellenőrzéséhez. +Arra is lehetőséget biztosít, hogy bizonyos gyengén kivitelezett védelmeket meg +tudjunk kerülni. Az egyik legjobb módszer a saját hálózat viselkedésének megértésére, +ha megpróbálja legyőzni azt. Helyezze magát a támadó szemszögébe és próbáljon ki +néhány technikát ebből a fejezetből a saját hálózata ellen. Indítson el egy FTP +ugráló letapogatást, egy üresjárati letapogatást, csomagtöredék alapú támadást vagy +próbáljon alagutat létrehozni egy saját proxy kiszolgálón keresztül.</para> + +<para>Hogy tovább korlátozzák a hálózati aktivitást, a társaságok egyre gyakrabban +ellenőrzik a hálózati forgalmat behatolásérzékelő rendszerekkel (IDS). Az összes +nagyobb ilyen rendszer olyan szabálykészlettel érkezik, mely képes érzékelni az +Nmap letapogatásait, mivel az ilyen letapogatások általában egy közelgő támadás +előjelei. A legtöbb ilyen terméket azóta átalakították behatolás <emphasis>megelőző</emphasis> +rendszerré (IPS), mivel képesek blokkolni a gyanúsnak ítélt forgalmat. A hálózati +rendszergazdák és az IDS rendszerek szállítóinak nagy bánata, hogy a csomagok +egyszerű analizálásával nagyon nehéz felismerni a rossz szándékot. A kellő türelemmel +és szakértelemmel rendelkező támadók az Nmap egyes paramétereinek a segítségével +könnyen megkerülhetik az IDS rendszereket. Ezalatt a rendszergazdáknak meg kell +küzdeniük a rengeteg téves jelzéssel, ahol az ártatlan forgalom könnyen válthat ki +riasztást vagy okozhatja a forgalom blokkolását.</para> + +<para>Időnként emberek azt javasolják, hogy az Nmap ne biztosítson lehetőséget +a tűzfalak megkerülésére, vagy az IDS rendszerek megtévesztésére. Azzal érvelnek, +hogy ezeket sokkal inkább fogja egy támadó rossz szándékkal használni, mint egy +rendszergazda a biztonság növelésére. Ezzel a logikával az a probléma, hogy a +támadók akkor is ezeket a módszereket fogják használni, legfeljebb más eszközt +fognak használni, vagy maguk írják bele azokat az Nmap programba. Eközben a +rendszergazdák egyre nehezebben fogják tudni ellátni a munkájukat. Sokkal jobb +védekezés egy modern, folyamatosan javított FTP kiszolgálót használni, mint egy +FTP ugráló letapogatást megvalósító program terjesztését megakadályozni. +</para> + +<para>Nincs varázsfegyver (vagy Nmap paraméter) a tűzfalak és IDS rendszerek +felismerésére és érzékelésére. Ehhez tudás és tapasztalat szükséges. Egy ilyen +témájú oktatóanyag meghaladja ennek a leírásnak a kereteit, így csak a kapcsolódó +paraméterek felsorolására és működésük rövid leírására szorítkozunk.</para> + +<variablelist> + <varlistentry> + <term> + <option>-f</option> (csomagok tördelése); + <option>--mtu</option> (a megadott MTU érték használata) + <indexterm significance="normal"><primary>-f</primary></indexterm> + <indexterm significance="normal"><primary>--mtu</primary></indexterm> + </term> + + <listitem> + <para>Az <option>-f</option> paraméter használatakor a megadott letapogatást + (beleértve a visszhang letapogatást is) az Nmap apróra tördelt IP csomagokkal + hajtja végre. Az alapötlet az, hogy osszuk el a TCP fejlécet több csomagra, + így nehezítve meg a csomagszűrők, behatolás érzékelők és más zavaró eszközök + dolgát a tevékenységünk felismerésében. Azonban legyen óvatos! Néhány + programnak gondot jelent az ilyen apró csomagok kezelése. A jó öreg + Sniffit szaglászóprogram az első töredék vételekor azonnal szegmentációs + hibát okoz. Ha egyszer adja meg ezt a paramétert, az Nmap 8 bájtos vagy + kisebb darabokra tördeli a csomagokat az IP fejléc után. Így egy 20 bájtos + TCP fejlécet 3 csomagra oszt fel, 2 csomag 8 bájtot, egy csomag pedig + a maradék 4 bájtot fog szállítani. Természetesen minden darab tartalmaz + egy IP fejlécet is. Ha ismét megadja az <option>-f</option> paramétert, + akkor 16 bájtos töredékeket fog használni (csökkentve a töredékek számát). + De megadhat saját eltolási értéket is az <option>--mtu</option> paraméter + használatával. Ne használja egyszerre az <option>-f</option> és az + <option>--mtu</option> paramétert. Az eltolás értékének mindig oszthatónak + kell lennie nyolccal. Míg egyes csomagszűrőkön és tűzfalakon nem csúsznak + át a töredezett csomagok (ilyen például a Linux rendszermag bekapcsolt + CONFIG_IP_ALWAYS_DEFRAG paramétere, mely sorba állítja a töredékeket), + addig egyes eszközök nem engedhetik meg ezt a teljesítmény csökkenést, + így tiltják ezt a lehetőséget. Ismét más rendszerek azért nem engedélyezik + ezt, mert a töredékek más-más útvonalon érkezhetnek a hálózatba. Néhány + forrásrendszer a rendszermagon belül állítja össze a kimenő csomagtöredékeket. + Erre példa a Linux iptables kapcsolatkövetési modulja. Hogy biztos lehessen + abban, hogy a kimenő csomagok töredezettek, futtasson a letapogatással + együtt egy szaglászót is, mint például a <application moreinfo="none">Wireshark</application>. + Ha az ön operációs rendszer ilyen problémákat okoz, próbálja ki a + <option>--send-eth</option> paramétert, így kikerülheti az IP réteget + és nyers ethernet kereteket küldhet el.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-D <csali1 [,csali2][,ME],...></option> + (Letapogatás álcázása csalikkal) + <indexterm significance="normal"><primary>-D</primary></indexterm> + </term> + <listitem> + <para>Végrehajt egy letapogatást csalik használatával, így a célpont + azt érzékeli, hogy a csaliként megadott állomások is letapogatással + próbálkoznak. Így az IDS rendszere egyidőben 5-10 letapogatást is érzékel, + de nem tudja eldönteni, melyik a valós IP cím és melyik az ártatlan csali. + Bár ezek legyőzhetőek útválasztón keresztüli nyomkövetéssel, a válasz + eldobásával és más aktív eljárásokkal, de általánosságban ez egy jó + mödszer a saját IP cím elrejtésére.</para> + + <para>A csalikat listáját vesszővel kell elválasztani. Kiegészítésként + használhatja a <literal moreinfo="none">ME</literal> paramétert a csalik + listájában, amely a saját IP címét jelenti. Ha a <literal moreinfo="none">ME</literal> + paramétert a hatodik vagy későbbi pozícióban használja, a legtöbb + letapogatás érzékelő (mint például a Solaris Scanlogd) valószínűleg + egyáltalán nem fogja megjeleníteni az IP címét. Ha nem használja a + <literal moreinfo="none">ME</literal> paramétert, az Nmap véletlen pozícióba + teszi az IP címét. Használhatja az RND paramétert, így véletlenszerű, + nem fenntartott IP címeket generálhat, vagy az RND:<szám> paramétert, + így a <szám>-nak megfelelő mennyiségű IP címet kap.</para> + <para>Jegyezze meg, hogy a megadott csaliknak élő állomásoknak kell + lenniük, különben véletlenül SYN elárasztásnak teheti ki a célpontokat. + Ráadásul eléggé könnyű kitalálni a támadó kilétét, ha az IP címek közül + csak egy él a hálózaton. Célszerűbb nevek helyett IP címeket használni + (így a csalik hálózatában lévő névszerverek naplóiban nem jelenik meg + az Ön IP címe).</para> + + <para>A program a csalikat mind a kezdeti visszhang letapogatásnál (az + ICMP, SYN, ACK vagy bármi más használatakor) mind a későbbi kapuletapogatásoknál + használja. Szintén használja a csalikat a távoli ooperációs rendszer + felderítésekor (<option>-O</option>). Nem használ csalikat a változat + érzékeléskor és a TCP kapcsolódási letapogatásnál.</para> + + <para>Nem érdemes túl sok csalit használni, mivel lelassíthatja a + letapogatást és ronthatja a pontosságot. Ezen kívül néhány szolgáltató + kiszűri a hamisított csomagokat, bár a legtöbb nem foglalkozik velük + egyáltalán.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-S <IP cím></option> (Hamis forráscím) + <indexterm significance="normal"><primary>-S</primary></indexterm> + </term> + <listitem> + + <para>Néhány esetben az Nmap nem tudja meghatározni az Ön forráscímét + (ilyenkor az Nmap figyelmeztető üzenetet küld). Ilyenkor az <option>-S</option> + paraméter után adja meg annak a hálózati illesztőnek az IP címét, amelyen + keresztül a csomagokat küldeni szeretné.</para> + + <para>Ennek a paraméternek egy másik lehetséges használata, hogy amikor + a célponttal elhiteti, hogy <emphasis>valaki más</emphasis> próbálja + meg letapogatni. Képzelje el, amikor egy cég azt látja, hogy egy + versenytársa próbálja meg letapogatni! Az ilyen használathoz általában + szükség van az <option>-e</option> és a <option>-PN</option> paraméterek + használatára is. Jegyezze meg, hogy ilyenkor semmilyen választ nem fog + kapni (azok a hamisított feladóhoz továbbítódnak), így az Nmap sem tud + használható jelentést készíteni.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-e <illesztő></option> (Megadott illesztő használata) + <indexterm significance="normal"><primary>-e</primary></indexterm> + </term> + <listitem> + + <para>Megadja, hogy az Nmap melyik illesztőt használja a csomagok + küldésére és fogadására. Az Nmap ezt automatikusan is képes érzékelni, + de meg is adhatja, ha ez nem történik meg.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--source-port <kapu száma>;</option> + <option>-g <portnumber></option> (A forráskapu számának hamisítása) + <indexterm significance="normal"><primary>--source-port</primary></indexterm> + <indexterm significance="normal"><primary>--g</primary></indexterm> + </term> + <listitem> + +<para>Az egyik meglepően elterjedt hiba, hogy a forráskapu alapján bíznak meg +egyes hálózati forgalmakban. Könnyű megérteni, miért is van ez így. Egy rendszergazda +szeretne beállítani egy új, csillogó tűzfalat. Azonban a beüzemelés után a felhasználók +elárasztják a panaszaikkal, mivel a programjaik többé nem működnek. Különösen +a névfeloldással lehetnek problémák, mivel a külső hálózatból érkező UDP DNS +válaszok többé nem tudnak belépni a belső hálózatba. Az FTP egy másik szokványos +példa. Aktív FTP átviteleknél a kiszolgáló megpróbál visszafelé felépíteni egy +kapcsolatot az ügyfél által kért fájl átviteléhez.</para> + +<para>Ezekre a problémákra léteznek biztonságos megoldások, akár alkalmazásszűrők, +akár protokoll feldolgozó tűzfalmodulok formájában. Sajnos vannak könnyebb, de kevésbé +biztonságos megoldások is. Felismervén, hogy a DNS válaszok az 53-as kapuról, az +aktív FTP kapcsolatok pedig a 20-as kapuról érkeznek, a legtöbb rendszergazda +beleesik abba a csapdába, hogy egyszerűen engedélyezi ezekről a kapukról a bejövő +forgalmat. Gyakran azt feltételezik, hogy a támadók nem ismerik fel és nem használják +ki ezeket a réseket. Máskor úgy gondolják, hogy ez csak ideiglenes lesz, amíg egy +biztonságosabb megoldást nem találnak. Aztán elfelejtkeznek róla.</para> + +<para>Ám nemcsak a túlterhelt rendszergazdák esnek ebbe a csapdába. Számos termék +érkezik ilyen gyenge szabályokkal. Különösen a Microsoft bűnös ebben a körben. +A Windows 2000 és Windows XP rendszerekkel szállított IPsec szűrő tartalamaz egy +hallgatólagos szabályt, mely beenged minden TCP és UDP forgalmat, mely a 88-as +forráskapuról érkezik (Kerberos). Egy másik, jól ismert eset volt a Zone Alarm +személyi tűzfalakban a 2.1.25-ös változatig meglévő hiba, mely beengedett minden +UDP forgalmat az 53-as (DNS) vagy a 67-es (DHCP) forráskapukról.</para> + +<para>Ezeknek a hibáknak a kihasználásához az Nmap a <option>-g</option> és a +<option>--source-port</option> paramétereket biztosítja (ezek egyenértékűek). +Csak adja meg kapu számát és amennyiben lehetséges, az Nmap ezzel a forráskapuval +fogja elküldeni a próbákat. Bizonyos operációs rendszer érzékelési tesztekhez az +Nmap más kaput fog használni a helyes működéshez. A DNS kérések végrehajtásakor +a <option>--source-port</option> beállításait nem veszi figyelembe, mivel ezeknek +a kéréseknek a kezelését az Nmap a rendszer könyvtárain keresztül végzi. A legtöbb +TCP letapogatás, beleértve a SYN letapogatást, valamint az UDP letapogatás teljes +mértékben támogatja ezt a paramétert.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--data-length <szám></option> (Véletlen adatok + hozzáfűzése az elküldött csomagokhoz) + <indexterm significance="normal"><primary>--data-length</primary></indexterm> + </term> + <listitem> + <para>Normális esetben az Nmap csak minimális méretű csomagokat küld, + melyek csak a fejlécet tartalmazzák. Így a TCP csomagjai általában csak + 40, az ICMP visszhang kérései pedig csak 28 bájt hosszúak. Ennek a + paraméternek a hatására az Nmap a megadott számú véletlen bájtot fűz + hozzá a legtöbb elküdött csomaghoz. Az operációs rendszer érzékelésének + (<option>-O</option>) próbacsomagjait ez nem érinti, mivel a pontosság + miatt itt állandó próbákra van szükség. A legtöbb visszhang és kapuletapogató + csomag azonban támogatja ezt a paramétert. Ez egy kicsit lelassítja a + letapogatást, viszont kevésbé lesz feltűnő.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--ip-options <S|R [útvonal]|L [útvonal]|T|U ... >;</option> + <option>--ip-options <hexa karakterlánc></option> (Csomagok küldése + megadott IP paraméterekkel) + <indexterm significance="normal"><primary>--ip-options</primary></indexterm> + </term> + <listitem> + <para>Az <ulink url="http://www.ietf.org/rfc/rfc0791.txt">IP protokoll</ulink> + leírása felkínál pár paramétert, melyek a csomagok fejlécében használhatók. + Nem úgy, mint a széles körben használt TCP paraméterek, az IP paraméterek + ritkán láthatók praktikus és biztonsági megfontolások miatt. Valójában az + Interneten lévő legtöbb útválasztó blokkolja a veszélyes paramétereket, mint + például a forrás nyomkövetést. Néhány esetben a paraméterek hasznosak lehetnek + a célpont felé vezető útvonal felderítésében és manipulálásában. Például + felhasználhatja az útvonal rögzítése paramétert a célponthoz vezető útvonal + felderítéséhez még akkor is, ha a hagyományos traceroute nem jár sikerrel. + Vagy ha a csomagokat bizonyos tűzfalak eldobják, megadhat egy másik útvonalat + a szigorú és a laza útválasztás paraméterekkel.</para> + + <para>Az IP paraméterek megadásának leghatásosabb módja ha az <option>--ip-options</option> + után beírja az értékeket. A hexadecimális értékeket mindig <literal moreinfo="none">\x</literal> + karakterrek kezdje, majd következik két szám. Bizonyos karaktereket ismételhet + is, ha a karakter után egy csillagot ír, majd megadja az ismétlések számát. + Például a <literal moreinfo="none">\x01\x07\x04\x00*36\x01</literal> egy olyan + hexadecimális karaktersorozat, mely 36 darab NULL bájtot tartalmaz.</para> + + <para>Az Nmap a paraméterek megadásának egy rövidebb módját is felkínálja. + Az <literal moreinfo="none">R</literal>, <literal moreinfo="none">T</literal> + és <literal moreinfo="none">U</literal> paraméterekkel az útvonal rögzítését, + az időbélyeg rögzítését, vagy mindkettőt kérheti. A laza vagy a szigorú + útvonalkövetést az <literal moreinfo="none">L</literal> vagy az <literal moreinfo="none">S</literal> + paraméter és az IP címek szóközzel elválasztott listájának megadásával + kérhet.</para> + + <para>Ha szeretné nyomon követni az elküdött és a beérkezett csomagokban + lévő beállításokat, adja meg a <option>--packet-trace</option> paramétert. + Ha további információkra és példákra kíváncsi az Nmap programban használható + IP paraméterekkel kapcsolatban, látogasson el a + <ulink url="https://seclists.org/nmap-dev/2006/q3/0052.html"></ulink> címre. + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--ttl <érték></option> (A time-to-live mező beállítása) + <indexterm significance="normal"><primary>--ttl</primary></indexterm> + </term> + <listitem> + + <para>Beállítja az IPv4 csomag time-to-live mezőjét a megadott értékre.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--randomize-hosts</option> (Összekeveri a célpontok sorrendjét) + <indexterm significance="normal"><primary>--randomize-hosts</primary></indexterm> + </term> + <listitem> + + <para>Utasítja az Nmap programot, hogy a letapogatás előtt keverje össze + a célpontok csoportjának sorrendjét (maximum 16384 gép). Ez a letapogatást + kevésbé nyilvánvalóvá teszi a legtöbb hálózati megfigyelő rendszer számára, + különösen ha egy lassú időzítéssel is kombinálja. Ha nagyobb csoportot + szeretne megkeverni, állítsa be a PING_GROUP_SZ paramétert az <filename moreinfo="none">nmap.h</filename> + fájlban és fordítsa le újra a programot. Egy másik megoldás lehet, ha + a célpontok címeit egy lista letapogatással szedi össze (<option>-sL -n -oN + <replaceable>fájlnév</replaceable></option>), megkeveri azokat egy Perl + parancsfájllal, majd ezt a listát adja át az Nmap programnak az + <option>-iL</option> paraméterrel.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--spoof-mac <MAC cím, előtag vagy gyártó + name></option> (MAC cím hamisítása) + <indexterm significance="normal"><primary>--spoof-mac</primary></indexterm> + </term> + <listitem> + + <para>Arra utasítja az Nmap programot, hogy az összes elküldött ethernet + kerethez a megadott MAC címet használja. Ehhez a paraméterhez automatikusan + hozzáadódik a <option>--send-eth</option> paraméter is, így biztosítva, + hogy az Nmap valójában ethernet-szintű csomagokat küldjön. A MAC cím + több formátumban is megadható. Ha a megadott paraméter egy egyszerű + <quote>0</quote>, az Nmap egy teljesen véletlen MAC címet választ arra + munkamenetre. Ha a megadott karakterlánc páros számú hexadecimális számból + áll (a párok elválaszthatók kettősponttal), az Nmap ezt a MAC címet fogja + használni. Ha kevesebb, mint 12 számjegyet adott meg, az Nmap a fennmaradó + részt véletlen értékekkel tölti fel. Ha a megadott érték nem 0 vagy + hexadecimális karakterlánc, az Nmap elvégez egy keresést az <filename moreinfo="none">nmap-mac-prefixes</filename> + fájlban, hogy található-e a megadott karakterlánccal megegyező nevű + gyártó (ez érzékeny a nagy- és kisbetűkre). Ha talál egyezést, az Nmap + a gyártó OUI mezőjét fogja használni (3 bájtos előtag), a fennmaradó 3 + bájtot pedig véletlen értékekkel tölti fel. Példák az érvényes <option>--spoof-mac</option> + paraméterre: <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> és <literal moreinfo="none">Cisco</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--badsum</option> (Csomagok küldése hamis TCP/UDP ellenőrző összeggel) + <indexterm significance="normal"><primary>--badsum</primary></indexterm> + </term> + <listitem> + + + <para>Az Nmap a csomagokat hamis TCP vagy UDP ellenőrző összeggel fogja + elküldeni a célpont felé. Mivel elméletileg minden állomás IP verme az + ilyen csomagokat helyesen eldobja, ezért bármilyen válasz tűzfalra vagy + IDS rendszerre utal, melyek nem foglalkoznak az ellenőrző összeg + vizsgálatával. További részletek erről a technikáról a <ulink url="https://nmap.org/p60-12.txt"></ulink> + címen.</para> + </listitem> + </varlistentry> + + </variablelist> + + </refsect1> + + <refsect1 id="man-output"> + <title>Kimenet</title> + + <para>Bármely biztonsági eszköz csak annyira hasznos, amennyire az általa + generált kimenet használható. A bonyolult tesztek és eljárások keveset érnek, + ha az eredményt nem áttekinthető és érhető módon szolgáltatják. Az Nmap programot + annyiféle módon használják emberek és más programok is, hogy egyféle kimeneti + formátum nem lenne megfelelő mindenkinek. Így az Nmap többféle formátumot + kínál, beleértve az emberek számára hasznos interaktív módot és a programok + által könnyen feldolgozható XML-t.</para> + +<para>A különböző kimeneti formátumok mellett az Nmap néhány paraméterrel lehetővé +teszi mind a kimenet, mind a hibakeresési információk bőbeszédűségének beállítását. +A kimenti adatok mind a szabványos kimenetre, mind egy megadott nevű fájlba kerülhetnek. +Az Nmap képes a fájlhoz hozzáfűzni, vagy felülírni azt. A kimeneti fájlok alkalmasak +még megszakított letapogatások folytatására is.</para> + +<para>Az Nmap kimenete öt különféle formátumban érhető el. Az alapértelmezett +elnevezése az <literal moreinfo="none">interaktív kimenet</literal> amely a szabványos +kimenetre kerül (stdout). Létezik még egy <literal moreinfo="none">normál kimenet</literal> +is, mely csak annyiban különbözik az <literal moreinfo="none">interaktívtól</literal>, +hogy kevesebb futásidejű üzenetet és figyelmeztetést jelenít meg, mivel feltételezi, +hogy az adatok elemzésére csak a letapogatás befejezése után kerül sor, nem pedig +folyamatosan.</para> + +<para>Az XML kimenet az egyik legfontosabb kimeneti típus, mivel átalakítható HTML +dokumentummá, könnyen feldolgozható más programmal (mint például az Nmap grafikus +felülete) és adatbázisba is importálható.</para> + +<para>A fennmaradó két kimeneti típus közül az egyik az egyszerű +<literal moreinfo="none">grep által feldolgozható kimenet</literal>, mely a legtöbb +információt jeleníti meg az állomásról egy sorban, a másik a <literal moreinfo="none">sCRiPt KiDDi3 0utPUt</literal> +azoknak, akik úgy gondolnak magukra, mint |<-r4d.</para> + +<para>Míg az alapértelmezett interaktív kimenetnek nincs parancssori kapcsolója, +a többi négy formátum ugyanazt a szintaktikát használja. Egyetlen paraméterük van, +az eredményt tároló fájl neve. Több formátum is megadható egyszerre, de minden +formátum csak egyszer használható. Például ha szeretné később átnézni a normál +kimenet eredményét és egyben szeretné programmal is feldolgozni, akkor használhatja +az <option>-oX myscan.xml -oN myscan.nmap</option> paramétert. Bár ebben a fejezetben +az egyszerűség kedvéért rövid fájlneveket használunk (például <literal moreinfo="none">myscan.xml</literal>), +általában ajánlott hosszabb, jelentéssel bíró neveket használni. A nevek kiválasztásakor +figyeljünk a személyes igényekre, használhatunk dátumot, vagy egy-két szavas rövid +leírást a munka típusáról.</para> + +<para>Bár ezekkel a paraméterekkel az eredményeket fájlba menthetjük, az Nmap ettől +függetlenül az interaktív kimenetet megjeleníti a szabvány kimeneten. Például az +<command moreinfo="none">nmap -oX myscan.xml célpont</command> parancs az XML kimenetet a +<filename moreinfo="none">myscan.xml</filename> fájlba írja és egyben megjeleníti +azt az interaktív kimenetet is, amely az <option>-oX</option> paraméter megadása +nélkül is megjelent volna. Ez a viselkedés megváltoztatható, ha a kimeneti formátum +után egy kötőjelet ad meg paraméterként. Ilyenkor az Nmap kikapcsolja az interaktív +kimenetet és ehelyett a szabványos kimeneti adatfolyamba írja a kívánt kimeneti +formátumú adatokat. Így az <command moreinfo="none">nmap -oX - célpont</command> +parancs csak a stdout eszközre küldi el az XML kimenetet. A komoly hibákat továbbra +is a normál hibakimenetre, a stderr eszközre írja.</para> + +<para>Az Nmap más paramétereitől eltérően a naplófájl paraméterjelzője (mint az +<option>-oX</option>) és a fájlnév vagy kötőjel között kötelező szóközt hagyni. +Ha ezt elhagyja és például az <option>-oG-</option> vagy az <option>-oXscan.xml</option> +formátumban adja meg a paramétert, akkor kompatibilitási okoból egy <emphasis>normál formátumú</emphasis> +kimeneti fájl jön létre <filename moreinfo="none">G-</filename> és <filename moreinfo="none">Xscan.xml</filename> +nevekkel.</para> + +<para>Ezek közül a paraméterek közül mindegyik támogatja a fájlnevek +<function moreinfo="none">strftime()</function>-szerű átalakítását. A +<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> és +<literal moreinfo="none">%Y</literal> megadása pontosan azt jelenti, mint az +<function moreinfo="none">strftime()</function> függvényben. A <literal moreinfo="none">%T</literal> +ugyanazt jelenti, mint a <literal moreinfo="none">%H%M%S</literal>, a <literal moreinfo="none">%R</literal> +ugyanazt jelenti, mint a <literal moreinfo="none">%H%M</literal> és a <literal moreinfo="none">%D</literal> +ugyanazt jelenti, mint a <literal moreinfo="none">%m%d%y</literal>. ha a <literal moreinfo="none">%</literal> +jelet bármilyen más karakter követi, akkor azt a karaktert egyszerűen tovább adja +(például a <literal moreinfo="none">%%</literal> egy százalékjelet ad tovább). +Így az <option>-oX 'scan-%T-%D.xml'</option> paraméter megadása egy XML fájlt hoz +létre <filename moreinfo="none">scan-144840-121307.xml</filename> névvel.</para> + +<para>Az Nmap lehetőséget biztosít a letapogatás részletességének beállítására, +valamint arra, hogy az eredményeket hozzáfűzze egy meglévő fájlhoz ahelyett, hogy +felülírná. A paraméterek leírása az alábbiakban található.</para> + +<variablelist><title>Nmap kimeneti formátumok</title> + <varlistentry> + <term> + <option>-oN <fájlnév></option> (normál kimenet) + <indexterm significance="normal"><primary>-oN</primary></indexterm></term> + <listitem> + + <para>Ezzel a kéréssel a <literal moreinfo="none">normál kimenet</literal> + a megadott nevű fájlba lesz átirányítva. Ahogy a fentiekben olvashatta, + ez egy kicsit különbözik az <literal moreinfo="none">interaktív kimenettől</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oX <fájlnév></option> (XML kimenet) + <indexterm significance="normal"><primary>-oX</primary></indexterm></term> + <listitem> + + + <para>Ezzel a kéréssel az <literal moreinfo="none">XML kimenet</literal> + a megadott nevű fájlba lesz átirányítva. Az Nmap a fájlhoz hozzáfűz egy + dokumentum típusmeghatározást si (DTD), így az XML feldolgozók ellenőrizhetik + az Nmap XML kimenetét. Bár ez elsősorban programbeli felhasználásra + készült, de segítséget nyújt az embereknek is az Nmap XML kimenetének + értelmezésében. A DTD leírja a formátum érvényes elemeit és gyakran + felsorolja a tulajdonságokat és azok értékeit is. A legfrissebb változat + mindig megtalálható a <ulink url="https://nmap.org/data/nmap.dtd"></ulink> + címen.</para> + + <para>XML egy stabil formátumot kínál, mely programból könnyen + feldolgozható. Ingyenes XML feldolgozók az összes nagyobb programozási + nyelvhez elérhetők, beleértve a C/C++, Perl, Python és Java nyelveket. + Az Nmap kimenetének feldolgozására és működésének vezérlésére a legtöbb + nyelvhez már készültek kapcsolódó munkák. Perl CPAN példák találhatók a + <ulink url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> + és a <ulink url="http://www.nmapparser.com">Nmap::Parser</ulink> címeken. + A legtöbb esetben az XML az előnyben részesített formátum.</para> + + <para>Az XML kimenet hivatkozik egy XSL stíluslapra, melynek segítségével + az eredmények HTML formátumra alakíthatók. Ezt a legegyszerűbben úgy + használhatja, hogy az XML kimenetet betölti egy böngészőbe. Alapesetben + ez csak azon a gépen működik, amelyen az Nmap fut (vagy egy hasonlóan + beálított gépen), mivel az <filename moreinfo="none">nmap.xsl</filename> + elérési útvonala bele van drótozva a programba. A <option>--webxml</option> + vagy a <option>--stylesheet</option> paraméterek megadásával olyan hordozható + XML fájlt hozhat létre, mely bármely Internetre kötött gépen megjeleníthető + HTML formátumban.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oS <fájlnév></option> (Szkriptkölyök kimenet) + <indexterm significance="normal"><primary>-oS</primary></indexterm></term> + <listitem> + + <para>A szkriptkölyök kimenet olyan, mint az interaktív kimenet, csak még átmegy + egy végső feldolgozáson. Így jobban passzol az olyan hekkerek lelkivilágához, + akik előzőleg lenézték az Nmap egységes helyesírását és a nagybetűk használatát. + Gyenge humorérzékűek úgy gondolhatják, hogy ez a paraméter nevetségessé akarja + tenni a szkriptkölyköket ahelyett, hogy <quote>segítené őket</quote>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oG <fájlnév></option> (grep által feldolgozható kimenet) + <indexterm significance="normal"><primary>-oG</primary></indexterm></term> + <listitem> + + +<para>Ez a kimenti formátum maradt a végére, mivel ez egy elavult formátum. Az XML +sokkal használhatóbb és tapasztalat felhasználók számára majdnem olyan kényelmes is. +Az XML egy szabvány, melyet feldolgozó programok százai támogatnak, míg a greppel +feldolgozható kimenet csak egy egyszerű barkácsolás. Az XML könnyen bővíthető az +új Nmap tulajdonságok támogatásához, míg ezek a bővítések a helyhiány miatt gyakran +kimaradnak a greppel feldolgozható kimentből.</para> + +<para>Mindezek ellenére a greppel feldolgozható kimenet még mindig nagyon népszerű. +Egyszerű formátumú, mely minden egyes célpont adatait egyetlen sorban adja vissza, +egyszerűen kereshető és feldolgozható olyan alap Unix eszközökkel, mint a grep, +awk, cut, sed, diff, vagy egy Perl parancsfájl. Emellett használható még egyszeri +tesztek parancssorból történő elvégzésére. Az összes nyitott SSH kapujú, vagy +Solaris operációs rendszert futtató állomás megtalálásához elég egy egyszerű greppel +feldolgozható kimenet, melyet az awk vagy a cut programba átirányítva kinyomtatható +a kívánt információ.</para> + +<para>A greppel feldolgozható kimenet megjegyzésekből (#-tel kezdődő sorok) és a +célpont soraiból áll. A célpont sora 6 címzett mezőt tartalmaz, tabulátorral +elválasztva, kettősponttal a végén. A mezők nevei: <literal moreinfo="none">Állomás (Host)</literal>, +<literal moreinfo="none">Kapuk (Ports)</literal>, <literal moreinfo="none">Protokollok (Protocols)</literal>, +<literal moreinfo="none">Mellőzött állapot (Ignored State)</literal>, +<literal moreinfo="none">Operációs rendszer (OS)</literal>, +<literal moreinfo="none">Sorozatszám (Seq Index)</literal>, <literal moreinfo="none">IP ID</literal> +és <literal moreinfo="none">Állapot (Status)</literal>.</para> + +<para>Ezek közül a mezők közül általábana legfontosabb a <literal moreinfo="none">Ports</literal>, +mely információkat tartalmaz az összes érdekes kapuról. Ez egy vesszővel elválasztott +lista. Minden egyes bejegyzés egy-egy kaput jelent és hét almezőt tartalmaz perjellel +(/) elválasztva. Az almezők nevei: <literal moreinfo="none">Kapuszám (Port number)</literal>, +<literal moreinfo="none">Állapot (State)</literal>, <literal moreinfo="none">Protokoll (Protocol)</literal>, +<literal moreinfo="none">Tulajdonos (Owner)</literal>, <literal moreinfo="none">Szolgáltatás (Service)</literal>, +<literal moreinfo="none">SunRPC info</literal> és <literal moreinfo="none">Változat (Version info)</literal>.</para> + +<para>Csakúgy, mint az XML kimenet esetében, ez a leírás ennek a kimenetnek sem +tartalmazza a teljes leírását. Az Nmap greppel feldolgozható kimenetének részletes +leírása a <ulink url="http://www.unspecific.com/nmap-oG-output"></ulink> címen található.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oA <alapnév></option> (Minden kimeneti formátum használata) + <indexterm significance="normal"><primary>-oA</primary></indexterm></term> + <listitem><para> + + Kényelemből használhatja az <option>-oA <replaceable>alapnév</replaceable></option> + paramétert, ha a kimenetet egyszerre akarja normál, XML és greppel + feldolgozható formátumban. Ezek az <replaceable>alapnév</replaceable>.nmap, + az <replaceable>alapnév</replaceable>.xml és az <replaceable>alapnév</replaceable>.gnmap + fájlokban tárolódnak. Mint minden programban, itt is megadhatja a fájlok + tárolásának teljes útvonalát, mint például <filename moreinfo="none">~/nmaplogs/foocorp/</filename> + Unix vagy <filename moreinfo="none">c:\hacking\sco</filename> Windows + rendszereknél.</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Részletezés és hibakeresési paraméterek</title> + <varlistentry> + <term> + <option>-v</option> (Növeli az adatok részletességét) + <indexterm significance="normal"><primary>-v</primary></indexterm> + </term> + <listitem> + + <para>Ha növeli a részletességi szintet, az Nmap több információt jelenít + meg a folyamatban lévő letapogatásról. A nyitott kapu a megtalálásuk + sorrendjében jelennek meg. Ha az Nmap úgy érzékeli, hogy a letapogatás + pár percnél többet fog igénybe venni, akkor megjelenít egy várható befejezési + időpontot is. Ha még részletesebb információkra kiváncsi, használja + kétszer a paramétert.</para> + + <para>A legtöbb változás csak az interaktív kimenetet érinti és csak + néhány van hatással a normál és a szkriptkölyök kimenetre. A többi kimenet + gépi feldolgozásra készült, így ezekben az Nmap alaphelyzetben is részletes + információkat jelenít meg. Ennek ellenére van pár változás ezekben a + módokban, mivel néhány részlet elhagyása jelentősen csökkenti a kimenet + méretét. Például a greppel feldolgozható kimenetben a megjegyzések csak + a részletes módban jelennek meg, mivel ezek eléggé hosszúak lehetnek.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-d [szint]</option> (Növeli vagy beállítja a hibakeresés szintjét) + <indexterm significance="normal"><primary>-d</primary></indexterm> + </term> + <listitem> + + +<para>Ha a részletes üzemmód nem ad visza elegendő információt, a hibakeresési +mód képes elárasztani adatokkal! Csakúgy, mint a részletes üzemmód (<option>-v</option>), +a hibakeresési üzemmód is egy parancssori kapcsolóval aktivizálható (<option>-d</option>), +melynek szintje a kapcsoló többszóri megadásával növelhető. Emellett a hibakeresés +szintjét a <option>-d</option> paraméternek átadott értékkek is beállíthatja. +Például a <option>-d9</option> 9-es szintet állít be. Ez a legmagasabb beállítható +szint és - hacsak nem egy egyszerű letapogatás futtat - több száz sornyi információt +fog kinyomtatni.</para> + +<para>A hibakeresési kimenet hasznos lehet, ha valamilyen hibát gyanít az Nmap +program működésében, vagy egyszerűen csak szeretné megérteni, hogy mit és miért +csinál az Nmap. Mivel ez a funkció elsősorban fejlesztőknek készült, ezért a legtöbb +megjelenő információ nem is értelmezhető könnyen. Kaphat például egy ilyen kimenetet: +<computeroutput moreinfo="none">Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 +rttvar: 14987 to: 100000</computeroutput>. Ha nem ért egy sort egyszerűen figyelmen +kívül hagyhatja, megnézheti a program forráskódjában vagy segítséget kérhet a +fejlesztői levelező listán (nmap-dev). Néhány sor könnyen érthető, de a hibakeresési +szint növekedésével az üzenetek egyre homályosabbá válnak.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--packet-trace</option> (Az elküldött és fogadott csomagok és adatok követése) + <indexterm significance="normal"><primary>--packet-trace</primary></indexterm> + </term> + <listitem> + + <para>Az Nmap minden elküldött és fogadott csomagról összegzést készít. + Ezt a legtöbbször csak hibakeresésre használják, de hasznos lehet olyanoknak + is, akik szeretnék megérteni, hogy mi történik a színfalak mögött. Hogy + elkerülhető legyen sorok százainak a megjelenítése, érdemes korlátozni + a letapogatni kívánt kapuk számát például a <option>-p20-30</option> + paraméter megadásával. Ha csak a változat érzékelés részleteire kiváncsi, + használja a <option>--version-trace</option> paramétert.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--open</option> (Csak a nyitott (vagy valószínűleg nyitott) kapukat mutatja) + <indexterm significance="normal"><primary>--open</primary></indexterm> + </term> + <listitem> + + + +<para>Néha csak azok a kapuk érdekesek, amelyekhez kapcsolódni lehet (<literal moreinfo="none">nyitott</literal>) +és nincs szükség agyonzsúfolni a kimenetet a <literal moreinfo="none">zárt</literal>, +<literal moreinfo="none">szűrt</literal> és <literal moreinfo="none">zárt|szűrt</literal> +kapukkal. A kimenet testreszabása általában a letapogatás után történik a +<application moreinfo="none">grep</application>, <application moreinfo="none">awk</application> +vagy <application moreinfo="none">Perl</application> használatával, de a rengeteg +kérés hatására ez a lehetőség is bekerült a programba. Az <option>--open</option> +megadásával csak a <literal moreinfo="none">nyitott</literal>, <literal moreinfo="none">nyitott|szűrt</literal> +és a <literal moreinfo="none">szűretlen</literal> állapotú kapuk kerülnek a kimenetre. +Ezeknek a kapuknak a kezelése ugyanúgy történik, mint normál esetben, így a +<literal moreinfo="none">nyitott|szűrt</literal> és a <literal moreinfo="none">szűretlen</literal> +kapuk csak egy számként jelennek meg, ha túl sok van belőlük. +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--iflist</option> (Illesztők és útvonalak listázása) + <indexterm significance="normal"><primary>--iflist</primary></indexterm> + </term><listitem> + <para>Megjeleníti az Nmap által érzékelt illesztőket és rendszerútvonalakat. + Ez hasznos lehet az útválasztási problémák hibakeresésében vagy az eszközök + hibás kezelésekor (például az Nmap egy PPP kapcsolatot ethernet kapcsolatnak + érzékel).</para> </listitem> </varlistentry> + + <varlistentry> + <term> + <option>--log-errors</option> (A hibák/figyelmeztetések rögzítése a normál módú kimenti fájlba) + <indexterm significance="normal"><primary>--log-errors</primary></indexterm> + </term> + <listitem> + + <para>Az nmap által kiírt hibák és figyelmeztetések általában csak a + képernyőn (interaktív kimenet) jelnnek meg, a normál formátumú kimenti + fájlt érintetlenül hagyva. Ha szeretné ezeket az üzeneteket a normál + kimenti fájlban is látni, adja meg ezt a paramétert. Ez hasznos lehet + akkor, ha nem figyeli az interaktív kimenetet vagy valamilyen hibát + próbál megtalálni. Az üzenetek az interaktív kimeneten ezután is megjelennek. + Ez a paraméter nem működik azokkal a hibákkal, melyek a hibásan megadott + parancssori kapcsolókkal függnek össze, mivel az Nmap ilyenkor még nem + készítette elő a kimenti fájlt. Ráadásként néhány NMap hiba/figyelmeztetés + más rendszert használ és nem támogatja ezt a paramétert. Ennek a paraméternek + az alternatívája lehet az interaktív kimenet (beleértve a szabvány + hibakimenetet) átirányítása egy fájlba. Míg a legtöbb Unix parancshéj + ezt könnyen lehetővé teszi, Windows alatt ez egy kissé bonyolult lehet.</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Vegyes kimeneti paraméterek</title> + + <varlistentry> + <term> + <option>--append-output</option> (Felülírás helyett hozzáfűzés a kimenti fájlhoz) + <indexterm significance="normal"><primary>--append-output</primary></indexterm> + </term> + <listitem> + + <para>Ha megad egy fájlnevet egy kimeneti paraméterhez (mint például + az <option>-oX</option> vagy az <option>-oN</option>), akkor a program + alapértelmezettként felülírja a meglévő fájlt. Ha szeretné megtartani + a fájl tartalmát és hozzáfűzni az új eredményeket, adja meg az + <option>--append-output</option> paramétert. Így futtatva az Nmap programot + az összes megadott fájlhoz hozzáfűzi az új eredményeket a felülírás + helyett. Ez az XML kimenettel (<option>-oX</option>) nem működik jól + együtt, így ez - a fájl kézzel történő javításáig - feldolgozási problémát + okozhat.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--resume <fájlnév></option> (Megszakított letapogatás folytatása) + <indexterm significance="normal"><primary>--resume</primary></indexterm> + </term> + <listitem> + + + <para>Néhány kiterjedt NMap letapogatás nagyon hosszú időt vehet igénybe + - néha napokig tarthat. Néhány letapogatás nem mindig fut le a befejezésig. + Bizonyos korlátozások megakadályozhatják, hogy az Nmap munkaidő alatt + fusson, leállhat a hálózat, az Nmap programot futtató gép elszenvedhet + egy nem várt újraindítást, de maga az Nmap is összeomolhat. Az Nmap + futását a rendszergazda is megszakíthatja a <keycap moreinfo="none">ctrl-C</keycap> + lenyomásával. A teljes letapogatás újraindítása a kezdetektől nem éppen + egy kívánt állapot. Szerencsére ha a normál (<option>-oN</option>) vagy + a greppel feldolgozható (<option>-oG</option>) naplófájl megmaradt, a + felhasználó utasíthatja az Nmap programot, hogy folytassa a letapogatást + a megszakítás pontjánál. Egyszerűen adja meg a <option>--resume</option> + kapcsolót és a normál/greppel feldolgozható kimeneti fájl nevét. Más + paraméter nem adható meg, mivel az Nmap a kimeneti fájl feldolgozásával + visszaállítja az eredeti paramétereket. Egyszerűen írja be az + <command moreinfo="none">nmap --resume + <replaceable>fájlnév</replaceable></command> parancsot. Az Nmap az új + adatokat hozzáfűzi az előző futtatás során megadott fájlhoz. Az XML + kimeneti formátumnál a folytatás nem támogatott, mivel a két futtatás + eredményének egy fájlba történő összevonása eléggé bonyolult lehet.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--stylesheet <útvonal vagy cím></option> (XSL stíluslap beállítása az XML kimenet átalakításhoz) + <indexterm significance="normal"><primary>--stylesheet</primary></indexterm> + </term> + <listitem> + + <para>Az XML fájlok megtekintéséhez és átalakításához HTML formátumra az + Nmap rendelkezik egy saját XSL stíluslappal <filename moreinfo="none">nmap.xsl</filename> + néven. Az XML kimenet tartalmaz egy <literal moreinfo="none">xml-stylesheet</literal> + irányelvet, mely az Nmap programmal eredetileg telepített <filename moreinfo="none">nmap.xml</filename> + fájlra hivatkozik (Windowson az aktuális munkakönyvtárra). Egyszerűen + töltse be az XML kimenetet egy modern webböngészőbe és az automatikusan + betölti az <filename moreinfo="none">nmap.xsl</filename> fájlt és + megjeleníti az eredményeket. Ha más stíluslapot akar használni, adja + meg azt a <option>--stylesheet</option> kapcsoló után. A teljes útvonalat + vagy címet meg kell adnia. Egy megszokott hivatkozás a <option>--stylesheet + https://nmap.org/data/nmap.xsl</option>. Ez arra utasítja a böngészőt, + hogy az Insecure.org címről töltse be a legfrissebb stíluslapot. A + <option>--webxml</option> paraméterrel ugyanezt a hatást érheti el, csak + kevesebbet kell gépelni és megjegyezni. Az Insecure.org címről letöltött + stíluslap segítségével olyan gépen is megtekintheti az eredményeket, melyen + nincs telepítve az Nmap (és így az <filename moreinfo="none">nmap.xsl</filename> sem). + Gyakran a cím megadása sokkal hasznosabb, de biztonsági okokból az + alapértelmezett a helyi fájlrendszeren lévő <filename moreinfo="none">nmap.xsl</filename> + használata.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--webxml</option> (Stíluslap betöltése az Insecure.Org oldalról) + <indexterm significance="normal"><primary>--webxml</primary></indexterm> + </term> + <listitem> + + <para>Ez egy kényelmesebb megvalósítása a <option>--stylesheet https://nmap.org/data/nmap.xsl</option> + kapcsolónak.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--no-stylesheet</option> (Kihagyja az XSL stíluslap meghatározását az XML fájlból) + <indexterm significance="normal"><primary>--no-stylesheet</primary></indexterm> + </term> + <listitem> + + <para>Megakadályozza, hogy az Nmap az XML kimeneti fájlban stíluslap + bejegyzést hozzon létre. Kimarad az <literal moreinfo="none">xml-stylesheet</literal> + irányelv.</para> + </listitem> + </varlistentry> + + + + </variablelist> + </refsect1> + + <refsect1 id="man-misc-options"> + <title>Vegyes paraméterek</title> + <para>Ebben a szakaszban néhány olyan fontos (és kevésbé fontos) paraméter + leírása található, melyek nem igazán illenek más fejezetekbe.</para> + + <variablelist> + <varlistentry> + <term> + <option>-6</option> (IPv6 letapogatás engedélyezése) + <indexterm significance="normal"><primary>-6</primary></indexterm> + <indexterm significance="normal"><primary>IPv6</primary></indexterm> + </term> + <listitem> + + <para>2002 óta az Nmap legnépszerűbb tulajdonsága az IPv6 támogatás. + A visszhang letapogatás (csak TCP), a kapcsolódási letapogatás és a + változat érzékelés támogatott IPv6 formátumban is. A parancs leírása + megegyezik az általánossal, a különbség annyi, hogy a <option>-6</option> + kapcsolót is meg kell adnia. Természetesen IPv6 formátumú címet kell megadnia, + ha nem állomásnevet akar használni. Egy cím például így nézhet ki: + <literal moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, + tehát javasolt inkább az állomásnév használata. A kimenet ugyanúgy néz + ki, mint általában, az egyetlen különbség az <quote>érdekes kapuknál</quote> + látható IPv6 cím.</para> + + <para>Bár az IPv6 nem terjedt el viharos gyorsasággal a világban, egyes + országokban (általában Ázsiában) egyre inkább ezt használják és a legtöbb + modern operációs rendszer támogatja. Ha az Nmap programot IPv6 támogatással + akarja használni, akkor mind a forrás- mind a célgépnek IPv6 beállítást + kell használnia. Ha az Ön szolgáltatója (mint a legtöbb általában) nem + biztosít Önnek IPv6 címet, igénybe vehet ingyenes alagút szolgáltatókat, + melyek kiválóan működnek együtt az Nmap programmal. Az egyik legjobb + ezek közül a BT Exact. + Szintén jól használható még a Hurricane Electric nevű szolgáltató + <ulink url="http://ipv6tb.he.net/"></ulink>. Szintén népszerűek az + Ipv6-ról Ipv4-re alagutat biztosító szolgáltatók is.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-A</option> (Agresszív letapogatási paraméterek) + <indexterm significance="normal"><primary>-A</primary></indexterm> + </term> + <listitem> + + <para>Ez a paraméter további agresszív és fejlett tulajdonságokat engedélyez. + Jelenleg engedélyezi az operációs rendszer érzékelést (<option>-O</option>), + a változat érzékelést (<option>-sV</option>), a parancsfájl alapú letapogatást + (<option>-sC</option>) és az útvonalkövetést (<option>--traceroute</option>). + A jövőben további funkciók is bekerülhetnek a körbe. A cél az, hogy a + felhasználók számára egy átfogó letapogatási készletet biztosítson anélkül, + hogy rengeteg paramétert kelljen megjegyezni. Ez a paraméter csak a + tulajdonságokat engedélyezi. Nincs hatással az időzítési paraméterekre + (mint a <option>-T4</option>) vagy a részletességi paraméterekre (<option>-v</option>), + melyeket külön be kell állítani.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--datadir <könyvtárnév></option> (Saját Nmap adatfájl helyének megadása) + <indexterm significance="normal"><primary>--datadir</primary></indexterm> + </term> + <listitem> + + <para>Az Nmap futás közben az alábbi fájlokból szerez be speciális + információkat: <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> és + <filename moreinfo="none">nmap-os-db</filename>. Ha ezek közül bármelyik + fájlnak külön megadja az elérhetőséggét (a <option>--servicedb</option> + vagy a <option>--versiondb</option> paraméterrel), akkor ezt a fájlt ezen + a helyen fogja keresni. Ezután az NMap ezeket a fájlokat a <option>--datadir</option> + paraméterben megadott könyvtárban fogja keresni (ha megadta). Azokat a + fájlokat, melyeket ott nem talál meg, az NMAPDIR környezeti változóban + megadott könyvtárban fogja keresni. Ezután következik az <filename moreinfo="none">~/.nmap</filename> + fájl (csak POSIX rendszereknél) vagy az Nmap futtatható állomány helye + (csak Win32 rendszereknél), majd a fordításnál megadott helyek, mint + például az <filename moreinfo="none">/usr/local/share/nmap</filename> + vagy az <filename moreinfo="none">/usr/share/nmap</filename>. Legvégső + próbaként az Nmap körülnéz az aktuális könyvtárban.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--servicedb <szolgáltatásfájl></option> (Saját szolgáltatásfájl megadása) + <indexterm significance="normal"><primary>--servicedb</primary></indexterm> + </term> + <listitem> + + <para>Arra utasítja az Nmap programot, hogy a megadott szolgáltatásfájlt + használja a programmal szállított <filename moreinfo="none">nmap-services</filename> + fájl helyett. Ennek a paraméternek a használata gyors letapogatást + (<option>-F</option>) eredményez. További információkért nézze meg a + <option>--datadir</option> paraméter leírását.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--versiondb <szolgáltatás próbafájl></option> (Saját szolgáltatás próbafájl megadása) + <indexterm significance="normal"><primary>--versiondb</primary></indexterm> + </term> + <listitem> + + <para>Arra utasítja az Nmap programot, hogy a megadott szolgáltatás + próbafájlt használja a programmal szállított <filename moreinfo="none">nmap-service-probes</filename> + fájl helyett. További információkért nézze meg a <option>--datadir</option> + paraméter leírását.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-eth</option> (Nyers ethernet keretek küldése) + <indexterm significance="normal"><primary>--send-eth</primary></indexterm> + </term> + <listitem> + + <para>Arra utasítja az Nmap programot, hogy a csomagokat az ethernet + (adatkapcsolati) rétegen keresztül küldje a magasabb IP (hálózati) réteg + helyett. Alaphelyzetben a Nmap a futattó környezethez legjobban illeszkedő + megoldást választja. Unix rendszereken általában a nyers csatolók (IP réteg) + adják a leghatékonyabb eredményt, míg a Windows rendszereknél szükség + van az ethernet keretekre, mivel a Microsoft tiltja a nyers csatolók + használatának támogatását. Unix rendszereken az Nmap ennek a paraméternek + a megadása ellenére is a nyers IP csomagokat fogja használni, ha nem + talál más választási lehetőséget (például nincs ethernet kapcsolat).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-ip</option> (Küldés az IP rétegen keresztül) + <indexterm significance="normal"><primary>--send-ip</primary></indexterm> + </term> + <listitem> + + <para>Arra utasítja az Nmap programot, hogy a csomagokat IP csatolókon + keresztül küldje az alacsonyabb szintű ethernet keretek helyett. Ez az + előzőekben tárgyalt <option>--send-eth</option> paraméter kiegészítője.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--privileged</option> (Feltételezi, hogy a felhasználó teljes jogosultsággal rendelkezik) + <indexterm significance="normal"><primary>--privileged</primary></indexterm> + </term> + <listitem> + + <para>Az Nmap feltételezi, hogy a felhasználó elegendő jogosultsággal + rendelkezik olyan műveletek elvégzéséhez, mint az adatküldés nyers csatolókon + keresztül, csomagok fürkészése és más olyan műveletek, melyek általában + rendszergazdai jogosultságokat igényelnek a Unix rendszereken. Alapesetben + az Nmap kilép, ha ilyen műveletre utasítják és a geteuid() függvény nem + nullát ad vissza. A <option>--privileged</option> paraméter jól használható + a Linux rendszermag képességeivel és olyan rendszerekkel, amelyek lehetővé + teszik, hogy alacsonyabb jogosultságú felhasználók nyers csomagokat küldjenek. + Figyeljen arra, hogy ezt a paramétert még a jogosultságot igénylő műveletek + (SYN letapogatás, operációs rendszer érzékelés stb.) paraméterei előtt + meg kell adnia. A <option>--privileged</option> paraméterrel egyenértékű + az NMAP_PRIVILEGED környezeti változó beállítása.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--unprivileged</option> (Feltételezi, hogy a felhasználónak nincs elegendő jogosultsága) + <indexterm significance="normal"><primary>--unprivileged</primary></indexterm> + </term> + <listitem> + + + <para>Ez a <option>--privileged</option> paraméter ellentéte. Az Nmap + úgy kezeli a felhasználót, mint akinek nincs jogosultsága nyers csatolók + használatára és csomagok kifürkészésére. Hasznos lehet tesztelésnél, + hibakeresésnél vagy amikor az operációs rendszer nyers hálózati funkciói + sérültek. Az <option>--unprivileged</option> paraméterrel egyenértékű + az NMAP_UNPRIVILEGED környezeti változó beállítása.</para> + + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--release-memory</option> (Kilépés előtt felszabadítja a memóriát) + <indexterm significance="normal"><primary>--release-memory</primary></indexterm> + </term> + <listitem> + + <para>Ez a paraméter csak a memóriaszivárgási hibák keresésekor hasznos. + Arra utasítja az Nmap programot, hogy a kilépés előtt szabadítsa fel a + lefoglalt memóriát, így a memóriaszivárgás könnyen felderíthető. Normál + helyzetben az Nmap átugorja ezt, mivel a program leállításakor az operációs + rendszert ezt amúgy is végrehajtja.</para> + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>-V</option>; <option>--version</option> (Programváltozat megjelenítése) + <indexterm significance="normal"><primary>-V</primary></indexterm> + <indexterm significance="normal"><primary>--version</primary></indexterm> + </term> + <listitem> + <para>Megjeleníti az Nmap program változatszámát és kilép.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-h</option>; <option>--help</option> (Súgólap megjelenítése) + <indexterm significance="normal"><primary>-h</primary></indexterm> + <indexterm significance="normal"><primary>--help</primary></indexterm> + </term> + <listitem> + <para>Megjelenít egy rövid súgót a leggyakrabban használt parancsokról + és paraméterekről. Ugyanezt a képernyőt kapja, ha az Nmap parancsot + paraméterek nélkül futtatja le.</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-runtime-interaction"> + <title>Futásidejű kapcsolat<indexterm significance="normal"><primary>futásidejű kapcsolat</primary></indexterm></title> + + <para>Az Nmap program futása alatt minden billentyű lenyomása rögzítésre kerül. + Így kapcsolat létesíthető a programmal anélkül, hogy le kellene állítani majd + újraindítani azt. Bizonyos billentyűkkel módosíthat egyes paramétereket, míg + a többi billentyű lenyomásával egy állapotjelentés jelenik meg az éppen futó + letapogatásról. ltalános szabály, hogy <emphasis>a kisbetűk növelik</emphasis> + a megjelenített információ mennyiségét, míg <emphasis>a nagybetűk csökkentik</emphasis> + azt. Segítségért használja a ‘<emphasis>?</emphasis>’ billentyűt.</para> + <variablelist> + <varlistentry> + <term> + <option>v</option> / <option>V</option> + </term> + <listitem> + <para>Növeli / csökkenti a megjelenített információk mennyiségét</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>d</option> / <option>D</option> + </term> + <listitem> + <para>Növeli / csökkenti a hibakeresési adatok mennyiségét</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>p</option> / <option>P</option> + </term> + <listitem> + <para>Bekapcsolja / kikapcsolja a csomagok nyomkövetését</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>?</option> + </term> + <listitem> + <para>Megjeleníti a futásidejű súgót</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + Bármely más billentyű + </term> + <listitem> + <para>Megjelenít egy hasonló állapotjelentést:</para> + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), + 5 undergoing Service Scan</para> + <para>Service scan Timing: About 28.00% done; ETC: 16:18 + (0:00:15 remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-examples"> + <title>Példák</title> + <para>Ebben a fejezetben néhány példa következik az Nmap használatára, az + egyszerűbb rutinfeladatoktól a bonyolultabb, beavatottabbak számára valókig. + Néhány IP cím és tartománynév azért került be a példákba, hogy a dolgok eléggé + konkrétak legyenek. Ezeket helyettesítse olyan IP címekkel és nevekkel, melyek + a <emphasis>saját hálózatából</emphasis> származnak. A program készítői nem + hiszik, hogy a kapuletapogatás valójában illegális vagy illegális lehet. Ennek + ellenére néhány rendszergazda nem veszi szívesen a kéretlen letapogatásokat + és panaszt emelhet. A legjobb előzetesen megszerezni a szükséges engedélyeket.</para> + + <para>Tesztelési célból kipróbálhatja a <literal moreinfo="none">scanme.nmap.org</literal> + állomást. Ez az engedély kizárólag az Nmap programmal történő letapogatásra + vonatkozik és nem terjed ki ártó kódok kipróbálására vagy szolgáltatásmegtagadási + (DOS) támadások végrehajtására. A hálózat kapacításának megőrzése érdekében + kérjük, hogy ne indítson napi néhány tucatnál több letapogatást. Ha valaki + visszaélne ezzel az ingyenes tesztelési lehetőséggel, a tulajdonosok leállítják + a rendszert és az Nmap a következő hibaüzenettel fog visszatérni: + <computeroutput moreinfo="none">Failed to resolve given hostname/IP:scanme.nmap.org</computeroutput>. + Ugyanezek az engedélyek vonatkoznak a <literal moreinfo="none">scanme2.nmap.org</literal>, + <literal moreinfo="none">scanme3.nmap.org</literal> és a további állomásokra is, + bár ezek jelenleg még nem üzemelnek.</para> + + <para> + <command moreinfo="none">nmap -v scanme.nmap.org</command> + </para> + <para>Ezzel a paranccsal letapogatható az összes foglalt TCP kapu a + <literal moreinfo="none">scanme.nmap.org</literal> állomáson. A <option>-v</option> + paraméter engedélyezi a bőbeszédű üzemmódot.</para> + <para> + <command moreinfo="none">nmap -sS -O scanme.nmap.org/24</command> + </para> + <para>Elindít egy lopakodó SYN letapogatást minden olyan állomáson, mely a + Scanme állomás <quote>C osztályú</quote> címterében található és elérhető. + Emelett megpróbálja kideríteni, hogy az elérhető állomások milyen operációs + rendszert futtatnak. A SYN letapogatás és az operációs rendszer felderítése + miatt ennek a parancsnak a futtatásához rendszergazdai jogosultságok szükségesek.</para> + <para> + <command moreinfo="none">nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</command> + </para> + + <para>Felderíti az állomásokat a 198.116-os B osztályú hálózat mind a 255 + 8 bites alhálózatának alsó felében és végrehajt rajtuk egy TCP letapogatást. + Ellenőrzi, hogy a rendszereken fut-e SSH, DNS, POP3 vagy IMAP szolgáltatás a + szabványos kapukon, illetve fut-e bármilyen szolgáltatás a 4564-os kapun. Ha + bármely kapu nyitva található, egy változat érzékeléssel meghatározzuk az + azon futó alkalmazás típusát.</para> + + <para> + <command moreinfo="none">nmap -v -iR 100000 -PN -p 80</command> + </para> + + <para>Arra utasítja az Nmap programot, hogy válasszon ki véletlenszerűen + 100 000 állomást és keressen rajtuk webkiszolgálót (80-as kapu). Az állomások + felderítését a <option>-PN</option> paraméterrel kikapcsoljuk, mivel egy kapu + letapogatásakor felesleges először néhány próbával kideríteni, hogy az állomás + elérhető-e.</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>Visszhang próbák nélkül letapogat 4096 IP címet webkiszolgáló után kutatva, + a kimenetet pedig elmenti greppel feldolgozható és XML formátumban.</para> + + </refsect1> + + <refsect1 id="man-bugs"> + <title>Hibák</title> + + <para>Akárcsak a program készítője, az Nmap sem tökéletes. De segíthet jobbá + tenni, ha elküldi a felfedezett hibák leírását, vagy javítást készít hozzájuk. + Ha az Nmap nem az elvárásai szerint működik, először mindig szerezze be a legfrissebb + változatot a <ulink url="https://nmap.org"></ulink> címről. Ha a probléma továbbra + is fennáll, nézzen utána, hogy felfedezték-e már mások is. Keressen rá a + Google-ban a hibaüzenetre vagy böngéssze át az Nmap fejlesztői listát a + <ulink url="https://seclists.org/"></ulink> címen. Olvassa végig ezt a leírást + is. Ha nem talál semmit, küldjön egy hibajelentést az <email>dev@nmap.org</email> + címre. Írjon le mindent, amit a hibával kapcsolatban tapasztalt. Adja meg + pontosan a használt Nmap változatot és a futtató operációs rendszer változatát + is. Az dev@nmap.org címre küldött hibajelzések és az Nmap használatával + kapcsolatos kérdések valószínűleg gyorsabban megválaszolásra kerülnek, mintha + azokat közvetlenül a program készítőjének (Fyodor) küldené.</para> + + <para>A hibajavítások sokkal hasznosabbak, mint a hibajelentések. A hibajavítások + elkészítésével kapcsolatban tanácsokat kaphat a <ulink url="https://nmap.org/data/HACKING"></ulink> + címen. A hibajavítások elküldhetők az nmap-dev listára (ez a javasolt), vagy + közvetlenül a készítőnek is.</para> + </refsect1> + + <refsect1 id="man-author"> + <title>Szerző</title> + <para>Fyodor + <email>fyodor@nmap.org</email> + (<ulink url="https://insecure.org"></ulink>) + </para> + + <para>Az évek során emberek százai járultak hozzá értékes munkájukkal az Nmap + programhoz. Ezek részletezése megtalálható a <filename moreinfo="none">CHANGELOG</filename> + fájlban, mely az Nmap program terjesztése mellett elérhető a + <ulink url="https://nmap.org/changelog.html"></ulink> címen is.</para> + + </refsect1> + + <refsect1 id="man-legal"> + <title>Jogi nyilatkozat</title> + +<refsect2 id="nmap-copyright"> + <title>Nmap szerzői jog és licenc<indexterm significance="normal"><primary>szerzői jog</primary></indexterm> + <indexterm significance="normal"><primary>licenc</primary></indexterm> + <indexterm significance="normal"><primary>GNU GPL</primary></indexterm></title> + + +<para>Nmap Biztonsági letapogató (C) 1996-2007 Insecure.Com LLC. Az Nmap az +Insecure.Com LLC bejegyzett védjegye. Ez egy szabad program; szabadon továbbadható +és/vagy módosítható a Szabad Szoftver Alapítvány által kiadott GNU General Public +License 2-es változatának irányelvei szerint. Ez biztosítja Önnek a jogot, hogy +bizonyos feltételek esetén ezt a programot használja, módosítsa és továbbadja. Ha +az Nmap technológiáját üzleti célú programba kívánja beágyazni, más licencre van +szüksége (írjon a <email>sales@insecure.com</email> címre). Több, biztonsági +letapogatót forgalmazó cég kapott ilyen licencet az Nmap technológiájának +használatára az állomás felderítés, kapupásztázás, operációs rendszer érzékelés +és szolgáltatás/változat érzékelés területén.</para> + +<para>A GPL fontos korlátozásokat alkalmaz a <quote>származtatott munkákkal</quote> +kapcsolatban, bár jelenleg a kifejezés nincs részletesen meghatározva. A félreértések +elkerülése érdekében - és a GPL szándékait szem előtt tartva - a készítők úgy vélik, +hogy egy alkalmazás akkor tekinthető <quote>származtatott munkának</quote>, ha az +alábbiak közül bármelyik teljesül:</para> + +<itemizedlist> +<listitem><para>Tartalmazza az Nmap forráskódját, vagy annak részletét</para></listitem> +<listitem><para>Olvassa vagy felhasználja az Nmap jogvédett adatfájljait, mint az + <filename moreinfo="none">nmap-os-fingerprints</filename> vagy az + <filename moreinfo="none">nmap-service-probes</filename>.</para></listitem> +<listitem><para>Futtatja az Nmap programot és feldolgozza az eredményt (ellentétben + a tipikus parancshéj vagy végrehajtási menü alkalmazásokkal, melyek csak + megjelenítik az Nmap nyers kimenetét, így nem tekinthetők származtatott munkának.)</para></listitem> +<listitem><para>Integrálja/beépíti az Nmap programot egy üzleti célú futtatható + telepítő programba, mint amilyen például az InstallShield.</para></listitem> +<listitem><para>Kapcsolódik olyan programkönyvtárhoz, vagy futtat olyan programot + mely az előbbiek közül bármelyiket teszi.</para></listitem> +</itemizedlist> + +<para>Az <quote>Nmap</quote> kifejezés felhasználható az Nmap programból származtatott +munkák bármely részére. A fenti lista nem kizárólagos, csak néhány példán keresztül +megpróbálja tisztázni az Nmap készítőinek értelmezését a származtatott munkákkal +kapcsolatban. Ezek a korlátozások kizárólag akkor érvényesek, ha Ön valójában +továbbértékesíti az Nmap programot. Például semmi nem tiltja, hogy Ön kezelő felületet +készítsen az Nmap programhoz és azt üzleti céllal forgalmazza. Terjessze a programot +önállóan és hívja fel a felhasználók figyelmét, hogy az Nmap programot külön +kell letölteniük a <ulink url="https://nmap.org"></ulink> címről.</para> + +<para>A program készítői nem gondolják, hogy a fentiek további korlátozásokat +adnának a GPL-hez, kizárólag annak tisztázására szolgálnak, hogyan értelmezik a +<quote>származtatott munkák</quote> fogalmát a GPL engedély alatt terjesztett +Nmap programmal kapcsolatban. Ez hasonló ahhoz, ahogyan Linus Torvalds kifejtette +a véleményét a Linux rendszermag-modulokhoz kapcsolódó <quote>származtatott munkákkal</quote> +kapcsolatban. A készítők értelmezése kizárólag az Nmap programra vonatkozik - nem +vonatkozik más GPL termékekre.</para> + +<para>A készítők örömmel segítenek a GPL korlátozásainak értelmezésében, ha az +Nmap programot nem GPL licenc alatt terjesztett munkában kívánja felhasználni és +bármilyen kérdése merülne fel ezzel kapcsolatban. Ahogy a fentiekben már szóba került, +a készítőktől más licenc is beszerezhető, ha az Nmap programot üzleti célú alkalmazásban +vagy eszközben kívánja felhasználni. Több biztonsági eszköz szállítója kötött ilyen +szerződést, amely általában tartalmaz egy állandó licencet az Nmap használatára, +kiemelt támogatást és frissítést. Emellett segít fedezni az Nmap technológiájának +folyamatos fejlesztésével járó költségeket is. További információkat a +<email>sales@insecure.com</email> címre küldött levélben kérhet.</para> + +<para><indexterm significance="normal"><primary>licenc</primary><secondary>OpenSSL kivétel</secondary></indexterm> +A GPL előírásaihoz képest különleges kivételként az Insecure.Com LLC hozzájárulását +adja, hogy a program kódjához az OpenSSL könyvtár bármely változatát hozzákapcsolják. +Ezt a könyvtárat külön licenc alatt terjesztik, melynek leírása megtalálható a +<filename moreinfo="none">Copying.OpenSSL</filename> fájlban, vagy a program saját +copyright fájljához csatolva. Az OpenSSL kivételével Önnek minden használt kód +esetében engedelmeskednie kell a GNU GPL előírásainak. Ha módosítja ezt a fájlt, +kiterjesztheti ezt a kivételt a saját változatára, de erre semmi sem kötelezi.</para> + +<para>Ha Ön ezeket a fájlokat egy írott licenc megállapodással, vagy olyan szerződéssel +kapja, mely a fentiektől eltérő kitételeket tartalmaz, akkor ezek a megállapodások +elsőbbséget élveznek a fentiekkel szemben.</para> +</refsect2> + +<refsect2 id="man-copyright"> + <title>Creative Commons License ehhez az Nmap Útmutatóhoz</title> + <para>Nmap Referencia Útmutató (C) 2005 Insecure.Com LLC. Ez az útmutató a + <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative Commons + Attribution License</ulink> 2.5-ös változata alatt jelenik meg. Ez lehetővé + teszi az Ön számára, hogy szabadon terjessze és módosítsa saját igényei szerint + mindaddig, amíg hivatkozik az eredeti forrásra. Alternatív megoldásként kezelheti + úgy is ezt a dokumentumot, mintha az Nmap programmal azonos licenc alá tartozna + (az előzőek szerint).</para> +</refsect2> + + <refsect2 id="translation-disclaimer"> + <title>Unofficial Translation Disclaimer / Nem hivatalos fordítói nyilatkozat</title> + + <para>This is an unnofficial translation of the <ulink + url="https://nmap.org/book/man-legal.html">Nmap + license details</ulink> into hungarian. It was not written by + Insecure.Com LLC, and does not legally state the distribution terms + for Nmap -- only the original English text does that. However, we + hope that this translation helps hungarian speakers understand the + Nmap license better.</para> + + <para>Ez az <ulink url="https://nmap.org/book/man-legal.html">Nmap licenc + részletek</ulink> nem hivatalos magyar fordítása. Ezt nem az Insecure.Com LLC + készítette és nem tartalmazza az Nmap hivatalos terjesztési irányelveit. + Ezeket kizárólag az eredeti angol nyelvű szöveg tartalmazza. Azonban reméljük, + hogy ez a fordítás segít a magyarul beszélőknek jobban megérteni az Nmap licencét.</para> + </refsect2> + + +<refsect2 id="source-contrib"> + <title>A forráskód elérhetősége és a közösségi hozzájárulás</title> + +<para>Azért biztosítjuk a hozzáférést a program forráskódjához, mert hiszünk abban, +hogy a felhasználónak jogában áll megismerni a program működését annak elindítása +előtt. Emellett a program esetleges biztonsági rései is vizsgálhatóak (régóta +nem találtak egyet sem).</para> + +<para>A forráskód segítségével az Nmap átvihető új rendszerekre, kijavíthatók a +hibák és új képességekkel is bővíthető a program. Bátorítunk mindenkit, hogy az +általa készített változtatásokat küldje el a <email>fyodor@nmap.org</email> +címre, hogy azok bekerülhessenek a fő terjesztésbe. Azzal, hogy ezeket a módosításokat +elküldi Fyodornak vagy valamely Insecure.Org fejlesztői listának, Ön korlátozás +nélküli, nem-kizárólagos jogot biztosít Fyodornak és az Insecure.Com LLC-nek a kód +újrafelhasználásához, módosításához és új licenc alatti kibocsátásához. Bár az Nmap +mindig elérhető lesz nyílt forrásúként, de ha nincs lehetőség a kód új licenc alatti +kibocsátására, ez számos szabad program szempontjából katasztrofális. Alkalmanként +harmadik fél számára is új licenc alatt engedélyezzük a kód használatát a fentiek +szerint. Ha a saját kódját különleges licenc alatt szeretné engedélyezni, kérjük +jelezze azt az elküldéssel egyidőben.</para> +</refsect2> + +<refsect2 id="no-warranty"><title>Nincs garancia<indexterm significance="normal"><primary>garancia (hiánya)</primary></indexterm></title> + +<para>A programot annak reményében terjesztjük, hogy hasznos lesz, de MINDENFÉLE +GARANCIA NÉLKÜL; beleértve az ELADHATÓSÁGRA vagy EGY ADOTT CÉLRA VALÓ MEGFELELŐSÉGRE +vonatkozó garanciát. További részletekért látogasson el a +<ulink url="http://www.gnu.org/copyleft/gpl.html"></ulink> címre, vagy olvassa el +az Nmap programmal terjesztett <filename moreinfo="none">COPYING</filename> fájlt.</para> + +<para>Szükséges megjegyezni, hogy alkalmanként az Nmap miatt öszeomolhatnak bizonyos +gyengén megírt alkalmazások, TCP/IP vermek és operációs rendszerek is. Bár ezek +nagyon ritkán fordulnak elő, fontos észben tartani. <emphasis>Soha ne használja +az Nmap programot kritikus feladatot ellátó rendszer letapogatására</emphasis> +addig, míg fel nem készült egy esetleges leállás minden következményére. A készítők +elismerik, hogy az Nmap okozhatja egyes rendszerek vagy hálózatok összeomlását és +elutasítanak minden felelősséget az Nmap által esetleg okozott kárral vagy problémákkal +kapcsolatban.</para> +</refsect2> + +<refsect2 id="inappropriate-usage"><title>Helytelen használat</title> +<para>Az esetleges összeomlások kockázata miatt és mert rossz szándékű behatolók +előzetes felderítésre használják az Nmap programot, egyes rendszergazdák idegesen +reagálnak a legkisebb letapogatásra is és hajlamosak panasszal élni. Így a legkisebb +letapogatás előtt is célszerű a rendszer tulajdonosától engedélyt kérni.</para> + +<para>Biztonsági okokból az Nmap programot soha nem szabad különleges jogosultságokkal +(pl. suid root) telepíteni.</para> +</refsect2> + +<refsect2 id="third-party-soft"><title>Harmadik féltől származó programok</title> + +<para>Ez a program az <ulink url="http://www.apache.org">Apache Software Foundation</ulink> +által fejlesztett programrészeket tartalmaz. Az Nmap programmal együtt a <ulink url="http://www.tcpdump.org"> +Libpcap hordozható csomagelfogó könyvtár</ulink> egy módosított változata is +terjesztésre kerül. Az Nmap Windowos változata a Libpcap könyvtárból származó +<ulink url="http://www.winpcap.org">WinPcap könyvtárral</ulink> kerül terjesztésre. +A szabályos kifejezések támogatását a <ulink url="http://www.pcre.org">PCRE könyvtár</ulink> +biztosítja, mely egy nyílt forráskódú program és Philip Hazel munkája. Egyes nyers +hálózati funkciók a <ulink url="http://libdnet.sourceforge.net">Libdnet</ulink> +hálózati könyvtárat használják, mely Dug Song munkája. Az Nmap programmal ennek +egy módosított változata érkezik. Igény esetén az Nmap felkészíthető az SSL változat +érzékelésre az <ulink url="http://www.openssl.org">OpenSSL titkosító eszköztár</ulink> +segítségével. Az Nmap Parancsfájl motor a <ulink url="http://www.lua.org">Lua +programozási nyelv</ulink> egy beágyazott változatát használja. Az ebben a szakaszban +szereplő valamennyi harmadik féltől származó program szabadon újra terjeszthető +a BSD stílusú programlicencek alapján.</para> + +</refsect2> + +<refsect2 id="us-export"><title>USA export korlátozások<indexterm significance="normal"><primary>export korlátozások</primary></indexterm></title> +<para>USA export korlátozás: az Insecure.Com LLC úgy véli, hogy az Nmap a US ECCN +(export control classification number) 5D992 alá tartozik. Ennek a kategóriának +az elnevezése: <quote>Az 5D002 alá nem tartozó információbiztonsági program</quote>. +Ennek a besorolásnak egyetlen korlátozása a terrorizmus ellenesség, mely minden +árura vonatkozik és megtiltja ezek exportálását olyan terrorista államoknak, mint +Irán és Észak Korea. Így az Nmap exportálásához nem szükséges különleges engedély, +hozzájárulás vagy kormányzati felhatalmazás.</para> +</refsect2> + + </refsect1> +</refentry> + +</article> diff --git a/docs/man-xlate/nmap-man-id.xml b/docs/man-xlate/nmap-man-id.xml new file mode 100644 index 0000000..faa9a3c --- /dev/null +++ b/docs/man-xlate/nmap-man-id.xml @@ -0,0 +1,4173 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- $Id: nmap-man.xml 12855 2009-04-02 03:24:21Z fyodor $ --> +<article id="man" lang="id"> +<artheader> + <title>Panduan Refensi Nmap (Man Page, bahasa Indonesia)</title> +</artheader> +<indexterm significance="normal"><primary>man page</primary><see>reference guide</see></indexterm> +<indexterm class="startofrange" id="man-nmap1-indexterm" significance="normal"><primary>reference guide (man page)</primary></indexterm> +<refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Panduan Referensi Nmap</refmiscinfo> + </refmeta> + <refnamediv id="man-name"> + <refname>nmap</refname> + <refpurpose>Tool eksplorasi jaringan dan keamanan / scanner port</refpurpose> + </refnamediv> + <!-- body begins here --> + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis sepchar=" "> + <command moreinfo="none">nmap</command> + <arg choice="opt" rep="repeat"> + <replaceable>Jenis Scan</replaceable> + </arg> + <arg choice="opt" rep="norepeat"> + <replaceable>Opsi</replaceable> + </arg> + <arg choice="req" rep="norepeat"> + <replaceable>spesifikasi target</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1 id="man-description"> + <title>Deskripsi</title> + <indexterm significance="normal"><primary>Nmap</primary><secondary>description of</secondary></indexterm> + <web> + <note><para> + Dokumen ini menjelaskan versi Nmap 4.85BETA7. Dokumentasi terbaru tersedia + dalam bahasa Inggris di + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + <para>Nmap (<quote>Network Mapper</quote>) merupakan sebuah tool open source untuk + eksplorasi dan audit keamanan jaringan. Ia dirancang untuk memeriksa jaringan + besar secara cepat, meskipun ia dapat pula bekerja terhadap host tunggal. + Nmap menggunakan paket IP raw dalam cara yang canggih untuk menentukan host mana saja + yang tersedia pada jaringan, layanan (nama aplikasi dan versi) apa yang diberikan, + sistem operasi (dan versinya) apa yang digunakan, apa jenis firewall/filter paket + yang digunakan, dan sejumlah karakteristik lainnya. Meskipun Nmap umumnya digunakan + untuk audit keamanan, namun banyak administrator sistem dan jaringan menganggapnya berguna + untuk tugas rutin seperti inventori jaringan, mengelola jadwal upgrade layanan, dan melakukan + monitoring uptime host atau layanan.</para> + + <para>Output Nmap adalah sebuah daftar target yang diperiksa, dengan + informasi tambahannya tergantung pada opsi yang digunakan. + Hal kunci di antara informasi itu adalah <quote>tabel port menarik</quote>.<indexterm significance="normal"><primary>ports</primary><secondary sortas="interesting">“interesting”</secondary></indexterm> + Tabel tersebut berisi daftar angka port dan protokol, nama layanan, dan status. Statusnya adalah + <literal moreinfo="none">terbuka (open)</literal>, <literal moreinfo="none">difilter (filtered)</literal>, + <literal moreinfo="none">tertutup (closed)</literal>, atau <literal moreinfo="none">tidak difilter (unfiltered)</literal>. + <literal moreinfo="none">Terbuka</literal><indexterm significance="normal"><primary><literal moreinfo="none">open</literal> port state</primary></indexterm> + berarti bahwa aplikasi pada mesin target sedang mendengarkan (listening) untuk + koneksi/paket pada port tersebut. + <literal moreinfo="none">Difilter</literal><indexterm significance="normal"><primary><literal moreinfo="none">filtered</literal> port state</primary></indexterm> + berarti bahwa sebuah firewall, filter, atau penghalang jaringan lainnya + memblokir port sehingga Nmap tidak dapat mengetahui apakah ia + <literal moreinfo="none">terbuka</literal> atau <literal moreinfo="none">tertutup</literal>. + <literal moreinfo="none">Tertutup</literal><indexterm significance="normal"><primary><literal moreinfo="none">closed</literal> port state</primary></indexterm> + port tidak memiliki aplikasi yang sedang mendengarkan, + meskipun mereka dapat terbuka kapanpun. + Port digolongkan sebagai + <literal moreinfo="none">tidak difilter</literal><indexterm significance="normal"><primary><literal moreinfo="none">unfiltered</literal> port state</primary></indexterm> + ketika mereka menanggapi probe Nmap, namun Nmap tidak dapat menentukan + apakah mereka terbuka atau tertutup. + Nmap melaporkan kombinasi status + <literal moreinfo="none">open|filtered</literal><indexterm significance="normal"><primary><literal moreinfo="none">open|filtered</literal> port state</primary></indexterm> + dan <literal moreinfo="none">closed|filtered</literal><indexterm significance="normal"><primary><literal moreinfo="none">closed|filtered</literal> port state</primary></indexterm> + ketika ia tidak dapat menentukan status manakah yang + menggambarkan sebuah port. Tabel port mungkin juga menyertakan + detil versi software ketika diminta melakukan pemeriksaan versi. + Ketika sebuah pemeriksaan protokol IP diminta + (<option>-sO</option>), Nmap memberikan informasi pada protokol IP + yang didukung alih-alih port-port yang mendengarkan.</para> + + <para>Selain tabel port yang menarik, Nmap dapat pula memberikan + informasi lebih lanjut tentang target, termasuk nama reverse DNS, + prakiraan sistem operasi, jenis device, dan alamat MAC.</para> + + <para>Pemeriksaan Nmap yang umum ditunjukkan dalam <xref linkend="man-ex-repscan" xrefstyle="select: label nopage"/>. Argumen yang digunakan + pada contoh ini hanyalah <option>-A</option>, untuk memeriksa sistem operasi dan versi, + pemeriksaan skrip, dan traceroute; <option>-T4</option> untuk eksekusi yang lebih cepat; + dan dua buah nama host target.</para> + +<example id="man-ex-repscan"><title>Sebuah gambaran pemeriksaan Nmap</title> +<indexterm significance="normal"><primary><option>-A</option></primary><secondary>example of</secondary></indexterm> +<screen format="linespecific"> +# nmap -A -T4 scanme.nmap.org + +Starting Nmap ( https://nmap.org ) +Interesting ports on scanme.nmap.org (64.13.134.52): +Not shown: 994 filtered ports +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 4.3 (protocol 2.0) +25/tcp closed smtp +53/tcp open domain ISC BIND 9.3.4 +70/tcp closed gopher +80/tcp open http Apache httpd 2.2.2 ((Fedora)) +|_ HTML title: Go ahead and ScanMe! +113/tcp closed auth +Device type: general purpose +Running: Linux 2.6.X +OS details: Linux 2.6.20-1 (Fedora Core 5) + +TRACEROUTE (using port 80/tcp) +HOP RTT ADDRESS +[Cut first seven hops for brevity] +8 10.59 so-4-2-0.mpr3.pao1.us.above.net (64.125.28.142) +9 11.00 metro0.sv.svcolo.com (208.185.168.173) +10 9.93 scanme.nmap.org (64.13.134.52) + +Nmap done: 1 IP address (1 host up) scanned in 17.00 seconds +</screen> +</example> + +<para>Versi terbaru Nmap dapat diperoleh dari <ulink url="https://nmap.org"/>. Versi terbaru man page +tersedia di <ulink url="https://nmap.org/book/man.html"/>.</para> + + </refsect1> + +<refsect1 id="man-translation"> + <title>Catatan Terjemahan</title> + + <para>Edisi bahasa Indonesia Nmap Reference Guide ini + diterjemahkan dari versi [12855] <ulink + url="https://nmap.org/book/man.html">versi Inggris</ulink> + oleh Tedi Heriyanto. Meskipun kami berharap bahwa hal ini akan + membuat Nmap lebih dapat diakses oleh para pengguna bahasa Indonesia di seluruh dunia, + namun kami tidak dapat menjamin bahwa terjemahanan ini lengkap atau + up-to-date seperti versi bahasa Inggris resminya. Pekerjaan ini dapat + dimodifikasi dan didistribusikan kembali berdasarkan syarat-syarat <ulink + url="http://creativecommons.org/licenses/by/2.5/">Creative + Commons Attribution License</ulink>.</para> +</refsect1> + + <refsect1 id="man-briefoptions"> + <title>Ringkasan Opsi</title> + +<para>Ringkasan opsi ini ditampilkan ketika Nmap dijalankan +tanpa argumen, dan versi terakhir selalu tersedia di +<ulink url="https://nmap.org/data/nmap.usage.txt"/>. +Ia membantu mengingat opsi-opsi umum, namun ia bukanlah +pengganti dokumentasi lengkap dalam halaman-halaman berikut manual ini. +Bahkan beberapa opsi tersembunyi tidak disertakan di sini.</para> + +<!-- sortas="#" puts it before the entries that start with '-' in the options + section. --> +<indexterm class="startofrange" id="nmap-usage-indexterm" significance="normal"><primary sortas="#">summary of options</primary></indexterm> +<indexterm class="startofrange" id="nmap-usage-nmap-indexterm" significance="normal"><primary>command-line options</primary><secondary>of Nmap</secondary></indexterm> +<?dbfo-need height="1in"?> +<literallayout format="linespecific" class="normal">Nmap 4.85BETA7 ( 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 + -sP: Ping Scan - go no further than determining if host is online + -PN: Treat all hosts as online -- skip host discovery + -PS/PA/PU[portlist]: TCP SYN/ACK or UDP 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 + -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 + -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-trace: Show all data sent and received + --script-updatedb: Update the script database. +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 milliseconds, unless you append '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 + --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 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 twice or more for greater effect) + -d[level]: Set or increase debugging level (Up to 9 is meaningful) + --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: Enables OS detection and 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 -sP 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> + +<indexterm class="endofrange" startref="nmap-usage-nmap-indexterm" significance="normal"/> +<indexterm class="endofrange" startref="nmap-usage-indexterm" significance="normal"/> + + </refsect1> + + <refsect1 id="man-target-specification"> + <title>Spesifikasi Target</title> + <indexterm significance="normal"><primary>target specification</primary></indexterm> + +<para>Semua yang ada pada perintah baris Nmap yang bukan berupa opsi (atau +argumen opsi) dianggap sebagai spesifikasi host target. Kasus paling sederhana +adalah menspesifikasikan alamat IP target atau nama host untuk diperiksa.</para> + +<para>Terkadang anda ingin memeriksa seluruh jaringan host-host yang berdekatan. +Untuk hal ini, Nmap mendukung pengalamatan +CIDR-style<indexterm significance="normal"><primary>CIDR (Classless Inter-Domain Routing)</primary></indexterm>. Anda dapat menambahkan +/<replaceable>numbits</replaceable> ke sebuah alamat IPv4 atau nama host dan +Nmap akan memeriksa setiap alamat IP yang alamat +<replaceable>numbits</replaceable> pertamanya sama dengan alamat IP +referensi atau nama host yang diberikan. Sebagai contoh, 192.168.10.0/24 akan memeriksa 256 +host antara 192.168.10.0 (biner: <literal moreinfo="none">11000000 10101000 +00001010 00000000</literal>) dan 192.168.10.255 (biner: <literal moreinfo="none">11000000 10101000 +00001010 11111111</literal>), inklusif. +192.168.10.40/24 akan memeriksa target-target yang sama. Misalkan host +<literal moreinfo="none">scanme.nmap.org</literal><indexterm significance="normal"><primary><literal moreinfo="none">scanme.nmap.org</literal></primary></indexterm> +memiliki alamat IP 64.13.134.52, spesifikasi +scanme.nmap.org/16 akan memeriksa sebanyak 65.536 alamat IP antara +64.13.0.0 dan 64.13.255.255. Nilai terkecil yang diijinkan adalah /0, +yang akan memeriksa seluruh Internet. Nilai terbesar adalah /32, yang hanya +akan memeriksa host atau alamat IP yang disebutkan karena seluruh bit alamat tetap.</para> + +<indexterm significance="normal"><primary>rentang alamat</primary></indexterm> +<para>Notasi CIDR pendek namun tidak selalu fleksibel. Sebagai contoh, anda +mungkin ingin memeriksa 192.168.0.0/16 namun ingin melewati IP yang diakhiri dengan .0 atau +.255 karena mereka mungkin digunakan sebagai subnet jaringan dan alamat broadcast. Nmap mendukung +hal ini melalui pengalamatan rentang oktet. Alih-alih menspesifikasikan alamat IP normal, anda +dapat menspesifikasikan daftar angka atau rentang untuk setiap oktet. Sebagai contoh, 192.168.0-255.1-254 akan melewati seluruh alamat dalam rentang yang berakhiran dalam .0 atau .255, +dan 192.168.3-5,7.1 akan memeriksa empat alamat 192.168.3.1, 192.168.4.1, 192.168.5.1, dan +192.168.7.1. Kedua sisi rentang dapat dihilangkan; nilai baku adalah 0 di sisi kiri +dan 255 untuk sisi kanan. Penggunaan <literal moreinfo="none">-</literal> +sama artinya dengan 0-255, namun ingat untuk menggunakan 0- dalam oktet pertama +sehingga spesifikasi target tidak terlihat seperti opsi perintah baris. +Rentang tidak hanya terbatas pada oktet akhir: 0-255.0-255.13.37 +akan melakukan pemeriksaan Internet-wide untuk seluruh alamat IP +yang berakhiran 13.37. Sampling luas seperti ini dapat bermanfaat +untuk riset dan survei Internet.</para> + +<para>Alamat IPv6 hanya dapat dispesifikasikan dengan alamat IPv6 +lengkap mereka atau nama host. CIDR dan rentang oktet tidak didukung +untuk IPv6 karena mereka jarang bermanfaat.</para> + +<para>Nmap menerima spesifikasi banyak host pada perintah baris, +dan mereka tidak perlu dalam jenis yang sama. Perintah <command moreinfo="none">nmap +scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.-</command> melakukan +apa yang anda harapkan.</para> + +<para>Meskipun target biasanya dispesifikasikan pada perintah baris, opsi berikut juga + tersedia untuk mengendalikan pemilihan target:</para> + + <variablelist> + <varlistentry> + <term> + <option>-iL <replaceable>inputfilename</replaceable></option> (Input dari daftar) + <indexterm significance="normal"><primary><option>-iL</option></primary></indexterm> + <indexterm significance="normal"><primary>target specification</primary><secondary>from list</secondary></indexterm> + </term> + <listitem> + <para>Membaca spesifikasi target dari + <replaceable>inputfilename</replaceable>. Memberikan + banyak daftar host pada perintah baris seringkali tidak mengasyikkan. + Sebagai contoh, DHCP server anda mungkin mengekspor + daftar 10.000 lease saat ini yang ingin anda periksa. + Atau mungkin anda ingin memeriksa seluruh alamat IP + <emphasis>kecuali</emphasis> bagi mereka untuk mencari host + yang menggunakan alamat IP statik tidak terotorisasi. Cukup buat daftar host + yang ingin diperiksa dan berikan namafilenya ke Nmap sebagai sebuah argumen + bagi opsi <option>-iL</option>. Entrinya dapat dalam beragam format + yang diterima oleh Nmap di perintah baris + (alamat IP, nama host, CIDR, IPv6, atau rentang oktet). Setiap entri + harus dipisahkan dengan satu atau lebih spasi, tab, atau baris baru. + Anda dapat menspesifikasikan sebuah tanda hubung (hyphen) (<literal moreinfo="none">-</literal>) sebagai nama file jika anda ingin + Nmap membaca host dari input standar alih-alih dari sebuah file.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-iR <replaceable>num hosts</replaceable></option> (Pilih target acak) + <indexterm significance="normal"><primary><option>-iR</option></primary></indexterm> + <indexterm significance="normal"><primary>random targets</primary></indexterm> + <indexterm significance="normal"><primary>targets specification</primary><secondary>at random</secondary></indexterm> + </term> + <listitem> + <para>Untuk survei dan riset lain skala-Internet, + anda mungkin ingin memilih target secara acak. + Argumen <replaceable>num hosts</replaceable> memberitahu Nmap + berapa banyak IP yang ingin dihasilkan. IP yang tidak diinginkan + seperti dalam rentang alamat privat, multicast, atau tidak dialokasi + secara otomatis akan dilewati. Argumen <literal moreinfo="none">0</literal> + dapat dispesifikasikan untuk pemeriksaan yang tidak pernah berakhir. Perhatikan bahwa + beberapa administrator jaringan tidak suka terhadap pemeriksaan yang tidak terotorisasi + terhadap jaringan mereka dan mungkin mengeluh. Gunakan opsi ini dengan risiko anda! + Jika anda benar-benar merasa bosan di sore hari yang hujan, coba perintah + <command moreinfo="none">nmap -sS -PS80 -iR 0 -p 80</command> + <indexterm significance="normal"><primary><option>-sS</option></primary><secondary>example of</secondary></indexterm> + <indexterm significance="normal"><primary><option>-PS</option></primary><secondary>example of</secondary></indexterm> + <indexterm significance="normal"><primary><option>-iR</option></primary><secondary>example of</secondary></indexterm> + untuk mencari server web acak untuk browsing.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--exclude + <replaceable>host1</replaceable><optional>,<replaceable>host2</replaceable><optional>,...</optional></optional></option> (Kecualikan host/jaringan) + <indexterm significance="preferred"><primary><option>--exclude</option></primary></indexterm> + <indexterm significance="normal"><primary>excluding targets</primary></indexterm> + </term> + <listitem> + <para>Spesifikasikan daftar target yang ingin dikecualikan + dari pemeriksaan meskipun mereka merupakan bagian dari + rentang jaringan yang anda spesifikasikan. Daftar yang anda berikan + menggunakan sintaks Nmap normal, sehingga ia dapat mencakup nama host, blok CIDR, + rentang oktet, dsb. Hal ini dapat bermanfaat ketika jaringan yang ingin anda periksa + menyertakan server-server kritis, sistem yang diketahui terganggu dengan port scan, + atau subnet yang dikelola oleh pihak lain.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--excludefile <replaceable>exclude_file</replaceable></option> (Daftar pengecualian dari file) + <indexterm significance="preferred"><primary><option>--excludefile</option></primary></indexterm> + </term> + <listitem> + <para>Opsi ini memberikan fungsionalitas yang sama dengan opsi <option>--exclude</option>, + namun target yang dikecualikan diberikan dalam sebuah + <replaceable>exclude_file</replaceable> alih-alih diberikan pada perintah baris.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-host-discovery"> + <title>Pencarian Host (Host Discovery)</title> + <indexterm class="startofrange" id="man-host-discovery-indexterm" significance="normal"><primary>host discovery</primary></indexterm> + + <para>Salah satu langkah pertama dalam misi network reconnaissance + adalah mengurangi satu rentang IP (biasanya besar) ke sebuah + daftar host yang aktif atau menarik. Memeriksa setiap port + dari setiap alamat IP adalah lambat dan biasanya tidak perlu. Tentu saja + apa yang membuat sebuah host menarik tergantung pada tujuan + pemeriksaan. Administrator jaringan mungkin hanya tertarik pada + host yang menjalankan layanan tertentu, sementara auditor keamanan + ingin mengetahui semua device dalam satu alamat IP. Administrator + mungkin nyaman cukup dengan menggunakan ping ICMP untuk + menemukan host pada jaringan internalnya, sementara + penetration tester eksternal mungkin menggunakan beragam probe + dalam usahanya menghindari pembatasan firewall.</para> + + <para>Oleh karena kebutuhan pencarian host sangat beragam, Nmap menawarkan + sejumlah opsi untuk kustomisasi teknik yang dibutuhkan. Pencarian host + seringkali disebut ping scan, namun ia lebih daripada sekedar + melakukan pengiriman paket echo request ICMP yang diasosiasikan dengan + tool terkenal <application moreinfo="none">ping</application>. Pengguna dapat melewati + langkah ping dengan list scan (<option>-sL</option>) atau dengan + meniadakan ping (<option>-PN</option>), atau melakukan kombinasi + probe multi-port TCP SYN/ACK, UDP, dan ICMP. + Tujuan probe ini adalah memperoleh respon yang menunjukkan bahwa + alamat IP sedang aktif (sedang digunakan oleh host atau device jaringan). + Pada banyak jaringan, hanya sejumlah kecil persentase alamat IP yang aktif + pada satu waktu. Hal ini terutama umum terjadi pada alamat IP privat seperti + 10.0.0.0/8. Jaringan tersebut memiliki 16 juta IP, namun saya telah melihatnya + digunakan oleh perusahaan dengan mesin berjumlah kurang dari seribu. Pencarian + host dapat menemukan mesin-mesin dalam lautan alamat IP.</para> + + <para>Jika tidak diberikan opsi pencarian host, Nmap + mengirimkan sebuah paket TCP ACK + yang ditujukan ke port 80 dan sebuah query ICMP echo request + ke setiap mesin target. Pengecualian atas hal ini adalah scan ARP + digunakan untuk sembarang target yang ada pada jaringan ethernet lokal. + Untuk user shell Unix biasa, sebuah paket SYN dikirimkan + alih-alih paket ACK dengan menggunakan system call + <function moreinfo="none">connect</function>. + <indexterm significance="normal"><primary>unprivileged users</primary><secondary>limitations + of</secondary></indexterm> + Nilai-nilai baku ini sama dengan opsi + <option>-PA -PE</option>. Pencarian host ini seringkali + cukup ketika melakukan pemeriksaan jaringan lokal, namun + disarankan untuk melakukan probe pencarian yang lebih komprehensif + ketika melakukan audit keamanan.</para> + + <para>Opsi-opsi <option>-P*</option> (yang memilih tipe ping) + dapat digabungkan. Anda dapat meningkatkan peluang anda + menyusup firewall yang ketat dengan mengirimkan banyak jenis probe + dengan menggunakan berbagai macam port/flag TCP dan kode ICMP. Perhatikan pula bahwa + pencarian ARP discovery + (<option>-PR</option>)<indexterm significance="normal"><primary><option>-PR</option></primary></indexterm> + secara baku dilakukan terhadap target pada jaringan ethernet lokal bahkan + bila anda menspesifikasikan opsi <option>-P*</option> lain, + karena ia selalu lebih cepat dan lebih efektif.</para> + + <para>Secara baku, Nmap melakukan pencarian host dan lalu melakukan + scan port terhadap setiap host yang ditentukan online. Hal ini benar + bahkan bila anda menspesifikasikan tipe pencarian host yang tidak baku seperti + probe UDP (<option>-PU</option>). Bacalah mengenai opsi + <option>-sP</option> untuk mempelajari bagaimana melakukan + hanya pencarian host, atau gunakan <option>-PN</option> untuk melewati + pencarian host dan melakukan scan port untuk seluruh host. + Opsi-opsi berikut ini mengendalikan pencarian host:</para> + + <variablelist> + + <varlistentry> + <term> + <option>-sL</option> (List Scan) + <indexterm significance="normal"><primary><option>-sL</option></primary></indexterm> + <indexterm significance="normal"><primary>list scan</primary></indexterm> + </term> + <listitem> + <para>Scan daftar (list scan) merupakan sebuah bentuk pencarian host + yang hanya menampilkan setiap host pada jaringan yang dispesifikasikan, + tanpa mengirimkan paket ke host target. Secara baku, + Nmap tetap melakukan resolusi reverse-DNS pada host + untuk mengetahui namanya. Seringkali mengejutkan berapa banyak + informasi berharga yang diberikan nama host. Sebagai contoh, + <literal moreinfo="none">fw.chi</literal> adalah nama firewall satu perusahaan di Chicago. + <indexterm significance="normal"><primary>DNS</primary><secondary>records as source of information</secondary></indexterm> + Nmap juga melaporkan jumlah total alamat IP pada bagian akhir. + Scan daftar merupakan sebuah pemeriksaan untuk memastikan anda + memiliki alamat IP yang tepat untuk target anda. + Jika host menemukan nama domain yang tidak anda kenali, + maka anda perlu melakukan penyelidikan lanjutan untuk mencegah + pemeriksaan jaringan perusahaan yang tidak tepat.</para> + + <para>Karena gagasannya adalah hanya menampilkan daftar host target, + opsi untuk fungsionalitas lebih tinggi misalnya pemeriksaan port, + deteksi sistem operasi, atau scanning ping tidak dapat dikombinasikan + dengan opsi ini. Jika anda ingin meniadakan pemeriksaan ping namun + masih ingin melakukan fungsionalitas tingkat tinggi, bacalah opsi + <option>-PN</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sP</option> (Ping Scan) + <indexterm significance="normal"><primary><option>-sP</option></primary></indexterm> + <indexterm significance="normal"><primary>ping scan</primary></indexterm> + </term> + <listitem> + <para>Opsi ini memberitahu Nmap untuk hanya melakukan scan ping + (host discovery), lalu menampilkan host yang menanggapi + pemeriksaan. Skrip host traceroute dan NSE juga dijalankan + jika diminta, namun tidak dilakukan pemeriksaan lebih lanjut (seperti scan + port atau deteksi SO). Opsi ini secara baku satu langkah lebih intrusif + daripada list scan, dan seringkali dapat digunakan untuk tujuan yang sama. + Ia memungkinkan reconnaissance ringan atas jaringan target tanpa menarik + banyak perhatian. Mengetahui berapa banyak host yang up lebih bermanfaat + bagi penyerang daripada daftar yang dihasilkan oleh list scan atas + setiap IP dan nama host.</para> + + <para>Administrator sistem juga sering menganggap opsi ini + bermanfaat. Ia dapat digunakan untuk menghitung mesin-mesin yang tersedia + pada jaringan atau memonitor ketersediaan server. Hal ini seringkali + disebut ping sweep, dan lebih handal daripada mem-ping alamat + broadcast karena banyak host tidak akan melakukan reply + terhadap query broadcast.</para> + + <para>Opsi <option>-sP</option> secara baku mengirimkan sebuah request ICMP echo + dan sebuah paket TCP ACK ke port 80. Ketika dilakukan oleh + user biasa, hanya sebuah paket SYN yang dikirimkan + (dengan menggunakan call <function moreinfo="none">connect</function>) ke port 80 pada + target. Ketika user dengan privilege berusaha memeriksa target pada + jaringan ethernet lokal, request ARP digunakan kecuali dispesifikasikan + <option>--send-ip</option>. + Opsi <option>-sP</option> dapat dikombinasikan dengan tipe + probe pencarian lainnya (opsi-opsi <option>-P*</option>, + kecuali <option>-PN</option>) untuk fleksibilitas yang lebih tinggi. + Jika digunakan sembarang opsi tipe probe dan nomor port, + probe baku (ACK dan echo request) akan di-override. + Ketika terdapat firewall ketat di antara host sumber yang menjalankan + Nmap dan jaringan target, direkomendasikan untuk menggunakan + teknik lanjutan di atas. Jika tidak host dapat luput ketika firewall + men-drop probe atau responnya.</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>-PN</option> (No ping) + <indexterm significance="normal"><primary><option>-PN</option></primary></indexterm> + <indexterm significance="normal"><primary>host discovery</primary><secondary>disabling</secondary></indexterm> + </term> + <listitem> + <para>Opsi ini melompati tahap pencarian Nmap secara utuh. + Secara normal, Nmap menggunakan tahap ini untuk menentukan mesin aktif + untuk pemeriksaan lebih lanjut. Secara baku, Nmap hanya melakukan probe + lanjutan seperti scan port, pemeriksaan versi, atau pemeriksaan SO + terhadap host yang ditemukan up. Peniadaan pencarian host dengan + opsi <option>-PN</option> menyebabkan Nmap melakukan fungsi pemeriksaan yang diminta + terhadap <emphasis>setiap</emphasis> alamat IP target yang dispesifikasikan. Jadi + bila pada perintah baris dispesifikasikan sebuah alamat target kelas B (/16), maka + semua alamat IP yang berjumlah 65.536 akan diperiksa. + Pencarian host yang tepat akan dilewati sebagaimana dengan list scan, namun + alih-alih berhenti dan menampilkan daftar target, Nmap + lalu melakukan fungsi-fungsi yang diminta sebagaimana bila setiap IP target + aktif. Untuk mesin-mesin pada jaringan ethernet lokal, pemeriksaan ARP + akan tetap dilakukan (kecuali diberikan opsi <option>--send-ip</option>) + karena Nmap butuh alamat MAC untuk melakukan pemeriksaan lanjutan atas host target. + Flag opsi ini dulunya adalah <option>P0</option> (menggunakan nol), namun kemudian diganti + untuk menghindari kerancuan dengan flag protokol ping <option>PO</option> (menggunakan huruf + O).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PS <replaceable>port list</replaceable></option> (TCP SYN Ping) + <indexterm significance="normal"><primary><option>-PS</option></primary></indexterm> + <indexterm significance="normal"><primary>SYN ping</primary></indexterm> + </term> + <listitem> + + <para>Opsi ini mengirimkan sebuah paket TCP kosong dengan + flag SYN diset. Port tujuan baku adalah 80 (dapat dikonfigurasi + pada waktu kompilasi dengan merubah <varname>DEFAULT_TCP_PROBE_PORT_SPEC</varname> + <indexterm significance="normal"><primary><varname>DEFAULT_TCP_PROBE_PORT_SPEC</varname></primary></indexterm> + dalam <filename moreinfo="none">nmap.h</filename>). + <indexterm significance="normal"><primary><filename moreinfo="none">nmap.h</filename></primary></indexterm> + Port-port alternatif dapat dispesifikasikan sebagai parameter. + Sintaksnya sama dengan opsi + <option>-p</option> kecuali specifier jenis port seperti + <literal moreinfo="none">T:</literal> tidak diperbolehkan. Contohnya adalah + <option>-PS22</option> dan + <option>-PS22-25,80,113,1050,35000</option>. Perhatikan bahwa tidak + boleh ada spasi antara <option>-PS</option> dan daftar port. + Jika dispesifikasikan banyak probe mereka akan dikirim + secara paralel.</para> + + <para>Flag SYN memberitahu sistem remote bahwa anda + berusaha membuat sebuah koneksi. Normalnya port tujuan + tertutup, dan sebuah paket RST (reset) akan dikirimkan. + Jika port terbuka, target akan melakukan langkah kedua dari + TCP three-way-handshake<indexterm significance="normal"><primary>three-way handshake</primary></indexterm> + dengan mengirimkan paket SYN/ACK TCP. Mesin yang menjalankan Nmap lalu + memutuskan koneksi tersebut dengan mengirimkan sebuah paket RST + alih-alih mengirimkan sebuah paket ACK yang akan melengkapi + three-way-handshake dan membuat koneksi penuh. + Paket RST dikirim oleh kernel mesin yang menjalankan Nmap + sebagai tanggapan atas SYN/ACK yang tidak diharapkan, + bukan oleh Nmap sendiri.</para> + + <para>Nmap tidak peduli apakah port terbuka atau tertutup. + Tanggapan RST atau SYN/ACK yang didiskusikan di atas + memberitahu Nmap bahwa host tersedia dan menanggapi.</para> + + <para>Pada mesin Unix, umumnya hanya user privilege + <literal moreinfo="none">root</literal><indexterm significance="normal"><primary>privileged users</primary></indexterm> + yang dapat mengirim dan menerima paket-paket TCP raw.<indexterm significance="normal"><primary>raw packets</primary></indexterm> + Untuk user tanpa privilege, secara otomatis sebuah + workaround akan dijalankan <indexterm significance="normal"><primary>unprivileged users</primary><secondary>limitations of</secondary></indexterm> + yaitu system call <function moreinfo="none">connect</function> akan digunakan untuk + setiap port target. Hal ini mempunyai efek mengirimkan paket SYN ke host target, + dalam usaha membuat koneksi. Jika <function moreinfo="none">connect</function> memberikan + sukses cepat atau kegagalan ECONNREFUSED, stack TCP + di bawahnya telah menerima sebuah SYN/ACK atau RST dan + host ditandai sebagai tersedia. Jika usaha koneksi dibiarkan + hingga tercapai timeout, host ditandai sebagai down. + Workaround ini juga digunakan untuk koneksi IPv6, + karena dukungan untuk pembuatan paket raw IPv6 belum + tersedia di Nmap.<indexterm significance="normal"><primary>IPv6</primary><secondary>limitations of</secondary></indexterm> + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PA <replaceable>port list</replaceable></option> (TCP ACK Ping) + <indexterm significance="normal"><primary><option>-PA</option></primary></indexterm> + <indexterm significance="normal"><primary>ACK ping</primary></indexterm> + </term> + <listitem> + <para>Ping TCP ACK hampir serupa dengan ping + SYN yang baru didiskusikan. Perbedaannya adalah, sebagaimana + dapat anda duga, bahwa flag TCP ACK diset alih-alih + flag SYN. Paket ACK tersebut memberitahu data + pada koneksi TCP yang telah tercipta, namun tidak ada + koneksi. Sehingga host remote harus selalu menanggapi dengan + sebuah paket RST, yang akan memberitahukan keberadaan mereka.</para> + + <para>Opsi <option>-PA</option> menggunakan port baku + yang sama dengan probe SYN (80) dan dapat menerima daftar + port tujuan dalam format yang sama. Jika user tanpa privilege + mencobanya, atau dispesifikasikan target IPv6, workaround + <function moreinfo="none">connect</function> yang didiskusikan sebelumnya akan digunakan. + Workaround ini tidak sempurna karena <function moreinfo="none">connect</function> sebenarnya + mengirimkan paket SYN dan bukan paket ACK.</para> + + <para>Alasan menyertakan probe ping SYN dan ACK adalah + memaksimalkan peluang melewati firewall. Banyak administrator + mengkonfigurasi router dan firewall sederhana untuk memblokir + paket SYN incoming kecuali yang ditujukan untuk layanan publik + seperti server website atau mail perusahaan. + Hal ini mencegah koneksi incoming lainnya ke organisasi, + namun tetap membolehkan user melakukan koneksi outgoing + ke Internet. Pendekatan non-stateful ini + membutuhkan sedikit sumber daya pada firewall/router dan + didukung luas oleh filter hardware dan software. Software + firewall Linux Netfilter/iptables<indexterm significance="normal"><primary>iptables</primary></indexterm> + memberikan opsi + <option>--syn</option> untuk mengimplementasikan + pendekatan stateless ini. Ketika rule firewall stateless seperti + ini digunakan, probe ping SYN (<option>-PS</option>) + kemungkinan akan diblokir ketika dikirim ke port target yang tertutup. + Dalam kasus ini, probe ACK akan bersinar karena ia dapat mengatasi + rule tersebut.</para> + + <para>Jenis firewall umum lainnya menggunakan rule stateful + yang akan men-drop paket tidak diharapkan. Fitur ini mulanya + hanya ditemukan pada firewall high-end, namun sekarang + telah umum digunakan. Sistem Linux + Netfilter/iptables mendukungnya melalui opsi + <option>--state</option>, yang mengkategorikan paket + berdasarkan status koneksi. Probe SYN kemungkinan berfungsi + untuk sistem tersebut, karena paket ACK yang tidak diharapkan + umumnya dikenali sebagai palsu dan di-drop. Solusi untuk masalah ini + adalah dengan mengirimkan probe SYN dan ACK secara bersamaan dengan memberikan opsi + <option>-PS</option> and <option>-PA</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PU <replaceable>port list</replaceable></option> (UDP Ping) + <indexterm significance="normal"><primary><option>-PU</option></primary></indexterm> + <indexterm significance="normal"><primary>UDP ping</primary></indexterm> + </term> + <listitem> + + <para>Opsi pencarian host lainnya adalah ping UDP, yang + mengirim paket UDP kosong (kecuali <option>--data-length</option> dispesifikasikan) + ke port yang diberikan. Daftar port + menggunakan format yang sama dengan yang telah didiskusikan pada opsi + <option>-PS</option> dan <option>-PA</option>. Jika tidak ada port + yang dispesifikasikanya, bakunya adalah 31338. Port baku ini + dapat dikonfigurasi pada waktu kompilasi dengan merubah + <varname>DEFAULT_UDP_PROBE_PORT_SPEC</varname><indexterm significance="normal"><primary><varname>DEFAULT_UDP_PROBE_PORT_SPEC</varname></primary></indexterm> + dalam <filename moreinfo="none">nmap.h</filename>.<indexterm significance="normal"><primary><filename moreinfo="none">nmap.h</filename></primary></indexterm> + Port tinggi yang tidak umum, digunakan secara baku karena mengirim + ke port terbuka seringkali tidak diharapkan untuk jenis pemeriksaan ini.</para> + + <para>Ketika menemui port tertutup pada mesin target, probe + UDP seharusnya menerima paket ICMP port unreachable. + Hal ini memberitahu Nmap bahwa mesin up dan tersedia. + Banyak jenis kesalahan ICMP lainnya, seperti + host/network unreachables atau TTL exceeded menandakan + host down atau tidak dapat dihubungi. Tidak ada respon + juga termasuk di dalamnya. Jika ditemukan sebuah port terbuka, kebanyakan + layanan akan mengabaikan paket kosong dan gagal mengirim tanggapan. + Inilah alasan mengapa port probe bakunya adalah 31338, + yang kemungkinan tidak digunakan. Beberapa layanan, seperti + protokol Character Generator (chargen), akan menanggapi paket UDP kosong, + dan karenanya memberitahu Nmap bahwa mesin tersedia.</para> + + <para>Keuntungan utama jenis scan ini adalah ia + melewati firewall dan filter yang hanya memeriksa TCP. Sebagai contoh, + saya pernah memiliki Linksys BEFW11S4 wireless broadband + router. Interface external device ini secara baku memfilter seluruh port + TCP, namun probe UDP tetap memberikan pesan port unreachable + dan karenanya memberitahu mengenai device ini.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PE</option>; + <option>-PP</option>; + <option>-PM</option> (ICMP Ping Types) + <indexterm significance="normal"><primary><option>-PE</option></primary></indexterm> + <indexterm significance="normal"><primary><option>-PP</option></primary></indexterm> + <indexterm significance="normal"><primary><option>-PM</option></primary></indexterm> + <indexterm significance="normal"><primary>ICMP ping</primary></indexterm> + </term> + <listitem> + + <para>Selain tipe pencarian host TCP dan UDP yang tidak umum di atas, + Nmap dapat mengirimkan paket dengan menggunakan program + <application moreinfo="none">ping</application>. Nmap mengirim sebuah paket ICMP + tipe 8 (echo request) ke alamat IP target, + mengharapkan balasan paket tipe 0 (echo reply) dari host + yang ada.<indexterm significance="normal"><primary>ICMP echo</primary></indexterm> + Sayangnya bagai pengeksplorasi jaringan, saat ini banyak host dan + firewall yang memblokir paket-paket ini, alih-alih menanggapi sebagaimana yang + ditentukan oleh <ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC + 1122</ulink>. Karena alasan ini, scan ICMP-only relatif tidak + handal terhadap target tak dikenal pada Internet. + Namun untuk administrator sistem yang memonitor jaringan internal, + mereka mungkin merupakan pendekatan yang praktis dan efisien. + Gunakan opsi <option>-PE</option> untuk menggunakan perilaku echo + request ini.</para> + + <para>Meski echo request merupakan standar query ping ICMP, + Nmap tidak berhenti di sana. Standar ICMP (<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC + 792</ulink>) juga menspesifikasikan paket timestamp request, information + request, dan address mask request dengan kode 13, 15, + dan 17. Walaupun tujuan query-query ini adalah untuk + memperoleh informasi seperti address masks dan + waktu saat ini, mereka dapat dengan mudah digunakan sebagai + pencarian host. Sistem yang memberi tanggapan adalah up dan tersedia. Nmap + tidak mengimplementasikan paket information request, karena + mereka tidak didukung luas. RFC 1122 berkeras bahwa + <quote>sebuah host TIDAK SEHARUSNYA mengimplementasikan pesan ini</quote>. + Query timestamp dan address mask dapat dikirim dengan opsi + <option>-PP</option> and <option>-PM</option>. + Reply timestamp (ICMP kode 14) atau reply address + mask (kode 18) memberitahukan bahwa host tersedia. + Kedua query ini bermanfaat ketika administrator secara khusus + memblokir paket-paket echo request namun lupa bahwa query ICMP + lainnya dapat digunakan untuk tujuan yang sama.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PO <replaceable>protocol list</replaceable></option> (IP Protocol Ping) + <indexterm significance="normal"><primary><option>-PO</option></primary></indexterm> + <indexterm significance="normal"><primary>IP protocol ping</primary></indexterm> + </term> + <listitem> + + <para>Opsi pencarian host terbaru adalah ping protokol IP, + yang mengirimkan paket IP dengan nomor port yang dispesifikasikan + dalam header IP-nya. Daftar protokol menggunakan format yang sama + seperti daftar port dalam opsi pencarian host TCP dan UDP yang + telah didiskusikan sebelumnya. Jika tidak didefinisikan protokol, + secara bakunya adalah mengirimkan banyak paket IP untuk + ICMP (protokol 1), IGMP (protokol 2), dan + IP-in-IP (protokol 4). Protokol baku dapat dikonfigurasi + pada waktu kompilasi dengan merubah + <varname>DEFAULT_PROTO_PROBE_PORT_SPEC</varname><indexterm significance="normal"><primary><varname>DEFAULT_PROTO_PROBE_PORT_SPEC</varname></primary></indexterm> + dalam <filename moreinfo="none">nmap.h</filename>. + Perhatikan bahwa untuk ICMP, IGMP, TCP (protokol 6), dan UDP + (protokol 17), paket dikirim dengan header protokol yang sesuai + sementara protokol lainnya dikirim tanpa data tambahan + selain header IP (kecuali diberikan opsi + <option>--data-length</option>).</para> + + <para>Metode pencarian host ini melihat respon yang menggunakan protokol + yang sama dengan probe, atau protokol ICMP unreachable messages + yang memberitahu bahwa protokol dimaksud tidak didukung pada + host tujuan. Kedua jenis respon di atas menandakan bahwa + host target ada.</para> + + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PR</option> (ARP Ping) + <indexterm significance="normal"><primary><option>-PR</option></primary></indexterm> + <indexterm significance="normal"><primary>ARP ping</primary></indexterm> + </term> + <listitem> + + <para>Salah satu skenario penggunaan Nmap yang umum adalah + memeriksa LAN ethernet. Pada kebanyakan LAN, terutama yang menggunakan + rentang alamat privat sebagaimana dijelaskan oleh <ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc1918.txt">RFC 1918</ulink>, mayoritas + alamat IP tidak digunakan. Ketika Nmap berusaha mengirim paket IP raw + seperti sebuah ICMP echo request, sistem operasi harus menentukan alamat + hardware tujuan (ARP) yang sesuai dengan IP target sehingga ia dapat + mengirimkan frame ethernet dengan tepat. Hal ini seringkali lambat dan + bermasalah, karena sistem operasi tidak ditulis dengan maksud + mereka akan melakukan jutaan request ARP atas host-host yang tidak ada + dalam waktu yang singkat.</para> + + <para>Scan ARP menempatkan Nmap dan algoritma teroptimisasinya + untuk menangani request ARP. Dan bila ia memperoleh respon, + Nmap tidak perlu kuatir mengenai paket ping berbasis IP + karena ia telah mengetahui bahwa host up. Hal ini membuat + scan ARP jauh lebih cepat dan handal dibanding scan berbasis IP. + Sehingga ia dilakukan secara baku ketika memeriksa host ethernet yang + dideteksi Nmap berada pada jaringan ethernet lokal. Bahkan bila digunakan + jenis ping (seperti <option>-PE</option> atau + <option>-PS</option>), Nmap menggunakan ARP untuk sembarang target + yang berada dalam LAN yang sama. Jika anda tidak menginginkan scan ARP, + berikan opsi <option>--send-ip</option>.</para> + + </listitem> + </varlistentry> + +<varlistentry> + <term> + <option>--traceroute</option> (Trace path to host) + <indexterm significance="preferred"><primary><option>--traceroute</option></primary></indexterm> + <indexterm significance="preferred"><primary>traceroute</primary></indexterm> + </term> + <listitem> + +<para> +Traceroute dilakukan setelah scan menggunakan informasi dari hasil sscan untuk menentukan port dan protocol yang berpeluang besar mencapai target. Ia dapat digunakan untuk seluruh jenis scan kecuali scan connect (<option>-sT</option>) dan scan idle (<option>-sI</option>). Seluruh pelacakan menggunakan model pewaktuan dinamis Nmap dan dilakukan secara paralel. +</para> + +<para> +Traceroute bekerja dengan mengirimkan paket dengan TTL (time-to-live) rendah agar tidak memperoleh pesan ICMP Time Exceeded dari hop langsung antara scanner dan host target. Implementasi standar traceroute dimulai dengan TTL 1 dan menaikkan TTL hingga host tujuan tercapai. Traceroute Nmap dimulai dengan TTL tinggi dan kemudian menurunkan TTL hingga nol. Dengan melakukan secara terbalik Nmap menggunakan algoritma caching cerdas untuk mempercepat pelacakan atas banyak host. Secara rata-rata Nmap mengirimkan paket kurang dari 5–10 per host, tergantung pada kondisi jaringan. Jika dilakukan scan atas satu subnet tunggal (misal 192.168.0.0/24) Nmap mungkin hanya perlu mengirim satu paket untuk kebanyakan host tersebut. +</para> +</listitem> +</varlistentry> + + <varlistentry> + <term> + <option>-n</option> (No DNS resolution) + <indexterm significance="normal"><primary><option>-n</option></primary></indexterm> + </term> + <listitem> + + <para>Memberitahu Nmap untuk <emphasis>tidak</emphasis> melakukan resolusi reverse + DNS + <indexterm significance="normal"><primary>reverse DNS</primary><secondary>disabling with <option>-n</option></secondary></indexterm> + pada alamat IP aktif yang ditemukannya. Karena DNS + dapat lambat meskipun dengan menggunakan resolver paralel built-in Nmap, opsi ini dapat mempercepat waktu pemeriksaan.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-R</option> (DNS resolution for all targets) + <indexterm significance="normal"><primary><option>-R</option></primary></indexterm> + </term> + <listitem> + <para>Memberitahu Nmap untuk + <emphasis>selalu</emphasis> melakukan resolusi reverse DNS + pada alamat IP target. Normalnya reverse DNS hanya dilakukan + terhadap host yang online.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--system-dns</option> (Use system DNS resolver) + <indexterm significance="preferred"><primary><option>--system-dns</option></primary></indexterm> + </term> + <listitem> + + <para>Secara baku, Nmap meresolve alamat IP dengan mengirimkan + query secara langsung ke server DNS yang dikonfigurasi pada host anda + dan mendengarkan responnya. Banyak request (seringkali selusin) + dilakukan secara paralel untuk meningkatkan kinerja. + Gunakan opsi ini untuk menggunakan resolver sistem anda (satu IP + pada satu waktu melalui call <function moreinfo="none">getnameinfo</function>). Hal ini + lebih lambat dan jarang bermanfaat kecuali anda menemukan bug dalam resolver paralel Nmap + (mohon beritahu kami bila demikian). Resolver sistem selalu digunakan untuk scan IPv6. + <indexterm significance="normal"><primary>IPv6</primary><secondary>limitations of</secondary></indexterm> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--dns-servers <replaceable>server1</replaceable><optional>,<replaceable>server2</replaceable><optional>,...</optional></optional> + </option> (Servers to use for reverse DNS queries) + <indexterm significance="preferred"><primary><option>--dns-servers</option></primary></indexterm> + </term> + <listitem> + + <para>Secara baku, Nmap menentukan server DNS anda + (untuk resolusi rDNS) dari file resolv.conf anda (Unix) atau + Registry (Win32). Selain itu, anda dapat menggunakan opsi ini + untuk menspesifikasikan server alternatif. Opsi ini tidak diindahkan + bila anda menggunakan <option>--system-dns</option> atau melakukan scan + IPv6. Dengan menggunakan banyak server DNS seringkali lebih cepat, + terutama bila anda memilih server otoritatif untuk ruang IP target anda. + Opsi ini juga dapat meningkatkan kemampuan sembunyi (stealth), karena request + anda dapat diberikan ke sembarang server DNS rekursif di Internet.</para> + + <para>Opsi ini juga bermanfaat ketika memeriksa jaringan privat. + Terkadang hanya beberapa name server yang memberikan informasi rDNS yang tepat, + dan mungkin anda tidak tahu di mana mereka. Anda dapat memeriksa jaringan untuk + port 53 (mungkin dengan deteksi versi), lalu coba scan list Nmap + (<option>-sL</option>) dengan menspesifikasikan setiap name server pada satu waktu + dengan <option>--dns-servers</option> hingga anda menemukan yang berfungsi.</para> + + + </listitem> + </varlistentry> + </variablelist> + <indexterm class="endofrange" startref="man-host-discovery-indexterm" significance="normal"/> + </refsect1> + + <refsect1 id="man-port-scanning-basics"> + <title>Dasar Scanning Port</title> + + <para>Meskipun selama ini Nmap telah mengalami perkembangan fungsionalitas, + namun ia bermula sebagai sebuah scanner port yang efisien, dan hal itu tetap menjadi + fungsi utamanya. Perintah sederhana <command moreinfo="none">nmap + <replaceable>target</replaceable></command> akan memeriksa lebih dari + 1660 port TCP pada host + <replaceable>target</replaceable>. Ketika banyak scanner port secara tradisional + membagi seluruh port ke dalam status terbuka (open) atau tertutup (closed), + Nmap lebih granular. Ia membagi port menjadi enam status : + <literal moreinfo="none">open</literal>, + <literal moreinfo="none">closed</literal>, <literal moreinfo="none">filtered</literal>, + <literal moreinfo="none">unfiltered</literal>, + <literal moreinfo="none">open|filtered</literal>, or + <literal moreinfo="none">closed|filtered</literal>.</para> + +<para>Status ini bukan merupakan properti intrinsik dari port itu sendiri, +namun menggambarkan bagaimana Nmap memandang mereka. Sebagai contoh, +scan Nmap dari jaringan yang sama dengan target mungkin menampilkan +port <literal moreinfo="none">135/tcp</literal> sebagai terbuka, sementara scan yang sama +pada waktu dan opsi yang sama dari Internet mungkin menunjukkan bahwa port tersebut <literal moreinfo="none">filtered</literal>.</para> + +<variablelist><title>Enam status port yang dikenali Nmap</title> + + <varlistentry><term> + <indexterm significance="normal"><primary><literal moreinfo="none">open</literal> port state</primary></indexterm> + open</term> + <listitem><para>Sebuah aplikasi secara aktif menerima koneksi paket TCP + atau UDP pada port ini. Menemukan port terbuka ini seringkali merupakan + tujuan utama scanning port. Orang dengan pikiran keamanan (security-minded) tahu bahwa + setiap port terbuka merupakan celah untuk serangan. Penyerang dan pen-testers + ingin mengeksploitasi port terbuka, namun administrator berusaha menutup atau + melindungi mereka dengan firewall tanpa mengganggu user yang berhak. + Port terbuka juga menarik bagi scan bukan keamanan karena mereka memberitahu + layanan yang dapat digunakan pada jaringan. + </para></listitem></varlistentry> + + <varlistentry><term> + <indexterm significance="normal"><primary><literal moreinfo="none">closed</literal> port state</primary></indexterm> + closed</term> + + <listitem><para>Port tertutup dapat diakses (ia menerima dan + menanggapi paket probe Nmap), namun tidak ada aplikasi yang mendengarkan + padanya. Mereka bermanfaat dengan menunjukkan bahwa host up + pada alamat IP tersebut (host discovery, atau ping scanning), dan sebagai bagian + deteksi SO. Oleh karena port tertutup dapat dijangkau, bermanfaat untuk + mencoba scan di waktu yang lain jikalau port tersebut terbuka. Administrator mungkin + perlu mempertimbangkan untuk memblok port tersebut dengan firewall. Lalu mereka + akan muncul dalam status filtered, yang akan didiskusikan. + </para></listitem></varlistentry> + + <varlistentry><term> + <indexterm significance="normal"><primary><literal moreinfo="none">filtered</literal> port state</primary></indexterm> + filtered</term> + + <listitem><para>Nmap tidak dapat menentukan apakah port terbuka + karena packet filtering mencegah probenya mencapai port. + Filter ini dapat dilakukan oleh device firewall, aturan pada router, + atau software firewall pada host. Port ini membuat penyerang frustrasi + karena mereka memberikan sedikit informasi. Terkadang mereka menanggapi + dengan pesan kesalahan ICMP misalnya tipe 3 kode 13 + (tujuan tidak dapat dicapai: komunikasi dilarang secara administratif), + namun yang lebih umum adalah filter yang hanya men-drop probe tanpa memberi + tanggapan. Hal ini memaksa Nmap berusaha beberapa kali untuk memastikan + probe tidak di-drop akibat jaringan yang padat. + Hal ini sangat memperlambat proses scan.</para></listitem></varlistentry> + + <varlistentry><term> + <indexterm significance="normal"><primary><literal moreinfo="none">unfiltered</literal> port state</primary></indexterm> + unfiltered</term> + <listitem><para>Status unfiltered berarti bahwa port dapat diakses, + namun Nmap tidak dapat menentukan apakah ia open atau closed. Hanya scan + ACK, yang digunakan untuk mengetahui aturan firewall, menggolongkan + port ke dalam status ini. Pemeriksaan port unfiltered dengan tipe pemeriksaan lain + seperti Window scan, SYN scan, atau FIN scan, dapat membantu mengetahui + apakah port terbuka. + </para></listitem></varlistentry> + + <varlistentry><term> + <indexterm significance="normal"><primary><literal moreinfo="none">open|filtered</literal> port state</primary></indexterm> + open|filtered</term> + <listitem><para>Nmap menganggap port dalam status ini bila ia tidak dapat + menentukan apakah port open atau filtered. Hal ini terjadi untuk jenis pemeriksaan + ketika port terbuka tidak memberi respon. Tidak adanya tanggapan dapat pula berarti + bahwa packet filter men-drop probe atau respon yang diberikan. Sehingga Nmap tidak + dapat mengetahui dengan tepat apakah port terbuka atau difilter. Scan UDP, IP protocol, + FIN, NULL, dan Xmas mengklasifikasikan port dengan cara ini.</para></listitem></varlistentry> + + <varlistentry><term> + <indexterm significance="normal"><primary><literal moreinfo="none">closed|filtered</literal> port state</primary></indexterm> + closed|filtered</term> + <listitem><para>Status ini digunakan ketika Nmap tidak dapat menentukan + apakah port tertutup atau di-filter. Ia hanya digunakan pada scan idle ID IP.</para></listitem></varlistentry> + </variablelist> +</refsect1> + +<refsect1 id="man-port-scanning-techniques"> + <title>Teknik Scanning Port</title> + +<para>Sebagai seorang pemula yang melakukan perbaikan otomotif, saya dapat berjuang +berjam-jam untuk menyesuaikan alat sederhana saya (palu, duct tape, +dsb.) untuk tugas yang ada. Ketika saya gagal dan menyerahkannya pada +mekanik sebenarnya, ia mencari dalam kotak perangkatnya hingga menemukan +alat yang tepat yang membuat pekerjaan tersebut menjadi mudah. Seni scanning port +juga serupa. Para ahli memahami beragam teknik pemindaian dan memilih +satu (atau kombinasi) yang sesuai untuk tugas yang ada. User tidak berpengalaman dan +script kiddies,<indexterm significance="normal"><primary>script kiddies</primary></indexterm> +di lain pihak, berusaha menyelesaikan semua masalah dengan scan SYN baku. Oleh karena Nmap +gratis, satu-satunya penghalang menguasai scanning port adalah pengetahuan. Hal itu tentu +saja mengalahkan dunia otomotif, setelah membutuhkan keahlian tinggi untuk menentukan bahwa +anda butuh kompresor pegas strut, lalu anda mesti harus membayar ribuan dolar untuknya.</para> + +<para>Kebanyakan jenis scan hanya tersedia untuk +user privilege.<indexterm significance="normal"><primary>privileged users</primary></indexterm> +Hal ini karena mereka mengirim dan menerima paket raw,<indexterm significance="normal"><primary>raw packets</primary></indexterm> yang membutuhkan akses root pada sistem Unix. +Pada sistem Windows, menggunakan akun administrator disarankan, meski +terkadang Nmap dapat bekerja untuk unprivileged users ketika WinPcap telah dimuatkan ke SO. Kebutuhan akan privilege root merupakan sebuah batasan serius ketika Nmap dirilis pada tahun 1997, +karena banyak user hanya mempunyai akses ke shared shell. Saat ini, +hal tersebut berbeda. Komputer telah lebih murah, lebih banyak orang memiliki +akses langsung Internet always-on, dan banyak sistem Unix desktop (termasuk +Linux dan Mac OS X). Versi Nmap Windows kini tersedia, membuatnya +berjalan di lebih banyak desktop. Karena alasan-alasan ini, +user memiliki sedikit alasan untuk menjalankan Nmap dari akun shared shell yang terbatas. +Ini merupakan keberuntungan, karena opsi privilege membuat Nmap lebih +powerful dan fleksibel.</para> + +<para>Meski Nmap berusaha memberikan hasil yang akurat, namun perlu diperhatikan +bahwa seluruh pandangannya didasarkan pada paket yang dikembalikan oleh mesin target +(atau firewall di depan mereka). Host tersebut mungkin tidak dapat dipercaya +dan responnya bertujuan membingungkan atau mengacaukan Nmap. +Yang lebih umum adalah host yang tidak sesuai dengan RFC yang tidak menanggapi +sebagaimana yang seharusnya atas probe Nmap. Scan FIN, NULL, dan Xmas terutama +rentan terhadap masalah ini. Isu tersebut adalah spesifik untuk jenis scan tertentu +dan didiskusikan dalam entri jenis scan individual.</para> + +<para>Bagian ini mendokumentasikan selusin atau lebih teknik scan port +yang didukung oleh Nmap. Hanya satu metode yang boleh digunakan di satu waktu, +kecuali scan UDP (<option>-sU</option>) dapat digabungkan dengan sembarang +jenis scan TCP. Sebagai pengingat, opsi jenis scan port adalah +dalam bentuk <option>-s<replaceable>C</replaceable></option>, dengan +<replaceable>C</replaceable> merupakan karakter utama dalam nama scan, +biasanya yang pertama. Satu pengecualian untuk ini adalah scan bounce FTP +yang telah kuno (<option>-b</option>). Secara baku, Nmap melakukan +SYN Scan, meski ia menggantinya dengan scan connect bila user tidak memiliki +privilege untuk mengirim paket raw (membutuhkan akses root pada Unix) +atau bila dispesifikasikan target IPv6. Dari semua scan yang ada di bawah ini, +unprivileged user hanya dapat menjalankan scan connect dan FTP bounce.</para> + + <variablelist> + <varlistentry> + <term> + <option>-sS</option> (TCP SYN scan) + <indexterm significance="normal"><primary><option>-sS</option></primary></indexterm> + <indexterm significance="normal"><primary>SYN scan</primary></indexterm> + </term> + <listitem> + +<para>SYN scan merupakan opsi scan baku dan terpopuler dengan alasan yang baik. +Ia dapat dilakukan dengan cepat, memeriksa ribuan port per detik pada jaringan +yang cepat tidak dihalangi oleh firewall yang membatasi. Scan SYN +relatif tidak mengganggu dan tersembunyi, karena ia tidak pernah melengkapi +koneksi TCP. Ia juga bekerja terhadap stack TCP yang sesuai alih-alih +tergantung pada platform khusus sebagaimana scan FIN/NULL/Xmas, Maimon dan idle. +Ia juga memungkinkan pembedaan yang tegas dan handal antara status <literal moreinfo="none">open</literal>, +<literal moreinfo="none">closed</literal>, dan <literal moreinfo="none">filtered</literal>.</para> + +<para>Teknik ini seringkali diacu sebagai pemeriksaan setengah terbuka (half-open scanning), +karena anda tidak membuka seluruh koneksi TCP. Anda mengirim sebuah paket SYN, +seperti anda ingin melakukan koneksi sesungguhnya dan kemudian menunggu tanggapan. +SYN/ACK menandakan port sedang mendengarkan (open), RST (reset) menandakan tidak sedang +mendengarkan. Jika tidak ada tanggapan setelah beberapa kali pengiriman ulang, port +ditandai sebagai tersaring (filtered). Port juga ditandai sebagai tersaring bila diterima +kesalahan ICMP unreachable (tipe 3, kode 1, 2, 3, 9, 10, atau 13).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sT</option> (TCP connect scan) + <indexterm significance="normal"><primary><option>-sT</option></primary></indexterm> + <indexterm significance="normal"><primary>connect scan</primary></indexterm> + </term> + <listitem> +<para>Scan TCP connect merupakan jenis scan baku TCP ketika scan SYN +tidak dapat digunakan. Hal ini terjadi ketika user tidak memiliki privilege +untuk paket raw atau ketika melakukan pemeriksaan jaringan IPv6. Alih-alih menulis paket +raw sebagaimana dilakukan jenis scan lainnya, Nmap meminta SO +membuat koneksi dengan mesin target dan port dengan memberikan system call +<function moreinfo="none">connect</function>. Ini merupakan system call +yang digunakan oleh web browsers, klien P2P, dan kebanyakan aplikasi jaringan +lainnya untuk membuat koneksi. Ia merupakan bagian dari interface pemrograman +yang dikenal sebagai Berkeley Sockets API. Nmap juga menggunakan API ini untuk +memperoleh informasi status setiap usaha koneksi. +</para> + +<para>Ketika tersedia SYN scan, ia merupakan pilihan yang lebih baik. Nmap +kurang memiliki kendali atas call <function moreinfo="none">connect</function> daripada +paket raw, membuatnya kurang efisien. System call membuat koneksi lengkap +untuk membuka port target daripada membuat reset setengah-terbuka (half-open reset) +yang dilakukan SYN scan. Hal ini tidak saja lebih lambat dan membutuhkan lebih banyak paket +untuk memperoleh informasi yang sama, namun juga mesin target kemungkinan mencatat koneksi. +IDS yang baik akan mendeteksi hal ini, namun kebanyakan mesin tidak memiliki sistem alarm tersebut. +Kebanyakan layanan pada sistem Unix umum akan membuat catatan ke syslog, dan seringkali +pesan kesalahan yang rumit, ketika Nmap membuka dan menutup koneksi tanpa mengirim data. +Layanan yang benar-benar buruk akan crash ketika hal ini terjadi, meskipun tidak umum. +Administrator yang melihat serangkaian usaha koneksi dari sistem tunggal di lognya seharusnya +tahu bahwa ia telah diperiksa dengan metode connect.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sU</option> (UDP scan) +<indexterm significance="normal"><primary><option>-sU</option></primary></indexterm> +<indexterm significance="normal"><primary>UDP scan</primary></indexterm> +</term> + <listitem> + +<para>Walau kebanyakan layanan populer di Internet menggunakan protokol TCP, layanan +<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> +luas dipergunakan. DNS, SNMP, dan DHCP (port 53, 161/162, dan 67/68) adalah tiga yang paling +umum. Karena pemeriksaan UDP umumnya lebih lambat dan lebih sulit dibanding TCP, beberapa +audit keamanan mengabaikan port ini. Ini merupakan kesalahan, karena eksploitasi layanan UDP +cukup umum dan penyerang tentu saja tidak mengabaikan seluruh protokol. Untungnya, Nmap dapat +membantu inventori port UDP.</para> + +<para>Scan UDP diaktifkan dengan opsi <option>-sU</option>. Ia dapat digabungkan +dengan jenis scan TCP seperti SYN scan (<option>-sS</option>) untuk memeriksa +kedua buah protokol sekaligus.</para> + +<para>Scan UDP bekerja dengan mengirimkan header UDP kosong (tanpa data) ke setiap port +yang diinginkan. Jika diperoleh kesalahan ICMP port unreachable (tipe 3, kode 3), port itu <literal moreinfo="none">closed</literal>. Kesalahan ICMP lainnya (tipe 3, +kode 1, 2, 9, 10, atau 13) menandakan port sebagai <literal moreinfo="none">filtered</literal>. Seringkali, sebuah layanan akan menanggapi dengan paket UDP, membuktikan bahwa ia <literal moreinfo="none">open</literal>. Jika tidak ada tanggapan setelah transmisi ulang, port +dianggap <literal moreinfo="none">open|filtered</literal>. Hal ini berarti bahwa port dapat berada dalam keadaan open, atau mungkin packet filter memblokir komunikasi. Deteksi versi +(<option>-sV</option>) dapat digunakan untuk membantu membedakan antara port yang terbuka dengan yang disaring.</para> + +<para>Tantangan terbesar scanning UDP adalah melakukannya dengan cepat. +Port terbuka dan tersaring jarang mengirimkan tanggapan, membuat Nmap time +out dan kemudian melakukan transmisi ulang bilamana probe atau respon hilang. +Port tertutup seringkali merupakan masalah yang lebih besar. +Mereka umumnya mengirimkan ulang kesalahan ICMP port unreachable. Namun tidak seperti +paket RST yang dikirim oleh port TCP tertutup sebagai respon atas scan SYN atau connect, +banyak host secara baku membatasi pesan <indexterm significance="normal"><primary>rate limiting</primary></indexterm> ICMP port unreachable. +Linux dan Solaris terutama sangat ketat mengenai hal ini. Sebagai contoh, kernel +Linux 2.4.20 membatasi pesan destination unreachable ke satu per detik +(dalam <filename moreinfo="none">net/ipv4/icmp.c</filename>).</para> + +<para>Nmap mendeteksi pembatasan ini dan memperlambat kerjanya untuk menghindari +pemenuhan jaringan dengan paket-paket tidak perlu yang akan di-drop oleh mesin target. +Sayangnya, pembatasan ala Linux dengan satu paket per detik membuat pemeriksaan 65.536 +membutuhkan waktu lebih 18 jam. Ide untuk mempercepat scan UDP termasuk pemeriksaan +lebih banyak host secara paralel, melakukan pemeriksaan atas port-port populer dulu, +pemeriksaan di belakang firewall, dan menggunakan <option>--host-timeout</option> untuk melewati +host lambat.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (TCP NULL, FIN, dan Xmas scan) +<indexterm significance="normal"><primary><option>-sN</option></primary></indexterm> +<indexterm significance="normal"><primary><option>-sF</option></primary></indexterm> +<indexterm significance="normal"><primary><option>-sX</option></primary></indexterm> +<indexterm significance="normal"><primary>NULL scan</primary></indexterm> +<indexterm significance="normal"><primary>FIN scan</primary></indexterm> +<indexterm significance="normal"><primary>Xmas scan</primary></indexterm> +</term> + <listitem> + +<para>Ketiga jenis scan ini (bahkan kemungkinan lebih dengan adanya opsi +<option>--scanflags</option> yang dijelaskan pada bagian berikutnya) +mengeksploitasi kelemahan dalam <ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC TCP</ulink> untuk membedakan +antara port <literal moreinfo="none">open</literal> dan +<literal moreinfo="none">closed</literal>. Halaman 65 RFC 793 mengatakan bawha <quote>if the +[destination] port state is CLOSED .... an incoming segment not +containing a RST causes a RST to be sent in response.</quote> Lalu halaman berikutnya +mendiskusikan paket yang dikirim ke port terbuka tanpa bit SYN, RST, atau ACK diset, +menyatakan bahwa : <quote>you are unlikely to get here, but if you do, drop the +segment, and return.</quote></para> + +<para>Ketika memeriksa sistem yang sesuai dengan teks RFC ini, sembarang paket +yang tidak berisikan bit SYN, RST, atau ACK akan berakibat pengembalian RST bila +port tertutup dan tidak ada respon bila port terbuka. Selama ketiga bit ini tidak disertakan, +sembarang kombinasi ketiga bit lainnya (FIN, PSH, dan URG) adalah OK. Nmap mengeksploitasi +celah ini dengan ketiga jenis scan berikut :</para> + +<variablelist> + <varlistentry><term>Null scan (<option>-sN</option>)</term> + <listitem><para>Tidak mengirimkan bit(header flag TCP adalah 0)</para></listitem></varlistentry> + + <varlistentry><term>FIN scan (<option>-sF</option>)</term> + <listitem><para>Hanya menset bit FIN TCP.</para></listitem></varlistentry> + + <varlistentry><term>Xmas scan (<option>-sX</option>)</term> + <listitem><para>Menset flag FIN, PSH, dan URG, menerangi paket + seperti sebuah pohon Natal.</para></listitem></varlistentry> +</variablelist> + +<para>Ketiga jenis scan ini serupa perilakunya kecuali untuk flag TCP yang diset +dalam paket probe. Jika diterima paket RST, +port dianggap <literal moreinfo="none">closed</literal>, tidak ada respon +berarti ia <literal moreinfo="none">open|filtered</literal>. Port ditandai +<literal moreinfo="none">filtered</literal> bila diterima kesalahan ICMP unreachable (tipe 3, kode +1, 2, 3, 9, 10, atau 13).</para> + +<para>Keuntungan utama jenis scan ini adalah bahwa mereka dapat +menyusup melalui non-stateful firewall dan router packet filtering +tertentu. Keunggulan lain adalah bahwa ketiga scan ini lebih tersembunyi bahkan +bila dibandingkan dengan SYN scan. Jangan mengandalkan hal ini karena +produk IDS modern dapat dikonfigurasi untuk mendeteksi mereka. Kelemahan utama +adalah tidak semua sistem mematuhi RFC 793 secara tepat. Sejumlah sistem +mengirim respon RST atas probe tanpa perduli apakah port terbuka atau tertutup. +Hal ini membuat seluruh port dianggap sebagai <literal moreinfo="none">closed</literal>. +Sistem operasi utama yang melakukan hal ini adalah Microsoft Windows, banyak device Cisco devices, +BSDI, dan IBM OS/400. Scan ini tidak bekerja terhadap kebanyakan sistem berbasis Unix. +Kekurangan lainnya adalah scan ini tidak dapat membedakan antara +port <literal moreinfo="none">open</literal> dengan port tertentu yang +<literal moreinfo="none">filtered</literal>, memberikan anda tanggapan +<literal moreinfo="none">open|filtered</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sA</option> (TCP ACK scan) + <indexterm significance="normal"><primary><option>-sA</option></primary></indexterm> + <indexterm significance="normal"><primary>ACK scan</primary></indexterm> + </term> + <listitem> + +<para>Scan ini berbeda dengan yang telah didiskusikan sejauh ini yaitu ia +tidak pernah menentukan port <literal moreinfo="none">open</literal> (or even +<literal moreinfo="none">open|filtered</literal>). Ia digunakan untuk memetakan +aturan firewall, menentukan apakah mereka stateful atau tidak dan +port mana saja yang disaring.</para> + +<para>Paket probe scan ACK hanya memiliki flag ACK di-set (kecuali anda menggunakan +<option>--scanflags</option>). Ketika memeriksa sistem yang tidak disaring, port +<literal moreinfo="none">open</literal> dan <literal moreinfo="none">closed</literal> keduanya +akan mengembalikan paket RST. Nmap kemudian menandakan mereka sebagai +<literal moreinfo="none">unfiltered</literal>, yang berarti mereka dapat dicapai oleh paket +ACK, namun belum dapat ditentukan apakah mereka <literal moreinfo="none">open</literal> atau +<literal moreinfo="none">closed</literal>. Port yang tidak menanggapi, +atau mengirim kembali pesan kesalahan ICMP (tipe 3, kode 1, 2, 3, 9, 10, +atau 13), dianggap sebagai <literal moreinfo="none">filtered</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sW</option> (TCP Window scan) +<indexterm significance="normal"><primary><option>-sW</option></primary></indexterm> +<indexterm significance="normal"><primary>window scan</primary></indexterm> +</term> + <listitem> + +<para>Window scan serupa dengan ACK scan kecuali bahwa ia +mengeksploitasi detil implementasi pada sistem tertentu yang membedakan port terbuka +dengan port tertutup, alih-alih selalu menampilkan +<literal moreinfo="none">unfiltered</literal> ketika dikembalikan RST. Ia melakukan hal ini +dengan memeriksa field TCP Window paket RST yang dikembalikan. Pada beberapa sistem, +port terbuka menggunakan ukuran jendela positif (bahkan untuk paket RST) sementara +port tertutup memiliki jendela nol. Sehingga alih-alih selalu menampilkan +port sebagai <literal moreinfo="none">unfiltered</literal> ketika menerima kembali RST, +Window scan menampilkan port sebagai <literal moreinfo="none">open</literal> atau +<literal moreinfo="none">closed</literal> jika nilai TCP Window dalam reset tersebut +positif atau nol.</para> + +<para>Scan ini mengandalkan detil implementasi sedikit sistem yang ada di Internet, +sehingga anda tidak dapat selalu mempercayainya. Sistem yang tidak mendukungnya +biasanya akan mengembalikan semua port sebagai <literal moreinfo="none">closed</literal>. +Tentu saja, adalah mungkin mesin benar-benar tidak memiliki port terbuka. +Jika kebanyakan port yang diperiksa adalah <literal moreinfo="none">closed</literal> namun beberapa angka port umum (seperti 22, 25, 53) adalah <literal moreinfo="none">filtered</literal>, informasi +ini kemungkinan benar. Seringkali, sistem akan memberitahukan perilaku sebaliknya. +Jika scan anda menunjukkan bahwa 1000 port terbuka dan tiga port tertutup atau disaring, +maka ketiga port tersebut mungkin saja adalah port yang terbuka.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sM</option> (TCP Maimon scan) +<indexterm significance="normal"><primary><option>-sM</option></primary></indexterm> +<indexterm significance="normal"><primary>Maimon scan</primary></indexterm> +</term> + <listitem> + +<para>Scan Maimon dinamakan dengan nama penemunya, +Uriel Maimon.<indexterm significance="normal"><primary>Maimon, Uriel</primary></indexterm> +Ia menjelaskan teknik ini dalam +<citetitle>Phrack</citetitle> Magazine issue #49 (November 1996).<indexterm significance="normal"><primary><citetitle>Phrack</citetitle></primary></indexterm> +Nmap, yang menyertakan teknik ini, dirilis dua isu kemudian. +Teknik ini sama persis dengan scan NULL, FIN, dan Xmas, kecuali +probenya adalah FIN/ACK. Menurut <ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC 793</ulink> (TCP), paket RST +seharusnya dihasilkan sebagai tanggapan atas probe tersebut entah port terbuka atau +tertutup. Namun demikian, Uriel memperhatikan bahwa banyak sistem berbasis BSD +men-drop paket jika port terbuka.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scanflags</option> (Custom TCP scan) + <indexterm significance="normal"><primary><option>--scanflags</option></primary></indexterm></term> + <listitem> + + +<para>User Nmap mahir tidak perlu membatasi dirinya pada jenis scan yang tersedia secara baku. Opsi <option>--scanflags</option> memungkinkan anda merancang scan anda sendiri +dengan menspesifikasikan sembarang flag TCP.<indexterm significance="normal"><primary>TCP flags</primary></indexterm>. +Biarkan cairan kreatif anda mengalir, sementara mengakali +intrusion detection system<indexterm significance="normal"><primary>intrusion detection systems</primary><secondary>evading</secondary></indexterm> +yang vendornya sekedar membaca man page Nmap menambahkan aturan khusus!</para> + +<para>Argumen <option>--scanflags</option> dapat berupa nilai flag numerik +seperti 9 (PSH dan FIN), namun menggunakan nama simbolik lebih +mudah. Gabungkan saja sembarang kombinasi <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>, dan +<literal moreinfo="none">FIN</literal>. Sebagai contoh, <option>--scanflags +URGACKPSHRSTSYNFIN</option> menset semuanya, meskipun ia tidak terlalu +bermanfaat untuk pemeriksaan. Urutan spesifikasi tidaklah relevan.</para> + +<para>Selain dengan menspesifikasikan flag yang diinginkan, anda dapat pula +memberikan jenis scan TCP (seperti <option>-sA</option> atau <option>-sF</option>). +Jenis dasar tersebut memberitahu Nmap bagaimana menginterpretasikan respon. Sebagai +contoh, SYN scan menganggap no-response sebagai indikasi port +<literal moreinfo="none">filtered</literal>, sementara FIN scan mengganggapnya sebagai +<literal moreinfo="none">open|filtered</literal>. Nmap akan berperilaku sama +dengan jenis scan dasar, kecuali ia akan menggunakan flag TCP yang anda spesifikasikan +Jika anda tidak menspesifikasikan tipe dasar, akan digunakan SYN scan.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sI <replaceable>zombie host</replaceable><optional>:<replaceable>probeport</replaceable></optional></option> (idle scan) + <indexterm significance="normal"><primary><option>-sI</option></primary></indexterm> + <indexterm significance="normal"><primary>idle scan</primary></indexterm> + </term> + + <listitem> + + <para>Metode scan tingkat tinggi ini memungkinkan scan port TCP secara + tersembunyi (artinya tidak ada paket dikirim ke target dari alamat IP + anda yang sebenarnya). Alih-alih, serangan side-channel mengeksploitasi + pembuatan urutan ID fragmentasi IP yang mudah ditebak pada host zombi + untuk memperoleh informasi tentang port terbuka pada target. + Sistem IDS akan menampilkan scan berasal dari mesin zombi yang anda + spesifikasikan (yang harus up dan memenuhi beberapa kriteria). + <man> + Jenis scan menarik ini terlalu kompleks untuk dijelaskan dalam panduan + referensi ini, sehingga saya menulis dan menaruh paper informal dengan + detil penuh di <ulink url="https://nmap.org/book/idlescan.html"/>. + </man> + <notman> + Full details of this fascinating scan type are in + <xref linkend="idlescan"/>. + </notman> + </para> + + <para>Selain sangat tersembunyi (karena sifat + blind-nya), jenis scan ini mengijinkan pemetaan + relasi kepercayaan berbasis IP antar mesin. Daftar port + menampilkan port terbuka <emphasis>dari perspektif host zombi.</emphasis> + Sehingga anda dapat berusaha memeriksa target dengan menggunakan + beragam zombi yang anda anggap terpercaya + <indexterm significance="normal"><primary>trust relationships</primary></indexterm> + (melalui aturan router/packet filter). + </para> + + <para>Anda dapat menambah tanda titik dua diikuti nomor port + pada host zombi jika anda ingin memeriksa port tertentu pada zombi + untuk perubahan ID IP. Jika tidak Nmap akan menggunakan port + baku yang digunakan untuk ping TCP (80).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sO</option> (IP protocol scan) + <indexterm significance="normal"><primary><option>-sO</option></primary></indexterm> + <indexterm significance="normal"><primary>IP protocol scan</primary></indexterm> + </term> + <listitem> + +<para>Scan protokol IP memungkinkan anda menentukan protokol IP mana +(TCP, ICMP, IGMP, dsb.) yang didukung oleh mesin target. Secara teknis +ini bukanlah scan port, karena ia menggunakan nomor protokol IP +alih-alih nomor port TCP atau UDP. Namun ia tetap menggunakan opsi +<option>-p</option> untuk memilih nomor protokol yang diperiksa, melaporkan +hasilnya dalam format tabel port normal, dan bahkan menggunakan +mesin scan yang sama dengan metode scanning port sebenarnya. Ia +cukup dekat dengan scan port sehingga berada di sini.</para> + +<para>Selain memiliki fungsi tertentu, scan protokol +mendemonstrasikan kekuatan software open-source. Meskipun ide dasarnya +cukup sederhana, saya tidak berpikir atau menerima permintaan untuk +menambah fungsionalitas semacam itu. Lalu pada musim panas tahun 2000, +Gerhard Rieger<indexterm significance="normal"><primary>Rieger, Gerhard</primary></indexterm> +menerima ide tersebut, menulis patch yang bagus untuk mengimplementasikannya, +dan mengirimnya ke milis +<citetitle>nmap-hackers</citetitle>.<indexterm significance="normal"><primary><citetitle>nmap-hackers</citetitle> mailing list</primary></indexterm> +Saya menggabungkan patch tersebut ke Nmap dan merilis versi baru +di hari berikutnya. Sedikit software komersial memiliki user yang cukup antusias +untuk merancang dan memberikan kontribusi perbaikan!</para> + +<para>Scan protocol bekerja dalam cara yang sama dengan scan UDP. Alih-alih +beriterasi atas field nomor port paket UDP, ia mengirim header paket IP +dan beriterasi pada field protokol IP delapan-bit. +Header biasanya kosong, tidak berisi data dan bahkan tiada header yang sesuai +untuk protokol yang diklaim. Tiga pengecualian adalah TCP, +UDP, dan ICMP. Header protokol yang sesuai untuk mereka disertakan +karena beberapa sistem tidak akan mengirimnya dan karena Nmap telah memiliki +fungsi untuk membuatnya. Alih-alih mengamati pesan ICMP port unreachable, +scan protocol mencari pesan ICMP <emphasis>protocol</emphasis> unreachable. +Bila Nmap menerima respon dalam sembarang protokol dari host target, Nmap menandai +protokol tersebut sebagai <literal moreinfo="none">open</literal>. Kesalahan ICMP protocol unreachable (tipe 3, kode 2) menyebabkan protokol ditandai sebagai +<literal moreinfo="none">closed</literal>. Kesalahan ICMP unreachable lainnya (tipe 3, kode +1, 3, 9, 10, atau 13) menyebabkan protokol ditandai +<literal moreinfo="none">filtered</literal> (meskipun mereka membuktikan bahwa ICMP +<literal moreinfo="none">open</literal> di waktu yang sama). Jika tidak menerima respon +setelah transmisi ulang, protokol ditandai sebagai +<literal moreinfo="none">open|filtered</literal></para> + + </listitem> + </varlistentry> + + + + <varlistentry> + <term> + <option>-b <replaceable>FTP relay host</replaceable></option> (FTP bounce scan) + <indexterm significance="normal"><primary><option>-b</option></primary></indexterm> + <indexterm significance="normal"><primary>FTP bounce scan</primary></indexterm> + </term> + <listitem> + +<para>Satu fitur menarik protokol FTP (<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) mendukung +koneksi FTP proxy. Hal ini memungkinkan user untuk koneksi ke satu server FTP, +lalu meminta file dikirimkan ke server pihak ketiga. +Fitur tersebut rentan terhadap penyalahgunaan di banyak tingkat, +sehingga banyak server berhenti mendukungnya. Salah satu penyalahgunaan +yang dibolehkan fitur ini adalah membuat server FTP melakukan scan port ke host lain. +Cukup minta server FTP mengirim sebuah file ke setiap port yang diinginkan pada host target. +Pesan kesalahan akan menjelaskan apakah port terbuka atau tidak. +Hal ini merupakan cara yang baik untuk melewati firewall karena +server FTP organisasi biasanya lebih memiliki akses ke host internal daripada +host Internet. Nmap mendukung scan bounce FTP dengan opsi <option>-b</option> option. +Ia mengambil argumen dalam bentuk +<replaceable>username</replaceable>:<replaceable>password</replaceable>@<replaceable>server</replaceable>:<replaceable>port</replaceable>. +<replaceable>Server</replaceable> adalah nama atau alamat IP server FTP yang rentan. +Sebagaimana dengan URL normal, anda dapat menghilangkan +<replaceable>username</replaceable>:<replaceable>password</replaceable>, +sehingga menggunakan login anonim (user: +<literal moreinfo="none">anonymous</literal> password:<literal moreinfo="none">-wwwuser@</literal>) +. Nomor port (dan tanda titik dua sebelumnya) dapat dihilangkan juga, +sehingga menggunakan port FTP baku (21) pada +<replaceable>server</replaceable>.</para> + +<para>Kerentanan ini meluas di tahun 1997 ketika Nmap dirilis, +namun telah diperbaiki. Server-server yang rentan masih ada, +sehingga patut dicoba bila teknik yang lainnya gagal. Jika tujuan anda +adalah melewati firewall, scan jaringan target untuk port 21 (atau +bahkan untuk sembarang layanan FTP jika anda scan seluruh port dengan deteksi +versi) yang terbuka, lalu coba scan bounce. Nmap akan memberitahu anda +apakah host rentan atau tidak. Jika anda hanya ingin menutupi +jejak anda, anda tidak perlu (dan bahkan tidak seharusnya) membatasi +diri anda pada host pada jaringan target. Sebelum anda memeriksa +alamat Internet acak untuk mencari server FTP yang rentan, pertimbangkan bahwa +sysadmin mungkin tidak akan menghargai anda menggunakan server mereka dengan cara ini.</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-specification"> + <title>Spesifikasi Port dan Urutan Scan</title> + <indexterm significance="normal"><primary>port specification</primary></indexterm> + + <para>Selain menawarkan semua metode scan yang telah dijelaskan sebelumnya, + Nmap juga memberikan opsi untuk menspesifikasikan port mana yang ingin diperiksa dan + apakah urutan scan secara acak atau berurutan. Secara baku, Nmap memeriksa 1.000 port + untuk setiap protokol yang paling umum. + <indexterm significance="normal"><primary>default ports</primary></indexterm> + </para> + + <variablelist> + <varlistentry> + <term> + <option>-p <replaceable>port ranges</replaceable></option> (Hanya memeriksa port yang dispesifikasikan) + <indexterm significance="normal"><primary><option>-p</option></primary></indexterm> + </term> + <listitem> + + + <para>Opsi ini menentukan port yang ingin anda periksa dan + meniadakan nilai baku. Nomor port individu adalah OK, dan juga + rentang yang dipisahkan oleh tanda sambung (misaln <literal moreinfo="none">1-1023</literal>). Nilai awal dan/atau + akhir sebuah rentang dapat dihilangkan, Nmap lalu akan menggunakan + 1 dan 65535. Jadi anda dapat memberikan opsi + <option>-p-</option> untuk memeriksa port dari 1 hingga 65535. + Anda diperbolehkan memeriksa port nol <indexterm significance="normal"><primary>port zero</primary></indexterm> + jika anda menspesifikasikannya secara eksplisit. + Untuk pemeriksaan protokol IP (<option>-sO</option>), opsi ini + menspesifikasikan nomor protokol yang ingin anda periksa (0–255).</para> + + <para>Ketika memeriksa port TCP dan UDP, anda dapat menentukan + protokol tertentu dengan menambahkan <literal moreinfo="none">T:</literal> + atau <literal moreinfo="none">U:</literal> di depan nomor port. + Qualifier ini berlaku hingga anda menspesifikasikan qualifier lain. + Sebagai contoh, argumen <option>-p + U:53,111,137,T:21-25,80,139,8080</option> akan memeriksa port UDP + 53, 111,dan 137, dan juga port TCP yang disebutkan. Untuk memeriksa + UDP dan TCP, anda harus menspesifikasikan + <option>-sU</option> dan paling tidak satu jenis scan TCP (seperti + <option>-sS</option>, <option>-sF</option>, atau + <option>-sT</option>). Jika tidak diberikan qualifier protokol, + nomor port akan ditambahkan ke seluruh daftar protokol.</para> + + + <indexterm significance="normal"><primary>port specification</primary><secondary>wildcards in</secondary></indexterm> + <indexterm significance="normal"><primary>wildcards</primary><see>port selection, wildcards in</see></indexterm> + <para> + Port dapat juga dispesifikasikan dengan nama sesuai dengan apa yang diacu dalam + file <filename moreinfo="none">nmap-services</filename>. Anda bahkan + dapat menggunakan wildcard * dan ? dengan nama. Sebagai contoh, untuk memeriksa + port FTP dan seluruh port yang namanya dimulai dengan <quote>http</quote>, gunakan <option>-p ftp,http*</option>. + Berhati-hatilah dengan ekspansi shell dan berilah tanda kutip pada argumen <option>-p</option> jika tidak yakin.</para> + + <para>Rentang port dapat dikelilingi oleh tanda kurung siku (square bracket) + untuk mengindikasikan port yang berada di dalam rentang tersebut yang ada dalam <filename moreinfo="none">nmap-services</filename>. + Sebagai contoh, opsi berikut ini akan memeriksa seluruh port dalam <filename moreinfo="none">nmap-services</filename> + yang kurang dari sama dengan 1024: <option>-p [-1024]</option>. Berhati-hatilah dengan ekspansi shell dan berilah tanda kutip pada argumen <option>-p</option> jika tidak yakin.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-F</option> (Fast (limited port) scan) + <indexterm significance="preferred"><primary><option>-F</option></primary></indexterm> + <indexterm significance="normal"><primary>fast scan</primary><see><option>-F</option></see></indexterm> + </term> + <listitem> + <para>Memberitahukan bahwa anda ingin memeriksa lebih sedikit port + daripada jumlah baku. Normalnya Nmap memeriksa 1.000 port umum + untuk setiap protokol yang diperiksa. Dengan <option>-F</option>, jumlahnya + dikurangi menjadi 100.</para> + + <para>Nmap membutuhkan file <filename moreinfo="none">nmap-services</filename> + dengan informasi frekuensi untuk mengetahui port yang paling umum + <notman> (see <xref linkend="nmap-services"/> + untuk lebih jauh mengenai frekuensi port)</notman>. Jika informasi + frekuensi port tidak tersedia, mungkin karena penggunaan file + <filename moreinfo="none">nmap-services</filename> kustom, + <option>-F</option> berarti memeriksa hanya port yang ada di dalam + file services (normalnya Nmap memeriksa seluruh port yang memiliki nama dan + port 1–1024).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-r</option> (Jangan randomisasi port) + <indexterm significance="normal"><primary><option>-r</option></primary></indexterm> + <indexterm significance="normal"><primary>randomization of ports</primary></indexterm> + </term> + <listitem> + <para>Secara baku, Nmap merandomisasi urutan port yang diperiksa + (kecuali port tertentu yang biasa diakses dipindahkan ke awal untuk + alasan efisiensi). Randomisasi ini biasanya diinginkan,namun anda + dapat memberikan opsi <option>-r</option> untuk pemeriksaan port + secara berurutan.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--port-ratio <angka desimal antara 0 dan 1></option> + </term> + <listitem> + <indexterm significance="normal"><primary>--port-ratio</primary></indexterm> + <para>Memeriksa seluruh port dalam file <filename moreinfo="none">nmap-services</filename> dengan rasio lebih daripada angka yang diberikan sebagai argumen.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--top-ports <integer 1 atau lebih></option> + </term> + <listitem> + <indexterm significance="normal"><primary>--top-ports</primary></indexterm> + <para>Memeriksa port-port dengan rasio tertinggi N yang ditemukan dalam file <filename moreinfo="none">nmap-services</filename>.</para> + </listitem> + </varlistentry> + + </variablelist> + +</refsect1> + + + <refsect1 id="man-version-detection"> + <title>Deteksi Versi dan Layanan</title> + <indexterm class="startofrange" id="man-version-detection-indexterm" significance="normal"><primary>version detection</primary></indexterm> + + + <para>Arahkan Nmap ke mesin remote dan ia dapat memberitahu anda + bahwa port <literal moreinfo="none">25/tcp</literal>, <literal moreinfo="none">80/tcp</literal>, dan <literal moreinfo="none">53/udp</literal> terbuka. Dengan menggunakan database + <filename moreinfo="none">nmap-services</filename><indexterm significance="normal"><primary><filename moreinfo="none">nmap-services</filename></primary></indexterm> + yang berisi lebih dari 2.200 + layanan yang dikenal,<indexterm significance="normal"><primary>well-known ports</primary></indexterm> + Nmap akan melaporkan bahwa port tersebut mungkin adalah + server mail (SMTP), server web (HTTP), dan name server (DNS). + Pencocokan ini biasanya akurat- sebagian besar daemon + yang mendengarkan TCP port 25 adalah, mail + server. Namun demikian, anda tidak seharusnya terpaku pada hal ini! + Orang-orang dapat dan menjalankan layanan pada port-port aneh.<indexterm significance="normal"><primary>non-standard ports</primary></indexterm> + </para> + + <para>Bahkan bila Nmap benar, dan server hipotetis di atas menjalankan + server SMTP, HTTP, dan DNS, itu bukanlah informasi yang banyak. + Ketika melakukan vulnerability assessment (atau inventori jaringan) + atas perusahaan atau klien anda, anda benar-benar ingin mengetahui + server mail dan DNS mana serta versi apa yang dijalankan. + Dengan memiliki angka versi yang akurat akan membantu secara dramatis dalam + menentukan eksploitasi yang tepat terhadap server tersebut. Deteksi versi + membantu anda memperoleh informasi ini. +</para> + + <para>Setelah port TCP dan/atau UDP ditemukan dengan menggunakan + salah satu metode scan, deteksi versi menginterogasi port tersebut + untuk menentukan lebih jauh mengenai apa yang sedang berjalan. Database + <filename moreinfo="none">nmap-service-probes</filename><indexterm significance="normal"><primary><filename moreinfo="none">nmap-service-probes</filename></primary></indexterm> + berisikan probe untuk melakukan query ke sejumlah layanan dan ekspresi pencocokan + untuk mengenali dan memproses respon. Nmap berusaha menentukan protokol layanan + (misalnya FTP, SSH, Telnet, HTTP), nama aplikasi (misalnya ISC + BIND, Apache httpd, Solaris telnetd), angka versi, + nama host, jenis device (misal printer, router), keluarga SO + (misal Windows, Linux) dan terkadang detil lainnya seperti + apakah X server terbuka untuk koneksi, versi protokol SSH, + atau nama user KaZaA). Tentu saja, kebanyakan layanan + tidak memberikan informasi ini. Jika Nmap dikompilasi dengan dukungan + OpenSSL, ia akan koneksi ke server SSL untuk mendapatkan layanan + yang berada di belakang lapisan enkripsi.<indexterm significance="normal"><primary>SSL</primary><secondary>in version detection</secondary></indexterm> + Ketika ditemukan layanan RPC, + Nmap RPC grinder<indexterm significance="normal"><primary>RPC grinder</primary></indexterm> + (<option>-sR</option>)<indexterm significance="normal"><primary><option>-sR</option></primary></indexterm> + secara otomatis digunakan untuk menentukan program dan angka versi RPC. + Beberapa port UDP diinformasikan dalam status + <literal moreinfo="none">open|filtered</literal> setelah scan port UDP + tidak dapat menentukan apakah port terbuka atau disaring. Deteksi versi + akan berusaha memperoleh respon dari port ini (sebagaimana dari + port terbuka), dan merubah status port menjadi terbuka bila ia + berhasil. Port TCP <literal moreinfo="none">open|filtered</literal> diperlakukan + dalam cara yang sama. Perhatikan bahwa opsi <option>-A</option> di antaranya + mengaktifkan deteksi versi. + <man> + Sebuah paper yang mendokumentasikan cara kerja, penggunaan, dan kustomisasi + deteksi versi tersedia di + <ulink url="https://nmap.org/book/vscan.html"/>. + </man> + <notman> + Deteksi versi dijelaskan secara rinci dalam <xref linkend="vscan"/>. + </notman> + </para> + + <para>Bila Nmap menerima respon dari sebuah layanan namun tidak + dapat mencocokkannya ke database, ia akan mencetak fingerprint khusus dan + sebuah URL untuk menyerahkannya bila anda tahu secara pasti apa yang berjalan + pada port tersebut. Mohon meluangkan waktu beberapa menit untuk menyerahkannya + sehingga dapat bermanfaat bagi semua orang. Berkat penyerahan ini, + Nmap memiliki sekitar 3.000 pola yang sesuai untuk lebih dari + 350 protokol seperti SMTP, FTP, HTTP, dsb.<indexterm significance="normal"><primary>submission of service fingerprints</primary></indexterm> + </para> + + <para>Deteksi versi diaktifkan dan dikendalikan dengan opsi-opsi berikut:</para> + + + <variablelist> + + <varlistentry> + <term> + <option>-sV</option> (Deteksi Versi) + <indexterm significance="normal"><primary><option>-sV</option></primary></indexterm></term> + <listitem> + + + <para>Mengaktifkan deteksi versi, seperti yang dijelaskan di atas. + Anda dapat pula menggunakan <option>-A</option>, yang salah satunya + mengaktifkan deteksi versi.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--allports</option> (Sertakan seluruh port dalam deteksi versi) + <indexterm significance="normal"><primary><option>--allports</option></primary></indexterm> + </term> + <listitem> + + <para>Secara baku, deteksi versi Nmap melewati TCP port 9100 + karena beberapa printer akan mencetak segala yang dikirim ke port itu, + berakibat puluhan halaman request HTTP GET, sesi biner SSL, dsb. + Perilaku ini dapat diubah dengan memodifikasi atau menghapus + direktif <literal moreinfo="none">Exclude</literal> + dalam <filename moreinfo="none">nmap-service-probes</filename>, atau + anda dapat menspesifikasikan <option>--allports</option> untuk memeriksa seluruh + port tanpa mengindahkan direktif <literal moreinfo="none">Exclude</literal>. + <indexterm significance="normal"><primary><literal moreinfo="none">Exclude</literal> directive (<filename moreinfo="none">nmap-service-probes</filename>)</primary></indexterm> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-intensity <replaceable>intensity</replaceable></option> (Menset + intensitas pemeriksaan versi) + <indexterm significance="normal"><primary><option>--version-intensity</option></primary></indexterm> + </term> + <listitem> + + + <para>Ketika melakukan pemeriksaan versi (<option>-sV</option>), Nmap mengirim + serangkaian probe, dan setiap probe diberi nilai antara satu dan sembilan. + Probe dengan nomor rendah efektif terhadap beragam layanan umum, sementara + nomor lebih tinggi jarang berguna. Level intensitas menspesifikasikan probe + mana yang harus diaplikasikan. Semakin tinggi angkanya, semakin mungkin + layanan diidentifikasi dengan benar. Namun demikian, scan dengan intensitas tinggi + membutuhkan waktu yang lebih lama. Intensitas harus antara 0 dan 9. + <indexterm significance="normal"><primary>version detection</primary><secondary>intensity</secondary></indexterm> + Nilai bakunya adalah 7. + <indexterm significance="normal"><primary>version detection</primary><secondary>default intensity</secondary></indexterm> + Ketika sebuah probe didaftarkan ke port target melalui direktif + <filename moreinfo="none">nmap-service-probes</filename> <literal moreinfo="none">ports</literal>, probe tersebut akan dicoba tanpa memperdulikan + level intensitas. Hal ini memastikan bahwa probe DNS akan selalu dicoba terhadap + sembarang port terbuka 53, probe SSL akan dilakukan terhadap port 443, dst.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-light</option> (Aktifkan mode ringan) + <indexterm significance="normal"><primary><option>--version-light</option></primary></indexterm> + </term> + <listitem> + + <para>Opsi ini merupakan alias dari + <option>--version-intensity 2</option>. Mode ringan ini + membuat pemeriksaan versi lebih cepat, namun mungkin kurang + dapat mengidentifikasi layanan.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-all</option> (Coba semua probe tunggal) + <indexterm significance="normal"><primary><option>--version-all</option></primary></indexterm> + </term> + <listitem> + + <para>Sebuah alias bagi <option>--version-intensity 9</option>, + memastikan bahwa setiap probe tunggal dicoba terhadap setiap port.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-trace</option> (Melacak aktivitas pemeriksaan versi) + <indexterm significance="preferred"><primary><option>--version-trace</option></primary></indexterm> + </term> + <listitem> + <para>Hal ini membuat Nmap mencetak info debugging yang ekstensif tentang + pemeriksaan versi yang sedang dilakukan. Ia merupakan subset dari <option>--packet-trace</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sR</option> (RPC scan) + <indexterm significance="preferred"><primary><option>-sR</option></primary></indexterm> + <indexterm significance="normal"><primary>RPC scan</primary><see>RPC grinder</see></indexterm> + <indexterm significance="normal"><primary>RPC grinder</primary></indexterm> + </term> + + <listitem> + <para>Metode ini bekerja sama dengan beragam metode pemeriksaan port + Nmap. Ia menggunakan seluruh port TCP/UDP yang terbuka dan membanjiri mereka + dengan perintah NULL program SunRPC dalam usaha menentukan apakah mereka + adalah port RPC, dan bila ya, menentukan program dan nomor versinya. Karenanya + anda dapat secara efektif memperoleh info yang sama dengan <command moreinfo="none">rpcinfo -p</command> bahkan bila portmapper target berada di belakang firewall (atau dilindungi oleh + TCP wrapper). Saat ini tidak dapat menggunakan umpan dalam RPC scan.<indexterm significance="normal"><primary>decoys</primary><secondary>yang digunakan pemeriksaan</secondary></indexterm> + Ia secara otomatis diaktifkan sebagai bagian pemeriksaan versi + (<option>-sV</option>) jika anda memintanya. Oleh karena deteksi versi + menyertakannya dan jauh lebih lengkap, <option>-sR</option> jarang dibutuhkan.</para> + </listitem> + </varlistentry> + + </variablelist> + <indexterm class="endofrange" startref="man-version-detection-indexterm" significance="normal"/> + </refsect1> + + <refsect1 id="man-os-detection"> + + <title>Deteksi SO</title> + <indexterm class="startofrange" id="man-os-detection-indexterm" significance="normal"><primary>OS detection</primary></indexterm> + + <para>Salah satu fitur Nmap yang paling dikenal adalah deteksi SO + dengan menggunakan fingerprint stack TCP/IP. Nmap mengirimkan serangkaian paket TCP dan + UDP ke host remote dan menguji setiap bit paket responnya. + Setelah melakukan serangkaian test seperti sampling TCP + ISN, dukungan dan urutan opsi TCP, sampling ID IP, dan + pemeriksaan ukuran jendela awal, Nmap membandingkan hasilnya ke database + <filename moreinfo="none">nmap-os-db</filename><indexterm significance="normal"><primary><filename moreinfo="none">nmap-os-db</filename></primary></indexterm> + yang berisi lebih dari seribu fingerprint SO yang dikenal dan + mencetak detil SO bila terjadi kesesuaian. + Setiap fingerprint menyertakan deskripsi SO tekstual dalam format bebas, + klasifikasi yang memberikan nama vendor (misalnya Sun), SO di bawahnya (misalnya Solaris), + generasi OS (misalnya 10), dan jenis device (fungsi umum, router, switch, konsol game, + dsb.).</para> + + <para>Jika Nmap tidak dapat menduga SO mesin, dan kondisinya bagus + (misalnya paling tidak ditemukan satu port terbuka dan tertutup), Nmap akan + memberikan URL yang dapat anda gunakan untuk menyerahkan fingerprint jika anda tahu + (dengan pasti) SO yang berjalan di mesin itu. Dengan melakukan hal ini anda berkontribusi + ke database sistem operasi yang dikenali Nmap dan karenanya ia akan lebih akurat.</para> + + <para>Deteksi SO mengaktifkan beberapa tes lain yang menggunakan informasi yang + dikumpulkan selama proses. Salah satunya adalah TCP Sequence Predictability Classification. + Ukuran ini menentukan seberapa sulit memalsukan koneksi TCP ke host remote. Ia bermanfaat + dalam mengeksploitasi relasi trust berbasis IP-sumber (rlogin, filter firewall, dsb) atau + untuk menyembunyikan sumber serangan. Spoofing jenis ini jarang dilakukan lagi, + namun banyak mesin masih rentan terhadapnya. + Angka kesulitan aktualnya berdasarkan pada sampling statistik dan mungkin berfluktuasi. + Umumnya lebih baik menggunakan klasifikasi bahasa Inggris seperti + <quote>worthy challenge</quote> or <quote>trivial joke</quote>. Hal ini hanya dilaporkan + dalam output normal dalam mode verbose (<option>-v</option>). + Ketika digunakan mode verbose bersama dengan <option>-O</option>, pembuatan urutan ID IP ID + juga dilaporkan. Kebanyakan mesin berada dalam kelas + <quote>incremental</quote>, yang berarti mereka menaikkan field ID + dalam header IP untuk setiap paket yang mereka kirim. Hal ini membuat mereka rentan + atas beberapa serangan spoofing dan pengumpulan informasi tingkat tinggi.</para> + + <indexterm significance="normal"><primary>uptime guess</primary></indexterm> + <para> + Informasi ekstra lain yang disertakan dalam deteksi SO adalah menduga + waktu uptime target. Tekniknya menggunakan opsi timestamp TCP (<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc1323.txt">RFC 1323</ulink>) untuk menduga waktu terakhir mesin direboot. + Dugaan dapat tidak akurat akibat counter timestamp tidak diinisialisasi ke nol + atau counter overflow dan kembali ke awal, sehingga ia hanya dicetak dalam mode verbose. + </para> + + <para> + <man> + Sebuah paper yang mendokumentasikan cara kerja, penggunaan, dan kustomisasi deteksi SO + tersedia di + <ulink url="https://nmap.org/book/osdetect.html"/>. + </man> + <notman> + Deteksi SO dibahas dalam <xref linkend="osdetect"/>. + </notman> + </para> + + <para>Deteksi SO diaktifkan dan dikendalikan dengan opsi-opsi berikut:</para> + + <variablelist> + <varlistentry> + <term> + <option>-O</option> (Aktifkan deteksi SO) + <indexterm significance="preferred"><primary><option>-O</option></primary></indexterm> + </term> + <listitem> + + + <para>Aktifkan deteksi SO, seperti didiskusikan di atas. + Anda dapat juga menggunakan <option>-A</option> untuk mengaktifkan + deteksi SO dan hal lainnya.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-limit</option> (Batasi deteksi SO untuk target yang menjanjikan) + <indexterm significance="preferred"><primary><option>--osscan-limit</option></primary></indexterm> + </term> + <listitem> + + <para>Deteksi SO jauh lebih efektif bila ditemukan paling tidak + satu port TCP terbuka dan tertutup. Set opsi ini dan Nmap + tidak akan melakukan deteksi SO terhadap host yang tidak memenuhi + kriteria ini. Hal ini dapat menghemat waktu, + terutama pada pemeriksaan <option>-PN</option> atas banyak host. Ia hanya + penting ketika deteksi SO diminta dengan opsi <option>-O</option> atau <option>-A</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-guess</option>; <option>--fuzzy</option> (Duga hasil deteksi SO) + <indexterm significance="preferred"><primary><option>--osscan-guess</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--fuzzy</option></primary><see><option>--osscan-guess</option></see></indexterm> + </term> + <listitem> + + <para>Ketika Nmap tidak dapat mendeteksi SO secara tepat, ia + terkadang memberikan kemungkinan terdekat. Tebakan yang cocok + harus sangat dekat agar dilakukan secara baku oleh Nmap. + Semua opsi ekivalen ini membuat Nmap menduga dengan lebih agresif. + Nmap tetap akan memberitahu anda ketika kecocokan tidak sempurna dicetak + dan menampilkan tingkat kepercayaan (persentase) untuk setiap dugaan.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--max-os-tries</option> (Menset jumlah usaha maksimum deteksi SO atas target) + <indexterm significance="preferred"><primary><option>--max-os-tries</option></primary></indexterm> + </term> + <listitem> + + + <para>Ketika Nmap melakukan deteksi SO terhadap target dan + gagal menemukan kecocokan sempurna, ia biasanya mengulang usahanya. + Secara baku, Nmap berusaha lima kali jika kondisi memungkinkan + penyerahan fingerprint SO, dan dua kli ketika kondisi tidak begitu baik. + Menspesifikasikan nilai <option>--max-os-tries</option> yang lebih rendah (seperti 1) + mempercepat Nmap, meski anda kehilangan usaha yang secara potensial dapat + mengindentifikasi SO. Anda dapat pula menset perulangan yang lebih banyak + ketika kondisi lebih baik. Hal ini jarang dilakukan, kecuali untuk menghasilkan + fingerprint yang lebih baik untuk penyerahan dan integrasi ke database SO Nmap.</para> + + </listitem> + </varlistentry> + + </variablelist> + <indexterm class="endofrange" startref="man-os-detection-indexterm" significance="normal"/> + </refsect1> + + <refsect1 id="man-nse"> + <title>Nmap Scripting Engine (NSE)</title> + <indexterm class="startofrange" id="man-nse-indexterm" significance="normal"><primary>Nmap Scripting Engine (NSE)</primary></indexterm> + + <para>Nmap Scripting Engine (NSE) adalah salah satu fitur Nmap + yang paling powerful dan fleksibel. Ia memungkinkan user untuk menulis (dan membagi) + skrip sederhana (menggunakan <ulink url="http://lua.org">bahasa pemrograman Lua</ulink>, <indexterm significance="normal"><primary>Lua programming language</primary></indexterm>) untuk mengotomasi beragam tugas jaringan. + Skrip-skrip tersebut dieksekusi secara parale dengan kecepatan + dan efisiensi yang anda harapkan dari Nmap. User dapat mengandalkan beragam + skrip yang didistribusikan dengan Nmap, atau menulis sendiri sesuai kebutuhan.</para> + + <para>Tugas-tugas yang kami pikirkan ketika membuat sistem termasuk penemuan jaringan, + deteksi versi yang lebih canggih, deteksi kerentanan. + NSE bahkan dapat digunakan untuk eksploitasi kerentanan.</para> + + <para> + Untuk mencerminkan penggunaan yang berbeda dan untuk memudahkan pilihan skrip + yang diinginkan, setiap skrip berisi field yang mengasosiasikannya dengan satu atau lebih kategori. Kategori yang ada saat ini adalah +<literal moreinfo="none">safe</literal>, <literal moreinfo="none">intrusive</literal>, <literal moreinfo="none">malware</literal>, <literal moreinfo="none">version</literal>, <literal moreinfo="none">discovery</literal>, <literal moreinfo="none">vuln</literal>, <literal moreinfo="none">auth</literal>, and <literal moreinfo="none">default</literal>. These are all described + <man>at <ulink url="https://nmap.org/book/nse-usage.html#nse-categories"/>.</man> + <notman>in <xref linkend="nse-categories"/>.</notman></para> + + + <para>Nmap Scripting Engine dijelaskan lebih rinci +<man>di <ulink url="https://nmap.org/book/nse.html"/></man> +<notman>in <xref linkend="nse"/></notman> dan dikendalikan oleh opsi-opsi berikut ini:</para> + + <variablelist> + <varlistentry> + <term><option>-sC</option> + <indexterm significance="preferred"> + <primary><option>-sC</option></primary> + </indexterm> + </term> + + <listitem> + + <para>Melakukan scan skrip menggunakan sejumlah skrip baku. Ia merupakan + ekivalen <option>--script=default</option>. Beberapa skrip dalam + kategori ini dianggap intrusif dan tidak seharusnya dijalankan + terhadap jaringan target tanpa ijin. </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--script <replaceable>script-categories</replaceable>|<replaceable>directory</replaceable>|<replaceable>filename</replaceable>|all</option><indexterm significance="preferred"><primary><option>--script</option></primary></indexterm></term> + +<listitem> +<para>Menjalankan scan skrip (seperti <option>-sC</option>) menggunakan daftar kategori skrip, +skrip individual, atau direktori berisikan skrip, aih-alih menggunakan set baku. +Nmap akan mencoba dulu menginterpretasikan argumen sebagai kategori, kemudian sebagai file atau +direktori. Skrip atau direktori skrip dapat dispesifikasikan dengan path absolut atau relatif. +Path absolut digunakan seperti yang diberikan. +Path relatif akan dicari dalam tempat-tempat berikut hingga ditemukan : +<indexterm significance="normal"><primary>file data</primary><secondary>urutan pencarian direktori</secondary></indexterm><indexterm significance="normal"><primary>skrip, lokasi</primary></indexterm> +<filename moreinfo="none">--datadir/</filename>; +<filename moreinfo="none">$NMAPDIR/</filename>;<indexterm significance="normal"><primary><envar>NMAPDIR</envar> environment variable</primary></indexterm> +<filename moreinfo="none">~/.nmap/</filename> (tidak dicari pada Windows);<indexterm significance="normal"><primary sortas="nmap directory"><filename moreinfo="none">.nmap</filename> directory</primary></indexterm> +<literal moreinfo="none">NMAPDATADIR</literal>/ or<indexterm significance="normal"><primary>NMAPDATADIR</primary></indexterm> +<filename moreinfo="none">./</filename>. A <filename moreinfo="none">scripts/</filename> subdirektori juga dicari untuk setiap direktori ini.</para> + +<para>Jika diberikan sebuah direktori dan ditemukan, Nmap memuat seluruh skrip NSE +(semua nama file yang berakhiran dengan <literal moreinfo="none">.nse</literal>) dari +direktori tersebut. Nama file tanpa ekstensi <literal moreinfo="none">nse</literal> akan +diabaikan. Nmap tidak mencari secara rekursif ke subdirektori untuk mencari skrip. +Jika diberikan nama file individual, ekstensi file tidak perlu harus +<literal moreinfo="none">nse</literal>.</para> + +<para>Skrip Nmap secara baku disimpan dalam subdirektori <filename moreinfo="none">scripts</filename> +direktori data Nmap +<man>(lihat <ulink url="https://nmap.org/book/data-files.html"/>).</man> +<notman>(see <xref linkend="data-files"/>).</notman> Demi efisiensi, +skrip diindeks dalam database yang disimpan dalam +<filename moreinfo="none">scripts/script.db</filename>.<indexterm significance="normal"><primary><filename moreinfo="none">script.db</filename></primary></indexterm> +yang mendaftar kategori atau kategori-kategori yang dimiliki skrip. +Berikan argumen <literal moreinfo="none">all</literal> untuk menjalankan seluruh skrip +dalam database skrip Nmap.</para> + +<para>Skrip berbahaya tidak dijalankan dalam sandbox dan karenanya dapat merusak sistem anda atau menggangu privasi anda. Jangan pernah menjalankan skrip dari pihak ketiga kecuali anda mempercayai penulisnya atau telah mengaudit skrip tersebut dengan cermat.</para> + +</listitem> +</varlistentry> + + <varlistentry> + <term><option>--script-args <replaceable>name1</replaceable>=<replaceable>value1</replaceable>,<replaceable>name2</replaceable>={<replaceable>name3</replaceable>=<replaceable>value3</replaceable>},<replaceable>name4</replaceable>=<replaceable>value4</replaceable></option> + <indexterm significance="preferred"><primary><option>--script-args</option></primary></indexterm> + <indexterm significance="normal"><primary>script arguments</primary><seealso><option>--script-args</option></seealso></indexterm></term> + +<listitem> +<para>Membolehkan anda memberik argumen ke skrip NSE. Argument diberikan sebagai +pasangan <literal moreinfo="none">name=value</literal>. Argumen yang diberikan +diproses dan disimpan dalam tabel Lua, yang dapat diakses oleh semua skrip. +Nama-nama dianggap sebagai string (yang harus berupa nilai alfanumerik) +dan digunakan sebagai kunci dalam +<literal moreinfo="none">argument-table</literal>. Nilai dapat berupa string atau tabel +(dilingkupi oleh ‘<literal moreinfo="none">{</literal>’ dan +‘<literal moreinfo="none">}</literal>’). +Sebagai contoh, anda dapat memberikan argumen : +<literal moreinfo="none">user=bar,pass=foo,whois={whodb=nofollow+ripe}</literal>. +Argumen string secara potensial digunakan oleh beberapa skrip; subtables normalnya +hanya digunakan oleh satu skrip. Dalam skrip yang menggunakan subtable, ia dinamakan +sesuai dengan nama skripnya (seperti +<literal moreinfo="none">whois</literal> dalam contoh ini).</para> +</listitem> + +</varlistentry> + <varlistentry> + <term><option>--script-trace</option> + <indexterm significance="preferred"><primary><option>--script-trace</option></primary></indexterm></term> + + <listitem> + <para> + Opsi ini melakukan apa yang dilakukan oleh <option>--packet-trace</option>, + namun satu tingkat ISO lebih tinggi. Jika diberikan opsi ini seluruh komunikasi + incoming dan outgoing yang dilakukan skrip akan dicetak. Informasi yang ditampilkan + mencakup protokol komunikasi, sumber, target dan data yang ditransmisikan. + Jika lebih dari 5% seluruh data yang ditransmisikan tidak dapat dicetak, maka + output trace dalam format hex. <option>--packet-trace</option> juga mengaktifkan tracing skrip.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--script-updatedb</option> + <indexterm significance="preferred"><primary><option>--script-updatedb</option></primary></indexterm></term> + + <listitem> + + <para>Opsi ini mengupdate database skrip yang ditemukan dalam + <filename moreinfo="none">scripts/script.db</filename> yang digunakan + Nmap untuk menentukan skrip baku dan kategori yang tersedia. Opsi ini + digunakan bila anda menambah atau mengurangi skrip NSE dari direktori baku + <filename moreinfo="none">scripts</filename> atau bila anda merubah + kategori sembarang skrip. Opsi ini biasanya digunakan sendirian: <command moreinfo="none">nmap --script-updatedb</command>.</para> + + </listitem> + </varlistentry> + </variablelist> + + <indexterm class="endofrange" startref="man-nse-indexterm" significance="normal"/> + </refsect1> + + <refsect1 id="man-performance"> + <title>Pewaktuan dan Kinerja</title> + <indexterm class="startofrange" id="man-performance-timing-indexterm" significance="normal"><primary>timing</primary></indexterm> + <indexterm class="startofrange" id="man-performance-indexterm" significance="normal"><primary>performance</primary></indexterm> + <para>Salah satu prioritas pengembangan tertinggi Nmap adalah kinerja. +Scan baku (<command moreinfo="none">nmap +<replaceable>hostname</replaceable></command>) sebuah host pada jaringan lokal saya +membutuhkan seperlima detik. Hal tersebut cukup cepat, namun +tambahkan bila anda memeriksa ratusan atau ribuan host. +Terlebih lagi, beberapa opsi scan seperti pemeriksaan UDP dan deteksi versi +dapat meningkatkan waktu pemeriksaan secara substansial. Begitu pula dengan +beberapa konfigurasi firewall, terutama pembatasan rate respon. +Meskipun Nmap menggunakan paralelisme dan algoritma canggih untuk mempercepat scan ini, +user memiliki kendali penuh atas jalannya Nmap. User ahli secara cermat memberikan perintah +Nmap yang hanya mengambil informasi yang dibutuhkan dengan batasan waktu yang sesuai.</para> + +<para>Teknik-teknik untuk memperbaiki waktu pemeriksaan mencakup menghilangkan +tes-tes yang tidak kritikal, dan mengupgrade ke versi terakhir Nmap +(perbaikan kinerja dibuat secara rutin). Optimisasi parameter pewaktuan juga +dapat memberikan perbedaan yang substansial. Opsi-opsi tersebut diberikan +di bawah ini.</para> + +<para>Beberapa opsi menerima sebuah parameter <literal moreinfo="none">waktu</literal>. Ia +dispesifikasikan secara baku dalam milidetik, meskipun anda dapat menambahkan +‘s’, ‘m’, atau ‘h’ ke nilai untuk menspesifikasikan detik, menit, atau jam. Sehingga argumen +<option>--host-timeout</option> <literal moreinfo="none">900000</literal>, +<literal moreinfo="none">900s</literal>, dan <literal moreinfo="none">15m</literal> semuanya melakukan hal yang sama.</para> + + + <variablelist> + + <varlistentry> + <term> + <option>--min-hostgroup <replaceable>numhosts</replaceable></option>; + <option>--max-hostgroup + <replaceable>numhosts</replaceable></option> (Adjust parallel scan group sizes) + <indexterm significance="normal"><primary><option>--min-hostgroup</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--max-hostgroup</option></primary></indexterm> + </term> + <listitem> +<para>Nmap memiliki kemampuan untuk melakukan scan port atau versi ke banyak host secara paralel. +Nmap melakukan hal ini dengan membagi ruang IP target ke dalam kelompok dan kemudian memeriksa +satu kelompok pada satu waktu. Secara umum, kelompok yang lebih besar lebih efisien. +Kelemahannya adalah hasilnya tidak dapat disediakan hingga seluruh kelompok selesai. +Jadi bila Nmap dimulai dengan kelompok berukuran 50, user tidak akan menerima laporan +(kecuali update yang diberikan dalam mode verbose) hingga seluruh 50 host pertama selesai.</para> + +<para>Secara baku, Nmap menggunakan pendekatan kompromi untuk konflik in. +Ia mulai dengan ukuran kelompok paling kecil lima sehingga dapat segera diperoleh hasil +dan kemudian menaikkan ukuran kelompok hingga maksimum 1024. Angka baku tergantung +pada opsi yang diberikan. Demi alasan efisiensi, +Nmap menggunakan ukuran kelompok yang lebih besar untuk scan UDP atau sedikit-port TCP.</para> + +<para>Ketika ukuran kelompok maksimum diberikan dengan +<option>--max-hostgroup</option>, Nmap tidak akan melampaui ukuran tersebut. +Berikan ukuran minimum dengan <option>--min-hostgroup</option> dan Nmap +akan berusaha ukuran kelompok di atas angka tersebut. Nmap mungkin akan menggunakan +kelompok lebih kecil daripada yang anda spesifikasikan jika tidak terdapat cukup target +pada interface yang diberikan untuk memenuhi ukuran minimum. Kedua opsi dapat digunakan +untuk menset ukuran kelompok dalam rentang tertentu, namun hal ini jarang diperlukan.</para> + +<para>Opsi-opsi ini tidak memiliki efek ketika melalukan fase penemuan host dalam sebuah +pemeriksaan. Ini mencakup scan ping biasa (<option>-sP</option>). +Penemuan host selalu bekerja dalam kelompok host besar untuk meningkatkan kecepatan +dan akurasi.</para> + +<para>Penggunaan utama opsi ini adalah untuk menspesifikasikan ukuran kelompok minimum yang besar +sehingga scan penuh dapat dilakukan lebih cepat. Pilihan umum adalah 256 +untuk memeriksa jaringan dalam Kelas C. Untuk scan dengan banyak port, +melampaui angka tersebut tidak berarti banyak. Untuk scan terhadap beberapa port saja, +ukuran kelompok host 2048 atau lebih mungkin bermanfaat.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-parallelism <replaceable>numprobes</replaceable></option>; + <option>--max-parallelism + <replaceable>numprobes</replaceable></option> (Adjust probe parallelization) + <indexterm significance="normal"><primary><option>--min-parallelism</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--max-parallelism</option></primary></indexterm> + </term> + <listitem> + +<para>Opsi-opsi ini mengendalikan jumlah total probe yang dapat dilakukan +untuk sekelompok host. Mereka digunakan untuk pemeriksaan port dan penemuan +host. Secara baku, Nmap menghitung nilai paralel yang ideal berdasarkan +kinerja jaringan. Jika paket di-drop, Nmap mengurangi dan membolehkan +lebih sedikit probe yang tersisa. Angka probe ideal akan meningkat seiring +dengan membaiknya jaringan. Opsi ini menempatkan batas minimum atau maksimum +pada variabel tersebut. Secara baku, nilai idealnya dapat menurun ke angka satu +bila jaringan ternyata tidak handal dan meningkat ke beberapa ratus dalam kondisi sempurna.</para> + +<para>Penggunaan paling umum adalah menset +<option>--min-parallelism</option> ke angka lebih tinggi daripada satu untuk +mempercepat scan host atau jaringan yang lambat. Ini adalah opsi berisiko +untuk dimainkan, karena bila mensetnya terlalu tinggi akan mempengaruhi akurasi. +Dengan menset opsi ini juga akan mengurangi kemampuan Nmap untuk mengendalikan +paralelisme secara dinamis berdasarkan kondisi jaringan. Nilai sepuluh +adalah cukup, meskipun saya hanya menyesuaikan nilai ini sebagai usaha terakhir.</para> + +<para>Opsi <option>--max-parallelism</option> seringkali diset ke satu +untuk mencegah Nmap mengirimkan lebih dari satu probe di satu waktu ke host. +Opsi ini dapat bermanfaat saat berkombinasi dengan <option>--scan-delay</option> +(akan didiskusikan kemudian), meskipun yang terakhir biasanya dapat digunakan sendiri.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-rtt-timeout <replaceable>time</replaceable></option>, + <option>--max-rtt-timeout <replaceable>time</replaceable></option>, + <option>--initial-rtt-timeout + <replaceable>time</replaceable></option> (Adjust probe timeouts) + <indexterm significance="normal"><primary><option>--min-rtt-timeout</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--max-rtt-timeout</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--initial-rtt-timeout</option></primary></indexterm> + </term> + <listitem> + +<para>Nmap memelihara sebuah nilai timeout untuk menentukan berapa lama ia harus menunggu +atas respon probe sebelum ia menyerah atau mentransmisi ulang probe. Nilai ini +dihitung berdasarkan waktu respon probe sebelumnya. +<notman>Rumus tepatnya terdapat dalam <xref linkend="port-scanning-algorithms"/>.</notman> +Jika latensi jaringan menunjukkan signifikan dan bervariasi, nilai timeout ini +dapat meningkat ke beberapa detik. Ia juga dimulai dari nilai konservatif (tinggi) +dan tetap untuk sementara waktu ketika Nmap memeriksa host yang tidak responsif.</para> + +<para> +Menspesifikasikan nilai <option>--max-rtt-timeout</option> dan +<option>--initial-rtt-timeout</option> lebih kecil daripada nilai baku dapat +mempercepat waktu pemeriksaan secara signifikan. Hal ini terutama benar untuk scan +tanpa ping (<option>-PN</option>), dan terhadap jaringan yang disaring secara ketat. +Meskipun jangan terlalu agresif. Pemeriksaan dapat lebih lama jika anda +menspesifikasikan nilai rendah sehingga banyak probe timeout dan dilakukan +transmisi ulang ketika respons sedang dalam transit.</para> + +<para>Bila seluruh host berada pada jaringan lokal, 100 milidetik adalah nilai +<option>--max-rtt-timeout</option> agresif yang wajar. Jika melibatkan routing, +ping host pada jaringan terlebih dulu dengan utilitas ping ICMP, atau dengan +pembuat paket kustom seperti +<command moreinfo="none">hping2</command><indexterm significance="normal"><primary><command moreinfo="none">hping2</command></primary></indexterm> +yang lebih mungkin melewati firewall. Lihat maximum round trip +time out dari sepuluh paket atau lebih. Anda mungkin ingin menggandakannya untuk +<option>--initial-rtt-timeout</option> dan mengalikan tiga atau empat untuk +<option>--max-rtt-timeout</option>. Umumnya saya tidak menset nilai maksimum +RTT di bawah 100 ms, berapapun waktu ping. Ataupun melebihi 1000 ms.</para> + +<para><option>--min-rtt-timeout</option> merupakan opsi yang jarang digunakan yang +berguna ketika jaringan tidak handal, yang bahkan nilai baku Nmap terlalu agresif. +Karena Nmap hanya mengurangi timeout ke minimum ketika jaringan tampaknya handal, +kebutuhan ini tidak umum dan seharusnya dilaporkan sebagai bug ke +<citetitle>nmap-dev</citetitle> mailing list.<indexterm significance="normal"><primary><citetitle>nmap-dev</citetitle> mailing list</primary></indexterm> +</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>--max-retries <replaceable>numtries</replaceable></option> (Specify the + maximum number of port scan probe retransmissions) + <indexterm significance="normal"><primary><option>--max-retries</option></primary></indexterm> + </term> + <listitem> + + +<para>Ketika Nmap tidak menerima respon atas probe scan port, hal ini dapat berarti +bahwa port disaring. Atau mungkin probe atau respon hilang dalam jaringan. +Mungkin juga host target melakukan pembatasan sehingga memblokir respon sementara. +Sehingga Nmap mencoba kembali mentransmisi probe awal. Jika Nmap mendeteksi kehandalan +jaringan yang buruk, ia akan mencoba beberapa kali sebelum menyerah. +Meskipun hal ini bermanfaat untuk akurasi, namun akan memperpanjang waktu pemeriksaan. +Ketika kinerja lebih diutamakan, pemeriksaan dapat dipercepat dengan membatasi jumlah +transmisi ulang yang dibolehkan. Anda bahkan dapat menspesifikasikan +<option>--max-retries 0</option> untuk mencegah terjadinya transmisi ulang, +meskipun hanya direkomendasikan bagi situasi seperti survei informal ketika terjadi port dan host +yang tidak didata tidak menjadi masalah. +</para> + +<para>Bakunya (dengan template tanpa <option>-T</option>) adalah membolehkan +sepuluh transmisi ulang. Jika jaringan tampak handal dan host target tidak membatasi, +Nmap biasanya melakukan hanya satu transmisi ulang. Sehingga kebanyakan pemeriksaan +target tidak terpengaruh dengan mengurangi nilai +<option>--max-retries</option> ke nilai yang rendah seperti tiga. Nilai tersebut +dapat secara substansial mempercepat pemeriksaan host-host lambat (rate limited). +Anda biasanya kehilangan beberapa informasi ketika Nmap menyerah dengan mudah, +meskipun hal tersebut lebih disukai daripada membiarkan +<option>--host-timeout</option> berakhir dan kehilangan seluruh informasi mengenai target.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--host-timeout <replaceable>time</replaceable></option> (Give + up on slow target hosts) + <indexterm significance="normal"><primary><option>--host-timeout</option></primary></indexterm> + </term> + <listitem> + + +<para>Beberapa host membutuhkan <emphasis>banyak</emphasis> waktu untuk diperiksa. +Hal ini mungkin disebabkan hardware atau software yang tidak berkinerja baik atau tidak handal, +adanya pembatasan paket, atau firewall yang terlalu ketat. Beberapa persen host paling lambat +yang diperiksa dapat menghabiskan sebagian besar waktu pemeriksaan. Terkadang adalah hal baik +mengurangi kerugian dan melewati host-host tersebut. +Berikan +<option>--host-timeout</option> dengan waktu maksimum anda ingin menunggu. +Sebagai contoh, berikan +<literal moreinfo="none">30m</literal> untuk memastikan bahwa Nmap tidak menghabiskan +lebih dari setengah jam pada satu host. Perhatikan bahwa Nmap mungkin memeriksa host lain +pada waktu yang sama dalam waktu tersebut, sehingga itu bukan kerugian lengkap. Host yang +timeout akan dilewati. Tidak ada hasil tabel port, deteksi SO, atau deteksi versi akan dicetak +untuk host tersebut.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scan-delay <replaceable>time</replaceable></option>; + <option>--max-scan-delay + <replaceable>time</replaceable></option> (Adjust delay between probes) + <indexterm significance="normal"><primary><option>--scan-delay</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--max-scan-delay</option></primary></indexterm> + </term> + <listitem> + +<para>Opsi ini menyebabkan Nmap menunggu selama waktu yang diberikan +antara setiap probe yang dikirimkan ke host yang diberikan. Hal ini terutama +bermanfaat dalam hal pembatasan.<indexterm significance="normal"><primary>rate limiting</primary></indexterm> Mesin-mesin Solaris +(di antara yang lainnya) akan menanggapi paket probe scan UDP dengan hanya +satu pesan ICMP per detik. Bila dikirimkan oleh Nmap lebih dari itu akan percuma. +Nilai <option>--scan-delay</option> +<literal moreinfo="none">1s</literal> akan membuat Nmap tetap pada rate lambat tersebut. +Nmap berusaha untuk mendeteksi pembatasan rate dan menyesuaikan delay scan, +namun tidaklah rugi untuk menspesifikasikannya secara eksplisit bila anda telah tahu +rate terbaik.</para> + +<para>Ketika Nmap menyesuaikan delay scan lebih tinggi untuk menanggapi pembatasn rate, +scan akan melambat secara dramatis. Opsi +<option>--max-scan-delay</option> menspesifikasikan delay terbesar +yang dibolehkan Nmap. Nilai <option>--max-scan-delay</option> rendah +akan mempercepat Nmap, namun berisiko. Dengan menset nilai ini terlalu rendah dapat +menyebabkan transmisi ulang paket yang tidak perlu dan mungkin port-port luput ketika +target mengimplementasikan pembatasan rate ketat.</para> + +<para>Penggunaan lain <option>--scan-delay</option> adalah untuk menghindari +sistem deteksi dan pencegahan intrusi (IDS/IPS) yang berbasis pembatasan +<indexterm significance="normal"><primary>intrusion detection +systems</primary><secondary>evading</secondary></indexterm> <notman>Teknik ini +digunakan dalam <xref linkend="defeating-ids-snort-portscan"/> +untuk mengatasi pendeteksi scan port baku dalam Snort IDS. Kebanyakan sistem +deteksi intrusi lain dapat diatasi dengan cara yang sama.</notman> +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-rate <replaceable>number</replaceable></option>; <option>--max-rate <replaceable>number</replaceable></option> + (Directly control the scanning rate) + <indexterm significance="normal"><primary><option>--min-rate</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--max-rate</option></primary></indexterm> + </term> + <listitem> + +<para>Pewaktuan dinamis Nmap melakukan pekerjaan yang baik dalam menemukan +kecepatan yagn tepat untuk melakukan pemeriksaan. Namun terkadang, anda +mungkin mengetahui rate pemeriksaan jaringan yang tepat, atau anda harus +memastikan bahwa pemeriksaan akan selesai pada waktu tertentu. Atau mungkin anda harus +menjaga Nmap dari melakukan pemeriksaan terlalu cepat. Opsi <option>--min-rate</option> dan +<option>--max-rate</option> dirancang untuk situasi ini.</para> + +<para>Ketika opsi +<option>--min-rate</option> diberikan Nmap akan melakukan yang terbaik untuk +mengirim paket secepat atau lebih cepat daripada rate yang diberikan. Argumen +merupakan angka real positif mewakili rate paket per detik. +Sebagai contoh, dengan menspesifikasikan <option>--min-rate 300</option> berarti bahwa +Nmap akan berusaha menjaga rate pengiriman pada atau di atas 300 paket per detik. +Penspesifikasian rate minimum tidak mencegah Nmap mengirimkan lebih cepat +bila kondisi memungkinkan.</para> + +<para>Demikian pula, <option>--max-rate</option> membatasi rate pengiriman ke +nilai maksimum yang diberikan. Gunakan <option>--max-rate 100</option>, misalnya, untuk +membatasi pengiriman 100 paket per detik pada jaringan yang cepat. Gunakan +<option>--max-rate 0.1</option> untuk scan lambat satu paket setiap sepuluh detik. +Gunakan <option>--min-rate</option> dan <option>--max-rate</option> bersama +untuk menjaga rate pada rentang tertentu.</para> + +<para>Kedua opsi ini bersifat global, mempengaruhi seluruh pemeriksaan, bukan +host individual. Mereka hanya mempengaruhi scan port dan pencarian host +Fitur lain seperti deteksi SO mengimplementasikan pewaktuan mereka sendiri.</para> + +<para>Terdapat dua kondisi ketika rate pemeriksaan aktual kurang dari nilai +minimum yang diminta. Pertama adalah bila nilai minimum lebih cepat daripada +rate tercepat pengiriman Nmap, yang tergantung pada hardware. +Dalam kasus ini Nmap akan mengirim paket secepat mungkin, namun waspadai +bahwa rate tinggi tersebut kemungkinan akan menyebabkan kehilangan akurasi. +Kasus kedua adalah ketika Nmap tidak memiliki sesuatu untuk dikirim, sebagai contoh +di akhir pemeriksaan ketika probe terakhir telah dikirim dan Nmap menunggu +mereka time out atau mendapat respon. Adalah normal melihat rate pemeriksaan +menurun pada akhir pemeriksaan atau di antara kelompok host. Rate pengiriman mungkin +melebihi nilai maksimum untuk sementara waktu untuk mengimbangi delay yang tak terduga, +namun secara rata-rata rate akan tetap pada atau di bawah nilai maksimum.</para> + +<para>Menspesifikasikan nilai rate minimum harus dilakukan dengan hati-hati. Pemeriksaan +yang lebih cepat daripada yang dapat didukung oleh jaringan akan menyebabkan hilangnya akurasi. +Dalam beberapa kasus, dengan menggunakan rate yang lebih cepat dapat membuat pemeriksaan menjadi +<emphasis>lebih lama</emphasis> daripada bila menggunakan rate yang lebih lambat. Hal ini +karena algoritma +<notman><link linkend="scan-methods-adaptive-retransmission">adaptive +retransmission</link><indexterm significance="normal"><primary>adaptive retransmission</primary><see>retransmission</see></indexterm><indexterm significance="normal"><primary>retransmission</primary></indexterm> +</notman> +<man>adaptive retransmission</man> +Nmap akan mendeteksi kepadatan jaringan yang disebabkan oleh rate pemeriksaan yang berlebihan +dan meningkatkan angka transmisi ulang untuk memperbaiki akurasi. +Jadi meskipun paket dikirim pada rate yang lebih tinggi, namun secara keseluruhan lebih banyak +paket yang dikirimkan. Batasi angka transmisi ulang dengan opsi +<option>--max-retries</option> jika anda ingin menset batas atas waktu scan total.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--defeat-rst-ratelimit</option> + <indexterm significance="normal"><primary><option>--defeat-rst-ratelimit</option></primary></indexterm></term> + <listitem> + +<para>Banyak host telah lama menggunakan pembatasan rate +<indexterm significance="normal"><primary>rate limiting</primary></indexterm> +untuk mengurangi jumlah pesan kesalahan ICMP +(seperti kesalahan port-unreachable) yang mereka kirim. +Saat ini beberapa sistem menggunakan pembatasan limit ke paket RST (reset) +yang mereka hasilkan. Hal ini akan memperlambat Nmap secara dramatis karena +ia akan menyesuaikan pewaktuannya untuk mencerminkan batas rate tersebut. Anda dapat +memberitahu Nmap untuk mengabaikan limit rate tersebut (untuk scan port seperti SYN scan yang +<emphasis>tidak</emphasis> memperlakukan port non-responsiv sebagai +<literal moreinfo="none">open</literal>) dengan menspesifikasikan +<option>--defeat-rst-ratelimit</option>.</para> + +<para>Dengan menggunakan opsi ini akan mengurangi akurasi, karena beberapa port akan tampak +non-responsiv karena Nmap tidak menunggu cukup lama untuk respon RST yang rate-limited. +Dengan SYN scan, hasil non-respon dalam port akan ditandai dengan status +<literal moreinfo="none">filtered</literal> alih-alih <literal moreinfo="none">closed</literal> +ketika menerima paket RST. Tambahan ini berguna ketika anda hanya perlu +port terbuka, dan beda antara port +<literal moreinfo="none">closed</literal> dan <literal moreinfo="none">filtered</literal> +tidak cukup berharga.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-T + paranoid|sneaky|polite|normal|aggressive|insane</option> + (Set a timing template) + <indexterm significance="normal"><primary><option>-T</option></primary></indexterm> + <indexterm significance="normal"><primary>timing templates</primary><seealso><literal moreinfo="none">paranoid</literal>, <literal moreinfo="none">sneaky</literal>, <literal moreinfo="none">polite</literal>, <literal moreinfo="none">normal</literal>, <literal moreinfo="none">aggressive</literal>, and <literal moreinfo="none">insane</literal></seealso></indexterm> + </term> + <listitem> +<indexterm significance="normal"><primary><option>-T0</option></primary><see><literal moreinfo="none">paranoid</literal> timing template</see></indexterm> +<indexterm significance="normal"><primary><option>-T1</option></primary><see><literal moreinfo="none">sneaky</literal> timing template</see></indexterm> +<indexterm significance="normal"><primary><option>-T2</option></primary><see><literal moreinfo="none">polite</literal> timing template</see></indexterm> +<indexterm significance="normal"><primary><option>-T3</option></primary><see><literal moreinfo="none">normal</literal> timing template</see></indexterm> +<indexterm significance="normal"><primary><option>-T4</option></primary><see><literal moreinfo="none">aggressive</literal> timing template</see></indexterm> +<indexterm significance="normal"><primary><option>-T5</option></primary><see><literal moreinfo="none">insane</literal> timing template</see></indexterm> + + +<para>Meski kendali waktu fine-grained yang didiskusikan dalam bagian sebelumnya +adalah powerful dan efektif, beberapa orang menganggapnya membingungkan. +Terlebih lagi, memilih nilai yang tepat terkadang membutuhkan waktu lebih lama +daripada pemeriksaan yang ingin dioptimisasi. Sehingga Nmap menawarkan pendekatan +yang lebih mudah, dengan enam template waktu. Anda dapat menspesifikasikannya dengan +opsi <option>-T</option> dan angkanya (0–5) atau namanya. +Nama templatenya adalah +<option>paranoid</option> (<option>0</option>), +<option>sneaky</option> (<option>1</option>), +<option>polite</option> (<option>2</option>), +<option>normal</option> (<option>3</option>), +<option>aggressive</option> (<option>4</option>), +dan <option>insane</option> (<option>5</option>). +Dua yang pertama adalah untuk menghindari IDS. +Mode Polite memperlambat scan untuk menggunakan lebih sedikit bandwidth +dan sumber daya mesin target. Mode Normal adalah bakunya sehingga +<option>-T3</option> tidak melakukan apapun. Mode Aggressive mempercepat scan +dengan membuat asumsi bahwa anda berada pada jaringan yang cepat dan handal. +Akhirnya, mode insane +<indexterm significance="normal"><primary><literal moreinfo="none">insane</literal> (template waktu <option>-T5</option>) </primary></indexterm> +mengasumsikan bahwa anda berada pada jaringan yang sangat cepat atau rela mengorbankan +akurasi demi kecepatan.</para> + +<para>Kesemua template ini memungkinkan user menspesifikasikan seberapa mereka +ingin agresif, dan membiarkan Nmap memilih nilai pewaktuan yang tepat. Template +juga membuat beberapa penyesuaian kecepatan minor yang tidak dimiliki oleh kendali +fine-grained saat ini. Sebagai contoh, +<option>-T4</option><indexterm significance="normal"><primary><literal moreinfo="none">aggressive</literal> (template pewaktuan <option>-T4</option>)</primary></indexterm> +melarang delay scan dinamis melebihi 10 ms untuk port TCP dan <option>-T5</option> membatasi +nilai tersebut di 5 ms. +Template dapat digunakan dalam kombinasi dengan kendali fine-grained, +dan kendali fine-grained yang anda berikan akan mengambil alih +template pewaktuan baku untuk parameter tersebut. Saya merekomendasikan +penggunaan <option>-T4</option> ketika memeriksa jaringan modern dan handal. +Pertahankan opsi tersebut bahkan ketika anda menambah kendali +fine-grained sehingga anda memperoleh manfaat dari optimisasi minor yang diberikan.</para> + +<para>Bila anda berada pada koneksi broadband atau ethernet yang memadai, saya akan +merekomendasikan untuk selalu menggunakan <option>-T4</option>. Beberapa orang mencintai +<option>-T5</option> meskipun itu terlalu agresif untuk selera saya. Orang terkadang +memberikan <option>-T2</option> karena mereka pikir ia lebih tidak mungkin akan menyebabkan +host crash atau karena mereka mengganggap dirinya secara umum sopan. +Mereka terkadang tidak menyadari betapa lambatnya <option>-T +polite</option><indexterm significance="normal"><primary><literal moreinfo="none">polite</literal> (<option>-T2</option>) timing template</primary></indexterm>. +Scan mereka akan membutuhkan waktu sepuluh kali lebih lama daripada scan baku. +Mesin crash dan masalah bandwidth adalah jarang dengan opsi pewaktuan baku +(<option>-T3</option>) sehingga normalnya saya merekomendasikan untuk +pemeriksa yang berhati-hati. Menghilangkan deteksi versi lebih efektif +daripada bermain dengan nilai pewaktuan dalam mengurangi masalah ini.</para> + +<para>Meski +<option>-T0</option><indexterm significance="normal"><primary><literal moreinfo="none">paranoid</literal> (<option>-T0</option>) timing template</primary></indexterm> +dan <option>-T1</option><indexterm significance="normal"><primary><literal moreinfo="none">sneaky</literal> (<option>-T1</option>) timing template</primary></indexterm> +mungkin berguna untuk menghindari alert IDS, mereka akan membutuhkan waktu yang sangat lama +untuk memeriksa ribuan mesin atau port. Untuk scan yang demikian lama, +anda mungkin lebih menyukai menset nilai pewaktuan secara tepat anda butuhkan alih-alih +bergantung pada nilai template <option>-T0</option> and <option>-T1</option>.</para> + +<para>Efek utama <option>T0</option> adalah serialisasi scan sehingga +hanya satu port yang diperiksa pada satu waktu, dan menunggu lima menit +antara pengiriman setiap probe. <option>T1</option> dan +<option>T2</option> adalah serupa namun mereka hanya menunggu 15 detik dan 0.4 +detik, antar probe. <option>T3</option> merupakan perilaku baku Nmap, yang mencakup +paralelisasi.<indexterm significance="normal"><primary><literal moreinfo="none">normal</literal> (<option>-T3</option>) timing template</primary></indexterm> +<option>-T4</option> +ekivalen dengan <option>--max-rtt-timeout 1250 +--initial-rtt-timeout 500 --max-retries 6</option> dan menset delay scan TCP maksimum ke +10 milidetik. <option>T5</option> +ekivalen dengan +<option>--max-rtt-timeout 300 --min-rtt-timeout 50 +--initial-rtt-timeout 250 --max-retries 2 --host-timeout 15m</option> dan juga +menset delay scan TCP maksimum ke 5 md.</para> + + </listitem> + </varlistentry> + </variablelist> + <indexterm class="endofrange" startref="man-performance-indexterm" significance="normal"/> + <indexterm class="endofrange" startref="man-performance-timing-indexterm" significance="normal"/> + </refsect1> + + <refsect1 id="man-bypass-firewalls-ids"> + <title>Firewall/IDS Evasion and Spoofing</title> + <indexterm class="startofrange" id="man-bypass-filewalls-indexterm" significance="normal"><primary>firewalls</primary><secondary>bypassing</secondary></indexterm> + <indexterm class="startofrange" id="man-bypass-ids-indexterm" significance="normal"><primary>intrusion detection systems</primary><secondary>evading</secondary></indexterm> + +<para>Banyak pionir Internet mempunyai visi jaringan terbuka global dengan +ruang alamat IP universal yang memungkinkan koneksi virtual antara dua node. +Hal ini membuat host bertindak sebagai peer sebenarnya, menyajikan dan +mengambil informasi satu sama lain. Orang dapat mengakses sistem di +rumah mereka dari tempat kerja, merubah seting kendali iklim atau +membuka pintu bagi tamu yang datang awal. Visi konektivitas universal ini +telah dibatasi dengan kekurangan ruang alamat dan masalah keamanan. +Di awal tahun 1990-an, organisasi mulai menggunakan firewall dengan tujuan +mengurangi konektivitas. Jaringan besar dibatasi dari Internet oleh proxy aplikasi, +network address translation, dan filter paket. Aliran informasi yang tidak terbatas +berubah menjadi regulasi ketat atas kanal komunikasi dan isi yang melaluinya.</para> + +<para>Penghalang jaringan seperti firewall dapat membuat pemetaan jaringan +sukar. Ia tidak akan menjadi lebih mudah, karena mengurangi reconnaissance umum +adalah tujuan utama implementasi device tersebut. Namun demikian, Nmap menawarkan +banyak fitur untuk membantu memahami jaringan yang kompleks ini, dan untuk memverifikasi +bahwa filter bekerja sebagaimana yang diharapkan. +Ia bahkan mendukung mekanisme untuk melewati pertahanan yang diimplementasikan dengan buruk. +Salah satu metode terbaik untuk memahami postur keamanan jaringan anda adalah dengan +berusaha mengalahkannya. Tempatkan diri anda dalam pola pikir penyerang, dan gunakan +teknik-teknik dari bagian ini terhadap jaringan anda. Lakukan scan FTP bounce, scan idle, +serangan fragmentasi, atau berusaha melakukan tunnel melalui salah satu proxy anda.</para> + +<para>Selain membatasi aktivitas jaringan, perusahaan semakin meningkatkan +pemantauan lalu lintas dengan intrusion detection systems (IDS). +Seluruh IDS utama menyertakan aturan yang dirancang untuk mendeteksi scan Nmap +karena scan terkadang merupakan awal serangan. Banyak dari produk-produk ini +yang sekarang berubah menjadi intrusion +<emphasis>prevention</emphasis> systems +(IPS)<indexterm significance="normal"><primary>intrusion prevention systems</primary><seealso>intrusion detection systems</seealso></indexterm> +yang secara aktif memblokir lalu lintas yang dianggap berbahaya. +Sayangnya bagi administrator jaringan dan vendor IDS, mendeteksi tujuan jahat +dengan menganalisis data paket merupakan masalah yang berat. Penyerang dengan kesabaran, +keahlian, dan bantuan opsi-opsi Nmap tertentu biasanya dapat melewati IDS tanpa terdeteksi. +Selain itu, administrator harus berurusan dengan hasil false positive dalam jumlah besar +sehingga aktivitas yang tidak berbahaya salah didiagnosa dan di-alert atau diblokir.</para> + +<para>Terkadang orang menyarankan bahwa Nmap tidak seharusnya menawarkan fitur-fitur +untuk melewati aturan firewall atau menyelinap dari IDS. Mereka berargumen bahwa +fitur-fitur ini akan disalahgunakan oleh penyerang alih-alih digunakan oleh administrator +untuk memperbaiki keamanan. Permasalahan dengan logika ini adalah metode-metode tersebut +tetap akan digunakan oleh penyerang, yang akan mencari tool lain atau menambahkan +fungsionalitas tersebut ke dalam Nmap. Sedangkan, administrator akan merasa lebih sulit +melakukan pekerjaan mereka. Menggunakan server FTP yang telah dipatch dan modern adalah +pertahanan yang jauh lebih baik daripada mencegah penyebaran tool implementasi serangan +FTP bounce. +</para> + +<para>Tidak ada peluru ajaib (atau opsi Nmap) untuk mendeteksi dan +menghindari firewall dan sistem IDS. Ia membutuhkan kemampuan dan pengalaman. +Tutorial adalah di luar cakupan panduan referensi ini, yang hanya mendaftarkan +opsi-opsi yang relevan dan menjelaskan apa yang mereka lakukan.</para> + +<variablelist> + <varlistentry> + <term> + <option>-f</option> (fragment packets); + <option>--mtu</option> (using the specified MTU) + <indexterm significance="preferred"><primary><option>-f</option></primary></indexterm> + <indexterm significance="preferred"><primary><option>--mtu</option></primary></indexterm> + </term> + + <listitem> + <para>Opsi <option>-f</option> menyebabkan scan yang diminta (termasuk + ping scan) untuk menggunakan paket IP terfragmentasi kecil. Idenya adalah + membagi header TCP ke beberapa paket untuk membuat filter paket, IDS, dan + gangguan lain kesulitan mendeteksi apa yang sedang anda lakukan. Hati-hatilah + dengan ini! Beberapa program memiliki kesulitan menangani paket-paket kecil ini. + Sniffer old-school bernama Sniffit akan menjadi segmentation faulted segera setelah + menerima fragmen pertama. Spesifikasikan opsi ini sekali, dan Nmap + membagi paket ke dalam delapan byte atau kurang setelah header IP. + Sehingga paket header TCP 20-byte akan dibagi ke dalam tiga paket. + Dua paket dengan delapan byte header TCP, dan satu paket dengan empat byte akhir. + Tentu saja setiap fragmen juga memiliki header IP. Spesifikasikan + <option>-f</option> lagi untuk menggunakan fragmen 16 byte (mengurangi + jumlah fragmen).<indexterm significance="normal"><primary><option>-f</option></primary><secondary>giving twice</secondary></indexterm> + Atau anda dapat menspesifikasikan ukuran offset anda sendiri dengan opsi + <option>--mtu</option>. Jangan berikan opsi + <option>-f</option> bila anda menggunakan <option>--mtu</option>. Offset harus + merupakan kelipatan delapan. Meskipun paket fragmented tidak akan melewati + filter paket dan firewall yang membuat antrian seluruh fragment IP, + seperti opsi <varname>CONFIG_IP_ALWAYS_DEFRAG</varname> dalam kernel Linux, + beberapa jaringan tidak dapat mengatasi kerugian kinerja yang disebabkannya dan + membiarkan opsi tersebut tidak aktif. Yang lain tidak dapat mengaktifkannya + karena fragmen dapat mengambil rute yang berbeda ke jaringan mereka. + Beberapa sistem sumber mendeframentasi paket outgoing dalam kernel. Linux + dengan modul pelacakan koneksi iptable + <indexterm significance="normal"><primary>iptables</primary></indexterm> + adalah salah satu contohnya. Lakukan scan ketika sniffer seperti + <application moreinfo="none">Wireshark</application><indexterm significance="normal"><primary><application moreinfo="none">Wireshark</application></primary></indexterm> + berjalan untuk memastikan bahwa paket yang dikirim terfragmentasi. Jika OS + host anda menyebabkan masalah, cobalah opsi + <option>--send-eth</option><indexterm significance="normal"><primary><option>--send-eth</option></primary></indexterm> + untuk melewati lapisan IP dan mengirim frame ethernet raw.</para> + +<para>Fragmentasi hanya didukung oleh fitur paket raw Nmap, +yang mencakup scan port TCP dan UDP (kecuali scan connect dan FTP +bounce scan) dan deteksi SO. Fitur seperti deteksi versi dan +Nmap Scripting Engine umumnya tidak mendukung fragmentasi karena mereka +tergantung pada stack TCP host anda untuk berkomunikasi dengan layanan target.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-D <replaceable>decoy1</replaceable><optional>,<replaceable>decoy2</replaceable></optional><optional>,ME</optional><optional>,...</optional></option> + (Cloak a scan with decoys) + <indexterm significance="normal"><primary><option>-D</option></primary></indexterm> + <indexterm significance="normal"><primary>decoys</primary></indexterm> + </term> + <listitem> + <para>Menyebabkan dilakukannya decoy scan, yang membuat + host remote menganggap bahwa host-host yang anda berikan sebagai + umpan (decoy) juga melakukan pemeriksaan jaringan target. Karenanya IDS mereka + mungkin melaporkan scan port sebanyak 5–10 dari alamat IP yang unik, tetapi + mereka tidak akan tahu IP mana yang memeriksa mereka dan mana yang umpan. + Meski hal ini dapat dikalahkan dengan router path tracing, response-dropping, + dan mekanisme aktif lainnya, namun ia umumnya merupakan teknik efektif untuk + menyembunyikan alamat IP anda.</para> + + <para>Pisahkan setiap host umpan dengan koma, dan anda dapat + secara opsional menggunakan + <literal moreinfo="none">ME</literal><indexterm significance="normal"><primary><literal moreinfo="none">ME</literal> (decoy address)</primary></indexterm> + sebagai salah satu umpan untuk mewakili posisi alamat IP real anda. + Jika anda menempatkan + <literal moreinfo="none">ME</literal> pada posisi keenam atau lebih, beberapa + detektor scan port umum (seperti + Solar Designer's<indexterm significance="normal"><primary>Solar Designer</primary></indexterm> + Scanlogd yang bagus)<indexterm significance="normal"><primary><application moreinfo="none">Scanlogd</application></primary></indexterm> + tidak akan menampilkan alamat IP anda sama sekali. + Jika anda tidak menggunakan <literal moreinfo="none">ME</literal>, Nmap akan + menempatkan anda pada posisi acak. Anda dapat juga menggunakan + <literal moreinfo="none">RND</literal><indexterm significance="normal"><primary><literal moreinfo="none">RND</literal> (decoy address)</primary></indexterm> + untuk menghasilkan alamat IP acak dan non-reserved, atau + <literal moreinfo="none">RND:<replaceable>number</replaceable></literal> untuk + menghasilkan alamat <replaceable>number</replaceable> </para> <para>Perhatikan bahwa host + yang anda gunakan sebagai umpan harus hidup atau anda akan secara tidak sengaja + mebanjiri target anda dengan SYN. Juga mudah menentukan host mana yang memeriksa + jika hanya satu host saja yang hidup pada jaringan. Anda mungkin ingin + menggunakan alamat IP alih-alih nama (sehingga jaringan umpan tidak melihat + anda dalam log DNS mereka).</para> + + <para>Umpan digunakan dalam scan ping awal (menggunakan + ICMP, SYN, ACK, atau apapun) dan selama fase pemeriksaan port. + Umpan juga digunakan selama deteksi SO (<option>-O</option>). + Umpan tidak bekerja dengan deteksi versi atau scan connect TCP. + Ketika berlaku scan delay, delay ditegakkan antara setiap batch + probe palsu, tidak antara setiap probe invididual. Karena umpan + dikirim sebagai satu batch keseluruhan, mereka mungkin melanggar + batasan kendali kongesti secara sementara.</para> + + <para>Penting diperhatikan bahwa penggunaan terlalu banyak umpan + mungkin memperlambat scan anda dan secara potensial membuatnya + kurang akurat. Dan juga, beberapa ISP akan menyaring paket-paket palsu + anda, namun banyak juga yang tidak membatasi paket IP palsu.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-S <replaceable>IP_Address</replaceable></option> (Spoof source address) + <indexterm significance="normal"><primary><option>-S</option></primary></indexterm> + <indexterm significance="normal"><primary>spoofing source address</primary></indexterm> + </term> + <listitem> + + <para>Dalam beberapa keadaan, Nmap mungkin tidak dapat menentukan + alamat sumber anda (Nmap akan memberitahu anda hal ini). + Dalam situasi ini, gunakan <option>-S</option> dengan alamat IP + interface yang ingin anda gunakan untuk mengirim paket.</para> + + <para>Kemungkinan lain penggunaan flag ini adalah untuk memalsukan scan + untuk membuat target berpikir bahwa <emphasis>orang lain </emphasis> + sedang memeriksa mereka. Bayangkan sebuah perusahaan sedang diperiksa + portnya secara berulang-ulang oleh pesaing! Opsi + <option>-e</option> dan <option>-PN</option> umumnya dibutuhkan + untuk penggunaan seperti ini. Perhatikan bahwa anda biasanya + tidak menerima paket reply (mereka akan ditujukan ke alamat IP + yang anda palsukan), sehingga Nmap tidak akan menghasilkan laporan + yang berguna.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-e <replaceable>interface</replaceable></option> (Use specified interface) + <indexterm significance="normal"><primary><option>-e</option></primary></indexterm> + <indexterm significance="normal"><primary>interface</primary><seealso><option>-e</option></seealso></indexterm> + </term> + <listitem> + + <para>Memberitahu Nmap interface untuk mengirim dan menerima paket. + Nmap seharusnya dapat mendeteksinya secara otomatis, namun ia akan + memberitahu anda bila ia tidak dapat melakukannya.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--source-port <replaceable>portnumber</replaceable>;</option> + <option>-g <replaceable>portnumber</replaceable></option> (Spoof source port number) + <indexterm significance="preferred"><primary><option>--source-port</option></primary></indexterm> + <indexterm significance="preferred"><primary><option>-g</option></primary></indexterm> + <indexterm significance="normal"><primary>source port number</primary></indexterm> + </term> + <listitem> + +<para>Salah satu kesalahan konfigurasi umum yang mengagetkan adalah mempercayai +lalu lintas hanya berdasarkan nomor port sumber. Adalah mudah memahami bagaimana +hal ini terjadi. Administrator akan mensetup firewall baru, hanya untuk dibanjiri +dengan keluhan user yang aplikasinya berhenti bekerja. Secara khusus, DNS mungkin +tidak berfungsi karena reply UDP DNS dari server eksternal tidak dapat lagi memasuki +jaringan. FTP adalah contoh umum lainnya. Dalam transfer FTP aktif, server remote +berusaha membuka koneksi ke klien untuk mengirim file yang diminta.</para> + +<para>Terdapat solusi aman untuk masalah ini, seringkali berupa proxy +level-aplikasi atau modul firewall protocol-parsing. Sayangnya terdapat +pula solusi yang lebih mudah dan tidak aman. Dengan memperhatikan bahwa +balasan DNS datang dari port 53 dan active FTP dari port 20, banyak aadministrator +terjebak dengan membolehkan lalu lintas incoming dari port-port ini. +Mereka terkadang berasumsi bahwa tidak ada penyerang akan memperhatikan dan +memanfaatkan lubang firewall ini. Dalam kasus lain, administrator menganggap ini +sebagai solusi sementara hingga mereka dapat mengimplementasikan solusi yang lebih aman. +Lalu mereka lupa melakukan upgrade keamanan. +</para> + +<para>Administrator jaringan yang terlalu banyak kerja bukan satu-satunya yang +jatuh dalam jebakan ini. Sejumlah produk dikirim dengan rule tidak aman ini. +Bahkan Microsoft telah bersalah. Filter IPsec yang disertakan dengan +Windows 2000 dan Windows XP berisikan sebuah rule implisit yang membolehkan +semua lalu lintas TCP atau UDP dari port 88 (Kerberos). Dalam kasus terkenal lain, +firewall personal Zone Alarm hingga versi 2.1.25 +membolehkan sembarang paket UDP incoming dengan port sumber 53 (DNS) atau 67 +(DHCP).</para> + +<para>Nmap menawarkan opsi <option>-g</option> dan +<option>--source-port</option> (mereka ekivalen) untuk mengeksploitasi +kelemahan ini. Cukup berikan nomor port dan Nmap akan mengirim paket +dari port itu bila memungkinkan. Nmap harus menggunakan nomor port yang berbeda +bagi beberapa tes deteksi SO tertentu agar bekerja dengan benar, dan request DNS +mengabaikan flag <option>--source-port</option> karena Nmap mengandalkan pada librari sistem +untuk menangani hal ini. Kebanyakan scan TCP, termasuk SYN scan, +mendukung opsi secara penuh, demikian pula scan UDP.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--data-length <replaceable>number</replaceable></option> (Append random + data to sent packets) + <indexterm significance="normal"><primary><option>--data-length</option></primary></indexterm> + </term> + <listitem> + <para>Normalnya Nmap mengirim paket minimalis yang hanya berisi header. + Sehingga paket TCP umumnya berukuran 40 byte dan request ICMP echo cuma 28. + Opsi ini memberitahu Nmap untuk menambahkan random byte sejumlah tertentu + untuk kebanyakan paket yang dikirimnya. + Paket deteksi SO (<option>-O</option>) tidak terpengaruh + <indexterm significance="normal"><primary><option>--data-length</option></primary><secondary>no effect in OS detection</secondary></indexterm> + karena akurasinya membutuhkan konsistensi probe, namun kebanyakan paket ping + dan portscan mendukung opsi ini. Ia sedikit memperlambat, namun dapat membuat + scan tidak terlalu mencurigakan.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--ip-options <replaceable>S|R [route]|L [route]|T|U ... </replaceable>;</option> + <option>--ip-options <replaceable>hex string</replaceable></option> (Send packets with specified ip options) + <indexterm significance="normal"><primary><option>--ip-options</option></primary></indexterm> + <indexterm significance="normal"><primary>IP options</primary></indexterm> + </term> + <listitem> + <para><ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc791.txt">Protokol IP + </ulink> menawarkan beberapa opsi yang dapat ditempatkan pada header paket. + Tidak seperti opsi TCP yang umum, opsi IP jarang ditemukan karena masalah + kepraktisan dan keamanan. Nyatanya, banyak router Internet memblokir opsi yang + paling berbahaya seperti source routing. Namun opsi dapat tetap berguna + dalam beberapa kasus untuk menentukan dan memanipulasi rute jaringan ke + mesin target. Sebagai contoh, anda mungkin dapat menggunakan opsi record + route untuk menentukan path ke target bahkan ketika pendekatan tradisional + bergaya traceroute gagal. Atau bila paket anda di-drop oleh firewall tertentu, + anda mungkin dapat menspesifikasikan rute yang berbeda dengan opsi source + routing yang ketat atau longgar.</para> + + <para>Cara paling powerful untuk menspesifikasikan opsi IP adalah cukup dengan + memberikan nilainya sebagai argumen ke + <option>--ip-options</option>. Dahului setiap angka hex dengan + <literal moreinfo="none">\x</literal> lalu dua digit. Anda dapat mengulang + karakter tertentu dengan menambahkan tanda bintang dan diikuti jumlah + perulangan yang anda inginkan. Sebagai contoh, + <literal moreinfo="none">\x01\x07\x04\x00*36\x01</literal> adalah sebuah string hex + berisi 36 NUL byte.</para> + + <para>Nmap juga menawarkan mekanisme shortcut untuk menspesifikasikan opsi. + Cukup berikan huruf <literal moreinfo="none">R</literal>, + <literal moreinfo="none">T</literal>, atau <literal moreinfo="none">U</literal> untuk meminta + record-route,<indexterm significance="normal"><primary>record route IP option</primary></indexterm> + record-timestamp,<indexterm significance="normal"><primary>record timestamp IP option</primary></indexterm> + atau keduanya, + Source routing<indexterm significance="normal"><primary>source routing</primary></indexterm> + ketat atau longgar dapat dispesifikasikan dengan tanda + <literal moreinfo="none">L</literal> atau <literal moreinfo="none">S</literal> diikuti oleh + spasi dan kemudian daftar alamat IP yang dipisah-spasi.</para> + + <para>Jika anda ingin melihat opsi dalam paket yang dikirim dan diterima, + berikan <option>--packet-trace</option>. Informasi dan contoh lebih lanjut + tentang penggunaan opsi IP dengan Nmap, dapat dilihat di + <ulink url="https://seclists.org/nmap-dev/2006/q3/0052.html"/>. + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--ttl <replaceable>value</replaceable></option> (Set IP time-to-live field) + <indexterm significance="normal"><primary><option>--ttl</option></primary></indexterm> + <indexterm significance="normal"><primary>time to live (TTL)</primary></indexterm> + </term> + <listitem> + + <para>Set field time-to-live IPv4 dalam paket yang dikirim ke nilai + yang diberikan.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--randomize-hosts</option> (Randomize target host order) + <indexterm significance="preferred"><primary><option>--randomize-hosts</option></primary></indexterm> + <indexterm significance="normal"><primary>randomization of hosts</primary></indexterm> + </term> + <listitem> + + <para>Beritahu Nmap untuk mengacak setiap kelompok hingga 16384 host + sebelum memeriksa merekaa. Hal ini dapat membuat scan kurang mencurigakan + bagi berbagai sistem monitoring jaringan, terutama bila anda menggabungkannya + dengan opsi pewaktuan yang lambat. Jika anda ingin mengacak dalam ukuran yang + lebih besar, naikkan nilai + <varname>PING_GROUP_SZ</varname><indexterm significance="normal"><primary><varname>PING_GROUP_SZ</varname></primary></indexterm> + dalam <filename moreinfo="none">nmap.h</filename><indexterm significance="normal"><primary><filename moreinfo="none">nmap.h</filename></primary></indexterm> + dan kompilasi ulang. + Solusi alternatif adalah menghasilkan daftar IP target dengan + list scan (<option>-sL -n -oN + <replaceable>filename</replaceable></option>), acaklah dengan skrip Perl, + lalu berikan seluruh daftar ke Nmap dengan + <option>-iL</option>.<indexterm significance="normal"><primary><option>-iL</option></primary><secondary>randomizing hosts with</secondary></indexterm> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--spoof-mac <replaceable>MAC address, prefix, or vendor + name</replaceable></option> (Spoof MAC address) + <indexterm significance="preferred"><primary><option>--spoof-mac</option></primary></indexterm> + <indexterm significance="normal"><primary>spoofing MAC address</primary></indexterm> + </term> + <listitem> + + <para>Meminta Nmap untuk menggunakan alamat MAC + <indexterm significance="normal"><primary>MAC address</primary></indexterm> + yang diberikan untuk seluruh frame ethernet raw yang dikirimkan. Opsi ini mengimplikasikan + <option>--send-eth</option><indexterm significance="normal"><primary><option>--send-eth</option></primary><secondary>implied by <option>--spoof-mac</option></secondary></indexterm> + untuk memastikan bahwa Nmap benar-benar mengirim paket level-ethernet. + MAC yang diberikan dapat dalam beragam format. Jika berupa angka <literal moreinfo="none">0</literal>, Nmap memilih alamat MAC yang acak untuk sesi itu. + Jika string yang diberikan adalah angka genap digit hex (setiap digit berpasangan + dipisahkan oleh tanda titik dua), Nmap akan menggunakannya sebagai MAC. + Jika diberikan kurang dari 12 digit hex, Nmap mengisi sisa 6 byte-nya dengan nilai acak. + Jika argumen bukanlah nol atau string hex, Nmap mencari melalui file + <filename moreinfo="none">nmap-mac-prefixes</filename> untuk menemukan nama vendor + berisikan string yang diberikan (tidak case sensitive). Jika ditemukan kecocokan, + Nmap menggunakan OUI (three-byte prefix)<indexterm significance="normal"><primary>organizationally unique identifier (OUI)</primary><seealso><filename moreinfo="none">nmap-mac-prefixes</filename></seealso></indexterm> vendor + dan mengisi tiga byte sisanya secara random. + Contoh argumen yang valid <option>--spoof-mac</option> adalah <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>, dan <literal moreinfo="none">Cisco</literal>. Opsi ini hanya mempengaruhi scan paket raw seperti SYN scan atau deteksi SO, dan tidak berlaku pada fitur berorientasi-koneksi seperti deteksi versi atau Nmap Scripting Engine.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--badsum</option> (Send packets with bogus TCP/UDP checksums) + <indexterm significance="normal"><primary><option>--badsum</option></primary></indexterm> + <indexterm significance="normal"><primary>TCP checksum</primary></indexterm> + <indexterm significance="normal"><primary>checksums</primary></indexterm> + </term> + <listitem> + + + <para>Meminta Nmap untuk menggunakan checksum TCP atau UDP tidak valid untuk + paket yang dikirimkan ke host target. Karena secara virtual seluruh + stack IP host akan secara tepat men-drop paket ini, sembarang respon yang diterima + adalah kemungkinan berasal dari firewall atau IDS yang tidak peduli untuk memverifikasi + checksum. Detil lebih lanjut mengenai teknik ini, dapat dilihat pada <ulink url="https://nmap.org/p60-12.html"/></para> + </listitem> + </varlistentry> + + </variablelist> + + <indexterm class="endofrange" startref="man-bypass-ids-indexterm" significance="normal"/> + <indexterm class="endofrange" startref="man-bypass-filewalls-indexterm" significance="normal"/> + </refsect1> + + <refsect1 id="man-output"> + <title>Output</title> + <indexterm class="startofrange" id="man-output-indexterm" significance="normal"><primary>output formats</primary></indexterm> + + <para>Manfaat tool keamanan ditentukan oleh output yang dihasilkannya. + Algoritma dan tes yang kompleks tidaklah berguna bila mereka + tidak dipresentasikan dalam cara yang terorganisir dan lengkap. + Dengan beragamnya cara penggunaan Nmap oleh orang dan software lainnya, + tidak ada format yang dapat memuaskan semuanya. Sehingga Nmap memberikan + beberapa format, termasuk mode interaktif agar manusia dapat membaca secara langsung + dan XML untuk memudahkan parsing oleh software.</para> + +<para>Selain memberikan beragam format output, Nmap juga menyediakan +opsi untuk mengendalikan verbositas output dan pesan debug. +Tipe output dapat dikirim ke output standar atau ke file. +File output dapat pula digunakan untuk meresume scan.</para> + +<para>Nmap menyediakan output dalam lima format berbeda. +Bakunya disebut +<firstterm>interactive output</firstterm>,<indexterm significance="normal"><primary>interactive output</primary></indexterm> +dan dikirimkan ke output standar +(stdout).<indexterm significance="normal"><primary>standard output</primary></indexterm> +Terdapat juga +<firstterm>normal output</firstterm>,<indexterm significance="normal"><primary>normal output</primary></indexterm> +yang serupa dengan interaktif kecuali ia memberikan lebih sedikit informasi +runtime dan peringatan karena ia diharap akan dianalisis +setelah scan setelah alih-alih secara interaktif.</para> + +<para><firstterm>XML output</firstterm><indexterm significance="normal"><primary>XML output</primary></indexterm> +adalah salah stau tipe output paling penting, karena ia dapat dikonversi +ke HTML, dapat secara mudah diparse oleh program seperti Nmap graphical +user interfaces, atau diimpor ke database.</para> + +<para>Dua output terakhir adalah +<firstterm>grepable output</firstterm><indexterm significance="normal"><primary>grepable output</primary></indexterm> sederhana +yang menyertakan informasi host target pada satu baris tunggal, dan +<firstterm>sCRiPt KiDDi3 0utPUt</firstterm><indexterm significance="normal"><primary sortas="script kiddie output">scR1pT kIddI3 output</primary></indexterm> +bagi user yang mengganggap dirinya sebagai +|<-r4d.</para> + +<para>Meskipun output interaktif merupakan bakunya dan tidak memiliki +opsi command-line, opsi keempat format lainnya menggunakan sintaks yang sama. +Mereka mengambil satu argumen, nama file tempat menampung hasil. +User dapat menspesifikasikan banyak format, namun setiap format hanya boleh +dispesifikasikan satu kali. Sebagai contoh, anda mungkin ingin menyimpan +output normal untuk review anda dan output XML untuk analisis programatik. +Anda dapat melakukan hal ini dengan opsi +<option>-oX myscan.xml -oN myscan.nmap</option>. Walau bab ini +menggunakan nama sederhana seperti <literal moreinfo="none">myscan.xml</literal> untuk singkatnya, +disarankan untuk menggunakan nama yang lebih deskriptif. Nama yang dipilih +merupakan masalah preferensi personal, meski saya menggunakan nama panjang yang +menyertakan tanggal scan dan kata yang menjelaskan scan, ditempatkan dalam sebuah +direktori dengan nama perusahaan yang saya periksa.</para> + +<para>Meski opsi-opsi ini menyimpan hasil ke file, Nmap tetap mencetak output interaktif +ke stdout seperti biasa. Sebagai contoh, perintah +<command moreinfo="none">nmap -oX myscan.xml target</command> mencetak XML ke +<filename moreinfo="none">myscan.xml</filename> dan mengisi seluruh output standar dengan hasil interaktif yang sama dengan yang akan dicetaknya bila <option>-oX</option> +tidak diberikan. Anda dapat merubahnya dengan memberikan karakter hyphen +sebagai argumen ke salah satu tipe format. Hal ini membuat Nmap +menonaktifkan output interaktif, dan mencetak hasilnya dalam format yang +anda spesifikasikan ke stream output standar. Sehingga perintah +<command moreinfo="none">nmap -oX - target</command> hanya akan mengirim output XML ke +stdout.<indexterm significance="normal"><primary>output</primary><secondary>to stdout with <literal moreinfo="none">-</literal></secondary></indexterm> +Kesalahan serius akan tetap dicetak ke stream kesalahan normal, +stderr.<indexterm significance="normal"><primary>standard error</primary></indexterm> +</para> + +<para>Tidak seperti beberapa argumen Nmap, spasi antara flag opsi logfile +(seperti <option>-oX</option>) dan namafile atau hyphen adalah wajib. +Jika anda menghilangkan flag dan memberi argumen seperti +<option>-oG-</option> or <option>-oXscan.xml</option>, fitur kompatibiltas backward +Nmap akan menyebabkan pembuatan +<emphasis>normal format</emphasis> file output bernama +<filename moreinfo="none">G-</filename> dan <filename moreinfo="none">Xscan.xml</filename>.</para> + +<para>Seluruh argumen ini mendukung konversi +<function moreinfo="none">strftime</function>-like<indexterm significance="normal"><primary><function moreinfo="none">strftime</function> conversions in filenames</primary></indexterm> +dalam namafile. <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>, dan <literal moreinfo="none">%Y</literal> semuanya serupa seperti dalam +<function moreinfo="none">strftime</function>. <literal moreinfo="none">%T</literal> sama dengan +<literal moreinfo="none">%H%M%S</literal>, <literal moreinfo="none">%R</literal> sama dengan +<literal moreinfo="none">%H%M</literal>, dan <literal moreinfo="none">%D</literal> sama dengan +<literal moreinfo="none">%m%d%y</literal>. Sebuah <literal moreinfo="none">%</literal> diikuti dengan sembarang karakter hanya menghasilkan karakter itu +(<literal moreinfo="none">%%</literal> memberikan simbol persentase. +Sehingga <option>-oX 'scan-%T-%D.xml'</option> akan menggunakan file XML +dalam bentuk <filename moreinfo="none">scan-144840-121307.xml</filename>.</para> + +<para>Nmap juga menawarkan opsi untuk mengendalikan verbositas scan dan untuk menambah +file output daripada menghapusnya. Seluruh opsi ini dijelaskan di bawah.</para> + +<variablelist><title>Format Output Nmap</title> + <varlistentry> + <term> + <option>-oN <replaceable>filespec</replaceable></option> (normal output) + <indexterm significance="normal"><primary><option>-oN</option></primary></indexterm> + <indexterm significance="normal"><primary>normal output</primary></indexterm></term> + <listitem> + + <para><literal moreinfo="none">normal output</literal> akan diarahkan + ke nama file yang diberikan. Seperti yang didiskusikan di atas, opsi ini + sedikit berbeda dari <literal moreinfo="none">interactive output</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oX <replaceable>filespec</replaceable></option> (XML output) + <indexterm significance="normal"><primary><option>-oX</option></primary></indexterm> + <indexterm significance="normal"><primary>XML output</primary></indexterm></term> + <listitem> + + + <para><literal moreinfo="none">XML output</literal> diarahkan + ke namafile yang diberikan. Nmap menyertakan document + type definition (DTD) yang memungkinkan parser XML memvalidasi + output XML Nmap. Walau utamanya ditujukan untuk penggunaan programatik, + ia dapat juga membantu manusia menginterpretasikan output XML Nmap. + DTD mendefinisikan elemen legal format, dan seringkali merinci atribut + dan nilai yang dapat mereka terima. + Versi terakhir selalu tersedia di <ulink url="https://nmap.org/data/nmap.dtd"/>.</para> + + <para>XML memberikan format stabil yang dapat secara mudah + diparse oleh software. Parser XML yang bebas tersedia untuk bahasa + pemrograman utama, termasuk C/C++, Perl, Python, dan + Java. Orang bahkan telah menulis binding untuk kebanyakan bahasa ini untuk + menangani output Nmap dan dijalankan secara khusus. + Contohnya adalah <ulink url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> + <indexterm significance="normal"><primary>Nmap::Scanner</primary></indexterm> + and <ulink url="http://nmapparser.wordpress.com/">Nmap::Parser</ulink> + <indexterm significance="normal"><primary>Nmap::Parser</primary></indexterm> + dalam Perl + CPAN. Dalam kebanyakan kasus bagi interface aplikasi dengan Nmap yang sulit, + XML merupakan format yang lebih disukai.</para> + + <para>Output XML mengacu ke XSL stylesheet yang dapat digunakan + untuk memformat hasilnya sebagai HTML. Cara termudah menggunakan file ini + adalah dengan memuat output XML dalam sebuah browser web seperti + Firefox atau IE. Secara baku, ini hanya bekerja pada mesin + tempat anda menjalankan Nmap (atau yang dikonfigurasi serupa) + akibat path sistem file <filename moreinfo="none">nmap.xsl</filename> + yang di-hardcoded. Gunakan opsi <option>--webxml</option> atau + <option>--stylesheet</option> untuk membuat file XML portabel + yang dibaca sebagai HTML pada semua mesin yang dapat terkoneksi ke web.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oS <replaceable>filespec</replaceable></option> (ScRipT KIdd|3 oUTpuT) + <indexterm significance="normal"><primary><option>-oS</option></primary></indexterm> + <indexterm significance="normal"><primary sortas="script kiddie output">scR1pT kIddI3 output</primary></indexterm></term> + <listitem> + + <para>Output ini seperti output interaktif, kecuali kemudian ia diprose lagi + agar sesuai dengan l33t HaXXorZ yang sebelumnya merendahkan Nmap karena + kapitalisasi dan ejaan yang konsisten. Perlu diperhatikan bahwa opsi ini + mengolok-olok script kiddies alih-alih <quote>membantu mereka</quote>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oG <replaceable>filespec</replaceable></option> (grepable output) + <indexterm significance="normal"><primary><option>-oG</option></primary></indexterm> + <indexterm significance="normal"><primary>grepable output</primary></indexterm></term> + <listitem> + + +<para>Format output ini dijelaskan terakhir karena telah didepresiasi. +Format output XML jauh lebih powerful, dan juga cukup nyaman bagi +pengguna berpengalaman. XML merupakan standar yang memiliki lusinan parser bagus, +sementara output grepable merupakan hack sederhana buatan saya. +XML dapat dikembangkan untuk mendukung fitur baru Nmap ketika dirilis, +sementara saya seringkali harus menghilangkan fitur-fitur tersebut dari +output grepable karena tidak ada tempat untuk menaruh mereka.</para> + +<para>Namun demikian, output grepable masih cukup populer. Ia merupakan format +sederhana yang mendaftar setiap host pada satu baris dan dapat secara mudah +dicari dan diparse dengan tool standar Unix seperti grep, awk, cut, +sed, diff, dan Perl. Bahkan saya menggunakannya untuk test sekali yang dilakukan +pada perintah beris. Menemukan seluruh host dengan port SSH terbuka atau yang +menjalankan Solaris hanya membutuhkan satu grep sederhana untuk mengidentifikasikan host, +yang di-pipe ke perintah awk atau cut untuk mencetak field yang diinginkan.</para> + +<para>Output grepable terdiri dari komentar (baris yang dimulai dengan tanda +pound (#))<indexterm significance="normal"><primary>grepable output</primary><secondary>comments in</secondary></indexterm> +dan baris target. Sebuah baris target menyertakan kombinasi enam field berlabel, yang dipisahkan +oleh tab dan diikuti oleh tanda titik dua. +Field-fieldnya adalah <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>, dan <literal moreinfo="none">Status</literal>.</para> + +<para>Field yang paling penting umumnya adalah +<literal moreinfo="none">Ports</literal>, yang memberikan detil pada setiap port yang menarik. +Ia merupakan daftar entri port yang dibatasi koma. Setiap entri port mewakili satu port menarik, +dan memiliki bentuk subfield yang dibatasi oleh tujuh garis miring (/). +Subfieldnya adalah: <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>, dan <literal moreinfo="none">Version info</literal>.</para> + +<para>Sebagaimana dengan output XML, man page ini tidak memungkinkan untuk mendokumentasi +seluruh format. Rincian lebih lanjut mengenai format output grepable Nmap tersedia +<man>dari <ulink url="https://nmap.org/book/output-formats-grepable-output.html"/>.</man> +<notman>dalam <xref linkend="output-formats-grepable-output"/>.</notman> +</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oA <replaceable>basename</replaceable></option> (Output to all formats) + <indexterm significance="preferred"><primary><option>-oA</option></primary></indexterm></term> + <listitem><para> + + Sebagai kenyamanan, anda dapat menspesifikasikan <option>-oA + <replaceable>basename</replaceable></option> untuk menyimpan hasil scan + dalam format normal, XML, dan grepable sekaligus. Mereka disimpan dalam + <filename moreinfo="none"><replaceable>basename</replaceable>.nmap</filename>, + <filename moreinfo="none"><replaceable>basename</replaceable>.xml</filename>, dan + <filename moreinfo="none"><replaceable>basename</replaceable>.gnmap</filename>. + Seperti kebanyakan program, anda dapat memberi awalan nama file dengan path direktori, + seperti + <filename moreinfo="none">~/nmaplogs/foocorp/</filename> pada Unix atau + <filename moreinfo="none">c:\hacking\sco</filename> pada Windows.</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Opsi verbositas dan debugging</title> + <varlistentry> + <term> + <option>-v</option> (Increase verbosity level) + <indexterm significance="normal"><primary><option>-v</option></primary></indexterm> + <indexterm significance="normal"><primary>verbosity</primary></indexterm> + </term> + <listitem> + + <para>Peningkatan level verbositas, menyebabkan Nmap mencetak + lebih banyak informasi tentang scan yang sedang berjalan. Port + terbuka ditunjukkan saat ditemukan dan prakiraan waktu selesai disediakan + ketika Nmap berpikir scan akan membutuhkan lebih dari beberapa menit. + Gunakan dua kali atau lebih untuk lebih meningkatkan verbositas. + <indexterm significance="normal"><primary><option>-v</option></primary><secondary>giving more than once</secondary></indexterm> + </para> + + <para>Kebanyakan perubahan hanya mempengaruhi output interaktif, dan + beberapa juga mempengaruhi output normal dan script kiddie. Tipe output + lainnya ditujukan untuk diproses oleh mesin, sehingga Nmap + dapat memberikan detil yang substansial dalam format tersebut tanpa + melelahkan user. Namun demikian, terdapat beberapa perubahan dalam + mode lainnya ketika ukuran output dapat dikurangi secara berarti dengan + meniadakan beberapa detil. Sebagai contoh, baris perintah dalam output + grepable yang memberikan daftar seluruh port yang discan hanya dicetak + dalam mode verbose karena ia cukup panjang.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-d [level]</option> (Increase or set debugging level) + <indexterm significance="normal"><primary><option>-d</option></primary></indexterm> + <indexterm significance="normal"><primary>debugging</primary></indexterm> + </term> + <listitem> + + +<para>Ketika mode verbose tidak memberikan data yang cukup bagi anda, +tersedia debugging untuk membanjiri anda dengan data! Sebagaimana dengan +opsi verbositas (<option>-v</option>), debugging diaktifkan dengan flag +perintah baris (<option>-d</option>) dan level debug dapat ditingkatkan +dengan menspesifikasikannya berulang kali. +<indexterm significance="normal"><primary><option>-d</option></primary><secondary>giving more than once</secondary></indexterm> +Selain itu, anda dapat menset level debug dengan memberikan argumen ke <option>-d</option>. Sebagai +contoh, <option>-d9</option> menset level sembilan. Itu adalah level efektif +tertinggi dan akan menghasilkan ribuan baris kecuali anda menjalankan scan yang sangat +sederhana dengan sedikit port dan target.</para> + +<para>Debugging output berguna ketika diduga terdapat bug dalam Nmap, +atau anda bingung mengenai apa yang dilakukan Nmap dan alasannya. Karena +fitur ini lebih ditujukan bagi pengembang, baris debug tidak selalu jelas. +Anda mungkin akan menemui sesuatu seperti : <computeroutput moreinfo="none">Timeout +vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 +rttvar: 14987 to: 100000</computeroutput>. Jika anda tidak memahami sebuah baris, +anda dapat mengabaikannya, mencarinya dalam kode sumber, atau meminta bantuan +dari list pengembangan +(<citetitle>nmap-dev</citetitle>).<indexterm significance="normal"><primary><citetitle>nmap-dev</citetitle> mailing list</primary></indexterm> +Beberapa baris cukup jelas, namun pesannya dapat semakin tidak jelas ketika level debug +dinaikkan.</para> + + </listitem> + </varlistentry> + +<varlistentry> + <term> + <option>--reason</option> (Host and port state reasons) + <indexterm significance="normal"><primary><option>--reason</option></primary></indexterm> + <indexterm significance="normal"><primary>reason reporting</primary><see><option>--reason</option></see></indexterm> + </term> + <listitem> + +<para> +Tampilkan alasan setiap port diset ke status khusus dan alasan setiap host up +atau down. Opsi ini menampilkan tipe paket yang menentukan status port atau host. +Sebagai contoh, sebuah paket <literal moreinfo="none">RST</literal> dari +port tertutup atau echo reply dari host yang hidup. Informasi yang disediakan +Nmap ditentukan oleh jenis scan atau ping. Scan SYN dan +ping SYN (<option>-sS</option> dan <option>-PS</option>) sangat rinci, namun +TCP connect scan (<option>-sT</option>) dibatasi oleh implementasi +system call <function moreinfo="none">connect</function>. Fitur ini secara otomatis +diaktifkan oleh opsi debug +(<option>-d</option>)<indexterm significance="normal"><primary><option>--reason</option></primary><secondary>implied by <option>-d</option></secondary></indexterm> +dan hasilnya disimpan dalam file log XML bahkan bila opsi ini tidak diberikan. +</para> +</listitem> +</varlistentry> + + <varlistentry> + <term> + <option>--stats-every <replaceable>time</replaceable></option> (Print periodic timing stats) + <indexterm significance="normal"><primary><option>--stats-every</option></primary></indexterm> + </term> + <listitem> + <para> + Mencetak status waktu secara periodik setelah setiap interval + <replaceable>time</replaceable>. Waktu adalah spesifikasi yang dijelaskan + dalam <xref linkend="man-performance"/>; sehingga sebagai contoh, gunakan + <command moreinfo="none">--stats-every 10s</command> untuk memperoleh update status + setiap 10 detik. Update dicetak ke output interaktif (layar) dan output XML. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--packet-trace</option> (Trace packets and data sent and received) + <indexterm significance="normal"><primary><option>--packet-trace</option></primary></indexterm> + </term> + <listitem> + + <para>Menyebabkan Nmap untuk mencetak ringkasan seiap paket yang dikirim + atau diterima. Opsi ini seringkali digunakan untuk debugging, namun juga + bermanfaat bagi user baru untuk memahami secara tepat apa yang sebenarnya + dilakukan oleh Nmap. Untuk menghindari pencetakan ribuan baris, anda mungkin + ingin membatasi jumlah port yang ingin discan, seperti <option>-p20-30</option>. + Jika anda hanya mementingkan proses subsistem deteksi versi, gunakan + <option>--version-trace</option>. Jika anda hanya peduli dengan script tracing, + berikan <option>--script-trace</option>. Dengan <option>--packet-trace</option>, anda + memperoleh semua hal di atas.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--open</option> (Show only open (or possibly open) ports) + <indexterm significance="normal"><primary><option>--open</option></primary></indexterm> + </term> + <listitem> + + + +<para>Terkadang anda hanya peduli tentang port yang benar-benar dapat dikoneksi +(<literal moreinfo="none">open</literal> ones), dan tidak ingin mengacaukan hasilnya dengan port +<literal moreinfo="none">closed</literal>, <literal moreinfo="none">filtered</literal>, dan +<literal moreinfo="none">closed|filtered</literal>. Kustomisasi output normalnya dilakukan +setelah scan dengan menggunakan tool seperti +<application moreinfo="none">grep</application>, <application moreinfo="none">awk</application>, dan +<application moreinfo="none">Perl</application>, namun fitur ini ditambahkan karena +banyaknya permintaan. Berikan <option>--open</option> untuk hanya melihat port +<literal moreinfo="none">open</literal>, <literal moreinfo="none">open|filtered</literal>, dan +<literal moreinfo="none">unfiltered</literal>. Ketiga port ini diperlakukan seperti normalnya, yang berarti bahwa <literal moreinfo="none">open|filtered</literal> dan <literal moreinfo="none">unfiltered</literal> dapat digabungkan bila terdapat dalam jumlah banyak. +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--iflist</option> (List interfaces and routes) + <indexterm significance="normal"><primary><option>--iflist</option></primary></indexterm> + </term><listitem> + <para>Cetak daftar interface dan rute sitem yang dideteksi oleh Nmap. + Opsi ini berguna untuk debugging masalah routing atau kesalahan karakterisasi + device (seperti Nmap memperlakukan koneksi PPP sebagai ethernet).</para> </listitem> </varlistentry> + + <varlistentry> + <term> + <option>--log-errors</option> (Log errors/warnings to normal mode output file) + <indexterm significance="preferred"><primary><option>--log-errors</option></primary></indexterm> + </term> + <listitem> + + <para>Peringatan dan kesalahan dicetak oleh Nmap biasanya hanya ke + layar (output interaktif), membiarkan file output format normal + (biasanya dispesifikan dengan <option>-oN</option>) + tidak terganggu. Ketika anda ingin melihat pesan-pesan tersebut dalam + file output normal yang anda spesifikasikan, tambahkan opsi ini. Ia + berguna ketika anda tidak melihat output interaktif atau ketika anda + ingin merekam kesalahan saat men-debug masalah. + Pesan kesalahan dan peringatan akan tetap muncul dalam mode interaktif. + Hal ini tidak bekerja banyak kebanyakan kesalahan yang terkait dengan + argumen perintah baris yang buruk karena Nmap mungkin belum menginisialisasi + file outputnya. Sebagai tambahan, beberapa pesan kesalahan dan peringatan + Nmap menggunakan sistem yang berbeda yang beum mendukung opsi ini.</para> + + <para>Sebagai alternatif bagi <option>--log-errors</option> adalah + dengan mengarahkan output interaktif (termasuk stream standard error) ke file. + Kebanyakan shell Unix menjadikan pendekatan ini mudah, meskipun ia + dapat sukar dilakukan pada Windows.</para> + + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Miscellaneous output options</title> + + <varlistentry> + <term> + <option>--append-output</option> (Append to rather than clobber output files) + <indexterm significance="normal"><primary><option>--append-output</option></primary></indexterm> + </term> + <listitem> + + <para>Ketika anda menspesifikasikan nama file ke flag format output + seperti <option>-oX</option> atau <option>-oN</option>, file tersebut + secara baku akan ditimpa. Jika anda ingin menjaga isi file yang ada + dan menambahkan hasil baru, spesifikasikan opsi + <option>--append-output</option>. Seluruh nama file output yang dispesifikasikan + dalam eksekusi Nmap tersebut kemudian akan ditambahkan alih-alih ditimpa. + Hal ini tidak bekerja baik untuk data scan XML (<option>-oX</option>) karena file + yang dihasilkan umumnya tidak akan dapat diparse dengan tepat hingga anda + memperbaikinya secara manual.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--resume <replaceable>filename</replaceable></option> (Resume aborted scan) + <indexterm significance="normal"><primary><option>--resume</option></primary></indexterm> + <indexterm significance="normal"><primary>resuming scans</primary></indexterm> + </term> + <listitem> + + + <para>Beberapa penggunaan Nmap ekstensif membutuhkan waktu hingga + dalam hitungan hari. Scan semacam itu tidak selalu berjalan hingga selesai. + Pembatasan mungkin mencegah Nmap dijalankan ketika waktu kerja, jaringan + dapat down, mesin yang menjalankan Nmap mungkin mengalami reboot terencana + atau tidak, atau bahkan Nmap mengalami crash. Administrator yang menjalankan Nmap + dapat membatalkannya demi alasan lainnya, + <keycap moreinfo="none">ctrl-C</keycap>. Memulai seluruh scan dari awal + mungkin tidak diinginkan. Untungnya, bila log normal + (<option>-oN</option>) atau grepable (<option>-oG</option>) + disimpan, user dapat meminta Nmap melanjutkan scanning dengan target + yang sedang dikerjakannya ketika eksekusi berhenti. + Cukup berikan opsi <option>--resume</option> dan berikan argumen file output + normal/grepable. Tidak boleh ada argumen lainnya, karena Nmap memparse file output + yang sama dengan yang digunakan sebelumnya. Cukup panggil Nmap dengan + <command moreinfo="none">nmap --resume + <replaceable>logfilename</replaceable></command>. Nmap akan menambahkan + hasil baru ke file data yang dispesifikasikan dalam eksekusi sebelumnya. + Opsi ini tidak dapat dilakukan untuk format output XML karena + penggabungan dua buah penjalanan Nmap ke satu file XML yang valid adalah sulit.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--stylesheet <replaceable>path or URL</replaceable></option> (Set XSL stylesheet to transform XML output) + <indexterm significance="preferred"><primary><option>--stylesheet</option></primary></indexterm> + </term> + <listitem> + + <para>Nmap menyertakan sebuah stylesheet <indexterm significance="normal"><primary>stylesheet</primary></indexterm> + XSL <indexterm significance="normal"><primary>XSL</primary></indexterm> + bernama <filename moreinfo="none">nmap.xsl</filename> + <indexterm significance="normal"><primary><filename moreinfo="none">nmap.xsl</filename></primary></indexterm> + untuk melihat atau menerjemahkan output XML ke HTML. + <indexterm significance="normal"><primary>HTML from XML output</primary></indexterm> + Output XML menyertakan sebuah direktif <literal moreinfo="none">xml-stylesheet</literal> + yang mengarah ke <filename moreinfo="none">nmap.xml</filename> + tempat awalnya ia diinstalasi oleh Nmap (atau pada direktori kerja + saat ini pada Windows). Cukup buka output Nmap pada browser modern dan + ia seharusnya mengambil + <filename moreinfo="none">nmap.xsl</filename> dari filesystem dan menggunakannya + untuk merender hasil. Jika anda ingin menggunakan stylesheet yang berbeda, + berikan ia sebagai argumen bagi + <option>--stylesheet</option>. Anda harus memberikan nama path atau URL lengkap. + Cara pemanggilan umum adalah + <option>--stylesheet + https://nmap.org/data/nmap.xsl</option>. Cara ini memberitahu + browser untuk memuat versi terakhir stylesheet dari Nmap.Org. + Opsi <option>--webxml</option> melakukan hal yang sama dengan cara yang lebih singkat. + Memuatkan XSL dari Nmap.Org memudahkan melihat hasil pada mesin yang tidak memiliki + Nmap (dan karenanya tidak memiliki + <filename moreinfo="none">nmap.xsl</filename>). Jadi URL seringkali + lebih bermanfaat, namun lokasi filesistem lokal + <filename moreinfo="none">nmap.xsl</filename> digunakan secara baku demi alasan privasi.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--webxml</option> (Load stylesheet from Nmap.Org) + <indexterm significance="preferred"><primary><option>--webxml</option></primary></indexterm> + </term> + <listitem> + + <para>Opsi kenyamanan ini adalah sekedar alias bagi + <option significance="preferred">--stylesheet https://nmap.org/data/nmap.xsl</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option significance="preferred">--no-stylesheet</option> (Omit XSL stylesheet declaration from XML) + <indexterm significance="preferred"><primary><option>--no-stylesheet</option></primary></indexterm> + </term> + <listitem> + + <para>Berikan opsi ini untuk mencegah Nmap dari mengasosiasikan sembarang sytlesheet XSL + dengan output XML-nya. Direktif <literal moreinfo="none">xml-stylesheet</literal> + ditiadakan.</para> + </listitem> + </varlistentry> + + + + </variablelist> + <indexterm class="endofrange" startref="man-output-indexterm" significance="normal"/> + </refsect1> + + <refsect1 id="man-misc-options"> + <title>Opsi Lain-lain</title> + <para>Bagian ini menjelaskan beberapa opsi penting (dan tidak begitu penting) + yang tidak tercakup di manapun.</para> + + <variablelist> + <varlistentry> + <term> + <option>-6</option> (Enable IPv6 scanning) + <indexterm significance="preferred"><primary><option>-6</option></primary></indexterm> + <indexterm significance="normal"><primary>IPv6</primary></indexterm> + </term> + <listitem> + + <para>Sejak tahun 2002, Nmap memberikan dukungan IPv6 untuk fiturnya + yang paling populer. Terutama, scanning ping (hanya-TCP), + connect scanning, dan deteksi versi semuanya mendukung IPv6. + Sintaks perintahnya sama dengan yang biasa kecuali anda juga menambahkan + opsi <option>-6</option>. Tentu saja anda harus menggunakan sintaks IPv6 + jika anda menspesifikasikan sebuah alamat alih-alih nama host. + Sebuah alamat mungkin terlihat seperti + <literal moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, + sehingga disarankan untuk menggunakan nama host. Outputnya tampak sama + dengan yang biasa, dengan alamat IPv6 pada baris <quote>port + menarik</quote>.</para> + + <para>Meskipun IPv6 belum tersebar luas, ia telah digunakan secara signifikan + di beberapa negara (biasanya Asia) dan kebanyakan sistem operasi + modern mendukungnya. Untuk menggunakan Nmap dengan IPv6, sumber dan target + scan anda harus dikonfigurasi untuk IPv6. Jika ISP anda (seperti kebanyakan) tidak + mengalokasikan alamat IPv6 bagi anda, broker tunnel bebas tersedia luas + dan bekerja baik dengan Nmap. Saya menggunakan layanan broker tunnel IPv6 gratis + <indexterm significance="normal"><primary>IPv6 tunnel broker</primary></indexterm> + di <ulink url="http://www.tunnelbroker.net"/>. + Broker tunnel lainnya adalah + <ulink url="http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers">di daftar + Wikipedia</ulink>. 6to4 tunnels adalah pendekatan gratis dan populer lainnya.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-A</option> (Aggressive scan options) + <indexterm significance="preferred"><primary><option>-A</option></primary></indexterm> + </term> + <listitem> + + <para>Opsi ini mengaktifkan opsi agresive dan advance tambahan. + Saya belum memutuskan kepanjangannya. Saat ini ia mengaktifkan + deteksi SO (<option>-O</option>), scanning versi (<option>-sV</option>), + scanning script (<option>-sC</option>) dan + traceroute (<option>--traceroute</option>). + <indexterm significance="normal"><primary><option>-A</option></primary><secondary>features enabled by</secondary></indexterm> + Fitur lebih banyak mungkin ditambahkan di masa mendatang. + Tujuannya adalah mengaktifkan set opsi scan yang lengkap tanpa perlu + mengingat sejumlah besar flag. Namun demikian, karena scanning script + dengan set baku dianggap mengganggu, anda tidak seharusnya menggunakan + <option>-A</option> terhadap jaringan target tanpa ijin. + Opsi ini hanya mengaktifkan fitur, dan tidak opsi pewaktuan + (seperti <option>-T4</option>) atau opsi verbositas + (<option>-v</option>) yang mungkin anda inginkan pula.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--datadir <replaceable>directoryname</replaceable></option> (Specify custom Nmap data file location) + <indexterm significance="preferred"><primary><option>--datadir</option></primary></indexterm> + </term> + <listitem> + + <para>Nmap memperoleh beberapa data khusus pada runtime dalam file + bernama <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>, dan + <filename moreinfo="none">nmap-os-db</filename>. Jika lokasi + file-file ini telah dispesifikasikan (dengan menggunakan opsi + <option>--servicedb</option> atau <option>--versiondb</option>), + lokasi tersebut digunakan untuk file itu. Setelah itu, Nmap + mencari file-file ini dalam direktori yang dispesifikasikan dengan opsi + <option>--datadir</option> (bila ada). File yang tidak ditemukan + di sana, akan dicari pada direktori yang dispesifikasikan oleh + variabel lingkungan NMAPDIR <indexterm significance="normal"><primary><envar>NMAPDIR</envar> environment variable</primary></indexterm>. + Kemudian + <filename moreinfo="none">~/.nmap</filename><indexterm significance="normal"><primary sortas="nmap directory"><filename moreinfo="none">.nmap</filename> directory</primary></indexterm> + untuk UID ril dan efektif (sistem POSIX) atau lokasi eksekutabel + Nmap (Win32), dan kemudian lokasi yang digunakan saat kompilasi + seperti <filename moreinfo="none">/usr/local/share/nmap</filename> atau <filename moreinfo="none">/usr/share/nmap</filename> + . Dan terakhir, Nmap akan mencari dalam direktori saat ini.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--servicedb <replaceable>services file</replaceable></option> (Specify custom services file) + <indexterm significance="preferred"><primary><option>--servicedb</option></primary></indexterm> + </term> + <listitem> + + <para>Beritahu Nmap untuk menggunakan file service yang diberikan alih-alih file + <filename moreinfo="none">nmap-services</filename> yang disertakan dalam + Nmap. Dengan menggunakan opsi ini juga menyebabkan opsi scan cepat + (<option>-F</option>) digunakan. Lihat deskripsi untuk + <option>--datadir</option> untuk informasi lebih lanjut mengenai file data Nmap.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--versiondb <replaceable>service probes file</replaceable></option> (Specify custom service probes file) + <indexterm significance="preferred"><primary><option>--versiondb</option></primary></indexterm> + </term> + <listitem> + + <para>Minta Nmap untuk menggunakan file pro be service yang diberikan alih-alih file + <filename moreinfo="none">nmap-service-probes</filename> yang disertakan dalam Nmap. + Lihat deskripsi untuk <option>--datadir</option> + untuk informasi lebih lanjut mengenai file data Nmap.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-eth</option> (Use raw ethernet sending) + <indexterm significance="preferred"><primary><option>--send-eth</option></primary></indexterm> + </term> + <listitem> + + <para>Minta Nmap mengirim paket pada layer ethernet raw (data + link) alih-alih layer IP (jaringan) yang lebih tinggi. Secara baku, + Nmap memilih satu yang umumnya terbaik untuk platform yang digunakan. + Socket Raw (layer IP layer)<indexterm significance="normal"><primary>raw sockets</primary></indexterm> + umumnya paling efisien pada mesin-mesin Unix, sementara frame ethernet + dibutuhkan bagi operasi Windows karena Microsoft meniadakan dukungan + socket raw. Nmap tetap menggunakan paket IP raw pada Unix ketika + tidak ada pilihan lainnya (seperti koneksi non-ethernet).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-ip</option> (Send at raw IP level) + <indexterm significance="preferred"><primary><option>--send-ip</option></primary></indexterm> + </term> + <listitem> + + <para>Minta Nmap untuk mengirim paket melalui soket IP raw alih-alih + mengirimkan frame ethernet level lebih rendah. Ia merupakan komplemen + opsi <option>--send-eth</option> yang didiskusikan sebelumnya.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--privileged</option> (Assume that the user is fully privileged) + <indexterm significance="preferred"><primary><option>--privileged</option></primary></indexterm> + </term> + <listitem> + + <para>Beritahu Nmap untuk mengasumsikan bahwa ia memiliki cukup privilege + untuk melakukan pengiriman socket raw, packet sniffing, dan + operasi sejenis yang biasanya membutuhkan + root privileges<indexterm significance="normal"><primary>privileged users</primary></indexterm><indexterm significance="normal"><primary>authorized users</primary><see>privileged users</see></indexterm> + pada sistem Unix. Secara baku Nmap berhenti bila operasi itu diminta + namun <function moreinfo="none">geteuid</function> tidaklah nol. + <option>--privileged</option> berguna dengan kapabilitas kernel Linux + dan sistem serupa yang mungkin dikonfigurasi untuk membolehkan user + unprivileged melakukan scan raw-packet. Pastikan untuk memberikan flag opsi ini + sebelum flag lainnya bagi opsi yang membutuhkan privilege + (SYN scan, deteksi SO, dsb.). Variabel lingkungan + <envar>NMAP_PRIVILEGED</envar><indexterm significance="normal"><primary><envar>NMAP_PRIVILEGED</envar> environment variable</primary></indexterm> + dapat juga diset sebagai alternatif ekivalen bagi + <option>--privileged</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--unprivileged</option> (Assume that the user lacks raw socket privileges) + <indexterm significance="preferred"><primary><option>--unprivileged</option></primary></indexterm> + <indexterm significance="normal"><primary>unprivileged users</primary></indexterm> + </term> + <listitem> + + + <para>Opsi ini merupakan lawan + <option>--privileged</option>. Ia memberitahu Nmap untuk memperlakukan + user sebagai tidak memiliki privilege network raw socket dan sniffing. + Hal ini berguna untuk testing, debugging, atau ketika fungsionalitas jaringan + raw pada sistem operasi anda tampaknya rusak. Variabel lingkungan + <envar>NMAP_UNPRIVILEGED</envar><indexterm significance="normal"><primary><envar>NMAP_UNPRIVILEGED</envar> environment variable</primary></indexterm> + dapat diset sebagai alternatif ekivalen bagi + <option>--unprivileged</option>.</para> + + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--release-memory</option> (Release memory before quitting) + <indexterm significance="normal"><primary><option>--release-memory</option></primary></indexterm> + </term> + <listitem> + + <para>Opsi ini hanya berguna untuk memory-leak debugging. + Ia membuat Nmap merilis memori yang telah dialokasikan sebelum ia berhenti + sehingga kebocoran memori sebenarnya mudah ditemukan. + Normalnya Nmap melewati langkah ini karena SO melakukannya setelah + penghentian proses.</para> + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>-V</option>; <option>--version</option> (Print version number) + <indexterm significance="normal"><primary><option>-V</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--version</option></primary></indexterm> + </term> + <listitem> + <para>Mencetak angka versi Nmap dan keluar.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-h</option>; <option>--help</option> (Print help summary page) + <indexterm significance="normal"><primary><option>-h</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--help</option></primary></indexterm> + </term> + <listitem> + <para>Mencetak layar bantuan singkat dengan flag-flag yang paling umum. + Menjalankan Nmap tanpa argumen melakukan hal yang sama.</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-runtime-interaction"> + <title>Interaksi Runtime<indexterm significance="normal"><primary>runtime interaction</primary></indexterm></title> + + <para>Selama eksekusi Nmap, seluruh kunci yang ditekan direkam. + Hal ini memungkinkan anda beriteraksi dengan program tanpa membatalkan + dan memulai ulang. Beberapa kunci khusus akan merubah opsi, sementara kunci lain + akan mencetak pesan status yang memberitahu anda mengenai scan. + Konvensinya adalah + <emphasis>huruf kecil meningkatkan</emphasis> jumlah yang dicetak, dan + <emphasis>huruf kapital mengurangi</emphasis> yang dicetak. + Anda dapat juga menekan ‘<emphasis>?</emphasis>’ untuk bantuan.</para> + <variablelist> + <varlistentry> + <term> + <option>v</option> / <option>V</option> + </term> + <listitem> + <para>Naikkan / kurangi level verbositas</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>d</option> / <option>D</option> + </term> + <listitem> + <para>Naikkan / kurangi level debugging</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>p</option> / <option>P</option> + </term> + <listitem> + <para>Aktifkan/Non-aktifkan packet tracing</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>?</option> + </term> + <listitem> + <para>Cetak layar bantuan interaksi runtime</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + Lainnya + </term> + <listitem> + <para>Cetak pesan satus seperti ini:</para> + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), + 5 undergoing Service Scan</para> + <para>Service scan Timing: About 28.00% done; ETC: 16:18 + (0:00:15 remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-examples"> + <title>Contoh-contoh</title> + <para>Berikut ini adalah beberapa contoh penggunaan Nmap, dari yang mudah dan rutin + hingga yang sedikit kompleks dan canggih. Beberapa alamat IP + dan nama domain aktual digunakan untuk membuatnya menjadi lebih kongkrit. + Anda harus merubah alamat/nama dengan + <emphasis>jaringan anda sendiri.</emphasis>. Meskipun saya tidak menganggap + scanning port jaringan lain adalah atau seharusnya ilegal, beberapa administrator + jaringan tidak menghargai scanning jaringan mereka sembarangan dan akan mengajukan keluhan. + Pendekatan terbaik adalah memperoleh ijin terlebih dulu.</para> + + <para>Untuk tujuan pengujian, anda memperoleh ijin untuk memeriksa host + <literal moreinfo="none">scanme.nmap.org</literal>. Ijin ini hanya mencakup + pemeriksaan dengan Nmap dan tidak menguji eksploit atau serangan denial of service. + Untuk menghemat bandwidth, mohon tidak menggunakan lebih dari selusin scan + terhadap host tersebut per hari. Jika layanan target scanning gratis ini disalahgunakan, + ia akan dinonaktifkan dan Nmap akan melaporkan + <computeroutput moreinfo="none">Failed to resolve given hostname/IP: + scanme.nmap.org</computeroutput>. Ijin ini juga berlaku untuk host-host + <literal moreinfo="none">scanme2.nmap.org</literal>, + <literal moreinfo="none">scanme3.nmap.org</literal>, dan seterusnya, meskipun host-host + ini belum ada.</para> + + <para> + <indexterm significance="normal"><primary><option>-v</option></primary><secondary>example of</secondary></indexterm> + <command moreinfo="none">nmap -v scanme.nmap.org</command> + </para> + <para>Opsi ini memeriksa seluruh port TCP reserved pada mesin + <literal moreinfo="none">scanme.nmap.org</literal> . Opsi <option>-v</option> + mengaktifkan mode verbose.</para> + <para> + <indexterm significance="normal"><primary><option>-sS</option></primary><secondary>example of</secondary></indexterm> + <indexterm significance="normal"><primary><option>-O</option></primary><secondary>example of</secondary></indexterm> + <command moreinfo="none">nmap -sS -O scanme.nmap.org/24</command> + </para> + <para>Meluncurkan scan stealth SYN terhadap setiap mesin yang up dari + 256 IP pada jaringan berukuran <quote>kelas C</quote> tempat + Scanme berada. Ia juga berusaha menentukan sistem operasi yang digunakan + pada setiap host yang hidup dan berjalan. Hal ini membutukan privilege root + karena scan SYN dan deteksi SO.</para> + <para> + <indexterm significance="normal"><primary><option>-p</option></primary><secondary>example of</secondary></indexterm> + <command moreinfo="none">nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</command> + </para> + + <para>Meluncurkan enumerasi host dan scan TCP pada setengah bagian pertama + dari subnet dalam alamat kelas B 198.116. Scan ini menguji apakah sistem + menjalankan SSH, DNS, POP3, atau IMAP pada port standarnya, atau apapun pada port + 4564. Pada sembarang port yang ditemukan terbuka, akan digunakan deteksi versi + untuk menentukan aplikasi apa yang berjalan.</para> + + <para> + <indexterm significance="normal"><primary><option>-iR</option></primary><secondary>example of</secondary></indexterm> + <indexterm significance="normal"><primary><option>-PN</option></primary><secondary>example of</secondary></indexterm> + <command moreinfo="none">nmap -v -iR 100000 -PN -p 80</command> + </para> + + <para>Meminta Nmap memilih 100.000 host secara acak dan memeriksanya + untuk web server (port 80). Enumerasi host ditiadakan dengan + <option>-PN</option> karena mengirim beberapa probe untuk menentukan + apakah host hidup adalah sia-sia ketika anda hanya memprobe satu port + pada setiap host target.</para> + + <para> + <indexterm significance="normal"><primary><option>-oX</option></primary><secondary>example of</secondary></indexterm> + <indexterm significance="normal"><primary><option>-oG</option></primary><secondary>example of</secondary></indexterm> + <command moreinfo="none">nmap -PN -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</command> + </para> + <para>Memeriksa 4096 IP untuk sembarang web server (tanpa mem-ping + mereka) dan menyimpan hasilnya dalam format grepable dan XML.</para> + + </refsect1> + + <refsect1 id="man-bugs"> + <title>Bugs</title> + <indexterm significance="normal"><primary>bugs, reporting</primary></indexterm> + + <para>Seperti penulisnya, Nmap tidaklah sempurna. Namun anda dapat membantu + membuatnya lebih baik dengan mengirimkan laporan bug atau bahkan menulis patch. Jika + Nmap tidak berlaku sesuai yang anda harapkan, pertama upgrade ke versi terakhir + yang tersedia dari <ulink url="https://nmap.org"/>. Jika masalah masih tetap, + lakukan riset untuk menentukan apakah ia telah ditemukan dan diselesaikan. + Cobalah mencari pesan kesalahan pada halaman pencarian kami <ulink url="https://insecure.org/search.html"/> atau di Google. Juga cobalah + membrowsing arsip <citetitle>nmap-dev</citetitle> di <ulink url="https://seclists.org/"/>.<indexterm significance="normal"><primary><citetitle>nmap-dev</citetitle> mailing list</primary></indexterm> + Bacalah juga halaman manual ini dengan baik. + Jika masih belum selesai juga, kirimkan laporan bug ke + <email>dev@nmap.org</email>. Mohon sertakan semua yang + anda telah pelajari mengenai masalah, dan juga versi Nmap dan sistem operasi + yang anda gunakan. Laporan kesalahan dan pertanyaan penggunaan Nmap yang dikirim ke + <email>dev@nmap.org</email> akan lebih mungkin dijawab daripada yang dikirimkan + secara langsung ke Fyodor. Jika anda berlangganan ke list nmap-dev + sebelum posting, pesan anda akan melewati moderasi dan akan lewat dengan lebih cepat. + Berlangganan di <ulink url="https://nmap.org/mailman/listinfo/dev"/>.</para> + + <para>Patch code untuk memperbaiki bug adalah lebih baik daripada laporan kesalahan. + Instruksi dasar untuk membuat file patch dengan perubahan anda tersedia di + <ulink url="https://nmap.org/data/HACKING"/>. Patch dapat dikirim ke + <citetitle>nmap-dev</citetitle> (direkomendasikan) atau langsun ke Fyodor.</para> + </refsect1> + + <refsect1 id="man-author"> + <title>Penulis</title> + <para>Fyodor + <email>fyodor@nmap.org</email> + (<ulink url="https://insecure.org"/>) + </para> + + <para>Selama ini, ratusan orang telah memberikan kontribusi berharga ke Nmap. + Hal ini dirinci dalam file + <filename moreinfo="none">CHANGELOG</filename><indexterm significance="normal"><primary>changelog</primary></indexterm> + yang didistribusikan bersama Nmap + dan juga tersedia dari <ulink url="https://nmap.org/changelog.html"/>.</para> + + </refsect1> + + <refsect1 id="man-legal"> + <title>Legal Notices</title> + +<refsect2 id="translation-disclaimer"> + <title>Unofficial Translation Disclaimer / Disklaimer Terjemahan Tidak Resmi</title> + + <para>This is an unnofficial translation of the <ulink + url="https://nmap.org/book/man-legal.html">Nmap + license details</ulink> into Indonesian. It was not written by + Insecure.Com LLC, and does not legally state the distribution terms + for Nmap -- only the original English text does that. However, we + hope that this translation helps Indonesian speakers understand the + Nmap license better.</para> + +<para>Ini merupakan terjemahan tidak resmi dari <ulink + url="https://nmap.org/book/man-legal.html">Nmap + license details</ulink> ke dalam bahasa Indonesia. Ia tidak ditulis oleh + Insecure.Com LLC, dan tidak secara legal menyatakan syarat distribusi + untuk Nmap -- hanya teks berbahasa Inggris aslinya yang melakukan hal itu. + Namun demikian, kami berharap bahwa terjemahan ini membantu pengguna bahasa Indonesia + untuk lebih memahami lisensi Nmap.</para> + +</refsect2> + +<refsect2 id="nmap-copyright"> + <title>Nmap Copyright and Licensing</title> + <indexterm significance="normal"><primary>copyright</primary></indexterm> + <indexterm significance="normal"><primary>GNU General Public License</primary></indexterm> + + +<para>The Nmap Security Scanner is (C) 1996–2009 Insecure.Com LLC. Nmap is also a registered trademark of Insecure.Com LLC. This program is free software; you may redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; Version 2 with the clarifications and exceptions described below. This guarantees your right to use, modify, and redistribute this software under certain conditions. If you wish to embed Nmap technology into proprietary software, we sell alternative licenses (contact <email>sales@insecure.com</email>). Dozens of software vendors already license Nmap technology such as host discovery, port scanning, OS detection, and version detection.</para> + +<para>Note that the GPL places important restrictions on +<quote>derived works</quote>, yet it does not provide a detailed +definition of that term. To avoid misunderstandings, we consider an +application to constitute a <quote>derivative work</quote> for the +purpose of this license if it does any of the following:</para> + +<itemizedlist> +<listitem><para>Integrates source code from Nmap</para></listitem> +<listitem><para>Reads or includes Nmap copyrighted data files, such as + <filename moreinfo="none">nmap-os-db</filename> or + <filename moreinfo="none">nmap-service-probes</filename>.</para></listitem> +<listitem><para>Executes Nmap and parses the results (as opposed to + typical shell or execution-menu apps, which simply display raw + Nmap output and so are not derivative works.)</para></listitem> +<listitem><para>Integrates/includes/aggregates Nmap into a proprietary + executable installer, such as those produced by + InstallShield.</para></listitem> +<listitem><para>Links to a library or executes a program that does any + of the above.</para></listitem> +</itemizedlist> + +<para>The term <quote>Nmap</quote> should be taken to also include any +portions or derived works of Nmap. This list is not exclusive, but is +meant to clarify our interpretation of derived works with some common +examples. Our interpretation applies only to Nmap—we don't +speak for other people's GPL works.</para> + +<para>If you have any questions about the GPL licensing restrictions +on using Nmap in non-GPL works, we would be happy to help. As +mentioned above, we also offer alternative license to integrate Nmap +into proprietary applications and appliances. These contracts have +been sold to many security vendors, and generally include a perpetual +license as well as providing for priority support and updates as well +as helping to fund the continued development of Nmap +technology. Please email <email>sales@insecure.com</email> for further +information.</para> + +<para>As a special exception to the GPL terms, Insecure.Com LLC grants +permission to link the code of this program with any version of the +OpenSSL library which is distributed under a license identical to that +listed in the included <filename moreinfo="none">COPYING.OpenSSL</filename> file, and distribute linked +combinations including +the two.<indexterm significance="normal"><primary>OpenSSL</primary><secondary>linking exception</secondary></indexterm> +You must obey the GNU GPL in all +respects for all of the code used other than OpenSSL. If you modify +this file, you may extend this exception to your version of the file, +but you are not obligated to do so.</para> + +<para>If you received these files with a written license agreement or +contract stating terms other than the terms above, then that +alternative license agreement takes precedence over these +comments.</para> +</refsect2> + +<refsect2 id="man-copyright"> + <title>Creative Commons License for this Nmap Guide</title> + <para>This <citetitle>Nmap Reference Guide</citetitle> is (C) 2005–2008 Insecure.Com LLC. It is + hereby placed under version 2.5 of the <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative Commons + Attribution License</ulink>. This allows you redistribute and modify + the work as you desire, as long as you credit the original source. + Alternatively, you may choose to treat this document as falling under + the same license as Nmap itself (discussed previously).</para> +</refsect2> + +<refsect2 id="source-contrib"> + <title>Source Code Availability and Community Contributions</title> + +<para>Source is provided to this software because we believe users +have a right to know exactly what a program is going to do before they +run it. This also allows you to audit the software for security holes +(none have been found so far).</para> + +<para>Source code also allows you to port Nmap to new platforms, fix +bugs, and add new features. You are highly encouraged to send your +changes to <email>fyodor@nmap.org</email> for possible +incorporation into the main distribution. By sending these changes to +Fyodor or one of the Insecure.Org development mailing lists, it is +assumed that you are offering Fyodor and Insecure.Com LLC the +unlimited, non-exclusive right to reuse, modify, and relicense the +code. Nmap will always be available +Open Source,<indexterm significance="normal"><primary>open source</primary></indexterm> +but this is important +because the inability to relicense code has caused devastating +problems for other Free Software projects (such as KDE and NASM). We +also occasionally relicense the code to third parties as discussed +above. If you wish to specify special license conditions of your +contributions, just say so when you send them.</para> +</refsect2> + +<refsect2 id="no-warranty"><title>No Warranty<indexterm significance="normal"><primary>warranty (lack of)</primary></indexterm></title> + +<para>This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License v2.0 for more details at <ulink url="http://www.gnu.org/licenses/gpl-2.0.html"/>, or in the <filename moreinfo="none">COPYING</filename> file +included with Nmap.</para> + +<para>It should also be noted that Nmap has occasionally been known to crash +poorly written applications, TCP/IP stacks, and even operating +systems.<indexterm significance="normal"><primary>crashing targets</primary></indexterm> +While this is extremely rare, it is important to keep in +mind. <emphasis>Nmap should never be run against mission +critical systems</emphasis> unless you are prepared to suffer +downtime. We acknowledge here that Nmap may crash your systems or +networks and we disclaim all liability for any damage or problems Nmap +could cause.</para> +</refsect2> + +<refsect2 id="inappropriate-usage"><title>Inappropriate Usage</title> +<para>Because of the slight risk of crashes and because a few black +hats like to use Nmap for reconnaissance prior to attacking systems, +there are administrators who become upset and may complain when their +system is scanned. Thus, it is often advisable to request permission +before doing even a light scan of a network.</para> + +<para>Nmap should never be installed with special privileges +(e.g. suid root) for security reasons.<indexterm significance="normal"><primary>setuid, why Nmap shouldn't be</primary></indexterm> +</para> +</refsect2> + +<refsect2 id="third-party-soft"><title>Third-Party Software</title> + +<para>This product includes software developed by +the <ulink role="hidepdf" url="http://www.apache.org">Apache Software +Foundation</ulink>. A modified version of the <ulink role="hidepdf" url="http://www.tcpdump.org">Libpcap portable packet capture +library</ulink><indexterm significance="normal"><primary>libpcap</primary></indexterm> +is distributed along with Nmap. +The Windows version of Nmap utilized the Libpcap-derived +<ulink role="hidepdf" url="http://www.winpcap.org">WinPcap library</ulink><indexterm significance="normal"><primary>WinPcap</primary></indexterm> +instead. +Regular expression support is provided by the +<ulink role="hidepdf" url="http://www.pcre.org">PCRE library</ulink>,<indexterm significance="normal"><primary>Perl Compatible Regular Expressions (PCRE)</primary></indexterm> +which is open-source software, written by Philip Hazel.<indexterm significance="normal"><primary>Hazel, Philip</primary></indexterm> +Certain raw networking functions use the +<ulink role="hidepdf" url="http://libdnet.sourceforge.net">Libdnet</ulink><indexterm significance="normal"><primary>libdnet</primary></indexterm> +networking library, which was written by Dug Song.<indexterm significance="normal"><primary>Song, Dug</primary></indexterm> +A modified version is distributed with Nmap. +Nmap can optionally link with the +<ulink role="hidepdf" url="http://www.openssl.org">OpenSSL +cryptography toolkit</ulink><indexterm significance="normal"><primary>OpenSSL</primary></indexterm> +for SSL version detection support. +The Nmap Scripting Engine uses an embedded version of +the <ulink role="hidepdf" url="http://www.lua.org">Lua programming +language</ulink>.<indexterm significance="normal"><primary>Lua programming language</primary></indexterm> +All of the third-party software described in this paragraph is freely +redistributable under BSD-style software licenses.</para> + +</refsect2> + +<refsect2 id="us-export"><title>United States Export Control Classification<indexterm significance="normal"><primary>export control</primary></indexterm></title> + +<para>U.S. Export Control: Insecure.Com LLC believes that Nmap falls +under U.S. ECCN (export control classification number) 5D992. This +category is called <quote>Information Security software not controlled +by 5D002</quote>. The only restriction of this classification is AT +(anti-terrorism), which applies to almost all goods and denies export +to a handful of rogue nations such as Iran and North Korea. Thus +exporting Nmap does not require any special license, permit, or other +governmental authorization.</para> +</refsect2> + + </refsect1> +</refentry> +<indexterm class="endofrange" startref="man-nmap1-indexterm" significance="normal"/> + +</article> 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> diff --git a/docs/man-xlate/nmap-man-ja.xml b/docs/man-xlate/nmap-man-ja.xml new file mode 100644 index 0000000..bf3d613 --- /dev/null +++ b/docs/man-xlate/nmap-man-ja.xml @@ -0,0 +1,1564 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- $Id: manhtml.xml 2940 2005-11-17 22:39:47Z fyodor $ --> +<article id="man" lang="ja"> +<artheader> + <title>Nmap リファレンスガイド (Man Page)</title> +</artheader> +<refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Nmap リファレンスガイド</refmiscinfo> + </refmeta> + <refnamediv id="man-name"> + <refname>nmap</refname> + <refpurpose>ネットワーク調査ツールおよびセキュリティ/ポート スキャナ</refpurpose> + </refnamediv> + <!-- body begins here --> + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis sepchar=" "> + <command moreinfo="none">nmap</command> + <arg choice="opt" rep="repeat"> + <replaceable>スキャンタイプ</replaceable> + </arg> + <arg choice="opt" rep="norepeat"> + <replaceable>オプション</replaceable> + </arg> + <arg choice="req" rep="norepeat"> + <replaceable>ターゲットの指定</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1 id="man-description"> + <title>ツール説明</title> + <web> + <note><para> + このドキュメントでは、Nmapバージョン4.50について説明しています。最新のドキュメントは、英語で<ulink + url="https://nmap.org/book/man.html" + />から入手できます。</para></note> + </web> + + <para>Nmap (<quote>Network Mapper</quote>)は、ネットワーク調査およびセキュリティ監査を行うためのオープンソースのツールである。大規模ネットワークを高速でスキャンするように設計されているが、単一のホストに対してもまったく問題なく機能する。Nmapは生の(raw)IPパケットを用いて、ネットワーク上でどのようなホストか利用可能になっているか、これらのホストが提供しているサービス(アプリケーション名とバージョン)は何か、ホストが実行しているOS(OS名とバージョン)は何か、どのような種類のパケットフィルタ/ファイアウォールが使用されているかなど、その他数多くの特徴を斬新な方法で判別する。Nmapは、セキュリティ監査用に広く利用されているばかりでなく、ネットワーク・インベントリ(資産情報収集)、サービスのアップグレード予定管理、ホストやサービスのアップタイム(利用可能時間)の監視等の日常業務にNmapを役立てているシステム管理者やネットワーク管理者も多い。</para> + + <para>Nmapは、スキャン調査対象の一覧を、使用したオプションに応じた補足情報とともに出力する。このなかで最も重要な情報は、<quote>interesting ports table</quote>(興味深いポートの一覧表)である。この一覧表には、ポート番号、プロトコル、サービス名、状態が記載されている。状態は、<literal moreinfo="none">open</literal>、<literal moreinfo="none">filtered</literal>、<literal moreinfo="none">closed</literal>、または<literal moreinfo="none">unfiltered</literal>のいずれかになる。<literal moreinfo="none">open</literal>(開いた)ポートは、調査対象マシン上のアプリケーションがそのポート上で接続/パケットを待ち受けている状態であることを示す。 <literal moreinfo="none">Filtered</literal>(フィルタあり)は、ファイアウォールやフィルタなどのネットワーク上の障壁でポートが遮られている状態にあり、ポートが開いているか閉じているかをNmapが判断できないことを意味する。<literal moreinfo="none">Closed</literal>(閉じた)ポートには、待ち受け状態のアプリケーションは何もないが、これらはいつでも開放することが可能である。ポートがNmapのプローブには応答するが、開いているか閉じているかをNmapが判別できない場合には <literal moreinfo="none">unfiltered</literal>に分類される。ポートの状態が<literal moreinfo="none">open|filtered</literal>や<literal moreinfo="none">closed|filtered</literal>のように、2つの状態の組み合わせで報告されるのは、そのどちらがポートの状態を表しているかをNmapが判断できない場合である。またこのポート一覧表には、バージョンの検出が求められた場合には、ソフトウェアのバージョン情報も記載される。IPプロトコルスキャン(<option>-sO</option>)が要求された場合には、ポートを一覧表示するのではなく、対応可能なIPプロトコルに関する情報が提供される。</para> + + <para>Nmapは、このポート一覧表以外にも、逆引きDNS名、OSの推測、デバイスの種類、MACアドレスなどの、調査対象に関するさらに詳細な情報を提供できる。</para> + + <para>典型的なNmapスキャンの例を、以下の <xref linkend="man-ex-repscan"/>に示した。この例で使用されているNmapの引数は、OSとそのバージョンの検出を可能にする<option>-A</option>と、処理を高速に実行するための<option>-T4</option>、および2つのターゲットホスト名だけである。</para> + +<example id="man-ex-repscan"><title>Nmapスキャンの典型的な例</title> +<screen> +# <userinput>nmap -A -T4 scanme.nmap.org</userinput> + +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>Nmapの最新バージョンは、<ulink url="https://nmap.org"/>から入手できる。また、本マニュアルページの最新版は、<ulink url="https://nmap.org/book/man.html"/>で参照できる。</para> + + </refsect1> + + <refsect1 id="man-briefoptions"> + <title>オプション概要</title> + +<para>このオプション概要は、Nmapを引数なしで実行すると表示される。最新版は<ulink url="https://nmap.org/data/nmap.usage.txt"/>で参照できる。これを見ると、比較的利用機会の多いオプションについての概要を確認できるが、本マニュアルの以下に掲載する詳細な解説に代わるものではない。使用頻度の低いオプションには、ここに含まれていないものもある。</para> + +<screen><xi:include href="../nmap.usage.txt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></screen> + + </refsect1> + + <refsect1 id="man-target-specification"> + <title>ターゲットの指定</title> + +<para>Nmapのコマンドラインで、オプション(もしくはオプションの引数)でないものはすべて、ターゲットホストの指定として扱われる。最も簡単な例は、スキャンを行うターゲットのIPアドレスやホスト名の指定である。</para> + +<!-- Missing paragraph: "When a hostname is given as a target[...]" --> +<para>隣接した複数のホストから成るネットワーク全体をスキャン対象としたい場合は、CIDR表記のアドレス指定を利用できる。IPアドレスやホスト名の末尾に<replaceable>bit数</replaceable>を付加すると、Nmapは、アドレスの上位から指定した<replaceable>bit数</replaceable>までが参照するIPアドレスや特定のホスト名と同じアドレスをすべてスキャンする。例えば、192.168.10.0/24を指定すると 192.168.10.0 (2進表示: <literal moreinfo="none">11000000 10101000 00001010 00000000</literal>)から192.168.10.255 (2進表示: <literal moreinfo="none">11000000 10101000 00001010 11111111</literal>)までの256のホストがスキャンされる。192.168.10.40/24を指定しても、まったく同じ結果になる。ホスト scanme.nmap.orgのIPアドレスが205.217.153.62であるとすると、scanme.nmap.org/16という指定では、205.217.0.0 から 205.217.255.255 までの65,536個のIPアドレスをスキャンすることになる。指定可能な最小値は/1であり、これはインターネットの半分をスキャンすることになる。最大値は/32で、すべてのアドレスビットが固定されるので、指定したホストやIPアドレスだけがスキャンされる。</para> + +<para>CIDR表記は簡潔であるが、必ずしも十分な柔軟性があるわけではない。例えば、192.168.0.0/16をスキャンする際に、.0や.255で終わるアドレスは、通常はブロードキャストアドレスなのですべて対象から除外したい場合があるだろう。Nmapではこのケースには、オクテット(octet=8bit)範囲のアドレス指定によって対応する。通常のIPアドレスを指定する代わりに、コンマ区切りの数のリストや各オクテット(8bit)の範囲を指定できる。例えば、192.168.0-255.1-254と指定すると、.0と.255で終わる範囲のアドレスはすべて省かれる。この範囲は最後のオクテットだけに限る必要はない。すなわち、0-255.0-255.13.37と指定すると、13.37で終わるすべてのIPアドレスをインターネット全体でスキャンする。このような広範囲からのサンプリングは、インターネットの調査や研究を行う場合に役立つ。</para> + +<para><!-- Outdated info in this paragraph -->IPv6アドレスは、完全修飾形(省略なし)のIPv6アドレスやホスト名でしか指定できない。IPv6では、CIDRやオクテット範囲は使い道がほとんどないため、サポートされない。</para> + +<para>Nmapはコマンドラインでの複数のホスト指定方法に対応しており、すべて同じ形式にしなくてもよい。<command moreinfo="none">nmap scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.0-255</command>というコマンドを実行しても、期待通りの結果になる。</para> + +<para>ターゲットは通常、コマンドライン上で指定されるが、以下のオプションもまた、ターゲットの選択を制御するために利用できる。</para> + + <variablelist> + <varlistentry> + <term> + <option>-iL <replaceable>inputfilename</replaceable></option> (リストから入力) + </term> + <listitem> + <para><replaceable>入力ファイル名</replaceable>から、ターゲットの指定を読み込む。コマンドラインで非常に巨大なホストリストを渡すのは不適切である場合が多いが、それが望まれるのもよくあるケースである。例えば、スキャンの対象にしたいと考えている目下の割り当てアドレスの10000個のリストが、DHCPサーバからエクスポートされる可能性もある。あるいは、不正な固定IPアドレスを使用しているホストの位置を示すアドレスを<emphasis>除いた</emphasis>すべてのIPアドレスをスキャンしたいと思う場合もあるかもしれない。とにかく、スキャンするべきホストのリストを作成し、そのファイル名を<option>-iL</option>オプションの引数としてNmapに渡せばよい。入力の形式は、Nmapがコマンドラインで対応しているもの(IPアドレス、ホスト名、CIDR、IPv6、オクテット範囲)なら何でもよいが、各入力は、1つ以上のスペース、タブ、改行文字で区切る必要がある。実際のファイルではなくて標準入力から、Nmapにホストを読み込ませたい場合は、ファイル名としてハイフン(<literal moreinfo="none">-</literal>)を指定するとよい。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-iR <replaceable>num hosts</replaceable></option> (ターゲットを無作為に選ぶ) + </term> + <listitem> + <para>インターネット全域に対する調査や研究を行う場合、ターゲットを無作為に選びたい場合もあるだろう。<replaceable>ホスト数</replaceable>の引数は、IPをいくつ生成するべきかをNmapに伝える。プライベート、マルチキャスト、未割り当てなどのアドレス範囲のような望ましくないIPは、自動的に飛ばして進むようになっている。引数に<literal moreinfo="none">0(ゼロ)</literal>を指定すると、スキャンが無限に続けられる。ただし、ネットワーク管理者のなかには、自身の管理するネットワークを不正にスキャンされたことに腹を立ててクレームをつける場合もあることに注意しておこう。このオプションは、自己責任で使用すること! 雨の日の午後、退屈しのぎに拾い見るためのWebサーバを無作為に見つけたい場合は、<command moreinfo="none">nmap -sS -PS80 -iR 0 -p 80</command>というコマンドを試してみるとよい。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--exclude + <replaceable>host1</replaceable><optional>,<replaceable>host2</replaceable><optional>,...</optional></optional></option> (ホスト/ネットワークを除外する) + </term> + <listitem> + <para>ターゲットのコンマ区切りリストを指定し、それらが指定した全ネットワーク範囲の一部であっても、スキャン対象から除外されるようにする。引数として渡すリストでは通常のNmap構文が用いられるので、ホスト名、CIDR表記のネットブロック、オクテット範囲などを含めることもできる。このオプションが役に立つのは、スキャンしたいネットワークに、ポートスキャンによって悪影響が及ぶことがわかっている、触れてはならないミッションクリティカルなサーバやシステムや、他人が管理しているサブネットワークが含まれる場合である。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--excludefile <replaceable>exclude_file</replaceable></option> (ファイルからリストを除外する) + </term> + <listitem> + <para><option>--exclude</option>オプションとほぼ同じ機能を提供するが、異なる点は、除外されるターゲットが、コマンドラインではなく、改行文字、スペース、タブなどで区切った<replaceable>除外ファイル</replaceable>で渡されることである。</para> + </listitem> + </varlistentry> + <!-- Missing option descriptions: -n -R -/-resolve-all -/-unique -/-system-dns -/-dns-servers --> + </variablelist> + </refsect1> + + <refsect1 id="man-host-discovery"> + <title>ホストの発見</title> + + <para>ネットワーク偵察ミッションの第一段階に行うべきことの1つは、一連の(非常に広範な場合もある)IP範囲を限定して、アクティブな状態であるか、関心のあるホストのリストを作成することである。各IPアドレスのポートを1つ1つスキャンするのは、時間はかかるもののなかなか進まない、通常は無駄な作業である。もちろん、あるホストに興味を引かれる要因は、スキャンの目的に大きく左右される。ネットワーク管理者なら、特定のサービスを実行しているホストにしか興味を示さないかもしれないし、セキュリティ監査人なら、IPアドレスを持つデバイス1つ1つに関心を引かれる場合もあるだろう。内部ネットワーク管理者なら、自分が管理するネットワーク上のホストの位置を確認するためにICMP pingを使えるだけで満足かもしれないし、外部のペネトレーションテストの実施担当者なら、ファイアウォールの制限をすり抜けようとして、多種多様な調査手法を使う場合もあるだろう。</para> + + <para>このように、ホスト発見のニーズは多岐にわたるので、Nmapには、使用する技法をカスタマイズするための幅広い種類のオプションが備わっている。ホスト探索はpingスキャンと呼ばれることもあるが、一般的な<application moreinfo="none">ping</application>ツールによる単純なICMPエコー要求パケットよりもはるかに優れている。ユーザは、リストスキャン(<option>-sL</option>)を用いるか、pingを無効にして(<option>-Pn</option>)、このping段階を完全に省略するか、もしくはネットワークに対してマルチポートのTCP SYN/ACK、UDP、ICMPなどのプローブを任意に組み合わせて行うことができる。これらのプローブの目的は、IPアドレスが実際にアクティブな状態(ホストやネットワークデバイスによって使用中)であることを示す応答を誘い出すことである。多くのネットワークでは、いつでもアクティブなIPアドレスは全体のほんのわずかしかない。RFC1918で定められたプライベートアドレス空間(例:10.0.0.0/8)では特にそうなっている。このネットワークには、1600万個のIPアドレスがあるが、これが1000台足らずのマシンしかない企業で使われているのを見たことがある。ホスト発見を実行すると、こうした広大なIPアドレスの海の中から、まばらにIPアドレスを割り振られたマシンを探し出すことができる。</para> + + <para> ホスト発見のオプションが何も指定されない場合、Nmapはポート80宛てのTCP ACKパケットと、ICMPエコー要求クエリを各ターゲットマシンに送信する。この例外は、ローカル イーサネット ネットワーク上にあるターゲットに対して、ARPスキャンが用いられている場合である。高い権限のないUNIXシェルユーザでは、<function moreinfo="none">connect()</function>システムコールを使って、ACKの代わりにSYNパケットが送られる。これらのデフォルトは、<option>-PA -PE</option> オプションに相当する。このホスト発見機能は、ローカルネットワークをスキャンする場合は十分だが、より包括的な一連の発見調査は、セキュリティ監査に任せた方がよい。</para> + + <para><option>-P*</option>オプション(pingの種類を選ぶ)を組み合わせることもできる。様々なTCPポート/フラグやICMPコードを用いた多種多様なプローブを送ることで、制限の厳しいファイアウォールをすり抜ける確率を上げることができる。さらに留意すべき点は、ローカル イーサネット ネットワーク上のターゲットに対しては、その他の<option>-P*</option>オプションを指定している場合でも、ARP探索(<option>-PR</option>)がデフォルトで行われることである。これはほとんどの場合、他よりも高速で効果的に実施できるからである。</para> + + <para>ホスト発見を制御するオプションを以下に挙げる。</para> + <variablelist> + + <varlistentry> + <term> + <option>-sL</option> (リストスキャン)</term> + <listitem> + <para>ホスト発見の縮小版で、単に指定されたネットワークの全ホストを一覧するだけであり、ターゲットホストには何もパケットを送らない。デフォルトでは、Nmapはホスト名を知るために、ホスト上でDNSの逆引き解決も行う。単なるホスト名とはいえ、意外なほど有用な情報をもたらしてくれることも多い。例えば<literal moreinfo="none">fw.chi.playboy.com</literal>は、プレイボーイ社(Playboy Enterprises)のシカゴ(Chicago)支社のファイアウォールである。また最終的には、IPアドレスの総数についての報告もある。リストスキャンは、自分のターゲットに対して正しいIPアドレスが得られていることを確認するための有効な健全性検査になる。ターゲットのホストが見覚えのないドメイン名を示している場合は、間違って別の会社のネットワークをスキャンしてしまわないように、さらに詳しく調査するだけの価値はある。</para> + + <para>リストスキャンの狙いは、単にターゲットホストのリストを出力するだけなので、ポートスキャン、OS検出、pingスキャンなどのより高度なレベルの機能を実現するためのオプションは、これと組み合わせることはできない。これらのハイレベルの機能を実行する際に、pingスキャンを無効にしたい場合は、<option>-Pn</option>オプションの項を参照のこと。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <!-- Section needs updating, including replacing "ping scan" with "no port scan" --> + <option>-sn</option> (Ping スキャン)</term> + <listitem> + + <para>このオプションを使うと、Nmapはpingスキャン(ホスト発見)<emphasis>のみ</emphasis>を実行し、応答した利用可能なホストの一覧を出力する。それ以上の調査(ポートスキャンやOS検出など)は行わない。リストスキャンよりも一歩立ち入った調査になるが、同じ目的で使用される場合が多い。ターゲットネットワークの予備調査を、あまり注意を引かずに軽く実行できる。攻撃者にとっては、IPおよびホスト名を1つ1つリストスキャンして得られるリストよりも、アクティブなホストがいくつあるかを知ることのほうが価値がある。</para> + + <para>またこのオプションは、システム管理者の役に立つ場合も多く、ネットワーク上の利用可能なマシンの数を数えたり、サーバの可用性を監視したりするために容易に利用できる。pingスウィープと呼ばれることも多く、ブロードキャストのクエリには応答しないホストが多いために、ブロードキャストアドレスにpingを打つよりも信頼性が高い。</para> + + <para><option>-sn</option>オプションはデフォルトで、ICMPエコー要求と80番ポート宛てのTCPパケットを送信する。高い権限がないユーザが実行する場合は、SYNパケットが(<function moreinfo="none">connect()</function>コールを使って)ターゲットの80番ポートに送られる。高い権限を持つユーザが、ローカル イーサネット ネットワーク上のターゲットのスキャンを試みる場合は、<option>--send-ip</option>が指定されていない限り、ARP要求(<option>-PR</option>)が用いられる。<option>-sn</option>オプションを、発見プローブタイプ(<option>-Pn</option>を除く<option>-P*</option>タイプ)のオプションと組み合わせると、さらに柔軟に対応できる。このプローブタイプのどれかとポート番号のオプションを使うと、デフォルトのプローブ(ACKやエコー要求)よりも優先される。Nmapを実行している発信元ホストとターゲットネットワークの間に、制限の厳しいファイアウォールが設置してある場合は、これらの高度なテクニックを用いるべきである。さもないと、ファイアウォールでプローブパケットやホストの応答パケットが破棄された場合に、ホストを検出し損ねる可能性がある。</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>-Pn</option> (ping なし) + </term> + <listitem> + <para>このオプションを指定すると、Nmapが実行するホスト発見の段階が完全に省略される。Nmapは通常この検出段階で、さらに立ち入ったスキャンを行うためのアクティブなマシンを割り出す。Nmapはデフォルトでは、ポートスキャン、バージョン検出、OS検出などの立ち入ったプローブは、作動していることが判明したホストに対してしか実行しないようになっている。<option>-Pn</option>を使ってホスト発見を無効にすると、Nmapはターゲットに指定されたIPアドレス<emphasis>すべて</emphasis>に対して、要求されたスキャン機能を実行しようとする。つまり、クラスBのサイズのアドレス空間(/16)を、コマンドラインでターゲットに指定した場合、65,536個のIPアドレスすべてがスキャンされる。<option>-Pn</option>の2番目の文字は数字のゼロであり、英字のオーではない。リストスキャンの場合と同様に、本来行うべきホスト発見の段階は省略されるが、Nmapはそこで停止してターゲットのリストを出力するのではなくて、各ターゲットIPがアクティブであるかのように、要求された機能を実行し続ける。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PS <replaceable>portlist</replaceable></option> (TCP SYN Ping)</term> + <listitem> + + <para>このオプションによって、SYNフラグ付きの空のTCPパケットが送信される。デフォルトの送信先ポートは80番(この設定は、<filename moreinfo="none">nmap.h</filename>のDEFAULT_TCP_PROBE_PORTを書き換えてコンパイルすると変更できる)だが、代わりのポートをパラメタとして指定できる。また、コンマ区切りのポート番号リスト(例:<option>-PS22,23,25,80,113,1050,35000</option>)を指定することも可能である。この場合、各ポートに対するプローブは同時並行で試みられる。</para> + + <para>SYNフラグによって、こちら側がコネクションの確立を試みていることをリモートのシステムに知らせる。通常は送信先ポートが閉じており、RST(リセット)パケットが送り返される。このポートがたまたま開いていた場合は、ターゲットはSYN/ACK TCPパケットで応答し、TCPの3ウェイハンドシェイクの第二段階に進む。続いて、Nmapを実行しているマシンが、ACKパケットを送って3ウェイハンドシェイクを完了すれば、完全なコネクションが確立されるが、その代わりにRSTで応答することで、生成途中のコネクションを切断する。このRSTパケットは、Nmap自身ではなくて、Nmapを実行しているマシンのカーネルが、予期せぬSYN/ACKに応答して送るものである。</para> + + <para>Nmapでは、対象のポートが開いているか閉じているかは問題にしない。対象のホストがアクセス可能で、反応があることをNmapに告げるのは、上で述べたRSTかSYN/ACKの応答である。</para> + + <para>UNIXマシンでは通常、生のTCPパケットを送受信できるのは<literal moreinfo="none">root</literal>権限を持つユーザに限られる。こうした権限のないユーザの場合は、次善策が自動的に採用され、各ターゲットポートに対してconnect()システムコールが起動される。これにより、SYNパケットをターゲットホストに送信し、コネクションの確立を試みる。connect()の戻り値としてすみやかに成功か失敗(ECONNREFUSED)が得られた場合、下位のTCPスタックではSYN/ACKかRSTパケットを受信したことになり、ターゲットホストはアクセス可能と見なされる。このコネクションの試みが未確立のままでタイムアウトに達した場合は、ホストはダウンしていると見なされる。Nmapは生のIPv6パケットの生成にはまだ対応していないので、この次善策はIPv6による接続にも用いられる。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PA <replaceable>portlist</replaceable></option> (TCP ACK Ping)</term> + <listitem> + <para>TCP ACK pingは、すぐ上で述べたSYN pingのケースに酷似している。異なる点は、想像される通り、SYNフラグの代わりにTCP ACKフラグが付けられることである。こうしたACKパケットは、確立されたTCPコネクション上のデータを承認していると称しているが、そのようなコネクションは存在しないのである。そのため、リモートホストは常にRSTパケットで応答しなければならなくなり、この過程で自らの存在を明らかにすることになる。</para> + + <para><option>-PA</option>オプションは、SYNプローブと同じデフォルトポート(80)を使用し、同じ形式の目的ポートリストを得ることができる。権限のないユーザがこれを試みる場合や、IPv6ターゲットが指定された場合は、上で述べたconnect()の次善策が用いられる。ただし実際には、connect()はACKではなくてSYNパケットを送るので、この次善策は完全とは言えない。</para> + + <para>SYNおよびACKの両方の pingが使えるようになっている理由は、ファイアウォールをすり抜ける可能性を最大限高くするためである。多くの管理者は、内向きのSYNパケットに関しては、企業のWebサイトやメールサーバなどの共用サービス宛てのもの以外はすべてブロックするように、ルータや簡易ファイアウォールを設定している。これにより、組織へのその他の内向きコネクションは阻止されるものの、ユーザが利用するインターネットへの外向きコネクションは、何にも妨げられずに許可されている。このようなステートフル(処理状態を把握して動的に対処する)でないアプローチは、ファイアウォール/ルータ上でリソースをほとんど消費せず、ハードウェアおよびソフトウェアフィルタで広くサポートされている。Linux用ファイアウォールソフトウェア「Netfilter/iptables」には、こうしたステートレスなアプローチを実装するための「--syn」という便利なオプションが用意されている。このようなステートレスなファイアウォールルールが設定されている場合、SYN pingプローブ(<option>-PS</option>)を閉じたターゲットポートに送ってもブロックされる可能性が高い。そうした場合は、ACKプローブが効力を発揮し、このルールを突破する。</para> + + <para>またよく使われるファイアウォールで、別の種類のものには、想定外のパケットは破棄するというステートフルルールが採用されている。当初こうした機能はハイエンドのファイアウォールでしか見られなかったが、ここ数年の間に一般に広く普及してきている。LinuxのNetfilter/iptablesシステムは、<option>--state</option>オプションでこの機能をサポートしており、コネクションの状態に応じてパケットを分類する。このようなシステムでは、想定外のACKパケットは通常、偽物と認識されて破棄されるので、SYNプローブのほうが有効である可能性が高い。この難題に対する解決策の1つは、<option>-PS</option> および <option>-PA</option>を指定して、SYN および ACKの両方のプローブを送ることである。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PU <replaceable>portlist</replaceable></option> (UDP Ping)</term> + <listitem> + + <para>これもホスト発見用オプションで、空の(<option>--data-length</option>が指定されている場合を除き)UDPパケットを特定のポートに送信する。ポートリストは、上で述べた<option>-PS</option> や <option>-PA</option>のオプションの場合と同じ形式にする。特にポートが指定されていない場合、デフォルトでは31338番になる。このデフォルト値を設定するには、<filename moreinfo="none">nmap.h</filename>のDEFAULT_UDP_PROBE_PORTを書き換えてコンパイルする。ほとんど使われることがないポートがデフォルトで使用されている理由は、開放ポートへの送信が、このスキャンタイプでは特に望ましくない場合が多いからである。</para> + + <para>UDPプローブがターゲットマシンで閉じたポートに行き着いた場合は、ICMPポート到達不能パケットが返送されるはずである。Nmapはこれにより、ターゲットマシンが稼動中でアクセス可能であることを知ることになる。ICMPにはこの他にも、ホスト/ネットワーク到達不能やTTL超過などの、ホストがダウンしているか到達不能であることを示す多様なエラーメッセージがある。応答がないのも、これと同様に解釈される。空のパケットが開放ポートに到達した場合、ほとんどのサービスはこれを無視して、何の応答も返さない。デフォルトのプローブポートが、ほぼ使用中ではない31338番になっているのは、このためである。「chargen」などのサービスには、空のUDPパケットに応答するものがいくつかあり、マシンが利用可能であることをNmapに知らせることになる。</para> + + <para>この種類のスキャンの主なメリットは、TCPしかふるいに掛けないファイアウォールやフィルタをすり抜けることである。例えば、筆者が以前持っていたLinksys社の無線ブロードバンドルータ、BEFW11S4の外部インターフェースは、デフォルトですべてのTCPポートにフィルタ処理するようになっていたが、UDPプローブを使うと、ポート到達不能メッセージを引き出し、デバイスの正体を明らかにすることができた。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PE</option>; + <option>-PP</option>; + <option>-PM</option> (ICMP Ping タイプ)</term> + <listitem> + + <para>Nmapは、上で述べたようなTCP や UDPによるホスト発見の特異なタイプに加えて、どこにでもある<application moreinfo="none">ping</application>プログラムによって送信される標準的なパケットを送ることもできる。Nmapは、ICMPタイプ8(エコー要求)パケットをターゲットのIPアドレスに送信し、利用可能なホストからタイプ0(エコー応答)が返されるのを待ち受ける。ネットワーク調査を行う者にとっては残念なことに、最近のホストやファイアウォールは、<ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC1122</ulink>の要件通り応答を返すよりは、これらのパケットをブロックするものが多い。そのため、インターネット上の未知のターゲットに対しては、ICMPスキャンだけでは十分な信頼性が得られない。だが、内部ネットワークを監視しているシステム管理者にとっては、実用的で効率的なアプローチになる場合もある。このエコー要求動作を有効にするには、<option>-PE</option>オプションを使用すること。</para> + + <para>エコー要求は標準的なICMP pingクエリであるが、Nmapはそれだけにとどまらない。ICMP規格(<ulink url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC792</ulink>)には、タイムスタンプ要求、情報要求、アドレスマスク要求などのパケットが、それぞれコード13、15、17として指定されている。これらのクエリの表向きの目的は、アドレスマスクや現在の時刻などの情報を知ることだが、ホスト発見にも容易に利用できる。応答を返すシステムはすなわち、稼動中で利用可能なのである。情報要求パケットは、それほど広くサポートされているわけではないので、今のところNmapには実装されていない。RFC 1122では<quote>ホストにはこの種のメッセージを実装するべきではありません</quote>と提唱されている。タイムスタンプとアドレスマスクに関するクエリは、それぞれ<option>-PP</option>と<option>-PM</option>のオプションを付けることで送信できる。タイムスタンプ応答(ICMP コード14)やアドレスマスク応答(コード18)によって、ホストが利用可能であることが明らかになる。これら2つのクエリは、管理者がエコー要求パケットを限定してブロックしているが、他のICMPクエリが同じ目的で用いられる可能性があることを見落としている場合に有効である。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PR</option> (ARP Ping)</term> + <listitem> + + <para>Nmapの最も一般的な使用法の1つは、イーサネットLANのスキャンである。たいていのLAN、特にRFC1918提唱のプライベートアドレス範囲が用いられているLANでは、IPアドレスの大部分は常に未使用のままになっている。NmapがICMPエコー要求のような生のIPパケットを送信する場合、OSはイーサネットフレームのアドレスを正しく指定できるように、ターゲットIPに対応する送信先ハードウェア(ARP)のアドレスを決める必要がある。だがこの処理は遅く、不確実である場合が多い。なぜなら、OSは、利用できないホストに対して何百万という数のARP要求を短時間で行わなければならないことを想定して作られているわけではないからである。</para> + + <para>NmapのARPスキャンでは、ARP要求の処理を行うのに、そのために最適化したアルゴリズムを用いている。応答が返された場合、Nmapはすでにそのホストが稼動中であることがわかるので、IPベースのpingパケット処理の心配はしなくてよくなる。これにより、ARPスキャンはIPベースのスキャンよりもずっと高速で信頼性の高い処理を行うことができる。そのため、Nmapがローカル イーサネット ネットワーク上で検出したイーサネット ホストをスキャンする場合は、デフォルトでARPスキャンが行われるようになっている。別のpingタイプ(<option>-PE</option>や<option>-PS</option>など)が指定されている場合でも、同一のLAN上にあるターゲットに対しては、Nmapはそれらの代わりにARPを用いる。あくまでもARPスキャンを行いたくない場合は、<option>--send-ip</option>を指定すること。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-n</option> (DNS解決を行わない) + </term> + <listitem> + <para>Nmapが発見したアクティブなIPアドレスに対して逆引きのDNS解決を<emphasis>行わない</emphasis>ように指定する。DNSは処理が遅いことが多いので、これによって進行を速めることができる。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-R</option> (全ターゲットにDNS解決を行う) + </term> + <listitem> + <para>ターゲットのIPアドレスに対して常に逆引きDNS解決を<emphasis>常に行う</emphasis>ように指定する。この指定は通常、対象のマシンが稼動していることが判明している場合にのみ行われる。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--system-dns</option> (システムのDNSリゾルバを使う) + </term> + <listitem> + <para>Nmapはデフォルトでは、ホスト上に構成されたネームサーバに直接クエリを送り、応答を待ち受けることで、IPアドレスを解決する。パフォーマンスを上げるために、数多くの要求(数十件に及ぶことも多い)が並行処理される。代わりに自分のシステムのリゾルバを使いたい(getnameinfo()コールを介して1回に1個のIPを処理する)場合は、このオプションを指定すること。だがこれは低速でほとんど使い物にならない。ただし、NmapのDNSコードにバグがある場合はこの限りではない--その場合は連絡していただきたい。IPv6スキャンでは常に、システムのリゾルバが使われる。</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-basics"> + <title>ポートスキャンの基本</title> + + <para>Nmapはここ数年で、機能面でいろいろと拡充されてきたが、もとは効率的なポートスキャナとして開発されたものであり、ポートスキャンは今でもNmapの中核を成す機能である。<command moreinfo="none">nmap + <replaceable>target</replaceable></command>というシンプルなコマンドで、<replaceable>ターゲット</replaceable>ホスト上の1660個あまりのTCPポートをスキャンできる。多くのポートスキャナでは従来、すべてのポートは一括してopen」(開いている)かclosed(閉じている)のどちらかの状態にあるものとして扱われてきたが、Nmapではさらにきめ細かく取り扱われる。すなわち、ポートは以下の6つの状態に分類される: <literal moreinfo="none">open</literal>、<literal moreinfo="none">closed</literal>、<literal moreinfo="none">filtered</literal>、<literal moreinfo="none">unfiltered</literal>、<literal moreinfo="none">open|filtered</literal>、または<literal moreinfo="none">closed|filtered</literal>。</para> + +<para>これらの状態は、ポート自体に固有の特性ではなくて、Nmapがポートをどのように認識しているかを表している。例えば、Nmapがターゲットと同じネットワークからスキャンを行うと、135番/tcpポートはopen状態にあるように見えるが、同時刻に同じオプションでこのスキャンをインターネット上から行った場合、同ポートは<literal moreinfo="none">filtered</literal>と見えるだろう。</para> + +<variablelist><title>Nmapに認識されるポートの6つの状態</title> + + <varlistentry><term>open</term> + <listitem><para>このポートでは、アプリケーションがTCPコネクションやUDPパケットをアクティブに受け入れている。多くの場合、ポートスキャンの第一の目的は、この種のポートを見つけることである。セキュリティを重視する人なら、openポートが攻撃者の通り道になることをご存知だろう。攻撃者やペンテスト実施者は、このopenポートの弱点を突こうとする一方で、管理者は正規ユーザの利用を妨げることなく、これらのポートをファイアウォールで閉じたり防御したりしようとする。また、Openポートを見ると、ネットワーク上で利用可能なサービスが何かわかるので、セキュリティスキャン以外でも興味を引かれるポートである。 + </para></listitem></varlistentry> + + <varlistentry><term>closed</term> + + <listitem><para>closed(閉じた)ポートは、アクセス可能(Nmapのプローブパケットを受信したり応答したりする)だが、そこで受信待機しているアプリケーションはない。この種のポートは、あるIPアドレスでホストが稼動中であることを確認する場合(ホスト発見やpingスキャン)や、OS検出の一環として役に立つ場合もある。closedポートは到達可能なので、後にその一部が開放された場合は、スキャンの対象になる可能性がある。管理者がこの種のポートもファイアウォールでブロックすることを検討する場合もあるだろう。そうなると、これらは次で述べるfiltered(フィルタあり)状態として見えるようになる。 + </para></listitem></varlistentry> + + <varlistentry><term>filtered</term> + + <listitem><para>Nmapは、このポートが開いているかどうかを判別できない。なぜなら、パケットフィルタのせいで、プローブがポートまで到達できないからである。このフィルタ処理は、ファイアウォール専用機器、ルータのルール、ホストベースのファイアウォールソフトなどで実行できる。これらのポートからは情報がほとんど得られないので、攻撃者の企てを阻むことになる。場合によっては、タイプ3コード13(destination unreachable(宛先到達不能):通信が管理上の理由で禁止されている)などのICMPエラーメッセージを返すこともあるが、応答しないでプローブを破棄するだけのフィルタのほうがはるかに多く使われるようになっている。この場合、Nmapは、プローブが破棄されたのはフィルタリングではなくてネットワークの混雑のせいと見なして、再試行を数回行わざるを得なくなるので、スキャンの進行速度が格段に落ちる。</para></listitem></varlistentry> + + <varlistentry><term>unfiltered</term> + <listitem><para>unfiltered状態とは、ポートにはアクセス可能だが、そのポートが開いているか閉じているかをNmapでは判別できないことを意味する。ポートをこの状態に分類できるのは、ファイアウォールルールを解読するのに使われるACKスキャンだけである。unfilteredポートのスキャンをその他のスキャンタイプ、例えばWindowスキャン、SYNスキャン、FINスキャンなどで行うと、ポートが開いているかどうかを決めるのに役立つ場合もある。 + </para></listitem></varlistentry> + + <varlistentry><term>open|filtered</term> + <listitem><para>Nmapがポートをこの状態に分類するのは、対象のポートが開いているかフィルタ処理されているかを判別できない場合である。openポートからの応答がないタイプのスキャンには、こうしたケースが発生する。また、応答がないことは、プローブやそれが引き出した応答をパケットフィルタが破棄したことを意味する場合もある。そのためNmapは、対象のポートがopenなのかfilteredなのかを確実に見分けることができない。UDP、IP プロトコル、FIN、Null、Xmasなどのスキャンは、ポートをこの状態に分類する。</para></listitem></varlistentry> + + <varlistentry><term>closed|filtered</term> + <listitem><para>この状態は、ポートが閉じているかフィルタ処理されているかを、Nmapが判断できない場合に用いられる。IPID Idleスキャンにのみ使用される。</para></listitem></varlistentry> + </variablelist> +</refsect1> + +<refsect1 id="man-port-scanning-techniques"> + <title>ポートスキャンのテクニック</title> + +<para>自動車修理に関して全くの初心者である筆者が修理を行う場合、原始的な工具(ハンマー、ダクトテープ、レンチなど)を次々と取り出し、目の前の作業を行うのに適した工具を探してあれでもないこれでもないと何時間も悪戦苦闘する様が想像できる。結局うまく行かず、ポンコツ車を本物の修理工のところまで引っ張っていくと、彼はいつも巨大な工具箱をごそごそ漁って、最適な小道具を引っ張り出し、いとも簡単に作業を終わらせてしまう。ポートスキャンの技術も、これに似ている。専門家は数多くのスキャンテクニックを熟知しており、与えられた作業を行うのに最適のテクニック(あるいは組み合わせ)を選択する。一方、経験の乏しいユーザやスクリプトキディたちは、あらゆる問題をデフォルトのSYNスキャンだけで解決しようとする。Nmapは無料なので、ポートスキャン技術に精通するか否かの分かれ目は、知識だけなのだ。その点については、自動車業界よりましなのは間違いない。なにしろ自動車業界では、ストラット スプリングコンプレッサーが必要と判断するには卓越したスキルが必要であるばかりか、それを手に入れるために数千ドルを支払わなければならないからだ。</para> + +<para>ほとんどのスキャンタイプを利用できるのは、高い権限を持つユーザに限られる。こうしたスキャンでは生パケットが送受信されるが、これを行うのにUNIXシステムではrootアクセス権が必要だからである。Windowsでは管理者アカウントの使用が推奨されるが、このプラットフォームでは、WinPcapがすでにOSにロードされている場合には、Nmapが高い権限を持たないユーザにも役に立つ場合がある。Nmapがリリースされた1997年当時は、共用のシェルアカウントしか使えないユーザが多かったので、root権限が必要という条件は重大な制約になった。だが今や、世の中は変わった。コンピュータはますます安くなり、常時接続のインターネットアクセスを利用するユーザは激増し、デスクトップのUNIXシステム(Linux や MAC OS Xなど)も広く普及している。WindowsバージョンのNmapも利用可能になり、さらに多くのデスクトップでNmapを実行できるようになっている。これらの理由により、ユーザが制限のある共用シェルアカウントからNmapを実行する必要性が少なくなってきている。これは好都合なことである。高い権限を必要とするオプションを利用できれば、Nmapははるかに大きな効果と柔軟性を発揮するからだ。ほとんどのスキャンタイプを利用できるのは、高い権限を持つユーザに限られる。こうしたスキャンでは生パケットが送受信されるが、これを行うのにUNIXシステムではrootアクセス権が必要だからである。Windowsでは管理者アカウントの使用が推奨されるが、このプラットフォームでは、WinPcapがすでにOSにロードされている場合には、Nmapが高い権限を持たないユーザにも役に立つ場合がある。Nmapがリリースされた1997年当時は、共用のシェルアカウントしか使えないユーザが多かったので、root権限が必要という条件は重大な制約になった。だが今や、世の中は変わった。コンピュータはますます安くなり、常時接続のインターネットアクセスを利用するユーザは激増し、デスクトップのUNIXシステム(Linux や MAC OS Xなど)も広く普及している。WindowsバージョンのNmapも利用可能になり、さらに多くのデスクトップでNmapを実行できるようになっている。これらの理由により、ユーザが制限のある共用シェルアカウントからNmapを実行する必要性が少なくなってきている。これは好都合なことである。高い権限を必要とするオプションを利用できれば、Nmapははるかに大きな効果と柔軟性を発揮するからだ。</para> + +<para>Nmapは正確な結果を出そうと試みるが、その洞察はすべて、ターゲットマシン(もしくは前面のファイアウォール)から送り返されるパケットに基づいて得られたものであるという点に留意する必要がある。RFCに準拠していないホストがますます広く使われるようになっているが、これらのホストからは、Nmapのプローブに対して、当然想定される応答は返ってこない。FIN、Null、Xmasスキャンなどは特に、この問題の影響を受けやすい。これらは特定のスキャンタイプに固有の問題なので、個々のスキャンタイプの項で述べることにする。</para> + +<para>本節では、Nmapがサポートする10個あまりのスキャンテクニックについて述べる。この手法は一度に1つしか使えないが、UDPスキャン(<option>-sU</option>)だけは例外で、TCPスキャンタイプのいずれか1つと組み合わせて用いることができる。ポートスキャンタイプのオプションは、覚えやすいように<option>-s<replaceable>C</replaceable></option>の形式になっている。ここで<replaceable>C</replaceable>は、スキャン名のなかの目立つ文字で、通常は頭文字になる。この規則の例外の1つは、廃止予定のFTPバウンススキャン(<option>-b</option>)である。デフォルトでは、NmapはSYNスキャンを実行するが、ユーザが生パケットを送信するための然るべき権限(UNIX上ではrootアクセス権が必要)を持っていない場合や、IPv6のターゲットが指定された場合は、代わりにConnect()スキャンが用いられる。ここで一覧したスキャンのなかで、高い権限を持たないユーザが実行できるのは、connect()スキャンと ftpバウンススキャンだけである。 </para> + + <variablelist> + <varlistentry> + <term> + <option>-sS</option> (TCP SYN スキャン)</term> + <listitem> + +<para>SYNスキャンはデフォルトであり、正当な理由で最もよく使用されるスキャンオプションである。強制的なファイアウォールによる妨害のない、高速なネットワーク上では、数千ポート毎秒という高速なスキャンを実行できる。SYNスキャンは、TCPコネクションを確立しないため、比較的秘匿性が高い。また、NmapのFin/Null/Xmas、Maimon、Idleスキャンのように特定のプラットフォームの特質に左右されることはなく、規格準拠のTCPスタックなら何に対しても機能する。さらには、<literal moreinfo="none">open</literal>、<literal moreinfo="none">closed</literal>、および<literal moreinfo="none">filtered</literal>というポートの状態を明確かつ確実に区別することができる。 </para> + +<para>この技法は、完全なTCPコネクションを開くわけではないので、 ハーフオープン(half-open)スキャンと呼ばれることも多い。あたかも実際にコネクションを開くつもりがあるかのように、SYNパケットを送信し、応答を待つ。SYN/ACKの応答は、ポートが待ち受け状態(open)であることを示し、またRST(reset)は、待ち受け状態にないことを示している。数回再送信しても何の応答もない場合、ポートはfilteredと見なされる。また、ICMP到達不能エラー(タイプ 3、コード 1、2、3、9、10、13)が送り返された場合も、ポートはfilteredと見なされる。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sT</option> (TCP connect() スキャン)</term> + <listitem> + +<para> TCP Connect()スキャンは、SYNスキャンを選択できない場合のデフォルトのTCPスキャンタイプである。ユーザが生パケットの権限を持たないか、IPv6ネットワークをスキャンする場合がこれにあてはまる。Nmapは、他のほとんどのスキャンタイプのように生パケットに書き込むのではなく、<literal moreinfo="none">connect()</literal>システムコールを発行して、ターゲットのマシンやポートにとのコネクションを確立するよう下位OSに要求する。これは、Webブラウザ、P2Pクライアント、その他ほとんどのネットワーク対応アプリケーションがコネクションを確立するために使用するのと同じ高レベルのシステムコールである。これは、「BerkeleyソケットAPI」というプログラミングインターフェースの一部である。Nmapは、生パケットの応答を回線から読み込むのではなく、このAPIを使って、接続を試みるたびにステータス情報を入手する。</para> + +<para>SYNスキャンが利用できる場合は通常、そちらを使用した方がよい。Nmapは生パケットよりも、高レベルのシステムコールである<literal moreinfo="none">connect()</literal>に対するほうが制御の自由度が低いので、処理効率も悪くなるからだ。connect()システムコールは、SYNスキャンが行うようにハーフオープン接続をリセットするのではなく、ターゲットのopenポートとのコネクションを確立する。この処理は、同じ情報を得るのにさらに多くの時間とパケットを必要とするだけでなく、ターゲットマシンのログに接続が記録される可能性も高くなる。まともなIDSならどちらも検知するはずだが、たいがいのマシンにはそのような警告システムは備わっていない。平均的なUNIXシステムで実行されているサービスの多くは、Nmapが接続を確立し、その後データ送信を行わずに接続を閉じた場合、syslogに簡単な記録や時には不可解なエラーメッセージを追加する。真にお粗末なサービスは、これが起きた場合に停止してしまうが、まずめったにないことだ。管理者は、特定のシステムからの接続試行がかなりの回数にわたってログに記録されているのを発見したら、このconnect()スキャンのターゲットになっていると見なすべきである。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sU</option> (UDP スキャン)</term> + <listitem> + +<para>インターネット上で最も広く利用されているサービスの大部分は、TCPプロトコルで実行されているが、<ulink url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink>サービスも広く導入されている。DNS、SNMP、DHCP(それぞれ登録ポートは 53、161/162、67/68)の3つは、最もよく利用されているUDPサービスである。UDPスキャンは通常、TCPよりも処理に時間がかかり難易度も高いので、セキュリティ監査人のなかにはこれらのポートを無視する人もいる。だがこれは誤りである。悪用可能なUDPサービスは極めてよくあるものであり、攻撃者がこうしたプロトコルを見過ごすわけはないからだ。好都合なことに、NmapはUDPポートの一覧表を作成するのに役立てることができる。</para> + +<para>UDPスキャンを作動させるには、<option>-sU</option>オプションを指定する。SYN スキャン(<option>-sS</option>)などのTCPスキャンタイプと組み合わせて用いて、同じ実行時間中に両方のプロトコルをチェックできる。</para> + +<para>UDPスキャンは、空の(データなし)UDPヘッダを各ターゲットポートに送ることで機能する。ICMPポート到達不能エラー(タイプ3、コード 1、2、9、10、13)が返された場合、ポートは<literal moreinfo="none">closed</literal>(閉じている)状態にある。その他のICMPポート到達不能エラー(タイプ3、コード3)が返された場合、ポートは<literal moreinfo="none">filtered</literal>(フィルタあり)と見なされる。まれにサービスがUDPパケットで応答することがあるが、その場合はポートが<literal moreinfo="none">open</literal>であることがわかる。数回の再試行の後も応答がない場合、ポートは<literal moreinfo="none">open|filtered</literal>に分類される。これは、ポートが開いているか、もしくはパケットフィルタが通信を阻んでいることを意味する。バージョンスキャン(<option>-sV</option>)を用いて、実際に開いているポートとフィルタ処理されたポートを識別することもできる。</para> + +<para>UDPスキャンに関する大きな課題は、処理の高速化である。Openポートやfilteredポートから応答が送り返されることはほとんどないため、Nmapはそのままタイムアウトし、プローブや応答が行方不明になった場合に備えて再試行を行うことになる。閉じたポートは、さらに大きな問題になる場合が多い。閉じたポートからは通常、ICMPポート到達不能エラーが返されるが、閉じたTCPポートがSYNやConnectスキャンに応答してRSTパケットを送る場合とは異なり、多くのホストでは、ICMPポート到達不能メッセージがデフォルトでレート制限されている。Linux や Solarisは、この点に関して特に厳しい。例えば、Linux 2.4.20カーネルは、宛先到達不能メッセージを毎秒1個(<filename moreinfo="none">net/ipv4/icmp.c</filename>で指定)に制限している。</para> + +<para>Nmapはレート制限を検出し、それに応じて処理速度を下げて、ターゲットマシンで落とされるような無用なパケットでネットワークを溢れさせないようにする。残念ながら、Linux方式で毎秒1パケットに制限されると、65,536個のポートをスキャンするのに18時間あまりかかる。UDPスキャンの速度を上げるためのアイデアには、次のようなものがある。同時並行でスキャンするホストの数を増やす、よく使われるポートだけを先に重点的にスキャンする、ファイアウォールの背後からスキャンする、<option>--host-timeout</option>オプションを使って低速なホストをスキップする。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (TCP Null、FIN、およびXmasスキャン)</term> + <listitem> + +<para>これら3つのスキャンタイプ(次の節で述べる<option>--scanflags</option>オプションを併用するとさらにいろいろなことができる)は、<ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP RFC</ulink>の巧妙な抜け穴を突いて、<literal moreinfo="none">open</literal>ポートと<literal moreinfo="none">closed</literal>ポートを識別するためのものである。TCP RFCの65ページには、<quote>宛先ポートの状態が CLOSEDならば... RSTを含まない入力セグメントは、その応答としてRSTを送信する</quote>とある。次のページでは、SYN、RST、ACKなどのビットセットを含まない、<literal moreinfo="none">open</literal>ポート宛てパケットについて述べてあり、<quote>ここに至ることはなさそうであるが、もし至ったらセグメントを破棄してリターンする</quote>とある。</para> + +<para>このRFC文書に準拠しているシステムをスキャンすると、SYN、RST、ACKなどのフラグビットを含まないパケットに対しては、ポートが閉じている場合はRSTが返され、ポートが開いている場合は何の応答も返されないことになる。これら3つのフラグビットが含まれない限り、他の3つ(FIN、PSH、URG)をどのように組み合わせてもよい。Nmapは以下の3つのスキャンタイプでこの弱点を突く。</para> + +<variablelist> + <varlistentry><term>Null スキャン (<option>-sN</option>)</term> + <listitem><para>何のビットも設定しない(tcpヘッダのフラグは0)</para></listitem></varlistentry> + + <varlistentry><term>FIN スキャン (<option>-sF</option>)</term> + <listitem><para>TCP FINビットだけを設定する</para></listitem></varlistentry> + + <varlistentry><term>Xmas スキャン (<option>-sX</option>)</term> + <listitem><para>FIN、PSH、URGのフラグをすべて設定し、クリスマスツリーのようにパケットをライトアップする</para></listitem></varlistentry> +</variablelist> + +<para>これら3つのスキャンタイプは、プローブパケットに設定されるTCPフラグの違いを除けば、まったく同じ動作を示す。RSTが返された場合、ターゲットポートは<literal moreinfo="none">closed</literal>と見なされ、何の応答もない場合は<literal moreinfo="none">open|filtered</literal>になる。ポートが<literal moreinfo="none">filtered</literal>に分類されるのは、ICMP到達不能エラー(タイプ 3、コード 1、2、3、9、10、13)が返された場合である。</para> + +<para>これらのスキャンの最大の利点は、特定のステートレスなファイアウォールやパケットフィルタリング・ルータをすり抜けることができる点である。さらには、SYNスキャンよりもやや秘匿性が高いことも利点として挙げられる。しかし、あまり当てにしないように。最近のIDS製品はほとんど、これらを検知するように設定できるからだ。不利な点は、すべてのシステムがRFC 793に忠実に準拠しているわけではないことだ。ポートが開いているか否かに関係なく、プローブに対してRST応答を送信するシステムは数多くある。これにより、すべてのポートは<literal moreinfo="none">closed</literal>に分類されることになる。メジャーなOSでこれを行うのは、マイクロソフトWindows、多くのシスコ製デバイス、BSDI、IBM OS/400などが挙げられる。それでもこのスキャンは、ほとんどのUNIXベースのシステムに対しては有効である。またもう1つ不利な点は、<literal moreinfo="none">open</literal>ポートと特定の<literal moreinfo="none">filtered</literal>ポートを区別できないので、応答が<literal moreinfo="none">open|filtered</literal>に分類されることである。 </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sA</option> (TCP ACK スキャン)</term> + <listitem> + +<para>このACKスキャンは、<literal moreinfo="none">open</literal>ポート(<literal moreinfo="none">open|filtered</literal>も)を判別しないという点で、これまで述べてきたスキャンとは異なっている。ファイアウォールのルールセットを明らかにするために用いられ、ファイアウォールがステートフルか否か、どのポートがフィルタされているかなどを決定する。</para> + +<para>ACKスキャンのプローブパケットは、ACKフラグだけが設定されている(<option>--scanflags</option>を用いている場合を除く)。フィルタなしのシステムをスキャンする場合は、<literal moreinfo="none">open</literal>ポートと<literal moreinfo="none">closed</literal>ポートの両方からRSTパケットが返される。Nmapはこれらを<literal moreinfo="none">unfiltered</literal>として分類する。すなわち、ポートはACKパケットで到達可能だが、<literal moreinfo="none">open</literal>か<literal moreinfo="none">closed</literal>かは判別できないことを意味する。応答を返さないポートや、特定のICMPエラーメッセージ(タイプ 3、コード 1、2、3、9、10、13)を返すポートは<literal moreinfo="none">filtered</literal>に分類される。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sW</option> (TCP ウィンドウスキャン)</term> + <listitem> + +<para>ウィンドウスキャンは、以下の点を除いては、ACKスキャンとまったく同じものである。すなわち、RSTが返されたら常に<literal moreinfo="none">unfiltered</literal>と分類するのではなく、特定のシステムの実装に関する情報を用いて、<literal moreinfo="none">open</literal>ポートと<literal moreinfo="none">closed</literal>ポートを識別する点である。これは、返されるRSTパケットのTCPウィンドウのフィールドを調査して判断する。一部のシステムでは、<literal moreinfo="none">open</literal>ポートで正の値のウィンドウサイズ(RSTパケットに対しても)が使われ、<literal moreinfo="none">closed</literal>ポートではゼロになる。これにより、ウィンドウスキャンは、RSTが返された場合は常にポートを<literal moreinfo="none">unfiltered</literal>に分類するのではなく、RSTパケット内のTCPウィンドウサイズの値が正であるかゼロであるかによって、それぞれ<literal moreinfo="none">open</literal>ポートか<literal moreinfo="none">closed</literal>ポートかに分類する。</para> + +<para>このスキャンは、インターネット上では少数派のシステムの実装に関する情報に基づいているので、必ずしも信用できるとは限らない。通常、この実装をサポートしていないシステムは、すべてのポートが<literal moreinfo="none">closed</literal>という応答を返す。もちろん、対象マシンに開ポートが本当に1つもない場合もあり得る。スキャンしたポートのほとんどが<literal moreinfo="none">closed</literal>でも、よく使われるポート番号(22、25、53など)がいくつか<literal moreinfo="none">filtered</literal>である場合、このシステムは影響を受ける可能性が最も高い。またまれに、システムがまさに正反対の挙動を示す場合もある。スキャンの結果、開ポートが1000個で、closed や filteredが3個あることがわかった場合、この3個のポートこそが、本当はopenポートである可能性はかなり高い。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sM</option> (TCP Maimon スキャン)</term> + <listitem> + +<para>Maimonスキャンは、発見者であるUriel Maimon氏の名前にちなんで名付けられた。この技法に関する同氏の論文は、「Phrack」誌の第49号(1996年11月発行)に掲載された。この技法を搭載したNmapは、これの2号後の第51号で公開された。Maimonスキャンは、プローブがFIN/ACKであるという点以外は、Null、FIN、Xmasスキャンとまったく同じものである。RFC 793 (TCP)によると、この種のプローブの応答としては、ポートがopenか closedかに関係なく、RSTパケットが生成されることになっている。だがMaimon氏は、BSD由来のシステムの多くで、ポートが開いている場合には、単にパケットが破棄されるだけになるという現象を見出した。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scanflags</option> (カスタム TCP スキャン)</term> + <listitem> + +<para>本物のNmap上級ユーザなら、あらかじめ用意されたスキャンタイプを使うだけで満足している必要はない。この<option>--scanflags</option>オプションを使うと、任意のTCPフラグを指定することで、ユーザ独自のスキャンを設計することができる。さあ、創造力を全開にして、Nmapのmanページをただ流し読みして具体的なルールを追加しているようなメーカーのIDSの裏をかいてやろう。</para> + +<para><option>--scanflags</option>の引数は、例えば9(PSH と FIN)などの数字のフラグ値で指定することもできるが、記号名を使った方が簡単である。<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>、<literal moreinfo="none">FIN</literal>をごちゃまぜに組み合わせればよいだけだ。例えば<option>--scanflags +URGACKPSHRSTSYNFIN</option>で全部指定できるわけだが、もっともこれは、実際のスキャンには使えない。引数を指定する順序は不同である。</para> + +<para>またここでは、使いたいフラグだけでなく、TCPスキャンタイプ(<option>-sA</option> や <option>-sF</option>など)も指定できる。この基本タイプによって、応答を解釈する方法をNmapに伝える。例えば、SYNスキャンであれば、応答なしは<literal moreinfo="none">filtered</literal>ポートであることと見なし、FINスキャンであれば、同じ応答なしを<literal moreinfo="none">open|filtered</literal>と解釈するわけだ。Nmapは、この基本のスキャンタイプと同じ動作をするが、異なる点は、ユーザが指定するTCPフラグを代わりに使うことである。基本のスキャンタイプが指定されない場合は、SYNスキャンが使用される。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sI <replaceable>zombie host</replaceable><optional>:<replaceable>probeport</replaceable></optional></option> + (Idle スキャン)</term> + + <listitem> + + <para>この高度なスキャン手法を使用すると、対象ホストに対して完全に匿名でTCPポートスキャンを実行できる(スキャンする側の実IPアドレスからは、対象ホストにパケットが送信されない)。それだけではなく、ゾンビホスト上で連続的に生成されるIPフラグメントID(識別子)が予測可能であることを巧妙に利用した独自のサイドチャネル攻撃を実行して、対象ホスト上のopenポートに関する情報を収集することもできる。IDSシステムでは、このスキャンはこちらで指定したゾンビマシン(稼動中でかつ特定の条件を満たす必要がある)から行われているものとして表示される。この非常に興味深いスキャンタイプは複雑すぎて本稿ではとても全容を説明しきれないので、完全な詳細を掲載した非公式の論文を以下に投稿しておくことにする:<ulink url="https://nmap.org/book/idlescan.html"/></para> + + <para>このスキャンタイプは、(その匿名性のために)格別に秘匿性が高いことに加え、マシン間のIPベースの信頼関係を明らかにすることができる。ポートリストには、<emphasis>指定したゾンビホストから見た</emphasis><literal moreinfo="none">open</literal>ポートが表示される。よって、(ルータ/パケットフィルタのルールから)信頼関係にあると思われる様々なゾンビマシンを使ってターゲットをスキャンしてみることもできる。</para> + + <para>IPIDの変化について、ゾンビホストの特定のポートを調査したい場合は、コロンの後にポート番号を付けたものをゾンビホストに追加して指定できる(ゾンビホスト:プローブポート)。ここでポートを指定しない場合、NmapはTCP Ping用にデフォルトで使用するポート(80)を用いる。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sO</option> (IP プロトコル スキャン)</term> + <listitem> + +<para>IPプロトコルスキャンを使うと、ターゲットマシン上でどのIPプロトコル(TCP、ICMP、IGMPなど)がサポートされているかを特定できる。繰り返し表示されるのは、TCP や UDPのポート番号ではなくて、IPプロトコル番号なので、厳密にはポートスキャンとは言えない。とはいえ、スキャンするプロトコル番号を選定するのに<option>-p</option>オプションを使い、結果は標準的なポートテーブル形式でレポートし、実際のポートスキャン手法と同じスキャンエンジンを基礎に用いている。そのため、ポートスキャンに十分近いものとして、ここに含めた。</para> + +<para>プロトコルスキャンは機能として有用であるだけでなく、オープンソースソフトウェアとしての強力さを示すものでもある。この機能については、基本となるアイデアは極めて単純だが、筆者自身追加しようと思ったこともなかったし、周りからそうした要望が寄せられることもなかった。そして2000年の夏、Gerhard Rieger氏がアイデアを考案し、素晴らしい実装パッチを作成して、「nmap-hackers」メーリングリストに投稿してくれた。筆者はこのパッチをNmapのツリーに組み込んで、その翌日に新バージョンとして公開した。市販のソフトウェアで、その機能向上のために設計段階から寄与するほど熱心なユーザを持つソフトはほとんどない</para> + +<para>プロトコルスキャンは、UDPスキャンと同様の仕組みで機能する。すなわち、UDPパケットのポート番号フィールドをすべて繰り返し試行する代わりに、IPパケットヘッダを送信して、8bitのIPプロトコル番号フィールドをすべて繰り返し試行する。このヘッダは通常は空で、何のデータも、求められるプロトコルに適したヘッダすら含まれていない。これには例外が3つあり、TCP、UDP、ICMPである。これらのプロトコルについては、適切なプロトコルヘッダが含まれる。そうしないとヘッダを送信しないシステムがあるからで、Nmapはすでにこれらを作成する機能を備えている。プロトコルスキャンは、ICMPポート到達不能メッセージではなくて、ICMP<emphasis>protocol</emphasis>到達不能メッセージが返されるのを待つ。Nmapはターゲットホストから何らかの応答を何らかのプロトコルで受信した場合、そのプロトコルを<literal moreinfo="none">open</literal>として分類する。ICMPプロトコル到達不能エラー(タイプ 3、 コード 2)が返されたら、プロトコルは<literal moreinfo="none">closed</literal>と分類される。その他のICMP到達不能エラー(タイプ 3、 コード 1、3、9、10、13)が返されたら、プロトコルは<literal moreinfo="none">filtered</literal>とマークされる(またこれにより、ICMPが<literal moreinfo="none">open</literal>であることも同時に明らかになる)。数回再送しても何の応答もない場合、プロトコルは<literal moreinfo="none">open|filtered</literal>として分類される。 </para> + + </listitem> + </varlistentry> + + + + <varlistentry> + <term> + <option>-b <replaceable>ftp relay host</replaceable></option> (FTP バウンス スキャン)</term> + <listitem> + +<para>FTPプロトコル(<ulink url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>)の興味深い特徴の1つは、いわゆるプロキシFTP接続に対応していることである。これにより、ユーザは一台のFTPサーバに接続し、そのファイルを第三者サーバに送るように要求できる。これは、様々なレベルの悪用にうってつけの機能なので、たいていのサーバでは、サポートするのを止めている。例えば、この機能を悪用して、FTPサーバに他のホストをポートスキャンさせることも可能である。単に、ターゲットホストの興味あるポートに順にファイルを送信するよう、そのFTPサーバに要求するだけでよい。エラーメッセージには、ポートが開いているか否かが記述される。これは、ファイアウォールをすり抜けるための有効な手段になる。組織のFTPサーバは、どんなインターネットホストよりも、他の内部ホストにアクセスしやすい場所に設置されている場合が多いからだ。Nmapは、<option>-b</option>オプションでftpバウンススキャンを実行できる。引数は<replaceable>username</replaceable>:<replaceable>password</replaceable>@<replaceable>server</replaceable>:<replaceable>port</replaceable>のような形式になる。<replaceable>Server</replaceable>は、この脆弱性の影響を受けるFTPサーバの名前かIPアドレスを指定する。通常のURLの場合と同様に、匿名ログインの認証情報(user: +<literal moreinfo="none">anonymous</literal> password:<literal moreinfo="none">-wwwuser@</literal>)が使われる場合は、<replaceable>username</replaceable>:<replaceable>password</replaceable>の部分は省略できる。<replaceable>server</replaceable>のデフォルトのFTPポート(21)を用いる場合は、ポート番号(と前のコロン)も省略可能である。 </para> + +<para>この脆弱性は、Nmapがリリースされた1997年に大きく広まったが、今ではほとんど修正されている。それでも、脆弱なサーバは、いまだにあちらこちらにあるので、その他の方法がすべて失敗した場合は、試してみるだけの価値はある。ファイアウォールの回避が目的なら、ターゲットネットワークをスキャンして開いている21番ポート(もしくはバージョン検出ですべてのポートをスキャンする場合はftpサービスなら何でもよい)を探し出し、それぞれのポートを用いてバウンススキャンを試してみることだ。Nmapを使うと、対象のホストが脆弱か否かを見分けることができる。単に自分の行動の形跡を隠そうとしているだけであれば、ターゲットネットワーク上のホストだけに対象を限定する必要はない(し、むしろそうするべきではない)。脆弱なFTPサーバを求めてインターネットアドレスを無作為にスキャンする場合は、始める前に、システム管理者はこのような方法で自分のサーバを不正に使用されることを迷惑がる場合もあることを頭に入れておく必要がある。</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-specification"> + <title>ポートの指定とスキャンの順序</title> + + <para>Nmapには、これまでに述べたすべてのスキャン手法に加えて、どのポートをスキャンするかや、スキャンの順序をランダムにするか順序通りにするかなどを指定するためのオプションが用意されている。デフォルトでは、Nmapは、1024番(を含む)までの全ポートと、1025番以降のポートはスキャン対象のプロトコルに応じて<filename moreinfo="none">nmap-services</filename>ファイルに記載されたポートをスキャンする。 </para> + + <variablelist> + <varlistentry> + <term> + <option>-p <replaceable>port ranges</replaceable></option> (指定されたポートのみスキャン) + </term> + <listitem> + + <para>このオプションで、スキャンしたいポートを指定できる。この指定は、デフォルトより優先される。ポート番号は個別に指定しても、ハイフン区切りの範囲(例:1-1023)で指定してもよい。範囲の先頭や終端の値は省略できる場合があり、この場合は範囲の先頭に1、終端に65535がそれぞれ使われる。したがって、<option>-p-</option>と指定すると、1番から65535番までのポートをスキャンできる。ゼロ番ポートのスキャンは、明示的に指定することで実行できる。IPプロトコルスキャン(<option>-sO</option>)を行うには、このオプションでスキャンしたいプロトコル番号を指定する(0-255)。</para> + + <para>TCPポートとUDPポート両方のスキャンを実行する場合は、ポート番号の前に<literal moreinfo="none">T:</literal>や<literal moreinfo="none">U:</literal>という限定子を付けることで、特定のプロトコルを指定できる。この限定子は、次に別の限定子が指定されるまで有効になる。例えば、<option>-p U:53,111,137,T:21-25,80,139,8080</option> という引数を指定すると、UDPポートの53番、111番、137番と、列挙したTCPポートのスキャンが実行される。UDPとTCPポート両方のスキャンを実行するためには、<option>-sU</option>および最低1つのTCPスキャンタイプ(<option>-sS</option>、<option>-sF</option>、<option>-sT</option>など)を指定する必要があるので注意すること。プロトコル限定子が特に指定されていない場合、指定したこれらのポート番号はすべてのプロトコルリストに追加される。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-F</option> (高速 (限定したポートだけ) スキャン) + </term> + <listitem> + + <para>Nmapに同梱されている<filename moreinfo="none">nmap-services</filename>ファイル(<option>-sO</option>では「protocols」ファイル)に列挙されているポートだけをスキャンするように指定する。こうすることで、ホスト上の全65535ポートをスキャンするよりもはるかに高速になる。このリストには非常に多く(1200以上)のTCPポートが含まれているので、デフォルトのTCPスキャン(約1650ポート)との速度差はそれほど大きくはない。<option>--datadir</option>オプションを使って、自分で独自に作成した小さな<filename moreinfo="none">nmap-services</filename>ファイルを指定すると、この速度差をかなり大きくすることができる。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-r</option> (ポートの順番を無作為にしない) + </term> + <listitem> + <para>デフォルトでは、Nmapはスキャンするポートの順番を無作為に選ぶようになっている(効率化のために特定のよく使われるポートを最初のほうに移動した場合を除く)。このような無作為化は通常であれば望ましいが、代わりに番号順にポートスキャンを行いたい場合はこの<option>-r</option>オプションを指定する。</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-version-detection"> + <title>サービスとバージョンの検出</title> + + <para>リモートマシンをターゲットにしてNmapを実行した結果、25/tcp、80/tcp、53/udpの各ポートが開いていることが判明したとしよう。Nmapは、約2200個のよく知られたサービスから成る<filename moreinfo="none">nmap-services</filename>のデータベースを用いて、これらのポートがそれぞれメールサーバ(SMTP)、Webサーバ(HTTP)、ネームサーバ(DNS)に相当するとレポートする。通常、この検索結果は正確である。すなわち、TCPポート25番で待ち受けするデーモンの大部分は、実際にメールサーバである。だが、これをすべて鵜呑みにしてはいけない。通常とは異なるポートでサービスが実行されるケースも実際にあり得る。</para> + + <para>たとえNmapが正しくて、上で仮定したサーバがそれぞれSMTP、HTTP、DNSサーバを実行している場合でも、これは多くの情報にはならない。自社やクライアントの脆弱性調査(簡単なインベントリ調査の場合でも)を実施する際には、どのメールサーバやDNSサーバが動作中であるかを知りたいはずである。正確なバージョン番号を入手することは、サーバがどのような攻撃に対して脆弱であるかを判断するのに大いに役に立つ。バージョン検出はこうした情報を入手するのに役立つ手法である。</para> + + <para>別のスキャン手法を用いてTCPポートや UDPポートを発見したら、そこで何が実行されているかについての詳細を明らかにするために、これらのポートをバージョン検出によってさらに綿密に調査する。<filename moreinfo="none">nmap-service-probes</filename>データベースには、様々なサービスの問い合わせを行うためのプローブや、応答を識別して解析するための照合表現が含まれている。Nmapは以下の情報の特定を試みる:サービスプロトコル(例:ftp、ssh、telnet、http)、アプリケーション名(例:ISC Bind、Apache httpd、Solaris telnetd)、バージョン番号、ホスト名、デバイスタイプ(例:プリンタ、ルータ)、OSファミリ(例:Windows、 Linux) さらには、Xサーバが接続に対してopen状態にあるかどうかや、SSHプロトコルのバージョン、KaZaAのユーザ名などのその他様々な詳細情報の特定が試みられる場合もある。もちろんたいていのサービスは、これらの情報をすべて提供できるわけではない。NmapにOpenSSLのサポート機能が組み困れている場合は、SSLサーバに接続して、この暗号化層の背後で待ち受けしているサービスを推定する。RPC(Remote Procedure Call)サービスが発見された場合は、RPCプログラムとバージョン番号を特定するためにNmapのRPCグラインダー(<option>-sR</option>)が自動的に使用される。UDPポートスキャンを実行しても、「open」か「filtered」かを判定できなかった一部のポートは、<literal moreinfo="none">open|filtered</literal>状態として保留される。バージョン検出は、これらのポートから応答を導き出して、可能な場合はその状態を「open」に変更しようと試みる。<literal moreinfo="none">open|filtered</literal>のTCPポートも同様に取り扱われる。ここで注目すべき点は、バージョン検出がNmapの<option>-A</option>オプションで有効になる機能の1つに含まれることである。バージョン検出のメカニズム、使用法、カスタマイズ方法に関する論文は、以下で入手できる:<ulink url="https://nmap.org/vscan/"/></para> + + <para>Nmapがサービスからの応答を受信しても、データベースに一致するものが見つからなかった場合は、特別なフィンガープリントとURLが出力される。このURLは、ポートで何が動作しているかが確実に分かっている場合に、フィンガープリントを投稿していただくためのものだ。あなたの発見がいろいろな人のためになるよう、2、3分もかからないのでぜひ投稿していただきたい。こうした投稿のおかげで、Nmapは、smtp, ftp, httpなどの350以上のプロトコルに対する約3000件のパターン照合例を備えるまでになっている。</para> + + <para>バージョン検出は、以下のオプションで実行および制御が可能である:</para> + + + <variablelist> + + <varlistentry> + <term> + <option>-sV</option> (バージョン検出)</term> + <listitem> + + <para>上で述べたようなバージョン検出を実行する。またもう1つの方法として、<option>-A</option>オプションを使うと、OS検出とバージョン検出の両方を実行できる。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--allports</option> (バージョン検出の対象からすべてのポートを除外しない) + </term> + <listitem> + <para>デフォルトでは、Nmapのバージョン検出は、TCPポート9100番をスキップするようになっている。一部のプリンタはこのポートに送られたものは何でも出力するので、HTTP GETリクエストやバイナリ形式のSSLセッションリクエストなどのページが何十枚も印刷されることになるからだ。この動作を変更するには、<filename moreinfo="none">nmap-service-probes</filename>の当該の「除外」(<literal moreinfo="none">Exclude</literal>)ディレクティブを変更あるいは削除するか、もしくは<option>--allports</option>を指定すると、<literal moreinfo="none">Exclude</literal>ディレクティブに関係なくすべてのポートがスキャンされるようにできる。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-intensity <replaceable>intensity</replaceable></option> (バージョンスキャンの強度を設定) + </term> + <listitem> + + <para>Nmapは、バージョンスキャン(<option>-sV</option>)を実行する際に、1から9までの「希少」(rarity)値が割り振られた一連のプローブを送信する。この希少値が小さいプローブほど、よく用いられる各種サービスに対して有効であり、この希少値が大きいプローブほど、用途が限られることになる。強度レベルは、どのプローブを適用するべきかを指定するオプションである。この数字が大きいほど、サービスが正しく特定される確率は高くなる。だが、強度が高いスキャンは、それだけ時間がかかる。強度は0から9の間で指定する必要があり、デフォルトは7である。<filename moreinfo="none">nmap-service-probes</filename>の<literal moreinfo="none">ports</literal>ディレクティブによって、ターゲットポートにプローブを登録すると、このプローブは強度レベルに関係なく試行される。これにより、DNSプローブは常に開ポート53番に対して試行され、SSLプローブはポート443番に対して実行されるようにすることなどができる。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-light</option> (ライトモードを有効にする) + </term> + <listitem> + <para>これは、<option>--version-intensity 2</option>の場合に便利なエイリアスである。このライトモードを使うと、スキャンを通常よりずっと高速に行うことができるが、サービスを特定できる確率はやや低くなる。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-all</option> (プローブを1つずつ試行する) + </term> + <listitem> + <para><option>--version-intensity 9</option>の場合に有用なエイリアスで、各ポートに対してプローブが1つずつ試行されるようにする。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-trace</option> (バージョンスキャンの動作状況を追跡する) + </term> + <listitem> + <para>これにより、Nmapは、どのようなバージョンスキャンが実行されているかに関する広範なデバッグ情報を出力する。この情報は、<option>--packet-trace</option>によって得られるものの一部である。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sR</option> (RPC スキャン)</term> + <listitem> + <para>この手法は、Nmapの他の様々なポートスキャン手法と連携して機能する。「open」状態であることが確認されたすべてのTCP/UDPポートに対して、SunRPCプログラムのNullコマンドを大量に送信し、ポートがRPCポートであるかどうかを判定し、そうである場合は、そこで実行されているプログラム名とバージョン番号の特定を試みる。従って、ターゲットのポートマッパーがファイアウォールの背後にある(あるいはTCPラッパーで保護されている)場合でも、<command moreinfo="none">rpcinfo -p</command>の結果と同じ情報を効率的に取得することができる。現時点では、囮(おとり)は、RPCスキャンとは連携して機能しない。要求があれば、バージョンスキャン(<option>-sV</option>)の一部として自動的に有効になる。すでにバージョン検出に含まれており、そちらのほうがずっと包括的なので、<option>-sR</option>が必要になることはめったにない。</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-os-detection"> + + <title>OS 検出</title> + + <para>Nmapの最も有名な機能の1つは、TCP/IPスタック・フィンガープリンティングを用いた、リモートからのOS検出機能である。Nmapは、一連のTCPやUDPのパケットをリモートホストに送り、その応答をほぼ全面的に調査する。TCP ISN(イニシャルシーケンス番号)サンプリング、TCPオプションのサポートや順序の調査、IPIDサンプリング、TCP初期ウィンドウサイズ調査などの数多くのテストを実施した後、Nmapはこれらの結果を、既知のOSフィンガープリントが1500件以上データベース化された<filename moreinfo="none">nmap-os-fingerprints</filename>と照合し、一致するものがあった場合はそのOSに関する詳細情報を出力する。各フィンガープリントには、フリーテキスト形式のOSの解説、ベンダ名を与える分類(例:Sun)、下位のOS(例:Solaris)、OSの世代(例:10)、デバイスの種類(汎用、ルータ、スイッチ、ゲーム機など)が含まれる。 </para> + + <para>条件(例えば少なくともopenポート1つとclosedポート1つの存在がわかっているなど)は整っているが、NmapがターゲットマシンのOSを推測できない場合は、フィンガープリント投稿用URLがNmapから提供される。対象のマシンで動作しているOSが何か(確実に)わかっている場合は、当該のフィンガープリントをこのURLを使って投稿できる。こうした投稿が行われることで、Nmapが認識できるOSのデータベースに新たなデータが蓄積され、あらゆるユーザがさらに精度の高い調査を行えるようになる。</para> + + <para>OS検出を行うことで、そのプロセスのなかで収集される情報を利用した別のテストをいくつか行うこともできる。例えば、アップタイムの測定がその1つで、TCPのタイムスタンプオプション(RFC 1323)を用いて、マシンが最後に再起動されたのはいつかを推定する。これは、その情報を返したマシンに関してのみ報告される。もう一つのテストは、TCPシーケンス番号の予測可能性の分類である。これにより、リモートホストに対して偽造したTCP接続を確立するのがどの程度困難であるかがおおよそ判定できる。これは、発信元IPベースの信頼関係(rlogin、ファイアウォール、フィルタなど)の弱点を悪用したり、攻撃の出所を隠蔽したりする場合に役立つ。この種のスプーフィングはもはやめったに行われないが、これに対して脆弱なマシンがいまだに数多くある。難易度を表す実際の数値は、統計的なサンプリングに基づいているために上下する可能性がある。通常は<quote>worthy challenge(価値ある挑戦)</quote>や<quote>trivial joke(つまらないジョーク)</quote>などの言葉の表現による分類を利用する方がよい。これは、冗長(<option>-v</option>)モードの標準出力にのみレポートされる。<option>-O</option>オプションとともに冗長モードが有効になっている場合、IPIDシーケンス番号の生成に関する情報もレポートされる。ほとんどのマシンは、<quote>インクリメンタル(incremental)</quote>に分類される。これは、送信するパケットごとに、IPヘッダのIDフィールドの値を1ずつ増加させることを意味する。この仕組みのせいで、これらのマシンは高度な情報収集攻撃やスプーフィング攻撃に対して脆弱になっている。</para> + + <para>OS検出のメカニズム、使用法、カスタマイズ方法について述べた論文は、以下で入手できる(十数ヶ国語の翻訳版あり): <ulink url="https://nmap.org/osdetect/"/></para> + + <para>OS検出は、以下のオプションで実行および制御できる:</para> + + <variablelist> + <varlistentry> + <term> + <option>-O</option> (OS検出を実行) + </term> + <listitem> + <para>上で述べたOS検出を実行する。また別な方法として<option>-A</option>オプションを使うと、OS検出とバージョン検出の両方を実行できる。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-limit</option> (OS検出を有望なターゲットに絞る) + </term> + <listitem> + <para>少なくとも1つのopenおよびclosedのTCPポートが見つかれば、OS検出の効率はかなり上がる。このオプションを設定すると、Nmapは上の基準に満たないホストにはOS検出を試行しないようになる。これにより、かなりの時間が節約できる。多くのホストに対して<option>-Pn</option>スキャンを行う場合は特にそうである。<option>-O</option> あるいは <option>-A</option>で、OS検出の実行をいつ要求するかだけが重要になる。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-guess</option>; <option>--fuzzy</option> (OS検出の結果を推測) + </term> + <listitem> + <para>Nmapが完全に一致するOSを検出できない場合、それに近似するものを候補として挙げる場合がある。Nmapがこれをデフォルトで行うためには、近似はかなり近いものでなければならない。上のどちらか(同等)のオプションを指定すると、Nmapはより大まかな近似をアグレッシブに行うようになる。</para> + </listitem> + </varlistentry> + + + </variablelist> + </refsect1> + + <refsect1 id="man-performance"> + <title>タイミングとパフォーマンス</title> + <para>Nmapの開発を行ううえで、常に優先事項の1つとして念頭に置いているのが「パフォーマンス」である。筆者のローカルネットワーク上のホストにデフォルトスキャン(<command moreinfo="none">nmap +<replaceable>hostname</replaceable></command>)を実行するのにかかる時間は、5分の1秒である。瞬き1回程度の時間だが、何万、いや何十万というホストをスキャンする場合は、この時間も積算されるわけだ。さらには、UDPスキャンやバージョン検出などの特定のスキャンオプションによって、スキャン時間が大幅に増加する可能性がある。特定のファイアウォール設定、特に応答レート制限の場合も同様である。Nmapには、スキャン速度を上げるための並行処理や高度なアルゴリズムが使用されているが、Nmapをどのように実行するかを最終的に決めるのはユーザである。熟練したユーザは、自分たちの時間的制約を満たしつつ、関心のある情報だけを取得するように、Nmapコマンドに入念な細工を施すものだ。</para> + + <para>スキャン時間を改善するテクニックとしては、重要でないテストの省略や、Nmapを最新版にアップグレードする(パフォーマンスの強化は頻繁に行われている)などが挙げられる。タイミング(時間調節)パラメタを最適化すると、かなりの違いが生じる場合もある。この種のオプションを、以下に列挙する。</para> + + <variablelist> + + <varlistentry> + <term> + <option>--min-hostgroup <replaceable>size</replaceable></option>; + <option>--max-hostgroup + <replaceable>size</replaceable></option> (並列スキャンのグループサイズを調節する)</term> + <listitem> +<para>Nmapには、複数のホストを並行してポートスキャンやバージョンスキャンする能力がある。これは、ターゲットのIP空間をいくつかのグループに分割し、一度に1グループずつスキャンすることで行われる。一般に、グループの規模を大きくするほど、効率がよくなる。デメリットは、グループ全体のスキャンが終了してからでないと、ホストの結果が得られないことである。そのため、グループサイズが50から始めた場合、ユーザがレポートを受け取るのは、(冗長モードで最新情報が提供される場合を除く)最初の50台のホストが完了してからになる。</para> + +<para>デフォルトでは、Nmapはこうした競合問題に対して、妥協的なアプローチを採る。すなわち、最初の結果がすぐに得られるように、5程度の小さなグループサイズから始めて、それから1024くらいにまで増やすようにする。初めに設定する数値は、指定するオプションによって決まる。効率上の理由で、Nmapは、UDPスキャンやポート数の少ないTCPスキャンに対しては比較的大きなグループサイズを用いる。</para> + +<para>グループサイズの最大値が<option>--max-hostgroup</option>で指定されている場合、Nmapがこのサイズを超過することは決してない。グループサイズの最小値を<option>--min-hostgroup</option>で指定すると、Nmapはグループサイズがこの値よりも小さくならないようにしようとする。Nmapは、オプションで指定された最小値の条件を満たすのに十分な数のターゲットホストが、所定のインターフェース上に残っていない場合は、指定より小さいグループサイズを使わざるを得なくなる場合もある。グループサイズを特定の範囲内に収めるために、最大値と最小値の両方を設定する場合もあるが、これが必要になるケースはめったにない。</para> + +<para>このオプションの主な使用法は、スキャンをより高速に完了できるように、グループサイズの最小値に大きな値を指定することである。クラスC規模のネットワークをスキャンするには通常、256を指定する。数多くのポートに対してスキャンを実行する場合は、これ以上の数値を設定しても、あまり効果は期待できない。ポート数がごくわずかのスキャンを行う場合は、ホストのグループサイズを2048以上に設定すると有効だろう。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-parallelism <replaceable>numprobes</replaceable></option>; + <option>--max-parallelism + <replaceable>numprobes</replaceable></option> (プローブの並列処理を調節する)</term> + <listitem> + +<para>ホストグループに向けて送信されるプローブの総数を決めるオプションで、ポートスキャンやホスト発見に用いられる。デフォルトでは、Nmapは、ネットワークパフォーマンスに基づいて、常に変化する理想的な並列処理可能数を算出している。パケットが続けて破棄される場合は、Nmapは処理速度を落とし、送信するプローブの数を減らす。理想的なプローブ数は、ネットワークが示すパフォーマンスの高さに応じて、緩やかに増加する。これらのオプションは、この変数に対して上限と下限を設定する。デフォルトでは、理想的な並列処理可能数は、ネットワークの信頼性が低い場合は1まで下がり、最高の状態の場合は数百まで上がる場合もある。</para> + +<para>最も一般的な使用法は、<option>--min-parallelism</option>に1より大きな数値を設定して、パフォーマンスの低いホストやネットワークに対するスキャンの処理速度を上げることである。ただし、軽く使うにはリスクを伴うオプションであり、あまりに大きな値を設定すると、精度に悪影響が及ぶ場合がある。またこれにより、ネットワーク状態に基づいて並列処理可能数を動的に制御するNmapの能力を低下させることにもなる。10程度にしておくのが妥当かと思われるが、この値の調節は最後の手段としてしか行わない。</para> + +<para>Nmapがホストに対して一度に2つ以上のプローブを送れないようにするために、<option>--max-parallelism</option>オプションに「1」が設定される場合がある。これは、(下で述べる)<option>--scan-delay</option>オプションと組み合わせて用いると便利である。もっとも、後者のオプションは通常は単独でも十分に役立つものである。</para> + + </listitem> + </varlistentry> + +<!-- 2022/07/21時点での英語ドキュメント(Nmap 7.92)に対応 ここから --> + <varlistentry> + <term> + <option>--min-rtt-timeout <replaceable>time</replaceable></option>, + <option>--max-rtt-timeout <replaceable>time</replaceable></option>, + <option>--initial-rtt-timeout + <replaceable>time</replaceable></option> (プローブのタイムアウトを調節する)</term> + <listitem> + +<para>Nmapは、プローブを中止もしくは再送信するまで、プローブの応答を待機する時間をどのくらいにするかを決める実行タイムアウト値を保持している。 +この値は、それまでに送信したプローブの応答時間に基づいて算出される。 +ネットワークの待ち時間が、かなり長くて変化しやすい場合、タイムアウト値は数秒にまで達する可能性もある。 +また、反応が鈍いホストをスキャンする際には、控え目な(高い)レベルから始めて、しばらくの間そのままの値にしておく場合もある。</para> + +<para> +<option>--max-rtt-timeout</option> と <option>--initial-rtt-timeout</option>にデフォルトより小さな値を指定すると、スキャン時間を大幅に短縮できる。 +厳重なフィルタ処理が施されたネットワークに対してpingなし(<option>-Pn</option>)スキャンを行う場合は特にそうなる。 +とはいえ、あまりアグレッシブに小さくしすぎないように。 +小さすぎる値を指定してしまったために、応答が送信されている間に数多くのプローブがタイムアウトして再送信されてしまい、結果的にスキャンの実行に通常より余計に時間がかかる可能性があるからだ。</para> + +<para>すべてのホストがローカルネットワーク上にある場合、100ミリ秒(ms)(<option>--max-rtt-timeout 100ms</option>)にするのが、アグレッシブに小さく指定するとしても妥当な値である。 +ルーティングが関係してくる場合は、ICMP pingユーティリティか、ファイアウォールを通過できる可能性が高いhping2などのカスタムパケット作成ツールを用いて、最初にネットワーク上のホストにpingを実行する必要がある。 +10個程度のパケットを送信してみて、最大往復時間(RTT)を調べること。 +<option>--initial-rtt-timeout</option>の値は、この値を2倍にするとよい。 +また、<option>--max-rtt-timeout</option>の値は、これを3倍か4倍にしたものにするとよいだろう。 +筆者は通常、pingで調査した時間の大小に関係なく、最大RTTを100ms未満に設定することはないし、1000msを超える値にすることもない。 </para> + +<para><option>--min-rtt-timeout</option>は、ほとんど使用されないオプションであるが、ネットワークの信頼性があまりに低いために、Nmapのデフォルト値でも小さく設定しすぎになる場合に役立つと思われる。 +Nmapは単にタイムアウト時間を指定された最小値まで小さくするだけなので、ネットワークが信頼できると思われる場合は、この要求は異常であり、nmap-devメーリングリストにバグとして報告すべきである。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--host-timeout <replaceable>time</replaceable></option> (遅いターゲットホストを見切る) + <indexterm significance="normal"><primary><option>--host-timeout</option></primary></indexterm> + </term> + <listitem> + + +<para>ホストのなかには、とにかくスキャンに<emphasis>長い</emphasis>時間がかかるものがある。 +理由としては、性能・信頼性の低いネットワークハードウェアやソフトウェア、パケットレート制限、厳重なファイアウォールなどが考えられる。 +スキャン対象ホスト全体の数パーセントを占める、最も反応が遅いホストによって、スキャン時間の大半を使われてしまうこともある。このような無駄はカットして、遅いホストは最初から省くほうがよい場合がある。 +これは、待機しても構わない時間の最大値を<option>--host-timeout</option>に指定することで実現できる。 +たとえば、<literal moreinfo="none">30m</literal> を指定して、Nmapが1つのホストで30分以上無駄にしないようにできる。 +この30分の待ち時間に、Nmapは他のホストも同時にスキャンしているので、完全な時間の損失にはならないことに注意。 +タイムアウトするホストはスキップされ、ポートテーブル、OS検出、バージョン検出などの結果は出力されない。</para> + +<para><literal moreinfo="none">0</literal> は特別な値で <quote>タイムアウトをしない</quote> を指定できる。 + ホストのタイムアウトを15分にデフォルトで指定する <option>T5</option> タイミングテンプレートの挙動を上書きする際に有用である。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--script-timeout <replaceable>time</replaceable></option> + <indexterm significance="normal"><primary><option>--script-timeout</option></primary></indexterm> + </term> + <listitem> + +<para>スクリプトの中にはコンマ数秒で完了するものもあるが、スクリプトの性質、渡された引数、ネットワークやアプリケーションの状態などによって、数時間以上かかるものもある。 +<option>--script-timeout</option> オプションは、スクリプトの実行時間に上限を設定する。 +設定された時間を超えたスクリプトは終了し、何も表示されません。 +デバッグ (<option>-d</option>) オプションを指定すると、各タイムアウトの詳細が表示される。 +ホストおよびサービススクリプトの場合、スクリプトは1つの対象ホストまたはポートのみをスキャンし、タイムアウト時間は次のスクリプトのためにリセットされる。</para> + +<literal moreinfo="none">0</literal> は特別な値で <quote>タイムアウトをしない</quote> を意味する。 +タイムアウトを10分とデフォルトで指定している<option>T5</option> タイミングテンプレートを上書きするために使用できる。 + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scan-delay <replaceable>time</replaceable></option>; + <option>--max-scan-delay + <replaceable>time</replaceable></option> (プローブ間の遅滞時間を調節する) + <indexterm significance="normal"><primary><option>--scan-delay</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--max-scan-delay</option></primary></indexterm> + </term> + <listitem> + +<para>指定したホスト宛てに送られる各プローブの送信間隔において、指定した時間だけNmapを待機状態にする。 +これは、<indexterm significance="normal"><primary>レート制限</primary></indexterm>が行われている場合に特に役に立つ。 +Solarisマシンは(制限が特に厳しく)、通常はUDPスキャンのプローブパケットに対して、ICMPメッセージの応答を毎秒1回しか返さない。 +Nmapがそれ以上のパケットを送ってもすべて無駄になる。<option>--scan-delay</option> は次のように設定する。 +<literal moreinfo="none">1s</literal>とすると、Nmapはその遅い速度に保たれる。Nmapは毎秒1回という遅いレートを保つことになる。 +Nmapは、レート制限を検出し、それに応じてスキャン遅延を調整しようとするが、どの程度のレートが最適であるかがすでにわかっている場合は明示的に指定してもよい。</para> + +<para>Nmapがレート制限に対処するためにスキャン遅延を増加させた場合、スキャンの速度は大幅に低下する。 +<option>--max-scan-delay</option>は、Nmapが許容する最大の遅延時間を指定できる。 +<option>--max-scan-delay</option> に少ない時間を指定すれば、スキャンを高速化できるが、リスクがある。 +時間を少なく設定しすぎると、対象が厳格なレート制限を実装している場合に、無駄なパケット再送信や、ポートの取りこぼしが発生する可能性がある。</para> + +<para><option>--scan-delay</option> には、使用法がもうひとつある。 +それは、閾値ベースの侵入検知・防御システム(IDS/IPS)の回避である。 +<indexterm significance="normal"><primary>intrusion detection systems</primary><secondary>evading</secondary></indexterm> <notman> +このテクニックは、<xref linkend="defeating-ids-snort-portscan"/> で使用され、Snort IDSのデフォルトのポートスキャン検出機能を無効にできる。 +他のほとんどの侵入検知システムも、同じ方法で破ることができる。</notman> +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-rate <replaceable>number</replaceable></option>; <option>--max-rate <replaceable>number</replaceable></option> + (スキャンレートを細かく制御) + <indexterm significance="normal"><primary><option>--min-rate</option></primary></indexterm> + <indexterm significance="normal"><primary><option>--max-rate</option></primary></indexterm> + </term> + <listitem> + +<para>Nmapのスキャン速度の自動制御は、適切なスキャン速度を見つけるのに効果的である。 +しかし、適切なスキャン速度が事前にわかっている場合や、ある時間までにスキャンが終了することを保証しなければならない場合もある。 +あるいは、Nmapがあまりに速くスキャンしないようにしなければならないかもしれない。 +<option>--min-rate</option> と <option>--max-rate</option> オプションは、このような状況に対応するために用意されている。</para> + +<para><option>--min-rate</option> オプションが与えられると、Nmap は与えられたレートと同じかそれよりも速くパケットを送信するよう最善を尽くす。 +引数は、1 秒あたりの送信パケット数を表す正の実数である。 +例えば、<option>--min-rate 300</option> を指定すると、Nmap は送信レートを毎秒300パケット以上に維持しようとする。 +最小レートを指定しても、条件が許す限り、Nmapがより速くなることはない。</para> + +<para>同様に、<option>--max-rate</option>は送信レートを最大値を指定できる。 +例えば、高速なネットワークを対象に毎秒100パケットの送信に制限するには、<option>--max-rate 100</option>を使用する。 +10秒に1パケットという遅いスキャンを行うには、<option>--max-rate 0.1</option>を使用する。 +<option>--min-rate</option> と <option>--max-rate</option> を一緒に使うと、レートをある範囲内に保つことができる。</para> + +<para>これらの2つのオプションは全体的なもので、個々のホストにではなく、スキャン全体に影響する。 +ポートスキャンとホスト発見にのみ影響する。 +OS検出のような他の機能では、独自のタイミングが実装されている。</para> + +<para>実際のスキャン速度が指定した最小値を下回る可能性があるのは2つの条件である。 +1つは、最小値がNmapが送信できる最速レートよりも速い場合であり、これはハードウェアに依存する。 +この場合、Nmapは単に可能な限り高速にパケットを送信するが、このような高速なレートでは精度が低下する可能性が高いので注意が必要である。 +2つ目のケースは、Nmapが何も送信しない場合である。たとえば、スキャンの最後にプローブが送信され、Nmapがタイムアウトや応答を待っているときである。 +スキャンの終了時やホストグループ間でスキャンレートが低下するのは正常な現象である。 +予測できない遅延を補うために、送信レートが一時的に最大値を超えることがあるが、平均してレートは最大値以下にとどまるだろう。</para> + +<para>最小レートの指定は慎重に行う必要がある。 +ネットワークが対応できる速度よりも速くスキャンすると、精度が低下する可能性がある。 +場合によっては、速いレートを使うと、遅いレートを使ったときよりもスキャンが<emphasis>長く</emphasis>なることがある。 +これはNmapの <man>適応伝送</man> +<notman><link linkend="scan-methods-adaptive-retransmission">適応伝送</link></notman>アルゴリズムが、過剰なスキャン速度によるネットワークの輻輳を検知し、精度を上げるために再送信の回数を増やすからである。 +そのため、パケットが高いレートで送信されても、全体としてはより多くのパケットが送信される。 +総スキャン時間の上限の設定は、<option>--max-retries</option>で再送信の回数を制限できる</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--defeat-rst-ratelimit</option> + <indexterm significance="normal"><primary><option>--defeat-rst-ratelimit</option></primary></indexterm></term> + <listitem> + +<para> +多くのホストは、送信するICMPエラーメッセージ(ポート到達不能エラーなど)の数を減らすために、長い間レート制限 <indexterm significance="normal"><primary>rate limiting</primary></indexterm> を使用してきた。 +現在、いくつかのシステムは、生成するRST(リセット)パケットに同様のレート制限を適用している。 +このようなレート制限を反映させるためにタイミングを調整するため、Nmapの速度が大幅に低下することがある。 +<option>--defeat-rst-ratelimit</option> を指定することにより、Nmapにこれらのレート制限を無視させることができる (SYN スキャンなど、応答がないポートを <literal moreinfo="none">open</literal> として扱わないスキャンのために)。 +</para> + +<para>このオプションを使用すると、Nmapがレート制限されたRST応答を十分に待たないために、一部のポートが無応答に見えるため、精度が低下する可能性がある。 +SYNスキャンでは、無応答に見えたポートは +<literal moreinfo="none">filtered</literal> となり、RSTパケット受信時に見られる<literal moreinfo="none">closed</literal> 状態にはならない。 +このオプションは、開いているポートにしか関心がなく、<literal moreinfo="none">closed</literal> と <literal moreinfo="none">filtered</literal> を区別することに余分の時間を割けない場合に有用である。 +</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--defeat-icmp-ratelimit</option> + <indexterm significance="normal"><primary><option>--defeat-icmp-ratelimit</option></primary></indexterm></term> + <listitem> + +<para><option>--defeat-rst-ratelimit</option> と同様に、 <option>--defeat-icmp-ratelimit</option> オプションは精度と引き換えに速度を優先し、ICMP エラーメッセージをレート制限するホストに対して UDP スキャン速度を向上させるものである。 +このオプションは、Nmap がポート到達不能メッセージを受信するために遅延しないようにするので、応答しないポートには、デフォルトの <literal moreinfo="none">open|filtered</literal> の代わりに <literal moreinfo="none">closed|filtered</literal> というラベルが付くことになる。 +これは、UDP で実際に応答するポートだけを <literal moreinfo="none">open</literal> として扱う。 +多くの UDP サービスはこの方法では応答しないので、 このオプションは <option>--defeat-rst-ratelimit</option> よりも不正確である可能性が高い。 +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--nsock-engine + iocp|epoll|kqueue|poll|select</option> + <indexterm significance="normal"><primary><option>--nsock-engine</option></primary></indexterm> + <indexterm significance="normal"><primary>Nsock IOエンジン</primary></indexterm> + </term> + <listitem> + +<para> +与えられたnsock IO多重化エンジンの使用を強制する。 +<literal moreinfo="none">select(2)</literal> ベースのフォールバックエンジンのみが、システム上で利用可能と保証されている。 +エンジンの名前は、利用するIO管理機能の名前にちなんで付けられている。 +現在実装されているエンジンは、<literal moreinfo="none">epoll</literal>、<literal moreinfo="none">kqueue</literal>、<literal moreinfo="none">poll</literal>、<literal moreinfo="none">select</literal> だが、どのプラットフォームにも存在しないものもないとは言い切れない。 +デフォルトでは、Nmapは「最適な」エンジン、すなわち、このリストの中で最初にサポートされたエンジンを使用する。 +<command moreinfo="none">nmap -V</command>を使って、自分のプラットフォームでどのエンジンがサポートされているかを確認できる。 +</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-T + paranoid|sneaky|polite|normal|aggressive|insane</option> + (タイミングテンプレートを設定する) + <indexterm significance="normal"><primary><option>-T</option></primary></indexterm> + <indexterm significance="normal"><primary>タイミングテンプレート</primary><seealso><literal moreinfo="none">paranoid</literal>, <literal moreinfo="none">sneaky</literal>, <literal moreinfo="none">polite</literal>, <literal moreinfo="none">normal</literal>, <literal moreinfo="none">aggressive</literal>, and <literal moreinfo="none">insane</literal></seealso></indexterm> + </term> + <listitem> +<indexterm significance="normal"><primary><option>-T0</option></primary><see><literal moreinfo="none">paranoid</literal>タイミングテンプレート</see></indexterm> +<indexterm significance="normal"><primary><option>-T1</option></primary><see><literal moreinfo="none">sneaky</literal> タイミングテンプレート</see></indexterm> +<indexterm significance="normal"><primary><option>-T2</option></primary><see><literal moreinfo="none">polite</literal> タイミングテンプレート</see></indexterm> +<indexterm significance="normal"><primary><option>-T3</option></primary><see><literal moreinfo="none">normal</literal> タイミングテンプレート</see></indexterm> +<indexterm significance="normal"><primary><option>-T4</option></primary><see><literal moreinfo="none">aggressive</literal>タイミングテンプレート</see></indexterm> +<indexterm significance="normal"><primary><option>-T5</option></primary><see><literal moreinfo="none">insane</literal>タイミングテンプレート</see></indexterm> + +<para>前節で述べたような、タイミングのきめ細やかな制御はとても効果が大きいが、分かりにくいと感じるユーザもいるようだ。 +さらには、最適化を試みているスキャンを実行するよりも、適切な数値を選ぶほうが時間がかかるという事態に陥る可能性もある。 +そこでNmapには、6つのタイミングテンプレートを用いたもっと簡単なアプローチが用意されている。 +テンプレートは、<option>-T</option>オプションと番号(0 - 5)か名前で指定できる。 +テンプレート名は、<option>paranoid</option> (<option>0</option>)、 +<option>sneaky</option> (<option>1</option>)、 +<option>polite</option> (<option>2</option>)、 +<option>normal</option> (<option>3</option>)、 +<option>aggressive</option> (<option>4</option>)、<option>insane</option> (<option>5</option>)である。 +最初の2つは、IDS回避用のテンプレートである。Politeモードは、スキャン処理速度を落とし、帯域幅とターゲットマシンのリソースの使用量を少なくするためのものである。 +Normalモードはデフォルトなので、<option>-T3</option>としても特に何もしない。Aggressiveモードは、ユーザが適度に高速で信頼性の高いネットワーク上にいることを想定して、スキャン速度を上げる。 +最後にInsaneモード<indexterm significance="normal"><primary><literal moreinfo="none">insane</literal> (<option>-T5</option>)</primary></indexterm>は、 +非常に高速なネットワーク上にいるか、あるいは速度と引き換えに精度の一部を犠牲にしても構わない場合を想定したモードである。 </para> + +<para>これらのテンプレートを利用すると、ユーザは、的確なタイミング値の選定はNmapに任せつつ、どの程度アグレッシブなスキャンを実行したいかを指定できる。 +また、今のところきめ細かい制御のオプションが存在しない、速度の微調整の一部をこのテンプレートで行うこともできる。 +例えば、<option>-T4</option>は、TCPポートに対するスキャン処理の動的な遅延時間が10msを越えないようにすることができ、また<option>-T5</option>では、この値の上限が5msに制限される。 +テンプレートを最初に指定する場合に限り、きめ細かい制御オプションとテンプレートを組み合わせて用いることができる。 +そうしないと、テンプレートの標準値がユーザの指定した値で上書きされてしまう。適度に最近の信頼性が高いネットワークをスキャンする場合は、<option>-T4</option>がお勧めである。 +きめ細かい制御オプションを追加する場合でも、このオプションを(コマンドラインの最初に)付けておくことで、テンプレートによって有効になる細部にわたる最適化のメリットを享受できる。</para> + +<para>適正なブロードバンド接続やイーサネット接続の環境にいる場合は、常時<option>-T4</option>を利用することをお勧めする。 +<option>-T5</option>を好む人もいるが、私にはアグレッシブすぎるように思われる。 +<option>-T2</option>を指定しているユーザもたまにいるが、ホストをクラッシュさせる可能性が低いと見ているからか、自分のことを全般的に礼儀正しい(polite)と思っているからのようだ。 +こうしたユーザは単に、「-T Polite」が実際にはいかに遅いものであるかを理解していないだけだ。 +Politeモードは、デフォルトスキャンの10倍の時間がかかる。デフォルトのタイミングオプション(<option>-T3</option>)に関しては、マシンのクラッシュや帯域幅が問題になることはめったにないので、慎重なスキャンユーザには通常はこれを勧めている。 +タイミング値をあれこれ操作して、これらの問題を軽減しようとするよりも、バージョン検出を省略するほうがずっと効率的である。</para> + +<para><option>-T0</option> や <option>-T1</option>は、IDSの警告を回避するには役立つかもしれないが、何千ものマシンやポートをスキャンするには非常に長い時間がかかる。 +そのように長いスキャンを行う場合は、あらかじめ用意された<option>-T0</option> や <option>-T1</option>の値に頼るよりも、必要に応じて的確なタイミング値を設定するほうが好ましいだろう。</para> + +<para><option>T0</option>の主な効果は、スキャンを連続的に実行して一度に1つのポートしかスキャンされないようにすることと、各プローブを送信する間に5分間待機することである。 +<option>T1</option> と <option>T2</option>は似ているが、それぞれプローブ間の待機時間が15秒と0.4秒しかない。 +<option>T3</option>はNmapのデフォルト動作で、並列処理が含まれる。<option>T4</option>は<option>--max-rtt-timeout 1250ms --min-rtt-timeout 100ms +--initial-rtt-timeout 500ms --max-retries 6</option>に相当し、TCPおよびSCTPスキャンの最大遅延時間を10msに設定する。 +<option>T5</option>は<option>--max-rtt-timeout 300ms --min-rtt-timeout 50ms +--initial-rtt-timeout 250ms --max-retries 2 --host-timeout 15m --script-timeout 10m --max-scan-delay</option>に相当し、TCPおよびSCTPスキャンの最大遅延時間を5msに設定する。 +UDPの最大スキャン遅延時間は <option>T4</option> や <option>T5</option> では設定できないが、 <option>--max-scan-delay</option> オプションで設定できる。 +</para> + + </listitem> + </varlistentry> + </variablelist> + <indexterm class="endofrange" startref="man-performance-indexterm" significance="normal"/> + <indexterm class="endofrange" startref="man-performance-timing-indexterm" significance="normal"/> + </refsect1> +<!-- 2022/07/21時点での英語ドキュメント(Nmap 7.92)に対応 ここまで --> + + <refsect1 id="man-bypass-firewalls-ids"> + <title>ファイアウォール/IDS の回避とスプーフィング</title> + +<para>多くのインターネット先駆者たちは、あらゆるノード間のネットワーク接続を可能にする、世界共通のIPアドレス空間を有する世界規模のオープンネットワークの構想を描いていた。これにより、ホストは文字通りピアとして機能し、お互いに情報のやり取りができるようになる。ユーザは、自宅のすべてのシステムに仕事場からアクセスして、エアコンの設定を変えたり、早めに来た客のためにドアを開錠したりできるだろう。このような世界規模の相互接続性の構想の拡大は、アドレス空間の不足とセキュリティ上の問題によって阻害されている。1990年代初期、組織は特に相互接続性を軽減する目的で、ファイアウォールを導入し始めた。大規模なネットワークと玉石混淆のインターネットとの間に、アプリケーションプロキシ、ネットワークアドレス変換、パケットフィルタなどによる防御線が張り巡らされた。情報の自由な流れは、認可された通信チャンネルとそこを通るコンテンツに対する厳しい規制にとって代わられた。</para> + +<para>ファイアウォールなどのネットワーク上の障害物によって、ネットワークのマッピングは著しく困難になる。これは、もうこれ以上軽減されることはないはずだ。いつ行われるかわからない探索行為を阻止することが、こうした機器を実装する主な目的である場合が多いからである。それでも、Nmapは、この複雑なネットワークを理解するのに役立てたり、フィルタが目的通りに機能していることを検証したりするための機能を数多く備えている。また、実装が不完全な防御策を回避する仕組みにも対応している。自身のネットワークセキュリティ状況を理解する最善の方法の1つは、それを打ち破ってみることだ。自分が攻撃者になったつもりで、本節のテクニックを自分自身のネットワークに対して実行してみるとよい。FTPバウンススキャン、Idleスキャン、フラグメンテーション攻撃などを仕掛けたり、自分のプロキシの1つにトンネルを通したりしてみよう。</para> + +<para>企業は、ネットワーク活動を制限することに加えて、侵入検知システム(IDS)によるトラフィック監視を強化してきている。メジャーなIDSにはすべて、Nmapによるスキャンを検知するように設計されたルールが標準で搭載されている。これは、スキャンが攻撃に先立って行われる場合があるからだ。これらの製品の多くは最近、侵入<emphasis>防止</emphasis>システム(IPS)に姿を変えている。IPSは、悪意があると見なされるトラフィックを積極的にブロックする。ネットワーク管理者やIDSベンダにとって残念なことに、パケットデータを解析して悪意を確実に検知するのは困難な課題である。根気とスキル、それにNmapの特定のオプションの手助けがあれば、攻撃者はたいていの場合、IDSに検知されないで通り過ぎることができる。その一方で、管理者は大量の誤検知結果の対処に追われることになる。IDSの誤検知によって、悪意のない活動が誤診され、警告が発せられたりブロックされたりする。</para> + +<para>Nmapには、ファイアウォールルールを回避したりIDSをこっそりすり抜けたりするための機能は搭載しないようにするべきだと言われることがたまにある。こうした人々の言い分は、その手の機能は、管理者がセキュリティ向上のために利用するのと同じくらいの確率で、攻撃者に悪用されるおそれがあるというものだ。この論理の問題点は、いずれにしろこの種の手法は攻撃者に悪用されるに決まっているということだ。攻撃者は、別のツールを見つけてきたり、Nmapに機能を組み込んだりするものだからである。一方、管理者は、自分たちの業務がそれだけますますやりにくくなると思われるだろう。最新型の、パッチを適用したFTPサーバを導入することは、FTPバウンス攻撃を実装しているツールの配布を阻止しようとすることよりも、はるかに強力な防御策になる。</para> + +<para>ファイアウォールやIDSシステムを検出して破壊するための「魔法の弾丸」のようなNmapオプションなど存在しない。それには、スキルと経験が必要なのだ。チュートリアルについては、本リファレンスガイドの範囲を超えている。本稿の目的は単に、関連したオプションを列挙し、それで何ができるかについて説明することだけである。</para> + +<variablelist> + <varlistentry> + <term> + <option>-f</option> (パケットをフラグメント化する); + <option>--mtu</option> (指定したMTUを用いる) + </term> + + <listitem> + <para><option>-f</option>オプションを指定すると、要求されたスキャン(pingスキャンを含む)は小さく断片化されたIPパケットを利用するようになる。これを行う目的は、TCPヘッダを複数のパケットに分割することで、パケットフィルタや侵入検知システム(IDS)などの厄介なセキュリティ策にスキャンを検知されにくくすることである。ただし、以下の点には注意が必要だ。すなわち、プログラムのなかには、このような小さなパケットの処理によって問題を生じるものがあることだ。旧式のスニファ「Sniffit」は、最初のフラグメントを受信した瞬間にセグメンテーション障害を起こした。このオプションを一度指定すると、NmapはIPヘッダを8バイトかそれ以下の大きさのパケットに分割する。つまり、20バイトのTCPヘッダは3つのパケットに分割されることになる。8バイトのパケットが2つと、残りの1つが4バイトになる。もちろん、各フラグメントにもIPヘッダがある。<option>-f</option>を再度指定すると、フラグメントあたり16バイトが使われる(フラグメントの数は減る)。あるいは、<option>--mtu</option>オプションで、ユーザ独自の分割サイズを指定することもできる。<option>--mtu</option>を使う場合は、同時に<option>-f</option>は指定しないこと。分割サイズは8の倍数にする必要がある。断片化されたパケットは、すべてのIPフラグメントを待ち行列に入れるパケットフィルタやファイアウォール(例えば、LinuxカーネルのCONFIG_IP_ALWAYS_DEFRAGオプションなど)を通り抜けることはできないが、ネットワークによっては、この断片化によって生じるパフォーマンスの低下に耐えきれないために、これを無効にしているところがある。またそれ以外にも、各フラグメントがそれぞれ異なる経路を通ってネットワークに至る可能性があるために、この機能を有効にできないところもある。一部の発信元システムでは、カーネルで発信パケットのフラグメント化を解消するものもある。コネクション追跡モジュールの「iptables」を備えるLinuxなどがこれにあたる。送信パケットがきちんとフラグメント化されていることを確認するために、Etherealなどのスニファを実行しながら、スキャンを行うようにすること。自身のホストのOSが原因で問題が生じる場合は、IP層を回避して「生」イーサネット フレームを送るために、<option>--send-eth</option>を試してみるとよい。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-D <replaceable>decoy1</replaceable><optional>,<replaceable>decoy2</replaceable></optional><optional>,ME</optional><optional>,...</optional></option> + (おとりを使ってスキャンを隠蔽する) + </term> + <listitem> + <para>おとり(囮)スキャンを実行する。おとりスキャンとは、実際のスキャンの他に、おとりとして指定したホスト(複数可)もターゲットネットワークをスキャンしているようにリモートホストに見せかけるためのものである。この結果、対象ホストのIDSは、それぞれ異なる複数のIPアドレスから、5から10のポートスキャンが実行されたことを報告する場合もあるが、実際にどのIPがスキャンを実行していたもので、どれが無実のおとりだったのかを知られることはない。このおとりスキャンは、ルータの経路追跡、応答の破棄、その他の動的メカニズムによって阻止される可能性があるが、通常は攻撃元のIPアドレスを隠蔽する技法として非常に効果的である。</para> + + <para>各おとりホストはコンマで区切る。おとりの1つとして<literal moreinfo="none">ME</literal>(自分)オプションを用いて、ユーザの本物のIPアドレスをその位置に表示することもできる。<literal moreinfo="none">ME</literal>をおとりホストの6番目以降に置くと、(Solar Designerの優れたscanlogdなどの)よく使われる一部のポートスキャン検出ツールが、ユーザのIPアドレスを明らかにすることはほぼ不可能である。<literal moreinfo="none">ME</literal>オプションを使わない場合、ユーザはNmapが無作為に選んだ位置に置かれる。</para> + <para>注意すべき点は、おとりとして使用するホストが稼動中でないと、ターゲットに誤ってSYN flood攻撃を仕掛けることになる。また、ネットワーク上で実際に稼動しているホストが1つしかない場合は、どのホストがスキャンを実行しているかを容易に特定されてしまう。また、ホスト名よりもIPアドレスを使った方がよいだろう(おとりネットワークのネームサーバのログに記録されないようにするため)。</para> + + <para>おとりは、初期段階に行うpingスキャン(ICMP、SYN、ACK、その他利用できるものなら何でも)と、実際のポートスキャンの実行段階の両方で使用される。また、リモートOS検出(<option>-O</option>)を行う際にも使われる。だが、バージョン検出やTCP connect()スキャンとは連携しない。</para> + + <para>おとりを多く使いすぎると、スキャンの速度が低下するだけでなく、精度も下がるおそれがあることに注意する。また、一部のISPは偽装パケットをフィルタで除外しているが、偽装したIPパケットを制限しているところは少ない。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-S <replaceable>IP_Address</replaceable></option> (ソースアドレスを偽装する) + </term> + <listitem> + <para>一部の環境では、Nmapがユーザのソースアドレスを特定できない場合がある(その場合はかならず、Nmapからユーザに通知がある)。こうした状況では、<option>-S</option>オプションを使って、パケットの送信に利用したいインターフェースのIPアドレスを指定すること。</para> + + <para>このフラグの他の利用方法として考えられるのは、スキャンを偽装して、<emphasis>第三者(誰か別の人間)</emphasis>がスキャンを実行しているとターゲットに思い込ませることだ。企業が、ライバル企業から繰り返しポートスキャンを受けたとしたらどうなるだろうか。この種の用途に用いるには、たいていの場合<option>-e</option>オプションが必要になるだろう。また通常は<option>-Pn</option>も使った方が望ましい。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-e <replaceable>interface</replaceable></option> (特定のインターフェースを使用する) + </term> + <listitem> + <para>パケットを送受信する際に、どのインターフェースを利用するかをNmapに伝えるためのオプション。Nmapは、インターフェースを自動的に検知できるようになっているが、検知できない場合はその旨がユーザに通知される。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--source-port <replaceable>portnumber</replaceable>;</option> + <option>-g <replaceable>portnumber</replaceable></option> (ソースポート番号を偽装する) + </term> + <listitem> + +<para>よく見かける設定ミスの1つは、ソースポート番号だけを基準にして、トラフィックを信頼していることである。これがどのようにして起きるかを理解するのは簡単である。管理者が真新しいファイアウォールをセットアップすると必ず、恩知らずのユーザから、アプリケーションが機能しなくなったという苦情が殺到することになるものだ。特に、外部サーバからのUDP DNS応答がネットワークに入れなくなることが原因で、DNSが動かなくなる場合がある。この他に、FTPもよく見られる例である。アクティブFTP転送が行われる際に、リモートサーバは、要求されたファイルを転送するために、再びクライアントへのコネクションを確立しようとする。</para> + +<para>これらの問題に対するセキュアなソリューションは、多くの場合、アプリケーションレベルのプロキシや、プロトコル解析型ファイアウォールモジュールの形で存在する。だが残念ながら、もっと簡単で、安全性の低いソリューションもあるのだ。多くの管理者は、DNS応答は53番ポートから、アクティブftpは20番ポートから来ることに注目し、これらのポートからの内向きトラフィックを無条件に許可してしまうという罠に陥る。こうしたファイアウォールの抜け穴の存在に気付いて悪用するような攻撃者がいるとは思ってもいない場合が多い。また別のケースでは、管理者がこうした処置を、より安全性の高いソリューションを実装するまでの短期間の応急処置と見なしている場合もある。そして結局、セキュリティを向上させることなどすっかり忘れてしまうわけだ。</para> + +<para>こうした罠に陥るのは何も、多忙なネットワーク管理者だけではない。この種の安全性の低いルールが標準で装備されてくる製品は膨大な数にのぼる。マイクロソフト社にも、責任の一端はある。Windows 2000 や Windows XPに標準装備されているIPsecフィルタには、88番ポート(Kerberos)からのTCP や UDPのトラフィックをすべて許可するという暗黙のルールが含まれている。この他に有名なケースでは、Zone Alarm社製パーソナルファイアウォールの2.1.25以下のバーションでは、ソースポートが53番(DNS)と67番(DHCP)の内向きUDPパケットをすべて許可するようになっていた。</para> + +<para>Nmapには、この種の弱点を突くためのオプションとして、<option>-g</option> や<option>--source-port</option>(これらは同等のもの)が用意されている。単ポート番号を指定すると、可能な場合であれば、Nmapはそのポートからパケットを送信する。特定のOS検出検査が正しく機能するようにするために、Nmapは様々なポート番号を使用する必要がある。NmapはDNS要求の処理にシステムのライブラリを用いているので、この<option>--source-port</option>フラグを指定していても、DNS要求には無視されることになる。SYNスキャンを含む大部分のTCPスキャン、およびUDPスキャンは、このオプションに完全に対応している。</para> + + </listitem> + </varlistentry> + + <!-- Missing options: -/-data -/-data-string --> + <varlistentry> + <term> + <option>--data-length <replaceable>number</replaceable></option> (送信パケットにランダムデータを付加する) + </term> + <listitem> + <para>通常、Nmapはヘッダのみを含む最小限のパケットを送信する。従って、TCPパケットは通常40バイト、ICMPエコー要求パケットは28バイト程度の大きさしかない。このオプションは、Nmapが送信するほとんどのパケットに、指定したバイト数のランダムデータを付加するようにする。OS検出(<option>-O</option>)パケットにはデータは付加されないが、ほとんどのping およびポートスキャンのパケットには付加される。これにより、処理速度は低下するが、スキャンを幾分でも目立たなくすることができる。</para> + </listitem> + </varlistentry> + + <!-- Missing option: -/-ip-options --> + <varlistentry> + <term> + <option>--ttl <replaceable>value</replaceable></option> (IPのTTLフィールド値を設定する) + </term> + <listitem> + <para>送信パケットのIPv4生存時間(TTL:Time-to-Live)フィールドを指定した値に設定する。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--randomize-hosts</option> (ターゲットホストの順番を無作為化する) + </term> + <listitem> + <para>このオプションは、Nmapがスキャンを実行する前に、各グループあたり最大8096のホストをランダムに並び替えるようにする。これにより、特にスキャン速度を遅く設定するタイミングオプションと併用する場合は、各種ネットワーク監視システムにスキャンが検知される可能性を小さくすることができる。より大規模なグループを無作為化したい場合は、<filename moreinfo="none">nmap.h</filename>のPING_GROUP_SZを増やして再コンパイルする。別の手段としては、リストスキャンでターゲットIPリストを作成し(<option>-sL -n -oN + <replaceable>filename</replaceable></option>)、これをPerlスクリプトで無作為化して、<option>-iL</option>でリストをそのままNmapに渡す。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--spoof-mac <replaceable>mac address, prefix, or vendor name</replaceable></option> (MACアドレスを偽装する) + </term> + <listitem> + + <para>Nmapが送信するすべての生イーサネット フレームに、指定したMACアドレスを使うようにする。このオプションは、Nmapが実際にイーサネットレベルのパケットを送信するように、<option>--send-eth</option>が必要条件になる。MACアドレスは、さまざまな形式で指定できる。文字列の<quote>0</quote>だけが指定された場合は、NmapはセッションのMACアドレスを完全に無作為に選ぶ。指定した文字列が偶数の16進数(一組ずつ状況に応じてコロンで区切る)の場合は、NmapはこれをMACアドレスとして使用する。12桁未満の16進数が指定された場合は、Nmapは残りの6バイトにランダムな値を補充する。引数が0や16進文字列ではない場合は、Nmapは<filename moreinfo="none">nmap-mac-prefixes</filename> を調べて、指定した文字列を含むベンダ名を見つける(大文字と小文字は区別されない)。一致するものがあった場合、そのベンダのOUI(Organizationally Unique Identifier:3バイトのベンダコード)を使用し、残りの3バイトにはランダムに記入する。有効な<option>--spoof-mac</option>引数は、<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>、<literal moreinfo="none">Cisco</literal>などになる。</para> + + </listitem> + </varlistentry> + <!-- Missing options: -/-proxies -/-badsum -/-adler32 --> + </variablelist> + + </refsect1> + + <refsect1 id="man-output"> + <title>出力</title> + + <para>セキュリティツールの実用性は、生成される出力で決まる。複雑なテストやアルゴリズムも、結果が整理された、わかりやすい形で提示されなければ、ほとんど価値はない。ユーザや他のソフトウェアによるNmapの使い方がこれほど数多くあることを考えると、たった1つですべてのユーザが満足するようなフォーマットが存在するはずもない。そこでNmapには、人間が直接読めるようにしたインタラクティブ方式や、ソフトウェアで簡単に解析できるXML方式などのさまざまな出力フォーマットが用意されている。</para> + +<para>Nmapには様々な出力フォーマットが備わっているだけでなく、出力やデバッグメッセージの冗長性を制御するオプションも用意されている。出力結果は標準出力(stdout)や指定したファイルに送られる。ファイルにはデータを追加したり上書きしたりできる。また、出力ファイルは、中断したスキャンを再開するためにも使われる。</para> + +<para>Nmapの出力は、5種類のフォーマットが利用できる。デフォルトは<literal moreinfo="none">interactive output(インタラクティブ出力)</literal>と呼ばれるもので、標準出力に送られる。また、出力には、<literal moreinfo="none">normal output(通常出力)</literal>というのがある。これは、<literal moreinfo="none">インタラクティブ</literal>に似ているが、異なる点は、実行時間情報や警告が表示される回数が少ないことである。その理由は、この出力が、インタラクティブにではなくて、スキャン完了後に解析するために提供されるものだからである。</para> + +<para>XML出力は、最も重要な出力タイプの1つであり、HTMLに変換し、NmapのGUIやデータベースにインポートして、プログラムで容易に解析できる。</para> + +<para>残り2つの出力タイプは、<literal moreinfo="none">grepで検索可能な</literal>シンプルな出力で、ターゲットホストに関するほとんどの情報が1行で表示されるものと、自分のことを>sCRiPt KiDDi3だと思うユーザ向けの<literal moreinfo="none">sCRiPt KiDDi3 0utPUt(出力)</literal>だ。</para> + +<para>インタラクティブ出力はデフォルトで、関連するコマンドラインオプションはないが、他の4つのフォーマットオプションでは、同じ構文が使われる。取る引数は1つで、結果を保存するファイル名である。複数のフォーマットを指定してもよいが、各フォーマットは1度しか指定できない。例えば、自分の調査用に通常の出力を保存し、同時に同じスキャン結果をプログラムの解析用にXML形式で保存したい場合もあるだろう。これは、<option>-oX myscan.xml -oN myscan.nmap</option>というオプションを使って実行できる。なお、ここでは簡潔にするために<literal moreinfo="none">myscan.xml</literal>のような単純なファイル名を用いているが、通常はもっと説明的な名前にするのが推奨されている。どのようなファイル名にするかは、個人の好みの問題だが、筆者はスキャンの実施日と簡単なコメントを組み入れた長い名前を使い、スキャン対象の企業名にちなんだ名前のディレクトリに入れている。</para> + +<para>これらのオプションは結果をファイルに保存するが、同時にNmapは通常通りインタラクティブ出力を標準出力(stdout)に書き出している。例えば、<command moreinfo="none">nmap -oX myscan.xml target</command>というコマンドで、XML出力が<filename moreinfo="none">myscan.xml</filename>に書き込まれ、同じ結果のインタラクティブ出力が標準出力に書き出される。この出力は、<option>-oX</option>が指定されなかった場合でも行われる。ハイフン(-)文字を引数としてフォーマットタイプの1つに渡すと、これを変更することができる。すなわち、Nmapはインタラクティブ出力を停止して、代わりにユーザが指定した形式の結果を、標準出力ストリーム(stdout)に書き出すことになる。<command moreinfo="none">nmap -oX - target</command>というコマンドでは、XML出力だけがstdoutに送られる。この場合も、重大なエラーは標準エラーストリーム(stderr)に書き出される場合がある。 </para> + +<para>Nmapの一部の引数とは異なり、ログファイルオプションのフラグ(例:<option>-oX</option>)とファイル名やハイフンとの間のスペースは必須である。この注意を無視して、引数を<option>-oG-</option>や<option>-oG-</option>のように指定したら、Nmapの下位互換機能により、それぞれ<filename moreinfo="none">G-</filename>や<filename moreinfo="none">Xscan.xml</filename>という名前の<emphasis>標準フォーマット</emphasis>の出力ファイルが作成される。</para> + +<!-- Missing paragraph about strftime-like conversions in file names --> +<para>またNmapには、スキャン結果の冗長性を制御するオプションや、出力ファイルに上書きしないで追加書き込みするためのオプションも用意されている。これらのオプションについてはすべて以下で説明する。</para> + +<variablelist><title>Nmapの出力フォーマット</title> + <varlistentry> + <term> + <option>-oN <replaceable>filespec</replaceable></option> (通常出力)</term> + <listitem> + <para><literal moreinfo="none">通常の出力</literal>が指定した名前のファイルに書き込まれるようにする。上で述べた通り、これは<literal moreinfo="none">インタラクティブ出力</literal>と一部異なる。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oX <replaceable>filespec</replaceable></option> (XML 出力)</term> + <listitem> + + <para><literal moreinfo="none">XML出力</literal>が指定した名前のファイルに書き込まれるようにする。Nmapには文書型定義(DTD)が組み込まれており、XMLパーサーはこれを用いて、NmapのXML出力を検証する。本来はプログラムによる使用を目的としたものだが、人間がNmapのXML出力を解釈するのにも役立つ。DTDには、フォーマットの文法要素が定義されており、これらの要素が取ることのできる属性や値が列挙されていることが多い。最新版は以下から常時入手できる:<ulink url="https://nmap.org/data/nmap.dtd"/></para> + + <para>XMLは、ソフトウェアで容易に解析できる定型書式を提供する。C/C++、Perl、Python、Javaなどを含む、あらゆるメジャーなコンピュータ言語用のXMLパーサーが、フリーで入手できるようになっている。これらの言語のほとんどについては、Nmapの出力と実行に特化して処理するためのバインディングも作成されている。例えば、Perl CPAN(Comprehensive Perl Archive Network)の<ulink url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> や <ulink url="http://www.nmapparser.com">Nmap::Parser</ulink>などがある。重要なアプリケーションがNmapとインターフェースで連結する場合はほとんど、XMLが推奨フォーマットになる。</para> + + <para>XML出力はXSLスタイルシートを参照して、出力結果の書式をHTMLに変換できる。これを使用する最も簡単な方法としては、単にFirefoxやIEなどのWebブラウザでXML出力を読み込むだけでよい。デフォルトでは、これはNmapを実行したマシン上(もしくは同じ構成のマシン)でのみ機能する。これは、<filename moreinfo="none">nmap.xsl</filename>のファイルシステムのパスがハードコード化されているためである。Webに接続したマシン上であればHTMLとして表示されるような、移植性のあるXMLファイルを作成する方法については、<option>--stylesheet</option>オプションの項を参照のこと。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oS <replaceable>filespec</replaceable></option> (ScRipT KIdd|3 oUTpuT)</term> + <listitem> + <para>スクリプトキディ出力は、インタラクティブ出力に似ているが、異なる点は、「l33t HaXXorZ」(leet hacker)向けに後処理してあることだ。Nmapは以前より、一貫性のある大文字やスペルの使い方のせいで、この人たちに見下されてきた。ユーモアを解さない人々は、<quote>スクリプトキディの手助けをしている</quote>として筆者に非難の言葉を浴びせる前に、まず気付くべきだ。このオプションが、彼らをからかうためのものだということを。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oG <replaceable>filespec</replaceable></option> (Grep検索可能出力)</term> + <listitem> + +<para>この出力フォーマットを最後に取り上げたのは、廃止予定だからだ。XML出力フォーマットのほうがはるかに強力であり、熟練ユーザにとっての使い勝手もほぼ変わらない。XMLはパーサーの標準で、多数の優れたXMLパーサーが利用可能になっているのに対し、grep可能出力は筆者独自のスクリプトに過ぎない。XMLは拡張性が高く、Nmapの新機能がリリースされるたびに対応可能だが、grep可能出力にはこうした機能を追加する余地がないため、割愛せざるを得ないことも多い。</para> + +<para>とはいえやはり、grep可能出力はいまだに広く使われている。各対象ホストが一行ずつ列挙されているというシンプルな形式で、grep、awk、cut、sed、diff、PerlなどのUNIXの標準ツールを使って簡単に検索や解析を行うことができる。筆者も通常、コマンドラインで行うちょっとしたテストのために使用している。sshポートが開いているホストや、Solarisを実行しているホストなどを見つける場合、簡単なgrep検索を行うと、こうしたホストをすべて特定し、パイプでawkやcutコマンドに送って、目的のフィールドを書き出すことができる。</para> + +<para>Grep可能出力は、コメント行(パウンド(#)記号で始まる行)とターゲット行で構成される。ターゲット行は、6つのラベル付きフィールドの組み合わせになっており、それぞれのフィールドはタブで区切られ、最後にコロンが付く。各フィールドは、<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">IPID</literal>、<literal moreinfo="none">Status</literal>になっている。</para> + +<para>これらのフィールドの中で通常最も重要なのは、<literal moreinfo="none">Ports(ポート)</literal>であり、ここからそれぞれの興味あるポートに関する詳細情報が得られる。ポートエントリのカンマ区切りリストになっており、各ポートエントリは、1つの興味あるポートを表し、7つのスラッシュ(/)で区切られたサブフィールドから成る。各サブフィールドは<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>、<literal moreinfo="none">Version info</literal>である。</para> + +<para>XML出力の場合と同様に、本稿でこのフォーマットのすべてを論ずることはできない。Nmapのgrep可能出力フォーマットについての詳細な解説は以下で入手できる:<ulink url="http://www.unspecific.com/nmap-oG-output"/></para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oA <replaceable>basename</replaceable></option> (全フォーマットに出力する)</term> + <listitem><para> + 簡便のために、<option>-oA + <replaceable>basename</replaceable></option>を指定すると、スキャン結果を通常、XML、grep可能の3つのフォーマットで一度に保存できるようにした。それぞれ、<replaceable>basename</replaceable>.nmap、<replaceable>basename</replaceable>.xml、<replaceable>basename</replaceable>.gnmapというファイルに保存される。たいていのプログラムと同じく、以下の例のようにファイル名の前にディレクトリパスを付けることもできる:<filename moreinfo="none">~/nmaplogs/foocorp/</filename>(UNIX)、<filename moreinfo="none">c:\hacking\sco</filename>(Windows)</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>冗長性とデバッグのオプション</title> + <varlistentry> + <term> + <option>-v</option> (冗長性レベルを上げる) + </term> + <listitem> + <para>冗長性レベルを上げて、Nmapが進行中のスキャンに関してさらに多くの情報を書き出すようにする。開きポートは見つかり次第表示され、スキャンの実行に数分以上かかると見なされる場合は予測される完了時間が提示される。2回使用するとさらに冗長レベルは上がるが、3回以上の使用は無効である。</para> + + <para>ほとんどの変更の効果が表れるのはインタラクティブ出力だけだが、通常出力とスクリプトキディ出力にも一部効果がある。その他の出力タイプは、コンピュータ処理するための出力なので、ユーザの手を煩わさなくとも、デフォルトでかなり詳細な情報が与えられている。それでも、その他の出力モードでもいくつか変更される点があり、詳細情報を一部省略することで、出力サイズを大幅に減らすことができる。例えば、grep可能出力のコメント行で、スキャン対象の全ポートの一覧表を提供するものは、かなり長くなる可能性があるので、冗長モードでのみ書き出される。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-d <replaceable>level</replaceable></option> (デバッグレベルを上げる/設定する) + </term> + <listitem> + +<para>冗長モードでも満足する情報が得られない場合は、さらに大量の情報を得るためにデバッグを利用できる。冗長オプション(<option>-v</option>)の場合と同様に、デバッグもコマンドラインのフラグ(<option>-d</option>)で有効になり、これを複数回指定することで、デバッグレベルを上げることができる。もしくは、デバッグレベルは<option>-d</option>に引数として与えることでも設定できる。例えば、<option>-d9</option>でレベル9に設定される。これは最も効果の高いレベルであり、ごく少数のポートやターゲットに対して非常に単純なスキャンを実行するのでない限り、数千行に及ぶ出力が生成される。</para> + +<para>デバッグ出力が有用なのは、Nmapにバグがある疑いがある場合や、Nmapが何をなぜ行っているのかについて単純によく分からなくなった場合である。この機能は主に開発者向けのものなので、デバッグ行は必ずしも誰が見てもすぐ分かるわけではない。例えば、このような出力が得られる: <computeroutput moreinfo="none">Timeout +vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 +rttvar: 14987 to: 100000</computeroutput>。こうした行の内容が理解できない場合は、無視するか、ソースコードを見て調べるか、開発リスト(nmap-dev)に助けを求めるかなどをする他ない。見れば内容が分かる行もなかにはあるが、デバッグレベルが上がるほど、メッセージも分かりにくくなる。</para> + + </listitem> + </varlistentry> + + <!-- Missing options: -/-reason -/-stats-every --> + <varlistentry> + <term> + <option>--packet-trace</option> (送受信したパケットやデータを追跡する) + </term> + <listitem> + <para>Nmapが送受信した全パケットのサマリーを書き出すようにする。デバッグで用いられる場合が多いが、Nmapが見えないところで何を行っているかを新しいユーザが理解するための手段として役立てることができる。何千もの行が書き出されないようにするには、<option>-p20-30</option>などを指定して、スキャン対象のポートの数を制限するとよいだろう。バージョン検出サブシステムの挙動にのみ関心がある場合は、代わりに<option>--version-trace</option>を使用すること。</para> + </listitem> + </varlistentry> + + <!-- Missing option: -/-open --> + <varlistentry> + <term> + <option>--iflist</option> (インターフェースや経路の一覧を表示する) + </term> + <listitem> + <para>Nmapが検出したインターフェースやシステム経路のリストを書き出す。これは、ルーティング問題やデバイスのキャラクタリゼーションの誤り(例えばNmapがPPP接続をイーサネットとして処理すること)などをデバッグするのに役立つ。</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>その他の出力オプション</title> + + <varlistentry> + <term> + <option>--append-output</option> (出力ファイルは上書きせず追加する) + </term> + <listitem> + <para><option>-oX</option> や <option>-oN</option>などの出力フォーマットのフラグにファイル名を指定すると、デフォルトではそのファイルは上書きされる。既存のファイルの内容はそのままにして、新しい結果を追加したい場合は、この<option>--append-output</option>オプションを指定する。こうしてNmapを実行すれば、ここで指定した出力ファイルはすべて、上書きではなくて追加されることになる。だがこれは、XMLスキャン(-oX)のデータに対してはあまり有効ではない。XMLの結果ファイルは通常、手動で修正しないと適正に解析できないからだ。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--resume <replaceable>filename</replaceable></option> (中断したスキャンを再開する) + </term> + <listitem> + + <!-- Outdated information: Nmap can now resume from XML output also. --> + <para>対象が広範囲にわたるNmapの実行には非常に長い時間がかかり、数日ほどに及ぶ場合もある。そのようなスキャンは、常に完了するまで続けて実行できるとは限らない。様々な制約によってNmapを就業時間内に実行できなくなったり、ネットワークがダウンしたり、Nmapが動作しているマシンが計画的あるいは予定外に再起動させられたり、Nmap自体がクラッシュしたりなどが起こる可能性があるからだ。その他いかなる理由であっても同様に、Nmapを実行している管理者は、<keycap moreinfo="none">ctrl-C</keycap>を押すことによって実行をキャンセルできる。このような場合、スキャン全体を最初から再開するのは望ましくないだろう。幸いにも、通常出力(<option>-oN</option>)やgrep可能出力(<option>-oG</option>)のログが残っていれば、ユーザは、実行を中断された際のターゲットに対するスキャンを再開するようNmapに命じることができる。これを行うには、<option>--resume</option> オプションを指定し、通常/grep可能の出力ファイルを引数として渡す。Nmapはその出力ファイルをパースして、前に指定されたのと同じものを使うので、それ以外の引数は指定できない。<command moreinfo="none">nmap --resume<replaceable>logfilename</replaceable></command>として、Nmapを呼び出す。Nmapは、前回の実行で指定されたデータファイルに新たな結果を追加する。この再開オプションは、XML出力フォーマットをサポートしていない。2回の実行結果を結合して1つの妥当なXMLファイルにするのは困難であるためだ。</para> + </listitem> + </varlistentry> + + <!-- Missing option: -/-noninteractive --> + <varlistentry> + <term> + <option>--stylesheet <replaceable>path or URL</replaceable></option> (XML出力変換のXSLスタイルシートを設定する) + </term> + <listitem> + <para>Nmapには、XML出力を閲覧したりHTMLに変換したりするための<filename moreinfo="none">nmap.xsl</filename>というXSLスタイルシートが同梱されている。XML出力には、<literal moreinfo="none">xml-stylesheet</literal>ディレクティブが組み込まれており、Nmapが最初にインストールした場所(もしくはWindows上の現在作業中のフォルダ)にある<filename moreinfo="none">nmap.xml</filename>を参照する。最近のWebブラウザにNmapのXML出力を読み込むと、ブラウザはファイルシステムから<filename moreinfo="none">nmap.xsl</filename> を読み出して、出力結果の処理に使用する。別のスタイルシートを使いたい場合は、この<option>--stylesheet</option>オプションの引数として指定する。引数はフルパス名かURLで指定する。よく用いられる例を以下に示す: +<option>--stylesheet https://nmap.org/data/nmap.xsl</option> +これで、スタイルシートの最新バージョンがInsecure.Orgからブラウザに読み込まれる。これにより、Nmap(および <filename moreinfo="none">nmap.xsl</filename>)がインストールされていないマシン上でも、結果を閲覧しやすくなる。そのため、URLのほうが便利な場合が多いが、デフォルトではプライバシー上の理由で、ローカルファイルシステムでのnmap.xslの場所が使われている。</para> + </listitem> + </varlistentry> + + <!-- Missing option: -/-webxml --> + <varlistentry> + <term> + <option>--no-stylesheet</option> (XSLスタイルシート宣言をXMLから除外する) + </term> + <listitem> + <para>NmapがXML出力をXSLスタイルシートと関連付けないようにする。<literal moreinfo="none">xml-stylesheet</literal> ディレクティブは無視される。</para> + </listitem> + </varlistentry> + + + + </variablelist> + </refsect1> + + <refsect1 id="man-misc-options"> + <title>その他のオプション</title> + <para>本節では、他の節のどこにも適合しないオプションで、重要な(およびそれほど重要でない)ものについて述べる。</para> + + <variablelist> + <varlistentry> + <term> + <option>-6</option> (IPv6スキャンを有効にする) + </term> + <listitem> + + <para>Nmapは2002年より、その最もよく使われる機能に対してIPv6のサポートを提供している。特に、pingスキャン(TCPのみ)、connect()スキャン、バージョン検出などはすべてIPv6に対応している。コマンド構文は、<option>-6</option>オプションを追加する以外は従来通りである。もちろん、ホスト名ではなくてアドレスを指定する場合は、IPv6の構文を使う必要がある。ただし、アドレス表示は<literal moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>のようになるので、ホスト名を使う方がよい。出力も従来とほぼ同じであり、<quote>興味のあるポート</quote>行のアドレスがIPv6方式になっているのが唯一のIPv6の証拠である。</para> + + <para>IPv6は必ずしも世界を席巻しているわけではないが、一部(通常はアジア)の国々ではかなり普及しており、最近のOSのほとんどでサポートされている。NmapをIPv6で使用するためには、スキャンのソースとターゲットの両方をIPv6対応に設定する必要がある。自分のISP(他の多くのISPと同様の)からIPv6アドレスを割り当てられていない場合は、様々な場所で入手可能なフリーのトンネルブローカーがNmapとうまく連携して機能する。優れたトンネルブローカーの1つに、BT Exact社が以下で運営しているものがある。 Hurricane Electric社が以下で提供しているものも使ったことがある:<ulink url="http://ipv6tb.he.net/"/>。「6to4 tunnels」という人気のフリーソフトもある。 </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-A</option> (アグレッシブ・スキャンオプション) + </term> + <listitem> + <para>このオプションは、Additional(付加的)、Advanced(高度)、Aggressive(アグレッシブ)なオプションを有効にする。だが、このうちのどれを表すのかはまだ明確には決めていない。現在はこのオプションを指定すると、OS検出(<option>-O</option>)とバージョンスキャン(<option>-sV</option>)を実行できる。今後、さらに多くの機能が追加されるだろう。ポイントは、ユーザが数多くのフラグをまとめて覚えなくても済むように、複数のスキャンオプションを包括的にまとめて実行できるようにすることである。このオプションが有効にするのは機能のみで、同じくそうしたいと思われるタイミングオプション(例えば<option>-T4</option>)や冗長オプション(<option>-v</option>)などは、有効にならない。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--datadir <replaceable>directoryname</replaceable></option> (Nmapの特別データファイルの位置を指定する) + </term> + <listitem> + <para>Nmapは、実行時に特別なデータを、<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>、<filename moreinfo="none">nmap-os-fingerprints</filename>という名前のファイルに取得する。Nmapはまず、(ある場合は)<option>--datadir</option> オプションで指定したディレクトリ内で、これらのファイルを探す。ここで見つからなかったファイルは、「NMAPDIR」環境変数で指定したディレクトリから検索する。次に、実在する有効なUID(POSIXシステムの場合)やNmapの実行ファイル(Win32の場合)が格納されているディレクトリの<filename moreinfo="none">~/.nmap</filename> を探し、その次に、組み込みディレクトリの<filename moreinfo="none">/usr/local/share/nmap</filename> や<filename moreinfo="none">/usr/share/nmap</filename>を探す。それでもない場合は最後の手段として、Nmapはカレントディレクトリを検索する。</para> + </listitem> + </varlistentry> + + <!-- Missing options: -/-servicedb -/-versiondb --> + <varlistentry> + <term> + <option>--send-eth</option> (raw(生の)イーサネット層で送信する) + </term> + <listitem> + <para>Nmapが、上層のIP(ネットワーク)層ではなくて、rawイーサネット(データリンク)層でパケットを送信するようにする。デフォルトでは通常、Nmapは動作しているプラットフォームに最適の層を選ぶようになっている。raw ソケット (IP層)は一般に、UNIXマシンには最適であるが、マイクロソフト社がraw ソケットに対応する機能を無効にしているため、Windows OSにはイーサネットフレームが必要になる。Nmapは、他に選択肢がない(非イーサネット接続などの)場合は、このオプションがあるにもかかわらずUNIX上ではいまだにraw IPパケットを使用する。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-ip</option> (raw IPレベルで送信する) + </term> + <listitem> + <para>Nmapがパケットを送信するのに、下位のイーサネットフレームではなくて、raw IPソケットを介して送るようにする。これは、上で述べた<option>--send-eth</option>を補完するオプションである。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--privileged</option> (ユーザが十分な権限を持つことを想定する) + </term> + <listitem> + <para>Nmapが、通常はUNIXシステム上のroot権限を必要とする操作を行うのに十分な特権を持つことを想定する。こうした操作には、生ソケットの送信やパケット盗聴などがある。デフォルトでは、Nmapはこのような操作が要求された場合でも、geteuid()がゼロでなければ実行を中止するようになっている。<option>--privileged</option> は、Linuxカーネル機能や、権限のないユーザが生パケットスキャンを実行できるように設定可能な同様のシステムとともに用いると便利である。注意点は、このオプションフラグを、特権を必要とするオプション(SYNスキャンやOS検出など)より前に指定することだ。<option>--privileged</option>オプションに相当する別の方法には、「NMAP_PRIVILEGED」変数の設定がある。</para> + </listitem> + </varlistentry> + + <!-- Missing options: -/-unprivileged -/-release-memory --> + <varlistentry> + <term> + <option>-V</option>; <option>--version</option> (バージョン番号を表示する) + </term> + <listitem> + <para>Nmapのバージョン番号を書き出して終了する。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-h</option>; <option>--help</option> (ヘルプのサマリーページを表示する) + </term> + <listitem> + <para>最も一般的なコマンドフラグについての短いヘルプ画面を表示する。Nmapを引数なしで実行しても同様の結果が得られる。</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-runtime-interaction"> + <title>実行時の対話型操作</title> + + <para><remark>この機能はまだNmapに存在しない。この項は内容を追加するか削除する必要がある。</remark></para> + + <para>Nmapの実行中に、すべてのキープロセスをキャプチャする。これにより、停止して再開という手順を経ないでも、プログラムとの情報のやり取りが可能になる。特定の特殊キーで、オプションを変更する。その他のキーは、スキャンに関する情報を伝えるステータスメッセージを表示する。仕様としては、<emphasis>小文字は書き出される情報量を増やし</emphasis>、<emphasis>大文字は減らす</emphasis>。</para> + <variablelist> + <varlistentry> + <term> + <option>v</option> / <option>V</option> + </term> + <listitem> + <para>冗長レベルを上げる / 下げる</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>d</option> / <option>D</option> + </term> + <listitem> + <para>デバッグレベルを上げる / 下げる</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>p</option> / <option>P</option> + </term> + <listitem> + <para>パケット追跡を有効にする / 無効にする</para> + </listitem> + </varlistentry> + <!-- Missing key: '?' --> + <varlistentry> + <term> + その他 + </term> + <listitem> + <para>書き出されるステータスメッセージは以下のようになる:</para> + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), + 5 undergoing Service Scan</para> + <para>Service scan Timing: About 28.00% done; ETC: 16:18 + (0:00:15 remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-examples"> + <title>使用例</title> + <para>以下に、Nmapの使用例を、単純なものからやや複雑で難解なものまでいくつか示した。例で使用したIPアドレスやドメイン名は、あくまでも具体性を持たせることが目的であるため、実際のスキャンでは、それらを<emphasis>自分のネットワーク</emphasis>のアドレスまたはホスト名で置き換えることに注意する。筆者は個人的に、他人のネットワークに対してポートスキャンを実行することは違法行為には当たらないと見ているが、ネットワーク管理者のなかには、自分のネットワークを勝手にスキャンされるのを快く思わずに苦情を訴える者もいるかもしれない。最初に許可を得たほうが得策である。</para> + + <para>ユーザには、テスト目的で、ホスト<literal moreinfo="none">scanme.nmap.org</literal>をスキャンする許可が与えられている。この許可の対象は、Nmapによるスキャンに限定されるものであり、エクスプロイトやサービス妨害攻撃のテストは含まれない。帯域幅を節約するために、このホストに対するスキャンは、一日につき十数回以上は行わないようにすること。このフリーのスキャン対象提供サービスが悪用された場合、サービスは停止され、Nmapは<computeroutput moreinfo="none">Failed to resolve given hostname/IP: scanme.nmap.org</computeroutput>(指定したホスト名/IP:scanme.nmap.orgの解決に失敗しました)という報告を出す。これらの許可は、<literal moreinfo="none">scanme2.nmap.org</literal>、<literal moreinfo="none">scanme3.nmap.org</literal>等の各ホストにも適用されるが、これらのホストは、現在は存在しない。 </para> + + <para> + <userinput moreinfo="none">nmap -v scanme.nmap.org</userinput> + </para> + <para>このオプションを利用すると、<literal moreinfo="none">scanme.nmap.org</literal>というマシン上の予約済みTCPポートすべてに対してスキャンを実行する。また、<option>-v</option>が指定されているため、冗長モードが有効になる。</para> + <para> + <userinput moreinfo="none">nmap -sS -O scanme.nmap.org/24</userinput> + </para> + <para>scanme.nmap.orgが属している<quote>クラスC</quote>ネットワーク上のマシン255台のうちで稼動している各マシンに対して、SYNスキャン(ステルススキャン)を実行する。また、稼動中の各ホスト上で動作しているOSの特定も同時に試行する。SYNスキャンとOSの検出を行うため、root権限が必要となる。</para> + <para> + <userinput moreinfo="none">nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</userinput> + </para> + + <para>198.116のクラスBアドレス空間で、8ビットで表せる255のサブネットに属するホストのうち、前半(1-127)のIPアドレスを持つホストに対して、ホストの列挙とTCPスキャンを行う。このスキャンを行う目的は、対象システムでsshd、DNS、POP3d、IMAPd、4564番ポートが動作しているかどうかを調査することだ。これらのポートのなかで開いている(open)ことが判明したポートすべてに対してバージョン検出を使用して、何のアプリケーションが動作しているかを特定する。</para> + + <para> + <userinput moreinfo="none">nmap -v -iR 100000 -Pn -p 80</userinput> + </para> + + <para>Nmapは100,000台のホストを無作為に選び、Webサーバ(80番ポート)のスキャンを行う。ホストの列挙は<option>-Pn</option> で無効にしてある。各ターゲットホスト上で1つのポートしか調査しないのに、どのホストが稼動中であるかを特定するためにプローブを送るのは無駄だからだ。</para> + + <para> + <userinput moreinfo="none">nmap -Pn -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</userinput> + </para> + <para>4096個のIPをスキャンしてWebサーバを見つけ出し(pingなしで)、結果出力をgrep可能およびXMLフォーマットで保存する。</para> + + <para> + <userinput moreinfo="none">host -l company.com | cut -d -f 4 | nmap -v -iL + -</userinput> + </para> + + <para>company.comに存在するホストを発見するためにDNSのゾーン転送を実行し、発見したIPアドレスをnmapに渡す。このコマンドは、筆者のGNU/Linuxマシンで使用しているものだ。他のシステムには、ゾーン転送を実行するための別のコマンドがある。</para> + + </refsect1> + + <!-- Missing section id='man-book' --> + <refsect1 id="man-bugs"> + <title>バグ</title> + + <!-- Outdated info: need information about Github here --> + <para>Nmapも作者と同様に完全ではない。それでもNmapのほうは、ユーザによるバグの報告やパッチの作成のおかげで、よりよいものにしてゆくことができる。Nmapを使っていて、思い通りに動かない場合は、まず<ulink url="https://nmap.org/"/>から入手できる最新のバージョンにアップグレードしてみる。問題が続くようなら、すでに発見・対処が行われた問題かどうかを調査して確かめる。エラーメッセージをGoogle検索したり、<ulink url="https://seclists.org/"/>でNmap-devアーカイブを閲覧したりしてみる。このmanページも全体に目を通した方がよい。それでもどうにもならない場合は、バグレポートを<email>dev@nmap.org</email>宛てにメールで送ること。メールには、使用しているNmapのバージョンと、Nmapを実行しているOSの名前とバージョンなどの情報だけでなく、問題に関して分かったことは何でも書いていただきたい。問題の報告やNmapの使い方についての質問などは、dev@nmap.org宛てに送るほうが、筆者宛てに直接送るよりも返事がある可能性ははるかに高い。 </para> + + <para>またバグレポートより、バグを修正するためのコードパッチのほうが歓迎される。ユーザ自身のコード変更によるパッチファイルの作成方法についての基本的な注意事項は<ulink url="https://nmap.org/data/HACKING"/> で参照できる。パッチは、nmap-dev宛てに送る(推奨)か、筆者Fyodorまで直接送っていただきたい。</para> + </refsect1> + + <refsect1 id="man-author"> + <title>作者</title> + <para>Fyodor + <email>fyodor@nmap.org</email> + (<ulink url="http://www.insecure.org"/>) + </para> + <para>翻訳者</para> + <para> + 修正(2022/7):Taichi Kotake, a.k.a tkmru + <email>taichi.kotake@sterrasec.com</email> + </para> + <para>ここ数年で何百人もの人々から、Nmapに対して貴重な貢献をしていただいた。この詳細については、Nmapとともに配布されている<filename moreinfo="none">CHANGELOG</filename>ファイルを参照のこと。CHANGELOGファイルは以下からも入手できる:<ulink url="https://nmap.org/nmap_changelog.html"/></para> + + </refsect1> + + <refsect1 id="man-legal"> + <title>法的通知事項</title> + +<refsect2> + <title>著作権と使用許諾</title> + <!-- Outdated info: Should refer users to English version for up-to-date legal information --> + +<para>Nmapセキュリティスキャナの著作権は、Insecure.Com LLCに帰属している(1996-2005)。また、Nmapは、Insecure.Com LLCの登録商標。このプログラムはフリーソフトウェアであり、Free Software Foundation(FSF)が発行するGNU一般公衆利用許諾契約書のバージョン2で定められている条件に従い、再配布、改変することが可能である。これは、特定の条件下でNmapを使用、改変、再配布する権利を保証するものである。Nmapの技術を独自仕様のソフトウェアに組み込むことを希望する場合は、喜んで別の形態のライセンスを販売する(その際は、<email>sales@insecure.com</email>に連絡)。多くのセキュリティスキャナのベンダーは、ホスト発見、ポートスキャン、OS検出、サービス/バージョンの検出などの、Nmap技術のライセンスを受けている。</para> + +<para>GPL(一般公有使用許諾)は、<quote>派生著作物</quote>に対して重要な制約を課していることに注意する必要がある。けれども、この用語の詳細な定義はいまだに与えられていない。ここでは誤解を避けるため、以下のいずれかの事項が行われた場合に、アプリケーションが、GPLにおける<quote>派生著作物</quote>を構成するものと見なす:</para> + +<itemizedlist> +<listitem><para>Nmapのソースコードを統合する</para></listitem> +<listitem><para><filename moreinfo="none">nmap-os-fingerprints</filename> や <filename moreinfo="none">nmap-service-probes</filename>などの、Nmapの著作権のあるデータファイルを読み込む</para></listitem> +<listitem><para>Nmapを実行して結果を解析処理する(通常のシェルや実行メニューのアプリケーションとは異なる。これらは未処理のNmap出力を単に表示するだけなので、派生著作物にはならない)</para></listitem> +<listitem><para>InstallShield社の製品のような独自開発の実行可能インストーラに統合/組込/集約する</para></listitem> +<listitem><para>上で述べたことを行うような、ライブラリにリンクしたりプログラムを実行したりする</para></listitem> +</itemizedlist> + +<para><quote>Nmap</quote>という用語は、Nmapの一部あるいは派生物を含めるために用いられるべきである。このリストは排他的な性質のものではなく、一般的な例を用いて、派生著作物の解釈を明確にすることを意図したものである。これらの制約事項は、実際にNmapを再配布する場合にのみ適用される。例えば、Nmap向けの独自開発フロントエンドを作成して販売することには何ら支障はない。ただし、その製品を単体で配布することと、ユーザにNmapのダウンロード先として以下を示すことが必要である:<ulink url="https://nmap.org/"/></para> + +<para>われわれはこれらを、GPLにさらに追加された制約とは見なしていない。そうではなくて、<quote>派生著作物</quote> という用語がGPL準拠のNmap製品に適用される場合に、それをどのように解釈するかを明確にするためのものと見なしている。これは、Linus Torvalds氏が、Linuxカーネルモジュールに<quote>派生著作物</quote> がどのように適用されるかについての自分の解釈を表明したやり方に似ている。われわれの解釈はNmapだけに言及するもので、その他のGPL製品について述べているわけではない。</para> + +<para>GPL準拠でない著作物におけるNmapの使用に対する、GPLライセンスによる制約について質問がある場合は喜んでお答えするつもりだ。上で述べたように、独自開発のアプリケーションやアプライアンスにNmapを統合するための代替ライセンスも提供している。このライセンス契約はすでに多くのセキュリティベンダに販売されており、その内容には通常、永久ライセンス、サポートやアップデートの優先提供、Nmap技術の開発継続のための資金援助などが含まれている。詳細については電子メールで<email>sales@insecure.com</email> に問い合わせていただきたい。</para> + +<para>Insecure.Com LLCは、GPLの取り決めに対する特例として、NmapのコードとOpenSSLライブラリとのリンクを認めており、この2つをリンクで組み合わせたものを配布している。OpenSSLライブラリは、同梱のCopying.OpenSSLファイルにリストされたものと同一のライセンスのもとで配布されている。OpenSSL以外の使用されているすべてのコードに対しては、あらゆる点でGNU GPLに従わなければならない。このファイルの一部を変更する場合、そのファイルの自身のバージョンにこの例外を拡大して適用できるが、そのように行う義務を負うものではない。</para> + +<para>上記の条件以外の条件が記載されたライセンス契約書とともにこれらのファイルを入手した場合、そのライセンス契約書は、ここで述べた内容に優先する。</para> +</refsect2> + +<refsect2> + <title>ソースコードの入手可能性とコミュニティへの寄与</title> + +<para>われわれは、ユーザーにこのプログラムのソースコードを提供している。その理由は、ユーザが実際にプログラムを実行する前に、そのプログラムがどんな動作を行うのかを正確に知る権利がある、と考えているからだ。また、ソフトウェアに対して脆弱性を見つけるための監査を行うこともできる(まだ1つも見つかったことはないが)。</para> + +<para>ソースコードは、新しいプラットフォームへの移植、バグの修正、新しい機能の追加を可能にする。コードに何らかの変更を加えた場合は、主要ディストリビューションに組み込まれる可能性もあるため、その内容を<email>fyodor@nmap.org</email> までぜひお送りいただきたい。ただし、変更したコードをFyodorまたはInsecure.orgの開発用メーリングリストの1つに送信することで、そのコードを無制限かつ非独占的に再利用、改変、再ライセンスする権利をFyodorおよびInsecure.Com LLCに提供するものと見なす。Nmapは常にオープンソースで利用できるようにする予定だが、これが重要なのは、コードのライセンス再発行ができなかったことで、他のフリーソフトウェア・プロジェクト(KDEやNSAMなど)に壊滅的な問題が発生したことがあったためである。また上で述べた通り、サードパーティに対してコードの再ライセンスを行こともある。自分が寄与したコードに特別なライセンス条件を指定したい場合は、コードの送信時にその旨を伝えて欲しい。</para> +</refsect2> + +<refsect2><title>無保証</title> + +<para>このプログラムは、人々の役に立つことを期待して配布されているが、その保証は一切行わない。すなわち、商品適格性や特定目的への適合性の黙示保証は一切行わない。詳細については、GNU一般公有使用許諾契約書を参照のこと。GNU GPLは、 <ulink url="http://www.gnu.org/copyleft/gpl.html"/>から、またはNmapに同梱のCOPYINGファイルで参照できる。</para> + +<para>またNmapは、不完全なアプリケーション、TCP/IPスタック、OSなどをクラッシュさせることが確認されていることに注意すること。きわめてまれなこととはいえ、記憶に留めておく必要がある。ダウンタイムを受容する準備ができていない限り、<emphasis>Nmapをミッションクリティカルなシステムに対して実行してはならない</emphasis> 。Nmapがシステムやネットワークに障害を与える可能性がある点については認めたうえで、Nmapの使用により発生しうるいかなる損害や問題に対しても一切の責任を負わないものとする。</para> +</refsect2> + +<refsect2><title>不適切な使用</title> +<para>システム障害のリスクがわずかながらあることや、悪意のある攻撃者が攻撃を実行する前の調査手段としてNmapを好んで利用することなどのせいで、管理しているシステムがスキャンされると気分を害し、場合によっては苦情を申し立てる管理者もいる。従って、たとえネットワークを軽くスキャンする際も、事前に管理者の許可を取っておくことを推奨する。</para> + +<para>セキュリティ上の理由から、Nmapは特権(suid rootなど)でインストールしてはならない。</para> +</refsect2> + +<refsect2><title>サードパーティ ソフトウェア</title> +<para>Nmapには、 <ulink url="http://www.apache.org">Apache Software Foundation</ulink> によって開発されたソフトウェアが含まれており、改訂版の<ulink url="http://www.tcpdump.org">Libpcap +portable packet capture library</ulink> が、Nmapとともに配布されている。Windows版Nmapでは、libpcapより派生した<ulink url="http://www.winpcap.org">WinPcap ライブラリ</ulink>が用いられる。正規表現のサポートは、Philip Hazel氏作成のオープンソースのソフトウェアである <ulink url="http://www.pcre.org">PCRE ライブラリ</ulink>パッケージで提供されている。特定のRAWネットワーク機能では、Dug Song氏作の<ulink url="http://libdnet.sourceforge.net">Libdnet</ulink>ネットワークライブラリが使用される。修正バージョンが、Nmapとともに配布されている。Nmapはオプションで、SSLバージョン検出をサポートするために、 <ulink url="http://www.openssl.org">OpenSSL 暗号化ツールキット</ulink> とリンクできる。ここで述べたすべてのサードパーティ・ソフトウェアは、BSD方式のソフトウェアライセンスのもとで、自由に再配布できる。 </para> +</refsect2> + +<refsect2><title>米国輸出管理分類</title> +<para>米国輸出管理:Insecure.Com LLCでは、NmapはUS ECCN(輸出管理分類番号)5D992に該当すると考えている。5D992に分類されるものは、<quote>5D002で規制されない情報セキュリティソフトウェア</quote>となっており、この分類に唯一適用される規制は、AT(テロ防止)規制である。ATは、ほぼすべての物品に適用され、イランや北朝鮮などの少数の無法国家への輸出を禁止する規制である。このため、Nmapの輸出には、特別なライセンスや許可、あるいは政府の承認を一切必要としない。</para> +</refsect2> + + </refsect1> +</refentry> + +</article> diff --git a/docs/man-xlate/nmap-man-pl.xml b/docs/man-xlate/nmap-man-pl.xml new file mode 100644 index 0000000..5b62c84 --- /dev/null +++ b/docs/man-xlate/nmap-man-pl.xml @@ -0,0 +1,3278 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- $Id: manhtml.xml 2991 2005-12-12 10:21:33Z fyodor $ --> +<article id="man" lang="pl"> +<artheader> + <title>Opis programu Nmap</title> +</artheader> +<refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Opis programu Nmap</refmiscinfo> + </refmeta> + <refnamediv id="man-name"> + <refname>nmap</refname> + <refpurpose>Narzędzie do eksploracji sieci i skaner portów/zabezpieczeń</refpurpose> + </refnamediv> + <!-- body begins here --> + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis sepchar=" "> + <command moreinfo="none">nmap</command> + <arg choice="opt" rep="repeat"> + <replaceable>Typ Skanowania</replaceable> + </arg> + <arg choice="opt" rep="norepeat"> + <replaceable>Opcje</replaceable> + </arg> + <arg choice="req" rep="norepeat"> + <replaceable>specyfikacja celu</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1 id="man-description"> + <title>Opis</title> + <web> + <note><para> + Dokument ten opisuje Nmap wersji 3.95. Najnowsza dokumentacja jest dostępna w języku angielskim na + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + + <para>Nmap (ang. <quote>Network Mapper</quote>) jest narzędziem open source + do eksploracji sieci i audytów bezpieczeństwa. Został zaprojektowany do + szybkiego skanowania dużych sieci, ale również działa dobrze w stosunku do + pojedynczych adresów. Nmap wykorzystuje niskopoziomowe pakiety IP do + wykrywania które adresy są dostępne w sieci, jakie udostępniają usługi + (nazwa aplikacji i wersja), na jakich systemach operacyjnych pracują (wersja + systemu), jakie typy systemów zaporowych (firewall) są wykorzystywane i + dziesiątek innych cech. Nmap jest powszechnie wykorzystywany do audytów + bezpieczeństwa, również wielu administratorów sieci i systemów wykorzystuje + go wykonywania rutynowych czynności, takich jak inwentaryzacja zasobów sieci, + zarządzanie aktualizacjami oprogramowania i monitorowania systemów oraz ich + czasu działania (uptime).</para> + + <para>Wynikiem działania Nmapa jest lista przeskanowanych adresów z + dodatkowymi informacjami zależnymi od wykorzystanych opcji. Jedną z + głównych informacji jest <quote>lista interesujących portów</quote>. + Zawiera ona numery portów wraz z protokołami, nazwami usługi i + wykrytym stanem. Stan może zostać opisany jako + <literal moreinfo="none">otwarty</literal>, + <literal moreinfo="none">filtrowany</literal>, + <literal moreinfo="none">zamknięty</literal>, lub + <literal moreinfo="none">niefiltrowany</literal>. + Otwarty oznacza, że aplikacja na badanym adresie oczekuje na + połączenia/pakiety przychodzące na ten port. + <literal moreinfo="none">Filtrowany</literal> oznacza, że system zaporowy + lub inne urządzenie blokujące ruch sieciowy nie dopuszcza + komunikacji do tego portu i z tego powodu Nmap nie jest w stanie określić + czy badany port jest <literal moreinfo="none">otwarty</literal> czy + <literal moreinfo="none">zamknięty</literal>. + <literal moreinfo="none">Zamknięty</literal> port nie posiada aplikacji, + która obsługuje komunikację sieciową. Porty sklasyfikowane jako + <literal moreinfo="none">niefiltrowane</literal> odpowiadały na zapytania + Nmapa, jednak nie było możliwe określenie, czy były one otwarte czy + zamknięte. Nmap raportuje kombinacje stanów + <literal moreinfo="none">otwarty|filtrowany</literal> i + <literal moreinfo="none">zamknięty|filtrowany</literal> jeśli nie jest w + stanie określić, który z dwóch podanych stanów lepiej opisuje stan portu. + Lista portów może również zawierać informacje o wykrytych wersjach + oprogramowania, jeśli została włączona detekcja wersji. Jeśli została + wybrana opcja skanowania dostępnych protokołów (<option>-sO</option>), + Nmap zamiast listy portów dostarczy informacji na temat dostępności + poszczególnych protokołów IP.</para> + + <para>Poza listą interesujących portów, Nmap może dostarczyć dodatkowych + informacje na temat badanych adresów, takich jak odwrotne nazwy DNS, + prawdopodobne systemy operacyjne, typu urządzeń i adresy sprzętowe + MAC.</para> + + <para>Typowy wynik skanowania Nmapa jest przedstawiony w + <xref linkend="man-ex-repscan"/>. W tym przypadku wykorzystano tylko opcję + <option>-A</option>, wykrywającą wersje systemu operacyjnego, + <option>-T4</option> dla szybszego działania i dwa adresy docelowe.</para> + +<example id="man-ex-repscan"><title>Przykładowe wyniki skanowania Nmapa</title> +<screen format="linespecific"> +# nmap -A -T4 scanme.nmap.org playground + +Starting nmap ( https://nmap.org/ ) +Interesting ports on scanme.nmap.org (205.217.153.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2.0.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2.4.X|2.5.X|2.6.X +OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 +Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground.nmap.org (192.168.0.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios-ssn +389/tcp open ldap? +445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds +1002/tcp open windows-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H.323/Q.931 CompTek AquaGateKeeper +5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3.8) +MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds + +</screen> +</example> + +<para>Najnowszą wersję Nmapa można pobrać z +<ulink url="https://nmap.org/"/>. Najnowsza wersja dokumentacji man +jest dostępna pod adresem +<ulink url="https://nmap.org/man/"/>.</para> + + </refsect1> + + <refsect1 id="man-translator"> + <title>Uwagi do tłumaczenia</title> + <para>Przemysław Galczewski + <email>sako(at)avet.com.pl</email> + (<ulink url="http://www.avet.com.pl"/>) + </para> + + <para>Dokument ten zawiera nieoficjalne polskie tłumaczenie + <ulink url="https://nmap.org/man/">oryginalnej dokumentacji + Nmapa</ulink> w wersji 2991. Dołożyłem wszelkich starań, aby było ono jak + najbardziej zbliżone do oryginału, a przy tym fachowe i zrozumiałe. + Nie jest przy tym gwarantowane, że jest ono tak samo dokładne i aktualne jak + oficjalna wersja angielska. Dokument ten może być modyfikowany i + rozpowszechniany na zasadach <ulink + url="http://creativecommons.org/licenses/by/2.5/">Creative + Commons Attribution License</ulink>. + Polska wersja tego dokumentu jest dostępna w formatach + <ulink url="https://nmap.org/man/pl/">HTML</ulink>, + <ulink url="https://nmap.org/data/man-xlate/nmap-pl.1">NROFF</ulink> i + <ulink url="https://nmap.org/data/man-xlate/nmap-man-pl.xml">XML</ulink>. + Wszelkie uwagi + dotyczące tłumaczenia proszę kierować bezpośrednio do mnie.</para> + + </refsect1> + + <refsect1 id="man-briefoptions"> + <title>Skrócona lista opcji</title> + +<para>Skrócona lista opcji jest wyświetlana przy uruchomieniu Nmapa bez +dodatkowych parametrów, a jej najnowsza wersja jest zawsze dostępna pod adresem +<ulink url="https://nmap.org/data/nmap.usage.txt"/>. +Skrócona lista pozwala łatwiej zapamiętać najpopularniejsze opcje, ale +nie zastąpi wgłębienia sie w resztę tej dokumentacji. +Wiele z pozostałych opcji nie jest nawet zawartych na liście skróconej.</para> + +<para> +<literallayout format="linespecific" class="normal">Użycie: nmap [Typ(y) skanowania] [Opcje] {specyfikacja celu} +SPECYFIKACJA CELU: + Można podać nazwy hostów, adresy IP, sieci, itp. + Przykłady: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 + -iL <plik_wejściowy>: Odczytanie listy hostów/sieci z pliku + -iR <ilość hostów>: Wybranie losowych adresów + --exclude <host1[,host2][,host3],...>: Wyłączenie hostów/sieci + --excludefile <plik_wyłączeń>: Wyłączenie listy hostów/sieci z pliku +WYKRYWANIE HOSTÓW: + -sL: Lista skanowania - tylko wyświetla listę hostów do skanowania + -sP: Skanowanie Ping - tylko wykrywanie dostępności hostów + -P0: Traktuj wszystkie hosty jako dostępne - pomijanie wykrywania + -PS/PA/PU [lista_portów]: Wykrywanie TCP SYN/ACK lub UDP na wybranych portach + -PE/PP/PM: Zykrywanie za pomocą ICMP echo, timestamp, zapytania o maskę sieci + -n/-R: Nie używaj zapytań DNS/Zawsze odpytuj DNS [domyślnie: czasami] + --dns-servers <serv1[,serv2],...>: Używaj określonych serwerów DNS + --system-dns: Używaj systemowych ustawień DNS +TECHNIKI SKANOWANIA: + -sS/sT/sA/sW/sM: Skanowania TCP SYN/Connect()/ACK/Window/Maimon + -sN/sF/sX: Skanowania TCP Null, FIN i Xmas + --scanflags <flagi>: Ręczne narzucanie flag TCP + -sI <host zombie[:port]>: Idlescan + -sO: Skanowanie protokołów IP + -b <host pośredni ftp>: Skanowanie FTP bounce +SPECYFIKACJA PORTÓW I KOLEJNOŚCI SKANOWANIA: + -p <zakres portów>: Skanuj tylko podane porty + Przykład: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 + -F: Szybkie skanowanie - tylko porty zawarte w pliku nmap-services + -r: Skanuj porty kolejno - wyłączenie losowania kolejności +DETEKCJA USŁUG/WERSJI: + -sV: Wykrywaj wersję usługi na otwartych portach + --version-intensity <poziom>: Od 0 (tylko niektóre) do 9 (Używaj wszystkich testów) + --version-light: Limituj do najpopularniejszych testów (poziom 2) + --version-all: Używaj wszystkich testów (poziom 9) + --version-trace: Pokazuj dokładne informacje podczas skanowania (do usuwania błędów) +DETEKCJA OS: + -O: Włączenie wykrywania systemu operacyjnego + --osscan-limit: Limitowanie wykrywania OS do obiecujących hostów + --osscan-guess: Zgaduj wersję OS bardziej agresywnie +WYDAJNOŚĆ I ZALEŻNOŚCI CZASOWE: + -T[0-5]: Ustaw szablon (wyższy jest szybszy) + --min-hostgroup/max-hostgroup <rozmiar>: Rozmiary grup do równoległego skanowania + --min-parallelism/max-parallelism <ilość_prób>: Zrównoleglenie testów + --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Specyfikuje czas testów + --max-retries <ilość>: Ustala ilość możliwych powtórzeń testu + --host-timeout <msec>: Pomijaj po zadanym czasie + --scan-delay/--max-scan-delay <msec>: Ustalenie opóźnienia pomiędzy testami +OPCJE FIREWALL/IDS: + -f; --mtu <wartość>: fragmentacja pakietów (opcjonalnie z podanym MTU) + -D <decoy1,decoy2[,ME],...>: Ukrywaj skanowanie za pomocą innych hostów + -S <Adres_IP>: Podmieniaj adres nadawcy + -e <interfejs>: Używaj podanego interfejsu + -g/--source-port <portnum>: Używaj podanego portu źródłowego + --data-length <num>: Dodawaj losowe dane do wysyłanych pakietów + --ttl <wartość>: Ustaw czas życia pakietów + --spoof-mac <adres mac/prefix/producent>: Podmieniaj adres MAC + --badsum: Wysyłaj pakiety z nieprawidłową sumą kontrolną TCP/UDP +WYJŚCIE: + -oN/-oX/-oS/-oG <plik>: Zapisz wyniki w podanym pliku normalnie, w XML, s|<rIpt kIddi3 + i formacie grepowalnym + -oA <nazwabazowa>: Zapisz wyniki w trzech formatach jednocześnie + -v: Podwyższenie poziomu raportowania (podwójne użycie powiększa efekt) + -d[poziom]: Ustaw lub podwyższ poziom debugowania (do najwyższego 9) + --packet-trace: Pokazuj wszystkie wysyłane i odbierane pakiety + --iflist: Wyświetl listę interfejsów i routingu (do wykrywania błędów) + --append-output: Dołącz nowe wyniki do już istniejących w pliku + --resume <nazwapliku>: Wznów przerwane skanowanie + --stylesheet <ścieżka/URL>: plik styli XSL do konwersji wyników w XML do formatu HTML + --webxml: Domyślny styl z Insecure.Org + --no-stylesheet: Wyłączenie dodawania styli do plików z wynikami XML +RÓŻNE: + -6: Włączenie skanowania IPv6 + -A: Włączenie detekcji OS i wersji usług + --datadir <katalog>: Podanie katalogu z plikami danych Nmapa + --send-eth/--send-ip: Wysyłaj za pomocą ramek ethernet lub pakietów IP + --privileged: Zakładaj że użytkownik ma odpowiednie uprawnienia + -V: Wyświetl numer wersji Nmapa + -h: Wyświetl stronę pomocy +PRZYKŁADY: + nmap -v -A scanme.nmap.org + nmap -v -sP 192.168.0.0/16 10.0.0.0/8 + nmap -v -iR 10000 -P0 -p 80 +</literallayout> + +</para> + + </refsect1> + + <refsect1 id="man-target-specification"> + <title>Specyfikacja celu</title> + +<para>Wszystko co nie jest opcją Nmapa w parametrach wywołania (lub jej +argumentem) jest traktowane jako specyfikacja celu skanowania. +Najprostszym przypadkiem jest sam adres do przeskanowania.</para> + +<para>Czasami chcesz przeskanować całą sieć, dlatego Nmap obsługuje format +CDIR. Możesz dołączyć do adresu /<replaceable>ilośćbitów</replaceable> i nmap +przeskanuje każdy adres, który zawiera się w podanym zakresie. +Na przykład, 192.168.10.0/24 przeskanuje 256 adresów pomiędzy 192.168.10.0 +(binarnie: <literal moreinfo="none">11000000 10101000 00001010 +00000000</literal>) i 192.168.10.255 (binarnie: +<literal moreinfo="none">11000000 10101000 00001010 11111111</literal>) +włącznie. Podanie 192.168.10.40/24 spowoduje dokładnie takie samo zachowanie. +Załóżmy, że host scanme.nmap.org ma adres 205.217.153.62, podanie +scanme.nmap.org/16 spowoduje przeskanowanie 65,536 adresów IP pomiędzy +205.217.0.0 i 205.217.255.255. Najmniejszą dopuszczalna wartość to /1, +co stanowi połowę Internetu. Największa wartość to 32, która oznacza +skanowanie pojedynczego adresu IP.</para> + +<para>Notacja CIDR jest krótka i zwięzła, jednak nie zawsze wystarczająco +elastyczna. Na przykład, chcesz przeskanować 192.168.0.0/16 z pominięciem +wszystkich adresów kończących się .0 i .255, ponieważ są one najczęściej +adresami typu broadcast. Nmap obsługuje to poprzez podawanie zakresów adresów +za pomocą oktetów. Zamiast podawać normalny adres IP, możesz podać listę +adresów lub zakresów oddzieloną przecinkami. Na przykład 192.168.0-255.1-254 +pominie wszystkie adresy kończące się .0 lub .255. +Zakresy nie są limitowane do końcowych oktetów: podanie 0-255.0-255.13.37 +pozwoli na przeskanowanie wszystkich adresów kończących się 13.37. Tego typu +skanowania mogą być przydatne podczas przeprowadzania badań Internetu.</para> + +<para>Adresy IPv6 mogą być podawane jedynie w pełnej formie IPv6 lub nazwy +hosta. Zapis z wykorzystaniem CIDR i zakresów nie jest obsługiwany przy IPV6, +jednak rzadko byłoby to przydatne.</para> + +<para>Nmap akceptuje podawanie wielu hostów w linii poleceń i nie muszą one +być tego samego typu. Komenda <command moreinfo="none">nmap scanme.nmap.org +192.168.0.0/8 10.0.0,1,3-7.0-255</command> zrobi to co powinna.</para> + +<para>Zwykle adresy są podawane w linii poleceń, jednak poniższe opcje +pozwalają na alternatywną specyfikację celu:</para> + + <variablelist> + <varlistentry> + <term> + <option>-iL <plik_wejściowy></option> (Odczytanie z pliku) + </term> + <listitem> + <para>odczytuje specyfikację celu z pliku + <replaceable>plik-wejściowy</replaceable>. Podawanie długiej listy + adresów z linii poleceń jest dosyć niewygodne. Na przykład Twój + serwer DHCP może posiadać listę 10,000 aktualnie dzierżawionych + adresów, które chcesz przeskanować. Możliwe również, że chcesz + przeskanować wszystkie adresy IP z <emphasis>wykluczeniem</emphasis> + aktualnie dzierżawionych aby uzyskać listę nielegalnie przypisanych + adresów statycznych. Po prostu wygeneruj listę adresów i podaj ją + Nmapowi jako argument do parametru <option>-iL</option>. + Poszczególne definicje mogą być zgodne z dowolnym formatem + akceptowanym przez Nmapa w linii poleceń (adres IP, nazwa, CIDR, + IPv6 lub zakres). Każdy wpis musi być oddzielony od następnego za + pomocą jednej (lub wiecej) spacji, znaków tabulacji lub znaków + nowej linii. Możesz również podać znak + (<literal moreinfo="none">-</literal>) zamiast nazwy pliku jeśli + chesz aby Nmap pobrał adresy ze standardowego wejścia zamiast z + pliku.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-iR <ilość hostów></option> (Wybierz losowe cele) + </term> + <listitem> + <para>Do przeprowadzania badań Internetu, możesz używać wyboru + losowych adresów. Argument <replaceable>ilość hostów</replaceable> + informuje Nmapa ile losowych adresów ma wygenerować. Adresy prywatne, + typu multicast lub niewykorzystywane są automatycznie pomijane + przy generowaniu. Argument <literal moreinfo="none">0</literal> + pozwala na przeprowadzanie skanowania bez końca. Pamiętaj, że + niektórzy administratorzy nie lubią skanowania ich sieci i może się + im to nie spodobać. Używaj tej opcji na własne ryzyko! Jeśli + poczujesz się naprawdę znudzony w deszczowe popołudnie, wyprubuj + komendę <command moreinfo="none">nmap -sS -PS80 -iR 0 -p + 80</command> do wykrycia losowych serwerów WWW do przeglądania + udostępnianych przez nie stron.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--exclude + <host1[,host2][,host3],...></option> (Wyłączenie hostów/sieci) + </term> + <listitem> + <para>Podana lista celów do wyłączenia z zakresu skanowania, jeśli + wchodzą w zakres aktualnego skanowania. Lista musi być podana + zgodnie ze standardowym formatem akceptowanycm przez Nmapa, więc może + zawierać nazwy, adresy w formacie CDIR, zakresy, itp. Opcja ta jest + przydatna, jeśli sieć którą chcesz przeskanować zawiera systemy + nietykalne lub krytyczne, o których wiadomo, że nie tolerują dobrze + skanowania lub też sieci administrowane przez innych ludzi.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--excludefile <plik_wyłączeń></option> (Lista wyłączeń z pliku) + </term> + <listitem> + <para>Opcja ta oferuje taką samą funkcjonalność jak + <option>--exclude</option> z tą rożnicą, że wykluczone cele + (oddzielone spacjami, znakami tabulacji lub nowej linii) są pobierane + z pliku <replaceable>plik_wyłączeń</replaceable>, a nie z linii + poleceń.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-host-discovery"> + <title>Wykrywanie hostów</title> + + <para>Jednym z pierwszych kroków rekonesansu sieciowego jest redukcja + (czasami ogromnych) zakresów adresów IP do listy aktywnych lub + interesujących hostów. Skanowanie każdego portu na każdym adresie + IP jest wolne i przeważnie niepotrzebne. Oczywiście to co czyni host + interesującym głównie zależy od celu skanowania. Administratorzy sieci + mogą być zainteresowani hostami udostępniającymi określoną usługę podczas + gdy audytorzy bezpieczeństwa mogą chcieć przyjrzeć się każdemu urządzeniu + posiadającemu adres IP. Administratorowi może wystarczać wykorzystanie + pinga ICMP do zlokalizowania hostów w jego wewnętrznej sieci, podczas gdy + audytor przeprowadzający zewnętrzne testy penetracyjne może wykorzystywać + dziesiątki różnych testów do ominięcia reguł filtrowania systemu + zaporowego.</para> + + <para>Ponieważ niezbędne są różne metody wykrywania hostów, Nmap oferuje + szeroki wachlarz opcji pozwalających na wybieranie wykorzystywanych technik. + Wykrywanie hostów często jest zwane skanowaniem Ping, jednak wykracza + daleko poza proste wysyłanie zapytania ICMP echo request znanego z + programu <application moreinfo="none">ping</application>. + Użytkownik może pominąć etap wykrywania poprzez wykorzystanie opcji skanowania + listy (<option>-sL</option>), poprzez wyłączenie pingowania + (<option>-P0</option>) lub wykorzystania różnych kombinacji wieloportowego + badania za pomocą testów TCP SYN/ACK, UDP, i ICMP. Celem tych testów jest + uzyskanie informacji o adresach IP, które są aktualnie dostępne (są + wykorzystywane przez urządzenie sieciowe lub komputer). W przypadku wielu + sieci tylko mały procent wykorzystywanych adresów IP jest równocześnie + aktywnych. Jest to szczególnie powszechne w sieciach prywatnych zgodnych + z adresacją RFC1918, takich jak 10.0.0.0/8. Ta sieć zawiera 16 milionów + adresów IP, ale widziałem nie raz firmy wykorzystujące niecały tysiąc z + nich. Opcja wykrywania hostów pozwala na szybkie wykrycie rzeczywiście + wykorzystywanych adresów IP z całej dostępnej puli.</para> + + <para>Jeśli nie podano opcji wybierającej metodę wykrywania hostów, Nmap + wysyła pakiety TCP ACK na port 80 i zapytanie ICMP Echo Request query + do każdego badanego adresu. Wyjątkiem od tej reguły jest skanowanie + ARP przeprowadzane dla aktualnego segmentu sieci ethernet. W + przypadku uruchamiania przez nie uprzywilejowanych użytkowników + systemów UNIX, wysyłany jest pakiet SYN zamiast ACK z wykorzystaniem + wywołania systemowego <function moreinfo="none">connect()</function>. + Ustawienia domyślne są tożsame z opcjami <option>-PA -PE</option>. + Takie wykrywanie hostów jest najczęściej wystarczające podczas + skanowania sieci lokalnej, jednak podczas audytów bezpieczeństwa + zalecane jest wykorzystywanie bardziej zaawansowanych opcji.</para> + + <para>Opcje <option>-P*</option> (które wybierają sposób pingowania) mogą + być łączone. Możesz poprawic dokładność wykrywania hostów za systemem + zaporowym poprzez stosowanie wielu różnych portów/flag TCP i typów ICMP. + Zwracam uwagę, że wykrywanie hostów ARP (<option>-PR</option>) jest + z założenia włączane podczas testów sieci lokalnej w ramach tego samego + segmentu, nawet jeśli podasz inne opcje <option>-P*</option>, ponieważ + praktycznie zawsze tak jest szybciej i efektywniej.</para> + + <para>Opcje kontroli wykrywania hostów.</para> + <variablelist> + + <varlistentry> + <term> + <option>-sL</option> (Lista skanowania)</term> + <listitem> + <para>Lista skanowania jest okrojoną funkcją wykrywania hostów, która + po prostu wyświetla wszystkie adresy z podanych zakresów skanowania i + nie wysyła żadnych pakietów do nich. Domyślnie Nmap wykonuje + odwrotne zapytania DNS o badane adresy aby poznać ich nazwy. Często + niespodzianką jest jak dużo informacji mogą udzielić już same nazwy + hostów. Na przykład + <literal moreinfo="none">fw.chi.playboy.com</literal> jest systemem + zaporowym w biurze Playboy Enterprises w Chicago. Na końcu Nmap + podaje także całkowitą liczbę adresów IP. Lista skanowania jest + dobrym sposobem na sprawdzenie i uzyskanie pewności, że prawidłowo + podano zakres skanowania. Jeśli nie rozpoznajesz nazw domen na + uzyskanej liście, warto sprawdzić podany zakres, co pozwala unikąć + niepotrzebnego skanowania sieci nieznanej firmy.</para> + + <para>Ideą tej opcji jest wyświetlanie prostej listy adresów, z tego + powodu bardziej zaawansowana funkcjonalność taka jak skanowanie + portów, wykrywanie systemu operacyjnego czy pingowanie nie może być + łączone z tą metodą. Jeśli chcesz wyłączyć pingowanie podczas + skanowania, poczytaj na ten temat w opisie opcji + <option>-P0</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sP</option> (Skanowanie Ping)</term> + <listitem> + + <para>Ta opcja nakazuje Nmapowi przeprowadzać <emphasis>tylko</emphasis> + skanowanie typu Ping (wykrywanie hostów), a wynikiem jej + działania jest lista aktywnych hostów. Dodatkowe testy (takie jak + skanowanie portów lub wykrywanie systemu operacyjnego) nie są + przeprowadzane. Metoda ta idzie krok dalej niż lista skanowania i + może być wykorzystywana w podobnym celu. Pozwala na przeprowadzenie + delikatnego rekonesansu bez zwracania zbytniej uwagi. Posiadanie + wiedzy na temat ilości aktywnych hostów jest bardziej wartościowe + dla atakujących niż sama lista adresów zawierająca adres IP i + nazwę hosta.</para> + + <para>Również administratorzy systemów często korzystają z tej + opcji. Pozwala ona na łatwe i szybkie określenie liczby hostów w + sieci lub monitorowanie dostępności serwerów. Opcja ta często jest + nazywna Ping Sweep i daje bardziej wiarygodne wyniki niż pingowanie + adresu broadcast, ponieważ niektóre adresy mogą na niego nie + odpowiedzieć.</para> + + <para>Domyślnie opcja <option>-sP</option> wysyła pakiety ICMP echo + request i pakiety TCP na port 80. W przypadku wykonywania z konta + nie uprzywilejowanego użytkownika wysyłane są pakiety SYN (z + wykorzystaniem funkcji systemowej + <function moreinfo="none">connect()</function>) na port 80 badanego + hosta. Jeśli uprzywilejowany użytkownik próbuje przeskanować adresy + w lokalnej sieci ethernet, wykorzystywane są zapytania ARP + (<option>-PR</option>), chyba że dodano opcję + <option>--send-ip</option>. + Dla większej wygody opcja <option>-sP</option> może być łączona w + dowolny sposób z innymi metodami wykrywania hostów (opcje + <option>-P*</option>, nie dotyczy <option>-P0</option>). + + Jeśli wybrano któryś z typów testów i numer portu, nie są + wykorzystywne domyślne ustawienia (ACK i echo request). + Wykorzystywanie tych opcji jest szczególnie zalecane, jeśli + pomiędzy badanym systemem, a hostem na którym jest uruchomiony + Nmap jest system zaporowy, inaczej niektóre (lub wszystkie) hosty + nie zostaną wykryte.</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>-P0</option> (Bez pinga) + </term> + <listitem> + <para>Ta opcja wyłącza całkowicie wykrywanie hostów. Normalnie + Nmap próbuje wykryć aktywne adresy przed rozpoczęciem właściwego + skanowania. Domyślnie Nmap przeprowadza tylko testy takie jak + skanowanie portów, wykrywanie wersji i systemu operacyjnego tylko + dla hostów, które zostały wcześniej wykryte jako aktywne. Wyłączenie + wykrywania hostów za pomocą opcji <option>-P0</option> powoduje, + że Nmap próbuje wykonać wszystkie żadane typy skanowania na + <emphasis>każdym</emphasis> podanym adresie IP. Jeśli więc jako cel + w linii pleceń podano klasę B (/16), wszystkie 65,536 adresów + zostanie przeskanowane. Drugi znak w opcji <option>-P0</option> jest + zerem, a nie literą O. Wykrywanie hostów jest pomijane jak przy + wyświetlaniu listy skanowania, jednak zamiast zatrzymać się i + wyświetlić listę, Nmap kontynuuje i przeprowadza założone testy + na każym adresie IP, tak jak by był wykryty jako aktywny.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PS [listaportów]</option> (TCP SYN Ping)</term> + <listitem> + + <para>Opcja ta powoduje wysyłanie pustych pakietów TCP z ustawioną + flagą SYN. Domyślnie port docelowy to 80 (konfigurowalne przed + kompilacją za pomocą stałej DEFAULT_TCP_PROBE_PORT w pliku + <filename moreinfo="none">nmap.h</filename>), ale inny port może być + podany jako parametr. Możliwe jest również podanie listy portów, + odzielonych przecinkami + (np. <option>-PS22,23,25,80,113,1050,35000</option>), co spowoduje + przeprowadzenie testów na wszystkich podanych portach równolegle. + </para> + + <para>Ustawiona flaga SYN sugeruje badanemu systemowi, że próbujesz + nawiązać z nim połączenie. Normalnie zdalny port będzie zamknięty + i zostanie wysłany z powrotem pakiet z flagą RST (reset). Jeśli + port będzie otwarty, host będzie próbował wykonać drugi krok z + trójstopniowego procesu nawiązywania połączenia odpowiadając za + pomocą pakietu TCP SYN/ACK. Nmap zamiast wysłać pakiet ACK, który by + pomyślnie zakończył nawiązywanie połączenia, w tym momencie przerwie + połączenie wysyłając pakiet RST. Pakiet RST jest wysyłany przez + kernel systemu na którym pracuje Nmap automatycznie, w odpowiedzi + na niespodziwany pakiet SYN/ACK, a nie przez samego Nmapa.</para> + + <para>Nmap nie zwraca uwagi czy port jest otwarty czy zamknięty. + W zależności od uzyskanej omówionej wcześniej odpowiedzi (RST lub + SYN/ACK) host jest uznawany za dostępny.</para> + + <para>W systemach UNIX, tylko użytkownik uprzywilejowany - + <literal moreinfo="none">root</literal> - może wysyłać niskopoziomowe + pakiety raw TCP. W przypadku użytkowników nie posiadających + odpowiednich uprawnień wykorzystywane jest obejście w postaci + wykorzystania funkcji systemowej connect() do wykonania połączeń ze + wskazanymi portami. Jeśli connect() zwróci poprawność wykonania + operacji lub błąd odmowy połączenia ECONNREFUSED, stos TCP musiał + otrzymać pakiet z flagami SYN/ACK lub RST i host jest uznawany za + dostępny. Jeśli próba nawiązania połączenia została przerwana po + przekroczeniu maksymalnego czasu oczekiwania, host jest oznaczany + jako niedostępny. To obejście jest również wykorzystywane dla + protokołu IPv6, ponieważ wysyłanie niskopoziomowych pakietów raw TCP + nie jest jeszcze dostępne w Nmapie.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PA [lista portów]</option> (TCP ACK Ping)</term> + <listitem> + <para>Metoda TCP ACK ping jest dosyć podobna do powyżej opisanego + SYN ping. Różnica, jak łatwo zgadnąć, polega na wykorzystaniu flagi + ACK zamiast SYN. Flaga ACK jest wykorzystywana do potwierdzania + otrzymania danych za pomocą utworzonego wcześniej połączenia TCP, + jednak w tym wypadku połączenie takie nie istnieje. Z tego powodu + badany system powinien zawsze odpowiedzieć pakietem z flagą RST, + świadczącą o nie isnieniu takiego połączenia.</para> + + <para>Opcja <option>-PA</option>, tak jak SYN, używa portu numer 80 i + również może przyjmować listę portów jako argument (w takim samym + formacie). Jeśli program został uruchomiony przez + nie uprzywilejowanego użytkownika lub badany jest adres IPv6, + wykorzystywane jest opisane wcześniej obejście za pomocą connect(). + Obejście to nie jest idealne, ponieważ funkcja connect() wysyła + pakiet SYN zamiast oczekiwanego ACK.</para> + + <para>Powodem udostępniania zarówno metody SYN jak i ACK jest + zwiększenie szansy na ominięcie systemu zaporowego. Wielu + administratorów konfiguruje routery i proste systemy zaporowe tak, + żeby blokowały przychodzące pakiety SYN, poza przychodzącymi do + publicznych serwerów takich jak WWW czy pocztowych. Zabezpiecza to + przed przychodzeniem innych połączeń przy jednoczesnym nie + zakłucaniu pozostałej transmisji wychodzącej do Internetu. Takie + bezstanowe (non-stateful) rozwiązanie zajmuje mało zasobów systemu + zaporowego/routera i jest szeroko wspierane przez filtry sprzętowe i + programowe. Linuxowy firewall Netfilter/iptables dla wygody posiada + opcję <option>--syn</option>, która implementuje takie właśnie + bezstanowe filtrowanie. W przypadku takiego systemu zaporowego testy + wykorzystujące metodę SYN ping (<option>-PS</option>) zostaną + prawdopodobnie zablokowane w przypadku zamkniętych portów. W tym + przypadku metoda ACK pozwoli na obejście tych zabezpieczeń.</para> + + <para>Innym popularnym typem jest firewall wykorzystujący stany + (stateful) do blokowania niechcianych pakietów. Taka funkcjonalność + jest najczęściej spotykana w wysokiej klasy systemach zaporowych, które + stają się z roku na rok coraz popularniejsze. Linuxowy + Netfilter/iptables posiada opcję <option>--state</option>, która + kategoryzuje pakiety na podstawie stanu połączenia. Metoda SYN + prawdopodobnie będzie działała poprawnie dla tego typu systemów, + ale już pakiet z ACK zostanie rozpoznany jako nieprawidłowy i + zostanie zablokowany. Rozwiązaniem tego problemu jest wykorzystywanie + jednocześnie obu metod SYN i ACK poprzez podanie parametrów + <option>-PS</option> i <option>-PA</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PU [listaportów]</option> (UDP Ping)</term> + <listitem> + + <para>Kolejną metodą wykrywania hostów jest UDP ping, który wysyła + puste (o ile nie wykorzystano opcji <option>--data-length</option>) + pakiety UDP na wskazane porty. Lista portów jest podawana w takim + samym formacie jak dla wcześniej opisanych opcji <option>-PS</option> + i <option>-PA</option>. Jeśli nie podano numerów portów, domyślnie + używany jest port 32338. Port ten może być zmieniony przed + kompilacją poprzez zmianę stałej DEFAULT_UDP_PROBE_PORT w pliku + <filename moreinfo="none">nmap.h</filename>. Wybór tak mało + popularnego portu został podyktowany chęcią uniknięcia wysyłania + pakietów do otwartych portów, co w przypadku tego testu nie + przyniosło by oczekiwanego efektu.</para> + + <para>W przypakdu kiedy port jest zamknięty na badaniej maszynie, w + odpowiedzi na pakiet UDP powinien zostać odesłany pakiet ICMP + port unreachable oznaczający brak możliwości komunikacji z wybranym + portem. Po otrzymaniu takiej odpowiedzi Nmap oznacza host jako + dostępny. Inne typy odpowiedzi ICMP, takie jak host/sieć niedostępna + czy przekroczony czas życia TTL oznaczają, że badany host nie jest + dostępny, podobnie interpretowany jest brak odpowiedzi. Jeśli badany + port jest otwarty, większość typowych usług zignoruje pusty pakiet i + nie zostanie wysłana żadna informacja zwrotna. Właśnie dla tego + domyślnie testowanym portem jest 31338, który jest bardzo rzadko + wykorzystywany. Wiele usług, takich jak chargen, odpowie na pusty + pakiet co spowoduje, że Nmap uzna host za dostępny.</para> + + <para>Główną zaletą tego typu skanowania jest fakt, że omija systemy + zaporowe i filtry skupiające sie tylko na TCP. Przykładowo, miałem + kiedyś szerokopasmowy router bezprzewodowy Linksys BEFW11S4. + Zewnętrzny interfejs tego urządzenia filtrował domyślnie wszystkie + porty TCP, za to testy UDP zwracały odpowiedzi ICMP port unreachable, + co ujawnia istnienie urządzenia.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PE</option>; + <option>-PP</option>; + <option>-PM</option> (Typy ICMP Ping)</term> + <listitem> + + <para>Dodatkowo poza opisanymi wcześniej metodami wykrywania hostów + TCP i UDP, Nmap może wysyłać standardowe pakiety ICMP znane z + typowego programu <application moreinfo="none">ping</application>. + Nmap wysyła pakiety ICMP typu 8 (echo request) do badanego hosta i + oczekuje typu 0 (echo reply) w odpowiedzi. Niestety wiele hostów i + systemów zaporowych blokuje tego typu pakiety, zamiast odpowiadać + prawidłowo i zgodnie z + <ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC + 1122</ulink>. Z tego powodu skanowania nieznanych hostów w internecie + za pomocą tej metody przeważnie nie są wiarygodne. Jednakże + administratorzy systemów monitorujący wewnętrzne sieci mogą z + powodzeniem efektywnie wykorzystywać tą metodę. Takie wykorzystanie + zapytań ICMP echo request jest możliwe za pomocą opcji + <option>-PE</option>.</para> + + <para>Zapytanie echo request jest standardowym zapytaniem ICMP ping, + jednak Nmap nie poprzestaje na tym. Standard ICMP + (<ulink url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC + 792</ulink>) opisuje także zapytania timestamp request, information + request, i address mask request o kodach odpowiednio 13, 15 i 17. + Podczas kiedy założonym efektem działania tych zapytań jest uzyskanie + informacji typu maska sieci czy aktualny czas, mogą być one + wykorzystane do wykrywania aktywności hostów. System który odpowiada, + jest uznawany za aktywny. Nmap nie obsługuje zapytań information + request, jako że nie są one często spotykane. RFC 1122 zaleca, że + <quote>host NIE POWINIEN obsługiwać tych zapytań</quote>. + Zapytania timestamp i address mask mogą być wysyłane z wykorzystaniem + opcji odpowiednio <option>-PP</option> i <option>-PM</option>. + Odpowiedzi timestamp reply (ICMP kod 14) lub address mask reply + (kod 18) ujawniają aktywność hosta. Te dwa zapytania mogą być + pomocne, kiedy administrator specyficznie blokuje zapytania + echo request zapominając przy tym blokować inne typy ICMP, które + mogą być wykorzystane w tym samym celu.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PR</option> (ARP Ping)</term> + <listitem> + + <para>Jednym z najczęściej spotykanych scenariuszy wykorzystania + Nmapa jest skanowanie sieci lokalnej ethernet. W większości sieci + LAN, w szczególności wykorzystujących adresację prywatną zalecaną + przez RFC1918, większość adresów IP nie jest wykorzystywana. Kiedy + Nmap próbuje wysłać pakiet raw IP taki jak ICMP echo + request, by poprawnie zaadresować ramkę ethernet system operacyjny + musi określić (ARP) docelowy adres sprzętowy korespondujący z + docelowym adresem IP. + + Takie zachowanie jest często powolne i problematyczne, ponieważ + systemy operacyjne nie zostały napisane z uwzględnieniem potrzeby + wysyłania milionów zapytań ARP o niedostępne hosty w krótkim + czasie.</para> + + <para>Skanowanie ARP wykorzystuje zoptymalizowany algorytm Nmapa + do wysyłania zapytań ARP. Po otrzymaniu odpowiedzi Nmap nie musi + się nawet martwić o oparte na IP pakiety ping, ponieważ już wie, + że host jest aktywny. Takie zachowanie pozwala na dużo szybsze + i bardziej wiarygodne skanowanie. Z tego powodu zachowanie takie + jest domyślne podczas skanowania sieci, którą Nmap wykryje jako sieć + lokalną należącą do tego samego segmentu. Nawet jeśli zostaną podane + inne typy skanowania ping (takie jak <option>-PE</option> lub + <option>-PS</option>), Nmap używa ARP zamiast nich do wykrywaia + hostów w lokalnej sieci ethernet. Jeśli nie chcesz używać ARP do + skanowania, dodaj opcję <option>--send-ip</option>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-n</option> (Wyłącz zapytania DNS) + </term> + <listitem> + <para>Nakazuje Nmapowi <emphasis>nigdy</emphasis> nie używać zapytań + odrotnych do serwerów DNS o nazwy przypisane do adresów IP. Jako że + zapytania DNS są najczęściej długo trwają, opcja ta przyspiesza + pracę.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-R</option> (Wymuś zapytania DNS) + </term> + <listitem> + <para>Nakazuje Nmapowi <emphasis>zawsze</emphasis> wykonywać + odwrotne zapytania do serwera DNS o nazwy dla skanowanych adresów + IP. Domyślnie zapytania są wykonywane tylko dla aktywnych + hostów.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--system-dns</option> (Używaj systemowego DNS) + </term> + <listitem> + <para>Domyślnie Nmap określa nazwy dla adresów IP poprzez wysyłanie + zapytań bezpośrednio do serwerów DNS skonfigurowanych w systemie, o + ile są dostępne. Wiele zapytań (często dziesiątki) jest wykonywanych + równolegle dla uzyskania wiekszej szybkości. Dodanie tej opcji + wymusza wykorzystywanie rozwiązywania nazw za + pośrednictwem systemu operacyjnego (każdorazowo o pojedyncze IP za + pomocą funkcji getnameinfo()). Ta opcja jest wolniejsza i jest + użyteczna tylko w sporadycznych przypadkach, chyba że w Nmapie jest + błąd w kodzie DNS - prosze się z nami skontaktować w tym przypadku. + W przypadku skanowania sieci IPv6, rozwiązywanie nazw jest zawsze + wykonywane z wykorzystaniem systemu operacyjnego.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--dns-servers <server1[,server2],...> + </option> (Serwery do wykonywania zapytań DNS) + </term> + <listitem> + <para>Domyślnie Nmap próbuje odczytać serwery DNS wpisane do pliku + resolv.conf (UNIX) lub rejestru (Win32). Alternatywnie, możesz użyć + tej opcji do podania własnych serwerów. Opcja ta nie jest + uwzględniana, jeśli użyto również opcji <option>--system-dns</option> + lub skanowane są adresy IPv6. Używanie wielu serwerów DNS jest często + dużo szybsze, niż tylko jednego.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-basics"> + <title>Podstawy skanowania portów</title> + + <para>Przez lata funkcjonalność Nmapa była sukcesywnie powiększana, + z początku był tylko efektywnym skanerem portów i to nadal pozostaje + jego główną funkcją. Prosta komenda <command moreinfo="none">nmap + <replaceable>target</replaceable></command> skanuje ponad 1660 portów + TCP na wybranym <replaceable>celu skanowania</replaceable>. Podczas + kiedy większość skanerów tradycyjnie zalicza wszystkie porty do + kategorii otwarty lub zamknięty, Nmap jest dużo dokładniejszy. + Rozróżnia sześć możliwych stanów każdego portu: + <literal moreinfo="none">otwarty</literal>, + <literal moreinfo="none">zamknięty</literal>, + <literal moreinfo="none">filtrowany</literal>, + <literal moreinfo="none">niefiltrowany</literal>, + <literal moreinfo="none">otwarty|filtrowany</literal>, or + <literal moreinfo="none">zamknięty|filtrowany</literal>.</para> + +<para>Te stany nie są rzeczywistymi stanami portów, opisują jak Nmap je widzi. +Na przykład, skanowanie Nmapa z wnętrza sieci pokazuje port 135/TCP jako +otwarty, podczas kiedy skanowanie przez Internet może określić stan portu +jako <literal moreinfo="none">filtrowany</literal>.</para> + +<variablelist><title>Sześć stanów portów Nmapa</title> + + <varlistentry><term>otwarty</term> + <listitem><para>Aplikacja aktywnie akceptuje na tym porcie połączenia TCP + lub pakiety UDP. Znalezienie takich portów jest głównym celem skanowania. + Osoby obeznane z bezpieczeństwem wiedzą, że każdy otwarty port to potencjalny + cel ataku. Atakujący i wykonujący testy penetracyjne chcą wykorzystać luki w + oprogramowaniu poprzez otwarte porty, podczas gdy administratorzy starają się + zamykać lub chronić je za pomocą systemów zaporowych przed niepożądanymi + użytkownikami. Otwarte porty są także interesujące przy skanowaniach nie + związanych z oceną bezpieczeństwa, ponieważ pokazują usługi dostępne w sieci. + </para></listitem></varlistentry> + + <varlistentry><term>zamknięty</term> + + <listitem><para>Zamknięty port jest dostępny (odbiera i odpowiada na + pakiety Nmapa), ale nie ma żadnej aplikacji, która by obsłużyła połaczenie. + Porty te mogą być pomocne przy sprawdzaniu czy host jest aktywny (wykrywanie + hostów lub skanowanie Ping) oraz przy wykrywaniu systemu operacyjnego. + Ponieważ są dostępne zamknięte porty, warto skanować dalej w poszukiwaniu + otwartych. Administratorzy mogą chcieć blokować takie porty za pomocą + systemów zaporowych, wtedy ich stan zostanie określony jako filtrowany, + opisany dalej.</para></listitem></varlistentry> + + <varlistentry><term>filtrowany</term> + + <listitem><para>Nmap nie może określić czy port jest otwarty z powodu + filtrowania komunikacji. Filtrowanie może być przeprowadzane na + dedykowanym urządzeniu, za pomocą reguł routera lub programowego firewalla + na hoście. Takie porty są frustrujące dla atakujących, ponieważ dostarczają + znikomych ilości informacji. Porty czasami odpowiadają komunikatami ICMP + takim jak typ 3 kod 13 (destination unreachable: communication + administratively prohibited), ale filtry blokują wysyłanie takiego komunikatu + bez wysyłania typowej odpowiedzi. Takie zachowanie zmusza Nmapa do + kilkukrotnego powtarzania pakietów na wypadek ich zaginięcia na przykład + na skutek przeciążenia sieci, co spowalnia skanowanie w sposób drastyczny. + </para></listitem></varlistentry> + + <varlistentry><term>niefiltrowany</term> + <listitem><para>Stan niefiltrowane oznacza że port jest dostępny, ale Nmap + nie jest w stanie ustalić czy port jest otwarty czy zamknięty. Tylko + skanowanie ACK, które jest używane do mapowania reguł firewalla, może + przypisać portom taki stan. Skanowanie niefiltrowanych portów za pomocą + innych typów skanowania takich jak Window, SYN czy FIN może pomóc określić + czy port jest otwarty czy zamknięty.</para></listitem></varlistentry> + + <varlistentry><term>otwarty|filtrowany</term> + <listitem><para>Nmap podaje taki stan w przypadku portów, dla których nie + jest w stanie określić czy port jest otwarty, czy filtrowany. Taki zachowanie + występuje podczas typów skanowania, przy których porty nie dają odpowiedzi. + Brak odpowiedzi może również oznaczać, że filtr pakietów zablokował połączenie + lub wysyłaną odpowiedź. Z tego powodu Nmap nie ma pewności czy port jest + otwarty, czy filtrowany. W ten sposób klasyfikują porty skanowania UDP, FIN, + Null, Xmas i skanowanie protokołów.</para></listitem></varlistentry> + + <varlistentry><term>zamknięty|filtrowany</term> + <listitem><para>Ten stan jest używany przez Nmapa do oznaczania portów, dla + których nie jest możliwe ustalenie czy port jest zamknięty czy filtrowany. + Taki stan może się pojawiać tylko podczas skanowania IPID Idle. + </para></listitem></varlistentry> + </variablelist> +</refsect1> + +<refsect1 id="man-port-scanning-techniques"> + <title>Techniki skanowania portów</title> + +<para>Jako początkujący mechanik samochodowy, mogłem godzinami męczyć się z +wykonaniem naprawy posiadanymi narzędziami (młotek, taśma izolacyjna, +klucz francuski itp.). Kiedy popadłem w depresję i w końcu zaprowadziłem +mojego gruchota do prawdziwego mechanika, pogrzebał w przepastnej skrzyni +z narzędziami i wyciągnął specjalne narzędzie, którym wykonał naprawę +błyskawicznie i bez kłopotów. Sztuka skanowania polega dokładnie na tym samym. +Eksperci znają dziesiątki typów skanowania i wybierają jedną adekwatną (lub +kombinację kilku) do danego zadania. Z drugiej strony niedoświadczeni +użytkownicy i script kiddies próbują rozwiązać każdy problem za pomocą +domyślnego skanowania SYN. Nmap jest darmowy i dostępny dla wszyskich, +w związku z tym jedyną barierą jest odpowiednia wiedza. +To oczywiście bije na głowę świat motoryzacyjny, gdzie trzeba posiadać duże +umiejętności, żeby domyślić się, że potrzebne jest bardzo specyficzne +narzędzie, ale wtedy potrzeba jeszcze dużo pieniędzy na jego zakup.</para> + +<para>Większość typów skanowania jest dostępna tylko dla uprzywilejowanych +użytkowników, ponieważ tylko oni mogą wysyłać pakiety raw. +Takim użytkownikiem w przypadku systemów UNIX jest root. Używanie konta +administratora w systemach Windows jest zalecane, jednak Nmap przeważnie +działa poprawnie z konta zwykłego użytkownika przy zainstalowanej w systemie +bibliotece WinPcap. Wymóg posiadania uprawnień użytkownika root był poważnym +ograniczeniem kiedy pojawił się Nmap w 1997 roku, jako że użytkownicy posiadali +dostęp głównie tylko do współdzielonych kont. Świat się zmienił. Komputery są +tańsze, coraz więcej ludzi ma bezpośredni dostęp do Internetu i coraz +powszechniejsze stają się komputery z systemami UNIX (włączając Linuxa i MAC +OS X). Dostępna jest również Windowsowa wersja Nmapa, co powiększa możliwości +jego wykorzystywania. Z tych powodów coraz rzadziej zachodzi potrzeba +uruchamiania Nmapa z ograniczonych współdzielonych kont. Na szczęście większe +przywileje użytkowników przekładają się na większą elastyczność i możliwości +Nmapa.</para> + +<para>Nmap stara się podawać jak najbardziej dokładne wyniki, jednak trzeba +mieć na uwadze fakt, że wyniki są oparte na pakietach zwracanych przez badane +systemy (lub firewalle je ochraniające). Dlatego też zwracane informacje nie +muszą być wiarygodne i mogą wprowadzać Nmapa w błąd. Bardzo powszechne są +hosty nie zachowujące się zgodnie z RFC w odpowiedzi na zapytania Nmapa. +Rozwiązaniem są skanowania FIN, Null czy Xmas. Tego typu problemy zostały +opisane oddzielnie w częściach poświęconych poszczególnym typom skanowania.</para> + +<para>Ta sekcja opisuje dziesiątki typów skanowania dostępnych w Nmapie. +Jednocześnie może być wykorzystywana tylko jedna metoda, za wyjątkiem skanowania +UDP (<option>-sU</option>), które może być łączone z dowolnymi typami skanowania +TCP. Dla łatwiejszego zapamiętania, opcje skanowania portów posiadają nazwy +w formie <option>-s<replaceable>C</replaceable></option>, gdzie +<replaceable>C</replaceable> jest przeważnie pierwszą dużą literą angielskiej +nazwy typu skanowania. Wyjątkiem jest przestarzała opcja skanowania FTP bouce +(<option>-b</option>). Domyślnie Nmap wykonuje skanowanie SYN, które jest +zastępowane connect(), jeśli użytkownik nie ma odpowiednich uprawnień do +wysyłania pakietów raw (co wymaga konta root w systemach UNIX) +lub w przypadku skanowania sieci IPv6. Z pośród przedstawionych poniżej typów +skanowania użytkownicy nie uprzywilejowani mogą jedynie używać typów connect() i +FTP bounce.</para> + + <variablelist> + <varlistentry> + <term> + <option>-sS</option> (Skanowanie TCP SYN)</term> + <listitem> + +<para>Skanowanie SYN jest domyślną i najpopularniejszą metodą skanowania. +Jest to spowodowane tym, że może być przeprowadzone szybko, możliwe jest +skanowanie tysięcy portów na sekundę w szybkich sieciach nie chronionych +systemami zaporowymi. Skanowanie SYN jest relatywnie dyskretne i niewidoczne, +ponieważ nigdy nie otwiera połączeń do końca. Działa to dobrze w stosunku do +wszystkich stosów zgodnych z TCP, w przeciwieństwie do udziwnionych, dla +których Nmap ma tryby FIN/Null/Xmas, Maimon i Idle. SYN pozwala na +przejrzyste i wiarygodne rozróżnienie stanów portu pomiędzy +<literal moreinfo="none">otwartym</literal>, +<literal moreinfo="none">zamkniętym</literal> i +<literal moreinfo="none">filtrowanym</literal>.</para> + +<para>Technika ta jest często określana jako skanowanie z połowicznym +otwieraniem połączeń (ang. half-open), ponieważ nie otwiera pełnego połączenia +TCP. Wysyłany jest pakiet SYN, tak jak by miało być otwarte prawdziwe +połączenie i czeka na odpowiedź. SYN/ACK oaznacza, że port oczekuje na +połączenia (jest otwarty), a RST (reset) identyfikuje port jako zamknięty. +Jeśli odpowiedź nie zostanie otrzymana pomimo kilku prób, port jest oznaczany +jako filtrowany. Port jest również oznaczany jako filtrowany w przypadku +otrzymania komunikatu błędu ICMP unreachable error (typ 3, kody 1, 2, 3, 9, 10 +lub 13).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sT</option> (Skanowanie TCP connect())</term> + <listitem> + +<para>Skanowanie TCP Connect() jest wybierane domyślne, jeśli SYN nie jest dostęne. +Ma to miejsce kiedy użytkownik nie posiada uprawnień do wysyłania +pakietów raw lub podczas skanowania sieci IPv6. Zamiast wysyłać pakiety raw, +jak to ma miejsce przy innych typach skanowania, Nmap prosi system operacyjny o +zestawienie połączenia z badanym hostem za pomocą wywołania funkcji systemowej +<literal moreinfo="none">connect()</literal>. Jest to taki sam wysoki poziom +wywołań systemowych, z jakich korzystają przeglądarki internetowe, oprogramowanie +Peer2Peer czy inne programy korzystające z połączeń sieciowych. Jest to część +interfejsu programistycznego znanego jako Berkeley Sockets API. Zamiast +odczytywać odpowiedzi za pomocą odwołań niskopoziomowych prosto z sieci, Nmap +wykorzystuje ten sam wysokopoziomowy interfejs do otrzymania informacji o stanie +operacji dla każdej próby połączenia oddzielnie.</para> + +<para>Kiedy skanowanie SYN jest dostępne, przeważnie jest lepszym wyborem. Nmap +ma dużo mniejszą kontrolę nad wywołaniem wysokopoziomowym +<literal moreinfo="none">connect()</literal> niż nad pakietami raw, co jest dużo +mniej efektywne. Wywołanie systemowe otwiera pełne połączenie w przeciwieństwie +do metody SYN korzystającej z połowicznego połączenia. Nie tylko wymaga to +więcej czasu i wymaga więcej pakietów do uzyskania takich samych informacji, +ale również prawdopodobnie spowoduje zapisanie w logach badanego systemu próby +połączenia. Nowoczesne systemy detekcji intruzów IDS potrafia wykrywać takie +połączenia, ale większość systemów nie posiada odpowiednich systemów alarmowych. +Wiele usług w typowym systemie UNIX zapisze uwagę do logu systemowego i czasami +zagadkowy komunikat błędu, kiedy Nmap połączy się i natychmiast zamknie +połączenie bez wysyłania jakichkolwiek danych. Naprawdę żałosne usługi +przestaną działać po otrzymaniu takiego pakietu, ale nie jest to często +spotykane. Administrator widzący w logach informacje o wielu próbach nawiązania +połączenia z jednego adresu powinien wiedzieć, że jego system był skanowany za +pomocą metody connect().</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sU</option> (Skanowanie UDP)</term> + <listitem> + +<para>Większość popularnych usług w sieci Internet wykorzystuje protokół TCP, +ale również usługi <ulink url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> +są często spotykane. Najpopularniesze z nich to DNS, SNMP i DHCP (porty 53, +161/162 i 67/68). Ponieważ skanowanie UDP jest ogólnie wolniejsze i trudniejsze +niż TCP, wielu audytorów bezpieczeństwa ignoruje te porty. Jest to pomyłka, jako +że wiele usług UDP jest podatnych na zdalne ataki i atakujący nie ignorują tego +protokołu. Na szczęście Nmap umożliwia inwentaryzację portów UDP.</para> + +<para>Skanowanie UDP jest aktywowane za pomocą opcji +<option>-sU</option>. Może być łączone z innymi typami skanowania TCP, takimi +jak SYN (<option>-sS</option>), dla sprawdzenia obu protokołów w jednym +przebiegu.</para> + +<para>Skanowanie UDP polega na wysyłaniu pustych (bez danych) nagłówków +protokołu UDP do każdego portu docelowego. Jeśli w odpowiedzi zostanie zwrócony +komunikat ICMP port uchreachable (typ 3, kod 3), port jest uznawany za +<literal moreinfo="none">zamknięty</literal>. Inne typy komunikatów ICMP +unreachable (typ 3, kody 1, 2, 9, 10 lub 13) oznaczają, że port jest +<literal moreinfo="none">filtrowany</literal>. Czasami w odpowiedzi zwrócony +zostanie pakiet UDP, co oznacza, że porty jest +<literal moreinfo="none">otwarty</literal>. Jeśli pomimo powtarzania transmisji +nie zostanie uzyskana żadna odpowiedź, port zostaje zaklasyfikowany jako +<literal moreinfo="none">otwarty|filtrowany</literal>. Oznacza to, że port może +być otwarty lub filtr pakietów blokuje do niego dostęp. Wykorzystanie +skanowania wersji usług (<option>-sV</option>) może pomóc w odróżnieniu portów +na prawdę otwartych od filtrowanych.</para> + +<para>Największym wyzwaniem przy skanowaniu UDP jest przeprowadzenie go odpowiednio szybko. +Otwarte i filtrowane porty rzadko wysyłają jakąkolwiek odpowiedź, zmuszając +Nmapa do oczekiwania na odpowiedź i ponawiania transmisji na wypadek zagubienia +pakietów. Zamknięte porty są często jeszcze większym problemem. Zwykle wysyłają +pakiet ICMP port unreachable, jednak w odróżnieniu od pakietów z flagą RST znanych +ze skanowania SYN czy connect, wiele hostów domyślnie limituje szybkość wysyłania +pakietów ICMP port unreachable. Przykładami mogą być systemy Linux i Solaris. +Kernel Linuxa w wersji 2.4.20 limituje ilość pakietów o niedostępności portów do +jednego na sekundę (w <filename moreinfo="none">net/ipv4/icmp.c</filename>).</para> + +<para>Nmap potrafi wykrywać limitowanie odpowiedzi i zwalnia odpowiednio proces +skanowania dla uniknięcia zaśmiecania sieci niepotrzebnymi pakietami, które i tak +nie zostaną wykorzystane. Niestety, skanowanie wszystkich 65,536 portów UDP +przy limicie Linuxowym jeden pakiet na sekundę powoduje, że skanowanie trwa ponad +18 godzin. Sposobami na przyspieszenie są skanowanie wielu hostów równolegle, +wykonywanie na początek szybkiego skanowania popularnych portów, skanowanie z poza +systemu zaporowego i używanie opcji <option>--host-timeout</option> do pomijania +zbyt wolnych hostów.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (Skanowania TCP Null, FIN i Xmas)</term> + <listitem> + +<para>Te typy skanowania (większe możliwości posiada opcja +<option>--scanflags</option> opisana w dalszej części) wykorzystują nieopisane +w <ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP RFC</ulink> +kombinacje flag do rozróżnienia pomiędzy stanami portów +<literal moreinfo="none">otwarty</literal> oraz +<literal moreinfo="none">zamknięty</literal>. Strona 65 opisuje, że <quote>jeśli +[docelowy] port jest ZAMKNIĘTY ... w odpowiedzi na pakiet nie zawierający RST należy +wysłać odpowiedź RST.</quote> Następna strona opisuje pakiety wysyłane na porty bez +flag SYN, RST lub ACK w następujący sposób: <quote>coś takiego nie powinno mieć +miejsca, jednak jeśli się zdarzy, pomiń taki pakiet</quote>.</para> + +<para>Podczas skanowania systemów zgodnych z zapisami w RFC, dowolny pakiet nie +zawierający flag SYN, RST lub ACK powinien wywoływać odpowiedź RST w przypadku +portu zamkniętego i całkowity brak odpowiedzi w przypadku portu otwartego. +Tak długo jak żadna z wymienionych flag nie została użyta, wszystkie inne +kombinacje flag (FIN, PSH i URG) są prawidłowe. Nmap wykorzystuje to do +przeprowadzania trzech typów skanowania:</para> + +<variablelist> + <varlistentry><term>Skanowanie Null (<option>-sN</option>)</term> + <listitem><para>Nie ustawia żadnych flag (pole flag w nagłówku tcp zawiera 0).</para></listitem></varlistentry> + + <varlistentry><term>Skanowanie FIN (<option>-sF</option>)</term> + <listitem><para>Ustawiona flaga FIN.</para></listitem></varlistentry> + + <varlistentry><term>Skanowanie Xmas (<option>-sX</option>)</term> + <listitem><para>Ustawione flagi FIN, PSH i URG, pakiet podświetlony jak choinka.</para></listitem></varlistentry> +</variablelist> + +<para>Te trzy tryby skanowania są takie same poza ustawionymi flagami w +pakietach. Jeśli w odpowiedzi zostanie otrzymany pakiet RST, port jest +uznawany za <literal moreinfo="none">zamknięty</literal>, podczas gdy brak +odpowiedzi oznacza <literal moreinfo="none">otwarty|filtrowany</literal>. +Port uznajemy za <literal moreinfo="none">filtrowany</literal>, jeśli +otrzymany zostanie komunikat ICMP unreachable (typ 3, kod 1, 2, 3, 9, 10 lub +13).</para> + +<para>Główną zaleta tych typów skanowania jest to, że potrafią się one +przemykać przez bezstanowe systemy zaporowe i filtrowanie na routerach. +Inną zaletą jest tylko minimalnie większa wykrywalność niż skanowania SYN. +Nie można jednak na to liczyć - większość nowych systemów IDS może zostać +skonfigurowana do ich wykrywania. Ujemną stroną jest to, że nie wszystkie +systemy są zgodne z RFC793. Wiele systemów wysyła odpowiedzi RST niezależnie od +tego czy port jest otwarty czy nie. Powoduje to, że wszystkie porty pojawiają +się jako <literal moreinfo="none">zamknięty</literal>. Najczęściej spotykane +systemy, które się tak zachowują to Microsoft Windows, wiele urządzeń Cisco, +BSDI, i IBM OS/400. Skanowania działają jednak dobrze w przypadku większości +systemów UNIXowych. Kolejnym minusem tych metod jest to, że nie potrafią +rozróżnić portów oznaczonych jako <literal moreinfo="none">otwarty</literal> +od <literal moreinfo="none">filtrowany</literal>, ujawniając jedynie stan +<literal moreinfo="none">otwarty|filtrowany</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sA</option> (Skanowanie TCP ACK)</term> + <listitem> + +<para>Ten typ skanowanie jest inny niż omawiane powyżej, bo nigdy nie wykrywa +stanów portów <literal moreinfo="none">otwarty</literal> (lub nawet +<literal moreinfo="none">otwarty|filtrowany</literal>). Jest wykorzystywany +do mapowania reguł filtrowania, do sprawdzania czy fitrowanie jest oparte +o stany (stateful) lub nie i które porty są filtrowane.</para> + +<para>Pakiety skanowania ACK posiadają tylko flagę ACK (o ile nie została +użyta opcja <option>--scanflags</option>). Podczas skanowania systemów nie +posiadających filtrowania, porty o stanach +<literal moreinfo="none">otwarty</literal> i +<literal moreinfo="none">zamknięty</literal> +zwrócą pakiet RST. W obu przypadkach Nmap oznaczy je jako +<literal moreinfo="none">niefiltrowane</literal>, co oznacza, że były +osiągalne dla pakietu ACK, ale nie zostało określone, czy posiadają stan +<literal moreinfo="none">otwarty</literal> czy +<literal moreinfo="none">zamknięty</literal>. Porty, które nie odpowiedzą +lub odpowiedzą za pomocą komunikatu o błędzie ICMP (typ 3, kody 1, 2, 3, 9, +10 lub 13), zostaną oznaczone jako <literal moreinfo="none">filtrowany</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sW</option> (Skanowanie TCP Window)</term> + <listitem> + +<para>Skanowanie Window jest takie samo jak ACK, różnica polega na tym, że +potrafi odróżnić porty otwarte od zamkniętych, zamiast zawsze podawać stan +<literal moreinfo="none">niefiltrowany</literal>, kiedy otrzymano flagę RST. +Jest to realizowane poprzez analizę pola Window pakietu zwrotnego RST. Na +niektórych systemach, otwarte porty zwracają dodatnią wartość rozmiaru okna +(także w pakietach RST), a przy zamkniętych o rozmiarze zero. Tak więc zamiast +zawsze przedstawiać port jako <literal moreinfo="none">niefiltrowany</literal> +kiedy w odpowiedzi przyjdzie RST, skanowanie Window oznacza port jako +<literal moreinfo="none">otwarty</literal> lub +<literal moreinfo="none">zamknięty</literal>, w zależności czy odpowiednio +otrzymano w odpowiedzi rozmiar okna o wartości dodatniej lub zero.</para> + +<para>Ten typ skanowania polega na szczególnej implementacji stosu TCP, +występującej w rzadko spotykanych systemach w internecie, a więc nie można +zawsze na niej polegać. Zwykle systemy, które nie obsługują tej metody będą +zwracały porty oznaczone jako <literal moreinfo="none">zamknięty</literal>. +Oczywiście jest również możliwe, że host na prawdę nie ma otwartych portów. +Jeśli większość przeskanowanych portów ma stan +<literal moreinfo="none">zamknięty</literal>, jednak niektóre (takie jak 22, +25 czy 53) mają stan <literal moreinfo="none">filtrowany</literal>, system +jest podejrzany. Czasami systemy potrafią się zachowywać zupełnie przeciwnie. +Jeśli skanowanie wykaże 1000 otwartych portów i tylko 3 zamknięte lub +filtrowane, wtedy te trzy prawdopodobnie są rzeczywiście otwarte.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sM</option> (Skanowanie TCP Maimon)</term> + <listitem> + +<para>Skanowanie Maimon zostało nazwane na cześć jego odkrywcy, Uriela Maimona. +Opisał tę technikę w Phrack Magazine w wydaniu #49 (Listopad 1996). Nmap, który +potrafił wykorzystać tę technikę został wypuszczony dwa wydania później. +Skanowanie to należy do rodziny Null, FIN i Xmass z tą różnicą, że używa flag +FIN/ACK. Zgodnie z RFC 793 (TCP), dla takiej kombinacji flag, pakiet RST +powinien być wygenerowany niezależnie czy port jest otwarty czy zamknięty. +Jednakże Uriel zauważył, że wiele systemów opartych na BSD po prostu pomija +odpowiedzi, jeśli port jest otwarty.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scanflags</option> (Skanowanie TCP z definiowanymi flagami)</term> + <listitem> + +<para>Prawdziwie zaawansowani użytkownicy Nmapa nie mogą być ograniczani +ilością oferowanych wbudowanych typów skanowania. Opcja +<option>--scanflags</option> pozwala na projektowanie własnych typów skanowania +z wykorzystaniem wybranych flag TCP. Cieszcie się podczas wykorzystywania tej +techniki do oszukiwania systemów IDS, których twórcy pobieżnie przeglądali +dokumentację Nmapa dodając specyficzne reguły!</para> + +<para>Argument opcji <option>--scanflags</option> może być numerycznym zapisem +flag, np 9 (PSH i FIN), lub dla ułatwienia można wykorzystywać symbliczne nazwy. +Można podać dowolną kombinację flag <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> i +<literal moreinfo="none">FIN</literal>. Na przykład <option>--scanflags +URGACKPSHRSTSYNFIN</option> ustawia wszystkie flagi, choć nie jest to zbyt +użyteczna metoda skanowania. Kolejność podawania flag nie jest istotna.</para> + +<para>Dodatkowo przy podawaniu wybranych flag możliwe jest podanie typu +skanowania (takiego jak <option>-sA</option> lub <option>-sF</option>). +Dodany typ skanowania informuje Nmapa jak ma interpretować otrzymane odpowiedzi. +Na przykład skanowanie SYN zakłada, że brak odpowiedzi oznacza stan portu +<literal moreinfo="none">filtrowany</literal>, podczas gdy skanowanie FIN +potraktuje ten go jako <literal moreinfo="none">otwarty|filtrowany</literal>. +Nmap będzie się zachowywał w taki sam sposób jak przy wybranym trybie +skanowania, jednak wykorzystane zostaną podane flagi. Jeśli bazowy typ +skanowania nie zostanie określony, zostanie wykorzystany domyślny typ SYN.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sI <zombie + host[:probeport]></option> (Skanowanie Idle)</term> + + <listitem> + + <para>Ta zaawansowana technika skanowania pozwala na prawdziwie + ślepe skanowanie TCP (co oznacza, że żaden pakiet nie zostanie + wysłany do badanego systemu z prawdziwego adresu IP Nmapa). + Zamiast tego wykorzystany zostanie host zombie, o przwidywalnym + działaniu stosu TCP polegającym na sekwencyjnym powiększaniu + numerów ID pakietów, do uzyskania informacji o otwartych portach + w badanym systemie. Systemy detekcji intruzów pokażą jako adres + atakującego zdefiniowany host zombie (musi spełniać określone + warunki). Ten fascynujący typ skanowania jest zbyt skomplikowany + żeby go dokładnie opisać w tej dokumentacji, dlatego napisałem + oddzielny nieformalny dokument na ten temat ze szczegółowymi + informacjami i jest on dostępny pod adresem + <ulink url="https://nmap.org/book/idlescan.html"/>.</para> + + <para>Poza tym, że metoda ta jest niespotykanie poufna (z powodu + jej ślepej natury), ten typ skanowania pozwala na mapowanie reguł + zaufania pomiędzy maszynami bazujących na adresach IP. Wyniki + zawierają otwarte porty, <emphasis>z punktu widzenia hosta zombie + </emphasis>. Tak więc można próbować skanowania z wykorzystaniem + różnych hostów zombie, które można traktować jako zaufane (poprzez + router/reguły filtrowania pakietów).</para> + + <para>Można po dwukropku dodać numer portu, jeśli chcemy go + wykorzystać na hoście zombie do badania zmian IPID. W innym przypadku + Nmap wykorzysta domyślnie port używany przez tcp ping (80).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sO</option> (Skanowanie protokołów IP)</term> + <listitem> + +<para>Skanowanie to pozwala na wykrycie listy protokołów IP (TCP, ICMP, IGMP +itp), które są dostępne na danym hoście. Technicznie nie jest to skanowanie +portów, ponieważ sprawdza kolejne numery protokołów, a nie kolejne porty TCP +czy UDP. Opcja ta nadal używa parametru <option>-p</option> do wybrania numerów +protokołów do sprawdzenia, w formacie analogicznym do listy portów. Z tego +powodu metoda ta została zaklasyfikowana jako skanowanie portów i dlatego +znajduje się tutaj.</para> + +<para>Poza swoją własną funkcjonalnością, skanowanie protokołów demonstruje +potęgę oprogramowania open source. Podczas gdy podstawowa idea jest całkiem +prosta, nie pomyślałem o jej dodaniu, jak również nie otrzymałem żadnej +prośby o dodanie takiej funkcjonalności. Latem roku 2000, Gerhard Rieger +opracował koncepcję, stworzył odpowiednią poprawkę i wysłał ją na listę +dyskusyjną nmap-hackers. Włączyłem ją do drzewa Nmapa i wypuściłem nową +wersję następnego dnia. Niewiele komercyjnych programów posiada użytkowników +na tyle entuzjastycznych, żeby zaprojektować i stworzyć ich własne poprawki! +</para> + +<para>Skanowanie protokołów działa w sposób podobny do skanowania UDP, jednak +zamiast iteracji po kolejnych numerach portu, w nagłówkach pakietów zmienia się +8-mio bitowy numer protokołu. Nagłówki są przeważnie puste, nie zawierają +żadnych danych ani nawet poprawnego dla danego protokołu nagłówka. Trzema +wyjątkami są TCP, UDP i ICMP. Poprawne nagłówki dla tych protokołów są +konieczne, ponieważ niektóre systemy nie będą ich potrafiły wysłać oraz +dlatego, że Nmap posiada już odpowiednie funkcje do ich tworzenia. +Zamiast obserwować komunikaty ICMP unreachable, skanowanie protokołów nie polega +na komunikatach ICMP <emphasis>protocol</emphasis> unreachable. Jeśli Nmap +otrzyma jakąkolwiek odpowiedź w jakimkolwiek protokole, ustala stan protokołu +jako <literal moreinfo="none">otwarty</literal>. Otrzymanie komunikatu ICMP +protocol unreachable (typ 3, kod 2) powoduje oznaczenie protokołu jako +<literal moreinfo="none">zamknięty</literal>. Inne komuniakty ICMP protocol +unreachable (typ 3, kody 1, 3, 9, 10 lub 13) powodują oznaczenie protokołu jako +<literal moreinfo="none">filtrowany</literal> (oraz równocześnie potwierdzają, +że protokół ICMP jest również <literal moreinfo="none">otwarty</literal>). +Jeśli nie uzyskano odpowiedzi, protokół jest oznaczany jako +<literal moreinfo="none">otwarty|filtrowany</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-b <pośredniczący host ftp></option> (Skanowanie FTP bounce)</term> + <listitem> + +<para>Interesującą funkcją protokołu FTP +(<ulink url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) jest +wspieranie tak zwanych połączeń proxy. Pozwala to użytkownikowi na połączenie +z jednym serwerem FTP i poproszenie o wysłanie plików do innego. Ta +funkcjonalność była przyczyną nadużyć na wielu poziomach, dlatego wiele serwerów +porzuciło dla niej wsparcie. Jednym z możliwych nadużyć jest sposobność do +zmuszenia serwera do skanowania portów na zewnętrznym hoście. Wystarczy po +prostu poprosić serwer o wysłanie pliku kolejno na każdy interesujący port badanego +systemu. Uzyskany komunikat o błędzie zwróci informację, czy porty był otwarty +czy zamknięty. Jest to dobra metoda do omijania systemów zaporowych, ponieważ +korporacyjne serwery FTP często są umieszczane w takim miejscu, że mają +możliwość komunikacji zarówno z hostami w internecie jak i w sieci lokalnej. +Nmap obsługuje skanowanie FTP bounce z wykorzystaniem opcji +<option>-b</option>. Opcja przyjmuje argument w postaci +<replaceable>nazwa_użytkownika</replaceable>:<replaceable>hasło</replaceable>@<replaceable>serwer</replaceable>:<replaceable>port</replaceable>. + +<replaceable>Serwer</replaceable> jest nazwą lub adresem IP podatnego serwera +FTP. Tak jak przy zwykłym adresie URL, można pominąć pola +<replaceable>nazwa_użytkownika</replaceable>:<replaceable>hasło</replaceable>, +w tym przypadku zostanie wykorzystana domyślna kombinacja dla użytkowników +anonimowych (użytkownik <literal moreinfo="none">anonymous</literal> +hasło:<literal moreinfo="none">-wwwuser@</literal>). Numer portu (i +poprzedzający go dwukropek) również może zostać pominięty, w tym przypadku +przy połączeniu z wybranym adresem <replaceable>serwer</replaceable>, zostanie +wykorzystany domyślny port serwera FTP (21).</para> + +<para>Podatność ta była szeroko spotykana w roku 1997, kiedy to Nmap został +wypuszczony, jednak z biegiem czasu jej znaczenie bardzo się zmniejszyło. +Dziurawe serwery FTP nadal się zdarzają, więc warto wyprubować i tę +metodę, jeśli inne zawiodą. Jeśli potrzebne jest obejście systemu zaporowego, +można przeskanować sieć w poszukiwaniu otwartych portów 21 (lub poprzez +wyszukanie ftp na innych portach z wykorzystaniem opcji do wykrywania wersji) +i wypróbować na wykrytych portach metodę bounce. Nmap poinformuje, czy usługa +jest podatna czy nie. Jeśli chcesz ukrywać swoje działania, nie trzeba (i nie +powinno) ograniczać się do hostów z badanej sieci. Przed rozpoczęciem +skanowania losowych adresów w sieci Internet w poszukiwaniu podatnych wersji +serwerów FTP trzeba mieć na uwadze, że wielu administratorów nie bedzie +zachwyconych wykorzystywaniem ich serwerów w ten sposób.</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-specification"> + <title>Specyfikacja portów i kolejności skanowania</title> + + <para>Poza wszystkimi metodami skanowania opisanymi wcześniej, Nmap + oferuje opcję pozwalającą na podanie numerów portów do skanowania i + określenie, czy skanowanie ma przebiegać w kolejności sekwencyjnej czy + losowej. Domyślnie Nmap skanuje wszystkie porty do 1024 włącznie oraz + wyższe porty wyszczególnione w pliku + <filename moreinfo="none">nmap-services</filename>.</para> + + <variablelist> + <varlistentry> + <term> + <option>-p <zakres portów></option> (Skanuj tylko wybrane porty) + </term> + <listitem> + + <para>Opcja pozwala na zdefiniowanie listy portów do skanowania, + zamiast domyślnej. Możliwe jest podanie pojedynczych portów + jak i zakresów oddzielonych myślnikiem (np. 1-1023). Zakres można + również pominąć, co spowoduje użycie całego zakresu (1-65535). Można + więc po prostu podać opcję <option>-p-</option> do przeskanowania + wszystkich portów od 1 do 65535 włącznie. Można również podać port + zero, ale trzeba to zrobic jawnie. W przypadku połączenia tej opcji + ze skanowaniem protokołów (<option>-sO</option>), określa ona numery + protokołów do sprawdzenia (0-255).</para> + + <para>Przy jednoczesnym skanowaniu portów TCP i UDP możliwe jest + oddzielne zdefiniowanie portów dla obu protokołów poprzez + poprzedzenie numerów znakami odpowiednio + <literal moreinfo="none">T:</literal> i + <literal moreinfo="none">U:</literal>. Jako argument opcji przyjmowany + jest ciąg znaków aż do następnej opcji. Na przykład, podanie <option>-p + U:53,111,137,T:21-25,80,139,8080</option> spowoduje przeskanowanie + portów UDP o numerach 53,111 i 137 oraz podanych portów TCP. Przy + skanowaniu zarówno portów TCP jak i UDP, nie + można zapomnieć podać odpowiednich typów skanowania: <option>-sU</option> + oraz przynajmniej jednego TCP (np. <option>-sS</option>, + <option>-sF</option> czy <option>-sT</option>). Jeśli nie podano + protokołu skanowania, na czas skanowania numery portów zostaną + dodane do domyślnej listy portów.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-F</option> (Skanowanie Fast (ograniczona ilość portów)) + </term> + <listitem> + + <para>Pozwala na określenie, że mają być skanowane tylko porty + zawarte w pliku <filename moreinfo="none">nmap-services</filename> + z pakietu Nmapa (lub z pliku protokołów dla opcji + <option>-sO</option>). Opcja ta pozwala na szybsze skanowanie, + niż w przypadku wszystkich 65535 portów. Ponieważ lista ta + zawiera tylko nieco ponad 1200 portów, różnica w + szybkości w porównaniu do typowego skanowania TCP (około 1650 + portów) nie jest duża. Różnica może być większa, jeśli zostanie + podany własny, mały plik + <filename moreinfo="none">nmap-services</filename> za pomocą + opcji <option>--datadir</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-r</option> (Nie używaj losowej kolejności) + </term> + <listitem> + <para>Domyślnie Nmap skanuje porty w kolejności losowej (poza + niektórymi najczęściej wykorzystywanymi portami, które są skanowane + na początku ze względów wydajnościowych). Takie zachowanie jest + normalnie pożądane, jednak można je wyłączyć za pomocą opcji + <option>-r</option>, wymuszającej sekwencyjną kolejność skanowania. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-version-detection"> + <title>Detekcja usług i wersji</title> + + <para>Przy skanowaniu zdalnego systemu, Nmap może wykryć otwarte porty + takie jak 25/tcp, 80/tcp czy 53/udp. Wykorzystując bazę danych zawierającą + około 2,200 popularnych usług, znajdującą się w pliku + <filename moreinfo="none">nmap-services</filename>, Nmap odczyta + przypuszczalne nazwy usług dla wykrytych portów - odpowiednio serwer + pocztowy (SMTP), serwer WWW (HTTP) i serwer nazw (DNS). Takie działanie + jest zwykle poprawne, większość aplikacji słuchających na porcie 25, to + rzeczywiście serwery pocztowe. Jednakże, niech Twoja ocena bezpieczeństwa + niepolega na tych podpowiedziach! Ludzie mogą i często umieszczają usługi + na dziwnych portach.</para> + + <para>Nawet jeśli Nmap sie nie myli i hipotetyczny serwer z przykładu + powyżej udostępnia usługi SMTP, HTTP i DNS, nie jest to duża ilość + informacji na temat tych usług. Przeprowadzając testy bezpieczeństwa (lub + zwykłą inwentaryzację zasobów) swojej firmy lub klienta, potrzeba uzyskać + dokładniejsze informacje na temat usług: jaka aplikacja i w jakiej wersji + jest zainstalowana na serwerze SMTP czy DNS. Posiadanie tych informacji w + znaczący sposób wpływa na możliwość ustalenia podatności danej aplikacji. + Detekcja wersji pozwala na uzyskanie takiej informacji.</para> + + <para>Po tym jak zostaną wykryte za pomocą innych technik skanowania + dostępne usługi TCP i UDP, detekcja wersji odpytuje porty w celu określenia + dalszych szczegółów na temat aplikacji. Baza danych + <filename moreinfo="none">nmap-service-probes</filename> zawiera opisy + wielu usług i próbuje dopasować je do uzyskanych informacji. Nmap stara się + najpierw określić protokół wykorzystywany przez usługę (np. ftp, ssh, + telnet, http), następnie nazwę aplikacji (np. ISC Bind, Apache httpd, + Solaris telnetd), wersję usługi, nazwę hosta, typ urządzenia (np. drukarka, + router), rodzinę systemów operacyjnych (np. Windows, Linux) i czasami + uzyskuje dodatkowe informacje (takie jak czy X serwer przyjmuje połączenia, + obsługiwane wersje protokołu SSH czy nazwę użytkownika KaZaA). Oczywiście + większość usług nie dostarczy wszystkich tych informacji. Jeśli Nmap został + skompilowany z OpenSSL, będzie potrafił łączyć się z serwerami SSL i + uzyskiwać informacje od usług ukrytych za szyfrowaną warstwą. Kiedy zostaną + wykryte usługi RPC, odpowiedni skaner (<option>-sR</option>) zostanie + automatycznie uruchomiony do ustalenia oprogramowania i wersji RPC. + Z powodu specyfiki UDP, po zakończeniu skanowania niektóre porty pozostają + w stanie <literal moreinfo="none">otwarty|filtrowany</literal>, jako że ten + typ skanowania nie potrafi określić, czy port jest otwarty czy filtrowany. + Skanowanie wersji spróbuje uzyskać odpowiedź od takiego portu (tak jak to + robi przy otwartych portach) i jeśli to się uda, zmieni stan na otwarty. + Porty TCP w stanie <literal moreinfo="none">otwarty|filtrowany</literal> są + traktowane w ten sam sposób. Należy zwrócić uwagę, że opcja + <option>-A</option> poza innymi rzeczami włącza wykrywanie wersji. Dodatkowa + dokumentacja na temat działania detekcji wersji jest dostępna pod adresem + <ulink url="https://nmap.org/vscan/"/>.</para> + + <para>Jeśli Nmap otrzyma odpowiedź, ale nie jest w stanie dopasować jej do + żadnej znanej usługi, wyświetli specjalny odcisk palca (fingerprint) usługi + wraz z adresem URL, pod którym można go następnie wysłać wraz ze stosownym + opisem, jeśli jesteśmy pewni jakiej usłudze odpowiada. + Proszę poświęcić te kilka minut na wysłanie informacji o nieznanych + usługach, a będą mogli z tego skorzystać również inni użytkownicy Nmapa. + Dzięki temu sposobowi wysyłania Nmap rozpoznaje około 3,000 odcisków dla + ponad 350 protokołów usług, takich jak smtp, ftp, http itp.</para> + + <para>Detekcja wersji jest włączana i kontrolowana następującymi opcjami:</para> + + + <variablelist> + + <varlistentry> + <term> + <option>-sV</option> (Detekcja wersji usług)</term> + <listitem> + + <para>Włącza detekcję wersji usług, opisaną powyżej. Alternatywnie + można użyć opcji <option>-A</option> do jednoczesnego włączenia + detekcji wersji usług i systemu operacyjnego.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--allports</option> (Nie pomijaj żadnych portów przy detekcji wersji) + </term> + <listitem> + <para>Domyslnie, skanowanie wersji Nmapa pomija port TCP 9100, + ponieważ niektóre drukarki po prostu drukują wszystko, co zostanie + przysłane na ten port, powodując wydruk setek stron z zapytaniami + HTTP, binarnymi zapytaniami SSL itp. Takie zachowanie może zostać + wyłączone poprzez modyfikację lub usunięcie dyrektywy + <literal moreinfo="none">Exclude</literal> w pliku + <filename moreinfo="none">nmap-service-probes</filename>, lub poprzez + dodanie opcji <option>--allports</option>, wymuszającej skanowanie + wszystkich portów niezależnie od dyrektywy + <literal moreinfo="none">Exclude</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-intensity <poziom></option> (Ustaw poziom skanowania wersji) + </term> + <listitem> + + <para>Podczas przeprowadzania skanowania wersji (<option>-sV</option>), + Nmap przeprowadza serię testów, przy czym każdy z nich ma przypisany + swój poziom pomiędzy 1 a 9. Niskie poziomy działają poprawnie w + stosunku do najpopularniejszych usług, wysokie numery obejmują + mało popularne. Poziom skanowania określa które testy zostaną + wykonane. Czym wyższy poziom, tym większa szansa na prawidłowe + rozpoznanie mało popularnych usług. Domyśly poziom to 7. Jeśli + test zostanie powiązany z wykrytą usługą z pliku + <filename moreinfo="none">nmap-service-probes</filename>, określoną + dyrektywą <literal moreinfo="none">ports</literal>, zostanie on + wykonany niezależnie od ustalonego poziomu wykrywania wersji. + Zachowanie takie ma na celu zawsze poprawne wykrywanie domyślnych + usług na otwartych portach, wykrywanie serwera DNS na porcie 53, + SSL na porcie 443 itp.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-light</option> (Włącz tryb delikatny) + </term> + <listitem> + <para>Jest wygodniejszym odpowiednikiem ustalającym wartość + <option>--version-intensity 2</option>. Opcja ta pozwala na znaczne + przyspieszenie wykrywania wersji, kosztem dokładności.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-all</option> (Użyj wszystkich testów) + </term> + <listitem> + <para>Odpowiednik opcji <option>--version-intensity 9</option>, + powodujący wykonanie wszystkich możliwych testów na każdym porcie. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-trace</option> (Śledzenie aktywności skanowania wersji) + </term> + <listitem> + <para>Opcja włącza opcje śledzenia błędów podczas wykrywania wersji, + powodując wyświetlanie dodatkowych informacji na temat prowadzonych + działań. Opcja ta jest częścią większej <option>--packet-trace</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sR</option> (Skanowanie RPC)</term> + <listitem> + <para>Metoda ta działa w połączeniu z różnymi metodami skanowania + portów Nmapa. Na wszystkie wykryte wcześniej porty są wysyłane + komendy NULL SunRPC i za ich pomocą sprawdzane jest, czy dany port + należy do usług RPC. Jeśli tak, identyfikowana jest aplikacja i jej + wersja. Opcja pobiera takie same informacje jak komenda + <command moreinfo="none">rpcinfo -p</command>, nawet jeśli host jest + chroniony za pomocą systemu zaporowego (lub TCP wrapperów). Hosty + pośrednie zombie nie są obsługiwane przy tym trybie skanowania. + Opcja jest automatycznie aktywowana jako część wykrywania wersji + usług (<option>-sV</option>). Jako że detekcja wersji jest daleko + bardziej uniwersalna, opcja <option>-sR</option> jest wykorzystywana + sporadycznie.</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-os-detection"> + + <title>Wykrywanie systemu operacyjnego</title> + + <para>Jedna z najbardziej znanych możliwości Nmapa jest zdalna detekcja + systemu operacyjnego za pomocą odcisków palca (fingerprint) stosu TCP/IP. + Nmap wysyła serię pakietów TCP i UDP do zdalnego systemu i analizuje + praktycznie każdy bit z uzyskanych odpowiedzi. Po wykonaniu dziesiątek + testów takich jak próbkowanie ISN TCP, analiza opcji protokołu TCP i + kolejności, próbkowanie IPID i kontrola początkowych rozmiarów okna, Nmap + porównuje uzyskane wyniki z bazą z pliku + <filename moreinfo="none">nmap-os-fingerprints</filename> + zawierającą ponad 1500 znanych odcisków systemów operacyjnych i wyświetla + wynik, jeśli udało sie go odnaleźć. + Każdy odcisk zawiera tekstowy opis systemu operacyjnego, nazwę jego + producenta (np. Sun), nazwę systemu (np. Solaris), generację (np. 10) i typ + urządzenia (przeznaczenie ogólne, router, switch, konsola do gier itp).</para> + + <para>Jeśli Nmap nie może ustalić systemu i warunki do jego wykrycia są + wystarczające (np. wykryto przynajmniej jeden otwarty i jeden zamknięty + port), Nmap poda adres URL, dzięki któremu, jeśli jesteśmy pewni, możliwe + jest wysłanie opisu nieznanego systemu, wraz z jego odciskiem. Wykonanie + tej operacji przyczynia się do rozbudowy bazy i poprawy wykrywania, na czym + korzystają wszyscy użytkownicy.</para> + + <para>Detekcja systemu operacyjnego pozwala na uzyskanie innych informacji, + które są zbierane podczas tego procesu. Jedną z nich jest czas od + uruchomienia hosta, co jest uzyskiwane poprzez wykorzystanie opcji TCP + timestamp (RFC 1323) do ustalenia kiedy host był restartowany. Informacja + ta jest podawana tylko wtedy, jeśli host jej dostarcza. Inną informacją jest + klasyfikacja przewidywalności numerów sekwencyjnych TCP. Badane jest + prawdopodobieństwo możliwości wstrzyknięcia pakietów w przechwycone + połączenie. Informacja ta jest przydatna w przypadku testowania połączeń + opartych na zaufaniu do adresu IP nadawcy (rlogin, filtry firewalla itp) + lub podczas ukrywania źródła ataku. Ten typ ataków jest obecnie rzadko + wykorzystywany, jednak niektóre systemy są nadal na niego podatne. + Podawany poziom trudności jest oparty na statystycznych próbkach i może + się zmieniać. Ogólnie lepiej jest używać angielskich określeń dla + poszczególnych klas, takich jak <quote>worthy challenge</quote> (stanowiący + wyzwanie) lub <quote>trivial joke</quote> (trywialny dowcip). Taki sposób + raportowania jest dostępny tylko przy domyślnym formacie raportu przy + włączonej opcji zwiększającej szczegółowość podawanych informacji + (<option>-v</option>). Jeśli użyto opcji <option>-v</option> w połączeniu z + <option>-O</option>, podane zostaną informacje o generowaniu numerów + sekwencyjnych IPID. Większość adresów należy do klasy + <quote>incremental</quote> (rosnące) co oznacza, że wartość pola ID w + nagłówkach pakietów IP jest zmieniana rosnąco w kolejnych pakietach. Taki + sposób powiększania numerów powoduje podatność na szereg ataków.</para> + + <para>Dokument opisujący działanie i używanie detekcji wersji jest + dostępny w wielu językach pod adresem + <ulink url="https://nmap.org/osdetect/"/>.</para> + + <para>Wykrywanie systemu operacyjnego jest włączane i kontrolowane przez + poniższe opcje:</para> + + <variablelist> + <varlistentry> + <term> + <option>-O</option> (Włączenie wykrywania systemu operacyjnego) + </term> + <listitem> + <para>Włącza wykrywanie systemu operacyjnego opisanego powyżej. + Alternatywnie można używać opcji <option>-A</option>, która włącza + jednocześnie wykrywanie systemu operacyjnego i wersji usług.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-limit</option> (Limitowanie wykrywania do + obiecujących celów) + </term> + <listitem> + <para>Wykrywanie systemu operacyjnego jest dużo bardziej efektywne, + jeśli wykryto przynajmniej po jednym otwartym i zamkniętym porcie TCP. + Użycie tej opcji spowoduje, że Nmap nie będzie próbował określać + systemu operacyjnego, jeśli nie zostały spełnione powyższe kryteria. + Wykorzystanie tego ograniczenia pozwala na znaczne skrócenie czasu, + zwłaszcza w połączeniu z opcją <option>-P0</option> przy skanowaniu + wielu adresów. Opcja ma znaczenie tylko w połączeniu z + <option>-O</option> lub <option>-A</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-guess</option>; <option>--fuzzy</option> + (Zgadywanie wersji systemu operacyjnego) + </term> + <listitem> + <para>Jeśli Nmap nie może jednoznacznie dopasować systemu + operacyjnego, czasami może sugerować kilka różnych, zbliżonych + do siebie. Podobieństwo musi być bardzo duże, żeby Nmap zachował + się w ten sposób przy domyślnej konfiguracji. Wykorzystanie tej opcji + pozwala na większą swobodność przy próbach ustalenia wersji systemu. + </para> + </listitem> + </varlistentry> + + + </variablelist> + </refsect1> + + <refsect1 id="man-performance"> + <title>Zależności czasowe i wydajność</title> + <para>Zawsze najważniejszym priorytetem przy tworzeniu Nmapa była + wysoka wydajność. Domyślne skanowanie (<command moreinfo="none">nmap + <replaceable>nazwahosta</replaceable></command>) hosta w sieci lokalnej + zajmuje tylko jedną piątą sekundy. Jest to zadowalający czas, jednak przy + skanowaniu setek tysięcy adresów sumaryczny czas staje się bardzo duży. + Dodatkowo niektóre typy skanowania, takie jak skanowanie UDP i detekcja + wersji także wpływają negatywnie na czas wykonania, podobnie jak konfiguracja + systemów zaporowych, na przykład limitująca ilość pakietów. Nmap posiada + możliwości równoległego skanowania i odpowiednie zaawansowane algorytmy + przyspieszające skanowanie, a użytkownik posiada ogromne możliwości + wpływania na to jak są one wykorzystywane. Zaawansowani użytkownicy + uważnie przeglądający komendy Nmapa, nakazują mu dostarczanie tylko + istotnych informacji zgodnie z przyjętymi wymaganiami i założeniami + czasowymi.</para> + + <para>Techniki przyspieszające skanowanie dotyczą ograniczenia wykonywania + mało istotnych testów i częstej zmiany wersji Nmapa na najnowszą (zmiany + dotyczące przyszpieszenia pracy są wprowadzane dosyć często). Optymalizacja + parametrów dotyczących szybkości skanowania również ma duży wpływ i + została opisana poniżej.</para> + + <variablelist> + + <varlistentry> + <term> + <option>--min-hostgroup <ilość_hostów></option>; + <option>--max-hostgroup + <numhosts></option> (Zmiana ilości hostów w grupie)</term> + <listitem> +<para>Nmap posiada możliwość skanowania portów i wersji na wielu hostach +równocześnie. Jest to realizowane poprzez dzielenie listy adresów docelowych +na grupy, które są następnie kolejno skanowane. Ogólnie skanowanie większych +grup jest bardziej efektywne. Wadą tego rozwiązania jest opóźnienie w podawaniu +wyników testów do czasu przeskanowania całej grupy. Przykładowo, jeśli Nmap +rozpoczął skanowanie w grupach po 50 adresów, żadne wyniki nie zostaną +wyświetlone (poza informacjami podawanymi przez -v) do czasu zakończenia +skanowania pierwszych 50 adresów.</para> + +<para>Domyślnie Nmap stosuje rozwiązanie kompromisowe. Rozpoczyna z grupą o +rozmiarze 5, co pozwala szybko wyświetlić pierwsze wyniki, a następnie +stopniowo powiększa rozmiar grupy aż do maksymalnie 1024. Dokładne +wykorzystywane rozmiary grup są uzależnione od podania dodatkowych opcji. +Dla uzyskania większej efektywności Nmap używa większych grup dla skanowań UDP +oraz przy skanowaniach TCP dotyczących zaledwie kilku portów.</para> + +<para>Jeśli maksymalny rozmiar grupy został określony za pomocą opcji +<option>--max-hostgroup</option>, Nmap nigdy nie przekroczy tego limitu. +Analogicznie podanie minimalnego rozmiaru za pomocą +<option>--min-hostgroup</option> wymusi stosowanie grup o przynajmniej takim +rozmiarze. Nmap może użyć mniejszej grupy tylko w przypadku, kiedy ilość +adresów do przeskanowania jest mniejsza niż założone minimum. Obie wymienione +opcje pozwalają na utrzymywanie rozmiaru grupy w podanym przedziale, jednak +jest to rzadko potrzebne.</para> + +<para>Podstawowym zastosowaniem tych opcji jest podawanie dużego minimalnego +rozmiaru grupy tak, żeby pełne skanowanie odbywało się szybciej. Często +stosowaną wartością jest 256, co pozwala na skanowanie w kawałkach o rozmiarze +klasy C. Przy skanowaniu wielu portów, stosowanie większych wartości +minimalnych przeważnie nie poprawi wydajności. W przypadku skanowania małych +ilości portów pomocne może być stosowanie grup o rozmiarze 2048 lub nawet +większym.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-parallelism <ilość_prób></option>; + <option>--max-parallelism + <ilość_prób></option> (Kontrola współbierzności testów)</term> + <listitem> + +<para>Opcja ta kontroluje ilość jednoczesnych dla danej grupy adresów +testów i jest wykorzystywana podczas wykrywania hostów i skanowania portów. +Domyślnie Nmap dobiera idealną ilość testów w zależności od parametrów sieci. +Jeśli jakiś pakiet zostanie zagubiony, zwalnia i zaczyna wykonywać +mniejszą ilość testów równolegle. Nmap próbuje powoli przyspieszać, jeśli nie +są gubione pakiety. Podane opcje pozwalają na określenie minimalnego i +maksymalnego limitu ilości jednocześnie wykonywanych testów. Normalnie ilość +ta może spaść do 1 przy złych warunkach sieciowych lub wzrosnąć do kilkuset +w idealnych warunkach.</para> + +<para>Najczęściej wykorzystywana jest opcja +<option>--min-parallelism</option> do ustawiania wyższej niż 1 wartości przy +skanowaniu sieci przy złych warunkach. Zmiana tej opcji może być ryzykowna, +ponieważ ustawienie zbyt wysokiej wartości może sie odbić na poprawności testów. +Wykorzystanie jej także pociąga za sobą zmniejszenie możliwości Nmapa w +zakresie dynamicznego dostosowywania się do warunków panujących w sieci. +Ustalenie minimalnej ilości na 10 może być sensowne, jednak powinno być +stosowane w ostateczności.</para> + +<para>Opcja <option>--max-parallelism</option> jest czasami wykorzystywana do +zmuszenia Nmapa do nie przeprowadzania więcej niż jednego testu równolegle, co +może być użyteczne w połączeniu z opcją<option>--scan-delay</option> (opisaną +dalej).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-rtt-timeout <czas></option>, + <option>--max-rtt-timeout <czas></option>, + <option>--initial-rtt-timeout + <czas></option> (Kontrola czasu oczekiwania na wykonanie testu)</term> + <listitem> + +<para>Nmap posiada mechanizm kontrolujący czas oczekiwania na wynik testu, +zanim nie zostanie on ponowiony. Czas oczekiwania jest zależny od czasu +wykonania poprzednich testów. Jeśli opóźnienia w sieci okażą sie duże i +zmienne, czas oczekiwania może zwiększyć sie do kilku sekund. Początkowa +wartość jest dosyć konserwatywna (wysoka) i może taka pozostać w przypadku +skanowania nie odpowiadających hostów.</para> + +<para>Opcje przyjmują wartości w milisekundach, ale można dodać litery +<literal moreinfo="none">s</literal>, <literal moreinfo="none">m</literal> +lub <literal moreinfo="none">h</literal> odnoszące się odpowiednio do sekund, +minut i godzin. Podanie niższych wartości <option>--max-rtt-timeout</option> i +<option>--initial-rtt-timeout</option> niż domyślne, może znacząco skrócić czas +skanowania. Jest to głównie widoczne w przypadku skanowania bez wykorzystywania +pinga (<option>-P0</option>) oraz przy skanowaniu dobrze filtrowanych sieci. +Nie można również przesadzać w drugą stronę, ustawienie zbyt małego czasu +może przekładać sie na dłuższy czas skanowania przez niepotrzebne retransmisje +spowodowane upływem czasu oczekiwania na odpowiedź.</para> + +<para>Jeśli wszystkie skanowane hosty są w sieci lokalnej, sensownym agresywnym +ustawieniem opcje <option>--max-rtt-timeout</option> jest 100 milisekund. +Jeśli skanowany ma być inny segment, warto sprawdzić czasy odpowiedzi dla +protokołu ICMP - za pomocą narzędzia ping lub innego pozwalającego na +definiowanie pakietów mogących omijać system zaporowy, takiego jak hping2. +Interesującą nas wielkością jest maksymalny czas odpowiedzi dla 10 lub więcej +pakietów. Uzyskany czas może zostać po podwojeniu wykorzystany jako wartość dla +<option>--initial-rtt-timeout</option>, a po pomnożeniu przez trzy lub cztery +dla <option>--max-rtt-timeout</option>. Nie jest zalecane ustawianie +maksymalnego rtt poniżej 100ms, niezależnie od czasów pingowania, podobnie +większego niż 1000ms.</para> + +<para><option>--min-rtt-timeout</option> jest rzadko wykorzystywaną funkcją, +która może być przydatna jeśli komunikacja sieciowa jest tak niepewna, że nawet +domyślne ustawienia Nmapa są zbyt agresywne. Jako że Nmap redukuje czas +oczekiwania tylko do momentu w którym sieć zacznie działać poprawnie, potrzeba +dodatkowego wydłużania czasu oczekiwania nie jest normalna i powinna zostać +zaraportowana jako błąd na liście dyskusyjnej nmap-dev.</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>--max-retries <ilość></option> (Maksymalna ilość prób ponawiania skanowania portów) + </term> + <listitem> + +<para>Kiedy Nmap nie otrzyma odpowiedzi na skanowanie portu, może to oznaczać, +że port ten jest filtrowany. Możliwe jest jednak także, że pakiet testu lub +odpowiedzi po prostu zaginął w sieci, albo że host limituje ilość możliwych +odpowiedzi w jednostce czasu i właśnie tymczasowo je zablokował. Większą +pewność uzyskuje się dzieki powtarzaniu testu w przedstawionych przypadkach. +Jeśli Nmap wykryje problemy z komunikacją sieciową, może ponawiać próbę badania +portu wiele razy, zanim sie podda. Z jednej strony zwiększa to dokładność +testów, z drugiej wydłuża czas ich wykonania. Jeśli wydajność jest krytycznym +aspektem, skanowania mogą zostać przyspieszone poprzez limitowanie dozwolonej +ilości retransmisji. Ustawienie opcji <option>--max-retries 0</option> , +całkowicie wyłączającej powtarzanie testów jest wykorzystywane sporadycznie. +</para> + +<para>Domyślnie (bez stosowania opcji <option>-T</option>) dozwolone jest +maksymalnie 10 powtórzeń. Jeśli sieć działa prawidłowo i skanowane hosty nie +limitują ilości pakietów, Nmap zwykle wykorzystuje jedną retransmisję. Dlatego też +większość skanowań nie zostanie dotkniętych zmianą wartości +<option>--max-retries</option> na trzy. Stosowanie tak niskich wartości pozwala +na znaczne przyspieszenie skanowania hostów limitujących ilość odpowiedzi. +Jeśli Nmap będzie zbyt szybko poddawał się przy skanowaniu portów, część +informacji nie zostanie zebrana, dlatego być może warto skorzystać z opcji +przerywającej test <option>--host-timeout</option>, która dotyczy całego hosta, +a nie tylko pojedynczych testów.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--host-timeout <czas></option> (Pomijaj powolne hosty) + </term> + <listitem> + +<para>Skanowanie niektórych hostów trwa <emphasis>bardzo długo</emphasis>. +Może to być spowodowane niezbyt wydajnym sprzętem sieciowym lub +oprogramowaniem, limitowaniem ilości pakietów czy restrykcjami systemu +zaporowego. Niewielki procent hostów może zabrać większość czasu przeznaczonego +na skanowanie. Czasami najlepszym rozwiązaniem jest ich pominięcie z +wykorzystaniem opcji <option>--host-timeout</option> z parametrem oznaczającym +ilość milisekund, jakie jesteśmy w stanie poświęcić na czekanie per host. +Parametr można również podawać w sekundach, minutach lub godzinach dodając +odpowiednio litery <literal moreinfo="none">s</literal>, +<literal moreinfo="none">m</literal> lub <literal moreinfo="none">h</literal>. +Często dodaję <literal moreinfo="none">30m</literal> żeby mieć pewność, że Nmap +nie będzie skanował jednego hosta dłużej niż pół godziny. Trzeba pamiętać, że +Nmap może równolegle w tym czasie skanować inne hosty, więc nie bedzie to czas +kompletnie stracony. Host który przekroczy czas jest pomijany i nie są dla +niego wyświetlane wyniki takie jak lista portów, system operacyjny czy wersje +usług.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scan-delay <czas></option>; + <option>--max-scan-delay + <czas></option> (Ustaw opóźnienie pomiędzy testami)</term> + <listitem> + +<para>Opcja pozwala na narzucenie czasu w milisekundach jaki musi minąć +pomiędzy kolejnymi testami dla badanego hosta. Podobnie jak przy innych opcjach +pozwalających na określanie czasu, można dodać +<literal moreinfo="none">s</literal>, +<literal moreinfo="none">m</literal> lub <literal moreinfo="none">h</literal> +do parametru do określenia go odpowiednio w sekundach, minutach lub godzinach. +Opcja ta jest szczególnie użyteczna w przypadku systemów limitujących ilość +pakietów. Solaris zwykle odpowiada na skanowanie UDP poprzez wysyłanie tylko +jednego pakietu ICMP na sekundę, więc wysyłanie zapytań szybciej jest zupełnie +nie potrzebne. Wykorzystanie opcji <option>--scan-delay 1s</option> pozwala na +wymuszenie odpowiedniej prędkości skanowania. Normalnie Nmap stara się +wykryć jaka powinna być optymalna prędkość skanowania dla każdego hosta, jednak +ręczne dodanie takiej opcji nie zaszkodzi, o ile znana jest optymalna prędkość.</para> + +<para>Kiedy Nmap zwiększa czas opóźnienia, dostosowując go do +limitu ilości otrzymywanych odpowiedzi, czas skanowania dramatycznie rośnie. +Opcja <option>--max-scan-delay</option> pozwala na ustawienie maksymalnego +limitu do którego może być automatycznie zwiększane opóźnienie. Ustawienie +tej wartości zbyt nisko może spowodować niepotrzebne retransmisje i +pominięcie niektórych portów w przypadku hostów ściśle limitujących ilość +pakietów.</para> + +<para>Inną możliwością wykorzystanie opcji <option>--scan-delay</option> +jest omijanie systemów detekcji intruzów (IDS/IPS).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-T + <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane></option> + (Ustawnienie szablonu zależności czasowych skanowania) + </term> + <listitem> + +<para>Opisane wcześniej opcje do zmiany zależności czasowych pozwalają na +efektywne i precyzyjne sterowanie skanowaniem, jednak wiele osób uzna je za +niepotrzebnie skomplikowane. Dodatkowo w wielu przypadkach dobranie +odpowiedniej kombinacji parametrów może zająć więcej czasu, niż samo +skanowanie. Z tego powodu Nmap oferuje prostrze rozwiązanie w postaci +sześciu szablonów. Ich wybór jest możliwy poprzez wykorzystanie opcji +<option>-T</option> z parametrem oznaczającym numer lub nazwę szablonu. +Dostępne szablony to paranoid (0, paranoidalny), sneaky (1, podstępny), +polite (2, grzeczny), normal (3, normalny), aggressive (4, agresywny) i +insane (5, szalony). Pierwsze dwa wykorzystywane są do omijania systemów +IDS. Szablon polite spowalnia skanowanie powodując mniejsze obciążenie łącza +i zmniejszające wykorzystanie zasobów w badanym systemie. Domyślnie używany +jest normal, więc podawanie <option>-T3</option> nic nie zmieni. Szablon +agresywny przyspiesza skanowanie przy założeniu że korzystamy z szybkiej i +nie przeciążonej sieci. Insane zakłada wykorzystanie ponad przeciętnie szybkiej +sieci lub jeśli chcemy uzyskać dużą szybkość kosztem możliwej utraty +dokładności.</para> + +<para>Szablony pozwalają poinformować Nmapa jak dużej agresywności od niego +oczekujemy przy jednoczesnym pozwoleniu mu na automatyczne dobieranie +pozostałych parametrów czasowych. Wprowadzane też są inne drobne modyfikacje, +do których nie istnieją odzielne opcje. Na przykład, <option>-T4</option> +zabrania wzrostu dynamicznego opóźnienia skanowania powyżej 10ms dla portów +TCP, a w przypadku <option>-T5</option> powyżej 5ms. Szablony mogą być używane +w połączeniu z innymi opcjami do ustawiania zależności czasowych o ile zostaną +umieszczone przed pozostałymi opcjami w linii poleceń +(inaczej domyślne ustawienia z szablonu zastąpią ustawione innymi opcjami). +Większość dzisiejszych sieci może być z powodzeniem skanowana z wykorzystaniem +opcji <option>-T4</option>.</para> + +<para>Jeśli używasz łącza szerokopasmowego lub sieci ethernet, rekomendowane +jest stałe używanie szablonu <option>-T4</option>. Wiele osób lubi +<option>-T5</option>, lecz jest ono jak dla mnie trochę za agresywne. Ludzie +czasami używają <option>-T2</option> ponieważ myślą, że zminiejszają szanse +na zawieszenie serwera lub uważają się za bardziej kulturalnych z założenia, +często nie zdając sobie sprawy z tego, jak wolne jest <option>-T Polite</option> +- ich skanowania może trwać dziesięć razy dłużej. Zawieszanie hostów i problemy +z pasmem są rzadko spotykane przy domyślym <option>-T3</option>, i ta opcja jest +polecana dla ostrożnych skanujących. Nie włączanie detekcji wersji jest daleko +bardziej efektywnym sposobem na unikanie problemów.</para> + +<para>Podczas gdy opcje <option>-T0</option> i <option>-T1</option> mogą być +użyteczne przy unikaniu wykrycia przez systemy IDS, są niesamowicie powolne +przy skanowaniu setek adresów lub portów. Przy tak długich skanowaniach możesz +raczej chcieć ustawić ręcznie poszczególne zależności czasowe, niż polegać na +predefiniowanych wartościach z <option>-T0</option> i <option>-T1</option>. +</para> + +<para>Głównym efektem działania <option>T0</option> jest ograniczenie ilości +równolegle przeprowadzanych testów do jednego i wprowadzenie odstępu pomiędzy +kolejnymi testami o długości 5 minut. Opcje <option>T1</option> i +<option>T2</option> są podobne, ale czakają już tylko odpowiednio 15 i 0.4 +sekundy pomiędzy testami. <option>T3</option> jest domyślnym ustawieniem Nmapa +włączając w to zrównoleglanie testów. <option>T4</option> jest odpowiednikiem +podania opcji <option>--max-rtt-timeout 1250 --initial-rtt-timeout 500 +--max-retries 6</option> i ustawienia maksymalnego opóźnienia przy skanowaniu +TCP na 10 milisekund. Opcja <option>T5</option> jest alternatywą dla +<option>--max-rtt-timeout 300 --min-rtt-timeout 50 --initial-rtt-timeout 250 +--max-retries 2 --host-timeout 900000</option> oraz ustawienia maksymalnego +czasu opóźnienia dla skanowania TCP na 5ms.</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-bypass-firewalls-ids"> + <title>Firewall/IDS i podszywanie się</title> + +<para>Wielu pionierów ineternetu wykorzystywało globalną otwartą sieć opartą +o uniwersalną przestrzeń adresową pozwalającą na tworzenie wirtualnych +połączeń pomiędzy dwoma dowolnymi węzłami. Pozwalało to hostom na równoprawną +komunikację przy której każdy mógł serwować i pobierać dane od drugiego. +Ludzie mogli uzyskać dostęp do wszystkich swoich systemów z dowolnego miejsca +w sieci. Wizja nieograniczonej łączności została ograniczona przez wyczerpujące +się zapasy wolnych adresów IP i względy bezpieczeństwa. We wczesnych latach +90-tych organizacje zaczęły masowo wprowadzać systemy zaporowe dla ograniczenia +możliwości komunikacji. Duże sieci zostały otoczone kordonem zabezpieczeń w +postaci proxy aplikacyjnych, translacji adresów i filtrowania pakietów. +Niczym nie ograniczany przepływ informacji ustąpił ścisłym regulacjom +dotyczącym dozwolonych dróg komunikacji i treści nimi przesyłanych.</para> + +<para>Zabezpieczenia sieciowe takie jak systemy zaporowe mogą bardzo utrudnić +uzyskiwanie informacji o sieci i jej architekturze. +Nmap posiada wiele funkcji pozwalających zrozumieć działanie złożonych sieci i +na weryfikacje działania filtrów pakietów i ich zgodności z założeniami. +Pozwala nawet na omijanie źle zaimplementowanych zabezpieczeń. Jednym z +najlepszych sposobów na poznanie bezpieczeństwa swojej sieci jest próba jego +przełamania. Zacznij myśleć jak atakujący, który stosuje techniki z tej części +dokumentacji przeciwko Twojej sieci. Uruchom skanowania FTP bounce, Idle, dodaj +fragmentację pakietów lub spróbuj uruchomić tunel omijający lokalne proxy.</para> + +<para>W połączeniu z ograniczeniami aktywności sieciowej, firmy coraz częściej +rozpoczynają monitorowanie ruchu sieciowego za pomocą systemów detekcji intruzów +(IDS). Wszystkie popularne systemy IDS mają dołączone reguły wykrywające +skanowania Nmapa, ponieważ skanowania takie czasami poprzedzają ataki. Wiele z tych +systemów ostatnio przeistoczyło się w systemy <emphasis>prewencji</emphasis> +(IPS), które aktywnie przeciwstawiają się niepożądanemu ruchowi. Niestety, dla +administratorów sieci i producentów systemów IDS, wiarygodne wykrywanie złych +intencji poprzez analizę pakietów jest ciężkim orzechem do zgryzienia. +Cierpliwi atakujący, posiadający odpowiednie umiejętności podparte +możliwościami Nmapa zwykle mogą ominąć systemy detekcji intruzów i ich +działania nie zostaną wykryte. W tym samym czasie administratorzy muszą się +zmagać z ogromną ilością fałszywych alarmów dotyczących niepoprawnie +zaklasyfikowanej zupełnie niewinnej komunikacji.</para> + +<para>Co jakiś czas ktoś sugeruje, że Nmap nie powinien oferować możliwości +omijania systemów zaporowych czy systemów IDS. Argumentują to możliwością +wykorzystania tych funkcji także przez atakujących, a nie tylko przez +administratorów podnoszących bezpieczeństwo swoich sieci. Problemem jest +sama logika, ponieważ atakujący i tak będą wykorzystywali tego typu metody +używając innych narzędzi lub samemu wprowadzając odpowiednią +funkcjonalność do kodu Nmapa. Równocześnie administratorzy będą mieli +utrudniony dostęp do odpowiednich narzędzi i ich praca będzie trudniejsza. +Uruchomienie nowoczesnego, bezpiecznego serwera FTP jest dużo skuteczniejszą +metodą ochrony niż ograniczanie dostępności do narzędzi pozwalających na +przeprowadzanie ataków FTP bounce.</para> + +<para>Nie ma magicznej kuli (lub opcji Nmapa) do przełamywania i obchodzenia +systemów zaporowych i IDS. Wymaga to umiejętności i doświadczenia. Dokładne +instrukcje wykraczają poza zakres tej dokumentacji, która jest jedynie listą +dostępnych opcji wraz z opisami jak one działają.</para> + +<variablelist> + <varlistentry> + <term> + <option>-f</option> (fragmentacja pakietów); + <option>--mtu</option> (Używanie wybranego MTU) + </term> + + <listitem> + <para>Opcja <option>-f</option> powoduje wykorzystywanie przy + skanowaniu (włączając w to skanowanie ping) małych pofragmentowanych + pakietów. Idea polega na podzieleniu nagłówka TCP na wiele pakietów, + co powoduje utrudnienia w ich przetwarzaniu przez filtry pakietów, + systemy detekcji intruzów oraz irytujące komplikacje przy ustalaniu + co się dzieje. Ale uwaga! Wiele programów ma problemy przy obsłudze + tego typu pakietów. Przestarzały sniffer Sniffit wykonuje + nieprawidłową operacje i zostaje zamknięty zaraz po odebraniu już + pierwszego z takich pakietów. Dodanie tej opcji spowoduje + automatyczne dzielenie wszystkich pakietów wysyłanych przez Nmapa + na mniejsze o rozmiarze maksymalnie 8 bajtów. Przykładowo 20 bajtowy + nagłówek TCP zostanie podzielony na 3 pakiety: najpierw dwa po 8 + bajtów i ostatni 4 bajty. Oczywiście każdy fragment dostaje własny + nagłówek IP. Dodanie drugiej opcji <option>-f</option> powiększa + wykorzystywany rozmiar fragmentów z 8 do 16 (redukując ilość + fragmentów). Możliwe jest również podanie własnego rozmiaru za + pomocą opcji <option>--mtu</option>. Nie używaj parametru + <option>-f</option>, jeśli używasz <option>--mtu</option>. Podawany + rozmiar musi być wielokrotnością 8. W niektórych systemach filtry + pakietów nie otrzymują bezpośrednio pakietów, tylko są one wstępnie + kolejkowane, tak jak w Linuxie przy ustawieniu opcji + CONFIG_IP_ALWAYS_DEFRAG w kernelu, jednak w wielu przypadkach takie + opcje nie są włączane ze względów wydajnościowych. Opcja taka nie + jest również włączana jeśli zachodzi możliwość routowania + poszczególnych pakietów różnymi ścieżkami. Niektóre systemy + operacyjne potrafią defragmentować pakiety wysyłane przez kernel, + Linux z iptables i modułem śledzenia połączeń jest jednym z + przykładów. Uruchamiając skanowanie można podsłuchać za pomocą + sniffera takiego jak Ethereal, czy wychodzące pakiety są rzeczywiście + pofragmentowane. Jeśli system powoduje tego typu problemy, można + wypróbować opcje <option>--send-eth</option>, która pomija stos + TCP/IP i wysyła bezpośrenio ramki ethernetowe.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-D <decoy1 [,decoy2][,ME],...></option> + (Ukrywaj skanowanie za pomocą innych hostów) + </term> + <listitem> + <para>Powoduje skanowanie, wykrywane jako przychodzące z kilku miejsc + równocześnie. System IDS może wykryć 5-10 różnych skanowań z różnych + adresów, jednak nie będzie w stanie ocenić który z nich jest + prawdziwym źródłem pochodzenia, a które tylko niewinnymi zasłonami. + Chociaż metoda ta może zostać rozpoznana poprzez śledzenie ścieżki + pakietów na routerach i innych aktywnych mechanizmów, ogólnie jest + efektywną techniką na ukrywanie swojego adresu IP.</para> + + <para>Podwając listę poszczególnych hostów-zasłon, trzeba je + oddzielić przecinkami, można również na tej liście umieścic + <literal moreinfo="none">ME</literal> oznaczające pozycję własnego + adresu IP na liście. W przypadku wykorzystania przynajmniej 6-tej + pozycji na liście dla własnego IP, wiele popularnych systemów + wykrywających skanowania (na przykład scanlogd firmy Solar Designer) + nawet nie pokaże prawdziwego źródła pochodzenia pakietów na liście + ataków. Jeśli <literal moreinfo="none">ME</literal> nie zostanie + dodane, Nmap umieści je losowo na liście.</para> + + <para>Należy zwrócić uwagę, ze hosty-przykrywki powinny być dostępne, + inaczej będzie można łatwo wykryć host skanujący i że można niechcący + dokonać ataku SYN flood na hosty skanowane. Bezpieczniej jest używać + adresów IP zamiast nazw systemów-przykrywek, bo nie zostawi to + informacji w logach ich serwera nazw.</para> + + <para>Przykrywki są używane zarówno przy początkowym skanowaniu ping + (z wykorzystaniem ICMP, SYN ACK itp), podczas skanowania portów jak i + przy wykrywaniu systemu operacyjnego. Technika ta nie działa podczas + wykrywania wersji i skanowania metodą connect().</para> + + <para>Używanie zbyt wielu adresów hostów-przykrywek znacznie spowalnia + skanowanie i może nawet spowodować zmniejszenie dokładności. Dodatkowo + niektórzy dostawcy usług odfiltrowują pakiety podszywające się pod + adresy z innych sieci, jednak wielu nie robi tego wcale.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-S <adres_ip></option> (Ustawienie adresu nadawcy) + </term> + <listitem> + <para>W niektórych przypadkach Nmap nie potrafi ustalić właściwego + adresu nadawcy (i wyświetli stosowny komunikat). W takim przypadku + należy za pomocą opcji <option>-S</option> podać adres lokalnego + interfejsu przez który mają być wysyłane pakiety.</para> + + <para>Inną możliwością tej opcji jest podmiana adresu nadawcy tak, + by cel skanowania uważał, że skanuje go <emphasis>ktoś inny</emphasis>. + Wyobraź sobie, ze firmę nagle zacznie skanować konkurencja! W + przypadku takiego użycia, zwykle będzie wymagana opcja + <option>-e</option>, a zalecana również <option>-P0</option>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-e <interfejs></option> (Użyj wybranego interfejsu) + </term> + <listitem> + <para>Informuje Nmapa przez który interfejs ma wysyłać i odbierać + pakiety. Nmap powinien wykryć go automatycznie, ale jeśli mu się + nie uda, można to zrobić ręcznie.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--source-port <numerportu>;</option> + <option>-g <numerportu></option> (Używaj podanego portu źródłowego) + </term> + <listitem> + +<para>Jednym z najczęściej spotykanych problemów konfiguracyjnych jest ufanie +danym przychodzącym z określonego portu źródłowego. Łatwo jest zrozumieć, czemu +tak się dzieje. Administrator instaluje nowiusieńki system zaporowy, którego +jedyną wadą są zgłoszenia od niepocieszonych użytkowników, którym nagle +przestały działać aplikacje. Przykładem może być DNS, ponieważ odpowiedzi na +zapytania z zewnętrznych serwerów przestały dochodzić do sieci. Innym +przykładem jest FTP, przy stosowaniu aktywnych połączeń zewnętrzne serwery +próbują utworzyć połączenia powrotne do klienta żądającego przesłania pliku. +</para> + +<para>Bezpieczne rozwiązanie dla tych problemów istnieje, często w formie +aplikacyjnych serwerów proxy lub analizy protokołu przez systemy zaporowe. +Niestety istnieją również inne łatwiejsze, ale i mniej bezpieczne +rozwiązania. Wielu administratorów wpada w pułapkę zakładając, że dane +przychodzące z portu 53 są zawsze odpowiedziami serwera DNS, a z 20 aktywnymi +połączeniami FTP i zezwalając na przechodzenie takiego ruchu przez system +zaporowy. Często zakładają, że żaden atakujący nie spróbuje wykorzystać +takiej luki. Zdaża się również, że problem taki zostaje wprowadzony do +konfiguracji jako tymczasowe rozwiązanie, jednak zapominają o jego zmianie +na bardziej bezpieczne.</para> + +<para>Przepracowani administratorzy nie są jedynymi, którzy wpadają w taką +pułapkę. Wiele komercyjnych produktów jest dostarczanych z podobnymi +problemami. Zdarzyło się to nawet firmie Microsoft, której filtry IPsec +dostarczone z Windows 2000 i XP zawierają regułę wpuszczającą cały ruch +TCP i UDP pochodzący z portu 88 (Kerberos). Innym dobrze znanym przykładem jest +Zone Alarm personal firewall, który do wersji 2.1.25 włącznie nie filtrował +pakietów UDP z portów 53 (DNS) i 67 (DHCP).</para> + +<para>Nmap oferuje dwie ekwiwalentne opcje <option>-g</option> i +<option>--source-port</option> pozwalające na wykorzystanie opisanej wyżej +funkcjonalności poprzez podanie numeru portu z którego wysyła dane, +o ile jest to tylko możliwe. Nmap musi używać różnych numerów portów dla +poprawnego działania niektórych testów wykrywających system operacyjny, +zapytania DNS również ignorują opcję <option>--source-port</option>, ponieważ +Nmap wykorzystuje do tego biblioteki systemowe. Większość typów skanowania +TCP, włączając skanowanie SYN obsługuje tę opcję we wszystkich przypadkach, +podobnie jak i UDP.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--data-length <rozmiar></option> (Dodawaj losowe dane + do wysyłanych pakietów) + </term> + <listitem> + <para>Domyślnie Nmap wysyła pakiety o minimalnej wielkości + zawierające jedynie sam nagłówek. Pakiety TCP mają 40 bajtów, a ICMP + tylko 28. Ta opcja pozwala dołączać do większości pakietów losowe + dane o podanym rozmiarze. Pakiety używane do detekcji systemu + operacyjnego (<option>-O</option>) pozostają nie zmienione, ale przy + większości pakietów ping i skanowania portów opcja ta jest + wykorzystywana. Powiększanie pakietów spowalnia proces skanowania, + jednocześnie czyniąc go mniej podejrzanym.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--ttl <wartość></option> (Ustaw czas życia pakietu IP) + </term> + <listitem> + <para>Ustawia czas życia (TTL) pakietów na podaną wartość.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--randomize-hosts</option> (Losowanie kolejności skanowania hostów) + </term> + <listitem> + <para>Opcja powoduje włączenie losowania kolejności hostów w każdej + grupie do 8096 hostów przed ich skanowaniem. Zachowanie takie czyni + skanowanie mniej oczywistym dla wielu systemów monitorujących sieci, + zwłaszcza w połączeniu z opcją spowalniającą skanowanie. Możliwe jest + losowanie z jeszcze większych grup, poprzez zmianę stałej + PING_GROUP_SZ w pliku <filename moreinfo="none">nmap.h</filename> + i rekompilacji. Innym rozwiązaniem jest wygenerowanie listy adresów + IP za pomocą opcji lista skanowania (<option>-sL -n -oN + <replaceable>nazwapliku</replaceable></option>) i losowemu + pomieszaniu adresów na niej za pomocą skryptu Perla, oraz podaniu jej + Nmapowi za pomocą opcji <option>-iL</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--spoof-mac <adres mac, prefiks, lub nazwa producenta + ></option> (Podmieniaj adres MAC) + </term> + <listitem> + + <para>Podaje Nmapowi adres MAC z użyciem którego będą wysyłane + wszystkie pakiety ethernet. Opcja włącza również automatycznie + <option>--send-eth</option> dla uzyskania pewności wysyłania + pakietów na poziomie ethernetu. Podany adres MAC może przyjmować + wiele postaci. Jeśli zostanie podany znak <quote>0</quote>, + Nmap wybierze kompletnie losowy adres MAC na czas trwania danej + sesji. Podanie parzystej ilości cyfr heksadecymalnych + (mogą być oddzielone dwukropkami), spowoduje wykorzystanie jej jako + adresu MAC, przy czym jeśli podano mniej niż 12 cyfr szestnastkowych, + Nmap wypełni pozostałość 6 bajtów losowymi wartościami. Jeśli + podany ciąg nie jest 0 lub liczbą heksadecymalną, Nmap poszuka w + pliku <filename moreinfo="none">nmap-mac-prefixes</filename> nazwy + producenta zawierającego podany ciąg (duże i małe litery nie są + rozróżniane) i jeśli znajdzie, użyje identyfikatora producenta + OUI (3 bajty) wypełniając pozostałe 3 bajty losowo. + Przykłady poprawnych argumentów to + <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>, <literal moreinfo="none">Cisco</literal> itp.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--badsum</option> (Wysyłanie pakietów z nieprawidłową sumą kontrolną TCP/UDP) + </term> + <listitem> + + <para>Powoduje wstawianie do nagłówków wysyłanych pakietów + nieprawidłowych sum kontrolnych. Jako że prawie każdy stos IP + odrzuci tego typu pakiety, otrzymana odpowiedź najprawdopodobniej + pochodzi od systemu zaporowego lub IDS, które nie przejmują się + sumami kontrolnymi. Dokładniejszy opis tej techniki znajduje się + pod adresem <ulink url="https://nmap.org/p60-12.txt"/></para> + </listitem> + </varlistentry> + + </variablelist> + + </refsect1> + + <refsect1 id="man-output"> + <title>Wyjście</title> + + <para>Każde narzędzie jest tylko tak dobre, jak wyniki które się za jego + pomocą uzyskuje. Złożone testy i algorytmy nie są nic warte, jeśli ich + wyniki nie są zaprezentowane w odpowiedniej formie. Z związku z tym, że + użytkownicy Nmapa używają go w różny sposób, także w połączeniu z innymi + narzędziami, nie ma jednego formatu, który by wszystkich zadowolił. Dlatego + też Nmap oferuje kilka formatów, włączając w to tryb interaktywny i tryb + XML do lepszej integracji z innymi programami.</para> + + <para>Dodatkowo poza różnymi formatami wyjściowymi, Nmap posiada opcje + pozwalające na kontrolowanie poziomu szczegółowości dostarczanych informacji + oraz komunikatów do śledzenia błędów. Wyniki mogą być przekazywane do + standardowego wyjścia jak i do plików (w trybie zastępowania lub dołączania). + Wygenerowane pliki mogą również być wykorzystywane do wznowienia przerwanych + skanowań.</para> + + <para>Nmap pozwala na uzyskanie pięciu różnych formatów raportów. Domyślny + to <literal moreinfo="none">format interaktywny</literal> i jest + wykorzystywany w połączeniu ze standardowym wyjściem. Jest także format + <literal moreinfo="none">format normalny</literal>, podobny do + <literal moreinfo="none">interaktywnego</literal>, jednak wyświetla mniej + rutynowych informacji i ostrzeżeń, ponieważ jest raczej przewidziany do + poźniejszej analizy, niż do interaktywnego oglądania w trakcie skanowania.</para> + + <para>Tryb XML jest jednym z najważniejszych, jako że może zostać + przekonwertowany na HTML lub bezporoblemowo przetworzony przez inne programy, + takie jak graficzne interfejsy użytkownika lub zaimportowany do bazy + danych.</para> + + <para>Pozostałe dwa najmniej skomplikowane to format pozwalający na łatwe + przetwarzanie za pomocą wyrażeń regularnych (grep), który zawiera większość + informacji o hoście w jednej linii, oraz format + <literal moreinfo="none">sCRiPt KiDDi3 0utPUt</literal>.</para> + + <para>Podczas gdy format interaktywny jest domyślny i nie posiada dodatkowych + opcji, pozostałe cztery formaty używają tej samej składni w postaci jednego + argumentu, będącego nazwą pliku do którego mają zostać zapisane wyniki. + Możliwe jest podawanie wielu formatów jednocześnie, jednak każdy z nich może + być podany tylko raz. Na przykład, jeśli chcesz zapisać format normalny do + późniejszego przegladania i równocześnie XML do przetwarzania przez inne + programy, używamy składni <option>-oX myscan.xml -oN myscan.nmap</option>. + W przykładach z tej dokumentacji dla ułatwienia używamy prostych nazw, takich + jak <literal moreinfo="none">myscan.xml</literal>, jednak w codzinnym użyciu + zalecane jest stosowanie nazw bardziej opisowych. Nazwy te mogą być dowolnie + wybierane, zgodnie z własnymi preferencjami, osobiście preferuję długie nazwy + zawierające datę skanowania i słowo lub dwa opisujące skanowanie, umieszczone + w katalogu zawierającym nazwę firmy skanowaniej.</para> + + <para>Podczas zapisywania wyników do pliku Nmap nadal wyświetla interaktywną + formę raportu na standardowe wyjście. Przykładowo, komenda + <command moreinfo="none">nmap -oX myscan.xml cel</command> zapisuje wyniki w + formacie XML do pliku <filename moreinfo="none">myscan.xml</filename> + równocześnie wyświetlając je w trybie interaktywnym tak, jakby opcja + <option>-oX</option> nie była podana. Możliwa jest zmiana tego zachowania + poprzez podanie znaku myślnika (-) zamiast nazwy pliku przy wybranym + formacie, co spowoduje wyświetlanie go zamiast formy interaktywnej. Tak więc + komenda <command moreinfo="none">nmap -oX - cel</command> spowoduje + wyświetlenie tylko formatu XML na standardowym wyjściu stdout. Komunikaty + o poważnych błędach sa nadal wyświetlane za pomocą standardowego wyjścia + błędów stderr.</para> + + <para>Inaczej niż przy innych opcjach, spacja pomiędzy opcją (taką jak + <option>-oX</option>), a nazwą pliku lub myślnika nie jest wymagana. + Jeśli spacja zostanie pominięta przy opcjach takich jak + <option>-oG-</option> lub <option>-oXscan.xml</option>, z powodów + kompatybilności wstecznej Nmap zapisze wyniki w formacie normalnym w plikach + odpowiednio <filename moreinfo="none">G-</filename> i + <filename moreinfo="none">Xscan.xml</filename>.</para> + + <para>Nmap posiada również opcje pozwalające na ustalenie poziomu + szczegółowości podawanych informacji jak również pozwalające na + dołączanie wyników do już istniejących plików. Opcje te zostały opisane + poniżej.</para> + +<variablelist><title>Formaty wyjściowe Nmapa</title> + <varlistentry> + <term> + <option>-oN <nazwapliku></option> (Format normalny)</term> + <listitem> + <para>Powoduje zapis w <literal moreinfo="none">formacie normalnym</literal> + do wskazanego pliku. Jak napisano wyżej, format ten różni się nieco od + <literal moreinfo="none">formatu interaktywnego</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oX <nazwapliku></option> (Format XML)</term> + <listitem> + + <para>Powoduje zapis w <literal moreinfo="none">formacie XML</literal> + do wskazanego pliku. Nmap dołącza definicje formatu dokumentu (DTD), + który pozwala innym programom na weryfikację zawartości tego pliku. + Funkcja ta jest głównie przeznaczona do wykorzystania przez + oprogramowanie dodatkowe, jednak może pomóc w ręcznej analizie + zawartych danych. DTD opisuje jakie elementy XML mogą być legalnie + uzywane w pliku i często podaje jakie wartości mogą przyjmować + poszczególne znaczniki. Zawsze aktualna DTD wersja jest dostępna pod + adresem <ulink url="https://nmap.org/data/nmap.dtd"/>.</para> + + <para>XML jest stabilnym formatem, który może być łatwo przetwarzany + przez inne programy. Darmowe biblioteki do przetwarzania XML są + dostępne dla większości języków programowania, takich jak C/C++, Perl, + Python czy Java. Napisano nawet wiele procedur dostosowanych + specjalnie do potrzeb Nmapa. Przykładami są + <ulink url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> + i <ulink url="http://www.nmapparser.com">Nmap::Parser</ulink> dla + Perla (CPAN). W wiekszości dużych aplikacji korzystających z + Nmapa preferowany jest właśnie format XML.</para> + + <para>W formacie XML jest również opisany styl XSL, który może zostać + wykorzystany do konwersji do HTML. Najprostrzym sposobem jest po + prostu wczytanie pliku XML do przeglądarki internetowej, takiej jak + Firefox czy IE. Domyślnie zadziała to tylko na komputerze na którym + był uruchamiany Nmap (lub skonfigurowanym podobnie), z powodu + umieszczenia ścieżki do pliku <filename moreinfo="none">nmap.xsl</filename> + właściwej dla danego systemu. Za pomocą opcji <option>--webxml</option> + lub <option>--stylesheet</option> można utworzyć przenośny raport + XML, możliwy do obejrzenia w formacie HTML na każdym komputerze + podłączonym do Internetu.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oS <nazwapliku></option> (Format ScRipT KIdd|3)</term> + <listitem> + <para>Format script kiddie jest podobny do interaktywnego, jednak jest + dodatkowo przetworzony na potrzeby l33t HaXXorZ, którzy nie byli zadowoleni + z domyślnego, uporządkowanego formatu Nmapa. Osoby bez poczucia humoru + powinny wiedzieć przed zarzucaniem mi <quote>pomagania script kiddies + </quote>, że opcja ta jest tylko żartem, a nie pomocą.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oG <nazwapliku></option> (Format "grepowalny")</term> + <listitem> + + <para>Ten format został opisany jako ostatni, jako że jest już przestarzały. + Format XML jest dużo lepszy i jest prawie tak samo wygodny dla zaawansowanych + użytkowników. XML jest standardem, do którego napisano dziesiątki bibliotek, + podczas gdy format grepowalny jest moim osobistym wymysłem. XML pozwala + również na łatwe rozszerzanie o nowe funkcje Nmapa w miarę ich dodawania, + podczas gdy w formacie grepowalnym muszą one być pomijane z powodu braku miejsca. + </para> + + <para>Niezależnie od tego, format ten jest nadal całkiem popularny. Jest + prostym formatem opisującym każdy host w oddzielnej linii i umożliwiający + bardzo proste wyszukiwanie i przetwarzanie za pomocą standardowych narzędzi + systemów UNIX takich jak grep, awk, cut, sed, diff i Perl. Format ten jest + wygodny do szybkiego odnajdywania potrzebnych danych, na przykład hostów + z otwartym portem SSH lub używających systemu Solaris i jest to możliwe + za pomocą wycinania interesujących informacji za pomocą prostych poleceń + awk czy cut.</para> + + <para>Format grepowalny składa sie z linii komentarzy (rozpoczynających się + od znaku #) i linii wyników. Linia wyników składa się z sześciu pól, + oddzielonych znakami tabulacji i przecinkami. Polami tymi są + <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">IPID</literal> i <literal moreinfo="none">Status</literal>.</para> + + <para>Najważniejszymi z tych pól są najczęściej pola + <literal moreinfo="none">Ports</literal>, które zawierają informacje o + interesujących portach, w postaci listy oddzielonej przecinkami. Każda pozycja + na liście reprezentuje jeden otwarty port i opisuje go siedmioma, oddzielonymi + znakami (/) subpolami: <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> i <literal moreinfo="none">Version info</literal>.</para> + + <para>Tak jak i w przypadku formaty XML, dokładny opis formatu grepowalnego + przekracza zakres tej dokumentacji i jest dostępny pod adresem + <ulink url="http://www.unspecific.com/nmap-oG-output"/>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oA <nazwa></option> (Wyjście we wszystkich formatach)</term> + <listitem><para> + Dla wygody można podać opcję <option>-oA<replaceable>nazwa</replaceable></option> + do zapisywania wyników w formacie normalnym, XML i grepowalnym + równocześnie. Wyniki zostaną zapisane odpowiednio w plikach o + nazwach <replaceable>nazwa</replaceable>.nmap, + <replaceable>nazwa</replaceable>.xml i + <replaceable>nazwa</replaceable>.gnmap. Tak jak i w przypadku innych + programów, nazwa może zostać poprzedzona scieżką, na przykład + <filename moreinfo="none">~/nmaplogs/foocorp/</filename> w systemach + UNIX lub <filename moreinfo="none">c:\hacking\sco</filename> pod Windows.</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Poziom szczegółowości i opcje diagnozowania błędów</title> + <varlistentry> + <term> + <option>-v</option> (Podwyższenie poziomu raportowania) + </term> + <listitem> + <para>Podwyższenie poziomu raportowania powoduje wyświetlanie przez + Nmapa większej ilości informacji na temat postępów skanowania. + Otwarte porty są pokazywane zaraz po ich wykryciu, podawany jest + także przewidywany czas zakończenia skanowania w przypadku kiedy Nmap + zakłada, że test potrwa dłużej niż kilka minut. Dwukrotne użycie tej + opcji powoduje dalsze powiększenie poziomu szczegółowości, trzykrotne + i dalsze nie dają już żadnego efektu.</para> + + <para>Większość zmian dotyczy trybu interaktywnego, niektóre odnoszą + się także do trybu normalnego i script kiddie. Pozostałe formaty są + przystosowane do przetwarzania przez maszyny, więc Nmap może zawsze + podawać szczegółowe informacje bez zmniejszania czytelności dla + człowieka. Są jednak i drobne różnice w innych formatach, na przykład + w formacie grepowalnym linia komentarza zawierająca listę skanowanych + hostów jest dodawana tylko w trybie podwyższonej szczegółowości, ze + względu na swoją dosyć znaczną długość.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-d [poziom]</option> (Ustawianie poziomu śledzenia błędów) + </term> + <listitem> + + <para>Jeśli dostępne poziomy szczegółowości nie dostarczają wystarczającej + ilości informacji, opcje śledzenia błędów mogą Cię wrecz nimi zasypać! + Podobnie jak w przypadku wykorzystania opcji podwyższania szczegółowości + (<option>-v</option>), opcja włączająca umowanie nazwane śledzenie błędów, + włączana jest za pomocą parametru (<option>-d</option>) i możliwe jest jej + wielokrotne dodawanie powiększające skutek. Alternatywnie można podać poziom + jako argument do opcji <option>-d</option>. Na przykład + <option>-d9</option> ustawia poziom na dziewięć. Jest to najwyższy możliwy + poziom produkujący setki linii, o ile nie jest to proste skanowanie kilku + portów i hostów.</para> + + <para>Format ten jest użyteczny jeśli podejrzewamy istnienie błędu w Nmapie + lub jeśli po prostu chcemy wiedzieć co Nmap robi i czemu. Jako że opcja + ta jest przeznaczona głównie dla autorów, wyświetlane linie nie zawsze + są do końca zrozumiałe. Można otrzymać na przykład coś w stylu: + <computeroutput moreinfo="none">Timeout vals: srtt: -1 rttvar: -1 to: + 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000</computeroutput>. + Jeśli nie rozumiesz takiego zapisu, możesz go po prostu zignorować, poszukać + w kodzie źródłowym lub poprosić o pomoc na liście dyskusyjnej twórców Nmapa + (nmap-dev). Niektóre linie są dosyć czytelne, ale stają się coraz bardziej + skomplikowane wraz ze wzrostem poziomu śledzenia błędów.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--packet-trace</option> (Śledzenie wysyłanych i odbieranych pakietów) + </term> + <listitem> + <para>Powoduje wyświetlanie przez Nmapa krótkiej informacji na temat + każdego wysyłanego i odbieranego pakietu. Opcja ta jest często + używana podczas śledzenia błędów, ale zawiera również wartościowe + informacje dla nowych użytkowników, pozwalające zrozumieć co Nmap + robi. Uniknięcie wyświetlania tysięcy linii możliwe jest poprzez + ograniczenie ilości portów do skanowania, na przykład za pomocą + <option>-p20-30</option>. Jeśli chcesz zobaczyć tylko to, co dzieje + się w trakcie wykrywania wersji, użyj raczej opcji + <option>--version-trace</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--iflist</option> (Pokazuj interfejsy i tablicę routingu) + </term> + <listitem> + <para>Wyświetla listę interfejsów i tablice routingu wykryte przez + Nmapa. Opcja jest przydatna przy śledzeniu błędów w routingu lub + niepoprawnym wykrywaniu typów interfejsów (na przykład jeśli Nmap + traktuje połączenie PPP jako ethernet).</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Pozostałe opcje</title> + + <varlistentry> + <term> + <option>--append-output</option> (Dołączaj wyniki do pliku) + </term> + <listitem> + <para>Jeśli zostanie podana nazwa pliku jako argument do opcji + takiej jak <option>-oX</option> czy <option>-oN</option>, + domyślnie poprzednia zawartość pliku zostanie usunęta i zastąpiona + nową. Jeśli zachodzi potrzeba zachowania poprzedniej zawartości + pliku i dołączenie nowych wyników, należy dodać opcję + <option>--append-output</option>. Potraktowane tak zostaną wszystkie + podane pliki. Opcja nie działa zbyt dobrze z formatem XML, jako że + wynikowy plik nie może być pożniej bezbłędnie przetworzony bez ręcznych + poprawek.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--resume <nazwapliku></option> (Wznowienie przerwanego skanowania) + </term> + <listitem> + + <para>Niektóre skanowania Nmapa mogą trwać bardzo długo, nawet kilka + dni. Problem pojawia się wtedy, kiedy nie jest możliwe ciągłe + prowadzenie skanowania, na przykład z powodu potrzeby działania tylko + w godzinach pracy, problemów z dostępnością sieci, (nie)przypadkowym + restartem komputera na którym działa Nmap lub wykonaniem przez niego + nieprawidłowej operacji. Użytkownik może również przerwać w każdej + chwili skanowanie za pomocą kombinacji + <keycap moreinfo="none">ctrl-C</keycap>. W takich przypadkach ponowne + rozpoczynanie testów od początku może nie być pożądane. Na szczęście, + jeśli pozostały wyniki przerwanych testów w formacie normalnym + (<option>-oN</option>) lub grepowalnym (<option>-oG</option>), + możliwe jest ich wznowienie od momentu przerwania. Służy do tego + opcja <option>--resume</option> dla której argumentem musi byc + nazwa pliku w formacie normalnym lub grepowalnym. W tym przypadku nie + jest możliwe podawanie żadnych innych opcji, jako że Nmap przetworzy + podany plik i odtworzy wcześniej podane opcje. Po prostu uruchom + <command moreinfo="none">nmap --resume + <replaceable>nazwapliku</replaceable></command>, a Nmap dołączy do + wskazanego pliku nowe wyniki. Opcja ta nie obsługuje formatu XML, + jako że łączenie dwóch oddzielnych wynikóę skanowań w jeden plik + jest dosyć trudne.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--stylesheet <ścieżka lub URL></option> (Styl XSL do + transformacji formatu XML) + </term> + <listitem> + <para>Nmap posiada domyślny styl XSL do przeglądania lub konwersji do + formatu XML w pliku <filename moreinfo="none">nmap.xsl</filename>. + Plik wyjściowy XML zawiera dyrektywę + <literal moreinfo="none">xml-stylesheet</literal> wskazującą na + <filename moreinfo="none">nmap.xml</filename>, ze ścieżką do domyślej + lokalizacji tego pliku (lub bierzącego katalogu pod Windows). Dzięki + temu wystarczy po prostu załadować plik XML Nmapa do przeglądarki, + która sama odczyta sobie plik + <filename moreinfo="none">nmap.xsl</filename> i użyje go do + prawidłowego wyświetlenia wyników. Możliwe jest również użycie innego + stylu poprzez podanie nazwy pliku jako argumentu dla opcji + <option>--stylesheet</option>. W tym przypadku konieczne jest podanie + pełnej ścieżki lub adresu URL. Typowe wywołanie ma postać + <option>--stylesheet + https://nmap.org/data/nmap.xsl</option>. + Dyrektywa ta nakazuje pobranie najnowszej wersji pliku ze stylem ze + strony Insecure.Org. Opcja <option>--webxml</option> robi dokładnie + to samo, będąc łatwiejszą do wpisania i zapamiętania. Używanie pliku + XSL ze strony Insecure.Org ułatwia przeglądanie wyników na systemie + nie posiadającym zainstalowanego Nmapa (czyli nie posiadającym pliku + <filename moreinfo="none">nmap.xsl</filename>). Podawanie adresu URL + jest wygodniejsze, jednak domyślnie używany jest plik lokalny ze + względu za zachowanie poufności użytkownika.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--webxml</option> (Użyj stylu ze strony Insecure.Org) + </term> + <listitem> + <para>Opcja jest wygodniejszym zapisem analogicznego + <option>--stylesheet https://nmap.org/data/nmap.xsl</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--no-stylesheet</option> (Nie używaj deklaracji stylu XSL w formacie XML) + </term> + <listitem> + <para>Dodanie tej opcji powoduje wyłączenie dołączania stylu XSL + do pliku z wynikami w formacie XML. Zostaje pominięta dyrektywa + <literal moreinfo="none">xml-stylesheet</literal>.</para> + </listitem> + </varlistentry> + + + </variablelist> + </refsect1> + + <refsect1 id="man-misc-options"> + <title>Różne opcje</title> + <para>Sekcja ta opisuje istotne (i nie istotne) opcje, które nie pasowały + gdzie indziej.</para> + + <variablelist> + <varlistentry> + <term> + <option>-6</option> (Włączenie skanowania IPv6) + </term> + <listitem> + + <para>Od roku 2002 Nmap obsługuje IPv6, w zakresie jego + najpopularniejszych funkcji. W szczególności dostępne jest skanowanie + ping (tylko TCP), connect() i wykrywanie wersji. Składnia opcji + jest taka sama jak zwykle, wystarczy tylko dodać opcję + <option>-6</option>. Oczywiście w przypadku podawania adresów zamiast + nazw, niezbędne jest podawanie ich zgodnie ze składnią IPv6. + Jako że adres może wyglądać podobnie do + <literal moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, + zalecane jest używanie nazw hostów. Wyniki poza samym adresem + wyglądają tak samo jak i przy innych opcjach.</para> + + <para>Adresacja IPv6 nie zawładnęła jeszcze światem, jednak jest + często wykorzystywana w niektórych krajach (zwykle azjatyckich) i + większość obecnych systemów ją obsługuje. Oczywiście do używania + IPv6 musi być on prawidłowo skonfigurowany i dostępny zarówno na + hoście skanowanym, jak i skanującym. Jeśli dostawca usług nie + umożliwia uzyskania adresów IP (najczęściej tak właśnie jest), + jest dużo dostawców darmowych tuneli, które działają poprawnie z + Nmapem. Jednymi z lepszych są dostarczane przez BT Exact i + Hurricane Electric na <ulink url="http://ipv6tb.he.net/"/>. Tunele + 6to4 są innym popularnym i darmowym rozwiązaniem.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-A</option> (Agresywne opcje skanowania) + </term> + <listitem> + <para>Włącza dodatkowe zaawansowane i agresywne opcje skanowania. + Aktualnie są nimi wykrywanie systemu operacyjnego (<option>-O</option>) + i wykrywanie wersji (<option>-sV</option>). Więcej opcji być może + zostanie dodane w przyszłości. Głównym celem jest proste włączenie + najbardziej popularnych opcji skanowania bez konieczności + zapamiętywania wielu parametrów. Włączane są tylko opcje włączające + określoną funkcjonalność, nie zaś te dotyczące zależności czasowych + (takie jak <option>-T4</option>) czy poziomu szczegółowości + (<option>-v</option>), które można dodać niezależnie.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--datadir <nazwakatalogu></option> (Określenie lokalizacji plików z danymi) + </term> + <listitem> + <para>Podczas pracy Nmap pobiera dodatkowe informacje z plików + <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> i + <filename moreinfo="none">nmap-os-fingerprints</filename>. + Nmap rozpoczyna poszukiwania tych plików od katalogu podanego jako + parametr dla opcji <option>--datadir</option>, jeśli została dodana. + Jeśli nie znajdzie plików w podanej lokalizacji, poszukuje ich w + katalogu określonych w zmiennej środowiskowej NMAPDIR, a następnie w + katalogu <filename moreinfo="none">~/.nmap</filename> dla + rzeczywistego i efektywnego UID (tylko systemy POSIX) i katalogu + z programem Nmap (tylko Win32). Jeśli i to nie przyniesie skutku, + poszukiwane są w lokalizacji podanej przy kompilacji, takiej jak + <filename moreinfo="none">/usr/local/share/nmap</filename> lub + <filename moreinfo="none">/usr/share/nmap</filename>. Na końcu + sprawdzany jest aktualny katalog.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-eth</option> (Używanie niskopoziomowych ramek ethernet) + </term> + <listitem> + <para>Opcja powoduje wysyłanie bezpośrednio ramek niskiego poziomu + ethernet (warstwa danych), zamiast poprzez stos IP (warstwa sieci). + Domyślnie Nmap wybiera metodę, która jest ogólnie lepsza dla danej + platformy, na której jest uruchomiony. Gniazda raw (warstwa IP) są + efektywniejsze w przypadku systemów UNIX, podczas gdy ramki ethernet + są niezbędne w przypadku systemów Windows, od czasu kiedy to + Microsoft wyłączył obsługę gniazd raw. Jeśli nie ma innej możliwości, + Nmap w systemach UNIX wybierze metodę ethernet, pomijając wybraną + przez użytkownika i niedostępną opcję.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-ip</option> (Wysyłaj pakiety raw IP) + </term> + <listitem> + <para>Włącza wysyłanie pakietów przez gniazda raw IP, zamiast przez + ramki ethernet. Opcja jest przeciwieństwem opisanej wyżej opcji + <option>--send-eth</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--privileged</option> (Zakładaj że użytkownik ma odpowiednie uprawnienia) + </term> + <listitem> + <para>Informuje Nmapa, że użytkownik jest wystarczająco + uprzywilejowany aby korzystać z wysyłania pakietów za pomocą + gniazd raw, podsłuchiwania pakietów i podobnych operacji zwykle + wymagających uprwawnień roota w systemach UNIX. Domyślnie Nmap + przerywa działanie w momencie wykrycia próby wykonania takich + operacji i funkcja geteuid() nie zwraca wartości zero. + Opcja <option>--privileged</option> jest użyteczna w systemach Linux + posiadających możliwości odpowiedniego przywilejowania użytkowników + do przeprowadzania wymienionych operacji. Upewnij się, że opcja + została podana przed innymi opcjami wymagającymi podwyższonych + uprwanień (skanowanie SYN, wykrywanie systemu operacyjnego itp). + Zmienna NMAP_PRIVILEGED może zostać ustawiona jako alternatywa dla + wykorzystania opcji <option>--privileged</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-V</option>; <option>--version</option> (Wyświetl numer wersji) + </term> + <listitem> + <para>Wyświetla tylko numer wersji Nmapa.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-h</option>; <option>--help</option> (Wyświetl pomoc) + </term> + <listitem> + <para>Wyświetla krótki ekran pomocy opisujący najpopularniejsze + opcje, podobnie jak uruchomienie Nmapa bez parametrów.</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-runtime-interaction"> + <title>Interakcja w czasie pracy</title> + + <para>Podczas pracy Nmapa, przechwytywane są wszystkie naciśnięcia + klawiszy. Pozwala to na interakcję z programem bez przerywania go lub + restartowania. Niektóre specjalne klawisze zmieniają opcje, inne + wyświetlają status skanowania. Konwencja zakłada, że + <emphasis>małe litery zmniejszają</emphasis> ilość informacji, a + <emphasis>duże litery powiększają</emphasis>. Można również nacisnąć + ‘<emphasis>?</emphasis>’ dla </para> + <variablelist> + <varlistentry> + <term> + <option>v</option> / <option>V</option> + </term> + <listitem> + <para>Zwiększenia / Zmniejszenia poziomu szczegółowości</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>d</option> / <option>D</option> + </term> + <listitem> + <para>Zwiększenia / Zmniejszenia poziomu śledzenia błędów</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>p</option> / <option>P</option> + </term> + <listitem> + <para>Włączenia / Wyłączenia śledzenia pakietów</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>?</option> + </term> + <listitem> + <para>Wyświetlenia ekranu pomocy</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + Wszystko inne + </term> + <listitem> + <para>Wyświetla status w postaci:</para> + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), + 5 undergoing Service Scan</para> + <para>Service scan Timing: About 28.00% done; ETC: 16:18 + (0:00:15 remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-examples"> + <title>Przykłady</title> + <para>Poniżej przedstawiono przykłady wykorzystania Nmapa, od prostych i + rutynowych do trochę bardziej skomplikowanych i ezoterycznych. Przykładowe + adresy IP i nazwy domen powinny zostać zastąpione adresami/nazwami z + <emphasis>twojej własnej sieci</emphasis>. Nie uważam, że skanowanie + portów powinno być nielegalne, jednak niektórzy administratorzy nie + tolerują nie autoryzowanego skanowania ich sieci i mogą zgłaszać swoje + protesty. Uzyskanie zgody jest pierwszym wyzwaniem.</para> + + <para>Do celu testów, masz zgodę do skanowania hosta + <literal moreinfo="none">scanme.nmap.org</literal>. Zgoda pozwala jedynie + na skanowanie za pomocą Nmapa, nie zaś na testowanie exploitów czy + przeprowadzanie ataków typu Denial of Service. Dla oszczędności pasma, + proszę nie uruchamiaj więcej niż tuzina skanowań tego hosta dziennie. + W przypadku nadużyć, host zostanie wyłączony, a Nmap będzie zwracał + komunikat <computeroutput moreinfo="none">Failed to resolve given hostname/IP: + scanme.nmap.org</computeroutput>. pozwolenie dotyczy także adresów + <literal moreinfo="none">scanme2.nmap.org</literal>, + <literal moreinfo="none">scanme3.nmap.org</literal> i następnych, choć + hosty te jeszcze nie istnieją.</para> + + <para> + <userinput moreinfo="none">nmap -v scanme.nmap.org</userinput> + </para> + <para>Pozwoli na przeskanowanie wszystkich portów TCP adresu + <literal moreinfo="none">scanme.nmap.org</literal>. Opcja + <option>-v</option> podwyższy poziom szczegółowości zwracanych informacji. + </para> + <para> + <userinput moreinfo="none">nmap -sS -O scanme.nmap.org/24</userinput> + </para> + <para>Uruchamia skanowanie SYN wszystkich 255 hostów znajdujących się + w tej samej klasie <quote>C</quote>, co host scanme.nmap.org. Dodatkowo + wykonywana jest próba detekcji systemu operacyjnego dla każdego hosta, + który jest aktywny. Wymaga to uprawnień użytkownika root, z powodu + wykorzystania skanowania SYN i wykrywania systemu operacyjnego.</para> + <para> + <userinput moreinfo="none">nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</userinput> + </para> + + <para>Uruchamia enumerację hostów i skanowanie TCP pierwszej połowy + każej z 255 możliwych 8-mio bitowych podsieci klasy B 198.116. + Wykrywane jest działanie usług sshd, DNS, pop3d, imapd i portu 4564. + Dla każdego z tych portów, który został wykryty jako otwarty + przeprowadzane jest wykrywanie wersji działającej aplikacji.</para> + + <para> + <userinput moreinfo="none">nmap -v -iR 100000 -P0 -p 80</userinput> + </para> + + <para>Poleca Nmapowi na wybranie 100,000 losowych hostów i przeskanowanie + ich w poszukiwaniu serwerów WWW (port 80). Enumeracja hostów jest wyłączona + za pomocą opcji <option>-P0</option>, ponieważ wysyłanie najpierw pakietów + w celu określenia czy host jest aktywny nie ma sensu, jako że i tak jest + wykonywany test tylko na jednym porcie per host.</para> + + <para> + <userinput moreinfo="none">nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</userinput> + </para> + <para>Skanuje 4096 adresów IP w poszukiwaniu serwerów WWW (bez pingowania + ich) i zapisuje wyniki w plikach XML i grepowalnym.</para> + + </refsect1> + + <refsect1 id="man-bugs"> + <title>Błędy</title> + + <para>Jak i jego autor, Nmap nie jest doskonały. Możesz jednak pomóc + przysyłając raporty dotyczące błędów lub nawet wysyłając własne poprawki. + Jeśli Nmap nie zachowuje sie w sposób którego oczekujesz, zacznij od + aktualizacji do najnowszej wersji dostępnej pod adresem + <ulink url="https://nmap.org/"/>. Jeśli problem nadal + występuje, wykonaj trochę testów dla określenia czy podobny problem nie + został już wykryty i oznaczony. Spróbuj poszukać Googlem komunikatu + błędu lub poprzeglądaj archiwa listy dyskusyjnej Nmap-dev pod adresem + <ulink url="https://seclists.org/"/>. Przeczytaj również cała dokumentację. + Jeśli nic nie pomoże, wyślij raport opisujący błąd po angielsku na adres + <email>dev@nmap.org</email>. Proszę dołącz wszystko co udało Ci + się ustalić na temat tego problemu, jak również informację o używanej + wersji Nmapa i systemie operacyjnym na którym jest uruchamiany. + Opisy problemów i pytania dotyczące używania Nmapa wysłane na adres + dev@nmap.org z większym prawdopodobieństwem doczekają sie + szybkiej odpowiedzi, niż wysłane bezpośrednio do Fyodora.</para> + + <para>Poprawki błędnego kodu są milej widziane, niż opisy błedów. + Podstawowe instrukcje tworzenia poprawek są opisane na stronie + <ulink url="https://nmap.org/data/HACKING"/>. Poprawki + mogą być wysyłane na nmap-dev (rekomendowane) lub bezpośrednio do + Fyodora.</para> + </refsect1> + + <refsect1 id="man-author"> + <title>Autor</title> + <para>Fyodor + <email>fyodor@nmap.org</email> + (<ulink url="http://www.insecure.org"/>) + </para> + + <para>Setki ludzi wniosły wartościowy wkład w rozwój Nmapa. Szczegóły są + zamieszczane w pliku <filename moreinfo="none">CHANGELOG</filename>, który + jest rozpowszechniany z Nmapem i jest również dostępny pod adresem + <ulink url="https://nmap.org/changelog.html"/>.</para> + + </refsect1> + + + <refsect1 id="man-legal"> + <title>Uwarunkowania prawne</title> + + <refsect2 id="translation-disclaimer"> + <title>Unofficial Translation Disclaimer / Oświadczenie dotyczące tłumaczenia</title> + + <para>This is an unnofficial translation of the <ulink + url="https://nmap.org/man/man-legal.html">Nmap + license details</ulink> into polish. It was not written by + Insecure.Com LLC, and does not legally state the distribution terms + for Nmap -- only the original English text does that. However, we + hope that this translation helps polish speakers understand the + Nmap license better.</para> + + <para>To jest nieoficjalne tłumaczenie <ulink + url="https://nmap.org/man/man-legal.html">licencji Nmapa + </ulink> na język polski. Nie zostało ono napisane przez Insecure.Com LLC, + i przez to nie może być uważane za wiążące, tak jak jego angielska wersja, + jednakże uważamy, że tłumaczenie to pozwoli lepiej zrozumieć licencję Nmapa. + </para> +</refsect2> + + +<refsect2 id="nmap-copyright"> + <title>Prawa autorskie i licencjonowanie Nmap</title> + +<para>Prawa autorskie (1996-2005) do programu Nmap Security Scanner posiada +Insecure.Com LLC. Nmap jest także zastrzeżonym znakiem towarowym Insecure.Com +LLC. Ten program jest wolnym oprogramowaniem; możliwa jest jego redystrybucja +i/lub modyfikowanie zgodnie z zasadami licencji GNU General Public License +opublikowanej przez Free Software Foundation; Wersja 2. Gwarantuje ona prawo +do używania, modyfikowania i redystrybucji tego oprogramowania pod pewnymi +warunkami. Jeśli technologia Nmapa jest integrowana z innymi programami, możliwa +jest sprzedaż alternatywnych licencji (kontakt <email>sales@insecure.com</email>). +Wielu producentów skanerów bezpieczeństwa licencjonuje technologie Nmapa takie +jak wykrywanie hostów, skanowanie portów, wykrywanie systemów operacyjnych i +wykrywanie usług/wersji.</para> + +<para>GPL nakłada isotne ograniczenia w stosunku do <quote>produktów pochodnych +</quote>, jednak nie jest jeszcze dostępna dokładna ich definicja. +Dla uniknięcia nieporozumień zakładamy, że aplikacja jest produktem pochodnym +w przypadku gdy spełnia któryś z warunków:</para> + +<itemizedlist> +<listitem><para>Integruje kod źródłowy Nmapa</para></listitem> +<listitem><para>Odczytuje lub dołącza chronione prawami autorskimi pliki Nmapa, + takie jak <filename moreinfo="none">nmap-os-fingerprints</filename> czy + <filename moreinfo="none">nmap-service-probes</filename>.</para></listitem> +<listitem><para>Uruchamia Nmapa i przetwarza jego wyniki (w odróżnieniu od + aplikacji, które uruchamiają Nmapa i wyświetlają nie przetworzone raporty + i przez to nie są produktami pochodnymi).</para></listitem> +<listitem><para>Integrują/włączają/agregują Nmapa w wykonywalnym instalatorze, + tak jak stworzone za pomocą InstallShield.</para></listitem> +<listitem><para>Wykorzystują bibliotekę lub program wykonujący jedno z + powyższych.</para></listitem> +</itemizedlist> + +<para>Warunki <quote>Nmapa</quote> powinny dotyczyć części i pochodnych +programu Nmap. Powyższa lista ma na celu klarowne przedstawienie naszej +interpretacji programów pochodnych z przykładami. Ograniczenia dotyczą tylko +przypadków, w których Nmap jest rozpowszechniany razem z programem pochodnym. +Na przykład nic nie stoi na przeszkodzie napisania i sprzedawania własnego +interfejsu do Nmapa. Wystarczy rozprowadzać go oddzielnie podając użytkownikom +adres <ulink url="https://nmap.org/"/> do pobierania Nmapa.</para> + +<para>Nie uważamy tego za ograniczenia dodane do GPL, ale jako klarowną +interpretację <quote>programów pochodnych</quote>, jako że dotyczy to naszego +produktu opartego na GPL. Jest to zbliżone do sposobu w jaki Linus Torvalds +opublikował swoją interpretację dotyczącą <quote>programów pochodnych</quote>, +opartych na modułach kernela Linuxa. Nasza interpretacja odnosi się tylko do +Nmapa - nie mówimy o żadnym innym produkcie GPL.</para> + +<para>Jeśli masz jakiekolwiek pytania dotyczące ograniczeń licencji GPL przy +zastosowaniach Nmapa w produktach nie opartych na GPL, chętnie pomożemy. +Jak wspomniano wyżej, oferujemy także alternatywną licencję do integrowania +Nmapa we własnych aplikacjach i urządzeniach. Licencje na integrację Nmapa +zostały sprzedane wielu producentom oprogramowania związanego z bezpieczeństwem +i ogólnie zawierają dożywotnią licencję oraz dostarczają priorytetowego +wsparcia technicznego wraz z aktualizacjami i pomagają opłacić dalszy rozwój +Nmapa. Proszę o kontakt z <email>sales@insecure.com</email> w celu uzyskania +dalszych informacji.</para> + +<para>Jako specjalny wyjątek dla warunków GPL, Insecure.Com LLC zezwala na +linkowanie kodu tego programu z dowolną wersją biblioteki OpenSSL, która jest +dystrybuowana na licencji identycznej do umieszczonej w pliku Copying.OpenSSL +oraz na dystrybucję obu w postaci zlinkowanej. Musisz przestrzegać licencji GPL +we wszystkich aspektach wykorzystania kodu, innym niż OpenSSL. +Jeśli zmodyfikujesz wspomniany plik, możesz rozszerzyć ten wyjątek o Twoją +wersję, ale nie jesteś do tego zobligowany.</para> + +<para>Jeśli otrzymałeś(aś) te pliki z pisemną licencją lub kontraktem +zmieniającym powyższe zapisy, mają one pierwszeństwo nad umieszczonymi tutaj. +</para> +</refsect2> + +<refsect2 id="man-copyright"> + <title>Licencja Creative Commons dla tego podręcznika Nmap</title> + <para>Prawa (2005) do tego podręcznika Nmapa posiada Insecure.Com LLC. Jest on + udostępniany w oparciu o wersję 2.5 licencji + <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative Commons + Attribution License</ulink>. Pozwala ona na redystrybucję i modyfikowanie + w potrzebnym zakresie tak długo, jak zostanie podane oryginalne źródło. + Alternatywnie możesz traktować ten dokument jako udostępniany na takiej + samej licencji jak Nmap (opisanej wcześniej).</para> +</refsect2> + +<refsect2 id="source-contrib"> + <title>Dostępność kodu źródłowego i wkład społeczności</title> + +<para>Kod źródłowy dla tego programowania jest dostępny, ponieważ uważamy, że +użytkownicy mają prawo wiedzieć dokładnie co program robi, zanim go uruchomią. +Pozwala to także na przeprowadzenie audytu kodu pod kątem bezpieczeństwa +(jak dotąd nie wykryto problemu tego typu).</para> + +<para>Kod źródłowy pozwala również na przenoszenie Nmapa na nowe platformy, na +poprawianie błędów i dodawanie nowych funkcji. Mocno zachęcamy do wysyłania +swoich zmian na adres <email>fyodor@nmap.org</email> w celu możliwej +integracji z główną dystrybucją. Wysłanie tych zmian do Fyodora lub na jedną +z list dyskusyjnych dla deweloperów Insecure.Org, powoduje przekazanie praw do +nielimitowanego, nie wyłącznego prawa do ponownego wykorzystania, modyfikacji +i relicencjonowania tego kodu. Nmap zawsze będzie dostępny jako Open Source, +lecz jest to istotne z powodu dewastujących problemów jakie pojawiały się w +innych projektach Free Software (takich jak KDE i NASM). Okazjonalnie +licencjonujemy kod do firm trzecich, jak to wspomniano wyżej. Jeśli chcesz +dodać specjalną licencję dla swojego wkładu, wystarczy dołączyć odpowiednią +informację przy wysyłaniu kodu do nas.</para> +</refsect2> + +<refsect2 id="no-warranty"><title>Brak gwarancji</title> + +<para>Program ten jest rozpowszechniany z nadzieją, że będzie użyteczny, jednak +BEZ ŻADNEJ GWARANCJI; także bez założonej gwarancji PRZYDATNOŚCI HANDLOWEJ lub +PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. Zobacz licencję GNU General Public +License dla dalszych szczegółów pod adresem +<ulink url="http://www.gnu.org/copyleft/gpl.html"/>, jej polskie nieoficjalne +tłumaczenie <ulink url="http://www.gnu.org.pl/text/licencja-gnu.html"/> +lub w pliku COPYING dołączanym do Nmapa.</para> + +<para>Należy również zwrócić uwagę, że Nmap okazjonalnie potrafi spowodować +zaprzestanie działania źle napisanych aplikacji, stosu TCP/IP lub nawet całego +systemu operacyjnego. Jest to bardzo rzadko spotykane, ale ważne jest, aby o tym +pamiętać. <emphasis>Nmap nie powinien być nigdy uruchamiany przeciwko systemom +krytycznym</emphasis>, o ile nie jesteś przygotowany(a) na ewentualną przerwę +w działaniu. Potwierdzamy, że Nmap może spowodować awarię systemów lub sieci +i wypieramy się jakiejkolwiek odpowiedzialności za uszkodzenia lub problemy +spowodowane przez jego działanie.</para> +</refsect2> + +<refsect2 id="inappropriate-usage"><title>Nieodpowiednie użycie</title> +<para>Z powodu istnienia niewielkiego ryzyka spowodowania awarii i ponieważ +niektóre czarne kapelusze lubią używać Nmapa do wykonania rekonesansu przed +atakiem systemu, administratorzy mogą się denerwować i zgłaszać swoje protesty +z powodu skanowania ich systemów. Z tego powodu, najczęściej zalecane jest +uzyskanie odpowiedniej zgody przed wykonaniem nawet delikatnego skanowania +sieci.</para> + +<para>Z powodów bezpieczeństwa, Nmap nie powinien być nigdy instalowany ze +specjalnymi uprawnieniami (np. suid root).</para> +</refsect2> + +<refsect2 id="third-party-soft"><title>Oprogramowanie firm trzecich</title> +<para>Ten produkt zawiera oprogramowanie stworzone przez +<ulink url="http://www.apache.org">Apache Software Foundation</ulink>. +Zmodyfikowana wersja biblioteki <ulink url="http://www.tcpdump.org">Libpcap +portable packet capture library</ulink> jest dołączana do dystrybucji Nmapa. +Wersja Nmapa dla systemu Windows wykorzystuje opartą na libpcap bibliotekę +<ulink url="http://www.winpcap.org">WinPcap</ulink> (zamiast libpcap). Obsługę +wyrażeń regularnych zapewnia biblioteka +<ulink url="http://www.pcre.org">PCRE</ulink>, która jest oprogramowaniem +open source, napisanym przez Philip Hazel. Niektóre funkcje dotyczące niskiego +poziomu sieci wykorzystują bibliotekę +<ulink url="http://libdnet.sourceforge.net">Libdnet</ulink>, napisaną przez Dug +Songa. Zmodyfikowana jej wersja jest dołączana do dystrybucji Nmapa. Nmap może +być opcjonalnie linkowany z biblioteką kryptograficzną +<ulink url="http://www.openssl.org">OpenSSL</ulink>, używaną do detekcji wersji +SSL. Wszystkie opisane w tym paragrafie programy firm trzecich są +rozpowszechniane na licencji BSD.</para> +</refsect2> + +<refsect2 id="us-export"><title>Klasyfikacja eksportowa Stanów Zjednoczonych +Ameryki Północnej</title> +<para>US Export Control: Insecure.Com LLC wierzy, że Nmap kwalifikuje się pod +oznaczenie US ECCN (export control classification number) 5D992. Kategoria ta +jest opisana jako <quote>Oprogramowanie dotyczące bezpieczeństwa informacji +nie objęte 5D002</quote>. Jedynym ograniczeniem tej kategorii jest AT +(anty-terroryzm), która odnosi się do większości dóbr i zabrania eksportu do +niektórych awanturniczych krajów takich jak Iran czy Północna Korea. Z tego +powodu Nmap nie wymaga żadnej specjalnej licencji, zgody lub innych autoryzacji +rządu USA.</para> +</refsect2> + + </refsect1> +</refentry> + +</article> diff --git a/docs/man-xlate/nmap-man-pt_BR.xml b/docs/man-xlate/nmap-man-pt_BR.xml new file mode 100644 index 0000000..b0cbffb --- /dev/null +++ b/docs/man-xlate/nmap-man-pt_BR.xml @@ -0,0 +1,4058 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- $Id: manhtml.xml 3244 2006-03-29 08:44:10Z fyodor $ --> +<!-- <?xml version="1.0" encoding="iso-8859-1"?> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" +"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> --> +<article id="man" lang="pt_BR"> + <artheader> + <title>Guia de Referência do Nmap (Página do Manual)</title> + </artheader> + + <refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Guia de Referência do Nmap</refmiscinfo> + </refmeta> + + <refnamediv id="man-name"> + <refname>nmap</refname> + + <refpurpose>Ferramenta de exploração de rede e segurança / scanner de + portas</refpurpose> + </refnamediv> + + <!-- body begins here --> + + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis> + <command>nmap</command> + + <arg choice="opt" rep="repeat"> + <replaceable>Tipo de Scan</replaceable> + </arg> + + <arg choice="opt"> + <replaceable>Opções</replaceable> + </arg> + + <arg choice="req"> + <replaceable>especificação do alvo</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + + <refsect1 id="man-description"> + <title>Descrição</title> + + <web> + <note> + <para> + Este documento descreve o Nmap versão 4.00. A documentação mais + recente está disponível em inglês em + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + + <para>O Nmap (<quote>Network Mapper</quote>) é uma ferramenta de código + aberto para exploração de rede e auditoria de segurança. Ela foi + desenhada para escanear rapidamente redes amplas, embora também funcione + muito bem contra hosts individuais. O Nmap utiliza pacotes IP em estado + bruto (raw) de maneira inovadora para determinar quais hosts estão + disponíveis na rede, quais serviços (nome da aplicação e versão) os + hosts oferecem, quais sistemas operacionais (e versões de SO) eles estão + executando, que tipos de filtro de pacotes/firewalls estão em uso, e + dezenas de outras características. Embora o Nmap seja normalmente + utilizado para auditorias de segurança, muitos administradores de + sistemas e rede consideram-no útil para tarefas rotineiras tais como + inventário de rede, gerenciamento de serviços de atualização agendados, + e monitoramento de host ou disponibilidade de serviço.</para> + + <para>A saída do Nmap é uma lista de alvos escaneados, com informações + adicionais de cada um dependendo das opções utilizadas. Uma informação + chave é a <quote>tabela de portas interessantes</quote>. Essa tabela + lista o número da porta e o protocolo, o nome do serviço e o estado. O + estado pode ser <literal>aberto (open)</literal>, <literal>filtrado + (filtered)</literal>, <literal>fechado (closed)</literal>, ou + <literal>não-filtrado (unfilterd)</literal>. Aberto (open) significa que + uma aplicação na máquina-alvo está escutando as conexões/pacotes naquela + porta. <literal>Filtrado (filtered)</literal> significa que o firewall, + filtro ou outro obstáculo de rede está bloqueando a porta de forma que o + Nmap não consegue dizer se ela está <literal>aberta (open)</literal> ou + <literal>fechada (closed)</literal>. Portas <literal>fechadas + (closed)</literal>não possuem uma aplicação escutando nelas, embora + possam abrir a qualquer instante. Portas são classificadas como + <literal>não filtradas (unfiltered)</literal>quando elas respondem às + sondagens do Nmap, mas o Nmap não consegue determinar se as portas estão + abertas ou fechadas. O Nmap reporta as combinações + <literal>aberta|filtrada (open|filtered)</literal>e + <literal>fechada|filtrada (closed|filtered)</literal>quando não consegue + determinar qual dos dois estados descrevem melhor a porta. A tabela de + portas também pode incluir detalhes de versão de software quando a + detecção de versão for solicitada. Quando um scan do protocolo IP é + solicitado (<option>-sO</option>), o Nmap fornece informações dos + protocolos IP suportados ao invés de portas que estejam abertas.</para> + + <para>Além da tabela de portas interessantes, o Nmap pode fornecer + informações adicionais sobre os alvos, incluíndo nomes de DNS reverso, + possível sistema operacional, tipos de dispositivos e endereços + MAC.</para> + + <para>Um scan típico do Nmap é mostrado em <xref + linkend="man-ex-repscan" />. Os únicos argumentos que o Nmap utiliza + nesse exemplo são <option>-A</option>, para habilitar a detecção de SO e + a versão, <option>-T4</option> para execução mais rápida, e os hostnames + de dois alvos.</para> + + <example id="man-ex-repscan"> + <title>Uma amostra de scan do Nmap</title> + + <screen format="linespecific"> +# nmap -A -T4 scanme.nmap.org playground + +Starting nmap ( https://nmap.org/ ) +Interesting ports on scanme.nmap.org (205.217.153.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2.0.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2.4.X|2.5.X|2.6.X +OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 +Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground.nmap.org (192.168.0.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios-ssn +389/tcp open ldap? +445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds +1002/tcp open windows-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H.323/Q.931 CompTek AquaGateKeeper +5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3.8) +MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds +</screen> + </example> + + <para>A versão mais nova do Nmap pode ser obtida em <ulink + url="https://nmap.org/" />. A versão mais nova da página do + manual está disponível em <ulink + url="https://nmap.org/man/" />.</para> + </refsect1> + + <refsect1 id="translation"> + <title>Notas da Tradução</title> + + <para>Esta edição em Português (Brasil) do Guia de Referência do Nmap + foi traduzida da versão [3244] do <ulink + url="https://nmap.org/man/">original em Inglês</ulink> por + Lucien Raven :> (aka:ekita) + <email>lucienraven.at.yahoo.com.br</email> e foi revisada por Humberto + Sartini <email>humberto.at.onda.com.br</email>. Embora tenhamos a + esperança de que esta tradução torne o Nmap mais acessível para os + brasileiros do mundo todo, não podemos garantir que ela esteja tão + completa ou atualizada quanto a versão original em Inglês. Este trabalho + pode ser modificado e redistribuído sob os termos da <ulink + url="http://creativecommons.org/licenses/by/2.5/">Licença de Atribuição + da Creative Commons</ulink>. Algumas liberdades foram tomadas na + tradução de expressões, jargão e gíria. Para maiores detalhes sobre a + tradução, sugestões ou críticas, envie um e-mail para os tradutores -- + não esqueça de substituir '.at.' por '@'. [Rev:3244-01]</para> + </refsect1> + + <refsect1 id="man-briefoptions"> + <title>Sumário das Opções</title> + + <para>Este sumário de opções é mostrado quando o Nmap é executado sem + argumentos, e a última versão está sempre disponível em <ulink + url="https://nmap.org/data/nmap.usage.txt" />. Ele ajuda as + pessoas a lembrar das opções mais comuns, mas não substitui a + documentação mais técnica do restante deste manual. Algumas opções + obscuras não estão incluídas aqui.</para> + + <para> + <literallayout class="normal" format="linespecific">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-255.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 + -sP: Ping Scan - go no further than determining if host is online + -P0: Treat all hosts as online -- skip host discovery + -PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery probes to given ports + -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes + -n/-R: Never do DNS resolution/Always resolve [default: sometimes resolve] + --dns-servers <serv1[,serv2],...>: Specify custom DNS servers + --system-dns: Use OS's DNS resolver +SCAN TECHNIQUES: + -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans + -sN/sF/sX: TCP Null, FIN, and Xmas scans + --scanflags <flags>: Customize TCP scan flags + -sI <zombie host[:probeport]>: Idlescan + -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 + -F: Fast - Scan only the ports listed in the nmap-services file) + -r: Scan ports sequentially - don't randomize +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) +OS DETECTION: + -O: Enable OS detection (try 2nd generation, then 1st if that fails) + -O1: Only use the old (1st generation) OS detection system + -O2: Only use the new OS detection system (no fallback) + --osscan-limit: Limit OS detection to promising targets + --osscan-guess: Guess OS more aggressively +TIMING AND PERFORMANCE: + Options which take <time> are in milliseconds, unless you append '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 +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 + --data-length <num>: Append random data to sent packets + --ttl <val>: Set IP time-to-live field + --spoof-mac <mac address, prefix, or vendor name>: Spoof your MAC address +OUTPUT: + -oN/-oX/-oS/-oG <file>: Output scan results 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 twice for more effect) + -d[level]: Set or increase debugging level (Up to 9 is meaningful) + --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 Insecure.Org for more portable XML + --no-stylesheet: Prevent associating of XSL stylesheet w/XML output +MISC: + -6: Enable IPv6 scanning + -A: Enables OS detection and Version detection + --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 + -V: Print version number + -h: Print this help summary page. +EXAMPLES: + nmap -v -A scanme.nmap.org + nmap -v -sP 192.168.0.0/16 10.0.0.0/8 + nmap -v -iR 10000 -P0 -p 80 +</literallayout> + </para> + </refsect1> + + <refsect1 id="man-target-specification"> + <title>Especificação de Alvo</title> + + <para>Tudo na linha de comando do Nmap que não for uma opção (ou + argumento de uma opção) é tratado como uma especificação de um + host-alvo. O caso mais simples é especificar um endereço IP como alvo ou + um hostname para ser escaneado.</para> + + <para>Algumas vezes você pode querer escanear uma rede inteira de hosts + adjacentes. Para isso o Nmap suporta o estilo de endereçamento CIDR. + Você pode acrescentar <indexterm significance="normal"> + <primary>endereçamentoCIDR</primary> + </indexterm> /<replaceable>númerodebits</replaceable> em um endereço + ou hostname e o Nmap irá escanear cada endereço IP para o qual os + primeiros <replaceable>númerosdebits</replaceable> sejam o mesmo que o + IP de referência ou o hostname dado. Por exemplo, 192.168.10.0/24 + escanearia os 256 hosts entre 192.168.10.0 (binário: <literal>11000000 + 10101000 00001010 00000000</literal>) e 192.168.10.255 (binário: + <literal>11000000 10101000 00001010 11111111</literal>), inclusive. + 192.168.10.40/24 faria exatamente a mesma coisa. Dado que o host + scanme.nmap.org está no endereço IP 205.217.153.62, a especificação + scanme.nmap.org/16 escanearia os 65.536 endereços IP entre 205.217.0.0 e + 205.217.255.255. O menor valor permitido é /1, que equivale a escanear + metade da Internet. O maior valor é 32, que escaneia apenas o host + nomeado ou endereço IP porque todos os bits de endereçamento estão + fixos.</para> + + <para>A notação CIDR é curta mas nem sempre flexível o suficiente. Por + exemplo, você pode querer escanear 192.168.0.0/16 mas desejar pular + todos os IPs terminados em .0 ou .255 porque eles são normalmente + endereços de broadcast. O Nmap suporta isso através de endereçamento por + faixa de octeto. Ao invés de especificar um endereço IP normal, você + pode especificar uma lista de números separada por vírgulas ou faixa de + números para cada octeto. Por exemplo, 192.168.0-255.1-254 irá pular + todos os endereços na faixa que terminarem com .0 e/ou .255. Faixas não + precisam ser limitadas ao octeto final: o especificador + 0-255.0-255.13.37 irá executar um scan em toda a Internet buscando os + endereços IP terminados em 13.37. Esse tipo de amostragem ampla pode ser + útil em levantamentos e pesquisas da Internet toda.</para> + + <para>Endereços IPv6 podem apenas ser especificados utilizando o + endereço ou hostname IPv6 completamente qualificado. Faixas CIDR e + octetos não são suportados para o IPv6 porque eles raramente são + úteis.</para> + + <para>O Nmap aceita múltiplas especificações de host na linha de + comando, e elas não precisam ser do mesmo tipo. O comando <command + moreinfo="none">nmap scanme.nmap.org 192.168.0.0/16 + 10.0.0,1,3-7.0-255</command> executa o que se espera que dele.</para> + + <para>Embora os alvos sejam normalmente especificados na linha de + comando, as seguintes opções também estão disponíveis para controlar a + seleção de alvos:</para> + + <variablelist> + <varlistentry> + <term><option>-iL <arquivodeentrada></option> (Entrada à + partir de uma lista)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-iL</primary> + </indexterm> + + <para>Lê a especificação de alvos à partir de um + <replaceable>arquivodeentrada</replaceable>. Passar uma lista + enorme de hosts na linha de comando é muito ruim, ainda que seja + comumente desejável. Por exemplo, seu servidor DHCP pode exportar + uma lista de 10.000 endereços correntes em uso que você deseja + escanear. Ou talvez você deseje escanear todos os endereços IP + <emphasis>exceto</emphasis> aqueles usados para localizar hosts + que usam endereços IP estáticos não-autorizados. Simplesmente gere + uma lista de hosts a escanear e passe o nome do arquivo para o + Nmap como um argumento à opção <option>-iL</option>. As entradas + podem estar em qualquer um dos formatos aceitos pelo Nmap na linha + de comando (endereço IP, hostname, CIDR, IPv6, ou faixas de + octetos). Cada entrada deve ser separada por um ou mais espaços em + branco, tabulações ou quebra de linhas. Você pode especificar um + hífen (<literal>-</literal>) como nome de arquivo se quiser que o + Nmap leia os nomes de hosts da entrada padrão (standard input) ao + invés de um arquivo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-iR <número de hosts></option> (Escolhe alvos + aleatórios)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-iR</primary> + </indexterm> + + <para>Para levantamentos na Internet toda e outras pesquisas, você + pode querer escolher alvos de forma aleatória. O argumento + <replaceable>número de hosts</replaceable> diz ao Nmap quantos IPs + ele deverá gerar. IPs indesejáveis, tais como aqueles de certas + redes privativas, multicast e faixas de endereços não-alocadas são + automaticamente desconsideradas. O argumento <literal>0</literal> + (zero) pode ser especificado caso deseje um scan sem fim. Tenha em + mente que alguns administradores de rede "torcem o nariz" para + scans não-autorizados de suas redes e podem reclamar. Use esta + opção por sua conta e risco! Se você estiver realmente entediado + em uma tarde chuvosa, tente o comando <command>nmap -sS -PS80 -iR + 0 -p 80</command> para localizar servidores web aleatórios para + navegar.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--exclude <host1[,host2][,host3],...></option> + (Exclui hosts/redes)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--exclude</primary> + </indexterm> + + <para>Especifica uma lista de alvos, separados por vírgula, a + serem excluídos do scan mesmo que façam parte da faixa de rede + especificada. A lista que você fornece utiliza a sintaxe normal do + Nmap, portanto ela pode incluir nomes de hosts, blocos de rede + CIDR, faixas de octetos, etc. Isso pode ser útil quando a rede que + você deseja escanear inclui servidores de missão crítica + intocáveis, sistemas que reajam contrariamente a escaneamento de + portas ou sub-redes administradas por outras pessoas.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--excludefile <arquivo_exclusão></option> + (Exclui a lista do arquivo)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--excludefile</primary> + </indexterm> + + <para>Oferece a mesma funcionalidade que a opção + <option>--exclude</option>, exceto que os alvos a excluir são + fornecidos em um <replaceable>"arquivo separado"</replaceable> , + delimitados por quebra de linhas, espaço em branco ou tabulação, + ao invés de na linha de comando.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-host-discovery"> + <title>Descoberta de Hosts</title> + + <para>Um dos primeiros passos em qualquer missão de reconhecimento de + uma rede é reduzir um conjunto (às vezes enorme) de faixas de endereços + IP, em uma lista de hosts ativos e interessantes. Escanear cada porta de + cada endereço IP é vagaroso e normalmente desnecessário. É claro que o + que torna um host interessante depende muito do propósito do scan. + Administradores de rede podem estar apenas interessados em hosts que + executam um determinado serviço, enquanto os auditores de segurança + podem se importar com cada dispositivo que possuir um endereço IP. Um + administrador pode se sentir à vontade em usar o ping ICMP para + localizar os hosts na rede interna, enquanto um profissional externo de + análise de vulnerabilidades (penetration tester) pode utilizar um + conjunto diversificado de dezenas de sondagens em uma tentativa de + burlar as restrições do firewall.</para> + + <para>As necessidades para o descobrimento de host são muito diversas e, + por isso, o Nmap oferece uma ampla variedade de opções para customizar + as técnicas utilizadas. A descoberta de host às vezes é chamada de ping + scan, mas ela vai muito além dos simples pacotes ICMP de echo request + associados com a ferramenta onipresente conhecida como ping. Os usuários + podem pular a etapa do ping inteiramente com uma lista de scan + (<option>-sL</option>) ou desabilitanto o ping (<option>-P0</option>), + ou enfrentar a rede com combinações arbitrárias de sondagens + multi-portas TCP SYN/ACK, UDP e ICMP. O objetivo dessas sondagens é + solicitar respostas que mostrem que um endereço IP está realmente ativo + (é utilizado por um host ou dispositivo de rede). Em muitas redes, + apenas uma pequena percentagem dos endereços IP está ativa em um dado + momento. Isso é particularmente comum com o espaço de endereçamento + privativo abençoado pela RFC1918 como, por exemplo, 10.0.0.0/8. Essa + rede tem 16 milhões de IPs, mas eu já a vi sendo utilizado em empresas + com menos de mil máquinas. A descoberta de hosts pode encontrar essas + máquinas escassamente alocadas em um mar de endereços IP.</para> + + <para>Se nenhuma opção de descoberta de hosts for dada, o Nmap envia um + pacote TCP ACK destinado a porta 80 e uma procura ICMP Echo Request a + cada máquina-alvo. Uma exceção a isso é que um scan ARP é utilizado para + cada alvo localizado na rede ethernet local. Para usuários Unix sem + privilégios, com shell, um pacote SYN é enviado ao invés do ack + utilizando a chamada de sistema <function>connect()</function>. Esses + valores padrão equivalem às opções <option>-PA -PE</option>. Esta + descoberta de host freqüentemente é suficiente para escanear redes + locais, mas um conjunto de sondagens mais abrangentes é recomendado para + auditoria de segurança.</para> + + <para>As opções <option>-P*</option> (que selecionam tipos de ping) + podem ser combinadas. Você pode aumentar as chances de penetrar em um + firewall rígido enviando muitos tipos de sondagens, utilizando + diferentes portas/flags TCP e códigos ICMP. Note também que a descoberta + por ARP (<option>-PR</option>) é feita por padrão contra alvos na rede + ethernet local mesmo que você especifique outras opções + <option>-P*</option> , porque é quase sempre mais rápida e + eficiente.</para> + + <para /> + + <para>Por definição, o Nmap faz a descoberta de host e então executa um + escaneamento de portas contra cada host que ele determina que está + ativo. Isto é verdade mesmo que você especifique tipos de busca + não-padronizadas de hosts, tais como sondagens UDP + (<option>-PU</option>). Leia sobre a opção <option>-sP</option> para + saber como executar <emphasis>apenas</emphasis> uma descoberta de hosts, + ou utilize <option>-P0</option> para pular a descoberta de hosts e + escanear as portas de todos os hosts-alvo. As seguintes opções controlam + a descoberta de hosts:</para> + + <variablelist> + <varlistentry> + <term><option>-sL</option> (Scan Listagem)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sL</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>Scan Listagem</primary> + </indexterm> + + <para>O scan listagem é uma forma degenerada de descoberta de + hosts que simplesmente lista cada host da rede especificada, sem + enviar nenhum pacote aos hosts-alvos. Por padrão o Nmap fará a + resolução de DNS reverso dos hosts para descobrir seus nomes. + Ainda é surpreendente a quantidade de informações úteis que + simples nomes de hosts podem dar. Por exemplo, + <literal>fw.chi.playboy.com</literal> é o firewall do escritório + de Chicago da Playboy Enterprises. Nmap também reporta o número + total de endereços IP ao final. O scan listagem é um bom teste de + sanidade para assegurar que você está com a lista correta de + endereços IP dos seus alvos. Se os hosts mostrarem nomes de + domínios que você não reconhece, vale a pena investigar melhor + para evitar scanear a rede da empresa errada.</para> + + <para>Uma vez que a idéia é apenas mostrar uma lista dos + hosts-alvos, as opções de funcionalidade de nível mais alto tais + como scan de portas, detecção de SO, ou scan utilizando ping, não + podem ser combinadas com esta opção. Se você deseja desabilitar o + scan utilizando ping enquanto executa funções de nível elevado, + leia a opção <option>-P0</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sP</option> (Scan usando Ping)</term> + + <listitem> + <para>Esta opção diz ao Nmap para <emphasis>somente</emphasis> + <indexterm significance="normal"> + <primary>-sP</primary> + </indexterm> <indexterm significance="normal"> + <primary>Scan usando Ping</primary> + </indexterm> executar um scan usando o ping (descoberta de + hosts), e então mostrar os hosts disponíveis que responderam ao + scan. Nenhum teste adicional (tais como escaneamento de portas e + deteção de SO) é executado. Isto é um pouco mais intrusivo que o + scan listagem, e pode ser usado para os mesmos propósitos. Permite + um reconhecimento leve de uma rede-alvo sem chamar muita atenção. + Saber quantos hosts estão ativos é mais valioso para invasores que + a lista fornecida pelo scan listagem com cada endereço IP e seu + nome de host.</para> + + <para>Administradores de sistemas frequentemente acham esta opção + valiosa. Ela pode ser facilmente utilizada para contar o número de + máquinas disponíveis em uma rede ou monitorar a disponibilidade + dos servidores. Isto é normalmente chamado de varredura com ping + (ping sweep), e é mais confiável do que fazer um ping em um + endereço de broadcast, pois muitos hosts não respondem a pesquisas + com broadcast.</para> + + <para>A opção <option>-sP</option> envia um ICMP echo request e um + pacote TCP para a porta 80 por padrão. Quando executada por um + usuário sem privilégios, um pacote SYN é enviado (usando uma + chamada <function>connect()</function>) para a porta 80 no alvo. + Quando um usuário privilegiado tenta escanear alvos na rede + ethernet local, requisições ARP (<option>-PR</option>) são + utilizadas, a menos que <option>--send-ip</option> tenha sido + especificado. A opção <option>-sP</option> pode ser combinada com + qualquer um dos tipos de sondagens de descobrimento (as opções + <option>-P*</option> , excluindo <option>-P0</option>) para maior + flexibilidade. Se qualquer uma dessas opções de tipos de sondagens + e número de porta for utilizada, as sondagens padrão (ACK e echo + request) são sobrepostas. Quando firewalls restritivos estão + posicionados entre o host de origem que executa o Nmap e a + rede-alvo, utilizar essas técnicas avançadas é recomendado. Do + contrário, hosts podem ser perdidos quando o firewall ignorar as + sondagens ou as respostas delas.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-P0</option> (Sem ping)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-P0</primary> + </indexterm> + + <para>Esta opção pula completamente o estágio de descoberta do + Nmap. Normalmente o Nmap utiliza este estágio para determinar as + máquinas ativas para escaneamento mais agressivo. Por padrão, o + Nmap apenas executa sondagens agressivas tais como escaneamento de + portas, detecção de versões, ou detecções do SO contra hosts que + foram verificados como ativos. Desabilitar a descoberta de hosts + com <option>-P0</option> faz com que o Nmap teste as funções de + escaneamento solicitadas contra <emphasis>todos</emphasis> os + endereços IP alvos especificados. Portanto se um espaço de + endereçamento alvo do tamanho de uma classe B (/16) for + especificado na linha de comando, todos os 65.536 endereços IP + serão escaneados. O segundo caracter da opção <option>-P0</option> + é um zero e não a letra O. A descoberta de hosts apropriada é + desconsiderada como no scan listagem, mas ao invés de parar e + mostrar a lista de alvos, o Nmap continua a executar as funções + solicitadas como se cada alvo IP estivesse ativo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PS [listadeportas]</option> (Ping usando TCP + SYN)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-PS</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>Ping usando TCP SYN</primary> + </indexterm> + + <para>Esta opção envia um pacote TCP vazio com a flag SYN marcada. + A porta de destino padrão é a 80 (configurada em tempo de + compilação pela variável DEFAULT_TCP_PROBE_PORT no + <filename>nmap.h</filename>), mas uma porta alternativa pode ser + especificada como um parâmetro. Até uma lista de portas separadas + por vírgula pode ser especificada (p.ex. + <option>-PS22,23,25,80,113,1050,35000</option>), nesse caso as + sondagens serão tentadas contra cada porta em paralelo.</para> + + <para>A flag SYN sugere aos sistemas remotos que você está + tentando estabelecer uma comunicação. Normalmente a porta de + destino estará fechada e um pacote RST (reset) será enviado de + volta. Se acontecer de a porta estar aberta, o alvo irá dar o + segundo passo do cumprimento-de-três-vias (3-way-handshake) do TCP + respondendo com um pacote TCP SYN/ACK TCP. A máquina executando o + Nmap então derruba a conexão recém-nascida respondendo com um RST + ao invés de enviar um pacote ACK que iria completar o + cumprimento-de-três-vias e estabelecer uma conexão completa. O + pacote RST é enviado pelo kernel da máquina que está executando o + Nmap em resposta ao SYN/ACK inesperado, e não pelo próprio + Nmap.</para> + + <para>O Nmap não se importa se a porta está aberta ou fechada. + Tanto a resposta RST ou SYN/ACK discutidas anteriormente dizem ao + Nmap se o hosts está disponível e responsivo.</para> + + <para>Em caixas UNIX, apenas o usuário privilegiado + <literal>root</literal> é capaz, normalmente, de enviar e receber + pacotes TCP em estado bruto. Para usuários não privilegiados um + contorno é automaticamente empregado em concordância com a chamada + de sistema connect() iniciada contra cada porta-alvo. Isso tem o + efeito de enviar um pacote SYN ao host alvo, em uma tentativa de + se estabelecer uma conexão. Se o connect() retornar com sucesso + rápido ou com uma falha ECONNREFUSED, a pilha TCP subjacente deve + ter recebido um SYN/ACK ou RST e o host é marcado como disponível. + Se a tentativa de conexão for deixada largada até que um timeout + ocorra, o host é marcado como indisponível. Esse contorno também é + usado para conexões IPv6, pois o suporte a construção de pacotes + IPv6 em estado bruto ainda não está disponível no Nmap.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PA [listadeportas]</option> (Ping usando TCP + ACK)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-PA</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>Ping usando TCP ACK</primary> + </indexterm> + + <para>O ping usando TCP ACK é muito similar ao recém-discutido + ping usando SYN. A diferença, como você poderia imaginar, é que a + flag TCP ACK é marcada ou invés da flag SYN. Tal pacote ACK finge + reconhecer dados de uma conexão TCP estabelecida, quando nenhuma + conexão existe de fato. Então os hosts remotos deveriam sempre + responder com pacotes RST, revelando sua existência no + processo.</para> + + <para>A opção <option>-PA</option> utiliza a mesma porta padrão + que a sondagem SYN (80) e pode também obter uma lista de portas + destino no mesmo formato. Se um usuário privilegiado tenta isto, + ou se um alvo IPv6 é especificado, o contorno connect() discutido + anteriormente é utilizado. Esse contorno é imperfeito pois o + connect() está realmente enviando um pacote SYN ao invés de um + ACK.</para> + + <para>O motivo para oferecer ambas as sondagens ping, que utilizam + SYN e ACK, é maximizar as chances de passar por firewalls. Muitos + administradores configuram roteadores e outros firwalls simples + para bloquear pacotes SYN entrantes exceto aqueles destinados a + serviços públicos como o site web da empresa ou servidor de + correio eletrônico. Isso evita as demais conexões entrantes na + organização, permitindo aos usuários fazer conexões desobstruidas + à Internet. Essa aproximação não-orientada à conexão (non-stateful + ou stateless) consome uns poucos recursos no firewall/roteador e é + amplamente suportada por filtros de hardware e software. O + firewall de software Netfilter/iptables do Linux oferece a + conveniência da opção <option>--syn</option> para implementar essa + abordagem stateless. Quando regras stateless do firewall tais como + essas são implementadas, sondagens de ping usando SYN + (<option>-PS</option>) muito provavelmente serão bloqueadas quando + forem enviadas à portas fechadas. Em tais casos, a sondagem ACK se + destaca pois ela simplesmente passa por essas regras.</para> + + <para>Outro tipo comum de firewall utiliza regras orientadas a + conexão que descartam pacotes inesperados. Esta característica era + encontrada inicialmente apenas em firewalls de alto-nível, embora + tenha se tornado mais comum com o passar dos anos. O sistema + Netfilter/iptables do Linux suporta esta característica através da + opção <option>--state</option>, que categoriza os pacotes baseados + no estado da conexão. Uma sondagem SYN tem maiores chances de + funcionar contra um sistema assim, pois pacotes ACK inesperados + são normalmente reconhecidos como falsos e descartados. Uma + solução para esse dilema é enviar ambas as sondagens SYN e ACK + especificando <option>-PS</option> e <option>-PA</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PU [listadeportas]</option> (Ping usando UDP)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-PU</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>Ping usando UDP</primary> + </indexterm> + + <para>Outra opção de descoberta de hosts é o ping usando UDP, que + envia um pacote UDP vazio (a menos que + <option>--data-length</option> seja especificado) para as portas + informadas. O argumento "listadeportas" tem o mesmo formato que os + discutidos anteriormente nas opções <option>-PS</option> e + <option>-PA</option>. Se nenhuma porta for especificada, o padrão + é 31338. Esse padrão pode ser configurado em tempo de compilação + alterando DEFAULT_UDP_PROBE_PORT no <filename>nmap.h</filename>. + Uma porta alta incomum é utilizada como padrão porque enviar para + portas abertas normalmente é indesejado para este tipo particular + de scan.</para> + + <para>Ao bater contra uma porta fechada na máquina-alvo, a + sondagem UDP deve causar um pacote ICMP de porta inalcançável como + resposta. Isso diz ao Nmap que a máquina está ativa e disponível. + Muitos outros tipos de erros ICMP, tais como host/rede + inalcançável ou TTL excedido são indicativos de um host inativo ou + inalcançável. A falta de resposta também é interpretada dessa + forma. Se uma porta aberta é alcançada, a maioria dos serviços + simplesmente ignoram o pacote vazio e falham em retornar qualquer + resposta. É por isso que a porta de sondagem padrão é 31338, que + pouco provavelmente estará em uso. Uns poucos serviços, tal como o + chargen, irá responder a um pacote UDP vazio, e com isso revelará + ao Nmap que a máquina está disponível.</para> + + <para>A principal vantagem deste tipo de scan é que ele passa por + firewalls e filtros que apenas examinam o TCP. Por exemplo, uma + vez eu tive um roteador broadband sem-fio Linksys BEFW11S4. A + interface externa desse dispositivo filtrava todas as portas TCP + por padrão, mas as sondagens UDP ainda causavam mensagens de porta + inalcançável, entregando assim o dispositivo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PE</option>; <option>-PP</option>; + <option>-PM</option> (Tipos de Ping do ICMP)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-PE</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>-PP</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>-PM</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>ICMP ping</primary> + </indexterm> + + <para>Além dos tipos incomuns de descoberta de hosts TCP e UDP + discutidos anteriormente, o Nmap pode enviar os pacotes-padrão que + normalmente são enviados pelo onipresente programa ping. O Nmap + envia um pacote ICMP do tipo 8 (echo request) ao endereço IP alvo, + esperando como resposta um tipo 0 (Echo Reply) do host disponível. + Infelizmente para muitos exploradores de rede, muitos hosts e + firewalls atualmente bloqueiam esses pacotes, ao invés de + responder como é requerido pela <ulink + url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC 1122</ulink>. + Por essa razão, scans puramente ICMP são raramente confiáveis o + suficiente contra alvos desconhecidos na Internet. Mas para + administradores de sistemas monitorando uma rede interna eles + podem ser uma abordagem prática e eficiente. Utilize a opção + <option>-PE</option> para ativar esse comportamento echo + request.</para> + + <para>Embora o echo request seja a pesquisa padrão de um ping + ICMP, o Nmap não pára aqui. A padronização do ICMP (<ulink + url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC 792</ulink>) + também especifica timestamp request, information request, e + pacotes address mask request como códigos 13, 15, e 17, + respectivamente. Apesar do propósito ostensivo dessas pesquisas + seja obter informações tais como a máscara do endereço e hora + corrente, eles podem ser facilmente utilizados para descoberta de + hosts. Um sistema que responda está ativo e disponível. O Nmap não + implementa atualmente os pacotes de requisição de informações, + pois eles não são amplamente suportados. A RFC 1122 insiste que + <quote>um host NÃO DEVERIA implementar essas mensagens</quote>. + Pesquisas de marcação de hora (Timestamp) e máscara de endereço + podem ser enviadas com as opções <option>-PP</option> e + <option>-PM</option> , respectivamente. Uma resposta timestamp + reply (código ICMP 14) ou uma resposta address mask reply (código + 18) revela que o host está disponível. Essas duas pesquisas podem + ser valiosas quando os administradores bloqueiam pacotes echo + request especificamente e esquecem que outras pesquisas ICMP podem + ser usadas com o mesmo propósito.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PR</option> (Ping usando ARP)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-PR</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>Ping usando ARP</primary> + </indexterm> + + <para>Um dos cenários de uso mais comuns do Nmap é escanear a LAN + ethernet. Na maioria das LANs, especialmente aquelas que utilizam + a faixa de endereçamento privativo abençoado pela RFC1918, a vasta + maioria dos endereços IP não são utilizados nunca. Quando o Nmap + tenta enviar um pacote IP em estado bruto, tal como um ICMP echo + request, o sistema operacional deve determinar o endereço físico + de destino (ARP) correspondente ao IP-alvo de forma que ele possa + endereçar adequadamente o frame ethernet. Isso normalmente é lento + e problemático, pois os sistemas operacionais não foram escritos + com a expectativa de que precisariam fazer milhões de requisições + ARP contra hosts indisponíveis em um curto período de + tempo.</para> + + <para>O scan ARP encarrega o Nmap e seus algoritmos otimizados de + fazer as requisições ARP. E se ele conseguir uma resposta de + volta, o Nmap não precisa nem se preocupar com os pacotes ping + baseados em IP, uma vez que ele já sabe que o host está ativo. + Isso torna o scan ARP muito mais rápido e mais confiável que os + scans baseados em IP. Portanto isso é feito por padrão quando se + escaneia hosts ethernet que o Nmap detecta estarem posicionados em + uma rede ethernet local. Mesmo se tipos diferentes de ping (tais + como <option>-PI</option> ou <option>-PS</option>) seja + especificados, o Nmap usa o ARP no lugar para cada um dos alvos + que estiverem na mesma LAN. Se você não quiser de forma nenhuma + fazer um scan ARP, especifique <option>--send-ip</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-n</option> (Não faça resolução DNS)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-n</primary> + </indexterm> + + <para>Diz ao Nmap para <emphasis>nunca</emphasis> fazer uma + resolução DNS reversa nos endereços IP ativos que ele encontrar. + Uma vez que o DNS é normalmente lento, isso acelera as + coisas.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-R</option> (resolução DNS para todos os alvos)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-R</primary> + </indexterm> + + <para>Diz ao Nmap para <emphasis>sempre</emphasis> fazer uma + resolução DNS reversa nos endereços IP-alvos. Normalmente isto + apenas é executado quando uma máquina está ativa.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--system-dns</option> (Usa a resolução DNS do + sistema)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--system-dns</primary> + </indexterm> + + <para>Por padrão, o Nmap resolve o endereço IP através do envio de + pesquisas (queries) diretamente aos servidores de nome + configurados em seu host, e então escuta as respostas. Muitas das + pesquisas (dezenas) são executadas em paralalo para um melhor + desempenho. Especifique esta opção se desejar utilizar a resolução + DNS do seu sistema (um endereço IP por vez, através da chamada + getnameinfo()). Isto é mais lente e raramente útil, a não ser que + haja um bug no código de DNS do Nmap -- por favor, entre em + contato conosco se for o caso. A resolução DNS do sistema é sempre + usada em escaneamento IPv6.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--dns-servers <servidor1[,servidor2],...> + </option> (Servidores a utilizar para a pesquisa DNS reversa)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--dns-servers</primary> + </indexterm> + + <para>Por padrão o Nmap irá tentar determinar os seus servidores + DNS (para a resolução DNS reversa) através do arquivo resolv.conf + (UNIX) ou do registry (Win32). Opcionalmente você pode usar esta + opção para especificar servidores alternativos. Esta opção não é + honrada se você estiver usando <option>--system-dns</option> ou um + escaneamento IPv6. Utilizar múltiplos servidores DNS é, + normalmente, mais rápido e mais furtivo do que pesquisar apenas em + um servidor. O melhor desempenho é frequentemente obtido + especificando-se todos os servidores que tem autoridade sobre a + faixa de endereços IP.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-basics"> + <title>Fundamentos do Escaneamento de Portas</title> + + <para>Embora o Nmap tenha crescido em funcionalidade ao longo dos anos, + ele começou como um eficiente scanner de portas, e essa permanece sua + função principal. O simples comando <command>nmap + <replaceable>alvo</replaceable></command> escaneia mais de 1660 portas + TCP no host <replaceable>alvo</replaceable>. Embora muitos scanner de + portas tenham tradicionalmente agrupado todas as portas nos estados + aberto ou fechado, o Nmap é muito mais granular. Ele divide as portas em + seis estados: <literal>aberto(open)</literal>, + <literal>fechado(closed)</literal>,<literal>filtrado(filtered)</literal>, + <literal>não-filtrado(unfiltered)</literal>, + <literal>open|filtered</literal>, ou + <literal>closed|filtered</literal>.</para> + + <para>Esses estados não são propriedades intrínsecas da porta, mas + descrevem como o Nmap as vê. Por exemplo, um scan do Nmap da mesma rede + como alvo pode mostrar a porta 135/tcp como aberta, enquanto um scan ao + mesmo tempo com as mesmas opções, à partir da Internet poderia mostrar + essa porta como <literal>filtrada</literal>.</para> + + <variablelist> + <title>Os seis estados de porta reconhecidos pelo Nmap</title> + + <varlistentry> + <term>aberto (open)</term> + + <listitem> + <para>Uma aplicação está ativamente aceitando conexões TCP ou + pacotes UDP nesta porta. Encontrar esse estado é freqüentemente o + objetivo principal de um escaneamento de portas. Pessoas + conscientes sobre a segurança sabem que cada porta aberta é um + convite para um ataque. Invasores e profissionais de avaliação de + segurança querem explorar as portas abertas, enquanto os + administradores tentam fechar ou proteger com firewalls sem + bloquear usuários legítimos. Portas abertas são também + interessantes para scans não-relacionados à segurança pois mostram + os serviços disponíveis para utilização na rede.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>fechado (closed)</term> + + <listitem> + <para>Uma porta fechada está acessível (ela recebe e responde a + pacotes de sondagens do Nmap), mas não há nenhuma aplicação + ouvindo nela. Elas podem ser úteis para mostrar que um host está + ativo em um determinado endereço IP (descoberta de hosts, ou scan + usando ping), e como parte de uma deteção de SO. Pelo fato de + portas fechadas serem alcançáveis, pode valer a pena escanear mais + tarde no caso de alguma delas abrir. Os administradores deveriam + considerar o bloqueio dessas portas com um firewall. Então elas + apareceriam no estado filtrado, discutido a seguir.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>filtrado (filtered)</term> + + <listitem> + <para>O Nmap não consegue determinar se a porta está aberta porque + uma filtragem de pacotes impede que as sondagens alcancem a porta. + A filtragem poderia ser de um dispositivo firewall dedicado, + regras de roteador, ou um software de firewall baseado em host. + Essas portas frustram os atacantes pois elas fornecem poucas + informações. às vezes elas respondem com mensagens de erro ICMP + tais como as do tipo 3 código 13 (destino inalcançável: + comunicação proibida administrativamente), mas os filtros que + simplesmente descartam pacotes sem responder são bem mais comuns. + Isso força o Nmap a tentar diversas vezes só para o caso de a + sondagem ter sido descartada por congestionamento da rede ao invés + de filtragem. Isso reduz a velocidade do scan + dramaticamente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>não-filtrado (unfiltered)</term> + + <listitem> + <para>O estado não-filtrado significa que uma porta está + acessível, mas que o Nmap é incapaz de determinar se ela está + aberta ou fechada. Apenas o scan ACK, que é usado para mapear + conjuntos de regras de firewall, classifica portas com este + estado. Escanear portas não-filtradas com outros tipos de scan, + tal como scan Window, scan Syn, ou scan FIN, podem ajudar a + responder se a porta está aberta.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>open|filtered</term> + + <listitem> + <para>O Nmap coloca portas neste estado quando é incapaz de + determinar se uma porta está aberta ou filtrada. Isso acontece + para tipos de scan onde as portas abertas não dão nenhuma + resposta. A falta de resposta também pode significar que um filtro + de pacotes descartou a sondagem ou qualquer resposta que ela tenha + provocado. Portanto não sabe-se com certeza se a porta está aberta + ou se está sendo filtrada. Os scans UDP, IP Protocol, FIN, Null, e + Xmas classificam portas desta forma.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>closed|filtered</term> + + <listitem> + <para>Este estado é usado quando o Nmap é incapaz de determinar se + uma porta está fechada ou filtrada. É apenas usado para o scan + IPID Idle scan.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-techniques"> + <title>Técnicas de Escaneamento de Portas</title> + + <para>Como um novato executando um reparo automotivo, posso brigar por + horas tentando usar minhas ferramentas rudimentares (martelo, fita + adesiva, grifo, etc.) nas tarefas. Quando eu falho miseravelmente e + reboco minha lata-velha para um mecânico de verdade ele invariavelmente + pesca aqui e ali em um enorme baú de ferramentas até pegar a coisa + perfeita que torna a tarefa uma brincadeira. A arte de escanear portas é + similar. Os experts entendem as dezenas de técnicas de escaneamento e + escolhem as que são apropriadas (ou uma combinação) para uma dada + tarefa. Usuários inexperientes e script kiddies, por outro lado, tentam + resolver todos os problemas com o scan SYN padrão. Uma vez que o Nmap é + gratuito, a única barreira para a maestria em escaneamento de portas é o + conhecimento. Isso certamente é melhor que no mundo automotivo, onde + pode ser necessário uma grande habilidade para determinar que você + precisa de um compressor de molas e então você tem que pagar milhares de + dólares por um.</para> + + <para>A maioria dos tipos de scan está disponível apenas para usuários + privilegiados. Isso acontece porque eles enviam e recebem pacotes em + estado bruto, o que requer acesso de root em sistemas Unix. Utilizar a + conta de administrador no Windows é recomendado, embora o Nmap às vezes + funcione com usuários sem privilégios nessa plataforma quando o WinPcap + foi carregado no SO. Requerer privilégio de root era uma séria limitação + quando o Nmap foi lançado em 1997, pois muitos usuários apenas tinham + acesso a contas de shell compartilhadas. Agora o mundo é diferente. + Computadores estão mais baratos, muito mais pessoas tem acesso direto e + permanente à Internet, e computadores de mesa Unix (incluindo Linux e + MAC OS X) são comuns. Uma versão para o Windows do Nmap se encontra + disponível atualmente, permitindo que se rode em muito mais computadores + de mesa. Por todas essas razões, os usuários tem menos necessidade de + executar o Nmap à partir de contas de shell compartilhadas e limitadas. + Isso é muito bom pois as opções privilegiadas tornam o Nmap muito mais + poderoso e flexível.</para> + + <para>Embora o Nmap tente produzir resultados precisos, tenha em mente + que todas as deduções são baseadas em pacotes devolvidos pelas + máquinas-alvo (ou firewalls na frente delas). Tais hosts podem ser + não-confiáveis e enviar respostas com o propósito de confundir ou + enganar o Nmap. Muito mais comum são os hosts não-de-acordo-com-a-rfc + que não respondem como deveriam às sondagens do Nmap. As sondagens FIN, + Null e Xmas são particularmente suscetíveis a esse problema. Tais + questões são específicas de determinados tipos de scan e portanto são + discutidos nas entradas individuais de cada um dos tipos.</para> + + <para>Esta seção documenta as dezenas de técnicas de escaneamento de + portas suportadas pelo Nmap. Apenas um método pode ser utilizado de cada + vez exceto que um scan UDP (<option>-sU</option>) pode ser combinado com + qualquer um dos tipos de scan TCP. Como uma ajuda para a memória, as + opções dos tipos de escaneamento de portas estão no formato + <option>-s<replaceable>C</replaceable></option>, onde + <replaceable>C</replaceable> é um caracter proeminente no nome do scan, + normalmente o primeiro. A única exceção a essa regra é para o scan + deprecado FTP bounce (<option>-b</option>). Por padrão, o Nmap executa + um scan SYN, embora ele substitua por um scan connect se o usuário não + tiver os privilégios adequados para enviar pacotes em estado bruto + (requer acesso de root no UNIX) ou se alvos IPv6 forem especificados. + Dos scans listados nesta seção, os usuários não privilegiados podem + apenas executar os scans connect e ftp bounce.</para> + + <variablelist> + <varlistentry> + <term><option>-sS</option> (scan TCP SYN)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sS</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>scan TCP SYN</primary> + </indexterm> + + <para>O scan SYN é a opção de scan padrão e mais popular por boas + razões. Pode ser executada rapidamente, escaneando milhares de + portas por segundo em uma rede rápida, não bloqueada por firewalls + intrusivos. O scan SYN é relativamente não-obstrusivo e camuflado, + uma vez que ele nunca completa uma conexão TCP. Ele também + trabalha contra qualquer pilha TCP padronizada ao invés de + depender de idiossincrasias de plataformas específicas como os + scans Fin/Null/Xmas, Maimon e Idle fazem. Ele também permite uma + diferenciação limpa e confiável entre os estados <literal>aberto + (open)</literal>, <literal>fechado (closed)</literal>, e + <literal>filtrado (filtered)</literal>.</para> + + <para>Esta técnica é freqüentemente chamada de escaneamento de + porta entreaberta (half-open scanning), porque você não abre uma + conexão TCP completamente. Você envia um pacote SYN, como se fosse + abrir uma conexão real e então espera uma resposta. Um SYN/ACK + indica que a porta está ouvindo (aberta), enquanto um RST (reset) + é indicativo de uma não-ouvinte. Se nenhuma resposta é recebida + após diversas retransmissões, a porta é marcada como filtrada. A + porta também é marcada como filtrada se um erro ICMP de + inalcançável é recebido (tipo 3, código 1,2, 3, 9, 10, ou + 13).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sT</option> (scan TCP connect)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sT</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>scan TCP connect</primary> + </indexterm> + + <para>O scan TCP connect é o scan padrão do TCP quando o scan SYN + não é uma opção. Esse é o caso quando o usuário não tem + privilégios para criar pacotes em estado bruto ou escanear redes + IPv6. Ao invés de criar pacotes em estado bruto como a maioria dos + outros tipos de scan fazem, o Nmap pede ao sistema operacional + para estabelecer uma conexão com a máquina e porta alvos enviando + uma chamada de sistema <literal>connect()</literal>. Essa é a + mesma chamada de alto nível que os navegadores da web, clientes + P2P, e a maioria das outras aplicações para rede utilizam para + estabelecer uma conexão. É parte da interface de programação + conhecida como API de Sockets de Berkeley. Ao invés de ler as + respostas em pacotes em estado bruto diretamente dos fios, o Nmap + utiliza esta API para obter informações do estado de cada + tentativa de conexão.</para> + + <para>Quando um scan SYN está disponível é normalmente a melhor + escolha. O Nmap tem menos controle sobre a chamada de alto nível + <literal>connect()</literal> do que sobre os pacotes em estado + bruto, tornando-o menos eficiente. A chamada de sistema completa + as conexões nas portas-alvo abertas ao invés de executar o reset + de porta entreaberta que o scan SYN faz. Isso não só leva mais + tempo e requer mais pacotes para obter a mesma informação, mas + também torna mais provável que as máquinas-alvo registrem a + conexão. Um sistema IDS decente irá detectar qualquer um deles, + mas a maioria das máquinas não tem esse tipo de sistema de alarme. + Muitos serviços na maioria dos sistema Unix irão acrescentar uma + nota no syslog, e às vezes uma mensagem de erro obscura, quando o + Nmap se conecta e então fecha a conexão sem enviar nenhum dado. + Serviços verdadeiramente patéticos irão travar quando isso + acontecer, embora isso seja incomum. Um administrador que vê um + punhado de tentativas de conexão nos registros vindos de um único + sistema deveria saber que foi escaneado com connect().</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sU</option> (scans UDP)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sU</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>scans UDP</primary> + </indexterm> + + <para>Embora os serviços mais populares na Internet trafeguem + sobre o protocolo TCP, os serviços <ulink + url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> são + amplamente difundidos. O DNS, o SNMP, e o DHCP (registrados nas + portas 53, 161/162, e 67/68) são três dos mais comuns. Pelo fato + do escaneamento UDP ser normalmente mais lento e mais difícil que + o TCP, alguns auditores de segurança ignoram essas portas. Isso é + um erro, pois serviços UDP passíveis de exploração são bastante + comuns e invasores certamente não ignoram o protocolo inteiro. + Felizmente o Nmap pode ajudar a inventariar as portas UDP.</para> + + <para>O scan UDP é ativado com a opção <option>-sU</option>. Ele + pode ser combinado com um tipo de escaneamento TCP como o scan SYN + (<option>-sS</option>) para averigüar ambos protocolos na mesma + execução.</para> + + <para>O scan UDP funciona enviando um cabeçalho UDP vazio (sem + dados) para cada porta almejada. Se um erro ICMP de porta + inalcançável (tipo 3, código 3) é retornado, a porta está + <literal>fechada</literal>. Outros erros do tipo inalcançável + (tipo 3, códigos 1, 2, 9, 10, ou 13) marcam a porta como + <literal>filtrada</literal>. Ocasionalmente um serviço irá + responder com um pacote UDP, provando que está + <literal>aberta</literal>. Se nenhuma resposta é recebida após as + retransmissões, a porta é classificada como + <literal>aberta|filtrada</literal>. Isso significa que a porta + poderia estar aberta, ou talvez que filtros de pacotes estejam + bloqueando a comunicação. Scans de versões (<option>-sV</option>) + podem ser utilizados para ajudar a diferenciar as portas + verdadeiramente abertas das que estão filtradas.</para> + + <para>Um grande desafio com o escaneamento UDP é fazê-lo + rapidamente. Portas abertas e filtradas raramente enviam alguma + resposta, deixando o Nmap esgotar o tempo (time out) e então + efetuar retransmissões para o caso de a sondagem ou a resposta ter + sido perdida. Portas fechadas são, normalmente, um problema ainda + maior. Elas costumam enviar de volta um erro ICMP de porta + inalcançável. Mas, ao contrário dos pacotes RST enviados pelas + portas TCP fechadas em resposta a um scan SYN ou connect, muitos + hosts limitam a taxa de mensagens ICMP de porta inalcançável por + padrão. O Linux e o Solaris são particularmente rigorosos quanto a + isso. Por exemplo, o kernel 2.4.20 do Linux limita a quantidade de + mensagens de destino inalcançável a até uma por segundo (no + <filename>net/ipv4/icmp.c</filename>).</para> + + <para>O Nmap detecta a limitação de taxa e diminui o ritmo de + acordo para evitar inundar a rede com pacotes inúteis que a + máquina-alvo irá descartar. Infelizmente, um limite como o do + Linux de um pacote por segundo faz com que um scan de 65.536 + portas leve mais de 18 horas. Idéias para acelerar o escaneamento + UDP incluem escanear mais hosts em paralelo, fazer um scan rápido + apenas das portas mais comuns primeiro, escanear por detrás de um + firewall, e utilizar <option>--host-timeout</option> para pular os + hosts lentos.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sN</option>; <option>-sF</option>; + <option>-sX</option> (scans TCP Null, FIN, e Xmas)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sN</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>-sF</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>-sX</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>scan TCP NULL</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>scan TCP FIN</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>scan TCP Xmas</primary> + </indexterm> + + <para>Esses três tipos de scan (existem outras opções, possíveis + com a opção <option>--scanflags</option> descrita na próxima + seção) exploram uma brecha sutil na <ulink + url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC do TCP</ulink> + para diferenciarem entre portas <literal>abertas</literal> e + <literal>fechadas</literal>. A página 65 diz que <quote>se a porta + [destino] estiver FECHADA .... um segmento entrante que não + contenha um RST irá causar o envio de um RST como + resposta.</quote> Então a página seguinte discute os pacotes + enviados à portas abertas sem os bits SYN, RST ou ACK marcados, + afirmando que: <quote>é pouco provável que você chegue aqui, mas + se chegar, descarte o segmento, e volte.</quote></para> + + <para>Quando se escaneia sistemas padronizados com o texto desta + RFC, qualquer pacote que não contenha os bits SYN, RST, ou ACK irá + resultar em um RST como resposta se a porta estiver fechada, e + nenhuma resposta se a porta estiver aberta. Contanto que nenhum + desses três bits estejam incluídos, qualquer combinação dos outros + três (FIN, PSH e URG) é válida. O Nmap explora isso com três tipos + de scan:</para> + + <variablelist> + <varlistentry> + <term>scan Null (<option>-sN</option>)</term> + + <listitem> + <para>Não marca nenhum bit (o cabeçalho de flag do tcp é + 0)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>scan FIN (<option>-sF</option>)</term> + + <listitem> + <para>Marca apenas o bit FIN do TCP.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>scan Xmas(<option>-sX</option>)</term> + + <listitem> + <para>Marca as flags FIN, PSH e URG, iluminando o pacote + como uma árvore de Natal.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Esses três tipos de scan são exatamente os mesmos em termos + de comportamento, exceto pelas flags TCP marcadas no pacotes de + sondagem. Se um pacote RST for recebido, a porta é considerada + <literal>fechada</literal>, e nenhuma resposta significa que está + <literal>aberta|filtrada</literal>. A porta é marcada como + <literal>filtrada</literal> se um erro ICMP do tipo inalcançável + (tipo 3, código 1, 2, 3, 9, 10, ou 13) for recebido.</para> + + <para>A vantagem principal desses tipos de scan é que eles podem + bisbilhotar através de alguns firewalls não-orientados à conexão e + de roteadores que filtram pacotes. Outra vantagem é que esses + tipos de scan são um pouco mais camuflados do que o scan SYN. Mas, + não conte com isso -- a maioria dos produtos IDS modernos podem + ser configurados para detectá-los. O maior problema é que nem + todos os sistemas seguem a RFC 793 ao pé-da-letra. Diversos + sistemas enviam respostas RST para as sondagens independentemente + do fato da porta estar aberta ou não. Isso faz com que todas as + portas sejam classificadas como <literal>fechadas</literal>. A + maioria dos sistemas operacionais que fazem isso são Microsoft + Windows, muitos dispositivos Cisco, BSDI, e o IBM OS/400. Esse + scan realmente funciona contra a maioria dos sistemas baseados em + Unix. Outro ponto negativo desses scans é que eles não conseguem + diferenciar portas <literal>abertas</literal> de alguns tipos de + portas <literal>filtradas</literal>, deixando você com a resposta + <literal>abera|filtrada</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sA</option> (scan TCP ACK)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sA</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>scan TCP ACK</primary> + </indexterm> + + <para>Esse scan é diferente dos outros discutidos até agora pelo + fato de que ele nunca determina se uma porta está + <literal>aberta</literal> (ou mesmo + <literal>aberta|filtrada</literal>). Ele é utilizado para mapear + conjuntos de regras do firewall, determinando se eles são + orientados à conexão ou não e quais portas estão filtradas.</para> + + <para>O pacote de sondagem do scan ACK tem apenas a flag ACK + marcada (a menos que você use <option>--scanflags</option>). + Quando se escaneia sistemas não-filtrados, as portas + <literal>abertas</literal> e <literal>fechadas</literal> irão + devolver um pacote RST. O Nmap então coloca nelas o rótulo + <literal>não-filtradas (unfiltered)</literal>, significando que + elas estão alcançáveis pelo pacote ACK, mas se elas estão + <literal>abertas</literal> ou <literal>fechadas</literal> é + indeterminado. Portas que não respondem, ou que devolvem certas + mensagens de erro ICMP (tipo 3, código 1, 2, 3, 9, 10, ou 13), são + rotuladas como <literal>filtradas</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sW</option> (scan da Janela TCP)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sW</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>Scan da Janela TCP</primary> + </indexterm> + + <para>Scan da Janela é exatamente o mesmo que o scan ACK, exceto + que ele explora um detalhe da implementação de certos sistemas de + forma a diferenciar as portas abertas das fechadas, ao invés de + sempre mostrar <literal>não-filtrada</literal> quando um RST é + devolvido. Ele faz isso examinando o campo Janela TCP (TCP Window) + do pacote RST devolvido. Em alguns sistemas, as portas abertas + usam um valor positivo de tamanho de janela (mesmo para pacotes + RST), enquanto que as portas fechadas tem um valor igual a zero. + Então, ao invés de sempre mostrar uma porta como + <literal>não-filtrada</literal> quando se recebe um RST de volta, + o scan da Janela mostra a porta como <literal>aberta</literal> ou + <literal>fechada</literal> se o valor da Janela TCP no reset for + positivo ou zero, respectivamente.</para> + + <para>Este scan se baseia em um detalhe de implementação de uma + minoria de sistemas na Internet, portanto não se pode confiar + sempre nele. Sistemas que não suportam isso irão normalmente + devolver todas as portas como <literal>fechadas</literal>. É claro + que é possível que a máquina realmente não tenha nenhuma porta + aberta. Se a maioria das portas escaneadas estiver + <literal>fechada</literal> mas uns poucos números de portas comuns + (tais como 22, 25, 53) estão <literal>filtrados</literal>, o + sistema muito provavelmente está vulnerável. De vez em quando, os + sistemas irão mostrar exatamente o comportamento oposto. Se o seu + scan mostrar 1000 portas abertas e 3 fechadas ou filtradas, então + essas três podem muito bem ser as verdadeiramente abertas.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sM</option> (scan TCP Maimon)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sM</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>scan TCP Maimon</primary> + </indexterm> + + <para>O scan Maimon recebeu o nome de seu descobridor, Uriel + Maimon. Ele descreveu a técnica na Phrack Magazine, edição 49 + (Novembro de 1996). O Nmap, que incluiu essa técnica, foi lançado + duas edições mais tarde. A técnica é exatamente a mesma que os + scans Null, FIN e Xmas, exceto que a sondagem é FIN/ACK. De acordo + com a RFC 793 (TCP), um pacote RST deveria ser gerado em resposta + a tal sondagem se a porta estiver aberta ou fechada. Entretanto, + Uriel notou que muitos sistemas derivados do BSD simplesmente + descartavam o pacote se a porta estivesse aberta.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--scanflags</option> (scan TCP Personalizado)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--scanflags</primary> + </indexterm> + + <para>Usuários verdadeiramente avançados do Nmap não precisam se + limitar aos tipos de scans enlatados oferecidos. A opção + <option>--scanflags</option> permite que você desenhe seu próprio + scan permitindo a especificação de flags TCP arbitrárias. Deixe + sua imaginação correr solta enquanto dribla sistemas de detecção + de intrusão, cujos fabricantes apenas olharam rapidamente a página + man do Nmap adicionando regras específicas!</para> + + <para>O argumento do <option>--scanflags</option> pode ser um + valor numérico da marca (flag) como o 9 (PSH e FIN), mas usar + nomes simbólicos é mais fácil. Apenas esprema alguma combinação de + <literal>URG</literal>, <literal>ACK</literal>, + <literal>PSH</literal>, <literal>RST</literal>, + <literal>SYN</literal>, e <literal>FIN</literal>. Por exemplo, + <option>--scanflags URGACKPSHRSTSYNFIN</option> marca tudo, embora + não seja muito útil para escaneamento. A ordem em que essas marcas + são especificadas é irrelevante.</para> + + <para>Além de especificar as marcas desejadas, você pode + especificar um tipo de scan TCP (como o <option>-sA</option> ou + <option>-sF</option>). Esse tipo-base diz ao Nmap como interpretar + as respostas. Por exemplo, um scan SYN considera nenhuma-resposta + como uma indicação de porta <literal>filtrada</literal>, enquanto + que um scan FIN trata a mesma como + <literal>aberta|filtrada</literal>. O Nmap irá se comportar da + mesma forma que o tipo de scan-base escolhido, exceto que ele irá + usar as marcas TCP que você especificar. Se você não escolher um + tipo-base, o scan SYN é utilizado.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sI <hostzumbi[:portadesondagem]></option> (scan + Idle)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sI</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>scan Idle</primary> + </indexterm> + + <para>Este método avançado de scan permite um scan TCP realmente + cego das portas do alvo (significando que nenhum pacote é enviado + para o alvo do seu endereço IP real). Ao invés disso, um ataque + canal-lateral (side-channel) explora a previsível geração de + seqüencia de ID, conseqüencia da fragmentação do IP, no host + zumbi, para juntar informações sobre as portas abertas no alvo. + Sistemas IDS irão mostrar o scan como se viessem da máquina zumbi + que você especificou (que deve estar ativa e obedecer a alguns + critérios). Este tipo fascinante de scan é complexo demais para se + descrever completamente aqui, neste guia de referência, então eu + escrevi e postei um trabalho informal com detalhes completos em + <ulink url="https://nmap.org/book/idlescan.html" />.</para> + + <para>Além de ser extraordinariamente camuflado (devido à sua + natureza cega), este tipo de scan permite mapear relações de + confiança baseadas em IP entre máquinas. A listagem de portas + mostra as portas abertas <emphasis>da perspectiva do host + zumbi.</emphasis> Portanto você pode tentar escanear algo usando + vários zumbis que você acha que podem ser confiáveis (via regras + de roteador/filtro de pacotes).</para> + + <para>Você pode adicionar o sinal "dois-pontos", seguido do número + da porta, ao nome do host zumbi se quiser sondar uma porta em + particular no zumbi, verificando as mudanças de IPID. Do contrário + o Nmap irá utilizar a porta que ele normalmente usa por padrão + para pings tcp (80).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sO</option> (Scans do protocolo IP)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sO</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>Scans do protocolo IP</primary> + </indexterm> + + <para>Scans do Protocolo IP permitem que você determine quais + protocolos IP (TCP, ICMP, IGMP, etc.) são suportados pelas + máquina-alvo. Isso não é, tecnicamente, um scan de portas, pois + ele varia os números do protocolo IP ao invés dos números de + portas TCP e UDP. Ainda assim, ele utiliza a opção + <option>-p</option> para selecionar os números de protocolos a + escanear, mostra os resultados dentro do formato normal da tabela + de portas e usa o mesmo mecanismo de escaneamento dos métodos de + descoberta de portas. Portanto ele é parecido o suficiente com um + scan de portas e por isso pertence à este lugar.</para> + + <para>Além de ser útil de seu jeito, o scan de protocolo mostra o + poder do software de código aberto. Embora a idéia fundamental + seja bastante simples, eu não havia pensado em adicioná-la e nem + havia recebido nenhuma solicitação para essa funcionalidade. + Então, no verão de 2000, Gerhard Rieger concebeu a idéia, escreveu + uma excelente alteração (patch) implementando-a, e a enviou para a + lista de discussão nmap-hackers. Eu incorporei a alteração na + árvore do Nmap e lancei uma nova versão no dia seguinte. Poucos + produtos de software comercial tem usuários entusiasmados o + suficiente para desenhar e contribuir com melhorias!</para> + + <para>O scan de protocolo funciona de uma forma similar a um scan + UDP. Ao invés de ficar repetindo alternando o campo de número de + porta de um pacote UDP, ele envia cabeçalhos de pacote IP e faz a + repetição alternando o campo de protocolo IP de 8 bits. Os + cabeçalhos normalmente estão vazios, sem conter dados, e nem mesmo + contendo o cabeçalho apropriado do suposto protocolo. As três + exceções são o TCP, o UDP e o ICMP. Um cabeçalho de protocolo + apropriado para estes é incluído, uma vez que alguns sistemas não + os enviarão caso não tenham, e porque o Nmap tem as funções para + criá-los Ao invés de observar as mensagens de erro ICMP de porta + inalcançável, o scan de protocolo fica de olho nas mensagens ICMP + de <emphasis>protocolo</emphasis> inalcançável. Se o Nmap recebe + qualquer resposta de qualquer protocolo do host-alvo, o Nmap marca + esse protocolo como <literal>aberto</literal>. Um erro ICMP de + protocolo não-alcançável (tipo 3, código 2) faz com que o + protocolo seja marcado como <literal>fechado</literal>. Outros + erros ICMP do tipo inalcançável (tipo 3, código 1, 3, 9, 10, ou + 13) fazem com que o protocolo seja marcado como + <literal>filtrado</literal> (embora eles provem, ao mesmo tempo, + que o ICMP está <literal>aberto</literal>). Se nenhuma resposta + for recebida após as retransmissões, o protocolo é marcado como + <literal>aberto|filtrado.</literal></para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-b <host para relay de ftp></option> (Scan de + FTP bounce)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-b</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>Scan de FTP bounce</primary> + </indexterm> + + <para>Uma característica interessante do protocolo FTP (<ulink + url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) é + o suporte à conexões denominadas proxy ftp. Isso permite que um + usuário conecte-se a um servidor FTP, e então solicite que + arquivos sejam enviados a um terceiro servidor. Tal característica + é sujeita a abusos em diversos níveis, por isso a maioria dos + servidores parou de suportá-la. Um dos abusos permitidos é fazer + com que o servidor FTP escaneie as portas de outros hosts. + Simplesmente solicite que o servidor FTP envie um arquivo para + cada porta interessante do host-alvo. A mensagem de erro irá + descrever se a porta está aberta ou não. Esta é uma boa forma de + passar por cima de firewalls porque os servidores FTP de empresas + normalmente são posicionados onde tem mais acesso a outros hosts + internos que os velhos servidores da Internet teriam. O Nmap + suporta o scan de ftp bounce com a opção <option>-b</option>. Ela + recebe um argumento no formato + <replaceable>nomedousuário</replaceable>:<replaceable>senha</replaceable>@<replaceable>servidor</replaceable>:<replaceable>porta</replaceable>. + <replaceable>Servidor</replaceable> é o nome ou endereço IP de um + servidor FTP vulnerável. Assim como em uma URL normal, você pode + omitir + <replaceable>nomedousuário</replaceable>:<replaceable>senha</replaceable>, + neste caso as credenciais de login anônimo (usuário: + <literal>anonymous</literal> senha:<literal>-wwwuser@</literal>) + serão usados. O número da porta (e os dois-pontos) podem ser + omitidos, e então a porta FTP padrão (21) no + <replaceable>servidor</replaceable> será utilizada.</para> + + <para>Esta vulnerabilidade espalhou-se em 1997 quando o Nmap foi + lançado, mas foi corrigida amplamente. Servidores vulneráveis + ainda estão por aí, então pode valer a pena tentar se tudo o mais + falhar. Se passar por cima de um firewall é o seu objetivo, + escaneie a rede-alvo procurando por uma porta 21 aberta (ou mesmo + por qualquer serviço FTP se você escanear todas as portas com a + detecção de versão), então tente um scan bounce usando-as. O Nmap + irá dizer se o host é vulnerável ou não. Se você estiver apenas + tentando encobrir suas pegadas, você não precisa (e, na verdade, + não deveria) limitar-se a hosts na rede-alvo. Antes de sair + escaneando endereços aleatórios na Internet, procurando por + servidores FTP, considere que os administradores de sistemas podem + não apreciar o seu abuso nos servidores deles.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-specification"> + <title>Especificação de Portas e Ordem de Scan</title> + + <para>Somado a todos os métodos de scan discutidos anteriormente, o Nmap + oferece opções para especificar quais portas são escaneadas e se a ordem + de escaneamento é aleatória ou sequencial. Por padrão, o Nmap escaneia + todas as portas até, e incluindo, 1024, bem como portas com numeração + alta listadas no arquivo the <filename>nmap-services</filename> para + o(s) protocolo(s) escaneados.</para> + + <variablelist> + <varlistentry> + <term><option>-p <faixa de portas></option> (Escaneia apenas + as portas especificadas)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-p</primary> + </indexterm> + + <para>Esta opção especifica quais portas que você deseja escanear + e prevalece sobre o padrão. Números de portas individuais são + suportadas, bem como as faixas separadas por um hífen (p.ex.: + 1-1023). Os valores iniciais e/ou finais da faixa podem ser + omitidos, o que faz com que o Nmap use 1 e 65535, respectivamente. + Portanto, você pode especificar <option>-p-</option> para escanear + as portas de 1 até 65535. Escanear a porta zero é permitido se + você especificar explicitamente. Para o escaneamento do protocolo + IP (<option>-sO</option>), esta opção especifica os números dos + protocolos que você deseja escanear (0-255).</para> + + <para>Quando escanear ambas as portas TCP e UDP, você pode + especificar um protocolo em particular, precedendo os números de + portas com <literal>T:</literal> ou <literal>U:</literal>. O + qualificador dura até que você especifique um novo qualificador. + Por exemplo, o argumento <option>-p + U:53,111,137,T:21-25,80,139,8080</option> escanearia as portas UDP + 53, 111 e 137, bem como as portas TCP listadas. Note que para + escanear ambas as portas UDP e TCP, você tem que especificar + <option>-sU</option> e pelo menos um tipo de scan TCP (tal como + <option>-sS</option>, <option>-sF</option> ou + <option>-sT</option>). Se nenhum qualificador de protocolo for + informado, os números de portas serão acrescentados à todas as + listas de protocolos.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-F</option> (Scan Rápido (portas limitadas))</term> + + <listitem> + <indexterm significance="normal"> + <primary>-F</primary> + </indexterm> + + <para>Especifica que você deseja apenas escanear as portas + listadas no arquivo <filename>nmap-services</filename> que vem com + o nmap (ou o arquivo de protocolos para o <option>-sO</option>). + Isto é muito mais rápido do que escanear todas as 65535 portas de + um host. Pelo fato desta lista conter tantas portas TCP (mais de + 1200), a diferença de velocidade de um scan TCP padrão (cerca de + 1650 portas) não é dramática. A diferença pode ser enorme se você + especificar seu próprio minúsculo arquivo + <filename>nmap-services</filename> usando a opção + <option>--datadir</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-r</option> (Não usa as portas de forma + aleatória)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-r</primary> + </indexterm> + + <para>Por padrão, o Nmap usa a ordem das portas a serem escaneadas + de forma aleatória (exceto aquelas portas normalmente certamente + acessíveis que são movidas próximas ao início por motivos de + eficiência). Essa técnica de busca aleatória normalmente é + desejável, mas você pode especificar <option>-r</option> para um + escaneamento de portas sequencial.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-version-detection"> + <title>Detecção de Serviço e Versão</title> + + <indexterm significance="normal"> + <primary>scan de Versão</primary> + </indexterm> + + <para>Aponte o Nmap para uma máquina remota e ele poderá lhe dizer que + as portas 25/tcp, 80/tcp e 53/udp estão abertas. Utilizar o banco de + dados <filename>nmap-services</filename>, com cerca de 2.200 serviços + bastante conhecidos, do Nmap iria relatar que aquelas portas + provavelmente correspondem a um servidor de correio eletrônico (SMTP), a + um servidor de páginas web (HTTP) e a um servidor de nomes (DNS) + respectivamente. Essa pesquisa normalmente é precisa -- a grande maioria + de daemons escutando na porta TCP 25 é, de fato, de servidores de + correio eletrônico. Entretanto, você não deveria apostar a sua segurança + nesta informação! As pessoas podem e executam serviços em portas + estranhas.</para> + + <para>Mesmo que o Nmap esteja certo, e o servidor hipotético acima + esteja executando os serviços SMTP, HTTP e DNS, isso não é informação o + bastante. Quando fizer uma avaliação de vulnerabilidades (ou mesmo um + simples inventário da rede) de sua empresa ou clientes, você realmente + deseja saber qual o programa-servidor de correio eletrônico ou de nomes + e as versões que estão rodando. Ter um número de versão exato ajuda + substancialmente na determinação de quais explorações (exploits) o + servidor está vulnerável. A detecção de versão ajuda a obter esta + informação.</para> + + <para>Depois que as portas TCP e/ou UDP forem descobertas usando + qualquer um dos outros métodos de scan, a detecção de versão interroga + essas portas para determinar mais informações sobre o que realmente está + sendo executado nessas portas. O banco de dados + <filename>nmap-service-probes</filename> do Nmap contém sondagens para + pesquisar diversos serviços e expressões de acerto (match expressions) + para reconhecer e destrinchar as respostas. O Nmap tenta determinar os + protocolos de serviços (p.ex.: ftp, ssh, telnet, http), o nome da + aplicação (p.ex.: ISC Bind, Apache httpd, Solaris telnetd), o número da + versão, o nome do host, tipo de dispositivo (p.ex.: impressora, + roteador), a família do SO (p.ex.: Windows, Linux) e às vezes detalhes + diversos do tipo, se um servidor X está aberto para conexões, a versão + do protocolo SSH ou o nome do usuário do KaZaA. É claro que a maioria + dos serviços não fornece todas essas informações. Se o Nmap foi + compilado com o suporte ao OpenSSL, ele irá se conectar aos servidores + SSL para deduzir qual o serviço que está escutando por trás da camada + criptografada. Quando os serviços RPC são descobertos, o "amolador" de + RPC (RPC grinder) do Nmap (<option>-sR</option>) é automaticamente + utilizado para determinar o nome do programa RPC e o número da versão. + Algumas portas UDP são deixadas no estado + <literal>aberta|filtrada</literal> depois que scan de porta UDP não + consegue determinar se a porta está aberta ou filtrada. A detecção de + versão irá tentar provocar uma resposta dessas portas (do mesmo jeito + que faz com as portas abertas), e alterar o estado para aberta se + conseguir. Portas TCP do tipo <literal>aberta|filtrada</literal> são + tratadas da mesma forma. Note que a opção <option>-A</option> do Nmap + habilita a detecção de versão, entre outras coisas. Um trabalho + documentando o funcionamento, uso e customização da detecção de versão + está disponível em <ulink + url="https://nmap.org/vscan/" />.</para> + + <para>Quando o Nmap recebe uma resposta de um serviço mas não consegue + encontrá-la em seu banco de dados, ele mostra uma identificação + (fingerprint) especial e uma URL para que você envie informações se + souber com certeza o que está rodando nessa porta. Por favor, considere + dispor de alguns minutos para mandar essa informação de forma que sua + descoberta possa beneficiar a todos. Graças a esses envios, o Nmap tem + cerca de 3.000 padrões de acerto para mais de 350 protocolos, tais como + o smtp, ftp, http, etc.</para> + + <para>A detecção de versão é habilitada e controlada com as seguintes + opções:</para> + + <variablelist> + <varlistentry> + <term><option>-sV</option> (detecção de versão)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-sV</primary> + </indexterm> + + <para>Habilita a detecção de versão, conforme discutido acima. + Alternativamente, você pode usar a opção <option>-A</option> para + habilitar tanto a detecção de SO como a detecção de versão.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--allports</option> (Não exclui nenhuma porta da + detecção de versão)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--allports</primary> + </indexterm> + + <para>Por padrão, a detecção de versão do Nmap pula a porta TCP + 9100 por causa de algumas impressoras que imprimem qualquer coisa + que seja enviada para essa porta, levando a dezenas de páginas com + requisições HTTP, requisições de sessões SSL binárias, etc. Esse + comportamento pode ser alterado modificando-se ou removendo a + diretiva <literal>Exclude</literal> no + <filename>nmap-service-probes</filename>, ou você pode especificar + <option>--allports</option> para escanear todas as portas + independente de qualquer diretiva + <literal>Exclude</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-intensity <intensidade></option> + (Estabelece a intensidade do scan de versão)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--version-intensity</primary> + </indexterm> + + <para>Quando está executando um scan de versão + (<option>-sV</option>), o nmap envia uma série de sondagens, cada + qual com um valor atribuído de raridade, entre 1 e 9. As sondagens + com números baixos são efetivas contra uma ampla variedade de + serviços comuns, enquanto as com números altos são raramente + úteis. O nível de intensidade especifica quais sondagens devem ser + utilizadas. Quando mais alto o número, maiores as chances de o + serviço ser corretamente identificado. Entretanto, scans de alta + intensidade levam mais tempo. A intensidade deve estar entre 0 e + 9. O padrão é 7. Quando uma sondagem é registrada na porta-alvo + através da diretiva <filename>nmap-service-probes</filename> + <literal>ports</literal>, essa sondagem é tentada + independentemente do nível de intensidade. Isso assegura que as + sondagens DNS sempre serão tentadas contra qualquer porta 53 + aberta, e a sondagem SSL será realizada contra a 443, etc.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-light</option> (Habilita o modo leve + (light))</term> + + <listitem> + <indexterm significance="normal"> + <primary>--version-light</primary> + </indexterm> + + <para>Esse é um apelido conveniente para + <option>--version-intensity 2</option>. Esse modo leve torna o + escaneamento de versão muito mais rápido, mas é ligeiramente menos + provável que identifique os serviços.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-all</option> (Tenta simplesmente todas as + sondagens)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--version-all</primary> + </indexterm> + + <para>Um apelido para <option>--version-intensity 9</option>, + assegurando que todas as sondagens sejam tentadas contra cada + porta.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-trace</option> (Monitora as atividades do + scan de versão)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--version-trace</primary> + </indexterm> + + <para>Isto faz com que o Nmap mostre informações de depuração + extensivas sobre o que o escaneamento de versão está fazendo. É um + sub-conjunto do que você obteria com + <option>--packet-trace</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sR</option> (Scan RPC)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--sR</primary> + </indexterm> + + <para>Este método trabalha em conjunto com os vários métodos de + escaneamento de portas do Nmap. Ele pega todas as portas TCP/UDP + descobertas no estado aberta e inunda-as com comandos NULL do + programa SunRPC, em uma tentativa de determinar se elas são portas + RPC e, se forem, quais programas e números de versão elas mostram. + Dessa forma você pode obter efetivamente a mesma informação que o + <command>rpcinfo -p</command> mesmo se o portmapper do alvo + estiver atrás de um firewall (ou protegido por TCP wrappers). + Chamarizes não funcionam ainda com o scan RPC. Isso é habilitado + automaticamente como parte do scan de versão + (<option>-sV</option>) se você o solicitar. Como a detecção de + versão inclui isso e é muito mais abrangente, o + <option>-sR</option> raramente é necessário.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-os-detection"> + <title>Detecção de SO</title> + + <indexterm significance="normal"> + <primary>Detecção de SO</primary> + </indexterm> + + <para>Uma das características mais conhecidas do Nmap é a detecção + remota de SO utilizando a identificação da pilha (stack fingerprinting) + do TCP/IP. O Nmap envia uma série de pacotes TCP e UDP ao host remoto e + examina praticamente todos os bits das respostas. Após executar dezenas + de testes como a amostragem TCP ISN, suporte e ordenamento das opções do + TCP, amostragem IPID e a checagem do tamanho inicial da janela, o Nmap + compara os resultados com o banco de dados + <filename>nmap-os-fingerprints</filename> com mais de 1500 + identificações de SO conhecidas e mostra os detalhes do SO se houver uma + correspondência. Cada identificação inclui uma descrição textual livre + do SO e uma classificação que fornece o nome do fabricante (p.ex.: Sun), + SO base (p.ex.: Solaris), geração do SO (p.ex.: 10) e tipo de + dispositivo (genérico, roteador, switch, console de jogo, etc.).</para> + + <para>Se o Nmap não conseguir identificar o SO da máquina, e as + condições forem favoráveis (p.ex.: pelo menos uma porta aberta e uma + porta fechada foram encontradas), o Nmap irá fornecer uma URL onde você + poderá enviar a identificação se souber (com certeza) o SO em execução + na máquina. Fazendo isso, você contribui para a gama de sistemas + operacionais conhecidos pelo Nmap e, com isso, ele será mais preciso + para todos.</para> + + <para>A detecção de SO habilita diversos outros testes que usam as + informações coletadas durante o processo. Um deles é a medição de + uptime, que utiliza a opção timestamp do TCP (RFC 1323) para supor + quando uma máquina foi reiniciada pela última vez. Isso apenas é + mostrado para as máquinas que fornecem essa informação. Outro é a + Classificação de Previsibilidade da Seqüencia do TCP. Ele mede + aproximadamente o grau de dificuldade de se estabelecer uma conexão TCP + forjada contra um host remoto. É útil para se explorar relações de + confiança baseadas no IP de origem (rlogin, filtros de firewall, etc.) + ou para ocultar a origem de um ataque. Esse tipo de enganação (spoofing) + raramente é executada hoje em dia, mas muitas máquinas ainda estão + vulneráveis a ele. O número de dificuldade real é baseado em amostragens + estatísticas e pode variar. Normalmente é melhor usar a classificação em + inglês, do tipo <quote>worthy challenge</quote> (um desafio que vale a + pena) ou <quote>trivial joke</quote> (uma piada, muito fácil). Isso só é + mostrado na saída normal do modo verbose (<option>-v</option>). Quando o + modo verbose é habilitado juntamente com o <option>-O</option>, a + Geração de Seqüencia IPID também é mostrada. A maioria das máquinas é + classificada como <quote>incremental</quote> , o que significa que elas + incrementam o campo ID no cabeçalho IP para cada pacote que envia. Isso + torna-as vulnerável a diversos ataques avançados de levantamento e + forjamento de informações.</para> + + <para>Um trabalho documentando o funcionamento, utilização e + customização da detecção de SO está disponível em mais de uma dezena de + línguas em <ulink url="https://nmap.org/osdetect/" />.</para> + + <para>A detecção de SO é habilitada e controlada com as seguintes + opções:</para> + + <variablelist> + <varlistentry> + <term><option>-O</option> (Habilita a detecção de SO)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-O</primary> + </indexterm> + + <para>Habilita a deteção de SO, como discutido acima. + Alternativamente, você pode usar <option>-A</option> para + habilitar tanto a detecção de SO quanto a detecção de + versão.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--osscan-limit</option> (Limitar a detecção de SO a + alvos promissores)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--osscan-limit</primary> + </indexterm> + + <para>A detecção de SO é bem mais eficiente se ao menos uma porta + TCP aberta e uma fechada for encontrada. Escolha esta opção e o + Nmap não irá nem tentar a detecção de SO contra hosts que não + correspondam a este critério. Isso pode economizar um tempo + considerável, particularmente em scans <option>-P0</option> contra + muitos hosts. Isso só importa quando a detecção de SO é solicitada + através de <option>-O</option> ou <option>-A</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--osscan-guess</option>; <option>--fuzzy</option> + (Resultados de tentativas de detecção de SO)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--osscan-guess</primary> + </indexterm> + + <para>Quano o Nmap não é capaz de detectar uma correspondência + exata de SO, às vezes ele oferece possibilidades aproximada. A + correspondência tem que ser muito próxima para o Nmap fazer isso + por padrão. Qualquer uma dessas opções (equivalentes) tornam as + tentativas do Nmap mais agressivas. O Nmap ainda assim irá dizer + quando uma correspondência imperfeita é mostrada e o nível de + confiança (porcentagem) de cada suposição.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-performance"> + <title>Temporização (Timing) e Desempenho</title> + + <para>Uma das minhas prioridades mais altas no desenvolvimento do Nmap + tem sido o desempenho. Um scan padrão (<command>nmap + <replaceable>hostname</replaceable></command>) de um host em minha rede + local leva apenas um quinto de segundo. Isso mal dá tempo de piscar o + olho, mas esse tempo aumenta conforme você está escaneando dezenas ou + centenas de milhares de hosts. Além disso, certos tipos de scan, como o + escaneamento UDP ou a detecção de versão, aumentam o tempo de + escaneamento substancialmente. Da mesma forma algumas configurações de + firewall fazem o mesmo, particularmente quando limitam a taxa de + resposta. Embora o Nmap se utilize de paralelismo e muitos outros + algoritmos avançados para acelerar esses scans, o usuário tem o controle + final sobre como o Nmap executa. Usuários avançados elaboram comandos do + Nmap cuidadosamente para obter apenas as informações que importam, + sempre se preocupando com as restrições de tempo.</para> + + <para>Técnicas para melhorar os tempos de scan incluem omitir testes + não-críticos e atualizar até a versão mais recente do Nmap (melhorias de + desempenho são feitas freqüentemente). Otimizar os parâmetros de tempo + também podem fazer uma grande diferença. Essas opções estão listadas + abaixo.</para> + + <para>Algumas opções aceitam um parâmetro de <literal + moreinfo="none">tempo</literal>. É especificado em milissegundos por + padrão, embora você possa acrescentar ‘s’, ‘m’ ou ‘h’ ao valor para + especificar segundos, minutos ou horas. Dessa forma, os argumentos + <option>--host-timeout</option> arguments <literal + moreinfo="none">900000</literal>, <literal + moreinfo="none">900s</literal> e <literal moreinfo="none">15m</literal> + fazem a mesma coisa.</para> + + <variablelist> + <varlistentry> + <term><option>--min-hostgroup <númerodehosts></option>; + <option>--max-hostgroup <númerodehosts></option> (Ajuste dos + tamanhos dos grupos de scan paralelos)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--min-hostgroup</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>--max-hostgroup</primary> + </indexterm> + + <para>O Nmap tem a habilidade de fazer um scan de portas ou de + versões em múltiplos hosts em paralelo. O Nmap faz isso dividindo + a faixa de endereços IP-alvo em grupos, e então escaneando um + grupo de cada vez. No geral, grupos maiores são mais eficientes. A + contrapartida é que os resultados dos hosts não pode ser fornecido + até que o grupo inteiro tenha terminado. Portanto, se o Nmap + começou com um tamanho de grupo igual a 50, o usuário não + receberia nenhum relatório (exceto pelas atualizações mostradas no + modo verbose) até que os primeiros 50 hosts tivessem + completado.</para> + + <para>Por padrão, o Nmap assume um compromisso para resolver esse + conflito. Ele começa com um tamanho de grupo pequeno, igual a + cinco, para que os primeiros resultados venham rápido, e então + aumenta o tamanho até que chegue em 1024. O número padrão exato + depende das opções fornecidas. Por questões de eficiência, o Nmap + usa tamanhos de grupo maiores para o UDP ou para scans TCP com + poucas portas.</para> + + <para>Quando o tamanho de grupo máximo é especificado com + <option>--max-hostgroup</option>, o Nmap nunca irá exceder esse + tamanho. Especifique um tamanho mínimo com + <option>--min-hostgroup</option> e o Nmap irá tentar manter o + tamanho dos grupos acima desse nível. O Nmap pode ter que usar + tamanhos menores do que você especificou, se não houverem + hosts-alvo suficientes restantes em uma dada interface, para + completar o mínimo especificado. Ambos podem ser configurados para + manter o tamanho do grupo dentro de uma faixa específica, embora + isso raramente seja desejado.</para> + + <para>O uso primário destas opções é especificar um tamanho de + grupo mínimo grande de forma que o scan completo rode mais + rapidamente. Uma escolha comum é 256 para escanear uma rede em + blocos de tamanho Classe C. Para um scan com muitas portas, + exceder esse número não irá ajudar muito. Para scans com poucos + números de portas, um tamanho de grupo de hosts de 2048 ou mais + pode ser útil.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--min-parallelism <numprobes></option>; + <option>--max-parallelism <numprobes></option> (Ajuste da + paralelização das sondagens)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--min-parallelism</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>--max-parallelism</primary> + </indexterm> + + <para>Estas opções controlam o número total de sondagens que podem + estar pendentes para um grupo de hosts. Elas são usadas para o + escaneamento de portas e para a descoberta de hosts. Por padrão, o + Nmap calcula um paralelismo ideal e constantemente atualizado + baseado no desempenho da rede. Se os pacotes estiverem sendo + descartados, o Nmap reduz o ritmo e libera menos sondagens + pendentes. O número de sondagens ideal aumenta vagarosamente + conforme a rede se mostre mais confiável. Estas opções estabelecem + limites mínimo e máximo nessa variável. Por padrão, o paralelismo + ideal pode cair até 1 se a rede se mostrar não-confiável e subir + até diversas centenas em condições perfeitas.</para> + + <para>O uso mais comum é estabelecer + <option>--min-parallelism</option> em um número maior que 1 para + melhorar a velocidade dos scans de hosts ou redes com desempenho + ruim. Esta é uma opção arriscada para se ficar brincando pois + configurar um valor alto demais pode afetar a precisão. Configurar + isso também reduz a habilidade do Nmap de controlar o paralelismo + dinamicamente baseado nas condições da rede. Um valor igual a dez + pode ser razoável, embora eu só ajuste esse valor como última + alternativa.</para> + + <para>A opção <option>--max-parallelism</option> às vezes é + configurada para evitar que o Nmap envie aos hosts mais do que uma + sondagem por vez. Isso pode ser útil em conjunto com + <option>--scan-delay</option> (discutido mais tarde), embora esta + última normalmente sirva bem ao propósito por si só.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--min-rtt_timeout <tempo></option>, + <option>--max-rtt-timeout <tempo></option>, + <option>--initial-rtt-timeout <tempo></option> (Ajuste de + tempo de expiração (timeouts) das sondagens)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--min-rtt-timeout</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>--max-rtt-timeout</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>--initial-rtt-timeout</primary> + </indexterm> + + <para>O Nmap mantém um valor de tempo de expiração (timeout) de + execução para determinar quanto tempo ele deve esperar por uma + resposta de uma sondagem antes de desistir ou retransmitir essa + sondagem. Isso é calculado com base nos tempos de resposta de + sondagens anteriores. Se a latência da rede se mostrar + significativa e variável, esse tempo de expiração pode subir para + diversos segundos. Ele também começa com um nível conservador + (alto) e pode ficar desse jeito por um tempo, enquanto o Nmap + escaneia hosts não-responsivos.</para> + + <para>Especificar valores <option>--max-rtt-timeout</option> e + <option>--initial-rtt-timeout</option> mais baixos que o padrão + pode reduzir o tempo de scan significativamente. Isso é + particularmente verdadeiro para scans sem ping + (<option>-P0</option>), e para aqueles contra redes bastante + filtradas. Mas não se torne muito agressivo. O scan pode acabar + levando mais tempo se você especificar um valor tão baixo que + muitas sondagens irão expirar o tempo e serem retransmitidas + enquanto a resposta ainda está em trânsito.</para> + + <para>Se todos os hosts estão em uma rede local, 100 milissegundos + é um valor de <option>--max-rtt-timeout</option> razoavelmente + agressivo. Se houver roteamento envolvido, faça um ping de um host + da rede primeiro com o utilitário ICMP ping, ou com um formatador + de pacotes customizados como o hping2, que pode passar por um + firewall mais facilmente. Descubra o tempo máximo de round trip em + dez pacotes, mais ou menos. Coloque o dobro desse valor em + <option>--initial-rtt-timeout</option> e o triplo ou quádruplo + para o <option>--max-rtt-timeout</option>. Normalmente eu não + configuro o rtt máximo abaixo de 100ms, não importa quais os + tempos de ping. Eu também não excedo o valor 1000ms.</para> + + <para><option>--min-rtt-timeout</option> é uma opção raramente + utilizada que poderia ser útil quando uma rede é tão não-confiável + que mesmo o padrão do Nmap é muito agressivo. Considerando que o + Nmap apenas reduz o tempo de expiração para um valor mínimo quando + a rede parece ser confiável, esta necessidade não é comum e + deveria ser reportada à lista de discussão nmap-dev como um + bug.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--max-retries <númerodetentativas></option> + (Especifica o número máximo de retransmissões de sondagens de scan + de portas)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--max-retries</primary> + </indexterm> + + <para>Quando o Nmap não recebe nenhuma resposta a uma sondagem de + escaneamento de portas, isso pode significar que a porta está + filtrada. Ou talvez a sondagem ou a resposta simplesmente se + perdeu na rede. Também é possível que o host-alvo tenha habilitado + uma limitação de tráfego que tenha bloqueado temporariamente a + resposta. Então o Nmap tenta novamente retransmitindo a sondagem + inicial. Se o Nmap perceber que a confiabilidade da rede está + baixa, ele poderá tentar muitas vezes ainda, antes de desistir de + uma porta. Embora isso beneficie a exatidão, isso também aumenta o + tempo de escaneamento. Quando o desempenho é crítico, os + escaneamentos podem ser acelerados através da limitação do número + de retransmissões permitidas. Você pode até especificar + <option>--max-retries 0</option> para evitar qualquer + retransmissão, embora isto seja raramente recomendado.</para> + + <para>O normal (sem nenhum padrão <option>-T</option>) é permitir + dez retransmissões. Se a rede aparentar ser confiável e os + hosts-alvo não estiverem limitando o tráfego, o Nmap normalmente + fará apenas uma retransmissão. Portanto, a maioria dos + escaneamentos de alvos não serão sequer afetados com a redução do + <option>--max-retries</option> para um valor baixo, como por + exemplo três. Tais valores podem acelerar significativamente o + escaneamento de hosts lentos (com limitação de tráfego). Você + normalmente perde alguma informação quando o Nmap desiste das + portas rapidamente, embora isso seja preferível a permitir que o + <option>--host-timeout</option> expire e você perca todas as + informações sobre o alvo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--host-timeout <tempo></option> (Desiste de + hosts-alvo lentos)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--host-timeout</primary> + </indexterm> + + <para>Alguns hosts simplesmente levam tempo + <emphasis>demais</emphasis> para serem escaneados. Isso pode ser + causado por um hardware ou software de rede com fraco desempenho + ou pouco confiável, limitação na taxa dos pacotes ou por um + firewall restritivo. Os poucos hosts mais lentos de todos os hosts + escaneados podem acabar sendo responsáveis pela maior parte do + tempo total gasto com o scan. Às vezes é melhor cortar fora o + prejuízo e pular esses hosts logo no início. Especifique a opção + <option>--host-timeout</option> com o valor máximo de tempo que + você tolera esperar. Eu normalmente especifico <literal + moreinfo="none">30m</literal> para ter certeza de que o Nmap não + gaste mais do que meia hora em um único host. Note que o Nmap pode + estar escaneando outros hosts ao mesmo tempo em que essa meia hora + desse único host está correndo, então não é uma perda de tempo + total. Um host que expira o tempo é pulado. Nenhum resultado de + tabela de portas, detecção de SO ou detecção de versão é mostrado + para esse host.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--scan-delay <tempo></option>; + <option>--max-scan-delay <tempo></option> (Ajusta o atraso + entre sondagens)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--scan-delay</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>--max-scan-delay</primary> + </indexterm> + + <para>Esta opção faz com que o Nmap aguarde um tempo determinado + entre cada sondagem enviada a um dado host. Isto é particularmente + útil no caso de limitação de taxas de transferência. Máquinas + Solaris (entre muitas outras) irão normalmente responder à pacotes + de sondagens de scans UDP com apenas uma mensagem ICMP por + segundo. Qualquer número maior que isso, enviado pelo Nmap, será + um desperdício. Um <option>--scan-delay</option> de <literal + moreinfo="none">1s</literal> irá manter uma taxa de transferência + baixa. O Nmap tenta detectar a limitação de taxa e ajusta o atraso + no scan de acordo, mas não dói especificar explicitamente se você + já sabe qual a taxa que funciona melhor.</para> + + <para>Quando o Nmap ajusta o atraso no scan aumentando para tentar + igualar com a limitação na taxa de transferência, o scan fica + consideravelmente mais lento. A opção + <option>--max-scan-delay</option> especifica o maior atraso que o + Nmap irá permitir. Estabelecer um valor muito baixo pode levar à + uma retransmissão de pacotes inútil e à possíveis portas perdidas, + quando o alvo utiliza limitação rígida de taxa de + transferência.</para> + + <para>Outro uso do <option>--scan-delay</option> é para evitar os + sistemas de prevenção e detecção de intrusão (IDS/IPS) baseados em + limites.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--defeat-rst-ratelimit</option> + </term> + + <listitem> + <indexterm significance="normal"> + <primary>--defeat-rst-ratelimit</primary> + </indexterm> + + <para>Muitos hosts usam há bastante tempo a limitação de taxa de + transferência para reduzir o número de mensagens de erro ICMP + (tais como os erros de porta-inalcançavel) enviados. Alguns + sistemas agora aplicam limitações de taxa similares aos pacotes + RST (reset) que eles geram. Isso pode tornar o Nmap + consideravelmente mais lento pois o obriga a ajustar seu tempo de + forma a refletir essas limitações de taxa. Você pode dizer ao Nmap + para ignorar essas limitações de taxa (para scans de porta como o + Scan SYN que <emphasis>não</emphasis> trata portas que não + respondem como <literal moreinfo="none">abertas</literal>) + especificando <option>--defeat-rst-ratelimit</option>.</para> + + <para>Utilizar esta opção pode reduzir a precisão, pois algumas + portas irão aparecer como não-respondendo porque o Nmap não + esperou tempo suficiente para uma resposta RST com taxa limitada. + No caso de um scan SYN, o "não-respondendo" resulta na porta sendo + rotulada como <literal moreinfo="none">filtrada</literal> ao invés + de no estado <literal moreinfo="none">fechada</literal> que vemos + quando os pacotes RST são recebidos. Esta opção é útil quando você + se importa apenas com as portas abertas e distinguir entre + portas<literal moreinfo="none">fechadas</literal> e <literal + moreinfo="none">filtradas</literal> não vale o tempo extra.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-T + <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane></option> + (Estabelece um padrão de temporização)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--T</primary> + </indexterm> + + <para>Embora os controles de temporização de ajuste fino + discutidos nas seções anteriores sejam poderosos e efetivos, + algumas pessoas os consideram confusos. Ainda mais, escolher os + valores apropriados pode, às vezes, tomar mais tempo do que o + próprio scan que você está tentando otimizar. Por isso, o Nmap + oferece uma aproximação mais simples, com seis padrões de + temporização. Você pode especificá-los com a opção + <option>-T</option> e os números (0 - 5) ou os nomes. Os nomes de + padrões são paranóico (paranoid, 0), furtivo (sneaky, 1), educado + (polite, 2), normal (3), agressivo (agressive, 4) e insano + (insane, 5). Os dois primeiros são para evitar um IDS. O modo + educado (ou polido), diminui o ritmo de escaneamento para usar + menos banda e recursos da máquina alvo. O modo normal é o padrão + e, portanto, <option>-T3</option> não faz nada. O modo agressivo + acelera os scans assumindo que você está em uma rede razoavelmente + rápida e confiável. Finalmente, o modo insano assume que você está + em uma rede extraordinariamente rápida ou está disposto a + sacrificar alguma precisão pela velocidade.</para> + + <para>Esses padrões permitem que o usuário especifique o quão + agressivo desejam ser, ao mesmo tempo que deixam o Nmap escolher + os valores de temporização exatos. Os padrões também fazem ajustes + pequenos na velocidade onde ainda não existem opções para controle + de ajuste fino. Por exemplo, <option>-T4</option> proibe que o + atraso dinâmico de escaneamento exceda 10ms para portas TCP e + <option>-T5</option> corta esse valor para 5 milissegundos. + Padrões podem ser utilizados em conjunto com controles de ajuste + fino e esses controles que você especificar irão ter precedência + sobre o padrão de temporização do parâmetro. Eu recomendo usar + <option>-T4</option> quando escanear redes razoavelmente modernas + e confiáveis. Mantenha essa opção mesmo que você adicione + controles de ajuste fino, de forma que você possa se beneficiar + com as pequenas otimizações extras que ela habilita.</para> + + <para>Se você tiver uma conexão ethernet ou de banda-larga + decente, eu recomendaria sempre utilizar <option>-T4</option>. + Algumas pessoas adoram o <option>-T5</option> embora seja + agressivo demais para o meu gosto. As pessoas às vezes especificam + <option>-T2</option> porque acham que diminui a probabilidade de + travar os hosts ou porque elas se consideram educadas no geral. + Normalmente elas não percebem o quão lento o <option>-T + Polite</option> realmente é. Esses scans podem levar dez vezes + mais tempo que um scan padrão. Travamento de máquinas e problemas + com a banda são raros com as opções de temporização padrão + (<option>-T3</option>) e, portanto, eu normalmente as recomendo + para escaneadores precavidos. Omitir a detecção de versão é bem + mais eficaz do que ficar brincando com os valores de temporização + para reduzir esses problemas.</para> + + <para>Embora o <option>-T0</option> e o <option>-T1</option> + possam ser usados para evitar alertas no IDS, eles irão leva muito + mais tempo para escanear milhares de máquinas ou portas. Para um + scan tão amplo, prefira estabelecer os valores exatos de + temporização que você precisa ao invés de depender dos valores + "engessados" de <option>-T0</option> e + <option>-T1</option>.</para> + + <para>O principal efeito de <option>T0</option> é serializar o + scan de forma que apenas uma porta é escaneada por vez, e então, + aguardar cinco minutos entre o envio de cada sondagem. + <option>T1</option> e <option>T2</option> são similares mas + aguardam apenas 15 segundos e 0,4 segundos, respectivamente, entre + as sondagens. <option>T3</option> é o comportamento padrão do + Nmap, que inclui o paralelismo. <option>T4</option> faz o mesmo + que <option>--max-rtt-timeout 1250 --initial-rtt-timeout 500 + --max-retries 6</option> e estabelece o atraso máximo de scan TCP + em 10 milissegundos. <option>T5</option> faz o mesmo que + <option>--max-rtt-timeout 300 --min-rtt-timeout 50 + --initial-rtt-timeout 250 --max-retries 2 --host-timeout + 15m</option> e estabelece o atraso máximo de scan TCP em + 5ms.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-bypass-firewalls-ids"> + <title>Evitando e enganando o Firewall/IDS</title> + + <para>Muitos pioneiros da Internet vislumbraram uma rede mundial aberta + com um espaço de endereçamento IP universal que permitisse conexões + virtuais entre quaisquer dois nós. Isso permite que os hosts atuem como + verdadeiros semelhantes, servindo e obtendo informações uns dos outros. + As pessoas poderiam acessar seus computadores domésticos do trabalho, + mudando os ajustes do controle de climatização ou abrindo as portas para + convidados. Essa visão de conectividade universal foi sufocada pela + falta de espaço de endereçamento e preocupações com a segurança. No + início dos anos 1990, as empresas começaram a instalar firewalls para o + propósito claro de reduzir a conectividade. Rede enormes foram isoladas + da Internet-sem-fronteiras por proxies de aplicativos, tradução de + endereçamento de rede (network address translation) e filtros de + pacotes. O fluxo irrestrito de informações deu a vez à regulamentação + acirrada de canais de comunicação autorizados e ao conteúdo que neles + trafegam.</para> + + <para>As obstruções de rede, como o firewall, podem tornar o mapeamente + de uma rede extremamente difícil. E isso não vai se tornar mais fácil, + pois sufocar as sondagens casuais é, freqüentemente, o objetivo + principal de se instalar esses dispositivos. Apesar disso, o Nmap + oferece muitas ferramentas para ajudar a entender essas redes complexas, + e para verificar que os filtros estão funcionando como esperado. Ele até + suporta mecanismos para passar por cima de defesas mal implementadas. Um + dos melhores métodos para se entender a postura de segurança de uma rede + é tentar derrubá-la. Pense com a mente de uma pessoa que quer atacá-lo, + e aplique técnicas desta seção contra a sua rede. Lance um scan FTP + bounce, um scan idle, um ataque de fragmentação ou tente "tunelar" + (criar um túnel) através de um de seus próprios proxies.</para> + + <para>Além de restringir a atividade de rede, as empresas estão + monitorando o tráfego cada vez mais, com sistemas de detecção de + intrusão (IDS). Todos os principais IDS vêm com regras designadas para + detectar escaneamentos feitos com o Nmap porque os scans são, às vezes, + precursores de ataques. Muitos desses produtos foram recentemente + metamorfoseados em sistemas de <emphasis>prevenção</emphasis> de + intrusão (IPS) que bloqueiam o tráfego considerado malicioso de forma + ativa. Infelizmente, para administradores de rede e vendedores de IDS, + detectar confiavelmente as más intenções através da análise de dados de + pacotes é um problema difícil. Atacantes com paciência, habilidade e a + ajuda de certas opções do Nmap podem normalmente passar por um IDS sem + serem detectados. Enquanto isso, os administradores devem lidar com um + alto número de resultados do tipo falso-positivo, onde atividades + inocentes são diagnosticadas erroneamente e recebem alertas ou são + bloqueadas.</para> + + <para>De vez em quando, as pessoas sugerem que o Nmap não deveria + oferecer opções que permitam evitar as regras de firewalls ou passar + desapercebidos por IDSs. Elas argumentam que essas características são + tão sujeitas à má-utilização por atacantes quanto são utilizadas por + administradores para aumentar a segurança. O problema com esta lógica é + que esses métodos ainda assim seriam utilizados pelos atacantes, que + encontrariam outras ferramentas ou então acrescentariam essa + funcionalidade no Nmap. Enquanto isso, os administradores achariam muito + mais difícil executar suas tarefas. Instalar apenas servidores FTP + modernos e corrigidos é uma defesa muito melhor do que tentar evitar a + distribuição de ferramentas que implementem o ataque FTP bounce.</para> + + <para>Não existe uma carta mágica (ou opção do Nmap) para detectar e + subverter firewalls e sistemas IDS. É necessário habilidade e + experiência. Um tutorial está além do escopo deste guia de referência, + que apenas lista as opções relevantes e descreve suas funções.</para> + + <variablelist> + <varlistentry> + <term><option>-f</option> (fragmenta os pacotes); + <option>--mtu</option> (usando a MTU especificada)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-f</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>--mtu</primary> + </indexterm> + + <para>A opção <option>-f</option> faz com que o scan solicitado + (incluindo scans usando ping) utilize pequenos pacotes IP + fragmentados. A idéia é dividir o cabeçalho TCP em diversos + pacotes para tornar mais difícil para os filtros de pacotes, os + sistemas de detecção de intrusão, e outros aborrecimentos, + detectar o que você está fazendo. Tenha cuidado com isto! Alguns + programas tem problemas para lidar com estes pequenos pacotes. O + sniffer da velha-guarda chamado Sniffit sofria uma falha de + segmentação assim que recebia o primeiro fragmento. Especifique + esta opção uma vez e o Nmap dividirá os pacotes em 8 bytes ou + menos após o cabeçalho IP. Portanto, um cabeçalho TCP de 20 bytes + seria dividido em 3 pacotes. Dois com oito bytes do cabeçalho TCP + e um com os quatro restantes. É claro que cada fragmento também + tem um cabeçalho IP. Especifique <option>-f</option> novamente + para usar 16 bytes por fragmento (reduzindo o número de + fragmentos). Ou então, você pode especificar o seu próprio tamanho + de quebra com a opção <option>--mtu</option>. Não especifique + também o <option>-f</option> se você usar o + <option>--mtu</option>. A quebra deve ser um múltiplo de 8. Embora + os pacotes fragmentados não passem por filtros de pacotes e + firewalls que enfilerem todos os fragmentos IP, tal como a opção + CONFIG_IP_ALWAYS_DEFRAG do kernel do Linux faz, algumas redes não + aguentam o impacto no desempenho que isso causa, deixando a opção + desabilitada. Outros não conseguem habilitar isso porque os + fragmentos podem seguir por rotas diferentes na rede. Alguns + sistemas de origem desfragmentam pacotes de saída no kernel. O + Linux e o módulo de reastreamento de conexão do iptables é um + exemplo desse tipo. Faça um scan enquanto executa um sniffer como + o Ethereal para ter a certeza de que pacotes enviados estão + fragmentados. Se o SO do seu host estiver causando problemas, + tente a opção <option>--send-eth</option> para passar por cima da + camada IP e enviar frames ethernet em estado bruto.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-D <chamariz1 [,chamariz2][,ME],...></option> + (Disfarça um scan usando chamarizes)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-D</primary> + </indexterm> + + <para>Faz com que um scan com chamarizes seja executado, o que + parece ao host remoto que, o(s) host(s) que você especificou como + chamarizes também estejam escaneando a rede-alvo. Com isso, o IDS + poderá reportar 5 a 10 scans de portas de endereços IP únicos, mas + não saberá qual IP estava realmente escaneando e qual era um + chamariz inocente. Embora isso possa ser desvendado através de + rastreamento de caminho de roteador, descarte de respostas + (response-dropping) e outros mecanismos ativos, normalmente é uma + técnica eficaz para esconder o seu endereço IP.</para> + + <para>Separe cada host-chamariz com vírgulas, e você pode + opcionalmente usar <literal>ME</literal> como um dos chamarizes + para representar a posição do seu endereço IP real. Se você + colocar <literal>ME</literal> na 6a. posição ou acima, alguns + detectores de scan de portas comuns (como o excelente scanlogd da + Solar Designer) pouco provavelmente irão mostrar o seu endereço + IP. Se você não utilizar o <literal>ME</literal>, o nmap irá + colocá-lo em uma posição aleatória.</para> + + <para>Observe que os hosts que você utilizar como chamarizes devem + estar ativos ou você poderá, acidentamente, inundar com SYN os + seus alvos. Também será bastante fácil determinar qual é o host + que está escaneando se houver apenas um host realmente ativo na + rede. Você pode preferir usar endereços IP ao invés de nomes (de + forma que as redes chamarizes não vejam você em seus logs dos + servidores de nomes).</para> + + <para>Chamarizes são utilizados tanto no scan com ping inicial + (usando ICMP, SYN, ACK ou qualquer outro), como também durante a + fase real de escaneamento de portas. Chamarizes também são usados + durante a detecção de SO remoto (<option>-O</option>). Chamarizes + não funcionam com a detecção de versão ou com o scan TCP + connect.</para> + + <para>Vale a pena observar que usar chamarizes demais pode deixar + seu scan lento e potencialmente até torná-lo menos preciso. Outra + coisa, alguns provedores de internet (ISP) irão filtrar os seus + pacotes disfarçados, mas muitos não restringem pacotes IP + disfarçados.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-S <Endereço_IP></option> (Disfarça o endereço + de origem)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-S</primary> + </indexterm> + + <para>Em algumas circunstâncias, o Nmap pode não conseguir + determinar o seu endereço de origem (o Nmap irá dizer se for esse + o caso). Nesta situação, use o <option>-S</option> com o endereço + IP da interface que você deseja utilizar para enviar os + pacotes.</para> + + <para>Outro uso possível para esta flag é para disfarçar o scan e + fazer com que os alvos achem que <emphasis>alguma outra + pessoa</emphasis> está escaneando-as. Imagine uma empresa que está + constantemente sofrendo scan de portas de um concorrente! A opção + <option>-e</option> normalmente seria requerida para este tipo de + uso e <option>-P0</option> seria recomendável.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-e <interface></option> (Usa a interface + especificada)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-e</primary> + </indexterm> + + <para>Diz ao Nmap qual interface deve ser utilizada para enviar e + receber pacotes. O Nmap deveria ser capaz de detectar isto + automaticamente, mas ele informará se não conseguir.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--source-port <númerodaporta>;</option> + <option>-g <númerodaporta></option> (Disfarça o número de + porta de origem)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--source-port</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>--g</primary> + </indexterm> + + <para>Um erro de configuração surpreendentemente comum é confiar + no tráfego com base apenas no número da porta de origem. É fácil + entender como isso acontece. Um administrador configura um + firewall novinho em folha, só para ser inundado com queixas de + usuários ingratos cujas aplicações param de funcionar. Em + particular, o DNS pode parar de funcionar porque as respostas DNS + UDP de servidores externos não conseguem mais entrar na rede. O + FTP é outro exemplo comum. Em tranferências FTP ativas, o servidor + remoto tenta estabelecer uma conexão de volta com o cliente para + poder transferir o arquivo solicitado.</para> + + <para>Soluções seguras para esses problemas existem, + freqüentemente na forma de proxies no nível da aplicação ou + módulos de firewall para análise de protocolo. Infelizmente também + há soluções mais fáceis e inseguras. Observando que as respostas + DNS chegam pela porta 53 e o FTP ativo pela porta 20, muitos + administradores caem na armadilha de apenas permitir tráfego vindo + dessas portas. Eles normalmente assumem que nenhum atacante irá + notar e explorar essas brechas no firewall. Em outros casos, os + administradores consideram isso uma medida provisória de curto + prazo até que eles possam implementar uma solução mais segura. + Então, eles normalmente se esquecem de fazer as atualizações de + segurança.</para> + + <para>Administradores de rede sobrecarregados não são os únicos a + caírem nessa armadilha. Diversos produtos foram empacotados com + essas regras inseguras. Mesmo a Microsoft é culpada. Os filtros + IPsec que vieram com o Windows 2000 e com o Windows XP contém uma + regra implícita que permite todo o tráfego TCP ou UDP da porta 88 + (Kerberos). Em outro caso bastante conhecido, versões do firewall + pessoal Zone Alarm, até a versão 2.1.25, permitiam qualquer pacote + UDP entrante com a porta de origem 53 (DNS) ou 67 (DHCP).</para> + + <para>O Nmap oferece as opções <option>-g</option> e + <option>--source-port</option> (elas são equivalentes) para + explorar essas fraquezas. Apenas forneça um número de porta e o + Nmap irá enviar pacotes dessa porta onde for possível. O Nmap + utiliza números de porta diferentes para que certos testes de + detecção de SO funcionem direito, e as requisições DNS ignoram a + flag <option>--source-port</option> porque o Nmap confia nas + bibliotecas de sistema para lidar com isso. A maioria dos scans + TCP, incluindo o scan SYN, suportam a opção completamente, assim + como o scan UDP.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--data-length <número></option> (Acrescenta + dados aleatórios nos pacotes enviados)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--data-length</primary> + </indexterm> + + <para>Normalmente o Nmap envia pacotes minimalistas contendo + apenas o cabeçalho. Dessa forma os pacotes TCP têm normalmente 40 + bytes e os echo requests ICMP tem só 28. Esta opção faz com que o + Nmap acrescente o número informado de bytes aleatórios na maioria + dos pacotes que envia. Os pacotes de detecção de SO + (<option>-O</option>) não são afetados, pois a precisão exige + consistência das sondagens, mas a maioria dos pacotes de ping e + scan de portas funcionam assim. Isso atrasa um pouco as coisas, + mas pode tornar um scan ligeiramente menos chamativo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--ttl <valor></option> (Establece o valor do + campo time-to-live)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--ttl</primary> + </indexterm> + + <para>Estabelece que o campo tempo-de-vida (time-to-live) dos + pacotes enviados terá o valor informado.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--randomize-hosts</option> (Torna aleatória a ordem + dos hosts-alvo)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--randomize-hosts</primary> + </indexterm> + + <para>Informa ao Nmap que ele deve embaralhar cada grupo de, no + máximo, 8096 hosts antes de escaneá-los. Isso torna os scans menos + óbvios a vários sistemas de monitoramento de rede, especialmente + quando você combina isso com as opções de temporização lentas. Se + você deseja fazer isso em grupos maiores, aumente o PING_GROUP_SZ + no <filename>nmap.h</filename> e recompile. Uma solução + alternativa é gerar uma lista de endereços IP-alvos com um scan de + lista (<option>-sL -n -oN + <replaceable>nomedoarquivo</replaceable></option>), embaralhar a + lista com um script Perl e então fornecer a lista completa para o + Nmap com <option>-iL</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--spoof-mac <endereço mac, prefixo, ou nome do + fabricante></option> (Disfarça o endereço MAC)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--spoof-mac</primary> + </indexterm> + + <para>Solicita ao Nmap que utilize o endereço MAC informado para + todos os frames ethernet em estado bruto (raw) que ele enviar. + Esta opção implica em <option>--send-eth</option> para assegurar + que o Nmap realmente envie pacotes no nível ethernet. O MAC + fornecido pode assumir diversos formatos. Se for apenas a string + <quote>0</quote>, o Nmap irá escolher um MAC completamente + aleatório para a sessão. Se a string informada for um número par + de dígitos hexa (com os pares opcionalmente separados por dois + pontos), o Nmap irá usa-la como o MAC. Se menos do que 12 dígitos + hexa forem informados, o Nmap preenche o restante dos 6 bytes com + valores aleatórios. Se o argumento não for um 0 ou uma string + hexa, o Nmap irá procurar no + <filename>nmap-mac-prefixes</filename> para encontrar o nome de um + fabricante contendo a string informada (não é sensível a + maiúsculas ou minúsculas). Se encontrar, o Nmap usa o OUI (prefixo + de 3 bytes) do fabricante e preenche os 3 bytes restantes + aleatoriamente. Exemplos de argumentos + <option>--spoof-mac</option> válidos são <literal>Apple</literal>, + <literal>0</literal>, <literal>01:02:03:04:05:06</literal>, + <literal>deadbeefcafe</literal>, <literal>0020F2</literal> e + <literal>Cisco</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--badsum</option> (Send packets with bogus TCP/UDP + checksums)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--badsum</primary> + </indexterm> + + <para>Solicita ao Nmap que utilize uma soma de verificação + (checksum) TCP ou UDP inválida para os pacotes enviados aos hosts. + Uma vez que virtualmente todos as pilhas (stack) IP do host irão + rejeitar esses pacotes, quaisquer respostas recebidas são + provavelmente vindas de um firewall ou IDS que nem se incomodou em + verificar a soma de verificação. Para mais detalhes desta técnica, + veja <ulink + url="https://nmap.org/p60-12.txt" /></para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-output"> + <title>Saída (Output)</title> + + <para>Qualquer ferramenta de segurança só é útil se a saída que ela gera + também o for. Testes e algoritmos complexos são de pouco valor se não + forem apresentados de uma forma organizada e compreensível. Dado o + número de formas que o Nmap é utilizado pelas pessoas e por outros + softwares, nenhum formato irá agradar a todos. Então o Nmap oferece + diversos formatos, incluindo o modo interativo para humanos lerem + diretamente e o XML para fácil interpretação por um software.</para> + + <para>Além de oferecer diversos formatos de saída, o Nmap fornece opções + para controlar a verbosidade da saída, bem como das mensagens de + depuração. Os tipos de saída podem ser enviados para a saída padrão + (standard output) ou para arquivos, o qual o Nmap pode acrescentar ou + então sobrescrever. Arquivos de saída também podem ser utilizados para + se retomar scans abortados.</para> + + <para>O Nmap torna a saída disponível em cinco formatos diferentes. O + padrão é chamado de <literal>saída interativa (interactive + output)</literal>, e é enviada para a saída padrão (stdout). Há também a + <literal>saída normal (normal output)</literal>, que é similar à + <literal>interativa</literal> exceto pelo fato de mostrar menos + informações e alertas sobre a execução uma vez que se espera que seja + feita uma análise somente após o scan completar, ao invés de + interativamente.</para> + + <para>A saída XML é um dos tipos de saída mais importantes pois permite + a conversão para HTML, é facilmente analisada por programas como a + interface gráfica do Nmap, ou pode ser importada em banco de + dados.</para> + + <para>Os dois tipos restantes de saída são a simples <literal>saída para + o grep (grepable output)</literal> que inclui a maioria das informações + de um host-alvo em uma única linha e a <literal>s4íd4 sCRiPt KiDDi3 + (sCRiPt KiDDi3 0utPUt)</literal> para usuários que se consideram 1r4d0z + (|<-r4d).</para> + + <para>Embora a saída interativa seja a padrão e não tenha associada + nenhuma opção de linha de comando, as outras quatro opções de formato + utilizam a mesma sintaxe. Elas recebem um argumento, que é o nome do + arquivo onde os resultados devem ser armazenados. Formatos múltiplos + podem ser especificados, mas cada formato só pode ser especificado uma + vez. Por exemplo, você pode querer armazenar a saída normal para seu uso + enquanto grava a saída XML do mesmo scan para análise utilizando + programas. Você pode fazer isso com as opções <option>-oX myscan.xml -oN + myscan.nmap</option>. Embora este capítulo use nomes simples como + <literal>myscan.xml</literal> por uma questão de brevidade, nomes mais + descritivos normalmente são recomendados. Os nomes escolhidos são uma + questão de preferência pessoal, embora eu use nomes longos que + incorporam a data do scan e uma palavra ou duas que descrevam o scan, + colocados em um diretório com o nome da empresa que eu estou + escaneando.</para> + + <para>Mesmo que essas opções gravem os resultados em arquivos, o Nmap + ainda assim mostra a saída interativa na stdout como de costume. Por + exemplo, o comando <command>nmap -oX myscan.xml target</command> grava + em XML no <filename>myscan.xml</filename> e enche a saída padrão com os + mesmos resultados interativos que teria mostrado se a opção + <option>-oX</option> não tivesse sido especificada. Você pode mudar isso + passando um caracter hífen como argumento de um dos tipos de formato. + Isso faz com que o Nmap desative a saída interativa e apenas grave os + resultados no formato que você especificou para a saída padrão. Dessa + forma, o comando <command>nmap -oX - target</command> irá enviar apenas + a saída XML para a stdout. Erros sérios ainda podem ser mostrados na + saída padrão de erros, stderr.</para> + + <para>Ao contrário de alguns argumentos do Nmap, o espaço em branco + entre a flag da opção (como a <option>-oX</option>) e o nome do arquivo + ou hífen é obrigatório. Se você omitir as flags e informar argumentos + como <option>-oG-</option> ou <option>-oXscan.xml</option>, uma + característica de compatibilidade retroativa do Nmap irá causar a + criação de arquivos de saída do tipo <emphasis>normal format</emphasis> + chamados <filename>G-</filename> e <filename>Xscan.xml</filename> + respectivamente.</para> + + <para>O Nmap também oferece opções para controlar a verbosidade do scan + e para acrescentar informações nos arquivos de saída, ao invés de + sobrepor. Todas essas opções estão descritas abaixo.</para> + + <variablelist> + <title>Formatos de Saída do Nmap</title> + + <varlistentry> + <term><option>-oN <especificaçãodearquivo></option> (Saída + normal)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-oN</primary> + </indexterm> + + <para>Solicita que a <literal>saída normal (normal + output)</literal> seja direcionada para o arquivo informado. + Conforme discutido acima, é um pouco diferente da <literal>saída + interativa (interactive output)</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oX <especificaçãodearquivo></option> (Saída em + XML)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-oX</primary> + </indexterm> + + <para>Solicita que a <literal>saída em XML (XML output)</literal> + seja direcionada para o arquivo informado. O Nmap inclui uma + definição do tipo de documento (document type definition, DTD) que + permite que os analisadores (parsers) XML validem a saída em XML + do Nmap. Embora seja primeiramente voltada para ser usada por + programas, também pode ajudar os humanos a interpretar a saída em + XML do Nmap. A DTD define os elementos válidos do formato, e + geralmente enumera os atributos e valores que eles podem receber. + A última versão está sempre disponível em <ulink + url="https://nmap.org/data/nmap.dtd" />.</para> + + <para>O XML oferece um formato estável que é facilmente + interpretado por software. Interpretadores (parsers) XML gratuitos + estão disponível para as principais linguagens de computador, + incluindo C/C++, Perl, Python e Java. As pessoas até já escreveram + extensões para a maioria dessas linguagens para manipular a saída + e a execução especificamente do Nmap. Exemplos são o <ulink + url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> + e o <ulink url="http://www.nmapparser.com">Nmap::Parser</ulink> em + Perl CPAN. Em quase todos os casos em que uma aplicação + não-trivial faz interface com o Nmap, o XML é o formato + preferido.</para> + + <para>A saída XML faz referência à uma folha de estilo que pode + ser usada para formatar os resultados em HTML. A forma mais fácil + de se utilizar isso é simplesmente carregar a saída XML em um + navegador web como o Firefox ou o IE. Por padrão, isso só irá + funcionar na máquina onde você rodou o Nmap (ou em uma máquina + similarmente configurada) devido ao caminho (path) do sistema de + arquivos (filesystem) gravado de forma inalterável do + <filename>nmap.xsl</filename>. Utilize a opção + <option>--webxml</option> ou <option>--stylesheet</option> para + criar arquivos XML portáveis que podem ser interpretados como um + HTML em qualquer máquina conectada à web.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oS <especificaçãodearquivo></option> (S4íd4 + ScRipT KIdd|3)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-oS</primary> + </indexterm> + + <para>A saída script kiddie é como a saída interativa, com a + diferença de ser pós-processada para atender melhor aos "hackers + de elite" (l33t HaXXorZ) que antigamente rejeitavam o Nmap devido + ao uso consistente de maiúsculas e minúsculas e a grafia correta. + Pessoas sem senso de humor devem observar que esta opção serve + para se fazer graça dos script kiddies antes de me xingar por + estar, supostamente, <quote>ajudando-os</quote>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oG <especificaçãodearquivo></option> (Saída + para o grep)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-oG</primary> + </indexterm> + + <para>Este formato de saída é mencionado por último porque está + deprecado. O formato de saída XML é muito mais poderoso e é + bastante adequado para usuário avançados. O XML é um padrão para o + qual existem dezenas de excelentes interpretadores (parsers) + disponíveis, enquanto que a saída para o grep é um quebra-galho + feito por mim. O XML é extensível para suportar novas + características do Nmap conforme elas forem lançadas, por outro + lado, sempre tenho que omitir essas novas características da saída + para o grep por falta de onde colocá-las.</para> + + <para>Apesar disso, a saída para o grep é bastante popular. É um + formato simples que lista cada host em uma linha e pode ser + pesquisado de forma trivial, e interpretado por qualquer + ferramenta padrão do Unix, como o grep, awk, cut, sed, diff, e + Perl. Em mesmo uso-a para testes rápidos feitos na linha de + comando. Descobrir todos os hosts com a porta ssh aberta ou que + estão rodando o Solaris requer apenas um simples grep para + identificá-los, concatenado via pipe a um comando awk ou cut para + mostrar os campos desejados.</para> + + <para>A saída para o grep consiste de comentários (linhas + começadas com o símbolo #) e linhas-alvo. Uma linha-alvo inclui + uma combinação de 16 campos rotulados, separados por tab e + seguidos por dois-pontos. Os campos são <literal>Host</literal>, + <literal>Portas (Ports)</literal>,<literal>Protocolos + (Protocols)</literal>, <literal>Estado Ignorado (Ignored + State)</literal>, <literal>SO (OS)</literal>, <literal>Índice de + Seqüência (Seq Index)</literal>, <literal>IPID</literal> e + <literal>Estado (Status)</literal>.</para> + + <para>O campo mais importante é, normalmente, <literal>Portas + (Ports)</literal>, que fornece detalhes de cada porta + interessante. É uma lista com a relação de portas, separada por + vírgula. Cada porta representa uma porta interessante, e tem o + formato de sete sub-campos separados por barra (/). Esses + sub-campos são: <literal>Número da Porta (Port number)</literal>, + <literal>Estado (State)</literal>, <literal>Protocolo + (Protocol)</literal>, <literal>Proprietário (Owner)</literal>, + <literal>Serviço (Service)</literal>, <literal>informação sobre o + SunRPC (SunRPC info)</literal> e <literal>informação sobre a + Versão (Version info)</literal>.</para> + + <para>Assim como na saída XML, esta página man não permite que se + documente o formato todo. Uma visão mais detalhada sobre o formato + de saída para o grep do Nmap está disponível em <ulink + url="http://www.unspecific.com/nmap-oG-output" />.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oA <nome-base></option> (Saída para todos os + formato)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-oA</primary> + </indexterm> + + <para>Para facilitar, você pode especificar <option>-oA + <replaceable>nome-base</replaceable></option> para armazenar os + resultados de scan nos formatos normal, XML e para o grep de uma + vez. Eles são armazenados nos arquivos + <replaceable>nome-base</replaceable>.nmap, + <replaceable>nome-base</replaceable>.xml e + <replaceable>nome-base</replaceable>.gnmap, respectivamente. Como + na maioria dos programas, você pode colocar como prefixo aos nomes + de arquivos o caminho de um diretório, como + <filename>~/nmaplogs/foocorp/</filename> no UNIX ou + <filename>c:\hacking\sco</filename> no Windows.</para> + </listitem> + </varlistentry> + </variablelist> + + <variablelist> + <title>Opções de Verbosidade e depuração (debugging)</title> + + <varlistentry> + <term><option>-v</option> (Aumenta o nível de verbosidade)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-v</primary> + </indexterm> + + <para>Aumenta o nível de verbosidade, fazendo com que o Nmap + mostre mais informações sobre o progresso do scan. Portas abertas + são mostradas conforme são encontradas, e estimativas de tempo + para o término são fornecidas quando o Nmap acha que um scan irá + demorar mais do que alguns minutos. Use duas vezes para uma + verbosidade ainda maior. Usar mais do que duas vezes não surte + nenhum efeito.</para> + + <para>A maioria das alterações afetam apenas a saída interativa, e + algumas também afetam a saída normal e script kiddie. Os outros + tipos de saída foram feitos para serem processados por máquinas, + então o Nmap pode dar informações bastante detalhadas por padrão + nesse formatos sem cansarem o usuário humano. Entretanto, existem + algumas mudanças nos outros modos onde o tamanho da saída pode ser + reduzido substancialmente pela omissão de alguns detalhes. Por + exemplo, uma linha de comentário, na saída para o grep, que + fornece uma lista de todas as portas escaneadas só é mostrada no + modo verboso porque ela pode ser bem longa.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-d [nível]</option> (Aumenta ou estabelece o nível de + depuração)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-d</primary> + </indexterm> + + <para>Se mesmo o modo verboso não fornece dados suficientes para + você, o modo de depuração está disponível para inundá-lo com muito + mais! Assim como na opção de verbosidade (<option>-v</option>), a + depuração é habilitada com uma flag na linha de comando + (<option>-d</option>) e o nível de depuração pode ser aumentado + especificando-a múltiplas vezes. Alternativamente, você pode + estabelecer o nível de depuração fornecendo um argumento para o + <option>-d</option>. Por exemplo, <option>-d9</option> estabelece + o nível nove. Esse é efetivamente o nível mais alto e irá produzir + milhares de linhas, a menos que você execute um scan muito simples + com poucas portas e alvos.</para> + + <para>A saída da depuração é útil quando há a suspeita de um bug + no Nmap, ou se você simplesmente está confuso com o que o Nmap + está fazendo e por quê. Como esta opção é, na maioria das vezes, + destinada a desenvolvedores, a linhas de depuração nem sempre são + auto-explicativas. Você pode obter algo como: + <computeroutput>Timeout vals: srtt: -1 rttvar: -1 to: 1000000 + delta 14987 ==> srtt: 14987 rttvar: 14987 to: + 100000</computeroutput>. Se você não entender uma linha, suas + únicas opções serão ignorá-la, procurar no código-fonte ou pedir + ajuda na lista de discussão de desenvolvimento (nmap-dev). Algumas + linhas são auto-explicativas, mas as mensagens ficam cada vez mais + obscuras conforme o nível de depuração é aumentado.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--packet-trace</option> (Rastreia pacotes e dados + enviados e recebidos)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--packet-trace</primary> + </indexterm> + + <para>Faz com que o Nmap mostre um sumário de todos os pacotes + enviados ou recebidos. Isto é bastante usado para depuração, mas + também é uma forma valiosa para novos usuário entenderem + exatamente o que o Nmap está fazendo por baixo dos panos. Para + evitar mostrar milhares de linhas, você pode querer especificar um + número limitado de portas a escanear, como + <option>-p20-30</option>. Se tudo o que lhe interessa for saber o + que se passa no subsistema de detecção de versão, use o + <option>--version-trace</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--iflist</option> (Lista as interfaces e rotas)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--iflist</primary> + </indexterm> + + <para>Mostra a lista de interfaces e rotas do sistema conforme + detectados pelo Nmap. Isto é útil para depurar problemas de + roteamento ou erro de caracterização de dispositivo (como, por + exemplo, no caso do Nmap tratar uma conexão PPP como se fosse uma + Ethernet).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--log-errors</option> (Registrar os erros/avisos em um + arquivo de sáida em modo normal)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--log-errors</primary> + </indexterm> + + <para>Avisos e erros mostrados pelo Nmap normalmente aparecem + apenas na tela (saída interativa), deixando quaisquer arquivos de + saída com formato normal especificados íntegros. Mas quando você + quer realmente ver essas mensagens no arquivo de saída que você + especificou, inclua esta opção. É útil quando você não está vendo + a saída interativa ou está tentando depurar um problema. As + mensagens continuarão a aparecer no modo interativo. Isto não irá + funcionar para a maioria dos erros ligados à argumento inválidos + na linha de comando, ocorre que o Nmap pode ainda não ter + inicializado seus arquivos de saída ainda. Somado a isso, algumas + mensagens de erro/aviso do Nmap utilizam um sistema diferente que + ainda não suporta esta opção. Uma alternativa ao uso desta opção é + redirecionar a saída interativa (incluindo o fluxo de erros + padrão) para um arquivo. Embora a maioria dos shells Unix tornem + essa uma alternativa fácil, pode ser difícil fazer o mesmo no + Windows.</para> + </listitem> + </varlistentry> + </variablelist> + + <variablelist> + <title>Opções diversas (miscellaneous) de saída</title> + + <varlistentry> + <term><option>--append-output</option> (Acrescenta no arquivo de + saída, ao invés de sobrepor)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--append-output</primary> + </indexterm> + + <para>Quando você especifica um nome de arquivo na flag de formato + de saída, como <option>-oX</option> ou <option>-oN</option>, esse + arquivo é sobreposto por padrão. Se você preferir manter o + conteúdo existente do arquivo e acrescentar os novos resultados, + especifique a opção <option>--append-output</option>. Todos os + arquivos de saída especificados na execução do Nmap terão os + resultados acrescidos ao invés de sobrepostos. Isso não funciona + bem com os dados de scan para XML (<option>-oX</option>) pois o + arquivo resultante não será adequadamente interpretado até que + você conserte manualmente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--resume <nomedoarquivo></option> (Retoma um + scan abortado)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--resume</primary> + </indexterm> + + <para>Algumas execuções extensas do Nmap podem levar muito tempo + -- na ordem de dias. Tais scans nem sempre rodam até o fim. Podem + haver restrições que impeçam que o Nmap seja executado durante o + horário de expediente, a rede pode cair, a máquina onde o Nmap + está rodando pode sofrer um reboot planejado ou não, ou o Nmap + pode simplesmente travar. O administrador que está rodando o Nmap + poderia cancelá-lo por qualquer outra razão, bastando teclar + <keycap>ctrl-C</keycap>. Reiniciar um scan inteiro do começo pode + ser indesejável. Felizmente, se forem mantidas logs normal + (<option>-oN</option>) ou para o grep (<option>-oG</option>), o + usuário pode pedir que o Nmap continue o escaneamento do alvo que + estava verificando quando a execução foi interrompida. + Simplesmente especifique a opção <option>--resume</option> e + informe o arquivo da saída normal/para o grep como argumento. + Nenhum outro argumento é permitido, pois o Nmap analisa o arquivo + de saída e usa os mesmos argumentos especificados anteriormente. + Basta chamar o Nmap com <command>nmap --resume + <replaceable>nomedoarquivodelog</replaceable></command>. O Nmap + irá acrescentar os novos resultados ao arquivo de dados + especificado na execução anterior. Essa retomada de execução não + suporta o formato de saída XML porque combinar as duas execuções + em um arquivo XML válido seria difícil.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--stylesheet <caminho ou URL></option> (Informa + a folha de estilo XSL usada para transformar a saída XML)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--stylesheet</primary> + </indexterm> + + <para>O Nmap vem com uma folha de estilo (stylesheet) chamada + <filename>nmap.xsl</filename> para visualizar ou traduzir a saída + XML em HTML. A saída XML inclui uma diretiva + <literal>xml-stylesheet</literal> que mostra para o + <filename>nmap.xml</filename> onde ele foi inicialmente instalado + pelo Nmap (ou para o diretório corrente no Windows). Simplesmente + carregue a saída XML do Nmap em um navegador moderno e ele deve + conseguir achar o <filename>nmap.xsl</filename> no sistema de + arquivos e utilizá-lo para interpretar os resultados. Se você + deseja utilizar uma folha de estilo diferente, especifique-a como + um argumento para <option>--stylesheet</option>. Você deve + informar o caminho completo ou a URL. Uma chamada comum é + <option>--stylesheet + https://nmap.org/data/nmap.xsl</option>. Isso diz ao + navegador para carregar a versão mais atual da folha de estilo da + Insecure.Org. A opção <option>--webxml</option> faz a mesma coisa + com menos teclas e menor memorização. Carregar o XSL da + Insecure.org torna mais fácil de se ver os resultados em uma + máquina que não tenha o Nmap instalado (e, conseqüentemente o + <filename>nmap.xsl</filename>). Então, a URL é normalmente mais + útil, mas a localização nmap.xsl em um filesystem local é usada + por padrão por questões de privacidade.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--webxml</option> (Carrega a folha de estilo da + Insecure.Org)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--webxml</primary> + </indexterm> + + <para>Esta opção conveniente é apenas um apelido para + <option>--stylesheet + https://nmap.org/data/nmap.xsl</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--no-stylesheet</option> (Omite do XML a declaração da + folha de estilo XSL)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--no-stylesheet</primary> + </indexterm> + + <para>Especifique esta opção para evitar que o Nmap associe + qualquer folha de estilo XSL à saída XML. A diretiva + <literal>xml-stylesheet</literal> é omitida.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-misc-options"> + <title>Opções Diversas (Miscelânea)</title> + + <para>Esta seção descreve algumas opções importantes (e + não-tão-importantes) que realmente não couberam em nenhum outro + lugar.</para> + + <variablelist> + <varlistentry> + <term><option>-6</option> (Habilita o escaneamento IPv6)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-6</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>IPv6</primary> + </indexterm> + + <para>Desde 2002, o Nmap oferece suporte a IPv6 na maioria de suas + opções mais populares. Em particular, o scan com ping (apenas + TCP), o scan com connect e a detecção de versão, todo suportam + IPv6. A sintaxe de comando é a mesma de sempre, exceto que você + irá também adicionar a opção <option>-6</option>. É claro que você + deve usar a sintaxe IPv6 se especificar um endereço no lugar de um + nome de host. Um endereço pode se parecer com + <literal>3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, + portanto os nomes de host são recomendados. A saída é a mesma de + sempre, com o endereço IPv6 na linha <quote>portas + interessantes</quote> sendo a única dica visível de se tratar + realmente de IPv6.</para> + + <para>Muito embora o IPv6 não ter, exatamente, se alastrado pelo + mundo, seu uso se torna mais significativo em alguns países + (normalmente asiáticos) e a maioria dos sistemas operacionais + modernos passam a suportá-lo. Para usar o Nmap com o IPv6, tanto a + origem, quanto o alvo de seu scan devem estar configurados para + IPv6. Se o seu provedor (ISP) (como a maioria) não aloca endereços + IPv6 para você, alguns intermediários, que fazem o túnel + gratuitamente, estão amplamente disponíveis e funcionam bem com o + Nmap. Um dos melhores é disponibilizado pela BT Exact. + Também tenho utilizado um, + fornecido pela Hurricane Electric em <ulink + url="http://ipv6tb.he.net/" />. Túneis 6para4 são outra abordagem + gratuita e popular.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-A</option> (Opções agressivas de scan)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-A</primary> + </indexterm> + + <para>Esta opção habilita opções adicionais avançadas e + agressivas. Ainda não decidi exatamente qual das duas é a certa. + Atualmente ela habilita a Detecção de SO (<option>-O</option>) e o + escaneamento de versão (<option>-sV</option>). Mais + características poderão ser adicionadas no futuro. A questão é + habilitar um conjunto completo de opções de escaneamento sem que + as pessoas tenham que se lembrar de um grupo grande de flags. Esta + opção apenas habilita as funções e não as opções de temporização + (como a <option>-T4</option>) ou opções de verbosidade + (<option>-v</option>) que você pode também querer.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--datadir <nomedodiretório></option> (Especifica + a localização dos arquivos de dados do scan)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--datadir</primary> + </indexterm> + + <para>O Nmap obtém alguns dados especiais, em tempo de execução, + em arquivos chamados <filename>nmap-service-probes</filename>, + <filename>nmap-services</filename>, + <filename>nmap-protocols</filename>, + <filename>nmap-rpc</filename>, + <filename>nmap-mac-prefixes</filename> e + <filename>nmap-os-fingerprints</filename>. O Nmap primeiramente + busca esses arquivos em um diretório especificado na opção + <option>--datadir</option> (se houver). Qualque arquivo que não + seja encontrado lá é procurado no diretório especificado pela + variável de ambiente NMAPDIR. A seguir vem o + <filename>~/.nmap</filename> para se achar os UIDs reais e + efetivos (apenas em sistemas POSIX) ou a localização do executável + do Nmap (apenas Win32) e, então, a localização definida na + compilação, que pode ser + <filename>/usr/local/share/nmap</filename> ou + <filename>/usr/share/nmap</filename> . Como último recurso, o Nmap + irá procurar no diretório corrente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--send-eth</option> (Use a transmissão pela ethernet + em estado bruto)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--send-eth</primary> + </indexterm> + + <para>Solicita ao Nmap para que envie pacotes na ethernet (data + link) em estado bruto (raw) ao invés de usar a camada de nível + mais alto IP (rede). Por padrão, o Nmap escolhe o que for melhor + para a plataforma onde está rodando. Soquetes (sockets) em estado + bruto (camada IP) são normalmente mais eficientes em máquinas + UNIX, enquanto que os frames ethernet são necessários nas + operações do Windows, uma vez que a Microsoft desabilitou o + suporte a soquetes em estado bruto. O Nmap ainda usa pacotes IP em + estado bruto no UNIX, independentemente desta opção, quando não há + outra alternativa (como no caso de conexões não-ethernet).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--send-ip</option> (Envia no nível do IP em estado + bruto)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--send-ip</primary> + </indexterm> + + <para>Pede ao Nmap que envie os pacotes pelos soquetes IP em + estado bruto ao invés de enviar pelo nível mais baixo dos frames + ethernet. É o complemento da opção <option>--send-eth</option> + discutida anteriormente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--privileged</option> (Assume que o usuário é + altamente privilegiado)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--privileged</primary> + </indexterm> + + <para>Informa ao Nmap para simplesmente assumir que ele tem + privilégio suficiente para executar transmissões de soquetes em + estado bruto, farejar (sniff) pacotes e operações similares que + normalmente requerem privilégio de root em sistemas UNIX. Por + padrão, o Nmap se encerra se tal operação é solicitada mas o + geteuid() não é zero. <option>--privileged</option> é útil com as + possibilidades oferecidas pelo kernel do Linux, e sistemas + similares, que pode ser configurado para permitir que usuários + não-privilegiados executem scans de pacotes em estado bruto. + Assegure-se de informar esta flag de opção antes de outras flags + de opção que requeiram privilégios (scan SYN, detecção de OS, + etc.). A variável NMAP_PRIVILEGED pode ser configurada como uma + alternativa equivalente de <option>--privileged</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--release-memory</option> (Release memory before + quitting)</term> + + <listitem> + <indexterm significance="normal"> + <primary>--release-memory</primary> + </indexterm> + + <para>Esta opção é útil apenas para depuração de vazamentos de + memória (memory-leak). Ela faz com que o Nmap libere memória + alocada pouco antes de encerrar de forma a tornar os vazamentos de + memória reais mais fáceis de se ver. Normalmente o Nmap pula essa + parte pois o SO faz isso de qualquer forma no encerramento de um + processo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-V</option>; <option>--version</option> (Mostra o + número da versão)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-V</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>--version</primary> + </indexterm> + + <para>Mostra o número da versão do Nmap e sai.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-h</option>; <option>--help</option> (Mostra a página + do sumário de ajuda)</term> + + <listitem> + <indexterm significance="normal"> + <primary>-h</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>--help</primary> + </indexterm> + + <para>Mostra uma pequena tela com as flags de comandos mais + comuns. Executar o nmap sem nenhum argumento faz a mesma + coisa.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-runtime-interaction"> + <title>Interação em Tempo de Execução</title> + + <indexterm significance="normal"> + <primary>Interação em Tempo de Execução</primary> + </indexterm> + + <para>Durante a execução do Nmap, todas as teclas pressionadas são + capturadas. Isso permite que você interaja com o programa sem abortá-lo + ou reiniciá-lo. Algumas teclas especiais irão mudar as opções, enquanto + outras irão mostrar uma mensagem de estado dando informações sobre o + scan. A convenção é que <emphasis>letras minúsculas aumentam</emphasis> + a quantidade de informação e <emphasis>letras maiúsculas + diminuem</emphasis>. Você também pode pressionar + ‘<emphasis>?</emphasis>’ para obter ajuda.</para> + + <variablelist> + <varlistentry> + <term><option>v</option> / <option>V</option></term> + + <listitem> + <para>Aumenta / Diminui a quantidade de informações + (Verbosity)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>d</option> / <option>D</option></term> + + <listitem> + <para>Aumenta / Diminui o Nível de Depuração (Debugging + Level)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>p</option> / <option>P</option></term> + + <listitem> + <para>Habilita / Desabilita o Rastreamento de Pacotes (Packet + Tracing)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>?</option> + </term> + + <listitem> + <para>Mostra uma tela de ajuda da interação em tempo de + execução</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Qualquer outra letra</term> + + <listitem> + <para>Mostra uma mensagem de estado como esta:</para> + + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 + undergoing Service Scan</para> + + <para>Service scan Timing: About 28.00% done; ETC: 16:18 (0:00:15 + remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-examples"> + <title>Exemplos</title> + + <para>Aqui estão alguns exemplos de utilização do Nmap, desde o simple e + rotineiro, até o um pouco mais complexo e esotérico. Alguns endereços IP + reais e nomes de domínio foram utilizados para tornar as coisas mais + concretas. Nesses lugares você deve substituir os endereços/nomes pelos + da <emphasis>sua própria rede</emphasis>. Embora eu não ache que o + escaneamento de portas de outras redes seja, ou deva ser considerado, + ilegal alguns administradores de rede não apreciam o escaneamento + não-solicitado de suas redes e podem reclamar. Obter a permissão + antecipadamente é a melhor opção.</para> + + <para>Para fins de teste, você tem permissão para escanear o host + <literal>scanme.nmap.org</literal>. Esta permissão inclui apenas o + escaneamento via Nmap e não tentativas de explorar vulnerabilidades ou + ataques de negação de serviço (denial of service). Para preservar a + banda, por favor não inicie mais do que uma dúzia de scans contra o host + por dia. Se esse serviço de alvo livre para escaneamento for abusado, + será derrubado e o Nmap irá reportar <computeroutput>Failed to resolve + given hostname/IP: scanme.nmap.org</computeroutput>. Essas permissões + também se aplicam aos hosts <literal>scanme2.nmap.org</literal>, + <literal>scanme3.nmap.org</literal>, e assim por diante, embora esses + hosts ainda não existam.</para> + + <para> + <userinput>nmap -v scanme.nmap.org</userinput> + </para> + + <para>Esta opção escaneia todas as portas TCP reservadas na máquina + <literal>scanme.nmap.org</literal> . A opção <option>-v</option> + habilita o modo verboso (verbose).</para> + + <para> + <userinput>nmap -sS -O scanme.nmap.org/24</userinput> + </para> + + <para>Inicia um scan SYN camuflado contra cada máquina que estiver ativa + das 255 possíveis da rede <quote>classe C</quote> onde o Scanme reside. + Ele também tenta determinar qual o sistema operacional que está rodando + em cada host ativo. Isto requer privilégio de root por causa do scan SYN + e da detecção de SO.</para> + + <para> + <userinput>nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</userinput> + </para> + + <para>Inicia uma enumeração de hosts e um scan TCP na primeira metade de + cada uma das 255 sub-redes de 8 bits possíveis na classe B do espaço de + endereçamento 198.116. Também testa se os sistemas estão executando + sshd, DNS, pop3d, imapd ou a porta 4564. Para cada uma destas portas + encontradas abertas, a detecção de versão é usada para determinar qual + aplicação está executando.</para> + + <para> + <userinput>nmap -v -iR 100000 -P0 -p 80</userinput> + </para> + + <para>Pede ao Nmap para escolher 100.000 hosts de forma aleatória e + escaneá-los procurando por servidores web (porta 80). A enumeração de + hosts é desabilitada com <option>-P0</option> uma vez que enviar + primeiramente um par de sondagens para determinar se um hosts está ativo + é um desperdício quando se está sondando uma porta em cada host + alvo.</para> + + <para> + <userinput>nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</userinput> + </para> + + <para>Este exemplo escaneia 4096 endereços IP buscando por servidores + web (sem usar o ping) e grava a saída nos formatos XML e compatível com + o programa grep.</para> + </refsect1> + + <refsect1 id="man-bugs"> + <title>Bugs</title> + + <para>Como seu autor, o Nmap não é perfeito. Mas você pode ajudar a + torná-lo melhor enviando relatórios de erros (bug reports) ou mesmo + escrevendo correções. Se o Nmap não se comporta da forma que você + espera, primeiro atualize para a versão mais atual disponível em <ulink + url="https://nmap.org/" />. Se o problema persistir, pesquise um + pouco para determinar se o problema já foi descoberto e encaminhado. + Tente procurar no Google pela mensagem de erro ou navegar nos arquivos + da Nmap-dev em <ulink url="https://seclists.org/" />. Se não encontrar + nada, envie uma mensagem com um relatório do erro para + <email>dev@nmap.org</email>. Por favor, inclua tudo o que + souber sobre o problema, bem como a versão do Nmap que você está + executando e em qual versão e sistema operacional você está + rodando-o.</para> + + <para>Correções codificadas para consertar os erros são ainda melhores + que os relatórios de erro. Instruções básicas para a criação de arquivos + de correções com as suas alterações estão disponíveis em <ulink + url="https://nmap.org/data/HACKING" />.</para> + </refsect1> + + <refsect1 id="man-author"> + <title>Autor</title> + + <para>Fyodor <email>fyodor@nmap.org</email> (<ulink + url="https://insecure.org" />)</para> + + <para>Centenas de pessoas fizeram contribuições valiosas para o Nmap ao + longo dos anos. Isso está detalhado no arquivo <filename + moreinfo="none">CHANGELOG</filename> que é distribuído com o Nmap e + também está disponível em <ulink + url="https://nmap.org/changelog.html" />.</para> + </refsect1> + + <refsect1 id="man-legal"> + <title>Avisos Legais</title> + + <refsect2> + <title>Unofficial Translation Disclaimer / Aviso de Tradução + Não-Oficial</title> + + <para>This is an unnofficial translation of the <ulink + url="https://nmap.org/man/man-legal.html">Nmap license + details</ulink> into Portuguese (Brazil). It was not written by + Insecure.Com LLC, and does not legally state the distribution terms + for Nmap -- only the original English text does that. However, we hope + that this translation helps Portuguese (Brazil) speakers understand + the Nmap license better.</para> + + <para>Esta é uma tradução não-oficial dos <ulink + url="https://nmap.org/man/man-legal.html">detalhes do + licenciamento do Nmap</ulink> em português (Brasil). Ela não foi + escrita pela Insecure.Com LLC e não tem poder legal sobre os termos de + distribuição do Nmap -- apenas o texto original em inglês o tem. + Entretanto, esperamos que esta tradução auxilie os falantes de + português (Brasil) a compreender melhor a licença do Nmap.</para> + </refsect2> + + <refsect2 id="nmap-copyright"> + <title>Copyright e Licenciamento do Nmap</title> + + <indexterm significance="normal"> + <primary>copyright</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>licenciamento</primary> + </indexterm> + + <indexterm significance="normal"> + <primary>GNU GPL</primary> + </indexterm> + + <para>O Nmap Security Scanner é (C) 1996-2005 Insecure.Com LLC. O Nmap + também é uma marca registrada de Insecure.Com LLC. Este programa é um + software livre; você pode redistribuí-lo e/ou modificá-lo sob os + termos da Licença Pública Geral GNU (GNU General Public License) + conforme publicado pela Free Software Foundation; Versão 2. Isso + garante o seu direito de usar, modificar e redistribuir este software + sob certas condições. Se você desejar embutir a tecnologia do Nmap em + um software proprietário, poderemos querer vender licenças + alternativas (contate <email>sales@insecure.com</email>). Muitos + vendedores de scanner de segurança já licenciam a tecnologia do Nmap, + tal como a descoberta de hosts, escaneamento de portas, detecção de SO + e detecção de serviços/versões.</para> + + <para>Observe que a GPL impõe restrições importantes em + <quote>trabalhos derivados</quote>, embora ela não forneça uma + definição detalhada desse termo. Para evitar más-interpretações, + consideramos que uma aplicação constitui um <quote>trabalho + derivado</quote>, para o propósito desta licença, se ela se enquadra + em um dos seguintes ítens:</para> + + <itemizedlist> + <listitem> + <para>Integra código fonte do Nmap</para> + </listitem> + + <listitem> + <para>Lê ou inclui arquivos de dados do Nmap que são protegidos + por copyright, tal como o + <filename>nmap-os-fingerprints</filename> ou + <filename>nmap-service-probes</filename>.</para> + </listitem> + + <listitem> + <para>Executa o Nmap e decompõe (parse) os resultados + (diferentemente de uma execução típica de um shell ou aplicações + de menu de execução, que simplesmente mostram a saída em estado + bruto do Nmap e portanto não constituem um trabalho + derivado).</para> + </listitem> + + <listitem> + <para>Integra/inclui/agrega o Nmap em um instalador executável + proprietário, tal como os produzidos pelo InstallShield.</para> + </listitem> + + <listitem> + <para>Estabelece uma ligação (link) com uma biblioteca ou executa + um programa que faz qualquer um dois ítens acima.</para> + </listitem> + </itemizedlist> + + <para>O termo <quote>Nmap</quote> deve ser considerado como contendo + parte ou sendo trabalho derivado do Nmap. Esta lista não é definitiva, + mas deve ser entendida como uma forma de clarear nossa interpretação + de trabalho derivado com alguns exemplos comuns. Estas restrições + apenas se aplicam quando você realmente redistribui o Nmap. Por + exemplo, nada impede que você escreva e venda um front-end + proprietário para o Nmap. Apenas redistribua o seu produto + isoladamente e mostre às pessoas aonde elas podem <ulink + url="https://nmap.org/" />baixar o Nmap.</para> + + <para>Nós não consideramos isso como restrições adicionais à GPL, mas + apenas uma elucidação de como nós interpretamos <quote>trabalhos + derivados</quote> pois elas se aplicam ao nosso produto Nmap + licenciado no formato GPL. Isso é idêntico à forma como Linus Torvalds + anunciou sua interpretação de como os <quote>trabalhos + derivados</quote> se aplicam aos módulos do kernel do Linux. Nossa + interpretação refere-se apenas ao Nmap - não respondemos por qualquer + outro produto GPL.</para> + + <para>Se você tiver qualquer dúvida quanto às restrições do + licenciamento GPL na utilização do Nmap em produtos não-GPL, + ficaríamos felizes em ajudar. Como mencionado acima, também oferecemos + licenças alternativas para a integração do Nmap em aplicações e + dispositivos proprietários. Esses contratos foram vendidos para muitas + empresas de segurança e geralmente incluem uma licença perpétua, bem + como disponibiliza um suporte e atualizações prioritários, e também + nos ajuda financeiramente o desenvolvimento contínuo da tecnologia do + Nmap. Por favor, envie um e-mail para + <email>sales@insecure.com</email> se desejar mais informações.</para> + + <indexterm significance="normal"> + <primary>licença</primary> + + <secondary>Exceção à OpenSSL</secondary> + </indexterm> + + <para>Como uma exceção especial aos termos da GPL, a Insecure.Com LLC + permite que uma ligação (link) do código deste program seja feito com + qualquer versão da biblioteca do OpenSSL que seja distribuída sob uma + licença idêntica àquela listada no arquivo Copying.OpenSSL incluso, e + distribuir combinações de ligação incluindo os dois. Você deve + obedecer à GPL GNU em todos os aspectos para todo o código utilizado + que não seja OpenSSL. Se você modificar este aquivo, você pode + estender esta exceção para a sua versão do arquivo, mas você não é + obrigado a fazer isso.</para> + + <para>Se você recebeu estes arquivos com um acordo de licenciamento + por escrito ou um contrato ditando termos que não sejam diferentes dos + acima, então essa licença alternativa tem precedência sobre estes + comentários.</para> + </refsect2> + + <refsect2 id="man-copyright"> + <title>Licença da Creative Commons para este guia do Nmap</title> + + <para>Este Guia de Referência do Nmap é (C) 2005 da Insecure.Com LLC. + Está aqui colocado sob a versão 2.5 da <ulink + url="http://creativecommons.org/licenses/by/2.5/">Licença de + Atribuição da Creative Commons</ulink>. Isso permite que você + redistribua e modifique o trabalho como desejar, contanto que você + credite a fonte original. Opcionalmente, você pode preferir tratar + este documento sob as mesmas regras de licenciamento do Nmap + (discutido anteriormente).</para> + </refsect2> + + <refsect2 id="source-contrib"> + <title>Disponibilidade de código fonte e contribuições da + comunidade</title> + + <para>O código fonte é fornecido com este software porque acreditamos + que os usuários tem o direito de saber exatamente o que um programa + irá fazer antes de se executá-lo. Isso também permite que você audite + o software procurando por brechas na segurança (nenhuma foi encontrada + até agora).</para> + + <para>O código fonte também permite que você porte o Nmap para novas + plataformas, conserte problemas e adicione novas características. Você + é altamente encorajado a enviar suas alterações para + <email>fyodor@nmap.org</email> para uma possível incorporação na + distribuição principal. Enviar essas alterações para Fyodor ou para + alguém da lista de mensagens de desenvolvimento da Insecure.Org, + pressupõe que você está oferecendo a Fyodor e à Insecure.Com LLC o + direito ilimitado e não-exclusivo para reutilizar, modificar e + re-licenciar o código. O Nmap sempre estará disponível como um Open + Source, mas isto é importante porque a impossibilidade de re-licenciar + o código causou problemas devastadores para outros projetos de + Software Livre (tal como o KDE e o NASM). Nós também re-licenciamos + ocasionalmente o código para terceiros, conforme discutido + anteriormente. Se você deseja especificar condições de licenciamento + especiais das suas contribuições, apenas deixe isso claro quando + enviá-las.</para> + </refsect2> + + <refsect2 id="no-warranty"> + <title>Sem Garantia</title> + + <indexterm significance="normal"> + <primary>garantia</primary> + </indexterm> + + <para>Este programa é distribuído na esperança de que será útil, mas + SEM QUALQUER GARANTIA; sem sequer a garantia implícita de + COMERCIALIZAÇÃO ou ADEQUAÇÃO A QUALQUER PROPÓSITO PARTICULAR. Veja a + Licença Pública Geral GNU para mais detalhes em <ulink + url="http://www.gnu.org/copyleft/gpl.html" />, ou no arquivo COPYING + incluído com o Nmap.</para> + + <para>Também deve ser observado que o Nmap reconhecidamente trava + certas aplicações mal-escritas, a pilha TCP/IP e mesmo alguns sistemas + operacionais. <emphasis remap="B">O Nmap nunca deve ser executado + contra sistemas de missão-crítica</emphasis> a menos que você esteja + preparado para lidar com o serviço fora do ar (downtime). Nós + reconhecemos aqui que o Nmap pode travar os seus sistemas ou redes e + nós renunciamos toda e qualquer responsabilidade por qualquer dano ou + problema que o Nmap possa causar.</para> + </refsect2> + + <refsect2 id="inappropriate-usage"> + <title>Uso inapropriado</title> + + <para>Pelo fato de haver o menor risco de travamento e porque existem + pessoas mal-intencionadas (black hats) que gostam de usar o Nmap para + reconhecimento antes de atacar um sistema, existem administradores que + ficam chateados e podem reclamar quando o sistema deles é escaneado. + Portanto, é normalmente aconselhável que se solicite a permissão antes + de fazer um scan de uma rede, por mais leve que seja.</para> + + <para>O Nmap nunca deveria ser instalado com privilégios especiais + (p.ex.: suid root) por questões de segurança.</para> + </refsect2> + + <refsect2 id="third-party-soft"> + <title>Software de Terceiros</title> + + <para>Este produto inclui software desenvolvido pela <ulink + url="http://www.apache.org">Apache Software Foundation</ulink>. Uma + versão modificada da <ulink url="http://www.tcpdump.org">biblioteca + portátil de captura de pacotes Libpcap</ulink> é distribuída junto com + o Nmap. A versão para o Windows do Nmap, por outro lado, utiliza + <ulink url="http://www.winpcap.org">biblioteca WinPcap</ulink>, + derivada da libpcap. O suporte à expressões regulares é fornecido pela + <ulink url="http://www.pcre.org">biblioteca PCRE</ulink>, que é um + software de código aberto, escrito por by Philip Hazel. Algumas + funções de rede em estado bruto utilizam a biblioteca de rede <ulink + url="http://libdnet.sourceforge.net">Libdnet</ulink>, que foi escrita + por Dug Song. Uma versão modificada é distribuída com o Nmap. O Nmap + pode, opcionalmente, ser ligado ao <ulink + url="http://www.openssl.org">conjunto de ferramentas de criptografia + do OpenSSL</ulink> para o suporte à detecção de versão do SSL. Todos + os softwares de terceiros descritos neste parágrafo são distribuídos + gratuitamente sob o licenciamento de software no estilo BSD.</para> + </refsect2> + + <refsect2 id="us-export"> + <title>Classificação do Controle de Exportação dos EUA</title> + + <indexterm significance="normal"> + <primary>controle de exportação</primary> + </indexterm> + + <para>Controle de Exportação dos EUA: A Insecure.Com LLC acredita que + o Nmap se enquadra no US ECCN (número de classificação para controle + de exportação) 5D992. Essa categoria é chamada de <quote>software de + Segurança da Informação não-controlado pela 5D002</quote>. A única + restrição à essa classificação é o AT (anti-terrorismo), que se aplica + a quase todos os produtos e nega a exportação à um punhado de nações + não-confiáveis tais como o Irã e a Coréia do Norte. Portanto, exportar + o Nmap não requer nenhuma licença ou permissão especial, ou qualquer + outro tipo de autorização governamental.</para> + </refsect2> + </refsect1> + </refentry> +</article> diff --git a/docs/man-xlate/nmap-man-pt_PT.xml b/docs/man-xlate/nmap-man-pt_PT.xml new file mode 100644 index 0000000..ec2ce7a --- /dev/null +++ b/docs/man-xlate/nmap-man-pt_PT.xml @@ -0,0 +1,3341 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- $Id: manhtml.xml 2940 2005-11-17 22:39:47Z fyodor $ --> +<article id="man" lang= "pt_PT"> + <artheader> + <title>Guia de Referência do Nmap (Página Man)</title> + </artheader> + + <refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Guia de Referência do Nmap</refmiscinfo> + </refmeta> + + <refnamediv id="man-name"> + <refname>nmap</refname> + + <refpurpose>Ferramenta de exploração de Rede e Rastreio de Segurança / + Portas</refpurpose> + </refnamediv> + + <!-- body begins here --> + + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis> + <command>nmap</command> + + <arg choice="opt" rep="repeat"> + <replaceable>Tipo de Rastreio(Scan)</replaceable> + </arg> + + <arg choice="opt"> + <replaceable>Opções</replaceable> + </arg> + + <arg choice="req"> + <replaceable>Especificação do Alvo</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + + <refsect1 id="man-description"> + <title>Descrição</title> + <web> + <note><para> + Este documento descreve o Nmap versão 4.50. A documentação mais recente + está disponível em inglês em + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + + <para>O Nmap (<quote>Network Mapper</quote>) é uma ferramenta em código + aberto para exploração de rede e auditoria de segurança. Foi + desenhada para rastrear(Scan) rapidamente redes amplas contudo funciona bem + com um único anfitrião(host). Nmap usa pacotes IP em estado bruto(raw) sobre + novas formas para determinar que anfitriões(hosts) estão disponíveis + na rede, que serviços (nome e versão da aplicação) esses anfitriões(hosts) estão + disponibilizando, que sistemas operativos (e versões de SO) estão em uso, + que tipo de filtros de pacotes/firewalls estão em uso e dezenas de outras + características. Enquanto o Nmap é frequentemente usado para + auditorias de segurança, muitos sistemas e administradores de + redes consideram-no útil para as tarefas de rotina como o + inventário da rede, gestão de actualizações de serviços + e monitorizar o uptime de anfitriões ou serviços.</para> + + <para>A saída do Nmap é uma lista de alvos rastreados(scanned) com + informações adicionais de cada um dependendo das opções utilizadas. + Uma informação chave é a <quote>tabela de portas interessantes</quote>. Essa tabela + lista o número da porta e o protocolo, o nome do serviço e o estado. O + estado pode ser <literal>aberto (open)</literal>, <literal>filtrado + (filtered)</literal>, <literal>fechado (closed)</literal>, ou + <literal>não-filtrado (unfilterd)</literal>. Aberto (open) significa que + uma aplicação na máquina-alvo está escutando as conexões/pacotes nessa + porta. <literal>Filtrado (filtered)</literal> significa que o firewall, + filtro ou outro obstáculo de rede está bloqueando a porta de forma que + o Nmap não consegue dizer se ela está <literal>aberta (open)</literal> + ou <literal>fechada (closed)</literal>. Portas <literal>fechadas + (closed)</literal>não possuem uma aplicação escutando nelas embora + possam abrir a qualquer instante. Portas são classificadas como + <literal>não filtradas (unfiltered)</literal>quando elas respondem às + sondagens do Nmap mas o Nmap não consegue determinar se as portas estão + abertas ou fechadas. O Nmap reporta as combinações + <literal>aberta|filtrada (open|filtered)</literal>e + <literal>fechada|filtrada (closed|filtered)</literal>quando não consegue + determinar qual dos dois estados descrevem melhor a porta. A tabela de + portas também pode incluir detalhes de versão de software quando a + detecção de versão for solicitada. Quando um rastreio(scan) do protocolo IP é + solicitado (<option>-sO</option>) o Nmap fornece informações dos + protocolos IP suportados ao invés de portas que estejam abertas.</para> + + <para>Além da tabela de portas interessantes o Nmap pode fornecer + informações adicionais sobre os alvos, incluíndo nomes de DNS reverso, + suposições de sistema operativo, tipos de dispositivos e endereços + MAC.</para> + + <para>Um rastreio(scan) típico do Nmap é mostrado em <xref + linkend="man-ex-repscan" />. Os únicos argumentos que o Nmap utiliza + nesse exemplo são <option>-A</option> para permitir a detecção de SO e + a versão <option>-T4</option> para execução mais rápida e os nomes + de anfitrião(hostnames) de dois alvos.</para> + + <example id="man-ex-repscan"> + <title>Uma amostra de rastreio(scan) do Nmap</title> + + <screen> +# nmap -A -T4 scanme.nmap.org playground + +Starting nmap ( https://nmap.org/ ) +Interesting ports on scanme.nmap.org (205.217.153.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2.0.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2.4.X|2.5.X|2.6.X +OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 +Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground.nmap.org (192.168.0.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios-ssn +389/tcp open ldap? +445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds +1002/tcp open windows-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H.323/Q.931 CompTek AquaGateKeeper +5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3.8) +MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds +</screen> + </example> + + <para>A versão mais nova do Nmap pode ser obtida em <ulink + url="https://nmap.org/" />. A versão mais nova da página man + está disponível em <ulink + url="https://nmap.org/man/" />.</para> + </refsect1> + + <refsect1 id="man-briefoptions"> + <title>Sumário das Opções</title> + + <para>Este sumário de opções é mostrado quando o Nmap é executado sem + argumentos e a última versão está sempre disponível em <ulink + url="https://nmap.org/data/nmap.usage.txt" />. Ele ajuda as + pessoas a lembrar-se das opções mais comuns mas não substitui a + documentação mais técnica do restante deste manual. Algumas opções mais + obscuras nem estão aqui incluídas.</para> + + <para> + <literallayout class="normal">Synopsis: nmap [Tipo(s) de Rastreio(Scan)] [Opções] {especificação do alvo} +ESPECIFICAÇÂO DO ALVO: + Pode-se usar nomes de anfitriões(hostnames), Endereços IP, redes, etc. + Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0-255.0-255.1-254 + -iL <inputfilename>: Entrada(Input) de listas de anfitriões(hosts)/redes + -iR <num hosts>: Escolher alvos aleatoriamente + --exclude <host1[,host2][,host3],...>: Excluir anfitriões(hosts)/redes + --excludefile <exclude_file>: Lista de exclusões de um ficheiro +DESCOBERTA DE ANFITRIÕES(HOSTS): + -sL: List Scan - lista simplesmente os alvos para efectuar o rastreio(scan) + -sP: Ping Scan - apenas determnina se o anfitrião está online + -P0: Considera todos os anfitriões como online -- salta a descoberta de anfitriões + -PS/PA/PU [portlist]: rastreio de descoberta TCP SYN/ACK ou UDP para determinadas portas + -PE/PP/PM: Rastreio(scan) de descoberta ICMP echo, timestamp, and netmask request + -n/-R: Nunca resolver/Resolver sempre nomes de DNS [default: resolver algumas vezes] +TÉCNICAS DE SCAN: + -sS/sT/sA/sW/sM: Rastreios(Scans) TCP SYN/Connect()/ACK/Window/Maimon + -sN/sF/sX: Rastreios(Scans) TCP Null, FIN, and Xmas + --scanflags <flags>: Customizar as TCP scan flags + -sI <anfitrião(host) zombie[:probeport]>: Idlescan + -sO: Rastreio(Scan) de protocolo IP + -b <ftp relay host>: FTP bounce scan +ESPECIFICAÇÃO DO PORTO E ORDEM DE RASTREIO: + -p <port ranges>: Apenas efectuar o rastreio(scan) de portas específicas + Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 + -F: Rápido - Efectua o rastreio(Scan) apenas das portas especificadas no ficheiro nmap-services + -r: Efectuar o rastreio(Scan) das portas consecutivas e não aleatoriamente +DETECÇÃO DO SERVIÇO/VERSÃO: + -sV: Rastrear(scan) portas abertas para determinar a informação sobre o serviço/versão + --version-light: Limitar aos rastreios mais prováveis para identificação mais rápida + --version-all: Experimentar todos os rastreios para detectar a versão + --version-trace: Mostrar detalhadamente a actividade do rastreio(scan) + da versão (para debugging) +DETECÇÃO DO SO: + -O: Permite a detecção do SO + --osscan-limit: Limitar a detecção de SO aos alvos promissores + --osscan-guess: Efectuar o rastreio do SO de forma mais agressiva +TIMING AND PERFORMANCE: + -T[0-6]: Ajustar o tempo do modelo(template) (maior é mais rápido) + --min-hostgroup/max-hostgroup <tamanho>: Tamanho dos grupos de rastreio(scan) + de anfitrião(host) paralelo + --min-parallelism/max-parallelism <numprobes>: Rastreio paralelismo + --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Ajustar o + tempo de retorno do rastreio. + --host-timeout <msec>: Desistir de um alvo após este tempo + --scan-delay/--max-scan-delay <msec>: Ajustar esperas entre rastreios +FIREWALL/IDS EVASÃO E DISFARÇE(SPOOFING): + -f; --mtu <val>: fragmentar pacotes (opcional com dado MTU) + -D <decoy1,decoy2[,ME],...>: Disfarça um rastreio(scan) com iscos + -S <IP_Address>: Disfarçar(Spoof) endereço de origem + -e <iface>: Usar um interface especifico + -g/--source-port <portnum>: Usar um determinado numero de porta + --data-length <num>: Acrescentar dados aleatorios aos pacotes enviados + --ttl <val>: Ajustar o campo IP TTL tempo-de-vida + --spoof-mac <mac address, prefix, or vendor name>: Disfarçar(Spoof) o endereço MAC +SAIDA(OUTPUT): + -oN/-oX/-oS/-oG <file>: Retorna os resultados do rastreio(scan) em XML normal, s|<rIpt kIddi3, + e formatados respectivamente para o ficheiro especificado + -oA <basename>: Saida(Output) nos três formatos principais + -v: Aumenta o nivel de informação apresentada(verbosity) (usar 2x para aumentar o efeito) + -d[level]: Ajusta o nivel de debugging (Áté 9 é significativo) + --packet-trace: Mostra todos os pacotes enviados e recebidos + --iflist: Mostra os interfaces do anfitrião e rotas (para debugging) + --append-output: Acrescenta, em vez de destruir/substituir, ficheiros de resultados + --resume <filename>: Continuar um rastreio cancelado(aborted) + --stylesheet <path/URL>: A XSL stylesheet para transformar retorno(output) XML para HTML + --no-stylesheet: Impedir que o Nmap de associar a XSL stylesheet com retorno(output) XML +OUTROS(MISC): + -6: Permitir rastreio(scanning) IPv6 + -A: Permitir detecção do SO e versão + --datadir <dirname>: Especifica a localização do ficheiro de dados personalizado do Nmap + --send-eth/--send-ip: Enviar pacotes utilizando "raw ethernet frames" ou pacotes IP + --privileged: Assume que o utilizador possui os previlégios necessários + -V: Mostra a versão + -h: Mostra esta página de sumário de ajuda +EXEMPLOS: + nmap -v -A scanme.nmap.org + nmap -v -sP 192.168.0.0/16 10.0.0.0/8 + nmap -v -iR 10000 -P0 -p 80 +</literallayout> + </para> + </refsect1> + + <refsect1 id="man-target-specification"> + <title>Especificação de Alvo</title> + + <para>Tudo na linha de comando do Nmap que não for uma opção (ou + argumento de uma opção) é tratado como uma especificação de um anfitrião + (host)-alvo. O caso mais simples é especificar um endereço IP como alvo ou + um nome de anfitrião(hostname) para ser rastreado(scaned).</para> + + <para>Algumas vezes pode querer efectuar o rastreio(scan) de uma rede + inteira de anfitriões(hosts) adjacentes. + Para isso o Nmap suporta o estilo de endereçamento CIDR. + Pode acrescentar /<replaceable>númerodebits</replaceable> em um + endereço ou hostname e o Nmap irá efectuar o rastreio(scan) de cada + endereço IP para o qual os primeiros + <replaceable>númerosdebits</replaceable> sejam o mesmo que + o IP de referência ou o hostname dado. Por exemplo, 192.168.10.0/24 + escanearia os 256 hosts entre 192.168.10.0 (binário: <literal>11000000 + 10101000 00001010 00000000</literal>) e 192.168.10.255 (binário: + <literal>11000000 10101000 00001010 11111111</literal>), inclusive. + 192.168.10.40/24 faria exatamente a mesma coisa. Dado que o afitrião(host) + scanme.nmap.org está no endereço IP 205.217.153.62, a especificação + scanme.nmap.org/16 efectuaria o rastreio(scan) dos 65.536 endereços IP entre 205.217.0.0 e + 205.217.255.255. O menor valor permitido é /1, que equivale ao rastreio(scan) + de metada da Internet. O maior valor é 32, que faz o rastreio(scan) de apenas o + anfitrião(host) nomeado ou endereço IP porque todos os bits de endereçamento estão + fixos.</para> + + <para>A notação CIDR é curta mas nem sempre flexível o suficiente. Por + exemplo, pode querer fazer o rastreio(scan) de 192.168.0.0/16 mas desejar + saltar todos os IPs terminados em .0 ou .255 porque eles são normalmente + endereços de broadcast. O Nmap suporta isso através de endereçamento por + faixa de octeto. Ao invés de especificar um endereço IP normal, + pode especificar uma lista de números separada por vírgulas ou faixa de + números para cada octeto. Por exemplo, 192.168.0-255.1-254 irá saltar + todos os endereços na faixa que terminarem com .0 e/ou .255. Faixas não + precisam ser limitadas ao octeto final: o especificador + 0-255.0-255.13.37 irá executar um rastreio(scan) em toda a Internet buscando os + endereços IP terminados em 13.37. Esse tipo de amostragem ampla pode ser + útil em levantamentos e pesquisas de toda a Internet.</para> + + <para>Endereços IPv6 podem apenas ser especificados utilizando o + endereço IP ou hostname IPv6 completamente qualificado. Faixas CIDR e + octetos não são suportados para o IPv6 porque eles raramente são + úteis.</para> + + <para>O Nmap aceita múltiplas especificações de anfitrião(host) na linha de + comando, e elas não precisam ser do mesmo tipo. O comando <command>nmap + scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.0-255</command> executa o que + se espera dele.</para> + + <para>Embora os alvos sejam normalmente especificados na linha de + comando, as seguintes opções também estão disponíveis para controlar a + seleção de alvos:</para> + + <variablelist> + <varlistentry> + <term><option>-iL <arquivodeentrada></option> (Entrada a + partir de uma lista)</term> + + <listitem> + <para>Lê a especificação de alvos à partir de um + <replaceable>arquivodeentrada</replaceable>. Passar uma lista + enorme de anfitriões(hosts) na linha de comando é muito ruim, ainda que seja + normalmente desejável. Por exemplo, o seu servidor DHCP pode exportar + uma lista de 10.000 endereços correntes em uso que deseja + efectuar o rastreio(scan). Ou talvez deseje o rastreio(scan) dr todos os + endereços IP <emphasis>excepto</emphasis> aqueles usados para localizar + anfitriões(hosts) que usam endereços IP estáticos não-autorizados. + Simplesmente gere uma lista de anfitriões(hosts) a efectuar o rastreio(scan) + e passe o nome do arquivo para o + Nmap como um argumento à opção <option>-iL</option>. As entradas + podem estar em qualquer um dos formatos aceites pelo Nmap na linha + de comando (endereço IP, hostname, CIDR, IPv6, ou faixas de + octetos). Cada entrada deve ser separada por um ou mais espaços em + branco, tabulações ou newlines. Você pode especificar um hífen + (<literal>-</literal>) como nome de arquivo se quiser que o Nmap + leia os nomes de anfitrião(hostsnames) da entrada padrão (standard input) ao invés + de um arquivo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-iR <número de afitriões(hosts)></option> (Escolhe alvos + aleatórios)</term> + + <listitem> + <para>Para levantamentos na Internet toda e outras pesquisas, + pode querer escolher alvos de forma aleatória. O argumento + <replaceable>número de anfitriões(hosts)</replaceable> diz ao Nmap quantos IPs + ele deverá gerar. IPs indesejáveis, tais como aqueles de certas + redes privadas, multicast e faixas de endereços não-alocadas são + automaticamente anuladas. O argumento <literal>0</literal> + (zero) pode ser especificado caso deseje um rastreio(scan) sem fim. Tenha em + mente que alguns administradores de rede não gostam de rastreios(scans) + não-autorizados de suas redes e podem apresentar queixa Use esta + opção por sua conta e risco! Se estiver realmente aborrecido + em uma tarde chuvosa, tente o comando <command>nmap -sS -PS80 -iR + 0 -p 80</command> para localizar servidores web aleatórios para + navegar.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--exclude <host1[,host2][,host3],...></option> + (Exclui anfitriões(hosts)/redes)</term> + + <listitem> + <para>Especifica uma lista de alvos, separados por vírgula, a + serem excluídos do rastreio(scan) mesmo que façam parte da faixa de rede + especificada. A lista que fornece utiliza a sintaxe normal do + Nmap, portanto ela pode incluir nomes de afitrião(hosts), blocos de rede + CIDR, faixas de octetos, etc. Isso pode ser útil quando a rede que + deseja efectuar o rastreio(scan) inclui servidores de missão crítica + intocáveis, sistemas que reconhecidamente reagem mal a + rastreio(scan) de portas ou sub-redes administradas por outras + pessoas.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--excludefile <arquivo_exclusão></option> + (Exclui a lista do arquivo)</term> + + <listitem> + <para>Oferece a mesma funcionalidade que a opção + <option>--exclude</option>, excepto que os alvos a excluir são + fornecidos em um <replaceable>exclude_file</replaceable> , + delimitados por newline, espaço em branco ou tabulação, ao invés + de na linha de comando.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-host-discovery"> + <title>Descoberta de Hosts</title> + + <para>Um dos primeiros passos em qualquer missão de reconhecimento de + uma rede é reduzir um conjunto (às vezes enorme) de faixas de endereços + IP, em uma lista de anfitriões(hosts) activos e interessantes. Efectuar + o rastreio(scan) de cada porta de + cada endereço IP é lento e normalmente desnecessário. É claro que o + que torna um anfitrião(host) interessante depende muito do propósito do rastreio(scan). + Administradores de rede podem estar apenas interessados em hosts que + executam um determinado serviço, enquanto os auditores de segurança + podem se importar com cada dispositivo que possuir um endereço IP. Um + administrador pode se sentir à vontade em usar o ping ICMP para + localizar os anfitriões(hosts) na rede interna, enquanto um profissional externo de + análise de vulnerabilidades (penetration tester) pode utilizar um + conjunto diversificado de dezenas de sondagens numa tentativa de + enganar as restrições da firewall.</para> + + <para>As necessidades para o descobrimento de anfitrião(host) são muito diversas e, + por isso, o Nmap oferece uma ampla variedade de opções para customizar + as técnicas utilizadas. A descoberta de anfitrião(host) às vezes é chamada de + rastreo ping(ping scan), mas ela vai muito além dos simples pacotes ICMP de echo request + associados com a popular ferramenta conhecida como ping. Os usuários + podem saltar a etapa do ping inteiramente com uma lista de rastreio(scan) + (<option>-sL</option>) ou desactivado o ping (<option>-P0</option>), + ou enfrentar a rede com combinações arbitrárias de sondagens + multi-portas TCP SYN/ACK, UDP, e ICMP. O objetivo dessas sondagens é + solicitar respostas que mostrem que um endereço IP está realmente activo + (é utilizado por um afitrião(host) ou dispositivo de rede). Em muitas redes, + apenas uma pequena percentagem dos endereços IP está activa em um dado + momento. Isso é particularmente comum com o espaço de endereçamento + privado ao abrigo do RFC1918 como, por exemplo, 10.0.0.0/8. Essa + rede tem 16 milhões de IPs, mas eu já a vi sendo utilizado em empresas + com menos de mil máquinas. A descoberta de anfitriões(hosts) pode encontrar essas + máquinas escassamente alocadas em um mar de endereços IP.</para> + + <para>Se nenhuma opção de descoberta de hosts for dada, o Nmap envia um + pacote TCP ACK destinado a porta 80 e uma procura ICMP Echo Request a + cada máquina-alvo. Uma exceção a isso é que um rastreio(scan) ARP é utilizado para + cada alvo localizado na rede ethernet local. Para usuários Unix sem + privilégios de shell, um pacote SYN é enviado ao invés do ack + utilizando a chamada de sistema <function>connect()</function>. Esses + valores default equivalem às opções <option>-PA -PE</option>. Esta + descoberta de anfitrião(host) frequentemente é suficiente para o rastreio(scan) + de redes locais, mas um conjunto de sondagens mais abrangentes é recomendado para + auditoria de segurança.</para> + + <para>As opções <option>-P*</option> (que seleccionam tipos de ping) + podem ser combinadas. Você pode aumentar as chances de penetrar numa + firewall enviando muitos tipos de sondagens, utilizando + diferentes portas/flags TCP e códigos ICMP. Note também que a descoberta + por ARP (<option>-PR</option>) é feita por default contra alvos na rede + ethernet local mesmo que especifique outras opções + <option>-P*</option> , porque é quase sempre mais rápida e mais + eficiente.</para> + + <para>As seguintes opções controlam a descoberta de anfitriões(hosts).</para> + + <variablelist> + <varlistentry> + <term><option>-sL</option> (Listagem de rastreio(scan))</term> + + <listitem> + <para>A listagem de rastreio(scan) é uma forma degenerada de descoberta de + anfitriões(hosts) que simplesmente lista cada anfitrião(host) da + rede especificada, sem enviar nenhum pacote aos hosts-alvos. Por default o Nmap + fará a resolução de DNS dos anfitriões(hosts) para descobrir seus nomes. + Ainda é surpreendente a quantidade de informações úteis que + simples nomes de hosts podem dar. Por exemplo, + <literal>fw.chi.playboy.com</literal> é o firewall do escritório + de Chicago da Playboy Enterprises. Nmap também reporta o número + total de endereços IP ao final. A listagem de rastreio(scan) é um bom teste de + sanidade para assegurar que está com a lista correta de + endereços IP dos seus alvos. Se os anfitriões(hosts) mostrarem nomes de + domínios que não reconhece, vale a pena investigar melhor + para evitar o rastreio(scan) da rede da empresa errada.</para> + + <para>Uma vez que a idéia é apenas mostrar uma lista dos + hosts-alvos, as opções de funcionalidade de nível mais alto tais + como o rastreio(scan) de portas, detecção de SO, ou rastreio(scan) utilizando ping, não + podem ser combinadas com esta opção. Se deseja desactivar o + rastreio(scan) utilizando ping enquanto executa funções de nível elevado, + leia a opção <option>-P0</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sP</option> (Rastreio(scan) usando Ping)</term> + + <listitem> + <para>Esta opção diz ao Nmap para <emphasis>somente</emphasis> + executar um rastreio(scan) usando o ping (descoberta de anfitriões(hosts)), e então + mostrar os hosts disponíveis que responderam ao scan. Nenhum teste + adicional (tais como o rastreio(scan) de portas e deteção de SO) é + executado. Isto é um pouco mais intrusivo que a listagem de rastreio(scan), e + pode ser usado para os mesmos propósitos. Permite um + reconhecimento leve de uma rede-alvo sem chamar muita atenção. + Saber quantos hosts estão ativos é mais valioso para invasores que + a lista fornecida pela listagem de rastreio(scan) com cada endereço IP e seu + nome de anfitrião(host).</para> + + <para>Administradores de sistemas frequentemente acham esta opção + valiosa. Ela pode ser facilmente utilizada para contar o número de + máquinas disponíveis em uma rede ou monitorar a disponibilidade + dos servidores. Isto é normalmente chamado de varredura com ping + (ping sweep), e é mais confiável do que fazer um ping num + endereço de broadcast, pois muitos anfitriões(rastreio(scan)hosts) não respondem a pesquisas + com broadcast.</para> + + <para>A opção <option>-sP</option> envia um ICMP echo request e um + pacote TCP para a porta 80 por default. Quando executada por um + usuário sem privilégios, um pacote SYN é enviado (usando uma + chamada <function>connect()</function>) para a porta 80 no alvo. + Quando um usuário privilegiado tenta rastrear(scan) alvos na rede + ethernet local, requisições ARP (<option>-PR</option>) são + utilizadas, a menos que <option>--send-ip</option> tenha sido + especificado. A opção <option>-sP</option> pode ser combinada com + qualquer um dos tipos de sondagens de descobrimento (as opções + <option>-P*</option> , excluindo <option>-P0</option>) para maior + flexibilidade. Se qualquer uma dessas opções de tipos de sondagens + e número de porta for utilizada, as sondagens default (ACK e echo + request) são sobrepostas. Quando firewalls restritivos estão + posicionados entre o host de origem que executa o Nmap e a + rede-alvo, utilizar essas técnica avançadas é recomendado. Do + contrário, hosts podem ser perdidos quando o firewall ignorar as + sondagens ou as respostas delas.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-P0</option> (Sem ping)</term> + + <listitem> + <para>Esta opção salta completamente a fase + de descoberta do + Nmap. Normalmente o Nmap utiliza este estágio para determinar as + máquinas activas para o rastreio(scan) mais agressivo. Por default, o + Nmap apenas executa sondagens agressivas tais como o rastreio(scan) de + portas, detecção de versões, ou detecções do SO contra afitriões(hosts) que + foram verificados como activos. Desactivar a descoberta de anfitriões(hosts) + com <option>-P0</option> faz com que o Nmap teste as funções de + rastreio(scan) solicitadas contra <emphasis>todos</emphasis> os + endereços IP alvos especificados. Portanto se um espaço de + endereçamento alvo do tamanho de uma classe B (/16) for + especificado na linha de comando, todos os 65.536 endereços IP + serão alvo do rastreio(scan). O segundo caracter da opção <option>-P0</option> + é um zero e não a letra O. A descoberta de anfitriões(hosts) apropriada é + desconsiderada como na listagem de rastreio(scan), mas ao invés de parar e + mostrar a lista de alvos, o Nmap continua a executar as funções + solicitadas como se cada alvo IP estivesse activo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PS [listadeportas]</option> (Ping usando TCP + SYN)</term> + + <listitem> + <para>Esta opção envia um pacote TCP vazio com a flag SYN marcada. + A porta de destino default é a 80 (configurada em tempo de + compilação pela variável DEFAULT_TCP_PROBE_PORT no + <filename>nmap.h</filename>), mas uma porta alternativa pode ser + especificada como um parâmetro. Até uma lista de portas separadas + por vírgula pode ser especificada (p.ex. + <option>-PS22,23,25,80,113,1050,35000</option>), nesse caso as + sondagens serão tentadas contra cada porta em paralelo.</para> + + <para>A flag SYN sugere aos sistemas remotos que está + tentando estabelecer uma comunicação. Normalmente a porta de + destino estará fechada e um pacote RST (reset) será enviado de + volta. Se a porta estiver aberta, o alvo irá dar o + segundo passo do cumprimento-de-três-vias (3-way-handshake) do TCP + respondendo com um pacote TCP SYN/ACK TCP. A máquina executando o + Nmap então derruba a conexão recém-criada respondendo com um RST + ao invés de enviar um pacote ACK que iria completar o + cumprimento-de-três-vias e estabelecer uma conexão completa. O + pacote RST é enviado pelo kernel da máquina que está executando o + Nmap em resposta ao SYN/ACK inesperado, e não pelo próprio + Nmap.</para> + + <para>O Nmap não se importa se a porta está aberta ou fechada. + Tanto a resposta RST ou SYN/ACK discutidas anteriormente dizem ao + Nmap se o hosts está disponível e responsivo.</para> + + <para>Em máquinas UNIX apenas o usuário privilegiado + <literal>root</literal> é capaz, normalmente, de enviar e receber + pacotes TCP em estado bruto(raw packets). Para usuários não privilegiados um + contorno é automaticamente empregado em concordância com a chamada + de sistema connect() iniciada contra cada porta-alvo. Isso tem o + efeito de enviar um pacote SYN ao anfitrião(host) alvo em uma tentativa de + estabelecer uma conexão. Se o connect() retornar com sucesso + rápido ou com uma falha ECONNREFUSED, a pilha TCP subjacente deve + ter recebido um SYN/ACK ou RST e o anfitrião(host) é marcado como disponível. + Se a tentativa de conexão for abandonada até que um timeout + ocorra, o host é marcado como indisponível. Esse contorno também é + usado para conexões IPv6, pois o suporte a construção de pacotes + IPv6 em estado bruto(raw) ainda não está disponível no Nmap.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PA [listadeportas]</option> (Ping usando TCP + ACK)</term> + + <listitem> + <para>O ping usando TCP ACK é muito similar ao recém-discutido + ping usando SYN. A diferença como poderia imaginar, é que a + flag TCP ACK é marcada ou invés da flag SYN. O pacote ACK finge + reconhecer dados de uma conexão TCP estabelecida, quando nenhuma + conexão existe de facto. Então os anfitriões(hosts) remotos deveriam sempre + responder com pacotes RST revelando sua existência no + processo.</para> + + <para>A opção <option>-PA</option> utiliza a mesma porta default + que a sondagem SYM (80) e pode também obter uma lista de portas + destino no mesmo formato. Se um usuário privilegiado tenta isto, + ou se um alvo IPv6 é especificado, o contorno connect() discutido + anteriormente é utilizado. Esse contorno é imperfeito pois o + connect() está realmente enviando um pacote SYN ao invés de um + ACK.</para> + + <para>O motivo para oferecer ambas as sondagens ping, que utilizam + SYN e ACK, é maximizar as chances de passar por firewalls. Muitos + administradores configuram routers e outros firewalls simples + para bloquear a entrada de pacotes SYN excepto aqueles destinados a + serviços públicos como o site web da empresa ou servidor de + correio electrónico. Isso evita as demais conexões entradas na + organização, permitindo aos usuários fazer conexões desobstruidas + à Internet. Essa aproximação não-orientada à conexão (non-stateful + ou stateless) consome poucos recursos no firewall/router e é + amplamente suportada por filtros de hardware e software. O + firewall de software Netfilter/iptables do Linux oferece a + conveniência da opção <option>--syn</option> para implementar essa + abordagem stateless. Quando regras stateless do firewall como + essas são implementadas, sondagens de ping usando SYN + (<option>-PS</option>) muito provavelmente serão bloqueadas quando + forem enviadas à portas fechadas. Nesses casos, a sondagem ACK se + destaca pois ela simplesmente passa por essas regras.</para> + + <para>Outro tipo comum de firewall utiliza regras orientadas a + conexão que descartam pacotes inesperados. Esta característica era + encontrada inicialmente apenas em firewalls de alto-nível, embora + tenha se tornado mais comum com o passar dos anos. O sistema + Netfilter/iptables do Linux suporta esta característica através da + opção <option>--state</option>, que categoriza os pacotes baseados + no estado da conexão. Uma sondagem SYN tem maiores chances de + funcionar contra um sistema assim, pois pacotes ACK inesperados + são normalmente reconhecidos como falsos e descartados. Uma + solução para esse dilema é enviar ambas as sondagens SYN e ACK + especificando <option>-PS</option> e <option>-PA</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PU [listadeportas]</option> (Ping usando UDP)</term> + + <listitem> + <para>Outra opção de descoberta de anfitriões(hosts) é o ping usando UDP, que + envia um pacote UDP vazio (a menos que + <option>--data-length</option> seja especificado) para as portas + informadas. A listadeportas tem o mesmo formato que os discutidos + anteriormente nas opções <option>-PS</option> e + <option>-PA</option>. Se nenhuma porta for especificada, o default + é 31338. Esse default pode ser configurado em tempo de compilação + alterando DEFAULT_UDP_PROBE_PORT no <filename>nmap.h</filename>. + Uma porta alta não comum é utilizada como default porque enviar para + portas abertas normalmente é indesejado para este tipo particular + de rastreio(scan).</para> + + <para>Ao bater contra uma porta fechada na máquina-alvo, a + sondagem UDP deve criar um pacote ICMP de porta inalcançável como + resposta. Isso diz ao Nmap que a máquina está activa e disponível. + Muitos outros tipos de erros ICMP, tais como anfitrião(host)/rede + inalcançável ou TTL excedido são indicativos de um anfitrião(host) inactivo ou + inalcançável. A falta de resposta também é interpretada dessa + forma. Se uma porta aberta é alcançada, a maioria dos serviços + simplesmente ignoram o pacote vazio e falham em retornar qualquer + resposta. É por isso que a porta de sondagem default é 31338, que + pouco provavelmente estará em uso. Uns poucos serviços, tal como o + chargen, irá responder a um pacote UDP vazio, e com isso revelará + ao Nmap que a máquina está disponível.</para> + + <para>A principal vantagem deste tipo de scan é que ele passa por + firewalls e filtros que apenas examinam o TCP. Por exemplo, uma + vez eu tive um router broadband sem-fios Linksys BEFW11S4. A + interface externa desse dispositivo filtrava todas as portas TCP + por default, mas as sondagens UDP ainda causavam mensagens de + porta inalcançável, denunciando assim o dispositivo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PE</option>; <option>-PP</option>; + <option>-PM</option> (Tipos de Ping do ICMP)</term> + + <listitem> + <para>Além dos tipos incomuns de descoberta de anfitriões(hosts) TCP e UDP + discutidos anteriormente, o Nmap pode enviar os pacotes-padrão que + normalmente são enviados pelo popular programa ping. O Nmap + envia um pacote ICMP do tipo 8 (echo request) ao endereço IP alvo, + esperando como resposta um tipo 0 (Echo Reply) do anfitrião(host) disponível. + Infelizmente para muitos exploradores de rede, muitos anfitriões(hosts) e + firewalls actualmente bloqueiam esses pacotes, ao invés de + responder como é requerido pela <ulink + url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC 1122</ulink>. + Por essa razão, rastreios(scans) puramente ICMP são raramente confiáveis o + suficiente contra alvos desconhecidos na Internet. Mas para + administradores de sistemas monitorando uma rede interna eles + podem ser uma abordagem prática e eficiente. Utilize a opção + <option>-PE</option> para activar esse comportamento echo + request.</para> + + <para>Embora o echo request seja a pesquisa padrão de um ping + ICMP, o Nmap não pára aqui. A padronização do ICMP (<ulink + url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC 792</ulink>) + também especifica timestamp request, information request, e + pacotes address mask request como códigos 13, 15, e 17, + respectivamente. Apesar do propósito ostensivo dessas pesquisas + seja obter informações tais como a máscara do endereço e hora + corrente, eles podem ser facilmente utilizados para descoberta de + anfitriões(hosts). Um sistema que responda está activo e disponível. O Nmap não + implementa actualmente os pacotes de requisição de informações, + pois eles não são amplamente suportados. A RFC 1122 insiste que + <quote>um anfitrião(host) NÃO DEVERIA implementar essas mensagens</quote>. + Pesquisas de marcação de hora (Timestamp) e máscara de endereço + podem ser enviadas com as opções <option>-PP</option> e + <option>-PM</option> , respectivamente. Uma resposta timestamp + reply (código ICMP 14) ou uma resposta address mask reply (código + 18) revela que o host está disponível. Essas duas pesquisas podem + ser valiosas quando os administradores bloqueiam pacotes echo + request especificamente e esquecem que outras pesquisas ICMP podem + ser usadas com o mesmo propósito.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-PR</option> (Ping usando ARP)</term> + + <listitem> + <para>Um dos cenários de uso mais comuns do Nmap é o rastreio(scan) da LAN + ethernet. Na maioria das LANs, especialmente aquelas que utilizam + a faixa de endereçamento privado ao abrigo do RFC1918, a vasta + maioria dos endereços IP nuca são utilizados. Quando o Nmap + tenta enviar um pacote IP em estado bruto(raw), tal como um ICMP echo + request, o sistema operativo deve determinar o endereço físico + de destino (ARP) correspondente ao IP-alvo de forma que ele possa + endereçar adequadamente o frame ethernet. Isso normalmente é lento + e problemático, pois os sistemas operativos não foram escritos + com a expectativa de que precisariam fazer milhões de requisições + ARP contra anfitriões(hosts) indisponíveis em um curto período de + tempo.</para> + + <para>O rastreio(scan) ARP encarrega o Nmap e seus algorítmos optimizados de + fazer as requisições ARP. E se ele conseguir uma resposta de + volta, o Nmap não precisa de se preocupar com os pacotes ping + baseados em IP, uma vez que ele já sabe que o anfitrião(host) está activo. + Isso torna o rastreio(sca) ARP muito mais rápido e mais confiável que os + rastreios(scans) baseados em IP. Portanto isso é feito por default quando se + faz o rastreio(scan) de anfitriões(hosts) ethernet que o Nmap detecta estarem posicionados em + uma rede ethernet local. Mesmo se tipos diferentes de ping (tais + como <option>-PI</option> ou <option>-PS</option>) sejam + especificados, o Nmap usa o ARP em vez, para cada um dos alvos + que estiverem na mesma LAN. Se não quiser de forma alguma + fazer um ratreio(scan) ARP, especifique <option>--send-ip</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-n</option> (Não faça resolução DNS)</term> + + <listitem> + <para>Diz ao Nmap para <emphasis>nunca</emphasis> fazer uma + resolução DNS nos endereços IP activos que ele encontrar. + Uma vez que o DNS é normalmente lento, isso acelera as + coisas.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-R</option> (resolução DNS para todos os alvos)</term> + + <listitem> + <para>Diz ao Nmap para fazer <emphasis>sempre</emphasis> uma + resolução DNS reversa nos endereços IP-alvos. Normalmente isto + apenas é executado quando uma máquina está activa.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-basics"> + <title>Fundamentos do Rastreio(Scan) de Portas</title> + + <para>Embora o Nmap tenha crescido em funcionalidades ao longo dos anos, + ele começou como um eficiente scanner de portas e essa permanece a sua + função principal. O simples comando <command>nmap + <replaceable>alvo</replaceable></command> faz o rastreio(scan) a mais de 1660 portas + TCP no anfitrião(host) <replaceable>alvo</replaceable>. Embora muitos scanner de + portas tenham tradicionalmente agrupado todas as portas nos estados + aberto ou fechado, o Nmap é muito mais granular. Ele divide as portas em + seis estados: <literal>aberto(open)</literal>, + <literal>fechado(closed)</literal>,<literal>filtrado(filtered)</literal>, + <literal>não-filtrado(unfiltered)</literal>, + <literal>aberto(open)|filtrado(filtered)</literal>, ou + <literal>fechado(closed)|filtrado(filtered)</literal>.</para> + + <para>Esses estados não são propriedades intrínsecas da porta mas + descrevem como o Nmap as vê. Por exemplo, um rastreio(scan) do Nmap da mesma rede + como alvo pode mostrar a porta 135/tcp como aberta, enquanto um rastreio(scan) ao + mesmo tempo com as mesmas opções a partir da Internet poderia mostrar + essa porta como <literal>filtrada</literal>.</para> + + <variablelist> + <title>Os seis estados de porta reconhecidos pelo Nmap</title> + + <varlistentry> + <term>aberto (open)</term> + + <listitem> + <para>Uma aplicação está activamente aceitando conexões TCP ou + pacotes UDP nesta porta. Encontrar esse estado é frequentemente o + objectivo principal de um rastreio(scan) de portas. Pessoas + conscientes sobre a segurança sabem que cada porta aberta é um + convite para um ataque. Invasores e profissionais de avaliação de + segurança querem explorar as portas abertas, enquanto os + administradores tentam fechar ou proteger com firewalls sem + bloquear usuários legítimos. Portas abertas são também + interessantes para rastreios(scans) não-relacionados à segurança pois mostram + os serviços disponíveis para utilização na rede.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>fechado (closed)</term> + + <listitem> + <para>Uma porta fechada está acessível (ela recebe e responde a + pacotes de sondagens do Nmap), mas não há nenhuma aplicação + ouvindo nela. Elas podem ser úteis para mostrar que um anfitrião(host) está + activo em um determinado endereço IP (descoberta de hosts, ou rastreio(scan) + usando ping), e como parte de uma deteção de SO. Pelo facto de + portas fechadas serem alcançáveis, pode valer a pena o rastreio(scan) mais + tarde no caso de alguma delas abrir. Os administradores deveriam + considerar o bloqueio dessas portas com um firewall. Então elas + apareceriam no estado filtrado, discutido a seguir.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>filtrado(filtered)</term> + + <listitem> + <para>O Nmap não consegue determinar se a porta está aberta porque + uma filtragem de pacotes impede que as sondagens alcancem a porta. + A filtragem poderia ser de um dispositivo firewall dedicado, + regras de router, ou um software de firewall baseado em anfitrião(host). + Essas portas frustram os atacantes pois elas fornecem poucas + informações. Às vêzes elas respondem com mensagens de erro ICMP + tais como as do tipo 3 código 13 (destino inalcançável: + comunicação proibida administrativamente), mas os filtros que + simplesmente descartam pacotes sem responder são bem mais comuns. + Isso força o Nmap a tentar diversas vezes só para o caso de a + sondagem ter sido descartada por congestionamento da rede ao invés + de filtragem. Isso reduz a velocidade do rastreio(scan) + dramaticamente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>não-filtrado(unfiltered)</term> + + <listitem> + <para>O estado não-filtrado significa que uma porta está + acessível, mas que o Nmap é incapaz de determinar se ela está + aberta ou fechada. Apenas o rastreio(scan) ACK, que é usado para mapear + conjuntos de regras de firewall classifica portas com este + estado. O rastreio(scan) de portas não-filtradas com outros tipos de scan, + tal como scan Window, scan Syn, ou scan FIN, podem ajudar a + responder se a porta está aberta.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>open|filtered</term> + + <listitem> + <para>O Nmap coloca portas neste estado quando é incapaz de + determinar se uma porta está aberta ou filtrada. Isso acontece + para tipos de rastreio(scan) onde as portas abertas não dão nenhuma + resposta. A falta de resposta poderia também significar que um + filtro de pacotes descartou a sondagem ou qualquer resposta que + ela tenha provocado. Portanto o não sabe com certeza se a porta + está aberta ou se está sendo filtrada. Os rastreios(scans) UDP, IP Protocol, + FIN, Null, e Xmas classificam portas desta forma.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>closed|filtered</term> + + <listitem> + <para>Este estado é usado quando o Nmap é incapaz de determinar se + uma porta está fechada ou filtrada. É apenas usado para o rastreio(scan) + IPID Idle scan.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-techniques"> + <title>Técnicas de Rastreio(Scan) de Portas</title> + + <para>Como um novato executando uma reparação automóvel posso perder + horas tentando usar minhas ferramentas rudimentares (martelo, fita + adesiva, grifo, etc.) nas tarefas. Quando eu falho miseravelmente e + reboco minha lata-velha para um mecânico de verdade ele invariavelmente + pesca aqui e ali em um enorme baú de ferramentas até pegar a coisa perfeita + que torna a tarefa numa brincadeira. A arte de rastrear(scaning) portas é + similar. Os peritos entendem as dezenas de técnicas de rastreio(scan) e + escolhem as que são apropriadas (ou uma combinação) para uma dada + tarefa. Usuários inexperientes e script kiddies, por outro lado, tentam + resolver todos os problemas com o scan SYN default. Uma vez que o Nmap é + gratuito a única barreira para a mestria em rastreio(scaning) de portas é o + conhecimento. Isso certamente é melhor que no mundo automóvel onde + pode ser necessário uma grande habilidade para determinar que + precisa de um compressor de molas e então tem que pagar milhares de + euros por um.</para> + + <para>A maioria dos tipos de rastreio(scan) está disponível apenas para usuários + privilegiados. Isso acontece porque eles enviam e recebem pacotes em + estado bruto(raw), o que requer acesso de root em sistemas Unix. Utilizar a + conta de administrador no Windows é recomendado, embora o Nmap às vêzes + funcione com usuários sem privilégios nessa plataforma quando o WinPcap + foi carregado no SO. Requerer privilégio de root era uma séria limitação + quando o Nmap foi lançado em 1997, pois muitos usuários apenas tinham + acesso a contas de shell compartilhadas. Agora o mundo é diferente. + Computadores estão mais baratos, muito mais pessoas tem acesso directo e + permanente à Internet e computadores desktop Unix (incluindo Linux e + MAC OS X) são comuns. Uma versão para o Windows do Nmap se encontra + actualmente disponível permitindo que se use em muito mais computadores + desktop. Por todas essas razões os usuários têm menos necessidade de + executar o Nmap a partir de contas de shell compartilhadas e limitadas. + Isso é muito bom pois as opções privilegiadas tornam o Nmap muito mais + poderoso e flexível.</para> + + <para>Embora o Nmap tente produzir resultados precisos tenha em mente + que todas as deduções são baseadas em pacotes devolvidos pelas + máquinas-alvo (ou firewalls na frente delas). Tais anfitriões(hosts) podem + não ser confiáveis e enviar respostas com o propósito de confundir ou + enganar o Nmap. Muito mais comum são os anfitriões(hosts) não-de-acordo-com-a-rfc + que não respondem como deveriam às sondagens do Nmap. As sondagens FIN, + Null e Xmas são particularmente suscetíveis a esse problema. Tais + questões são específicas de determinados tipos de scan e portanto são + discutidos nas entradas individuais de cada um dos tipos.</para> + + <para>Esta seção documenta as dezenas de técnicas de rastreio(scan) de + portas suportadas pelo Nmap. Apenas um método pode ser utilizado de cada + vezm excepto que um scan UDP (<option>-sU</option>) pode ser combinado + com qualquer um dos tipos de scan TCP. Como uma ajuda para a memória as + opções dos tipos de rastreio(scan) de portas estão no formato + <option>-s<replaceable>C</replaceable></option>, onde + <replaceable>C</replaceable> é um caracter proeminente no nome do rastreio(scan), + normalmente o primeiro. A única excepção a essa regra é para o rastreio(scan) + denominado FTP bounce (<option>-b</option>). Por default o Nmap executa + um rastreio(scan) SYN, embora ele substitua por um rastreio(scan) Connect() se o usuário não + tiver os privilégios adequados para enviar pacotes em estado bruto(raw) + (requer acesso de root no UNIX) ou se alvos IPv6 forem especificados. + Dos rastreios(scans) listados nesta secção os usuários não privilegiados podem + apenas executar os rastreios(scans) connect() e ftp bounce.</para> + + <variablelist> + <varlistentry> + <term><option>-sS</option> (rastreio(scan) TCP SYN)</term> + + <listitem> + <para>O rastreio(scan) SYN é a opção de rastreio(scan) default e a mais + popular por boas razões. Pode ser executada rapidamente fazendo o rastreio(scan) + a milhares de portas por segundo em uma rede rápida, não bloqueada por firewalls + intrusivos. O rastreio(scan) SYN é relativamente não-obstrusivo e camuflado, + uma vez que ele nunca completa uma conexão TCP. Ele também + trabalha contra qualquer pilha TCP padronizada ao invés de + depender de factores específicos de plataformas como os + rastreios(scans) Fin/Null/Xmas, Maimon e Idle fazem. Ele também permite uma + diferenciação limpa e confiável entre os estados <literal>aberto + (open)</literal>, <literal>fechado (closed)</literal>, e + <literal>filtrado (filtered)</literal>.</para> + + <para>Esta técnica é freqüentemente chamada de rastreio(scan) de + porta entreaberta (half-open scanning), porque não abre uma + conexão TCP completamente. Você envia um pacote SYN, como se fosse + abrir uma conexão real e então espera uma resposta. Um SYN/ACK + indica que a porta está ouvindo (aberta) enquanto um RST (reset) + é indicativo de uma não-ouvinte. Se nenhuma resposta é recebida + após diversas retransmissões a porta é marcada como filtrada. A + porta também é marcada como filtrada se um erro ICMP de + inalcançável é recebido (tipo 3, código 1,2, 3, 9, 10, ou + 13).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sT</option> (rastreio(scan) TCP connect())</term> + + <listitem> + <para>O rastreio(scan) TCP Connect() é o rastreio(scan) default do + TCP quando o rastreio(scan) SYN não é uma opção. Esse é o caso quando o + usuário não tem privilégios para criar pacotes em estado bruto(raw) ou rastrear + redes IPv6. Ao invés de criar pacotes em estado bruto(raw) como a maioria dos + outros tipos de rastreio(scan) fazem, o Nmap pede ao sistema operativo + para estabelecer uma conexão com a máquina e porta alvos enviando + uma chamada de sistema <literal>connect()</literal>. Essa é a + mesma chamada de alto nível que os navegadores da web, clientes + P2P, e a maioria das outras aplicações para rede utilizam para + estabelecer uma conexão. É parte do interface de programação + conhecida como API de Sockets de Berkeley. Ao invés de ler as + respostas em pacotes em estado bruto(raw) directamente dos fios, + o Nmap utiliza esta API para obter informações do estado de cada + tentativa de conexão.</para> + + <para>Quando um rastreio(scan) SYN está disponível é normalmente a melhor + escolha. O Nmap tem menos controle sobre a chamada de alto nível + <literal>connect()</literal> do que sobre os pacotes em estado + bruto(raw) tornando-o menos eficiente. A chamada de sistema completa + as conexões nas portas-alvo abertas ao invés de executar o reset + de porta entreaberta que o rastreio(scan) SYN faz. Isso não só leva mais + tempo e requer mais pacotes para obter a mesma informação mas + também torna mais provável que as máquinas-alvo registrem a + conexão. Um sistema IDS decente irá detectar qualquer um deles, + mas a maioria das máquinas não tem esse tipo de sistema de alarme. + Muitos serviços na maioria dos sistema Unix irão acrescentar uma + nota na syslog e às vêzes uma mensagem de erro obscura, quando o + Nmap se conecta e então fecha a conexão sem enviar nenhum dado. + Serviços verdadeiramente patéticos irão travar quando isso + acontecer embora isso seja incomum. Um administrador que vê um + punhado de tentativas de conexão nos registros vindos de um único + sistema deveria saber que foi rastreado(scanned) com connect.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sU</option> (rastreios(scans) UDP)</term> + + <listitem> + <para>Embora os serviços mais populares na Internet operem + sobre o protocolo TCP, os serviços <ulink + url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> são + amplamente difundidos. O DNS, o SNMP e o DHCP (registrados nas + portas 53, 161/162, e 67/68) são três dos mais comuns. Pelo facto + do rastreio(scan) UDP ser normalmente mais lento e mais difícil que + o TCP alguns auditores de segurança ignoram essas portas. Isso é + um erro pois serviços UDP passíveis de exploração são bastante + comuns e invasores certamente não ignoram o protocolo inteiro. + Felizmente o Nmap pode ajudar a inventariar as portas UDP.</para> + + <para>O rastreio(scan) UDP é activado com a opção <option>-sU</option>. Ele + pode ser combinado com um tipo de rastreio(scan) TCP como o rastreio(scan) + SYN (<option>-sS</option>) para averiguar ambos protocolos na mesma + execução.</para> + + <para>O SYN UDP funciona enviando um cabeçalho UDP vazio (sem + dados) para cada porta pretendida. Se um erro ICMP de porta + inalcançável (tipo 3, código 3) é retornado a porta está + <literal>fechada</literal>. Outros erros do tipo inalcançável + (tipo 3, códigos 1, 2, 9, 10, ou 13) marcam a porta como + <literal>filtrada</literal>. Ocasionalmente um serviço irá + responder com um pacote UDP provando que está + <literal>aberta</literal>. Se nenhuma resposa é recebida após as + retransmissões a porta é classificada como + <literal>aberta|filtrada</literal>. Isso significa que a porta + poderia estar aberta ou talvez que filtros de pacotes estejam + bloqueando a comunicação. Rastreios(scans) de versões (<option>-sV</option>) + podem ser utilizados para ajudar a diferenciar as portas + verdadeiramente abertas das que estão filtradas.</para> + + <para>Um grande desafio com o rastreio(scan) UDP é fazê-lo + rapidamente. Portas abertas e filtradas raramente enviam alguma + resposta, deixando o Nmap esgotar o tempo (time out) e então + efectuar retransmissões para o caso de a sondagem ou a resposta ter + sido perdida. Portas fechadas são normalmente um problema ainda + maior. Elas costumam enviar de volta um erro ICMP de porta + inalcançável. Mas, ao contrário dos pacotes RST enviados pelas + portas TCP fechadas em resposta a um rastreio(scan) SYN ou Connect, muitos + anfitriões(hosts) limitam a taxa de mensagens ICMP de porta inalcançável por + default. O Linux e o Solaris são particularmente rigorosos quanto + a isso. Por exemplo, o kernel 2.4.20 do Linux limita a quantidade + de mensagens de destino inalcançável a até uma por segundo (no + <filename>net/ipv4/icmp.c</filename>).</para> + + <para>O Nmap detecta a limitação de taxa e diminui o ritmo de + acordo para evitar inundar a rede com pacotes inúteis que a + máquina-alvo irá descartar. Infelizmente, um limite como o do + Linux de um pacote por segundo faz com que um rastreio(scan) de 65.536 + portas leve mais de 18 horas. Idéias para acelerar o rastreio(scan) + UDP incluem rastrear(scan) mais anfitriões(hosts) em paralelo, fazer um rastreio(scan) rápido + apenas das portas mais comuns primeiro, rastrear(scan) por detrás de um + firewall e utilizar <option>--host-timeout</option> para saltar os + anfitriões(hosts) lentos.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sN</option>; <option>-sF</option>; + <option>-sX</option> (rastreios(scans) TCP Null, FIN, e Xmas)</term> + + <listitem> + <para>Estes três tipos de rastreio(scan) (até mais são possíveis com a opção + <option>--scanflags</option> descrita na próxima secção) exploram + uma brecha subtil na <ulink + url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC do TCP</ulink> + para diferenciarem entre portas <literal>abertas</literal> e + <literal>fechadas</literal>. A página 65 diz que <quote>se a porta + [destino] estiver FECHADA .... um segmento de entrada que não + contenha um RST irá causar o envio de um RST como + resposta.</quote> Então a página seguinte discute os pacotes + enviados a portas abertas sem os bits SYN, RST ou ACK marcados, + afirmando que: <quote>é pouco provável que chegue aqui, mas + se chegar, descarte o segmento e volte.</quote></para> + + <para>Quando se rastreia(scan) sistemas padronizados com o texto desta + RFC, qualquer pacote que não contenha os bits SYN, RST ou ACK irá + resultar em um RST como resposta se a porta estiver fechada e + nenhuma resposta se a porta estiver aberta. Contanto que nenhum + desses três bits esteja incluídos qualquer combinação dos outros + três (FIN, PSH e URG) é válida. O Nmap explora isso com três tipos + de rastreio(scan):</para> + + <variablelist> + <varlistentry> + <term>rastreio(scan) Null (<option>-sN</option>)</term> + + <listitem> + <para>Não marca nenhum bit (o cabeçalho de flag do tcp é + 0)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>rastreio(scan) FIN (<option>-sF</option>)</term> + + <listitem> + <para>Marca apenas o bit FIN do TCP.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>rastreio(scan) Xmas(<option>-sX</option>)</term> + + <listitem> + <para>Marca as flags FIN, PSH e URG, iluminando o pacote + como uma árvore de Natal.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Estes três tipos de rastreio(scan) são exatamente os mesmos em termos + de comportamento exceto pelas flags TCP marcadas no pacotes de + sondagem. Se um pacote RST for recebido a porta é considerada + <literal>fechada</literal> e nenhuma resposta significa que está + <literal>aberta|filtrada</literal>. A porta é marcada como + <literal>filtrada</literal> se um erro ICMP do tipo inalcançável + (tipo 3, código 1, 2, 3, 9, 10, ou 13) for recebido.</para> + + <para>A vantagem principal destes tipos de rastreio(scan) é que eles podem + bisbilhotar através de alguns firewalls não-orientados à conexão e + de routers que filtram pacotes. Outra vantagem é que esses + tipos de rastreio(scan) são um pouco mais camuflados do que o rastreio(scan) SYN. Mas + não conte com isso -- a maioria dos produtos IDS modernos podem + ser configurados para detectá-los. O maior problema é que nem + todos os sistemas seguem a RFC 793 ao pé-da-letra. Diversos + sistemas enviam respostas RST para as sondagens independentemente + do facto da porta estar aberta ou não. Isso faz com que todas as + portas sejam classificadas como <literal>fechadas</literal>. A + maioria dos sistemas operativos que fazem isso são Microsoft + Windows, muitos dispositivos Cisco, BSDI e o IBM OS/400. Esse + rastreio(scan) funciona realmente contra a maioria dos sistemas baseados em + Unix. Outro ponto negativo desses rastreios(scans) é que eles não conseguem + diferenciar portas <literal>abertas</literal> de alguns tipos de + portas <literal>filtradas</literal> deixando com a resposta + <literal>abera|filtrada</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sA</option> (rastreio(scan) TCP ACK)</term> + + <listitem> + <para>Este rastreio(scan) é diferente dos outros discutidos até agora pelo + facto de que ele nunca determina se uma porta está + <literal>aberta</literal> (ou mesmo + <literal>aberta|filtrada</literal>). Ele é utilizado para mapear + conjuntos de regras do firewall determinando se eles são + orientados à conexão ou não e quais portas estão filtradas.</para> + + <para>O pacote de sondagem do rastreio(scan) ACK tem apenas a flag ACK + marcada (a menos que use <option>--scanflags</option>). + Quando se rastreia(scan) sistemas não-filtrados as portas + <literal>abertas</literal> e <literal>fechadas</literal> irão + devolver um pacote RST. O Nmap então coloca nelas o rótulo + <literal>não-filtradas (unfiltered)</literal> significando que + elas estão alcançáveis pelo pacote ACK, mas se elas estão + <literal>abertas</literal> ou <literal>fechadas</literal> é + indeterminado. Portas que não respondem ou que devolvem certas + mensagens de erro ICMP (tipo 3, código 1, 2, 3, 9, 10, ou 13), são + rotuladas como <literal>filtradas</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sW</option> (rastreio(scan) da Janela TCP)</term> + + <listitem> + <para>Rastreio(scan) da Janela é exactamente o mesmo que o rastreio(scan) ACK excepto + que ele explora um detalhe da implementação de certos sistemas de + forma a diferenciar as portas abertas das fechadas ao invés de + sempre mostrar <literal>não-filtrada</literal> quando um RST é + devolvido. Ele faz isso examinando o campo Janela TCP (TCP Window) + do pacote RST devolvido. Em alguns sistemas as portas abertas + usam um valor positivo de tamanho de janela (mesmo para pacotes + RST) enquanto que as portas fechadas têm um valor igual a zero. + Então, ao invés de mostrar sempre uma porta como + <literal>não-filtrada</literal> quando se recebe um RST de volta, + o rastreio(scan) da Janela mostra a porta como <literal>aberta</literal> ou + <literal>fechada</literal> se o valor da Janela TCP no reset for + positivo ou zero, respectivamente.</para> + + <para>Este rastreio(scan) se baseia em um detalhe de implementação de uma + minoria de sistemas na Internet, portanto não se pode confiar + sempre nele. Sistemas que não suportam isso irão normalmente + devolver todas as portas como <literal>fechadas</literal>. É claro + que é possível que a máquina realmente não tenha nenhuma porta + aberta. Se a maioria das portas rastreadas(scaned) estiver + <literal>fechada</literal> mas uns poucos números de portas comuns + (tais como 22, 25, 53) estão <literal>filtrados</literal>, o + sistema muito provavelmente está vulnerável. De vez em quando os + sistemas irão mostrar exatamente o comportamento oposto. Se o seu + rastreio(scan) mostrar 1000 portas abertas e 3 fechadas ou filtradas, então + essas três podem muito bem ser as verdadeiramente abertas.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sM</option> (rastreio(scan) TCP Maimon)</term> + + <listitem> + <para>O rastreio(scan) Maimon recebeu o nome de seu descobridor, Uriel + Maimon. Ele descreveu a técnica na Phrack Magazine, edição 49 + (Novembro de 1996). O Nmap, que incluiu essa técnica, foi lançado + duas edições mais tarde. A técnica é exatamente a mesma que os + rastreios(scans) Null, FIN e Xmas, exceto que a sondagem é FIN/ACK. De acordo + com a RFC 793 (TCP) um pacote RST deveria ser gerado em resposta + a tal sondagem se a porta estiver aberta ou fechada. Entretanto, + Uriel notou que muitos sistemas derivados do BSD simplesmente + descartavam o pacote se a porta estivesse aberta.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--scanflags</option> (rastreio(scan) TCP Customizado)</term> + + <listitem> + <para>Usuários verdadeiramente avançados do Nmap não precisam se + limitar aos tipos de rastreios(scans) enlatados oferecidos. A opção + <option>--scanflags</option> permite que desenhe seu próprio + rastreio(scan) permitindo a especificação de flags TCP arbitrárias. Deixe + sua imaginação correr solta enquanto dribla sistemas de detecção + de intrusão cujos fabricantes apenas olharam rapidamente a página + man do Nmap adicionando regras específicas!</para> + + <para>O argumento do <option>--scanflags</option> pode ser um + valor numérico da marca (flag) como o 9 (PSH e FIN), mas usar + nomes simbólicos é mais fácil. Apenas esprema alguma combinação de + <literal>URG</literal>, <literal>ACK</literal>, + <literal>PSH</literal>, <literal>RST</literal>, + <literal>SYN</literal>, e <literal>FIN</literal>. Por exemplo, + <option>--scanflags URGACKPSHRSTSYNFIN</option> marca tudo, embora + não seja muito útil para rastreio(scan). A ordem em que essas marcas + são especificadas é irrelevante.</para> + + <para>Além de especificar as marcas desejadas pode + especificar um tipo de rastreio(scan) TCP (como o <option>-sA</option> ou + <option>-sF</option>). Esse tipo-base diz ao Nmap como interpretar + as respostas. Por exemplo, um rastreio(scan) SYN considera nenhuma-resposta + como uma indicação de porta <literal>filtrada</literal> enquanto + que um rastreio(scan) FIN trata a mesma como + <literal>aberta|filtrada</literal>. O Nmap irá se comportar da + mesma forma que o tipo de rastreio(scan)-base escolhido, excepto que ele irá + usar as marcas TCP que especificar. Se não escolher um + tipo-base, o rastreio(scan) SYN é utilizado.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sI <hostzumbi[:portadesondagem]></option> (rastreio(scan) + Idle)</term> + + <listitem> + <para>Este método avançado de rastreio(scan) permite um rastreio(scan) TCP realmente + cego das portas do alvo (significando que nenhum pacote é enviado + para o alvo do seu endereço IP real). Ao invés disso um ataque + canal-lateral (side-channel) explora a previsível geração de + sequência de ID, consequência da fragmentação do IP no anfitrião(host) + zumbi, para juntar informações sobre as portas abertas no alvo. + Sistemas IDS irão mostrar o rastreio(scan) como se viessem da máquina zumbi + que especificou (que deve estar activa e obedecer a alguns + critérios). Este tipo fascinante de rastreio(scan) é complexo demais para se + descrever completamente aqui neste guia de referência, então eu + escrevi e postei um trabalho informal com detalhes completos em + <ulink url="https://nmap.org/book/idlescan.html" />.</para> + + <para>Além de ser extraordinariamente camuflado (devido à sua + natureza cega), este tipo de rastreio(scan) permite mapear relações de + confiança baseadas em IP entre máquinas. A listagem de portas + mostra as portas abertas <emphasis>da perspectiva do anfitrião(host) + zumbi.</emphasis> Portanto pode tentar rastrear(scan) um alvo + usando vários zumbis que acha que podem ser confiáveis (via + regras de router/filtro de pacotes).</para> + + <para>Você pode adicionar os dois-pontos seguindo do número da + porta ao nome do anfitrião(host) zumbi, se quiser sondar uma porta em + particular no zumbi verificando as mudanças de IPID. Do contrário + o Nmap irá utilizar a porta que ele normalmente usa por default + para pings tcp (80).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sO</option> (Rastreios(Scans) do protocolo IP)</term> + + <listitem> + <para>Scans do Protocolo IP permitem que determine quais + protocolos IP (TCP, ICMP, IGMP, etc.) são suportados pelas + máquina-alvo. Isso não é tecnicamente um rastreio(scan) de portas, pois + ele varia os números do protocolo IP ao invés dos números de + portas TCP e UDP. Ainda assim, ele utiliza a opção + <option>-p</option> para seleccionar os números de protocolos a + rastrear(scan), mostra os resultados dentro do formato normal da tabela + de portas e até usa o mesmo mecanismo de rastreio(scan) dos + métodos de descoberta de portas. Portanto ele é parecido o + suficiente com um rastreio(scan) de portas e por isso pertence a este + lugar.</para> + + <para>Além de ser útil de certa forma, o rastreio(scan) de protocolo mostra o + poder do software de código aberto. Embora a idéia fundamental + seja bastante simples, eu não tinha pensado em adicioná-la e nem + havia recebido nenhuma solicitação para essa funcionalidade. + Então, no verão de 2000, Gerhard Rieger concebeu a idéia, escreveu + uma excelente alteração (patch) implementando-a e enviou-a para a + lista de discussão nmap-hackers. Eu incorporei a alteração na + árvore do Nmap e lancei uma nova versão no dia seguinte. Poucos + produtos de software comercial tem usuários entusiasmados o + suficiente para desenhar e contribuir com melhorias!</para> + + <para>O rastreio(scan) de protocolo funciona de uma forma similar a um rastreio(scan) + UDP. Ao invés de ficar repetindo alternando o campo de número de + porta de um pacote UDP, ele envia cabeçalhos de pacote IP e faz a + repetição alternando o campo de protocolo IP de 8 bits. Os + cabeçalhos normalmente estão vazios, sem conter dados, nem mesmo + o cabeçalho apropriado do suposto protocolo. As três + excepções são o TCP, o UDP e o ICMP. Um cabeçalho de protocolo + apropriado para estes é incluído, uma vez que alguns sistemas não + os enviarão caso não tenham e porque o Nmap tem as funções para + criá-los ao invés de observar as mensagens de erro ICMP de porta + inalcançável, o rastreio(scan) de protocolo fica de olho nas mensagens ICMP + de <emphasis>protocolo</emphasis> inalcançável. Se o Nmap recebe + qualquer resposta de qualquer protocolo do anfitrião(host)-alvo, o Nmap marca + esse protocolo como <literal>aberto</literal>. Um erro ICMP de + protocolo não-alcançável (tipo 3, código 2) faz com que o + protocolo seja marcado como <literal>fechado</literal>. Outros + erros ICMP do tipo inalcançável (tipo 3, código 1, 3, 9, 10, ou + 13) fazem com que o protocolo seja marcado como + <literal>filtrado</literal> (embora eles provem, ao mesmo tempo, + que o ICMP está <literal>aberto</literal>). Se nenhuma resposta + for recebida após as retransmissões, o protocolo é marcado como + <literal>aberto|filtrado.</literal></para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-b <anfitrião(host) para relay de ftp></option> (Rastreio(Scan) de + FTP bounce)</term> + + <listitem> + <para>Uma característica interessante do protocolo FTP (<ulink + url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) é + o suporte a conexões denominadas proxy ftp. Isso permite que um + usuário conecte-se a um servidor FTP e então solicite que + arquivos sejam enviados a um terceiro servidor. Tal característica + é sujeita a abusos em diversos níveis, por isso a maioria dos + servidores parou de suportá-la. Um dos abusos permitidos é fazer + com que o servidor FTP efectue o rastreio(scan) das portas de outros anfitriões(hosts). + Simplesmente solicite que o servidor FTP envie um arquivo para + cada porta interessante do anfitrião(host)-alvo. A mensagem de erro irá + descrever se a porta está aberta ou não. Esta é uma boa forma de + passar por cima de firewalls porque os servidores FTP de empresas + normalmente são posicionados onde tem mais acesso a outros anfitriões(hosts) + internos que os velhos servidores da Internet teriam. O Nmap + suporta o rastreio(scan) de ftp bounce com a opção <option>-b</option>. Ela + recebe um argumento no formato + <replaceable>nomedousuário</replaceable>:<replaceable>senha</replaceable>@<replaceable>servidor</replaceable>:<replaceable>porta</replaceable>. + <replaceable>Servidor</replaceable> é o nome ou endereço IP de um + servidor FTP vulnerável. Assim como em uma URL normal, pode + omitir + <replaceable>nomedousuário</replaceable>:<replaceable>senha</replaceable>, + neste caso as credenciais de login anónimo (usuário: + <literal>anonymous</literal> senha:<literal>-wwwuser@</literal>) + serão usados. O número da porta (e os dois-pontos) podem ser + omitidos, e então a porta FTP default (21) no + <replaceable>servidor</replaceable> será utilizada.</para> + + <para>Esta vulnerabilidade espalhou-se em 1997 quando o Nmap foi + lançado mas foi corrigida amplamente. Servidores vulneráveis + ainda estão por aí, então pode valer a pena tentar se tudo o mais + falhar. Se passar por cima de um firewall é o seu objetivo, + faça o rastreio(scan) da rede-alvo procurando por uma porta 21 aberta (ou mesmo + por qualquer serviço FTP se rastrear(scan) todas as portas com a + detecção de versão), então tente um rastreio(scan) bounce usando-as. O Nmap + irá dizer se o anfitrião(host) é vulnerável ou não. Se estiver apenas + tentando encobrir suas pegadas, não precisa (e, na verdade, + não deveria) limitar-se a anfitriões(hosts) na rede-alvo. Antes de sair + rastreando endereços aleatórios na Internet procurando por + servidores FTP, considere que os administradores de sistemas podem + não apreciar o seu abuso nos servidores deles.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-specification"> + <title>Especificação de Portas e Ordem de Scan</title> + + <para>Somado a todos os métodos de rastreio(scan) discutidos anteriormente, o Nmap + oferece opções para especificar quais portas são rastreadas(scaned) e se a ordem + de rastreio(scan) é aleatória ou sequencial. Por default, o Nmap rastreia(scan) + todas as portas até, e incluindo, 1024, bem como portas com numeração + alta listadas no arquivo <filename>nmap-services</filename> para + o(s) protocolo(s) rastreados(scaned).</para> + + <variablelist> + <varlistentry> + <term><option>-p <faixa de portas></option> (Rastreia apenas + as portas especificadas)</term> + + <listitem> + <para>Esta opção especifica quais as portas que deseja rastrear(scan) + e prevalece sobre o default. Números de portas individuais são OK, + bem como as faixas separadas por um hífen (p.ex.: 1-1023). Os + valores iniciais e/ou finais da faixa podem ser omitidos, o que + faz com que o Nmap use 1 e 65535 respectivamente. Portanto + pode especificar <option>-p-</option> para rastrear(scan) as portas de 1 + até 65535. Escanear a porta zero é permitido se especificar + explicitamente. Para o rastreio(scan) do protocolo IP + (<option>-sO</option>), esta opção especifica os números dos + protocolos que deseja rastrear(scan) (0-255).</para> + + <para>Quando rastrear(scan) ambas as portas TCP e UDP, pode + especificar um protocolo em particular precedendo os números de + portas com <literal>T:</literal> ou <literal>U:</literal>. O + qualificador dura até que especifique um novo qualificador. + Por exemplo, o argumento <option>-p + U:53,111,137,T:21-25,80,139,8080</option> faria o rastreio(scan) das portas UDP + 53, 111 e 137, bem como as portas TCP listadas. Note que para + rastrear(scan) ambas as portas UDP & TCP, tem que especificar + <option>-sU</option> e pelo menos um tipo de rastreio(scan) TCP (tal como + <option>-sS</option>, <option>-sF</option> ou + <option>-sT</option>). Se nenhum qualificador de protocolo for + informado, os números de portas serão acrescentados à todas as + listas de protocolos.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-F</option> (rastreio(scan) Rápido (portas limitadas))</term> + + <listitem> + <para>Especifica que deseja apenas rastrear(scan) as portas + listadas no arquivo <filename>nmap-services</filename> que vem com + o nmap (ou o arquivo de protocolos para o <option>-sO</option>). + Isto é muito mais rápido do que rastrear(scan) todas as 65535 portas de + um anfitrião(host). Pelo facto desta lista conter tantas portas TCP (mais de + 1200), a diferença de velocidade de um rastreio(scan) TCP default (cerca de + 1650 portas) não é dramática. A diferença pode ser enorme se + especificar seu próprio minúsculo arquivo + <filename>nmap-services</filename> usando a opção + <option>--datadir</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-r</option> (Não usa as portas de forma + aleatória)</term> + + <listitem> + <para>Por default o Nmap usa a ordem das portas a serem + rastreadas de forma aleatória (excepto aquelas portas normalmente + acessíveis que são movidas próximas ao início por + motivos de eficiência). Essa técnica de busca aleatória + normalmente é desejável mas pode especificar + <option>-r</option> para um rastreio(scan) de portas + sequencial.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-version-detection"> + <title>Detecção de Serviço e Versão</title> + + <para>Aponte o Nmap para uma máquina remota e ele poderá lhe dizer que + as portas 25/tcp, 80/tcp e 53/udp estão abertas. Utilizar o banco de + dados <filename>nmap-services</filename> com cerca de 2.200 serviços + bastante conhecidos do Nmap iria relatar que aquelas portas + provavelmente correspondem a um servidor de correio eletrônico (SMTP), a + um servidor de páginas web (HTTP) e a um servidor de nomes (DNS) + respectivamente. Essa pesquisa normalmente é precisa -- a grande maioria + de daemons escutando na porta TCP 25 é de facto de servidores de + correio eletrónico. Entretanto não deveria apostar a sua segurança + nesta informação! As pessoas podem e executam serviços em portas + estranhas.</para> + + <para>Mesmo que o Nmap esteja certo e o servidor hipotético acima + esteja executando os serviços SMTP, HTTP e DNS, isso não é informação o + bastante. Quando fizer uma avaliação de vulnerabilidades (ou mesmo um + simples inventário da rede) de sua empresa ou clientes, realmente + deseja saber qual o programa-servidor de correio eletrónico ou de nomes + e as versões que estão rodando. Ter um número de versão exacto ajuda + substancialmente na determinação de quais explorações (exploits) o + servidor está vulnerável. A detecção de versão ajuda a obter esta + informação.</para> + + <para>Depois que as portas TCP e/ou UDP forem descobertas usando + qualquer um dos outros métodos de rastreio(scan), a detecção de versão interroga + essas portas para determinar mais informações sobre o que realmente + sendo executado nessas portas. O banco de dados + <filename>nmap-service-probes</filename> do Nmap contém sondagens para + pesquisar diversos serviços e expressões de acerto (match expressions) + para reconhecer e destrinchar as respostas. O Nmap tenta determinar os + protocolos de serviços (p.ex.: ftp, ssh, telnet, http), o nome da + aplicação (p.ex.: ISC Bind, Apache httpd, Solaris telnetd), o número da + versão, o nome do anfitrião(host), tipo de dispositivo (p.ex.: impressora, + router), a família do SO (p.ex.: Windows, Linux) e às vezes detalhes + diversos do tipo, se um servidor X está aberto para conexões, a versão + do protocolo SSH ou o nome do usuário do KaZaA. É claro que a maioria + dos serviços não fornece todas essas informações. Se o Nmap foi + compilado com o suporte ao OpenSSL ele irá se conectar aos servidores + SSL para deduzir qual o serviço que está escutando por trás da camada + criptografada. Quando os serviços RPC são descobertos, o "amolador" de + RPC (RPC grinder) do Nmap (<option>-sR</option>) é automaticamente + utilizado para determinar o nome do programa RPC e o número da versão. + Algumas portas UDP são deixadas no estado + <literal>aberta|filtrada</literal> depois que rastreio(scan) de porta UDP não + consegue determinar se a porta está aberta ou filtrada. A detecção de + versão irá tentar provocar uma resposta dessas portas (do mesmo jeito + que faz com as portas abertas) e alterar o estado para aberta se + conseguir. Portas TCP do tipo <literal>aberta|filtrada</literal> são + tratadas da mesma forma. Note que a opção <option>-A</option> do Nmap + habilita a detecção de versão entre outras coisas. Um trabalho + documentando o funcionamento, uso e customização da detecção de versão + está disponível em <ulink + url="https://nmap.org/versionscan.html" />.</para> + + <para>Quando o Nmap recebe uma resposta de um serviço mas não consegue + encontrá-la em seu banco de dados, ele mostra uma identificação + (fingerprint) especial e uma URL para que envie informações se + souber com certeza o que está rodando nessa porta. Por favor considere + dispor de alguns minutos para mandar essa informação de forma que sua + descoberta possa beneficiar a todos. Graças a esses envios o Nmap tem + cerca de 3.000 padrões de acerto para mais de 350 protocolos, tais como + o smtp, ftp, http, etc.</para> + + <para>A detecção de versão é habilitada e controlada com as seguintes + opções:</para> + + <variablelist> + <varlistentry> + <term><option>-sV</option> (detecção de versão)</term> + + <listitem> + <para>Habilita a detecção de versão, conforme discutido acima. + Alternativamente pode usar a opção <option>-A</option> para + habilitar tanto a detecção de SO como a detecção de versão.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--allports</option> (Não exclui nenhuma porta da + detecção de versão)</term> + + <listitem> + <para>Por default a detecção de versão do Nmap salta a porta TCP + 9100 por causa de algumas impressoras que imprimem qualquer coisa + que seja enviada para essa porta, levando a dezenas de páginas com + requisições HTTP, requisições de sessões SSL binárias, etc. Esse + comportamento pode ser alterado modificando-se ou removendo a + directiva <literal>Exclude</literal> no + <filename>nmap-service-probes</filename> ou pode especificar + <option>--allports</option> para rastrear(scan) todas as portas + independente de qualquer directiva + <literal>Exclude</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-intensity <intensidade></option> + (Estabelece a intensidade do rastreio(scan) de versão)</term> + + <listitem> + <para>Quando está executando um rastreio(scan) de versão + (<option>-sV</option>) o nmap envia uma série de sondagens, cada + qual com um valor atribuído de raridade, entre 1 e 9. As sondagens + com números baixos são efectivas contra uma ampla variedade de + serviços comuns, enquanto as com números altos são raramente + úteis. O nível de intensidade especifica quais sondagens devem ser + utilizadas. Quando mais alto o número, maiores as chances de o + serviço ser corretamente identificado. Entretanto rastreios(scans) de alta + intensidade levam mais tempo. A intensidade deve estar entre 0 e + 9. O default é 7. Quando uma sondagem é registrada na porta-alvo + através da directiva <filename>nmap-service-probes</filename> + <literal>ports</literal>, essa sondagem é tentada + independentemente do nível de intensidade. Isso assegura que as + sondagens DNS sempre serão tentadas contra qualquer porta 53 + aberta e a sondagem SSL será realizada contra a 443, etc.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-light</option> (Habilita o modo leve + (light))</term> + + <listitem> + <para>Esse é um apelido conveniente para + <option>--version-intensity 2</option>. Esse modo leve torna o + rastreio(scan) de versão muito mais rápido, mas é ligeiramente menos + provável que identifique os serviços.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-all</option> (Tenta simplesmente todas as + sondagens)</term> + + <listitem> + <para>Um apelido para <option>--version-intensity 9</option>, + assegurando que todas as sondagens sejam tentadas contra cada + porta.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--version-trace</option> (Monitora as atividades do + rastreio(scan) de versão)</term> + + <listitem> + <para>Isto faz com que o Nmap mostre informações de depuração + extensivas sobre o que o rastreio(scan) de versão está fazendo. É um + sub-conjunto do que obteria com + <option>--packet-trace</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-sR</option> (Scan RPC)</term> + + <listitem> + <para>Este método trabalha em conjunto com os vários métodos de + rastreio(scan) de portas do Nmap. Ele pega todas as portas TCP/UDP + descobertas no estado aberta e inunda-as com comandos NULL do + programa SunRPC em uma tentativa de determinar se elas são portas + RPC e se forem, quais programas e números de versão elas mostram. + Dessa forma pode obter efectivamente a mesma informação que o + <command>rpcinfo -p</command> mesmo se o portmapper do alvo + estiver atrás de um firewall (ou protegido por TCP wrappers). + Chamarizes não funcionam ainda com o rastreio(scan) RPC. Isso é habilitado + automaticamente como parte do rastreio(scan) de versão + (<option>-sV</option>) se o solicitar. Como a detecção de + versão inclui isso e é muito mais abrangente, o + <option>-sR</option> raramente é necessário.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-os-detection"> + <title>Detecção de SO</title> + + <para>Uma das características mais conhecidas do Nmap é a detecção + remota de SO utilizando a identificação da pilha (stack fingerprinting) + do TCP/IP. O Nmap envia uma série de pacotes TCP e UDP ao anfitrião(host) remoto e + examina praticamente todos os bits das respostas. Após executar dezenas + de testes como a amostragem TCP ISN, suporte e ordenamento das opções do + TCP, amostragem IPID e a observação do tamanho inicial da janela, o Nmap + compara os resultados com o banco de dados + <filename>nmap-os-fingerprints</filename> com mais de 1500 + identificações de SO conhecidas e mostra os detalhes do SO se houver uma + correspondência. Cada identificação inclui uma descrição textual livre + do SO e uma classificação que fornece o nome do fabricante (p.ex.: Sun), + SO base (p.ex.: Solaris), geração do SO (p.ex.: 10) e tipo de + dispositivo (genérico, router, switch, consola de jogo, etc.).</para> + + <para>Se o Nmap não conseguir identificar o SO da máquina e as + condições forem favoráveis (p.ex.: pelo menos uma porta aberta e uma + porta fechada foram encontradas), o Nmap irá fornecer uma URL onde + poderá enviar a identificação se souber (com certeza) o SO em execução + na máquina. Fazendo isso, contribui para o pool de sistemas + operacionais conhecidos pelo Nmap e, com isso, ele será mais preciso + para todos.</para> + + <para>A detecção de SO habilita diversos outros testes que usam as + informações coletadas durante o processo. Um deles é a medição de + uptime, que utiliza a opção timestamp do TCP (RFC 1323) para supor + quando uma máquina foi reiniciada pela última vez. Isso apenas é + mostrado para as máquinas que fornecem essa informação. Outro é a + Classificação de Previsibilidade da Seqüencia do TCP. Ele mede + aproximadamente o grau de dificuldade de se estabelecer uma conexão TCP + forjada contra um anfitrião(host) remoto. É útil para se explorar relações de + confiança baseadas no IP de origem (rlogin, filtros de firewall, etc.) + ou para ocultar a origem de um ataque. Esse tipo de enganação (spoofing) + raramente é executada hoje em dia, mas muitas máquinas ainda estão + vulneráveis a ele. O número de dificuldade real é baseado em amostragens + estatísticas e pode variar. Normalmente é melhor usar a classificação em + inglês, do tipo <quote>worthy challenge</quote> (um desafio que vale a + pena) ou <quote>trivial joke</quote> (uma piada, muito fácil). Isso só é + mostrado na saída normal do modo verbose (<option>-v</option>). Quando o + modo verbose é habilitado juntamente com o <option>-O</option>, a + Geração de Seqüencia IPID também é mostrada. A maioria das máquinas é + classificada como <quote>incremental</quote> , o que significa que elas + incrementam o campo ID no cabeçalho IP para cada pacote que envia. Isso + torna-as vulnerável a diversos ataques avançados de levantamento e + forjamento de informações.</para> + + <para>Um trabalho documentando o funcionamento, utilização e + customização da datecção de versão está disponível em mais de uma dezena + de línguas em <ulink + url="https://nmap.org/osdetect/" />.</para> + + <para>A deteção de SO é habilitada e controlada com as seguintes + opções:</para> + + <variablelist> + <varlistentry> + <term><option>-O</option> (Habilita a detecção de SO)</term> + + <listitem> + <para>Habilita a deteção de SO como discutido acima. + Alternativamente pode usar <option>-A</option> para + habilitar tanto a detecção de SO quanto a detecção de + versão.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--osscan-limit</option> (Limitar a detecção de SO a + alvos promissores)</term> + + <listitem> + <para>A detecção de SO é bem mais eficiente se ao menos uma porta + TCP aberta e uma fechada for encontrada. Escolha esta opção e o + Nmap não irá nem tentar a detecção de SO contra anfitriões(hosts) que não + correspondam a este critério. Isso pode economizar um tempo + considerável, particularmente em rastreios(scans) <option>-P0</option> contra + muitos anfitriões(hosts). Isso só importa quando a detecção de SO é solicitada + através de <option>-O</option> ou <option>-A</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--osscan-guess</option>; <option>--fuzzy</option> + (Resultados de tentativas de detecção de SO)</term> + + <listitem> + <para>Quano o Nmap não é capaz de detectar uma correspondência + exacta de SO, às vêzes ele oferece possibilidades aproximada. A + correspondência tem que ser muito próxima para o Nmap fazer isso + por default. Qualquer uma dessas opções (equivalentes) tornam as + tentativas do Nmap mais agressivas.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-performance"> + <title>Temporização (Timing) e Desempenho</title> + + <para>Uma das minhas mais altas prioridades no desenvolvimento do Nmap + tem sido o desempenho. Um rastreio(scan) default (<command>nmap + <replaceable>hostname</replaceable></command>) de um anfitrião(host) em minha rede + local leva apenas um quinto de segundo. Isso mal dá tempo de piscar o + olho, mas esse tempo conforme está rastreando dezenas ou centenas + de milhares de anfitriões(hosts). Além disso, certos tipos de rastreio(scan) como o + rastreio(scan) UDP ou a detecção de versão, aumentam o tempo de + rastreio(scan) substancialmente. Da mesma forma algumas configurações de + firewall fazem o mesmo, particularmente quando limitam a taxa de + resposta. Embora o Nmap se utilize de paralelismo e muitos outros + algoritmos avançados para acelerar esses rastreios(scans) o usuário tem o controle + final sobre como o Nmap executa. Usuários avançados elaboram comandos do + Nmap cuidadosamente para obter apenas as informações que importam, + sempre se preocupando com as restrições de tempo.</para> + + <para>Técnicas para melhorar os tempos de rastreio(scan) incluem omitir testes + não-críticos e atualizar até a versão mais recente do Nmap (melhorias de + desempenho são feitas freqüentemente). Otimizar os parâmetros de tempo + também podem fazer uma grande diferença. Essas opções estão listadas + abaixo.</para> + + <variablelist> + <varlistentry> + <term><option>--min-hostgroup <tamanho></option>; + <option>--max-hostgroup <tamanho></option> (Ajuste dos + tamanhos dos grupos de rastreio(scan) paralelos)</term> + + <listitem> + <para>O Nmap tem a habilidade de fazer um rastreio(scan) de portas ou de + versões em múltiplos anfitriões(hosts) em paralelo. O Nmap faz isso dividindo + a faixa de endereços IP-alvo em grupos e então rastreando um + grupo de cada vez. No geral grupos maiores são mais eficientes. A + contrapartida é que os resultados dos anfitriões(hosts) não pode ser fornecido + até que o grupo inteiro tenha terminado. Portanto se o Nmap + começou com um tamanho de grupo igual a 50, o usuário não + receberia nenhum relatório (exceto pelas atualizações mostradas no + modo verbose) até que os primeiros 50 anfitriões(hosts) tivessem + completado.</para> + + <para>Por default, o Nmap assume um compromisso para resolver esse + conflito. Ele começa com um tamanho de grupo pequeno, igual a + cinco, para que os primeiros resultados venham rápido e então + aumenta o tamanho até que chegue em 1024. O número default exacto + depende das opções fornecidas. Por questões de eficiência o Nmap + usa tamanhos de grupo maiores para o UDP ou para rastreios(scans) TCP com + poucas portas.</para> + + <para>Quando o tamanho de grupo máximo é especificado com + <option>--max-hostgroup</option>, o Nmap nunca irá exceder esse + tamanho. Especifique um tamanho mínimo com + <option>--min-hostgroup</option> e o Nmap irá tentar manter o + tamanho dos grupos acima desse nível. O Nmap pode ter que usar + tamanhos menores do que especificou, se não houverem + anfitriões(hosts)-alvo suficientes restando em uma dada interface para + completar o mínimo especificado. Ambos podem ser configurados para + manter o tamanho do grupo dentro de uma faixa específica, embora + isso raramente seja desejado.</para> + + <para>O uso primário destas opções é especificar um tamanho de + grupo mínimo grande de forma que o rastreio(scan) completo seja executado mais + rapidamente. Uma escolha comum é 256 para rastrear(scan) uma rede em + blocos de tamanho Classe C. Para um rastreio(scan) com muitas portas + exceder esse número não irá ajudar muito. Para rastreios(scans) com poucos + números de portas um tamanho de grupo de anfitriões(hosts) de 2048 ou mais + pode ser útil.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--min-parallelism <numprobes></option>; + <option>--max-parallelism <numprobes></option> (Ajuste da + paralelização das sondagens)</term> + + <listitem> + <para>Estas opções controlam o número total de sondagens que podem + estar pendentes para um grupo de anfitriões(hosts). Elas são usadas para o + rastreio(scan) de portas e para a descoberta de anfitriões(hosts). Por default + o Nmap calcula um paralelismo ideal e constantemente actualizado + baseado no desempenho da rede. Se os pacotes estiverem sendo + descartados o Nmap reduz o ritmo e liberta menos sondagens + pendentes. O número de sondagens ideal aumenta vagarosamente + conforme a rede se mostre mais confiável. Estas opções estabelecem + limites mínimo e máximo nessa variável. Por default o paralelismo + ideal pode cair até 1 se a rede se mostrar não-confiável e subir + até diversas centenas em condições perfeitas.</para> + + <para>O uso mais comum é estabelecer + <option>--min-parallelism</option> em um número maior que um para + melhorar a velocidade dos rastreios(scans) de anfitriões(hosts) ou redes com desempenho + ruim. Esta é uma opção arriscada para se ficar brincando pois + configurar um valor alto demais pode afetar a precisão. Configurar + isso também reduz a habilidade do Nmap de controlar o paralelismo + dinamicamente baseado nas condições da rede. Um valor igual a dez + pode ser razoável, embora eu só ajuste esse valor como última + alternativa.</para> + + <para>A opção <option>--max-parallelism</option> às vêzes é + configurada para evitar que o Nmap envie aos anfitriões(hosts) mais do que uma + sondagem de cada vez. Isso pode ser útil em conjunto com + <option>--scan-delay</option> (discutido mais tarde), embora esta + última normalmente sirva bem ao propósito por si só.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--min-rtt-timeout <milissegundos></option>, + <option>--max-rtt-timeout <milissegundos></option>, + <option>--initial-rtt-timeout <milissegundos></option> (Ajuste + de tempo de expiração (timeouts) das sondagens)</term> + + <listitem> + <para>O Nmap mantém um valor de tempo de expiração (timeout) de + execução para determinar quanto tempo ele deve esperar por uma + resposta de uma sondagem antes de desistir ou retransmitir essa + sondagem. Isso é calculado com base nos tempos de resposta de + sondagens anteriores. Se a lentidão da rede se mostra + significativa e variável esse tempo de expiração pode subir para + vários segundos. Ele também começa com um nível conservador + (alto) e pode ficar desse jeito por um tempo enquanto o Nmap + rastreia(scan) anfitriões(hosts) não-responsivos.</para> + + <para>Estas opções recebem um valor em milissegundos. Especificar + um <option>--max-rtt-timeout</option> e + <option>--initial-rtt-timeout</option> mais baixos que o default + pode reduzir o tempo de rastreio(scan) significativamente. Isso é + particularmente verdade para rastreios(scans) sem ping + (<option>-P0</option>) e para aqueles contra redes bastante + filtradas. Mas não se torne muito agressivo. O rastreio(scan) pode acabar + levando mais tempo se especificar um valor tão baixo que + muitas sondagens irão expirar o tempo e serem retransmitidas + enquanto a resposta ainda está em trânsito.</para> + + <para>Se todos os anfitriões(hosts) estão em uma rede local, 100 milissegundos + é um valor de <option>--max-rtt-timeout</option> razoavelmente + agressivo. Se houver roteamento envolvido faça um ping de um anfitrião(host) + da rede primeiro com o utilitário ICMP ping ou com um formatador + de pacotes customizados como o hping2, que pode passar por um + firewall mais facilmente. Descubra o tempo máximo de round trip em + dez pacotes mais ou menos. Coloque o dobro desse valor em + <option>--initial-rtt-timeout</option> e o triplo ou quádruplo + para o <option>--max-rtt-timeout</option>. Normalmente eu não + configuro o rtt máximo abaixo de 100ms, não importa quais os + tempos de ping. Eu também não excedo o valor 1000ms.</para> + + <para><option>--min-rtt-timeout</option> é uma opção raramente + utilizada que poderia ser útil quando uma rede é tão não-confiável + que mesmo o default do Nmap é muito agressivo. Considerando que o + Nmap apenas reduz o tempo de expiração para um valor mínimo quando + a rede parece ser confiável, esta necessidade não é comum e + deveria ser reportada à lista de discussão nmap-dev como um + bug.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--host-timeout <milissegundos></option> (Desiste + em anfitriões(hosts)-alvo lentos)</term> + + <listitem> + <para>Alguns anfitriões(hosts) simplesmente levam tempo + <emphasis>demais</emphasis> para serem rastreados. Isso pode ser + causado por um hardware ou software de rede com fraco desempenho + ou pouco confiável, limitação na taxa dos pacotes ou por um + firewall restritivo. Os poucos anfitriões(hosts) mais lentos de todos os anfitriões(hosts) + escaneados podem acabar sendo responsáveis pela maior parte do + tempo total gasto com o rastreio(scan). Às vêzes é melhor cortar fora o + prejuízo e saltar esses anfitriões(hosts) logo no início. Isso pode ser feito + especificando <option>--host-timeout</option> com o número de + milissegundos que tolera esperar. Eu normalmente especifico + 1800000 para ter certeza de que o Nmap não irá gastar mais do que + meia hora em um único anfitrião(host). Note que o Nmap pode estar escaneando + outros anfitriões(hosts) ao mesmo tempo em que essa meia hora desse único anfitrião(host) + está correndo, então não é uma perda de tempo total. Um anfitriões(hosts) que + expira o tempo é saltado. Nenhum resultado de tabela de portas, + detecção de SO ou detecção de versão é mostrado para esse + anfitrião(host).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--scan-delay <milissegundos></option>; + <option>--max-scan-delay <milissegundos></option> (Ajusta o + atraso entre sondagens)</term> + + <listitem> + <para>Esta opção faz com que o Nmap aguarde um determinado número + de milissegundos entre cada sondagem enviada a um dado anfitrião(host). Isto + é particularmente útil no caso de limitação de taxas de + transferência. Máquinas Solaris (entre muitas outras) irão + normalmente responder a pacotes de sondagens de rastreios(scans) UDP com + apenas uma mensagem ICMP por segundo. Qualquer número maior que + isso, enviado pelo Nmap, será um desperdício. Um + <option>--scan-delay</option> de 1000 irá manter uma taxa de + transferência baixa. O Nmap tenta detectar a limitação de taxa e + ajusta o atraso no rastreio(scan) de acordo, mas não dói especificar + explicitamente se já sabe qual a taxa que funciona + melhor.</para> + + <para>Outro uso do <option>--scan-delay</option> é para evitar os + sistemas de prevenção e deteção de intrusão (IDS/IPS) baseados em + limites.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-T + <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane></option> + (Estabelece um padrão de temporização)</term> + + <listitem> + <para>Embora os controles de temporização de ajuste fino + discutidos nas seções anteriores sejam poderosos e efectivos, + algumas pessoas consideram-nos confusos. Escolher os + valores apropriados pode às vêzes levar mais tempo do que o + próprio rastreio(scan) que está tentando optimizar. Por isso o Nmap + oferece uma aproximação mais simples com seis padrões de + temporização. Você pode especificá-los com a opção + <option>-T</option> e os números (0 - 5) ou os nomes. Os nomes de + padrões são paranóico (paranoid, 0), furtivo (sneaky, 1), educado + (polite, 2), normal (3), agressivo (agressive, 4) e insano + (insane, 5). Os dois primeiros são para evitar um IDS. O modo + educado (ou polido), diminui o ritmo de rastreio(scan) para usar + menos banda e recursos da máquina alvo. O modo normal é o default + e, portanto, <option>-T3</option> não faz nada. O modo agressivo + acelera os rastreios(scans) assumindo que está em uma rede razoavelmente + rápida e confiável. Finalmente, o modo insano assume que está + em uma rede extraordinariamente rápida ou está disposto a + sacrificar alguma precisão pela velocidade.</para> + + <para>Estes padrões permitem que o usuário especifique o quão + agressivo desejam ser, ao mesmo tempo que deixam o Nmap escolher + os valores de temporização exactos. Os padrões também fazem ajustes + pequenos na velocidade onde ainda não existem opções para controle + de ajuste fino. Por exemplo, <option>-T4</option> proibe que o + atraso dinâmico de rastreio(scan) exceda 10ms para portas TCP e + <option>-T5</option> corta esse valor para 5 milissegundos. + Padrões podem ser utilizados em conjunto com controles de ajuste + fino desde que o padrão seja especificado primeiramente. Do + contrário os valores default para os padrões irão se sobrepor aos + valores que especificar. Eu recomendo usar + <option>-T4</option> quando rastrear(scan) redes razoavelmente modernas + e confiáveis. Mantenha essa opção (no começo da linha de comando) + mesmo que adicione controles de ajuste fino, de forma que + possa se beneficiar com as pequenas otimizações extras que + ela habilita.</para> + + <para>Se tiver uma conexão ethernet ou de banda-larga + decente, eu recomendaria sempre utilizar <option>-T4</option>. + Algumas pessoas adoram o <option>-T5</option> embora seja + agressivo demais para o meu gosto. As pessoas às vêzes especificam + <option>-T2</option> porque acham que diminui a probabilidade de + travar os anfitriões(hosts) ou porque elas consideram-se educadas em geral. + Normalmente elas não percebem o quão lento o <option>-T + Polite</option> realmente é. Esses rastreios(scans) podem levar dez vêzes + mais tempo que um rastreio(scan) default. Travamento de máquinas e problemas + com a banda são raros com as opções de temporização default + (<option>-T3</option>) e portanto, eu normalmente as recomendo + para escaneadores precavidos. Omitir a detecção de versão é bem + mais eficaz do que ficar brincando com os valores de temporização + para reduzir esses problemas.</para> + + <para>Embora o <option>-T0</option> e o <option>-T1</option> + possam ser usados para evitar alertas no IDS, eles irão leva muito + mais tempo para rastrear(scan) milhares de máquinas ou portas. Para um + rastreio(scan) tão amplo prefira estabelecer os valores exatos de + temporização que precisa ao invés de depender dos valores + "engessados" de <option>-T0</option> e + <option>-T1</option>.</para> + + <para>Os principais efeitos de <option>T0</option> é serializar o + rastreio(scan) de forma que apenas uma porta é rastreada de cada vez e então + aguardar cinco minutos entre o envio de cada sondagem. + <option>T1</option> e <option>T2</option> são similares mas + aguardam apenas 15 segundos e 0,4 segundos, respectivamente, entre + as sondagens. <option>T3</option> é o comportamento default do + Nmap, que inclui o paralelismo. <option>T4</option> faz o mesmo + que <option>--max-rtt-timeout 1250 --initial-rtt-timeout + 500</option> e estabelece o atraso máximo de rastreio(scan) TCP em 10 + milissegundos. <option>T5</option> faz o mesmo que + <option>--max-rtt-timeout 300 --min-rtt-timeout 50 + --initial-rtt-timeout 250 --host-timeout 900000</option> e + estabelece o atraso máximo de rastreio(scan) TCP em 5ms.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-bypass-firewalls-ids"> + <title>Evitando e enganando o Firewall/IDS</title> + + <para>Muitos pioneiros da Internet vislumbraram uma rede mundial aberta + com um espaço de endereçamento IP universal que permitisse conexões + virtuais entre quaisquer dois nós. Isso permite que os anfitriões(hosts) actuem como + verdadeiros semelhantes, servindo e obtendo informações uns dos outros. + As pessoas poderiam aceder a seus computadores domésticos do trabalho, + mudando os ajustes do controle de climatização ou abrindo as portas para + convidados. Essa visão de conectividade universal foi sufocada pela + falta de espaço de endereçamento e preocupações com a segurança. No + início dos anos 1990 as empresas começaram a instalar firewalls para o + propósito claro de reduzir a conectividade. Rede enormes foram isoladas + da Internet-sem-fronteiras por proxies de aplicativos, tradução de + endereçamento de rede (network address translation) e filtros de + pacotes. O fluxo irrestrito de informações deu a vez à regulamentação + acirrada de canais de comunicação autorizados e ao conteúdo que neles + trafegam.</para> + + <para>As obstruções de rede como o firewall podem tornar o mapeamente + de uma rede extremamente difícil. E isso não vai se tornar mais fácil, + pois sufocar as sondagens casuais é freqüentemente o objetivo + principal de se instalar esses dispositivos. Apesar disso o Nmap + oferece muitas ferramentas para ajudar a entender essas redes complexas + e para verificar que os filtros estão funcionando como esperado. Ele até + suporta mecanismos para passar por cima de defesas mal implementadas. Um + dos melhores métodos para se entender a postura de segurança de uma rede + é tentar derrubá-la. Pense com a mente de uma pessoa que quer atacá-lo + e aplique técnicas desta seção contra a sua rede. Lance um rastreio(scan) FTP + bounce, um rastreio(scan) idle, um ataque de fragmentação ou tente "tunelar" + (criar um túnel) através de um de seus próprios proxies.</para> + + <para>Além de restringir a atividade de rede as empresas estão + monitorando o tráfego cada vez mais com sistemas de detecção de + intrusão (IDS). Todos os principais IDS vêm com regras designadas para + detectar rastreios(scans) feitos com o Nmap porque os rastreios(scans) são, às vêzes, + precursores de ataques. Muitos desses produtos foram recentemente + metamorfoseados em sistemas de <emphasis>prevenção</emphasis> de + intrusão (IPS) que bloqueiam o tráfego considerado malicioso de forma + activa. Infelizmente para administradores de rede e vendedores de IDS, + detectar confiavelmente as más intenções através da análise de dados de + pacotes é um problema difícil. Atacantes com paciência, habilidade e a + ajuda de certas opções do Nmap podem normalmente passar por um IDS sem + serem detectados. Enquanto isso, os administradores devem lidar com um + alto número de resultados do tipo falso-positivo onde actividades + inocentes são diagnosticadas erradamente e recebem alertas ou são + bloqueadas.</para> + + <para>De vez em quando as pessoas sugerem que o Nmap não deveria + oferecer opções que permitam evitar as regras de firewalls ou passar + desapercebidos por IDSs. Elas argumentam que essas características são + tão sujeitas à má-utilização por atacantes quanto são utilizadas por + administradores para aumentar a segurança. O problema com esta lógica é + que esses métodos ainda assim seriam utilizados pelos atacantes que + encontrariam outras ferramentas ou então acrescentariam essa + funcionalidade no Nmap. Enquanto isso os administradores achariam muito + mais difícil executar suas tarefas. Instalar apenas servidores FTP + modernos e corrigidos é uma defesa muito melhor do que tentar evitar a + distribuição de ferramentas que implementem o ataque FTP bounce.</para> + + <para>Não existe uma carta mágica (ou opção do Nmap) para detectar e + subverter firewalls e sistemas IDS. É necessário habilidade e + experiência. Um tutorial está além do objectivo deste guia de referência + que apenas lista as opções relevantes e descreve suas funções.</para> + + <variablelist> + <varlistentry> + <term><option>-f</option> (fragmenta os pacotes); + <option>--mtu</option> (usando a MTU especificada)</term> + + <listitem> + <para>A opção <option>-f</option> faz com que o rastreio(scan) solicitado + (incluindo rastreios(scans) usando ping) utilize pequenos pacotes IP + fragmentados. A idéia é dividir o cabeçalho TCP em diversos + pacotes para tornar mais difícil para os filtros de pacotes, os + sistemas de detecção de intrusão e outros aborrecimentos, + detectar o que está fazendo. Tenha cuidado com isto! Alguns + programas tem problemas para lidar com estes pequenos pacotes. O + sniffer da velha-guarda chamado Sniffit sofria uma falha de + segmentação assim que recebia o primeiro fragmento. Especifique + esta opção uma vez e o Nmap dividirá os pacotes em 8 bytes ou + menos após o cabeçalho IP. Portanto, um cabeçalho TCP de 20 bytes + seria dividido em 3 pacotes. Dois com oito bytes do cabeçalho TCP + e um com os quatro restantes. É claro que cada fragmento também + tem um cabeçalho IP. Especifique <option>-f</option> novamente + para usar 16 bytes por fragmento (reduzindo o número de + fragmentos). Ou então, pode especificar o seu próprio tamanho + de quebra com a opção <option>--mtu</option>. Não especifique + também o <option>-f</option> se usar o + <option>--mtu</option>. A quebra deve ser um múltiplo de 8. Embora + os pacotes fragmentados não passem por filtros de pacotes e + firewalls que enfilerem todos os fragmentos IP, tal como a opção + CONFIG_IP_ALWAYS_DEFRAG do kernel do Linux faz, algumas redes não + aguentam o impacto no desempenho que isso causa deixando a opção + desabilitada. Outros não conseguem habilitar isso porque os + fragmentos podem seguir por rotas diferentes na rede. Alguns + sistemas de origem desfragmentam pacotes de saída no kernel. O + Linux e o módulo de reastreamento de conexão do iptables é um + exemplo desse tipo. Faça um rastreio(scan) enquanto executa um sniffer como + o Ethereal para ter a certeza de que pacotes enviados estão + fragmentados. Se o SO do seu anfitrião(host) estiver causando problemas + tente a opção <option>--send-eth</option> para passar por cima da + camada IP e enviar frames ethernet em estado bruto(raw).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-D <chamariz1 [,chamariz2][,ME],...></option> + (Disfarça um rastreio(scan) usando chamarizes)</term> + + <listitem> + <para>Faz com que um rastreio(scan) com chamarizes seja executado, o que + parece ao anfitrião(host) remoto que, o(s) anfitrião(host)(s) que especificou como + chamarizes também estejam rastreando a rede-alvo. Com isso, o IDS + poderá reportar 5 a 10 rastreios(scans) de portas de endereços IP únicos, mas + não saberá qual IP estava realmente efectuado o rastreio(scan) e qual era um + chamariz inocente. Embora isso possa ser desvendado através de + rastreamento de caminho de router, descarte de respostas + (response-dropping) e outros mecanismos activos, normalmente é uma + técnica eficaz para esconder o seu endereço IP.</para> + + <para>Separe cada anfitrião(host)-chamariz com vírgulas e pode + opcionalmente usar <literal>ME</literal> como um dos chamarizes + para representar a posição do seu endereço IP real. Se + colocar <literal>ME</literal> na 6a. posição ou acima, alguns + detectores de rastreio(scan) de portas comuns (como o excelente scanlogd da + Solar Designer) pouco provavelmente irão mostrar o seu endereço + IP. Se não utilizar o <literal>ME</literal> o nmap irá + colocá-lo em uma posição aleatória.</para> + + <para>Observe que os anfitriões(hosts) que utilizar como chamarizes devem + estar activos ou poderá acidentamente inundar com SYN os + seus alvos. Também será bastante fácil determinar qual é o anfitrião(host) + que está a efectuar o rastreio(scan) se houver apenas um anfitrião(host) realmente activo na + rede. Você pode preferir usar endereços IP ao invés de nomes (de + forma que as redes chamarizes não vejam em seus logs dos + servidores de nomes).</para> + + <para>Chamarizes são utilizados tanto no rastreio(scan) com ping inicial + (usando ICMP, SYN, ACK ou qualquer outro) como também durante a + fase real de rastreio(scan) de portas. Chamarizes também são usados + durante a detecção de SO remoto (<option>-O</option>). Chamarizes + não funcionam com a detecção de versão ou com o rastreio(scan) TCP + connect().</para> + + <para>Vale a pena observar que usar chamarizes demais pode deixar + seu rastreio(scan) lento e potencialmente até torná-lo menos preciso. Outra + coisa, alguns provedores ISP irão filtrar os seus pacotes + disfarçados mas muitos não restringem pacotes IP + disfarçados.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-S <Endereço_IP></option> (Disfarça o endereço + de origem)</term> + + <listitem> + <para>Em algumas circunstâncias o Nmap pode não conseguir + determinar o seu endereço de origem (o Nmap irá dizer se for esse + o caso). Nesta situação use o <option>-S</option> com o endereço + IP da interface que deseja utilizar para enviar os + pacotes.</para> + + <para>Outro uso possível para esta flag é para disfarçar o rastreio(scan) e + fazer com que os alvos achem que <emphasis>alguma outra + pessoa</emphasis> está fazendo o rastreio(scan). Imagine uma empresa que está + constantemente sofrendo rastreios(scans) de portas de um concorrente! A opção + <option>-e</option> normalmente seria requerida para este tipo de + uso e <option>-P0</option> seria recomendável.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-e <interface></option> (Usa a interface + especificada)</term> + + <listitem> + <para>Diz ao Nmap qual interface deve ser utilizada para enviar e + receber pacotes. O Nmap deveria ser capaz de detectar isto + automaticamente mas ele informará se não conseguir.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--source-port <númerodaporta>;</option> + <option>-g <númerodaporta></option> (Disfarça o número de + porta de origem)</term> + + <listitem> + <para>Um erro de configuração surpreendentemente comum é confiar + no tráfego com base apenas no número da porta de origem. É fácil + entender como isso acontece. Um administrador configura um + firewall novinho em folha só para ser inundado com queixas de + usuários ingratos cujas aplicações param de funcionar. Em + particular, o DNS pode parar de funcionar porque as respostas DNS + UDP de servidores externos não conseguem mais entrar na rede. O + FTP é outro exemplo comum. Em tranferências FTP activas o servidor + remoto tenta estabelecer uma conexão de volta com o cliente para + poder transferir o arquivo solicitado.</para> + + <para>Soluções seguras para esses problemas existem + frequentemente na forma de proxies no nível da aplicação ou + módulos de firewall para análise de protocolo. Infelizmente também + há soluções mais fáceis e inseguras. Observando que as respostas + DNS chegam pela porta 53 e o FTP activo pela porta 20 muitos + administradores caem na armadilha de apenas permitir tráfego vindo + dessas portas. Eles normalmente assumem que nenhum atacante irá + notar e explorar essas brechas no firewall. Em outros casos os + administradores consideram isso uma medida provisória de curto + prazo até que eles possam implementar uma solução mais segura. + Normalmente ele esquecem-se de fazer as actualizações de + segurança.</para> + + <para>Administradores de rede sobrecarregados não são os únicos a + caírem nessa armadilha. Diversos produtos foram empacotados com + essas regras inseguras. Mesmo a Microsoft é culpada. Os filtros + IPsec que vieram com o Windows 2000 e com o Windows XP contém uma + regra implícita que permite todo o tráfego TCP ou UDP da porta 88 + (Kerberos). Em outro caso bastante conhecido, versões do firewall + pessoal Zone Alarm, até a versão 2.1.25, permitiam qualquer pacote + UDP entrante com a porta de origem 53 (DNS) ou 67 (DHCP).</para> + + <para>O Nmap oferece as opções <option>-g</option> e + <option>--source-port</option> (elas são equivalentes) para + explorar essas fraquezas. Apenas forneça um número de porta e o + Nmap irá enviar pacotes dessa porta onde for possível. O Nmap + utiliza números de porta diferentes para que certos testes de + detecção de SO funcionem direito e as requisições DNS ignoram a + flag <option>--source-port</option> porque o Nmap confia nas + bibliotecas de sistema para lidar com isso. A maioria dos rastreios(scans) + TCP, incluindo o rastreio(scan) SYN, suportam a opção completamente assim + como o rastreio(scan) UDP.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--data-length <número></option> (Acrescenta + dados aleatórios nos pacotes enviados)</term> + + <listitem> + <para>Normalmente o Nmap envia pacotes minimalistas contendo + apenas o cabeçalho. Dessa forma os pacotes TCP têm normalmente 40 + bytes e os echo requests ICMP tem só 28. Esta opção faz com que o + Nmap acrescente o número informado de bytes aleatórios na maioria + dos pacotes que envia. Os pacotes de detecção de SO + (<option>-O</option>) não são afectados mas a maioria dos pacotes + de ping e rastreio(scan) de portas são. Isso atrasa as coisas mas pode + tornar um rastreio(scan) ligeiramente menos chamativo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--ttl <valor></option> (Establece o valor do + campo time-to-live)</term> + + <listitem> + <para>Estabelece que o campo tempo-de-vida (time-to-live) dos + pacotes enviados terá o valor informado.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--randomize-hosts</option> (Torna aleatória a ordem + dos anfitriões(hosts)-alvo)</term> + + <listitem> + <para>Informa ao Nmap que ele deve embaralhar cada grupo de, no + máximo, 8096 anfitriões(hosts) antes de efectuar o rastreio(scan). + Isso torna os rastreios(scans) menos + óbvios a vários sistemas de monitoramento de rede, especialmente + quando combina isso com as opções de temporização lentas. Se + deseja que fazer isso em grupos maiores aumente o + PING_GROUP_SZ no <filename>nmap.h</filename> e recompile. Uma + solução alternativa é gerar uma lista de endereços IP-alvos com um + rastreio(scan) de lista (<option>-sL -n -oN + <replaceable>nomedoarquivo</replaceable></option>), embaralhar a + lista com um script Perl e então fornecer a lista completa para o + Nmap com <option>-iL</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--spoof-mac <endereço mac, prefixo, ou nome do + fabricante></option> (Disfarça o endereço MAC)</term> + + <listitem> + <para>Solicita ao Nmap que utilize o endereço MAC informado para + todos os frames ethernet em estado bruto (raw) que ele enviar. + Esta opção implica em <option>--send-eth</option> para assegurar + que o Nmap realmente envie pacotes no nível ethernet. O MAC + fornecido pode assumir diversos formatos. Se for apenas a string + <quote>0</quote> o Nmap irá escolher um MAC completamente + aleatório para a sessão. Se a string informada for um número par + de dígitos hexa (com os pares opcionalmente separados por dois + pontos) o Nmap irá usa-la como o MAC. Se menos do que 12 dígitos + hexa forem informados o Nmap preenche o restante dos 6 bytes com + valores aleatórios. Se o argumento não for um 0 ou uma string + hexa o Nmap irá procurar no + <filename>nmap-mac-prefixes</filename> para encontrar o nome de um + fabricante contendo a string informada (não é sensível a + maiúsculas ou minúsculas). Se encontrar, o Nmap usa o OUI (prefixo + de 3 bytes) do fabricante e preenche os 3 bytes restantes + aleatoriamente. Exemplos de argumentos + <option>--spoof-mac</option> válidos são <literal>Apple</literal>, + <literal>0</literal>, <literal>01:02:03:04:05:06</literal>, + <literal>deadbeefcafe</literal>, <literal>0020F2</literal> e + <literal>Cisco</literal>.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-output"> + <title>Saída (Output)</title> + + <para>Qualquer ferramenta de segurança só é útil se a saída que ela gera + também o for. Testes e algorítmos complexos são de pouco valor se não + forem apresentados de uma forma organizada e compreensível. Dado o + número de formas que o Nmap é utilizado pelas pessoas e por outros + softwares, nenhum formato irá agradar a todos. Então o Nmap oferece + diversos formatos incluindo o modo interativo para humanos lerem + diretamente e o XML para fácil interpretação por um software.</para> + + <para>Além de oferecer diversos formatos de saída, o Nmap fornece opções + para controlar a verbosidade da saída assim como as mensagens de + depuração. Os tipos de saída podem ser enviados para a saída padrão + (standard output) ou para arquivos, o qual o Nmap pode acrescentar ou + então sobrescrever. Arquivos de saída também podem ser utilizados para + se retomar rastreios(scans) abortados.</para> + + <para>O Nmap torna a saída disponível em cinco formatos diferentes. O + default é chamado de <literal>saída interativa (interactive + output)</literal> e é enviada para a saída padrão (stdout). Há também a + <literal>saída normal (normal output)</literal> que é similar à + <literal>interativa</literal> excepto pelo facto de mostrar menos + informações e alertas sobre a execução uma vez que se espera que seja + feita uma análise somente após o rastreio(scan) completar, ao invés de + interativamente.</para> + + <para>A saída XML é um dos tipos de saída mais importantes pois permite + a conversão para HTML, é facilmente analisada por programas como a + interface gráfica do Nmap ou pode ser importada em banco de + dados.</para> + + <para>Os dois tipos restantes de saída são a simples <literal>saída para + o grep (grepable output)</literal> que inclui a maioria das informações + de um anfitrião(host)-alvo em uma única linha e a <literal>s4íd4 sCRiPt KiDDi3 + (sCRiPt KiDDi3 0utPUt)</literal> para usuários que se consideram 1r4d0z + (|<-r4d).</para> + + <para>Embora a saída interativa seja a default e não tenha associada + nenhuma opção de linha de comando, as outras quatro opções de formato + utilizam a mesma sintaxe. Elas recebem um argumento que é o nome do + arquivo onde os resultados devem ser armazenados. Formatos múltiplos + podem ser especificados mas cada formato só pode ser especificado uma + vez. Por exemplo, pode querer armazenar a saída normal para seu uso + enquanto grava a saída XML do mesmo rastreio(scan) para análise utilizando + programas. Você pode fazer isso com as opções <option>-oX myscan.xml -oN + myscan.nmap</option>. Embora este capítulo use nomes simples como + <literal>myscan.xml</literal> por uma questão de brevidade, nomes mais + descritivos normalmente são recomendados. Os nomes escolhidos são uma + questão de preferência pessoal, embora eu use nomes longos que + incorporam da data do rastreio(scan) e uma palavra ou duas que descrevam o rastreio(scan), + colocados em um diretório com o nome da empresa que eu estou + rastreando.</para> + + <para>Mesmo que essas opções gravem os resultados em arquivos, o Nmap + ainda assim mostra a saída interativa na stdout como de costume. Por + exemplo, o comando <command>nmap -oX myscan.xml target</command> grava + em XML no <filename>myscan.xml</filename> e enche a saída padrão com os + mesmos resultados interativos que teria mostrado se a opção + <option>-oX</option> não tivesse sido especificada. Você pode mudar isso + passando um caracter hífen como argumento de um dos tipos de formato. + Isso faz com que o Nmap desactive a saída interativa e apenas grave os + resultados no formato que especificou para a saída padrão. Dessa + forma, o comando <command>nmap -oX - target</command> irá enviar apenas + a saída XML para a stdout. Erros sérios ainda podem ser mostrados na + saída padrão de erros, stderr.</para> + + <para>Ao contrário de alguns argumentos do Nmap o espaço em branco + entre a flag da opção (como a <option>-oX</option>) e o nome do arquivo + ou hífen é obrigatório. Se omitir as flags e informar argumentos + como <option>-oG-</option> ou <option>-oXscan.xml</option>, uma + característica de compatibilidade retroactiva do Nmap irá causar a + criação de arquivos de saída do tipo <emphasis>normal format</emphasis> + chamados <filename>G-</filename> e <filename>Xscan.xml</filename> + respectivamente.</para> + + <para>O Nmap também oferece opções para controlar a verbosidade do rastreio(scan) + e para acrescentar informações nos arquivos de saída ao invés de + sobrepor. Todas essas opções estão descritas abaixo.</para> + + <variablelist> + <title>Formatos de Saída do Nmap</title> + + <varlistentry> + <term><option>-oN <especificaçãodearquivo></option> (Saída + normal)</term> + + <listitem> + <para>Solicita que a <literal>saída normal (normal + output)</literal> seja direcionada para o arquivo informado. + Conforme discutido acima, é um pouco diferente da <literal>saída + interativa (interactive output)</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oX <especificaçãodearquivo></option> (Saída em + XML)</term> + + <listitem> + <para>Solicita que a <literal>saída em XML (XML output)</literal> + seja direcionada para o arquivo informado. O Nmap inclui uma + definição do tipo de documento (document type definition, DTD) que + permite que os analisadores (parsers) XML validem a saida em XML + do Nmap. Embora seja primeiramente voltada para ser usada por + programas também pode ajudar os humanos a interpretar a saída em + XML do Nmap. A DTD define os elementos válidos do formato e + geralmente enumera os atributos e valores que eles podem receber. + A última versão está sempre disponível em <ulink + url="https://nmap.org/data/nmap.dtd" />.</para> + + <para>O XML oferece um formato estável que é facilmente + interpretado por software. Interpretadores (parsers) XML gratuitos + estão disponível para as principais linguagens de computador, + incluindo C/C++, Perl, Python e Java. As pessoas até já escreveram + extensões para a maioria dessas linguagens para manipular a saída + e a execução especificamente do Nmap. Exemplos são o <ulink + url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> + e o <ulink url="http://www.nmapparser.com">Nmap::Parser</ulink> em + Perl CPAN. Em quase todos os casos em que uma aplicação + não-trivial faz interface com o Nmap, o XML é o formato + preferido.</para> + + <para>A saída XML faz referência a uma folha de estilo que pode + ser usada para formatar os resultados em HTML. A forma mais fácil + de se utilizar isso é simplesmente carregar a saída XML em um + navegador web como o Firefox ou o IE. Por default, isso só irá + funcionar na máquina onde rodou o Nmap (ou em uma máquina + similarmente configurada) devido ao caminho (path) do sistema de + arquivos (filesystem) gravado de forma inalterável do + <filename>nmap.xsl</filename>. Veja a opção + <option>--stylesheet</option> para ver uma forma de criar um + arquivo XML portável que possa ser interpretado como um HTML em + qualquer máquina conectada à web.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oS <especificaçãodearquivo></option> (S4íd4 + ScRipT KIdd|3)</term> + + <listitem> + <para>A saída script kiddie é como a saída interativa, com a + diferença de ser pós-processada para atender melhor ao "hacker de + elite" ('l33t HaXXorZ') que antigamente rejeitava o Nmap devido ao + uso consistente de maiúsculas e minúsculas e a grafia correta. + Pessoas sem senso de humor devem observar que esta opção serve + para se fazer graça dos script kiddies antes de me lixar por + estar, supostamente, <quote>ajudando-os</quote>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oG <especificaçãodearquivo></option> (Saída + para o grep)</term> + + <listitem> + <para>Este formato de saída é mencionado por último porque está + deprecado. O formato de saída XML é muito mais poderoso e é + bastante adequado para usuário avançados. O XML é um padrão para o + qual existem dezenas de excelentes interpretadores (parsers) + disponíveis, enquanto que a saída para o grep é um quebra-galho + feito por mim. O XML é estensível para suportar novas + características do Nmap conforme elas forem lançadas, por outro + lado, sempre tenho que omitir essas novas características da saída + para o grep por falta de onde colocá-las.</para> + + <para>Apesar disso a saída para o grep é bastante popular. É um + formato simples que lista cada anfitrião(host) em uma linha e pode ser + pesquisado de forma trivial e interpretado por qualquer + ferramenta padrão do Unix como o grep, awk, cut, sed, diff e + Perl. Eu mesmo uso-a para testes rápidos feitos na linha de + comando. Descobrir todos os anfitriões(hosts) com a porta ssh aberta ou que + estão com o SO Solaris requer apenas um simples grep para + identificá-los, concatenado via pipe a um comando awk ou cut para + mostrar os campos desejados.</para> + + <para>A saída para o grep consiste de comentários (linhas + começadas com o símbolo #) e linhas-alvo. Uma linha-alvo inclui + uma combinação de 16 campos rotulados, separados por tab e + seguidos por dois-pontos. Os campos são <literal>Host</literal>, + <literal>Portas (Ports)</literal>,<literal>Protocolos + (Protocols)</literal>, <literal>Estado Ignorado (Ignored + State)</literal>, <literal>SO (OS)</literal>, <literal>Índice de + Seqüência (Seq Index)</literal>, <literal>IPID</literal> e + <literal>Estado (Status)</literal>.</para> + + <para>O campo mais importante é normalmente <literal>Portas + (Ports)</literal>, que fornece detalhes de cada porta + interessante. É uma lista com a relação de portas separada por + vírgula. Cada porta representa uma porta interessante e tem o + formato de sete sub-campos separados por barra (/). Esses + sub-campos são: <literal>Número da Porta (Port number)</literal>, + <literal>Estado (State)</literal>, <literal>Protocolo + (Protocol)</literal>, <literal>Proprietário (Owner)</literal>, + <literal>Serviço (Service)</literal>, <literal>informação sobre o + SunRPC (SunRPC info)</literal> e <literal>informação sobre a + Versão (Version info)</literal>.</para> + + <para>Assim como na saída XML, esta página man não permite que se + documente o formato todo. Uma visão mais detalhada sobre o formato + de saída para o grep do Nmap está disponível em <ulink + url="http://www.unspecific.com/nmap-oG-output" />.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-oA <nome-base></option> (Saída para todos os + formatos)</term> + + <listitem> + <para>Para facilitar pode especificar <option>-oA + <replaceable>nome-base</replaceable></option> para armazenar os + resultados de rastreio(scan) nos formatos normal, XML e para o grep de uma + só vez. Eles são armazenados nos arquivos + <replaceable>nome-base</replaceable>.nmap, + <replaceable>nome-base</replaceable>.xml e + <replaceable>nome-base</replaceable>.gnmap, respectivamente. Como + na maioria dos programas pode colocar como prefixo nos nomes + de arquivos o caminho de um diretório como + <filename>~/nmaplogs/foocorp/</filename> no UNIX ou + <filename>c:\hacking\sco</filename> no Windows.</para> + </listitem> + </varlistentry> + </variablelist> + + <variablelist> + <title>Opções de Verbosidade e depuração (debugging)</title> + + <varlistentry> + <term><option>-v</option> (Aumenta o nível de verbosidade)</term> + + <listitem> + <para>Aumenta o nível de verbosidade fazendo com que o Nmap + mostre mais informações sobre o progresso do rastreio(scan). Portas abertas + são mostradas conforme são encontradas e estimativas de tempo + para o término são fornecidas quando o Nmap acha que um rastreio(scan) irá + demorar mais do que alguns minutos. Use duas vêzes para uma + verbosidade ainda maior. Usar mais do que duas vêzes não surte + nenhum efeito.</para> + + <para>A maioria das alterações afectam apenas a saída interactiva e + algumas também afectam a saída normal e script kiddie. Os outros + tipos de saída foram feitos para serem processados por máquinas, + então o Nmap pode dar informações bastante detalhadas por default + nesse formatos sem cansarem o usuário humano. Entretanto, existem + algumas mudanças nos outros modos onde o tamanho da saída pode ser + reduzido substancialmente pela omissão de alguns detalhes. Por + exemplo, uma linha de comentário na saída para o grep que + fornece uma lista de todas as portas rastreadas só é mostrada no + modo verboso porque ela pode ser bem longa.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-d [nível]</option> (Aumenta ou estabelece o nível de + depuração)</term> + + <listitem> + <para>Se mesmo o modo verboso não fornece dados suficientes para + si, o modo de depuração está disponível para inundá-lo com muito + mais! Assim como na opção de verbosidade (<option>-v</option>), a + depuração é habilitada com uma flag na linha de comando + (<option>-d</option>) e o nível de depuração pode ser aumentado + especificando-a múltiplas vêzes. Alternativamente pode + estabelecer o nível de depuração fornecendo um argumento para o + <option>-d</option>. Por exemplo, <option>-d9</option> estabelece + o nível nove. Esse é efectivamente o nível mais alto e irá produzir + milhares de linhas a menos que execute um rastreio(scan) muito simples + com poucas portas e alvos.</para> + + <para>A saída da depuração é útil quando há a suspeita de um bug + no Nmap ou se está simplesmente confuso com o que o Nmap + está fazendo e porquê. Como esta opção é na maioria das vêzes + destinada a programadores, as linhas de depuração nem sempre são + auto-explicativas. Pode obter algo como: + <computeroutput>Timeout vals: srtt: -1 rttvar: -1 to: 1000000 + delta 14987 ==> srtt: 14987 rttvar: 14987 to: + 100000</computeroutput>. Se não entender alguma linha suas + únicas opções serão ignorá-la, procurar no código-fonte ou pedir + ajuda na lista de discussão de desenvolvimento (nmap-dev). Algumas + linhas são auto-explicativas mas as mensagens ficam cada vez mais + obscuras conforme o nível de depuração é aumentado.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--packet-trace</option> (Rastreia pacotes e dados + enviados e recebidos)</term> + + <listitem> + <para>Faz com que o Nmap moste um sumário de todos os pacotes + enviados ou recebidos. Isto é bastante usado para depuração mas + também é uma forma valiosa para novos usuário entenderem + exatamente o que o Nmap está fazendo por debaixo dos panos. Para + evitar mostrar milhares de linhas, pode querer especificar um + número limitado de portas a rastrear(scan) como + <option>-p20-30</option>. Se tudo o que lhe interessa for saber o + que se passa no subsistema de detecção de versão, use o + <option>--version-trace</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--iflist</option> (Lista as interfaces e rotas)</term> + + <listitem> + <para>Mostra a lista de interfaces e rotas do sistema conforme + detectados pelo Nmap. Isto é útil para depurar problemas de + roteamento ou erro de configuração de dispositivo (como, por + exemplo, no caso do Nmap tratar uma conexão PPP como se fosse uma + Ethernet).</para> + </listitem> + </varlistentry> + </variablelist> + + <variablelist> + <title>Opções diversas (miscellaneous) de saída</title> + + <varlistentry> + <term><option>--append-output</option> (Acrescenta no arquivo de + saída ao invés de sobrepor)</term> + + <listitem> + <para>Quando especifica um nome de arquivo na flag de formato + de saída, como <option>-oX</option> ou <option>-oN</option>, esse + arquivo é sobreposto por default. Se preferir manter o + conteúdo existente no arquivo e acrescentar os novos resultados, + especifique a opção <option>--append-output</option>. Todos os + arquivos de saída especificados na execução do Nmap terão os + resultados acrescidos ao invés de sobrepostos. Isso não funciona + bem com os dados de rastreio(scan) para XML (<option>-oX</option>) pois o + arquivo resultante não será adequadamente interpretado até que + consserte manualmente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--resume <nomedoarquivo></option> (Retoma um + rastreio(scan) abortado)</term> + + <listitem> + <para>Algumas execuções extensas do Nmap podem levar muito tempo, + na ordem de dias. Tais rastreios(scans) nem sempre rodam até o fim. Podem + haver restrições que impeçam que o Nmap seja executado durante o + horário de expediente, a rede pode cair, a máquina onde o Nmap + está a ser executado pode sofrer um reboot planeado ou não, ou o Nmap + pode simplesmente travar. O administrador que está executando o Nmap + poderia cancelá-lo por qualquer outra razão bastando teclar + <keycap>ctrl-C</keycap>. Reiniciar um rastreio(scan) inteiro do começo pode + ser indesejável. Felizmente se forem mantidos logs normais + (<option>-oN</option>) ou para o grep (<option>-oG</option>), o + usuário pode pedir que o Nmap continue o rastreio(scan) do alvo que + estava verificando quando a execução foi interrompida. + Simplesmente especifique a opção <option>--resume</option> e + informe o arquivo da saída normal/para o grep como argumento. + Nenhum outro argumento é permitido, pois o Nmap analisa o arquivo + de saída e usa os mesmos argumentos especificados anteriormente. + Basta chamar o Nmap com <command>nmap --resume + <replaceable>nomedoarquivodelog</replaceable></command>. O Nmap + irá acrescentar os novos resultados ao arquivo de dados + especificado na execução anterior. Essa retomada de execução não + suporta o formato de saída XML porque combinar as duas execuções + em um arquivo XML válido seria difícil.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--stylesheet <caminho ou URL></option> (Informa + a folha de estilo XSL usada para transformar a saída XML)</term> + + <listitem> + <para>O Nmap vem com uma folha de estilo (stylesheet) chamada + <filename>nmap.xsl</filename> para visualizar ou traduzir a saída + XML em HTML. A saída XML inclui uma diretiva + <literal>xml-stylesheet</literal> que mostra para o + <filename>nmap.xml</filename> onde ele foi inicialmente instalado + pelo Nmap (ou para o diretório corrente no Windows). Simplesmente + carregue a saída XML do Nmap em um navegador moderno e ele deve + conseguir achar o <filename>nmap.xsl</filename> no sistema de + arquivos e utilizá-lo para interpretar os resultados. Se + desejar utilizar uma folha de estilo diferente, especifique-a como + um argumento para <option>--stylesheet</option>. Deve + informar o caminho completo ou a URL. Uma chamada comum é + <option>--stylesheet + https://nmap.org/data/nmap.xsl</option> . Isso diz ao + navegador para carregar a versão mais actual da folha de estilo da + Insecure.Org. Isso torna mais fácil ver os resultados em uma + máquina que não tenha o Nmap instalado (e consequentemente o + <filename>nmap.xsl</filename>). A URL é normalmente mais + útil mas a localização nmap.xsl num sistema de ficheiros(filesystem) local é usada + por default por questões de privacidade.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--no-stylesheet</option> (Omite do XML a declaração da + folha de estilo XSL)</term> + + <listitem> + <para>Especifique esta opção para evitar que o Nmap associe + qualquer folha de estilo XSL à saída XML. A directiva + <literal>xml-stylesheet</literal> é omitida.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-misc-options"> + <title>Opções Diversas (Miscellaneous)</title> + + <para>Esta seção descreve algumas opções importantes (e + não-tão-importantes) que realmente não couberam em nenhum outro + lugar.</para> + + <variablelist> + <varlistentry> + <term><option>-6</option> (Habilita o rastreio(scan) IPv6)</term> + + <listitem> + <para>Desde 2002 que o Nmap oferece suporte a IPv6 na maioria de suas + opções mais populares. Em particular o rastreio(scan) com ping (apenas + TCP), o rastreio(scan) com connect() e a detecção de versão, todas suportam + IPv6. A sintaxe de comando é a mesma de sempre excepto que + irá também adicionar a opção <option>-6</option>. É claro que + deve usar a sintaxe IPv6 se especificar um endereço no lugar de um + nome de anfitrião(host). Um endereço pode se parecer com + <literal>3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, + portanto os nomes de anfitrião(host) são recomendados. A saída é a mesma de + sempre com o endereço IPv6 na linha <quote>portas + interessantes</quote> sendo a única dica visível de que se tratar + realmente de IPv6.</para> + + <para>Muito embora o IPv6 não tenha exactamente se alastrado pelo + mundo, seu uso se torna mais significativo em alguns países + (normalmente asiáticos) e a maioria dos sistemas operativos + modernos passaram a suportá-lo. Para usar o Nmap com o IPv6, tanto a + origem quanto o alvo de seu rastreio(scan), devem estar configurados para + IPv6. Se o seu provedor (ISP) (como a maioria) não aloca endereços + IPv6 para si, alguns intermediários que fazem o túnel + gratuitamente estão amplamente disponíveis e funcionam bem com o + Nmap. Um dos melhores é disponibilizado pela BT Exact. + Também tenho utilizado um + fornecido pela Hurricane Electric em <ulink + url="http://ipv6tb.he.net/" />. Túneis 6para4 são outra abordagem + gratuita e popular.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-A</option> (Opções agressivas de rastreio(scan))</term> + + <listitem> + <para>Esta opção habilita opções adicionais avançadas e + agressivas. Ainda não decidi exactamente qual das duas é a certa. + Actualmente ela habilita a Detecção de SO (<option>-O</option>) e o + rastreio(scan) de versão (<option>-sV</option>). Mais + características poderão ser adicionadas no futuro. A questão é + habilitar um conjunto completo de opções de rastreio(scan) sem que + as pessoas tenham que se lembrar de um grupo grande de flags. Esta + opção apenas habilita as funções e não as opções de temporização + (como a <option>-T4</option>) ou opções de verbosidade + (<option>-v</option>) que pode também querer.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--datadir <nomedodiretório></option> (Especifica + a localização dos arquivos de dados do rastreio(scan))</term> + + <listitem> + <para>O Nmap obtém alguns dados especiais em tempo de execução + em arquivos chamados <filename>nmap-service-probes</filename>, + <filename>nmap-services</filename>, + <filename>nmap-protocols</filename>, + <filename>nmap-rpc</filename>, + <filename>nmap-mac-prefixes</filename> e + <filename>nmap-os-fingerprints</filename>. O Nmap primeiramente + procura esses arquivos num diretório especificado na opção + <option>--datadir</option> (se houver). Qualquer arquivo que não + seja encontrado lá é procurado no diretório especificado pela + variável de ambiente NMAPDIR. A seguir vem o + <filename>~/.nmap</filename> para se achar os UIDs reais e + efectivos (apenas em sistemas POSIX) ou a localização do executável + do Nmap (apenas Win32) e então, a localização definida na + compilação que pode ser + <filename>/usr/local/share/nmap</filename> ou + <filename>/usr/share/nmap</filename> . Como último recurso, o Nmap + irá procurar no diretório corrente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--send-eth</option> (Usa a transmissão pela ethernet + em estado bruto(raw))</term> + + <listitem> + <para>Solicita ao Nmap para que envie pacotes na ethernet (data + link) em estado bruto (raw) ao invés de usar a camada de nível + mais alto IP (rede). Por default, o Nmap escolhe o que for melhor + para a plataforma onde está rodando. Soquetes (sockets) em estado + bruto (camada IP) são normalmente mais eficientes em máquinas + UNIX enquanto que os frames ethernet são necessários nas + operações do Windows, uma vez que a Microsoft desabilitou o + suporte a sockets em estado bruto. O Nmap ainda usa pacotes IP em + estado bruto no UNIX, independentemente desta opção, quando não há + outra alternativa (como no caso de conexões não-ethernet).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--send-ip</option> (Envia no nível do IP em estado + bruto(raw))</term> + + <listitem> + <para>Pede ao Nmap que envie os pacotes pelos sockets IP em + estado bruto(raw) ao invés de enviar pelo nível mais baixo dos frames + ethernet. É o complemento da opção <option>--send-eth</option> + discutida anteriormente.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--privileged</option> (Assume que o usuário é + altamente privilegiado)</term> + + <listitem> + <para>Informa ao Nmap para simplesmente assumir que ele tem + privilégios suficientes para executar transmissões de sockets em + estado bruto(raw), farejar (sniff) pacotes e operações similares que + normalmente requerem privilégio de root em sistemas UNIX. Por + default, o Nmap encerra se tal operação é solicitada mas o + geteuid() não é zero <option>--privileged</option>. É útil com as + possibilidades oferecidas pelo kernel do Linux e sistemas + similares que pode ser configurado para permitir que usuários + não-privilegiados executem rastreios(scans) de pacotes em estado bruto. + Assegure-se de informar esta flag de opção antes de outras flags + de opção que requeiram privilégios (rastreio(scan) SYN, detecção de OS, + etc.). A variável NMAP_PRIVILEGED pode ser configurada como uma + alternativa equivalente de <option>--privileged</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-V</option>; <option>--version</option> (Mostra o + número da versão)</term> + + <listitem> + <para>Mostra o número da versão do Nmap e sai.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-h</option>; <option>--help</option> (Mostra a página + do sumário de ajuda)</term> + + <listitem> + <para>Mostra uma pequena tela com as flags de comandos mais + comuns. Executar o nmap sem nenhum argumento faz a mesma + coisa.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-runtime-interaction"> + <title>Interação em Tempo de Execução</title> + + <para> + <remark>Esta característica ainda não existe no Nmap. Preciso + adicioná-la ou remover esta secção</remark> + </para> + + <para>Durante a execução do Nmap todas as teclas pressionadas são + capturadas. Isso permite que interaja com o programa sem abortá-lo + ou reiniciá-lo. Algumas teclas especiais irão mudar as opções enquanto + outras irão mostrar uma mensagem de estado dando informações sobre o + rastreio(scan). A convenção é que <emphasis>letras minúsculas aumentam</emphasis> + a quantidade de informação e <emphasis>letras maiúsculas + diminuem</emphasis>.</para> + + <variablelist> + <varlistentry> + <term><option>v</option> / <option>V</option></term> + + <listitem> + <para>Aumenta / Diminui a quantidade de informações + (Verbosity)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>d</option> / <option>D</option></term> + + <listitem> + <para>Aumenta / Diminui o Nível de Depuração (Debugging + Level)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>p</option> / <option>P</option></term> + + <listitem> + <para>Habilita / Desabilita o Rastreamento de Pacotes (Packet + Tracing)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Qualquer outra letra</term> + + <listitem> + <para>Mostra uma mensagem de estado como esta:</para> + + <para>Stats: 0:00:08 elapsed; 111 anfitriões(hosts) completed (5 up), 5 + undergoing Service Scan</para> + + <para>Service rastreio(scan) Timing: About 28.00% done; ETC: 16:18 (0:00:15 + remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-examples"> + <title>Exemplos</title> + + <para>Aqui estão alguns exemplos de utilização do Nmap desde o simples e + rotineiro, até ao mais complexo e esotérico. Alguns endereços IP + reais e nomes de domínio foram utilizados para tornar as coisas mais + concretas. Nesses lugares deve substituir os endereços/nomes pelos + da <emphasis>sua própria rede</emphasis>. Embora eu não ache que o + rastreio(scan) de portas de outras redes seja ou deva ser considerado + ilegal, alguns administradores de rede não apreciam o rastreio(scan) + não-solicitado de suas redes e podem reclamar. Obter a permissão + antecipadamente é a melhor opção.</para> + + <para>Para fins de teste tem permissão para rastrear(scan) o anfitrião(host) + <literal>scanme.nmap.org</literal>. Esta permissão inclui apenas o + rastreio(scan) via Nmap e não tentativas de explorar vulnerabilidades ou + ataques de negação de serviço (denial of service). Para preservar a + banda, por favor não inicie mais do que uma dúzia de rastreios(scans) contra o anfitrião(host) + por dia. Se esse serviço de alvo livre para rastreio(scan) for abusado, + será derrubado e o Nmap irá reportar <computeroutput>Failed to resolve + given hostname/IP: scanme.nmap.org</computeroutput>. Essas permissões + também se aplicam aos anfitriões(hosts) <literal>scanme2.nmap.org</literal>, + <literal>scanme3.nmap.org</literal> e assim por diante, embora esses + anfitriões(hosts) ainda não existam.</para> + + <para> + <userinput>nmap -v scanme.nmap.org</userinput> + </para> + + <para>Esta opção rastreia(scan) todas as portas TCP reservadas na máquina + <literal>scanme.nmap.org</literal>. A opção <option>-v</option> + habilita o modo verboso (verbose).</para> + + <para> + <userinput>nmap -sS -O scanme.nmap.org/24</userinput> + </para> + + <para>Inicia um rastreio(scan) SYN camuflado contra cada máquina que estiver activa + das 255 possíveis da rede <quote>classe C</quote> onde o Scanme reside. + Ele também tenta determinar qual o sistema operativo que está sendo executado + em cada anfitrião(host) activo. Isto requer privilégio de root por causa do rastreio(scan) SYN + e da detecção de SO.</para> + + <para> + <userinput>nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</userinput> + </para> + + <para>Inicia uma enumeração de anfitriões(hosts) e um rastreio(scan) TCP na primeira metade de + cada uma das 255 sub-redes de 8 bits possíveis na classe B do espaço de + endereçamento 198.116. Também testa se os sistemas estão executando + sshd, DNS, pop3d, imapd ou a porta 4564. Para cada uma destas portas + encontradas abertas a detecção de versão é usada para determinar qual + aplicação está em execução.</para> + + <para> + <userinput>nmap -v -iR 100000 -P0 -p 80</userinput> + </para> + + <para>Pede ao Nmap para escolher 100.000 anfitriões(hosts) de forma aleatória e + rastreia-os procurando por servidores web (porta 80). A enumeração de + anfitriões(hosts) é desabilitada com <option>-P0</option> uma vez que enviar + primeiramente um par de sondagens para determinar se um anfitriões(hosts) está activo + é um desperdício quando se está sondando uma porta em cada anfitrião(host) + alvo.</para> + + <para> + <userinput>nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</userinput> + </para> + + <para>Este exemplo rastreia(scan) 4096 endereços IP buscando por servidores + web (sem usar o ping) e grava a saída nos formatos XML e compatível com + o programa grep.</para> + + <para> + <userinput>anfitrião(host) -l company.com | cut -d -f 4 | nmap -v -iL + -</userinput> + </para> + + <para>Faz uma transferência de zona DNS para descobrir os anfitriões(hosts) em + company.com e então alimenta o Nmap com os endereços IP. Os comandos + acima são para a minha máquina GNU/Linux -- outros sistemas têm comandos + diferentes para executar a transferência de zona.</para> + </refsect1> + + <refsect1 id="man-bugs"> + <title>Bugs</title> + + <para>Como o seu autor, o Nmap não é perfeito. Mas pode ajudar a + torná-lo melhor enviando relatórios de erros (bug reports) ou mesmo + escrevendo correções. Se o Nmap não se comporta da forma que + espera, primeiro actualize para a versão mais atual disponível em <ulink + url="https://nmap.org/" />. Se o problema persistir, + pesquise um pouco para determinar se o problema já foi descoberto e + encaminhado. Tente procurar no Google pela mensagem de erro ou navegar + nos arquivos da Nmap-dev em <ulink url="https://seclists.org/" />. Se não + encontrar nada envie uma mensagem com um relatório do erro para + <email>dev@nmap.org</email>. Por favor inclua tudo o que + souber sobre o problema bem como a versão do Nmap que está + executando e em qual versão e sistema operativo que está a usar.</para> + + <para>Correções codificadas para concertar os erros são ainda melhores + que os relatórios de erro. Instruções básicas para a criação de arquivos + de correções com as suas alterações estão disponíveis em <ulink + url="https://nmap.org/data/HACKING" />.</para> + </refsect1> + + <refsect1 id="man-author"> + <title>Autor</title> + + <para>Fyodor <email>fyodor@nmap.org</email> (<ulink + url="http://www.insecure.org" />)</para> + + <para>Centenas de pessoas fizeram contribuições valiosas para o Nmap ao + longo dos anos. Isso está detalhado no arquivo <filename + moreinfo="none">CHANGELOG</filename> que é distribuído com o Nmap e + também está disponível em <ulink + url="https://nmap.org/changelog.html" />.</para> + </refsect1> + + <refsect1 id="man-xlation"> + <title>Tradução</title> + + <para>Português (Portugal) : José Domingos + <email>jd_pt@yahoo.com</email> + Português (Portugal) : Andreia Gaita + <email>shana.ufie@gmail.com</email></para> + + <para>Translation Disclaimer: The translation attempts to achieve the + highest possible accuracy. The official text is the English version + available at [url]. Any discrepancies or differences created in + translations are not binding and have no legal effect or compliance or + enforcement purposes. If any questions arise in regard to the accuracy + of information contained in any translated portion of text, please refer + to the official English version. Slangs and language structures in + English are not easily translated into another language. Source text + that includes jargon common to an industry, may not be translated + accurately. Insecure.Com LLC is not responsible for translation errors. + We apologize for any translation that is not correct.</para> + + <para>Desobrigação da Tradução: A tradução tenta alcançar a maior + precisão possível. O texto oficial é a versão em inglês disponível em + [url]. Quaisquer discrepâncias ou diferenças criadas pelas traduções não + são obrigações e não tem efeito legal, conformidade ou propósitos + impositivos. Se qualquer dúvida surgir em relação à precisão da + informação contida em qualquer parte traduzida do texto, por favor + verifique a versão oficial em inglês. Gírias e estruturas de linguagem + em inglês não são facilmente traduzidas em outra língua. Texto original + que inclui jargão comum a uma atividade pode não ser traduzido com + precisão. A Insecure.Com LLC não é responsável por erros de tradução. + Nós pedimos desculpas se alguma parte da tradução não estiver correcta.</para> + </refsect1> + + <refsect1 id="man-legal"> + <title>Avisos Legais</title> + + <refsect2> + <title>Copyright e Licenciamento</title> + + <para>O Nmap Security Scanner é (C) 1996-2005 Insecure.Com LLC. O Nmap + também é uma marca registada de Insecure.Com LLC. Este programa é um + software livre; pode redistribuí-lo e/ou modificá-lo sob os + termos da Licença Pública Geral GNU (GNU General Public License) + conforme publicado pela Free Software Foundation; Versão 2. Isso + garante o seu direito de usar, modificar e redistribuir este software + sob certas condições. Se desejar embutir a tecnologia do Nmap em + um software proprietário poderemos querer vender licenças + alternativas (contate <email>sales@insecure.com</email>). Muitos + vendedores de scanner de segurança já licenciam a tecnologia do Nmap, + tal como a descoberta de anfitriões(hosts), rastreio(scan) de portas, detecção de SO + e detecção de serviços/versões.</para> + + <para>Observe que a GPL impõe restrições importantes em + <quote>trabalhos derivados</quote> embora ela não forneça uma + definição detalhada desse termo. Para evitar más-interpretações + consideramos que uma aplicação constitui um <quote>trabalho + derivado</quote> para o propósito desta licença, se ela se enquadra + em um dos seguintes ítens:</para> + + <itemizedlist> + <listitem> + <para>Contém código fonte do Nmap</para> + </listitem> + + <listitem> + <para>Lê ou inclui arquivos de dados do Nmap que são protegidos + por copyright, tal como o + <filename>nmap-os-fingerprints</filename> ou + <filename>nmap-service-probes</filename>.</para> + </listitem> + + <listitem> + <para>Executa o Nmap e decompõe (parse) os resultados + (diferentemente de uma execução típica de um shell ou aplicações + de menu de execução que simplesmente mostram a saída em estado + bruto do Nmap e portanto não constituem um trabalho + derivado).</para> + </listitem> + + <listitem> + <para>Integra/inclui/agrega o Nmap em um instalador executável + proprietário tal como os produzidos pelo InstallShield.</para> + </listitem> + + <listitem> + <para>Estabelece uma ligação (link) com uma biblioteca ou executa + um programa que faz qualquer um dos dois ítens em cima.</para> + </listitem> + </itemizedlist> + + <para>O termo <quote>Nmap</quote> deve ser considerado como contendo + parte ou sendo trabalho derivado do Nmap. Esta lista não é definitiva + mas deve ser entendida como uma forma de esclareçer nossa interpretação + de trabalho derivado com alguns exemplos comuns. Estas restrições + apenas se aplicam quando realmente redistribui o Nmap. Por + exemplo, nada impede que escreva e venda um front-end + proprietário para o Nmap. Apenas redistribua o seu produto + isoladamente e mostre às pessoas onde elas podem descarregar(download) o Nmap.</para> + + <para>Nós não consideramos isso como restrições adicionais à GPL mas + apenas uma elucidação de como nós interpretamos <quote>trabalhos + derivados</quote> pois elas se aplicam ao nosso produto Nmap + licenciado no formato GPL. Isso é idêntico à forma como Linus Torvalds + anunciou sua interpretação de como os <quote>trabalhos + derivados</quote> se aplicam aos módulos do kernel do Linux. A nossa + interpretação refere-se apenas ao Nmap - não respondemos por qualquer + outro produto GPL.</para> + + <para>Se tiver qualquer dúvida quanto às restrições do + licenciamento GPL na utilização do Nmap em produtos não-GPL, + ficaríamos felizes em ajudar. Como mencionado acima, também oferecemos + licenças alternativas para a integração do Nmap em aplicações e + dispositivos proprietários. Esses contratos foram vendidos para muitas + empresas de segurança e geralmente incluem uma licença perpétua, disponibiliza + um suporte para actualizações prioritários, e também + nos ajuda financeiramente o desenvolvimento contínuo da tecnologia do + Nmap. Por favor, envie um e-mail para + <email>sales@insecure.com</email> se desejar mais informações.</para> + + <para>Como uma exceção especial aos termos da GPL, a Insecure.Com LLC + permite que uma ligação (link) do código deste program seja feito com + qualquer versão da biblioteca do OpenSSL que seja distribuída sob uma + licença idêntica àquela listada no arquivo Copying.OpenSSL incluido e + distribuir combinações de ligação incluindo os dois. Deve + obedecer à GPL GNU em todos os aspectos para todo o código utilizado + que não seja OpenSSL. Se modificar este aquivo pode + estender esta excepção para a sua versão do arquivo mas não é + obrigado a fazer isso.</para> + + <para>Se recebeu estes arquivos com um acordo de licenciamento + por escrito ou um contrato ditando termos que não sejam diferentes dos + em cima então essa licença alternativa tem precedência sobre estes + comentários.</para> + </refsect2> + + <refsect2> + <title>Disponibilidade de código fonte e contribuições da + comunidade</title> + + <para>O código fonte é fornecido com este software porque acreditamos + que os usuários tem o direito de saber exactamente o que um programa + irá fazer antes de executá-lo. Isso também permite que vaudite + o software procurando por falhas na segurança (nenhuma foi encontrada + até agora).</para> + + <para>O código fonte também permite que porte o Nmap para novas + plataformas consserte problemas e adicione novas características. + E altamente encorajado a enviar suas alterações para + <email>fyodor@nmap.org</email> para uma possível incorporação na + distribuição principal. Enviar essas alterações para Fyodor ou para + alguém da lista de mensagens de desenvolvimento da Insecure.Org, + pressupõe que está oferecendo a Fyodor e à Insecure.Com LLC o + direito ilimitado e não-exclusivo para reutilizar, modificar e + relicenciar o código. O Nmap sempre estará disponível como um Open + Source mas isto é importante porque a impossibilidade de relicenciar + o código causou problemas devastadores para outros projetos de + Software Livre (tal como o KDE e o NASM). Nós também relicenciamos + ocasionalmente o código para terceiros conforme discutido + anteriormente. Se deseja especificar condições de licenciamento + especiais das suas contribuições deixe isso claro quando + enviá-las.</para> + </refsect2> + + <refsect2> + <title>Nenhuma Garantia</title> + + <para>Este programa é distribuído na esperança de que será útil mas + SEM QUALQUER GARANTIA; sem sequer a garantia implícita de + COMERCIALIZAÇÃO ou ADEQUAÇÃO A QUALQUER PROPÓSITO PARTICULAR. Veja a + Licença Pública Geral GNU para mais detalhes em <ulink + url="http://www.gnu.org/copyleft/gpl.html" /> ou no arquivo COPYING + incluído com o Nmap.</para> + + <para>Também deve ser observado que o Nmap reconhecidamente trava + certas aplicações mal-escritas, a pilha TCP/IP e mesmo alguns sistemas + operativos. <emphasis remap="B">O Nmap nunca deve ser executado + contra sistemas de missão-crítica</emphasis> a menos que esteja + preparado para lidar com o serviço fora do ar (downtime). Nós + reconhecemos aqui que o Nmap pode travar os seus sistemas ou redes e + nós renunciamos toda e qualquer responsabilidade por qualquer dano ou + problema que o Nmap possa causar.</para> + </refsect2> + + <refsect2> + <title>Uso inapropriado</title> + + <para>Pelo facto de haver o menor risco de travamento e porque existem + pessoas mal-intencionadas (black hats) que gostam de usar o Nmap para + reconhecimento antes atacar um sistema, existem administradores que + ficam chateados e podem reclamar quando o sistema deles é rastreado. + Portanto é normalmente aconselhável que solicite a permissão antes + de fazer um rastreio(scan) de uma rede por mais leve que seja.</para> + + <para>O Nmap nunca deveria ser instalado com privilégios especiais + (p.ex.: suid root) por questões de segurança.</para> + </refsect2> + + <refsect2> + <title>Software de Terceiros</title> + + <para>Este produto inclui software desenvolvido pela <ulink + url="http://www.apache.org">Apache Software Foundation</ulink>. Uma + versão modificada da <ulink url="http://www.tcpdump.org">biblioteca + portátil de captura de pacotes Libpcap</ulink> é distribuída junto com + o Nmap. A versão para o Windows do Nmap por outro lado utiliza + <ulink url="http://www.winpcap.org">biblioteca WinPcap</ulink>, + derivada da libpcap. O suporte a expressões regulares é fornecido pela + <ulink url="http://www.pcre.org">biblioteca PCRE</ulink> que é um + software de código aberto escrito por by Philip Hazel. Algumas + funções de rede em estado bruto utilizam a biblioteca de rede <ulink + url="http://libdnet.sourceforge.net">Libdnet</ulink> que foi escrita + por Dug Song. Uma versão modificada é distribuída com o Nmap. O Nmap + pode opcionalmente ser ligado ao <ulink + url="http://www.openssl.org">conjunto de ferramentas de criptografia + do OpenSSL</ulink> para o suporte à detecção de versão do SSL. Todos + os softwares de terceiros descritos neste parágrafo são distribuídos + gratuitamente sob o licenciamento de software no estilo BSD.</para> + </refsect2> + + <refsect2> + <title>Classificação do Controle de Exportação dos EUA</title> + + <para>Controle de Exportação dos EUA: A Insecure.Com LLC acredita que + o Nmap se enquadra no US ECCN (número de classificação para controle + de exportação) 5D992. Essa categoria é chamada de <quote>software de + Segurança da Informação não-controlado pela 5D002</quote>. A única + restrição a essa classificação é o AT (anti-terrorismo) que se aplica + a quase todos os produtos e nega a exportação a um punhado de nações + não-confiáveis tais como o Irão e a Coreia do Norte. Portanto, exportar + o Nmap não requer nenhuma licença ou permissão especial ou qualquer + outro tipo de autorização governamental.</para> + </refsect2> + </refsect1> + </refentry> +</article> diff --git a/docs/man-xlate/nmap-man-ro.xml b/docs/man-xlate/nmap-man-ro.xml new file mode 100644 index 0000000..9f2fc25 --- /dev/null +++ b/docs/man-xlate/nmap-man-ro.xml @@ -0,0 +1,3161 @@ +<?xml version="1.0" encoding="UTF-8"?> +<article id="man" lang="ro"> + <artheader> + <title>Ghid de referinta Nmap (Pagina Man)</title> + </artheader> + <refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Ghid de referinta Nmap</refmiscinfo> + </refmeta> + <refnamediv id="man-name"> + <refname>nmap</refname> + <refpurpose>Instrument de explorare a retelei si scaner de securitate / + porturi</refpurpose> + </refnamediv> + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis sepchar=""> + <command moreinfo="none">nmap</command> + <arg choice="opt" rep="repeat"> + <replaceable>Tip de scanare</replaceable> + </arg> + <arg choice="opt" rep="norepeat"> + <replaceable>Optiuni</replaceable> + </arg> + <arg choice="req" rep="norepeat"> + <replaceable>specificarea tintei</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1 id="man-description"> + <title>Descriere</title> + <web> + <note><para> + Acest document descrie versiunea Nmap 3.95. Cea mai recentă + documentație este disponibilă în limba engleză la + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + <para>Nmap ( + <quote>Network Mapper</quote>) este un instrument open source pentru + explorarea retelei si audit de securitate A fost proiectat sa scaneze + repede retele mari, cu toate ca functioneaza bine si la scanarea unui + singur host. Nmap foloseste pachete IP in forma bruta intr-un mod + inovator pentru a determina ce calculatoare sunt disponibile in retea, ce + servicii (numele aplicatiei si versiunea) ofera acestea, ce sistem de + operare (si versiune) ruleaza, ce tipuri de filtre de pachete/firewall + sunt utilizate si o multime de alte caracteristici. Nmap este folosit in + mod curent in procesul de audit al securitatii, dar este folosit si de + administratorii de retea pentru rutinele de inventariere a retelei, + managementul upgradeurilor si monitorizarea calculatoarelor sau a + perioadelor de uptime pentru servicii.</para> + <para>Rezultatul generat de Nmap este o lista de tinte scanate, cu + informatii secventiale despre fiecare in functie de optiunile utilizate. + O parte cheie a informatiilor furnizate este + <quote>tabela de porturi interesante</quote>. Aceasta tabela contine + numarul portului si protocolul, numele serviciului si starea. Starea + poate fi + <literal moreinfo="none">open (deschis)</literal>, + <literal moreinfo="none">filtered (filtrat)</literal>, + <literal moreinfo="none">closed (inchis)</literal>, sau + <literal moreinfo="none">unfiltered (nefiltrat)</literal>. Deschis (open) + inseamna ca aplicatia de pe masina tinta asculta la portul respectiv, + asteptand conexiuni. + <literal moreinfo="none">Filtered (filtrat)</literal>inseamna ca un + firewall, filtru sau alt obstacol in retea blocheaza respectivul port + astfel incat Nmap nu poate spune daca este + <literal moreinfo="none">deschis</literal>sau + <literal moreinfo="none">inchis</literal>. Porturile + <literal moreinfo="none">inchise</literal>nu au nici o aplicatie care sa + astepte conexiuni, cu toate ca ele se pot deschide in orice moment. + Porturile sunt clasificate ca + <literal moreinfo="none">nefiltrate</literal>cand ele raspund la probele + Nmap, dar Nmap nu poate determina daca sunt inchise sau deschise. Nmap + raporteaza combinatia de stari + <literal moreinfo="none">open|filtered (deschis|filtrat)</literal>si + <literal moreinfo="none">closed|filtered (inchis|filtrat)</literal>cand + nu poate determina care din cele doua stari este cea corecta. Tabela de + porturi mai poate include versiuni ale softwareului cand detectia + versiunii a fost solicitata. Cand un protocol de scanare IP este + solicitat ( + <option>-sO</option>), Nmap furnizeaza informatii despre protocoalele IP + suportate in locul listei de porturi.</para> + <para>In plus fata de lista de porturi interesante, Nmap poate furniza si + alte informatii despre tinte, incluzand aici nume obtinute prin reverse + DNS, poate ghici sistemul de operare, tipul hardwareului si adresele + MAC.</para> + <para>O scanare tipica cu Nmap este exemplificata in + <xref linkend="man-ex-repscan"></xref>. Singurele argumente folosite in + aceste exemplu sunt + <option>-A</option>, pentru a activa detectia versiunii si a sistemului + de operare, + <option>-T4</option>pentru executia mai rapida a scanarii, si apoi + specificatiile pentru cele doua tinte.</para> + <example id="man-ex-repscan"> + <title>O scanare reprezentativa cu Nmap</title> + <screen format="linespecific"># nmap -A -T4 scanme.nmap.org playground + Starting nmap ( https://nmap.org/ ) Interesting ports on + scanme.nmap.org (205.217.153.62): (The 1663 ports scanned but not shown + below are in state: filtered) PORT STATE SERVICE VERSION 22/tcp open + ssh OpenSSH 3.9p1 (protocol 1.99) 53/tcp open domain 70/tcp closed + gopher 80/tcp open http Apache httpd 2.0.52 ((Fedora)) 113/tcp closed + auth Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS + details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 Uptime 33.908 days + (since Thu Jul 21 03:38:03 2005) Interesting ports on + playground.nmap.org (192.168.0.40): (The 1659 ports scanned but not + shown below are in state: closed) PORT STATE SERVICE VERSION 135/tcp + open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 389/tcp open + ldap? 445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds + 1002/tcp open windows-icfw? 1025/tcp open msrpc Microsoft Windows RPC + 1720/tcp open H.323/Q.931 CompTek AquaGateKeeper 5800/tcp open vnc-http + RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) 5900/tcp open vnc + VNC (protocol 3.8) MAC Address: 00:A0:CC:63:85:4B (Lite-on + Communications) Device type: general purpose Running: Microsoft Windows + NT/2K/XP OS details: Microsoft Windows XP Pro RC1+ through final + release Service Info: OSs: Windows, Windows XP Nmap finished: 2 IP + addresses (2 hosts up) scanned in 88.392 seconds</screen> + </example> + <para>Cea mai noua versiune de Nmap poate fi obtinuta de la + <ulink url="https://nmap.org/"></ulink>. Cea mai noua + versiune a paginii man poate fi vizualizata la + <ulink url="https://nmap.org/man/"></ulink>.</para> + </refsect1> + <refsect1 id="translation"> + <title>Traducere</title> + <para>Aceasta editie inlimba romana a Ghidului de referinta Nmap a fost + tradus din versiunea 2991 a textului original aflat la + <ulink url="https://nmap.org/man/">original English + version</ulink>de Dan Catalin Vasile + <email>danvasile@danvasile.com</email>. Traducerea a fost facuta cu scopul + de a asigura o intelegere mai buna a functionalitatilor Nmap intai pentru + autor si mai apoi pentru toti vorbitorii nativi de limba romana. Autorul + traducerii nu va poate garanta faptul ca traducerea este la fel de + completa cu versiunea actualizata in limba engleza. Acest produs poate fi + modificat si redistribuit in conditiile stipulate de + <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative Commons + Attribution License</ulink>. + </para> + </refsect1> + <refsect1 id="man-briefoptions"> + <title>Sumarul Optiunilor</title> + <para>Acest sumar al optiunilor este printat cand Nmap este rulat fara + nici un argument si ultima versiune este disponibila la + <ulink url="https://nmap.org/data/nmap.usage.txt"></ulink>. + Ajuta oamenii sa isi aduca aminte de cele mai comune optiuni, dar nu + reprezinta un substitut pentru documentatia in profunzime din restul + acestui manual. Unele optiuni obscure nici nu sunt incluse aici.</para> + <para> + <literallayout format="linespecific" class="normal">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 -sP: Ping Scan - go no further than + determining if host is online -P0: Treat all hosts as online -- skip + host discovery -PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery to + given ports -PE/PP/PM: ICMP echo, timestamp, and netmask request + discovery probes -n/-R: Never do DNS resolution/Always resolve + [default: sometimes] SCAN TECHNIQUES: -sS/sT/sA/sW/sM: TCP + SYN/Connect()/ACK/Window/Maimon scans -sN/sF/sX: TCP Null, FIN, and + Xmas scans --scanflags <flags>: Customize TCP scan flags -sI + <zombie host[:probeport]>: Idlescan -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 -F: Fast - Scan only the + ports listed in the nmap-services file) -r: Scan ports sequentially - + don't randomize SERVICE/VERSION DETECTION: -sV: Probe open ports to + determine service/version info --version-light: Limit to most likely + probes for faster identification --version-all: Try every single probe + for version detection --version-trace: Show detailed version scan + activity (for debugging) OS DETECTION: -O: Enable OS detection + --osscan-limit: Limit OS detection to promising targets --osscan-guess: + Guess OS more aggressively TIMING AND PERFORMANCE: -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 <msec>: + Specifies probe round trip time. --host-timeout <msec>: Give up + on target after this long --scan-delay/--max-scan-delay <msec>: + Adjust delay between probes 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 --data-length <num>: Append random data to sent packets + --ttl <val>: Set IP time-to-live field --spoof-mac <mac + address/prefix/vendor name>: Spoof your MAC address 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 twice for more effect) -d[level]: Set or + increase debugging level (Up to 9 is meaningful) --packet-trace: Show + all packets sent and received --iflist: Print host interfaces and + routes (for debugging) --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 Insecure.Org for + more portable XML --no-stylesheet: Prevent associating of XSL + stylesheet w/XML output MISC: -6: Enable IPv6 scanning -A: Enables OS + detection and Version detection --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 -V: Print version number -h: Print this help summary + page. EXAMPLES: nmap -v -A scanme.nmap.org nmap -v -sP 192.168.0.0/16 + 10.0.0.0/8 nmap -v -iR 10000 -P0 -p 80</literallayout> + </para> + </refsect1> + <refsect1 id="man-target-specification"> + <title>Specificarea tintelor</title> + <para>Tot ceea ce in lina de comanda a Nmap nu este optiune (sau argument + al unei optiuni) este tratat ca specificare a unei tinte. Cel mai simplu + caz este specificarea adresei IP sau a numelui calculatorului ce urmeaza + a fi scanat.</para> + <para>Cateodata se doreste scanarea unei intregi retele pentru + calculatoare adiacente. Pentru asta, Nmap suporta stilul de adresare + CIDR. Se poate adauga / + <replaceable>numarul de biti</replaceable>la o adresa IP sau nume si Nmap + va scana toate adresele IP pentru care primii + <replaceable>biti</replaceable>sunt aceeasi cu IP sau numele de + referinta. De exemplu, 192.168.10.0/24 va scana cele 256 de calculatoare + intre 192.168.10.0 (binar: + <literal moreinfo="none">11000000 10101000 00001010 00000000</literal>) + si 192.168.10.255 (binar: + <literal moreinfo="none">11000000 10101000 00001010 11111111</literal>), + inclusiv. 192.168.10.40/24 va realiza exact acelasi lucru. Dat fiind + numele scanme.nmap.org cu adresa IP 205.217.153.62, specificatia + scanme.nmap.org/16 va scana cele 65.536 adrese IP intre 205.217.0.0 si + 205.217.255.255. Cea mai mica valoare permisa este /1, care va scana + jumatate de Internet. Cea mai mare este 32, care va scana doar + calculatorul specificat prin nume sau IP deoarece toti bitii sunt + fixati.</para> + <para>Natatia CIDR este scurta dar nu intotdeauna suficient de flexibila. + De exemplu, puteti dori scanarea 192.168.0.0/16 dar fara adresele care se + termina in .0 sau .255, deoarece ele sunt in general adrese de broadcast. + Nmap suporta acest lucru prin adresarea unei anumite limite pentru + fiecare octet in parte. In locul specificarii adresei IP normale, puteti + specifica o lista de numere separate prin virgula sau un domeniu pentru + fiecare octet. De exemplu, 192.168.0-255.1-254 va sari toate adresele din + acest domeniu care se termina in .0 si .255. Domeniile nu se limiteaza la + ultimii octeti: specificatorul 0-255.0-255.13.37 va scana Internetul dupa + toate IPurile care se termina in .13.37. Acest tip de scanare poate fi + folositor pentru inspectarea si cercetarea Internetului.</para> + <para>Adresele IPv6 pot fi specificate doar prin adresa completa sau + nume. CIDR si domeniile pe octeti nu sunt suportate pentru IPv6 deoarece + sunt rareori folositoare.</para> + <para>Nmap accepta specificarea mai multor adrese in linia de comanda si + nici nu este necesar ca ele sa fie de acelasi tip. Comnda + <command moreinfo="none">nmapscanme.nmap.org 192.168.0.0/8 + 10.0.0,1,3-7.0-255</command>realizeaza exact ceea ce asteptati.</para> + <para>Desi tintele sunt specificate in mod uzual in linia de comanda, + exista si urmatoarele optiuni pentru selectia tintelor</para> + <variablelist> + <varlistentry> + <term> + <option>-iL <fisierdeintrare></option>(Preluare dintr-un + fisier)</term> + <listitem> + <para>Citeste specificarile tintelor din + <replaceable>fisierdeintrare</replaceable>. Preluarea unei liste + mari de calculatoare este un lucru greu de facut din linia de + comanda, desi acest lucru este de preferat. De exemplu, serverul + DHCP poate exporta o lista de 10.000 de IP pe care le-a atribuit si + pe care noi dorim sa le scanam. Sau poate dorim sa scanam toate + adresele + <emphasis>cu exceptia</emphasis>celor generate de DHCP pentru a + monitoriza adresele statice neautorizate. Generati lista de IPuri + si plasati numele fisierului ca argument al optiunii + <option>-iL</option>Intrarile din fisier pot fi in orice format + acceptat de Nmap in linia d ecomanda (adrese IP, nume, CIDR, IPv6 + sau domenii pe octeti). Fiecare intrare trebuie separata prin unul + sau mai multe spatii libere sau prin linie noua. Puteti specifica + caracterul + <literal moreinfo="none">-</literal>ca nume de fisier daca vreti ca + Nmap sa citeasca de la intrarea standard in locul unui + fisier.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-iR <numar de tinte></option>(Alegere de tinte + aleatoare)</term> + <listitem> + <para>Pentru sondaje asupra Internetului sau alte cercetari, puteti + alege tinte aleator. + <replaceable>Numarul de tinte</replaceable>comunica Nmapului cate + tinte aleatoare sa genereze. Adrese nedorite cum ar fi IPurile + private, cele de multicast sau cele nealocate sunt sarite in mod + automat la generarea listei. Argumentul + <literal moreinfo="none">0</literal>poate specifica o scanare fara + sfarsit. Tineti minte ca unii administratori de retea sunt + deranjati de scanarile neautorizate asupra retelei lor si pot + depune plangeri. Folositi aceasta optiune asumandu-va riscurile! + Daca sunteti cu adevarat plictisit intr-o dupa-amiaza ploioasa + incercati comanda + <command moreinfo="none">nmap -sS -PS80 -iR 0 -p 80</command>pentru + a localiza aleator servere care gazduiesc pagini web si incepeti sa + faceti brosing.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--exclude<host1[,host2][,host3],...></option>(Se exclud + de la scanare calculatoarele/retelele specificate ca argument)</term> + <listitem> + <para>Specifica o lista separata prin virgula de tinte excluse de + la scanare chiar daca ele se afla in domeniul specificat. Lista + foloseste sintaxa normala a Nmap, asa ca poate include nume, + specificatori CIDR, domenii pe octeti, etc. Aceasta optiune poate + fi folositoare cand reteaua pe care dorim sa o scanam include + servere ce ruleaza aplicatii critice, sisteme care reactioneaza la + scanari sau subretele administrate de alte persoane.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--excludefile <fisier_de_excludere></option>(Lista de + excludere dintr-un fisier)</term> + <listitem> + <para>Aceasta ofera aceeasi functionalitate ca si optiunea + <option>--exclude</option>, cu exceptia ca ca tintele excluse sunt + furnizate intr-un format delimitat prin linie noua, spatiu sau tab + din + <replaceable>fisierul_de_excludere</replaceable>in loc sa fie + furnizate din linia de comanda.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-host-discovery"> + <title>Descoperirea hosturilor</title> + <para>Nota: Vom imprumuta din limba engleza termenul de host. Acesta se + refera la orice element din retea care comunica sau poate comunica. + Aceste elemente pot fi statii de lucru, servere, routere, imprimante de + retea, etc. Unul din primii pasi ai descoperirii elementelor din retea + este reducerea numarului (adesea urias) de IP intr-o lista de hosturi + active sau interesante. Scanarea fiecarui port de pe fiecare IP este un + proces lent si de obicei inutil. Desigur, ce transforma un host intr-unul + interesant depinde in mare parte de scopul scanarii. Administratorii de + retea ar putea fi interesati doar de calculatoarele ce ruleaza anumite + servicii, in timp ce auditorii de securitate pot fi interesati de toate + elementele ce poseda o adresa IP. Unui administrator ii poate fi + suficient un simplu pachet ping ICMP pentru localizarea calculatoarelor + din reteaua interna, in timp ce un auditor extern poate folosi o + multitudine de probe in incercarea de a scapa de restrictiile + firewallului.</para> + <para>Deoarece necesitatile in vederea descoperirii hosturilor sunt atat + de diverse , Nmap ofera o varietate mare de optiuni de personalizare a + tehnicilor folosite. Descoperirea hosturilor este adesea numita scanare + ping, dar trece cu mult de simplul stadiu al pachetelor ICMP care + solicita un raspuns asociate omniprezentului instrument + <application moreinfo="none">ping</application>Utilizatorii pot sari de + pasul care implica pingul cu o scanare de tip lista ( + <option>-sL</option>) sau dezactivand pingul ( + <option>-P0</option>), sau angrenand alte combinatii arbitrare de probe + multiport TCP SYN/ACK, UDP si ICMP. Scopul acestor probe este sa solicite + raspunsuri care sa demonstreze daca o adresa IP este cu adevarat activa + (este folosita de un dispozitiv din retea). In multe retele, doar un mic + procentaj de adrese IP sunt active la un moment dat. Acest lucru este in + mod special adevarat intr-un spatiu de adrese rezervat conform + binecuvantatului RFC1918 cum ar fi 10.0.0.0/8. Aceasta retea are 16 + milioane de IPuri, dar am vazut ca sunt folosite de companii cu mai putin + de o mie de calculatoare. Descoperirea hosturilor poate gasi acele masini + risipite in marea de adrese IP.</para> + <para>Daca nu sunt furnizate optiuni de descoperire a hosturilor, Nmap + trimite un pachet TCP ACK destinat portului 80 si un pachet de interogare + ICMP cu solicitare de raspuns la fiecare masina tinta. O exceptie la + acestea este ca scanarea ARP este folosita pentru orice tinta dintr-o + retea locala. Pentru utilizatori neprivilegiati cu conturi shell pe + sisteme UNIX, sunt trimise pachete SYN in locul celor ack folosind apelul + de sistem + <function moreinfo="none">connect()</function>. Aceste optiuni implicite + sunt echivalente cu + <option>-PA -PE</option>. Descoperirea hosturilor este de obicei + suficienta pentru scanarea retelelor locale, dar un set mult mai + cuprinzator de probe pentru descoperire este recomandat in auditul de + securitate.</para> + <para>Optiunea + <option>-P*</option>(care selecteaza tipul pingului) poate fi combinata. + Puteti mari sansele de penetrare a unor firewalluri stricte trimitand mai + multe probe folosind diferite porturi/flaguri (indicatori din pachetele) + TCP si coduri ICMP. Notati de asemenea ca descoperirea ARP ( + <option>-PR</option>) este executata implicit impotriva tintelor dintr-o + retea locala chiar daca specificati alta optiune + <option>-P*</option>, deoarece este aproape intotdeauna mai rapida si mai + eficienta.</para> + <para>Urmatoarele optiuni controleaza descoperirea hosturilor.</para> + <variablelist> + <varlistentry> + <term> + <option>-sL</option>(Scanarea de tip lista)</term> + <listitem> + <para>Scanarea de tip lista este o forma degenerata de descoperire + a hosturilor care listeaza fiecare host al retelei specificate, + fara a trimite nici un pachet tintelor. In mod implicit, Nmap + realizeaza totusi o rezolutie inversa DNS pentru a afla si numele + tintelor. Adesea este surprinzator cate informatii utile ne pot + oferi simplele nume ale hosturilor. De exemplu, + <literal moreinfo="none">fw.chi.playboy.com</literal>este + firewallul biroului din Chicago al Playboy Enterprises. Nmap + raporteaza numarul total de adrese IP la sfarsit. Scanarea de tip + lista este o buna verificare a faptului ca aveti adresele IP + corecte pentru tinte. Daca hosturile au nume pe care nu le + recunoasteti, este bine sa investigati in profunzime pentru a nu + scana reteaua unei alte companii.</para> + <para>Din moment ce ideea este de afisa o lista cu tinte, optiunile + pentru un nivel mai inalt de functionalitate cum ar fi scanare de + porturi, detectia sistemului de operare sau scanarea ping nu pot fi + combinate cu aceasta. Daca doriti dezactivarea scanarea ping si in + acelasi timp sa executati tehnicile corespunzatoare nivelului inalt + de functionalitate, cititi paragraful destinat optiunii + <option>-P0</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sP</option>(Scanare ping)</term> + <listitem> + <para>Aceasta optiune spune Nmapului sa realizeze + <emphasis>numai</emphasis>o scanare ping (descoperirea hosturilor) + si apoi sa afiseze hosturile disponibile care raspund la scanare. + Nici un alt fel de test (cum ar fi scanarea de porturi sau detectia + sistemului de operare) nu va fi realizat. Acest pas este mai + intruziv decat scanarea de tip lista si poate fi folosita adesea in + acelasi scop. Permite o descoperire a tintelor din retea fara a + atrage prea mult atentia. Cunoscand cate hosturi sunt active este o + informatie mult mai valoroasa unui atacator decat simpla lista + furizata de scanarea de tip lista a fiecarei adrese IP si a numelor + hosturilor.</para> + <para>Administratorii de sistem gasesc adesea aceasta optiune + pretioasa ca atare. Poate fi usor utilizat pentru numararea + masinilor disponibile intr-o retea sau pentru monitorizarea + disponibilitatii serverelor. Adesea este denumita maturare ping si + este mai de incredere decat pingul asupra adresei de broadcast + deoarece multe hosturi nu raspund la solicitarile de + broadcast.</para> + <para>Optiunea + <option>-sP</option>trimite un pachet ICMP cu solicitare de raspuns + si un pachet TCP la portul 80 in mod implicit. Cand se executa de + catre un utilizator neprivilegiat, un pachet SYN este trimis + (folosin apelul + <function moreinfo="none">connect()</function>) la portul 80 al + tintei. Cand un utilizator privilegiat incearca sa scaneze tinte + dintr-o retea locala, solicitari ARP ( + <option>-PR</option>) sunt utilizate, doar daca + <option>--send-ip</option>(adresa IP de expediere) a fost + specificat. Optiunea + <option>-sP</option>poate fi combinata cu oricare dintre tipurile + de probe de descoperire (optiunile + <option>-P*</option>, exluzand + <option>-P0</option>) pentru o mai mare flexibilitate. Daca oricare + dintre tipurile de probe si optiuni de porturi sunt utilizate, se + renunta la probele implicite (ACK si ICMP cu solicitare de + raspuns). Cand firewalluri stricte sunt plasate intre calculatorul + sursa care ruleaza Nmap si reteaua tinta, folosirea acelor tehnici + avansate este recomandata. Altfel, hosturi pot ramane nedescoperite + cand firewallul executa comanda drop (pur si simplu ignora + pachetele) la probe sau la raspunsuri.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-P0</option>(Fara ping)</term> + <listitem> + <para>Aceasta optiune sare complet peste faza de descoperire. In + mod normal, Nmap foloseste aceasta faza pentru a determina masinile + active pentru scanarea avansata. Implicit, Nmap realizeaza scanarea + avansata cum ar fi scanarea de porturi, detectia versiunii si a + sistemului de operare doar pentru hosturile gasite active. + Dezactivarea descoperirii hosturilor cu + <option>-P0</option>face ca Nmap sa incerce tehnicile avansate de + scanare pentru + <emphasis>fiecare</emphasis>adresa IP specificata ca tinta. Asadar, + daca spatiul unei clase B (/16) este specificata in linia de + comanda, toate cele 65,536 de IP vor fi scanate cu tehnicile + avansate. Cel de-al doilea caracter din optiunea + <option>-P0</option>este un zero si nu litera O. Descoperirea + obisnuita a hosturilor este sarita execucandu-se o scanare de tip + lista, dar in loc sa se opreasca si sa afiseze lista de tinte, Nmap + continua sa realizeze cererile din linia de comanda ca si cum + fiecare adresa IP ar fi activa.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PS [listadeporturi]</option>(Ping TCP SYN)</term> + <listitem> + <para>Aceasta optiune trimite un pachet TCP gol cu flagul SYN + setat. Portul de destinatie implicit este 80 (configurabil la + compilare prin schimbarea DEFAULT_TCP_PROBE_PORT in + <filename moreinfo="none">nmap.h</filename>), dar un alt port poate + fi specificat ca parametru. Chiar o lista separata prin virgula de + porturi poate fi specificata (de exemplu + <option>-PS22,23,25,80,113,1050,35000</option>),caz in care probele + vor fi trimise la fiecare port in paralel.</para> + <para>Flagul SYN sugereaza tintei ca dorim sa stabilim o conexiune. + In mod normal portul destinatie va fi inchis si un pachet RST (de + resetare) este trimis inapoi. Daca se intampla ca portul sa fie + deschis, tinta va face cel de-al doilea pas dintr-un + 3-way-handshake (stabilirea unei conexiuni in trei pasi) raspunzand + cu un pachet TCP SYN/ACK. Masina care ruleaza nmap va inchide apoi + conexiunea raspunzand cu un pachet RST in loc sa trimita pachetul + ACK care ar completa 3-way-handshakeul si ar stabili o conexiune + completa. Pachetul RST este trimis de kernelul sistemului de + operare al masinii care ruleaza Nmap ca raspuns la pachetul SYN/ACK + neasteptat, si nu de catre Nmap ca atare.</para> + <para>Nmapului nu ii pasa daca portul este deschis sau inchis. Fie + ca este RST sau SYN/ACK dupa cum s-a vazut anterior, raspunsul + anunta Nmapul ca hostul este activ si raspunde la probe</para> + <para>Pe masinile UNIX, numai utilizatorii privilegiati + <literal moreinfo="none">root</literal>sunt capabili sa trimita si + sa primeasca pachete TCP in forma bruta. Pentru utilizatorii + neprivilegiati, un ocolis este automat pus in functiune si implica + apelul de sistem connect() initiat impotriva fiecarui port tinta. + Acesta are ca efect trimiterea unui pachet SYN catre tinta, intr-o + incercare de a stabili conexiunea. Daca connect() returneaza o + valoare care indica succesul operatiunii sau un raspuns + ECONNREFUSED (conexiune refuzata), inseamna ca nivelele inferioare + ale stivei TCP au primit un SYN/ACK sau RST iar hostul este marcat + ca fiind disponibil. Daca tentativa de conexiune este lasata sa + astepte un timp mai mare decat timeoutul (timpul maxim in care se + asteapta un raspuns), hostul este marcat ca indisponibil. Acest + ocolis este utilizat si pentru conexiunile IPv6, deoarece + constructia pachetelor brute IPv6 nu este inca suportata de + Nmap.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PA [lista_de_porturi]</option>(Ping TCP ACK)</term> + <listitem> + <para>Pingul TCP ACK este similar cu proaspat discutatul ping SYN. + Diferenta, dupa cum probabil ati ghicit, este ca flagul TCP ACK + este setat in locul celui SYN. Un astfel de pachet ACK pretinde ca + transporta date in cadrul unei conexiuni ACK deja stabilite, dar nu + exista nici o astfel de conexiune. Asadar tintele trebuie sa + raspunda intotdeauna cu un pachet RST, dezvaluindu-si existenta in + cadrul acestui proces.</para> + <para>Optiunea + <option>-PA</option>foloseste acelasi port implicit ca probele SYN + si de asemenea poate prelua o lista de porturi destinatie in + acelasi format. Daca un utilizator neprivilegiat incearca aceasta + optiune, sau o tinta IPv6 este specificata, ocolisul connect() + discutat anterior este utilizat. Acest ocolis este imperfect + deoarece connect() trimite de fapt un pachet SYN in locul unuia + ACK.</para> + <para>Motivul oferirii ambelor probe de ping SYN si ACK este de a + maximiza sansele de trecere printr-un firewall. Multi + administratori configureaza routerele si alte firewalluri simple + pentru a bloca pachetele SYN cu exceptia acelora destinate + serviciilor publice cum ar fi serverul web sau serverul de mail al + companiei. Acest lucru previne realizarea altor conexiuni catre + reteaua organizatiei, in timp ce permite utilizatorilor sa + realizeze neobstructionati conexiuni catre Internet. Aceasta + abordare non-statefull sau stateless (nu se analizeaza ACK) + utilizeaza putine resurse ale firewallului sau routerului si este + suportata intr-un procent mare de filtrele hardware sau software. + Firewallul software din Linux Netfilter/iptables ofera o optiune + convenabila + <option>--syn</option>pentru implementarea acestei abordari + stateless. Cand firewalluri stateless ca acestea sunt in functiune, + probele ping SYN ( + <option>-PS</option>) vor fi mai mult ca sigur blocate in drumul + lor catre porturi tinta inchise. In aceste cazuri, probele ACK + stralucesc deoarece trec cu usurinta de aceste reguli.</para> + <para>Alt tip comun de firewalluri folosesc reguli statefull care + ignora pachetele ce nu sunt asteptate. Aceasta optiune a fost + initial gasita doar in firewallurile high-end, dar a devenit mult + mai comuna de-a lungul timpului. In linux, sistemul + Netfilter/iptables suporta aceasta abordare prin optiunea + <option>--state</option>, care catalogheaza pachetele in functie de + starea conexiunii. O proba SYN este mai probabil sa functioneze + impotriva unui astfel de sistem din moment ce pachetele neasteptate + sunt in general recunoscute ca fiind simulate si ignorate. O + solutie la aceasta dilema este trimiterea ambelor probe, SYN si + ACK, specificand + <option>-PS</option>si + <option>-PA</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PU [lista_de_porturi]</option>(Ping UDP)</term> + <listitem> + <para>Alta optiune de descoperire a hosturilor este pingul UDP, + care trimite un pachet gol (doar daca optiunea + <option>--data-length</option>nu este specificata) UDP la portul + specificat. Lista de porturi are acelasi format cu cel discutat + anterior la optiunile + <option>-PS</option>si + <option>-PA</option>. daca nici un port nu este specificat, + implicit este utilizat 31338. Aceasta valoare implicita poate fi + configurata la compilare schimband DEFAULT_PROBE_PORT in + <filename moreinfo="none">nmap.h</filename>. Un port necomun este + folosit implicit deoarece trimiterea unui pachet la un port deschis + nu este de dorit pentru acest tip de scanare.</para> + <para>Dupa trimiterea probei catre un port inchis al tintei, proba + UDP trebuie sa obtina un pachet ICMP de port indisponibil. Acest + lucru semnalizeaza Nmapul ca masina este activa si disponibila. + Multe alte tipuri de erori ICMP, cum ar fi cele de host/retea ce nu + pot fi contactate sau TTL (time to live = timp de viata; timpul + maxim admis pentru asteptarea raspunsului) depasit sunt indicatori + al unui host inactiv sau care nu poate fi contactat. Lipsa unui + raspuns este interpretata la fel. Daca un port deschis este nimerit + de pachetul de proba, multe servicii vor ignora pachetul si nu vor + returna nici un raspuns. De aceea portul de proba este 31338, care + are o probabilitate mare sa nu fie utilizat. Cateva servicii vor + raspunde totusi la un pachet UDP gol, dezvaluind in acest fel + Nmapului faptul ca masina este disponibila.</para> + <para>Principalul avantaj al acestui tip de scanare este ca poate + trece de firewallurile si filtrele care monitorizeaza doar traficul + TCP. De exemplu, am avut o data un router wireless Linksys + BEFW11S4. Interfata externa a acestui dispozitiv filtra in mod + implicit toate porturile TCP, dar probele UDP puteau totusi sa + obtina mesajele de port indisponibil si in felul acesta sa arate + starea hostului.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PE</option>; + <option>-PP</option>; + <option>-PM</option>(Tipuri de ping ICMP)</term> + <listitem> + <para>Pe langa tipurile de descoperire TCP si UDP uzuale discutate + anterior, Nmap poate trimite pachete standard prin intermediul + omniprezentului + <application moreinfo="none">ping</application>. Nmap un pachet + ICMP de tipul 8 (solicitare de raspuns) catre adresa IP tinta, + asteptand un pachet de tip 0 (raspuns) in schimb de la hosturile + disponibile. Din pacate pentru exploratorii de retele, in zilele + noastre multe hosturi si firewalluri blocheaza aceste pachete, in + loc sa raspunda in conformitate cu + <ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt"> + RFC1122</ulink>. Din acest motiv scanarile ICMP simple sau rareori + de incredere impotriva unor tinte necunoscute din Internet. Dar + pentru administratorii de sistem care monitorizeaza o retea + interna, ea poate fi o abordare practica si eficienta. Folositi + optiunea + <option>-PE</option>pentru a activa acest comportament de + solicitare a raspunsului.</para> + <para>Cu toate ca cererile de raspuns ICMP sunt standard, Nmap nu + se opreste aici. Standardul ICMP ( + <ulink url="http://www.rfc-editor.org/rfc/rfc792.txt"> + RFC792</ulink>) specifica de asemenea solicitarea amprentei de + timp, a informatiilor si a mastii de retea corespunzatoare + codurilor 13,15 si 17. Aceste solicitari au ca scop aflarea de + informatii precum amprenta de timp sau masca de retea dar pot fi + usor folosite si la descoperirea hosturilor. Un sistem care + raspunde este disponibil. Nmap nu implementeaza inca solicitarea de + informatii (15) deoarece acestea nu beneficiaza de o implementare + la nivel larg. RFC 1122 insista ca + <quote>un host NU TREBUIE sa implmenteze aceste mesaje</quote>. + Solicitarile de amprenta de timp si masca de retea pot fi trimise + cu ajutorul optiunilor + <option>-PP</option>, respectiv + <option>-PM</option>. Un raspuns amprenta de timp (ICMP cod 14) sau + un raspuns masca de retea (cod 18) dezvaluie un host disponibil. + Aceste doua interogari pot fi de folos cand administratorul de + retea blocheaza pingul ICMP standard uitand faptul ca si celelalte + solicitari ICMP pot fi folosite in acelasi scop.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-PR</option>(Ping ARP)</term> + <listitem> + <para>Unul dintre cele mai comune scenarii de utilizare ale + Nmapului o reprezinta scanarea unei intregi retele locale (LAN). In + multe LANuri, in special in cele care folosesc spatiul privat de + adrese specificat in RFC1918, mare majoritate a adreselor IP nu + sunt utilizate la un moment dat. Cand Nmap incearca sa trimita un + pachet ICMP solicitand un raspuns, sistemul de operare trebuie sa + determine adresa de destinatie hardware (ARP) corespunzatoare + adresei tinta IP astfel incat sa poata adresa in mod corect frameul + ethernet. Este adesea un proces lent, din moment ce sistemele de + operare nu au fost proiectate sa realizeze milioane de solicitari + ARP catre hosturi indisponibile intr-o peioada foarte scurta de + timp.</para> + <para>Scanarea ARP pune Nmapul si algoritmii lui optimizati in + functiune pentru a realiza solicitarile ARP. Si daca primeste un + raspuns, Nmap nici nu mai ia in in considerare pingurile bazate pe + IP din moment ce stie deja ca hostul este activ. Acest lucru face + scanarea ARP mult mai rapida si mai corecta decat scanarile bazate + pe IP. Asadar este realizata implicit cand Nmapul detecteaza faptul + ca adresele scanate fac parte dintr-un LAN. Chiar daca tipuri + diferite de ping (cum ar fi optiunea + <option>-PE</option>sau + <option>-PS</option>) sunt specificate, Nmap foloseste ARP in locul + lor pentru orice adresa din acelasi LAN cu masina care ruleaza + Nmap. Daca sunteti sigur ca nu doriti scanare ARP, specificati + <option>--send-ip</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-n</option>(Nu se realizeaza rezolutia DNS)</term> + <listitem> + <para>Transmite Nmapului ca + <emphasis>niciodata</emphasis>sa nu realizeze rezolutia inversa DNS + pentru IPurile active gasite. Din moment ce DNS este adesea lent, + aceasta optiune poate mari viteza de scanare.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-R</option>(Rezolutie DNS pentru toate tintele)</term> + <listitem> + <para>Transmite Nmapului ca + <emphasis>intotdeauna</emphasis>sa realizeze rezolutia DNS pentru + IPurile tinta. In mod normal acest lucru este realizat cand o + masina este gasita activa.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--system-dns</option>(Foloseste DNSul sistemului de + operare)</term> + <listitem> + <para>Implicit, Nmap rezolva adresele IP prin trimiterea de cereri + la DNSurile configurate pe sistem si asteapta apoi raspunsuri. + Multe solicitari (adesea foarte multe) sunt realizate in paralel + pentru o performanta crescuta. Specificati aceasta optiune daca + doriti sa folositi DNSul sistemului de operare (cate un IP o data + prin intermediul apelului getnameinfo()). Aceasta optiune este + lenta si rareori folositoare. O putei folosi in cazul in care + exista o problema in codul DNS al Nmapului – va rugam sa ne + contactati in acest caz. DNSul sistemului este intotdeauna folosit + pentru scanarile IPv6.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-port-scanning-basics"> + <title>Bazele scanarii de porturi</title> + <para>Cu toate ca functiile Nmap au crescut ca numar in timp, el a + inceput ca un scaner de porturi eficient si acesasta ramane fuctia lui de + baza. Simpla comanda + <command moreinfo="none">nmap + <replaceable>tinta</replaceable></command>scaneaza mai mult de 1660 de + porturi TCP ale + <replaceable>tintei</replaceable>. In timp ce multe scanere de porturi + traditionale catalogheaza porturile in deschise si inchise, Nmap este + mult mai avansat. El imparte porturile in sase stari: + <literal moreinfo="none">open (deschis)</literal>, + <literal moreinfo="none">closed (inchis)</literal>, + <literal moreinfo="none">filtered (filtrat)</literal>, + <literal moreinfo="none">unfiltered (nefiltrat)</literal>, + <literal moreinfo="none">open|filtered (deschis|filtrat)</literal>, or + <literal moreinfo="none">closed|filtered + (inchis|filtrat)</literal>.</para> + <para>Aceste stari nu sunt proprietati intrinsece ale porturilor, dar + descriu modul in care sunt vazute de Nmap. De exemplu, o scanare Nmap din + aceeasi retea ca si tinta poate arata portul tcp 135 ca deschis, in timp + ce o scanare realizata simultan din Internet cu aceleasi optiuni poate + arata portul ca + <literal moreinfo="none">filtered (filtrat)</literal>.</para> + <variablelist> + <title>Cele sase stari ale porturilor recunoscute de Nmap</title> + <varlistentry> + <term>open (deschis)</term> + <listitem> + <para>O aplicatie accepta in mod activ conexiuni TCP sau pachete + UDP la respectivul port. Gasirea acestora este adesea scopul + principal al scanarii de porturi. Oamenii preocupati de securitate + stiu ca fiecare port deschis reprezinta o cale de acces pentru un + atac. Atacatorii si pen-testerii doresc exploatarea porturilor + deschise, in timp ce administratorii incearca sa le inchida sau sa + le protejeze prin firewalluri fara a incurca planurile + utilizatorilor legitimi. Porturile deschise sunt interesante si + pentru scanarile ce nu urmaresc stabilirea securitatii deoarece ele + arata serviciile disponibile pentru retea de la respectivul + host.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>closed (inchis)</term> + <listitem> + <para>Un port inchis este accesibil (primeste si raspunde la un + pachet de proba trimis de Nmap), dar nu exista nici o aplicatie + care sa asculte la el. Pot fi folositoare in dezvaluirea starii + hostului sau ca parte a detectiei sistemului de operare. Deoarece + cu porturile inchise se pote comunica, ele merita scanate si mai + tarziu in caz ca vreunul dintre ele se deschide. Administratorii + pot lua in considerare blocarea unor astfel de porturi cu ajutorul + unui firewall. Astfel ele vor aparea avand starea filtrat, + discutata mai departe</para> + </listitem> + </varlistentry> + <varlistentry> + <term>filtered (filtrat)</term> + <listitem> + <para>Nmap nu poate determina daca portul este deschis datorita + unui filtru de pachete care impiedica pachetele sa ajunga la portul + destinatie. Filtrarea poate proveni de la un firewall dedicat, din + regulile unui router sau dintr-un firewall software al tintei. + Aceste porturi frustreaza atacatorii deoarece furnizeaza foarte + putine informatii. Uneori raspund cu un mesaj de eroare ICMP cum ar + fi tipul 3 codul 13 (destinatie care nu a putu fi atinsa: + comunicatia interzisa administrativ), dar filtrele care executa + operatia drop (ignora pachetul) fara sa raspunda sunt mult mai + comune. Acest lucru forteaza Nmap sa retrimita de cateva ori + probele pentru cazul in care pachetul s-a pierdut din cauza + congestionarii retelei si nu din cauza filtrarii. Acest lucru + incetineste viteza de scanare dramatic.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>unfiltered (nefiltrat)</term> + <listitem> + <para>Starea nefiltrata inseamna ca portul este accesibil, dar Nmap + nu poate determina daca portul este inchis sau deschis. Numai + scanarea ACK, folosita pentru maparea regulilor din firewall, + clasifica portul in aceasta stare. Scanarea porturilor nefiltrate + cu alte tipuri de optiuni cum ar fi scanarea Window(fereastra), + scanarea SYN sau scanarea FIN poate stabili daca portul este + deschis.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>open|filtered (deschis|filtrat)</term> + <listitem> + <para>Nmap plaseaza porturi in aceasta categorie cand nu poate + determina daca portul este deschis sau filtrat. Acestea apar pentru + tipurile de scanari in care porturile deschise nu ofera nici un + raspuns. Lipsa raspunsului poate sa mai insemne si ca un filtru de + pachete a ignorat pachetul de proba sau orice raspuns aferent. + Asadar Nmap nu poate stii sigur daca portul este deschis sau + filtrat. Scanarile UDP, IP, FIN, Null sau Xmas clasifica porturile + in aceasta stare.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>closed|filtered (inchis|filtrat)</term> + <listitem> + <para>Aceasta stare este folosita cand Nmap este in imposibilitatea + de a determina daca portul este inchis sau filtrat. Este folosit + doar de scanarea IPID Idle.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-port-scanning-techniques"> + <title>Tehnici de scanare de porturi</title> + <para>Ca un incepator care incearca sa repare un motor, ma pot stradui + ore intregi sa gasesc ustensile rudimentare (ciocan, banda adeziva, etc.) + potrivite pentru operatia propusa. Cand esuez lamentabil si imi las rabla + pe mana unui mecanic adevarat, invariabil el gaseste in marea de unelte + ustensila potrivita care face treaba sa para una fara efort. Arta + scanarii de porturi este similara. Expertii inteleg multitudinea de + tehnici de scanare si o aleg pe cea potrivita (sau combinatia potrivita) + pentru o anumita misiune. Pe de alta parte, utilizatorii neexperimentati + si script kiddies incearca sa rezolve problema prin scanarea SYN + implicita. Din moment ce Nmap este gratuit, singura bariera in arta + scanarii de porturi o reprezinta cunostintele. Acest fapt bate lucrurile + din viata reala, unde cu multa pricepere poti determina ca ai nevoie de + un arc nou pentru compresor, dar totusi esti nevoit sa platesti si bani + buni pe el.</para> + <para>Multe dintre tipurile de scanare sunt disponibile doar + utilizatorilor privilegiati. Aceasta datorita faptului ca trimit si + primesc pachete brute, care necesita acces root pe sistemele UNIX. + Folosirea unui cont de administrator sub Windows este recomandata, cu + toate ca Nmap functioneaza cateodata si pentru utilizatorii + neprivilegiati pe platformele pe care WinPcap a fost deja incarcat de + sistemul de operare. Necesitatea privilegiilor root au reprezentat o + problema serioasa la lansarea Nmapului in 1997, deoarece multi + utilizatori beneficiau doar de conturi limitate. Acum lumea e diferita. + Calculatoarele sunt ieftine, multi oameni au acces direct si permanent la + Internet iar sistemele UNIX (incluzand Linux si MAC OS X) sunt + raspandite. O versiune de Windows a Nmap este acum disponibila, permitand + rularea acestuia pe si mai multe calculatoare. Oricare ar fi motivul, + utilizatorii au o nevoie mai mica de a rula Nmap de pe conturi limitate. + Acesta este un lucru bun, deoarece optiunile privilegiate sunt mult mai + puternice si mai flexibile.</para> + <para>Chiar daca Nmap incearca sa produca cele mai precise rezultate, + tineti minte intotdeauna ca el se bazeaza pe pachetele returnate de + masina tinta (sau firewallul din fata lui). Asemenea hosturi pot sa nu + fie de incredere iar raspunsurile trimise pot fi menite sa incurce sau sa + duca pe o pista gresita Nmapul. Comune sunt hosturile neconcordante cu + standardele RFC care nu raspund cum ar trebui probelor Nmap. Scanarile + Fin, Null si Xmas sunt in mod particular susceptibile de asa ceva. + Astfele de probleme sunt specifice anumitor tipuri de scanari si sunt + discutate individual la fiecare tip de scanare in parte.</para> + <para>Aceasta sectiune documenteaza multitudinea de tehnici de scanare de + porturi suportate de Nmap. O singura metoda poate fi folosita la o + scanare (nu pot fi combinate mai multe tipuri), cu exceptia scanarii UDP + ( + <option>-sU</option>) care poate fi combinata cu unul din tipurile de + scanare TCP. Cu un ajutor la memorare, tipurile de scanare de porturi + sunt de forma + <option>-s + <replaceable>C</replaceable></option>, unde + <replaceable>C</replaceable>este caracterul principal al numelui + scanarii, in general primul. Singura exceptie o reprezinta scanarea + sarita FTP (metoda depasita moral) ( + <option>-b</option>). Implicit, Nmap executa o scanare SYN, cu toate ca o + poate inlocui cu una Connect() daca utilizatorul nu are privilegii pentru + a trimite pachete brute (acces root pe sisteme UNIX) sau daca tinte IPv6 + au fost specificate. Dintre scanarile mentionate in aceasta sectiune, + utilizatorii neprivilegiati le pot executa doar pe cele de tipul + connect() si ftp sarit.</para> + <variablelist> + <varlistentry> + <term> + <option>-sS</option>(Scanare TCP SYN)</term> + <listitem> + <para>Scanarea SYN este implicita si cea mai populara metoda pentru + motive bine intemeiate. Poate fi executata rapid, scanand mii de + porturi pe secunda intr-o retea rapida neobstructionata de un + firewall deranjant. Scanarile SYN sunt relativ invizibile, din + moment ce nu stabilesc niciodata o conexiune TCP. Functioneaza + impotriva oricarei implementari conforma cu standardul de stiva TCP + in loc sa depinda de platforma asa cum o fac scanarile + Fin/Null/Xmas, Maimon si Idle. Ofera de asemenea o diferenta clara + si precisa intre starile + <literal moreinfo="none">open (deschisa)</literal>, + <literal moreinfo="none">closed (inchisa)</literal>, si + <literal moreinfo="none">filtered (filtrata)</literal>.</para> + <para>Aceasta tehnica este adesea denumita ca o scanare jumatate + deschisa, deoarece nu deschideti o conexiune completa TCP. + Trimiteti un pachet SYN, ca si cum ati deschide o conexiune si + asteptati un raspuns. Un pachet SYN/ACK indica faptul ca portul + este deschis, in timp ce un RST (reset) este indicatorul unui port + inchis. Daca nici un raspuns nu este primit dupa mai multe + retransmiteri, portul este marcat ca fiind filtrat. Portul este de + asemena marcat filtrat daca un mesaj de eroare ICMP negasit (tipul + 3, codurile 1,2,3,9,10 sau 13) este receptionat.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sT</option>(Scanare TCP connect())</term> + <listitem> + <para>Scanarea TCP Connect() este implicita cand SYN nu reprezinta + o optiune viabila. Acesta este cazul in care utilizatorul nu + beneficiaza de posibilitatea de trimitere a pachetelor brute sau + scaneaza retele IPv6. In locul scrierii pachetelor brute asa cum o + fac majoritatea tipurilor de scanare, Nmap cere nivelelor + inferioare ale sistemului de operare sa stabileasca o conexiune cu + masina tinta si portul dorit realizand un apel de sistem + <literal moreinfo="none">connect()</literal>. Acesta este acelasi + apel de sistem prin care aplicatiile de nivel inalt cum ar fi + browserele, clientii P2P si in general aplicatiile cu functii de + retea le folosesc pentru stabilirea conexiunii. Este o parte a + interfetei de programare cunoscuta ca Berkley Sockets API. In loc + sa citeasca pachete brute ca raspuns, Nmap foloseste API pentru a + obtine informatii despre starea fiecarei conexiuni + incercate.</para> + <para>Cand scanarea SYN este disponibila, ea reprezinta in general + alegerea mai buna. Nmap are un control mai restrans asupra + nivelului inalt al apelului + <literal moreinfo="none">connect()</literal>cu pachete brute, + facandu-l mai putin eficient. Apelul de sistem completeaza + conexiunea pentru a deschide conexiunea in loc sa efectueze o + jumatate de conexiune asa cum scanarea SYN o face. Nu numai ca + acest lucru dureaza mai mult si necesita mai multe pachete pentru a + obtine aceeasi informatie, dar exista sanse mai mari ca masinile + tinta sa logheze conexiunea. Un IDS decent va prinde si el + conexiunea, dar multe masinii nu au astfel de sisteme de alarma. + Multe servicii ale unui sistem uzual UNIX vor adauga o nota la + syslog si cateodata si un mesaj criptic de eroare cand Nmap se + conecteaza si apoi inchide conexiunea fara a trimite date. Servicii + patetice se pot bloca in acest caz, dar nu este un lucru comun. Un + administrator care vede o multime de tentative de conexiune in + loguri venind de la o singura sursa trebuie sa stie ca a fost + scanat prin metoda connect.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sU</option>(Scanare UDP)</term> + <listitem> + <para>In tim ce multe servicii in Internet ruleaza prin protocolul + TCP, serviciile + <ulink url="http://www.rfc-editor.org/rfc/rfc768.txt"> + UDP</ulink>sunt si ele raspandite. DNS, SNMP si DHCP (porturile + inregistrate 53, 161/162 si 67/68) sunt trei dintre cele mai + comune. Deoarece scanarea UDP este in general lenta si mai dificila + decat TCP, unii auditori de securitate ignora aceste porturi. + Aceasta este o greseala, deoarece serviciile UDP exploatabile sunt + destul de cunoscute si atacatorii cu siguranta nu vor ignora un + intreg protocol. Din fericire, Nmap poate ajuta la inventarierea + porturilor UDP.</para> + <para>Scanarea UDP este acivata cu optiunea + <option>-sU</option>. Poate fi combinata cu o scanare TCP cum ar fi + scanrea SYN ( + <option>-sS</option>) pentru a verifica ambele protocoale in timpul + aceleiasi scanari.</para> + <para>Scanarea UDP functioneaza prin trimiterea de headere UDP + goale (fara date) la fiecare port specificat al masinii tinta. Daca + un mesaj ICMP de port inaccesibil (tipul 3, codul 3) este returnat, + portul este + <literal moreinfo="none">closed (inchis)</literal>. Alte mesaje + ICMP de port care nu poate fi atins (tipul 3, codurile 1, 2, 9, 10 + sau 13) marcheaza portul ca + <literal moreinfo="none">filtered (filtrat)</literal>. Ocazional, + un serviciu poate raspunde cu un pachet UDP, demonstrand faptul ca + este + <literal moreinfo="none">open (deschis)</literal>. Daca nici un + raspuns nu este primit dupa mai multe retransmisii atunci portul + este catalogat ca + <literal moreinfo="none">open|filtered (deschis|filtrat)</literal>. + Asta inseamna ca portul poate fi deschis sau poate un filtru de + pachete blocheaza comunicatia. Scanarile de versiune ( + <option>-sV</option>) pot fi folosite pentru a ne ajuta sa + diferentiem porturile cu adevarat deschise de cele filtrate.</para> + <para>O mare incercare in scanarea UDP o reprezinta realizarea + acesteia rapid. Porturile deschise si filtrate rareori trimit + raspuns, lasand Nmapul sa astepte si apoi sa retrimita pachetul + pentru situatia in care proba sau raspunsul s-au pierdut. Porturile + inchise reprezinta adesea o problema si mai mare. In mod uzual + trimit inapoi un mesaj de eroare ICMP inaccesibil. Dar spre + deosebire de de pachetele RST trimise de porturile TCP inchise ca + raspuns la scanarile SYN sau connect, multe hosturi limiteaza rata + de mesaje ICMP port inaccesibil. Linux si Solaris sunt foarte + stricte in aceasta privinta. De exemplu, kernelul Linux 2.4.20 + limiteaza aceste mesaje la unul pe secunda (din + <filename moreinfo="none">net/ipv4/icmp.c</filename>).</para> + <para>Nmap detecteaza rata de limitare si incetineste scanarea in + conformitate cu aceasta pentru a preveni inundarea retelei cu + pachete inutile pe care masina tinta le va ignora. Din pacate, o + limitare de genul Linuxului de un pachet la o secunda face ca o + scanare de 65.536 de porturi sa dureze mai mult de 18 ore. Ideile + de accelerare a scanarii UDP includ scanarea in paralel a mai + multor hosturi, scanarea doar a porturilor cunoscute, scanarea din + spatele firewallului si folosind optiunea + <option>--host-timeout</option>pentru a sari peste hosturile + lente.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sN</option>; + <option>-sF</option>; + <option>-sX</option>(Scanari TCP Null, FIN, si Xmas)</term> + <listitem> + <para>Aceste trei tipuri de scanare (chiar si mai multe posibile + folosind optiunea + <option>--scanflags</option>descrisa in aceasta sectiune) + exploateaza o portita din + <ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP + RFC</ulink>pentru a diferentia intre porturile + <literal moreinfo="none">deschise (open)</literal>si cele + <literal moreinfo="none">inchise (closed)</literal>. Pagina 65 + spune ca + <quote>daca starea portului [destinatie] este INCHIS ... un segment + de intrare care nu contine un RST face ca un raspuns RST sa fie + trimis inapoi</quote>In urmatoarea pagina se discuta pachetele + trimise catre porturile deschise fara bitii SYN, RST sau ACK + setati, specificand ca: + <quote>este putin probabil sa ajungeti intr-o asemenea situatie, + dar daca o faceti, ignorati segmentul si reveniti</quote></para> + <para>Cand scanam un sistem compatibil cu textul RFC, orice pachet + care nu contine bitii SYN, RST sau ACK va genera un raspuns RST + daca portul este inchis si nici un raspuns daca portul este + deschis. De vreme ce nici unul dintre acesti biti nu este inclus, + orice combinatie a celorlalti trei (FIN, PSH si URG) este buna. + Nmap exploateaza aceasta problema cu trei tipuri de scanari:</para> + <variablelist> + <varlistentry> + <term>Scanare Null ( + <option>-sN</option>)</term> + <listitem> + <para>Nu seteaza nici un bit (flagul header tcp este + 0)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Scanare FIN ( + <option>-sF</option>)</term> + <listitem> + <para>Seteaza doar bitul TCP FIN.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Scanare Xmas ( + <option>-sX</option>)</term> + <listitem> + <para>Seteaza flagurile FIN, PSH si URG, luminand pachetul ca + pe un pom de Craciun.</para> + </listitem> + </varlistentry> + </variablelist> + <para>Aceste trei tipuri de scanare sunt identice in comportament + exceptand flagurile TCP setate in pachetele de proba. Daca un + pachet RST este primit, portul este considerat + <literal moreinfo="none">closed (inchis)</literal>, in vreme ce + nici un raspuns inseamna un port + <literal moreinfo="none">open|filtered (deschis|filtrat)</literal>. + Portul este marcat ca + <literal moreinfo="none">filtered (filtrat)</literal>daca un mesaj + de eroare ICMP de port indisponibil (tipul 3, codurile 1, 2, 3, 9, + 10 sau 13) este receptionat.</para> + <para>Principalul avantaj al acestor tipuri de scanare este acela + ca se pot strecura prin anumite firewalluri non-statefull si + routere cu filtrare de pachete. Alt avantaj al acestor tipuri de + scanare este ca sunt si mai discrete decat o scanare SYN. Nu va + bazati pe asta – multe IDSuri moderne pot fi configurate sa le + detecteze. Marea problema este ca nu toate sistemele urmeaza RFC + 793 litera cu litera. Un numar de sisteme trimit un raspuns RST la + probe indiferent daca portul este deschis sau nu. Acest lucru face + ca porturile sa fie marcate ca fiind + <literal moreinfo="none">inchise (closed)</literal>. Majoritatea + sistemelor care fac acest lucru sunt Microsoft Windows, multe + dispozitive Cisco, BSDI si IBM OS/400. Acest tip de scanare + functioneaza impotriva celor mai multe sisteme bazate pe UNIX. Alta + problema este ca aceste tipuri de scanari nu pot face diferenta + intre porturile + <literal moreinfo="none">deschise (open)</literal>de cele + <literal moreinfo="none">filtrate (filtered)</literal>, lasand un + raspuns de tipul + <literal moreinfo="none">deschis|filtrat + (open|filtered)</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sA</option>(Scanare TCP ACK)</term> + <listitem> + <para>Aceasta scanare e diferita de celelalte discutate pana acum + in sensul in care nu poate determina niciodata un port + <literal moreinfo="none">deschis (open)</literal>(sau chiar + <literal moreinfo="none">deschis|filtrat + (open|filtered)</literal>). Este folosita pentru a mapa regulile + firewallului, determinand daca acestea sunt statefull sau nu si ce + porturi sunt filtrate.</para> + <para>Packetul de proba la scanrea ACK are doar bitul ACK setat + (doar daca nu se specifica altceva cu + <option>--scanflags</option>). Cand scanam sisteme nefiltrate + porturile, + <literal moreinfo="none">deschise (open)</literal>si + <literal moreinfo="none">inchise (closed)</literal>vor returna un + pachet RST. Nmap le eticheteaza ca + <literal moreinfo="none">nefiltrate (unfiltered)</literal>, ceea ce + inseamna ca sunt disponibile pentru pachetul ACK dar nu se poate + determina daca sunt + <literal moreinfo="none">deschise (open)</literal>sau + <literal moreinfo="none">inchise (closed)</literal>. Porturile care + nu raspuns, sau trimit inapoi anumite mesaje de eroare ICMP (tipul + 3, codurile 1, 2, 3, 9, 10 sau 13) sunt etichetate ca + <literal moreinfo="none">filtrate (filtered)</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sW</option>(Scanare TCP Window)</term> + <listitem> + <para>Scanarea Window (fereastra) este asemanatoare cu scanarea + ACK, cu exceptia ca exploateaza un detaliu de implementare a + anumitor sisteme pentru a diferentia porturile deschise de cele + inchise, in loc sa aiseze + <literal moreinfo="none">nefiltrat (unfiltered)</literal>cand un + RST este returnat. Realizeaza acest lucru prin examinarea campului + TCP Window din pachetul RST returnat. Pe unele sisteme, porturile + deschise folosesc o valoare pozitiva in timp ce porturile inchise + au valoarea 0. Astfel ca in loc sa afiseze o lista de porturi + <literal moreinfo="none">nefiltrate (unfiltered)</literal>cand + primeste un RST, scanrea TCP Window marcheaza porturile ca + <literal moreinfo="none">deschise (open)</literal>sau + <literal moreinfo="none">inchise (closed)</literal>daca valoarea + TCP Window este pozitiva sau 0, dupa caz.</para> + <para>Scanarea se bazeaza pe detalii de implementare a unei + minoritati de sisteme din Internet, deci nu va bazati intotdeauna + pe ea. Sistemele care nu suporta aceasta implementare returneaza de + obicei toate porturile + <literal moreinfo="none">inchise (closed)</literal>. Desigur, este + posibil ca respectiva masina sa nu aiba porturi deschise. Daca + majoritatea porturilor sunt + <literal moreinfo="none">inchise (closed)</literal>dar cateva + numere comune cum ar fi (22, 25, 53) sunt + <literal moreinfo="none">filtrate (filtered)</literal>, sistemul + este unul compatibil cu scanarea. Ocazional, sistemul va raporta un + comportament inversat. Daca scanarea returneaza 1000 de porturi + deschise si 3 inchise sau filtrate, atunci acele trei pot fi + adevaratele porturi deschise.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sM</option>(Scanarea TCP Maimon)</term> + <listitem> + <para>Scanarea TCP Maimon este denumita astfel dupa descoperitorul + ei, Uriel Maimon. El descrie aceasta tehnica in Magazinul Phrak + editia 49 (noiembrie 1996). Nmap, care include aceasta tehnica, a + fost lansat doua editii mai tarziu. Tehnica este similara cu + scanarile Null, FIN si Xmas cu exceptia ca proba este FIN/ACK. In + conformitate cu RFC 793, un pachet RST trebuie generat ca raspuns + la o astfel de proba indiferent daca portul este inchis sau + deschis. Oricum, Uriel a remarcat faptul ca multe sisteme derivate + din BSD ignora pachetul daca portul este deschis.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--scanflags</option>(Scanare TCP personalizata)</term> + <listitem> + <para>Utilizatorii avansati de Nmap nu trebuie sa se limiteze la + tipurile de scanare generale oferite Optiunea + <option>--scanflags</option>va permite sa creati propriile tipuri + de scanare prin specificarea flagurilor TCP. Lasati spiritul + creativ sa lucreze, penetrand IDSurile ale caror producatori se + multumesc sa adauge reguli specifice doar pentru tipurile clasice + de scanare.</para> + <para>Argumentul pentru + <option>--scanflags</option>poate fi o valoare numerica cum ar fi 9 + (PSH si FIN), dar folosirea numelor simbolice este mult mai comoda. + Puneti alaturi orice combinatie dintre + <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>, and + <literal moreinfo="none">FIN</literal>. De exemplu, + <option>--scanflagsURGACKPSHRSTSYNFIN</option>setaza toti bitii, + desi nu este foarte folositor pentru scanare. Ordinea in care se + fac specificarile este irelevanta.</para> + <para>In plus fata de specificarea flagurilor, puteti specifica si + tipul de scanare TCP (cum ar fi + <option>-sA</option>sau + <option>-sF</option>). Aceasta spune Nmapului cum sa interpreteze + raspunsurile. De exemplu, o scanare SYN considera ca lipsa unui + raspuns indica un port + <literal moreinfo="none">filtrat (filtered)</literal>, in timp ce o + scanare FIN trateaza acelasi raspuns ca + <literal moreinfo="none">deschis|filtrat (open|filtered)</literal>. + Nmap se va comporta in acelasi fel in care o face pentru scanarile + de baza, cu exceptia faptului ca va folosi flagurile TCP + specificate. Daca nu specificati o scanare de baza, SYN va fi + utilizata.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sI <host zombie [:port_de_proba]></option>(Scanare + Idle)</term> + <listitem> + <para>Aceasta metoda avansata de scanare permite o scanare TCP + complet oarba a tintei (insemnand ca nici un pachet nu este trimis + tintei de la adresa IP reala). In loc, un canal derivat de atac + exploateaza o secventa de fragmentare IPID predictibila a hostului + zombie pentru a culege informatii despre porturile deschise pe + masina tinta. Sistemele IDS vor indica scanarea ca venind de la + hostul zombie specificat (care trebuie sa fie functional si sa + indeplineasca anumite criterii). Acest tip fascinant de scanare + este prea complex pentru a fi descris in acest ghid de referinta, + astfel ca am scris un document informativ cu detalii complete + disponibil la + <ulink url="https://nmap.org/book/idlescan.html"></ulink>.</para> + <para>In afara faptului ca este extrem de discreta (datorita + naturii oarbe), acest tip de scanare permite maparea relatiilor de + incredere bazate pe IP intre masini. Lista de porturi arata + porturile deschise + <emphasis>din perspectiva hostului zombie.</emphasis>Asa ca puteti + incerca scanarea tintei folosind diferiti zombie despre care + credeti ca ar putea avea relatii de incredere cu tinta (prin + router/filtru de pachete).</para> + <para>Puteti adauga doua puncte (“:”) urmate de numarul portului de + pe calculatorul zombie daca vreti sa probati un port particular al + zombieului pentru modificari IPID. Altfel Nmap va folosi portul + utilizat implicit pentru pinguri tcp (80).</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sO</option>(Scanarea protocolului IP)</term> + <listitem> + <para>Scanarea protocolului IP permite determinarea protocoalelor + (TCP, ICMP, IGMP, etc.) suportate de masina tinta. Aceasta nu + reprezinta din punct de vedere tehnic o scanare de porturi, din + moment ce trece prin numarul protocoalelor IP in loc de numarul + porturilor TCP sau UDP. Totusi foloseste optiunea + <option>-p</option>pentru selectarea numerelor de protocol, + raporteaza rezultatele in formatul de tabel specific scanriif de + porturi, si chiar foloseste acelasi motor de scanare ca la scanarea + de porturi. Este strans legata asadar de scanarea de porturi asa ca + apartine acestei categorii.</para> + <para>Pe langa faptul ca este folositoare in sine, scanarea + protocoalelor demonstreaza puterea softwareului open source. In + vreme ce ideea fundamentala este destul de simpla, nu m-am gandit + sa adaug sau sa primesc solicitari pentru o astfel de + functionalitate. Apoi in vara lui 2000, Gerhard Rieger a intuit + aceasta necesitate, a scris un patch excelent implementand-o si a + trimis-o la lista de discutii nmap-hackers. Am incorporat patchul + in distributia Nmap si am lansat o noua versiune in ziua urmatoare. + Putine softwareuri comerciale au utilizatori suficient de + entuziasti sa realizeze si sa contribuie cu propriile + imbunatatiri.</para> + <para>Scanarea protocoalelor functioneaza intr-un mod similar cu + scanarea UDP. In locul iterarii numerelor de porturi ale unui + pachet UDP, se trimite un pachet IP si se itereaza cei 8 biti ai ai + campului destinat protocolului din headerul pachetului IP. + Headerele sunt de obicei goale, necontinand date si nici macar + headerul potrivit pentru protocolul pretins. Cele trei exceptii + sunt TCP, UDP si ICMP. Un header potrivit pentru acestea este + inclus din moment ce unele sisteme nu le vor trimite altfel si + pentru ca Nmap are deja functiile sa le creeze. In loc sa primeasca + mesaje ICMP de port indisponibil, scanarea de protocoale cauta + aceste mesaje de + <emphasis>protocol</emphasis>ICMP port indiponibil. Daca Nmap + primeste orice raspuns de la tinta, Nmap marcheaza protocolul ca + <literal moreinfo="none">deschis (open)</literal>. Un mesaj ICMP de + protocol indisponibil (tip 2, cod 3) face ca protocolul sa fie + marcat + <literal moreinfo="none">inchis (closed)</literal>. Alte erori ICMP + de indisponibilitate (tipul 3, codurile 1, 3, 9, 10 sau 13) duc la + marcarea protocolului ca + <literal moreinfo="none">filtrat (filtered)</literal>(cu toate ca + ele dovedesc ca ICMP este + <literal moreinfo="none">deschis (open)</literal>in acelasi timp). + Daca nici un mesaj nu este primit dupa retransmisie, protocolul + este marcat ca + <literal moreinfo="none">deschis|filtrat + (open|filtered)</literal></para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-b <host ftp de intermediere></option>(Scanare FTP + sarita)</term> + <listitem> + <para>Un aspect interesant al protocolului FTP ( + <ulink url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC + 959</ulink>) este suportul pentru asa numitele conexiuni proxy ftp. + Acesta permite utilizatorului conectarea la un server FTP si apoi + solicitarea ca anumite fisiere sa fie trimise pe un al alt server. + O astfel de functionalitate poate fi folosita pentru abuzuri asa ca + multe servere au incetat sa o mai suporte. Unul dintre aceste + abuzuri face ca serverul FTP sa scaneze alte hosturi. Cereti + serverului sa trimita un fisier la fiecare port al masinii tinta. + Mesajul de eroare va descrie daca portul este inchis sau deschis. + Este o buna modalitate de a sari un firewall deoarece FTPurile sunt + adesea plasate in zone cu acces la reteaua interna. Nmap suporta + scanarea ftp sarita prin optiunea + <option>-b</option>. Preia un argument de forma + <replaceable>numeutilizator</replaceable>: + <replaceable>parola</replaceable>@ + <replaceable>server</replaceable>: + <replaceable>port</replaceable>. + <replaceable>Server</replaceable>este numele sau adresa IP a + serverului FTP vulnerabil. La fel ca la URLul normal puteti omite + <replaceable>numeutilizator</replaceable>: + <replaceable>parola</replaceable>, caz in care sunt folosite + valorile implicite (numeutilizator: + <literal moreinfo="none">anonymous</literal>parola: + <literal moreinfo="none">-wwwuser@</literal>). Numarul portului (si + caracterul doua puncte “:” care il precede) pot fi omise de + asemenea, caz in care portul implicit FTP (21) al + <replaceable>serverului</replaceable>este utilizat.</para> + <para>Aceasta vulnerabilitate era raspandita in 1997 cand Nmap a + fost lansat, dar in mare parte a fost rezolvata. Servere + vulnerabile exista inca, deci merita sa le cautati cand orice alta + optiune a picat. Daca trecerea de un firewall reprezinta tinta + dumneavoastra, scanati reteaua dupa portul 21 (sau orice alt + serviciu ftp pe care il detectati cu ajutorul optiunii de + identificare a versiunii), apoi incercati un atac sarit prin + respectivul server. Nmap va va anunta daca serverul este vulnerabil + sau nu. Daca incercati doar sa va acoperiti urmele, nu aveti nevoie + (de fapt nici nu trebuie) sa va limitati la hosturile din reteaua + tinta. Inainte sa scanati aleator prin Internet dupa servere FTP + vulnerabile, luati in considerare faptul ca administratorii de + sistem pot sa nu aprecieze faptul ca abuzati de serverele lor in + acest mod.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-port-specification"> + <title>Specificarea porturilor si a ordinii de scanare</title> + <para>In plus fata de toate metodele discutate anterior, Nmap ofera + optiuni pentru specificarea porturilor ce urmeaza a fi scanate si daca + scanarea se va realiza intr-o ordine aleatoare sau secventiala. Implicit, + Nmap scanaeaza toate porturile pana la 1024 inclusiv, precum si porturile + mai mari aflate in fisierul + <filename moreinfo="none">nmap-services</filename>pentru + protocolul/protocoalele scanate.</para> + <variablelist> + <varlistentry> + <term> + <option>-p <domeniu de porturi></option>(Se scaneaza doar + porturile specificate aici)</term> + <listitem> + <para>Aceasta optiune specifica porturile pe care doriti sa le + scanati, trecand peste valorile implicite. Numere de porturi + individuale reprezinta o optiune valida, precum si domenii separate + prin cratima (de exemplu 1-1023). Valorile de inceput si/sau + sfarsit ale domeniului pot fi omise, Nmap inlocuindu-le cu 1, + respectiv 65535. Specificand optiunea + <option>-p-</option>se vor scana porturile de la 1 la 65535. + Scanarea portului 0 este permisa daca specificati acest lucru + explicit. Pentru scanarea protocolului IP ( + <option>-sO</option>), aceasta optiune specifica numarul + protocolului pe care doriti sa-l scanati (0-255).</para> + <para>Cand scanati atat porturi TCP cat si UDP, puteti specifica un + protocol particular precedand numarul portului cu + <literal moreinfo="none">T:</literal>sau + <literal moreinfo="none">U:</literal>. Identificatorul are domeniu + de actiune pana la aparitia altui identificator. De exemplu, + argumentul + <option>-pU:53,111,137,T:21-25,80,139,8080</option>va scana + porturile UDP 53, 111 si 137 precum si porturile TCP listate. De + notat ca pentru scanarea simultana de porturi UDP si TCP, trebuie + sa specificati + <option>-sU</option>si cel putin un tip de scanare TCP (cum ar fi + <option>-sS</option>, + <option>-sF</option>, sau + <option>-sT</option>). Daca nici un calificator nu a fost furnizat, + numerele de porturi sunt adaugate fiecarui protocol in + parte.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-F</option>(Scanare rapida (numar limitat de porturi)</term> + <listitem> + <para>Specifica faptul ca doriti sa scanati doar porturile listate + in + <filename moreinfo="none">nmap-services</filename>, fisier care + vine cu nmap (sau fisierul de protocoale pentru + <option>-sO</option>). Este mult mai rapida decat scanarea tuturor + celor 65535 porturi de pe un host. Deoarece lista contine atat de + multe porturi TCP (mai mult de 1200), diferenta de viteza fata de o + scanare implicita TCP (aproximativ 1650 de porturi) este dramatica. + Diferenta poate fi enorma daca specificati propriul fisier + minimizat in functie de nevoi + <filename moreinfo="none">nmap-services</filename>utilizand + optiunea + <option>--datadir</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-r</option>(Nu se scaneaza porturile in ordine + aleatoare)</term> + <listitem> + <para>Implicit, Nmap scaneaaz porturile intr-o ordine aleatoare (cu + exceptia faptului ca anumite porturi uzuale sunt mutate la + inceputul scanarii din motive de eficienta). Aceasta ordine + aleatoare este in mod normal de dorit, dar puteti specifica + <option>-r</option>pentru scanarea secventiala.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-version-detection"> + <title>Detectia serviciilor si a versiunilor</title> + <para>Rulati nmap pe o masina si el ar putea sa va spuna ca porturile + 25/tcp, 80/tcp si 53/udp sunt deschise. Folosind baza de date + <filename moreinfo="none">nmap-services</filename>de aproximativ 2.200 + servicii cunoscute, Nmap va raporta ca respectivele porturi corespund + unui server de mail (SMTP), unui server web (HTTP) si respectiv unui + server DNS (53). Aceasta recunoastere este de obicei corecta – + majoritatea serviciilor care asculta la portul TCP 25 sunt servere de + mail. Totusi, nu trebuie sa va bazati pe asta! Oamenii pot si chiar + ruleaza servicii pe porturi ciudate.</para> + <para>Chiar daca Nmap realizeaza recunoasterea corect, si ipoteticul + server de mai sus ruleaza SMTP, HTTP si DNS, tot nu este suficienta + informatie. Cand se realizeaza o evaluare a vulnerabilitatilor (sau chiar + o simpla inventariere a retelei) a companiilor sau clientilor + dumneavoastra, vreti sa stiti ce server de mail, ce server DNS si in ce + versiuni ruleaza acestea. Avand un numar corect de versiune ne ajuta + foarte mult sa determinam la ce exploituri este serverul vulnerabil. + Detectia versiunilor ne ajuta sa obtinem aceste informatii.</para> + <para>Dupa ce porturile TCP si/sau UDP sunt descoperite folosind una + dintre metodele de scanare, detectia versiunii interogheaza acele porturi + pentru a determina mai multe despre ce se ruleaza la ele de fapt. Baza de + date + <filename moreinfo="none">nmap-service-probes</filename>contine probe + pentru interogarea diferitelor servicii si compara expresiile pentru a + recunoaste si procesa raspunsurile. Nmap incearca sa determine protocolul + serviciului (ex: ftp, ssh, telnet, http), numele aplicatiei (ex: ISC + Bind, Apache httpd, Solaris telnetd), numarul versiunii, numele hostului, + tipul masinii (ex: printer, router), familia de sisteme de operare (ex: + Windows, Linux) si cateodata si alte informatii diverse cum ar fi daca + exista un server X deschis la conexiuni. Daca Nmap a fost compilat cu + suport OpenSSL, se va conecta la servere SSL pentru a deduce serviciile + care asculta in spatele acelui nivel de criptare. Cand servicii RPC sunt + descoperite, evaluatorul RPC din Nmap ( + <option>-sR</option>) este automat folosit pentru a determina programul + RPC si numarul versiunii. Unele porturi UDP sunt lasate in starea + <literal moreinfo="none">deschis|filtrat (open|filtered)</literal>dupa o + scanare UDP care nu a putut determina daca porturile sunt deschise sau + filtrate. Detectia versiunii va incerca sa smulga un raspuns de la aceste + porturi (asa cum o face cu porturile deschise), si sa sa le schimbe + starea in deschis daca reuseste. Porturile TCP + <literal moreinfo="none">deschis|filtrat (open|filtered)</literal>sunt + tratate in aceeasi maniera. Notati ca optiunea + <option>-A</option>activeaza detectia versiunii printre altele. Un + document care explica aceste lucruri, utilizarea lor si rafinarea + detectiei versiunii este disponibila la + <ulink url="https://nmap.org/vscan/"></ulink>.</para> + <para>Cand Nmap primeste raspunsuri de la un serviciu dar nu gaseste ceva + corespunzator in baza de date, afiseaza o amprenta si un URL pentru a o + putea trimite daca stiti cu exactitate ce ruleaza la respectivul port. Va + rog sa va rupeti cateva minute pentru a face acest lucru, astfel incat de + descoperirea dumneavoastra sa poata beneficia toata lumea. Datorita + amprentelor trimise de utilizatori, Nmap are aproximativ 3.000 de modele + pentru 350 de protocoale cum ar fi smtp, ftp, http, etc.</para> + <para>Detectia versiunii este activata si controlata de urmatoarele + optiuni:</para> + <variablelist> + <varlistentry> + <term> + <option>-sV</option>(Detectia versiunii)</term> + <listitem> + <para>Activeaza detectia versiunii, dupa cum s-a discutat anterior. + Alternativ, puteti folosi + <option>-A</option>pentru activarea detectiei versiunii si a + sistemului de operare simultan.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--allports</option>(Nu se exclude nici un port de la detectia + versiunii)</term> + <listitem> + <para>Implicit, detectia versiunii din Nmap sare peste portul TCP + 9100, deoarece unele imprimante imprima orice data trimisa la acel + port, ducand la o multime de pagini pline de cererei HTTP, sesiuni + SSL, etc. Acest comportament poate fi schimbat prin modificarea sau + stergerea directivei + <literal moreinfo="none">Exclude</literal>din + <filename moreinfo="none">nmap-service-probes</filename>, sau prin + specificarea + <option>--allports</option>pentru scanarea tuturor porturilor in + ciuda directivei + <literal moreinfo="none">Exclude</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--version-intensity <intensitate></option>(Seteaza + intensitatea detectiei versiunii)</term> + <listitem> + <para>Cand realizam o detectie a versiunii ( + <option>-sV</option>), nmap trimite o serie de probe, fiecare cu o + valoare atasata, intre 1 si 9, care reprezinta raritatea. Probele + cu numere mici sunt eficiente impotriva unei arii largi a + serviciilor comune, in timp ce acelea cu numere mari sunt mai rar + folosite. Nivelul de intensitate specifica ce probe trebuie + aplicate. Cu cat mai mare este numarul, cu atat mai precisa este + detectarea versiunii. Oricum, scanarea cu intensitate mare dureaza + mai mult. Intensitatea trebuie sa fie intre 0 si 9. Implicit este + 7. Cand o proba este gasita ca o legatura intre + <filename moreinfo="none">nmap-service-probes</filename> + <literal moreinfo="none">si numarul portului</literal>, atunci + proba este incercata indiferent de nivelul de intensitate. Acest + lucru asigura faptul ca probele DNS vor fi incercate pentru fiecare + port 53 gasit deschis, probele SSL pentru portl 443, etc.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--version-light</option>(Activeaza modul delicat)</term> + <listitem> + <para>Este o notare convenabila pentru + <option>--version-intensity 2</option>. Acest mod delicat face + scanarea versiunii mult mai rapida, dar si mai putin precisa in + identificarea serviciilor.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--version-all</option>(Incearca toate probele)</term> + <listitem> + <para>Un sinonim pentru + <option>--version-intensity 9</option>, asigurandu-se ca toate + probele vor fi incercate impotriva fiecarui port.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--version-trace</option>(Urmareste activitatea scanarii + vesiunii)</term> + <listitem> + <para>Acest lucru face ca Nmap sa afiseze informatii detaliate + despre ce face detectarea versiunii. Este un subset al + informatiilor obtinute cu + <option>--packet-trace</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-sR</option>(Scanare RPC)</term> + <listitem> + <para>Aceasta metoda functioneaza in combinatie cu multimea de + metode de scanare de porturi a Nmapului. Ia toate porturile TCP/UDP + deschise si le inunda cu pachete de comanda SunRPC nule in + incercarea de a determina daca sunt porturi RPC si, daca e asa, ce + program si ce versiune servesc. Puteti obtine aceleasi informatii + cu + <command moreinfo="none">rpcinfo -p</command>chiar daca + portmapperul tintei se afla in spatele unui firewall (sau este + protejat de TCP wrapper). Momelile nu functioneaza cu scanarea RPC. + Este activat automat ca parte a scanarii versiunii ( + <option>-sV</option>) daca solicitati asa ceva. Deoarece detectia + versiunii include si rezultatele acestei scanari fiind mult mai + larga in acoperire, + <option>-sR</option>este rareori necesara.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-os-detection"> + <title>Detectia sistemului de operare</title> + <para>Una dintre cele mai cunoscute facilitati ale Nmap o reprezinta + detectarea de la distanta a sistemului de operare folosind amprentele + stivei TCP/IP. Nmap trimite o serie de pachete TCP si UDP la calculatorul + tinta si examineaza practic bit cu bit raspunsul. Dupa ce ruleaza o + multime de teste ce includ crearea de modele TCP ISN, suportul si + ordonarea optiunilor TCP, crearea de modele IPID si verificarea + dimensiunii intiale a cadrului, Nmap compare rezultatul cu baza de date + <filename moreinfo="none">nmap-os-fingerprints</filename>ce contine mai + mult de 1500 de amprente de sisteme de operare, si afiseaza detaliile + acestuia daca este gasita o similitudine. Fiecare amprenta include o + descriere textuala a sistemului de operare si o clasificare ce furnizeaza + numele producatorului (ex: Sun), sistemul de operare (ex: Solaris), + versiunea (ex: 10) si tipul masinii (scop general, router, switch, + consola de jocuri, etc.)</para> + <para>Daca Nmap este in imposibilitatea de a ghici sistemul de operare al + unei masini iar conditiile sunt favorabile (ex: cel putin un port deschis + si unul inchis au fost gasite), Nmap va furniza un URL pe care il puteti + folosi pentru a trimite, daca stiti cu siguranta, ce sistem de operare + ruleaza. Prin acest lucru contribuiti la baza de sisteme cunoscute de + Nmap, facand identificarea sistemului de operare mai precisa si pentru + ceilalti.</para> + <para>Detectia sistemului de operare activeaza alte cateva teste care + folosesc oricum informatia obtinuta in acest proces. Unul dintre acestea + este masurarea timpului de activitate (uptime), care foloseste optiunea + de amprenta de timp din pachetele TCP (RFC 1323) si ghiceste cand a fost + ultima oara rebutata masina. Acest lucru este raportat doar pentru + masinile care furnizeaza aceasta informatie. Alt test este cel de + clasificare al predictibilitatii secventei TCP. Acesta masoara cu + aproximatie cat de greu este sa stabilesti o conexiune falsificata TCP cu + tinta. Este folositoare pentru exploatarea relatiilor de incredere bazate + pe IP (rlogin, filtre firewall, etc.) sau pentru ascunderea sursei unui + atac. Acest tip de ascundere a identitatii este rar intalnita in zilele + noastre, dar multe masini sunt inca vulnerabile. Numarul ce reprezinta + dificultatea este bazat pe modelarea statistica si poate fluctua. In + general este mai bine daca se foloseste clasificarea textuala, cum ar fi + <quote>worthy challenge (merita incercat)</quote>sau + <quote>trivial joke (gluma banala)</quote>. Acestea sunt raportate doar + in modul afisare detaliata ( + <option>-v</option>). Cand modul afisare detaliata este activat alaturi + de + <option>-O</option>, generarea secventei IPID este si ea raportata. Cele + mai multe masini sunt in clasa + <quote>incrementala</quote>, ceea ce inseamna ca incrementeaza campul ID + din headerul fiecarui pachet pe care il trimit. Acest lucru le face + vulnerabile la cateva tehnici avansate de culegere a informatiilor si la + atacuri simulate.</para> + <para>Un articol ce documenteaza aceste aspecte, precum si personalizarea + detectiei versiunii este disponibil in mai multe limbi la + <ulink url="https://nmap.org/osdetect/"></ulink>.</para> + <para>Detectarea sistemului de operare este activata si controlata prin + urmatoarele optiuni:</para> + <variablelist> + <varlistentry> + <term> + <option>-O</option>(Activeaza detectia sistemului de operare)</term> + <listitem> + <para>Activeaza detectia sistemului de operare, dupa cum s-a + discutat inainte. Alternativ, se poate folosi + <option>-A</option>pentru activarea atat a detectiei sistemului de + operare cat si a detectiei versiunii.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--osscan-limit</option>(Limiteaza detectarea sistemului de + operare la tintele promitatoare)</term> + <listitem> + <para>Detectia sistemului de operare este mult mai eficienta daca + sunt gasite cel putin un port TCP inchis si unul deschis. Setati + aceasta optiune si Nmap nici nu va mai incerca detectarea + sistemului de operare pentru hosturile care nu indeplinesc aceste + criterii. Acest lucru poate salva timp substantial, in special in + scanarile mai multor hosturi cu optiunea + <option>-P0</option>. Optiunea are valoare atunci cand detectia + sistemului de operare a fost solicitata prin + <option>-O</option>sau + <option>-A</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--osscan-guess</option>; + <option>--fuzzy</option>(Ghiceste sistemul de operare pe baza + rezultatelor)</term> + <listitem> + <para>Cand Nmap nu poate determina cu exactitate un sistem de + operare, poate oferi un raspuns bazat pe asemanare. Asemanarea + trebuie sa fie foarte apropiata in mod implicit. Oricare dintre + aceste optiuni fac Nmapul sa adopte o atitudine mai agresiva in + gasirea similitudinilor.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-performance"> + <title>Optiuni de timp si performanta</title> + <para>Una dintre prioritatile principale in dezvoltarea Nmapului a fost + performanta. O scanare implicita ( + <command moreinfo="none">nmap + <replaceable>nume_host</replaceable></command>) de pe un calculator din + reteaua locala ia mai putin de o cincime de secunda. Cu greu ai timp sa + clipesti, dar timpul creste o data cu numarul hosturilor. Mai mult, + anumite optiuni cum ar fi scanarea UDP si detectia versiunii pot mari + substantial timpul de scanare. Acelasi lucru il pot face si anumite + configuratii firewall, in special cele care limiteaza rata de raspuns. Cu + toate ca Nmap utilizeaza paralelismul si algoritmi avansati de accelerare + a scanarilor, controlul final asupra a cum ruleaza Nmap revine + utilizatorului. Expertii compun cu atentie comenzile Nmap pentru a obtine + numai informatia de care au nevoie incadrandu-se si in perioada de + timp.</para> + <para>Tehnicile pentru imbunatatirea vitezei de scanare includ omiterea + testelor ne-critice si upgradeul la ultima versiune de Nmap (imbunatatiri + de performanta se realizeaza frecvent). Optimizarea parametrilor de timp + poate aduce de asemenea un spor substantial. Aceste optuni sunt + prezentate in cele ce urmeaza.</para> + <variablelist> + <varlistentry> + <term> + <option>--min-hostgroup <dimensiune></option>; + <option>--max-hostgroup<dimensiune></option>(Ajusteaza + dimensiunea grupurilor pentru scanari paralele)</term> + <listitem> + <para>Nmap are capacitatea de a scana porturi sau versiuni pe mai + multe hosturi in paralel. Nmap realizeaza acest lucru prin + divizarea spatiului de adrese IP tinta in grupuri si scanand + fiecare grup pe rand. In general, grupurile mari sunt mult mai + eficiente. Aspectul negativ este ca rezultatul scanarii pentru + fiecare host nu poate fi furnizat pana ce nu e terminata scanarea + pentru intregul grup. Daca Nmap porneste scanarea unui grup de 50 + de hosturi, utilizatorul nu va primi nici un raport (cu exceptia + updateurilor oferite de modul vizualizare detaliata) pana ce + primele nu s-a terminat scanarea pentru aceste hosturi.</para> + <para>Implicit, Nmap adopta o abordare de compromis in acest + conflict. Porneste cu un grup mic de cinci pentru a afisa rapid + primele rezultate si apoi creste dimensiunea grupului pana la 1024. + Numarul exact depinde de optiunea data. Din motive de eficienta, + Nmap utilizeaza grupuri mai mari pentru scanarile UDP si pentru + cateva din porturile TCP.</para> + <para>Cand o dimensiune maxima este specificata cu + <option>--max-hostgroup</option>, Nmap nu va depasi niciodata + aceasta valoare. Specificati o dimensiune minima cu + <option>--min-hostgroup</option>si Nmap va incerca sa mentina + dimensiunile grupurilor peste acel nivel. Nmap se poate vedea + nevoit sa foloseasca grupuri mai mici daca nu mai sunt suficiente + tinte ramase pentru a completa nivelul minim. Amandoua pot fi + folosite pentru a mentine dimensiunea grupului intre anumite + limite, desi acest lucru este in putine cazuri unul de + dorit.</para> + <para>Principala utilizare a acestei optiuni este specificarea + dimensiunii minime a unui grup astfel incat scanarea sa ruleze mai + rapid. O alegere uzuala este 256 pentru scanarea unei retele in + bucati egale cu o clasa C. Pentru o scanare cu multe porturi, + depasirea acestui numar este improbabil sa ajute la ceva. Pentru o + scanare cu doar cateva porturi, grupurile de 2048 sau mai multe + hosturi pot fi folositoare.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--min-parallelism <milisecunde></option>; + <option>--max-parallelism<milisecunde></option>(Seteaza + paralelizarea probelor)</term> + <listitem> + <para>Aceste optiuni controleaza numarul de probe in asteptare + pentru un host. Sunt folosite la scanarea de porturi si la + descoperirea hosturilor. Implicit, Nmap calculeaza un numar ideal + pentru paralelism, mereu variabil, in baza performantelor retelei. + Daca unele pachete sunt ignorate, Nmap incetineste ritmul si + permite un numar mai mic de probe in asteptare. Numarul ideal de + probe creste incet pe masura ce reteaua este mai rapida. Aceste + optiuni stabilesc limitele minima si maxima ale acestei variabile. + Implicit, paralelismul ideal poate scadea la 1 daca reteaua + raspunde greu si se ridica pana la cateva sute in conditii + perfecte.</para> + <para>Cea mai comuna utilizare o reprezinta setarea + <option>--min-parallelism</option>la o valoare mai mare de unu + pentru a mari viteza de scanare pentru hosturi si retele cu + performante slabe. Aceasta este o optiune riscanta, deoarece + setarea ei la o valoare prea mare poate influenta calitatea + rezultatului. Setarea acesteia reduce de asemenea capacitatea Nmap + de a controla paralelismul in mod dinamic pe baza conditiilor + intalnite in retea. O valoare de zece poate fi una rezonabila, cu + toate ca eu ajustez aceasta valoare doar ca o ultima + optiune.</para> + <para>Optiunea + <option>--max-parallelism</option>este setata cateodata pentru a + preveni Nmap sa trimita mai mult de o proba o data catre un host. + Poate fi folositoare in combinatie cu + <option>--scan-delay</option>(ce va fi discutata mai tarziu), cu + toate ca cea de-a doua face acest lucru destul de bine si + singura.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--min-rtt-timeout <milisecunde></option>, + <option>--max-rtt-timeout <milisecunde></option>, + <option>--initial-rtt-timeout<milisecunde></option>(Seteaza + timpul de viata al probelor)</term> + <listitem> + <para>Nmap mentine un timp de viata pentru determinarea timpului + maxim asteptat pentru ca o proba sa genereze un raspuns, inainte sa + se renunte la ea sau sa fie retransmisa. Este calculata pe baza + timpilor de raspuns a probelor anterioare. Daca latenta retelei are + o valoare mare si variabila, atunci timpul de viata poate creste + pana la cateva secunde. Porneste de la o valoare mare si poate + ramane asa un timp pana cand Nmap scaneaza hosturi care nu + raspund.</para> + <para>Aceasta optiune preia o valoare in milisecunde. Specificand o + valoare mica pentru + <option>--max-rtt-timeout</option>si + <option>--initial-rtt-timeout</option>, in scanarile default se pot + obtine reduceri de timp semnificative. Acest lucru este in + particular adevarat pentru hosturile care nu raspund la ping ( + <option>-P0</option>) si a celor impotriva retelelor masiv + filtrate. nu deveniti insa prea agresiv. Scanarea poate sfarsi + intr-un timp mare daca valorile sunt prea mici si probele expira + repede, fiind necesara retransmiterea lor in timp ce probabil + raspunsul este pe drum.</para> + <para>Daca hosturile fac parte din reteaua interna, o valoare de + 100 milisecunde este una suficient de agresiva pentru + <option>--max-rtt-timeout</option>. Daca routarea intra in joc, + executati un ping la un host din respectiva retea folosind + utilitarul PING din sistemul de operare, sau cu un utilitar de + construit pachete cum ar fi hping2 ce are mai multe sanse de a + trece prin firewall. Analizati timpul maxim dintr-un grup de zece + pachete. Il puteti dubla pentru + <option>--initial-rtt-timeout</option>si tripla pentru + <option>--max-rtt-timeout</option>. In general, nu setati timpul + maxim rtt sub 100 milisecunde., indiferent de ce raporteaza + pingurile. Si nici nu depasiti 1000 milisecunde.</para> + <para> + <option>--min-rtt-timeout</option>este rar folosita si nu este + folositoare intr-o retea pentru care valoarea implicita a Nmap este + prea agresiva. Din moment ce Nmap reduce timpul de viata al + pachetelor pana la minim pentru o retea eficienta, nevoia acestei + optiuni nu este uzuala si ar trebui raporta ca o problema in lista + de discutii nmap-dev.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--host-timeout <milisecunde></option>(Se renunta la + tintele lente in raspuns)</term> + <listitem> + <para>Unele hosturi iau un timp prea + <emphasis>lung</emphasis>de scanare. Se poate datora unor + performante proaste ale retelei hardware si software, limitarii a + ratei de pachete sau firewallurilor restrictive. Cele mai lente + cateva hosturi pot manca majoritata timpului de scanare. Cateodata + este bine sa scapam de aceste pierderi si sa sarim aceste hosturi. + Acest lucru poate fi realizat prin specificarea + <option>--host-timeout</option>cu un numar de milisecunde in care + sunteti disponibili sa asteptati. De obicei specific 1800000 pentru + a ma asigura ca Nmap nu va pierde mai mult de o jumatate de ora + pentru un singur host. De notat ca Nmap poate scana si alte hosturi + in acelasi timp, deci nu reprezinta o pierdere totala acest timp. + Un host care depaseste aceasta perioada este sarit. Tabela de + porturi, detectia sistemului de operare sau detectia versiunii nu + sunt afisate pentru acel host.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--scan-delay <milisecunde></option>; + <option>--max-scan-delay<milisecunde></option>(Ajusteaza pauza + dintre probe)</term> + <listitem> + <para>Aceasta optiune face ca Nmap sa astepte cel putin un numar + dat de milisecunde intre probele trimise la un host. Este + folositoare in particular in cazul in care exista o rata de + limitare. Masinile Solaris (printre multe altele) vor raspunde + scanarii UDP cu un singur mesaj ICMP pe secunda. Orice alta proba + trimisa de Nmap in acest interval va fi irosita. O optiune + <option>--scan-delay</option>cu valoarea 1000 va mentine Nmap la + acea rata lenta. Nmap incearca detectarea ratei de limitare si + ajusteaza scanarea in functie de aceasta, dar nu face rau sa + specificati explicit daca stiti deja ce rata functioneaza cel mai + bine.</para> + <para>Alta utilizare a + <option>--scan-delay</option>este ascunderea scanarii in fata + IDS/IPSurilor bazate pe un anumit prag de raspuns.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option> + -T<Paranoid|Sneaky|Polite|Normal|Aggressive|Insane></option>(Seteaza + optiunile de timp)</term> + <listitem> + <para>Desi optiunile detaliate de control al timpilor discutate mai + sus sunt puternice si eficiente, unii oameni le gasesc confuze. Mai + mult, alegerea valorilor corecte poate dura uneori mai mult decat + scanarea in sine. Asadar Nmap ofera o abordare mai simpla, cu sase + modele de timp. Le puteti specifica cu optiunea + <option>-T</option>si numarul (0-5) sau numele. Numele modelelor + sunt paranoid (paranoic - 0), sneaky (siret - 1), polite (politicos + -2), aggresive (agresiv - 4) si insane (nebun - 5). Primele doua + sunt folosite pentru ascunderea de IDS. Modul politicos incetineste + ritmul scanarii pentru a utiliza mai putina latime de banda a + masinii tinta. Modul normal este implicit asa ca + <option>-T3</option>nu face nimic. Modul agresiv accelereaza + scanarea presupunand ca va aflati intr-o retea rapida. In fine, + modul nebun presupune ca va aflati intr-o retea extrem de rapida + sau ca sunteti dispus sa sacrificati acuratetea rezultatelor in + favoarea vitezei.</para> + <para>Aceste modele permit utilizatorului sa specifice cat de + agresiva sa fie scanarea, lasand totusi Nmapul sa aleaga valorile + exacte. Modelele realizeaza uneori mici reglaje pentru care inca nu + exista optiuni de control. De exemplu, + <option>-T4</option>interzice scanarii dinamice sa depaseasca 10 + milisecunde pentru porturile TCP si + <option>-T5</option>reduce aceasta valoare la 5 milisecunde. + Modelele pot fi folosite in combinatie cu controalele fine de timp, + atat timp cat modelul este specificat mai intai. Altfel valorile + standard ale modelului pot suprascrie valorile specificate. Se + recomanda folosirea + <option>-T4</option>cand se scaneaza retele moderne rapide. + Pastrati aceasta optiune la inceputul liniei de comanda chiar si + cand adaugati optiuni de control fin pentru a beneficia de micile + ajustari oferite.</para> + <para>Daca folositi o conexiune broadband sau ethernet, recomand + folosirea intotdeauna a optiunii + <option>-T4</option>. Unii oameni adora + <option>-T5</option>cu toate ca este prea agresiva pentru gustul + meu. Altii specifica + <option>-T2</option>deoarece cred ca scanarea va bloca hosturile si + se considere pe ei politicosi in general. De obicei nu realizeaza + cat de inceata este optiunea + <option>-TPolite</option>. Scanarile lor pot lua de zece ori mai + mult timp decat unele implicite. Blocarile masinilor si probleme + legate de banda sunt rare cu modelul implicit ( + <option>-T3</option>) asa ca in mod normal este recomandat pentru + scanere precaute. Omiterea detectiei versiunii este mult mai + eficienta decat jocul cu optiunile de timp.</para> + <para>Desi + <option>-T0</option>si + <option>-T1</option>pot fi folosite pentru pacalirea IDSurilor, ele + pot lua un timp extrem de mare pentru a scana mii de masini sau + porturi. Pentru o astfel de scanare lunga, puteti prefera setarea + exacta a optiunilor de timp decat sa va bazati pe cele inglobate in + optiunile + <option>-T0</option>si + <option>-T1</option>.</para> + <para>Principalul efect al + <option>T0</option>este serializarea scanarii astfel incat un + singur port este scanat o data, si se asteapta cinci minute intre + trimiterea probelor. + <option>T1</option>si + <option>T2</option>sunt similare dar asteapta doar 15 secunde, + respectiv 0,4 secunde intre probe. + <option>T3</option>este comportamentul implicit al Nmapului ce + include si paralelizarea. + <option>T4</option>realizeaza echivalentul + <option>--max-rtt-timeout 1250 --initial-rtt-timeout 500</option>si + seteaza intarzierea maxima pentru scanarea TCP la 10 milisecunde. + <option>T5</option>realizeaza echivalentul la + <option>--max-rtt-timeout 300 --min-rtt-timeout 50 + --initial-rtt-timeout 250 --host-timeout 900000</option>si seteaza + intarzierea maxima pentru scanarea TCP la 5 milisecunde.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-bypass-firewalls-ids"> + <title>Pacalirea Firewall/IDSurilor si ascunderea identitatii</title> + <para>Multi pionieri ai internetului au prevazut o retea globala deschisa + cu un spatiu universal de adrese IP permitand conexiuni virtuale intre + oricare doua noduri. Acest lucru permite hosturilor sa actioneze ca + parteneri in comunicatie, sa serveasca si sa obtina informatii unul de la + celalalt. Oamenii pot accesa sistemele de acasa, sa schimbe temperatura + in casa sau sa deschida usa pentru oaspetii grabiti. Viziunea + conectivitatii universale a fost inabusita de micsorarea spatiului de + adrese si de problemele de securitate. La inceputul anilor 90, + organizatiile au inceput implementarea firewallurilor cu scopul precis de + reducere a conectivitatii. Retele uriase au fost separate de Internetul + nefiltrat prin aplicatii proxy, traduceri de adrese de retea (NAT) si + filtre de pachete. Fluxul nerestrictionat de informatii a facut loc + canalelor de comunicatie aprobate si supuse unor anumite reguli, precum + si controlului datelor ce trece prin ele.</para> + <para>Obstacolele din retea cum ar fi firewallurile pot face din maparea + retelei o operatie extrem de dificila. Nu va deveni mai usor din moment + ce constrangerile aplicate retelei reprezinta adesea un scop al + implementarii noilor echipamente in retea. Nu e mai putin adevarat ca + Nmap ofera multe optiuni pentru intelegerea acestor retele complexe si sa + verifice daca filtrele functioneaza asa cum trebuie. Chiar suporta + mecanisme de depasire a sistemelor de aparare prost implementate. + Punetiva in pielea unui atacator si aplicati tehnici din aceasta sectiune + in reteaua dumneavoastra. Lansati un atac sarit FTP, o scanare Idle, o + fragmentare a atacului sau incercati realizarea unui tunel printr-un + proxy de-al dumneavoastra.</para> + <para>In plus fata restrictiile retelelor, companiile au inceput sa + monitorizeze traficul cu sisteme de detectie a intruziunilor (IDS). Toate + IDSurile cunoscute sunt livrate cu reguli care sa detecteze scanarile + Nmap deoarece acestea preced de obicei un atac. Multe dintre acestea sau + transformat in sisteme de + <emphasis>prevenire</emphasis>a intruziunilor (IPS) care blocheaza in mod + activ traficul presupus malitios. Din pacate pentru administratorii de + retea si vanzatorii IDSurilor, detectarea in mod corect a relelor + intentii prin analizarea pachetelor este o problema dificila. Atacatorii + cu rabdare, indemanare si ajutor din partea anumitor optiuni Nmap pot in + mod normal sa treaca de IDS nedetectati. Intre timp, administratorii au + de a face cu o multime de alerte false cand trafic inocent este gresit + diagnosticat si se emite o atentionare sau este chiar blocat.</para> + <para>Cateodata oamenii sugereaza ca Nmap nu ar trebui sa ofere functii + de pacalire a regulilor firewallurilor sau de trecerea nedetectata de + IDS. Argumeenteaza prin faptul ca pot fi folosite de atacatori. Problema + in acest rationament este ca atacatorii tot vor gasi instrumente sau + patchuri pentru Nmap pentru a realiza acest lucru. Intre timp, + administratorii pot descoperii ca munca lor este mult mai dificila. + Instalarea numai a serverelor FTP moderne, cu patchurile aplicate la zi + este o metoda mult mai buna de protectie decat prevenirea distribuirii + instrumentelor ce implementeaza atacurile sarite FTP.</para> + <para>Nu exista nici o optiune magica in Nmap pentru detectarea si + pacalirea firewallurilor si a sistemelor IDS. Acest lucru ia indemanare + si experienta. O prezentare detaliata este dincolo de scopul acestui ghid + de referinta, care listeaza doar optiunile relevante si descrie ce fac + ele.</para> + <variablelist> + <varlistentry> + <term> + <option>-f</option>(fragmenteaza pachetele); + <option>--mtu</option>(foloseste MTU specificat – Unitatea Maxima de + Transmitere)</term> + <listitem> + <para>Optiunea + <option>-f</option>face ca scanarea ceruta (incluzand scanarea + ping) sa foloseasa fragmente mici de pachete IP. Ideea este + impartirea headerului TCP in mai multe pachete pentru a ingreuna + misiunea filtrelor de pachete, sistemelor de detectare a + intruziunilor si a altor elemente de detectare a activitatii. + Atentie cu aceasta optiune! Unele programe au probleme in + manevrarea acestor pachete mici. De exemplu Sniffit esua dupa + primirea primului fragment. Specificati aceasta optiune o data si + Nmap va imparti pachetul in fragmente de opt bytes sau mai putin + dupa headerul IP. Astfel, un header TCP de 20 bytes va fi impartit + in 3 pachete. Doua de opt bytes si unul cu ultimii patru. Desigur, + fiecare fragment are propriul header TCP. Specificati + <option>-f</option>inca o data pentru folosirea a 16 bytes pe + fragment (reducand numarul de fragmente). Sau puteti specifica + propriile dimensiuni cu optiunea + <option>--mtu</option>. Nu specificati si + <option>-f</option>daca folositi + <option>--mtu</option>. Dimensiunea trebuie sa fie un multiplu de + 8. Pachetele fragmentate nu vor trece de filtrele de pachete si + firewallurile care interogheaza toate fragmentele IP, cum ar fi + optiunea CONFIG_IP_ALWAYS_DEFRAG din kernelul Linuxului, unele + retele nu-si pot permite pierderea de performanta cauzata de aceste + configurari si le dezactiveaza. Altele nu pot activa configurarile + de acest gen deoarece fragmentele pot intra pe rute diferite in + retea. Unele sisteme defragmenteaza pachetele de iesire in kernel. + Linux cu modulul de urmarire a conexiunii din iptables este un + exemplu. Realizati o scanare si rulati in acelasi timp un sniffer + de genul Ethereal pentru a va asigura ca pachetele sunt + fragmentate. Daca sistemul de operare va creaza probleme, incercati + optiunea + <option>--send-eth</option>de sarire a nivelului IP si de trimitere + de cadre ethernet brute.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-D <momeala1 [,momeala2][,ME + (EU)],...></option>(Scanare acoperita de momeli)</term> + <listitem> + <para>Face ca o scanare acoperita de momeli sa fie executata, ceea + ce face ca tinta sa creada ca momelile specificate ca argument + scaneaza si ele reteaua. Astfel IDS poate raporta 5-10 scanari de + porturi de la adrese IP unice, dar nu va stii care adresa scaneaza + cu adevarat si care sunt momeli inocente. Cu toate ca aceasta + tehnica poate fi contrata prin urmarirea caii prin routere, + ignorarea raspunsului si alte mecanisme active, ea reprezinta o + tehnica eficienta de ascundere a adresei IP.</para> + <para>Separati fiecare momeala prin virgule si folositi optional + <literal moreinfo="none">ME</literal>(adica propria adresa IP) ca + una dintre momeli pentru a reprezenta adevarata pozitie a adresei + IP reale. Daca puneti + <literal moreinfo="none">ME</literal>in a sasea pozitie sau mai + tarziu, unele detectoare de scanari de porturi (cum ar fi Solar + Design) pot sa nici nu afiseze adresa IP reala. Daca nu folositi + <literal moreinfo="none">ME</literal>, nmap il va pune intr-o + pozitie aleatoare.</para> + <para>Retineti faptul ca tintele pe care le folositi ca momeli + trebuie sa fie active sau altfel riscati sa inundati cu pachete SYN + tinta. In aceeasi ordine de idei, este usor de determina cine face + scanarea daca o singura adresa IP este activa. E de preferat sa + utilizati adrese IP in loc de nume (astfel incat numele hostului + dumneavoastra sa nu apara in logurile DNSului tinta).</para> + <para>Momelile sunt folosite atat in pingul initial (folosind ICMP, + SYN, ACK sau orice altceva) si in timpul scanarii efective de + porturi. Momelile sunt de asemenea folosite la detectarea + sistemului de operare ( + <option>-O</option>). Momelile nu functioneaza cu detectia + versiunii sau scanarea TCP connect().</para> + <para>Nu folositi prea multe momeli deoarece pot incetini scanarea + si o pot face mai putin corecta. De asemena, unii ISP vor filtra + pachetele false, dar multi nu restrictioneaza pachetele IP de + loc.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-S <Adresa_IP></option>(Seteaza adresa IP sursa)</term> + <listitem> + <para>In anumite circumstante, Nmap se poate afla in + imposibilitatea determinarii adresei sursa (Nmap va anunta daca + acest lucru se intampla). In aceasta situatie, folositi + <option>-S</option>cu adresa IP a interfetei pe care doriti sa + trimiteti pachetele.</para> + <para>Alta posibila utilizare a acestei optiuni este sa faceti + tinta sa creada ca este scanata de + <emphasis>altcineva</emphasis>. Imaginativa o companie permananent + scanata de un competitor! Optiunea + <option>-e</option>va fi in general necesara pentru astfel de + utilizare si + <option>-P0</option>este de asemenea recomanda.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-e <interfata></option>(Foloseste interfata + specificata)</term> + <listitem> + <para>Spune Nmapului ce interfata sa foloseasca pentru trimiterea + si primirea pachetelor. Nmap ar trebui sa poata determina automat + acest lucru, dar va va anunta daca nu poate.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--source-port <numarul_portului>;</option> + <option>-g <numarul_portului></option>(Seteaza portul + sursa)</term> + <listitem> + <para>O greseala surprinzator de des intalnita o reprezinta + configurarea relatiilor de incredere in functie de numaul portului + sursa. Este usor de inteles cum stau lucrurile. Un administrator + instaleaza un nou firewall si este apoi ingropat in plangeri din + partea utilizatorilor nemultumiti ale caror aplicatii nu mai + functioneaza. In particular, DNSul poate fi blocat deoarece + raspunsurile UDP DNS de la serverele externe nu mai pot intra in + retea. FTP este un alt exemplu. In transferurile FTP active, + serverul incearca sa stabileasca o conexiune inapoi la client + pentru transferarea fisierului solicitat.</para> + <para>Solutii securizate la aceste probleme exista, de obicei sub + forma de proxiuri la nivelul aplicatie sau module firewall care + analizeaza protocoalele. Din pacate exista si solutii mai simple si + mai nesigure. Notand faptul ca raspunsurile DNS vin de la portul 53 + si cele de la conexiunile FTP de la portul 20, multi administratori + au cazut in capcana permiterii neconditionate a traficului de la + aceste porturi. Adesea ei presupun ca nici un atacator nu va + observa si exploata astfel de gauri in firewall. In alte cazuri, + administratorii considera aceasta rezolvare ca una pe termen scurt + pana cand vor implementa o solutie mai sigura. Apoi ei uita sa mai + faca upgradeul de securitate.</para> + <para>Administratorii retelelor supraincarcate nu sunt singurii + care cad in aceasta capcana. Numeroase produse au fost livrate cu + aceste reguli nesigure. Chiar si Microsoft are partea ei de vina. + Filtrele IPsec livrate cu Windows 2000 si Windows XP contin o + regula implicita care permite traficul oricarui pachet UDP cu + portul sursa 53 (DNS) sau 67 (DHCP).</para> + <para>Nmap ofera optiunile + <option>-g</option>si + <option>--source-port</option>(care sunt echivalente) pentru + exploatarea acestei slabiciuni. Specificati un numar ca argument si + Nmap va trimite pachete de la acel port oricand acest lucru este + posibil. Nmap trebuie sa foloseasca porturi diferite pentru anumite + teste de detectare a sistemului de operare si cererile DNS ignora + optiunea + <option>--source-port</option>deoarece Nmap se bazeaza pe + librariile sistemului pentru a le manevra. Multe scanari TCP, + incluzand-o pe cea SYN, suporta aceasta optiune, la fel ca si + scanarea UDP.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--data-length <numar></option>(Adauga un numar aleator + de date la pachetul trimis)</term> + <listitem> + <para>In mod normal Nmap trimite pachete minimaliste continand doar + headerul. Astfel pachetele TCP au in general 40 bytes si cererile + de raspuns ICMP doar 28. Aceasta optiune adauga un numarul dat ca + argument de bytes, generati aleator, la majoritatea pachetelor + trimise. Pachetele pentru detectia sistemului de operare ( + <option>-O</option>) nu sunt afectate, dar majoritatea pingurilor + si scanarilor de porturi sunt. Acest lucru incetineste viteza de + scanare, dar pachetele pot fi mai putin suspicioase.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--ttl <valoare></option>(Seteaza campul IP time-to-live + – timp de viata)</term> + <listitem> + <para>Seteaza campul IP time-to-live – timp de viata – la valoarea + specificata.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--randomize-hosts</option>(Scaneaza hosturile in ordine + aleatoare)</term> + <listitem> + <para>Spune Nmapului sa aranjeze aleator grupuri de 8096 hosturi + inainte de scanare. Aceasta optiune poate face scanarea mai putin + vizibila pentru anumite sisteme de monitorizare a retelei, in + special cand e combina cu un specificator mic de timp. Daca vreti + ca aranjarea aleatoare sa se realizeze pentru grupuri mai mari, + cresteti valoarea PING_GROUP_SZ din + <filename moreinfo="none">nmap.h</filename>si recompilati. O + solutie alternativa o reprezinta generarea listei de IPuri ce + urmeaza a fi scanata cu o scanre de tip lista ( + <option>-sL -n -oN + <replaceable>numefisier</replaceable></option>), si sa realizati + aranjarea aleatoare a lor cu un script Perl, apoi sa furnizati + intreaga lista Nmapului cu optiunea + <option>-iL</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--spoof-mac <adresa mac, prefix, numele vanzatorului + ></option>(Falsifica adresa MAC)</term> + <listitem> + <para>Cere Nmapului sa foloseasca adresa MAC furnizata pentru toate + cadrele ethernet pe care le trimite. Aceata optiune implica + <option>--send-eth</option>pentru a se asigura ca Nmap trimite + pachetele la nivelul retea. MACul specificat poate avea cateva + formate. Daca spcificati sirul + <quote>0</quote>, Nmap alege un MAC complet aleator pentru sesiunea + respectiva. Daca sirul furnizat este un numar par de digiti hexa + (cu perechile separate prin caracterul “:”), Nmap va folosi + respectuva adresa MAC. Daca mai putin de 12 digiti sunt furnizati, + Nmap umple 6 bytes cu valori aleatoare. Daca argumentul nu este + nici 0, nici sir hexa, Nmap cauta in + <filename moreinfo="none">nmap-mac-prefixes</filename>pentru a gasi + un producator care sa contina sirul dat (cautare insenzitiva). Daca + o asemanare este gasita, Nmap foloseste identificatorul unic al + vanzatorului (3 bytes) si completeaza cu 3 bytes alesi aleator. + Argumentele valide ale optiunii + <option>--spoof-mac</option>sunt + <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>, si + <literal moreinfo="none">Cisco</literal>.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-output"> + <title>Afisarea rezultatelor</title> + <para>Orice instrument de securitate este bun in masura rezultatelor + generate. Teste complexe si algoritmi nu au nici o valoare daca nu sunt + prezentate intr-un mod organizat si inteligibil. Dat fiind numarul de + moduri in care Nmap este folosit de oamenii sau programe, nu exista un + format unic care sa ii multumeasca pe toti. Asadar, Nmap ofera mai multe + formate, incluzandu-l pe cel interactiv pentru citirea uzuala si XML + pentru interpretarea rezultatelor de catre software.</para> + <para>In plus fata de oferirea diferitelor formate de afisare, Nmap + furnizeaza si optiuni de control al cantitatii de informatii si al + mesajelor de eroare. Tipurile de afisare a rezultatelor sunt trimise la + iesirea standard sau in fisiere, unde Nmap poate adauga sau rescrie. + Fisierele cu rezultate pot fi de asemenea folosite pentru reluarea + scanarilor intrerupte.</para> + <para>Nmap face rezultatele disponibile in cinci formate. Cel implicit + este numit + <literal moreinfo="none">afisare interactiva</literal>, si este trimis la + iesirea standard (stdout). Exista si un mod de + <literal moreinfo="none">afisare normala</literal>, care este similar cu + cel + <literal moreinfo="none">interactiv</literal>cu exceptia faptului ca + afiseaza mai putine informatii si avertizari in timpul rularii din moment + ce se asteapta analizarea rezultatelor dupa ce scanarea s-a + incheiat.</para> + <para>Formatul XML este unul dintre cele mai importante tipuri, deoarece + poate fi convertit in HTML, prelucrat de programe cum ar fi interfata + grafica a Nmap sau importat in baze de date.</para> + <para>Celelalte doua tipuri sunt mai simple + <literal moreinfo="none">formatul pentru comanda grep</literal>care + include majoritatea informatiilor despre un host pe o singura linie si + <literal moreinfo="none">f0rm4Tu1 sCRiPt KiDDi3</literal>pentru + utilizatorii care se considera |<-r4d.</para> + <para>In vreme ce afisarea interactiva este formatul implicit si nu are + asociat o optiune pentru linia de comanda, celelalte patru formate + folosesc aceeasi sintaxa. Ele iau un argument, care este numele + fisierului in care se stocheaza rezultatele. Formate multiple pot fi + specificate, dar fiecare format poate fi specificat cel mult o data. De + exemplu, puteti dori salvarea in formatul normal pentru citirea + ulterioara si in formatul XML pentru analiza software. Puteti realiza + acestea cu optiunea + <option>-oX scanarea_mea.xml -oN scanarea_mea.nmap</option>. Desi in + acest capitol numele folosite sunt simple, precum + <literal moreinfo="none">scanarea_mea.xml</literal>pentru simplitate, + nume mai descriptive sunt recomandate. Numele alese sunt o chestie de + preferinta, iar eu folosesc nume lungi care incorporeaza data scanarii si + un cuvant doua pentru descriere si sunt plasate in directoare numite in + functie de companiile scanate.</para> + <para>Desi aceste optiuni salveaza rezultatele in fisiere, Nmap afiseaza + totusi in modul interactiv la iesirea standard rezultatele. De exemplu, + comanda + <command moreinfo="none">nmap -oX scanarea_mea.xml tinta</command>scrie + in format XML in + <filename moreinfo="none">scanarea_mea.xml</filename>si afiseaza la + iesirea standard rezultatele in modul interactiv ca si cum optiunea + <option>-oX</option>nu a fost specificata. Puteti modifica acest lucru + furnizand ca argument al optiunii caracterul cratima (“-”) la unul din + tipurile de formate de afisare. Acest lucru face ca Nmap sa dezactiveze + formatul interactiv, si sa afiseze in schimb rezultatele in formatul + specificat la iesirea standard. Comanda + <command moreinfo="none">nmap -oX - tinta</command>va trimite rezultatele + in format XML la iesirea standard. Erorile mari pot fi scrise in mod + normal in sirul de erori, stderr.</para> + <para>Spre deosebire de argumentele Nmap, spatiul dintre optiune (cum + este + <option>-oX</option>) si numele fisierului sau cratima este obligatoriu. + In caz contrar, in situatii ca + <option>-oG-</option>sau + <option>-oXscan.xml</option>, o functie de compatibilitate cu versiunile + anterioare va face ca Nmap sa creeze in + <emphasis>formatul normal</emphasis>fisiere de iesire cu numele + <filename moreinfo="none">G-</filename>si + <filename moreinfo="none">Xscan.xml</filename>.</para> + <para>Nmap ofera optiuni de control al nivelului de informatii afisate si + daca la fisiere se va face adaugare de informatie sau vor fi suprascrise. + Toate optiunile sunt descrise mai jos</para> + <variablelist> + <title>Formate de afisare a rezultatelor</title> + <varlistentry> + <term> + <option>-oN <specificator_fisier></option>(Afisare + normala)</term> + <listitem> + <para>Cere ca + <literal moreinfo="none">formatul normal</literal>sau fie + directionat catre fisierul specificat. Asa cum s-a discutat mai + sus, exista o mica diferenta fata de + <literal moreinfo="none">formatul interactiv</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-oX <specificator_fisier></option>(Formatul XML)</term> + <listitem> + <para>Cere ca + <literal moreinfo="none">formatul XML</literal>sa fie directionat + catre fisierul specificat. Nmap include o definitie a tipului de + document (DTD) care permite analizatoarelor XML sa valideze + fisierele cu rezultate in format XML. Desi este in principal + folosit in programare, el poate ajuta si oamenii sa interpreteze + rezultatele. DTD defineste elementele legale ale formatului si + adesea enumera atributele si valorile pe care le pot lua. Ultima + versiune este intotdeauna disponibila la + <ulink url="https://nmap.org/data/nmap.dtd"> + </ulink>.</para> + <para>XML ofera un format stabil care este usor interpretat de + software. Analizatoare XML sunt disponibile pentru majoritate + limbajelor de programare, incluzand C/C++, Perl, Python si Java. + Oamenii au scris programe pentru majoritatea acestor limbaje care + interpreteaza direct rezultatele Nmap. Exemplele sunt + <ulink url="http://sourceforge.net/projects/nmap-scanner/"> + Nmap::Scanner</ulink>si + <ulink url="http://www.nmapparser.com">Nmap::Parser</ulink>in Perl + CPAN. In majoritatea cazurilor in care o aplicatie interfereaza cu + Nmap, XML este formatul preferat.</para> + <para>Formatul XML referentiaza un format de pagina XSL care poate + fi folosit pentru convertirea rezultatelor in HTML. Cea mai usoara + cale de a realiza acest lucru o reprezinta simpla incarcare a + fisierului XML intr-un browser cum ar fi Firefox sau IE. Implicit, + acest lucru functioneaza doar pe masinile pe care rulati Nmap (sau + pe cele configurate similar) din cauza caii fisierului + <filename moreinfo="none">nmap.xsl</filename>. Folositi optiunile + <option>--webxml</option>sau + <option>--stylesheet</option>pentru crearea de fisiere XML + portabile care sunt randate ca HTML pe orice masina conectata la + web.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-oS <specificator de fisier></option>(f0rm4u1 ScRipT + KIdd|3)</term> + <listitem> + <para>Formatul script kiddie este asemanator cu formatul + interactiv, cu exceptia faptului ca sirul de iesire este + post-procesat pentru a se potrivi mai bine cu stilul HaXXorZ care + au neglijat in trecut Nmapul datorita formatului corect gramatical + si ortografic de afisare a rezultatelor. Cei fara umor ar trebui sa + noteze faptul ca eu iau peste picior script kiddie, inainte de a ma + blama pentru presupusul + <quote>ajutor acordat</quote>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-oG <specificator_fisier></option>(Formatul pentru + comanda grep)</term> + <listitem> + <para>Acest format este lasat la urma deoarece este invechit. + Formatul XML este mult mai puternic si este aproape la fel de + convenabil pentru utilizatorii experimentati. XML este un standar + pentru care exista o multime de interpretoare, in vreme ce formatul + grep reprezinta solutia doar pentru probleme punctuale. XML este + extensibil pentru a prelua noi functionalitati ale Nmap in + versiunile urmatoare in vreme ce sunt nevoit adeseori sa omit + aceste optiuni din formatul greu din cauza lipsei de spatiu.</para> + <para>Nu e mai putin adevarat ca formatul grep este inca destul de + popular. Este un format simplu care listeaza fiecare host pe cate o + linie si poate fi usor interpretat cu instrumente standard UNIX cum + ar fi grep, awk, cut, sed, diff si Perl. Chiar si eu il folosesc + pentru unul din testele realizate in linie de comanda. Gasirea + tuturor hosturilor cu portul ssh deschis si care ruleaza Solaris + presupune o simpla comanda grep pentru identificarea hosturilor, + imbinata cu awk sau cut pentru afisarea campurilor dorite.</para> + <para>Formatul grep consta in comentarii (linii care incep cu diez + (#)) si linii cu tinte. O linie cu tinta include o combinatie de 6 + campuri etichetate, separate prin taburi si urmate de doua puncte + (“:”). Campurile sunt + <literal moreinfo="none">Host</literal>, + <literal moreinfo="none">Porturi</literal>, + <literal moreinfo="none">Protocoale</literal>, + <literal moreinfo="none">Status ignorat</literal>, + <literal moreinfo="none">Sistem de operare</literal>, + <literal moreinfo="none">Index Seq</literal>, + <literal moreinfo="none">IPID</literal>, si + <literal moreinfo="none">Status</literal>.</para> + <para>Cele mai importante dintre aceste campuri sunt in general + <literal moreinfo="none">Porturile</literal>, care ofera detalii + despre fiecare port interesant. Este o lista separata prin virgule + de porturi. Fiecare port reprezinta un port interesant, si ia forma + unui subcamp separat in sapte de caracterul slash (/). Subcampurile + sunt: + <literal moreinfo="none">Numarul portului</literal>, + <literal moreinfo="none">Status</literal>, + <literal moreinfo="none">Protocol</literal>, + <literal moreinfo="none">Detinator</literal>, + <literal moreinfo="none">Serviciu</literal>, + <literal moreinfo="none">informatii SunRPC</literal>, si + <literal moreinfo="none">Informatii despre + versiune</literal>.</para> + <para>Ca si pentru formaul XML, aceasta pagina man nu permite + documentarea intregului format. O detaliere a formatului pentru + comanda grep este disponibila la + <ulink url="http://www.unspecific.com/nmap-oG-output"> + </ulink>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-oA <nume_de_baza></option>(Scrie in toate + formatele)</term> + <listitem> + <para>Pentru usurinta, puteti specifica + <option>-oA + <replaceable>nume_de_baza</replaceable></option>pentru stocarea + rezultatelor in formatele normal, XML si pentru comanda grep, toate + odata. Ele sunt stocate in + <replaceable>nume_de_baza</replaceable>.nmap, + <replaceable>nume_de_baza</replaceable>.xml, si + <replaceable>nume_de_baza</replaceable>.gnmap. La fel ca in + majoritatea programelor puteti adauga si calea inaintea numelor + fisierelor, ca in exemplele + <filename moreinfo="none">~/logurinmap/foocorp/</filename>sub UNIX + sau + <filename moreinfo="none">c:\hacking\sco</filename>sub + Windows.</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <title>Optiuni privind cantitatea de informatii afisate si + depanare</title> + <varlistentry> + <term> + <option>-v</option>(Creste cantitatea de informatii afisate)</term> + <listitem> + <para>Creste cantitatea de informatii afisate, facand ca Nmap sa + afiseze mai multe date despre scanarea in curs. Porturile deschise + sunt afisate pe masura ce sunt descoperite si un timp estimat al + terminarii este furnizat atunci cand Nmap constata ca scanarea va + dura mai mult decat cateva minute. Folositi de doua ori optiunea + pentru un efect si mai puternic. Folosirea mai mult de doua ori nu + are nici un efect.</para> + <para>Majoritatea modificarilor vor afecta doar afisarea + interactiva si unele mai pot afecta formatul script kiddie. + Celelalte formate sunt concepute pentru a fi procesate de masini, + asa ca Nmap ofera implicit un nivel detaliat de informatii fara a + obosi utilizatorul. Totusi, exista cateva schimbari in celelalte + moduri unde dimensiunea rezultatelor poate fi redusa substantial + prin omiterea unor detalii. De exemplu, o linie ce contine + comentarii in formatul pentru comanda grep care furnizeaza o lista + cu toate porturile scanate este furnizata doar in modul de afisare + cu informatii detaliate (-v) dearece poate fi destul de + lunga.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-d [nivel]</option>(Creste sau seteaza nivelul de + depanare)</term> + <listitem> + <para>Cand modul afisare detaliata nu va ofera suficiente + informatii, modul depanare este disponibil pentru a va inunda cu si + mai multa informatie! La fel ca si cu optiunea de vizualizare + detaliata ( + <option>-v</option>), modul depanare este activat printr-un + specificator ( + <option>-d</option>) si nivelul de depanare poate fi crescut prin + specificarea lui de mai multe ori. Alternativ, se poate seta un + nivel de depanare prin specificarea unui argument la + <option>-d</option>. De exemplu, + <option>-d9</option>seteaza nivelul 9. Acesta este cel mai mare + nivel efectiv si va produce mii de linii, doar daca nu realizati o + scanare simpla cu cateva porturi si hosturi.</para> + <para>Modul depanare este folositor cand se suspecteaza o problema + in Nmap, sau daca esti pur si simplu incurcat de ce si ce face + Nmap. Cum aceasta functionalitate este in general destinata + dezvoltatorilor, mesajele de depanare nu sunt intotdeauna clare. + Puteti vedea ceva de genul: + <computeroutput moreinfo="none">Timeoutvals: srtt: -1 rttvar: -1 + to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: + 100000</computeroutput>. Daca nu intelegeti o linie, singurele + lucruri de facut este sa o ignorati, sa cautati in codul sursa sau + sa solicitati ajutor in lista de dezvoltare (nmap-dev). Unele linii + sunt explicite, dar mesajele devin mai obscure pe masura ce nivelul + de depanare creste.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--packet-trace</option>(Urmareste pachetele si datele trimise + si primite)</term> + <listitem> + <para>Face ca Nmap sa afiseze un sumar cu toate pachetele trimise + sau primite. Este adesea folositoare pentru depanare, dar este si o + sursa pretioasa pentru noii utilizatori de a intelege exact ce face + Nmap. Pentru a evita printarea de mii de linii, puteti dori + specificarea unui numar limitat de porturi in vederea scanarii, cum + ar fi + <option>-p20-30</option>. Daca va intereseaza doar ce se intampla + in timpul detectarii versiunii, folositi in schimb + <option>--version-trace</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--iflist</option>(Listeaza interfetele si caiule de + rutare)</term> + <listitem> + <para>Afiseaza interfetele si caile de rutare ale sistemului asa + cum sunt ele detectate de Nmap. Este folositor pentru depanarea + cailor de rutare sau interpretarea gresita a dispozitivelor (cum ar + fi tratarea de catre Nmap a unei conexiuni PPP ca una + Ethernet).</para> + </listitem> + </varlistentry> + </variablelist> + <variablelist> + <title>Optiuni pentru afisare unor informatii diverse</title> + <varlistentry> + <term> + <option>--append-output</option>(Adauga la fisierul de rezultate in + loc sa il inlocuiasca)</term> + <listitem> + <para>Cand specificati un nume de fisier la optiuni cum ar fi + <option>-oX</option>sau + <option>-oN</option>, acel fisier este suprascris implicit. Daca + prefereati pastrarea continutului si adaugarea la sfarsitul lui de + noi informatii, specificati optiunea + <option>--append-output</option>. Toate fisierele de rezultate + specificate la executia Nmap vor fi deschise in modul adaugare in + loc sa fie suprascrise. Acest lucru nu functioneaza bine cu + formatul XML ( + <option>-oX</option>) deoarece rezultatul nu va fi interpretat + corect pana nu aranjati fisierul manual.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--resume <nume_fisier></option>(Reia o scanare + intrerupta)</term> + <listitem> + <para>Unele scanari Nmap pot lua un timp foarte mare – de ordinul + zilelor. Asemenea scanari nu ruleaza pana la sfarsit. Anumite + restrictii pot face Nmapul sa nu ruleze in orele cu trafic intens, + reteaua poate fi cazuta, masina pe care ruleaza Nmap poate suferii + o restartare planificata sau neplanificata, sau Nmap poate sa se + blocheze. Administratorul care ruleaza Nmap poate opri scanarea + pentru orice alt motiv, apasand + <keycap moreinfo="none">ctrl-C</keycap>. Refacerea intregii scanari + de la inceput nu este de dorit. Din fericire, in modul normal ( + <option>-oN</option>) sau cel pentru comanda grep ( + <option>-oG</option>) logurile sunt pastrate, utilizatorul poate + solicita Nmap reluarea scanarii de la ultima tinta care era scanata + in momentul intreruperii. Specificati optiunea + <option>--resume</option>si furnizati ca argument fisierul de + rezultate in formatul normal sau grep. Nici un alt argument nu este + permis, pentru ca Nmap citeste fisierul de rezultate si foloseste + aceleasi optiuni specificate. Rulati Nmap cu + <command moreinfo="none">nmap --resume + <replaceable>numele_fisierului_log</replaceable></command>. Nmap va + adauga la fisier noile rezultate. Reluarea nu este suportata de + formatul XML deoarece combinarea a doua rulari succesive intr-un + singur fisier XML valid este dificila.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--stylesheet <cale sau URL></option>(Seteaza formatul + XSL pentru transformarea rezultatului XML)</term> + <listitem> + <para>Nmap este furnizat cu un format XSL numit + <filename moreinfo="none">nmap.xsl</filename>pentru vizualizarea + sau traducerea rezultatelor XML in HTML. Rezultatele in formatul + XML includ o directiva + <literal moreinfo="none">xml-stylesheet</literal>directive care + indica fisierul + <filename moreinfo="none">nmap.xml</filename>din locatia in care a + fost instalat Nmap (sau din directorul curent in Windows). + Incarcati rezultatul scanarii cu Nmap in format XML intr-un browser + si acesta ar trebui sa aleaga + <filename moreinfo="none">nmap.xsl</filename>din sistemul de + fisiere si sa-l foloseasca pentru afisarea rezultatelor. Daca + doriti specificarea unui alt format de afisare, specificati-l ca + argument pentru + <option>--stylesheet</option>. Trebuie sa furnizati calea completa + sau URLul. O apelare uzuala este + <option> + --stylesheethttps://nmap.org/data/nmap.xsl</option>. + Aceasta aplelare spune browserului sa incarce cel mai nou format de + afisare de la Insecure.Org. Optiunea + <option>--webxml</option>realizeaza acelasi lucru cu mai putine + lucruri de tastat si memorat. Incarcand fisierul XSL de la + Insecure.Org face vizualizarea mai facila pentru un calculator care + nu are Nmap instalat (si implicit nici + <filename moreinfo="none">nmap.xsl</filename>) Astfel URLul este + adesea mult mai folositor, dar fisierul local nmap.xsl este + utilizat implicit din motive de securitate.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--webxml</option>(Incarca formatul stylesheet de la + Insecure.Org)</term> + <listitem> + <para>Este un sinonim covenabil pentru + <option>--stylesheet + https://nmap.org/data/nmap.xsl</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--no-stylesheet</option>(Se omite declaratia stylesheetului + XSL din XML)</term> + <listitem> + <para>Specificati aceasta optiune daca vreti sa preveniti Nmapul sa + asocieze vreun format XSL cu fisierul XML. Directiva + <literal moreinfo="none">xml-stylesheet</literal>este omisa.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-misc-options"> + <title>Optiuni diverse</title> + <para>Aceasta sectiune descrie cateva optiuni importante (si mai putin + importante) care nu si-au gasit locul in nici o alta sectiune</para> + <variablelist> + <varlistentry> + <term> + <option>-6</option>(Activeaza scanarea IPv6)</term> + <listitem> + <para>Din 2002, Nmap ofera suport IPv6 pentru majoritatea + functionalitatilor sale. In particular, scanarea ping (doar TCP), + scanarea connect() si detectarea versiunii suporta toate IPv6. + Sintaxa comenzii este aceeasi cu exceptia adaugarii optiunii + <option>-6</option>. Desigur, trebuie sa folositi sintaxa IPv6 daca + specificati o adresa in locul unui hostname. O adresa poate arata + <literal moreinfo="none"> + 3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, asa ca + hostnameurile sunt recomandate. Rezultatul arata in mod normal, cu + adresa IPv6 pe linia + <quote>porturi_interesante</quote>ca singura adresa.</para> + <para>Desi IPv6 nu a revolutionat lumea, are parte de o folosire + semnificativa in unele tari (in special in Asia) si majoritatea + sistemelor moderne de operare ofera suport. Pentru folosirea Nmap + cu IPv6, atat sursa cat si tinta scanarii trebuie sa fie + configurate in IPv6. Daca ISPul dumneavoastra nu aloca o adresa + IPv6 (multi nu o fac), tunele de trecere sunt disponibile gratuit + si functioneaza bine cu Nmap. Unul dintre cele mai bune este cel + rulat de BT Exact. Am folosit si + cel furnizat de Hurricane Electric la + <ulink url="http://ipv6tb.he.net/"></ulink>. Tunelele 6la4 sunt de + asemenea folosite, existand si optiuni gratuite.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-A</option>(Optiuni de scanare agresive)</term> + <listitem> + <para>Aceasta optiune activeaza alte optiuni avansate si agresive. + Nu m-am decis inca de la ce vine litera de specificare. In prezent + activeaza detectia sistemului de operare ( + <option>-O</option>) si scanarea versiunii ( + <option>-sV</option>). Mai multe functionalitati pot fi inglobate + pe viitor. Ideea este de a activa un set cuprinzator de optiuni de + scanare fara ca oamenii sa fie nevoiti sa tina minte un set intreg + de optiuni. Aceasta optiune activeaza functionalitatile, nu si + optiunile de timp (cum ar fi + <option>-T4</option>) sau nivelul de informatii afisat ( + <option>-v</option>) pe care le-ati dori.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--datadir <nume_director></option>(Specifica un anumit + director pentru localizarea fisierelor Nmap)</term> + <listitem> + <para>Nmap obtine anumite date in momentul rularii in fisierele + numite + <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>, si + <filename moreinfo="none">nmap-os-fingerprints</filename>. Nmap + incearca intai sa caute aceste fisiere in directorul specificat cu + optiunea + <option>--datadir</option>(daca exista). Orice fisier negasit aici + este cautat in directorul specificat de directiva NMAPDIR. La rand + vin apoi + <filename moreinfo="none">~/.nmap</filename>pentru sisteme POSIX + sau locatia executabilului Nmap (pe sistemele Win32), si apoi o + locatie precompilata cum ar fi + <filename moreinfo="none">/usr/local/share/nmap</filename>sau + <filename moreinfo="none">/usr/share/nmap</filename>. Ca o ultima + optiune, Nmap va cauta in directorul curent.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--send-eth</option>(Foloseste trimiterea bruta + ethernet)</term> + <listitem> + <para>Cere Nmapului sa trimita pachete brute ethernet (la nivelul + legaturii de date) in locul trimiterii de la nivelul IP superior. + Implicit, Nmap alege pe cel care este in general potrivit pentru + platforma de rulare. Socketuri brute (nivelul IP) sunt in general + mult mai eficiente pe masinile UNIX, in timp ce cadre ethernet sunt + necesare pentru operatii sub Windows, din moment ce Microsoft a + dezactivat suportul pentru suport de socketuri brute. Nmap + foloseste pachete IP brute pe UNIX in ciuda acestei optiunii cand + nu exista nici o alta alegere (conexiuni non-ethernet).</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--send-ip</option>(Trimite pachete brute la nivelul + IP)</term> + <listitem> + <para>Cere Nmapului sa trimita pachete brute prin socketuri IP in + locul trimiterii lor la nivelul cadrelor ethernet. Este + complementul optiunii + <option>--send-eth</option>discutata anterior.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>--privileged</option>(Se presupune ca utilizatorul are + privilegii depline)</term> + <listitem> + <para>Spune Nmapului sa presupuna ca are privilegii suficiente + pentru a trimite pachete brute, sa intercepteze pachete si alte + operatii similare care in general necesita privilegii de root pe + sisteme UNIX. Implicit Nmap renunta la astfel de operatii daca + getuid() nu este zero. + <option>--privileged</option>este o optiune folositoare impreuna cu + capacitatea kernelului de Linux de a permite utilizatorilor + neprivilegiati sa realizeze scanari cu pachete brute. Asigurativa + ca ati mentionat aceasta optiune inaintea oricarei optiuni care + necesita privilegii (scanare SYN, detectia sistemului de operare, + etc.). Variabila NMAP_PRIVILEGED poate fi setata ca o alternativa + la + <option>--privileged</option>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-V</option>; + <option>--version</option>(Afiseaza numarul versiunii)</term> + <listitem> + <para>Afiseaza versiunea de Nmap si iese.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>-h</option>; + <option>--help</option>(Afiseaza o pagina sumara de ajutor)</term> + <listitem> + <para>Afiseaza un ecran de ajutor cu principalele optiuni. Rularea + Nmap fara nici un argument face exact acelasi lucru.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-runtime-interaction"> + <title>Interactiune in timpul rularii</title> + <para> + <remark>Aceasta functionalitate nu exista inca in Nmap. Fie voi adauga + suport, fie voi scoate aceasta sectiune.</remark> + </para> + <para>In timpul executiei Nmap, toate tastele apasate sunt inregistrate. + Acest lucru va perite interactiunea cu programul fara oprirea si + restartarea lui. Anumite taste vor schimba optiuni in vreme ce altele vor + afisa mesaje despre scanarea in curs. Conventia este ca + <emphasis>literele mici cresc</emphasis>nivelul de afisare si + <emphasis>literele mari scad</emphasis>acest nivel.</para> + <variablelist> + <varlistentry> + <term> + <option>v</option>/ + <option>V</option></term> + <listitem> + <para>Cresc / Descresc cantitatea de informatii afisate</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>d</option>/ + <option>D</option></term> + <listitem> + <para>Cresc /Descresc cantitatea de informatii de depanare</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>p</option>/ + <option>P</option></term> + <listitem> + <para>Activeaza / Dezactiveaza urmarirea pachetelor</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Anything else (Orice altceva)</term> + <listitem> + <para>Afiseaza un mesaj de genul:</para> + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 + undergoing Service Scan</para> + <para>Service scan Timing: About 28.00% done; ETC: 16:18 (0:00:15 + remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1 id="man-examples"> + <title>Exemple</title> + <para>Aici sunt cateva exemple de utilizare a Nmap, de la unele simple si + de rutina pana la altele mai complexe si ezoterice. Unele adrese IP si + nume de domenii sunt folosite pentru a face lucrurile mai concrete. In + locul lor trebuie sa puneti adresele/numele din + <emphasis>reteaua dumneavoastra.</emphasis>. Desi nu cred ca scanarea de + porturi a altor retele este sau ar trebui sa fie ilegala, unii + administratori de retea nu apreciaza scanari nesolicitate ale retelelor + lor si pot depune plangere. Obtinerea mai intai a permisiunii este cea + mai buna abordare.</para> + <para>Pentru testare, aveti permisiunea sa scanati hostul + <literal moreinfo="none">scanme.nmap.org</literal>. Aceasta permisiune + include doar scanarea cu Nmap si nu testarea gaurilor de securitate sau + atacuri de tip DOS. Pentru conservarea latimii de banda, va rog sa nu + initiati mai multe scanari zilnic. Daca aceasta tinta este abuzata, va fi + indisponibila in retea si Nmap va raporta imposibilitatea de a gasi + hostul + <computeroutput moreinfo="none">Failed to resolve given hostname/IP: + scanme.nmap.org</computeroutput>. Aceasta permisiune se aplica si + hosturilor + <literal moreinfo="none">scanme2.nmap.org</literal>, + <literal moreinfo="none">scanme3.nmap.org</literal>, si asa mai departe, + desi acestea nu exista inca.</para> + <para> + <userinput moreinfo="none">nmap -v scanme.nmap.org</userinput> + </para> + <para>Aceasta linie de comanda scaneaza toate porturile TCP rezervate de + pe masina + <literal moreinfo="none">scanme.nmap.org</literal>. Optiunea + <option>-v</option>activeaza modul de afisare in timp real a + rezultateor.</para> + <para> + <userinput moreinfo="none">nmap -sS -O scanme.nmap.org/24</userinput> + </para> + <para>Lanseaza o scanare SYN impotriva tuturor celor 255 masini din + reteaua de + <quote>clasa C</quote>unde isi are locul hostul scanme. De asemenea + incearca determinarea sistemului de operare a fiecarui host activ. Acesta + lansare necesita privilegii root din cauza scanarii SYN si a detectarii + sistemului de operare.</para> + <para> + <userinput moreinfo="none">nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</userinput> + </para> + <para>Lanseaza enumerarea hosturilor si o scanare TCP in prima jumatate a + celor 255 de subretele 198.116 de clasa B. Testeaza daca sistemul ruleaza + sshd, DNS, pop3d, imapd sau portul 4546. Pentru fiecare dintre porturile + gasite deschise, detectia versiunii este pusa in functiune pentru a se + determina aplicatia care ruleaza.</para> + <para> + <userinput moreinfo="none">nmap -v -iR 100000 -P0 -p 80</userinput> + </para> + <para>Cere Nmapului sa aleaga aleator 100.000 tinte si sa le scaneze in + cautarea serverelor web (portul 80). Enumerarea hosturilor este + dezactivata cu + <option>-P0</option>din moment ce trimiterea unui cuplu de probe pentru a + determina daca hostul este activ este o pierdere de timp atata vreme cat + se cauta un singur port al fiecarei tinte.</para> + <para> + <userinput moreinfo="none">nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</userinput> + </para> + <para>Scaneaza cele 4096 IPuri dupa servere web (fara ping) si salveaza + rezultatele in formatul pentru comanda grep si in formatul XML.</para> + <para> + <userinput moreinfo="none">host -l company.com | cut -d -f 4 | nmap -v + -iL -</userinput> + </para> + <para>Realizeaza un transfer de zona DNS pentru a gasi toate hosturile + din company.com si apoi furnizeaza adresele Nmapului. Comanda de mai sus + este valabila pentru un sistem Linux – alte sisteme beneficiaza de + comenzi diferite pentru realizarea transferului DNS.</para> + </refsect1> + <refsect1 id="man-bugs"> + <title>Probleme</title> + <para>Asemeni autorului, Nmap nu este perfect. Dar ilputeti face mai bun + trimitand rapoarte despre problemele aparute si chiar scriind patchuri. + daca Nmap nu se comporta in modul in care va asteptati, faceti upgradeul + la ultima versiune disponibila la + <ulink url="https://nmap.org/"></ulink>. Daca problema + persista, faceti munca de cercetare pentru a vedea daca problema a fost + descoperita si discutata. Incercati cautarea in Google a mesajului de + eroare sau navigand prin arhivele Nmap-dev la + <ulink url="https://seclists.org/"></ulink>. Cititi acest manual in + intregime de asemenea. Daca nimic nu se rezolva, trimiteti un mail la + <email>dev@nmap.org</email>. Va rog sa includeti tot ce ati + aflat despre problema, precum si versiunea de Nmap pe care o folositi si + sistemul de operare. Problemele si intrebarile legate de utilizarea + Nmapului trimise la dev@nmap.org au sanse mult mai mari de a li + se raspunde decat cele trimise direct la Fyodor.</para> + <para>Patchurile de rezolvare a problemelor sunt si mai bune decat + rapoartele despre problema in sine. Instructiuni de baza pentru crearea + patchurilor sunt disponibile la + <ulink url="https://nmap.org/data/HACKING"></ulink>. + Patchurile pot fi trimise la nmap-dev (recomandat) sau direct la + Fyodor.</para> + </refsect1> + <refsect1 id="man-author"> + <title>Autor</title> + <para>Fyodor + <email>fyodor@nmap.org</email>( + <ulink url="http://www.insecure.org"></ulink>)</para> + <para>Sute de oameni au facut contributii importante la Nmap de-a lungul + timpului. Ei sunt mentionati in fisierul + <filename moreinfo="none">CHANGELOG</filename>distribuit cu Nmap si + disponibil la + <ulink url="https://nmap.org/nmap_changelog.html"> + </ulink>.</para> + </refsect1> + <refsect1 id="man-legal"> + <title>Aspecte legale</title> + <refsect2 id="translation-disclaimer"> + <title>Unofficial Translation Disclaimer / Disculparea fata de + traducerea neoficiala</title> + <para>This is an unnofficial translation of the + <ulink url="https://nmap.org/man/man-legal.html">Nmap + license details</ulink>into Romanian. It was not written by + Insecure.Com LLC, and does not legally state the distribution terms for + Nmap -- only the original English text does that. However, we hope that + this translation helps Romanian speakers understand the Nmap license + better.</para> + <para>Aceasta este traducerea neoficiala a + <ulink url="https://nmap.org/man/man-legal.html">detaliilor + de licenta ale Nmap</ulink>in limba romana. Nu a fost scrisa de + Insecure.Com LLC si nu statueaza in mod legal termenii distributiei + Nmap – numai textul original in limba engleza realizeaza acest lucru. + Oricum speram ca aceasta traducere sa ajute vorbitorii de limba romana + sa inteleaga termenii licentei Nmap mai bine.</para> + </refsect2> + <refsect2> + <title>Dreptul de autor si licentiere</title> + <para>Scanerul de securitate Nmap este (C) 1996-2005 a Insecure.Com + LLC. Nmap este marca inregistrata a Insecure.Com LLC. Acest program + este software liber; il puteti redistribui si/sau modifica sub termenii + Licentei Publice Generale (GNU General Public License) asa cum este + publicata de Free Software Foundation; Versiunea 2. Aceasta va + garanteaza dreptul de folosire, modificare si redistribuire sub anumite + conditii. Daca doriti sa incorporati tehnologie Nmap in software + proprietar, suntem dispusi sa vindem licente alternative (contact + <email>sales@insecure.com</email>). Multi producatori de scanere de + securitate au licentiat deja tehnologie Nmap cum ar fi descoperirea + hosturilor, scanare de porturi, detectia sistemului de operare si + detectia serviciului/versiunii.</para> + <para>Notati ca GPL pune restrictii importante asupra + <quote>produselor derivate</quote>, desi nu furnizeaza o definitie + detaliata a termenului. Pentru a evita neintelegerile, consideram ca o + aplicatie este + <quote>produs derivat</quote>in termenii licentei daca realizeaza unul + din urmatoarele lucruri:</para> + <itemizedlist> + <listitem> + <para>Integreaza cod sursa din Nmap</para> + </listitem> + <listitem> + <para>Citeste sau include fisiere Nmap proteja de drepturi de + autor, cum ar fi + <filename moreinfo="none">nmap-os-fingerprints</filename>sau + <filename moreinfo="none">nmap-service-probes</filename>.</para> + </listitem> + <listitem> + <para>Executa Nmap si interpreteaza rezultatele (spre deosebire de + aplicatiile shell care afiseaza outputul brut al Nmapului si nu + reprezinta produse derivate).</para> + </listitem> + <listitem> + <para>Integreaza/include/agregheaza Nmap intr-un executabil de + instalare proprietar, cum sunt cele produse de + InstallShield.</para> + </listitem> + <listitem> + <para>Face legatura la o biblioteca sau executa un program care + realizeaza oricare dintre cele enumerate.</para> + </listitem> + </itemizedlist> + <para>Termenul + <quote>Nmap</quote>include si portiuni din produse derivate din Nmap. + Lista nu este exclusiva, dar este menita a clarifica interpretarea + noastra a produselor derivate cu exemple comune. Aceste restrictii se + aplica doar pentru cazul in care redistribuiti Nmap. De exemplu, nimic + nu va impiedica sa scrieti interfete grafice proprietare pentru Nmap. + Distribuiti-o independent si invitati oamenii la + <ulink url="https://nmap.org/"></ulink>pentru a descarca + Nmap.</para> + <para>Nu consideram aceste ca restrictii adugate peste GPL ci doar o + clarificare a modului in care interpretam termenul de + <quote>produs derivat</quote>asa cum se aplica el la produsul Nmap + licentiat GPL. Este similar modului in care Linus Torvalds a anuntat + interpretarea sa asupra a cum se aplica termenul de + <quote>produs derivat</quote>la modulele kernellului Linux. + Interpretarea noastra se refera doar la Nmap – nu vorbim in numele nici + unui alt produs GPL.</para> + <para>Daca aveti intrebari despre restrictiile licentei GPL in ceea ce + priveste folosirea Nmap in produse non-GPL, sunt bucurosi sa va ajutam. + Asa cum am mentionat, oferim licente alternative pentru integrarea Nmap + in aplicatii si aplicari proprietare. Astfel de contracte au fost + vandute majoritatii producatorilor de software de securitate si in + general includ o licenta perpetua precum si furnizarea prioritara de + suport si actualizari, dupa cum ne si ajuta sa finantam dezvoltarea + tehnologiei Nmap. Va rugam sa trimiteti un email la + <email>sales@insecure.com</email>pentru mai multe informatii.</para> + <para>Ca o exceptie speciala de la termenii GPL, Insecure.Com LLC + permite legarea acestui cod cu orice versiune de biblioteca OpenSSL + distribuita sub o licenta identica cu cea din fiserul Copying.OpenSSL + si distribuirea codului legat a celor doua. Trebuie sa va supuneti GNU + GPL pentru orice cod in afara de OpenSSL. Daca modificati acest fisier, + puteti extinde aceasta exceptie si asupra fisierului dumneavoastra, + desi nu sunteti obligati sa o faceti.</para> + <para>Daca primiti aceste fisiere cu o alta licenta scrisa sau contract + care specifica alti termeni decat cei precizati aici, atunci licenta + alternativa ia locul celei de fata.</para> + </refsect2> + <refsect2> + <title>Disponibilitatea codului sursa si contributiile + comunitatii</title> + <para>Sursa este furnizata cu acest software deoarece consideram ca + utilizatorii au dreptul de a stii exact ce face un program inainte de + a-l rula. Acest lucru permite si auditul softwareului in vederea + descoperirii gaurilor de securitate (nici una nu a fost descoperita + pana acum).</para> + <para>Codul sursa permite portarea Nmap pe noi platforme, rezolvarea + problemelor si adaugarea de noi functionalitati. Sunteti incurajati sa + trimiteti modificarile dumneavoastra la + <email>fyodor@nmap.org</email>pentru o posibila incorporare in + distributia principala. Prin trimiterea acestor modificari catre Fyodor + sau la una din listele de dezvoltare de la Insecure.Org, se presupune + ca oferiti lui Fyodor si Insecure.Com LLC dreptul neliitat, neexclusiv + de reutilizare, modificare si relicentiere a codului. Nmap va fi + intotdeauna disponibil ca software cu sursa disponibila, dar acest + lucru este important din cauza imposibilitatii relicentierii ce a creat + probleme devastatoare pentru alte proiecte cu software liber (cum sunt + KDE si NASM). Ocazional relicentiam codul catre terti asa cum s-a + discutat mai devreme. Daca doriti sa specificati conditii speciale de + licentiere a contributiei dumneavoastra, precizati acest lucru cand o + trimiteti.</para> + </refsect2> + <refsect2> + <title>Nici o garantie</title> + <para>Acest program este distribuit in speranta ca va fi folositor, dar + FARA NICI O GARANTIE; fara macar a garantiei de COMERCIABILITATE sau + POTRIVIRE PENTRU UN SCOP PARTICULAR. Vezi GNU GPL pentru mai multe + detalii la + <ulink url="http://www.gnu.org/copyleft/gpl.html"></ulink>, sau in + fisierul COPYING inclus in Nmap.</para> + <para>Notati si faptul ca Nmap, ocazional, blocheaza aplicatii prost + scrise, stive TCP/IP si chiar sisteme de operare. Desi este un lucru + extrem de rar, este important sa tinteti minte ca + <emphasis>Nmap nu trebuie niciodata rulat impotriva sistemelor cu + aplicatii critice</emphasis>decat daca sunteti pregatit sa suferiti + eventuale blocari. Statuam aici faptul ca Nmap poate bloca sistemele + sau retelele dumneavoastra si ne disculpam de orice paguba sau problema + pe care Nmap o poate cauza.</para> + </refsect2> + <refsect2> + <title>Utilizare inadecvata</title> + <para>Datorita micului risc de blocare si pentru ca unele personaje + negative folosesc Nmap in cunoasterea tintelor premergator atacului, + exista administratori care devin suparati si pot depune plangere daca + sistemele lor sunt scanate. Asadar, este recomandata solicitarea + permisiunii chiar si inaintea unei scanari superficiale a + retelei.</para> + <para>Din ratiuni de securitate Nmap nu ar trebui instalat niciodata cu + privilegii speciale (ex: suid root)</para> + </refsect2> + <refsect2> + <title>Software de la terti</title> + <para>Acest produs iclude software dezvoltat de + <ulink url="http://www.apache.org">Apache Software Foundation</ulink>. + O versiune modificata a + <ulink url="http://www.tcpdump.org">bibliotecii de captura a pachetelor + Libpcapportable</ulink>este distribuita impreuna cu Nmap. Versiunea de + Windows a Nmap utilizeaza biblioteca derivata din libpcap, + <ulink url="http://www.winpcap.org">WinPcap</ulink>. Suportul pentru + expresiile regulate este furnizat de + <ulink url="http://www.pcre.org">PCRE library</ulink>, software open + source, scris de Philip Hazel. Anumite functii brute de retea folosesc + biblioteca + <ulink url="http://libdnet.sourceforge.net">Libdnet</ulink>, scrisa de + Dug Song. O versiune modificata este distribuita cu Nmap. Optional Nmap + se poate lega de + <ulink url="http://www.openssl.org">Trusa criptografica + OpenSSL</ulink>pentru suportul de detectare a versiunii SSL. Toate + softurile de la terti descrise in acest paragraf sunt redistribuibile + gratuit sub licente de tipul BSD.</para> + </refsect2> + <refsect2> + <title>Clasificarea de control al exportului din SUA</title> + <para>Clasificarea de control al exportului din SUA: Insecure.Com LLC + considera ca Nmap cade sub incidenta US ECCN (numarul de control al + clasificarii de export) 5D992. Aceasta categorie este denumita + <quote>Software de securitate a informatiilor necontrolat de + 5D002</quote>. Singurele restrictii ale acestei clasificari sunt AT + (anti-terrorism) care se aplica aproape tuturor bunurilor si interzic + exportul catre cateva natiuni ca Iranul si Coreea de Nord. Asadar + exportul Nmapului nu necesita licente speciale, permisiuni sau + autorizari guvernamentale.</para> + </refsect2> + </refsect1> + </refentry> +</article> diff --git a/docs/man-xlate/nmap-man-ru.xml b/docs/man-xlate/nmap-man-ru.xml new file mode 100644 index 0000000..82c3d4e --- /dev/null +++ b/docs/man-xlate/nmap-man-ru.xml @@ -0,0 +1,3658 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id: manhtml.xml 6184 2007-11-10 01:55:40Z Hackcat $ -->
+<article id="man" lang="ru">
+<artheader>
+ <title>Справочное руководство Nmap (Man Page)</title>
+</artheader>
+<indexterm significance="normal"><primary>man page</primary><see>reference guide</see></indexterm>
+<indexterm class="startofrange" id="man-nmap1-indexterm" significance="normal"><primary>reference guide (man page)</primary></indexterm>
+<refentry id="man-nmap1">
+ <refmeta>
+ <refentrytitle>nmap</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="source">Nmap</refmiscinfo>
+ <refmiscinfo class="manual">Справочное руководство Nmap</refmiscinfo>
+ </refmeta>
+ <refnamediv id="man-name">
+ <refname>nmap</refname>
+ <refpurpose>Утилита для исследования сети и сканер портов</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id="man-synopsis">
+ <cmdsynopsis sepchar=" ">
+ <command moreinfo="none">nmap</command>
+ <arg choice="opt" rep="repeat">
+ <replaceable>Тип сканирования</replaceable>
+ </arg>
+ <arg choice="opt" rep="norepeat">
+ <replaceable>Опции</replaceable>
+ </arg>
+ <arg choice="req" rep="norepeat">
+ <replaceable>цель сканирования</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="man-description">
+ <title>Описание</title>
+ <indexterm significance="normal"><primary>Nmap</primary><secondary>description of</secondary></indexterm>
+ <web>
+ <note><para>
+ Этот документ описывает версию Nmap 4.22SOC8. Последняя документация
+ доступна на английском языке по ссылке
+ <ulink url="https://nmap.org/book/man.html"/>.</para></note>
+ </web>
+ <para>Nmap (<quote>Network Mapper</quote>) - это утилита с открытым исходным кодом для исследования сети и
+ проверки безопасности. Она была разработана для быстрого сканирования больших сетей, хотя прекрасно справляется
+ и с единичными целями. Nmap использует "сырые" IP пакеты оригинальным способом, чтобы определить какие хосты
+ доступны в сети, какие службы (название приложения и версию) они предлагают, какие операционные системы (и версии
+ ОС) они используют, какие типы пакетных фильтров/брандмауэров используются и еще множество других характеристик.
+ В то время, как Nmap обычно используется для проверки безопасности, многие системные администраторы находят ее
+ полезной для обычных задач, таких как контролирование структуры сети, управление расписаниями запуска
+ служб и учет времени работы хоста или службы. </para>
+
+ <para>Выходные данные Nmap это список просканированных целей с дополнительной информацией по каждой из них в зависимости
+ от заданных опций. Ключевой информацией является <quote>таблица важных портов</quote>.<indexterm significance="normal"><primary>ports</primary><secondary sortas="interesting">“interesting”</secondary></indexterm>
+ Эта таблица содержит номер порта, протокол, имя службы и состояние. Состояние может иметь значение
+ <literal moreinfo="none">open</literal> (открыт), <literal moreinfo="none">filtered</literal> (фильтруется),
+ <literal moreinfo="none">closed</literal> (закрыт) или <literal moreinfo="none">unfiltered</literal> (не
+ фильтруется).
+ <literal moreinfo="none">Открыт</literal><indexterm significance="normal"><primary><literal moreinfo="none">open</literal> port state</primary></indexterm>
+ означает, что приложение на целевой машине готово для установки соединения/принятия пакетов на этот порт.
+ <literal moreinfo="none">Фильтруется</literal><indexterm significance="normal"><primary><literal moreinfo="none">filtered</literal> port state</primary></indexterm>
+ означает, что брандмауэр, сетевой фильтр, или какая-то другая помеха в сети блокирует порт, и Nmap не может установить
+ <literal moreinfo="none">открыт</literal> этот порт или <literal moreinfo="none">закрыт</literal>.
+ <literal moreinfo="none">Закрытые</literal><indexterm significance="normal"><primary><literal moreinfo="none">closed</literal> port state</primary></indexterm>
+ порты не связаны ни с каким приложением, но могут быть открыты в любой момент. Порты расцениваются как
+ <literal moreinfo="none">не фильтрованные</literal><indexterm significance="normal"><primary><literal moreinfo="none">unfiltered</literal> port state</primary></indexterm>, когда они отвечают на запросы Nmap, но Nmap не может определить открыты они или закрыты. Nmap выдает комбинации
+ <literal moreinfo="none">открыт|фильтруется</literal><indexterm significance="normal"><primary><literal moreinfo="none">open|filtered</literal> port state</primary></indexterm>
+ и <literal moreinfo="none">закрыт|фильтруется</literal><indexterm significance="normal"><primary><literal moreinfo="none">closd|filtered</literal> port state</primary></indexterm>, когда не может определить, какое из этих двух
+ состояний описывает порт. Эта таблица также может предоставлять детали о версии программного обеспечения, если это
+ было запрошено. Когда осуществляется сканирование по IP протоколу (<option>-sO</option>), Nmap предоставляет
+ информацию о поддерживаемых протоколах, а не об открытых портах.</para>
+
+ <para>В дополнение к таблице важных портов Nmap может предоставлять дальнейшую информацию о целях: преобразованные
+ DNS имена, предположение об используемой операционной системе, типы устройств и MAC адреса.</para>
+
+ <para>Типичное сканирование с использованием Nmap показано в <xref linkend="man-ex-repscan" xrefstyle="select: label nopage"/>. Единственные аргументы, использованные в этом примере - это <option>-A</option>, для определения версии ОС,
+ сканирования с использованием скриптов и трассировки; <option>-T4</option> для более быстрого выполнения; затем
+ два целевых хоста.</para>
+
+<example id="man-ex-repscan"><title>Типичный пример сканирования с помощью Nmap</title>
+<indexterm significance="normal"><primary><option>-A</option></primary><secondary>example of</secondary></indexterm>
+<screen format="linespecific">
+# nmap -A -T4 scanme.nmap.org playground
+
+Starting Nmap ( https://nmap.org )
+Interesting ports on scanme.nmap.org (64.13.134.52):
+(The 1663 ports scanned but not shown below are in state: filtered)
+PORT STATE SERVICE VERSION
+22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99)
+53/tcp open domain
+70/tcp closed gopher
+80/tcp open http Apache httpd 2.0.52 ((Fedora))
+113/tcp closed auth
+Device type: general purpose
+Running: Linux 2.4.X|2.5.X|2.6.X
+OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11
+
+Interesting ports on playground.nmap.org (192.168.0.40):
+(The 1659 ports scanned but not shown below are in state: closed)
+PORT STATE SERVICE VERSION
+135/tcp open msrpc Microsoft Windows RPC
+139/tcp open netbios-ssn
+389/tcp open ldap?
+445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds
+1002/tcp open windows-icfw?
+1025/tcp open msrpc Microsoft Windows RPC
+1720/tcp open H.323/Q.931 CompTek AquaGateKeeper
+5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC port: 5900)
+5900/tcp open vnc VNC (protocol 3.8)
+MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications)
+Device type: general purpose
+Running: Microsoft Windows NT/2K/XP
+OS details: Microsoft Windows XP Pro RC1+ through final release
+Service Info: OSs: Windows, Windows XP
+
+Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds
+</screen>
+</example>
+
+<para>Самую новую версию Nmap можно скачать с <ulink url="https://nmap.org"/>. Самая новая версия страницы справки Nmap
+ (man page) расположена по адресу <ulink url="https://nmap.org/book/man.html"/>.</para>
+
+ </refsect1>
+
+
+ <refsect1 id="man-translation">
+ <title>Замечания о переводе</title>
+
+ <para>Гуз Александр (Guz Alexander) <email>kalimatas@gmail.com</email> </para>
+
+ <para>Этот русский вариант Справочного Руководства Nmap является переводом версии 6184 <ulink url="https://nmap.org/book/man.html">оригинальной английской версии</ulink>. Хотя я надеюсь, что данный перевод
+ сделает Nmap более доступным для русскоязычных пользователей, я не могу гарантировать, что он является полным или
+ является переводом последней официальной английской версии. Эту работу можно модифицировать и(или) распространять
+ на основе лицензии <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative
+ Commons Attribution License</ulink>.</para>
+
+ <para>Марк Бруцкий (Mark Brutsky) <email>hackcat.dev@gmail.com</email> </para>
+
+ <para>Этот русский вариант Справочного Руководства Nmap является переводом версии 6184 <ulink url="https://nmap.org/book/man.html"> оригинальной английской версии</ulink>. Хотя я надеюсь, что данный перевод
+ сделает Nmap более доступным для русскоязычных пользователей, я не могу гарантировать, что он является полным или
+ является переводом последней официальной английской версии. Эту работу можно модифицировать и(или) распространять
+ на основе лицензии <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative
+ Commons Attribution License</ulink>.</para>
+</refsect1>
+
+
+
+ <refsect1 id="man-briefoptions">
+ <title>Сводка опций</title>
+
+<para>Эта сводка опций выводится на экран, когда Nmap запускается без каких-либо опций; последняя версия всегда доступна
+здесь <ulink url="https://nmap.org/data/nmap.usage.txt"/>.
+Эта сводка помогает людям запомнить наиболее употребляемые опции, но она не может быть заменой документации,
+предоставленной в данном руководстве. Некоторые опции не включены в этот список.</para>
+
+<para>
+<!-- sortas="#" puts it before the entries that start with '-' in the options
+ section. -->
+<indexterm class="startofrange" id="nmap-usage-indexterm" significance="normal"><primary sortas="#">summary of options</primary></indexterm>
+<indexterm class="startofrange" id="nmap-usage-nmap-indexterm" significance="normal"><primary>command-line options</primary><secondary>of Nmap</secondary></indexterm>
+<?dbfo-need height="1in"?>
+<literallayout format="linespecific" class="normal">
+Nmap 4.76 ( https://nmap.org )
+Использование: nmap [Тип(ы) Сканирования] [Опции] {цель сканирования}
+ОПРЕДЕЛЕНИЕ ЦЕЛИ СКАНИРОВАНИЯ:
+ Можно использовать сетевые имена, IP адреса, сети и т.д.
+ Пример: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
+ -iL <имя_входного_файла>: Использовать список хостов/сетей из файла
+ -iR <количество_хостов>: Выбрать произвольные цели
+ --exclude <хост1[,хост2][,хост3],...>: Исключить хосты/сети
+ --excludefile <имя_файла>: Исключить из сканирования список хостов/сетей, находящийся в файле
+ОБНАРУЖЕНИЕ ХОСТОВ:
+ -sL: Сканирование с целью составления списка - просто составить список целей для сканирования
+ -sP: Пинг сканирование - просто определить, работает ли хост
+ -PN: Расценивать все хосты как работающие - пропустить обнаружение хостов
+ -PS/PA/PU [список_портов]: TCP SYN/ACK или UDP пингование заданных хостов
+ -PE/PP/PM: Пингование с использованием ICMP-эхо запросов, запросов временной метки и сетевой маски
+ -PO [список_протоколов]: Пингование с использованием IP протокола
+ -n/-R: Никогда не производить DNS разрешение/Всегда производить разрешение [по умолчанию: иногда]
+ --dns-servers <сервер1[,сервер2],...>: Задать собственные DNS сервера для разрешения доменных имён
+ --system-dns: Использовать системный DNS-преобразователь
+РАЗЛИЧНЫЕ ПРИЕМЫ СКАНИРОВАНИЯ:
+ -sS/sT/sA/sW/sM: TCP SYN/с использованием системного вызова Connect()/ACK/Window/Maimon сканирования
+ -sU: UDP сканирование
+ -sN/sF/sX: TCP Null, FIN и Xmas сканирования
+ --scanflags <флаги>: Задать собственные TCP флаги
+ -sI <зомби_хост[:порт]>: "Ленивое" (Idle) сканирование
+ -sO: Сканирование IP протокола
+ -b <FTP_хост>: FTP bounce сканирование
+ --traceroute: Трассировка пути к хосту
+ --reason: Выводить причину, почему Nmap установил порт в определенном состоянии
+ОПРЕДЕЛЕНИЕ ПОРТОВ И ПОРЯДКА СКАНИРОВАНИЯ:
+ -p <диапазон_портов>: Сканирование только определенных портов
+ Пример: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
+ -F: Быстрое сканирование - Сканирование ограниченного количества портов
+ -r: Сканировать порты последовательно - не использовать случайный порядок портов
+ --top-ports <количество_портов>: Сканировать <количество_портов> наиболее распространенных портов
+ --port-ratio <рейтинг>: Сканировать порты с рейтингом большим, чем <рейтинг>
+ОПРЕДЕЛЕНИЕ СЛУЖБ И ИХ ВЕРСИЙ:
+ -sV: Исследовать открытые порты для определения информации о службе/версии
+ --version-intensity <уровень>: Устанавливать от 0 (легкое) до 9 (пробовать все запросы)
+ --version-light: Ограничиться наиболее легкими запросами (интенсивность 2)
+ --version-all: Использовать каждый единичный запрос (интенсивность 9)
+ --version-trace: Выводить подробную информацию о процессе сканирования (для отладки)
+СКАНИРОВАНИЕ С ИПОЛЬЗОВАНИЕМ СКРИПТОВ:
+ -sC: эквивалентно опции --script=default
+ --script=<Lua скрипты>: <Lua скрипты> - это разделенный запятыми список директорий, файлов скриптов или
+ категорий скриптов
+ --script-args=<имя1=значение1,[имя2=значение2,...]>: Передача аргументов скриптам
+ --script-trace: Выводить все полученные и отправленные данные
+ --script-updatedb: Обновить базу данных скриптов
+ОПРЕДЕЛЕНИЕ ОС:
+ -O: Активировать функцию определения ОС
+ --osscan-limit: Использовать функцию определения ОС только для "перспективных" хостов
+ --osscan-guess: Угадать результаты определения ОС
+ОПЦИИ УПРАВЛЕНИЯ ВРЕМЕНЕМ И ПРОИЗВОДИТЕЛЬНОСТЬЮ:
+ Опции, принимающие аргумент <время>, задаются в миллисекундах, пока вы не добавите 's' (секунды), 'm' (минуты),
+ или 'h' (часы) к значению (напр. 30m).
+ -T[0-5]: Установить шаблон настроек управления временем (больше - быстрее)
+ --min-hostgroup/max-hostgroup <кол_хостов>: Установить размер групп для параллельного сканирования
+ --min-parallelism/max-parallelism <количество_запросов>: Регулирует распараллеливание запросов
+ --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <время>: Регулирует время ожидания ответа на запрос
+ --max-retries <количество_попыток>: Задает максимальное количество повторных передач запроса
+ --host-timeout <время>: Прекращает сканирование медленных целей
+ --scan-delay/--max-scan-delay <время>: Регулирует задержку между запросами
+ --min-rate <число>: Посылать запросы с интенсивностью не меньше чем <число> в секунду
+ --max-rate <число>: Посылать запросы с интенсивностью не больше чем <число> в секунду
+ОБХОД БРАНДМАУЭРОВ/IDS:
+ -f; --mtu <значение>: Фрагментировать пакеты (опционально с заданным значениме MTU)
+ -D <фикт_хост1,фикт_хост2[,ME],...>: Маскировка сканирования с помощью фиктивных хостов
+ -S <IP_адрес>: Изменить исходный адрес
+ -e <интерфейс>: Использовать конкретный интерфейс
+ -g/--source-port <номер_порта>: Использовать заданный номер порта
+ --data-length <число>: Добавить произвольные данные к посылаемым пакетам
+ --ip-options <опции>: Посылать пакет с заданным ip опциями
+ --ttl <значение>: Установить IP поле time-to-live (время жизни)
+ --spoof-mac <MAC_адрес/префикс/название производителя>: Задать собственный MAC адрес
+ --badsum: Посылать пакеты с фиктивными TCP/UDP контрольными суммами
+ВЫВОД РЕЗУЛЬТАТОВ:
+ -oN/-oX/-oS/-oG <файл>: Выводить результаты нормального, XML, s|<rIpt kIddi3,
+ и Grepable формата вывода, соответственно, в заданный файл
+ -oA <базовове_имя_файла>: Использовать сразу три основных формата вывода
+ -v: Увеличить уровень вербальности (задать дважды или более для увеличения эффекта)
+ -d[уровень]: Увеличить или установить уровень отладки (до 9)
+ --open: Показывать только открытые (или возможно открытые) порты
+ --packet-trace: Отслеживание принятых и переданных пакетов
+ --iflist: Вывести список интерфейсов и роутеров (для отладки)
+ --log-errors: Записывать ошибки/предупреждения в выходной файл нормального режима
+ --append-output: Добавлять выходные данные в конец, а не перезаписывать выходные файлы
+ --resume <имя_файла>: Продолжить прерванное сканирование
+ --stylesheet <путь/URL>: Устанавливает XSL таблицу стилей для преобразования XML вывода в HTML
+ --webxml: Загружает таблицу стилей с Nmap.Org
+ --no-stylesheet: Убрать объявление XSL таблицы стилей из XML
+РАЗЛИЧНЫЕ ОПЦИИ:
+ -6: Включить IPv6 сканирование
+ -A: Активировать функции определения ОС и версии, сканирование с использованием скриптов и трассировку
+ --datadir <имя_директории>: Определяет место расположения файлов Nmap
+ --send-eth/--send-ip: Использовать сырой уровень Ethernet/IP
+ --privileged: Подразумевать, что у пользователя есть все привилегии
+ --unprivileged: Подразумевать, что у пользователя нет привилегий для использования сырых сокетов
+ -V: Вывести номер версии
+ -h: Вывести эту страницу помощи
+ПРИМЕРЫ:
+ nmap -v -A scanme.nmap.org
+ nmap -v -sP 192.168.0.0/16 10.0.0.0/8
+ nmap -v -iR 10000 -PN -p 80
+ДЛЯ СПРАВКИ ПО ДРУГИМ ОПЦИЯМ, ОПИСАНИЙ И ПРИМЕРОВ СМОТРИТЕ MAN СТРАНИЦУ
+
+</literallayout>
+
+<indexterm class="endofrange" startref="nmap-usage-nmap-indexterm" significance="normal"/>
+<indexterm class="endofrange" startref="nmap-usage-indexterm" significance="normal"/>
+</para>
+
+ </refsect1>
+
+ <refsect1 id="man-target-specification">
+ <title>Определение цели сканирования</title>
+ <indexterm significance="normal"><primary>target specification</primary></indexterm>
+
+<para>В командной строке Nmap все, что не является опцией (или аргументом опции), рассматривается как цель
+сканирования. В простейшем случае для сканирования используется IP адрес или сетевое имя целевой машины.</para>
+
+<para>Иногда необходимо просканировать целую сеть. Для этого Nmap поддерживает CIDR адресацию. <indexterm significance="normal"><primary>CIDR (Classless Inter-Domain Routing)</primary></indexterm>
+Вы можете добавить
+/<replaceable>кол-во бит</replaceable> к IP адресу или сетевому имени и Nmap просканирует каждый IP адрес, для которого
+первые <replaceable>кол-во бит</replaceable> такие же как и у заданного хоста. Например, 192.168.10.0/24 просканирует
+256 хостов между 192.168.10.0 (бинарное: <literal moreinfo="none">11000000 10101000
+00001010 00000000</literal>) и 192.168.10.255 (бинарное: <literal moreinfo="none">11000000 10101000
+00001010 11111111</literal>) включительно.
+192.168.10.40/24 сделает абсолютно то же самое. Зная, что IP адрес scanme.nmap.org 64.13.134.52, при записи типа
+scanme.nmap.org/16 будет произведено сканирование 65,536 IP адресов между 64.13.0.0 и 64.13.255.255. Наименьшее
+допустимое значение /0, при котором будет просканирован весь Интернет. Наибольшее значение /32, при котором будет
+просканирован только заданный хост или IP адрес, т.к. все адресные биты заблокированы.</para>
+
+<indexterm significance="normal"><primary>address ranges</primary></indexterm>
+<para>CIDR нотация коротка, однако не всегда достаточно гибка. Например, вы хотите просканировать
+192.168.0.0/16, но пропустить все IP-адреса, оканчивающиеся на .0 или .255, т.к. обычно это широковещательные адреса.
+Nmap может осуществить такое сканирование путем задания диапазонов в октетах. Вместо определния обычного IP адреса, вы
+можете определить для каждого октета либо разделенный запятыми список чисел, либо диапазон. Например,
+192.168.0-255.1-254 пропустит все адреса в диапазоне оканчивающиеся на .0 и .255. Диапазоны не обязательно задавать
+только в последних октетах: при записи 0-255.0-255.13.37 будет произведено сканирование всех адресов в Интернете
+оканчивающихся на 13.37. Такой тип сканирования может быть полезен для исселедования просторов Интернета.</para>
+
+<para>IPv6 адреса могут быть определны только в форме, полностью соответствующей правильной форме записи IPv6 адресов.
+CIDR и использование диапазонов в октетах не применимо к IPv6 адресам, т.к. они редко используются.</para>
+
+<para>Вы можете передавать в командной строке Nmap различные варианты определения целей, не обязательно одного типа.
+Команда <command moreinfo="none">nmap
+scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255</command> сделает то, что вы ожидаете.</para>
+
+<para>Цели сканирования обычно задаются в командной строке, и существуют различные опции контроля выбора целей:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-iL <replaceable>имя_файла</replaceable></option> (Ввод из списка)
+ <indexterm significance="normal"><primary><option>-iL</option></primary></indexterm>
+ <indexterm significance="normal"><primary>target specification</primary><secondary>from list</secondary></indexterm>
+ </term>
+ <listitem>
+ <para>Считывает цели из <replaceable>имя_файла</replaceable>. Хотя передача большого списка хостов для
+ сканирования является обычным явлением, это не удобно. Например, ваш DHCP сервер передают вам список из
+ 10,000 используемых им на данный момент адресов, и вы хотите его просканировать. Или, возможно, вы хотите
+ просканировать все IP адреса, <emphasis>кроме</emphasis> переданных им, чтобы выявить несанкционированное
+ использование статических IP адресов. Просто сгенерируйте список хостов для сканирования и передайте
+ имя файла в Nmap как аргумент для опции<option>-iL</option>. Записи в файле могут находиться в любой
+ приемлимой для Nmap форме (IP адреса, сетевые имена, CIDR, IPv6, или диапазоны в октетах). Каждая запись
+ должна быть отделена пробелом или несколькими, символами табуляции либо символами перехода на новую строку.
+ Вы можете передать в качестве аргумента дефис(<literal moreinfo="none">-</literal>) как имя файла, если
+ хотите, чтобы Nmap считывал список хостов из стандартного ввода, а не из файла.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-iR <replaceable>кол-во хостов</replaceable></option> (Выбирает произвольные цели)
+ <indexterm significance="normal"><primary><option>-iR</option></primary></indexterm>
+ <indexterm significance="normal"><primary>random targets</primary></indexterm>
+ <indexterm significance="normal"><primary>target specification</primary><secondary>at random</secondary></indexterm>
+ </term>
+ <listitem>
+ <para>Для сканирования в пределах всего Интернета или каких-либо исследований, вам, возможно, понадобится
+ выбрать цели произвольно. Аргумент <replaceable>кол-во хостов</replaceable> определяет сколько необходимо
+ сгенерировать IP адресов. Неподходящие IP адреса, такие как частные, широковещательные или нелокализованные
+ диапазоны адресов автоматически пропускаются. Аргумент <literal moreinfo="none">0</literal> может быть
+ передан для бесконечного сканирования. Имейте в виду, что некоторым системным администраторам может не
+ понравиться неразрешенное сканирование их сетей и они могут пожаловаться. Используйте эту опцию на свой страх
+ и риск! Если в дождливый денек вам будет скучно, попробуйте команду
+ <command moreinfo="none">nmap -sS -PS80 -iR 0 -p 80</command>
+ <indexterm significance="normal"><primary><option>-sS</option></primary><secondary>example of</secondary></indexterm>
+ <indexterm significance="normal"><primary><option>-PS</option></primary><secondary>example of</secondary></indexterm>
+ <indexterm significance="normal"><primary><option>-iR</option></primary><secondary>example of</secondary></indexterm>
+ для сканирования произвольных веб-серверов.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--exclude
+ <replaceable>хост1</replaceable><optional>,<replaceable>хост2</replaceable><optional>,...</optional></optional></option> (Исключить хосты/сети)
+ <indexterm significance="preferred"><primary><option>--exclude</option></primary></indexterm>
+ <indexterm significance="normal"><primary>excluding targets</primary></indexterm>
+ </term>
+ <listitem>
+ <para>Определяет разделенный запятыми список целей, которые необходимо исключить из сканирования, даже если
+ они являются частью заданного вами диапазона сканирования. Передаваемый список использует стандартный
+ синтаксис Nmap, поэтому может содержать сетевые имена, CIDR адресацию, диапазоны в октетах и т.д. Эта
+ опция может быть полезна, если сеть, которую вы хотите просканировать, содержит сервера или системы,
+ негативно реагирующие на сканирование портов, или подсети, администрируемые другими людьми.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--excludefile <replaceable>имя_файла</replaceable></option> (Исключить список из файла)
+ <indexterm significance="preferred"><primary><option>--excludefile</option></primary></indexterm>
+ </term>
+ <listitem>
+ <para>Эта опция делает то же самое, что и <option>--exclude</option>, за исключением того, что цели для
+ исключения находятся в разделенном пробелами, символами табуляции или символами перехода на новую строку
+ <replaceable>файле</replaceable>, а не в командной строке.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-host-discovery">
+ <title>Обнаружение хостов</title>
+ <indexterm class="startofrange" id="man-host-discovery-indexterm" significance="normal"><primary>host discovery</primary></indexterm>
+
+ <para>Одна из первейших задач при исследовании любой сети это сократить (иногда довольно большой) набор IP диапазонов
+ до списка активных или интересных хостов. Сканирование каждого порта каждого IP адреса медленно и необязательно.
+ Конечно же то, что делает хост интересным для исселедования во многом определяется целями сканирования. Сетевые
+ администраторы возможно будут заинтересованы только в хостах, на которых запущена определенная служба, в то время
+ как тем, кого интересует безопасность, будут интересны все устройства с IP адресами. Задачи администраторов по
+ обнаружению работающих хостов в сети могут быть удовлетворены обычным ICMP пингом, людям же, которые тестируют
+ способность сети противостоять атакам из вне, необходимо использовать разнообразные наборы запросов с целью обхода
+ брандмауэра.</para>
+
+ <para>Посколько задачи, требующие обнаружения хостов столь различны, Nmap предоставляет большое разнообразие опций
+ для различных методов. Задачу обнаружения хостов иногда называют пинг сканированием (ping scan), однако она намного
+ превосходит использование обычных ICMP запросов ассоциирующихся с вездесущими
+ <application moreinfo="none">ping</application> утилитами. Пользователи могут полностью пропустить шаг пинг
+ сканирования с помощью опции сканирования с целью составления списка (<option>-sL</option>) или просто отключив его
+ (<option>-PN</option>), или сканировать сеть с помощью произвольных комбинаций мультипортовых TCP SYN/ACK, UDP и
+ ICMP запросов. Целью всех этих запросов является получение ответов, указывающих, что IP адрес в настоящее время
+ активен (используется хостом или сетевым устройством). В большинстве сетей лишь небольшой процент IP адресов
+ активен постоянно. Это особенно характерно для адресных пространств вида 10.0.0.0/8. Такие сети
+ имеют 16 млн. IP адресов, но я видел, как они используются компаниями, в которых не более тысячи машин. Функция
+ обнаружения хостов может найти эти машины в этом необъятном море IP адресов. </para>
+
+ <para>Если не задано никаких опций обнаружения хостов, то Nmap посылает TCP ACK пакет на порт 80 и запрос на ICMP
+ эхо ответ кажодй целевой машине. Исключение составляет ARP сканировании всех целей в сети. Для непривилегированных
+ пользователей Unix оболочки, вместо ACK пакета посылается SYN используя системный вызов
+ <function moreinfo="none">connect</function><indexterm significance="normal"><primary>unprivileged users</primary><secondary>limitations of</secondary></indexterm>
+ Эти умолчания равнозначны опциям <option>-PA -PE</option>. Такое сканирование достаточно для локальных сетей,
+ но для исследования безопасности необходимо использовать более сложные наборы запросов.
+ </para>
+
+ <para>Опции <option>-P*</option> (определяющие тип пинг сканирования) могут комбинироваться. Вы можете увеличить
+ шансы обхода строго брандмауэра посылая множество запросов различных типов, используя различные TCP порты/флаги и
+ ICMP коды. Также имейте в виду, что даже если вы определите различные <option>-P*</option> опции, по умолчанию
+ применительно к целям локальной сети будет производиться и ARP сканирование
+ (<option>-PR</option>)<indexterm significance="normal"><primary><option>-PR</option></primary></indexterm>, т.к.
+ оно почти всегда быстрее и более эффективно.</para>
+
+ <para>По умолчанию после обнаружения хостов Nmap начинает сканирование портов каждой активной машины. Так будет,
+ даже если вы укажите на использование нестандартных методов обнаружения хостов, например, с использованием
+ UDP запросов (<option>-PU</option>). Прочтите об опции <option>-sP</option>, чтобы узнать, как выполнить только
+ обнаружение хостов, или используйте опцию <option>-PN</option>, чтобы пропустить обнаружение хостов и осуществить
+ сканирование портов всех целевых машин. С помощью следующих опций можно настраивать функцию обнаружения хостов:
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ <option>-sL</option> (Сканирование с целью составления списка)
+ <indexterm significance="normal"><primary><option>-sL</option></primary></indexterm>
+ <indexterm significance="normal"><primary>list scan</primary></indexterm>
+ </term>
+ <listitem>
+ <para>Это тип сканирования является "упрощенной" версией функции обнаружения хостов, при помощи которого
+ просто будет создан список хостов заданной сети без посылки каких-либо пакетов целевым машинам. По умолчанию
+ Nmap все же будет осуществлять обратное разрешение DNS с целью узнавания имен хостов. Часто бывает
+ удивительно, как много полезной информации могут содержать обычные имена хостов. Например,
+ <literal moreinfo="none">fw.chi</literal> это имя брандмауэра одной Чикагской компании.
+ <indexterm significance="normal"><primary>DNS</primary><secondary>records as source of information</secondary></indexterm>
+ В конце Nmap также сообщает общее количество IP адресов. Этот тип сканирования также является хорошим способом
+ проверить, что вы действительно знаете IP адреса необходимых вам целей. Если имена хостов содержат неизвестные
+ вам доменные имена, то стоит провести дальнейшее исследование, чтобы избежать сканирования сети не той
+ компании, которая вам нужна.</para>
+
+ <para>Т.к. целью является просто составление списка целевых хостов, то опции с большим уровнем
+ функциональности, такие как сканирование портов, определение ОС или пинг сканирование не могут сочетаться с
+ рассматриваемой опцией. Если вы хотите отключить пинг сканирование, но хотите использовать опции с таким
+ высоким уровнем функциональности, то почитайте об опции <option>-PN</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sP</option> (Пинг сканирование)
+ <indexterm significance="normal"><primary><option>-sP</option></primary></indexterm>
+ <indexterm significance="normal"><primary>ping scan</primary></indexterm>
+ </term>
+ <listitem>
+ <para>Эта опция указывает Nmap произвести пинг сканирование (определение хостов), а затем вывести список
+ доступных хостов, т.е. тех, которые ответили на запросы. Определение маршрутов и NSE скрипты также
+ используются, если необходимо, однако дальнейшее тестирование (как сканирование портов или определение ОС)
+ не производится. По умолчанию эта опция считается как бы на один шаг более тщательной, чем сканирование
+ с целью составления простого списка хостов, и может быть использована в этих же целях. Она позволяет
+ произвести исследование целевой сети без привлечения внимания. Знание, какие хосты в сети в данный момент
+ работают, для атакующих ценне, чем просто список IP адресов и сетевых имен, предоставляемых
+ опцией -sL.</para>
+
+ <para>Эта опция также полезна системным администраторам. Она может быть использована для подсчета
+ количества работающих в сети машин или мониторинга доступности сервера. Это часто называют "пинг чисткой"
+ (ping sweep) и результаты, предоставляемые этой опцией, заслуживают больше доверия, чем обычное пингование
+ широковещательных адресов, т.к. большинство хостов не отвечают на подобные запросы.</para>
+
+ <para>По умолчанию опцией <option>-sP</option> посылаются запрос на ICMP это ответ и TCP ACK пакет на порт
+ 80. Когда используется непривилегированным пользователем, посылается только SYN пакет
+ (используя системные вызов <function moreinfo="none">connect</function>) на порт 80 целевой машины.
+ Когда привилегированный пользователь производит сканирование целей локальной сети, то используются ARP
+ запросы до тех пор, пока не будет задано <option>--send-ip</option>. Для большей гибкости опция
+ <option>-sP</option> может быть скомбинирована с любой из опций <option>-P*</option> (за исключением
+ <option>-PN</option>). Если используется какой-либо из этих типов запросов и опции для задания номеров
+ портов, то запросы по умолчанию (ACK и это ответы) опускаются. Когда между машиной с Nmap и целевой сетью
+ расположен строгий брандмауэр, то рекомедуется использование таких расширенных методов сканирования.
+ Иначе некоторые из хостов могут быть не определены, т.к. брандмауэр заблокировал запрос или ответ.</para>
+
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>
+ <option>-PN</option> (Не использовать пинг сканирование)
+ <indexterm significance="normal"><primary><option>-PN</option></primary></indexterm>
+ <indexterm significance="normal"><primary>host discovery</primary><secondary>disabling</secondary></indexterm>
+ </term>
+ <listitem>
+ <para>Указывает Nmap полностью пропустить этап обнаружения хостов. Обычно, Nmap использует этот этап для
+ обнаружения активных машин, к которым можно применить более углубленное сканирование. По умолчанию Nmap
+ производит углубленное сканирование, такое как сканирование портов, определение версии или определение ОС
+ только обнаруженных работающих хостов. После отключения этапа обнаружения хостов опцией <option>-PN</option>,
+ Nmap будет производить сканирование <emphasis>каждого</emphasis> заданого целевого IP адреса.
+ Так что, если для сканирования будет определена сеть с адресным пространством класса B (/16), то будет
+ произведено сканирование всех 65,536 IP адресов. Т.к. этап обнаружения хостов и составления списка целей
+ сканирования пропущен, то Nmap будет исполнять запрошенные функции, как если бы каждый IP адрес был активен.
+ Для машин локальной сети будет произведено ARP сканирование (пока не зададите <option>--send-ip</option>),
+ т.к. Nmap необходимы MAC адреса для дальнейшего сканирования целевых хостов. Раньше эта опция задавалась
+ флагом <option>P0</option> (используется нуль), но была переименова, чтобы избежать путаницы с
+ пингованием с использованием IP протокола <option>PO</option> (используется буква O).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-PS <replaceable>список_портов</replaceable></option> (TCP SYN пингование)
+ <indexterm significance="normal"><primary><option>-PS</option></primary></indexterm>
+ <indexterm significance="normal"><primary>SYN ping</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Эта опция посылает пустой TCP пакет с установленным SYN флагом. Порт по умолчанию - 80 (можно задать
+ во время компилирования изменяя <varname>DEFAULT_TCP_PROBE_PORT_SPEC</varname>
+ <indexterm significance="normal"><primary><varname>DEFAULT_TCP_PROBE_PORT_SPEC</varname></primary></indexterm>
+ в <filename moreinfo="none">nmap.h</filename>).
+ <indexterm significance="normal"><primary><filename moreinfo="none">nmap.h</filename></primary></indexterm>
+ Альтернативные порты задаются в качестве параметров. Синтаксис такой же как и для опции <option>-p</option>
+ за исключением того, что спецификаторы типа <literal moreinfo="none">T:</literal> недопустимы. Примеры:
+ <option>-PS22</option> и <option>-PS22-25,80,113,1050,35000</option>. Имейте в виду, что между списком
+ портов и <option>-PS</option> не должно быть пробела. Если заданы несколько запросов, то они будут посланы
+ параллельно.</para>
+
+ <para>Установленные флаг SYN указывает удаленной системе, что вы пытаетесь установить соединение. Если порт
+ назначения закрыт, то в ответ посылается RST (сброс) пакет. Если порт открыт, то удаленная система
+ предпримет второй шаг в 3-ех этапной последовательности установки TCP соединения путем ответа
+ <indexterm significance="normal"><primary>three-way handshake</primary></indexterm>
+ SYN/ACK TCP пакетом. Система, на которой работает Nmap, сбрасывает почти установленное соединение отвечая RST
+ пакетом вместо ACK, что привело бы к установке полного соединения. RST пакет посылается ядром системы, на
+ которой работает Nmap, в ответ на непредвиденный SYN/ACK пакет, а не самой Nmap.</para>
+
+ <para>Nmap не важно открыт порт или закрыт. Ответы пакетами RST или SYN/ACK описанными выше, указывают
+ Nmap на то, что хост доступен и может отвечать на запросы.</para>
+
+ <para>На Unix машинах, только пользователь с правами
+ <literal moreinfo="none">root</literal><indexterm significance="normal"><primary>privileged users</primary></indexterm>, как правило, может посылать и принимать сырые TCP пакеты.<indexterm significance="normal"><primary>raw packets</primary></indexterm>
+ Для непривилегированного пользователя<indexterm significance="normal">
+ <primary>unprivileged users</primary><secondary>limitations of</secondary></indexterm> для каждого целевого
+ порта инициируется системный вызов <function moreinfo="none">connect</function>. Поэтому при попытке
+ установить соединение на целевой хост посылается SYN пакет. Если на вызов
+ <function moreinfo="none">connect</function> приходит быстрый ответ или отказ типа ECONNREFUSED, значит
+ TCP стек получил SYN/ACK или RST пакет, и хост помечается как доступный. Если соединение не устанавливается
+ по причине истечения времени (timeout), то хост помечается как не работающий. Этот механизм также
+ используется для соединений с использованием протокола IPv6, т.к. построение сырых пакетов IPv6 еще не
+ реализовано в Nmap.<indexterm significance="normal"><primary>IPv6</primary><secondary>limitations of</secondary></indexterm>
+ </para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-PA <replaceable>список_портов</replaceable></option> (TCP ACK пингование)
+ <indexterm significance="normal"><primary><option>-PA</option></primary></indexterm>
+ <indexterm significance="normal"><primary>ACK ping</primary></indexterm>
+ </term>
+ <listitem>
+ <para>Этот тип пингования очень похож на описанный выше. Разница состоит в том, как вы могли догадаться, что
+ вместо установки SYN флага устанавливается TCP ACK флаг. Такой ACK пакет имеет своей целью распознавание
+ данных во время установленного TCP соединения, но такого соединения не существует, поэтому удаленные хосты
+ всегда будут отвечат на такой запрос RST пакетом, тем самым выдавая свое существование.</para>
+
+ <para>Опция <option>-PA</option> использует тот же порт по умолчанию, что и SYN запросы (80), и так же может
+ принимать в качестве параметра список портов в том же формате. Если эту опцию пытается использовать
+ непривилегированный пользователь или задана цель в формате IPv6, то используется механизм с использованием
+ вызова <function moreinfo="none">connect</function> описанный выше. Этот механизм несовершенен, т.к. при
+ использовании вызова <function moreinfo="none">connect</function> вместо ACK пакета посылается SYN.</para>
+
+ <para>Причина, по которой Nmap предоставляет оба типа пингования (SYN и ACK), состоит в повышении шансов
+ обхода брандмауэров. Многие администраторы конфигурируют роутеры или другие простые брандмауэры на блокировку
+ входящих SYN пакетов за исключением тех, что предназначены для публичных служб, таких как веб сайт или
+ почтовый сервер. Тем самым предотвращаются все остальные соединения, и в то же время пользователи могут
+ беспрепятственно выходить в Интернет. Такой подход не требует много ресурсов от брандмауэров/роутеров и
+ широко поддерживается различными аппаратными и программными фильтрами. <indexterm significance="normal"><primary>iptables</primary></indexterm>
+ для реализации такого подхода имеет опцию <option>--syn</option>. Когда брандмауэр использует такие правила,
+ то запросы с установленным флагом SYN (<option>-PS</option>), посланные на закрытые порты, с большой
+ вероятностью будут заблокированы. В таких случаях более выгодно использовать запросы с флагом ACK, т.к.
+ они не попадают под эти правила.</para>
+
+ <para>Другим популярным типом сетевого экрана является брандмауэр блокирующий все непредвиденные пакеты.
+ Изначально эта функция поддерживалась только в наиболее продвинутых брандмауэрах, хотя с годами она становится
+ все популярнее. Использующийся в Linux сетевой экран Netfilter/iptables реализует этот механизм с помощью
+ опции <option>--state</option>, которая категоризирует пакеты в зависимости от состояния соединения. Против
+ таких систем лучше использовать пакеты SYN, т.к. непредвиденные пакеты ACK с большой вероятностью будут
+ распознаны как фиктивные и заблокированы. Решение такого затруднительного положение состоит в том, чтобы
+ посылать и SYN и ACK запросы путем задания опций <option>-PS</option> и <option>-PA</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-PU <replaceable>список_портов</replaceable></option> (UDP пингование)
+ <indexterm significance="normal"><primary><option>-PU</option></primary></indexterm>
+ <indexterm significance="normal"><primary>UDP ping</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Еще одной функцией используемой для обнаружения хостов является UDP пингование, которая посылает пустой
+ (пока не задана опция <option>--data-length</option>) UDP пакет на данные порты. Список портов задается в том
+ же формает, что и для описанных выше опций <option>-PS</option> и <option>-PA</option>. Если порты не заданы,
+ то по умолчанию используется 31338. Порт по умолчанию может быть задан во время компиляции путем изменения
+ <varname>DEFAULT_UDP_PROBE_PORT_SPEC</varname><indexterm significance="normal"><primary>
+ <varname>DEFAULT_UDP_PROBE_PORT_SPEC</varname></primary></indexterm>
+ в <filename moreinfo="none">nmap.h</filename>.
+ <indexterm significance="normal"><primary><filename moreinfo="none">nmap.h</filename></primary></indexterm>
+ По умолчанию выбран не распростаненный порт, т.к. отправка запросов на открытые порты нежелательна для
+ этого типа сканирования.</para>
+
+ <para>Целью запроса UDP является получение в ответ ICMP пакета с ошибкой "порт недостижим". Это указывает
+ Nmap на то, что машина работает и доступна. Другие типы ICMP ошибок, такие как хост/сеть недоступна или
+ превышение TTL указывают на то, что машина выключена или недоступна. Отсутствие ответа интерпретируется
+ этим же путем. Если такой запрос посылается на открытый порт, то большинство служб просто игнорируют пустой
+ пакет и не посылают никакого ответа. Поэтому портом по умолчанию является 31338, т.к. он вряд ли будет
+ использоваться какой-либо службой. Лишь некоторые службы, такие как Character Generator (chargen) protocol,
+ ответят на пустой UDP пакет, и это также укажет Nmap на то, что машина доступна.</para>
+
+ <para>Основным преимуществом такого типа сканирования является то, что он позволяет обходить брандмауэры,
+ фильтрующие только TCP запросы. Например, однажды у меня был беспроводной широкополосный роутер
+ Linksys BEFW11S4. Внутренний интерфейс этого устройства фильтровал по умолчанию все TCP порты, в то время
+ как в ответ на UDP запросы посылалось сообщение об ошибке "порт недостижим", что делало его работу
+ бесполезной.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-PE</option>;
+ <option>-PP</option>;
+ <option>-PM</option> (Типы пинг пакетов ICMP)
+ <indexterm significance="normal"><primary><option>-PE</option></primary></indexterm>
+ <indexterm significance="normal"><primary><option>-PP</option></primary></indexterm>
+ <indexterm significance="normal"><primary><option>-PM</option></primary></indexterm>
+ <indexterm significance="normal"><primary>ICMP ping</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>В дополнении к нестандратным методам обнаружения хостов с помощью TCP и UDP запросов, Nmap может
+ посылать и стандартные пакеты, используемые вездесущей программой
+ <application moreinfo="none">ping</application>. Nmap посылает ICMP пакет типа 8 (эхо запрос) на целевой
+ IP адрес, ожидая в ответ от доступного хоста пакет типа 0 (эхо ответ).<indexterm significance="normal">
+ <primary>ICMP echo</primary></indexterm> К сожалению для сетевых исследователей, многие хосты и брандмауэры
+ теперь блокируют такие пакеты вместо того, чтобы ответить на них, как это требуется в
+ <ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC 1122</ulink>. По этой причине
+ сканеры использующе только ICMP запросы редко бывают полезны при сканировании неизвестных целей в Интернете.
+ Но они могут быть полезны системным администраторам, занимающимся мониторингом внутренней сети. Используйте
+ опцию <option>-PE</option>, чтобы активировать такой тип сканирования.</para>
+
+ <para>Но Nmap использует не только стандратный эхо запрос. В стандарте ICMP
+ (<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC 792</ulink>) также определены
+ запросы временной метки, информационные запросы и запросы адресной маски с кодами 13, 15 и 17 соответственно.
+ Хотя они служат для того, чтобы узнать какую-либо информацию, такую как адресную маску или текущее время, они
+ могут быть легко применены для обнаружения целей. Система, которая отвечает на них, работает и доступна. В
+ настоящее время Nmap не использует информационные запросы, т.к. они не получиил широкого распространения.
+ Стандарт RFC 1122 наставивает на том, что <quote>хост НЕ ДОЛЖЕН посылать такие сообщения</quote>. Запросы
+ временной метки или адресной маски могут быть посланы путем задания опций <option>-PP</option> и
+ <option>-PM</option> соответственно. Ответ на запрос временной метки (ICMP код 14) или на запрос адресной
+ маски (код 18) указывают на то, что хост доступен. Эти запросы могут быть полезны, когда администраторы
+ блокируют пакеты эхо запросов, но забывают о том, что другие типы ICMP запросов могут быть использованы в
+ тех же целях.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-PO <replaceable>список_протоколов</replaceable></option> (пингование с использованием IP протокола)
+ <indexterm significance="normal"><primary><option>-PO</option></primary></indexterm>
+ <indexterm significance="normal"><primary>IP protocol ping</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Новейшей опцией для обнаружения хостов является пингование с использованием IP протокола, которая
+ посылает IP пакеты с номером протокола, указанным в заголовке пакета. Список протоколов задается в том же
+ формате, что и список портов в описанных выше опциях обнаружения хостов с помощью протоколов TCP и UDP. Если
+ не указан ни один протокол, то по умолчанию будут использованы IP пакеты ICMP (протокол 1),
+ IGMP (протокол 2) и IP-in-IP (протокол 4). Протоколы по умолчанию могут быть заданы во время компиляции
+ путем изменения
+ <varname>DEFAULT_PROTO_PROBE_PORT_SPEC</varname><indexterm significance="normal">
+ <primary><varname>DEFAULT_PROTO_PROBE_PORT_SPEC</varname></primary></indexterm>
+ в <filename moreinfo="none">nmap.h</filename>.<indexterm significance="normal">
+ <primary><filename moreinfo="none">nmap.h</filename></primary></indexterm>
+ Имейте в виду, что для ICMP, IGMP, TCP (протокол 6) и UDP (протокол 17), пакеты посылаются с "правильными"
+ заголовками протокола, в то время как для остальных протоколов пакеты посылаются без дополнительной
+ информации после IP заголовка (пока не задана опция <option>--data-length</option>).</para>
+
+ <para>При использовании этого метода ожидаются ответы по протоколу исходного запроса, либо ICMP сообщение
+ о недостижимости, что свидетельствует о том, что данный протокол не поддерживается удаленным хостом. Оба
+ варианта ответа означают, что целевой хост доступен.</para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-PR</option> (ARP пингование)
+ <indexterm significance="normal"><primary><option>-PR</option></primary></indexterm>
+ <indexterm significance="normal"><primary>ARP ping</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Одной из наиболее популярных сфер применения Nmap является сканирование локальных сетей (LAN). В
+ большинстве локальных сетей, особенно тех, которые используют диапазоны частных адресов определенные в
+ <ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc1918.txt">RFC 1918</ulink>, большое количество
+ IP адересов не используется в любой момент времени. Когда Nmap пытается послать сырой IP пакет, такой как
+ ICMP эхо запрос, операционная система должна определить MAC-адрес (ARP) соответствующий целевому IP,
+ чтобы правильно адресовать фрейм. Это часто бывает медленно и проблематично, т.к. операционные системы
+ не были написаны с учетом того, что им придется посылать миллионы ARP запросов недоступным хостам в
+ короткий промежуток времени. </para>
+
+ <para>ARP сканирование позволяет Nmap вместо ARP запросов использовать свои собственные оптимизированные
+ алгоритмы. И если Nmap получает ответ, то ей даже нет необходимости беспокоиться о других типах обнаружения
+ хостов, основанных на IP пакетах. Этот делает ARP сканирование более быстрым и надежным. Поэтому оно
+ применяется по умолчанию для сканирования локальных сетей. Даже если указаны другие типы сканирования
+ (как <option>-PE</option> или <option>-PS</option>), Nmap все равно использует ARP сканирование для
+ машин локальной сети. Если вы абсолютно не хотите использовать такой тип сканирования, то задайте опцию
+ <option>--send-ip</option>.</para>
+
+ </listitem>
+ </varlistentry>
+
+<varlistentry>
+ <term>
+ <option>--traceroute</option> (Отслеживать путь к хосту)
+ <indexterm significance="preferred"><primary><option>--traceroute</option></primary></indexterm>
+ <indexterm significance="normal"><primary>traceroute</primary></indexterm>
+ </term>
+ <listitem>
+
+<para>
+Отслеживание осуществляется после сканирования, используя результаты этого сканирования для определения порта и
+протокола, с помощью которых можно будет достичь цели. Процедура работает со всеми типами сканирования кроме
+сканирования с использованием системного вызова connect (<option>-sT</option>) и "ленивого" (idle) сканирования
+(<option>-sI</option>). Все отслеживания используют динамическую модель таймингов Nmap и осуществляются параллельно.
+</para>
+
+<para>
+Процедура отслеживания маршрута работает путем посылки пакетов с низким TTL (time-to-live (временем-жизни) в попытке
+получить в ответ ICMP сообщение Time Exceeded (Превышение Времени Жизни) от промежуточных узлов между сканером и
+целевым хостом. Стандартные реализации процедуры отслеживания маршрута начинают с TTL равным 1, а затем увеличивают
+его до тех пор, пока не будет достигнут целевой хост. В реализации же этой процедуры в Nmap сначала устанавливается
+высокий TTL, а затем TTL уменьшается, пока не станет равным 0. Это позволяет Nmap использовать "умные" алгоритмы
+кэширования с целью увеличения скорости отслеживания маршрута. В среднем Nmap посылает 5-10 пакетов на хост, в
+зависимости от условий в сети. В случае сканирования единственной подсети (напр. 192.168.0.0/24), возможно будет
+необходимо послать только один пакет на каждый хост.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+ <term>
+ <option>--reason</option> (Показать причины состояний портов и хостов)
+ <indexterm significance="normal"><primary><option>--reason</option></primary></indexterm>
+ </term>
+ <listitem>
+
+<para>
+Показывает информацию о причинах, по которым каждый порт установлен в какое-либо состояние, и по которым каждый хост
+работает или нет. Эта опция выводит тип пакета, по которому было определено состояние порта или хоста. Например,
+<literal moreinfo="none">RST</literal> пакет от закрытого порта или эхо ответ от работающего хоста. Информация, которую
+может предоставить Nmap, определяется типом сканирования или пингования. SYN сканирование и SYN пингование
+(<option>-sS</option> и <option>-PS</option>) описываются очень детально, а информация о сканировании с использованием TCP соединений (<option>-sT</option>) ограничена реализацией системного вызова
+<function moreinfo="none">connect</function>. Эта функция автоматически активируется при использовании опции отладки
+(<option>-d</option>)<indexterm significance="normal"><primary><option>--reason</option></primary><secondary>implied by <option>-d</option></secondary></indexterm>,
+и результаты ее работы хранятся в XML файлах, даже если эта опция не была задана.</para>
+</listitem>
+</varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-n</option> (Не производить разрешение DNS имен)
+ <indexterm significance="normal"><primary><option>-n</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Указывает Nmap <emphasis>никогда</emphasis> не производить обратное разрешение DNS
+ <indexterm significance="normal"><primary>reverse DNS</primary><secondary>disabling with <option>-n</option>
+ </secondary></indexterm> имен каждого обнаруженного активного IP адереса. Преобразование DNS может быть
+ медленным даже со встроенным в Nmap параллельным преобразователем IP адресов, поэтому данная опция может
+ сократить время сканирования.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-R</option> (Производить разрешение DNS имен для всех целей)
+ <indexterm significance="normal"><primary><option>-R</option></primary></indexterm>
+ </term>
+ <listitem>
+ <para>Указыват Nmap <emphasis>всегда</emphasis> производить обратное разрешение DNS имен для каждого целевого
+ IP адреса. Обычно DNS преобразование применяется только к доступным хостам.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--system-dns</option> (Использовать системный DNS преобразователь)
+ <indexterm significance="preferred"><primary><option>--system-dns</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>По умолчанию Nmap преобразует IP адреса путем посылки запросов непосредственно серверам имен, указанным
+ в вашей системе, и последующим анализом ответов. Многие запросы (часто десятки) исполняются параллельно для
+ увеличения производительности. Задайте эту опцию, чтобы использовать ваш системный преобразователь IP адресов
+ (один IP адрес за один системный вызов <function moreinfo="none">getnameinfo</function>). Это медленно и
+ редко бывает полезно, до тех пор, пока вы не найдете ошибку в параллельном преобразователе Nmap (если найдете,
+ известите нас, пожалуйста). Системный преобразователь всегда используется для сканирования с использованием
+ протокола IPv6.
+ <indexterm significance="normal"><primary>IPv6</primary><secondary>limitations of</secondary></indexterm>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--dns-servers <replaceable>server1</replaceable><optional>,<replaceable>server2</replaceable><optional>,...</optional></optional>
+ </option> (Сервера для обратного разрешения DNS)
+ <indexterm significance="preferred"><primary><option>--dns-servers</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>По умолчанию Nmap определяет DNS сервера (для разрашения rDNS) из вашего resolv.conf файла (Unix) или
+ из реестра (Win32). Вы можете использовать эту опцию для задания альтернативных серверов. Эта опция
+ игнорируется, если вы используете <option>--system-dns</option> или сканирование по протоколу IPv6.
+ Использование нескольких DNS серверов частно увеличивает скорость сканирования, особенно если вы выбираете
+ официальные сервера для IP пространства вашей цели. Эта опция также может увеличить незаметность, т.к. ваши
+ запросы могут быть перенаправлены любым рекурсивным DNS сервером в Интернете.</para>
+
+ <para>Эта опция также бывает полезна при сканировании частных сетей. Иногда лишь некоторые сервера имен
+ предоставляют правильную rDNS информацию, и вы можете даже не знать, где они. Вы можете просканировать сеть
+ на наличие открытого порта 53 (возможно с помощью фукнкции определения версии), затем попробовать составить
+ список (<option>-sL</option>) указывая по очереди все сервера имен в опции <option>--dns-servers</option>
+ до тех пор, пока не найдете тот, который работает.</para>
+
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <indexterm class="endofrange" startref="man-host-discovery-indexterm" significance="normal"/>
+ </refsect1>
+
+ <refsect1 id="man-port-scanning-basics">
+ <title>Основы сканирования портов</title>
+
+ <para>Хотя Nmap постоянно наращивала функциональность,
+ изначально утилита разрабатывалась как эффективный сканер портов,
+ и она по-прежнему сохраняет свои основные функции. Простой командой <command moreinfo="none">nmap
+ <replaceable>цель сканирования</replaceable></command> будет произведено сканирование более чем
+ 1660 TCP портов на <replaceable>целевой машине</replaceable>. В то время как многие сканеры портов
+ традиционно разделяют все порты на закрытые и открытые, Nmap имеет более подробную шкалу деления.
+ Она подразделяет порты на шесть состояний: <literal moreinfo="none">открыт</literal>,
+ <literal moreinfo="none">закрыт</literal>, <literal moreinfo="none">фильтруется</literal>,
+ <literal moreinfo="none">не фильтурется</literal>,
+ <literal moreinfo="none">открыт|фильтруется</literal> или
+ <literal moreinfo="none">закрыт|фильтруется</literal>.</para>
+
+<para>Эти состояния не являются собственно характеристиками самих портов, а лишь описывают, как Nmap видит их.
+Например, сканирование из той же сети, что и цель, может показать, что порт
+<literal moreinfo="none">135/tcp</literal> открыт, в то время как сканирование из Интернета в то же время и с теми же
+опциями может показать, что порт <literal moreinfo="none">фильтруется</literal>.</para>
+
+<variablelist><title>Шесть состояний портов распознаваемых Nmap</title>
+
+ <varlistentry><term>
+ <indexterm significance="normal"><primary><literal moreinfo="none">open</literal> port state</primary></indexterm>
+ открыт (open)</term>
+ <listitem><para>Приложение принимает запросы на TCP соединение или UDP пакеты на этот порт.
+ Обнаружение этого состояния обычно является основной целью сканирования. Люди разбирающиеся в безопасности знают,
+ что каждый открытый порт это прямой путь к осуществлению атаки. Атакующие хотят использовать открытые порты, а
+ администраторы пытаются закрыть их или защитить с помощью брадмауэров так, чтобы не мешать работе обычных
+ пользователей. Октрытые порты также интересны с точки зрения сканирования, не связанного с безопасностью, т.к. они
+ позволяют определить службы доступные в сети.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term>
+ <indexterm significance="normal"><primary><literal moreinfo="none">closed</literal> port state</primary></indexterm>
+ закрыт (closed)</term>
+
+ <listitem><para>Закрытый порт доступен (он принимает и отвечает на запросы Nmap), но не используется каким-либо
+ приложением. Они могут быть полезны для установления, что по заданному IP адресу есть работающий хост (определение
+ хостов, ping сканирование), или для определения ОС. Т.к. эти порты достижимы, может быть полезным произвести
+ сканирование позже, т.к. некоторые из них могут открыться. Администраторы могут заблокировать такие порты с
+ помощью брандмауэров. Тогда их состояние будет определено как фильтруется, что обсуждается далее.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term>
+ <indexterm significance="normal"><primary><literal moreinfo="none">filtered</literal> port state</primary></indexterm>
+ фильтруется (filtered)</term>
+
+ <listitem><para>Nmap не может определить, открыт ли порт, т.к. фильтрация пакетов не позволяет достичь запросам
+ Nmap этого порта. Фильтрация может осуществляться выделенным брадмауэром, правилами роутера или брандмауэром на
+ целевой машине. Эти порты бесполезны для атакующих, т.к. предоставляют очень мало информации. Иногда они отвечают
+ ICMP сообщениями об ошибке, такими как тип 3 код 13 (destination unreachable: communication administratively
+ prohibited (цель назначения недоступна: связь запрещена администратором)), но чаще встречаются фильтры, которые
+ отбрасывают запросы без предоставления какой-либо информации. Это заставляет Nmap совершить еще несколько
+ запросов, чтобы убедиться, что запрос был отброшен фильтром, а не затором в сети. Это очень сильно замедляет
+ сканирование.</para></listitem></varlistentry>
+
+ <varlistentry><term>
+ <indexterm significance="normal"><primary><literal moreinfo="none">unfiltered</literal> port state</primary></indexterm>
+ не фильтруется (unfiltered)</term>
+ <listitem><para>Это состояние означает, что порт доступен, но Nmap не может определить открыт он или закрыт.
+ Только ACK сканирование, используемое для определения правил брандмауэра, может охарактеризовать порт этим состоянием.
+ Сканирование не фильтруемых портов другими способами, такими как Window сканирование, SYN сканирование или FIN
+ сканирование может помочь определить, является ли порт открытым.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term>
+ <indexterm significance="normal"><primary><literal moreinfo="none">open|filtered</literal> port state</primary></indexterm>
+ открыт|фильтруется (open|filtered)</term>
+ <listitem><para>Nmap характеризует порт таким состоянием, когда не может определить октрыт порт или фильтруется.
+ Это состояние возникает при таких типах сканирования, при которых открытые порты не отвечают. Отсутствие ответа
+ также может означать, что пакетный фильтр не пропустил запрос или ответ не был получен. Поэтому Nmap не может
+ определить наверняка открыт порт или фильтруется. При сканировании UDP, по IP протоколу, FIN, NULL, а также Xmas
+ порт может быть охарактеризован таким состоянием.</para></listitem></varlistentry>
+
+ <varlistentry><term>
+ <indexterm significance="normal"><primary><literal moreinfo="none">closed|filtered</literal> port state</primary></indexterm>
+ закрыт|фильтруется (closed|filtered)</term>
+ <listitem><para>Это состояние используется, когда Nmap не может определить закрыт порт или фильтруется.
+ Используется только при сканировании IP ID idle типа.</para></listitem></varlistentry>
+ </variablelist>
+</refsect1>
+
+<refsect1 id="man-port-scanning-techniques">
+ <title>Различные приемы сканирования портов</title>
+
+<para>Как новичок в автомобильном деле, я могу часами биться в попытках использовать свои элементарные инструменты
+(молоток, клейкая лента, гаечный ключ и т.д.) для решения какой-либо проблемы. Когда все мои попытки с крахом
+проваливаются, и я буксирую свою развалюху к настоящему механику, он неизменно достает из большой коробки с интрументами
+какую-нибудь штуковину, и сразу складывается впечатление, что решение проблемы не требует много усилий. Искусство
+сканирования портов очень на это похоже. Эксперты понимают дюжины различных приемов сканирования портов и выбирают для конкретной задачи подходящий (или комбинацию из нескольких). Неопытные пользователи и script kiddies,
+<indexterm significance="normal"><primary>script kiddies</primary></indexterm>
+пытаются решить все задачи с помощью используемого по умолчанию SYN сканирования. Т.к. Nmap является бесплатной, то
+единственным барьером на пути к овладению техникой сканирования портов является знание. Это все же лучше чем в мире
+автомобилей, где, когда вам наконец-то удается определить, что вам необходимо какое-либо устройство, вам еще надо
+будет заплатить за него тысячу долларов.</para>
+
+<para>Большинство типов сканирования доступны только привилегированным пользователям,
+<indexterm significance="normal"><primary>privileged users</primary></indexterm>
+потому что посылаются и принимаются сырые пакеты,
+<indexterm significance="normal"><primary>raw packets</primary></indexterm>
+что требует прав пользователя root на Unix системах. Под Windows рекомендуется работать с учетной записью
+администратора, хотя иногда Nmap работает и с непривилегированными пользователя, когда в ОС уже загружена утилита
+WinPcap. Требование root привилегий было серьезным ограничением, когда Nmap была выпущена в свет в 1997, т.к. многие
+пользователи имели доступ только к разделяемым аккаунтам. Сейчас мир изменился. Компьютеры стали дешевле, многие
+пользователи имеют постоянный доступ в Интернет, а Unix системы для домашних компьютеров (включая Linux и Mac OS X)
+теперь широко распространены. Также теперь доступна Windows версия Nmap, что позволяет запускать ее на еще большем
+количестве компьютеров. По этим причинам, пользователям нет необходимости запускать Nmap с разделяемых аккаунтов.
+Это большая удача, т.к. функции требующие привилегированного доступа делают Nmap намного более мощной и гибкой.</para>
+
+<para>Когда Nmap предпринимает попытку выдать правильные результаты, надо иметь ввиду, что вся информация базируется
+на пакетах, возвращенных целевыми машинами (или брандмауэром перед ними). Такие хосты могут быть ненадежными и
+посылать ответы с целью ввести Nmap в забдуждение. Намного более распространным случаем являются не совместимые с
+RFC хосты, которые отвечают на запросы Nmap не так, как должны. Сканирования типа FIN, NULL и Xmas наиболее
+восприимчивы к такого рода проблемам. Такие сложности специфичны только для определенных типов сканирования, и поэтому
+обсуждаются в посвященных им разделах.</para>
+
+<para>В этом разделе описываются около дюжины способов сканирования портов поддерживаемых Nmap. В любой момент времени
+вы можете использовать только один метод; исключение составляет UDP сканирование (<option>-sU</option>), которое может
+быть скомбинировано с любым типом TCP сканирования. В качестве памятки имейте ввиду, что различные опции сканирования
+портов задаются в форме <option>-s<replaceable>C</replaceable></option>, где <replaceable>C</replaceable> это символ
+из названия какого-либо типа сканирования, обычно первый. Единственное исключение это FTP bounce сканирование
+(<option>-b</option>). По умолчанию Nmap осуществляет SYN сканирование; этот тип сканирования заменяет сканирование с
+использованием соединения для пользователей не имеющих достаточных привилегий для отправки сырых пакетов (требует
+root доступа в Unix), или если были заданы цели в формате IPv6. Среди описанных ниже типов сканирования,
+непривилегированные пользователи могут осуществлять только сканирование с использованием соединения и FTP bounce
+сканирование.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-sS</option> (TCP SYN сканирование)
+ <indexterm significance="normal"><primary><option>-sS</option></primary></indexterm>
+ <indexterm significance="normal"><primary>SYN scan</primary></indexterm>
+ </term>
+ <listitem>
+
+<para>SYN это используемый по умолчанию и наиболее популярный тип сканирования. На то есть несколько причин. Он может
+быть быстро запущен, он способен сканировать тысячи портов в секунду при быстром соединении, его работе не препятствуют
+ограничивающие бранмауэры. Этот тип сканирования относительно ненавящив и незаметен, т.к. при таком сканировании TCP
+соединение никогда не устанавливается до конца. Он работает с любым TCP стеком, не завися от каки-либо особенностей
+специфичной платформы, как это происходит при сканированиях типа FIN/NULL/Xmas, Maimon и idle сканировании. Он также
+предоставляет ясную и достоверную дифференциацию между состояниями <literal moreinfo="none">открыт</literal>,
+<literal moreinfo="none">закрыт</literal> и <literal moreinfo="none">фильтруется</literal>.</para>
+
+<para>Эту технику часто называют сканированием с использованием полуотрытых соединений, т.к. вы не открываете
+полного TCP соединения. Вы посылаете SYN пакет, как если бы вы хотели установить реальное соединение и ждете. Ответы
+SYN/ACK указывают на то, что порт прослушивается (открыт), а RST (сброс) на то, что не прослушивается. Если после
+нескольких запросов не приходит никакого ответа, то порт помечается как фильтруемый. Порт также помечается как
+фильтруемый, если в ответ приходит ICMP сообщение об ошибке недостижимости (тип 3, код 1,2, 3, 9, 10 или 13).</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sT</option> (TCP сканирование с использованием системного вызова connect)
+ <indexterm significance="normal"><primary><option>-sT</option></primary></indexterm>
+ <indexterm significance="normal"><primary>connect scan</primary></indexterm>
+ </term>
+ <listitem>
+<para>Это используемый по умолчанию тип TCP сканирования, когда недоступно SYN сканирование. Это происходит в случае,
+когда у пользователя нет привилегий для использования сырых пакетов или при сканировании IPv6 сетей. Вместо того,
+чтобы использовать сырые пакеты, как это происходит при большинстве других типов сканирования, Nmap "просит"
+операционную систему установить соединение с целевой машиной по указанному порту путем системного вызова
+<function moreinfo="none">connect</function>. Это такой же высокоуровневый системный вызов, используемый браузерами,
+P2P клиентами и другими приложениями для установки соединения. Этот вызов является частью программируемого интерфейса,
+известного как Berkeley Sockets API. Вместо того, чтобы считывать ответы в форме сырых пакетов, Nmap использует этот
+API для получения информации о статусе каждой попытки соединения.</para>
+
+<para>При доступности SYN сканирования, оно, безусловно, будет являться лучшм выбором. У Nmap имеется меньше
+возможностей контролирования высокоуровнего вызова <function moreinfo="none">connect</function> по сравнению с
+сырыми пакетами, что делает его менее эффективным. Системный вызов завершает соединения по открытым портам, вместо
+того, чтобы использовать полуоткрытые соединения, как в случае с SYN сканированием. Таким образом на получение
+той же самой информации потребуется больше времени и пакетов, да к тому же целевые машины скорее всего запишут это
+соединение в свои логи. То же самое сделает и порядочная IDS, хотя большинство машин не имеют такой системы защиты.
+Многие службы на вашей Unix системе будут добавлять запись в системный лог (syslog), а также сообщение об ошибке,
+когда Nmap будет устанавливать и закрывать соединение без отправления данных. Некоторые службы даже аварийно завершают
+свою работу, когда это происходит, хотя это не является обычной ситуацией. Администратор, который увидит в логах
+группу записей о попытке установки соединения от одной и той же системы, должен знать, что его машина подверглась
+такому типу сканирования.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sU</option> (Различные типы UDP сканирования)
+<indexterm significance="normal"><primary><option>-sU</option></primary></indexterm>
+<indexterm significance="normal"><primary>UDP scan</primary></indexterm>
+</term>
+ <listitem>
+
+<para>В то время как большинство сервисов Интернета используют TCP протокол,
+<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> службы также широко распространены.
+Тремя наиболее популярными являются DNS, SNMP и DHCP (используют порты 53, 161/162 и 67/68). Т.к. UDP сканирование
+в общем случае медленнее и сложнее TCP, то многие специалисты по безопасности игнорируют эти порты. Это является
+ошибкой, т.к. существуют UDP службы, которые используются атакующими. К счастью, Nmap позволяет инвентаризировать UDP
+порты.</para>
+
+<para>UDP сканирование запускается опцией <option>-sU</option>. Оно может быть скомбинировано с каким-либо типом TCP
+сканирования, например SYN сканирование (<option>-sS</option>), чтобы использовать оба протокола за один проход.</para>
+
+<para>UDP сканирование работает путем посылки пустого (без данных) UDP заголовка на каждый целевой порт. Если в ответ
+приходит ICMP ошибка о недостижимости порта (тип 3, код 3), значит порт <literal moreinfo="none">закрыт</literal>.
+Другие ICMP ошибки недостижимости (тип 3, коды 1, 2, 9, 10 или 13) указывают на то, что порт
+<literal moreinfo="none">фильтруется</literal>. Иногда, служба будет отвечать UDP пакетом, указывая на то, что порт
+<literal moreinfo="none">открыт</literal>. Если после нескольких попыток не было получено никакого ответа, то порт
+классифицируется как <literal moreinfo="none">открыт|фильтруется</literal>. Это означает, что порт может быть открыт,
+или, возможно, пакетный фильтр блокирует его. Функция определения версии (<option>-sV</option>) может быть полезна
+для дифференциации действительно открытых портов и фильтруемых.</para>
+
+<para>Большой проблемой при UDP сканировании является его медленная скорость работы. Открытые и фильтруемые порты редко
+посылают какие-либо ответы, заставляя Nmap отправлять повторные запросы, на случай если пакеты были утеряны. Закрытые
+порты часто оказываются еще большей проблемой. Обычно они в ответ возвращают ICMP ошибку о недостижимости порта. Но в
+отличии от RST пакетов отсылаемых закрытыми TCP портами в ответ на SYN или сканирование с установкой соединения, многие
+хосты ограничивают лимит <indexterm significance="normal"><primary>rate limiting</primary></indexterm>
+ICMP сообщений о недостижимости порта по умолчанию. Linux и Solaris особенно строги в этом плане. Например, ядро
+Linux 2.4.20 огранивает количество таких сообщений до одного в секунду (в
+<filename moreinfo="none">net/ipv4/icmp.c</filename>).</para>
+
+<para>Nmap обнаруживает такого рода ограничения и соответственно сокращает количество запросов, чтобы не забивать
+сеть бесполезными пакетами, которые все равно будут отброшены целевой машиной. К сожалению, при ограничении в стиле
+Linux (один пакет в секунду) сканирование 65,536 портов займет более 18 часов. К способам увеличения скорости UDP
+сканирования относятся: параллельное сканирование нескольких хостов, сканирование в первую очередь только наиболее
+популярных портов, сканирование из-за брандмауэра и использование <option>--host-timeout</option> дял пропуска
+медленных хостов.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (TCP NULL, FIN и Xmas сканирования)
+<indexterm significance="normal"><primary><option>-sN</option></primary></indexterm>
+<indexterm significance="normal"><primary><option>-sF</option></primary></indexterm>
+<indexterm significance="normal"><primary><option>-sX</option></primary></indexterm>
+<indexterm significance="normal"><primary>NULL scan</primary></indexterm>
+<indexterm significance="normal"><primary>FIN scan</primary></indexterm>
+<indexterm significance="normal"><primary>Xmas scan</primary></indexterm>
+</term>
+ <listitem>
+
+<para>Эти три типа сканирования используют (другие типы сканирования доступны с использованием опции
+<option>--scanflags</option> описанной в другой секции)
+незаметную лазейку в <ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP RFC</ulink>, чтобы
+разделять порты на <literal moreinfo="none">открытые</literal> и <literal moreinfo="none">закрытые</literal>. На
+странице 65 RFC 793 говорится, что <quote>если порт назначения ЗАКРЫТ .... входящий сегмент не содержащий RST повлечет
+за собой отправку RST в ответ.</quote> На следующей странице, где обсуждается отправка пакетов без установленных
+битов SYN, RST или ACK, утверждается что: <quote>вы вряд ли с этим столкнетесь, но если столкнетесь, то сбросьте
+сегменти и вернитесь к исходному состоянию.</quote></para>
+
+<para>Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или
+ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт
+открыт. Т.к. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться
+правильной. Nmap использует это в трех типах сканирования:</para>
+
+<variablelist>
+ <varlistentry><term>Null сканирование (<option>-sN</option>)</term>
+ <listitem><para>Не устанавливаются никакие биты (Флагов в TCP заголовоке 0)</para></listitem></varlistentry>
+
+ <varlistentry><term>FIN сканирование (<option>-sF</option>)</term>
+ <listitem><para>Устанавливается только TCP FIN бит.</para></listitem></varlistentry>
+
+ <varlistentry><term>Xmas сканирование (<option>-sX</option>)</term>
+ <listitem><para>Устанавливаются FIN, PSH и URG флаги.</para></listitem></varlistentry>
+</variablelist>
+
+<para>Эти три типа сканирования работают по одной схеме, различия только в TCP флагах установленных в пакетах запросов.
+Если в ответ приходит RST пакет, то порт считается <literal moreinfo="none">закрытым</literal>, отсутствие ответа
+означает, что порт <literal moreinfo="none">открыт|фильтруется</literal>. Порт помечается как
+<literal moreinfo="none">фильтруется</literal>, если в ответ приходит ICMP ошибка о недостижимости (тип 3, код
+1, 2, 3, 9, 10 или 13).</para>
+
+<para>Ключевой особенностью этих типов сканирования является их способность незаметно обойти некоторые не учитывающие
+состояние (non-stateful) брандмауэры и роутеры с функцией пакетной фильтрации. Еще одним преимуществом является то, что
+они даже чуть более незаметны, чем SYN сканирование. Все же не надо на это полагаться - большинство современных IDS
+могут быть сконфигурированы на их обнаружение. Большим недостатком является то, что не все системы следуют RFC 793
+дословно. Некоторые системы посылают RST ответы на запросы не зависимо от того, открыт порт или закрыт. Это приводит
+к тому, что все порты помечаются как <literal moreinfo="none">закрытые</literal>. Основными системами ведущими себя
+подобным образом являются Microsoft Windows, многие устройства Cisco, BSDI и IBM OS/400. Хотя такое сканирование
+применимо к большинству систем, основанных на Unix. Еще одним недостатком этих видов сканирования является их
+неспособность разделять порты на <literal moreinfo="none">открытые</literal> и
+<literal moreinfo="none">фильтруемые</literal>, т.к. порт помечается как
+<literal moreinfo="none">открыт|фильтруется</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sA</option> (TCP ACK сканирование)
+ <indexterm significance="normal"><primary><option>-sA</option></primary></indexterm>
+ <indexterm significance="normal"><primary>ACK scan</primary></indexterm>
+ </term>
+ <listitem>
+
+<para>Этот тип сканирования сильно отличается от всех других тем, что он не способен определить открый порт
+<literal moreinfo="none">open</literal> (или даже <literal moreinfo="none">открытый|фильтруемый</literal>). Он
+используются для выявления правил брандмауэров, определения учитывают ли он состояние или нет, а также для определения
+фильтруемых ими портов.</para>
+
+<para>Пакет запроса при таком типе сканирования содержит установленным только ACK флаг (если не используется
+<option>--scanflags</option>). При сканировании нефильтруемых систем,
+<literal moreinfo="none">открытые</literal> и <literal moreinfo="none">закрытые</literal> порты оба будут возвращать
+в ответ RST пакет. Nmap помечает их как <literal moreinfo="none">не фильтруемые</literal>, имея ввиду, что они
+достижимы для ACK пакетов, но неизвестно <literal moreinfo="none">открыты</literal> они или
+<literal moreinfo="none">закрыты</literal>. Порты, которые не отвечают или посылают в ответ ICMP сообщение об ошибке
+(тип 3, код 1, 2, 3, 9, 10 или 13), помечаются как <literal moreinfo="none">фильтруемые</literal>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sW</option> (TCP Window сканирование)
+<indexterm significance="normal"><primary><option>-sW</option></primary></indexterm>
+<indexterm significance="normal"><primary>window scan</primary></indexterm>
+</term>
+ <listitem>
+
+<para>Этот тип сканирования практически то же самое, что и ACK сканирование, за исключением того, что он использует
+особенности реализации различных систем для разделения портов на открытые и закрытые, вместо того, чтобы всегда при
+получении RST пакета выводить <literal moreinfo="none">не фильтруется</literal>. Это осуществляется путем анализа
+TCP Window поля полученного в ответ RST пакета. В некоторых системах открытые порты используют положительное значение
+этого поля (даже в RST пакетах), а закрытые - нулевое. Поэтому вместо того, что все время при получении RST пакета в
+ответ помечать порты как <literal moreinfo="none">не фильтруемые</literal>, при Window сканировании порты помечаются
+как <literal moreinfo="none">открытые</literal> или <literal moreinfo="none">закрытые</literal>, если значение поля
+TCP Window положительно или равно нулю соответственно.</para>
+
+<para>Этот тип сканирования основывается на особенностях реализации меньшинства систем в Интернете, поэтому вы не
+можете все время доверять ему. В общем случае в системах, не имеющих таких особенностей, все порты будут помечаться
+как <literal moreinfo="none">закрытые</literal>. Конечно, это возможно, что у машины действительно нет открытых портов.
+Если большинство просканированных портов <literal moreinfo="none">закрыты</literal>, и лишь несколько распространненых
+портов (таких как 22, 25, 53) <literal moreinfo="none">фильтруются</literal>, то скорее всего результатам сканирования
+можно доверять. Иногда, системы будут вести себя прямо противоположным образом. Если в результате сканирования будет
+найдено 1000 открытых портов и 3 закрытых или фильтруемых, то как раз эти 3 могут оказаться действительно открытыми.
+</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sM</option> (TCP сканирование Мэймона (Maimon))
+<indexterm significance="normal"><primary><option>-sM</option></primary></indexterm>
+<indexterm significance="normal"><primary>Maimon scan</primary></indexterm>
+</term>
+ <listitem>
+
+<para>Этот тип сканирования носит имя своего первооткрывателя, Уриела Мэймона (Uriel Maimon).
+<indexterm significance="normal"><primary>Maimon, Uriel</primary></indexterm>
+Он описал эту технику в журнале <citetitle>Phrack</citetitle> Magazine, выпуск #49 (Ноябрь 1996).
+<indexterm significance="normal"><primary><citetitle>Phrack</citetitle></primary></indexterm>
+Версия Nmap с поддержкой этого типа сканирования была выпущена через два номера. Техника практически такая же как и
+при NULL, FIN и Xmas сканированиях, только в качестве запросов используются запросы FIN/ACK. Согласно
+<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC 793</ulink> (TCP), в ответ на такой запрос
+должен быть сгенерирован RST пакет, если порт открыт или закрыт. Тем не менее, Уриел заметил, что многие BSD системы
+просто отбрасывают пакет, если порт открыт.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--scanflags</option> (Заказное TCP сканирование)
+ <indexterm significance="normal"><primary><option>--scanflags</option></primary></indexterm></term>
+ <listitem>
+
+
+<para>Действительно продвинутым пользователям Nmap не нужды ограничивать себя заранее приготовленными типами
+сканирования. С помощью опции <option>--scanflags</option> вы можете разработать свой тип сканирования путем задания
+специфичных TCP флагов.<indexterm significance="normal"><primary>TCP flags</primary></indexterm>
+Используйте свое воображение, обходя системы обнаружения вторжений, чьи производители просто просмотрели справочное
+руководство Nmap, путем задания собственных правил!<indexterm significance="normal"><primary>intrusion detection systems</primary><secondary>evading</secondary></indexterm></para>
+
+<para>Аргументом опции <option>--scanflags</option> может быть числовое значение, например, 9 (PSH и FIN флаги), но
+использование символьных имен намного проще. Используйте любые комбинации <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> и
+<literal moreinfo="none">FIN</literal>. Например, опцией <option>--scanflags
+URGACKPSHRSTSYNFIN</option> будут установлены все флаги, хотя это и не очень полезно для сканирования. Порядок задания
+флагов не имеет значения.</para>
+
+<para>В добавлении к заданию желаемых флагов, вы также можете задать тип TCP сканирования (например,
+<option>-sA</option> или <option>-sF</option>). Это укажет Nmap на то, как необходимо интерпретировать ответы.
+Например, при SYN сканировании отсутствие ответа указывает на <literal moreinfo="none">фильтруемый</literal> порт,
+тогда как при FIN сканировании - на <literal moreinfo="none">открытый|фильтруемый</literal>. Nmap будет осуществлять
+заданный тип сканирования, но используя указанные вами TCP флаги вместо стандартных. Если вы не указываете тип
+сканирования, то по умолчанию будет использоваться SYN.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sI <replaceable>зомби_хост</replaceable><optional>:<replaceable>порт</replaceable></optional></option> ("ленивое" idle сканирование)
+ <indexterm significance="normal"><primary><option>-sI</option></primary></indexterm>
+ <indexterm significance="normal"><primary>idle scan</primary></indexterm>
+ </term>
+
+ <listitem>
+
+ <para>Этот продвинутый метод сканирования позволяет осуществить действительно незаметное TCP сканирование
+ портов цели (имеется ввиду, что никакие пакеты не отсылаются на целевую машину с вашего реального IP адерса).
+ Вместо этого, на зомби машине используется предсказуемая последовательность генерации ID IP фрагментов для
+ сбора информации об открытых портах цели. Системы IDS будут считать, что сканирование производится с
+ заданной вами зомби машины (которая должна работать и удовлетворять определенным критериям). <man>
+ Этот тип сканирования слишком сложен для описания в этом справочном руководстве, поэтому я написал и выложил
+ подробное описание на <ulink url="https://nmap.org/book/idlescan.html"/>.</man>
+ <notman>
+ Подробное описание этого типа сканирования смотрите на <xref linkend="idlescan"/>.
+ </notman>
+ </para>
+
+ <para>Помимо его незаметности (в силу своей природы), этот тип сканирования также позволяет определять
+ основанные на IP доверительные отношения между машинами. Список открытых портов показывает открытые порты
+ <emphasis>с точки зрения зомби машины.</emphasis> Поэтому вы можете попробовать просканировать цель
+ используя различные зомби машины, которым, вы считаете, возможно будут доверять
+ <indexterm significance="normal"><primary>trust relationships</primary></indexterm>
+ (посредством правил роутера/пакетного фильтра).
+ </para>
+
+ <para>Вы можете добавить номер порта после двоеточия к зомби хосту, если хотите использовать конкретный
+ порт. По умолчанию будет использоваться порт 80.</para>
+
+ <para>Порты также могут быть заданы именами, которым они соответствуют в файле
+ <filename moreinfo="none">nmap-services</filename>. Вы даже можете использовать шаблоны * и ? в именах.
+ Например, чтобы просканировать ftp и все порты начинающиеся с http используйте <option>-p ftp,http*</option>.
+ В таких случаях лучше брать аргументы -p в кавычки.</para>
+
+ <para>Диапазоны портов заключаются в квадратные скобки; будут просканированы порты из этого диапазона,
+ встречающиеся в <filename moreinfo="none">nmap-services</filename>.
+ Например, с помощью следующей опции будут просканированы все порты из
+ <filename moreinfo="none">nmap-services</filename> равные или меньше 1024: <option>-p [-1024]</option>.
+ В таких случаях лучше брать аргументы -p в кавычки.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sO</option> (Сканирование IP протокола)
+ <indexterm significance="normal"><primary><option>-sO</option></primary></indexterm>
+ <indexterm significance="normal"><primary>IP protocol scan</primary></indexterm>
+ </term>
+ <listitem>
+
+<para>Сканирование такого типа позволяет определить, какие IP протоколы (TCP, ICMP, IGMP и т.д.) поддерживаются
+целевыми машинами. Технически такое сканирование не является разновидностью сканирования портов, т.к. при нем
+циклически перебираются номера IP протоколов вместо номеров TCP или UDP портов. Хотя здесь все же используется опция
+<option>-p</option> для выбора номеров протоколов для сканирования, результаты выдаются в формате таблицы портов, и
+даже используется тот же механизм сканирования, что и при различных вариантах сканирования портов. Поэтому он
+достаточно близок к сканированию портов и описывается здесь.</para>
+
+<para>Помимо полезности непосредственно в своей сфере применения, этот тип сканирования также демонстрирует всю мощь
+открытого программного обеспечения (open-source software). Хотя основная идея довольна проста, я никогда не думал
+включить такую функцию в Nmap, и не получал запросов на это. Затем, летом 2000-го, Джерард Риджер (Gerhard Rieger)
+<indexterm significance="normal"><primary>Rieger, Gerhard</primary></indexterm>
+развил эту идею, написал превосходный патч воплощающий ее и отослал его на
+<citetitle>nmap-hackers</citetitle> рассылку.<indexterm significance="normal"><primary><citetitle>nmap-hackers</citetitle> mailing list</primary></indexterm>
+Я включил этот патч в Nmap и на следующий день выпустил новую версию. Лишь единицы комерческого программного обеспечения
+могут похвастаться пользователями, достаточно полными энтузиазма для разработки и предоставления своих улучшений!</para>
+
+<para>Способ работы этого типа сканирования очень похож на реализованный в UDP сканировании. Вместо того, чтобы
+изменять в UDP пакете поле, содержащее номер порта, отсылаются заголовки IP пакета, и изменяется 8 битное поле IP
+протокола. Заголовки обычно пустые, не содержащие никаких данных и даже правильного заголовка для требуемого протокола.
+Исключениями явлются TCP, UDP и ICMP. Включение правильного заголовка для этих протоколов необходимо, т.к. в обратном
+случае некоторые системы не будут их отсылать, да и у Nmap есть все необходимые функции для их создания. Вместо того,
+чтобы ожидать в ответ ICMP сообщение о недостижимости порта, этот тип сканирования ожидает ICMP сообщение о
+недостижимости <emphasis>протокола</emphasis>. Если Nmap получает любой ответ по любому протоколу, то протокол
+помечается как <literal moreinfo="none">открытый</literal>. ICMP ошибка о неостижимости протокола (тип 3, код 2)
+помечает протокол как <literal moreinfo="none">закрытый</literal>. Другие ICMP ошибки недостижимости (тип 3, код
+1, 3, 9, 10 или 13) помечают протокол как <literal moreinfo="none">фильтруемый</literal> (в то же время они показывают,
+что протокол ICMP <literal moreinfo="none">открыт</literal>). Если не приходит никакого ответа после нескольких
+запросов, то протокол помечается как <literal moreinfo="none">открыт|фильтруется</literal></para>.
+
+ </listitem>
+ </varlistentry>
+
+
+
+ <varlistentry>
+ <term>
+ <option>-b <replaceable>FTP хост</replaceable></option> (FTP bounce сканирование)
+ <indexterm significance="normal"><primary><option>-b</option></primary></indexterm>
+ <indexterm significance="normal"><primary>FTP bounce scan</primary></indexterm>
+ </term>
+ <listitem>
+
+<para>Интересной возможностью FTP протокола (<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) является поддержка так называемых прокси FTP соединений. Это позволяет пользователю подключиться к одному
+FTP серверу, а затем попросить его передать файлы другому. Это является грубым нарушением, поэтому многие сервера
+прекратили поддерживать эту функцию. Используя эту функцию, можно осуществить с помощью данного FTP сервера
+сканирование портов других хостов. Просто попросите FTP сервер переслать файл на каждый интересующий вас порт целевой
+машины по очереди. Сообщение об ошибке укажет: открыт порт или нет. Это хороший способ обхода брандмауэров, т.к.
+организационные FTP сервера обычно имеют больше доступа к другим внутренним хостам, чем какие-либо другие машины.
+В Nmap такой тип сканирования задается опцией <option>-b</option>. В качестве аргумента ей передается
+<replaceable>имя_пользователя</replaceable>:<replaceable>пароль</replaceable>@<replaceable>сервер</replaceable>:<replaceable>порт</replaceable>.
+<replaceable>Сервер</replaceable> - это сетевое имя или IP адрес FTP сервера. Как и в случае в обычными URL, вы можете опустить <replaceable>имя_пользователя</replaceable>:<replaceable>пароль</replaceable>, тогда будут использованы
+анонимные данные (пользователь: <literal moreinfo="none">anonymous</literal>
+пароль:<literal moreinfo="none">-wwwuser@</literal>). Номер порта (и предшествующее ему двоеточие) также можно не
+указывать; тогда будет использован FTP порт по умолчанию (21) для подключения к <replaceable>серверу</replaceable>.
+</para>
+
+<para>Эта уязвимость была широко распространена в 1997, когда была выпущена Nmap, но теперь почти везде исправлена.
+Уязвимые сервера по-прежнему есть, так что, если ничего другое не помогает, то стоит попробовать. Если вашей целью
+является обход бранмауэра, то просканируйте целевую сеть на наличие открытого порта 21 (или даже на наличие любых
+FTP служб, если вы используете определение версии), а затем попробуйте данный тип сканирования с каждым из найденных.
+Nmap скажет вам, уязвим хост или нет. Если вы просто пытаетесь замести следы, то вам нет необходимости (и, фактически,
+не следует) ограничивать себя только хостами целевой сети. Перед тем как вы начнете сканировать произвольные Интернет
+адреса на наличие уязвимого FTP сервера, имейте ввиду, что многим системным администраторам это не понравится.</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-port-specification">
+ <title>Определение портов и порядка сканирования</title>
+ <indexterm significance="normal"><primary>port specification</primary></indexterm>
+
+ <para>В дополнении ко всем методам сканирования описанными ранее, Nmap предлагает опции для определения портов
+ для сканирования, а также порядка сканирования: произвольного или последовательного. По умолчанию, Nmap сканирует
+ все порты до 1024 включительно, а также все порты с большими номерами упомянутыми в файле <filename moreinfo="none">nmap-services</filename> для протокола, по которому идет сканирование.
+ <indexterm significance="normal"><primary>default ports</primary></indexterm>
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-p <replaceable>диапазон портов</replaceable></option> (Сканирование только определенных портов)
+ <indexterm significance="normal"><primary><option>-p</option></primary></indexterm>
+ </term>
+ <listitem>
+
+
+ <para>С помощью этой опции вы можете определить, какие порты вы хотите просканировать и переопределить
+ установки по умолчанию. Указание отдельных номеров портов допустимо, как и задание диапазонов портов
+ разделенных дефисом (напр. <literal moreinfo="none">1-1023</literal>). Начальные и/или кончные значения
+ диапазонов могут быть опущены, что заставит Nmap использовать 1 и 65535 соответственно. Поэтому вы можете
+ задать опцию <option>-p-</option>, чтобы просканировать все порты от 1 до 65535. Сканирование нулевого
+ порта допустимо, если вы укажене его явно
+ <indexterm significance="normal"><primary>port zero</primary></indexterm>.
+ Для сканирования по IP протоколу (<option>-sO</option>), эта опция определяет номера протоколов, которые
+ вы хотите просканировать для диапазона (0-255).</para>
+
+ <para>Когда сканируете и TCP и UDP порты, вы можете задать определенный протокол указав перед номерами
+ портов <literal moreinfo="none">T:</literal>
+ или <literal moreinfo="none">U:</literal>. Определитель будет действовать до того момента, пока вы не
+ зададите другой. Например, при задании аргумента <option>-p
+ U:53,111,137,T:21-25,80,139,8080</option> будут просканированы UDP
+ порты 53,111, и 137, а также все перечисленные TCP порты. Имейте в виду, что для сканирования и UDP и
+ TCP портов, вы должны указать опцию <option>-sU</option> и, по крайне мере, один из типов сканирования TCP
+ (таких как <option>-sS</option>, <option>-sF</option> или <option>-sT</option>). Если определитель прокотола
+ не указан, то перечисленные порты будут добавлены ко всем протоколам.</para>
+
+
+ <para><indexterm significance="normal"><primary>port specification</primary><secondary>wildcards in</secondary></indexterm>
+ Порты также могут быть заданы именами, которые указаны в
+ <filename moreinfo="none">nmap-services</filename>. Вы даже можете использовать символы ? и * с именами.
+ Например, чтобы просканировать FTP и все порты, чьи имена начинаются с <quote>http</quote>, используйте
+ <option>-p ftp,http*</option>. Будьте осторожны при вводе этой команды и лучше заключите аргумент
+ <option>-p</option> в кавычки.</para>
+
+ <para>Диапазоны портов могут быть заключены в квадратные скобки, чтобы определить порты внутри этого
+ диапазона, которые упомянуты в <filename moreinfo="none">nmap-services</filename>.
+ Например, с помощью следующей команды будут просканированы все порты из
+ <filename moreinfo="none">nmap-services</filename> равные или меньшие 1024:
+ <option>-p [-1024]</option>. Будьте осторожны при вводе этой команды и лучше заключите аргумент
+ <option>-p</option> в кавычки.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-F</option> (Быстрое (ограниченные порты) сканирование)
+ <indexterm significance="preferred"><primary><option>-F</option></primary></indexterm>
+ </term>
+ <listitem>
+ <para>Указывает, что вы хотите произвести сканирование только портов, указанных в
+ <filename moreinfo="none">nmap-services</filename>, который поставляется вместе с Nmap (или в файле
+ протоколов для <option>-sO</option>). Это намного быстрее, чем сканировать все 65535 портов целевой машины.
+ Т.к. этот список содержит много TCP портов (больше 1200), разница в скорости в отличии от TCP сканирования
+ по умолчанию (около 1650 портов) несущественна. Разница может быть огромна, если вы определите свой
+ небольшой <filename moreinfo="none">nmap-services</filename> файл используя
+ <option>--servicedb</option><indexterm significance="normal"><primary><option>--servicedb</option></primary></indexterm>
+ или <option>--datadir</option><indexterm significance="normal"><primary><option>--datadir</option></primary></indexterm> опции.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-r</option> (Не использовать случайный порядок портов)
+ <indexterm significance="normal"><primary><option>-r</option></primary></indexterm>
+ <indexterm significance="normal"><primary>randomization of ports</primary></indexterm>
+ </term>
+ <listitem>
+ <para>По умолчанию, Nmap использует произвольный порядок сканирования портов (исключение составляют лишь
+ наиболее часто употребляемые порты, которые расположены в начале списка сканирования по причинам
+ эффективности). Обычно эта случайность нужна, но вы можете задать опцию <option>-r</option>, чтобы
+ использовать прямой порядок сканирования.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--port-ratio <десятичное число между 0 и 1></option>
+ </term>
+ <listitem>
+ <indexterm significance="normal"><primary>--port-ratio</primary></indexterm>
+ <para>Сканирует все порты из <filename moreinfo="none">nmap-services</filename>, чей рейтинг больше числа,
+ указанного как аргумент (только для нового формата <filename moreinfo="none">nmap-services</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--top-ports <целое число от 1 и выше></option>
+ </term>
+ <listitem>
+ <indexterm significance="normal"><primary>--top-ports</primary></indexterm>
+ <para>Сканирует N портов с наибольшими рейтингами, расположенными в
+ <filename moreinfo="none">nmap-services</filename> файле (только для нового формата
+ <filename moreinfo="none">nmap-services</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+</refsect1>
+
+
+ <refsect1 id="man-version-detection">
+ <title>Обнаружение служб и их версий</title>
+ <indexterm class="startofrange" id="man-version-detection-indexterm" significance="normal"><primary>version detection</primary></indexterm>
+
+
+ <para>При сканировании удаленной машины Nmap может выдать, что порты
+ <literal moreinfo="none">25/tcp</literal>, <literal moreinfo="none">80/tcp</literal>, и
+ <literal moreinfo="none">53/udp</literal> открыты. Используя свою базу данных
+ <filename moreinfo="none">nmap-services</filename><indexterm significance="normal"><primary><filename moreinfo="none">nmap-services</filename></primary></indexterm>,
+ состоящюю из около 2200 известных служб,
+ <indexterm significance="normal"><primary>well-known ports</primary></indexterm>
+ Nmap сообщит, что эти порты вероятно соответстуют почтовому серверу (SMTP), веб серверу (HTTP),
+ и серверу доменных имен (DNS) соответственно. Эта информация обычно верна, т.к. подавляющее большинство служб,
+ использующих 25 TCP порт, фактически, почтовые сервера. Тем не менее, вам не следует полностью полагаться на эту
+ информацию! Люди могут и запускают службы с использованием нестандартных портов.
+ <indexterm significance="normal"><primary>non-standard ports</primary></indexterm>
+ </para>
+
+ <para>Даже если Nmap права, и на какой-либо гипотетической машине упомянутой выше запушены SMTP, HTTP и DNS
+ сервера, это не так уж и много информации. Когда производится сканирование с целью обнаружения уязвимостей
+ (или же просто определение структуры сети) компьютеров ваших компаний или клиентов, вам хочется знать, какие точно
+ почтовые и DNS сервера и какие версии используются. Знание точной версии очень помогает в определении, к каким
+ эксплоитам сервер наиболее уязвим. Эту информацию вы можете получить с помощью задания опции определения версии.
+</para>
+
+ <para>После того как какие-либо TCP и/или UDP были обнаружены, Nmap начинает "опрашивать" эти порты, чтобы
+ определить, какие же приложения (службы) их действительно используют. База данных
+ <filename moreinfo="none">nmap-service-probes</filename><indexterm significance="normal"><primary><filename moreinfo="none">nmap-service-probes</filename></primary></indexterm>
+ содержит запросы для обращения к различным службам и соответствующие выражения для распознавания и анализа ответов.
+ Nmap пытается определить протоколо службы (напр. FTP, SSH, Telnet, HTTP), имя приложения (e.g. ISC
+ BIND, Apache httpd, Solaris telnetd), номер версии, имя хоста, тип устройства (напр. принтер, роутер),
+ семейство ОС (напр. Windows, Linux) и иногда различные детали типа возможно ли соединится с X сервером,
+ версию протокола SSH, или имя пользователя KaZaA. Конечно же, большинство служб не предоставляют такую информацию.
+ Если Nmap была скомпилирована с поддержкой OpenSSL, Она соединится с сервером SSL, чтобы попытаться определить
+ запущенные службы, работающие за зашифрованным слоем.
+ <indexterm significance="normal"><primary>SSL</primary><secondary>in version detection</secondary></indexterm>
+ Когда обнаружены службы RPC, удет автоматически задействована опция Nmap
+ <indexterm significance="normal"><primary>RPC grinder</primary></indexterm> (<option>-sR</option>)
+ <indexterm significance="normal"><primary><option>-sR</option></primary></indexterm>
+ для определения программы RPC и ее версии. После сканирования портов UDP некоторые из них характеризуются как
+ <literal moreinfo="none">открыт|фильтруется</literal>, если сканирование не может определить открыт порт или
+ фильтруется. С заданной опцией определения версии Nmap попытается получить ответ от таких портов (точно так же как
+ она поступает с открытыми портами), и, в случае успеха, поменяет состояние этого порта на открыт
+ <literal moreinfo="none">открытые|фильтруемые</literal> TCP порты обрабатываются так же. Имейте в виду, что
+ опция Nmap <option>-A</option> помимо других команд активирует также и обнаружение версии.
+ <man>
+ Бумажная документация по работе, использованию и настройке опции обнаружения версии доступна на
+ <ulink url="https://nmap.org/book/vscan.html"/>.
+ </man>
+ <notman>
+ Опция обнаружения версии подробнее рассматривается в <xref linkend="vscan"/>.
+ </notman>
+ </para>
+
+ <para>Когда Nmap получает ответы от службы, но не может сопоставить их с какой-либо записью в своей базе данных,
+ она выводит на экран специальную информацию и URL, по которому вы можете опубликовать эту информацию, если вы точно
+ уверены, что за служба запущена на исследуемом вами порте. Пожалуйста, потратьте пару минут на публикацию этой
+ информации, т.к. ваша находка поможет остальным. Благодаря таким публикациям, Nmap содержит в своей базе данных
+ около 3000 записей для более чем 350 протоколов, таких как SMTP, FTP, HTTP и т.д.
+ <indexterm significance="normal"><primary>submission of service fingerprints</primary></indexterm>
+ </para>
+
+ <para>Функция определения версии включается и управляется с помощью следующих опций:</para>
+
+
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ <option>-sV</option> (Определение версии)
+ <indexterm significance="normal"><primary><option>-sV</option></primary></indexterm></term>
+ <listitem>
+
+
+ <para>Включает функцию определения версии, работа которой описана выше. Вы также можете использовать
+ опцию <option>-A</option>, которая помимо других функций включает определение версии.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--allports</option> (Не исключать порты из проверки определения версии)
+ <indexterm significance="normal"><primary><option>--allports</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>По умолчанию, функция определения версии пропускает TCP порт 9100,
+ потому что некоторые принтеры просто распечатывают все, что приходить на этот порт, что ведет к
+ дюжинам страниц HTTP GET запросов, бинарных запросов SSL сессий т.д. Это может быть изменено путем
+ модифицирования или удаления директивы <literal moreinfo="none">Exclude</literal>
+ в <filename moreinfo="none">nmap-service-probes</filename>, или вы можете задать опцию
+ <option>--allports</option>, сканированить все порты не обращая внимания на всякие
+ <literal moreinfo="none">Exclude</literal> директивы.
+ <indexterm significance="normal"><primary><literal moreinfo="none">Exclude</literal> directive (<filename moreinfo="none">nmap-service-probes</filename>)</primary></indexterm>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--version-intensity <replaceable>интенсивность</replaceable></option> (Устанавливает интенсивность
+ работы функции)
+ <indexterm significance="normal"><primary><option>--version-intensity</option></primary></indexterm>
+ </term>
+ <listitem>
+
+
+ <para>Когда производится сканирование с заданной опцией определения версии
+ (<option>-sV</option>), Nmap посылает серию запросов, каждому из которых присваивается значение в диапазоне
+ от 1 до 9. Запросы с низкими значениями эффективны для большинства типичных служб, в то время как запросы
+ с более высокими значениями редко применяются на практике. Уровень интенсивности определяет, какие запросы
+ должны использоваться во время сканирования. Чем выше значение запроса, тем больше вероятность корректного
+ определения службы. Тем не менее, сканирование с высокой интенсивностью займет много времени. Уровень
+ интенсивности должна быть задана числом от 0 до 9.
+ <indexterm significance="normal"><primary>version detection</primary><secondary>intensity</secondary></indexterm>
+ По умолчанию уровень интенсивности равен 7.
+ <indexterm significance="normal"><primary>version detection</primary><secondary>default intensity</secondary></indexterm>
+ Когда запрос привязан к целевому порту посредством директивы
+ <filename moreinfo="none">nmap-service-probes</filename> <literal moreinfo="none">ports</literal>,
+ этот запрос будет производиться вне зависимости от уровня интенсивности. Это гарантирует, что DNS
+ запросы всегда будут производится с использование порта 53, SSL запросы - 443 и т.д.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--version-light</option> (Включить облегченный режим)
+ <indexterm significance="normal"><primary><option>--version-light</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Это не что иное как псевдоним для <option>--version-intensity 2</option>. Этот режим существенно
+ уменьшает время сканирования, но вероятность определения служб сокращается.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--version-all</option> (Использовать каждый единичный запрос)
+ <indexterm significance="normal"><primary><option>--version-all</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Псевдоним для <option>--version-intensity 9</option>, гарантирующий что каждый единичный запрос
+ будет направлен на каждый порт.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--version-trace</option> (Отслеживание процесса сканирования)
+ <indexterm significance="preferred"><primary><option>--version-trace</option></primary></indexterm>
+ </term>
+ <listitem>
+ <para>Указывает Nmap выводить подробную отладочную информацию о процессе сканирования. Это часть той
+ информации, которую вы можете получить с помощью опции <option>--packet-trace</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-sR</option> (RPC сканирование)
+ <indexterm significance="preferred"><primary><option>-sR</option></primary></indexterm>
+ <indexterm significance="normal"><primary>RPC scan</primary><see>RPC grinder</see></indexterm>
+ <indexterm significance="normal"><primary>RPC grinder</primary></indexterm>
+ </term>
+
+ <listitem>
+ <para>Этот метод работает в связке с различными методами сканирования портов Nmap. При включении этой опции
+ на все обнаруженные открытые TCP/UDP порты посылатеся множество NULL команд программы SunRPC
+ в попытке определить, являются ли эти порты RPC портами, и если так, то какими программами (а также их версии)
+ они используются. Таким образом, вы можете получить ту же информацию как и в случае использования команды
+ <command moreinfo="none">rpcinfo -p</command>, даже если целевой сервер портмаппинга (portmapper) находится
+ за брандмауэром (или защищен TCP фильтром). На сегодняшний момент ловушки со сканированием RPC не работают
+ <indexterm significance="normal"><primary>decoys</primary><secondary>which scans use</secondary></indexterm>
+ Эта опция автоматически активируется как часть сканирования с функцией определения версии
+ (<option>-sV</option>). Т.к. это включено в функцию определения версии и более детально проработано,
+ то опция <option>-sR</option> нужна очень редко.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ <indexterm class="endofrange" startref="man-version-detection-indexterm" significance="normal"/>
+ </refsect1>
+
+ <refsect1 id="man-os-detection">
+
+ <title>Определение ОС</title>
+ <indexterm class="startofrange" id="man-os-detection-indexterm" significance="normal"><primary>OS detection</primary></indexterm>
+
+ <para>Одна из наиболее известных функциональных возможностей Nmap это удаленное определение ОС на основе
+ анализа работы стека TCP/IP. Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает практически
+ каждый бит в ответах. После проведения дюжины тестов таких как TCP ISN выборки, поддержки опций TCP, IP ID
+ выборки, и анализа продолжительности процедуры инициализации, Nmap сравнивает результаты со своей
+ <filename moreinfo="none">nmap-os-db</filename><indexterm significance="normal"><primary><filename moreinfo="none">nmap-os-db</filename></primary></indexterm> базой данных, состоящей из более чем тысячи известных наборов
+ типичных результатов для различных ОС и, при нахождении соответствий, выводит информацию об ОС. Каждый набор
+ содержит свободное текстовое описание ОС и классификацию, в которой указаны название производителя (напр. Sun),
+ название ОС (напр. Solaris), поколение ОС (напр. 10), и тип устройства ().
+ OS, and a classification which provides the vendor name
+ (e.g. Sun), underlying OS (e.g. Solaris), OS generation (e.g. 10),
+ and device type (для общих целей, роутер, коммутатор (switch), игровая консоль и т.д.).</para>
+
+ <para>Если Nmap не может определить ОС, но для этого есть хорошие предпосылки (наприме, по крайней мере,
+ найдены один открытый и один закрытый порты), то Nmap предоставит URL, по которому, если вы точно знаете,
+ какая ОС используется, вы сможете предоставить набор ее характеристик. Тем самым вы внесете свой вклад в дополнение
+ базы данных известных ОС Nmap, и она будет более полезна для всех остальных.</para>
+
+ <para>Опция определения ОС также активирует проведение некоторых других тестов, которые позволяют воспользоваться
+ собираемой в процессе работы информацией. Один из них Классификация Предсказуемости Последовательности TCP
+ (TCP Sequence Predictability Classification). Это позволяет приблизительно определить, насколько сложно установить
+ ложное TCP соединение с удаленным хостом. Это может быть полезно для взлома и эксплуатации программ, базирующихся
+ на доверительных отношениях (rlogin, фильтры брандмауэров и т.д.) или для сокрытия источника атаки. Этот тип
+ спуфинга (spoofing) теперь редко используется, но многие машины все еще уязвимы к такого рода атакам. Число,
+ характеризующее сложность, базируется на статистической выборке и может колебаться. Обычно лучше испльзовать
+ классификацию с испльзованием английских фраз типа
+ <quote>worthy challenge(достойное испытание)</quote> или <quote>trivial joke(шуточное дело)</quote>. Эта
+ информация будет выведена только при включенном вербальном режиме (<option>-v</option>). Когда вербальный режим
+ активирован вместе с опцией <option>-O</option>, то выводится также информация о генарции IP ID последовательности.
+ Большинство машин находятся в классе <quote>incremental(возрастающий)</quote>, что означает, что они увеличивают
+ поле ID в IP заголовке для каждого посланого пакета. Это делает их уязвимыми к спуфинг(spoofing) атакам и атакам
+ с целью сбора расширенной информации.</para>
+
+ <indexterm significance="normal"><primary>uptime guess</primary></indexterm>
+ <para>
+ Также во время определения ОС делается попытка узнать время работы целевой машины. С помощью временных меток
+ (timestamp) TCP (<ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc1323.txt">RFC 1323</ulink>) Nmap
+ пробует угадать, когда машина была перезагружена в последний раз. Информация может быть не точна, т.к. счетчик
+ временной метки не был обнулен или был переполнен, или каким-то образом скрыт. Информация выводится только в
+ вербальном режиме.</para>
+
+ <para>
+ <man>
+ Бумажная документация по работе, использованию и настройки опции определения ОС находится на
+ <ulink url="https://nmap.org/book/osdetect.html"/>.
+ </man>
+ <notman>
+ Опция определения ОС рассмотрена в <xref linkend="osdetect"/>.
+ </notman>
+ </para>
+
+ <para>Функция определения ОС включается и управляется с помощью следующих опций:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-O</option> (Включить определение ОС)
+ <indexterm significance="preferred"><primary><option>-O</option></primary></indexterm>
+ </term>
+ <listitem>
+
+
+ <para>Включает фукнцию определения ОС, работа которой описана выше. Вы также можете использовать
+ опцию <option>-A</option>, которая помимо других функций включает определение ОС.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--osscan-limit</option> (Использовать функцию определения ОС только для "перспективных" хостов)
+ <indexterm significance="preferred"><primary><option>--osscan-limit</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Функция определения ОС намного более эффективна, если обнаружены, по крайней мере, один открытый и один
+ закрытый TCP порты. Задайте эту опцию, и Nmap не будет даже пытаться определить ОС хостов, не удовлетворяющих
+ этому критерию. Это поможет сэкономить массу времени, особенно при <option>-PN</option> сканирование многих
+ хостов. Эта опция будет действовать только при включении функции ОС путем задания опций <option>-O</option>
+ или <option>-A</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--osscan-guess</option>; <option>--fuzzy</option> (Угадать результаты определения ОС)
+ <indexterm significance="preferred"><primary><option>--osscan-guess</option></primary></indexterm>
+ <indexterm significance="normal"><primary><option>--fuzzy</option></primary><see><option>--osscan-guess</option></see></indexterm>
+ </term>
+ <listitem>
+
+ <para>Когда Nmap не в состоянии определеить точное совпадение, она иногда предоставляет наиболее близкие
+ к результатам сканирования совпадения. Чтобы Nmap сделала это по умолчанию, совпадения должны быть очень
+ близки. Любая их этих (равных) опций побуждает Nmap к более агрессивному анализу результатов. Nmap
+ по-прежнему будет сообщать, когда будет найдено не идеальное совпадение, а также отображать стпень
+ соответствия (в процентах) для каждого набора характеристик.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--max-os-tries</option> (Устанавливает максимальное количество попыток определения ОС)
+ <indexterm significance="preferred"><primary><option>--max-os-tries</option></primary></indexterm>
+ </term>
+ <listitem>
+
+
+ <para>Когда Nmap пытается определить ОС на целевом хосте и не может найти идеального соответствия результатов,
+ то она обычно повторяет попытку. По умолчанию, Nmap совершает пять попыток при условии, что существуют
+ благоприятные условия для определения ОС, и дважды - в противном случае. Задание более низкого значения
+ <option>--max-os-tries</option> (напр. 1) увеличивает скорость работы Nmap, однако вы пропускаете некоторые
+ записи, с помощью которых, возможно, можно было бы определить ОС. Большое значение может быть задано для
+ разрешения большего количества попыток при благоприятных условиях. Это делается редко, за исключением тех
+ случаев, когда необходимо сгенерировать более детальный набор характеристик ОС для занесения в базу данных
+ Nmap.</para>
+
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ <indexterm class="endofrange" startref="man-os-detection-indexterm" significance="normal"/>
+ </refsect1>
+ <refsect1 id="man-nse">
+ <title>Скриптовый движок Nmap(NSE - Nmap Scripting Engine)</title>
+ <indexterm class="startofrange" id="man-nse-indexterm" significance="normal"><primary>Nmap Scripting Engine (NSE)</primary></indexterm>
+
+ <para>Скриптовый движок Nmap (NSE) это одна из наиболее мощных и гибких возможностей Nmap. Он позволяет
+ пользователям писать (и делиться ими) простые скрипты (используя
+ <ulink url="http://lua.org">язык программирования Lua</ulink>,
+ <indexterm significance="normal"><primary>Lua programming language</primary></indexterm>) для автоматизации
+ широкого круга сетевых задач. Эти скрипты выполняются со скоростью и эффективность ожидаемой вами от Nmap.
+ Пользователи могут использовать разнообразный и постоянно расщиряющийся набор скриптов, которые поставляются
+ вместе с Nmap, или написать свои скрипты под свои собственные нужды.</para>
+
+ <para>Когда мы создавали эту систему, считалось, что она будет использоваться для задач исследования сети, более
+ изощренного варианта определения версии, исследования уязвимостей. NSE может быть исполльзован даже для
+ обнаружения уязвимостей.</para>
+
+ <para>
+ Чтобы отразить все многообразие возможностей использования скриптов и при этом упростить выбор необходимого
+ скрипта, каждый из них содержит поле, где указано к какой категории он принадлежит. Сейчас определены следующие
+ категории: <literal moreinfo="none">safe</literal>,
+ <literal moreinfo="none">(intrusive)</literal>, <literal moreinfo="none">malware</literal>,
+ <literal moreinfo="none">version</literal>, <literal moreinfo="none">discovery</literal>,
+ <literal moreinfo="none">vuln</literal>, <literal moreinfo="none">auth</literal> и
+ <literal moreinfo="none">default</literal>. Все они описаны
+ <man>в <ulink url="https://nmap.org/book/nse-usage.html#nse-categories"/>.</man>
+ <notman>в <xref linkend="nse-categories"/>.</notman></para>
+
+
+ <para>Скриптовый движок Nmap детально описан
+<man>на <ulink url="https://nmap.org/book/nse.html"/></man>
+<notman>в <xref linkend="nse"/></notman> и настраивается с помощью следующих опций:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-sC</option>
+ <indexterm significance="preferred">
+ <primary><option>-sC</option></primary>
+ </indexterm>
+ </term>
+
+ <listitem>
+
+ <para>Осуществляет сканирование на основе скриптов. Эквивалентно опции <option>--script=default</option>.
+ Некоторые их применяемых здесь скриптов относятся к категории intrusive (навязчивые) и не должны быть
+ использованы для сканирования целевой сети без разрешения.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--script <replaceable>категории-скриптов</replaceable>|<replaceable>директория</replaceable>|<replaceable>имя_файла</replaceable>|all</option><indexterm significance="preferred"><primary><option>--script</option></primary></indexterm></term>
+
+<listitem>
+<para>Осуществляет сканирование на основе скриптов (как <option>-sC</option>) используя разделенный запятыми список
+категорий скриптов, отдельных файлов скриптов или директорий содержащих скрипты вместо стандартного набора скриптов.
+Сначала Nmap пытается интерпретирует все аргументы как категории, затем (в случае неудачи) как файлы или директории.
+Файл скрипта или директория скриптов могут быть определны с использованием абсолютного или относительного пути.
+Абсолютные пути используются так, как вы их зададите. Относительные пути будут определяться относительно:
+<indexterm significance="normal"><primary>data files</primary><secondary>directory search order</secondary></indexterm><indexterm significance="normal"><primary>scripts, location of</primary></indexterm>
+<filename moreinfo="none">--datadir/</filename>;
+<filename moreinfo="none">$NMAPDIR/</filename>;<indexterm significance="normal"><primary><envar>NMAPDIR</envar> environment variable</primary></indexterm>
+<filename moreinfo="none">~/.nmap/</filename> (не используется в Windows);<indexterm significance="normal"><primary sortas="nmap directory"><filename moreinfo="none">.nmap</filename> directory</primary></indexterm>
+NMAPDATADIR/ или<indexterm significance="normal"><primary>NMAPDATADIR</primary></indexterm>
+<filename moreinfo="none">./</filename>. Также все эти папки будут проверяться на наличие поддиректории
+<filename moreinfo="none">scripts/</filename></para>
+
+<para>Если вы определили директорию со скриптами, и она была найдена, то Nmap загружает все NSE
+скрипты (все файлы с расширением <literal moreinfo="none">.nse</literal>) из этой директории. Файлы без расширения
+<literal moreinfo="none">nse</literal> игнорируются. Nmap не производит рекурсивный поиск скриптов во всех
+поддиректориях. Если вы указываете конкретный файл, то его расширение не обязательно должно быть
+<literal moreinfo="none">nse</literal>.</para>
+
+<para>По умолчанию скрипты Nmap хранятся в папке <filename moreinfo="none">scripts</filename> -
+поддиректории основного каталого Nmap. Для большей производительности,
+все скрипты проиндексированы в базе даннных <filename moreinfo="none">scripts/script.db</filename>,
+<indexterm significance="normal"><primary><filename moreinfo="none">script.db</filename></primary></indexterm>
+где указано к какой категории или категориям принадлежит каждый скрипт. Для исполнения всех скриптов из базы данных
+Nmap задайте атрибут <literal moreinfo="none">all</literal>.</para>
+
+<para>Злонамеренные скрипты запускатся не в "песочнице" (sandbox) и поэтому могут повредить вашу систему или нарушить
+вашу анонимность. Никогда не используйте скрипты от третьих лиц до тех пор, пока не будете доверять автору или
+сами тщательно просмотрите скрипт.</para>
+
+</listitem>
+</varlistentry>
+
+ <varlistentry>
+ <term><option>--script-args <replaceable>имя1</replaceable>=<replaceable>значение1</replaceable>,
+ <replaceable>имя2</replaceable>={<replaceable>имя3</replaceable>=<replaceable>значение3</replaceable>},
+ <replaceable>имя4</replaceable>=<replaceable>значение4</replaceable></option>
+ <indexterm significance="preferred"><primary><option>--script-args</option></primary></indexterm>
+ <indexterm significance="normal"><primary>script arguments</primary><seealso><option>--script-args</option></seealso></indexterm></term>
+
+<listitem>
+<para>Позволяет вам передавать аргументы NSE скриптам. Аргументы передаются как пары
+<literal moreinfo="none">имя=значение</literal>. Передаваемый аргумент обрабатывается и хранится в Lua таблице,
+к которой имеют доступ все скрипты. Имена передаются как строки (должны быть буквенно-цифровыми значениями) и
+используются в качестве ключей в <literal moreinfo="none">argument-table</literal>. Значения могут быть также строками
+или в свою очередь таблицами (заключенными в ‘<literal moreinfo="none">{</literal>’ и
+‘<literal moreinfo="none">}</literal>’). Такие подтаблицы позволяют переопределить аргументы для конкретных скриптов
+(например, если вы хотите предоставить различным скриптам различные пары login/password). Например, вы можете
+определить аргументы через запятые: <literal moreinfo="none">user=bar</literal>,
+<literal moreinfo="none">password=foo</literal> и
+<literal moreinfo="none">anonFTP={password=nobody@foobar.com}</literal>. Если вы хотите переопределить опцию для
+скрипта, вы должны проиндексировать подтаблицу с помощью <literal moreinfo="none">id</literal> скрипта, т.к. это
+единственный способ указать скрипту на наличие специального аргумента.</para>
+</listitem>
+
+</varlistentry>
+ <varlistentry>
+ <term><option>--script-trace</option>
+ <indexterm significance="preferred"><primary><option>--script-trace</option></primary></indexterm></term>
+
+ <listitem>
+ <para>
+ Эта опция делает то же самое, что и <option>--packet-trace</option>, но на один ISO уровень выше.
+ Если задана эта опция, то все входящие и исходящие соединения, осуществляемые скриптом, выводятся на экран.
+ Выводимая информация включает в себя используемый коммуникационный протокол, источник, цель и переданные
+ данные. Если более 5% переданных данных невозможно вывести на экран, то вывод будет представлять собой
+ шестнадцатеричный (hex) дамп.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--script-updatedb</option>
+ <indexterm significance="preferred"><primary><option>--script-updatedb</option></primary></indexterm></term>
+
+ <listitem>
+
+ <para>Этой опцией обновляется база скриптов <filename moreinfo="none">scripts/script.db</filename>,
+ которая используется Nmap для определения доступных скриптов по умолчанию и их категорий. Обновлять
+ базу необходимо, только если вы добавили или удалили NSE скрипты из директории
+ <filename moreinfo="none">scripts</filename>, или поменяли категорию какого-нибудь скрипта. Эта опция
+ обычно используется без аргументов: <command moreinfo="none">nmap --script-updatedb</command>.</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <indexterm class="endofrange" startref="man-nse-indexterm" significance="normal"/>
+ </refsect1>
+
+ <refsect1 id="man-performance">
+ <title>Опции управления временем и производительностью</title>
+ <indexterm class="startofrange" id="man-performance-timing-indexterm" significance="normal"><primary>timing</primary></indexterm>
+ <indexterm class="startofrange" id="man-performance-indexterm" significance="normal"><primary>performance</primary></indexterm>
+ <para>Наиболее приоритетной стороной развития Nmap для меня всегда была производительность. Сканирование по
+ умолчанию (<command moreinfo="none">nmap <replaceable>имя_хоста</replaceable></command>) какого-либо хоста в моей
+ локальной сети занимает пятую долю секунды. Этого едва хватает, чтобы моргнуть, но становится существенным, когда
+ вы сканируете сотни или тысячи хостов. Более того, некоторые типы сканирования, как например, UDP или
+ сканирование с целью определения версии могут в значительной степени увеличить время сканирования. Этому также
+ могут поспособствовать настройки некоторых брандмауэров, где есть ограничения на количество ответов. Хотя в Nmap
+ используются параллелизм и различные продвинутые алгоритмы для уменьшения времени сканирования, у пользователя
+ есть возможность полностью контролировать работу программы. Опытные пользователи Nmap задают команды таким образом,
+ чтобы получать только необходимую им информацию и в удовлетворяющие им сроки.</para>
+
+ <para>Способами увеличения скорости сканирования могут быть пропуск не критичных тестов, или обновление Nmap до
+ последней версии (улучшения производительности выходят довольно часто). Оптимизация параметров опций управления
+ временем также может значительно повлиять на скрость сканирования. Эти опции описаны ниже.</para>
+
+<para>Некоторые опции могут принимать параметр <literal moreinfo="none">время</literal>. По умолчанию он задается в
+миллисекундах, но вы можете добавить ‘s’, ‘m’ или ‘h’ к значению, чтобы задать его в секундах, минутах или часах.
+Поэтому для опции <option>--host-timeout</option> аргументы <literal moreinfo="none">900000</literal>,
+<literal moreinfo="none">900s</literal> и <literal moreinfo="none">15m</literal> означают одно и то же.</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ <option>--min-hostgroup <replaceable>количество_хостов</replaceable></option>;
+ <option>--max-hostgroup
+ <replaceable>количество_хостов</replaceable></option> (Регулирует размер групп для параллельного сканирования)
+ <indexterm significance="normal"><primary><option>--min-hostgroup</option></primary></indexterm>
+ <indexterm significance="normal"><primary><option>--max-hostgroup</option></primary></indexterm>
+ </term>
+ <listitem>
+<para>В Nmap есть возможность осуществлять сканирование портов или сканирование с целью определения версии нескольких
+хостов параллельно. Это происходит путем разделения целевого IP пространства на группы, а затем сканирования одной
+группы за раз. В общем случае целесообразно использовать большие группы. Недостатком является то, что вы не можете
+узнать информацию о каком-либо хосте, пока не закончится сканирование всей группы. Таким образом, если Nmap начнет
+сканирование группы из 50-ти хостов, то пользователь не будет получать никакой информации (кроме обновлений информации
+предлагаемых в вербальном режиме), пока не будет завершено сканирование всех 50-ти хостов.</para>
+
+<para>По умолчанию Nmap использует компромиссный подход к решению этой проблемы. Сначала производится сканирование
+небольших групп из 5-ти хостов, поэтому первые результаты приходят быстро, затем размер группы постепенно
+увеличивается до максимального - 1024. Точные значения по умолчанию зависят от заданных опций. Для большей
+эффективности Nmap использует группы больших размеров для UDP сканирования и для некоторых типов TCP сканирования
+портов.</para>
+
+<para>Когда максимальный размер группы задан опцией <option>--max-hostgroup</option>, Nmap не будет его превышать.
+Минимальный размер группы задается опцией <option>--min-hostgroup</option>, и Nmap будет пытаться поддерживать размер
+групп больше этого уровня. Возможно Nmap придется использовать группы меньше заданных размеров, когда для выполнения
+условия минимальности будет не хватать целевых хостов. Эти опции могут быть использованы для удержания размера
+группы внутри некоторого диапазона, хотя это редко необходимо.</para>
+
+<para>Эти опции не имеют эффекта на фазе обнаружения хостов. Там используются обычное ping сканирование
+(<option>-sP</option>). При сканировании с целью обнаружения хостов всегда используются большие группы для увеличения
+скорости и точности.</para>
+
+<para>Основной целью использования этих опций является задание большого минимума размера группы, с тем чтобы
+сканирование проходило быстрее. При сканировании сети класса C обычным выбором является 256. При сканировании
+большого количества портов, превышение этого числа вряд ли поможет. При сканировании лишь нескольких портов,
+наилучшим размером группы будет 2048 или больше.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--min-parallelism <replaceable>количество_запросов</replaceable></option>;
+ <option>--max-parallelism
+ <replaceable>количество_запросов</replaceable></option> (Регулирует распараллеливание запросов)
+ <indexterm significance="normal"><primary><option>--min-parallelism</option></primary></indexterm>
+ <indexterm significance="normal"><primary><option>--max-parallelism</option></primary></indexterm>
+ </term>
+ <listitem>
+
+<para>Эти опции регулируют общее количество запросов для группы хостов. Опции испльзуются при сканировании портов и при
+обнаружени хостов. По умолчанию Nmap высчитывает степень параллельности основываясь на производительности сети. Если
+пакеты отбрасываются, то Nmap использует меньшее количество запросов. Количество запросов медленно увеличивается по
+мере того, как сеть продолжает нормально работать. Эти опции устанавливают минимальную и максимальную границы для этой
+переменной. По умолчанию параллелизм устанавливается в 1, если сеть работает плохо, и может достигать нескольких сотен
+при идеальных условиях.</para>
+
+<para>Наиболее частым вариантом применения является установка опции <option>--min-parallelism</option> в значение
+большее единицы, чтобы увеличить скорость сканирования плохо работающих хостов и сетей. Это очень рискованная опция,
+т.к. установка большого значения может повлиять на правильность результатов сканирования. Установка этого значения
+также сокращает возможности Nmap по динамическому контролю параллелизма в зависимости от условий в сети. Значение
+равное 10-ти является приемлимым, хотя я прибегаю к этой опции в последнюю очередь.</para>
+
+<para>Опция <option>--max-parallelism</option> иногда устанавливается для предотвращения отправки хостам более одного
+запроса за раз. Это может быть полезно в комбинации с опцией <option>--scan-delay</option> (описывается далее), хотя
+она и сама справляется со своими обязанностями.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--min-rtt-timeout <replaceable>время</replaceable></option>,
+ <option>--max-rtt-timeout <replaceable>время</replaceable></option>,
+ <option>--initial-rtt-timeout
+ <replaceable>время</replaceable></option> (Регулирует время ожидания ответа на запрос)
+ <indexterm significance="normal"><primary><option>--min-rtt-timeout</option></primary></indexterm>
+ <indexterm significance="normal"><primary><option>--max-rtt-timeout</option></primary></indexterm>
+ <indexterm significance="normal"><primary><option>--initial-rtt-timeout</option></primary></indexterm>
+ </term>
+ <listitem>
+
+<para>В Nmap есть значение промежутка времени, в течении которого будет ожидаться ответ на запрос, перед тем как
+прекратить попытки или совершить еще одну. Этот промежуток вычисляется на основе времени, в течении которого были
+получены ответы на предыдущие запросы. Если в сети есть значительная и непостоянная задержка, то этот промежуток может
+возрасти до нескольких секунда. Он также устанавливается на безопасном (высоком) уровне и может таким и оставаться
+некоторое время, если Nmap производит сканирование не отвечающих на запросы хостов .</para>
+
+<para>
+Задание значений <option>--max-rtt-timeout</option> и <option>--initial-rtt-timeout</option> ниже значений по
+умолчанию может существенно сократить время сканирования. Это особенно заметно при различных вариантах сканирования
+с заданной опцией <option>-PN</option>, а также при сканировании сильно фильтруемых сетей. Однако не торопитесь
+делать этого сразу. Сканирование займет много времени, если вы укажете такое низкое значение, при котором у большинства
+запросов закончиться время ожидания ответа, и они будут ретранслированы, в то время как ответы на них будут в пути.
+</para>
+
+<para>Если хосты находятся в локальной сети, то 100 миллисекунда будет приемлимым значением опции
+<option>--max-rtt-timeout</option>. Если при этом производится отслеживание маршурта, то для начала пропингуйте хост
+в сети с помощью утилиты ICMP ping или <command moreinfo="none">hping2</command><indexterm significance="normal">
+<primary><command moreinfo="none">hping2</command></primary></indexterm>,
+у которой больше шансов обойти брандмауэр. Выясните среднее максимальное значение для, примерно, 10-ти пакетов.
+Удвойте это значение для передачи опции <option>--initial-rtt-timeout</option> и умножьте на три или четыре для опции
+<option>--max-rtt-timeout</option>. Обычно я не устанавливаю maximum RTT ниже 100 мс, не зависимо от результатов
+пингования. А также не превышаю 1000 мс.</para>
+
+<para>Опция <option>--min-rtt-timeout</option> редко используется; она может быть полезна, в случае если сеть
+настолько ненадежна, что даже значения Nmap по умолчанию слишком агрессивны. Так как Nmap просто сокращает время
+ожидания до минимума, в случае если сеть кажется надежной, то нужды в этой опции нет, о ней дожно быть сообщено как
+о баге на <citetitle>nmap-dev</citetitle> рассылку.<indexterm significance="normal"><primary><citetitle>nmap-dev</citetitle> mailing list</primary></indexterm>
+</para>
+
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>
+ <option>--max-retries <replaceable>количество_попыток</replaceable></option> (Задает максимальное
+ количество повторных передач запроса)
+ <indexterm significance="normal"><primary><option>--max-retries</option></primary></indexterm>
+ </term>
+ <listitem>
+
+
+<para>Когда Nmap не получает ответа на запрос сканирования порта, это может означать, что порт фильтруется. А возможно,
+запрос или ответ просто затерялись в сети. Также возможно, что у цели есть ограничение на количество ответов, что
+стало причиной временной блокировки запроса. В этом случае Nmap повторную передачу исходного запроса. Если для Nmap
+сеть кажется ненадежной, то она может совершить очень много попыток, перед тем как бросить это дело. Хотя это и
+придает достоверность результатам сканирования, это в то же время увеличивает время сканирования. Когда
+производительность критична, время сканирования может быть сокращено путем введения ограничения на максимальное
+количество повторных передач запроса. Вы даже можете задать <option>--max-retries 0</option>, чтобы предотвратить
+все повторные попытки, хотя это не рекомендуется.</para>
+
+<para>Значением по умолчанию (без <option>-T</option> шаблона) является 10 ретрансляций. Если сеть кажется надежной, и
+целевые хосты не имеют ограничений на количество ответов, то Nmap обычно делают одну повторную попытку. Поэтому
+установка <option>--max-retries</option> в низкое значение (например, 3) никак не вличет на большинство типов
+сканирования. Такие значения могут значительно увеличить скорость сканирования медленных (с ограничениями на
+количество ответов) хостов. Обычно вы теряете некоторую информацию, когда Nmap рано прекращает сканировать порты,
+поэтому лучше дать истечь времени <option>--host-timeout</option>, и потерять всю информацию о цели.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--host-timeout <replaceable>время</replaceable></option> (Прекращает сканирование медленных целей)
+ <indexterm significance="normal"><primary><option>--host-timeout</option></primary></indexterm>
+ </term>
+ <listitem>
+
+
+<para>Некоторые хосты просто требуют <emphasis>длительного</emphasis> времени сканирования. Это может быть в силу
+низкой производительности или ненадежности сетевого оборудования или программного обеспечения, ограничений на
+количество пакетов или ограничивающих брандмауэров. Несколько процентов наиболее медленных хостов могут занять
+большую часть времени сканирования. Иногда лучшим выходом является просто пропуск таких хостов. Передайте в качестве
+аргумента опции <option>--host-timeout</option> максимальное значение промежутка времени, в течении которого вы
+готовы ждать. Я часто задаю <literal moreinfo="none">30 мин</literal>, чтобы удостовериться в том, что Nmap не потратит
+более получаса на единичный хост. Имейте ввиду, что в течении этого получаса Nmap может сканировать другие хосты, так
+что это не просто потеря времени. Хост, чье время истекло, пропускается. Для этого хоста не выводится ни таблица портов,
+ни информации об ОС.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--scan-delay <replaceable>время</replaceable></option>;
+ <option>--max-scan-delay
+ <replaceable>время</replaceable></option> (Регулирует задержку между запросами)
+ <indexterm significance="normal"><primary><option>--scan-delay</option></primary></indexterm>
+ <indexterm significance="normal"><primary><option>--max-scan-delay</option></primary></indexterm>
+ </term>
+ <listitem>
+
+<para>Эта опция вынуждает Nmap подождать по крайней мере заданное время между каждым запросом. Это особенно полезно в
+случае наличия ограничения на количество ответов у целевых хостов. Машины Solaris (как и многие другие) обычно отвечают
+на запросы при UDP сканировании только одним ICMP сообщением в секунду. Посылка большего количества запросов со
+стороны Nmap будет впустую. Установка значения опции <option>--scan-delay</option> в
+<literal moreinfo="none">1 сек</literal> будет поддерживать в Nmap такую медленную интенсивность. Nmap пытается
+определить ограничения на количество ответов у целевых хостов и подстроить задержку между запросами соответственно,
+но ничто не мешает указать вам это значение явно, если вы точно знаете, что так будет лучше.</para>
+
+<para>Когда Nmap подстраивает задержку между запросами к обнаруженному ограничению, то скорость сканироания
+значительно уменьшается. Опция <option>--max-scan-delay</option> позволяет задать наибольшую возможную задержку.
+Установка здесь маленького значения может привести к бесполезной ретрансляции пакетов или возможному пропуску портов,
+если у цели есть строгий лимит на количество ответов.</para>
+
+<para>Еще одним вариантом использования опции <option>--scan-delay</option> является обход пороговых систем обнаружения
+и предотвращения вторжений (IDS/IPS).<indexterm significance="normal"><primary>intrusion detection systems</primary><secondary>evading</secondary></indexterm>
+</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--min-rate <replaceable>число</replaceable></option>
+ (Задает минимальную интенсивность сканирования)
+ <indexterm significance="normal"><primary><option>--min-rate</option></primary></indexterm>
+ </term>
+ <listitem>
+
+<para>Функции динамического управления различными опциями времени в Nmap хорошо справляются с задачей подборки
+подходящей скорости сканирования. Тем не менее, иногда вы можете заранее узнать подходящую интенсивность сканирования
+сети, или можете гарантировать, что сканирование закончится к определенному времени. Когда задается опция
+<option>--min-rate</option>, Nmap будет пытаться отсылать пакеты с той же или большей, чем задано, интенсивностью.
+Аргументом этой опции является положительное число, отражающее интенсивность сканирования в пакетах в секунду. Например,
+задание опции <option>--min-rate 300</option> означает, что Nmap будет пыпыться отсылать пакеты с интенсивностью
+300 пакетов в секунду или больше. Задание низкого значения не отнимает у Nmap права работать с большей интенсивностью,
+если позволяют условия.</para>
+
+<para>Существуют два варианта, при которых реальная интенсивность работы будет меньше заданного минимума. Первый, когда
+заданный минимум быстрее, чем наиболее быстрый возможный уровень работы Nmap, который зависит от аппаратного
+обеспечения. В этом случае Nmap будет посылать пакеты так быстро, как может; но будьте осторожны, т.к. при быстрой
+скорости возможны потери точности. Второй случай, когда у Nmap больше нечего отсылать, например, в конце сканирования,
+когда последние запросы уже посланы, и Nmap ожидает ответы на них. Это нормально, когда интенсивность падает в
+конце сканирования или при смене групп сканирования.</para>
+
+<para>Задание минимального уровня интенсивности должно производится с осторожностью. Сканирование быстрее, чем
+возможно в данной сети, может привести к потери точности. В некоторых случаях, задание выского уровня интенсивности
+может привести к тому, что сканирование займет <emphasis>больше</emphasis> времени, чем с более низким уровнем. Это
+может произойти в случае, если адаптивные ретрансляционные <indexterm significance="normal"><primary>adaptive retransmission</primary><see>retransmission</see></indexterm><indexterm significance="normal"><primary>retransmission</primary></indexterm>
+алгоритмы Nmap обнаружат перегрузку сети, вызванную высоким уровнем интенсивности сканирования, и увеличат количество
+ретрансляций для повышения точности сканирования. Поэтому, даже хотя пакеты отсылаются с большой интенсивностью,
+еще больше пакетов отсылается впустую. Установите максимальное количество ретрансляций с помощью опции
+<option>--max-retries</option>, если вы хотите ограничить общее время сканирования.</para>
+
+<para>Опция <option>--min-rate</option> глобальна, она оказывает влияние на все сканирование, а не на отдельные хосты.
+Учитывается только при сканировании с целью обнаружения хостов и сканировании портов. Другие функции, как например
+определение ОС, имеют собственные особенности управления временем.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--max-rate <replaceable>число</replaceable></option>
+ (Задает максимальную интенсивность сканирования)
+ <indexterm significance="normal"><primary><option>--max-rate</option></primary></indexterm>
+ </term>
+ <listitem>
+
+<para>Дополнительно к опции <option>--min-rate</option> есть опция <option>--max-rate</option>, которая ограничивает
+максимальную интенсивность сканирования заданным значением. Используйте <option>--max-rate 100</option>, например,
+чтобы ограничиться 100 пакетами в секунду в быстрой сети. Используйте <option>--max-rate 0.1</option> для медленного
+сканирования - один пакет в десять секунд.</para>
+
+<para><option>--max-rate</option> также как и <option>--min-rate</option> глобальная опция, оказывающая влияние
+на все сканирование. Учитывается только при сканировании с целью обнаружения хостов и сканировании портов.</para>
+
+<para>Иногда уровень интенсивности может превышать максимальное заданное значение для больры с непредвиденными
+задержками, но в среднем он будет находится на максимальном уровне или ниже. Nmap будет работать с меньшей
+интенсивностью, если того требуют условия. Чтобы удерживать интенсивность сканирования внутри определенного
+промежутка, используйте опции <option>--min-rate</option> и <option>--max-rate</option> вместе.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--defeat-rst-ratelimit</option>
+ <indexterm significance="normal"><primary><option>--defeat-rst-ratelimit</option></primary></indexterm></term>
+ <listitem>
+
+<para>Многие хосты имеют давно использующие ограничения <indexterm significance="normal"><primary>rate limiting</primary></indexterm>
+на количество ICMP сообщений об ошибке (как ошибки о недостижимости порта). Многие системы сейчас используют похожие
+ограничения на количество пакетов RST (сброс), генерируемых ими. Это может сильно замедлить сканирование, т.к. Nmap
+подстраивается под эти ограничения. Вы можете указать Nmap игнорировать такие ограничения (для сканирования портов типа
+SYN, при котором не отвечающие порты <emphasis>не считаются</emphasis> <literal moreinfo="none">открытыми</literal>)
+путем задания опции <option>--defeat-rst-ratelimit</option>.</para>
+
+<para>Использование этой опции может привести к потери точности сканирования, т.к. Nmap могла не подождать неоходимое
+время ответа RST (на которые у целевой машины есть ограничения). При сканировании типа SYN не отвечающие порты
+помечаются как <literal moreinfo="none">фильтруемые</literal>, а не <literal moreinfo="none">закрытые</literal>, как в
+случае принятия ответа RST. Это опция полезна, только когда вам важны открытые порты, а различать
+<literal moreinfo="none">закрытые</literal> и <literal moreinfo="none">фильтруемые</literal> порты нет необходимости.
+</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-T
+ paranoid(паранойдный)|sneaky(хитрый)|polite(вежливый)|normal(обычный)|aggressive(агрессивный)|insane(безумный)
+ </option>
+ (Устанавливает шаблон настроек управления временем)
+ <indexterm significance="normal"><primary><option>-T</option></primary></indexterm>
+ <indexterm significance="normal"><primary>timing templates</primary><seealso><literal moreinfo="none">paranoid</literal>, <literal moreinfo="none">sneaky</literal>, <literal moreinfo="none">polite</literal>, <literal moreinfo="none">normal</literal>, <literal moreinfo="none">aggressive</literal>, and <literal moreinfo="none">insane</literal></seealso></indexterm>
+ </term>
+ <listitem>
+<indexterm significance="normal"><primary><option>-T0</option></primary><see><literal moreinfo="none">paranoid</literal> timing template</see></indexterm>
+<indexterm significance="normal"><primary><option>-T1</option></primary><see><literal moreinfo="none">sneaky</literal> timing template</see></indexterm>
+<indexterm significance="normal"><primary><option>-T2</option></primary><see><literal moreinfo="none">polite</literal> timing template</see></indexterm>
+<indexterm significance="normal"><primary><option>-T3</option></primary><see><literal moreinfo="none">normal</literal> timing template</see></indexterm>
+<indexterm significance="normal"><primary><option>-T4</option></primary><see><literal moreinfo="none">aggressive</literal> timing template</see></indexterm>
+<indexterm significance="normal"><primary><option>-T5</option></primary><see><literal moreinfo="none">insane</literal> timing template</see></indexterm>
+
+
+<para>Хотя описанные выше опции управления временем мощны и эффективны, многих людей они сбивают с толку. Более того,
+выбор подходящих значений может иногда занимать больше времени, чем само сканирование. Поэтому Nmap предлагает более
+легкий подход, заключайющийся в применении шести шаблонов настроек. Вы можете задавать их с помощью опции
+<option>-T</option> и номера шаблона (0–5) или его имени. Имена шаблонов следующие:
+<option>paranoid(паранойдный)</option> (<option>0</option>),
+<option>sneaky(хитрый)</option> (<option>1</option>),
+<option>polite(вежливый)</option> (<option>2</option>),
+<option>normal(обычный)</option> (<option>3</option>),
+<option>aggressive(агрессивный)</option> (<option>4</option>)
+и <option>insane(безумный)</option> (<option>5</option>).
+Первые два предназначены для обхода IDS. Вежливый (polite) режим снижает интенсивность сканирования с целью меньшего
+потребления пропускной способности и машинных ресурсов. Обычнй (normal) режим устанавливается по умолчанию, поэтому
+опция <option>-T3</option> ничего не делает. Агрессивный (aggressive) режим повышает интенсивность сканирования,
+предполагая, что вы используете довольно быструю и надежную сеть. Наконец, безумный (insane) режим
+<indexterm significance="normal"><primary><literal moreinfo="none">insane</literal> (<option>-T5</option>) timing template</primary></indexterm>
+предполагает, что вы используете чрезвычайно быструю сеть и готовы пожертвовать точностью ради скорости.</para>
+
+<para>Эти опции позволяет определять пользователям, насколько агрессивными они хотят быть, оставляя за Nmap право
+выбирать подходящие значения опций управления временем. Также шаблоны позволяют производить некоторые незначительные
+корректировки скорости, для которых пока нет отдельных опций. Например, <option>-T4</option><indexterm significance="normal"><primary><literal moreinfo="none">aggressive</literal> (<option>-T4</option>) timing template</primary></indexterm>
+запрещает установку динамической задержки во время сканирования выше 10 мс для TCP порт, а <option>-T5</option> - выше
+5 мс. Шаблоны могут использоваться в комбинации с описанными выше опциями; в этом случает будут использоваться в
+качестве значений аргументы этих опций, а не значения по умолчанию, заданные в шаблонах. Я рекомендую задавать
+<option>-T4</option> при сканировании довольно современных и надежных сетей. Задавайте эту опцию, даже если вы
+используете описанные выше опции управления временем, и вы сможете получить выгоду от этих незначительных
+оптимизаций, которые включаются этой опцией.</para>
+
+<para>Если у вас приличная широкополосная связь или ethernet соединение, то я бы порекомендовал вам всегда использовать
+<option>-T4</option>. Некоторым людям нравится <option>-T5</option>, хотя она чересчур агрессивна на мой взгляд. Иногда
+люди используют <option>-T2</option>, потому что думают, что так у них мешьнше шансов пропустить какие-либо хосты или
+потому, что считают себя вежливыми по жизни. Они часто не осознают, насколько опция <option>-T polite</option><indexterm significance="normal"><primary><literal moreinfo="none">polite</literal> (<option>-T2</option>) timing template</primary></indexterm>
+медленна. Время их сканирования может занять в десять раз больше обычного. Проблемы с хостами и пропускной
+способностью редки при использовании опции (<option>-T3</option>), поэтому я рекомендую ее для осторожного сканирования.
+Отключение функции определения версии намного более эффективно для сокращения таких проблем, чем попытка настройки
+всех опций управления временем.</para>
+
+<para>Хотя опции <option>-T0</option><indexterm significance="normal"><primary><literal moreinfo="none">paranoid</literal> (<option>-T0</option>) timing template</primary></indexterm>
+и <option>-T1</option><indexterm significance="normal"><primary><literal moreinfo="none">sneaky</literal> (<option>-T1</option>) timing template</primary></indexterm>
+могут быть полезны для обхода IDS, они отнимут очень много времени при сканировании тысяч хостов или портов. Для
+такого сканирования, предпочтительнее будет задать свои точные значения, чем полагаться на опции <option>-T0</option>
+и <option>-T1</option>.</para>
+
+<para>При использовании опции <option>T0</option> в любой момент времени производится сканирование только одного порта,
+и перед отправкой каждого запроса проходит пять минут. <option>T1</option> и <option>T2</option> практически одинаковы,
+только между запросами проходит 15 секунд и 0.4 секунды соответственно. Опция <option>T3</option> является опцией
+Nmap по умолчанию, она включает распараллеливание.<indexterm significance="normal"><primary><literal moreinfo="none">normal</literal> (<option>-T3</option>) timing template</primary></indexterm>
+<option>-T4</option> эквивалента опциям <option>--max-rtt-timeout 1250
+--initial-rtt-timeout 500 --max-retries 6</option> и устанавливает максимальную задержку при TCP сканировании 10
+миллисекунд. <option>T5</option> эквивалента опциям
+<option>--max-rtt-timeout 300 --min-rtt-timeout 50
+--initial-rtt-timeout 250 --max-retries 2 --host-timeout 15m</option> и устанавливает максимальную задержку при TCP сканировании 5 миллисекунд.</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <indexterm class="endofrange" startref="man-performance-indexterm" significance="normal"/>
+ <indexterm class="endofrange" startref="man-performance-timing-indexterm" significance="normal"/>
+ </refsect1>
+
+ <refsect1 id="man-bypass-firewalls-ids">
+ <title>Обход Брандмауэров/IDS</title>
+ <indexterm class="startofrange" id="man-bypass-filewalls-indexterm" significance="normal"><primary>firewalls</primary><secondary>bypassing</secondary></indexterm>
+ <indexterm class="startofrange" id="man-bypass-ids-indexterm" significance="normal"><primary>intrusion detection systems</primary><secondary>evading</secondary></indexterm>
+
+<para>Многие пионеры Интернета представляли его в своем воображении как открутую глобальную сеть с универсальным
+пространством IP адресов, позволяющую создавать виртуальные соединения между любыми двумя точками. Это позволило бы
+хостам общаться на равных, обмениваясь информацией между собой. Люди могли бы получить доступ к своим домашним
+системам с работы, изменяя настройки климат-контроля или открывая двери ранним гостям. Этому видению глобальной
+соединенности не суждено было сбыться по причинам нехватки адресного пространства и проблемам безопасности. В ранние
+1990-е организации стали использовать брадмауэры с целью сокращения возможностей соединения. Огромные сети были
+отрезаны от Интернета различными программными прокси, серверами преобразования имен и пакетными фильтрами.
+Неограниченный поток информации сократился до строго регламентированных каналов связи и содержимому передающемуся по
+ним.</para>
+
+<para>Сетевые барьеры, такие как брандмауэры, могут сделать процесс исследования сети чрезвычайно сложным. Никаких
+послаблений не намечается, т.к. предотвращение инвентаризации сети часто является ключевой целью введения таких
+устройств. Тем не менее, Nmap предоставляет множество функций для облегчения понимания структуры таких сложных сетей
+и для проверки того факта, что сетевые фильтры работают как предполагалось. Поддерживаются даже механизмы обхода
+плохо организованных вариантов защит. Один из лучших методов проверки вашей системы безопасности - это попытка ее
+обойти. Поставьте себя на место атакующего и примените описанные ниже методы к вашей сети. Запустите FTP bounce
+сканирование, idle сканирование, атаку с фрагментацией пакетов или попробуйте пробиться через один из ваших
+прокси-серверов.
+</para>
+
+<para>В дополнении к ограничению сетевой активности, компании все больше и больше используют мониторинг траффика с
+помощью систем обнаружения вторжений (intrusion detection systems - IDS). Все эти системы используют правила,
+составленные для обнаружения различного рода сканирований с помощью Nmap, т.к. сканирование часто оказывается
+предвестником атак. Многие из этих систем недавно были преобразованы в системы
+<emphasis>предотвращения</emphasis> вторжений (intrusion prevention systems - IPS),
+<indexterm significance="normal"><primary>intrusion prevention systems</primary>
+<seealso>intrusion detection systems</seealso></indexterm>
+которые блокирую трафик, расцениваемый как злонамеренный. К сожалению для сетевых администраторов и продавцов IDS,
+обнаружение вторжений с большой долей вероятности путем анализа паетов данных является сложной задачей. Атакующие с
+помощью терпения, навыков и с помощью некоторых опций Nmap обычно могут незамеченными обойти системы IDS. Между тем,
+администраторам приходится иметь дело с большим количеством ложных положительных результатов, когда такие системы
+ошибаются и блокируют безвредную сетевую активность.</para>
+
+<para>Время от времени некоторые высказывают предположения, что Nmap не следует предоставлять фукнции для обхода IDS.
+Они аргументируют свою позицию тем, что эти функции могут быть с равным успехом использованы атакующими, так же как они
+используются администраторами для улучшения систем защиты. Проблема в таких рассуждениях заключается в том, что
+такие методы будут по-прежнему использоваться атакующими, которые просто найдут другие утилиты или самостоятель
+добавят такие функции в Nmap. Тем временем администраторам будет намного сложнее выполнять свою работу. Использование
+только современных FTP серверов намного более мощное средство защиты, чем попытки предотвратить распространение
+утилит позволяющих реализовать FTP bounce атаки.
+</para>
+
+<para>Не существует такой магической опции, которая позволяла бы обнаруживать и обходить брандмауэры и IDS. Для этого
+необходимы навыки и опыт. Подробное описание таких методов выходит за рамки данного справочного руководства, где
+содержаться только важные опции с описанием их возможностей.</para>
+
+<variablelist>
+ <varlistentry>
+ <term>
+ <option>-f</option> (фрагментировать пакеты);
+ <option>--mtu</option> (используя заданное значение MTU)
+ <indexterm significance="preferred"><primary><option>-f</option></primary></indexterm>
+ <indexterm significance="preferred"><primary><option>--mtu</option></primary></indexterm>
+ </term>
+
+ <listitem>
+ <para>При задании опции <option>-f</option> все типы сканирования (включая различные типы пингования) будут
+ использовать маленькие фрагментированные IP пакеты. Идея состоит в том, чтобы разбить TCP заголовок на
+ части и посылать их в различных пакетах для того, чтобы не дать определить пакетным фильтрам и системам
+ обнаружения вторжения, что вы делаете. Будьте осторожны с этой опцией! Некоторые программы имеют проблемы с
+ обработкой таких маленьких пакетов. Один старый сниффер Sniffit аварийно завершал работу после принятия
+ первого фрагмента. Задайте эту опцию один раз, и Nmap будет разбивать пакеты на части по 8 байт или меньше
+ после IP заголовка. Таким образовм, 20-ти байтный TCP заголовок будет разбит на 3 пакета. Два из них будут
+ содержать по 8 байт этого заголовка, а третий - последние 4. Конечно же, каждый фрагмент также имеет IP
+ заголовок. Задайте опцию <option>-f</option> снова, чтобы использовать фрагменты по 16 байт
+ (тем самым сократится число фрагментов).<indexterm significance="normal">
+ <primary><option>-f</option></primary><secondary>giving twice</secondary></indexterm>
+ Или вы можете задать свой собственный размер фрагмента с помощью опции <option>--mtu</option>. Не используйте
+ опцию <option>-f</option> вместе с <option>--mtu</option>. Размер должен быть кратным 8. В то время как
+ фрагментированные пакеты не смогут пройти через пакетные фильтры и брандмауэры, которые ставят в очередь
+ все IP фрагменты, например, с помощью опции <varname>CONFIG_IP_ALWAYS_DEFRAG</varname>в ядре Linux, некоторые
+ сети не могут позволить себе связанное с этим падение производительности и поэтому не используют такую
+ возможность. Другие могут использовать ее, потому что фрагменты в таких сетях могут идти по разным маршрутам.
+ Некоторые системы фрагментируют исходящие пакеты прямо в ядре. Linux с включенным модулем отслеживания
+ соединения iptables <indexterm significance="normal"><primary>iptables</primary></indexterm> тому пример.
+ Произведите сканирование с включенным сниффером <application moreinfo="none">Wireshark</application>
+ <indexterm significance="normal"><primary>
+ <application moreinfo="none">Wireshark</application></primary></indexterm>,
+ чтобы убедиться, что пакеты фрагментируются. Если в вашей ОС возникают проблемы, попробуйте задать опцию
+ <option>--send-eth</option><indexterm significance="normal"><primary><option>--send-eth</option></primary>
+ </indexterm>, чтобы обойти IP слой и отсылать сырые ethernet фрэймы.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-D <replaceable>фиктивный_хост1</replaceable><optional>,<replaceable>фиктивный_хост2</replaceable></optional><optional>,ME</optional><optional>,...</optional></option>
+ (Маскировка сканирования с помощью фиктивных хостов)
+ <indexterm significance="normal"><primary><option>-D</option></primary></indexterm>
+ <indexterm significance="normal"><primary>decoys</primary></indexterm>
+ </term>
+ <listitem>
+ <para>Производится сканирование с использованием фиктивных хостов; в этом случае цель сканирования считает,
+ что заданные вами фиктивные хосты также производят ее сканирование. Хотя IDS цели может сообщить о том, что
+ было произведено 5-10 сканирований портов с каждого IP адреса, система не сможет узнать, с какого из этих
+ IP адресов действительно производилось сканирование, а какие были лишь безвредными ловушками. Хотя этот тип
+ сканирования может быть распознан путем отслеживания маршрута, сбрасыванием ответа или другими активными
+ методами, в большинстве случае он является эффективным способом сокрытия вашего IP адреса.</para>
+
+ <para>При задании фиктивных хостов, разделяйте их запятыми; вы также можете указать
+ <literal moreinfo="none">ME</literal><indexterm significance="normal">
+ <primary><literal moreinfo="none">ME</literal> (decoy address)</primary></indexterm>
+ как один из фиктивных хостов для задания позиции в списке вашего реального IP адреса. Если вы задаете
+ <literal moreinfo="none">ME</literal> в шестой позиции или дальше, некоторые обычные системы обнаружения
+ сканирования портов (например, Solar Designer's<indexterm significance="normal">
+ <primary>Solar Designer</primary></indexterm> excellent Scanlogd)<indexterm significance="normal">
+ <primary><application moreinfo="none">Scanlogd</application></primary></indexterm>
+ вряд ли вообще отобразят ваш IP адрес. Если вы не задаете флаг <literal moreinfo="none">ME</literal>, Nmap
+ поставит его в произвольную позицию. Вы также можете использовать
+ <literal moreinfo="none">RND</literal><indexterm significance="normal"><primary><literal moreinfo="none">RND</literal> (decoy address)</primary></indexterm>
+ для генерации произвольного, незарезервированного IP адреса, или
+ <literal moreinfo="none">RND:<replaceable>чило</replaceable></literal> для генерации определенного
+ <replaceable>числа</replaceable> адресов.</para>
+ <para>Имейте ввиду, что хосты, указанные вами в качестве фиктивных, должны работать, иначе вы просто
+ зафлудите целевые хосты с помощью запросов на подключение. Также легко будет определить, какой хост
+ действительно производит сканирование, если только он будет работать. Возможно вы захотите использовать IP
+ адреса вместо имен (в этом случае сети, в которых находятся фиктивные хосты, не видят вас в своих логах).
+ </para>
+
+ <para>Фиктивные хосты используются и во время фазы обнаружения хостов (используя ICMP, SYN, ACK и что там
+ еще), и во время сканирования портов. Также они используются во время удаленного определения ОС
+ (<option>-O</option>). Эта техника не работает при сканировании с целью определения версии или с целью
+ обнаружения возможности установления TCP соединения. Во время сканирования задержки принудительно
+ устанавливаются между каждой группой обманных запросов. Т.к. ловушки посылаются одной группой сразу, то это
+ может временно нарушить работу системы контроля ограничений нагрузок.</para>
+
+ <para>Использование большого количества фиктивных хостов может снизить скорость вашего сканирование и даже
+ сделать его менее точным. Также, некоторые ISP будут отфильтровывать ваши обманные пакеты, в то время как
+ некоторые вообще никак не ограничивают такого рода IP пакеты.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-S <replaceable>IP_адрес</replaceable></option> (Изменить исходный адрес)
+ <indexterm significance="normal"><primary><option>-S</option></primary></indexterm>
+ <indexterm significance="normal"><primary>spoofing source address</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>В некоторых обстоятельствах Nmap может не определить ваш адрес (в этом случае Nmap сообщит вам об этом).
+ В этом случае используйте опцию <option>-S</option>, передав ей в качестве параметра IP адрес, чтобы указать
+ интерфейс, который вы хотите использовать для отправки пакетов.</para>
+
+ <para>Также эта опция может быть использована для того, чтобы заставить "думать" цель сканирования, что ее
+ сканирует <emphasis>кто-то другой</emphasis>. Представьте компанию, которая частенько подвергается
+ сканированию портов со стороны конкурента! Как правило, в этом случае необходимо использовать также опции
+ <option>-e</option> и <option>-PN</option>. Имейте ввиду, что вы не будете получать в ответ никаких пакетов
+ (они будут отправлены на указанный вами IP адрес), поэтому Nmap не будет выводить какой-либо полезной
+ информации.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-e <replaceable>интерфейс</replaceable></option> (Использовать конкретный интерфейс)
+ <indexterm significance="normal"><primary><option>-e</option></primary></indexterm>
+ <indexterm significance="normal"><primary>interface</primary><seealso><option>-e</option></seealso></indexterm>
+ </term>
+ <listitem>
+
+ <para>Указывает Nmap, какой интерфейс использовать для отправки и приема пакетов. Nmap в состоянии
+ определить его автоматически, но сообщит вам, если не сможет.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--source-port <replaceable>номер_порта</replaceable>;</option>
+ <option>-g <replaceable>номер_порта</replaceable></option> (Задать свой номер порта)
+ <indexterm significance="preferred"><primary><option>--source-port</option></primary></indexterm>
+ <indexterm significance="preferred"><primary><option>-g</option></primary></indexterm>
+ <indexterm significance="normal"><primary>source port number</primary></indexterm>
+ </term>
+ <listitem>
+
+<para>Одной из удивительно часто встречаюшиься ошибок при конфигурировании системы безопасности является тенденция
+доверять траффику основываясь только на номере исходного порта. Легко понять как это происходит. Администратор
+устанавливает новенький брандмауэр, и его заваливают жалобы от неблагодарных пользователей, чьи приложения перестали
+работать. В частности, может не работать DNS, т.к. UDP DNS ответы от внешних серверов больше не могут войти в сеть. Еще
+одним распространенным примером ялвяется FTP. При активной FTP передаче, удаленный сервер пытается установить
+соединение с клиентом, чтобы послать запрашиваемый файл.</para>
+
+<para>Существуют безопасные методы решения этих проблем, часто в виде прокси на уровне приложений или надстроек к
+брандмауэрам. Но, к сожалению, существуют и более легкие, небезопасные методы. Принимая во внимание то, что DNS ответы
+приходят с порта 53 а FTP с порта 20, многие администраторы поддаются искушению и просто разрешают весь входящий
+трафик с этих портов. Они также часто полагают, что атакующие не заметят и не будут использовать такие дыры в
+брандмауэрах. В других случаях, администраторы считают, что это всего лишь временные меры, до тех пор пока они не
+придумают более безопасные способы решения проблем. Потом они забывают об этом.</para>
+
+<para>Перегруженные работой сетевые администраторы не единственные, кто попадается в такую ловушку. Многочисленные
+продукты просто кишат такими небезопасными правилами. Даже Microsoft заслуживает порицания. Фильтры IPsec, которые
+были установлены в Windows 2000 и Windows XP содержат внутренне правило, разрешающее весь TCP или UDP траффик с порта
+88 (Kerberos). Еще один известный случай: версии брандмауэра Zone Alarm до 2.1.25 разрешали все входящие UDP пакеты с
+порта 53 (DNS) или 67 (DHCP).</para>
+
+<para>Nmap предоставляет опции <option>-g</option> и <option>--source-port</option> (они эквиваленты) для того, чтобы
+воспользоваться такими ошибками. Просто задайте номер порта, и Nmap будет использовать его для отправки пакетов. Nmap
+должна использовать различные номера портов, чтобы точно определить ОС; также DNS запросы игнорируют опцию
+<option>--source-port</option>, т.к. для их осуществления Nmap использует системные библиотеки. Большинство TCP
+вариантов сканирований, включая SYN сканирование, полностью поддерживают эту опцию, как и UDP сканирование.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--data-length <replaceable>число</replaceable></option> (Добавить произвольные данные к посылаемым
+ пакетам)
+ <indexterm significance="normal"><primary><option>--data-length</option></primary></indexterm>
+ </term>
+ <listitem>
+ <para>В обычных условиях Nmap посылает минимальные пакеты, содержащие только заголовок. Так TCP пакеты
+ составляют 40 байтов, а запросы на ICMP эхо ответ всего 28. Эта опция указывет Nmap добавлять заданное число
+ произвольных байтов к посылаемым пакетам. Эта опция не влияет на пакеты, используемые для определения ОС
+ (<option>-O</option>) <indexterm significance="normal">
+ <primary><option>--data-length</option></primary><secondary>no effect in OS detection</secondary></indexterm>,
+ поскольку в этом случае необходимо тщательное соответствие запросов, но большинство пакетов, используемых для
+ различных видов пингования и сканирования портов поддерживают ее. Это немного замедляет сканирование, зато
+ делает его более незаметным.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--ip-options <replaceable>S|R [маршрут]|L [маршрут]|T|U ... </replaceable>;</option>
+ <option>--ip-options <replaceable>шестнадцатиричная строка</replaceable></option> (Посылать пакет с заданным ip
+ опциями)
+ <indexterm significance="normal"><primary><option>--ip-options</option></primary></indexterm>
+ <indexterm significance="normal"><primary>IP options</primary></indexterm>
+ </term>
+ <listitem>
+ <para><ulink role="hidepdf" url="http://www.rfc-editor.org/rfc/rfc791.txt">Протокол IP</ulink> предоставляет
+ несколько опций, которые могут быть заданы в заголовке пакета. В отлиии от повсеместно используемых TCP опций,
+ опций IP редко видны из соображений практичности и безопасности. Фактически, большинство роутеров Интернета
+ блокируют наиболее опасные опации, как, например, отслеживание источника. И все же опции могут быть полезны для
+ определения и манипулирования сетевым маршрутом к целевым машинам. Например, возможно вы сможете воспользоваться
+ опцией для определния маршрута до цели, когда более традиционные методы в стиле tracerout будут бесполезны. Или
+ если ваши пакеты блокируются каким-либо брандмауэром, вы можете попробовать задать маршрут с менее строгим
+ сетевым экраном.</para>
+
+ <para>Наиболее действенным способом задания IP опций является передача их значений в качестве аргументов опции
+ <option>--ip-options</option>. Каждое шестнадцатиричное значение задается с помощью
+ <literal moreinfo="none">\x</literal>, после которого следуют два цифры. Вы можете повторять символы, поставив
+ после них звездочку и указав количество повторений. Например,
+ <literal moreinfo="none">\x01\x07\x04\x00*36\x01</literal> это шестнадцатиричная строка, содержащая 36 NUL байтов.
+ </para>
+
+ <para>Nmap также предоставляет механизм сокращений для задания таких опций. Просто передайте в качестве
+ аргумента букву <literal moreinfo="none">R</literal>, <literal moreinfo="none">T</literal> или
+ <literal moreinfo="none">U</literal> для задания опции записи маршрута,
+ <indexterm significance="normal"><primary>record route IP option</primary></indexterm> записи временной метки
+ <indexterm significance="normal"><primary>record timestamp IP option</primary></indexterm> или обеих
+ соответственно. Ослабление или ужесточение отслеживания источника
+ <indexterm significance="normal"><primary>source routing</primary></indexterm>
+ может быть задано с помощью <literal moreinfo="none">L</literal> или <literal moreinfo="none">S</literal>,
+ затем пробела, а затем разделенный пробелами список IP адресов.</para>
+
+ <para>Если вы хотите заданные опции в передаваемых и получаемых пакетах, задайте опцию
+ <option>--packet-trace</option>. Для большей информации и примеров использования IP опций с Nmap, смотрите
+ <ulink url="https://seclists.org/nmap-dev/2006/q3/0052.html"/>.
+ </para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--ttl <replaceable>значение</replaceable></option> (Установить IP поле time-to-live (время жизни)
+ <indexterm significance="normal"><primary><option>--ttl</option></primary></indexterm>
+ <indexterm significance="normal"><primary>time to live (TTL)</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Устанавливает IPv4 поле time-to-live в посылаемых пакетах в соответствии с заданным значением.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--randomize-hosts</option> (Использовать произвольный порядок целей сканирования)
+ <indexterm significance="preferred"><primary><option>--randomize-hosts</option></primary></indexterm>
+ <indexterm significance="normal"><primary>randomization of hosts</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Указывает Nmap перемешать каждую группу, содержащую до 16384 хостов, перед началом сканирования. Это
+ может сделать сканирование менее заметным для различного рода систем сетевого мониторинга, особенно если вы
+ используете низкие значения таймингов. Если вы хотите перемешивать большие по размеру группы, то увеличьте
+ значение
+ <varname>PING_GROUP_SZ</varname><indexterm significance="normal">
+ <primary><varname>PING_GROUP_SZ</varname></primary></indexterm>
+ в <filename moreinfo="none">nmap.h</filename><indexterm significance="normal"><primary><filename moreinfo="none">nmap.h</filename></primary></indexterm>
+ и перекомпилируйте программу. Альтернативным решением является генерация списка целевых IP адресов
+ (<option>-sL -n -oN <replaceable>имя_файла</replaceable></option>), обработка его с помощью Perl скрипта и
+ затем передача его Nmap в качестве параметра опции
+ <option>-iL</option>.<indexterm significance="normal"><primary><option>-iL</option></primary><secondary>randomizing hosts with</secondary></indexterm>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--spoof-mac <replaceable>MAC адрес, префикс или название производителя</replaceable></option>
+ (Задать собственный MAC адрес)
+ <indexterm significance="preferred"><primary><option>--spoof-mac</option></primary></indexterm>
+ <indexterm significance="normal"><primary>spoofing MAC address</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Указывает Nmap использовать заданный MAC адрес
+ <indexterm significance="normal"><primary>MAC address</primary></indexterm>
+ для всех отсылаемых сырых ethernet фреймов. Эта опция подразумевает использование,
+ <option>--send-eth</option><indexterm significance="normal"><primary><option>--send-eth</option></primary><secondary>implied by <option>--spoof-mac</option></secondary></indexterm>
+ чтобы быть уверенным, что Nmap действительно использует пакеты уровня ethernet. MAC адрес может быть задан в
+ нескольких форматах. Если это просто число <literal moreinfo="none">0</literal>, то Nmap выбирает польностью
+ произвольный MAC адрес для сессии. Если задается строка в виде простого набора шестнадцатиричных цифр (можно
+ разделять пары двоеточиями), то Nmap будет использовать эту строку в качестве MAC адреса. Если задано менее 12-ти
+ шестнадцатиричных цифр, то Nmap заполняет остаток из 6 байтов произвольными значениями. Если в качестве аргумента
+ не передается ни 0, ни шестнадцатиричная строка, то Nmap просматривает
+ <filename moreinfo="none">nmap-mac-prefixes</filename> в поисках названия производителя, содержащего данную строку
+ (нечувствительна к регистру). Если найдено совпадение, то Nmap использует OUI производителя (3-байтный префикс),
+ <indexterm significance="normal"><primary>organizationally unique identifier (OUI)</primary><seealso><filename moreinfo="none">nmap-mac-prefixes</filename></seealso></indexterm>
+ а оставшиеся 3 байта заполняет произвольно. Примеры аргументов опции <option>--spoof-mac</option>:
+ <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> и <literal moreinfo="none">Cisco</literal>. Эта опция оказывает влияние
+ только на сканирования с использованием сырых пакетов, такие как SYN сканирование или определение ОС, а также
+ не ориентированные на соединение функции, такие как определение версии или Nmap Scripting Engine (NSE).</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--badsum</option> (Посылать пакеты с фиктивными TCP/UDP контрольными суммами)
+ <indexterm significance="normal"><primary><option>--badsum</option></primary></indexterm>
+ <indexterm significance="normal"><primary>TCP checksum</primary></indexterm>
+ <indexterm significance="normal"><primary>checksums</primary></indexterm>
+ </term>
+ <listitem>
+
+
+ <para>Указывает Nmap использовать неправильные TCP или UDP контрольные суммы для пакетов, отправляемых на
+ целевой хост. Т.к. практически все реализации стека IP просто не обрабатывают такие пакеты, то любые ответы
+ скорее всего приходят от брандмауэров или IDS, которые не обременяеют себя проверкой контрольной суммы. Более
+ детальное описание этой техники смотрите на <ulink url="https://nmap.org/p60-12.html"/></para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <indexterm class="endofrange" startref="man-bypass-ids-indexterm" significance="normal"/>
+ <indexterm class="endofrange" startref="man-bypass-filewalls-indexterm" significance="normal"/>
+ </refsect1>
+
+ <refsect1 id="man-output">
+ <title>Вывод результатов</title>
+ <indexterm class="startofrange" id="man-output-indexterm" significance="normal"><primary>output formats</primary></indexterm>
+
+ <para>Любая утилита безопасности полезна ровно настолько, насколько полезны выдаваемые ею результаты. Различные
+ сложные тесты и алгоритмы имеют мало пользы, если они не представлены в хорошо организованной и удобной для
+ понимания форме. Предоставляя разлиные способы вывода результатов Nmap используется людьми и программным
+ обеспечением, т.к. нет такого формата, который подходил бы всем. Поэтому Nmap предлагает несколько форматов,
+ включая интерактивный режим для чтения людьми и XML для удобного анализа программным обеспечением.</para>
+
+<para>В дополнении к предоставлению различных форматов вывода, Nmap предлагает опции для упрваления уровнем вербальности
+выходных данных и отладочных сообщений. Результаты могут быть направлены на стандартный вывод или в файлы, причем Nmap
+может как добавлять в конец файлов, так и создавать новые. Выходные файлы также могут быть использованы для
+продолжения остановленного сканирования.</para>
+
+<para>Nmap предоставляет пять различных выходных форматов. Формат по умолчанию называется
+<firstterm>интерактивный вывод</firstterm>,<indexterm significance="normal"><primary>interactive output</primary></indexterm>, результаты передаются на стандартный вывод (stdout).<indexterm significance="normal"><primary>stdout</primary></indexterm><indexterm significance="normal"><primary>standard output</primary></indexterm>
+Есть также
+<firstterm>нормальный вывод</firstterm>,<indexterm significance="normal"><primary>normal output</primary></indexterm>,
+который подобен интерактивному, за исключением того, что в процессе работы выводится меньше информации и предупреждений,
+т.к. предполагатеся, что эти результаты будут анализироваться после завершения сканирования, а не интерактивно.</para>
+
+<para><firstterm>XML вывод</firstterm><indexterm significance="normal"><primary>XML output</primary></indexterm>
+это один из наиболее важных выходных форматов, т.к. он может быть конвертирован в HTML, лего анализируется программами
+типа графического пользовательского интерфейса Nmap или может быть экспортирован в базу данных.</para>
+
+<para>Оставшимися двумя форматами являются
+<firstterm>grepable формат</firstterm><indexterm significance="normal"><primary>grepable output</primary></indexterm>,
+который содержит большую часть о целевом хосте в одной строке, и
+<firstterm>sCRiPt KiDDi3 0utPUt</firstterm><indexterm significance="normal"><primary sortas="script kiddie output">scR1pT kIddI3 вывод</primary></indexterm>
+для пользователей, которые считают себя |<-r4d.</para>
+
+<para>В то время как интерактивный вывод устанавливается по умолчанию и не имеет связанных с ним опций командой строки,
+опции остальных четырех форматов вывода имеют похожий синтаксис. В качестве аргумента они принимают имя файла, где
+должны храниться результаты. Возможно испльзование нескольких форматов, но каждый из них должен быть задан только один
+раз. Например, вы хотите сохранить результаты предоставляемые форматом нормального вывода для себя, и в то же время
+сохранить в формате XML результаты того же сканирования для анализа программами. Вы можете сделать это с помощью опции
+<option>-oX myscan.xml -oN myscan.nmap</option>. Для краткости здесь используются простые имена типа
+ <literal moreinfo="none">myscan.xml</literal>, но рекомендуется использовать более описательные имена. Каждый
+ выбирает имена по своему; я обычно использую длинные имена, содержащие дату сканирования и пару слов описания, и
+ помещаю эти файлы в директории с именем компании, которую я сканирую.</para>
+
+<para>Хотя с помощью этих опций информация сохраняется в файлы, Nmap по-прежнему выводит интерактивную информацию на
+стандартный вывод. Например, с помощью опции <command moreinfo="none">nmap -oX myscan.xml target</command> XML
+сохраняется в файл <filename moreinfo="none">myscan.xml</filename>, а стандартный вывод заполняется информацией, как
+если бы опция <option>-oX</option> вообще не была задана. Вы можете изменить это поведение передав в качестве
+аргумента к одному из форматов вывода символ дефиса. Это деактивирует интерактивный вывод, а на стандартный вывод
+будет пересылаться информация в заданном вами формате. Поэтому с помощью команды
+<command moreinfo="none">nmap -oX - target</command> на стандартный вывод будет пересылаться только XML.<indexterm significance="normal"><primary>output</primary><secondary>to stdout with <literal moreinfo="none">-</literal></secondary></indexterm>
+Серьезный ошибки могут выводиться в стандартный поток ошибок, stderr.<indexterm significance="normal"><primary>standard error</primary></indexterm><indexterm significance="normal"><primary>stderr</primary></indexterm>
+</para>
+
+<para>В отличии от некоторых аргументов Nmap, пробел между флагом формата файла (например, <option>-oX</option>) и
+именем файла или дефисом здесь обязателен. Если вы опустите флаги и зададите аргументы типа <option>-oG-</option> или
+<option>-oXscan.xml</option>, из-за функции обратной совместимости Nmap будут созданы файлы
+<emphasis>нормального формата</emphasis> с именами <filename moreinfo="none">G-</filename> и
+<filename moreinfo="none">Xscan.xml</filename> соответственно.</para>
+
+<para>Все эти аргументы поддерживают <function moreinfo="none">strftime</function><indexterm significance="normal"><primary><function moreinfo="none">strftime</function> conversions in the filename</primary></indexterm>
+перобразования в именах файлов. <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> и <literal moreinfo="none">%Y</literal> это то же самое что и в
+<function moreinfo="none">strftime</function>. <literal moreinfo="none">%T</literal> то же самое что и
+<literal moreinfo="none">%H%M%S</literal>, <literal moreinfo="none">%R</literal> то же самое что и
+<literal moreinfo="none">%H%M</literal> и <literal moreinfo="none">%D</literal> то же самое что и
+<literal moreinfo="none">%m%d%y</literal>. Знак <literal moreinfo="none">%</literal>, после которого следует любой
+символ просто даст этот символ (<literal moreinfo="none">%%</literal> даст вам символ процента). Поэтому опция
+<option>-oX 'scan-%T-%D.xml'</option> будет использовать XML файл в формате
+<filename moreinfo="none">scan-144840-121307.xml</filename>.</para>
+
+<para>Nmap также предоставляет опции для управления вербальностью сканирования, а также для добавления в конец файлов
+вместо их перезаписи. Все эти опции описаны ниже.</para>
+
+<variablelist><title>Форматы вывода Nmap</title>
+ <varlistentry>
+ <term>
+ <option>-oN <replaceable>имя_файла</replaceable></option> (Нормальный вывод)
+ <indexterm significance="normal"><primary><option>-oN</option></primary></indexterm>
+ <indexterm significance="normal"><primary>normal output</primary></indexterm></term>
+ <listitem>
+
+ <para>Перенаправляет <literal moreinfo="none">нормальный вывод</literal> в заданный файл. Как отмечалось выше,
+ немного отличается от <literal moreinfo="none">интерактивного вывода</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-oX <replaceable>имя_файла</replaceable></option> (XML вывод)
+ <indexterm significance="normal"><primary><option>-oX</option></primary></indexterm>
+ <indexterm significance="normal"><primary>XML output</primary></indexterm></term>
+ <listitem>
+
+
+ <para>Перенаправляет <literal moreinfo="none">XML вывод</literal> в заданный файл. Nmap включает определение
+ типа документа (DTD), что позволяет XML парсерам использовать XML вывод Nmap. Изначально это предназначалось
+ для программного использования, хотя это также позволяет людям интерпретировать XML вывод Nmap. DTD
+ определяет возможные элементы, а также перечисляет атрибуты и значения, которые они могут принимать. Последняя
+ версия всегда доступна на <ulink url="https://nmap.org/data/nmap.dtd"/>.</para>
+
+ <para>XML предоставляет формат, который легко обрабатывается программным обеспечением. Бесплатные XML парсеры,
+ доступны для всех основных языков программирования, включая C/C++, Perl, Python и Java. Люди даже написали
+ привязки для большинства из этих языков для обработки выходных данных Nmap.
+ Примерами являются <ulink url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink>
+ <indexterm significance="normal"><primary>Nmap::Scanner</primary></indexterm>
+ и <ulink url="http://nmapparser.wordpress.com/">Nmap::Parser</ulink>
+ <indexterm significance="normal"><primary>Nmap::Parser</primary></indexterm>
+ на Perl CPAN. В большинстве случаев взаимодействия какого-либо приложения и Nmap, XML является
+ предпочитаемым форматом.</para>
+
+ <para>XML вывод связывается с XSL таблицей стилей, которая используется для форматирования результатов как
+ HTML. Самым легким способом использования этой возможности является загрузка XML вывода в браузер типа
+ Firefox или IE. По умолчанию это будет работать только на машине, на которой установлена Nmap (или
+ настроенной аналогично) из-за жесткой привязки полного пути файла
+ <filename moreinfo="none">nmap.xsl</filename>. Используйте опции <option>--webxml</option> или
+ <option>--stylesheet</option> для создания XML файлов отображаемых как HTML только на подключенной к
+ интернету машине.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-oS <replaceable>имя_файла</replaceable></option> (ScRipT KIdd|3 oUTpuT)
+ <indexterm significance="normal"><primary><option>-oS</option></primary></indexterm>
+ <indexterm significance="normal"><primary sortas="script kiddie output">scR1pT kIddI3 output</primary></indexterm></term>
+ <listitem>
+
+ <para>Script kiddie формат практически такой же как и интерактивный, за тем исключением, что после окончания
+ сканирования он перерабатывается, чтобы больше подходит l33t HaXXorZ, который смотрит свысока на Nmap из-за
+ постоянного использования заглавных букв и правовисания. Лишенные чувства юмора люди должны иметь ввиду, что эта
+ опция высмеивает script kiddies, перед тем как ругать меня за то, что я якобы <quote>помогаю им</quote>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-oG <replaceable>имя_файла</replaceable></option> (grepable вывод)
+ <indexterm significance="normal"><primary><option>-oG</option></primary></indexterm>
+ <indexterm significance="normal"><primary>grepable output</primary></indexterm></term>
+ <listitem>
+
+
+<para>Это формат обсуждается последним, т.к. он нежелетален для использования. Формат вывода XML намного мощенее, а
+также особенно удобен для опытных пользователей. XML это стандарт, для которого доступны дюжины отличных парсеров, в
+то время как grepable вывод всего лишь мое простое изобретение. XML достаточно гибок для поодержания новых функций Nmap
+по мере их выхода, тогда как мне частенько приходится опускать некоторые возможности grepable вывода из-за недостатка
+места.</para>
+
+<para>Тем не менее, этот формат вывода все еще довольно популярен. Это простой формат, который просто описывает
+каждый хост в одну строку и может быть легко обработан стандартными Unix утилитами как grep, awk, cut, sed, diff и Perl.
+Даже я иногда использую этот формат вывода. Поиск хостов, на которых открыт SSH порт или работает Solaris сводится
+к простой передаче результатов утилите grep, а затем утилитам типа awk или cut для вывода желаемой информации.</para>
+
+<para>Grepable вывод состоит из комментариев (линий начинающихся с #)<indexterm significance="normal"><primary>grepable output</primary><secondary>comments in</secondary></indexterm> и строк описывающих цели. Каждая строка включает
+комбинацию из 6 помеченных полей, разделенных знаками табуляции и оканчивающихся двоеточием.
+Поля следующие: <literal moreinfo="none">Хост</literal>, <literal moreinfo="none">Порты</literal>,
+<literal moreinfo="none">Протоколы</literal>, <literal moreinfo="none">Ignored State</literal>,
+<literal moreinfo="none">ОС</literal>, <literal moreinfo="none">Seq Index</literal>,
+<literal moreinfo="none">IP ID</literal> и <literal moreinfo="none">Статус</literal>.</para>
+
+<para>Наиболее важным из этих полей обычно является <literal moreinfo="none">Порты</literal>, где дается описание
+каждого интересного порта. Это поле представляет собой разделенный запятыми список портов. Каждый элемент этого списка
+описывает один интересный порт и состоит из семи подполей, разделенных знаком косой черты (/). Подполя следующие:
+<literal moreinfo="none">Номер порта</literal>, <literal moreinfo="none">Состояние</literal>, <literal moreinfo="none">Протокол</literal>, <literal moreinfo="none">Владелец</literal>, <literal moreinfo="none">Служба</literal>, <literal moreinfo="none">SunRPC информация</literal> и <literal moreinfo="none">Информация о версии</literal>.</para>
+
+<para>Как и в случае с XML выводом, это руководство не позволяет полностью описать формат. Более подробное описание
+этого формата доступно <man>с <ulink url="https://nmap.org/book/output-formats-grepable-output.html"/>.</man>
+<notman>на <xref linkend="output-formats-grepable-output"/>.</notman>
+</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-oA <replaceable>базовое_имя_файла</replaceable></option> (Использовать все форматы вывода)
+ <indexterm significance="preferred"><primary><option>-oA</option></primary></indexterm></term>
+ <listitem><para>
+
+ Для удобства вы можете задать опцию <option>-oA <replaceable>базовове_имя_файла</replaceable></option>,
+ чтобы сохранить результаты сканирования в обычном, XML и grepable форматах сразу. Они будут содержаться
+ в файлах
+ <filename moreinfo="none"><replaceable>базовове_имя_файла</replaceable>.nmap</filename>,
+ <filename moreinfo="none"><replaceable>базовове_имя_файла</replaceable>.xml</filename> и
+ <filename moreinfo="none"><replaceable>базовове_имя_файла</replaceable>.gnmap</filename> соответственно. Как
+ и с большинством программ вы можете предварять имя файла путем к директории, например,
+ <filename moreinfo="none">~/nmaplogs/foocorp/</filename> для Unix или
+ <filename moreinfo="none">c:\hacking\sco</filename> для Windows.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <variablelist><title>Опции управления вербальностью и отладкой</title>
+ <varlistentry>
+ <term>
+ <option>-v</option> (Увеличить уровень вербальности)
+ <indexterm significance="normal"><primary><option>-v</option></primary></indexterm>
+ <indexterm significance="normal"><primary>verbosity</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Увеличение уровня вербальности влечет за собой вывод большего количества информации во время
+ сканирования. Когда Nmap предполагает, что сканирование займет больше нескольких минут, будет выводиться
+ приблизительное время завершения работы и открытые порты по мере их обнаружения. Задайте эту опцию дважды
+ или более для увеличения количества выводимой информации.
+ <indexterm significance="normal"><primary><option>-v</option></primary><secondary>giving more than once</secondary></indexterm>
+ </para>
+
+ <para>Большинство изменений касаются только интерактивного режима; некоторые также нормального и
+ script kiddie режимов. Остальные форматы вывода предназначены для обработки машинами, поэтому вся
+ необходимая информация выдается Nmap по умолчанию. Тем не менее существуют несколько изменений в других
+ режимах, когда размер выходной информации может быть существенно сокращен путем отбрасывания некоторых
+ деталей. Например, линия комментариев в grepable формате, предоставляющая список всех просканированных портов,
+ выводится только в вербальном режиме, т.к. список может быть довольно длинный.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-d [уровень]</option> (Увеличить или установить уровень отладки)
+ <indexterm significance="normal"><primary><option>-d</option></primary></indexterm>
+ <indexterm significance="normal"><primary>debugging</primary></indexterm>
+ </term>
+ <listitem>
+
+
+<para>Когда даже вербальный режим не предоставляет вам достаточную информацию, вы можете использовать отладку! Отладка
+активируется опцией командной строки (<option>-d</option>), и уровень отладочной информации может быть увеличен путем
+задания этой опции несколько раз.<indexterm significance="normal"><primary><option>-d</option></primary><secondary>giving more than once</secondary></indexterm>
+В качестве альтернативы, вы можете передать уровень отладки как аргумент опции <option>-d</option>. Например, опцией
+<option>-d9</option> устанавливается девятый уровень. Это наивысший уровень, который будет предоставлять тысячи
+строк, до тех пор пока вы не запустите очень простое сканирование небольшого количества целей.</para>
+
+<para>Отладка полезна, если вы предполагаете, что в Nmap есть баг, или если вы просто озадачены тем, что делает Nmap и
+почему. Т.к. эта функция по большому счету предназначена для разработчиков, то выходная информация не всегда понятна.
+Вы можете получить что-то типа: <computeroutput moreinfo="none">Timeout
+vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987
+rttvar: 14987 to: 100000</computeroutput>. Если вы не понимаете, что это означает, вы можете проигнорировать эту
+информацию, посмотреть в исходному коде или попросить помощи у разработчиков (<citetitle>nmap-dev</citetitle>).<indexterm significance="normal"><primary><citetitle>nmap-dev</citetitle> mailing list</primary></indexterm>
+Некоторые линии довольно понятны, но сообщения становятся более неясными с увеличением уровня отладки.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--packet-trace</option> (Отслеживание принятых и переданных пакетов и данных)
+ <indexterm significance="normal"><primary><option>--packet-trace</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Указывает Nmap выводить краткую информацию о каждом принятом и отправленном пакете. Обычно используется
+ для отладки, но также может быть полезна новичкам для понимания того, что же действительно делает Nmap. Чтобы
+ избежать вывода тысяч строк, вы можете ограничить количество портов для сканирования, например опцией
+ <option>-p20-30</option>. Если вас интересует только то, что происходит при процессе определения версии, то
+ вместо этой опции используйте <option>--version-trace</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--open</option> (Показывать только открытые (или возможно открытые) порты)
+ <indexterm significance="normal"><primary><option>--open</option></primary></indexterm>
+ </term>
+ <listitem>
+
+
+
+<para>Иногда вас интересуют только порты, к которым вы фактически можете подключиться
+(а именно <literal moreinfo="none">открытые</literal>), и вам не нужны результаты о
+<literal moreinfo="none">закрытых</literal>, <literal moreinfo="none">фильтруемых</literal> и
+<literal moreinfo="none">закрытых|фильтруемых</literal> портах. Обработка выходной информации может быть легко
+произведена с помощью таких утилит как
+<application moreinfo="none">grep</application>, <application moreinfo="none">awk</application> и
+<application moreinfo="none">Perl</application>, но по многочисленным просьбам эта функция была добавлена в Nmap.
+Задайте опцию <option>--open</option>, чтобы видеть информацию только об
+<literal moreinfo="none">открытых</literal>, <literal moreinfo="none">открытых|фильтруемых</literal> и
+<literal moreinfo="none">не фильтруемых</literal> портах. Эти три типа портов расцениваются как обычно, что означает,
+что <literal moreinfo="none">открытые|фильтруемые</literal> и <literal moreinfo="none">нефильтруемые</literal> порты
+могут быть приняты во внимание, если их набралось большое количество.
+</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--iflist</option> (Вывести список интерфейсов и роутеров)
+ <indexterm significance="normal"><primary><option>--iflist</option></primary></indexterm>
+ </term><listitem>
+ <para>Выводит список интерфейсов и системных роутеров, обнаруженных Nmap. Это полезно для отладки проблем с
+ роутерами и неправильного описания устройств (когда, например, Nmap рассматривает PPP соединение как ethernet).
+ </para> </listitem> </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--log-errors</option> (Записывать ошибки/предупреждения в выходной файл нормального режима)
+ <indexterm significance="preferred"><primary><option>--log-errors</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Обычно предупреждения и ошибки выводятся Nmap только на экран (интерактивный вывод), и не сохраняются
+ в файлах нормального режима вывода (заданных опцией <option>-oN</option>). Если вы хотите записывать эти
+ сообщения в заданные вами файлы, то используйте эту. Это может быть полезно, если вы не просматриваете
+ интерактивный вывод или хотите сохранить все ошибки во время отладки какой-либо проблемы. Сообщения об
+ ошибках и предупреждениях по-прежнему будут выводится в интерактивном режиме. Это не будет работать для
+ большинства ошибок, вызванных неправильным заданием аргументов командой строки, т.к. Nmap может не успеть
+ проинициализировать выходные файлы этих команд. В дополнении ко всему, некоторые предупреждения и ошибки
+ Nmap используют другую систему, которая еще не поддерживает данную опцию.</para>
+
+ <para>Альтернативой опции <option>--log-errors</option> может служить перенаправление интерактивного вывода
+ (включая стандартный поток ошибок) в файл. Большинство командных оболочек Unix легко справится с этим, но
+ это может быть проблематично на Windows.</para>
+
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <variablelist><title>Различные опции вывода</title>
+
+ <varlistentry>
+ <term>
+ <option>--append-output</option> (Добавлять в конец, а не перезаписывать выходные файлы)
+ <indexterm significance="normal"><primary><option>--append-output</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Когда вы передаете в качестве аргумента какому-либо флагу формата вывода (например,
+ <option>-oX</option> или <option>-oN</option>) имя файла, то по умолчанию этот файл перезаписывается. Если вы
+ хотите оставить текущее содержание файла, а новые результаты добавлять в конец, используйте опцию
+ <option>--append-output</option>. В результате все указанные файлы вывода не будут перезаписываться, а
+ новое содержимое будем добавляться в конец. Существуют некоторые сложности с XML выводом
+ (<option>-oX</option>), т.к. результирующий файл в этом случае обычно не сможет быть правильно
+ проанализирован программами, пока не вы подправите его вручную.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--resume <replaceable>имя_файла</replaceable></option> (Продолжить прерванное сканирование)
+ <indexterm significance="normal"><primary><option>--resume</option></primary></indexterm>
+ <indexterm significance="normal"><primary>resuming scans</primary></indexterm>
+ </term>
+ <listitem>
+
+
+ <para>Некоторые всесторонние варианты сканирования Nmap могут занимать очень продолжительное время - порядка
+ нескольких дней. И они не всегда работают до завершения. Различные ограничения могут не позволить Nmap
+ сканировать в течении рабочих часов, сеть может перестать работать, машина, на которой запущена Nmap может
+ быть перезагружена, или сама Nmap может вылететь. Администратор, использующий Nmap, может отменить
+ сканирование по каким-то другим причинам, просто нажав <keycap moreinfo="none">ctrl-C</keycap>. Запуск целого
+ сканирования с самого начала может быть нежелателен. К счастью, если были сохранены логи нормального
+ (<option>-oN</option>) или grepable формата (<option>-oG</option>), пользователь может продолжить
+ сканирование с того места, на котором оно было остановлено. Просто задайте опцию
+ <option>--resume</option> и передайте в качестве аргумента имя выходного файла обычного или grepable формата.
+ Никакие другие опции использовать не разрешается, т.к. Nmap будет продолжать сканирование с заданными ранее
+ опциями. Просто запустите Nmap командой
+ <command moreinfo="none">nmap --resume<replaceable>имя_лог_файла</replaceable></command>. Nmap будет
+ добавлять новые результаты к выходным файлам, определенным при предыдущем запуске. Выходные файлы формата
+ XML не поддерживаются функцией возобновления работы, т.к. комбинирование результатов двух сканирований в один
+ правильный XML файл является сложной задачей.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--stylesheet <replaceable>путь или URL</replaceable></option> (Устанавливает XSL таблицу стилей для
+ преобразования XML вывода)
+ <indexterm significance="preferred"><primary><option>--stylesheet</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Nmap использует XSL
+ <indexterm significance="normal"><primary>XSL</primary></indexterm>
+ таблицу стилей
+ <indexterm significance="normal"><primary>stylesheet</primary></indexterm>
+ <filename moreinfo="none">nmap.xsl</filename>
+ <indexterm significance="normal"><primary><filename moreinfo="none">nmap.xsl</filename></primary></indexterm>
+ для просмотра или перевода XML вывода в HTML.
+ <indexterm significance="normal"><primary>HTML from XML output</primary></indexterm>
+ XML вывод включает директиву <literal moreinfo="none">xml-stylesheet</literal>,
+ которая указывает на файл <filename moreinfo="none">nmap.xml</filename>,
+ туда, где он был размещен Nmap при установке (или на текущую рабочую директорию в Windows). Просто
+ загрузите XML вывод Nmap в любой современный веб браузер, и он самостоятельно найдет файл
+ <filename moreinfo="none">nmap.xsl</filename> для отображения результатов. Если вы хотите использовать
+ другой файл таблицы стилей, то передайте имя этого файла в качестве аргумента опции
+ <option>--stylesheet</option>. Вы должны использовать полный путь к файлу или URL. Один из примеров:
+ <option>--stylesheet https://nmap.org/data/nmap.xsl</option>. Эта опция указывает браузеру загружать
+ последнюю версию таблицы стилей с Nmap.Org. Опция <option>--webxml</option> делает то же самое, но без
+ лишнего набора на клавиатуре и запоминания. Загрузка XSL с Nmap.Org облегчает просмотр результатов на машине,
+ на которой не установленна Nmap (и поэтому нет файла <filename moreinfo="none">nmap.xsl</filename>). Поэтому
+ URL часто бывает более полезен, но локальный файл <filename moreinfo="none">nmap.xsl</filename> используется
+ по умолчанию из соображений приватности.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--webxml</option> (Загружает таблицу стилей с Nmap.Org)
+ <indexterm significance="preferred"><primary><option>--webxml</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Эта опция является просто псевдонимом
+ <option significance="preferred">--stylesheet https://nmap.org/data/nmap.xsl</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option significance="preferred">--no-stylesheet</option> (Убрать объявление XSL таблицы стилей из XML)
+ <indexterm significance="preferred"><primary><option>--no-stylesheet</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Задайте эту опцию, чтобы не ассоциировать какую-либо XSL таблицу стилей с XML выводом. В этом случае
+ директива <literal moreinfo="none">xml-stylesheet</literal> опускается.</para>
+ </listitem>
+ </varlistentry>
+
+
+
+ </variablelist>
+ <indexterm class="endofrange" startref="man-output-indexterm" significance="normal"/>
+ </refsect1>
+
+ <refsect1 id="man-misc-options">
+ <title>Различные опции</title>
+ <para>В этой секции описываются некоторые важные (и не очень важные) опции, которые не подходят к другим
+ категориям.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-6</option> (Включает IPv6 сканирование)
+ <indexterm significance="preferred"><primary><option>-6</option></primary></indexterm>
+ <indexterm significance="normal"><primary>IPv6</primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Начиная с 2002 года Nmap имеет поддержку протокола IPv6 для своих наиболее используемых функций.
+ В частности, пинг сканирование (только TCP), выявление возможности установки соединения и определение
+ версии имеют поддержку протокола IPv6. Синтаксис команд такой же как и обычный за исключением того, что
+ вы добавляете опцию <option>-6</option>. Конечно же, вы должны использовать синтаксис IPv6, если вы
+ указываете адрес, а не имя хоста. Адрес может выглядеть как
+ <literal moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, поэтому лучше использовать
+ имена хостов. Вывод выглядит так же как и обычный, только на линии <quote>интересных портов</quote> будет
+ IPv6 адрес.</para>
+
+ <para>Хотя протокол IPv6 еще не завоевал весь мир, в некоторых (обычно Азиатских) странах он используется
+ интенсивно, и большинство современных операционных систем поддерживают его. Чтобы использовать Nmap с
+ протоколом IPv6, и источник и цель сканирования должны быть настроены на работу с ним. Если ваш ISP
+ (как большинство из них) не предоставляет вам IPv6 адрес, вы можете использовать широко распространенный
+ и работающий с Nmap сервис Tunnel Brokers. Я использую бесплатный сервис
+ <indexterm significance="normal"><primary>IPv6 tunnel broker</primary></indexterm>
+ на <ulink url="http://www.tunnelbroker.net"/>. Другие подобные сервисы
+ <ulink url="http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers">перечислены на Wikipedia</ulink>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-A</option> (Опции агрессивного сканирования)
+ <indexterm significance="preferred"><primary><option>-A</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Этой опцией активируется набор агрессивных опций сканирования. Я еще не решил до конца, какие же
+ опции будут использоваться. Сейчас этот набор включает определение ОС (<option>-O</option>),
+ сканирование с целью определения версии (<option>-sV</option>), сканирование с использованием скриптов
+ (<option>-sC</option>) и трассировку (<option>--traceroute</option>).
+ <indexterm significance="normal"><primary><option>-A</option></primary><secondary>features enabled by</secondary></indexterm>
+ Возможно в будущем будут добавлены другие функции. Целью является создание всестороннего набора опций
+ сканирования, чтобы людям не надо было запоминать большое количество флагов. Тем не менее, т.к. сканирование
+ с использованием скриптов с настройками по умолчанию расценивается как "назойливое", вам не следует
+ использовать опцию <option>-A</option> для сканирования целевых сетей без разрешения. Эта опция активирует
+ только возможности, но не устанавливает опции времени (timing) (такие как <option>-T4</option>) или опции
+ вербального вывода (<option>-v</option>), которые вы, возможно, хотели бы использовать.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--datadir <replaceable>имя_директории</replaceable></option> (Определяет место расположения файлов
+ Nmap)
+ <indexterm significance="preferred"><primary><option>--datadir</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Во время работы Nmap получает некоторые данные из файлов
+ <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> и
+ <filename moreinfo="none">nmap-os-db</filename>. Если место расположение какого-либо из этих файлов было
+ задано конкретно (используя опции <option>--servicedb</option> или <option>--versiondb</option>), то оно
+ используется для этого файла. Далее Nmap ищет эти файлы в директории, заданной опцией
+ <option>--datadir</option> (если задана). Если файлы не были найдены там, то Nmap ищет их в директории,
+ определенной переменной окружения NMAPDIR <indexterm significance="normal"><primary><envar>NMAPDIR</envar> environment variable</primary></indexterm>.
+ Далее идут
+ <filename moreinfo="none">~/.nmap</filename><indexterm significance="normal"><primary sortas="nmap directory"><filename moreinfo="none">.nmap</filename> directory</primary></indexterm>
+ для реальных и действующих в данный момент UIDs (только POSIX системы) или расположение исполняемого файла
+ Nmpa (только Win32), и далее <filename moreinfo="none">/usr/local/share/nmap</filename> или
+ <filename moreinfo="none">/usr/share/nmap</filename>. В последнюю очередь Nmap будет искать эти файлы в
+ текущей директории.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--servicedb <replaceable>файл_служб</replaceable></option> (Задает определенный файл служб)
+ <indexterm significance="preferred"><primary><option>--servicedb</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Указывает Nmap использовать заданный файл служб вместо файла
+ <filename moreinfo="none">nmap-services</filename>, который поставляется вместе с Nmap. Использование этой
+ опции также подразумевает использование опции быстрого сканирования (<option>-F</option>). Смотрите описание
+ <option>--datadir</option> для более подробной информации о файлах данных Nmap.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--versiondb <replaceable>файл_запросов_служб</replaceable></option>
+ (Задает определенный файл запросов для служб)
+ <indexterm significance="preferred"><primary><option>--versiondb</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Указывает Nmap использовать заданный файл запросов для служб вместо файла
+ <filename moreinfo="none">nmap-service-probes</filename>, который поставляется вместе с Nmap. Смотрите описание
+ <option>--datadir</option> для более подробной информации о файлах данных Nmap.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--send-eth</option> (Использовать сырой уровень ethernet)
+ <indexterm significance="preferred"><primary><option>--send-eth</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Указывает Nmap посылать пакеты с использование более низкого сырого уровня ethernet, а не с
+ использованием более высокого уровня IP (сетевого). По умолчанию Nmap выбирает тот способ, который
+ больше подоходит для используемой платформы. Сырые сокеты (уровень IP)
+ <indexterm significance="normal"><primary>raw sockets</primary></indexterm> в общем случае более эффективны
+ для Unix машин, в то время как использование ethernet фреймов необходимо для операционных систем Windows, т.к.
+ Microsoft отключила в них поддержку сырых сокетов. Nmap по-прежнему использует сырые IP пакеты на Unix не
+ смотря на эту опцию, когда нет другого выбора (как в случае с не-ethernet соединениями).</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--send-ip</option> (Использовать сырой уровень IP)
+ <indexterm significance="preferred"><primary><option>--send-ip</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Указывает Nmap посылать пакеты с использование сырых IP сокетов, а не с использованием более низкого
+ уровня ethernet фреймов. Это дополнение к опции <option>--send-eth</option> описанной выше.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--privileged</option> (Подразумевать, что у пользователя есть все привилегии)
+ <indexterm significance="preferred"><primary><option>--privileged</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Указывает Nmap, что у нее есть необходимые привилегии для использования сырых сокетов,
+ пакетного сниффинга и сходных операций, которые обычно требуют привилегий пользователя root на Unix системах.
+ <indexterm significance="normal"><primary>privileged users</primary>
+ </indexterm><indexterm significance="normal">
+ <primary>authorized users</primary><see>privileged users</see></indexterm> По умолчанию Nmap завершает
+ работу, если были запрошены такие опреации, но <function moreinfo="none">geteuid</function> не нуль.
+ Опцию <option>--privileged</option> хорошо использовать на системах с возможностями ядра Linux или подобных,
+ которые могут быть сконфигурированы так, что непривилегированные пользовтели смогут осуществлять сканирование
+ с использованием сырых сокетов. Удостоверьтесь, что эта опция указана перед любымими опциями требующими
+ привилегий (сканирование SYN, определение ОС и т.д.). Переменная окурежния
+ <envar>NMAP_PRIVILEGED</envar><indexterm significance="normal">
+ <primary><envar>NMAP_PRIVILEGED</envar> environment variable</primary></indexterm>
+ может быть установлена как равнозначная альтернатива опции <option>--privileged</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--unprivileged</option> (Подразумевать, что у пользователя нет привилегий для использования сырых
+ сокетов)
+ <indexterm significance="preferred"><primary><option>--unprivileged</option></primary></indexterm>
+ <indexterm significance="normal"><primary>unprivileged users</primary></indexterm>
+ </term>
+ <listitem>
+
+
+ <para>Эта опция противоположна <option>--privileged</option>. Указывает Nmap, что у пользователя нет
+ привилегий для использования сырых сокетов и сниффинга. Полезна для тестирования, отладки или когда по
+ какой-то причине на вашей системе не работае механизм сырых сокетов. Переменная окружения
+ <envar>NMAP_UNPRIVILEGED</envar><indexterm significance="normal"><primary><envar>NMAP_UNPRIVILEGED</envar> environment variable</primary></indexterm>
+ может быть установлена как равнозначная альтернатива опции <option>--unprivileged</option>.</para>
+
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--release-memory</option> (Освободить память перед завершением работы)
+ <indexterm significance="normal"><primary><option>--release-memory</option></primary></indexterm>
+ </term>
+ <listitem>
+
+ <para>Эта опция полезна только во время отладки утечки памяти. Заставляет Nmap освободить занянутю память
+ перед завершением работы, что облегчает задачу обнаружения действительной утечки памяти. В обычном режиме
+ работы Nmap пропускает этот шаг, так ОС делает это самостоятельно при закрытии процесса.</para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>
+ <option>-V</option>; <option>--version</option> (Вывести номер версии)
+ <indexterm significance="normal"><primary><option>-V</option></primary></indexterm>
+ <indexterm significance="normal"><primary><option>--version</option></primary></indexterm>
+ </term>
+ <listitem>
+ <para>Выводит номер версии Nmap и завершает работу.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-h</option>; <option>--help</option> (Вывести страницу помощи)
+ <indexterm significance="normal"><primary><option>-h</option></primary></indexterm>
+ <indexterm significance="normal"><primary><option>--help</option></primary></indexterm>
+ </term>
+ <listitem>
+ <para>Выводит небольшую страницу помощи с наиболее часто используемыми командами и опциями. Запуск Nmap без
+ аргументов приводит к такому же результату.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-runtime-interaction">
+ <title>Взаимодействие во время выполнения<indexterm significance="normal"><primary>runtime interaction</primary></indexterm></title>
+
+ <para>Во время работы Nmap, все нажатые клавиши фиксируются. Это позволяет вам взаимодействовать с программой
+ не прерывая и не перезапуская ее. С помощью некоторых клавиш можно изменить опции сканирования, при
+ использовании же других будут выведены сообщения о текущем статусе сканирования. Существует договоренность, что
+ <emphasis>строчные буквы увеличивают</emphasis> количество выводимой информации, а
+ <emphasis>прописные буквы уменьшают</emphasis>. Для справки можно нажать ‘<emphasis>?</emphasis>’.</para>
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>v</option> / <option>V</option>
+ </term>
+ <listitem>
+ <para>Увеличить / уменьшить уровень вербальности</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>d</option> / <option>D</option>
+ </term>
+ <listitem>
+ <para>Увеличить / уменьшить отладочный уровень</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>p</option> / <option>P</option>
+ </term>
+ <listitem>
+ <para>Включить / выключить отслеживание пакетов</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>?</option>
+ </term>
+ <listitem>
+ <para>Вывести справку о взаимодействии во время выполнения</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ Что-либо другое
+ </term>
+ <listitem>
+ <para>Выведет сообщение типа:</para>
+ <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up),
+ 5 undergoing Service Scan</para>
+ <para>Service scan Timing: About 28.00% done; ETC: 16:18
+ (0:00:15 remaining)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-examples">
+ <title>Примеры</title>
+ <para>Здесь приведены несколько примеров использования Nmap, от самых простых до более изощренных. Некоторые
+ реально существующие IP адреса и доменные имена использованны для того, чтобы сделать примеры более конкретными.
+ На их место вы должны подставить адреса/имена из <emphasis>вашей собственной сети.</emphasis>. В то время как
+ сканирование портов некоторой сети не является незаконным, некоторым администраторам сетей может не понравиться
+ своевольное сканирование их сетей и они могут пожаловаться. Для начала постарайтесь получить разрешение.</para>
+
+ <para>В целях тестирования у вас есть разрешение сканировать <literal moreinfo="none">scanme.nmap.org</literal>.
+ Вы можете использовать сканирование с помощью Nmap, но не тестировать эксплоиты или производить атаки отказа в
+ обслуживании. Для того чтобы не перегружать канал, пожалуйста, не производите более дюжины сканирований этого
+ хоста в день. В случае злоупотребления этим свободным для сканирования хостом, он будет отключен и Nmap выдаст
+ <computeroutput moreinfo="none">Failed to resolve given hostname/IP:
+ scanme.nmap.org</computeroutput> (не могу разрешить данное имя/IP: scanme.nmap.org). Все выше сказанное также
+ относится и к хостам <literal moreinfo="none">scanme2.nmap.org</literal>,
+ <literal moreinfo="none">scanme3.nmap.org</literal>, и так далее, несмотря на то, что эти хосты еще не
+ существуют.</para>
+
+ <para>
+ <indexterm significance="normal"><primary><option>-v</option></primary><secondary>example of</secondary></indexterm>
+ <command moreinfo="none">nmap -v scanme.nmap.org</command>
+ </para>
+ <para>Этой командой будут просканированы все TCP порты машины
+ <literal moreinfo="none">scanme.nmap.org</literal> . Опция <option>-v</option>
+ активирует вербальный режим.</para>
+ <para>
+ <indexterm significance="normal"><primary><option>-sS</option></primary><secondary>example of</secondary></indexterm>
+ <indexterm significance="normal"><primary><option>-O</option></primary><secondary>example of</secondary></indexterm>
+ <command moreinfo="none">nmap -sS -O scanme.nmap.org/24</command>
+ </para>
+ <para>Этой командой будет произведено скрытное SYN сканирование всех 255 машин сети <quote>класса C</quote>, в
+ которой расположена машина Scanme. Также будет произведена попытка определения операционной системы на каждом
+ работающем хосте. Из-за SYN сканирования и опции определения ОС данная команда требует привилегий
+ суперпользователя (root).</para>
+ <para>
+ <indexterm significance="normal"><primary><option>-p</option></primary><secondary>example of</secondary></indexterm>
+ <command moreinfo="none">nmap -sV -p 22,53,110,143,4564
+ 198.116.0-255.1-127</command>
+ </para>
+
+ <para>Запускает перебор хостов и TCP сканирование первой половины всех (из доступных 255) 8 битных подсетей
+ адресного пространства 198.116 класса B. Также проверяет запущены ли SSH, DNS, POP3 или IMAP с использованием их
+ стандартных портов, а также использует ли какое-нибудь приложение порт 4564. Если какой-нибудь из этих портов
+ открыт, то будет произведена попытка определения работающего с этим портом приложения.</para>
+
+ <para>
+ <indexterm significance="normal"><primary><option>-iR</option></primary><secondary>example of</secondary></indexterm>
+ <indexterm significance="normal"><primary><option>-PN</option></primary><secondary>example of</secondary></indexterm>
+ <command moreinfo="none">nmap -v -iR 100000 -PN -p 80</command>
+ </para>
+
+ <para>Указывает Nmap выбрать случайным образом 100,000 хостов и просканировать их на наличие запущенных на них
+ веб-серверов (порт 80). Перебор хостов отключен опцией <option>-PN</option>, т.к. посылка пары предварительных
+ запросов с целью определения доступности хоста является нецелесообразной, когда вас интересует всего один порт на
+ каждом хосте.</para>
+
+ <para>
+ <indexterm significance="normal"><primary><option>-oX</option></primary><secondary>example of</secondary></indexterm>
+ <indexterm significance="normal"><primary><option>-oG</option></primary><secondary>example of</secondary></indexterm>
+ <command moreinfo="none">nmap -PN -p80 -oX logs/pb-port80scan.xml -oG
+ logs/pb-port80scan.gnmap 216.163.128.20/20</command>
+ </para>
+ <para>Этой командой будут просканированы 4096 IP адресов (без предварительного пингования), а выходные данные
+ будут сохранены в фомате XML и формате, удобном для просмотра утилитой grep (grepable формат).</para>
+
+ </refsect1>
+
+ <refsect1 id="man-bugs">
+ <title>Ошибки</title>
+ <indexterm significance="normal"><primary>bugs, reporting</primary></indexterm>
+
+ <para>Как и ее автор, Nmap не идеальна. Но вы можете сделать ее лучше посылая нам отчеты об ошибках или даже
+ написав патч. Если Nmap ведет себя не так, как вы ожидаете, то для начала обновитесь до последней версии с
+ <ulink url="https://nmap.org"/>. Если проблема останется, то выясните, не была ли эта проблема уже обнаружена кем-то.
+ Попробуйте поискать сообщения об ошибках на нашей странице поиска <ulink url="https://insecure.org/search.html"/>
+ или в Google. Также попробуйте просмотреть <citetitle>nmap-dev</citetitle> архивы на <ulink url="https://seclists.org/"/>.<indexterm significance="normal"><primary><citetitle>nmap-dev</citetitle> mailing list</primary></indexterm>
+ Также прочитайте полностью страницу руководства. Если ничего не помогло, отправьте сообщение об ошибке на
+ <email>dev@nmap.org</email>. Пожалуйста, включите всю известную вам информацию об ошибке, какую версию
+ Nmap вы используете, и на какой операционной системы вы запускаете Nmap. Сообщения о проблемах и вопросы по
+ использованию Nmap отправленные на <email>dev@nmap.org</email> имеют больше шансов на ответ, чем если бы
+ вы послали их непосредственно Fyodor'у. Если вы подпишитесь на рассылку nmap-dev перед отправкой сообщения,
+ то ваше сообщение будет обработано быстрее. Подпишитесь на рассылку на <ulink url="https://nmap.org/mailman/listinfo/dev"/>.</para>
+
+ <para>Патчи для исправления ошибок даже лучше просто сообщений об ошибках. Базовые инструкции по созданию патчей
+ доступны по адресу <ulink url="https://nmap.org/data/HACKING"/>. Созданные вами патчи можно отправить на
+ <citetitle>nmap-dev</citetitle> (рекомендуется) или непосредственно Fyodor'у.</para>
+ </refsect1>
+
+ <refsect1 id="man-author">
+ <title>Автор</title>
+ <para>Fyodor
+ <email>fyodor@nmap.org</email>
+ (<ulink url="https://insecure.org"/>)
+ </para>
+
+ <para>На протяжении многих лет сотни людей внесли ценный вклад в разработку Nmap. Все изменения и улучшения
+ подробно описаны в файле
+ <filename moreinfo="none">CHANGELOG</filename><indexterm significance="normal"><primary>changelog</primary></indexterm>, который распространяется вместе с Nmap, а также доступен на
+ <ulink url="https://nmap.org/changelog.html"/>.</para>
+
+ </refsect1>
+
+ <refsect1 id="man-legal">
+ <title>Юридические уведомления</title>
+
+<refsect2 id="translation-disclaimer">
+ <title>Unofficial Translation Disclaimer / Отречение неофициального перевода</title>
+
+ <para>This is an unnofficial translation of the <ulink url="https://nmap.org/book/man-legal.html">Nmap
+ license details</ulink> into Russian. It was not written by Insecure.Com LLC, and does not legally state the
+ distribution terms for Nmap -- only the original English text does that. However, we hope that this translation
+ helps Russian speakers understand the Nmap license better.</para>
+
+ <para>Это неофициальный перевод <ulink url="https://nmap.org/book/man-legal.html">лицензии Nmap</ulink> на
+ русский язык. Он не был осуществлен Insecure.Com LLC, и не определяет с юридической точки зрения условия
+ распространения Nmap -- это делает только оригинальный английский вариант. Тем не менее, мы надеемся, что этот
+ перевод поможет русскоязычным пользователям лучше понять лицензию Nmap.</para>
+
+</refsect2>
+
+<refsect2 id="nmap-copyright">
+ <title>Авторское право и лицензия Nmap</title>
+ <indexterm significance="normal"><primary>copyright</primary></indexterm>
+ <indexterm significance="normal"><primary>GNU General Public License</primary></indexterm>
+
+<para>Nmap Security Scanner (C) 1996-2008 Insecure.Com LLC. Nmap также является зарегистрированным товарным знаком
+Insecure.Com LLC. Эта программа является свободным программным обеспечением; вы можете распространять и / или
+модифицировать его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation;
+Версия 2 с уточнениями и исключениями, описанными ниже. Лицензия гарантирует ваше право использовать, модифицировать и
+распространять данное программное обеспечение на определенных условиях. Если вы хотите встроить Nmap технологии в
+собственное программное обеспечение, мы продаем альтернативные лицензии (обращаться <email>sales@insecure.com</email>).
+Десятки поставщиков программного обеспечения, уже имеют лицензии на использование Nmap технологий, таких, как
+обнаружение хостов, сканирование портов, определение OS и определение версии.</para>
+
+
+<para>Имейте ввиду, что GPL накладывает важные ограничения на <quote>производные приложения</quote>, хотя и не дает
+четкого определения этого термина. Чтобы избежать недоразумений, мы считаем, что приложение является
+<quote>производным</quote>, если в нем реализованы любые из следующих пунктов:</para>
+
+<itemizedlist>
+<listitem><para>Используется исходный код Nmap</para></listitem>
+<listitem><para>Используются авторские файлы данных Nmap, такие, как
+ <filename moreinfo="none">nmap-os-db</filename> или
+ <filename moreinfo="none">nmap-service-probes</filename>.</para></listitem>
+<listitem><para>Запускается Nmap, и анализируются результаты работы (в противовес обычным командным оболочкам, которые
+просто отображают необработанные выходные данные Nmap и поэтому не являются производными приложениями.)</para></listitem>
+<listitem><para>Nmap интегрируется/включается/агрегируется в собственный исполняемый инсталлятор, как предоставляемые,
+например, с помощью InstallShield.</para></listitem>
+<listitem><para>Используется ссылка на библиотеку или запускается программа, в которой реализованы любые из
+перечисленных пунктов.</para></listitem>
+</itemizedlist>
+
+<para>В термин <quote>Nmap</quote> следует также включать любые части Nmap или производные от нее приложения. Это
+список не является полным, мы просто хотим сделать ясным наше понимание производных приложений с помощью некоторых
+общих примеров. Эти ограничения имеют силу, только когда вы действительно распростаняете Nmap. Например, ничего
+не мешает вам написать и продавать свой собственный пользовательский интерфейс для Nmap. Распространяйте его
+самостоятельно, а для скачивания Nmap направляйте людей на <ulink url="https://nmap.org"/>.</para>
+
+<para>Мы не считаем, что данные ограничения должны быть добавлены к лицензии GPL, мы просто приводим наше понимание
+<quote>производных приложений</quote> по отношению к нашему продукту с GPL лицензией. Это похоже на то, как Линус
+Торвальдс (Linus Torvalds) опубликовал свое понимание <quote>производных приложений</quote> применимо к модулям ядра
+Linux. Наше трактовка относится только к Nmap, мы не говорим ни о каких других GPL продуктах.</para>
+
+<para>Если у вас есть какие-либо вопросы о GPL ограничениях по использованию Nmap в не-GPL продуктах, мы с радостью
+вам поможем. Как уже упоминалось выше, мы предоставляем альтернативную лицензию для интегрирования Nmap в собственные
+программные продукты. Эти контракты были проданы многим производителям программного обеспечения и обычно они включают:
+бессрочную лицензию, предоставление приоритетной поддержки и обновлений, а также содействие спонсированию
+продолжающейся разработки Nmap технологии. Для дальнейшей информации пишите на <email>sales@insecure.com</email>.</para>
+
+<para>В качестве исключения из GPL соглашений, Insecure.Com LLC предоставляет право связывать исходный код этой
+программы с любой версией OpenSSL библиотеки, которая распространяется по лицензии приведенной в файле
+<filename moreinfo="none">COPYING.OpenSSL</filename>, а также распространять эту комбинацию.<indexterm significance="normal"><primary>OpenSSL</primary><secondary>linking exception</secondary></indexterm>
+Вы должны удовлетворять условиям лицензии GNU GPL во всем, что касается кода не использующего OpenSSL. Если вы
+модифицируете этот файл, вы можете расширить это исключение на вашу версию файла, но вы не обязаны это делать.</para>
+
+<para>Если вы получаете эти файлы в лицензионным соглашением или контрактом, где указаны отличные от этих условий, то
+альтернативные условия лицензионного соглашения имеют преимущество над этими комментариями.</para>
+</refsect2>
+
+<refsect2 id="man-copyright">
+ <title>Creative Commons License для этого справочного руководства Nmap</title>
+ <para><citetitle>Справочно Руководство Nmap</citetitle> это (C) 2005-2008 Insecure.Com LLC. Оно распространяется
+ под лицензией <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative Commons
+ Attribution License</ulink> версии 2.5. Это позволяет вам распространять и модифицировать его по вашему усмотрению,
+ до тех пор пока вы считаетесь с исходным источником. В качестве альтернативы вы можете считать, что этот документ
+ распространяется по той же лицензии, что и сама Nmap (описывается выше).</para>
+</refsect2>
+
+<refsect2 id="source-contrib">
+ <title>Доступность исходного кода и общественные вклады</title>
+
+<para>Мы предоставляем исходный код, потому что верим, что пользователи должны иметь право знать, что именно программа
+будет делать до того, как запустят ее. Это также позволяет вам проверять программное обеспечение на наличие дыр в
+безопасности (пока не было найдено ни одной).</para>
+
+<para>Исходный код также позволяет вам портировать Nmap на новые платформы, исправлять баги и добавлять новые
+возможности. Всячески поощряется посылка своих изменений на <email>fyodor@nmap.org</email> для возможного
+их включения в основной дистрибутив. Отправляют эти изменения Fyodor'у или разработчикам на Insecure.Org,
+пердполагается, что вы предоставляете Fyodor'у и Insecure.Com LLC безграничное, не эксклюзивное право на повторное
+использование, модификацию и изменение лицензии кода. Nmap всегда будет доступна как
+Open Source продукт,<indexterm significance="normal"><primary>open source</primary></indexterm>
+это важно, т.к. невозможность изменения лицензии на кода уже повлекла за собой большие проблемы для других
+Free Software проектов (как, например, KDE и NASM). Вы также порой позволяем третьим сторонам изменять лицензию, как
+описывалось выше. Если вы хотите использовать собственные лицензионные условия для ваших изменений, сообщите об этом,
+когда будете их отсылать.</para>
+</refsect2>
+
+<refsect2 id="no-warranty"><title>Отсутствие гарантии<indexterm significance="normal"><primary>warranty (lack of)</primary></indexterm></title>
+
+<para>Эта программа распространяется в надежде на то, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без
+какой-либо подразумеваемой ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КАКОЙ-ЛИБО ОПРЕДЕЛЕННОЙ ЗАДАЧИ. Смотрите GNU
+General Public License v2.0 для подробностей <ulink url="http://www.gnu.org/licenses/gpl-2.0.html"/>, или в файле
+<filename moreinfo="none">COPYING</filename>, который распространяется с Nmap.</para>
+
+<para>Также следует принять во внимание, что время от времени Nmap вызывает крах плохо написанных приложений, TCP/IP
+стеков и даже операционных систем.<indexterm significance="normal"><primary>crashing targets</primary></indexterm>
+Хотя такие случаи и чрезвычайно редки, не следует о них забывать. <emphasis>Nmap никогда не следует использовать для
+сканирования критичных систем</emphasis>, пока вы не готовы мириться в временем простоя. Мы признаем, что Nmap может
+вызвать крах ваших систем или сетей, и отрицаем всякую ответственность за проблемы или ущерб, нанесенные Nmap.</para>
+</refsect2>
+
+<refsect2 id="inappropriate-usage"><title>Несоответствующее использование</title>
+<para>Из-за возможного риска краха и из-за того, что некоторые личности используют Nmap для предварительного
+исследования систем перед их атакой, некоторые администраторы могут быть недовольны тем, что их система была
+просканирована. Поэтому, перед тем как сканировать сеть, разумно получить на это разрешение.</para>
+
+<para>Nmap не следует устанавливать с особыми привилегиями (например, suid root) из соображений безопасности.<indexterm significance="normal"><primary>setuid, why Nmap shouldn't be</primary></indexterm>
+</para>
+</refsect2>
+
+<refsect2 id="third-party-soft"><title>Стороннее программное обеспечение</title>
+
+<para>Этот продукт содержит программное обеспечение разработанное
+<ulink role="hidepdf" url="http://www.apache.org">Apache Software Foundation</ulink>. Модифицированная версия библиотеки
+<ulink role="hidepdf" url="http://www.tcpdump.org">Libpcap portable packet capture library</ulink><indexterm significance="normal"><primary>libpcap</primary></indexterm>
+распространяется вместе с Nmap. Windows версия Nmap использует вместо Libpcap производную от нее библиотеку
+<ulink role="hidepdf" url="http://www.winpcap.org">WinPcap library</ulink><indexterm significance="normal"><primary>WinPcap</primary></indexterm>.
+Поддержка регулярных выражений предоставляется библиотекой
+<ulink role="hidepdf" url="http://www.pcre.org">PCRE library</ulink>,<indexterm significance="normal"><primary>Perl Compatible Regular Expressions (PCRE)</primary></indexterm>,
+которая является программным обеспечением с открытым исходным кодом, написана Филипом Хазелом (Philip Hazel).<indexterm significance="normal"><primary>Hazel, Philip</primary></indexterm>
+Некоторые функции по работе с сырыми сокетами используют сетевую библиотеку
+<ulink role="hidepdf" url="http://libdnet.sourceforge.net">Libdnet</ulink><indexterm significance="normal"><primary>libdnet</primary></indexterm>, написанную Дагом Сонгом (Dug Song).<indexterm significance="normal"><primary>Song, Dug</primary></indexterm>
+Модифицированная версия распространяется вместе с Nmap. Nmap может быть связана с
+<ulink role="hidepdf" url="http://www.openssl.org">OpenSSL
+cryptography toolkit</ulink><indexterm significance="normal"><primary>OpenSSL</primary></indexterm>
+поддержки SSL определения версии. Скриптовый движок Nmap (Nmap Scripting Engine) использует встроенную версию
+<ulink role="hidepdf" url="http://www.lua.org">языка программирования Lua</ulink>.<indexterm significance="normal"><primary>Lua programming language</primary></indexterm>
+Все описанное здесь стороннее проограммное обеспечение бесплатно распространяется на основе лицензии в стиле BSD.</para>
+
+</refsect2>
+
+<refsect2 id="us-export"><title>Классификация по контролю экспорта Соединенных Штатов<indexterm significance="normal"><primary>export control</primary></indexterm></title>
+
+<para>U.S. Export Control: Insecure.Com LLC указывает, что Nmap попадает под U.S. ECCN (число в классификации по
+контролю экспорта) 5D992. Эта категория называется <quote>Программное обеспечение информационной безопасности не
+контролируемое 5D002</quote>. Единственным ограничем в этой категории является AT (анти-терроризм), под который
+попадают почти все товары, что запрещает экспорт в горстку не стран типа Ирана и Северной Кореи. Поэтому экспорт Nmap
+не требует какой-либо специальной лицензии, разрешения или других санкций со стороны государства.</para>
+</refsect2>
+
+ </refsect1>
+</refentry>
+<indexterm class="endofrange" startref="man-nmap1-indexterm" significance="normal"/>
+
+</article>
diff --git a/docs/man-xlate/nmap-man-sk.xml b/docs/man-xlate/nmap-man-sk.xml new file mode 100644 index 0000000..c028088 --- /dev/null +++ b/docs/man-xlate/nmap-man-sk.xml @@ -0,0 +1,3015 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- $Id: manhtml.xml 2991 2005-12-12 10:21:33Z fyodor $ --> +<article id="man" lang="sk"> +<artheader> + <title>Nmap - Referencna prirucka (Man Page,Slovak translation)</title> +</artheader> +<refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Nmap - Referencna prirucka</refmiscinfo> + </refmeta> + <refnamediv id="man-name"> + <refname>nmap</refname> + <refpurpose>Nastroj na skumanie siete a scanner bezpecnosti/portov</refpurpose> + </refnamediv> + <!-- body begins here --> + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis sepchar=" "> + <command moreinfo="none">nmap</command> + <arg choice="opt" rep="repeat"> + <replaceable>Typ scanu</replaceable> + </arg> + <arg choice="opt" rep="norepeat"> + <replaceable>Moznosti</replaceable> + </arg> + <arg choice="req" rep="norepeat"> + <replaceable>Specifikacia cielovej stanice</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1 id="man-description"> + <title>Opis</title> + <web> + <note><para> + Tento dokument popisuje Nmap verzia 3.95. je k dispozícii v angličtine Najnovšie dokumentácie na + <ulink url="https://nmap.org/book/man.html" />.</para></note> + </web> + + <para>Nmap (<quote>Network Mapper</quote>) je open-source nastrojom na skumanie siete a kontrolu bezpecnosti. + Bol vyvinuty s ohladom na rychle scanovanie velkych sieti, hoci funguje vyborne aj pri nasadeni proti jednotlivym hostitelom. + Nmap neobvyklymi sposobmi pouziva neupravene IP pakety na urcenie hostitelskych stanic v sieti, + sluzieb, ktore (aplikacia + Nmap neobvyklym sposobom pouziva neupravene IP pakety na urcenie cisla a verzie) tieto hostitelske stanice ponukaju, + na akom operacnom systeme + (a verziach OS) bezia, aky typ paketovych filtrov alebo firewallu je pouzity, + a mnoho dalsich charakteristickych veci. Hoci sa Nmap bezne pouziva na vykonavanie kontrol bezpecnosti, + mnoho systemovych a sietovych administratorov ho vyuzije aj pri obvyklych ulohach ako napriklad + obsah siete, sprava casovych rozvrhnuti upgradeovania sluzby ci + monitorovanie uptimu hostitelskej stanice alebo sluzby. + </para> + + <para> Vystup aplikacie Nmap je tvoreny zoznamom scanovanych cielovych stanic s dodatocnymi informaciami o kazdom + z nich v zavislosti na pouzitych moznostiach. + Klucovou medzi tymito informaciami je <quote>tabulka zaujimavych portov + </quote>. Tato tabulka obsahuje zoznam cisla portu a protokolu, nazov sluzby + a stav. Stav moze byt bud + <literal moreinfo="none">otvoreny</literal>, <literal moreinfo="none">filtrovany</literal>, + <literal moreinfo="none">zatvoreny</literal>, alebo <literal moreinfo="none">nefiltrovany</literal>. Otvoreny + Open znamena, ze aplikacia na cielovom pocitaci nacuva spojeniam alebo paketom na tomto porte. + <literal moreinfo="none">Filtrovany</literal> znamena, ze nejaky firewall, filter alebo sietova prekazka + blokuje port takym sposobom, ze Nmap nedokaze urcit, ci je port + <literal moreinfo="none">otvoreny</literal> alebo <literal moreinfo="none">zatvoreny</literal>. + <literal moreinfo="none">Zatvorene</literal> porty neobsahuju ziadne na nich nacuvajuce aplikaciu, + aj ked by sa mohli kedykolvek otvorit. Porty su oznacovane ako <literal moreinfo="none">nefiltrovane</literal> + ak reaguju na testovanie Nmapom, no Nmap nedokaze urcit, ci su otvorene alebo zatvorene. + Nmap ohlasi kombinaciu stavov + <literal moreinfo="none">otvoreny|filtrovany</literal> a + <literal moreinfo="none">zatvoreny|filtrovany</literal> ak nedokaze urcit, ktory z dvoch stavov zodpoveda portu. + . Ak bola vyzadovana detekcia verzie, tabulka portov moze takisto obsahovat podrobnosti o verzii softwaru. + Ak je vyzadovany scan protokolu IP + (<option>-sO</option>), Nmap poskytne informacie namiesto nacuvajucich portov + informacie o podporovanych protokoloch IP.</para> + + <para>Okrem tabulky zaujimavych portov dokaze Nmap poskytnut dalsie + informacie o cielovych staniciach, vratane reverznych nazvov DNS, odhadov operacneho systemu, + typoch zariadeni a MAC adries.</para> + + <para>Typicky Nmap scan je zobrazeny na tomto mieste.<xref linkend="man-ex-repscan"/>. + Jedinymi parametrami Nmapu pouzitymi v tomto priklade su <option>-A</option>, na povolenie + detekcie OS a verzie,<option>-T4</option> kvoli rychlejsiemu behu programu, a dva hostitelske nazvy + cielovych stanic.</para> + +<example id="man-ex-repscan"><title>Ukazkovy Nmap scan</title> +<screen format="linespecific"> +# nmap -A -T4 scanme.nmap.org playground + +Starting nmap ( https://nmap.org/ ) +Interesting ports on scanme.nmap.org (205.217.153.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2.0.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2.4.X|2.5.X|2.6.X +OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 +Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground.nmap.org (192.168.0.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios-ssn +389/tcp open ldap? +445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds +1002/tcp open windows-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H.323/Q.931 CompTek AquaGateKeeper +5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3.8) +MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds +</screen> +</example> + +<para>Najnovsia verzia Nmapu sa nachadza na adrese <ulink url="https://nmap.org/"/>. +Najnovsia verzia manualu je k dispozicii na adrese <ulink url="https://nmap.org/man/"/>.</para> + + </refsect1> + + <refsect1 id="man-translation">
+ <title>Poznamky o preklade</title>
+
+ <para>Tato slovenska verzia referencnej prirucky Nmapu bola prelozena z verzie
+ 2991 <ulink
+ url="https://nmap.org/man/"> povodnej anglickej verzie </ulink> + Stanislavom Sivakom. Dufam sice, ze tento preklad viac spristupni Nmap slovensky hovoriacim + ludom na celom svete, ale nemozem zarucit, ze preklad je taky uplny alebo aktualny ako + oficialna anglicka verzia.
+ Toto dielo moze byt modifikovane a siritelne podla podmienok licencie <ulink
+ url="http://creativecommons.org/licenses/by/2.5/">Creative
+ Commons Attribution License</ulink>.</para>
+</refsect1> + + <refsect1 id="man-briefoptions"> + <title>Zoznam moznosti</title> + +<para>Tento zoznam moznosti sa zobrazi, ak je Nmap spusteny bez parametrov a +jeho najnovsia verzia je k dispozii na adrese +<ulink url="https://nmap.org/data/nmap.usage.txt"/>. +Pomaha ludom zapamatat si najbeznejsie moznosti, ale nie je nahradou za podrobnu +dokumentaciu v zostavajucej casti tohoto manualu. Na tomto mieste nie su dokonca uvedene niektore +malo zname, nejasne moznosti. +</para> + +<para> +<literallayout format="linespecific" class="normal">Pouzitie: nmap [Typ(y) scanu] [Moznosti] {specifikacia cielovej stanice} +SPECIFIKACIE CIELOVEJ STANICE: + Je mozne zadat hostitelsky nazov stanice, IP adresy, siete atd. + Priklad: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 + -iL <inputfilename>: Pouzit ako vstup zoznam hostistelskych stanic alebo sieti + -iR <num hosts>: Zvolit nahodne cielove stanice + --exclude <host1[,host2][,host3],...>: Vynechat hostitelske stanice alebo siete + --excludefile <exclude_file>: Vynechat zoznam zo suboru +ZISTOVANIE HOSTITELSKEJ STANICE: + -sL: List Scan - zobrazit zoznam cielovych stanic, ktore sa maju scanovat + -sP: Ping Scan - nevykonat nic ine okrem zistenia, ci je hostitelska stanice online + -P0: Treat all hosts as online -- preskocit zistovanie hostitelskych stanic + -PS/PA/PU [portlist]: pre zadane porty vykonat zistenie protokolov TCP SYN/ACK alebo UDP + -PE/PP/PM: vyskusat ICMP echo, parameter timestamp a poziadavku na sietovu masku + -n/-R: Nikdy nevykonavat DNS preklad/Vzdy vykonavat preklad DNS [povodne nastavenie: niekedy] + --dns-servers <serv1[,serv2],...>: Zadat vlastne servery DNS + --system-dns: Pouzit prekladac DNS operacneho systemu +SPOSOBY SCANOVANIA: + -sS/sT/sA/sW/sM: Scan typu TCP SYN/Connect()/ACK/Window/Maimon + -sN/sF/sX: Scany typu TCP Null, FIN a Xmas + --scanflags <flags>: Nastavit vlastne flagy scanu TCP scan + -sI <zombie host[:probeport]>: Scan typu Idlescan + -sO: Scan protokolu IP + -b <ftp relay host>: Scan vyuzivajuci FTP bounce +SPECIFIKACIA PORTOV A PORADIE SCANOVANIA: + -p <port ranges>: Len specifikovane porty + Priklad: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 + -F: Fast - Vykonat scan len na portoch zahrnutych v subore nmap-services + -r: Scanovat porty postupne a nie nahodne +DETEKCIA SLUZBY/VERZIE: + -sV: Testovat otvorene porty na urcenie informacii o sluzbe/verzii + --version-light: Kvoli rychlejsej identifikacii sluzby/verzie vykonat len tie + najpravdepodobnejsie testy + --version-all: Vykonat vsetky mozne testy + --version-trace: Zobrazit podrobnosti o priebehu scanovanie verzie (pre ucely debugovania) +DETEKCIA OS: + -O: Povolit detekciu OS + --osscan-limit: Zuzit detekciu OS len na slubne vyzerajuce cielove stanice + --osscan-guess: Pouzit agresivnejsiu detekciu OS +CASOVANIE A VYKON: + -T[0-5]: Nastavit casovaciu sablonu (vyssie cislo zodpoveda rychlejsej sablone) + --min-hostgroup/max-hostgroup <size>: Velkosti skupin paralelnych scanov + --min-parallelism/max-parallelism <numprobes>: Paralelizacia testu + --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Udava + velkost hodnoty RTT testu + --max-retries <tries>: Udava pocet retransmisii testu scanovania portov. + --host-timeout <msec>: Po uplynuti tohoto casoveho limitu ukoncit test cielovej stanice + --scan-delay/--max-scan-delay <msec>: Prisposobit oneskorenie medzi testami +OBIDENIE FIREWALLU/IDS A FALSOVANIE: + -f; --mtu <val>: Fragmentovat pakety ( s pridanou moznostou fragmentovania podla velkosti MTU) + -D <decoy1,decoy2[,ME],...>: Ukryt scan pouzitim trikov + -S <IP_Address>: Sfalsovat zdrojovu adresu + -e <iface>: Pouzit zadane rozhranie + -g/--source-port <portnum>: Pouzit dane cislo portu + --data-length <num>: Do odosielanych paketov vlozit nahodne data + --ttl <val>: Nastavit velkost polozky time-to-live protokolu IP + --spoof-mac <mac address/prefix/vendor name>: Sfalsovat MAC adresu aktualneho pocitaca + --badsum: Odoslat pakety s falosnym kontrolnym suctom TCP/UDP +VYSTUP: + -oN/-oX/-oS/-oG <file>: Vystup scanu zadaneho suboru vo formate obycajnom, XML, s|<rIpt kIddi3, + a Grep. + -oA <basename>: Vystup sucasne vo vsetkych troch hlavnych formatoch + -v: Zvysit uroven priebezneho vystupu (pre vacsi ucinok pouzit dvakrat) + -d[level]: Nastavit alebo zvysit uroven debugovania (Zmysel maju hodnoty do 9) + --packet-trace: Zobrazit vsetky odoslane a prijate pakety + --iflist: Vytlacit rozhrania hostitelskej stanice a trasy (pre ucely debugovania) + --append-output: Namiesto vymazania dat suborov pridat vystup k datam zadanych vystupnych suborov + --resume <filename>: Pokracovat v prerusenom scane + --stylesheet <path/URL>: Na prenesenie vystupu vo formate XML do formatu HTML pouzit stylesheet XSL + --webxml: Na ziskanie prenositelnejsieho formatu XML pouzit referencny stylesheet zo stranky Insecure.Org + --no-stylesheet: Nepouzivat stylesheet pre vystup v XML +ROZNE: + -6: Povolit scan pre protokol IPv6 + -A: Povolit detekciu OS a verzie + --datadir <dirname>: Zadat vlastne umiestnenie datoveho suboru pre Nmap + --send-eth/--send-ip: Odoslat pouzitim neupravenych ethernetovych ramcov alebo IP paketov + --privileged: Usudzovat, ze uzivatel ma plne opravnenia + -V: zobrazit cislo verzie + -h: zobrazit suhrn tejto stranky napovedy. +PRIKLADY: + nmap -v -A scanme.nmap.org + nmap -v -sP 192.168.0.0/16 10.0.0.0/8 + nmap -v -iR 10000 -P0 -p 80 +</literallayout> + +</para> + + </refsect1> + + <refsect1 id="man-target-specification"> + <title>Specifikacia cielovej stanice</title> + +<para>Vsetko v prikazovom riadku Nmapu co nie je parametrom (alebo argumentom parametra) sa povazuje +za specifikaciu cielovej stanice. Najjednoduchsim pripadom je specifikovat cielovu IP adresu alebo +hostitelsky nazov stanice, ktora sa ma scanovat. +</para> + +<para>Niekedy je potrebne scanovat celu siet susednych hostitelskych stanic. +Pre tento ucel podporuje Nmap adresovanie typu CIDR. K IP adrese alebo hostitelskemu nazvu je mozne pripojit +/<replaceable>numbits</replaceable> a +Nmap vykona scan kazdej IP adresy, u ktorej sa zhoduju prve +<replaceable>numbits</replaceable> s referencnou IP adresou alebo hostitelskym nazvom. +Napriklad po zadani adresy v tvare 192.168.10.0/24 by sa scanovalo 256 hostitelskych stanic medzi +192.168.10.0 (v binarnom tvare: <literal moreinfo="none">11000000 10101000 +00001010 00000000</literal>) a 192.168.10.255 (v binarnom tvare: <literal moreinfo="none">11000000 10101000 +00001010 11111111</literal>), vratane. +Zadanie adresy 192.168.10.40/24 by sposobilo presne to iste. Za predpokladu, ze + nazov scanme.nmap.org je na IP adrese 205.217.153.62, specifikacia +scanme.nmap.org/16 sposobi, ze by sa scanovalo 65,536 IP adries medzi adresami +205.217.0.0 a 205.217.255.255. Najmensia povolena hodnota je /1, +co sposobi scanovanie polovice internetu. Najvacsia hodnota je 32, co ma za nasledok scanovanie +len spomenutej hostitelskej stanice, pretoze vsetky bity IP adresy su pevne.</para> + +<para>Zapis typu CIDR je sice kratky, no nie vzdy dostatocne flexibilny. Napriklad, ak je +potrebne scanovat adresy v rozsahu 192.168.0.0/16, ale pritom preskocit vsetky adresy zakoncene +.0 alebo .255, pretoze bezne su to broadcastove adresy. Nmap to podporuje pomocou +pouzitia specifikacie jednotlivych oktetov adresy. Namiesto zadania obycajnej +IP adresy je mozne specifikovat zoznam cisel alebo rozsah pre kazdy oktet, oddeleny ciarkou. +Rozsah 192.168.0-255.1-254 napriklad preskoci vsetky adresy v zadanom rozsahu, ktore obsahuju +na konci .0 alebo .255. Rozsahy sa nemusia viazat len na posledne oktety: specifikacia +0-255.0-255.13.37 vykona scan vsetkych adries na internete konciace oktetmi 13.37. +Tento druh specifikacie sa moze hodit pri skumani internetu a vyskume.</para> + +<para>Adresy protokolu IPv6 mozu byt specifikovane len plne urcenou IPv6 adresou +alebo hostitelskym nazvom. Zapisy typu CIDR a rozsahy oktetov nie su podporovane pre IPv6, +pretoze su zriedkavo uzitocne.</para> + +<para>Nmap akceptuje viacnasobne specifikacie hostitelskych stanic v prikazovom riadku, +ktore pritom nemusia byt rovnakeho typu. Prikaz<command moreinfo="none">nmap +scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.0-255</command> funguje podla ocakavania.</para> + +<para> Zatial co su cielove stanice obvykle specifikovane v prikazovom riadku, je mozne tiez +specifikovat nasledujuce moznosti, a tym riadit vyber cielovych stanic: +</para> + + <variablelist> + <varlistentry> + <term> + <option>-iL <inputfilename></option> (Vstup zo zoznamu) + </term> + <listitem> + <para>Nacita specifikacie cielovych stanic z + <replaceable>inputfilename</replaceable>. Zadavanie velkeho zoznamu hostitelskych stanic + do prikazoveho riadku je casto tazkopadne avsak casto ziadane. + Napriklad vas DHCP server moze exportovat zoznam momentalnych 10000 pridelenych adries, ktore sa maju + scanovat, alebo je mozne scanovat vsetky IP adresy + <emphasis>okrem</emphasis> tychto na zistenie hostitelskych stanic pouzivajucich neopravnene + staticke adresy. Vytvorite zoznam hostitelskych stanic, ktore sa maju scanovat + a nazov suboru zadate ako argument k parametru<option>-iL</option>. Polozky v subore mozu + byt v lubovolnom formate, ktory je akceptovany Nmapom v prikazovom riadku + (IP adresa, hostitelsky nazov, IP adresa typu CIDR, IPv6, alebo rozsahy oktetov). Kazda polozka musi + musi byt oddelena aspon jednou medzerou, tabulatormi alebo novym riadkom. + Ak sa maju hostitelske stanice nacitavat zo standardneho vstupu + a nie aktualneho suboru, je mozne pouzit spojitko (<literal moreinfo="none">-</literal>)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-iR <num hosts></option> (Vybrat nahodne cielove stanice) + </term> + <listitem> + <para>Pre rozsiahle internetove prieskumy a dalsi vyskum je mozne zvolit nahodne + cielove stanice. Argument <replaceable>num hosts</replaceable> udava, kolko IP adries ma Nmap + generovat. Automaticky sa preskocia adresy privatne, multicastove alebo nealokovane. + Argument <literal moreinfo="none">0</literal> + udava scan, ktory sa nikdy neskonci. Je potrebne uvedomit si, ze niektori sietovi administratori + s nevolou sleduju neopravnene scanovania sieti a mozu sa stazovat. Pouzitie tejto moznosti + je na vlastne nebezpecie! Ak sa budete v jedno dazdive odpoludnie naozaj nudit, + pokuste sa prikazom <command moreinfo="none">nmap -sS -PS80 -iR 0 -p + 80</command> najst nahodne webove servery.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--exclude + <host1[,host2][,host3],...></option> (Vynechat hostitelske stanice alebo siete) + </term> + <listitem> + <para>Specifikuje zoznam cielovych stanic oddelenych ciarkou, ktore sa + maju vynechat zo scanu, aj ked su castou celkoveho specifikovaneho sietoveho rozsahu. + Zoznam pouziva obvyklu syntax Nmapu, to znamena hostitelske nazvy, bloky adries podla CIDR, + rozsahy oktetov, atd. Tato moznost je uzitocna, ak sa v scanovanych sietach vyskytuju + nedotknutelne kriticke servery, systemy s nepriaznivou reakciou na scanovanie portov, + ci systemy spravovane dalsimi ludmi. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--excludefile <exclude_file></option> (Vynechat subor zo zoznamu) + </term> + <listitem> + <para> Ponuka podobnu funkcionalitu ako moznost <option>--exclude</option> + s tym rozdielom, ze vynechane cielove stanice su namiesto prikazoveho riadku ulozene v + <replaceable>exclude_file</replaceable> s polozkami oddelenymi novym riadkom, medzerou alebo tabulatorom. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-host-discovery"> + <title>Zistovanie hostitelskych stanic</title> + + <para> Jednym z uplne prvych krokov pri prieskume siete + je zuzit niekedy obrovsku mnozinu rozsahov IP adries na zoznam aktivnych alebo zaujimavych hostitelskych stanic. + Scanovanie kazdeho portu kazdej jednej adresy nie je obycajne nevyhnutne. Samozrejme, ze ciel scanovania + zavisi od typu scanu. Sietovych administratorov mozu zaujimat + len hostitelske stanice, na ktorych bezi urcita sluzba, kym spravcov bezpecnosti mozu dbat o kazde zariadenie + s IP adresou. Administratorovi moze stacit ICMP ping, aby nasiel hostitelske stanice vo vnutornej sieti, + kym tester moznosti vonkajsieho preniknutia do siete moze pouzit mnozinu testov pri pokuse vyhnut sa obmedzeniam + firewallu. + </para> + + <para> Pretoze potreby pri zistovanie hostitelskych stanic su rozmanite, Nmap ponuka + siroku paletu moznosti prisposobenia pouzitych technik. Zistovanie hostitelskej stanice + sa niekedy nazyva ping scan, zachadza vsak daleko za jednoduchym ICMP echo request + spojenou so vsadepritomnym + <application moreinfo="none">ping</application> nastrojom. Pouzivatelia mozu krok pingovania + vynechat uplne pouzitim parametra (<option>-sL</option>) alebo + zakazanim pingu parametrom (<option>-P0</option>), ci pouzit v sieti nahodne kombinacie multi-portovych testov + TCP SYN/ACK, UDP, a + ICMP. Cielom tychto testov je pokusit sa ziskat odpovede, ktore ukazuju, ze + IP adresa je vlastne aktivna (je pouzivana hostitelskou stanicou alebo sietovym zariadenim). + Vo viacerych sietach je aktivne len male percento IP adries v rovnakom momente, co je obvykle hlavne pre + rozsah privatnych adries, napr. 10.0.0.0/8 podla standardu RFC1918. + Tato siet obsahuje 16 milionov IP adries, ale videl som, ze ich pouzivali spolocnosti s menej ako tisic pocitacmi. + Zistovanie hostitelskych stanic dokaze najst tieto pocitace v riedko alokovanom oceane + IP adries.</para> + + <para>Ak nie su zadane ziadne parametre pre zistovanie hostitelskych stanic, Nmap + odosle kazdej cielovej stanici TCP ACK + paket urceny pre port 80 a poziadavku ICMP Echo Request. + Vynimkou je je ARP scan pouzivany pre vsetky cielove stanice v lokalnej ethernetovej sieti. + Pri neprivelegovanych pouzivateloch UNIXoveho shellu sa namiesto typu ACK odosle paket typu + SYN pouzitim systemoveho volania<function moreinfo="none">connect()</function> + Tieto predvolene nastavenia odpovedaju parametrom + <option>-PA -PE</option>. Taketo zistovanie hostitelskych stanic je sice + casto postacujuce pri scanovani lokalnych sieti, ale pri testovani bezpecnosti + sa odporuca pouzit rozsiahlejsiu mnozinu testov na zistovanie.</para> + + <para>Parametre<option>-P*</option> (vyberajuce typy pingu) sa mozu kombinovat. + Vyhliadky preniknutia nekompromisnymi firewallmi sa mozu zvysit odoslanim viacerych typov testov + vyuzivajuc rozlicne typy portov a priznakov TCP a ICMP sprav. + Je dolezite vsimnut si, ze zistovanie ARP (<option>-PR</option>) sa normalne vykonava na + cielovych staniciach v lokalnej ethernetovej sieti, aj pri zadani dalsich parametrov + <option>-P*</option>, pretoze je to takmer vzdy rychlejsie a efektivnejsie.</para> + + <para>Nasledujuce parametre sluzia na ovladanie zistovania hostitelskych stanic.</para> + <variablelist> + + <varlistentry> + <term> + <option>-sL</option> (List scan)</term> + <listitem> + <para> List scan je neupravena podoba zistovania hostitelskych stanic, + ktora jednoducho zobrazi zoznam kazdej hostitelskej stanice specifikovanej sieti + bez odoslania paketov cielovym staniciam. V predvolenom nastaveni vykonava Nmap + reverzny preklad DNS hostitelskych stanic kvoli ziskaniu nazvov. + Je casto prekvapujuce, kolko uzitocnych informacii vydaju jednoduche hostitelske nazvy. Napriklad nazov + <literal moreinfo="none">fw.chi.playboy.com</literal> je firewallom spolocnosti + Playboy Enterprises kancelarie v Chicagu. Nmap na konci takisto oznami celkovy pocet + IP adries. Zoznam scanovania je dobrou kontrolou spravnosti, ze su vybrate + nalezite IP adresy. Ak hostitelske stanice vykazuju nazvy domen, ktore nerozponavate, + je ich vhodne preskumat hlbsie, aby sa predislo scanovaniu siete nespravnej spolocnosti.</para> + + <para> Kedze myslienkou je len jednoduchy vypis zoznamu + hostitelskych stanic, parametre funkcionality vyssieho stupna ako scanovanie portov, + detekcia OS alebo scanovanie pouzitim pingu nemoze byt kombinovane. + Ak chcete zakazat vykonat tieto vyssie funkcie a zakazat scanovanie pouzitim pingu, + dalsie informacie su uvedene pri parametri + <option>-P0</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sP</option> (Ping scan)</term> + <listitem> + + <para>Tento parameter zabezpeci, ze sa vykona <emphasis>len</emphasis> + ping scan (zistovanie hostitelskych stanic) a potom sa zobrazia + dostupne hostitelske stanice, ktore odpovedali na scan. Ziadne dalsie testovanie + ako scan portov alebo detekcia OS, sa nevykona. Je to o krok dotieravejsie ako list scan + a casto sa moze pouzit pre rovnake ucely. Dovoluje jemne preskumanie cielovej siete bez vzbudenia + velkej pozornosti. Poznatok o pocte aktivnych hostitelskych stanic je pre utocnikov cennejsi + ako zoznam poskytnuty list scanom kazdej IP adresy a nazvu host. stanice.</para> + + <para>Systemovi administratori tiez casto ocenia tento parameter. + Moze sa pouzit jednoducho na zistenie poctu dostupnych pocitacov + v sieti alebo monitorovanie dostupnosti servera. Casto sa to nazyva + ping sweep a je spolahlivejsie ako vysielanie pingu broadcastovej adrese, + pretoze mnoho hostitelskych stanic neodpoveda na broadcastove poziadavky. + </para> + + <para>Parameter<option>-sP</option> normalne vysle ICMP echo + request a TCP paket na port 80. Ak je prikaz spusteny neprivilegovanym pouzivatelom, + vysle sa na port 80 cielovej stanice SYN paket + (pouzitim volania funkcie <function moreinfo="none">connect()</function>). + Ak sa privilegovany pouzivatel pokusa scanovat cielove stanice na lokalnej ethernetovej sieti, + pouzivaju sa spravy ARP request (<option>-PR</option>) , ak nie je explicitne zadany parameter + <option>--send-ip</option>. + Parameter<option>-sP</option> sa moze kombinovat s akymkolvek + z testov zistovania ( parametre <option>-P*</option>, + s vynimkou <option>-P0</option>) kvoli vacsej flexibilite. + Ak sa pouziju nejake z tychto typov testov a parametrov cisel portov, prepisu sa tym + predvolene testy (ACK a echo request). Ak sa medzi zdrojovou host. stanicou so spustenym Nmapom + a cielovou sietou nachadza nekompromisny firewall, odporuca sa pouzitie tychto pokrocilych + technik, inac by mohli hostitelske stanice chybat v pripade, ze firewall vyluci spusteny test alebo + odpovede hostitelskych stanic. + </para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>-P0</option> (Bez pingu) + </term> + <listitem> + <para>Tento parameter kompletne preskoci fazu zistovania. + Nmap obvykle pouziva tuto fazu na zistenie aktivnych + pocitacov pred rozsiahlejsim scanovanim. + V predvolenom nastaveni vykonava Nmap len intenzivne testovanie ako + scanovania portov, detekciu verzie alebo detekciu OS pri zistenych aktivnych hostitelskych staniciach. + Zakazanie zistovania hostitelskych stanic parametrom <option>-P0</option> + sposobi, ze Nmap vykona pozadovanie funkcie scanovania na + <emphasis>kazdej</emphasis> specifikovanej IP adrese. Takze ak je v prikazovom riadku zadany + adresovy priestor triedy B (/16), bude sa scanovat vsetkych 65 536 IP adries. + Druhy znak v parametri <option>-P0</option> je nula a nie pismeno O. + Riadne zistovanie hostitelskych stanic sa vynecha ako pri list scane, ale namiesto zastavenia a + zobrazenia cieloveho zoznamu, Nmap pokracuje vo vykonavani pozadovanych funkcii ako keby bola kazda cielova + IP adresa aktivna. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PS [portlist]</option> (Ping TCP SYN )</term> + <listitem> + + <para>Tento parameter vysiela prazdny TCP paket s nastavenym flagom SYN. Predvoleny cielovy port + je 80 (konfigurovatelny v case kompilacie zmenou hodnoty premennej DEFAULT_TCP_PROBE_PORT v subore + <filename moreinfo="none">nmap.h</filename>), no alternativny port moze byt + specifikovany ako parameter. Zoznam portov oddeleny ciarkou moze byt + dokonca specifikovany za parametrom + (napriklad <option>-PS22,23,25,80,113,1050,35000</option>), a v tomto pripade sa testy budu vykonavat + paralelne pre kazdy port.</para> + + <para>SYN flag vyjadruje pre vzdialeny system pokus o nadviazanie spojenia. + Za normalnych podmienok by bol cielovy port zatvoreny a spat by bol odoslany RST(reset) paket. Ak sa port zda + byt otvoreny, ciel vysle druhy stupen mechanizmu TCP 3-way handshake, a teda odpovie SYN/ACK TCP paketom. Pocitac + so spustenym Nmapom potom zrusi vznikajuce spojenie odpovedanim RST paketom namiesto ACK paketom, ktory by + dokoncil uplny mechanizmus 3-way-handshake a nadviazal plne spojenie. RST paket nie je odoslany Nmapom, ale + kernelom pocitaca, na ktorom je spusteny Nmap, ako odpoved na neocakavany paket SYN/ACK. + </para> + + <para>Nmap sa nestara o to, ci je port otvoreny alebo zatvoreny. + Odpoved s flagom RST alebo SYN/ACK opisana vyssie prezradi Nmapu, ci je hostitelska stanica dostupna a + ci odpoveda.</para> + + <para> Na pocitacoch s UNIXom moze vseobecne len privilegovany pouzivatel + <literal moreinfo="none">root</literal> posielat a prijimat neupravene TCP pakety. + Pri neprivilegovanych pouzivateloch sa automaticky pouzije systemove volanie funkcie connect() na kazdy cielovy port. + Ma to za efekt odoslanie SYN paketu cielovej stanici ako pokusu o nadviazanie spojenia. + Ak funkcia connect() vrati rychlo uspesny vysledok alebo chybu ECONNREFUSED, zakladny TCP stack musel + prijat SYN/ACK alebo RST paket a hostitelska stanica je oznacena ako dostupna. Ak je pokus o spojenie + neukonceny az do dosiahnutia casoveho limitu, hostitelska stanica je oznacena ako nedostupna. + To sa pouziva aj pre spojenia pre protokol IPv6, kedze podpora neupravenych IPv6 paketov v Nmape este + nie je dostupna. + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PA [portlist]</option> (Ping TCP ACK)</term> + <listitem> + <para>Ping TCP ACK je dost podoba na prave rozobraty SYN ping. + Rozdiel je v tom, ze namiesto SYN flagu je nastaveny ACK flag. + Takyto ACK paket znaci potvrdenie dat nad vybudovanym TCP spojenim, ale pritom + ziadne taketo spojenie neexistuje, takze vzdialene hostitelske stanice by mali vzdy odpovedat + RST paketom, cim v tomto procese prezradia svoju existenciu. + </para> + + <para>Parameter<option>-PA</option> pouziva rovnaky predvoleny port ako test SYN (80) + a takisto moze spracovat zoznam cielovych portov v rovnakom formate. Ak sa o to pokusa + neprivilegovany pouzivatel alebo je specifikovany cielova stanica s protokolom IPv6, + pouzije sa obvykle systemove volanie funkcie connect(), co nie je bezchybne, + pretoze connect() vysiela SYN paket a nie ACK paket. + </para> + + <para> Pricinou moznosti zvolenia medzi testami SYN a ACK ping je + maximalizovat sancu obidenia firewallov. Vela administratorov nastavi + router a dalsie jednoduche firewally tak, ze blokuju prichadzajuce SYN pakety okrem + tych, ktore su urcene pre verejne sluzby ako napr. webova stranka spolocnosti alebo postovy server. + Toto brani pred dalsimi prichodzimi spojeniami k organizacii, zatial co + pouzivatelia mozu nadvazovat neobmedzene vychadzajuce spojenia na internet. + Tento bezstavovy pristup zabera malo systemovych prostriedkov na firewalle alebo routeri + a je siroko podporovany v hardwarovych a softwarovych filtroch. + Linuxovsky firewallovy software Netfilter/iptables ponuka + parameter + <option>--syn</option> na realizaciu tejto bezstavovej metody. + Ak su zavedene taketo bezstavove pravidla, je mozne, ze testy SYN ping + (<option>-PS</option>) pri zatvorenych cielovych portoch budu blokovane. + V takychto pripadoch sa velmi zide test ACK, pretoze je schopny prejst tymito pravidlami. + </para> + + <para> Dalsi bezny typ firewallu pouziva stavove pravidla, ktore odhadzuju neocakavane + pakety. Tato funkcia bola spociatku implementovana hlavne na high-endovych firewalloch, + hoci sa v poslednych rokoch stala beznejsou. + Linuxovsky system Netfilter/iptables podporuje tuto funkciu cez parameter + <option>--state</option>, ktory triedi pakety na zaklade stavu spojenia. + Test SYN bude v takychto podmienkach pravdepodobne fungovat, + zatial co ACK pakety budu vseobecne povazovane za falosne a budu zahodene. + Riesenim tohoto problemu je vykonat oba testy SYN a ACK zadanim parametrov. + <option>-PS</option> a <option>-PA</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PU [portlist]</option> (Ping UDP)</term> + <listitem> + + <para> Dalsou moznostou zistenia hostitelskych stanic je UDP ping, ktory vysiela + prazdny UDP paket + (v pripade, ze nie je specifikovany parameter <option>--data-length</option> ) + na dane cielove porty. Zoznam portov ma rovnaky format ako pri predtym + rozoberanych parametroch + <option>-PS</option> a <option>-PA</option>. Ak nie je specifikovane inac, + predvoleny port je 31338, co je mozne zmenit v case kompilacie zmenou premennej + DEFAULT_UDP_PROBE_PORT v subore<filename moreinfo="none">nmap.h</filename>. + V predvolenom nastaveni sa pouziva velmi neobvykly port, pretoze odosielanie na otvorene porty + je casto nevyziadane v tomto specialnom type scanovania. + </para> + + <para> Po zisteni zatvoreneho portu na cielovej stanici + by mal UDP test vratit spravu ICMP Port unreachable. + To indikuje Nmapu, ze pocitac je aktivny a dostupny. + Mnoho dalsich chybovych sprav ICMP ako host/network unreachable alebo TTL exceeeded + indikuje neaktivnu alebo nedosiahnutelnu hostitelsku stanicu. + Touto cestou sa interpretuje aj neobdrzanie ziadnej odpovede. + Ak sa dosiahne otvoreny port, vacsina sluzieb jednoducho + ignoruje prazdny paket a nevratia ziadnu odpoved. + To je dovod, preco je predvolenym portom testu port 31338, u ktoreho je vysoka pravdepodobnost, ze + sa nebude pouzivat. + Niekolko sluzieb, napr. sluzba chargen, odpovie na prazdny UDP paket a takto + prezradi Nmapu, ze pocitac je dostupny. + </para> + + <para>Hlavna vyhoda tohoto typu scanu je, ze obchadza + tie firewally a filtre, ktore presetruju len TCP protokol. + Niekedy som napriklad vlastnil bezdratovy broadbandovy router + Linksys BEFW11S4. Externe rozhranie tohoto zariadenia filtrovalo vsetky TCP porty v predvolenom nastaveni. + ale UDP testy stale dokazali zistit spravy port unreachable a takto prezradit zariadenie. + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PE</option>; + <option>-PP</option>; + <option>-PM</option> (Typy ICMP Pingu )</term> + <listitem> + + <para> Okrem neobvyklych, predtym rozoberanych typov + TCP a UDP testov, Nmap dokaze odoslat normalne pakety + odoslane vsade sa vyskytujucim programom + <application moreinfo="none">ping</application>. Nmap odosiela + paket typu 8(echo request) na cielove IP adresy stanic, + ocakavajuc, ze dostupne hostitelske stanice odpovedia spravou typu 0 (Echo Reply). + Nanestastie pre sietovych badatelov, mnoho hostitelskych stanic a firewallov v + sucasnosti blokuje tieto pakety namiesto odpovede podla normy + <ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC + 1122</ulink>. Z tohoto dovodu su samotne ICMP scany + zriedkavo spolahlive pri nasadeni proti neznamym cielovym staniciam na internete, no + pre systemovych administratorov monitorujucich vnutornu siet mozu byt praktickou + a efektivnou metodou. + Tato moznost sa povoli zadanim parametra <option>-PE</option>.</para> + + <para> Aj ked echo request je standardnou poziadavkou ICMP pingu, + Nmap pokracuje dalej. Standard ICMP (<ulink url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC + 792</ulink>) takisto specifikuje poziadavky timestamp request, information + request a address mask request ako spravy s kodmi 13, 15, + a 17. Aj ked zdanlivy ucel pre tieto dotazy moze byt ziskanie informacii + ako napr. masky adresy alebo momentalny cas, mozu byt lahko pouzite + na zistovanie hostitelskych stanic. System, ktory odpovie, je aktivny a dostupny. + Nmap v sucanosti neimplementuje poziadavky information request, pretoze nie su siroko + podporovane. RFC 1122 trva na tom, ze + <quote>hostitelska stanica by NEMALA implementovat tieto spravy</quote>. + Dotazy na casove razitko a masku adresy mozu byt odoslane parametrami + <option>-PP</option> a <option>-PM</option>. + Odpoved timestamp reply (ICMP kod 14) alebo odpoved + mask reply (kod 18) prezradi to, ze hostitelska stanica je dostupna. + Tieto dve dotazy mozu byt cenne, ked administrator specificky + zablokuje pakety poziadavky echo request a zabudne pritom, ze na tento + ucel sa daju pouzit dalsie ICMP dotazy.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PR</option> (Ping ARP )</term> + <listitem> + + <para> Jeden z najbeznejsich pouzivatelskych scenarov pouzitia Nmapu je scanovanie lokalnej ethernetovej + siete. Vo vacsine takychto sieti, hlavne tych pouzivajucich privatne adresove rozsahy podla + RFC1918, je vacsina IP adries nepouzivana v lubovolnom casovom okamihu. + Ak sa Nmap pokusi o odoslanie neupraveneho IP paketu ako napr. ICMP echo request, operacny system + musi urcit adresu cieloveho zariadenia + (ARP) oodpovedajucu cielovej IP adrese, aby sa mohol + odoslat ethernetovy ramec s prislusnou adresou. Tento proces je casto pomaly + a problematicky, pretoze operacne systemy neboli vytvorene s ocakavanim, + ze budu musiet v kratkom casovom intervale vykonat miliony ARP dotazov na nedostupne hostitelske stanice.</para> + + <para> ARP scan prenechava zodpovednost pri poziadavkach ARP request na + Nmap a jeho optimalizovane algoritmy a ak je ziskana spiatocna odpoved, + Nmap sa nezaujima o IP ping pakety, pretoze uz vie, ze prislusna hostitelska + stanica je aktivna. Preto je ARP scan omnoho rychlejsi a spolahlivejsi ako scany zalozene na IP. + Takto sa to aj bezne vykonava, ked sa scanuju ethernetove + hostitelske stanice, ktore Nmap detekuje v lokalnej ethernetovej sieti, a to aj ked su pouzite + odlisne typy pingov(napriklad <option>-PE</option> alebo + <option>-PS</option>). Ak sa chcete predsa vyhnut ARP scanu, pouzite parameter + <option>--send-ip</option>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-n</option> (Bez prekladu DNS) + </term> + <listitem> + <para> Indikuje Nmapu, aby + <emphasis>nikdy</emphasis> nevykonaval reverzny preklad DNS + aktivnych IP adries, ktore najde. Kedze DNS je casto pomale, proces sa urychli.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-R</option> (DNS preklad pre vsetky cielove stanice) + </term> + <listitem> + <para>Indikuje Nmapu, aby + <emphasis>vzdy</emphasis> vykonaval reverzny preklad cielovych IP adries. + Za normalnych podmienok sa to vykonava len ak je pocitac povazovany + za aktivny.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--system-dns</option> (Pouzit systemovy prekladac DNS) + </term> + <listitem> + <para>V predvolenom nastaveni preklada Nmap IP adresy tak, ze + odosiela dotazy priamo DNS serverom nastavenym v lokalnej host. stanici + a potom caka na odpovede. Vela dotazov (casto tucty) sa vykonava paralelne kvoli + vykonu. Specifikovanim toho parametra sa namiesto toho pouzije systemovy prekladac. + (jedna IP adresa sucasne prostrednictvom volania getnameinfo()). Je to pomalsie a malokedy + pouzivane -- v pripade, ze sa v DNS kode Nmapu vyskytuje chyba, kontaktujte nas prosim. + Systemovy prekladac sa vzdy pouziva pre scany IPv6 protokolu. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--dns-servers <server1[,server2],...> + </option> (Servery, ktore sa maju pouzit pre reverzne DNS dotazy) + </term> + <listitem> + <para>Za normalnych okolnosti sa Nmap pokusi + urcit DNS servery z konfiguracneho suboru (UNIX) alebo registrov (Win32) + lokalneho pocitaca, avsak alternativne je mozne pouzit tuto moznost na zadanie vlastnych serverov. + Tento parameter sa nedodrzuje, pri pouziti parametra + <option>--system-dns</option> alebo scanu protokolu IPv6. Pouzitie viacerych DNS serverov + je casto rychlejsie ako odoslanie dotazov na jeden server.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-basics"> + <title>Zaklady scanovania portov</title> + + <para> Aj ked Nmap ziskal rokmi vacsiu funkcionalitu, + zacinal ako efektivny scanovac portov a to aj zostava jeho hlavnou funkciou. + Jednoduchy prikaz <command moreinfo="none">nmap + <replaceable>target</replaceable></command> scanuje viac ako 1660 TCP portov cielovej stanice + <replaceable>target</replaceable>. Zatial co mnoho scanovacov portov tradicne deli + vsetky porty na otvorene alebo zatvorene, Nmap pouziva granularnejsi pristup. + Deli porty do 6 stavov: <literal moreinfo="none">otvoreny</literal>, + <literal moreinfo="none">zatvoreny</literal>, <literal moreinfo="none">filtrovany</literal>, + <literal moreinfo="none">nefiltrovany</literal>, + <literal moreinfo="none">otvoreny|filtrovany</literal>, alebo + <literal moreinfo="none">zatvoreny|filtrovany</literal>.</para> + +<para>Tieto stavy nie su pravymi vlastnostami samotneho portu, ale opisuju, ako ich vidi Nmap. + Napriklad ak scan z tej istej siete, v akej sa nachadza cielova stanica moze odhalit port 135/tcp ako otvoreny, + kym scan v rovnakom case a parametrami z internetu mozu odhalit, ze port je <literal moreinfo="none">filtrovany</literal>.</para> + +<variablelist><title>Sest stavov portov rozpoznavanych Nmapom</title> + + <varlistentry><term>otvoreny</term> + <listitem><para>Aplikacia na tomto porte aktivne prijima TCP spojenia alebo UDP pakety. + Zistenie tohoto faktu je casto hlavnym cielom scanovania portov. Ludia s bezpecnostou + v mysli vedia, ze kazdy otvoreny port je pristupom pre utok. Utocnici a testeri preniknutia + chcu vyuzivat otvorene porty, zatial co administratori sa pokusaju + zatvorit ich alebo chranit ich firewallmi bez limitovania opravnenych pouzivatelov. + Otvorene porty su zaujimave aj pre nebezpecnostne scany, pretoze ukazuju sluzby dostupne v sieti. + </para></listitem></varlistentry> + + <varlistentry><term>zatvoreny</term> + + <listitem><para> Zatvoreny port je pristupny (prijima a odpoveda na pakety testu vykonavaneho Nmapom), + ale ziadna aplikacia na nom nepocuva. Mozu sa zist pri zistovani ci je hostitelska stanica + aktivna na IP adrese (zistenie hostitelskej stanice alebo ping scan) a ako cast detekcie OS. + Pretoze zatvorene porty su dosiahnutelne, moze byt uzitocne vykonat neskorsi scan a niektore mozu byt + neskor otvorene. Administratori mozu uvazovat o blokovani takychto portov prostrednictvom firewallu. + Tie by sa potom objavili vo filtrovanom stave, ktory je rozobrany nizsie. + </para></listitem></varlistentry> + + <varlistentry><term>filtrovany</term> + + <listitem><para>Nmap nedokaze urcite, ci je port otvoreny, pretoze filtrovanie paketov zabranuje testom + dosiahnut tento port. + Filtrovanie moze pochadzat z osobitneho firewalloveho zariadenia, pravidiel routera alebo + hostitelskeho softwaroveho firewallu. + Tieto porty frustruju utocnikov, pretoze poskytuju malo informacii. + Niekedy odpovedia chybovou spravou ICMP ako napriklad typ 3, kod 13 + (destination unreachable: communication administratively + prohibited), ale filtre, ktore jednoducho zahodia test bez odpovede su ovela beznejsie. + Tento jav prinuti Nmap zopakovat pokus niekolkokrat kvoli moznemu pripadu, ze test bol zahodeny + kvoli zahlteniu siete. Toto dramaticky spomaluje scan.</para></listitem></varlistentry> + + <varlistentry><term>nefiltrovany</term> + <listitem><para>Nefiltrovany stav znamena, ze port je pristupny, ale + Nmap nedokaze urcite, ci je otvoreny alebo zatvoreny. Len ACK scan, pouzivany na + zmapovanie pravidiel firewallu, klasifikuje porty do tohoto stavu. + Scanovanie nefiltrovanych portov inymi typmi scanu ako napr. Window scan, SYN scan alebo FIN scan, moze pomoct + rozlustit, ci je port otvoreny. + </para></listitem></varlistentry> + + <varlistentry><term>otvoreny|filtrovany</term> + <listitem><para>Nmap charakterizuje porty tymto stavom, ak nedokaze urcit, + ci je port otvoreny alebo filtrovany. K tomu dochadza pri typoch scanov portov, kde + otvorene porty neposkytuju odpoved, co moze tiez znamenat, ze paketovy filter + zahodil test alebo vyvolanu odpoved, takze Nmap nedokaze naisto urcit, + ci je port otvoreny alebo filtrovany. Protokoly UDP,IP a scany FIN, Null a Xmas vykonavaju + takuto klasifikaciu portov.</para></listitem></varlistentry> + + <varlistentry><term>zatvoreny|filtrovany</term> + <listitem><para>Tento stav je pouzity, ked Nmap nedokaze urcit ci je + port zatvoreny alebo filtrovany. Pouziva sa len pri scane typu IPID Idle.</para></listitem></varlistentry> + </variablelist> +</refsect1> + +<refsect1 id="man-port-scanning-techniques"> + <title>Sposoby scanovania portov</title> + +<para>Ako novacik pokusajuci sa opravit auto, mozem sa trapit dlhe hodiny, aby som nasiel +vhodne zakladne naradie (kladivo, lepiaca paska, kluc, atd) na danu ulohu. +Ked sa uz citim utrapene a odtiahnem svoj vrak ku naozajstnemu mechanikovi, ten stale obchadza +auto s velkou debnou naradia, az kym nevylovi tu vecicku co z prace urobi hracku. +Podobne je aj umenie scanovania. Experti ovladaju kopu metod scanovania a zvolia prislusnu +(alebo kombinaciu) pre danu ulohu. Na druhej strane neskuseni pouzivatelia a rychlokvaseni +majstri v praci so skriptom budu riesit kazdy problem predvolenym SYN scanom. Kedze Nmap je zadarmo, +jedinou barierou pred majstrovstvom v scanovani portov je vedomost, co urcite poraza svet automobilov, +kde zistenie potreby pruzinoveho kompresora stale vyzadujuce zaplatit zan tisice dolarov, moze vyzadovat velke +zrucnosti.</para> + +<para>Vacsina typov scanov je dostupna len pre privilegovanych pouzivatelov, z toho dovodu, +ze posielaju a prijimaju neupravene pakety, co si na UNIXovych systemoch vyzaduje pristup roota. +Na platforme Windows sa odporuca administratorsky ucet, hoci po nahrati kniznice WinPcap do OS +funguje niekedy Nmap aj pre neprivilegovanych pouzivatelov. +V roku 1997 po vydani Nmapu bola otazka privilegii roota dost vaznym obmedzenim, kedze mnohi pouzivatelia +mali pristup len ku shared shell uctu. Svet sa vsak zmenil. +Pocitace su lacnejsie, ovela viac ludi ma teraz neprestajny priamy pristup na internet a UNIXove +systemy pre desktop (vratane Linuxu a MAC OS X) su rozsirene. Dostupna je aj verzia Nmapu pre Windows, +co dovoluje spustit program na este viac desktopoch. Z tychto vsetkych dovodov nemaju pouzivatelia +taku potrebu spustat Nmap z obmedzenych shared shell uctov. +To je stastne, pretoze parametre vyzadajuce privilegia robia z Nmapu ovela mocnejsi a flexibilnejsi +nastroj. +</para> + +<para>Nmap sa sice pokusa produkovat presne vysledky, ale je dolezite si uvedomovat, +ze vsetko jeho chapania problemu su zalozene na paketoch odoslanych cielovymi pocitacmi +alebo firewallmi pred nimi. Taketo hostitelske stanice mozu byt nedoveryhodne a posielat +zamerne matuce odpovede a uviest Nmap do omylu. +Ovela beznejsie su vsak hostitelske stanice nevyhovujuce standardu RFC, ktore neodpovedaju na testy +Nmapom tak ako by mali. Specialne nachylne na tento problem su scany typu FIN, Null a Xmas. +Taketo potiaze su specificke pre iste typy scanov a su rozobrate v zaznamoch +o jednotlivych typoch scanov. +</para> + +<para> Tento cast dokumentuje asi tucet metod scanovania portov podporovanych Nmapom. + Len jedna metoda moze byt pouzita sucasne, s vynimkou UDP scanu + (<option>-sU</option>), ktory moze byt kombinovany s lubovolnym dalsim TCP scanom. + Ako pomocka pre pamat, parametre typu scanovania portov su vo formate + <option>-s<replaceable>C</replaceable></option>, kde +<replaceable>C</replaceable> predstavuje hlavny znak v nazve scanu, obycajne ten prvy. +Vynimkou je uz odmietnuty FTP bounce scan (<option>-b</option>). V predvolenom nastaveni +vykonava Nmap SYN scan, hoci ak pouzivatel nema dostatocne privilegia alebo ciele IPv6 neboli +specifikovane, nahradzuje +ho volanim Connect(), aby sa mohli odoslat neupravene pakety (to vyzaduje pristup roota na +UNIXovych pocitacoch). Zo vsetkych spomenutych scanov mozu pouzivatelia bez +privilegii spustit len scany connect() a ftp bounce. </para> + + <variablelist> + <varlistentry> + <term> + <option>-sS</option> (Scan TCP SYN )</term> + <listitem> + +<para> SYN scan je predvolenym a najoblubenejsim typom scanu a to z dobrych dovodov. +Dokaze byt vykonany rychlo, scanujuc tisicky portov za sekundu tam, kde je rychla siet bez +obmedzeni dotieravych firewallov. SYN scan je relativne nenapadny a tajny, pretoze +nikdy nedokonci fazu nadvazovania TCP spojeni. Funguje aj proti akymkolvek TCP stackom +a nezavisi teda na svojraznostiach konkretnych platform ako dalsie Nmapovske scany +Fin, Null, Xmas, Maimon a Idle. +Umoznuje takisto ciste a spolahlive rozlisenie medzi +<literal moreinfo="none">otvorenymi</literal>, +<literal moreinfo="none">zatvorenymi</literal> a <literal moreinfo="none">filtrovanymi</literal> +stavmi.</para> + +<para>Na tuto metodu sa casto odkazuje ako na polootvorene scanovanie,pretoze +nie je potrebne otvarat plne TCP spojenie. Odosle sa SYN paket ako keby sa nadvazovalo +skutocne spojenie a potom sa caka na spojenie. Prichodzi SYN/ACK paket indikuje, +ze port nacuva (je otvoreny), kym RST (reset) naznacuje, ze port nenacuva. +Ak sa neodosle ziadna odpoved ani po niekolkych retransmisiach, port sa oznaci +ako filtrovany. Taketo oznacenie sa pouzije, aj ked pride +chybova sprava ICMP unreachable error (typ 3, kody 1,2, 3, 9, 10, alebo 13).</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sT</option> (Scan TCP connect())</term> + <listitem> + +<para>Scan TCP Connect() je predvolenym typom TCP scanu, ak SYN scan nepatri medzi +moznosti. K tomu dochadza, ak pouzivatel nema privilegia na odosielanie neupravenych +paketov, alebo pri scanovani sieti s protokolom IPv6. Nmap namiesto vytvorenia neupravenych +paketov, ako pri vacsine dalsich scanov, poziada operacny system o vytvorenie spojenia s cielovou +stanicou a portom pomocou systemoveho volania <literal moreinfo="none">connect()</literal>. +Je to presne to iste volanie na vyssej urovni k vytvoreniu spojenia, ktore vyuzivaju webove prehliadace, +klienti P2P a vacsina dalsich aplikacii vyuzivajucich siet a tvori cast programoveho rozhrania +znameneho pod menom Berkeley Sockets +API. Namiesto prijimania a spracovavania neupravenych odpovedi po sieti, Nmap pri kazdom pokuse o spojenie +pouziva toto rozhranie API na ziskanie informacii o stave. +</para> + +<para>Ak je dostupny SYN scan, je obycajne lepsou volbou. Nmap ma mensiu kontrolu nad +vysokourovnovym volanim <literal moreinfo="none">connect()</literal> ako +nad neupravenymi paketmi, co sposobuje horsiu efektivnost.Systemove volanie +dokoncuje nadvazovanie spojeni k otvorenym portom cieloveho hostitela namiesto +vykonania polootvoreneho resetu, ktory vykonava SYN scan. Tento postup nielenze +trva dlhsie, ale takisto vyzaduje viac paketov na ziskanie tych istych informacii a cielove +pocitace budu spojenie pravdepodobne zaznamenavat do logu. +Poriadny IDS to sice tiez zachyti, ale vacsina pocitacov nema takyto system. +Ked sa Nmap pripoji a potom zavrie spojenia bez odoslania dat, +vacsina sluzieb na priemernom UNIXovom system prida poznamku do syslogu. +Niektore fakt ubohe sluzby mozu pritom spadnut, ale to je nezvycajne. +Administrator, ktory vidi v logu niekolko pokusov o spojenie od jedneho systemu by mal vediet, +ze bol scannovany s ohladom na nadviazanie spojenia. + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sU</option> (UDP scany)</term> + <listitem> + +<para>Zatial co vacsina oblubenych sluzieb na internete funguje na TCP protokole, +<ulink url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> sluzby +su tiez siroko nasadzovane. Tri najbeznejsie z nich su DNS, SNMP a DHCP +(registrovane porty 53, 161/162 a 67/68). Pretoze scanovanie UDP je vseobecne pomalsie +a narocnejsie ako TCP, niektori spravcovia bezpecnosti si nevsimaju tieto porty a to je chyba, lebo +zneuzitelne UDP sluzby su celkom bezne a utocnici iste nebudu ignorovat cely protokol. +Nastastie, Nmap dokaze pomoct urobit supis tychto UDP portov.</para> + +<para>UDP scan je mozne spustit parametrom <option>-sU</option>. +Moze sa kombinovat s TCP scanom ako napr. SYN scan +(<option>-sS</option>) a tak sa mozu skontrolovat oba protokoly pocas jedneho spustenia.</para> + +<para>UDP scan funguje tak, ze odosle kazdemu cielovemu portu prazdnu hlavicku UDP header bez dat. +Ak sa vrati chybova sprava ICMP port unreachable error (typ 3, kod 3) port je <literal moreinfo="none">zatvoreny</literal>. +Ostatne chybove spravy ICMP (typ 3, +kody 1, 2, 9, 10 alebo 13) oznacuju port ako <literal moreinfo="none">filtrovany</literal>. Prilezitostne moze +sluzba odpovedat UDP paketom a tym dokaze, ze port je <literal moreinfo="none">otvoreny</literal>. Ak sa po +opakovanych retransmisiach neobjavi ziadna odpoved, port je oznaceny ako +<literal moreinfo="none">otvoreny|filtrovany</literal>. +To znamena, ze port by mohol byt otvoreny alebo mozno paketove filtre blokuju komunikaciu. +Na pomoc pri odliseni otvorenych a filtrovanych portov sa moze pouzit parameter +(<option>-sV</option>).</para> + +<para> Velkou vyzvou pre scanovanie UDP je rychlost. Otvorene a filtrovane porty malokedy +posielaju odpoved a tak pre vyprsi casovy limit, co vyusti v dalsie retransmisie pre pripad, +ze sa test alebo odpoved mohli v sieti stratit. Zatvorene porty su casto vacsim problemom. +Obycajne odosielaju spat chybovu spravu ICMP port unreachable error, no na rozdiel od +RST paketov odosielanych zatvorenymi TCP portmi ako odpoved na SYN alebo Connect scan, +, mnoho hostitelskych stanic standardne pouziva limit takychto odoslanych chybovych sprav. +Specialne prisne na tento fakt su Linux a Solaris. +Napriklad linuxove jadro 2.4.20 dava obmedzenie na spravy typu destination unreachable v pocte +jedna sprava za sekundu (v subore <filename moreinfo="none">net/ipv4/icmp.c</filename>).</para> + +<para>Nmap detekuje obmedzenie v pocte a podla toho sa spomali, aby sa vyhol zaplaveniu siete nepotrebnymi +paketmi, ktore by cielova stanica zahodila. Linuxovske obmedzenie 1 paket za sekundu nanestastie sposobuje, +ze by scan 65536 portov trval 18 hodin. Napady ako tento proces urychlit su napr.scanovanie viacerych hostov sucasne +, vykonat najprv rychly scan popularnych portov, scanovat spoza firewallu alebo pouzitie parametru +<option>--host-timeout</option> na preskocenie pomalych hostitelskych stanic.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (TCP Null, FIN a Xmas scany)</term> + <listitem> + +<para>Tieto tri typy scanov (dalsie sa daju vykonat pouzitim parametra +<option>--scanflags</option> su opisane v dalsej casti) +vyuzivaju malu dieru v standarde <ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP RFC</ulink>, aby rozlisili +medzi<literal moreinfo="none">otvorenymi</literal> a +<literal moreinfo="none">zatvorenymi</literal> portmi. Na strane sa 65 hovori, ze <quote>ak je +[cielovy] port zatvoreny.... prichadzajuci segment, ktory neobsahuje flag RST sposobi, ze sa ako +odpoved odosle RST segment.</quote> Dalsia strana potom rozobera pakety odosielane na otvorene porty +bez nastavenych bitov SYN, RST ani ACK a tvrdi: <quote>je nepravdepodobne, ze sa dostanete +do tejto situacie, ale ak k nej dojde, zahodte segment a vratte sa.</quote></para> + +<para>Ak sa scanuju systemy zodpovedajuce tomuto textu RFC, lubovolny paket +neobsahujuci nastavene bity SYN, RST ani ACK vyvola odpoved s RST bitom, ak bol port +zatvoreny a ziadnu odpoved, ak je port zatvoreny. Pokial nie su zahrnute ziadne z tychto troch bitov, +je v poriadku lubovolna kombinacia flagov (FIN, PSH a URG). Nmap ich vyuziva pomocou +tychto troch typov scanov:</para> + +<variablelist> + <varlistentry><term>Null scan (<option>-sN</option>)</term> + <listitem><para>Nenastavuje ziadne bity(tcp flag header je nastaveny na 0)</para></listitem></varlistentry> + + <varlistentry><term>FIN scan (<option>-sF</option>)</term> + <listitem><para>Nastavi len bit TCP FIN.</para></listitem></varlistentry> + + <varlistentry><term>Xmas scan (<option>-sX</option>)</term> + <listitem><para>Nastavi flagy FIN, PSH a URG, cim sa paket "rozsvieti" ako + Vianocny stromcek.</para></listitem></varlistentry> +</variablelist> + +<para>Tieto tri typy scanov maju rovnake spravanie az na to nastavenie +TCP flagov. Ak dojde ako odpoved RST paket, port sa povazuje za <literal moreinfo="none">zatvoreny</literal>, +kym ziadna odpoved znaci <literal moreinfo="none">otvoreny|filtrovany</literal>. Port sa oznaci ako +<literal moreinfo="none">filtrovany</literal> ak dorazi chybova sprava ICMP unreachable (typ 3, kod +1, 2, 3, 9, 10 alebo 13).</para> + +<para>Klucovou vyhodou tychto typov scanov je, ze sa dokazu pretlacit cez +iste bezstavove firewally a routre s filtrovanim paketov. Okrem toho su este viac tajnejsie +ako SYN scan, no neda sa na to spoliehat -- vacsina modernych IDS sa da nastavit tak, aby ich detekovala. +Velkou nevyhodou je, ze cely rad systemov sa nedrzi do pismena standardu RFC 793, posielaju odpovede +RST bez ohladu na to, ci je port otvoreny alebo zatvoreny. +Preto su vsetky taketo porty oznacovane ako <literal moreinfo="none">closed</literal>. +Hlavne operacne systemy s takymto spravanim su Microsoft Windows, mnohe zariadenia Cisco , + BSDI a IBM OS/400. +Tento scan vsak funguje na mnohe UNIXovske systemy. +Dalsim hacikom tychto scanov je, ze nedokazu rozlisit <literal moreinfo="none">otvorene</literal> porty od +istych<literal moreinfo="none">filtrovanych</literal>, takze vyvolaju odpoved +<literal moreinfo="none">otvoreny|filtrovany</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sA</option> (Scan TCP ACK)</term> + <listitem> + +<para>Tento scan sa lisi od ostatnych doposial rozoberanych v tom, +ze nikdy neurcuje porty v stave <literal moreinfo="none">otvoreny</literal> (dokonca ani +<literal moreinfo="none">otvoreny|filtrovany</literal>). Pouziva sa na zmapovanie +sad pravidiel firewallu, ci su stavove alebo bezstavove a ktore porty su filtrovane.</para> + +<para>Testovaci ACK Paket ma nastaveny len ACK flag (ak nie je pouzity parameter <option>--scanflags</option>). + Ak sa scanuju nefiltrovane systemy, stavy portov +<literal moreinfo="none">otvoreny</literal> a <literal moreinfo="none">zatvoreny</literal> vratia zhodny +RST paket. Nmap ich potom oznaci ako +<literal moreinfo="none">nefiltrovane</literal>, co znamena, ze su dostupne pomocou ACK paketu +, ale nie je rozpoznane, ci su <literal moreinfo="none">otvorene</literal> alebo +<literal moreinfo="none">zatvorene</literal>. Porty, ktore neodpovedia ci odoslu spat nejaku chybovu spravu +ICMP (typ 3, kod 1,2,3,9,10 alebo 13) su oznacene ako <literal moreinfo="none">filtrovane</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sW</option> (Scan TCP Window)</term> + <listitem> + +<para>Window scan je presne taky isty ako ACK scan az na to, ze vyuziva +implementacne detaily istych systemov na rozlisenie otvorenych a zatvorenych +portov, namiesto prosteho vypisu +<literal moreinfo="none">nefiltrovany</literal> po navrate RST paketu. Realizuje sa to +preskumanim polozky RST paketu s nazvom TCP Window. Na niektorych systemoch pouzivaju +otvorene porty kladnu velkost okienka, dokonca aj pre RST pakety, kym, zatvorene porty maju +nulovu velkost okienka, takze namiesto vypisu stavu portu ako <literal moreinfo="none">nefiltrovany</literal> +Window scan zobrazi port v stave<literal moreinfo="none">otvoreny</literal> alebo +<literal moreinfo="none">zatvoreny</literal> podla velkosti okienka (kladna resp. nulova).</para> + +<para>Tento typ scanu sa spolieha na implementacny detail +mensiny systemov na internete, takze mu nie je mozne vzdy doverovat. +Systemy ktore to nepodporuju obycajne vratia vsetky porty v stave +<literal moreinfo="none">zatvoreny</literal>. Je samozrejme mozne, ze pocitac +nema ziadne otvorene porty. Ak je vacsina scanovanych portov +<literal moreinfo="none">zatvorena</literal>, ale niekolko beznych +portov (napr. 22, +25, 53) je v stave <literal moreinfo="none">filtrovany</literal> system je pravdepodobne +nachylny na tento scan. Zriedkavo mozu systemy vykazat +presne opacne spravanie. Ak je scan ukaze, ze je 1000 otvorenych portov a 3 zatvorene alebo filtrovane +, tieto tri porty mozu byt pokojne tie otvorene.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sM</option> (Scan TCP Maimon)</term> + <listitem> + +<para>Maimon scan je pomenovany po svojom objavitelovi, Urielovi Maimonovi. Tuto techniku +opisal v casopise Phrack, vydanie #49 (November 1996) +Nmap s touto metodou bol vydany o dve vydania neskor. +Metoda funguje presne ako scany Null, FIN a Xmas, ale test je typu FIN/ACK. Podla standardu +RFC 793 (TCP), RST paket by mal byt generovany ako odpoved na tento test bez ohladu na otvoreny alebo +zatvoreny port. Uriel vsak spozoroval, ze mnohe systemy odvodene od BSD jednoducho zahodia paket, ak je port +otvoreny.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scanflags</option> (Vlastny TCP scan)</term> + <listitem> + +<para>Naozaj pokrocili pouzivatelia Nmapu sa nemusia obmedzovat len na +vopred ponuknute type scanov. Parameter <option>--scanflags</option> vzdy umozni zadanim lubovolnych TCP +flagov vytvorit vlastny scan. Neobmedzujte svoju kreativitu pri vyhybani sa systemom IDS, ktorych +vyrobcovia jednoducho prelisovali manual k Nmapu a pridali specificke pravidla. +</para> + +<para>Argumentom parametru<option>--scanflags</option> moze byt hodnota cisla flagu ako napr. +9 (PSH a FIN), no je jednoduchsie pouzivat nazvy, staci zlepit dokopy lubovolnu kombinaciu flagov +<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> a +<literal moreinfo="none">FIN</literal>. Napriklad <option>--scanflags +URGACKPSHRSTSYNFIN</option> nastavi vsetko, hoci to nie je prilis uzitocne pre scanovanie. Poradie nazvov nie +je dolezite.</para> + +<para>Okrem specifikovanie ziadanych flagov je mozne +zadat typ TCP scanu (napriklad<option>-sA</option> alebo <option>-sF</option>), co +Nmapu napovie ako interpretovat odpovede. Napriklad SYN scan povazuje +absenciu odpovede za port so stavom +<literal moreinfo="none">filtrovany</literal>, kym FIN scan odpovie na rovnaku situaciu +<literal moreinfo="none">otvoreny|filtrovany</literal>. Nmap bude postupovat +presne tak ako pri zakladnych typoch scanu, no pouzije TCP flagy, ktore budu +zadane. Ak nie je zadany zakladny typ scanu, pouzije sa SYN scan.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sI <zombie + host[:probeport]></option> (Scan naprazdno - Idlescan)</term> + + <listitem> + + <para>Tato pokrocila metoda umoznuje naozaj + slepy scan portov cielovej stanice s tym, ze z lokalnej skutocnej + IP adresy nie su odosielane ziadne pakety. Namiesto toho sa pouzije + utok po bocnom kanale, ktory vyuziva + delenie na IP fragmenty a predpovedatelne tvorenie sekvencie ID cisel na zombie hostitelovi. + Tym sa zhromazduju informacie o otvorenych portoch na cielovom pocitaci. + IDS systemy zobrazia, ze scan pochadza z pocitaca zombie, ktory bol specifikovany, musi + byt samozrejme aktivny a splnat urcite kriteria. + Tento fascinujuci typ scanu je prilis zlozity na plny popis v tejto prirucke, + takze som uplne detaily popisal neformalnym sposobom a ulozil na adresu + <ulink url="https://nmap.org/book/idlescan.html"/>.</para> + + <para>Okrem toho, ze tento scan je vynimocne nenapadny (kvoli svojej slepej povahe), + umoznuje zmapovat doveryhodne vztahy medzi pocitacmi zalozene na IP adrese. + Zoznam portov zobrazuje otvorene porty + <emphasis>z pohladu zombie hostitela.</emphasis> Takze je mozne + pokusit sa o scan cielovej stanice pouzitim roznych zombie pocitacov, o ktorych + si myslite, ze su doveryhodne (pomocou pravidiel routra alebo paketoveho filtra).</para> + + <para>Ak sa ma na strane zombie pocitaca testovat specificky port kvoli zmenam hodnoty IPID, + pridajte dvojbodku nasledovanu cislom portu. Inak Nmap pouzije povodny port urceny na + tcp pingovanie - 80.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sO</option> (Scan protokolu IP)</term> + <listitem> + +<para>Scan protokolu IP umoznuje urcite, ktore protokoly IP (TCP, ICMP, IGMP, atd.) +su podporovane cielovymi pocitacmi. Technicky to nie je scan portov, pretoze prebieha +roznymi cislami protokolov IP a nie cislami portov protokolov TCP a UDP. Aj napriek tomu +pouziva parameter <option>-p</option> na vyber scanovanych cisel protokolov, oznamuje +vysledky v normalnom formate tabulky portov a dokonca pouziva ten isty mechanizmus scanu +ako prave metody scanovania portov, takze je dost blizko scanovaniu portov, a preto patri sem.</para> + +<para> +Okrem toho, ze je uzitocny vo vlastnom zmysle, +scan protokolov demonstruje silu open-source softwaru. +Zatial co zakladna myslienka je dost jednoducha, nerozmyslal som nad jej pridanim ani +som nedostal poziadavky o takuto funkcionalitu. +Potom vsak v lete roku 2000 dostal Gerhard Rieger tento napad, napisal excelentny +patch, ktory to implementoval a poslal ho do mailing listu skupiny hackerov nmapu. +Tento patch som vlozil do stromu Nmapu a na dalsi den vydal novu verziu. +Len malo zastupcov komercneho softwaru ma nadsenych uzivatelov, ktori vytvaraju a prispievaju +svojimi vylepseniami.</para> + +<para> Scan protokolu funguje podobne ako UDP scan. +Namiesto iterovania cez cisla portov v policku UDP paketu vysiela Nmap hlavicky +IP paketu a iteruje cez 8-bitove policko IP protokolu. Hlavicky su zvycajne prazdne, neobsahuju +data a ani patricnu hlavicku pre vyhlaseny protokol. +Troma vynimkami su protokoly TCP, +UDP a ICMP. Tu je patricna hlavicka protokolu zahrnuta, pretoze + niektore systemy ich inak neodoslu a pretoze uz Nmap obsahuje funkcie na ich + vytvorenie. + Namiesto pozorovania sprav ICMP port +unreachable protocol sa scan zaujima o spravy ICMP +<emphasis>protocol</emphasis> unreachable. Ak Nmap prijme od cieloveho hostitela akukolvek odpoved akehokolvek +protokolu, Nmap oznaci protokol ako <literal moreinfo="none">otvoreny</literal>. +Chybova sprava ICMP protocol unreachable(typ 3, kod 2) sposobi, +ze sa protokol oznaci ako +<literal moreinfo="none">zatvoreny</literal> Dalsie chybove spravy ICMP unreachable (typ 3, kod +1, 3, 9, 10 alebo 13) sposobia stav protokolu ako +<literal moreinfo="none">filtrovany</literal> (hoci v rovnakom momente dokazuju, ze je +<literal moreinfo="none">otvoreny</literal>). +Ak sa neobdrzi ziadna odpoved po retransmisiach, protokol sa oznaci ako +<literal moreinfo="none">otvoreny|filtrovany</literal>.</para> + + </listitem> + </varlistentry> + + + + <varlistentry> + <term> + <option>-b <ftp relay host></option> (FTP bounce scan)</term> + <listitem> + +<para> Zaujimavou funkciou protokolu FTP (<ulink url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) je +podpora takzvanych proxy ftp spojeni, co umoznuje pouzivatelovi pripojit sa +k jednemu FTP serveru a potom ziadat o to, aby sa subory posielali serveru tretej strany. +Tato vlastnost je priam idealna pre zneuzitie na mnohych urovniach +, takze mnohe servery ju prestali podporovat. +Jednym z tychto zneuziti tejto funkcie je vyvolanie situacie, kde FTP server scanuje +porty dalsich hostitelskych stanic. Je mozne zaradom jednoducho poziadat FTP server o zaslatie +subor na kazdy zaujimavy port cieloveho hostitela. Chybova sprava opise, ci +je port otvoreny alebo nie. To je dobry sposob ako obist firewally, pretoze FTP servery +organizacii su casto umiestnovane tam, kde maju vacsi pristup k vnutornym hostitelskym staniciam ako kazda +ina stanica na internete. Nmap podporuje ftp bounce scan pomocou parametra <option>-b</option>. +Ako argumenty pouziva +<replaceable>pouzivatelske meno</replaceable>:<replaceable>heslo</replaceable>@<replaceable>server</replaceable>:<replaceable>port</replaceable>. +<replaceable>Server</replaceable> je nazvom IP adresy zranitelneho FTP servera. +Tak ako aj pri normalnej URL adrese, aj tu sa moze vynechat +<replaceable>pouzivatelske meno</replaceable>:<replaceable>heslo</replaceable>, +pricom sa pouziju anonymne prihlasovacie udaje (pouzivatel: +<literal moreinfo="none">anonymous</literal> heslo:<literal moreinfo="none">-wwwuser@</literal>). + Cislo portu (a predchadzajuca dvojbodka ) mozu byt vynechane tiez, pricom sa vtedy pouzije povodny + FTP port (21) na +<replaceable>serveri</replaceable>.</para> + +<para>Tato zranitelnost bola siroko rozsirena v roku 1997, +ked bol Nmap vydany, no bola do velkej miery opravena. Zranitelne servery su stale +naokolo, takze stoji to za to vyskusat ich. Ak je cielom obist firewall, je mozne +scanovat cielovu siet s cielovym portom 21 (alebo aj akekolvek ftp sluzby ak sa scanuju +vsetky porty s detekciou verzie) a potom vyskusat spustit scan bounce scan ftp. +Nmap prezradi, ci je hostitelska stanica zranitelna alebo nie. +Ak sa pokusate len zakryt svoje stopy, nie je nevyhnutne (a v skutocnosti by sa ani nemalo) obmedzovat +sa na hostitelske stanice v cielovej sieti. Pred scanovanim nahodnych internetovych adries +na zistenie zranitelnych FTP serverov zoberte do uvahy, ze systemovym administratorom +sa nemusi pacit zneuzitie ich serverov takymto sposobom.</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-specification"> + <title>Specifikacia portu a poradie scanov</title> + + <para>Okrem vyssie rozoberanych scanov ponuka Nmap moznosti na + specifikaciu scanovanych portov a ci ma byt poradie scanov nahodne alebo + sekvencne. V predvolenom nastaveni scanuje Nmap + vsetky porty do a vratane 1024 tak ako aj vyssie cisla portov zobrazenych pre scanovane + protokoly v subore <filename moreinfo="none">nmap-services</filename>.</para> + + <variablelist> + <varlistentry> + <term> + <option>-p <port ranges></option> (Scanovat len specifikovane porty) + </term> + <listitem> + + <para> Tento parameter specifikuje, ktore porty sa maju scanovat a prepise povodne nastavenie. + Mozu byt pouzite jednotlive cisla portov, ako aj rozsahy oddelene spojovnikom, napr. 1-1023. + Zaciatocne a konecne hodnoty rozsahu mozu byt vynechane, cim budu Nmapom pouzite hodnoty + 1 resp. 65535. Je teda mozne specifikovat parameter <option>-p-</option> + cim sa budu scanovat porty od 1 po + 65535. Po explicitnom specifikovani je mozne scanovat aj port 0. + Pri scanovani protokolu IP ,(<option>-sO</option>), tento parameter specifikuje cisla protokolov, + ktore sa maju scanovat + (0-255).</para> + + <para>Ak sa scanuju TCP aj UDP porty, mozete prislusny protokol charakterizovat + pismenami <literal moreinfo="none">T:</literal> + alebo <literal moreinfo="none">U:</literal> predchadzajucimi cislo portu. + Toto pismeno plati az kym nespecifikujete dalsie pismeno. + Napriklad argument <option>-p + U:53,111,137,T:21-25,80,139,8080</option> bude scanovat UDP + porty 53,111 a 137 a takisto spomenute TCP porty. Na to, aby sa scanovali TCP aj UDP, je + potrebne zadat parameter + <option>-sU</option> a aspon jeden typ TCP scanu (napriklad + <option>-sS</option>, <option>-sF</option> alebo + <option>-sT</option>). Ak nie je zadane ziadne urcujuce pismeno, cisla portov su pridane + do zoznamu vsetkych protokolov.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-F</option> (Rychly scan s limitovanym poctom portov) + </term> + <listitem> + + <para>Udava, ze je nutne scanovat len porty uvedene v subore <filename moreinfo="none">nmap-services</filename> + ktory je dodavany spolu s Nmapom(alebo subor s protokolmi pomocou parametra + <option>-sO</option>). Tento sposob je ovela rychlejsi ako + scannovanie vsetkych 655535 portov na hostitelskej stanici. + Pretoze tento zoznam obsahuje viac ako TCP portov, nie je tu vyrazny rozdiel + oproti povodnemu TCP scanu s okolo 1650 portmi. Rozdiel je dramaticky, ak specifikujete svoj vlastny + maly subor + <filename moreinfo="none">nmap-services</filename> pouzitim parametru + <option>--datadir</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-r</option> (Nevyberat porty nahodne) + </term> + <listitem> + <para>V predvolenom nastaveni vybera Nmap poradie scanovanych portov nahodne + (okrem toho, ze iste vseobecne pristupne porty su z + dovodov efektivnosti na zaciatok). Tento proces randomizacie je za normalnych okolnosti + ziadany, ale parametrom + <option>-r</option> je mozne specifikovat sekvencne scanovanie portov.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-version-detection"> + <title>Detekcia sluzby a verzie</title> + + <para>Pouzite Nmap na vzdialeny pocitac a ten potom moze prezradit, + ze porty 25/tcp, 80/tcp a 53/udp su otvorene. Pouzitim svojej databazy + <filename moreinfo="none">nmap-services</filename> s obsahom okolo 2,200 znamych sluzieb, + by dokazal Nmap oznamit, ze tieto porty pravdepodobne patria postovemu serveru (SMTP) + webovemu serveru (HTTP) a DNS serveru (DNS). Toto vyhladanie je obycajne + presne - drviva vacsina daemonov nacuvajucich na TCP porte 25 su v skutocnosti + postove servery, no urcite sa na tomto neda stavit bezpecnost, ludia mozu mat + spustene sluzby na zvlastnych portoch.</para> + + <para>Aj ked ma Nmap pravdu a hypoteticky server ma spustene + servery SMTP, HTTP a DNS, neznamena to vela informacii. Ked vykonavate odhady zranitelnosti alebo + hoci aj jednoduche supisy siete vasich firiem alebo klientov, chcete naozaj vediet aj to, + ake mailove a DNS servery a ich verzie su spustene. Ziskanie presneho cisla verzie + pomaha dramaticky urcit, pred akymi zneuzitim je server zranitelny. Detekcia verzie pomaha zistit tuto + informaciu.</para> + + <para> Po zisteni TCP alebo UDP portov pomocou jednej z metod scanu, + detekcia verzie skuma tieto porty, aby zistila, co na nich bezi.Subor s databazou + <filename moreinfo="none">nmap-service-probes</filename> obsahuje testy na + dotazovanie rozlicnych sluzieb a zodpovedajucih vyrazov na rozpoznanie a vykonanie + rozboru odpovedi. Nmap sa pokusa urcit protokol sluzby (napriklad ftp, ssh, telnet, http), nazov aplikacie + (napriklad ISC + Bind, Apache httpd, Solaris telnetd), cislo verzie, + hostitelsky nazov, typ zariadenia(napr. tlaciaren, router), skupinu OS + (napr. Windows, Linux) a niekedy rozlicne podrobnosti ako napr. ci je X server otvoreny spojeniam + verziu SSH protokolu alebo pouzivatelske meno v programe KaZaA). Samozrejme, ze vacsina sluzieb + neposkytuje tieto informacie. Ak bol Nmap kompilovany s podporou OpenSSL , + pripoji sa k SSL serverom, aby urcil sluzbu nacuvajucu za zasifrovanou vrstvou. + Ked su objavene RPC sluzby, automaticky sa pouzije Nmap RPC grinder (<option>-sR</option>) + na urcenie RPC programu a cisla verzie. Po tom, co scan UDP portov nie je + schopny urcit, ci je port otvoreny alebo zatvoreny, niektore UDP porty su oznacene v stave + <literal moreinfo="none">otvoreny|filtrovany</literal>. Detekcia verzie sa + bude snazit vyvolat odpoved tychto portov (presne tak ako aj pri otvorenych portoch) + a stav sa moze zmenit na otvoreny, ak tato detekcia uspeje. Pri + <literal moreinfo="none">otvorenych|filtrovanych</literal> TCP portoch sa postupuje + tou istou cestou. Je potrebne si vsimnut, ze parameter Nmapu <option>-A</option> + medzi inym ponuka detekciu verzie. Dokument opisujuci priebeh, pouzitie a vlastne prisposobenie + detekcie verzie je dostupny na adrese <ulink url="https://nmap.org/vscan/"/>.</para> + + <para>Ak Nmap dostane odpovede od sluzby, ale nevie ju + priradit ziadnej polozke v databaze, zobrazi specialny fingerprint a takisto + adresu URL, kde mozete odoslat odpoved, ak ju poznate. + Venujte prosim tejto operacii niekolko minut, aby bola na prospech + kazdemu. Vdaka tymto odpovediem ma Nmap okolo 3,000 zodpovedajucich vzorov pre viac + ako 350 protokolov napr. smtp, ftp, http, atd.</para> + + <para> Detekcia verzie sa povoli a da sa ovladat nasledujucimi parametrami:</para> + + + <variablelist> + + <varlistentry> + <term> + <option>-sV</option> (Detekcia verzie)</term> + <listitem> + + <para>Umoznuje detekciu verziu ako bolo spomenute vyssie. + Je mozne pouzit namiesto toho parameter <option>-A</option>, ktorym sa povoli aj + detekcia OS.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--allports</option> (Pri detekcii verzie nevynechavat ziadne porty) + </term> + <listitem> + <para> V predvolenom nastaveni Nmap pri detekcii verzie vynechava + TCP port 9100, pretoze niektore tlaciarne tlacia vsetko co pride na tento port a vedie + to k hromade vytlacenych stran poziadaviek HTTP get request, poziadaviek + SSL session request, atd.. + Toto spravanie sa da zmenit upravenim alebo odstranenim direktivy <literal moreinfo="none">Exclude</literal> + v subore<filename moreinfo="none">nmap-service-probes</filename> alebo mozete zadat + parameter<option>--allports</option>, aby sa scanovali vsetky porty nehladiac na direktivu + <literal moreinfo="none">Exclude</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-intensity <intensity></option> (Nastavit intenzitu scanovania verzie) + </term> + <listitem> + + <para>Ak sa vykonava scan verzie (<option>-sV</option>), Nmap odosiela seriu testov + , pricom kazdemu z nich je priradena vynimocna hodnota medzi + 1 az 9. Kym testy z nizsou hodnotou su ucinne na testovanie sirokej skalu + beznych sluzieb, vyssie cisla su len zriedkavo uzitocne. Stupen intenzity udava, ktore + testy sa maju pouzit. Cim vyssie je cislo, tym vacsia je pravdepodobnost, ze sluzba + bude spravne indentifikovana, taketo scany vsak trvaju dlhsie. Predvolena hodnota je 7. + Ak je test registrovany na cielovy port v subore + <filename moreinfo="none">nmap-service-probes</filename> pomocou direktivy <literal moreinfo="none">ports</literal>, + tento test sa vykona bez ohladu na stupen intenzity. Zaistuje to to, ze DNS testy sa budu vzdy + robit vhladom na lubovolny otvoreny port 53, SSL skuska vzhladom na port 443, atd..</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-light</option> (Povolit light mod ) + </term> + <listitem> + <para>Je to pohodlny alias pre parameter + <option>--version-intensity 2</option>. Tento light mod znacne urychluje + scanovanie verzie, no znizuje sa pravdepodobnost spravnej identifikacie sluzieb.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-all</option> (Vyskusat kazdy test) + </term> + <listitem> + <para>Alias pre parameter <option>--version-intensity 9</option>, + cim sa zaisti vykonanie kazdeho testu voci kazdemu portu.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-trace</option> (Sledovat cinnost scanovania verzie) + </term> + <listitem> + <para>Nmap zobrazi rozsiahle debugovacie + informacie cinnosti scanovania verzie. Je to podmnozina vystupu pri zadani + parametra <option>--packet-trace</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sR</option> (RPC scan)</term> + <listitem> + <para> Tato metoda funguje v spojeni s rozlicnymi scanmi portov + Nmapu, vsetky zistene otvorene TCP/UDP porty + zahlti NULL prikazmi programu SunRPC za ucelom zistenia, ci su to + porty sluzby RPC a ak ano, ktoremu programu a cisle verzii sluzia. + Rovnake informacie sa daju efektivne ziskat pomocou parametru + <command moreinfo="none">rpcinfo -p</command> aj ked je mapovac portov cielovej + stanice za firewallom alebo chraneny TCP wrappermi. + Decoye momentalne nefunguju s RPC scanom. + Toto je automaticky povolene ako cast scanu verzie pri zadani parametra + (<option>-sV</option>). Kedze detekcie verzie obsahuje okrem tohoto este + ovela viac veci, parameter + <option>-sR</option> sa pouziva zriedka.</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-os-detection"> + + <title>Detekcia OS</title> + + <para>Jedna z najznamejsich funkcii Nmapu je vzdialena + detekcia OS pomocu fingerprintingu stacku TCP/IP. Nmap odosiela vzdialenej hostitelskej stanici + rad TCP a UDP paketov a potom skuma kazdy bit odpovedi. + Po vykonani serie testov ako napr. sampling TCP + ISN, poradie a podpora moznosti TCP, sampling IPID a + pociatocna kontrola velkosti okienka porovnava Nmap vysledky so databazou + <filename moreinfo="none">nmap-os-fingerprints</filename> skladajucej sa z viac ako 1500 znamych + odtlackov OS a pri zhode zobrazi podrobnosti o OS. + Kazdy fingerprint zahrna textovy popis OS vo volnom formate a klasifikaciu poskytujucu + nazov vyrobcu OS (napr. Sun), zakladny typ OS + Each fingerprint includes a freeform textual description of the + (napr. Solaris), generacia OS (napr. 10) a typ zariadenia (bez specialneho ucelu, router, switch, herna konzola, + atd).</para> + + <para>Ak Nmap nedokaze odhadnut OS pocitaca a podmienky su pritom dobre + (napr. zistilo sa, ze aspon 1 port je otvoreny a aspon 1 zatvoreny), + Nmap poskytne adresu URL, na ktorej mozete zadat fingerprint, ak ste si isty OS beziacom na vasom pocitaci. + Tymto prispievate do mnoziny operacnych systemov znamych Nmapu a proces sa spresnuje pre kazdeho dalsieho. + </para> + + <para> Detekcia OS umoznuje vykonanie niekolko dalsich testov, ktore vyuzivaju informacie vzdy nadobudnute + tymto procesom. Jednym z nich je merania uptimu, ktore na odhadnutie casu od posledneho + restartovania pocitaca vyuziva moznost TCP timestamp + (RFC 1323). Parameter sa oznamuje len pre pocitace, ktore poskytuju tuto informaciu. Dalsim z nich je + TCP Sequence Predictability Classification - Klasifikacia predvidatelnosti TCP sekvencie. + Toto meranie zistuje, ake je narocne nadviazat falosne TCP spojenie so vzdialenou hostitelskou + stanicou a je uzitocne na zistovanie slabin relacii, ktore stavaju doveru na + zdrojovej IP adrese (rlogin, firewall, filtre, atd.) alebo takisto je uzitocne kvoli moznosti + ukryvania zdroja utoku. Tento typ falsovania sa dnes vykonava zriedkavo, no mnohe + pocitace su na to stale zranitelne. Vlastne cislo obtiaznosti je zalozene ne statistickom vzorkovani + a moze sa menit. Vseobecne je lepsie pouzit anglicku klasifikaciu, napr. + <quote>worthy challenge</quote> - hodne vyzvy alebo <quote>trivial joke</quote> - jednoduchy zabava. + Normalne sa to oznamuje len v mode verbose (<option>-v</option>). + Ak sa povoli verbose mod sucasne z parametrom <option>-O</option>, oznamuje sa aj Vytvaranie + sekvencie IPID. Vacsina pocitacov sa nachadza + <quote>inkrementalnej</quote> triede, co znamena, ze zvysuju + cislo policka ID v IP hlavicke kazdeho odoslaneho paketu, co z nich robi zranitelne ciele pre niektore pokrocile utoky, + ktore su zalozene na zbere informacii a falsovani.</para> + + <para> Dokument popisujuci cinnost, pouzitie a priposobenie + detekcie verzie je dostupny vo viacerych jazykoch na adrese.<ulink url="https://nmap.org/osdetect/"/>.</para> + + <para>Detekcia OS je povolovana a ovladana nasledujucimi moznostami parametrov:</para> + + <variablelist> + <varlistentry> + <term> + <option>-O</option> (Povolit detekciu OS) + </term> + <listitem> + <para>Umozni detekciu OS podla vyssie opisaneho rozboru. Alternativne sa pouzitim parametra + <option>-A</option> umozni detekciu OS aj verzie.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-limit</option> (Obmedzit detekciu OS len na slubne cielove stanice) + </term> + <listitem> + <para>Detekcia OS je ovela efektivnejsie, ak je zisteny aspon + 1 port otvoreny a 1 port zatvoreny. Po nastaveni tohoto parametra sa nebude vykonavat + detekcia OS na pocitacoch, ktore nesplnaju tieto kriteria, cim sa da usetrit + podstatny cas, hlavne pri scanoch s parametrom <option>-P0</option> aplikovanych na + mnohych hostitelskych staniciach, no je to dolezite len ak sa pre detekciu OS zada parameter <option>-O</option> alebo <option>-A</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-guess</option>; <option>--fuzzy</option> (Odhadnut vysledky + detekcie OS) + </term> + <listitem> + <para>Ak je Nmap nedokaze detekovat uplnu zhodu s OS, + niekedy navrhne dalsie co najblizsie zhody ako moznosti. Nmap to normalne vykonava, + len ak je zhoda velmi podobna. Kazda z tychto dvoch ekvivalentnych moznosti sposobi agresivnejsi + odhad Nmapu. + </para> + </listitem> + </varlistentry> + + + </variablelist> + </refsect1> + + <refsect1 id="man-performance"> + <title>Casovanie a vykon</title> + <para>Jednou z mojich najvyssich priorit pri vyvoji Nmapu + bol vzdy vykon. Predvoleny scan (<command moreinfo="none">nmap +<replaceable>hostname</replaceable></command>) hostitelskej stanice v mojej lokalnej +sieti trva patinu sekundy. Trva to sice menej ako zmrknutie oka, ale pridava to na vyzname, +ak sa scanuju stovky alebo tisice hostitelskych stanic. Navyse urcite moznosti scanov +ako UDP scanovanie a detekcia verzie mozu podstatne zvysit cas vykonanavania scanu, tak ako aj +urcite nastavenia firewallu, zvlast obmedzenie poctu odpovedi. +Nmap sice na zrychlenie scanov vyuziva paralelizmus a mnohe pokrocile algoritmy, +je to pouzivatel, kto ma absolutnu kontrolu nad tym, ako Nmap pracuje. +Ak je cas obmedzenim, pouzivatelia na urovni expertov sikovne produkuju prikazu, aby ziskali len informacie, +o ktore maju zaujem.</para> + + <para> Metody zlepsujuce casy scanov zahrnuju + vynechanie nekritickych testov a prechadzanie na poslednu verziu Nmapu + (zdokonolanie vykonu sa vykonava casto). Optimalizovanie casovych parametrov + dokaze takisto sposobit markantny rozdiel. Tieto parametre su spomenute nizsie:</para> + + <variablelist> + + <varlistentry> + <term> + <option>--min-hostgroup <numhosts></option>; + <option>--max-hostgroup + <numhosts></option> (Prisposobit velkosti paralelnych skupin pri scanovani)</term> + <listitem> +<para>Nmap ma schopnost sucasne scanovat porty alebo verzie viacerych hostitelskych stanic a to takym, sposobom, +ze sa cielovy rozsah IP adries rozdeli do skupin a potom sa scanuje jedna skupina sucasne. Vo vseobecnosti +su efektivnejsie vacsie skupiny, no nevyhodou je, ze vysledky nemozu byt poskytnute, kym nie je ukoncene cela skupina. +cize ak Nmap zacne so skupinou velkosti 50, pouzivatel nedostane ziadnu spravu (okrem updatov v mode verbose) az kym +nie je ukoncenych vsetkych 50 hostitelskych stanic. +</para> + +<para> V predvolenom nastaveni riesi Nmap tento konflikt +kompromisom. Zacne skupinou o pocte 5, takze prve vysledky sa dostavia rychlo + a potom sa velkost skupiny zvysi na 1024. Presne predvolene cisla + zavisia od zadanych parametroch. Z dovodov efektivity pouziva Nmap rozsiahle skupiny pre UDP scany alebo malo + portove TCP scany.</para> + +<para> Po zadani maximalnej velkosti skupiny pomocou parametra +<option>--max-hostgroup</option> Nmap nikdy neprokroci tuto hodnotu. +Po zadani minimalnej velkosti skupiny parametrom <option>--min-hostgroup</option> nebude Nmap pouzivat mensie skupiny +ako bolo zadane. Ak vsak nie je dostatok hostitelskych stanic, Nmap moze pracovat s mensimi skupinami ako specifikovane +parametrom. Aj ked je to zriedkavo vyuzivane, oba parametre mozu byt pouzite sucasne na specifikovanie rozsahu skupiny. +</para> + +<para> Hlavne pouzitie tychto parametrov je specifikacia +vacsieho minima velkosti skupiny, takze plny scan pobezi rychlejsie. +Vseobecna volba velkosti minima na scan porcii siete triedy C je cislo 256. +Nie je obvykle prilis uzitocne zvysovat toto cislo, ak sa jedna o scan s mnohymi portmi. +Pri scanoch s par cislami portov je velkost skupiny hostitelskych pocitacov rovna 2048 alebo viac prospesna. +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-parallelism <numprobes></option>; + <option>--max-parallelism + <numprobes></option> (Upravit paralelizaciu testov)</term> + <listitem> + +<para>Tieto parametre ovladaju absolutny pocet testov, co +moze byt nedokoncene pre skupinu hostitelskych pocitacov. +Pouzivaju sa pri scanovani portov a zistovenie hostitelskych pocitacov. +V povodnom nastaveni pocita vzdy sa meniaci idealny +stav paralelizmu v zavislosti na vykone siete. Ak su pakety zahadzovane, +Nmap spomali a povoli menej neukoncenych scanov. Idealny pocet +testov pri dobrych podmienkach v sieti pomaly stupa. Tieto parametre +urcuju na tuto premennu minimalnu a maximalnu hranicu. V predvolenom nastaveni +sa idealny paralelizmus moze znizit az na 1, ak sa sietove testy javia ako nespolahlive + a na druhej strane idealizmus stupa pri vybornych podmienkach.</para> + +<para>Najcastejsim pouzitim je nastavenie parametra +<option>--min-parallelism</option> na vyssiu hodnotu ako je 1 kvoli +urychleniu scanovania pomalych hostitelskych stanic alebo sieti. Je to riskantny +parameter na zabavu, pretoze prilis vysoka hodnota moze ovplyvnit presnost +a takisto schopnost Nmapu ovladat paralelizmus dynamicky podla sietovych podmienok. +Hodnota desat moze byt rozumna, hoci tuto hodnotu nastavujem len ako poslednu moznost. +</para> + +<para>Parameter <option>--max-parallelism</option> je niekedy nastaveny na 1, aby sa predislo +odosielaniu viac ako jedneho testu sucasne. Moze sa to hodit v kombinacii s parametrom +<option>--scan-delay</option> +(rozoberanom nizsie), hoci tento druhy parameter je dostatocne silny, aby sam sluzil svojmu ucelu. +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-rtt-timeout <time></option>, + <option>--max-rtt-timeout <time></option>, + <option>--initial-rtt-timeout + <time></option> (Nastavit casovy interval testu)</term> + <listitem> + +<para>Nmap si uchovava hodnotu casoveho intervalu kvoli urceniu, ako dlho bude cakat na odpoved +testu predtym ako to vzda alebo vykona retransmisiu testu. Pocita sa to +na zaklade casov odpovedi predchadzajucich testov. Ak je latencia siete vyznamnym faktorom + a meni sa, tento casovy interval narastie na niekolko sekund. + Takisto zacina na opatrnej(vysokej) urovni a ak Nmap scanuje neodpovedajuce + hostitelske stanice, moze to na nej aj chvilu ostat.</para> + +<para>Tieto parametre maju hodnotu v milisekundach alebo je mozne pridat argument jednotky +<literal moreinfo="none">s</literal>, <literal moreinfo="none">m</literal>alebo<literal moreinfo="none">h</literal> to +a takto sa cas specifuje v sekundach, minutach alebo hodinach. +Specifikovanie nizsich hodnot parametrov<option>--max-rtt-timeout</option> a +<option>--initial-rtt-timeout</option> ako predvolene hodnoty moze +vyznamne skratit casy scanov, co plati hlavne pre scany bez pingu +(<option>-P0</option>) a dalej pre velmi filtrovane siete, nie je vsak dobre +zadavat prilis kratke hodnoty, pretoze potom moze scan pozadovat viac casu ako je specifikovane +a pre vela testov vyprsi casovy interval, zatial co odpoved je stale na ceste. +</para> + +<para>Ak su vsetky hostitelske stanice v lokalnej sieti, rozumna hodnota intervalu je +100 milisekund <option>--max-rtt-timeout</option>. Ak je zahrnute routovanie, je potrebne +najprv vykonat ping hosta bud pomocnym programom ICMP ping alebo prisposobenym + programom pre tvorenie paketov ako napr. hping2, ktory sa pravdepodobnejsie dostane +cez firewall. Vsimnite si maximalny cas hodnoty RTT (Maximum Round Trip) asi 10 paketov. +Tuto hodnotu mozete zdvojnasobit pre +<option>--initial-rtt-timeout</option> a stroj- alebo stvornasobit pre parameter<option>--max-rtt-timeout</option>. +Vseobecne nenastavujem tento parameter +maximum rtt pod 100ms, bez ohladu na hodnoty pingov, a ani ich nezvysujem nad 1000ms.</para> + +<para>Parameter <option>--min-rtt-timeout</option> je malokedy pouzivany. Moze sa zist, +ked je siet taka nespolahliva, ze aj predvolena hodnota Nmapu je prilis agresivna. +Kedze vsak Nmap pri spolahlivej sieti znizuje casovy interval na minimum, tento +parameter nie je potrebny a jeho pouzitie by sa malo nahlasit ako bug do mailingu listu nmap-dev.</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>--max-retries <numtries></option> (Specifikovat maximalny pocet + retransmisii testov scanovania portov) + </term> + <listitem> + +<para>Ak Nmap nedostane odpoved na test scanu portov, moze to znamenat +, ze port je filtrovany alebo ze bol test alebo odpoved jednoducho stratena po sieti. Je mozne tiez, +ze cielova stanica obmedzenie poctu odpovedi a to docasne zablokovalo odpoved, takze +sa Nmap opatovna pokusi poslat pociatocny test. Ak Nmap detekuje slabu sietovu +spolahlivost, moze sa pokusit o retransmissiu viackrat pred ukoncenim snahy. +Na jednej strane to zvysuje presnost, no takisto aj cas scanov. +Ak je kriticky vykon, scany mozu byt urychlenie limitovanim povoleneho poctu retransmisii. +Retransmisiam sa zabrani parametrom +<option>--max-retries 0</option>, no zriedkakedy sa to odporuca. +</para> + +<para>Predvolena hodnota (bez parametru<option>-T</option>) je 10 +ten retransmisii. Ak sa siet zda byt spolahliva a cielove stanice +neobmedzuju pocet odpovedi, Nmap obycajne vykona len jednu retransmisiu, +takze vacsina scanov ani nie je ovplyvnena, ak sa parameter +<option>--max-retries</option> znizi na 3. Tieto hodnoty dokazy podstatne zrychlit +scany pomalych (s obmedzenim poctu odpovedi) hostitelskych stanic. Ak Nmap prilis skoro zanechava +testy portov, obycajne sa stracaju nejake informacie, hoci moze to stale moze byt uprednostnovane pred +situaciou, kde uplynie interval parametru +<option>--host-timeout</option> a stratia sa vsetky informacie o cielovej stanici.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--host-timeout <time></option> (Zanechat pomale cielove stanice) + </term> + <listitem> + +<para> Niektore hostitelske stanice jednoducho potrebuju <emphasis>dlhy</emphasis> cas na to, aby boli prescanovane, +co moze byt dosledkom zleho vykonu alebo nespolahliveho sietoveho hardwaru/softwaru, obmedzeniu poctu paketov +alebo obmedzujuceho firewallu. Najpomalsich malo percent scanovanych hostitelskych stanic moze +zabrat podstatu casu scanu. Niekedy je lepsie orezat tieto straty casu a preskocit taketo stanice uz na zaciatku. +Da sa to dosiahnut zadanim parametra +<option>--host-timeout</option> s pozadovanym poctom milisekund cakania. +Alternativne je mozne pripojit argument jednotky +<literal moreinfo="none">s</literal>, <literal moreinfo="none">m</literal> alebo<literal moreinfo="none">h</literal> to +, cim sa casovy interval specifikuje v sekundach, minutach alebo hodinach. Ja casto specifikujem +hodnotu +<literal moreinfo="none">30m</literal>, aby Nmap neplytval viac ako polhodinou +na 1 stanicu. Vsimnite si, ze Nmap moze sucasne scanovat dalsie hostitelske stanice, takze to nie je +uplna strata casu. Hostitelska stanica, ktorej casovy interval vyprsi sa vynecha a nezobrazi sa pre nu +tabulka portov, detekcia OS, ani detekcia verzie.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scan-delay <time></option>; + <option>--max-scan-delay + <time></option> (Nastavit oneskorenie medzi testami)</term> + <listitem> + +<para>Tento parameter sposobi, ze Nmap bude cakat aspon +zadany hodnotu v milisekundach medzi odoslanim dalsieho testu hostitelskej stanice. +Tak ako aj pri inych parametroch casu, aj tu je mozne pripojit <literal moreinfo="none">s</literal>, +<literal moreinfo="none">m</literal>alebo<literal moreinfo="none">h</literal> ako argument na specifikovanie +oneskorenia v sekundach, minutach alebo hodinach namiesto ms. +Hodi sa to hlavne v pripade obmedzenia poctu odpovedi. Pocitace so systemom Solaris ako aj niektore ine +obycajne na test UDP scanu odpovedia jednou ICMP spravou za sekundu. +Vsetko co sa odosle Nmapom navyse, bude stratene. +Parameter <option>--scan-delay</option> nastaveny na +<literal moreinfo="none">1s</literal> udrzi Nmap na takejto pomalej rychlosti. +Nmap sa pokusi detekovat obmedzenie a priposobit oneskorenie scanu podla toho, +ale nie je na skodu specifikovat to explicitne, ak uz viete, aka rychlost je najvhodnejsia.</para> + +<para>Ak Nmap prisposobuje oneskorenie scanu smerom nahor +pri obmedzeni rychlosti odpovedi, scan sa dramaticky spomali. +Parameter<option>--max-scan-delay</option> specifikuje najvacsie oneskorenie, +ktore povoli Nmap. Nastavenie prilis nizkej hodnoty moze pri zavedenej obmedzenej rychlosti +odpovedi viest +k zbytocnym retransmisiam paketov a moznym vynechanym portom.</para> + +<para>Dalsie pouzitie parametra <option>--scan-delay</option> je vyhnut sa systemom detekcie +(IDS) a narusenia (IPS) zalozenych na prahovej hodnote.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-T + <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane></option> + (Nastavit casovu sablonu) + </term> + <listitem> + +<para>Je sice pravda, ze vyssie rozoberane jemne casove ovladanie scanov je mocne a ucinne, +no niektori ludia to povazuju za dezorientujuce. +Niekedy dokonca moze volenie primeranych hodnot zabrat viac casu +ako scan, ktory sa pokusat optimalizovat, a tak Nmap ponuka jednoduchsi pristup so siestimi +sablonami. Je ich mozne specifikovat parametrom +<option>-T</option> a ich cislami(0 - 5) ci menami. +Nazvy sablon tu paranoid (0), sneaky (1), polite (2), normal +(3), aggressive (4) a insane (5). Prve dve su urcene +pre obidenie systemov IDS. Mod Polite sa spomali, ked scan pouziva mensiu +sirky pasma a prostriedkov cieloveho pocitaca. Mod Normal je predvolenym a teda +<option>-T3</option> neurobi ziadnu zmenu. Mod Aggressive urychli scan predpokladom, +ze ste na rozumne rychlej a spolahlivej sieti. Konecne mod Instane predpoklada, ze ste na vynimocne +rychlej sieti alebo chcete obetovat presnost za rychlost.</para> + +<para>Tieto sablony dovoluju pouzivatelovi specifikovat agresivitu, zatial co, Nmap sam vyberie +presne hodnoty casovania. Sablony takisto vykonavaju male prisposobenia rychlosti, na ktore momentalne +neexistuju jemne ovladacie parametre. Napriklad moznost +<option>-T4</option> zakazuje, aby dynamicke oneskorenie scanu +prekrocilo +10ms pre TCP porty a<option>-T5</option> ohranici tuto hodnotu 5 milisekundami. +Pokial sa sablona specifikuje ako prva, moze byt pouzita v kombinacii s jemnym ovladanim, inak +sa povodne hodnoty pre sablony prepisat vami specifikovanymi hodnotami. +Odporucam pouzitie parametra <option>-T4</option> ak sa scanuju moderne a spolahlive +siete. Aj ked zadate dalsie jemne ovladanie kvoli dodatocnym malym povolenym optimalizaciam, zachovajte +tento parameter (na zaciatok prikazoveho riadku).</para> + +<para>Ak ste na poriadnej sieti s broadbandovym alebo ethernetovym pripojenim, +vzdy by som odporucal pouzitie parametra<option>-T4</option>. +Niektori ludia preferuju moznost +<option>-T5</option>, hoci pre mna je prilis agresivna. +Ini zasa niekedy zadaju <option>-T2</option>, pretoze si myslia, ze tymto je +mensia pravdepodobnost sposobenia spadnutia pocitaca alebo pretoze sa sami +vo vseobecnosti povazuju za zdvorilych. Casto si pritom neuvedomuju, za moznost <option>-T +Polite</option> je skutocne velmi pomala. Takyto scan moze trvat desatkrat viac +ako povodny scan. +Spadnutia pocitacov a problemy so sirkou pasma su zriedkave pri pouziti predvoleneho parametra casovania +(<option>-T3</option>) a tak ho normalne odporucam pre pozornych scannerov. +Vynechanie detekcie verzie je vsak casovo ovela ucinnejsie ako hranie sa s hodnotami casovania.</para> + +<para>Zatial co moznosti <option>-T0</option>a<option>-T1</option> mozu byt uzitocne +pre vyhnutie sa upozorneni systemov IDS, scanovanie tisicov portov pocitacov bude trvat vynimocne dlho. +Pri takomto dlhom scane je mozno lepsie nastaveni presnych hodnot casovania +namiesto spolahnutia sa na vopred pripravene moznosti<option>-T0</option>a<option>-T1</option> +.</para> + +<para>Hlavnymi nasledkami pouzitia parametru<option>T0</option> je serializacia scanovania portov, +takze sa sucasne scanuje len jeden port, a pred vyslanim dalsieho testu sa caka 5 minut. +Moznosti <option>T1</option> a +<option>T2</option> su podobne, ale medzi jednotlivymi testami cakaju len 15 resp. 0.4 +sekund. Moznost<option>T3</option> je predvolenou pre Nmap a zahrna paralelizaciu. +Moznost <option>T4</option> +je ekvivalentna zadaniu<option>--max-rtt-timeout 1250 +--initial-rtt-timeout 500 --max-retries 6</option> a nastavuje maximalne oneskorenie +TCP scanu na 10 ms. Moznost<option>T5</option> je ekvivalentna zadaniu +<option>--max-rtt-timeout 300 --min-rtt-timeout 50 +--initial-rtt-timeout 250 --max-retries 2 --host-timeout 900000</option> a takisto nastavenia +maximalneho oneskorenia TCP scanu na 5ms.</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-bypass-firewalls-ids"> + <title>Vyhnutie sa firewallu/ Systemu IDS a falsovanie</title> + +<para>Mnohi priekopnici internetu si predstavovalo globalnu +otvorenu siet s univerzalnym priestorom IP adries umoznujucim +vykonavat virtualne spojenia medzi lubovolnymi dvoma uzlami. To +umoznuje hostitelskym staniciam posobit ako ozajstni peers, poskytujuc a ziskavajuc informacie +od kazdeho jedneho. Ludia mohli pristupovat na vsetky domace systemy z prac a tak zmenit nastavenie +ovladania klimy alebo otvorenia dveru pre skorych hosti. Tato vizia univerzalnej +konektivity je vsak potlacena nedostatkom priestoru IP adries a obavami z bezpecnosti. +Na zaciatku 90.rokov zacali organizacie nasadzovat firewally na rychly ucel obmedzenia +konektivity. +Obrovske siete boli uzavrete pred nefiltrovanym intenernetom pomocou aplikacnych proxy serverov, +prekladu NAT a paketovych filtrov. Neobmedzeny tok informacii dal zelenu uzkej regulacii +odsuhlasenych komunikacnych kanalov a obsahu, ktory cez ne prechadza.</para> + +<para> Sietove prekazky ako firewally vedia velmi stazit zmapovanie siete. Nezjednodusi sa to, +pretoze potlacenie neplanovaneho skumania siete ja casto klucovym cielom implementovania +tychto zariadeni. Napriek tomu obsahuje Nmap mnohe funkcie, ktore pomahaju +pochopit tieto zlozite siete a overit, ze filtre funguju podla ocakavania, dokonca podporuje aj +mechanizmy obidenia pre slabo implementovane obrany. Jednou z najlepsich metod pochopenia situacie +vasej sietovej bezpecnosti je pokusit sa ju prelomit. +Predstavte si seba ako utocnika a nasadte proti vasim sietam metody z tejto sekcie. +Spustite scan FTP bounce ftp, Idle scan, utok pomocou fragmentacie alebo sa pokuste pretunelovat +cez jeden z vasich proxy serverov. +</para> + +<para>Okrem obmedzovania sietovej aktivity spolocnosti stale viac +monitoruju traffic v sieti pomocou systemov na detekciu preniknutia (IDS). +Vsetky hlavne systemy IDS sa dodavaju s pravidlami vytvorenymi na detekciu scanov Nmapu, +pretoze tieto scany su niekedy pociatkom pre utoky. Vela tychto produktov sa casom +vyvinulo do systemov s +<emphasis>prevenciou</emphasis> preniknutia (IPS), ktore aktivne blokuju +traffic, ktory sa zda byt skodlivy. Spolahlive detekovanie zlych umyslov pomocou analyzy +dat v paketoch je nanestastie pre sietovych +administratorov a vyrobcov systemov IDS tazky problem. Utocnici s trpezlivostou, +zrucnostou a pomocou urcitych parametrov Nmapu mozu obycajne zabranit detekcii systemu IDS. +Na druhej strane sa administratori musia popasovat s velkym mnozstvom falosnych +pozitivnych vysledkov, kde sa nespravne diagnizuje nevinna aktivita a je v stave pohotovosti +alebo je blokovana. +</para> + +<para> Niekedy ludia navrhuju, ze by Nmap nemal ponukat +funkcie na vyhnutie sa pravidlam firewallu alebo prejdenia cez systemy IDS. +Zdovodnuju, ze tieto funkcie mozu byt tak vyuzite administratormi na zvysenie bezpecnosti +ako aj utocnikmi. Problemom toho je, ze tieto metody by sa stale vyuzivali utocnikmi, +ktori by si namiesto toho nasli dalsie nastroje alebo patche, ktore by fungovali +s Nmapom. +Na druhej strane, pre administratorov by bolo ovela tazsie vykonavat si svoju pracu. +Nasadzovanie len modernych, opravenych FTP serverov +je ovela mocnejsia obrana, ako snaha predist rozsireniu nastrojov implementujucich utok FTP bounce. +</para> + +<para> Neexistuje ziadne specialne magicke kuzlo(alebo parameter Nmapu) na detekciu a +podkopanie firewallov a systemov IDS. Vyzaduje si to zrucnost a skusenost. +Tutorial je za mimo rozsahu tejto referencnej prirucky, ktora len podava zoznam +relevantnych parametrov a opisuje, co robia. +</para> + +<variablelist> + <varlistentry> + <term> + <option>-f</option> (fragmentovat pakety); + <option>--mtu</option> (pouzitim specifikovanej velkosti jednotky MTU) + </term> + + <listitem> + <para>Parameter <option>-f</option> sposobi, ze pozadovany scan(vratane + scanov pingu) pouzije male fragmentovane IP pakety. + Myslienka je rozdelit hlavicku TCP na niekolko paketov, cim sa stazi detekcia aktivity + pre paketove filtre, systemy IDS a ine. + Je nutne byt pri tomto opatrny. Niektore programy + nedokazu korektne prijat male pakety. Sniffer zo starej skoly s nazvom + Sniffit po prijati prveho segmetu okamzite zahlasil chybu "segmentation fault". + Po jednom zadani tohoto parametra Nmap rozdeli pakety po hlavicke IP na maximalne 8 bajtov + dlhe, takze 20-bajtova hlavicka TCP sa rozdeli na 3 pakety, dva s velkostou hlavicky TCP + osem bajtov a posledny o velkosti styri. Samozrejme, ze kazdy fragment + ma takisto hlavicku IP. + Po opatovnom zadani moznosti <option>-f</option> sa na jeden fragment pouzije 16 bajtov, cim sa znizi + pocet fragmentov. + Dalej je mozne specifikovat vlastnu velkost offsetu zadanim parametra <option>--mtu</option>. + Nezadavajte sucasne parametre<option>-f</option> a <option>--mtu</option>. + Offset musi byt nasobkom cisla 8. Zatial co fragmentovane pakety + neprejdu cez paketove filtre a firewally, ktore zhromazduju vsetky IP fragmenty v rade, + ako napriklad parameter CONFIG_IP_ALWAYS_DEFRAG v jadre Linuxu, + niektore siete si nemozu dovolit takyto zasah do vykonu siete a preto + nechavaju parameter zakazany. Ine to zase neumoznuju, + pretoze fragmenty mozu putovat do siete roznymi cestami. + Niektore zdrojove systemy defragmentuju vychadzajuce pakety v jadre, jednym z nich + Linux s modulom ip tables. Pocas vykonavania scanu je mozne pouzit + sniffer napr. Ethereal a tym sa da sledovat, ci su odosielane pakety fragmentovane. + Ak sa v lokalnom OS na lokalnom pocitaci vyskytnu problemy, skuste zadat parameter<option>--send-eth</option> cim sa to obide + vrstva IP a odoslu sa neupravene ethernetove ramce.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-D <decoy1 [,decoy2][,ME],...></option> + (Zakryt scan pomocou decoys) + </term> + <listitem> + <para>Spusti sa scan pomocou obetnych stanic(decoys), cim sa pre vzdialenu hostitelsku stanicu + bude specifikovana scanovacia hostitelska stanica/stanice javit ako decoy, ktora takisto ako ozajstna stanica scanuje + cielovu siet. Ich system IDS preto moze zahlasit 5-10 scanov portov z roznych IP adries, no nebude + vediet, ktore scany boli prave, a z ktorej IP adresy sa naozaj scanovalo. + Zatial co sa tato metoda porazit pouzitim mechanizmov sledovania drah routerov, zahodenia odpovedi a dalsich aktivnych mechanizmov, + je to stale ucinny sposob ako zakryt pravu IP adresu. + </para> + + <para>Adresu kazdej decoy je potrebne oddelit ciarkami a je mozne pouzit parameter + <literal moreinfo="none">ME</literal> urcujuci, ktora z decoys + reprezentuje vasu realnu IP adresu. Ak sa ME + <literal moreinfo="none">ME</literal> vlozi na vzdialenejsiu ako 6.poziciu, + niektore bezne detektory scanov portov (napr. vyborny scanlogd spolocnosti Solar Designer) + by nemali byt vobec dokazat zobrazit vasu IP adresu. Ak pouzijete <literal moreinfo="none">ME</literal> + , nmap vlozi vasu IP adresu na nahodnu poziciu.</para> + <para>Vsimnite si, ze hostitelske stanice pouzite ako falosne scannery teda decoys by mali byt aktivne, inak + mozete nahodne zahltit cielove stanice SYN paketmi. Ak bude aktivna len jedna hostitelska stanica, + bude velmi jednoduche zistit, ktora z decoys vykonala scan. Namiesto DNS nazvov moze byt uzitocne pouzit + IP adresy (takze vas siete pocitacov decoys nebudu vidiet v logu nameserveru.) + </para> + + <para>Decoys su pouzivane pri pociatocnom ping scane (pouzijuc ICMP, SYN, ACK alebo ine) tak ako + aj pocas samotnej fazy scanovania, a pouzivaju sa aj pri detekcii vzdialeneho OS (<option>-O</option>). + Decoys nefunguju pri detekcii verzie alebo scane typu TCP connect().</para> + + <para> Prilis mnoho decoys moze spomalit scan a potencialne + ho znepresnit. Niektori internetovi provideri mozu filtrovat falosne + pakety, no mnohi ich vobec neobmedzuju.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-S <IP_Address></option> (Falosna zdrojova IP adresa) + </term> + <listitem> + <para> Pri niektorych okolnostiach nedokaze Nmap urcit lokalnu zdrojovu IP adresu ( + ak je s tym problen, Nmap to oznami). V tejto situacii je nutne pouzit parameter<option>-S</option> + s IP adresou, cez ktoru sa maju odosielat pakety.</para> + + <para>Dalsim moznym sposobom pouzitia tohoto flagu je falsovanie scanu, cim sa cielove stanice budu + domnievat, ze ich scanuje <emphasis>niekto iny</emphasis>. Predstavte si firmu, ktora + je opakovane scanovana konkurencnou firmou. Parameter + <option>-e</option> bude pre tento typ pouzitia vsobecne vyzadovany a + parameter <option>-P0</option> je tiez vhodny.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-e <interface></option> (Pouzit specifikovane rozhranie) + </term> + <listitem> + <para>Povie Nmapu, cez ktore rozhranie sa maju odosielat a prijimat pakety. + Nmap by to mal vediet detekovat automaticky, ale v opacnom pripade to oznami.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--source-port <portnumber>;</option> + <option>-g <portnumber></option> (Falsovat zdrojove cislo portu) + </term> + <listitem> + +<para>Jednou z bezne nespravnej konfiguracie je ak sa doveruje trafficu zalozenom na zdrojovom cisle portu. +Nie je tazke pochopit ako k tomu dochadza. Administrator nastavi nablyskany novy firewall a bude zahlteny +staznostami nevdacnych pouzivatelov, ktorych aplikacie prestali fungovat. Specialnym pripadom moze byt +pokazeny DNS server, pretoze odpovede na DNS request z vonkajsich serverov uz nemozu vstupovat do siete. +Dalsim castym prikladom je FTP. Pri aktivnych prenosoch FTP sa vzdialeny server pokusa o spatne spojenie +ku klientovi, aby dodal pozadovany subor. +</para> + +<para> Bezpecnymi rieseniami na tieto problemy su casto vo forme proxy serverov na aplikacnej urovni alebo +firewallove moduly skumajuce protokoly. Existuju nanestastie aj jednoduchsie a nebezpecne riesenia. +Vediac, ze DNS odpovede prichadzaju z portu 53 a aktivne ftp z portu 20, vela administratorov sa chytilo do pasce +a jednoducho povolilo prichadzajuci traffic z tychto portov, pricom castu beru do uvahy, ze to ziadny +utocnik nespozoruje a ani nezneuzije tuto dieru vo firewalle. V inych pripadoch to administrator povazuje +za kratkodobe opatrenie az kym sa neimplementuje bezpecnejsie riesenie, a potom na tento upgrade zabudnu. +</para> + +<para> Prepracovani sietovi administratori vsak nie su jedinymi, kto sa chyti do tejto pasce. Mnohe produkty +sa dodavaju s tymito nebezpecnymi pravidlami, dokonca aj Microsoft bol vinny. Filtre protokolu IPsec dodavane so +systemami Windows 2000 a Windows XO obsahuju implicitne pravidlo, ktore povoluje cely neobmedzeny TCP a UDP traffic +z portu 88 (Kerberos). Dalsim dobre znamym pripadom povolovali verzie osobneho firewallu Zone Alarm az do verzie +2.1.25 vsetky prichadzajuce UDP pakety so zdrojovym portom 53(DNS) alebo 67 (DHCP). +</para> + +<para>Nmap ponuka na objavenie tychto zranitelnosti ekvivalentne parametere<option>-g</option> a +<option>--source-port</option>. Jednoducho zadate cislo portu a Nmap z neho odosle pakety. +Pri niektorych testoch detekcie OS kvoli ich spravnej funkcii musi Nmap pouzivat odlisne cisla portov + a DNS poziadavky ignoruju parameter +<option>--source-port</option>, pretoze Nmap ich nechava na pleciach systemovych kniznic. +Vacsina TCP scanov vratane SYN scanu ako aj UDP scan podporuju tento parameter uplne.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--data-length <number></option> (Do odosielanych paketov pripojit nahodne data) + </term> + <listitem> + <para>Za normalnych okolnosti odosiela Nmap minimalne pakety obsahujuce len hlavicku, takze + TCP pakety maju obycajne 40 bajtov a ICMP echo poziadavky len 28. Tento parameter napoveda Nmapu, aby + pripojil nahodne bajty nahodnej dlzky do odosielanych paketov. + Pakety detekcie OS(<option>-O</option>) nie su ovplyvnene na rozdiel od vacsiny ping a portscan paketov. + Spomaluje to proces, ale trochu znenapadnuje scan.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--ttl <value></option> (Nastavit pole IP time-to-live) + </term> + <listitem> + <para>Nastavi hodnotu pola IPv4 time-to-live odosielanych paketov na udanu hodnotu.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--randomize-hosts</option> (Nahodne vybrat poradie cielovych pocitacov) + </term> + <listitem> + <para>Nmap premiesa kazdu skupinu o velkosti az do 8096 hostitelskych stanic pred ich scanovanim, co + moze znenapadnit scany pre rozne sietove moniturujuce systemy, hlavne ked sa skombinuju s parametrami + pomaleho casovania. Ak chcete nahodne premiesat vacsie velkosti skupin, zvyste hodnotu premennej + PING_GROUP_SZ v subore <filename moreinfo="none">nmap.h</filename> a znovu skompilujte. + Dalsim riesenim je vytvorit zoznam cielovych stanic pomocou list scanu + An alternative solution is to generate the target IP list + (<option>-sL -n -oN + <replaceable>filename</replaceable></option>), premiesat ho nahodne pomocoou scriptu napisaneho + v Perli a potom tento zoznam predat Nmapu parametrom + <option>-iL</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--spoof-mac <mac address, prefix, or vendor + name></option> (Vytvorit falosnu MAC adresu) + </term> + <listitem> + + <para>Nmap pouzije zadanu MAC adresu pre + vsetky odosielane neupravene ethernetove ramce. Zahrna to v sebe parameter + <option>--send-eth</option>, cim sa zaisti, ze Nmap vlastne odosle + pakety na urovni ethernetu. Zadana MAC adresa moze byt v roznych formatoch. Ak je to jednoducho znak + <quote>0</quote>, Nmap zvoli uplne nahodnu mac adresu. Ak je zadanym retazcom parny pocet hexadecimalnych + cislic (s parmi dvoch nepovinne oddelenymi ciarkami), Nmap ich pouzije ako MAC adresu. Ak je zadanych menej + ako 12 hexadec. cisel, Nmap vyplni zbytok zvyskom 6 byteov nahodnych hodnot. Ak sa nepouzije ani jedna + z tycho moznosti, Nmap prehlada subor + <filename moreinfo="none">nmap-mac-prefixes</filename> pri pokuse najst nazov vyrobcu obsahujuci dany retazec (nezavisi na velkosti + velkych a malych pismen). Ak je najdena zhoda, Nmap pouzije OUI vyrobcu (3-bajtova predpona) a nahodne vyplne 3 + zostavajuce bajty. Spravne zadanymi prikladmi pre parameter<option>--spoof-mac</option> su <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> ci <literal moreinfo="none">Cisco</literal>.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--badsum</option> (Odoslat pakety s falosnym kontrolnym suctom TCP/UDP) + </term> + <listitem> + + <para>Nmap pouzije neplatny kontrolny sucet TCP alebo UDP na odoslanie paketov cielovej stanici. + Kedze prakticky vsetky hostitelske IP stacky dokladne zahadzuju taketo pakety, ak pride odpoved, + pochadza pravdepodobne od firewallu alebo systemu IDS, ktory neoveroval kontrolny sucet. + Viac podrobnosti o tejto metode najdete na adrese <ulink url="https://nmap.org/p60-12.txt"/></para> + </listitem> + </varlistentry> + + </variablelist> + + </refsect1> + + <refsect1 id="man-output"> + <title>Vystup</title> + + <para>Kazdy bezpecnostny nastroj je len tak uzitocny, ako uzitocny je vytvarany vystup. + Zlozite testy a algoritmy maju malu hodnotu, ak nie su prezentovane v organizovanej a zrozumitelnej forme. + Pri pohlade na pocet sposobov, akymi je Nmap pouzivany ludmi a dalsim softwarom, neexistuje jednotlivy + format, ktory by vyhovoval kazdemu, takze preto Nmap ponuka niekolko formatov vratane interaktivneho modu citatelneho + pre ludi a XML formatu lahko spracovavaneho softwarom. + </para> + +<para>Okrem ponukania rozlicnych vystupnych formatov poskytuje Nmap parametre na ovladanie miery mnozstva vystupu +tak ako aj debugovacie spravy. Vystupne typy mozu byt odoslane na standardny vystup alebo do nazvaneho suboru, +do ktoreho moze Nmap data pripojit k existujucim alebo premazat subor a vlozit data. +Vystupne subory mozu byt tiez pouzite na pokracovanie zachytavania vystupu z prerusenych scanov.</para> + +<para>Nmap ponuka vystup v piatich moznych formatoch. Predvolenym je +<literal moreinfo="none">interactive output</literal> a je odosielany na standardny vystup (stdout). +Existuje aj <literal moreinfo="none">normal output</literal> podobny <literal moreinfo="none">interactive</literal> s tou vynimkou, +ze zobrazuje menej runtimeovych informacii a upozorneni pri behu Nmapu, pretoze sa od neho ocakava, ze +bude analyzovany az po skonceni scanu a nie interaktivne.</para> + +<para>Vystup vo formate je jednym z najdolezitejsich vystupnych typov a moze byt konvertovany na HTML format, + lahko rozobraty dalsimi programami napr. grafickymi rozhraniami Nmapu, alebo importovany do databaz.</para> + +<para>Dva zostavajuce typy vystupov su jednoduchy <literal moreinfo="none">grepable +output</literal> obsahujuci vacsinu informacii o cielovej stanici na jednom riadku +, a<literal moreinfo="none">sCRiPt KiDDi3 0utPUt</literal> pre pouzivatelov povazujucich sa za +|<-r4d.</para> + +<para>Zatial co interaktivny vystup je predvoleny a nema ziadne +suvisiace parametre prikazoveho riadku, dalsie styri formaty maju tu istu syntax. +Pouzivaju jeden argument, ktorym nazov vystupneho suboru. Mozu byt zadane aj viacere formaty, ale vzdy len raz. +Ak napriklad chcete ulozit normalny vystup pre seba a zaroven ho ulozit do XML formatu kvoli analyze programu, +mozete pouzit parametre +<option>-oX myscan.xml -oN myscan.nmap</option>. Tato kapitola sice pouziva kvoli strucnosti +jednoduche nazvy suborov ako <literal moreinfo="none">myscan.xml</literal>, ale odporuca sa pouzit popisnejsie +nazvy. Zvolene nazvy su otazkou osobnych preferencii, hoci ja pouzivam dlhe nazvy zahrnujuce datum scanu a par slov +opisujucich scan, ktory je umiestneny v adresari podla scanovej spolocnosti.</para> + +<para> Kym tieto parametre ukladaju vysledky do suborov, Nmap stale zobrazuje +interaktivny vystup na stdout ako obycajne. Napriklad prikaz +<command moreinfo="none">nmap -oX myscan.xml target</command> zobrazi XML vystup do suboru +<filename moreinfo="none">myscan.xml</filename> a standardny vystup zobrazi presne tie iste interaktivne vysledky, ako keby +parameter <option>-oX</option> nebol vobec specifikovany. Zmenit to mozete zadanim spojovnika ako argumentu +pre jeden z typov formatov, co sposobi, ze Nmap deaktivuje interaktivny vystup a namiesto toho posle vysledky len +do zadaneho formatu, cize prikaz <command moreinfo="none">nmap -oX - target</command> odosle do stdout len vystup v XML. +Vazne chyby mozu byt stale zobrazovane do normalneho chyboveho streamu s nazvom stderr.</para> + +<para>Na rozdiel od niektorych argumentov Nmapu, medzera medzi parametrom logovacieho suboru +(napr. <option>-oX</option>) a nazvom suboru alebo spojovnikom je povinna. +Ak vynechate flagy a zadate argumenty ako napr. +<option>-oG-</option> alebo <option>-oXscan.xml</option> funkcia spatnej kompatibility Nmapu sposobi, ze +sa vytvori vystupnych suborov v +<emphasis>normal format</emphasis> s nazvom +<filename moreinfo="none">G-</filename>, resp. <filename moreinfo="none">Xscan.xml</filename> +.</para> + +<para>Nmap takisto ponuka parametre na ovladanie mnozstva vystupu scanu a ci sa maju vystupne subory prepisat alebo +sa ma pokracovat v pripajani dat. Vsetky tieto parametre su opisane nizsie. +</para> + +<variablelist><title>Vystupne formaty Nmapu</title> + <varlistentry> + <term> + <option>-oN <filespec></option> (Normalny vystup)</term> + <listitem> + <para>Sposobi, ze<literal moreinfo="none">normal output</literal> sa presmeruje do suboru so zadanym nazvom. + Ako bolo rozobrate vyssie, tento vystup sa mierne lisi od interaktivneho - + <literal moreinfo="none">interactive output</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oX <filespec></option> (XML vystup)</term> + <listitem> + + <para>Sposobi, ze <literal moreinfo="none">XML output</literal> sa presmeruje do suboru + so zadanym nazvom. Nmap zahrna definiciu typu dokumentu (DTD), co umoznuje XML parserom vytvarat + korektny XML vystup Nmapu. Je to sice urcene hlavne pre programove ucely, moze takisto pomoct ludom + interpretovat XML vystup Nmapu. DTD definuje platne prvky formatu a casto vymenuva atributy + a hodnoty, ktore mozu nadobudat. Posledna verzia je dostupna z adresy + <ulink url="https://nmap.org/data/nmap.dtd"/>.</para> + + <para>XML ponuka stabilny format lahko spracovatelny softwarom. + Volne XML parsery su dostupne vo vsetkych hlavnych programovacich jazykoch + vratane C/C++,Perl, Python a + Java. Su ponukane napojenia pre vacsinu tychto jazykov tak, ze si vedia specificky poradit + s vystupom a behom Nmapu. + Prikladmi su <ulink url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> + a <ulink url="http://www.nmapparser.com">Nmap::Parser</ulink> v Perl + CPAN. Skoro vo vsetkych pripadoch rozhrania netrivialnej aplikacie + s Nmapom, XML je preferovanym formatom.</para> + + <para>XML vystup sa odkazuje na XSL stylesheet, + ktory moze byt pouzity na formatovanie vysledkov do HTML. Najjednoduchsim sposobom ako ho pouzit +je jednoducho nahrat vystup v XML do weboveho prehliadaaca akym je Firefox alebo IE. + Za normalnych okolnosti to bude fungovat len na pocitaci, na ktorom bezi + Nmap (alebo na podobne nastavenom) kvoli napevno zadanej ceste suboru <filename moreinfo="none">nmap.xsl</filename> + suboroveho systemu. Zadanim parametrov <option>--webxml</option> alebo + <option>--stylesheet</option> vytvorite prenosne XML + subory, ktore sa na kazdom pocitaci s webovym prehliadacom zobrazia v HTML formate.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oS <filespec></option> (ScRipT KIdd|3 oUTpuT)</term> + <listitem> + <para>Vystup formatu Script kiddie je podobny interaktivnemu, no dodatocne sa spracuvava, + aby vyhovoval skupine l33t HaXXorZ, ktori predtym opovrhovali Nmapom kvoli jeho doslednemu formatovaniu + velkych pismen a hlaskovaniu. Ludia s nedostatkom zmyslu pre humor by si mali uvedomit, +ze tento parameter je mysleny ako vtip pre script kiddies, predtym ako ma zacnu flamovat za to, +ze im udajne <quote>pomaham</quote>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oG <filespec></option> (Vystup typu Grep)</term> + <listitem> + +<para>Tento format vystupu je spomenuty ako posledny, pretoze je zastaraly. Vystup vo formate XML +je ovela mocnejsi a takmer tak isto vhodny a pohodlny pre skusenych pouzivatelov. XML je standardom, +pre ktory je dostupnych mnoho excelentnych parserov, kym vystup typu grep je len moj vlastny vymysel. +XML je rozsiritelne na podporu novych vydanych funkcii Nmapu, zatial co tieto funkcie musim casto vynechat +pri vystupe formatu grep kvoli nedostatku miesta na ich umiestnenie. +</para> + +<para>Aj tak je vsak tento format stale dost oblubeny. Je to jednoduchy format, ktory +zobrazuje kazdy hostitelsku stanicu na jeden riadok a moze byt jednoducho prehladavany +a parsovany standardnymi UNIXovymi nastrojmi ako grep, awk, cut, +sed, diff ci Perl. Aj ja ho dokonca pouzivam pre jednorazove +testy na prikazovom riadku. Najst vsetky hostitelske stanice s otvorenym +portom ssh alebo s beziacim systemom Solaris si vyzaduje jednoduchy grep na identifikaciu +hostitelskych stanic, napojeny rurou - pipe na prikaz awk alebo cut, cim sa zobrazia +pozadovane polia.</para> + +<para>Vystup vo formate Grep sa sklada z komentara (riadky zacinajuce sa znakom) a riadkami cielov. + Riadok ciela zahrnuje kombinaciu 6 oznacenych poli, oddelenych tabulatorom a nasledovanym dvojbodkou, +<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">IPID</literal> a <literal moreinfo="none">Status</literal>.</para> + +<para>Najdolezitejsim z tychto poli je vo vseobecnosti +<literal moreinfo="none">Ports</literal>, ktore poskytuje podrobnosti o kazdom +zaujimavom porte a obsahuje zoznam poloziek portov oddelenenych ciarkou, +pricom kazda polozka reprezentuje jednotlivy port a zaujima podobu siedmych mensich poli oddelenych +znakom /. Su nimi: <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> a <literal moreinfo="none">Version info</literal>.</para> + +<para>Tak ako pri vystupe XML, ani tento manual nemoze pokryvat dokumentaciu celeho formatu. Podrobnejsi pohlad +na format typu grep Nmapu je dostupny z adresy +<ulink url="http://www.unspecific.com/nmap-oG-output"/>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oA <basename></option> (Vystup vo vsetkych formatoch)</term> + <listitem><para> + Pre ucel pohodlnosti je mozne zadat <option>-oA + <replaceable>basename</replaceable></option>, cim sa vysledky scanu naraz ulozia v normalnom, +XML a grep formate. Ulozia sa do suborov v tvare + are stored in <replaceable>basename</replaceable>.nmap, + <replaceable>basename</replaceable>.xml a + <replaceable>basename</replaceable>.gnmap. + Tak ako pri vacsine programov je aj tu mozne pridat predponu adresarovej cesty, napr. + + + <filename moreinfo="none">~/nmaplogs/foocorp/</filename> na UNIXovych systemoch alebo + <filename moreinfo="none">c:\hacking\sco</filename> na Windows.</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Miera vypisu a moznosti debugovania</title> + <varlistentry> + <term> + <option>-v</option> (Zvysit stupen miery vypisu) + </term> + <listitem> + <para>Zvysi stupen miery vypisu, cim Nmap zobrazi viac informacii o vykonavanom scane. Otvorene + porty su zobrazovane hned pri ich najdeni. Ak Nmap odhaduje, ze scan zabere viac ako niekolko minut, + zobrazi tento odhad. Pri dvojnasobnom pouziti parametru sa este viac zvysi miera vypisu. + Viacnasobne pouzitie nema ziadny efekt.</para> + + <para>Vacsina zmien ovplyvnuje len interaktivny vystup a niektore tiez normalny a script kiddie format vystupu. + Ostatne typy vystupov su spracovavane pocitacmi, takze Nmap poskytuje podstatne podrobnosti predvolene + bez unavovania cloveka. Existuje vsak niekolko zmien v dalsich modoch, kde sa moze velkost vystupu podstatne + zmensit vynechanim niektorych podrobnosti. Napriklad riadok s komentarom vo formate grep poskytujuci vsetkych + scanovanych portov sa zobrazi len v mode verbose - s velkou mierou vypisu - pretoze moze byt dost dlhy. + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-d [level]</option> (Zvysit alebo nastavit uroven debugovania) + </term> + <listitem> + +<para>Ak ani mod verbose neposkytuje dostatocne udaje, je vhodne pouzit debugovanie, cim sa doda omnoho viac +informacii. Tak ako pri parametri stupna urovne vypisu, +(<option>-v</option>), debugovanie sa povoli riadkovym parametrom(<option>-d</option>) +a jeho stupen sa da zvysit jeho niekolkonasobnym zadanim. Alternativne je mozne nastavit +stupen debugovania dosadenim argumentu za parameter <option>-d</option>, napriklad +<option>-d9</option> nastavi uroven na devat, co predstavuje najvyssi platny stupen a v pripade, +ze sa nevykonava velmi jednoduchy scan s par portmi a cielovymi stanicami vyprodukuje +tisicky riadkov.</para> + +<para>Vystup debugovania je uzitocny, ak je podozrive, ze Nmap obsahuje bug, +alebo ak ste proste zmateni, co Nmap robi a preco. Riadky debuggovania nie su prilis samo +vysvetlujuce, kedze su urcene pre vyvojarov. Je mozne dopracovat sa k niecomu takemu: +<computeroutput moreinfo="none">Timeout +vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 +rttvar: 14987 to: 100000</computeroutput>. Ak nerozumiete ani jednemu riadku, jedinym riesenim je ignorovat +vypis alebo si ho vyhladat v zdrojovom kode, pripadne si vyziadat pomoc zo development listu (nmap-dev). +Niektore riadku su samovysvetlujuce, no zvysovanim stupna debugovania sa straca prehlad. +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--packet-trace</option> (Sledovat odosielane a prijimane pakety a data) + </term> + <listitem> + <para>Nmap zobrazi obsah kazdeho odoslaneho alebo prijateho paketu. + Casto sa to pouziva pre debugovanie, ale zide sa tiez novacikom, + ktori su presne rozumiet, co sa deje pod pokryvkou Nmapu. + Ak chcete predist zobrazovaniu tisicov riadkov, je mozne specifikovat + obmedzeny pocet portov na scanovanie, napr.<option>-p20-30</option>. + Ak vas zaujima len priebeh detekcie verzie, zadajte + <option>--version-trace</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--iflist</option> (Zobrazit zoznam rozhrani a ciest) + </term> + <listitem> + <para>Zobrazi zoznam rozhrani a systemovych ciest tak ako boli detekovane + Nmapom, co sa hodi pre debugovanie problemov s routovanim alebo nespravnou + charakterizaciou zariadenia, napr. ak Nmap povazuje pripojenie PPP za ethernetovske. + .</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>Rozne moznosti vystupu</title> + + <varlistentry> + <term> + <option>--append-output</option> (Pripojit vystup namiesto vymazania predchadzajucich dat) + </term> + <listitem> + <para>Pri specifikacii nazvu suboru za parametrom formatu vystupu napr. + <option>-oX</option> alebo <option>-oN</option>sa v predvolenom nastaveni subor prepise. + Ak chcete zachovat obsah suboru a pripojit nove vysledky, zadajte parameter <option>--append-output</option> + a vsetky zadane nazvy suborov sa namiesto prepisovania budu rozsirovat o nove data. Nefunguje to pre data scanu + pre format XML(<option>-oX</option>), pretoze sa vysledny subor nespracuje spravne, az kym + ho neopravite rucne.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--resume <filename></option> (Pokracovat v prerusenom scane) + </term> + <listitem> + + <para> Niektore rozsiahle scany trvaju Nmapu velmi dlho - radovo aj dni. Taketo scany + nebezia stale do konca. Mozu existovat obmedzenia, ze Nmap nesmie byt spusteny pocas + pracovneho casu, mohla by spadnut siet, pocitac so spustenym Nmapom by mohol planovane ci neplanovane + restartovat alebo by Nmap sam mohol zhavarovat. + Administrator ho moze zrusit takisto a to stlacenim kombinacie + <keycap moreinfo="none">ctrl-C</keycap>. Restartovat cely scan + od zaciatku moze byt neprijatelne. Nastastie, ak sa uchovavali logovacie + zaznamy typu normal + (<option>-oN</option>) alebo grep (<option>-oG</option>) + , pouzivatel moze pokracovat v scanovani s tymi istymi cielovymi + stanicami ako predtym pred prerusenim scanu. Docieli sa to zadanim parametra + <option>--resume</option> a vystupneho suboru vo formate normal/grep ako argumentu. + Ziadne dalsie argumenty nie su povolene, pretoze Nmap spracuvava subor pomocou + predchadzajucich parametrov. Je teda potrebne zadat + <command moreinfo="none">nmap --resume + <replaceable>logfilename</replaceable></command>. Nmap pripoji nove vysledky + do suborov specifikovanych v predchadzajucom vykonavani scanu. + Taketo obnovenie scanu nepodporuje vystup v XML + formate, pretoze miesanie vysledkov dvoch spusteni scanu do jedneho + spolocneho spravneho XML suboru by bolo narocne.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--stylesheet <path or URL></option> (Nastavit XSL stylesheet na prevod XML vystupu) + </term> + <listitem> + <para> Nmap je dodavany s XSL stylesheetom nazvanym + <filename moreinfo="none">nmap.xsl</filename> na prezeranie a preklad XML formatu do HTML. + Vystup XML zahrna direktivu <literal moreinfo="none">xml-stylesheet</literal> + , ktora ukazuje na subor <filename moreinfo="none">nmap.xml</filename>, kde bola + pocitatocne nainstalovana Nmapom (vo Windowse aktualnym pracovnym adresarom). + Nahrajete XML vystup Nmapu do moderneho weboveho prehliadaca a ten by mal zo suboroveho systemu najst subor + <filename moreinfo="none">nmap.xsl</filename> a pouzit ho na preklad vysledkov. + Ak si zelate pouzit odlisny stylesheet, zadajte ho ako argument za parametrom + <option>--stylesheet</option>. Je nutne zadat plnu cestu alebo adresu URL. + Jednym z beznych prikladov je + <option>--stylesheet + https://nmap.org/data/nmap.xsl</option>, co sposobi, ze browser nahra najnovsiu + verziu stylesheetu z adresy Insecure.Org. Parameter <option>--webxml</option> + robi to iste bez tolkeho pisania a memorovania. Nahratie XSL stylesheetu z + Insecure.Org ulahcuje prezeranie vysledkov na pocitaci, + ktory nema Nmap (a preto ani + <filename moreinfo="none">nmap.xsl</filename>). URL je teda casto uzitocnejsia, + ale ulozenie suboru v lokalnom suborovom systeme sa pouziva predvolene + kvoli bezpecnosti.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--webxml</option> (Nahrat stylesheet z adresy Insecure.Org) + </term> + <listitem> + <para>Tento pohodlny parameter je jednoducho alternativou k zadaniu + <option>--stylesheet https://nmap.org/data/nmap.xsl</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--no-stylesheet</option> (Vynechat zadanie XSL stylesheetu z XML) + </term> + <listitem> + <para>Tento parameter zabrani Nmapu spajat XSL stylesheet s XML vystupom. Vynecha sa direktiva + <literal moreinfo="none">xml-stylesheet</literal>.</para> + </listitem> + </varlistentry> + + + + </variablelist> + </refsect1> + + <refsect1 id="man-misc-options"> + <title>Rozne moznosti</title> + <para>Tato cast opisuje niektore dolezite a menej dolezite moznosti, ktore + nikam inam nezapadaju.</para> + + <variablelist> + <varlistentry> + <term> + <option>-6</option> (Povolit scanovanie IPv6) + </term> + <listitem> + + <para>Od roku 2002 ponuka Nmap podporu protokolu IPv6 pre svoje najpopularnejsie + funkcie, specialne pre ping scan (len pri TCP), scanovani typu connect() a detekcii verzie. + Syntax prikazov je rovnaka, len sa este prida parameter + <option>-6</option>. Pri zadavani IP adresy je samozrejme nutne + pouzit syntax IPv6. + Adresa moze byt napr. v tvare + <literal moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>, + a preto je odporucane pouzit hostitelske nazvy. Vystup vyzera podobne + ako zvycajne, s adresou v tvare IPv6 v riadku <quote>interesting + ports</quote>, ktory IPv6 prezradza ako jediny.</para> + + <para>Aj ked sa IPv6 stale nerozsiril poriadne, pouziva sa vyznamne v niektorych krajinach, zvycajne + azijskych, a vacsina modernych operacnych systemov ho podporuju. Ak chcete pouzit + Nmap s protokolom IPv6, musia byt zdrojovy aj cielovy pocitac scanu nastavene na tento + protokol. Ak vam vas ISP, ako vacsina, nepriradi IPv6 adresy, su zdarma dostupne + tunelovacie programy pre IPv6 a dobre spolupracuju s Nmapom. Jeden z tych lepsich + je BT Exact. Pouzil + som aj jeden poskytovany spolocnostou na adrese<ulink url="http://ipv6tb.he.net/"/>. + Dalsou metodou zdarma su tunely IPv6 na IPv4.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-A</option> (Parametre agresivneho scanu) + </term> + <listitem> + <para>Tento parameter umoznuje dalsie pokrocile a agresivne moznosti. Este som sa + nerozhodol presne, co vsetko to predstavuje. V sucasnosti umoznuje + detekciu OS + (<option>-O</option>) a scan verzie(<option>-sV</option>). Viac funkcii + sa moze pridat v buducnosti. Dovodom je umoznit rozsiahlu + mnozinu moznosti scanu bez toho, aby si ludia museli pamatat mnozstvo flagov. + Tento parameter povoluje len funkcie, no nie casovacie moznosti (napr.<option>-T4</option>) + alebo parametre miery vystupu (<option>-v</option>), ktore by tiez mohli + byt potrebne.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--datadir <directoryname></option> (Specifikovat vlastne datoveho suboru Nmapu) + </term> + <listitem> + <para>Nmap ziskava specialne data pocas behu zo suborov<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> a + <filename moreinfo="none">nmap-os-fingerprints</filename>. Najprv ich hlada + v adresari zadanom volitelne parametrom + <option>--datadir</option>. Ak tam nie su najdene vsetky subory, + chybajuce su hladane v adresari specifikovanom premennou NMAPDIR. + Dalsim v poradi je adresar <filename moreinfo="none">~/.nmap</filename>, kde sa hladaju + pre systemy POSIX realne a efektivne UID a pre systemy Win32 umiestnenia spustitelneho suboru Nmapu. + Potom sa hlada nakompilovane umiestnenie napr. + <filename moreinfo="none">/usr/local/share/nmap</filename> + ci <filename moreinfo="none">/usr/share/nmap</filename> + . Ako posledna moznost pri hladani sa pouzije aktualny adresar.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-eth</option> (Posielat neupravene pakety na ethernetovej vrstve) + </term> + <listitem> + <para>Nmap bude odosielat pakety na neupravenej druhej, ethernetovej vrstve + (vrstva data link) namiesto vyssej sietovej vrstvy. V predvolenom nastaveni + zvoli Nmap sposob, ktory sa lepsie hodi pre danu platformu. Neupravene sockety + (sietova vrstva) su efektivnejsie pre UNIXovske pocitace, kym ethernetovske + ramce sa vyzaduju pre operacie na platforme Windows, pretoze Microsoft + nepodporuje neupravene sockety. Nmap pouziva na UNIXoch vzdy neupravene IP pakety, + napriek tejto moznosti, aj ked neexistuje ina volba. + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-ip</option> (Posielat neupravene pakety na vrstve IP) + </term> + <listitem> + <para>Nmap bude odosielat pakety prostrednictvom + neupravenych IP socketov a nebude odosielat + nizkourovnove ethernetove ramce. Je to doplnkom parametra <option>--send-eth</option> + rozoberaneho predtym.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--privileged</option> (Predpokladat, ze pouzivatel je plne privilegovany) + </term> + <listitem> + <para>Nmap bude predpokladat, ze ma dost privilegii, + aby mohol odosielat neupravene sockety, vykonavat sniffing paketov a + podobne operacie, ktore obycajne na UNIXovych systemoch vyzaduju privilegia roota. + Za normalnych okolnosti Nmap skonci, ak su taketo operacie pozadovane, + no funkcia geteuid() nevrati nulu. + Parameter <option>--privileged</option> sa hodi pri schopnostiach + kernelu Linuxu a pri podobnych systemoch, ktore mozu byt konfigurovane, + aby umoznili neprivilegovanym pouzivatelom vykonavat scany pouzitim neupravenych + paketov. Tento parameter je potrebne zadat pred vsetkymi + parametrami, ktore vyzaduju privilegia (SYN scan, detekcia OS, atd.). + Premenna NMAP_PRIVILEGED moze byt nastavena ako ekvivalentna + alternativa k parametru + <option>--privileged</option>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-V</option>; <option>--version</option> (Zobrazit cislo verzie) + </term> + <listitem> + <para>Zobrazi cislo verzie Nmapu a ukonci sa.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-h</option>; <option>--help</option> (Zobrazi obsah napovedy) + </term> + <listitem> + <para>Zobrazi kratku obrazovku napovedy s najbeznejsimi prikazmi. To iste sa dosiahne + pri spusteni Nmapu bez argumentov. + </para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-runtime-interaction"> + <title>Interakcia s behom programu</title> + + <note><para>Funkcia interakcie s behom programu este na systemoch Windows nie je plne + podporovana. + </para></note> + + <para>Pocas behu Nmapu sa zachytavaju + vsetky stlacenie klucovych klavesov, co dovoluje komunikovat s programom + bez jeho zastavenia a restartovania. Iste specialne klavesy + zmenia parametre, zatial co ine klavesy zobrazia stavovu spravu informujucu + o scane. Konvencia je taka, ze + <emphasis>male pismena </emphasis> zvysuju mnozstvo zobrazovanych udajov a + <emphasis>velke pismena</emphasis> ho znizuju.</para> + <variablelist> + <varlistentry> + <term> + <option>v</option> / <option>V</option> + </term> + <listitem> + <para>Zvysit / Znizit mieru zobrazovania</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>d</option> / <option>D</option> + </term> + <listitem> + <para>Zvysit / Znizit stupen debugovania</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>p</option> / <option>P</option> + </term> + <listitem> + <para>Zapnut/ Vypnut sledovanie paketov</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + Cokolvek ine + </term> + <listitem> + <para>Zobrazi stavovu spravu, napr.:</para> + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), + 5 undergoing Service Scan</para> + <para>Service scan Timing: About 28.00% done; ETC: 16:18 + (0:00:15 remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-examples"> + <title>Priklady</title> + <para>Na tomto mieste je niekolko prikladov pouzitia Nmapu, od jednoduchych a rutinnych + az po zlozitejsie a tajuplne. Pouzite su niektore vlastne IP adresy a nazvy domen, aby bol + proces konkretny, no namiesto nich by sme mali pouzit nahrady + <emphasis>vasej vlastnej siete.</emphasis>. Aj ked si nemyslim, ze scanovanie portov + dalsich sieti je alebo by malo byt nelegalne, administratori niektorych + sieti nijak neocenuju nevyziadane scanovanie svojich sieti a mozu sa stazovat. + Najlepsie je najprv ziskat opravnenie.</para> + + <para>Pre testovacie ucely mate opravnenie scanovat pocitac na adrese + <literal moreinfo="none">scanme.nmap.org</literal>. Toto opravnenie vsak obsahuje + len scanovanie pomocou Nmapu a nie testovanie exploitov alebo utokov typu Denial of service. + Aby sa nevycerpala sirka pasma, nespustajte viac ako 12 scanov na tento pocitac za jeden den. + Ak je tato sluzba volneho scanovania cieloveho pocitaca zneuzita, zrusi sa a Nmap oznami + <computeroutput moreinfo="none">Failed to resolve given hostname/IP: + scanme.nmap.org</computeroutput>. Tieto opravnenia sa tiez vztahuju + na hostitelske pocitace <literal moreinfo="none">scanme2.nmap.org</literal>, + <literal moreinfo="none">scanme3.nmap.org</literal> atd., hoci tieto stanice + momentalne neexistuju.</para> + + <para> + <userinput moreinfo="none">nmap -v scanme.nmap.org</userinput> + </para> + <para>Tento parameter spusti scan vsetkych rezervovanych TCP portov + na pocitaci + <literal moreinfo="none">scanme.nmap.org</literal> . Parameter<option>-v</option> + umoznuje tzv. verbose mode.</para> + <para> + <userinput moreinfo="none">nmap -sS -O scanme.nmap.org/24</userinput> + </para> + <para>Spusti SYN scan proti kazdemu aktivnemu pocitacu v sieti triedy + <quote>class C</quote> s nazvom + Scanme. Takisto sa pokusi urcit spustene operacne systemy aktivnych pocitacov. K tymto parametrom + sa vyzaduju privilegia roota. + </para> + <para> + <userinput moreinfo="none">nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</userinput> + </para> + + <para> Spusti vypocet hostitelskych stanic a TCP scan na prvu polovicu z 255 moznych 8-bitovych + subnetov v adresnom priestore 198.116 triedy B. + Zaroven sa testuje, ci na systemoch bezia sluzby sshd, DNS, + pop3d, imapd alebo port 4564. Pre kazdy z najdenych otvorenych portov sa pouzije + detekcia verzia na urcenie spustenych aplikacii. + </para> + + <para> + <userinput moreinfo="none">nmap -v -iR 100000 -P0 -p 80</userinput> + </para> + + <para>Nmap zvoli nahodne 100 000 hostitelskych pocitacov a scanuje ich port 80. + Vypocet hostitelskych stanic je zakazany parametrom + <option>-P0</option>, pretoze je zbytocne najprv + posielat test na zistenie, ci je hostitelska stanica aktivna, ak sa + bude aj tak testovat len jeden port. + </para> + + <para> + <userinput moreinfo="none">nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</userinput> + </para> + <para>Scanuje 4096 IP adries kvoli najdeniu webserverov (bez ich pingnutia) + a vystup ulozi vo formatoch grep a XML.</para> + + <para> + <userinput moreinfo="none">host -l company.com | cut -d -f 4 | nmap -v -iL + -</userinput> + </para> + + <para>Vykona preklad domeny DNS, cim sa najdu hostitelske pocitace na adrese company.com + a potom Nmap pouzije tieto IP adresy. Tieto prikazy sa mozu pouzit pre + pocitac so systemom GNU/Linux - dalsie systemy maju odlisne prikazy na vykonavanie + prekladu domeny.</para> + + </refsect1> + + <refsect1 id="man-bugs"> + <title>Bugy</title> + + <para>Tak ako autor, ani Nmap nie + je dokonaly, no mate moznost pomoct pri jeho vylepsovani tym, ze zaslete spravu o bugoch alebo + dokonca napisete patch. Ak sa Nmap nechova podla ocakavania, vykonajte najprv + upgrade na najnovsiu verziu dostupnu z adresy + <ulink url="https://nmap.org/"/>. Ak problem pretrvava, + preskumajte, ci uz nebol objaveny a adresovany. Vyskusajte pouzit google + s vyrazom chybovej spravy alebo prehladajte archivy Nmap-dev na adrese + <ulink url="https://seclists.org/"/>. Precitajte si aj tento plny manual. + Ak nenajdete nic podobne, poslite mail o bugu na adresu + <email>dev@nmap.org</email>. Zahrnte vsetko, co ste sa dozvedeli + o probleme spolu s verziou Nmapu a operacnym systemom. Spravy o problemoch + a otazky na pouzivanie Nmapu budu ovela pravdepodobnejsie zodpovedane, ak budu odoslane + na dev@nmap.org namiesto odosielania priamo Fyodorovi.</para> + + <para>Patche s kodom na opravu bugov su este lepsie ako samotne spravy o bugoch. Zakladne + instrukcie na tvorbu suborov patchov s vasimi zmenami su dostupne na + <ulink url="https://nmap.org/data/HACKING"/>. + Patche mozu byt odoslane prednostne na nmap-dev alebo priamo Fyodorovi.</para> + </refsect1> + + <refsect1 id="man-author"> + <title>Autor</title> + <para>Fyodor + <email>fyodor@nmap.org</email> + (<ulink url="http://www.insecure.org"/>) + </para> + + <para>Za posledne roky stovky ludi vyznamne prispeli pre Nmap. Podrobnosti o nich + su obsiahnute v subore<filename moreinfo="none">CHANGELOG</filename>, ktory + sa dodava s Nmapom a je dostupny z adresy<ulink url="https://nmap.org/changelog.html"/>.</para> + + </refsect1> + + <refsect1 id="man-legal"> + <title>Pravne prehlasenia</title> + + <refsect2 id="translation-disclaimer">
+ <title>Unofficial Translation Disclaimer/ Zrieknutie sa zaruky nad neoficialnym prekladom</title>
+
+ <para>This is an unnofficial translation of the <ulink
+ url="https://nmap.org/man/man-legal.html">Nmap
+ license details</ulink> into Slovak. It was not written by
+ Insecure.Com LLC, and does not legally state the distribution terms
+ for Nmap -- only the original English text does that. However, we
+ hope that this translation helps Slovak speakers understand the
+ Nmap license better.</para>
+
+ <para>Toto je len neoficialny preklad<ulink
+ url="https://nmap.org/man/man-legal.html">licencnych + podrobnosti Nmapu </ulink> do slovenciny. Nebol vytvoreny spolocnostou
+ Insecure.Com LLC a ani legalne nevyjadruje podmienky distribucie pre Nmap; to ma za ulohu + len povodny anglicky text. Aj tak vsak dufame, ze tento preklad pomoze slovensky hovoriacim + ludom lepsie pochopit licenciu pre Nmap. + </para>
+</refsect2> + +<refsect2 id="nmap-copyright"> + <title>Copyright a licencia Nmapu</title> + +<para>Program Nmap Security +Scanner je produktom (C) 1996-2005 Insecure.Com LLC. Nmap je tiez registrovana obchodna znacka +spolocnosti Insecure.Com LLC. Tento program je free softwarom; je mozne ho +redistribuovat alebo modifikovat podla podmienok licencie GNU General +Public License 2 uverejnenou zdruzenim Free Software Foundation. + Zarucuje pravo na pouzivanie, modifikaciu a redistribuciu tohoto softwaru za istych podmienok. + Ak mate zaujem o zaclenenie technologie Nmapu do proprietarneho softwaru, mozeme predat + alternativne licencie (kontakt <email>sales@insecure.com</email>). Vela vyrobcov bezpecnostnych + scannerov uz licencuju technologiu Nmapu, napr. zistovanie hostitelskych stanic, + scanovanie portov, detekcia OS a detekcia sluzby/verzie.</para> + +<para>Je nutne poznamenat, ze GPL uvaluje dolezite obmedzenia na +<quote>odvodene diela</quote>, no neposkytuje podrobnu definiciu tohoto pojmu. +Aby sa predislo nedorozumeniam, za ucelom tejto licencie povazujeme aplikaciu za <quote>odvodene dielo (derivative work)</quote> +ak vykonava lubovolnu z nasledujucich veci:</para> + +<itemizedlist> +<listitem><para>Zaclenuje zdrojovy kod z Nmapu</para></listitem> +<listitem><para>Nacitava alebo obsahuje Nmapovske Nmap datove subory chranene copyrightom, napr. + <filename moreinfo="none">nmap-os-fingerprints</filename> ci + <filename moreinfo="none">nmap-service-probes</filename>.</para></listitem> +<listitem><para>Spusta Nmap a spracuvava vysledky(oproti typickym shellovskym aplikaciam + ci aplikaciam s menu pre spustanie, ktore jednoducho zobrazia neupraveny vystup Nmapu + a nie su odvodenym dielami.)</para></listitem> +<listitem><para>Zaclenuje, obsahuje alebo zhromazduje Nmap do proprietarneho +spustitelneho instalacneho programu, napr. tie vyrobene spolocnostou + InstallShield.</para></listitem> +<listitem><para>Je prepojeny na kniznicu alebo spusta program, co vykonava lubovolnu hore uvedenu cinnost. +</para></listitem> +</itemizedlist> + +<para>Pojem <quote>Nmap</quote> by sa mal pouzit aj pri zahrnuti akychkolvek casti alebo +diel odvodenych od Nmapu. Tento zoznam nie je vyhradny, no jeho zamerom je objasnit nasu +interpretaciu odvodenych diel pomocou niekolkych beznych prikladov. Tieto obmedzenia vlastne platia +len pri redistribucii Nmapu. Napriklad vas nic nemoze zastavit od napisania a predavania +proprietarnej celnej aplikacie k Nmapu, mozete to sami distribuovat a zverejnit pre verejnost +adresu <ulink url="https://nmap.org/"/> na stiahnutie Nmapu.</para> + +<para>Nepokladame to za dodatocne restrikcie ku GPL, ale len ako +objasnenie toho ako interpretujeme <quote>odvodene +diela</quote> podla vztahu k nasmu produktu s licenciou GPL. Je to nieco podobne, +ako ked Linus Torvalds oznamil svoju interpretaciu ako sa vztahuju +<quote>odvodene diela</quote> k modulom linuxovskeho kernelu. Nasa intepretacia sa odkazuje +len na Nmap - nehovorime za ine GPL produkty.</para> + +<para>Ak mate otazky tykajuce sa obmedzeni licencii GPL ohladom pouzivania Nmapu v dielach nelicencovanych +GPL, radi pomozeme. Ako uz bolo spomenute vyssie, tiez ponukame alternativne licencie na zahrnutie +Nmapu do proprietarnych aplikacii a zariadeni. Tieto zmluvy uz boli predane +mnohym vyrobcom zaoberajucich sa bezpecnostou a vseobecne zahrnuju trvalu +licenciu tak ako aj poskytovanie prioritnej podpory a updateov a pomoc +financne podporovat pokracujuci vyvoj technologie Nmapu. Na ziskanie dalsich informacii +zaslite e-mail na adresu <email>sales@insecure.com</email>.</para> + +<para>Ako vynimku ku terminom licencie GPL, spolocnost Insecure.Com LLC udeluje povolenie +spajat kod tohoto programu s lubovolnou verziou kniznice OpenSSL, ktora je distribuovana +pod licenciou identickou k tej zmienenej v zahrnutom subore +Copying.OpenSSL, a distribuovat suvisiace kombinacie vratane tychto dvoch. +Musite dodrziavat GNU GPL vo vsetkych ohladoch pre kod iny ako OpenSSL. Ak pozmenite +tento subor, je mozne nezavazne rozsirit tuto vynimku na vasu verziu tohoto suboru. +</para> + +<para>Ak ste tieto subory ziskali s pisomnou licencnou zmluvou alebo sa zmluva zmienuje +o inych pojmoch ako su vyssie uvedene, ma prednost pred tymito podmienkami. +</para> +</refsect2> + +<refsect2 id="man-copyright"> + <title>Licencia Creative Commons pre tuto prirucku Nmapu</title> + <para>Tato prirucka Nmapu je chranena copyrightom spolocnosti (C) 2005 Insecure.Com LLC a je preto umiestnena + pod verziou licenciou <ulink url="http://creativecommons.org/licenses/by/2.5/">Creative Commons + Attribution License</ulink> verzie 2.5, co dovoluje redistribuovat a modifikovat dielo podla ziadosti, pricom + sa odkazete na povodny zdroj. Alternativne je mozne vybrat si, ze tento dokument sa bude povazovat, + ze spada pod tu istu licenciu ako sam Nmap (predtym rozobrata). + </para> +</refsect2> + +<refsect2 id="source-contrib"> + <title>Dostupnost zdrojoveho kodu a prispevky komunity</title> + +<para>K tomuto softwaru je poskytovany kod, pretoze si myslime, ze pouzivatelia +maju pravo poznat pred jeho spustenim, co presne program vykona. To umoznuje aj vam +skumat software kvoli bezpecnostnym dieram, aj ked zatial neboli ziadne najdene. +</para> + +<para>Zdrojovy kod vam tiez dovoluje portovat Nmap na nove platformy, opravovat bugy, +a pridavat nove funkcie. Ste vrelo podporovani zasielat vase modifikacie pre pripadne zaclenenie +do hlavnej distribucie na adresu +<email>fyodor@nmap.org</email>. Zaslatim tychto zmien Fyodorovi alebo na niektory +z vyvojarskych mailing listov Insecure.Org sa predpoklada, ze poskytujete Fyodorovi +a firme Insecure.Com LLC nelimitovane, nevylucne pravo na pouzivanie, modifikaciu a opatovne +licencovanie kodu. Nmap bude vzdy dostupnym Open Source programom, ale tato zmienka je dolezita, +pretoze nemoznost prelicencovat kod uz sposobila obrovske problemy dalsim projektom Free Software (napr. KDE a NASM). +Prilezitostne relicencujeme kod tretim stranam podla hore spomenuteho. Ak si prajete specifikovat +specialne podmienky licencie vasich prispevkov, uvedte to pri ich zasielani. +</para> +</refsect2> + +<refsect2 id="no-warranty"><title>Bez zaruky</title> + +<para>Tento program je distribuovany s vierou, ze bude uzitocny, ale BEZ AKEJKOLVEK ZARUKY; +dokonca aj bez naznacenej zaruky PREDAJNOSTI a VHODNOSTI NA URCITY UCEL. Dalsie podrobnosti +mozete najst na adrese<ulink url="http://www.gnu.org/copyleft/gpl.html"/>, alebo v subore COPYING +zahrnutym v Nmape.</para> + +<para>Je takisto dolezite poznamenat, ze Nmap je znamy tym, ze obcas sposobi zrutenie +slabo naprogramovanych aplikacii, stackov TCP/IP a dokonca aj operacnych systemov. Aj ked sa to +stava velmi zriedkave, je na to potrebne mysliet. +<emphasis>Nmap by sa nikdy nemal spustat na testovanie kritickych systemov +</emphasis>, kym nie ste pripraveny trpiet ich vypadky. +Na tomto mieste uznavame, ze Nmap moze sposobit spadnutie vasich systemov alebo sieti +a zriekame sa vsetkych zavazkov za akukolvek skodu alebo problemy pripadne zapricinene Nmapom. +</para> +</refsect2> + +<refsect2 id="inappropriate-usage"><title>Nevhodne pouzitie</title> +<para>Kvoli istemu riziku padov systemov a niekolkym trufalcom, ktori +pouzivaju Nmap na prieskum pred napadnutim systemov existuju administratori, ktori +su znepokojeni a mozu sa stazovat pri zisteni scanovania systemu. Je preto doporuceniahodne +vyziadat si povolenie pred podniknutim co i len lahkeho scanu siete. +</para> + +<para>Nmap by nikdy nemal byt z bezpecnostnych dovodov instalovany so specialnymi privilegiami (napr. suid root) +</para> +</refsect2> + +<refsect2 id="third-party-soft"><title>Software tretich stran</title> +<para>Tento produkt zahrnuje software vyvinuty organizaciou +<ulink url="http://www.apache.org">Apache Software Foundation</ulink>. Modifikovana verzia +kniznice <ulink url="http://www.tcpdump.org">Libpcap +portable packet capture library</ulink> sa dofavat spolu s nmapom. +Verzia Nmapu pre Windows namiesto toho vyuziva od tejto kniznice odvodenu <ulink url="http://www.winpcap.org">WinPcap library</ulink>. +Podpora regularnych vyrazov je poskytovana kniznicou<ulink url="http://www.pcre.org">PCRE library</ulink>, +ktora je open source softwarom a jej autorom je Philip Hazel. Niektore neupravene sietove funkcie +pouzivaju sietovu kniznicu s nazvom<ulink url="http://libdnet.sourceforge.net">Libdnet</ulink> +vytvorena autorom Dug Song. Jej pozmenena verzia sa dodava s Nmapom. +Nmap moze byt volitelne spojeny s toolkitom<ulink url="http://www.openssl.org">OpenSSL cryptography toolkit</ulink> +na podporu detekcie verzie protokolu SSL. +Kazdy z tu spomenuteho softwaru tretich stran je volne siritelny +pod softwarovymi licenciami typu BSD.</para> +</refsect2> + +<refsect2 id="us-export"><title>Klasifikacia riadenia exportu z USA (US Export Control Classification)</title> +<para>Klasifikacia riadenia exportu z USA: Insecure.Com LLC sa domnieva, ze Nmap spada +pod americky ECCN (export control classification number) 5D992. Tato kategoria sa nazyva +<quote>Information Security software not controlled +by 5D002</quote>. Jedinym obmedzenim tejto klasifikacie je +AT (anti-terorizmus), ktory sa vztahuje na skoro vsetky tovary +a odmieta exportovat do par nebezpecnych krajin ako su Iran a Severna Korea, preto +exportovanie Nmapu nevyzaduje ziadnu specialnu licenciu, povolenie alebo ine splnomocnenie vladou.</para> +</refsect2> + + </refsect1> +</refentry> + +</article> diff --git a/docs/man-xlate/nmap-man-zh.xml b/docs/man-xlate/nmap-man-zh.xml new file mode 100644 index 0000000..2b9e546 --- /dev/null +++ b/docs/man-xlate/nmap-man-zh.xml @@ -0,0 +1,2477 @@ +<?xml version="1.0" encoding="UTF-8"?> +<article id="man" lang="zh"> +<artheader> + <title>Nmap参考指南(Man Page)</title> +</artheader> +<refentry id="man-nmap1"> + <refmeta> + <refentrytitle>nmap</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">Nmap</refmiscinfo> + <refmiscinfo class="manual">Nmap参考指南</refmiscinfo> + </refmeta> + <refnamediv id="man-name"> + <refname>nmap</refname> + <refpurpose>网络探测工具和安全/端口扫描器</refpurpose> + </refnamediv> + <!-- body begins here --> + <refsynopsisdiv id="man-synopsis"> + <cmdsynopsis sepchar=" "> + <command moreinfo="none">nmap</command> + <arg choice="opt" rep="repeat"> + <replaceable>扫描类型</replaceable> + </arg> + <arg choice="opt" rep="norepeat"> + <replaceable>选项</replaceable> + </arg> + <arg choice="req" rep="norepeat"> + <replaceable>扫描目标说明</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1 id="man-description"> + <title>描述</title> + <web> + <note><para> + 本文档描述了Nmap版本4.50。最新文档以英语 + <ulink url="https://nmap.org/book/man.html" />提供。</para></note> + </web> + + <para>Nmap (<quote>Network Mapper(网络映射器)</quote>) 是一款开放源代码的 + 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 + 主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些 + 主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), + 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, + 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, + 管理服务升级计划,以及监视主机和服务的运行。</para> + + <para>Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。 + <quote>所感兴趣的端口表格</quote>是其中的关键。那张表列出端口号,协议,服务名称和状态。状态可能是 + <literal moreinfo="none">open</literal>(开放的),<literal moreinfo="none">filtered</literal>(被过滤的), + <literal moreinfo="none">closed</literal>(关闭的),或者<literal moreinfo="none">unfiltered</literal>(未被过滤的)。 + Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。 + <literal moreinfo="none">filtered</literal>(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知 + 它是 + <literal moreinfo="none">open</literal>(开放的) 还是 <literal moreinfo="none">closed</literal>(关闭的)。 + <literal moreinfo="none">closed</literal>(关闭的) 端口没有应用程序在它上面监听,但是他们随时可能开放。 + 当端口对Nmap的探测做出响应,但是Nmap无法确定它们是关闭还是开放时,这些端口就被认为是 + <literal moreinfo="none">unfiltered</literal>(未被过滤的) + 如果Nmap报告状态组合 + <literal moreinfo="none">open|filtered</literal> 和 + <literal moreinfo="none">closed|filtered</literal>时,那说明Nmap无法确定该端口处于两个状态中的哪一个状态。 + 当要求进行版本探测时,端口表也可以包含软件的版本信息。当要求进行IP协议扫描时 + (<option>-sO</option>),Nmap提供关于所支持的IP协议而不是正在监听的端口的信息。</para> + + <para>除了所感兴趣的端口表,Nmap还能提供关于目标机的进一步信息,包括反向域名,操作系统猜测,设备类型,和MAC地址。</para> + + <para>一个典型的Nmap扫描如<xref linkend="man-ex-repscan"/>所示。在这个例子中,唯一的选项是<option>-A</option>, + 用来进行操作系统及其版本的探测,<option>-T4</option> 可以加快执行速度,接着是两个目标主机名。</para> + +<example id="man-ex-repscan"><title>一个典型的Nmap扫描</title> +<screen> +# nmap -A -T4 scanme.nmap.org playground + +Starting nmap ( https://nmap.org/ ) +Interesting ports on scanme.nmap.org (205.217.153.62): +(The 1663 ports scanned but not shown below are in state: filtered) +port STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2.0.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2.4.X|2.5.X|2.6.X +OS details: Linux 2.4.7 - 2.6.11,Linux 2.6.0 - 2.6.11 +Uptime 33。908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground。nmap。或者g (192.168.0.40): +(The 1659 ports scanned but not shown below are in state: closed) +port STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios-ssn +389/tcp open ldap? +445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds +1002/tcp open windows-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H.323/Q.931 CompTek AquaGateKeeper +5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3.8) +MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows,Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds +</screen> +</example> + + </refsect1> + +<refsect1 id="translation"> + <title>译注</title> +<para>该Nmap参考指南中文版由Fei Yang +<email>fyang1024@gmail.com</email>和Lei Li<email>lilei_721@6611.org</email> +从<ulink url="https://nmap.org/man/">英文版本</ulink>翻译而来。 +我们希望这将使全世界使用中文的人们更了解Nmap,但我们不能保证该译本和官方的 +英文版本一样完整,也不能保证同步更新。 +它可以在<ulink url="http://creativecommons.org/licenses/by/2.5/">Creative Commons +Attribution License</ulink>下被修改并重新发布。</para> +</refsect1> + + <refsect1 id="man-briefoptions"> + <title>选项概要</title> + +<para>当Nmap不带选项运行时,该选项概要会被输出,最新的版本在这里 +<ulink url="https://nmap.org/data/nmap.usage.txt"/>。 +它帮助人们记住最常用的选项,但不能替代本手册其余深入的文档,一些晦涩的选项甚至不在这里。</para> + +<para> +<literallayout class="normal">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-255.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 + -sP: Ping Scan - go no further than determining if host is online + -P0: Treat all hosts as online -- skip host discovery + -PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery probes to given ports + -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes + -n/-R: Never do DNS resolution/Always resolve [default: sometimes resolve] +SCAN TECHNIQUES: + -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans + -sN/sF/sX: TCP Null, FIN, and Xmas scans + --scanflags <flags>: Customize TCP scan flags + -sI <zombie host[:probeport]>: Idlescan + -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 + -F: Fast - Scan only the ports listed in the nmap-services file) + -r: Scan ports sequentially - don't randomize +SERVICE/VERSION DETECTION: + -sV: Probe open ports to determine service/version info + --version-light: Limit to most likely probes for faster identification + --version-all: Try every single probe for version detection + --version-trace: Show detailed version scan activity (for debugging) +OS DETECTION: + -O: Enable OS detection + --osscan-limit: Limit OS detection to promising targets + --osscan-guess: Guess OS more aggressively +TIMING AND PERFORMANCE: + -T[0-6]: 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 <msec>: Specifies + probe round trip time. + --host-timeout <msec>: Give up on target after this long + --scan-delay/--max-scan-delay <msec>: Adjust delay between probes +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 + --data-length <num>: Append random data to sent packets + --ttl <val>: Set IP time-to-live field + --spoof-mac <mac address, prefix, or vendor name>: Spoof your MAC address +OUTPUT: + -oN/-oX/-oS/-oG <file>: Output scan results 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 twice for more effect) + -d[level]: Set or increase debugging level (Up to 9 is meaningful) + --packet-trace: Show all packets sent and received + --iflist: Print host interfaces and routes (for debugging) + --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 + --no-stylesheet: Prevent Nmap from associating XSL stylesheet w/XML output +MISC: + -6: Enable IPv6 scanning + -A: Enables OS detection and Version detection + --datadir <dirname>: Specify custom Nmap data file location + --send-eth/--send-ip: Send packets using raw ethernet frames or IP packets + --privileged: Assume that the user is fully privileged + -V: Print version number + -h: Print this help summary page. +EXAMPLES: + nmap -v -A scanme.nmap.org + nmap -v -sP 192.168.0.0/16 10.0.0.0/8 + nmap -v -iR 10000 -P0 -p 80 +</literallayout> + +</para> + + </refsect1> + + <refsect1 id="man-target-specification"> + <title>目标说明</title> + +<para>除了选项,所有出现在Nmap命令行上的都被视为对目标主机的说明。 +最简单的情况是指定一个目标IP地址或主机名。</para> + +<para>有时候您希望扫描整个网络的相邻主机。为此,Nmap支持CIDR风格的地址。您可以附加 +一个/<replaceable>numbit</replaceable>在一个IP地址或主机名后面, +Nmap将会扫描所有和该参考IP地址具有 +<replaceable>numbit</replaceable>相同比特的所有IP地址或主机。 +例如,192.168.10.0/24将会扫描192.168.10.0 (二进制格式: <literal moreinfo="none">11000000 10101000 +00001010 00000000</literal>)和192.168.10.255 (二进制格式: <literal moreinfo="none">11000000 10101000 +00001010 11111111</literal>)之间的256台主机。 +192.168.10.40/24 将会做同样的事情。假设主机 +scanme.nmap.org的IP地址是205.217.153.62, +scanme.nmap.org/16 将扫描205.217.0.0和205.217.255.255之间的65,536 个IP地址。 +所允许的最小值是/1, +这将会扫描半个互联网。最大值是/32,这将会扫描该主机或IP地址, +因为所有的比特都固定了。</para> + +<para>CIDR标志位很简洁但有时候不够灵活。例如,您也许想要扫描 +192.168.0.0/16,但略过任何以.0或者.255 结束的IP地址,因为它们通常是广播地址。 +Nmap通过八位字节地址范围支持这样的扫描 +您可以用逗号分开的数字或范围列表为IP地址的每个八位字节指定它的范围。 +例如,192.168.0-255.1-254 将略过在该范围内以.0和.255结束的地址。 +范围不必限于最后的8位:0-255.0-255.13.37 将在整个互联网范围内扫描所有以13.37结束的地址。 +这种大范围的扫描对互联网调查研究也许有用。</para> + +<para>IPv6地址只能用规范的IPv6地址或主机名指定。 +CIDR 和八位字节范围不支持IPv6,因为它们对于IPv6几乎没什么用。</para> + +<para>Nmap命令行接受多个主机说明,它们不必是相同类型。命令<command moreinfo="none">nmap +scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.0-255</command>将和您预期的一样执行。 +</para> + +<para>虽然目标通常在命令行指定,下列选项也可用来控制目标的选择:</para> + + <variablelist> + <varlistentry> + <term> + <option>-iL <inputfilename></option> (从列表中输入) + </term> + <listitem> + <para>从 + <replaceable>inputfilename</replaceable>中读取目标说明。在命令行输入 + 一堆主机名显得很笨拙,然而经常需要这样。 + 例如,您的DHCP服务器可能导出10,000个当前租约的列表,而您希望对它们进行 + 扫描。如果您<emphasis>不是</emphasis>使用未授权的静态IP来定位主机,或许您想要扫描所有IP地址。 + 只要生成要扫描的主机的列表,用<option>-iL</option> 把文件名作为选项传给Nmap。列表中的项可以是Nmap在 + 命令行上接受的任何格式(IP地址,主机名,CIDR,IPv6,或者八位字节范围)。 + 每一项必须以一个或多个空格,制表符或换行符分开。 + 如果您希望Nmap从标准输入而不是实际文件读取列表, + 您可以用一个连字符(<literal moreinfo="none">-</literal>)作为文件名。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-iR <hostnum></option> (随机选择目标) + </term> + <listitem> + <para>对于互联网范围内的调查和研究, + 您也许想随机地选择目标。 <replaceable>hostnum</replaceable> 选项告诉 + Nmap生成多少个IP。不合需要的IP如特定的私有,组播或者未分配的地址自动 + 略过。选项 <literal moreinfo="none">0</literal> + 意味着永无休止的扫描。记住,一些网管对于未授权的扫描可能会很感冒并加以抱怨。 + 使用该选项的后果自负! 如果在某个雨天的下午,您觉得实在无聊, + 试试这个命令<command moreinfo="none">nmap -sS -PS80 -iR 0 -p + 80</command>随机地找一些网站浏览。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--exclude + <host1[,host2][,host3],...></option> (排除主机/网络) + </term> + <listitem> + <para>如果在您指定的扫描范围有一些主机或网络不是您的目标, + 那就用该选项加上以逗号分隔的列表排除它们。该列表用正常的Nmap语法, + 因此它可以包括主机名,CIDR,八位字节范围等等。 + 当您希望扫描的网络包含执行关键任务的服务器,已知的对端口扫描反应强烈的 + 系统或者被其它人看管的子网时,这也许有用。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--excludefile <excludefile></option> (排除文件中的列表) + </term> + <listitem> + <para>这和<option>--exclude</option> + 选项的功能一样,只是所排除的目标是用以 + 换行符,空格,或者制表符分隔的 + <replaceable>excludefile</replaceable>提供的,而不是在命令行上输入的。</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-host-discovery"> + <title>主机发现</title> + + <para>任何网络探测任务的最初几个步骤之一就是把一组IP范围(有时该范围是巨大的)缩小为 + 一列活动的或者您感兴趣的主机。扫描每个IP的每个端口很慢,通常也没必要。 + 当然,什么样的主机令您感兴趣主要依赖于扫描的目的。网管也许只对运行特定服务的 + 主机感兴趣,而从事安全的人士则可能对一个马桶都感兴趣,只要它有IP地址:-)。一个系统管理员 + 也许仅仅使用Ping来定位内网上的主机,而一个外部入侵测试人员则可能绞尽脑汁用各种方法试图 + 突破防火墙的封锁。</para> + + <para>由于主机发现的需求五花八门,Nmap提供了一箩筐的选项来定制您的需求。 + 主机发现有时候也叫做ping扫描,但它远远超越用世人皆知的<application moreinfo="none">ping</application>工具 + 发送简单的ICMP回声请求报文。用户完全可以通过使用列表扫描(<option>-sL</option>)或者 + 通过关闭ping (<option>-P0</option>)跳过ping的步骤,也可以使用多个端口把TCP SYN/ACK,UDP和ICMP + 任意组合起来玩一玩。这些探测的目的是获得响应以显示某个IP地址是否是活动的(正在被某 + 主机或者网络设备使用)。 在许多网络上,在给定的时间,往往只有小部分的IP地址是活动的。 + 这种情况在基于RFC1918的私有地址空间如10.0.0.0/8尤其普遍。 + 那个网络有16,000,000个IP,但我见过一些使用它的公司连1000台机器都没有。 + 主机发现能够找到零星分布于IP地址海洋上的那些机器。</para> + + <para>如果没有给出主机发现的选项,Nmap + 就发送一个TCP ACK报文到80端口和一个ICMP回声请求到每台目标机器。 + 一个例外是ARP扫描用于局域网上的任何目标机器。对于非特权UNIX + shell用户,使用<function moreinfo="none">connect()</function>系统调用会发送一个SYN报文而不是ACK + 这些默认行为和使用<option>-PA -PE</option>选项的效果相同。 + 扫描局域网时,这种主机发现一般够用了,但是对于安全审核,建议进行 + 更加全面的探测。</para> + + <para><option>-P*</option>选项(用于选择 + ping的类型)可以被结合使用。 您可以通过使用不同的TCP端口/标志位和ICMP码发送许多探测报文 + 来增加穿透防守严密的防火墙的机会。另外要注意的是即使您指定了其它 + <option>-P*</option>选项,ARP发现(<option>-PR</option>)对于局域网上的 + 目标而言是默认行为,因为它总是更快更有效。</para> + + <para>下列选项控制主机发现。</para> + <variablelist> + + <varlistentry> + <term> + <option>-sL</option> (列表扫描)</term> + <listitem> + <para>列表扫描是主机发现的退化形式,它仅仅列出指定网络上的每台主机, + 不发送任何报文到目标主机。默认情况下,Nmap仍然对主机进行反向域名解析以获取 + 它们的名字。简单的主机名能给出的有用信息常常令人惊讶。例如, + <literal moreinfo="none">fw.chi.playboy.com</literal>是花花公子芝加哥办公室的 + 防火墙。Nmap最后还会报告IP地址的总数。列表扫描可以很好的确保您拥有正确的目标IP。 + 如果主机的域名出乎您的意料,那么就值得进一步检查以防错误地扫描其它组织的网络。</para> + + <para>既然只是打印目标主机的列表,像其它一些高级功能如端口扫描,操作系统探测或者Ping扫描 + 的选项就没有了。如果您希望关闭ping扫描而仍然执行这样的高级功能,请继续阅读关于 + <option>-P0</option>选项的介绍。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sP</option> (Ping扫描)</term> + <listitem> + + <para>该选项告诉Nmap<emphasis>仅仅</emphasis> + 进行ping扫描 (主机发现),然后打印出对扫描做出响应的那些主机。 + 没有进一步的测试 (如端口扫描或者操作系统探测)。 这比列表扫描更积极,常常用于 + 和列表扫描相同的目的。它可以得到些许目标网络的信息而不被特别注意到。 + 对于攻击者来说,了解多少主机正在运行比列表扫描提供的一列IP和主机名往往更有价值。</para> + + <para>系统管理员往往也很喜欢这个选项。 它可以很方便地得出 + 网络上有多少机器正在运行或者监视服务器是否正常运行。常常有人称它为 + 地毯式ping,它比ping广播地址更可靠,因为许多主机对广播请求不响应。</para> + + <para><option>-sP</option>选项在默认情况下, + 发送一个ICMP回声请求和一个TCP报文到80端口。如果非特权用户执行,就发送一个SYN报文 + (用<function moreinfo="none">connect()</function>系统调用)到目标机的80端口。 + 当特权用户扫描局域网上的目标机时,会发送ARP请求(<option>-PR</option>), + ,除非使用了<option>--send-ip</option>选项。 + <option>-sP</option>选项可以和除<option>-P0</option>)之外的任何发现探测类型<option>-P*</option> + 选项结合使用以达到更大的灵活性。 + 一旦使用了任何探测类型和端口选项,默认的探测(ACK和回应请求)就被覆盖了。 + 当防守严密的防火墙位于运行Nmap的源主机和目标网络之间时, + 推荐使用那些高级选项。否则,当防火墙捕获并丢弃探测包或者响应包时,一些主机就不能被探测到。</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>-P0</option> (无ping) + </term> + <listitem> + <para>该选项完全跳过Nmap发现阶段。 + 通常Nmap在进行高强度的扫描时用它确定正在运行的机器。 + 默认情况下,Nmap只对正在运行的主机进行高强度的探测如 + 端口扫描,版本探测,或者操作系统探测。用<option>-P0</option>禁止 + 主机发现会使Nmap对<emphasis>每一个</emphasis>指定的目标IP地址 + 进行所要求的扫描。所以如果在命令行指定一个B类目标地址空间(/16), + 所有 65,536 个IP地址都会被扫描。 + <option>-P0</option>的第二个字符是数字0而不是字母O。 + 和列表扫描一样,跳过正常的主机发现,但不是打印一个目标列表, + 而是继续执行所要求的功能,就好像每个IP都是活动的。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PS [portlist]</option> (TCP SYN Ping)</term> + <listitem> + + <para>该选项发送一个设置了SYN标志位的空TCP报文。 + 默认目的端口为80 (可以通过改变<filename moreinfo="none">nmap.h</filename>) + 文件中的DEFAULT-TCP-PROBE-PORT值进行配置,但不同的端口也可以作为选项指定。 + 甚至可以指定一个以逗号分隔的端口列表(如 <option>-PS22,23,25,80,113,1050,35000</option>), + 在这种情况下,每个端口会被并发地扫描。</para> + + <para>SYN标志位告诉对方您正试图建立一个连接。 + 通常目标端口是关闭的,一个RST (复位) 包会发回来。 + 如果碰巧端口是开放的,目标会进行TCP三步握手的第二步,回应 + 一个SYN/ACK TCP报文。然后运行Nmap的机器则会扼杀这个正在建立的连接, + 发送一个RST而非ACK报文,否则,一个完全的连接将会建立。 + RST报文是运行Nmap的机器而不是Nmap本身响应的,因为它对收到 + 的SYN/ACK感到很意外。</para> + + <para>Nmap并不关心端口开放还是关闭。 + 无论RST还是SYN/ACK响应都告诉Nmap该主机正在运行。</para> + + <para>在UNIX机器上,通常只有特权用户 + <literal moreinfo="none">root</literal> 能否发送和接收 + 原始的TCP报文。因此作为一个变通的方法,对于非特权用户, + Nmap会为每个目标主机进行系统调用connect(),它也会发送一个SYN + 报文来尝试建立连接。如果connect()迅速返回成功或者一个ECONNREFUSED + 失败,下面的TCP堆栈一定已经收到了一个SYN/ACK或者RST,该主机将被 + 标志位为在运行。 + 如果连接超时了,该主机就标志位为down掉了。这种方法也用于IPv6 + 连接,因为Nmap目前还不支持原始的IPv6报文。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PA [portlist]</option> (TCP ACK Ping)</term> + <listitem> + <para>TCP ACK ping和刚才讨论的SYN ping相当类似。 + 也许您已经猜到了,区别就是设置TCP的ACK标志位而不是SYN标志位。 + ACK报文表示确认一个建立连接的尝试,但该连接尚未完全建立。 + 所以远程主机应该总是回应一个RST报文, + 因为它们并没有发出过连接请求到运行Nmap的机器,如果它们正在运行的话。 + </para> + + <para><option>-PA</option>选项使用和SYN探测相同的默认端口(80),也可以 + 用相同的格式指定目标端口列表。如果非特权用户尝试该功能, + 或者指定的是IPv6目标,前面说过的connect()方法将被使用。 + 这个方法并不完美,因为它实际上发送的是SYN报文,而不是ACK报文。 + </para> + + <para>提供SYN和ACK两种ping探测的原因是使通过防火墙的机会尽可能大。 + 许多管理员会配置他们的路由器或者其它简单的防火墙来封锁SYN报文,除非 + 连接目标是那些公开的服务器像公司网站或者邮件服务器。 + 这可以阻止其它进入组织的连接,同时也允许用户访问互联网。 + 这种无状态的方法几乎不占用防火墙/路由器的资源,因而被硬件和软件过滤器 + 广泛支持。Linux Netfilter/iptables 防火墙软件提供方便的 + <option>--syn</option>选项来实现这种无状态的方法。 + 当这样的无状态防火墙规则存在时,发送到关闭目标端口的SYN ping探测 (<option>-PS</option>) + 很可能被封锁。这种情况下,ACK探测格外有闪光点,因为它正好利用了 + 这样的规则。 + </para> + + <para>另外一种常用的防火墙用有状态的规则来封锁非预期的报文。 + 这一特性已开始只存在于高端防火墙,但是这些年类它越来越普遍了。 + Linux Netfilter/iptables 通过 + <option>--state</option>选项支持这一特性,它根据连接状态把报文 + 进行分类。SYN探测更有可能用于这样的系统,由于没头没脑的ACK报文 + 通常会被识别成伪造的而丢弃。解决这个两难的方法是通过即指定 + <option>-PS</option>又指定<option>-PA</option>来即发送SYN又发送ACK。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PU [portlist]</option> (UDP Ping)</term> + <listitem> + + <para>还有一个主机发现的选项是UDP ping,它发送一个空的(除非指定了<option>--data-length</option> + UDP报文到给定的端口。端口列表的格式和前面讨论过的<option>-PS</option>和<option>-PA</option>选项还是一样。 + 如果不指定端口,默认是31338。该默认值可以通过在编译时改变<filename moreinfo="none">nmap.h</filename>文件中的 + DEFAULT-UDP-PROBE-PORT值进行配置。默认使用这样一个奇怪的端口是因为对开放端口 + 进行这种扫描一般都不受欢迎。</para> + + <para>如果目标机器的端口是关闭的,UDP探测应该马上得到一个ICMP端口无法到达的回应报文。 + 这对于Nmap意味着该机器正在运行。 + 许多其它类型的ICMP错误,像主机/网络无法到达或者TTL超时则表示down掉的或者不可到达的主机。 + 没有回应也被这样解释。如果到达一个开放的端口,大部分服务仅仅忽略这个 + 空报文而不做任何回应。这就是为什么默认探测端口是31338这样一个 + 极不可能被使用的端口。少数服务如chargen会响应一个空的UDP报文, + 从而向Nmap表明该机器正在运行。</para> + + <para>该扫描类型的主要优势是它可以穿越只过滤TCP的防火墙和过滤器。 + 例如。我曾经有过一个Linksys BEFW11S4无线宽带路由器。默认情况下, + 该设备对外的网卡过滤所有TCP端口,但UDP探测仍然会引发一个端口不可到达 + 的消息,从而暴露了它自己。 + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PE</option>; + <option>-PP</option>; + <option>-PM</option> (ICMP Ping Types)</term> + <listitem> + + <para>除了前面讨论的这些不常见的TCP和UDP主机发现类型, + Nmap也能发送世人皆知的<application moreinfo="none">ping</application> + 程序所发送的报文。Nmap发送一个ICMP + type 8 (回声请求)报文到目标IP地址, + 期待从运行的主机得到一个type 0 (回声响应)报文。 + 对于网络探索者而言,不幸的是,许多主机和 + 防火墙现在封锁这些报文,而不是按期望的那样响应, + 参见<ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC + 1122</ulink>。因此,仅仅ICMP扫描对于互联网上的目标通常是不够的。 + 但对于系统管理员监视一个内部网络,它们可能是实际有效的途径。 + 使用<option>-PE</option>选项打开该回声请求功能。</para> + + <para>虽然回声请求是标准的ICMP ping查询, + Nmap并不止于此。ICMP标准 (<ulink url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC + 792</ulink>)还规范了时间戳请求,信息请求 + request,和地址掩码请求,它们的代码分别是13,15和17。 + 虽然这些查询的表面目的是获取信息如地址掩码和当前时间, + 它们也可以很容易地用于主机发现。 + 很简单,回应的系统就是在运行的系统。Nmap目前没有实现信息请求报文, + 因为它们还没有被广泛支持。RFC 1122 坚持 + <quote>主机不应该实现这些消息</quote>。 + 时间戳和地址掩码查询可以分别用<option>-PP</option>和<option>-PM</option>选项发送。 + 时间戳响应(ICMP代码14)或者地址掩码响应(代码18)表示主机在运行。 + 当管理员特别封锁了回声请求报文而忘了其它ICMP查询可能用于 + 相同目的时,这两个查询可能很有价值。 + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-PR</option> (ARP Ping)</term> + <listitem> + + <para>最常见的Nmap使用场景之一是扫描一个以太局域网。 + 在大部分局域网上,特别是那些使用基于 + RFC1918私有地址范围的网络,在一个给定的时间绝大部分 + IP地址都是不使用的。 + 当Nmap试图发送一个原始IP报文如ICMP回声请求时, + 操作系统必须确定对应于目标IP的硬件 + 地址(ARP),这样它才能把以太帧送往正确的地址。 + 这一般比较慢而且会有些问题,因为操作系统设计者认为一般不会在短时间内 + 对没有运行的机器作几百万次的ARP请求。 + </para> + + <para>当进行ARP扫描时,Nmap用它优化的算法管理ARP请求。 + 当它收到响应时, + Nmap甚至不需要担心基于IP的ping报文,既然它已经知道该主机正在运行了。 + 这使得ARP扫描比基于IP的扫描更快更可靠。 + 所以默认情况下,如果Nmap发现目标主机就在它所在的局域网上,它会进行ARP扫描。 + 即使指定了不同的ping类型(如 <option>-PI</option>或者 + <option>-PS</option>) ,Nmap也会对任何相同局域网上的目标机使用ARP。 + 如果您真的不想要ARP扫描,指定 + <option>--send-ip</option>。 + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-n</option> (不用域名解析) + </term> + <listitem> + <para>告诉Nmap + <emphasis>永不</emphasis>对它发现的活动IP地址进行反向域名解析。 + 既然DNS一般比较慢,这可以让事情更快些。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-R</option> (为所有目标解析域名) + </term> + <listitem> + <para>告诉Nmap + <emphasis>永远</emphasis> 对目标IP地址作反向域名解析。 + 一般只有当发现机器正在运行时才进行这项操作。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--system-dns</option> (使用系统域名解析器) + </term> + <listitem> + <para>默认情况下,Nmap通过直接发送查询到您的主机上配置的域名服务器 + 来解析域名。为了提高性能,许多请求 (一般几十个 + ) 并发执行。如果您希望使用系统自带的解析器,就指定该选项 + (通过getnameinfo()调用一次解析一个IP)。除非Nmap的DNS代码有bug--如果是这样,请联系我们。 + 一般不使用该选项,因为它慢多了。系统解析器总是用于IPv6扫描。</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-scanning-basics"> + <title>端口扫描基础</title> + + <para>虽然Nmap这些年来功能越来越多, + 它也是从一个高效的端口扫描器开始的,并且那仍然是它的核心功能。 + <command moreinfo="none">nmap + <replaceable>target</replaceable></command>这个简单的命令扫描主机<replaceable>target</replaceable>上的超过 + 1660个TCP端口。 + 。许多传统的端口扫描器只列出所有端口是开放还是关闭的, + Nmap的信息粒度比它们要细得多。 它把端口分成六个状态: + <literal moreinfo="none">open</literal>(开放的), + <literal moreinfo="none">closed</literal>(关闭的),<literal moreinfo="none">filtered</literal>(被过滤的), + <literal moreinfo="none">unfiltered</literal>(未被过滤的), + <literal moreinfo="none">open|filtered(开放或者被过滤的)</literal>,或者 + <literal moreinfo="none">closed|filtered(关闭或者被过滤的)</literal>。</para> + +<para>这些状态并非端口本身的性质,而是描述Nmap怎样看待它们。例如, +对于同样的目标机器的135/tcp端口,从同网络扫描显示它是开放的,而跨网络作完全相同的扫描则可能显示它是 +<literal moreinfo="none">filtered</literal>(被过滤的)。 +</para> + +<variablelist><title>Nmap所识别的6个端口状态。</title> + + <varlistentry><term>open(开放的)</term> + <listitem><para>应用程序正在该端口接收TCP + 连接或者UDP报文。发现这一点常常是端口扫描 + 的主要目标。安全意识强的人们知道每个开放的端口 + 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 + 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 + 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。 + </para></listitem></varlistentry> + + <varlistentry><term>closed(关闭的)</term> + + <listitem><para>关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), + 但没有应用程序在其上监听。 + 它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up + 也对部分操作系统探测有所帮助。 因为关闭的关口是可访问的,也许过会儿值得再扫描一下,可能一些又开放了。 + 系统管理员可能会考虑用防火墙封锁这样的端口。 + 那样他们就会被显示为被过滤的状态,下面讨论。 + </para></listitem></varlistentry> + + <varlistentry><term>filtered(被过滤的)</term> + + <listitem><para>由于包过滤阻止探测报文到达端口, + Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则 + 或者主机上的软件防火墙。这样的端口让攻击者感觉很挫折,因为它们几乎不提供 + 任何信息。有时候它们响应ICMP错误消息如类型3代码13 + (无法到达目标: 通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧, + 不做任何响应。 这迫使Nmap重试若干次以访万一探测包是由于网络阻塞丢弃的。 + 这使得扫描速度明显变慢。 + </para></listitem></varlistentry> + + <varlistentry><term>unfiltered(未被过滤的)</term> + <listitem><para>未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。 + 只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。 + 用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定 + 端口是否开放。 + </para></listitem></varlistentry> + + <varlistentry><term>open|filtered(开放或者被过滤的)</term> + <listitem><para>当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 + 这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 + 了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。 + UDP,IP协议, + FIN,Null,和Xmas扫描可能把端口归入此类。</para></listitem></varlistentry> + + <varlistentry><term>closed|filtered(关闭或者被过滤的)</term> + <listitem><para>该状态用于Nmap不能确定端口是关闭的还是被过滤的。 + 它只可能出现在IPID + Idle扫描中。</para></listitem></varlistentry> + </variablelist> +</refsect1> + +<refsect1 id="man-port-scanning-techniques"> + <title>端口扫描技术</title> + +<para>作为一个修车新手,我可能折腾几个小时来摸索怎样把基本工具(锤子,胶带,扳子等) +用于手头的任务。当我惨痛地失败,把我的老爷车拖到一个真正的技师那儿的时候 +,他总是在他的工具箱里翻来翻去,直到拽出一个完美的工具然后似乎不费吹灰之力搞定它。 +端口扫描的艺术和这个类似。专家理解成打的扫描技术,选择最适合的一种 (或者组合)来完成给定的 +任务。 另一方面,没有经验的用户和刚入门者总是用默认的SYN扫描解决每个问题。 +既然Nmap是免费的,掌握端口扫描的唯一障碍就是知识。这当然是汽车世界所不能比的, +在那里,可能需要高超的技巧才能确定您需要一个压杆弹簧压缩机,接着您还得为它付数千美金。</para> + +<para>大部分扫描类型只对特权用户可用。 +这是因为他们发送接收原始报文,这在Unix系统需要root权限。 +在Windows上推荐使用administrator账户,但是当WinPcap已经被加载到操作系统时, +非特权用户也可以正常使用Nmap。当Nmap在1997年发布时,需要root权限是一个严重的 +局限,因为很多用户只有共享的shell账户。现在,世界变了,计算机便宜了,更多人拥有互联网连接 +,桌面UNIX系统 (包括Linux和MAC OS X)很普遍了。Windows版本的Nmap现在也有了,这使它可以运行在更多的桌面上。 +由于所有这些原因,用户不再需要用有限的共享shell账户运行Nmap。 +这是很幸运的,因为特权选项让Nmap强大得多也灵活得多。 +</para> + +<para>虽然Nmap努力产生正确的结果,但请记住所有结果都是基于目标机器(或者它们前面的防火墙)返回的报文的。 +。这些主机也许是不值得信任的,它们可能响应以迷惑或误导Nmap的报文。 +更普遍的是非RFC兼容的主机以不正确的方式响应Nmap探测。FIN,Null和Xmas扫描 +特别容易遇到这个问题。这些是特定扫描类型的问题,因此我们在个别扫描类型里讨论它们。 +</para> + +<para>这一节讨论Nmap支持的大约十几种扫描技术。 +一般一次只用一种方法, +除了UDP扫描(<option>-sU</option>)可能和任何一种TCP扫描类型结合使用。 +友情提示一下,端口扫描类型的选项格式是<option>-s<replaceable>C</replaceable></option>, +其中<replaceable>C</replaceable> 是个显眼的字符,通常是第一个字符。 +一个例外是deprecated +FTP bounce扫描(<option>-b</option>)。默认情况下,Nmap执行一个 +SYN扫描,但是如果用户没有权限发送原始报文(在UNIX上需要root权限)或者如果指定的是IPv6目标,Nmap调用connect()。 +本节列出的扫描中,非特权用户只能执行connect()和ftp bounce扫描。 +</para> + + <variablelist> + <varlistentry> + <term> + <option>-sS</option> (TCP SYN扫描)</term> + <listitem> + +<para>SYN扫描作为默认的也是最受欢迎的扫描选项,是有充分理由的。 +它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个 +端口。 +SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP连接。 +它也不像Fin/Null/Xmas,Maimon和Idle扫描依赖于特定平台,而可以应对任何兼容的 +TCP协议栈。 +它还可以明确可靠地区分<literal moreinfo="none">open</literal>(开放的), +<literal moreinfo="none">closed</literal>(关闭的),和<literal moreinfo="none">filtered</literal>(被过滤的) +状态</para> + +<para>它常常被称为半开放扫描, +因为它不打开一个完全的TCP连接。它发送一个SYN报文, +就像您真的要打开一个连接,然后等待响应。 +SYN/ACK表示端口在监听 (开放),而 +RST (复位)表示没有监听者。如果数次重发后仍没响应, +该端口就被标记为被过滤。如果收到ICMP不可到达错误 +(类型3,代码1,2,3,9,10,或者13),该端口也被标记为被过滤。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sT</option> (TCP connect()扫描)</term> + <listitem> + +<para>当SYN扫描不能用时,CP Connect()扫描就是默认的TCP扫描。 +当用户没有权限发送原始报文或者扫描IPv6网络时,就是这种情况。 +Instead of writing raw +packets as most other scan types do,Nmap通过创建<literal moreinfo="none">connect()</literal> + 系统调用要求操作系统和目标机以及端口建立连接,而不像其它扫描类型直接发送原始报文。 + 这是和Web浏览器,P2P客户端以及大多数其它网络应用程序用以建立连接一样的 + 高层系统调用。它是叫做Berkeley Sockets +API编程接口的一部分。Nmap用 +该API获得每个连接尝试的状态信息,而不是读取响应的原始报文。 +</para> + +<para>当SYN扫描可用时,它通常是更好的选择。因为Nmap对高层的 +<literal moreinfo="none">connect()</literal>调用比对原始报文控制更少, +所以前者效率较低。 该系统调用完全连接到开放的目标端口而不是像SYN扫描进行 +半开放的复位。这不仅花更长时间,需要更多报文得到同样信息,目标机也更可能 +记录下连接。IDS(入侵检测系统)可以捕获两者,但大部分机器没有这样的警报系统。 当Nmap连接,然后不发送数据又关闭连接, +许多普通UNIX系统上的服务会在syslog留下记录,有时候是一条加密的错误消息。 +此时,有些真正可怜的服务会崩溃,虽然这不常发生。如果管理员在日志里看到来自同一系统的 +一堆连接尝试,她应该知道她的系统被扫描了。 +</para></listitem></varlistentry> + + <varlistentry> + <term> + <option>-sU</option> (UDP扫描)</term> + <listitem> + +<para>虽然互联网上很多流行的服务运行在TCP +协议上,<ulink url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink>服务也不少。 +DNS,SNMP,和DHCP +(注册的端口是53,161/162,和67/68)是最常见的三个。 +因为UDP扫描一般较慢,比TCP更困难,一些安全审核人员忽略这些端口。 +这是一个错误,因为可探测的UDP服务相当普遍,攻击者当然不会忽略整个协议。 +所幸,Nmap可以帮助记录并报告UDP端口。 +</para> + +<para>UDP扫描用<option>-sU</option>选项激活。它可以和TCP扫描如 +SYN扫描 +(<option>-sS</option>)结合使用来同时检查两种协议。</para> + +<para>UDP扫描发送空的(没有数据)UDP报头到每个目标端口。 +如果返回ICMP端口不可到达错误(类型3,代码3), +该端口是<literal moreinfo="none">closed</literal>(关闭的)。 其它ICMP不可到达错误(类型3, +代码1,2,9,10,或者13)表明该端口是<literal moreinfo="none">filtered</literal>(被过滤的)。 +偶尔地,某服务会响应一个UDP报文,证明该端口是<literal moreinfo="none">open</literal>(开放的)。 +如果几次重试后还没有响应,该端口就被认为是 +<literal moreinfo="none">open|filtered</literal>(开放|被过滤的)。 +这意味着该端口可能是开放的,也可能包过滤器正在封锁通信。 +可以用版本扫描(<option>-sV</option>)帮助区分真正的开放端口和被过滤的端口。</para> + +<para>UDP扫描的巨大挑战是怎样使它更快速。 +开放的和被过滤的端口很少响应,让Nmap超时然后再探测,以防探测帧或者 +响应丢失。关闭的端口常常是更大的问题。 +它们一般发回一个ICMP端口无法到达错误。但是不像关闭的TCP端口响应SYN或者Connect +扫描所发送的RST报文,许多主机在默认情况下限制ICMP端口不可到达消息。 +Linux和Solaris对此特别严格。例如, +Linux 2.4.20内核限制一秒钟只发送一条目标不可到达消息 +(见<filename moreinfo="none">net/ipv4/icmp。c</filename>)。</para> + +<para>Nmap探测速率限制并相应地减慢来避免用那些目标机会丢弃的无用报文来阻塞 +网络。不幸的是,Linux式的一秒钟一个报文的限制使65,536个端口的扫描要花 +18小时以上。加速UDP扫描的方法包括并发扫描更多的主机,先只对主要端口进行快速 +扫描,从防火墙后面扫描,使用<option>--host-timeout</option>跳过慢速的 +主机。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (TCP Null,FIN,and Xmas扫描)</term> + <listitem> + +<para>这三种扫描类型 (甚至用下一节描述的 +<option>--scanflags</option> 选项的更多类型) +在<ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP RFC</ulink> +中发掘了一个微妙的方法来区分<literal moreinfo="none">open</literal>(开放的)和 +<literal moreinfo="none">closed</literal>(关闭的)端口。第65页说<quote>如果 +[目标]端口状态是关闭的.... 进入的不含RST的报文导致一个RST响应。</quote> 接下来的一页 +讨论不设置SYN,RST,或者ACK位的报文发送到开放端口: +<quote>理论上,这不应该发生,如果您确实收到了,丢弃该报文,返回。 +</quote></para> + +<para>如果扫描系统遵循该RFC,当端口关闭时,任何不包含SYN,RST,或者ACK位的报文会导致 +一个RST返回,而当端口开放时,应该没有任何响应。只要不包含SYN,RST,或者ACK, +任何其它三种(FIN,PSH,and URG)的组合都行。Nmap有三种扫描类型利用这一点:</para> + +<variablelist> + <varlistentry><term>Null扫描 (<option>-sN</option>)</term> + <listitem><para>不设置任何标志位(tcp标志头是0)</para></listitem></varlistentry> + + <varlistentry><term>FIN扫描 (<option>-sF</option>)</term> + <listitem><para>只设置TCP FIN标志位。</para></listitem></varlistentry> + + <varlistentry><term>Xmas扫描 (<option>-sX</option>)</term> + <listitem><para>设置FIN,PSH,和URG标志位,就像点亮圣诞树上所有的灯一样。 + </para></listitem></varlistentry> +</variablelist> + +<para>除了探测报文的标志位不同,这三种扫描在行为上完全一致。 +如果收到一个RST报文,该端口被认为是 +<literal moreinfo="none">closed</literal>(关闭的),而没有响应则意味着 +端口是<literal moreinfo="none">open|filtered(开放或者被过滤的)</literal>。 +如果收到ICMP不可到达错误(类型 3,代号 +1,2,3,9,10,或者13),该端口就被标记为 +<literal moreinfo="none">被过滤的</literal>。</para> + +<para>这些扫描的关键优势是它们能躲过一些无状态防火墙和报文过滤路由器。 +另一个优势是这些扫描类型甚至比SYN扫描还要隐秘一些。但是别依赖它 -- 多数 +现代的IDS产品可以发现它们。一个很大的不足是并非所有系统都严格遵循RFC 793。 +许多系统不管端口开放还是关闭,都响应RST。 +这导致所有端口都标记为<literal moreinfo="none">closed</literal>(关闭的)。 +这样的操作系统主要有Microsoft Windows,许多Cisco设备,BSDI,以及IBM OS/400。 +但是这种扫描对多数UNIX系统都能工作。这些扫描的另一个不足是 +它们不能辨别<literal moreinfo="none">open</literal>(开放的)端口和一些特定的 +<literal moreinfo="none">filtered</literal>(被过滤的)端口,从而返回 +<literal moreinfo="none">open|filtered(开放或者被过滤的)</literal>。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sA</option> (TCP ACK扫描)</term> + <listitem> + +<para>这种扫描与目前为止讨论的其它扫描的不同之处在于 +它不能确定<literal moreinfo="none">open</literal>(开放的)或者 +<literal moreinfo="none">open|filtered(开放或者过滤的)</literal>)端口。 +它用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。 +</para> + +<para>ACK扫描探测报文只设置ACK标志位(除非您使用 +<option>--scanflags</option>)。当扫描未被过滤的系统时, +<literal moreinfo="none">open</literal>(开放的)和<literal moreinfo="none">closed</literal>(关闭的) 端口 +都会返回RST报文。Nmap把它们标记为 +<literal moreinfo="none">unfiltered</literal>(未被过滤的),意思是 +ACK报文不能到达,但至于它们是<literal moreinfo="none">open</literal>(开放的)或者 +<literal moreinfo="none">closed</literal>(关闭的) 无法确定。不响应的端口 +或者发送特定的ICMP错误消息(类型3,代号1,2,3,9,10, +或者13)的端口,标记为 <literal moreinfo="none">filtered</literal>(被过滤的)。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sW</option> (TCP窗口扫描)</term> + <listitem> + +<para>除了利用特定系统的实现细节来区分开放端口和关闭端口,当收到RST时不总是打印<literal moreinfo="none">unfiltered</literal>, +窗口扫描和ACK扫描完全一样。 +它通过检查返回的RST报文的TCP窗口域做到这一点。 +在某些系统上,开放端口用正数表示窗口大小(甚至对于RST报文) +而关闭端口的窗口大小为0。因此,当收到RST时,窗口扫描不总是把端口标记为 +<literal moreinfo="none">unfiltered</literal>, +而是根据TCP窗口值是正数还是0,分别把端口标记为<literal moreinfo="none">open</literal>或者 +<literal moreinfo="none">closed</literal></para> + +<para>该扫描依赖于互联网上少数系统的实现细节, +因此您不能永远相信它。不支持它的系统会通常返回所有端口<literal moreinfo="none">closed</literal>。 +当然,一台机器没有开放端口也是有可能的。 +如果大部分被扫描的端口是 +<literal moreinfo="none">closed</literal>,而一些常见的端口 (如 22, +25,53) 是 <literal moreinfo="none">filtered</literal>,该系统就非常可疑了。 +偶尔地,系统甚至会显示恰恰相反的行为。 +如果您的扫描显示1000个开放的端口和3个关闭的或者被过滤的端口, +那么那3个很可能也是开放的端口。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sM</option> (TCP Maimon扫描)</term> + <listitem> + +<para>Maimon扫描是用它的发现者Uriel Maimon命名的。他在 +Phrack Magazine issue #49 (November 1996)中描述了这一技术。 +Nmap在两期后加入了这一技术。 +这项技术和Null,FIN,以及Xmas扫描完全一样,除了探测报文是FIN/ACK。 +根据RFC 793 (TCP),无论端口开放或者关闭,都应该对这样的探测响应RST报文。 +然而,Uriel注意到如果端口开放,许多基于BSD的系统只是丢弃该探测报文。 +</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scanflags</option> (定制的TCP扫描)</term> + <listitem> + +<para>真正的Nmap高级用户不需要被这些现成的扫描类型束缚。 +<option>--scanflags</option>选项允许您通过指定任意TCP标志位来设计您自己的扫描。 +让您的创造力流动,躲开那些仅靠本手册添加规则的入侵检测系统!</para> + +<para><option>--scanflags</option>选项可以是一个数字标记值如9 (PSH和FIN), +但使用字符名更容易些。 +只要是<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>,and +<literal moreinfo="none">FIN</literal>的任何组合就行。例如,<option>--scanflags +URGACKPSHRSTSYNFIN</option>设置了所有标志位,但是这对扫描没有太大用处。 +标志位的顺序不重要。</para> + +<para>除了设置需要的标志位,您也可以设置 +TCP扫描类型(如<option>-sA</option>或者<option>-sF</option>)。 +那个基本类型告诉Nmap怎样解释响应。例如, +SYN扫描认为没有响应意味着 +<literal moreinfo="none">filtered</literal>端口,而FIN扫描则认为是 +<literal moreinfo="none">open|filtered</literal>。 +除了使用您指定的TCP标记位,Nmap会和基本扫描类型一样工作。 +如果您不指定基本类型,就使用SYN扫描。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sI <zombie + host[:probeport]></option> (Idlescan)</term> + + <listitem> + + <para>这种高级的扫描方法允许对目标进行真正的TCP端口盲扫描 + (意味着没有报文从您的真实IP地址发送到目标)。相反,side-channel攻击 + 利用zombie主机上已知的IP分段ID序列生成算法来窥探目标上开放端口的信息。 + IDS系统将显示扫描来自您指定的zombie机(必须运行并且符合一定的标准)。 + 这种奇妙的扫描类型太复杂了,不能在此完全描述,所以我写一篇非正式的论文, + 发布在<ulink url="https://nmap.org/book/idlescan.html"/>。</para> + + <para>除了极端隐蔽(由于它不从真实IP地址发送任何报文), + 该扫描类型可以建立机器间的基于IP的信任关系。 + 端口列表<emphasis>从zombie + 主机的角度。</emphasis>显示开放的端口。 + 因此您可以尝试用您认为(通过路由器/包过滤规则)可能被信任的 + zombies扫描目标。</para> + + <para>如果您由于IPID改变希望探测zombie上的特定端口, + 您可以在zombie 主机后加上一个冒号和端口号。 + 否则Nmap会使用默认端口(80)。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sO</option> (IP协议扫描)</term> + <listitem> + +<para>IP 协议扫描可以让您确定目标机支持哪些IP协议 +(TCP,ICMP,IGMP,等等)。从技术上说,这不是端口扫描 +,既然它遍历的是IP协议号而不是TCP或者UDP端口号。 +但是它仍使用 +<option>-p</option>选项选择要扫描的协议号, +用正常的端口表格式报告结果,甚至用和真正的端口扫描一样 +的扫描引擎。因此它和端口扫描非常接近,也被放在这里讨论。 +</para> + +<para>除了本身很有用,协议扫描还显示了开源软件的力量。 +尽管基本想法非常简单,我过去从没想过增加这一功能也没收到任何对它的请求。 +在2000年夏天,Gerhard Rieger孕育了这个想法,写了一个很棒的补丁程序,发送到nmap-hackers邮件列表。 +我把那个补丁加入了Nmap,第二天发布了新版本。 +几乎没有商业软件会有用户有足够的热情设计并贡献他们的改进。 +</para> + +<para>协议扫描以和UDP扫描类似的方式工作。它不是在UDP报文的端口域上循环, +而是在IP协议域的8位上循环,发送IP报文头。 +报文头通常是空的,不包含数据,甚至不包含所申明的协议的正确报文头 +TCP,UDP,和ICMP是三个例外。它们三个会使用正常的协议头,因为否则某些系 +统拒绝发送,而且Nmap有函数创建它们。协议扫描不是注意ICMP端口不可到达消息, +而是ICMP +<emphasis>协议</emphasis>不可到达消息。如果Nmap从目标主机收到 +任何协议的任何响应,Nmap就把那个协议标记为<literal moreinfo="none">open</literal>。 +ICMP协议不可到达 +错误(类型 3,代号 2) 导致协议被标记为 +<literal moreinfo="none">closed</literal>。其它ICMP不可到达协议(类型 3,代号 +1,3,9,10,或者13) 导致协议被标记为 +<literal moreinfo="none">filtered</literal> (虽然同时他们证明ICMP是 +<literal moreinfo="none">open</literal> )。如果重试之后仍没有收到响应, +该协议就被标记为<literal moreinfo="none">open|filtered</literal></para> + + </listitem> + </varlistentry> + + + + <varlistentry> + <term> + <option>-b <ftp relay host></option> (FTP弹跳扫描)</term> + <listitem> + +<para>FTP协议的一个有趣特征(<ulink url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) +是支持所谓代理ftp连接。它允许用户连接到一台FTP服务器,然后要求文件送到一台第三方服务器。 +这个特性在很多层次上被滥用,所以许多服务器已经停止支持它了。其中一种就是导致FTP服务器对其它主机端口扫描。 +只要请求FTP服务器轮流发送一个文件到目标主机上的所感兴趣的端口。 +错误消息会描述端口是开放还是关闭的。 +这是绕过防火墙的好方法,因为FTP服务器常常被置于可以访问比Web主机更多其它内部主机的位置。 +Nmap用<option>-b</option>选项支持ftp弹跳扫描。参数格式是 +<replaceable>username</replaceable>:<replaceable>password</replaceable>@<replaceable>server</replaceable>:<replaceable>port</replaceable>。 +<replaceable>Server</replaceable> 是某个脆弱的FTP服务器的名字或者IP地址。 +您也许可以省略<replaceable>username</replaceable>:<replaceable>password</replaceable>, +如果服务器上开放了匿名用户(user:<literal moreinfo="none">anonymous</literal> password:<literal moreinfo="none">-wwwuser@</literal>)。 +端口号(以及前面的冒号) 也可以省略,如果<replaceable>server</replaceable>使用默认的FTP端口(21)。</para> + +<para>当Nmap1997年发布时,这个弱点被广泛利用,但现在大部分已经被fix了。 +脆弱的服务器仍然存在,所以如果其它都失败了,这也值得一试。 +如果您的目标是绕过防火墙,扫描目标网络上的开放的21端口(或者 +甚至任何ftp服务,如果您用版本探测扫描所有端口), +然后对每个尝试弹跳扫描。Nmap会告诉您该主机脆弱与否。 +如果您只是试着玩Nmap,您不必(事实上,不应该)限制您自己。 +在您随机地在互联网上寻找脆弱的FTP服务器时,考虑一下系统管理员不太喜欢您这样滥用他们的服务器。</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-port-specification"> + <title>端口说明和扫描顺序</title> + + <para>除了所有前面讨论的扫描方法, + Nmap提供选项说明那些端口被扫描以及扫描是随机还是顺序进行。 + 默认情况下,Nmap用指定的协议对端口1到1024以及<filename moreinfo="none">nmap-services</filename> + 文件中列出的更高的端口在扫描。</para> + + <variablelist> + <varlistentry> + <term> + <option>-p <port ranges></option> (只扫描指定的端口) + </term> + <listitem> + + <para>该选项指明您想扫描的端口,覆盖默认值。 + 单个端口和用连字符表示的端口范围(如 1-1023)都可以。 + 范围的开始以及/或者结束值可以被省略, + 分别导致Nmap使用1和65535。所以您可以指定 + <option>-p-</option>从端口1扫描到65535。 + 如果您特别指定,也可以扫描端口0。 + 对于IP协议扫描(<option>-sO</option>),该选项指定您希望扫描的协议号 + (0-255)。</para> + + <para>当既扫描TCP端口又扫描UDP端口时,您可以通过在端口号前加上<literal moreinfo="none">T:</literal> + 或者<literal moreinfo="none">U:</literal>指定协议。 + 协议限定符一直有效您直到指定另一个。 + 例如,参数 <option>-p + U:53,111,137,T:21-25,80,139,8080</option> 将扫描UDP + 端口53,111,和137,同时扫描列出的TCP端口。注意,要既扫描 + UDP又扫描TCP,您必须指定 + <option>-sU</option> ,以及至少一个TCP扫描类型(如 + <option>-sS</option>,<option>-sF</option>,或者 + <option>-sT</option>)。如果没有给定协议限定符, + 端口号会被加到所有协议列表。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-F</option> (快速 (有限的端口) 扫描) + </term> + <listitem> + + <para>在nmap的<filename moreinfo="none">nmap-services</filename> + 文件中(对于<option>-sO</option>,是协议文件)指定您想要扫描的端口。 + 这比扫描所有65535个端口快得多。 + 因为该列表包含如此多的TCP端口(1200多),这和默认的TCP扫描 scan + (大约1600个端口)速度差别不是很大。如果您用<option>--datadir</option>选项指定您自己的 + 小小的<filename moreinfo="none">nmap-services</filename>文件 + ,差别会很惊人。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-r</option> (不要按随机顺序扫描端口) + </term> + <listitem> + <para>默认情况下,Nmap按随机顺序扫描端口 + (除了出于效率的考虑,常用的端口前移)。这种随机化通常都是受欢迎的, + 但您也可以指定<option>-r</option>来顺序端口扫描。 + </para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-version-detection"> + <title>服务和版本探测</title> + + <para>把Nmap指向一个远程机器,它可能告诉您 + 端口25/tcp,80/tcp,和53/udp是开放的。使用包含大约2,200个著名的服务的 + <filename moreinfo="none">nmap-services</filename>数据库, + Nmap可以报告那些端口可能分别对应于一个邮件服务器 + (SMTP),web服务器(HTTP),和域名服务器(DNS)。 + 这种查询通常是正确的 -- 事实上,绝大多数在TCP端口25监听的守护进程是邮件 + 服务器。然而,您不应该把赌注押在这上面! + 人们完全可以在一些奇怪的端口上运行服务。</para> + + <para>即使Nmap是对的,假设运行服务的确实是 + SMTP,HTTP和DNS,那也不是特别多的信息。 + 当为您的公司或者客户作安全评估(或者甚至简单的网络明细清单)时, + 您确实想知道正在运行什么邮件和域名服务器以及它们的版本。 + 有一个精确的版本号对了解服务器有什么漏洞有巨大帮助。 + 版本探测可以帮您获得该信息。 +</para> + + <para>在用某种其它类型的扫描方法发现TCP 和/或者UDP端口后, + 版本探测会询问这些端口,确定到底什么服务正在运行。 + <filename moreinfo="none">nmap-service-probes</filename> 数据库包含查询不同服务的探测报文 + 和解析识别响应的匹配表达式。 + Nmap试图确定服务协议 + (如 ftp,ssh,telnet,http),应用程序名(如ISC + Bind,Apache httpd,Solaris telnetd),版本号, + 主机名,设备类型(如 打印机,路由器),操作系统家族 + (如Windows,Linux)以及其它的细节,如 + 如是否可以连接X server,SSH协议版本 + ,或者KaZaA用户名)。当然,并非所有服务都提供所有这些信息。 + 如果Nmap被编译成支持OpenSSL, + 它将连接到SSL服务器,推测什么服务在加密层后面监听。 + 当发现RPC服务时, + Nmap RPC grinder (<option>-sR</option>)会自动被用于确定RPC程序和它的版本号。 + 如果在扫描某个UDP端口后仍然无法确定该端口是开放的还是被过滤的,那么该端口状态就 + 被标记为<literal moreinfo="none">open|filtered</literal>。 + 版本探测将试图从这些端口引发一个响应(就像它对开放端口做的一样), + 如果成功,就把状态改为开放。 + <literal moreinfo="none">open|filtered</literal> TCP端口用同样的方法对待。 + 注意Nmap <option>-A</option>选项在其它情况下打开版本探测。 + 有一篇关于版本探测的原理,使用和定制的文章在 + <ulink url="https://nmap.org/vscan/"/>。</para> + + <para>当Nmap从某个服务收到响应,但不能在数据库中找到匹配时, + 它就打印一个特殊的fingerprint和一个URL给您提交,如果您确实知道什么服务运行在端口。 + 请花两分钟提交您的发现,让每个人受益。由于这些提交, + Nmap有350种以上协议如smtp,ftp,http等的大约3,000条模式匹配。</para> + + <para>用下列的选项打开和控制版本探测。</para> + + + <variablelist> + + <varlistentry> + <term> + <option>-sV</option> (版本探测)</term> + <listitem> + + <para>打开版本探测。 + 您也可以用<option>-A</option>同时打开操作系统探测和版本探测。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--allports</option> (不为版本探测排除任何端口) + </term> + <listitem> + <para>默认情况下,Nmap版本探测会跳过9100 TCP端口,因为一些打印机简单地打印送到该端口的 + 任何数据,这回导致数十页HTTP get请求,二进制 + SSL会话请求等等被打印出来。这一行为可以通过修改或删除<filename moreinfo="none">nmap-service-probes</filename> + 中的<literal moreinfo="none">Exclude</literal>指示符改变, + 您也可以不理会任何<literal moreinfo="none">Exclude</literal>指示符,指定<option>--allports</option>扫描所有端口 + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-intensity <intensity></option> (设置 + 版本扫描强度) + </term> + <listitem> + + <para>当进行版本扫描(<option>-sV</option>)时,nmap发送一系列探测报文 + ,每个报文都被赋予一个1到9之间的值。 + 被赋予较低值的探测报文对大范围的常见服务有效,而被赋予较高值的报文 + 一般没什么用。强度水平说明了应该使用哪些探测报文。数值越高, + 服务越有可能被正确识别。 + 然而,高强度扫描花更多时间。强度值必须在0和9之间。 + 默认是7。当探测报文通过<filename moreinfo="none">nmap-service-probes</filename> <literal moreinfo="none">ports</literal>指示符 + 注册到目标端口时,无论什么强度水平,探测报文都会被尝试。这保证了DNS + 探测将永远在任何开放的53端口尝试, + SSL探测将在443端口尝试,等等。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-light</option> (打开轻量级模式) + </term> + <listitem> + <para>这是 + <option>--version-intensity 2</option>的方便的别名。轻量级模式使 + 版本扫描快许多,但它识别服务的可能性也略微小一点。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-all</option> (尝试每个探测) + </term> + <listitem> + <para><option>--version-intensity 9</option>的别名, + 保证对每个端口尝试每个探测报文。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--version-trace</option> (跟踪版本扫描活动) + </term> + <listitem> + <para>这导致Nmap打印出详细的关于正在进行的扫描的调试信息。 + 它是您用<option>--packet-trace</option>所得到的信息的子集。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-sR</option> (RPC扫描)</term> + <listitem> + <para>这种方法和许多端口扫描方法联合使用。 + 它对所有被发现开放的TCP/UDP端口执行SunRPC程序NULL命令,来试图 + 确定它们是否RPC端口,如果是, + 是什么程序和版本号。因此您可以有效地获得和<command moreinfo="none">rpcinfo -p</command>一样的信息, + 即使目标的端口映射在防火墙后面(或者被TCP包装器保护)。Decoys目前不能和RPC scan一起工作。 + 这作为版本扫描(<option>-sV</option>)的一部分自动打开。 + 由于版本探测包括它并且全面得多,<option>-sR</option>很少被需要。</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-os-detection"> + + <title>操作系统探测</title> + + <para>Nmap最著名的功能之一是用TCP/IP协议栈fingerprinting进行远程操作系统探测。 + Nmap发送一系列TCP和UDP报文到远程主机,检查响应中的每一个比特。 + 在进行一打测试如TCP + ISN采样,TCP选项支持和排序,IPID采样,和初始窗口大小检查之后, + Nmap把结果和数据库<filename moreinfo="none">nmap-os-fingerprints</filename>中超过 + 1500个已知的操作系统的fingerprints进行比较,如果有匹配,就打印出操作系统的详细信息。 + 每个fingerprint包括一个自由格式的关于OS的描述文本, + 和一个分类信息,它提供供应商名称(如Sun),下面的操作系统(如Solaris),OS版本(如10), + 和设备类型(通用设备,路由器,switch,游戏控制台, + 等)。</para> + + <para>如果Nmap不能猜出操作系统,并且有些好的已知条件(如 + 至少发现了一个开放端口和一个关闭端口),Nmap会提供一个 + URL,如果您确知运行的操作系统,您可以把fingerprint提交到那个URL。 + 这样您就扩大了Nmap的操作系统知识库,从而让每个Nmap用户都受益。 + </para> + + <para>操作系统检测可以进行其它一些测试,这些测试可以利用处理 + 过程中收集到的信息。例如运行时间检测,使用TCP时间戳选项(RFC 1323) + 来估计主机上次重启的时间,这仅适用于提供这类信息的主机。另一种 + 是TCP序列号预测分类,用于测试针对远程主机建立一个伪造的TCP连接 + 的可能难度。这对于利用基于源IP地址的可信关系(rlogin,防火墙过滤等) + 或者隐含源地址的攻击非常重要。这一类哄骗攻击现在很少见,但一些 + 主机仍然存在这方面的漏洞。实际的难度值基于统计采样,因此可能会有 + 一些波动。通常采用英国的分类较好,如<quote>worthy challenge</quote>或者 + <quote>trivial joke</quote>。在详细模式(<option>-v</option>)下只以 + 普通的方式输出,如果同时使用<option>-O</option>,还报告IPID序列产生号。 + 很多主机的序列号是<quote>增加</quote>类别,即在每个发送包的IP头中 + 增加ID域值, 这对一些先进的信息收集和哄骗攻击来说是个漏洞。</para> + + <para><ulink url="https://nmap.org/book/osdetect.html"/> + 文档使用多种语言描述了版本检测的方式、使用和定制。</para> + + <para>采用下列选项启用和控制操作系统检测:</para> + + <variablelist> + <varlistentry> + <term> + <option>-O</option> (启用操作系统检测) + </term> + <listitem> + <para>也可以使用<option>-A</option>来同时启用操作系统检测和版本检测。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-limit</option> (针对指定的目标进行操作系统检测) + </term> + <listitem> + <para>如果发现一个打开和关闭的TCP端口时,操作系统检测会更有效。 + 采用这个选项,Nmap只对满足这个条件的主机进行操作系统检测,这样可以 + 节约时间,特别在使用<option>-P0</option>扫描多个主机时。这个选项仅在使用 + <option>-O</option>或<option>-A</option> + 进行操作系统检测时起作用。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--osscan-guess</option>; <option>--fuzzy</option> (推测操作系统检测结果) + </term> + <listitem> + <para>当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,Nmap默认 + 进行这种匹配,使用上述任一个选项使得Nmap的推测更加有效。</para> + </listitem> + </varlistentry> + + + </variablelist> + </refsect1> + + <refsect1 id="man-performance"> + <title>时间和性能</title> + <para>Nmap开发的最高优先级是性能。在本地网络对一个主机的默认扫描(<command moreinfo="none">nmap +<replaceable>hostname</replaceable></command>)需要1/5秒。而仅仅眨眼的 +时间,就需要扫描上万甚至几十万的主机。此外,一些特定的扫描选项会明显增 +加扫描时间,如UDP扫描和版本检测。同样,防火墙配置以及特殊的响应速度限制也会 +增加时间。Nmap使用了并行算法和许多先进的算法来加速扫描,用户对Nmap如何 +工作有最终的控制权。高级用户可以仔细地调整Nmap命令,在满足时间要求的同时获得他们所关心的信息。</para> + + <para>改善扫描时间的技术有:忽略非关键的检测、升级最新版本的Nmap(性能增强不断改善)。 + 优化时间参数也会带来实质性的变化,这些参数如下。</para> + + <variablelist> + + <varlistentry> + <term> + <option>--min-hostgroup <size></option>; + <option>--max-hostgroup + <size></option> (调整并行扫描组的大小)</term> + <listitem> +<para>Nmap具有并行扫描多主机端口或版本的能力,Nmap将多个目标IP地址 +空间分成组,然后在同一时间对一个组进行扫描。通常,大的组更有效。缺 +点是只有当整个组扫描结束后才会提供主机的扫描结果。如果组的大小定义 +为50,则只有当前50个主机扫描结束后才能得到报告(详细模式中的补充信息 +除外)。</para> + +<para>默认方式下,Nmap采取折衷的方法。开始扫描时的组较小, +最小为5,这样便于尽快产生结果;随后增长组的大小,最大为1024。确切的 +大小依赖于所给定的选项。为保证效率,针对UDP或少量端口的TCP扫描,Nmap +使用大的组。</para> + +<para><option>--max-hostgroup</option>选项用于说明使用最大的组,Nmap不 +会超出这个大小。<option>--min-hostgroup</option>选项说明最小的组,Nmap +会保持组大于这个值。如果在指定的接口上没有足够的目标主机来满足所 +指定的最小值,Nmap可能会采用比所指定的值小的组。这两个参数虽然很少使用, +但都用于保持组的大小在一个指定的范围之内。</para> + +<para>这些选项的主要用途是说明一个最小组的大小,使得整个扫描更加快速。通常 +选择256来扫描C类网段。对于端口数较多的扫描,超出该值没有意义。对于 +端口数较少的扫描,2048或更大的组大小是有帮助的。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-parallelism <numprobes></option>; + <option>--max-parallelism + <numprobes></option> (调整探测报文的并行度)</term> + <listitem> + +<para>这些选项控制用于主机组的探测报文数量,可用于端口扫描和主机发现。默认状态下, +Nmap基于网络性能计算一个理想的并行度,这个值经常改变。如果报文被丢弃, +Nmap降低速度,探测报文数量减少。随着网络性能的改善,理想的探测报文数量会缓慢增加。 +这些选项确定这个变量的大小范围。默认状态下,当网络不可靠时,理想的并行度值 +可能为1,在好的条件下,可能会增长至几百。</para> + +<para>最常见的应用是<option>--min-parallelism</option>值大于1,以加快 +性能不佳的主机或网络的扫描。这个选项具有风险,如果过高则影响准确度,同时 +也会降低Nmap基于网络条件动态控制并行度的能力。这个值设为10较为合适, +这个值的调整往往作为最后的手段。</para> + +<para><option>--max-parallelism</option>选项通常设为1,以防止Nmap在同一时间 +向主机发送多个探测报文,和选择<option>--scan-delay</option>同时使用非常有用,虽然 +这个选项本身的用途已经很好。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--min-rtt-timeout <milliseconds></option>, + <option>--max-rtt-timeout <milliseconds></option>, + <option>--initial-rtt-timeout + <milliseconds></option> (调整探测报文超时)</term> + <listitem> + +<para>Nmap使用一个运行超时值来确定等待探测报文响应的时间,随后会放弃或重新 +发送探测报文。Nmap基于上一个探测报文的响应时间来计算超时值,如果网络延迟比较显著 +和不定,这个超时值会增加几秒。初始值的比较保守(高),而当Nmap扫描无响应 +的主机时,这个保守值会保持一段时间。</para> + +<para>这些选项以毫秒为单位,采用小的<option>--max-rtt-timeout</option>值,使 +<option>--initial-rtt-timeout</option>值大于默认值可以明显减少扫描时间,特别 +是对不能ping通的扫描(<option>-P0</option>)以及具有严格过滤的网络。如果使用太 +小的值,使得很多探测报文超时从而重新发送,而此时可能响应消息正在发送,这使得整个扫描的时 +间会增加。</para> + +<para>如果所有的主机都在本地网络,对于<option>--max-rtt-timeout</option>值来 +说,100毫秒比较合适。如果存在路由,首先使用ICMP ping工具ping主机,或使用其 +它报文工具如hpings,可以更好地穿透防火墙。查看大约10个包的最大往返时间,然后将 +<option>--initial-rtt-timeout</option>设成这个时间的2倍,<option>--max-rtt-timeout</option> +可设成这个时间值的3倍或4倍。通常,不管ping的时间是多少,最大的rtt值不得小于100ms, +不能超过1000ms。</para> + +<para><option>--min-rtt-timeout</option>这个选项很少使用,当网络不可靠时, +Nmap的默认值也显得过于强烈,这时这个选项可起作用。当网络看起来不可靠时,Nmap仅将 +超时时间降至最小值,这个情况是不正常的,需要向nmap-dev邮件列表报告bug。</para> + + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <option>--host-timeout <milliseconds></option> (放弃低速目标主机) + </term> + <listitem> + +<para>由于性能较差或不可靠的网络硬件或软件、带宽限制、严格的防火墙等原因, +一些主机需要<emphasis>很长</emphasis>的时间扫描。这些极少数的主机扫描往往占 +据了大部分的扫描时间。因此,最好的办法是减少时间消耗并且忽略这些主机,使用 +<option>--host-timeout</option>选项来说明等待的时间(毫秒)。通常使用1800000 +来保证Nmap不会在单个主机上使用超过半小时的时间。需要注意的是,Nmap在这半小时中可以 +同时扫描其它主机,因此并不是完全放弃扫描。超时的主机被忽略,因此也没有针对该主机的 +端口表、操作系统检测或版本检测结果的输出。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--scan-delay <milliseconds></option>; + <option>--max-scan-delay + <milliseconds></option> (调整探测报文的时间间隔)</term> + <listitem> + +<para>这个选项用于Nmap控制针对一个主机发送探测报文的等待时间(毫秒),在带宽 +控制的情况下这个选项非常有效。Solaris主机在响应UDP扫描探测报文报文时,每秒 +只发送一个ICMP消息,因此Nmap发送的很多数探测报文是浪费的。<option>--scan-delay</option> +设为1000,使Nmap低速运行。Nmap尝试检测带宽控制并相应地调整扫描的延迟,但 +并不影响明确说明何种速度工作最佳。</para> + +<para><option>--scan-delay</option>的另一个用途是躲闭基于阈值的入侵检测和预防 +系统(IDS/IPS)。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-T + <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane></option> + (设置时间模板) + </term> + <listitem> + +<para>上述优化时间控制选项的功能很强大也很有效,但有些用户会被迷惑。此外, +往往选择合适参数的时间超过了所需优化的扫描时间。因此,Nmap提供了一些简单的 +方法,使用6个时间模板,使用时采用<option>-T</option>选项及数字(0 - 5) +或名称。模板名称有paranoid (0)、sneaky (1)、polite (2)、normal(3)、 +aggressive (4)和insane (5)。前两种模式用于IDS躲避,Polite模式降低了扫描 +速度以使用更少的带宽和目标主机资源。默认模式为Normal,因此<option>-T3</option> +实际上是未做任何优化。Aggressive模式假设用户具有合适及可靠的网络从而加速 +扫描。Insane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。</para> + +<para>用户可以根据自己的需要选择不同的模板,由Nmap负责选择实际的时间值。 +模板也会针对其它的优化控制选项进行速度微调。例如,<option>-T4</option> +针对TCP端口禁止动态扫描延迟超过10ms,<option>-T5</option>对应的值为5ms。 +模板可以和优化调整控制选项组合使用,但模板必须首先指定,否则模板的标准值 +会覆盖用户指定的值。建议在扫描可靠的网络时使用 <option>-T4</option>,即使 +在自己要增加优化控制选项时也使用(在命令行的开始),从而从这些额外的较小的优化 +中获益。</para> + +<para>如果用于有足够的带宽或以太网连接,仍然建议使用<option>-T4</option>选项。 +有些用户喜欢<option>-T5</option>选项,但这个过于强烈。有时用户考虑到避免使主机 +崩溃或者希望更礼貌一些会采用<option>-T2</option>选项。他们并没意识到<option>-T +Polite</option>选项是如何的慢,这种模式的扫描比默认方式实际上要多花10倍的时间。默认时间 +选项(<option>-T3</option>)很少有主机崩溃和带宽问题,比较适合于谨慎的用户。不进行 +版本检测比进行时间调整能更有效地解决这些问题。</para> + +<para>虽然<option>-T0</option>和<option>-T1</option>选项可能有助于避免IDS告警,但 +在进行上千个主机或端口扫描时,会显著增加时间。对于这种长时间的扫描,宁可设定确切的时间 +值,而不要去依赖封装的<option>-T0</option>和<option>-T1</option>选项。</para> + +<para><option>T0</option>选项的主要影响是对于连续扫描,在一个时间只能扫描一个端口, +每个探测报文的发送间隔为5分钟。<option>T1</option>和<option>T2</option>选项比较类似, +探测报文间隔分别为15秒和0.4秒。<option>T3</option>是Nmap的默认选项,包含了并行扫描。 +<option>T4</option>选项与 <option>--max-rtt-timeout 1250 --initial-rtt-timeout 500</option> +等价,最大TCP扫描延迟为10ms。<option>T5</option>等价于 +<option>--max-rtt-timeout 300 --min-rtt-timeout 50 +--initial-rtt-timeout 250 --host-timeout 900000</option>,最大TCP扫描延迟为5ms。</para> + + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-bypass-firewalls-ids"> + <title>防火墙/IDS躲避和哄骗</title> + +<para>很多Internet先驱们设想了一个全球开放的网络,使用全局的IP +地址空间,使得任何两个节点之间都有虚拟连接。这使得主机间可以作为真 +正的对等体,相互间提供服务和获取信息。人们可以在工作时访问家里所 +有的系统、调节空调温度、为提前到来的客人开门。随后,这些全球连接的设想 +受到了地址空间短缺和安全考虑的限制。在90年代早期,各种机构开始部 +署防火墙来实现减少连接的目的,大型网络通过代理、NAT和包过滤器与未 +过滤的Internet隔离。不受限的信息流被严格控制的可信通信通道信息流所替代。</para> + +<para>类似防火墙的网络隔离使得对网络的搜索更加困难,随意的搜 +索变得不再简单。然而,Nmap提供了很多特性用于理解这些复杂的网 +络,并且检验这些过滤器是否正常工作。此外,Nmap提供了绕过某些较弱的 +防范机制的手段。检验网络安全状态最有效的方法之一是尝试哄骗网络,将 +自己想象成一个攻击者,使用本节提供的技术来攻击自己的网络。如使用FTP +bounce扫描、Idle扫描、分片攻击或尝试穿透自己的代理。</para> + +<para>除限止网络的行为外,使用入侵检测系统(IDS)的公司也不断增加。由于Nmap +常用于攻击前期的扫描,因此所有主流的IDS都包含了检测Nmap扫描的规则。 +现在,这些产品变形为入侵<emphasis>预防</emphasis>系统(IPS),可以主 +动地阻止可疑的恶意行为。不幸的是,网络管理员和IDS厂商通过分析报文 +来检测恶意行为是一个艰苦的工作,有耐心和技术的攻击者,在特定Nmap选项 +的帮助下,常常可以不被IDS检测到。同时,管理员必须应付大量的误报结果, +正常的行为被误判而被改变或阻止。</para> + +<para>有时,人们建议Nmap不应该提供躲闭防火墙规则或哄骗IDS的功能, +这些功能可能会被攻击者滥用,然而管理员却可以利用这些功能来增强安全性。 +实际上,攻击的方法仍可被攻击者利用,他们可以发现其它工具或Nmap的补丁程 +序。同时,管理员发现攻击者的工作更加困难,相比较采取措施来预防执 +行FTP Bounce攻击的工具而言,部署先进的、打过补丁的FTP服务器更 +加有效。</para> + +<para>Nmap不提供检测和破坏防火墙及IDS系统的魔弹(或Nmap选项),它使用 +的是技术和经验,这超出了本参考手册的范围,下面描述了相关的选项和 +完成的工作。</para> + +<variablelist> + <varlistentry> + <term> + <option>-f</option> (报文分段); + <option>--mtu</option> (使用指定的MTU) + </term> + + <listitem> + <para><option>-f</option>选项要求扫描时(包挺ping扫描)使用 + 小的IP包分段。其思路是将TCP头分段在几个包中,使得包过滤器、 + IDS以及其它工具的检测更加困难。必须小心使用这个选项,有些系 + 统在处理这些小包时存在问题,例如旧的网络嗅探器Sniffit在接收 + 到第一个分段时会立刻出现分段错误。该选项使用一次,Nmap在IP + 头后将包分成8个字节或更小。因此,一个20字节的TCP头会被分成3个 + 包,其中2个包分别有TCP头的8个字节,另1个包有TCP头的剩下4个字 + 节。当然,每个包都有一个IP头。再次使用<option>-f</option>可使用 + 16字节的分段(减少分段数量)。使用<option>--mtu</option>选项可 + 以自定义偏移的大小,使用时不需要<option>-f</option>,偏移量必须 + 是8的倍数。包过滤器和防火墙对所有的IP分段排队,如Linux核心中的 + CONFIG-IP-ALWAYS-DEFRAG配置项,分段包不会直接使用。一些网络无法 + 承受这样所带来的性能冲击,会将这个配置禁止。其它禁止的原因有分段 + 包会通过不同的路由进入网络。一些源系统在内核中对发送的报文进行 + 分段,使用iptables连接跟踪模块的Linux就是一个例子。当使用类似Ethereal + 的嗅探器时,扫描必须保证发送的报文要分段。如果主机操作系统会产 + 生问题,尝试使用<option>--send-eth</option>选项以避开IP层而直接 + 发送原始的以太网帧。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-D <decoy1 [,decoy2][,ME],...></option> + (使用诱饵隐蔽扫描) + </term> + <listitem> + <para>为使诱饵扫描起作用,需要使远程主机认为是诱饵在扫描目标网络。 + IDS可能会报个某个IP的5-10个端口扫描,但并不知道哪个IP在扫描以及 + 哪些不是诱饵。但这种方式可以通过路由跟踪、响应丢弃以及其它主动 + 机制在解决。这是一种常用的隐藏自身IP地址的有效技术。</para> + + <para>使用逗号分隔每个诱饵主机,也可用自己的真实IP作为诱饵,这时可使用 + <literal moreinfo="none">ME</literal>选项说明。如果在第6个位置或 + 更后的位置使用<literal moreinfo="none">ME</literal>选项,一些常用 + 端口扫描检测器(如Solar Designer's excellent scanlogd)就不会报告 + 这个真实IP。如果不使用<literal moreinfo="none">ME</literal>选项,Nmap + 将真实IP放在一个随机的位置</para> + + <para>注意,作为诱饵的主机须在工作状态,否则会导致目标主机的SYN洪水攻击。 + 如果在网络中只有一个主机在工作,那就很容易确定哪个主机在扫描。也可 + 使用IP地址代替主机名(被诱骗的网络就不可能在名字服务器日志中发现)。</para> + + <para>诱饵可用在初始的ping扫描(ICMP、SYN、ACK等)阶段或真正的端口扫描 + 阶段。诱饵也可以用于远程操作系统检测(<option>-O</option>)。在进行版 + 本检测或TCP连接扫描时,诱饵无效。</para> + + <para>使用过多的诱饵没有任何价值,反而导致扫描变慢并且结果不准确。 + 此外,一些ISP会过滤哄骗的报文,但很多对欺骗IP包没有任何限制。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-S <IP_Address></option> (源地址哄骗) + </term> + <listitem> + <para>在某些情况下,Nmap可能无法确定你的源地址(如果这样,Nmap会给出 + 提示)。此时,使用<option>-S</option>选项并说明所需发送包的接口IP地址。</para> + + <para>这个标志的另一个用处是哄骗性的扫描,使得目标认为是<emphasis>另 + 一个地址</emphasis>在进行扫描。可以想象某一个竞争对手在不断扫描某个公司! + <option>-e</option>选项常在这种情况下使用,也可采用<option>-P0</option>选项。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-e <interface></option> (使用指定的接口) + </term> + <listitem> + <para>告诉Nmap使用哪个接口发送和接收报文,Nmap可以进行自动检测, + 如果检测不出会给出提示。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--source-port <portnumber>;</option> + <option>-g <portnumber></option> (源端口哄骗) + </term> + <listitem> + +<para>仅依赖于源端口号就信任数据流是一种常见的错误配置,这个问题非常 +好理解。例如一个管理员部署了一个新的防火墙,但招来了很多用户的不满,因为 +他们的应用停止工作了。可能是由于外部的UDP DNS服务器响应无法进入网络,而导致 +DNS的崩溃。FTP是另一个常见的例子,在FTP传输时,远程服务器尝试和内部用 +建立连接以传输数据。</para> + +<para>对这些问题有安全解决方案,通常是应用级代理或协议分析防火墙模块。 +但也存在一些不安全的方案。注意到DNS响应来自于53端口,FTP连接 +来自于20端口,很多管理员会掉入一个陷阱,即允许来自于这些端口的数据进入 +网络。他们认为这些端口里不会有值得注意的攻击和漏洞利用。此外,管理员 +或许认为这是一个短期的措施,直至他们采取更安全的方案。但他们忽视了安全的 +升级。 +</para> + +<para>不仅仅是工作量过多的网络管理员掉入这种陷阱,很多产品本身也会有这类 +不安全的隐患,甚至是微软的产品。Windows 2000和Windows XP中包含的IPsec过滤 +器也包含了一些隐含规则,允许所有来自88端口(Kerberos)的TCP和UDP数据流。另 +一个常见的例子是Zone Alarm个人防火墙到2.1.25版本仍然允许源端口53(DNS)或 +67(DHCP)的UDP包进入。</para> + +<para>Nmap提供了<option>-g</option>和<option>--source-port</option>选项(它们是 +等价的),用于利用上述弱点。只需要提供一个端口号,Nmap就可以从这些 +端口发送数据。为使特定的操作系统正常工作,Nmap必须使用不同的端口号。 +DNS请求会忽略<option>--source-port</option>选项,这是因为Nmap依靠系 +统库来处理。大部分TCP扫描,包括SYN扫描,可以完全支持这些选项,UDP扫 +描同样如此。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--data-length <number></option> (发送报文时 + 附加随机数据) + </term> + <listitem> + <para>正常情况下,Nmap发送最少的报文,只含一个包头。因此TCP包通常 + 是40字节,ICMP ECHO请求只有28字节。这个选项告诉Nmap在发送的报文上 + 附加指定数量的随机字节。操作系统检测(<option>-O</option>)包不受影响, + 但大部分ping和端口扫描包受影响,这会使处理变慢,但对扫描的影响较小。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--ttl <value></option> (设置IP time-to-live域) + </term> + <listitem> + <para>设置IPv4报文的time-to-live域为指定的值。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--randomize-hosts</option> (对目标主机的顺序随机排列) + </term> + <listitem> + <para>告诉Nmap在扫描主机前对每个组中的主机随机排列,最多可达 + 8096个主机。这会使得扫描针对不同的网络监控系统来说变得不是很 + 明显,特别是配合值较小的时间选项时更有效。如果需要对一个较大 + 的组进行随机排列,需要增大<filename moreinfo="none">nmap.h</filename>文件中 + PING-GROUP-SZ的值,并重新编译。另一种方法是使用列表扫描 + (<option>-sL -n -oN + <replaceable>filename</replaceable></option>),产生目标IP的列表, + 使用Perl脚本进行随机化,然后使用<option>-iL</option>提供给Nmap。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--spoof-mac <mac address,prefix,or vendor + name></option> (MAC地址哄骗) + </term> + <listitem> + + <para>要求Nmap在发送原以太网帧时使用指定的MAC地址,这个选项隐含了 + <option>--send-eth</option>选项,以保证Nmap真正发送以太网包。MAC地址有几 + 种格式。如果简单地使用字符串<quote>0</quote>,Nmap选择一个完全随机的MAC + 地址。如果给定的字符品是一个16进制偶数(使用:分隔),Nmap将使用这个MAC地址。 + 如果是小于12的16进制数字,Nmap会随机填充剩下的6个字节。如果参数不是0或16进 + 制字符串,Nmap将通过<filename moreinfo="none">nmap-mac-prefixes</filename>查找 + 厂商的名称(大小写区分),如果找到匹配,Nmap将使用厂商的OUI(3字节前缀),然后 + 随机填充剩余的3个节字。正确的<option>--spoof-mac</option>参数有, + <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>, + 和<literal moreinfo="none">Cisco</literal>.</para> + + </listitem> + </varlistentry> + </variablelist> + + </refsect1> + + <refsect1 id="man-output"> + <title>输出</title> + + <para>任何安全工具只有在输出结果时才是有价值的,如果没有通过组织和 + 易于理解的方式来表达,复杂的测试和算法几乎没有意义。Nmap提供了一些 + 方式供用户和其它软件使用,实际上,没有一种方式可以使所有人满意。 + 因此Nmap提供了一些格式,包含了方便直接查看的交互方式和方便软件处理 + 的XML格式。</para> + +<para>除了提供输出格式外,Nmap还提供了选项来控制输出的细节以及调试 +信息。输出内容可发送给标准输出或命名文件,可以追加或覆盖。输出文件还可 +被用于继续中断的扫描。</para> + +<para>Nmap提供5种不同的输出格式。默认的方式是<literal moreinfo="none">interactive output</literal>, +发送给标准输出(stdout)。<literal moreinfo="none">normal output</literal>方式类似于 +<literal moreinfo="none">interactive</literal>,但显示较少的运行时间信息 +和告警信息,这是由于这些信息是在扫描完全结束后用于分析,而不是交互式的。</para> + +<para>XML输出是最重要的输出类型,可被转换成HTML,对于程序处理非常方便, +如用于Nmap图形用户接口或导入数据库。</para> + +<para>另两种输出类型比较简单,<literal moreinfo="none">grepable +output</literal>格式,在一行中包含目标主机最多的信息;<literal moreinfo="none">sCRiPt KiDDi3 0utPUt</literal> +格式,用于考虑自己的用户 |<-r4d。</para> + +<para>交互式输出是默认方式,没有相应的命令行选项,其它四种格式选项 +使用相同的语法,采用一个参数,即存放结果的文件名。多种格式可同时 +使用,但一种格式只能使用一次。例如,在标准输出用于查看的同时,可将结 +果保存到XML文件用于程序分析,这时可以使用选项<option>-oX myscan.xml -oN myscan.nmap</option>。 +为便于描述的简化,本章使用类似于<literal moreinfo="none">myscan.xml</literal>的简单文件名, +建议采用更具有描述性的文件名。文件名的选择与个人喜好有关,建议增加 +扫描日期以及一到两个单词来描述,并放置于一个目录中。</para> + +<para>在将结果输出到文件的同时,Nmap仍将结果发送给标准输出。例如, +命令<command moreinfo="none">nmap -oX myscan.xml target</command>将 +输出XML至<filename moreinfo="none">myscan.xml</filename>,并在stdout +上打印相同的交互式结果,而此时<option>-oX</option>选项没有采用。可以 +使用连字符作为选项来改变,这使得Nmap禁止交互式输出,而是将结果打印到 +所指定的标准输出流中。因此,命令<command moreinfo="none">nmap -oX - target</command>只 +输出XML至标准输出stdout。严重错误仍然是输出到标准错误流stderr中。</para> + +<para>与其它Nmap参数不同,日志文件选项的空格(如<option>-oX</option>)和 +文件名或连字符是必需的。如果省略了标记,例如<option>-oG-</option>或 +<option>-oXscan.xml</option>,Nmap的向后兼容特点将建立 +<emphasis>标准格式</emphasis>的输出文件,相应的文件名为<filename moreinfo="none">G-</filename>和 +<filename moreinfo="none">Xscan.xml</filename>。</para> + +<para>Nmap还提供了控制扫描细节以及输出文件的添加或覆盖的选项,这些选项 +如下所述。</para> + +<variablelist><title>Nmap输出格式</title> + <varlistentry> + <term> + <option>-oN <filespec></option> (标准输出)</term> + <listitem> + <para>要求将<literal moreinfo="none">标准输出</literal>直接写入指定 + 的文件。如上所述,这个格式与<literal moreinfo="none">交互式输出</literal> + 略有不同。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oX <filespec></option> (XML输出)</term> + <listitem> + + <para>要求<literal moreinfo="none">XML输出</literal>直接写入指定 + 的文件。Nmap包含了一个文档类型定义(DTD),使XML解析器有效地 + 进行XML输出。这主要是为了程序应用,同时也可以协助人工解释 + Nmap的XML输出。DTD定义了合法的格式元素,列举可使用的属性和 + 值。最新的版本可在 <ulink url="https://nmap.org/data/nmap.dtd"/>获取。</para> + + <para>XML提供了可供软件解析的稳定格式输出,主要的计算机 + 语言都提供了免费的XML解析器,如C/C++,Perl,Python和Java。 + 针对这些语言有一些捆绑代码用于处理Nmap的输出和特定的执行程序。 + 例如perl CPAN中的<ulink url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink> + 和<ulink url="http://www.nmapparser.com">Nmap::Parser</ulink>。 + 对几乎所有与Nmap有接口的主要应用来说,XML是首选的格式。</para> + + <para>XML输出引用了一个XSL样式表,用于格式化输出结果,类似于 + HTML。最方便的方法是将XML输出加载到一个Web浏览器,如Firefox + 或IE。由于<filename moreinfo="none">nmap.xsl</filename>文件的绝对 + 路径,因此通常只能在运行了Nmap的机器上工作(或类似配置的机器)。 + 类似于任何支持Web机器的HTML文件,<option>--stylesheet</option> + 选项可用于建立可移植的XML文件。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oS <filespec></option> (ScRipT KIdd|3 oUTpuT)</term> + <listitem> + <para>脚本小子输出类似于交互工具输出,这是一个事后处理,适合于 'l33t HaXXorZ, + 由于原来全都是大写的Nmap输出。这个选项和脚本小子开了玩笑,看上去似乎是为了 + <quote>帮助他们</quote>。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oG <filespec></option> (Grep输出)</term> + <listitem> + +<para>这种方式最后介绍,因为不建议使用。XML输格式很强大,便于有经验 +的用户使用。XML是一种标准,由许多解析器构成,而Grep输届更简化。XML +是可扩展的,以支持新发布的Nmap特点。使用Grep输出的目的是忽略这些 +特点,因为没有足够的空间。</para> + +<para>然面,Grep输出仍然很常使用。它是一种简单格式,每行一个主机,可以 +通过UNIX工具(如grep、awk、cut、sed、diff)和Perl方便地查找和分解。常可 +用于在命令行上进行一次性测式。查找ssh端口打开或运行Sloaris的主机,只需 +要一个简单的grep主机说明,使用通道并通过awk或cut命令打印所需的域。</para> + +<para>Grep输出可以包含注释(每行由#号开始)。每行由6个标记的域组成,由制表符及 +冒号分隔。这些域有<literal moreinfo="none">主机</literal>,<literal moreinfo="none">端口</literal>, +<literal moreinfo="none">协议</literal>,<literal moreinfo="none">忽略状态</literal>, +<literal moreinfo="none">操作系统</literal>,<literal moreinfo="none">序列号</literal>, +<literal moreinfo="none">IPID</literal>和<literal moreinfo="none">状态</literal>。</para> + +<para>这些域中最重要的是<literal moreinfo="none">Ports</literal>,它提供 +了所关注的端口的细节,端口项由逗号分隔。每个端口项代表一个所关注的端口, +每个子域由/分隔。这些子域有:<literal moreinfo="none">端口号</literal>, +<literal moreinfo="none">状态</literal>,<literal moreinfo="none">协议</literal>, +<literal moreinfo="none">拥有者</literal>,<literal moreinfo="none">服务</literal>, +<literal moreinfo="none">SunRPCinfo</literal>和<literal moreinfo="none">版本信息</literal>。</para> + +<para>对于XML输出,本手册无法列举所有的格式,有关Nmap Grep输出的更详细信息可 +查阅<ulink url="http://www.unspecific.com/nmap-oG-output"/>。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-oA <basename></option> (输出至所有格式)</term> + <listitem><para> + 为使用方便,利用<option>-oA<replaceable>basename</replaceable></option>选项 + 可将扫描结果以标准格式、XML格式和Grep格式一次性输出。分别存放在 + <replaceable>basename</replaceable>.nmap,<replaceable>basename</replaceable>.xml和 + <replaceable>basename</replaceable>.gnmap文件中。也可以在文件名前 + 指定目录名,如在UNIX中,使用<filename moreinfo="none">~/nmaplogs/foocorp/</filename>, + 在Window中,使用<filename moreinfo="none">c:\hacking\sco</filename> on Windows。</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>细节和调试选项</title> + <varlistentry> + <term> + <option>-v</option> (提高输出信息的详细度) + </term> + <listitem> + <para>通过提高详细度,Nmap可以输出扫描过程的更多信息。 + 输出发现的打开端口,若Nmap认为扫描需要更多时间会显示估计 + 的结束时间。这个选项使用两次,会提供更详细的信息。这个选 + 项使用两次以上不起作用。</para> + + <para>大部分的变化仅影响交互式输出,也有一些影响标准和脚本 + 小子输出。其它输出类型由机器处理,此时Nmap默认提供详细的信 + 息,不需要人工干预。然而,其它模式也会有一些变化,省略一些 + 细节可以减小输出大小。例如,Grep输出中的注释行提供所有扫描 + 端口列表,但由于这些信息过长,因此只能在细节模式中输出。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-d [level]</option> (提高或设置调试级别) + </term> + <listitem> + +<para>当详细模式也不能为用户提供足够的数据时,使用调试可以得到更 +多的信息。使用细节选项(<option>-v</option>)时,可启用命令行参数 +(<option>-d</option>),多次使用可提高调试级别。也可在<option>-d</option> +后面使用参数设置调试级别。例如,<option>-d9</option>设定级别9。这是 +最高的级别,将会产生上千行的输出,除非只对很少的端口和目标进行简单扫描。</para> + +<para>如果Nmap因为Bug而挂起或者对Nmap的工作及原理有疑问,调试输出 +非常有效。主要是开发人员用这个选项,调试行不具备自我解释的特点。 +例如,<computeroutput moreinfo="none">Timeoutvals: srtt: -1 +rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 +rttvar: 14987 to: 100000</computeroutput>。如果对某行输出不明白, +可以忽略、查看源代码或向开发列表(nmap-dev)求助。有些输出行会有自 +我解释的特点,但随着调试级别的升高,会越来越含糊。</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--packet-trace</option> (跟踪发送和接收的报文) + </term> + <listitem> + <para>要求Nmap打印发送和接收的每个报文的摘要,通常用于 + 调试,有助于新用户更好地理解Nmap的真正工作。为避免输出过 + 多的行,可以限制扫描的端口数,如<option>-p20-30</option>。 + 如果只需进行版本检测,使用<option>--version-trace</option>。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--iflist</option> (列举接口和路由) + </term> + <listitem> + <para>输出Nmap检测到的接口列表和系统路由,用于调试路由 + 问题或设备描述失误(如Nmap把PPP连接当作以太网对待)。</para> + </listitem> + </varlistentry> + + </variablelist> + + <variablelist><title>其它输出选项</title> + + <varlistentry> + <term> + <option>--append-output</option> (在输出文件中添加) + </term> + <listitem> + <para>当使用文件作为输出格式,如<option>-oX</option>或<option>-oN</option>, + 默认该文件被覆盖。如果希望文件保留现有内容,将结果添加在现 + 有文件后面,使用<option>--append-output</option>选项。所有指 + 定的输出文件都被添加。但对于XML(<option>-oX</option>)扫描输出 + 文件无效,无法正常解析,需要手工修改。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--resume <filename></option> (继续中断的扫描) + </term> + <listitem> + + <para>一些扩展的Nmap运行需要很长的时间 -- 以天计算,这类扫描 + 往往不会结束。可以进行一些限制,禁止Nmap在工作时间运行,导致 + 网络中断、运行Nmap的主机计划或非计划地重启、或者Nmap自己中断。 + 运行Nmap的管理员可以因其它原因取消运行,按下<keycap moreinfo="none">ctrl-C</keycap> + 即可。从头开始启动扫描可能令人不快,幸运的是,如果标准扫描 + (<option>-oN</option>)或Grep扫描(<option>-oG</option>)日志 + 被保留,用户可以要求Nmap恢复终止的扫描,只需要简单地使用选项 + <option>--resume</option>并说明标准/Grep扫描输出文件,不允许 + 使用其它参数,Nmap会解析输出文件并使用原来的格式输出。使用方式 + 如<command moreinfo="none">nmap --resume <replaceable>logfilename</replaceable></command>。 + Nmap将把新地结果添加到文件中,这种方式不支持XML输出格式,原因是 + 将两次运行结果合并至一个XML文件比较困难。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--stylesheet <path or URL></option> (设置XSL样式表,转换XML输出) + </term> + <listitem> + <para>Nmap提从了XSL样式表<filename moreinfo="none">nmap.xsl</filename>,用于查看 + 或转换XML输出至HTML。XML输出包含了一个<literal moreinfo="none">xml-stylesheet</literal>, + 直接指向<filename moreinfo="none">nmap.xml</filename>文件, + 该文件由Nmap安装(或位于Windows当前工作目录)。在Web浏览器 + 中打开Nmap的XML输出时,将会在文件系统中寻找<filename moreinfo="none">nmap.xsl</filename>文件, + 并使用它输出结果。如果希望使用不同的样式表,将它作为 + <option>--stylesheet</option>的参数,必段指明完整的路 + 径或URL,常见的调用方式是<option>--stylesheet https://nmap.org/data/nmap.xsl</option>。 + 这告诉浏览器从Insecire.Org中加载最新的样式表。这使得 + 没安装Nmap(和<filename moreinfo="none">nmap.xsl</filename>) + 的机器中可以方便地查看结果。因此,URL更方便使用,本地文件系统 + 的nmap.xsl用于默认方式。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--no-stylesheet</option> (忽略XML声明的XSL样式表) + </term> + <listitem> + <para>使用该选项禁止Nmap的XML输出关联任何XSL样式表。 + <literal moreinfo="none">xml-stylesheet</literal>指示被忽略。</para> + </listitem> + </varlistentry> + + + + </variablelist> + </refsect1> + + <refsect1 id="man-misc-options"> + <title>其它选项</title> + <para>本节描述一些重要的(和并不重要)的选项,这些选项 + 不适合其它任何地方。</para> + + <variablelist> + <varlistentry> + <term> + <option>-6</option> (启用IPv6扫描) + </term> + <listitem> + + <para>从2002年起,Nmap提供对IPv6的一些主要特征的支持。ping扫描(TCP-only)、 + 连接扫描以及版本检测都支持IPv6。除增加<option>-6</option>选项外, + 其它命令语法相同。当然,必须使用IPv6地址来替换主机名,如 + <literal moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>。 + 除<quote>所关注的端口</quote>行的地址部分为IPv6地址。</para> + + <para>IPv6目前未在全球广泛采用,目前在一些国家(亚洲)应用较多, + 一些高级操作系统支持IPv6。使用Nmap的IPv6功能,扫描的源和目 + 的都需要配置IPv6。如果ISP(大部分)不分配IPv6地址,Nmap可以采用 + 免费的隧道代理。一种较好的选择是BT Exact,位于<ulink url="https://tb.ipv6.btexact.com/"/>。 + 此外,还有Hurricane Electric,位于<ulink url="http://ipv6tb.he.net/"/>。6to4隧道是 + 另一种常用的免费方法。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-A</option> (激烈扫描模式选项) + </term> + <listitem> + <para>这个选项启用额外的高级和高强度选项,目前还未确定代表 + 的内容。目前,这个选项启用了操作系统检测(<option>-O</option>) + 和版本扫描(<option>-sV</option>),以后会增加更多的功能。 + 目的是启用一个全面的扫描选项集合,不需要用户记忆大量的 + 选项。这个选项仅仅启用功能,不包含用于可能所需要的 + 时间选项(如<option>-T4</option>)或细节选项(<option>-v</option>)。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--datadir <directoryname></option> (说明用户Nmap数据文件位置) + </term> + <listitem> + <para>Nmap在运行时从文件中获得特殊的数据,这些文件有 + <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>和 + <filename moreinfo="none">nmap-os-fingerprints</filename>。Nmap首先 + 在<option>--datadir</option>选项说明的目录中查找这些文件。 + 未找到的文件,将在BMAPDIR环境变量说明的目录中查找。 + 接下来是用于真正和有效UID的<filename moreinfo="none">~/.nmap</filename> + 或Nmap可执行代码的位置(仅Win32);然后是是编译位置, + 如<filename moreinfo="none">/usr/local/share/nmap</filename> + 或<filename moreinfo="none">/usr/share/nmap</filename>。 + Nmap查找的最后一个位置是当前目录。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-eth</option> (使用原以太网帧发送) + </term> + <listitem> + <para>要求Nmap在以太网(数据链路)层而不是IP(网络层)发送 + 报文。默认方式下,Nmap选择最适合其运行平台的方式,原套接 + 字(IP层)是UNIX主机最有效的方式,而以太网帧最适合Windows操作 + 系统,因为Microsoft禁用了原套接字支持。在UNIX中,如果没有其 + 它选择(如无以太网连接),不管是否有该选项,Nmap都使用原IP包。 + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--send-ip</option> (在原IP层发送) + </term> + <listitem> + <para>要求Nmap通过原IP套接字发送报文,而不是低层的以 + 太网帧。这是<option>--send-eth</option>选项的补充。 + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>--privileged</option> (假定用户具有全部权限) + </term> + <listitem> + <para>告诉Nmap假定其具有足够的权限进行源套接字包发送、 + 报文捕获和类似UNIX系统中根用户操作的权限。默认状态下, + 如果由getuid()请求的类似操作不为0,Nmap将退出。 + <option>--privileged</option>在具有Linux内核性能的类似 + 系统中使用非常有效,这些系统配置允许非特权用户可以进行 + 原报文扫描。需要明确的是,在其它选项之前使用这些需要权 + 限的选项(SYN扫描、操作系统检测等)。Nmap-PRIVILEGED变量 + 设置等价于<option>--privileged</option>选项。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-V</option>; <option>--version</option> (打印版本信息) + </term> + <listitem> + <para>打印Nmap版本号并退出。</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-h</option>; <option>--help</option> (打印帮助摘要面) + </term> + <listitem> + <para>打印一个短的帮助屏幕,列出大部分常用的 + 命令选项,这个功能与不带参数运行Nmap是相同的。</para> + </listitem> + </varlistentry> + + </variablelist> + </refsect1> + + <refsect1 id="man-runtime-interaction"> + <title>运行时的交互</title> + + <para><remark>Nmap目前还不具有这个功能,本节内容可能会增加或删除。</remark></para> + + <para>在执行Nmap时,所有的键盘敲击都被记录。这使得用户可以与 + 程序交互而不需要终止或重启。特定的键可改变选项,其它键会输出 + 一个有关扫描的状态消息。约定如下,<emphasis>小写字母增加</emphasis> + 打印量,<emphasis>大写字母减少</emphasis>打印量。</para> + <variablelist> + <varlistentry> + <term> + <option>v</option> / <option>V</option> + </term> + <listitem> + <para>增加 / 减少细节</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>d</option> / <option>D</option> + </term> + <listitem> + <para>提高 / 降低调试级别</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <option>p</option> / <option>P</option> + </term> + <listitem> + <para>打开/ 养老报文跟踪</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + 其它 + </term> + <listitem> + <para>打印的信息类似于:</para> + <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up), + 5 undergoing Service Scan</para> + <para>Service scan Timing: About 28.00% done; ETC: 16:18 + (0:00:15 remaining)</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 id="man-examples"> + <title>实例</title> + <para>下面给出一些实例,简单的、复杂的到深奥的。为更具体,一 + 些例子使用了实际的IP地址和域名。在这些位置,可以使用<emphasis>你自己网络</emphasis> + 的地址/域名替换。注意,扫描其它网络不一定合法,一些网络管理员不愿看到 + 未申请过的扫描,会产生报怨。因此,先获得允许是最好的办法。</para> + + <para>如果是为了测试,<literal moreinfo="none">scanme.nmap.org</literal> + 允许被扫描。但仅允许使用Nmap扫描并禁止测试漏洞或进行DoS攻击。为 + 保证带宽,对该主机的扫描每天不要超过12次。如果这个免费扫描服务被 + 滥用,系统将崩溃而且Nmap将报告<computeroutput moreinfo="none">解析 + 指定的主机名/IP地址失败:scanme.nmap.org</computeroutput>。这些免 + 费扫描要求也适用于<literal moreinfo="none">scanme2.nmap.org</literal>、 + <literal moreinfo="none">scanme3.nmap.org</literal>等等,虽然这些 + 主机目前还不存在。</para> + + <para> + <userinput moreinfo="none">nmap -v scanme.nmap.org</userinput> + </para> + <para>这个选项扫描主机<literal moreinfo="none">scanme.nmap.org</literal>中 + 所有的保留TCP端口。选项<option>-v</option>启用细节模式。</para> + <para> + <userinput moreinfo="none">nmap -sS -O scanme.nmap.org/24</userinput> + </para> + <para>进行秘密SYN扫描,对象为主机Saznme所在的<quote>C类</quote>网段 + 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 + 和操作系统检测,这个扫描需要有根权限。</para> + <para> + <userinput moreinfo="none">nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127</userinput> + </para> + + <para>进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 + 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 + 打开,将使用版本检测来确定哪种应用在运行。</para> + + <para> + <userinput moreinfo="none">nmap -v -iR 100000 -P0 -p 80</userinput> + </para> + + <para>随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 + 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 + 此使用<option>-P0</option>禁止对主机列表。 + </para> + + <para> + <userinput moreinfo="none">nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20</userinput> + </para> + <para>扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。 + </para> + + <para> + <userinput moreinfo="none">host -l company.com | cut -d -f 4 | nmap -v -iL + -</userinput> + </para> + + <para>进行DNS区域传输,以发现company.com中的主机,然后将IP地址提供给 + Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。</para> + + </refsect1> + + <refsect1 id="man-bugs"> + <title>Bugs</title> + + <para>和作者一样,Nmap也不是完美的,但可以通过发送Bug报告甚至编写 + 补丁使其更加完善。如果Nmap不能满足要求,首先从<ulink url="https://nmap.org/"/> + 升级最新版本。如果总问题仍然存在,需要进行调查以确定问题是否 + 已经被解决。在<ulink url="https://seclists.org/"/>尝试搜索出错消息或 + 浏览Nmap-dev档案,以及仔细阅读使用手册。如果问题还是不能解决,发送 + Bug报告至<email>dev@nmap.org</email>。在报告中包含所有 + 有关问题的信息,以及所使用的Nmap版本、操作系统版本。问题报告以及 + Nmap的使用问题发送给dev@nmap.org比直接发送给Gyodor能更好回答。</para> + + <para>解决Bug的代码补丁比Bug报告更受欢迎,在<ulink url="https://nmap.org/data/HACKING"/> + 可获得建立补丁文件的基本指令。补丁可发送给nmap-dev(建议) + 或直接发给Fyodor。</para> + </refsect1> + + <refsect1 id="man-author"> + <title>作者</title> + <para>Fyodor + <email>fyodor@nmap.org</email> + (<ulink url="http://www.insecure.org"/>) + </para> + <para>译者:Fei Yang + <email>fyang1024@gmail.com</email>, + Lei Li + <email>lilei_721@6611.org</email> + </para> + + <para>近年来,上百的人们为Nmap作出了极有价值的贡献,详细信息参见 + 随Nmap一起发布的<filename moreinfo="none">CHANGELOG</filename>文件, + 也可查看<ulink url="https://nmap.org/nmap_changelog.html"/>。 + </para> + + </refsect1> + + <refsect1 id="man-legal"> + <title>法律事项(版权、许可证、担保(缺)、出口限制)</title> + +<refsect2 id="translation-disclaimer"><title>Unofficial Translation Disclaimer / 非官方翻译声明</title> + +<para>This is an unnofficial translation of the <ulink +url="https://nmap.org/man/man-legal.html">Nmap license +details</ulink> into [Finnish]. It was not written by Insecure.Com +LLC, and does not legally state the distribution terms for Nmap -- +only the original English text does that. However, we hope that this +translation helps [Finish] speakers understand the Nmap license +better.</para> + +<para> +这是<ulink url="https://nmap.org/man/man-legal.html">Nmap许可证明细 +</ulink>的非官方的中文译本。它并非由Insecure.Com LLC编写,不是有法律效力的Nmap发布条款-- +只有原英文版具有此法律效力。然而,我们希望该译本帮助中文用户更好地理解Nmap许可证。 +</para> +</refsect2> + +<para>在<ulink url="https://nmap.org/"/>可获得Nmap的最新版本。 +</para> +<para>Nmap安全扫描器(C) 1996-2005是Insecure.Com LLC的产品。 Nmap也是 +Insecure.Com LLC的注册商标。这是一个免费软件,按照免费软件联盟V2.0的 +GNU普通公共许可证的规定,可以重新发布和/或修改。这保证用户在一定的条件 +下可以使用、修改和重新发布此软件。如果需要将Nmap嵌入专用软件,我们 +会销售相应的许可证(联系 <email>sales@insecure.com</email>)。很多安全 +扫描器厂商已经获得了Nmap技术的许可证,如主机发现、端口扫描、OS系统 +检测以及服务/版本检测等技术。 +</para> + +<para>注意,GPL对<quote>衍生工作</quote>有重要的限制,但未给出有关的详细 +描述。为避免误解,我们认为如果某个应用进行以下工作时被认为是该许可证的 +<quote>衍生工作</quote>: +</para> + +<itemizedlist> +<listitem><para>集成Nmap的源代码</para></listitem> +<listitem><para>读取或包含Nmap拷贝权的数据文件,如 + <filename moreinfo="none">nmap-os-fingerprints</filename>或 + <filename moreinfo="none">nmap-service-probes</filename>.</para></listitem> +<listitem><para>执行Nmap并解析结果(与之相反的是,shell执行或执行菜单 +应用,仅仅显示原始Nmap输出,则不是衍生工作。)</para></listitem> +<listitem><para>将Nmap集成/包含/组合至一个专用的可执行安装程序,如由 + InstallShield生成的安装程序。 + </para></listitem> +<listitem><para>将Nmap链接到进行上述工作的库或程序中。 +</para></listitem> +</itemizedlist> + +<para>名词<quote>Nmap</quote>包含了Nmap的任何部分以及衍生工作,因此不仅限于上述 +内容。上述内容使用了一些常见的例子来说明衍生工作。这些限制仅适 +用于真正重新发布Nmap时。例如,不禁止开发和销售Nmap的前端,可以任意发布, +但必须说明从<ulink url="https://nmap.org/"/>下载Nmap。 +</para> + +<para>这些条款并不是在GPL之上增加限制,只是为了明确说明与Nmap(有GPL许可证) +产品有关的<quote>衍生工作</quote>。这类似于Linus Torvalds对Linux内核模 +块<quote>衍生工作</quote>的解释。我们的解释仅适用于Nmap - 不适合其它 +GPL产品。 +</para> + +<para>如果对有GPL许可证限制的Nmap应用于非GPL工作有任何问题,我们将提供 +相关的帮助。如上述条款所述,我们提供了可选的许可证以集成Nmap到专用应用和设备, +这些合同已被销售给多个安全厂商,通常都包含了永久的许可证以及提供优先支 +持、更新,并资助可持续的Nmap技术开发。请发送邮件至<email>sales@insecure.com</email> +以获得更多信息。 +</para> + +<para>作为GPL的一个特殊例外,Insecure.Com LLC授权许可链接该程序的代码 +至任何版本的OpenSSL库,这个库的发布符合等同于Copying.OpenSSL文件中包含 +的许可证,它的发布同时包含了两个内容。除OpenSSL外,在任何方面都必须遵 +守GNU GPL。如果改变这个文件,就可能超出该文件的版本,但并不对此负责。 +</para> + +<para>如果收到书面的许可证协定或合同文件,与上述条款不同时,该可选的 +许可证协定具有优先权。 +</para> + +<para>Nmap软件提供源代码,这是因为我们认为用户有权在运行之前知道程序的工作 +内容,同时也使用户可以检查软件的漏洞(目前还未发现)。 +</para> + +<para>源代码还允许被移植到新的平台、修改Bug以及增加新功能。鼓励用户 +向<email>fyodor@nmap.org</email> 发送更新,以并入正式的发布中。 +发送这些更新至Fyodor或Insecure.Org开发列表,表明允许Fyodor和Insecure.Com LLC +具有无限止的、非独有的权限来使用、修改和重新定义这些代码的许可证。 +Nmap将一直以开放代码的方式提供,由于无法进行代码的许可证重新定义从而可能 +导致了对其它开放软件项目的破坏问题(如KDEt NASM),这一点很重要。 +偶尔我们会向第三方提供重新定义的代码许可证。如果希望为自己的贡献说明 +一个特定的许可证条件,在发送时指明。 +</para> + +<para>本程序的发布只是为了应用,不提供任何担保,也不隐含任何有关 +特定目的的商业或适用性担保。在<ulink url="http://www.gnu.org/copyleft/gpl.html"/> +的GNU通用公共许可证或Nmap中包含的COPYING文件中可查看更多细节。 +</para> + +<para>还需要注意,Nmap已经导致了一些编写拙劣的应用程序、TCP/IP +栈甚至操作系统的崩溃。<emphasis remap="B">Nmap不能用于破坏关键系统</emphasis>, +除非准备好系统受到崩溃的影响。Nmap可能会造成系统或网络的崩溃,但 +我们不对Nmap可能产生的破坏和问题负任何责任。 +</para> + +<para>由于崩溃的风险以及一些攻击者在攻击系统前使用Nmap进行检测, +因此一些管理员对此感到不安,报怨他们的系统受到扫描。因此,建议在扫描 +之间获得允许,哪怕是对一个网络很轻微的扫描。</para> + +<para>为安全起见,不要将Nmap安装在有特殊权限的环境(如suid root)。</para> + +<para>这个产品包含了由<ulink url="http://www.apache.org">Apache Software Foundation</ulink>开发的 +软件,发布时还包含了<ulink url="http://www.tcpdump.org">Libpcap</ulink> +可移植包捕获器的改进版本。Windows版的Nmap使用了源于<ulink url="http://www.winpcap.org">WinPcap library</ulink> +的libpcap。正常的描述支持由<ulink url="http://www.pcre.org">PCRE library</ulink> +提供,这也是一个开放源码软件,由Philip Hazel编写。特定的原网络功能使用 +了<ulink url="http://libdnet.sourceforge.net">Libdnet</ulink>网络库, +由Dug Song编写,Nmap发布时带有一个改进版本。Nmap可以与 +<ulink url="http://www.openssl.org">OpenSSL加密工具库</ulink>链接用于SSL版本检测。 +所有本段描述的第三方软件在遵守BSD风格软件许可证下均可以免费发布。 +</para> + +<para>美国出口控制:Insecure.Com LLC认为Nmap归入美国ECCN(出口控制分 +类编码) 5D922。这个分类称为<quote>不受5D002控制的信息安全软件</quote>。 +这个分类的唯一限制是AT(反恐怖主义),这个限制几乎适用于所有的产品,禁 +止出口到一些国家,如伊朗和朝鲜。因此,出口Nmap不需要任何特殊的许可 +证、允许或其它政府授权。 +</para> + + </refsect1> +</refentry> + +</article> diff --git a/docs/man-xlate/nmap-pl.1 b/docs/man-xlate/nmap-pl.1 new file mode 100644 index 0000000..7a0bf87 --- /dev/null +++ b/docs/man-xlate/nmap-pl.1 @@ -0,0 +1,1710 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "Autor" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 05/17/2023 +.\" Manual: Opis programu Nmap +.\" Source: Nmap +.\" Language: Polish +.\" +.TH "NMAP" "1" "05/17/2023" "Nmap" "Opis programu Nmap" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAZWA" +nmap \- Narzędzie do eksploracji sieci i skaner portów/zabezpieczeń +.SH "STRESZCZENIE" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fITyp\ Skanowania\fR...] [\fIOpcje\fR] {\fIspecyfikacja\ celu\fR} +.SH "OPIS" +.PP +Nmap (ang\&. +„Network Mapper\(rq) jest narzędziem open source do eksploracji sieci i audytów bezpieczeństwa\&. Został zaprojektowany do szybkiego skanowania dużych sieci, ale również działa dobrze w stosunku do pojedynczych adresów\&. Nmap wykorzystuje niskopoziomowe pakiety IP do wykrywania które adresy są dostępne w sieci, jakie udostępniają usługi (nazwa aplikacji i wersja), na jakich systemach operacyjnych pracują (wersja systemu), jakie typy systemów zaporowych (firewall) są wykorzystywane i dziesiątek innych cech\&. Nmap jest powszechnie wykorzystywany do audytów bezpieczeństwa, również wielu administratorów sieci i systemów wykorzystuje go wykonywania rutynowych czynności, takich jak inwentaryzacja zasobów sieci, zarządzanie aktualizacjami oprogramowania i monitorowania systemów oraz ich czasu działania (uptime)\&. +.PP +Wynikiem działania Nmapa jest lista przeskanowanych adresów z dodatkowymi informacjami zależnymi od wykorzystanych opcji\&. Jedną z głównych informacji jest +„lista interesujących portów\(rq\&. Zawiera ona numery portów wraz z protokołami, nazwami usługi i wykrytym stanem\&. Stan może zostać opisany jako +otwarty, +filtrowany, +zamknięty, lub +niefiltrowany\&. Otwarty oznacza, że aplikacja na badanym adresie oczekuje na połączenia/pakiety przychodzące na ten port\&. +Filtrowany +oznacza, że system zaporowy lub inne urządzenie blokujące ruch sieciowy nie dopuszcza komunikacji do tego portu i z tego powodu Nmap nie jest w stanie określić czy badany port jest +otwarty +czy +zamknięty\&. +Zamknięty +port nie posiada aplikacji, która obsługuje komunikację sieciową\&. Porty sklasyfikowane jako +niefiltrowane +odpowiadały na zapytania Nmapa, jednak nie było możliwe określenie, czy były one otwarte czy zamknięte\&. Nmap raportuje kombinacje stanów +otwarty|filtrowany +i +zamknięty|filtrowany +jeśli nie jest w stanie określić, który z dwóch podanych stanów lepiej opisuje stan portu\&. Lista portów może również zawierać informacje o wykrytych wersjach oprogramowania, jeśli została włączona detekcja wersji\&. Jeśli została wybrana opcja skanowania dostępnych protokołów (\fB\-sO\fR), Nmap zamiast listy portów dostarczy informacji na temat dostępności poszczególnych protokołów IP\&. +.PP +Poza listą interesujących portów, Nmap może dostarczyć dodatkowych informacje na temat badanych adresów, takich jak odwrotne nazwy DNS, prawdopodobne systemy operacyjne, typu urządzeń i adresy sprzętowe MAC\&. +.PP +Typowy wynik skanowania Nmapa jest przedstawiony w +Przykład 1, „Przykładowe wyniki skanowania Nmapa\(rq\&. W tym przypadku wykorzystano tylko opcję +\fB\-A\fR, wykrywającą wersje systemu operacyjnego, +\fB\-T4\fR +dla szybszego działania i dwa adresy docelowe\&. +.PP +\fBPrzykład 1. Przykładowe wyniki skanowania Nmapa\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org playground + +Starting nmap ( https://nmap\&.org/ ) +Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X +OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11 +Uptime 33\&.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground\&.nmap\&.org (192\&.168\&.0\&.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios\-ssn +389/tcp open ldap? +445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds +1002/tcp open windows\-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper +5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3\&.8) +MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds + +.fi +.if n \{\ +.RE +.\} +.PP +Najnowszą wersję Nmapa można pobrać z +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Najnowsza wersja dokumentacji man jest dostępna pod adresem +\m[blue]\fB\%https://nmap.org/man/\fR\m[]\&. +.SH "UWAGI DO TŁUMACZENIA" +.PP +Przemysław Galczewski +<sako(at)avet\&.com\&.pl> +(\m[blue]\fB\%http://www.avet.com.pl\fR\m[]) +.PP +Dokument ten zawiera nieoficjalne polskie tłumaczenie +\m[blue]\fBoryginalnej dokumentacji Nmapa\fR\m[]\&\s-2\u[1]\d\s+2 +w wersji 2991\&. Dołożyłem wszelkich starań, aby było ono jak najbardziej zbliżone do oryginału, a przy tym fachowe i zrozumiałe\&. Nie jest przy tym gwarantowane, że jest ono tak samo dokładne i aktualne jak oficjalna wersja angielska\&. Dokument ten może być modyfikowany i rozpowszechniany na zasadach +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. Polska wersja tego dokumentu jest dostępna w formatach +\m[blue]\fBHTML\fR\m[]\&\s-2\u[3]\d\s+2, +\m[blue]\fBNROFF\fR\m[]\&\s-2\u[4]\d\s+2 +i +\m[blue]\fBXML\fR\m[]\&\s-2\u[5]\d\s+2\&. Wszelkie uwagi dotyczące tłumaczenia proszę kierować bezpośrednio do mnie\&. +.SH "SKRÓCONA LISTA OPCJI" +.PP +Skrócona lista opcji jest wyświetlana przy uruchomieniu Nmapa bez dodatkowych parametrów, a jej najnowsza wersja jest zawsze dostępna pod adresem +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]\&. Skrócona lista pozwala łatwiej zapamiętać najpopularniejsze opcje, ale nie zastąpi wgłębienia sie w resztę tej dokumentacji\&. Wiele z pozostałych opcji nie jest nawet zawartych na liście skróconej\&. +.PP +.if n \{\ +.RS 4 +.\} +.nf +Użycie: nmap [Typ(y) skanowania] [Opcje] {specyfikacja celu} +SPECYFIKACJA CELU: + Można podać nazwy hostów, adresy IP, sieci, itp\&. + Przykłady: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\&.0\-255\&.1\-254 + \-iL <plik_wejściowy>: Odczytanie listy hostów/sieci z pliku + \-iR <ilość hostów>: Wybranie losowych adresów + \-\-exclude <host1[,host2][,host3],\&.\&.\&.>: Wyłączenie hostów/sieci + \-\-excludefile <plik_wyłączeń>: Wyłączenie listy hostów/sieci z pliku +WYKRYWANIE HOSTÓW: + \-sL: Lista skanowania \- tylko wyświetla listę hostów do skanowania + \-sP: Skanowanie Ping \- tylko wykrywanie dostępności hostów + \-P0: Traktuj wszystkie hosty jako dostępne \- pomijanie wykrywania + \-PS/PA/PU [lista_portów]: Wykrywanie TCP SYN/ACK lub UDP na wybranych portach + \-PE/PP/PM: Zykrywanie za pomocą ICMP echo, timestamp, zapytania o maskę sieci + \-n/\-R: Nie używaj zapytań DNS/Zawsze odpytuj DNS [domyślnie: czasami] + \-\-dns\-servers <serv1[,serv2],\&.\&.\&.>: Używaj określonych serwerów DNS + \-\-system\-dns: Używaj systemowych ustawień DNS +TECHNIKI SKANOWANIA: + \-sS/sT/sA/sW/sM: Skanowania TCP SYN/Connect()/ACK/Window/Maimon + \-sN/sF/sX: Skanowania TCP Null, FIN i Xmas + \-\-scanflags <flagi>: Ręczne narzucanie flag TCP + \-sI <host zombie[:port]>: Idlescan + \-sO: Skanowanie protokołów IP + \-b <host pośredni ftp>: Skanowanie FTP bounce +SPECYFIKACJA PORTÓW I KOLEJNOŚCI SKANOWANIA: + \-p <zakres portów>: Skanuj tylko podane porty + Przykład: \-p22; \-p1\-65535; \-p U:53,111,137,T:21\-25,80,139,8080 + \-F: Szybkie skanowanie \- tylko porty zawarte w pliku nmap\-services + \-r: Skanuj porty kolejno \- wyłączenie losowania kolejności +DETEKCJA USŁUG/WERSJI: + \-sV: Wykrywaj wersję usługi na otwartych portach + \-\-version\-intensity <poziom>: Od 0 (tylko niektóre) do 9 (Używaj wszystkich testów) + \-\-version\-light: Limituj do najpopularniejszych testów (poziom 2) + \-\-version\-all: Używaj wszystkich testów (poziom 9) + \-\-version\-trace: Pokazuj dokładne informacje podczas skanowania (do usuwania błędów) +DETEKCJA OS: + \-O: Włączenie wykrywania systemu operacyjnego + \-\-osscan\-limit: Limitowanie wykrywania OS do obiecujących hostów + \-\-osscan\-guess: Zgaduj wersję OS bardziej agresywnie +WYDAJNOŚĆ I ZALEŻNOŚCI CZASOWE: + \-T[0\-5]: Ustaw szablon (wyższy jest szybszy) + \-\-min\-hostgroup/max\-hostgroup <rozmiar>: Rozmiary grup do równoległego skanowania + \-\-min\-parallelism/max\-parallelism <ilość_prób>: Zrównoleglenie testów + \-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msec>: Specyfikuje czas testów + \-\-max\-retries <ilość>: Ustala ilość możliwych powtórzeń testu + \-\-host\-timeout <msec>: Pomijaj po zadanym czasie + \-\-scan\-delay/\-\-max\-scan\-delay <msec>: Ustalenie opóźnienia pomiędzy testami +OPCJE FIREWALL/IDS: + \-f; \-\-mtu <wartość>: fragmentacja pakietów (opcjonalnie z podanym MTU) + \-D <decoy1,decoy2[,ME],\&.\&.\&.>: Ukrywaj skanowanie za pomocą innych hostów + \-S <Adres_IP>: Podmieniaj adres nadawcy + \-e <interfejs>: Używaj podanego interfejsu + \-g/\-\-source\-port <portnum>: Używaj podanego portu źródłowego + \-\-data\-length <num>: Dodawaj losowe dane do wysyłanych pakietów + \-\-ttl <wartość>: Ustaw czas życia pakietów + \-\-spoof\-mac <adres mac/prefix/producent>: Podmieniaj adres MAC + \-\-badsum: Wysyłaj pakiety z nieprawidłową sumą kontrolną TCP/UDP +WYJŚCIE: + \-oN/\-oX/\-oS/\-oG <plik>: Zapisz wyniki w podanym pliku normalnie, w XML, s|<rIpt kIddi3 + i formacie grepowalnym + \-oA <nazwabazowa>: Zapisz wyniki w trzech formatach jednocześnie + \-v: Podwyższenie poziomu raportowania (podwójne użycie powiększa efekt) + \-d[poziom]: Ustaw lub podwyższ poziom debugowania (do najwyższego 9) + \-\-packet\-trace: Pokazuj wszystkie wysyłane i odbierane pakiety + \-\-iflist: Wyświetl listę interfejsów i routingu (do wykrywania błędów) + \-\-append\-output: Dołącz nowe wyniki do już istniejących w pliku + \-\-resume <nazwapliku>: Wznów przerwane skanowanie + \-\-stylesheet <ścieżka/URL>: plik styli XSL do konwersji wyników w XML do formatu HTML + \-\-webxml: Domyślny styl z Insecure\&.Org + \-\-no\-stylesheet: Wyłączenie dodawania styli do plików z wynikami XML +RÓŻNE: + \-6: Włączenie skanowania IPv6 + \-A: Włączenie detekcji OS i wersji usług + \-\-datadir <katalog>: Podanie katalogu z plikami danych Nmapa + \-\-send\-eth/\-\-send\-ip: Wysyłaj za pomocą ramek ethernet lub pakietów IP + \-\-privileged: Zakładaj że użytkownik ma odpowiednie uprawnienia + \-V: Wyświetl numer wersji Nmapa + \-h: Wyświetl stronę pomocy +PRZYKŁADY: + nmap \-v \-A scanme\&.nmap\&.org + nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8 + nmap \-v \-iR 10000 \-P0 \-p 80 +.fi +.if n \{\ +.RE +.\} +.sp +.SH "SPECYFIKACJA CELU" +.PP +Wszystko co nie jest opcją Nmapa w parametrach wywołania (lub jej argumentem) jest traktowane jako specyfikacja celu skanowania\&. Najprostszym przypadkiem jest sam adres do przeskanowania\&. +.PP +Czasami chcesz przeskanować całą sieć, dlatego Nmap obsługuje format CDIR\&. Możesz dołączyć do adresu /\fIilośćbitów\fR +i nmap przeskanuje każdy adres, który zawiera się w podanym zakresie\&. Na przykład, 192\&.168\&.10\&.0/24 przeskanuje 256 adresów pomiędzy 192\&.168\&.10\&.0 (binarnie: +11000000 10101000 00001010 00000000) i 192\&.168\&.10\&.255 (binarnie: +11000000 10101000 00001010 11111111) włącznie\&. Podanie 192\&.168\&.10\&.40/24 spowoduje dokładnie takie samo zachowanie\&. Załóżmy, że host scanme\&.nmap\&.org ma adres 205\&.217\&.153\&.62, podanie scanme\&.nmap\&.org/16 spowoduje przeskanowanie 65,536 adresów IP pomiędzy 205\&.217\&.0\&.0 i 205\&.217\&.255\&.255\&. Najmniejszą dopuszczalna wartość to /1, co stanowi połowę Internetu\&. Największa wartość to 32, która oznacza skanowanie pojedynczego adresu IP\&. +.PP +Notacja CIDR jest krótka i zwięzła, jednak nie zawsze wystarczająco elastyczna\&. Na przykład, chcesz przeskanować 192\&.168\&.0\&.0/16 z pominięciem wszystkich adresów kończących się \&.0 i \&.255, ponieważ są one najczęściej adresami typu broadcast\&. Nmap obsługuje to poprzez podawanie zakresów adresów za pomocą oktetów\&. Zamiast podawać normalny adres IP, możesz podać listę adresów lub zakresów oddzieloną przecinkami\&. Na przykład 192\&.168\&.0\-255\&.1\-254 pominie wszystkie adresy kończące się \&.0 lub \&.255\&. Zakresy nie są limitowane do końcowych oktetów: podanie 0\-255\&.0\-255\&.13\&.37 pozwoli na przeskanowanie wszystkich adresów kończących się 13\&.37\&. Tego typu skanowania mogą być przydatne podczas przeprowadzania badań Internetu\&. +.PP +Adresy IPv6 mogą być podawane jedynie w pełnej formie IPv6 lub nazwy hosta\&. Zapis z wykorzystaniem CIDR i zakresów nie jest obsługiwany przy IPV6, jednak rzadko byłoby to przydatne\&. +.PP +Nmap akceptuje podawanie wielu hostów w linii poleceń i nie muszą one być tego samego typu\&. Komenda +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.0\-255\fR +zrobi to co powinna\&. +.PP +Zwykle adresy są podawane w linii poleceń, jednak poniższe opcje pozwalają na alternatywną specyfikację celu: +.PP +\fB\-iL <plik_wejściowy>\fR (Odczytanie z pliku) +.RS 4 +odczytuje specyfikację celu z pliku +\fIplik\-wejściowy\fR\&. Podawanie długiej listy adresów z linii poleceń jest dosyć niewygodne\&. Na przykład Twój serwer DHCP może posiadać listę 10,000 aktualnie dzierżawionych adresów, które chcesz przeskanować\&. Możliwe również, że chcesz przeskanować wszystkie adresy IP z +\fIwykluczeniem\fR +aktualnie dzierżawionych aby uzyskać listę nielegalnie przypisanych adresów statycznych\&. Po prostu wygeneruj listę adresów i podaj ją Nmapowi jako argument do parametru +\fB\-iL\fR\&. Poszczególne definicje mogą być zgodne z dowolnym formatem akceptowanym przez Nmapa w linii poleceń (adres IP, nazwa, CIDR, IPv6 lub zakres)\&. Każdy wpis musi być oddzielony od następnego za pomocą jednej (lub wiecej) spacji, znaków tabulacji lub znaków nowej linii\&. Możesz również podać znak (\-) zamiast nazwy pliku jeśli chesz aby Nmap pobrał adresy ze standardowego wejścia zamiast z pliku\&. +.RE +.PP +\fB\-iR <ilość hostów>\fR (Wybierz losowe cele) +.RS 4 +Do przeprowadzania badań Internetu, możesz używać wyboru losowych adresów\&. Argument +\fIilość hostów\fR +informuje Nmapa ile losowych adresów ma wygenerować\&. Adresy prywatne, typu multicast lub niewykorzystywane są automatycznie pomijane przy generowaniu\&. Argument +0 +pozwala na przeprowadzanie skanowania bez końca\&. Pamiętaj, że niektórzy administratorzy nie lubią skanowania ich sieci i może się im to nie spodobać\&. Używaj tej opcji na własne ryzyko! Jeśli poczujesz się naprawdę znudzony w deszczowe popołudnie, wyprubuj komendę +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR +do wykrycia losowych serwerów WWW do przeglądania udostępnianych przez nie stron\&. +.RE +.PP +\fB\-\-exclude <host1[,host2][,host3],\&.\&.\&.>\fR (Wyłączenie hostów/sieci) +.RS 4 +Podana lista celów do wyłączenia z zakresu skanowania, jeśli wchodzą w zakres aktualnego skanowania\&. Lista musi być podana zgodnie ze standardowym formatem akceptowanycm przez Nmapa, więc może zawierać nazwy, adresy w formacie CDIR, zakresy, itp\&. Opcja ta jest przydatna, jeśli sieć którą chcesz przeskanować zawiera systemy nietykalne lub krytyczne, o których wiadomo, że nie tolerują dobrze skanowania lub też sieci administrowane przez innych ludzi\&. +.RE +.PP +\fB\-\-excludefile <plik_wyłączeń>\fR (Lista wyłączeń z pliku) +.RS 4 +Opcja ta oferuje taką samą funkcjonalność jak +\fB\-\-exclude\fR +z tą rożnicą, że wykluczone cele (oddzielone spacjami, znakami tabulacji lub nowej linii) są pobierane z pliku +\fIplik_wyłączeń\fR, a nie z linii poleceń\&. +.RE +.SH "WYKRYWANIE HOSTÓW" +.PP +Jednym z pierwszych kroków rekonesansu sieciowego jest redukcja (czasami ogromnych) zakresów adresów IP do listy aktywnych lub interesujących hostów\&. Skanowanie każdego portu na każdym adresie IP jest wolne i przeważnie niepotrzebne\&. Oczywiście to co czyni host interesującym głównie zależy od celu skanowania\&. Administratorzy sieci mogą być zainteresowani hostami udostępniającymi określoną usługę podczas gdy audytorzy bezpieczeństwa mogą chcieć przyjrzeć się każdemu urządzeniu posiadającemu adres IP\&. Administratorowi może wystarczać wykorzystanie pinga ICMP do zlokalizowania hostów w jego wewnętrznej sieci, podczas gdy audytor przeprowadzający zewnętrzne testy penetracyjne może wykorzystywać dziesiątki różnych testów do ominięcia reguł filtrowania systemu zaporowego\&. +.PP +Ponieważ niezbędne są różne metody wykrywania hostów, Nmap oferuje szeroki wachlarz opcji pozwalających na wybieranie wykorzystywanych technik\&. Wykrywanie hostów często jest zwane skanowaniem Ping, jednak wykracza daleko poza proste wysyłanie zapytania ICMP echo request znanego z programu +ping\&. Użytkownik może pominąć etap wykrywania poprzez wykorzystanie opcji skanowania listy (\fB\-sL\fR), poprzez wyłączenie pingowania (\fB\-P0\fR) lub wykorzystania różnych kombinacji wieloportowego badania za pomocą testów TCP SYN/ACK, UDP, i ICMP\&. Celem tych testów jest uzyskanie informacji o adresach IP, które są aktualnie dostępne (są wykorzystywane przez urządzenie sieciowe lub komputer)\&. W przypadku wielu sieci tylko mały procent wykorzystywanych adresów IP jest równocześnie aktywnych\&. Jest to szczególnie powszechne w sieciach prywatnych zgodnych z adresacją RFC1918, takich jak 10\&.0\&.0\&.0/8\&. Ta sieć zawiera 16 milionów adresów IP, ale widziałem nie raz firmy wykorzystujące niecały tysiąc z nich\&. Opcja wykrywania hostów pozwala na szybkie wykrycie rzeczywiście wykorzystywanych adresów IP z całej dostępnej puli\&. +.PP +Jeśli nie podano opcji wybierającej metodę wykrywania hostów, Nmap wysyła pakiety TCP ACK na port 80 i zapytanie ICMP Echo Request query do każdego badanego adresu\&. Wyjątkiem od tej reguły jest skanowanie ARP przeprowadzane dla aktualnego segmentu sieci ethernet\&. W przypadku uruchamiania przez nie uprzywilejowanych użytkowników systemów UNIX, wysyłany jest pakiet SYN zamiast ACK z wykorzystaniem wywołania systemowego +\fBconnect()\fR\&. Ustawienia domyślne są tożsame z opcjami +\fB\-PA \-PE\fR\&. Takie wykrywanie hostów jest najczęściej wystarczające podczas skanowania sieci lokalnej, jednak podczas audytów bezpieczeństwa zalecane jest wykorzystywanie bardziej zaawansowanych opcji\&. +.PP +Opcje +\fB\-P*\fR +(które wybierają sposób pingowania) mogą być łączone\&. Możesz poprawic dokładność wykrywania hostów za systemem zaporowym poprzez stosowanie wielu różnych portów/flag TCP i typów ICMP\&. Zwracam uwagę, że wykrywanie hostów ARP (\fB\-PR\fR) jest z założenia włączane podczas testów sieci lokalnej w ramach tego samego segmentu, nawet jeśli podasz inne opcje +\fB\-P*\fR, ponieważ praktycznie zawsze tak jest szybciej i efektywniej\&. +.PP +Opcje kontroli wykrywania hostów\&. +.PP +\fB\-sL\fR (Lista skanowania) +.RS 4 +Lista skanowania jest okrojoną funkcją wykrywania hostów, która po prostu wyświetla wszystkie adresy z podanych zakresów skanowania i nie wysyła żadnych pakietów do nich\&. Domyślnie Nmap wykonuje odwrotne zapytania DNS o badane adresy aby poznać ich nazwy\&. Często niespodzianką jest jak dużo informacji mogą udzielić już same nazwy hostów\&. Na przykład +fw\&.chi\&.playboy\&.com +jest systemem zaporowym w biurze Playboy Enterprises w Chicago\&. Na końcu Nmap podaje także całkowitą liczbę adresów IP\&. Lista skanowania jest dobrym sposobem na sprawdzenie i uzyskanie pewności, że prawidłowo podano zakres skanowania\&. Jeśli nie rozpoznajesz nazw domen na uzyskanej liście, warto sprawdzić podany zakres, co pozwala unikąć niepotrzebnego skanowania sieci nieznanej firmy\&. +.sp +Ideą tej opcji jest wyświetlanie prostej listy adresów, z tego powodu bardziej zaawansowana funkcjonalność taka jak skanowanie portów, wykrywanie systemu operacyjnego czy pingowanie nie może być łączone z tą metodą\&. Jeśli chcesz wyłączyć pingowanie podczas skanowania, poczytaj na ten temat w opisie opcji +\fB\-P0\fR\&. +.RE +.PP +\fB\-sP\fR (Skanowanie Ping) +.RS 4 +Ta opcja nakazuje Nmapowi przeprowadzać +\fItylko\fR +skanowanie typu Ping (wykrywanie hostów), a wynikiem jej działania jest lista aktywnych hostów\&. Dodatkowe testy (takie jak skanowanie portów lub wykrywanie systemu operacyjnego) nie są przeprowadzane\&. Metoda ta idzie krok dalej niż lista skanowania i może być wykorzystywana w podobnym celu\&. Pozwala na przeprowadzenie delikatnego rekonesansu bez zwracania zbytniej uwagi\&. Posiadanie wiedzy na temat ilości aktywnych hostów jest bardziej wartościowe dla atakujących niż sama lista adresów zawierająca adres IP i nazwę hosta\&. +.sp +Również administratorzy systemów często korzystają z tej opcji\&. Pozwala ona na łatwe i szybkie określenie liczby hostów w sieci lub monitorowanie dostępności serwerów\&. Opcja ta często jest nazywna Ping Sweep i daje bardziej wiarygodne wyniki niż pingowanie adresu broadcast, ponieważ niektóre adresy mogą na niego nie odpowiedzieć\&. +.sp +Domyślnie opcja +\fB\-sP\fR +wysyła pakiety ICMP echo request i pakiety TCP na port 80\&. W przypadku wykonywania z konta nie uprzywilejowanego użytkownika wysyłane są pakiety SYN (z wykorzystaniem funkcji systemowej +\fBconnect()\fR) na port 80 badanego hosta\&. Jeśli uprzywilejowany użytkownik próbuje przeskanować adresy w lokalnej sieci ethernet, wykorzystywane są zapytania ARP (\fB\-PR\fR), chyba że dodano opcję +\fB\-\-send\-ip\fR\&. Dla większej wygody opcja +\fB\-sP\fR +może być łączona w dowolny sposób z innymi metodami wykrywania hostów (opcje +\fB\-P*\fR, nie dotyczy +\fB\-P0\fR)\&. Jeśli wybrano któryś z typów testów i numer portu, nie są wykorzystywne domyślne ustawienia (ACK i echo request)\&. Wykorzystywanie tych opcji jest szczególnie zalecane, jeśli pomiędzy badanym systemem, a hostem na którym jest uruchomiony Nmap jest system zaporowy, inaczej niektóre (lub wszystkie) hosty nie zostaną wykryte\&. +.RE +.PP +\fB\-P0\fR (Bez pinga) +.RS 4 +Ta opcja wyłącza całkowicie wykrywanie hostów\&. Normalnie Nmap próbuje wykryć aktywne adresy przed rozpoczęciem właściwego skanowania\&. Domyślnie Nmap przeprowadza tylko testy takie jak skanowanie portów, wykrywanie wersji i systemu operacyjnego tylko dla hostów, które zostały wcześniej wykryte jako aktywne\&. Wyłączenie wykrywania hostów za pomocą opcji +\fB\-P0\fR +powoduje, że Nmap próbuje wykonać wszystkie żadane typy skanowania na +\fIkażdym\fR +podanym adresie IP\&. Jeśli więc jako cel w linii pleceń podano klasę B (/16), wszystkie 65,536 adresów zostanie przeskanowane\&. Drugi znak w opcji +\fB\-P0\fR +jest zerem, a nie literą O\&. Wykrywanie hostów jest pomijane jak przy wyświetlaniu listy skanowania, jednak zamiast zatrzymać się i wyświetlić listę, Nmap kontynuuje i przeprowadza założone testy na każym adresie IP, tak jak by był wykryty jako aktywny\&. +.RE +.PP +\fB\-PS [listaportów]\fR (TCP SYN Ping) +.RS 4 +Opcja ta powoduje wysyłanie pustych pakietów TCP z ustawioną flagą SYN\&. Domyślnie port docelowy to 80 (konfigurowalne przed kompilacją za pomocą stałej DEFAULT_TCP_PROBE_PORT w pliku +nmap\&.h), ale inny port może być podany jako parametr\&. Możliwe jest również podanie listy portów, odzielonych przecinkami (np\&. +\fB\-PS22,23,25,80,113,1050,35000\fR), co spowoduje przeprowadzenie testów na wszystkich podanych portach równolegle\&. +.sp +Ustawiona flaga SYN sugeruje badanemu systemowi, że próbujesz nawiązać z nim połączenie\&. Normalnie zdalny port będzie zamknięty i zostanie wysłany z powrotem pakiet z flagą RST (reset)\&. Jeśli port będzie otwarty, host będzie próbował wykonać drugi krok z trójstopniowego procesu nawiązywania połączenia odpowiadając za pomocą pakietu TCP SYN/ACK\&. Nmap zamiast wysłać pakiet ACK, który by pomyślnie zakończył nawiązywanie połączenia, w tym momencie przerwie połączenie wysyłając pakiet RST\&. Pakiet RST jest wysyłany przez kernel systemu na którym pracuje Nmap automatycznie, w odpowiedzi na niespodziwany pakiet SYN/ACK, a nie przez samego Nmapa\&. +.sp +Nmap nie zwraca uwagi czy port jest otwarty czy zamknięty\&. W zależności od uzyskanej omówionej wcześniej odpowiedzi (RST lub SYN/ACK) host jest uznawany za dostępny\&. +.sp +W systemach UNIX, tylko użytkownik uprzywilejowany \- +root +\- może wysyłać niskopoziomowe pakiety raw TCP\&. W przypadku użytkowników nie posiadających odpowiednich uprawnień wykorzystywane jest obejście w postaci wykorzystania funkcji systemowej connect() do wykonania połączeń ze wskazanymi portami\&. Jeśli connect() zwróci poprawność wykonania operacji lub błąd odmowy połączenia ECONNREFUSED, stos TCP musiał otrzymać pakiet z flagami SYN/ACK lub RST i host jest uznawany za dostępny\&. Jeśli próba nawiązania połączenia została przerwana po przekroczeniu maksymalnego czasu oczekiwania, host jest oznaczany jako niedostępny\&. To obejście jest również wykorzystywane dla protokołu IPv6, ponieważ wysyłanie niskopoziomowych pakietów raw TCP nie jest jeszcze dostępne w Nmapie\&. +.RE +.PP +\fB\-PA [lista portów]\fR (TCP ACK Ping) +.RS 4 +Metoda TCP ACK ping jest dosyć podobna do powyżej opisanego SYN ping\&. Różnica, jak łatwo zgadnąć, polega na wykorzystaniu flagi ACK zamiast SYN\&. Flaga ACK jest wykorzystywana do potwierdzania otrzymania danych za pomocą utworzonego wcześniej połączenia TCP, jednak w tym wypadku połączenie takie nie istnieje\&. Z tego powodu badany system powinien zawsze odpowiedzieć pakietem z flagą RST, świadczącą o nie isnieniu takiego połączenia\&. +.sp +Opcja +\fB\-PA\fR, tak jak SYN, używa portu numer 80 i również może przyjmować listę portów jako argument (w takim samym formacie)\&. Jeśli program został uruchomiony przez nie uprzywilejowanego użytkownika lub badany jest adres IPv6, wykorzystywane jest opisane wcześniej obejście za pomocą connect()\&. Obejście to nie jest idealne, ponieważ funkcja connect() wysyła pakiet SYN zamiast oczekiwanego ACK\&. +.sp +Powodem udostępniania zarówno metody SYN jak i ACK jest zwiększenie szansy na ominięcie systemu zaporowego\&. Wielu administratorów konfiguruje routery i proste systemy zaporowe tak, żeby blokowały przychodzące pakiety SYN, poza przychodzącymi do publicznych serwerów takich jak WWW czy pocztowych\&. Zabezpiecza to przed przychodzeniem innych połączeń przy jednoczesnym nie zakłucaniu pozostałej transmisji wychodzącej do Internetu\&. Takie bezstanowe (non\-stateful) rozwiązanie zajmuje mało zasobów systemu zaporowego/routera i jest szeroko wspierane przez filtry sprzętowe i programowe\&. Linuxowy firewall Netfilter/iptables dla wygody posiada opcję +\fB\-\-syn\fR, która implementuje takie właśnie bezstanowe filtrowanie\&. W przypadku takiego systemu zaporowego testy wykorzystujące metodę SYN ping (\fB\-PS\fR) zostaną prawdopodobnie zablokowane w przypadku zamkniętych portów\&. W tym przypadku metoda ACK pozwoli na obejście tych zabezpieczeń\&. +.sp +Innym popularnym typem jest firewall wykorzystujący stany (stateful) do blokowania niechcianych pakietów\&. Taka funkcjonalność jest najczęściej spotykana w wysokiej klasy systemach zaporowych, które stają się z roku na rok coraz popularniejsze\&. Linuxowy Netfilter/iptables posiada opcję +\fB\-\-state\fR, która kategoryzuje pakiety na podstawie stanu połączenia\&. Metoda SYN prawdopodobnie będzie działała poprawnie dla tego typu systemów, ale już pakiet z ACK zostanie rozpoznany jako nieprawidłowy i zostanie zablokowany\&. Rozwiązaniem tego problemu jest wykorzystywanie jednocześnie obu metod SYN i ACK poprzez podanie parametrów +\fB\-PS\fR +i +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU [listaportów]\fR (UDP Ping) +.RS 4 +Kolejną metodą wykrywania hostów jest UDP ping, który wysyła puste (o ile nie wykorzystano opcji +\fB\-\-data\-length\fR) pakiety UDP na wskazane porty\&. Lista portów jest podawana w takim samym formacie jak dla wcześniej opisanych opcji +\fB\-PS\fR +i +\fB\-PA\fR\&. Jeśli nie podano numerów portów, domyślnie używany jest port 32338\&. Port ten może być zmieniony przed kompilacją poprzez zmianę stałej DEFAULT_UDP_PROBE_PORT w pliku +nmap\&.h\&. Wybór tak mało popularnego portu został podyktowany chęcią uniknięcia wysyłania pakietów do otwartych portów, co w przypadku tego testu nie przyniosło by oczekiwanego efektu\&. +.sp +W przypakdu kiedy port jest zamknięty na badaniej maszynie, w odpowiedzi na pakiet UDP powinien zostać odesłany pakiet ICMP port unreachable oznaczający brak możliwości komunikacji z wybranym portem\&. Po otrzymaniu takiej odpowiedzi Nmap oznacza host jako dostępny\&. Inne typy odpowiedzi ICMP, takie jak host/sieć niedostępna czy przekroczony czas życia TTL oznaczają, że badany host nie jest dostępny, podobnie interpretowany jest brak odpowiedzi\&. Jeśli badany port jest otwarty, większość typowych usług zignoruje pusty pakiet i nie zostanie wysłana żadna informacja zwrotna\&. Właśnie dla tego domyślnie testowanym portem jest 31338, który jest bardzo rzadko wykorzystywany\&. Wiele usług, takich jak chargen, odpowie na pusty pakiet co spowoduje, że Nmap uzna host za dostępny\&. +.sp +Główną zaletą tego typu skanowania jest fakt, że omija systemy zaporowe i filtry skupiające sie tylko na TCP\&. Przykładowo, miałem kiedyś szerokopasmowy router bezprzewodowy Linksys BEFW11S4\&. Zewnętrzny interfejs tego urządzenia filtrował domyślnie wszystkie porty TCP, za to testy UDP zwracały odpowiedzi ICMP port unreachable, co ujawnia istnienie urządzenia\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (Typy ICMP Ping) +.RS 4 +Dodatkowo poza opisanymi wcześniej metodami wykrywania hostów TCP i UDP, Nmap może wysyłać standardowe pakiety ICMP znane z typowego programu +ping\&. Nmap wysyła pakiety ICMP typu 8 (echo request) do badanego hosta i oczekuje typu 0 (echo reply) w odpowiedzi\&. Niestety wiele hostów i systemów zaporowych blokuje tego typu pakiety, zamiast odpowiadać prawidłowo i zgodnie z +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[6]\d\s+2\&. Z tego powodu skanowania nieznanych hostów w internecie za pomocą tej metody przeważnie nie są wiarygodne\&. Jednakże administratorzy systemów monitorujący wewnętrzne sieci mogą z powodzeniem efektywnie wykorzystywać tą metodę\&. Takie wykorzystanie zapytań ICMP echo request jest możliwe za pomocą opcji +\fB\-PE\fR\&. +.sp +Zapytanie echo request jest standardowym zapytaniem ICMP ping, jednak Nmap nie poprzestaje na tym\&. Standard ICMP (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[7]\d\s+2) opisuje także zapytania timestamp request, information request, i address mask request o kodach odpowiednio 13, 15 i 17\&. Podczas kiedy założonym efektem działania tych zapytań jest uzyskanie informacji typu maska sieci czy aktualny czas, mogą być one wykorzystane do wykrywania aktywności hostów\&. System który odpowiada, jest uznawany za aktywny\&. Nmap nie obsługuje zapytań information request, jako że nie są one często spotykane\&. RFC 1122 zaleca, że +„host NIE POWINIEN obsługiwać tych zapytań\(rq\&. Zapytania timestamp i address mask mogą być wysyłane z wykorzystaniem opcji odpowiednio +\fB\-PP\fR +i +\fB\-PM\fR\&. Odpowiedzi timestamp reply (ICMP kod 14) lub address mask reply (kod 18) ujawniają aktywność hosta\&. Te dwa zapytania mogą być pomocne, kiedy administrator specyficznie blokuje zapytania echo request zapominając przy tym blokować inne typy ICMP, które mogą być wykorzystane w tym samym celu\&. +.RE +.PP +\fB\-PR\fR (ARP Ping) +.RS 4 +Jednym z najczęściej spotykanych scenariuszy wykorzystania Nmapa jest skanowanie sieci lokalnej ethernet\&. W większości sieci LAN, w szczególności wykorzystujących adresację prywatną zalecaną przez RFC1918, większość adresów IP nie jest wykorzystywana\&. Kiedy Nmap próbuje wysłać pakiet raw IP taki jak ICMP echo request, by poprawnie zaadresować ramkę ethernet system operacyjny musi określić (ARP) docelowy adres sprzętowy korespondujący z docelowym adresem IP\&. Takie zachowanie jest często powolne i problematyczne, ponieważ systemy operacyjne nie zostały napisane z uwzględnieniem potrzeby wysyłania milionów zapytań ARP o niedostępne hosty w krótkim czasie\&. +.sp +Skanowanie ARP wykorzystuje zoptymalizowany algorytm Nmapa do wysyłania zapytań ARP\&. Po otrzymaniu odpowiedzi Nmap nie musi się nawet martwić o oparte na IP pakiety ping, ponieważ już wie, że host jest aktywny\&. Takie zachowanie pozwala na dużo szybsze i bardziej wiarygodne skanowanie\&. Z tego powodu zachowanie takie jest domyślne podczas skanowania sieci, którą Nmap wykryje jako sieć lokalną należącą do tego samego segmentu\&. Nawet jeśli zostaną podane inne typy skanowania ping (takie jak +\fB\-PE\fR +lub +\fB\-PS\fR), Nmap używa ARP zamiast nich do wykrywaia hostów w lokalnej sieci ethernet\&. Jeśli nie chcesz używać ARP do skanowania, dodaj opcję +\fB\-\-send\-ip\fR\&. +.RE +.PP +\fB\-n\fR (Wyłącz zapytania DNS) +.RS 4 +Nakazuje Nmapowi +\fInigdy\fR +nie używać zapytań odrotnych do serwerów DNS o nazwy przypisane do adresów IP\&. Jako że zapytania DNS są najczęściej długo trwają, opcja ta przyspiesza pracę\&. +.RE +.PP +\fB\-R\fR (Wymuś zapytania DNS) +.RS 4 +Nakazuje Nmapowi +\fIzawsze\fR +wykonywać odwrotne zapytania do serwera DNS o nazwy dla skanowanych adresów IP\&. Domyślnie zapytania są wykonywane tylko dla aktywnych hostów\&. +.RE +.PP +\fB\-\-system\-dns\fR (Używaj systemowego DNS) +.RS 4 +Domyślnie Nmap określa nazwy dla adresów IP poprzez wysyłanie zapytań bezpośrednio do serwerów DNS skonfigurowanych w systemie, o ile są dostępne\&. Wiele zapytań (często dziesiątki) jest wykonywanych równolegle dla uzyskania wiekszej szybkości\&. Dodanie tej opcji wymusza wykorzystywanie rozwiązywania nazw za pośrednictwem systemu operacyjnego (każdorazowo o pojedyncze IP za pomocą funkcji getnameinfo())\&. Ta opcja jest wolniejsza i jest użyteczna tylko w sporadycznych przypadkach, chyba że w Nmapie jest błąd w kodzie DNS \- prosze się z nami skontaktować w tym przypadku\&. W przypadku skanowania sieci IPv6, rozwiązywanie nazw jest zawsze wykonywane z wykorzystaniem systemu operacyjnego\&. +.RE +.PP +\fB\-\-dns\-servers <server1[,server2],\&.\&.\&.> \fR (Serwery do wykonywania zapytań DNS) +.RS 4 +Domyślnie Nmap próbuje odczytać serwery DNS wpisane do pliku resolv\&.conf (UNIX) lub rejestru (Win32)\&. Alternatywnie, możesz użyć tej opcji do podania własnych serwerów\&. Opcja ta nie jest uwzględniana, jeśli użyto również opcji +\fB\-\-system\-dns\fR +lub skanowane są adresy IPv6\&. Używanie wielu serwerów DNS jest często dużo szybsze, niż tylko jednego\&. +.RE +.SH "PODSTAWY SKANOWANIA PORTÓW" +.PP +Przez lata funkcjonalność Nmapa była sukcesywnie powiększana, z początku był tylko efektywnym skanerem portów i to nadal pozostaje jego główną funkcją\&. Prosta komenda +\fBnmap \fR\fB\fItarget\fR\fR +skanuje ponad 1660 portów TCP na wybranym +\fIcelu skanowania\fR\&. Podczas kiedy większość skanerów tradycyjnie zalicza wszystkie porty do kategorii otwarty lub zamknięty, Nmap jest dużo dokładniejszy\&. Rozróżnia sześć możliwych stanów każdego portu: +otwarty, +zamknięty, +filtrowany, +niefiltrowany, +otwarty|filtrowany, or +zamknięty|filtrowany\&. +.PP +Te stany nie są rzeczywistymi stanami portów, opisują jak Nmap je widzi\&. Na przykład, skanowanie Nmapa z wnętrza sieci pokazuje port 135/TCP jako otwarty, podczas kiedy skanowanie przez Internet może określić stan portu jako +filtrowany\&. +.PP +\fBSześć stanów portów Nmapa\fR +.PP +otwarty +.RS 4 +Aplikacja aktywnie akceptuje na tym porcie połączenia TCP lub pakiety UDP\&. Znalezienie takich portów jest głównym celem skanowania\&. Osoby obeznane z bezpieczeństwem wiedzą, że każdy otwarty port to potencjalny cel ataku\&. Atakujący i wykonujący testy penetracyjne chcą wykorzystać luki w oprogramowaniu poprzez otwarte porty, podczas gdy administratorzy starają się zamykać lub chronić je za pomocą systemów zaporowych przed niepożądanymi użytkownikami\&. Otwarte porty są także interesujące przy skanowaniach nie związanych z oceną bezpieczeństwa, ponieważ pokazują usługi dostępne w sieci\&. +.RE +.PP +zamknięty +.RS 4 +Zamknięty port jest dostępny (odbiera i odpowiada na pakiety Nmapa), ale nie ma żadnej aplikacji, która by obsłużyła połaczenie\&. Porty te mogą być pomocne przy sprawdzaniu czy host jest aktywny (wykrywanie hostów lub skanowanie Ping) oraz przy wykrywaniu systemu operacyjnego\&. Ponieważ są dostępne zamknięte porty, warto skanować dalej w poszukiwaniu otwartych\&. Administratorzy mogą chcieć blokować takie porty za pomocą systemów zaporowych, wtedy ich stan zostanie określony jako filtrowany, opisany dalej\&. +.RE +.PP +filtrowany +.RS 4 +Nmap nie może określić czy port jest otwarty z powodu filtrowania komunikacji\&. Filtrowanie może być przeprowadzane na dedykowanym urządzeniu, za pomocą reguł routera lub programowego firewalla na hoście\&. Takie porty są frustrujące dla atakujących, ponieważ dostarczają znikomych ilości informacji\&. Porty czasami odpowiadają komunikatami ICMP takim jak typ 3 kod 13 (destination unreachable: communication administratively prohibited), ale filtry blokują wysyłanie takiego komunikatu bez wysyłania typowej odpowiedzi\&. Takie zachowanie zmusza Nmapa do kilkukrotnego powtarzania pakietów na wypadek ich zaginięcia na przykład na skutek przeciążenia sieci, co spowalnia skanowanie w sposób drastyczny\&. +.RE +.PP +niefiltrowany +.RS 4 +Stan niefiltrowane oznacza że port jest dostępny, ale Nmap nie jest w stanie ustalić czy port jest otwarty czy zamknięty\&. Tylko skanowanie ACK, które jest używane do mapowania reguł firewalla, może przypisać portom taki stan\&. Skanowanie niefiltrowanych portów za pomocą innych typów skanowania takich jak Window, SYN czy FIN może pomóc określić czy port jest otwarty czy zamknięty\&. +.RE +.PP +otwarty|filtrowany +.RS 4 +Nmap podaje taki stan w przypadku portów, dla których nie jest w stanie określić czy port jest otwarty, czy filtrowany\&. Taki zachowanie występuje podczas typów skanowania, przy których porty nie dają odpowiedzi\&. Brak odpowiedzi może również oznaczać, że filtr pakietów zablokował połączenie lub wysyłaną odpowiedź\&. Z tego powodu Nmap nie ma pewności czy port jest otwarty, czy filtrowany\&. W ten sposób klasyfikują porty skanowania UDP, FIN, Null, Xmas i skanowanie protokołów\&. +.RE +.PP +zamknięty|filtrowany +.RS 4 +Ten stan jest używany przez Nmapa do oznaczania portów, dla których nie jest możliwe ustalenie czy port jest zamknięty czy filtrowany\&. Taki stan może się pojawiać tylko podczas skanowania IPID Idle\&. +.RE +.SH "TECHNIKI SKANOWANIA PORTÓW" +.PP +Jako początkujący mechanik samochodowy, mogłem godzinami męczyć się z wykonaniem naprawy posiadanymi narzędziami (młotek, taśma izolacyjna, klucz francuski itp\&.)\&. Kiedy popadłem w depresję i w końcu zaprowadziłem mojego gruchota do prawdziwego mechanika, pogrzebał w przepastnej skrzyni z narzędziami i wyciągnął specjalne narzędzie, którym wykonał naprawę błyskawicznie i bez kłopotów\&. Sztuka skanowania polega dokładnie na tym samym\&. Eksperci znają dziesiątki typów skanowania i wybierają jedną adekwatną (lub kombinację kilku) do danego zadania\&. Z drugiej strony niedoświadczeni użytkownicy i script kiddies próbują rozwiązać każdy problem za pomocą domyślnego skanowania SYN\&. Nmap jest darmowy i dostępny dla wszyskich, w związku z tym jedyną barierą jest odpowiednia wiedza\&. To oczywiście bije na głowę świat motoryzacyjny, gdzie trzeba posiadać duże umiejętności, żeby domyślić się, że potrzebne jest bardzo specyficzne narzędzie, ale wtedy potrzeba jeszcze dużo pieniędzy na jego zakup\&. +.PP +Większość typów skanowania jest dostępna tylko dla uprzywilejowanych użytkowników, ponieważ tylko oni mogą wysyłać pakiety raw\&. Takim użytkownikiem w przypadku systemów UNIX jest root\&. Używanie konta administratora w systemach Windows jest zalecane, jednak Nmap przeważnie działa poprawnie z konta zwykłego użytkownika przy zainstalowanej w systemie bibliotece WinPcap\&. Wymóg posiadania uprawnień użytkownika root był poważnym ograniczeniem kiedy pojawił się Nmap w 1997 roku, jako że użytkownicy posiadali dostęp głównie tylko do współdzielonych kont\&. Świat się zmienił\&. Komputery są tańsze, coraz więcej ludzi ma bezpośredni dostęp do Internetu i coraz powszechniejsze stają się komputery z systemami UNIX (włączając Linuxa i MAC OS X)\&. Dostępna jest również Windowsowa wersja Nmapa, co powiększa możliwości jego wykorzystywania\&. Z tych powodów coraz rzadziej zachodzi potrzeba uruchamiania Nmapa z ograniczonych współdzielonych kont\&. Na szczęście większe przywileje użytkowników przekładają się na większą elastyczność i możliwości Nmapa\&. +.PP +Nmap stara się podawać jak najbardziej dokładne wyniki, jednak trzeba mieć na uwadze fakt, że wyniki są oparte na pakietach zwracanych przez badane systemy (lub firewalle je ochraniające)\&. Dlatego też zwracane informacje nie muszą być wiarygodne i mogą wprowadzać Nmapa w błąd\&. Bardzo powszechne są hosty nie zachowujące się zgodnie z RFC w odpowiedzi na zapytania Nmapa\&. Rozwiązaniem są skanowania FIN, Null czy Xmas\&. Tego typu problemy zostały opisane oddzielnie w częściach poświęconych poszczególnym typom skanowania\&. +.PP +Ta sekcja opisuje dziesiątki typów skanowania dostępnych w Nmapie\&. Jednocześnie może być wykorzystywana tylko jedna metoda, za wyjątkiem skanowania UDP (\fB\-sU\fR), które może być łączone z dowolnymi typami skanowania TCP\&. Dla łatwiejszego zapamiętania, opcje skanowania portów posiadają nazwy w formie +\fB\-s\fR\fB\fIC\fR\fR, gdzie +\fIC\fR +jest przeważnie pierwszą dużą literą angielskiej nazwy typu skanowania\&. Wyjątkiem jest przestarzała opcja skanowania FTP bouce (\fB\-b\fR)\&. Domyślnie Nmap wykonuje skanowanie SYN, które jest zastępowane connect(), jeśli użytkownik nie ma odpowiednich uprawnień do wysyłania pakietów raw (co wymaga konta root w systemach UNIX) lub w przypadku skanowania sieci IPv6\&. Z pośród przedstawionych poniżej typów skanowania użytkownicy nie uprzywilejowani mogą jedynie używać typów connect() i FTP bounce\&. +.PP +\fB\-sS\fR (Skanowanie TCP SYN) +.RS 4 +Skanowanie SYN jest domyślną i najpopularniejszą metodą skanowania\&. Jest to spowodowane tym, że może być przeprowadzone szybko, możliwe jest skanowanie tysięcy portów na sekundę w szybkich sieciach nie chronionych systemami zaporowymi\&. Skanowanie SYN jest relatywnie dyskretne i niewidoczne, ponieważ nigdy nie otwiera połączeń do końca\&. Działa to dobrze w stosunku do wszystkich stosów zgodnych z TCP, w przeciwieństwie do udziwnionych, dla których Nmap ma tryby FIN/Null/Xmas, Maimon i Idle\&. SYN pozwala na przejrzyste i wiarygodne rozróżnienie stanów portu pomiędzy +otwartym, +zamkniętym +i +filtrowanym\&. +.sp +Technika ta jest często określana jako skanowanie z połowicznym otwieraniem połączeń (ang\&. half\-open), ponieważ nie otwiera pełnego połączenia TCP\&. Wysyłany jest pakiet SYN, tak jak by miało być otwarte prawdziwe połączenie i czeka na odpowiedź\&. SYN/ACK oaznacza, że port oczekuje na połączenia (jest otwarty), a RST (reset) identyfikuje port jako zamknięty\&. Jeśli odpowiedź nie zostanie otrzymana pomimo kilku prób, port jest oznaczany jako filtrowany\&. Port jest również oznaczany jako filtrowany w przypadku otrzymania komunikatu błędu ICMP unreachable error (typ 3, kody 1, 2, 3, 9, 10 lub 13)\&. +.RE +.PP +\fB\-sT\fR (Skanowanie TCP connect()) +.RS 4 +Skanowanie TCP Connect() jest wybierane domyślne, jeśli SYN nie jest dostęne\&. Ma to miejsce kiedy użytkownik nie posiada uprawnień do wysyłania pakietów raw lub podczas skanowania sieci IPv6\&. Zamiast wysyłać pakiety raw, jak to ma miejsce przy innych typach skanowania, Nmap prosi system operacyjny o zestawienie połączenia z badanym hostem za pomocą wywołania funkcji systemowej +connect()\&. Jest to taki sam wysoki poziom wywołań systemowych, z jakich korzystają przeglądarki internetowe, oprogramowanie Peer2Peer czy inne programy korzystające z połączeń sieciowych\&. Jest to część interfejsu programistycznego znanego jako Berkeley Sockets API\&. Zamiast odczytywać odpowiedzi za pomocą odwołań niskopoziomowych prosto z sieci, Nmap wykorzystuje ten sam wysokopoziomowy interfejs do otrzymania informacji o stanie operacji dla każdej próby połączenia oddzielnie\&. +.sp +Kiedy skanowanie SYN jest dostępne, przeważnie jest lepszym wyborem\&. Nmap ma dużo mniejszą kontrolę nad wywołaniem wysokopoziomowym +connect() +niż nad pakietami raw, co jest dużo mniej efektywne\&. Wywołanie systemowe otwiera pełne połączenie w przeciwieństwie do metody SYN korzystającej z połowicznego połączenia\&. Nie tylko wymaga to więcej czasu i wymaga więcej pakietów do uzyskania takich samych informacji, ale również prawdopodobnie spowoduje zapisanie w logach badanego systemu próby połączenia\&. Nowoczesne systemy detekcji intruzów IDS potrafia wykrywać takie połączenia, ale większość systemów nie posiada odpowiednich systemów alarmowych\&. Wiele usług w typowym systemie UNIX zapisze uwagę do logu systemowego i czasami zagadkowy komunikat błędu, kiedy Nmap połączy się i natychmiast zamknie połączenie bez wysyłania jakichkolwiek danych\&. Naprawdę żałosne usługi przestaną działać po otrzymaniu takiego pakietu, ale nie jest to często spotykane\&. Administrator widzący w logach informacje o wielu próbach nawiązania połączenia z jednego adresu powinien wiedzieć, że jego system był skanowany za pomocą metody connect()\&. +.RE +.PP +\fB\-sU\fR (Skanowanie UDP) +.RS 4 +Większość popularnych usług w sieci Internet wykorzystuje protokół TCP, ale również usługi +\m[blue]\fBUDP\fR\m[]\&\s-2\u[8]\d\s+2 +są często spotykane\&. Najpopularniesze z nich to DNS, SNMP i DHCP (porty 53, 161/162 i 67/68)\&. Ponieważ skanowanie UDP jest ogólnie wolniejsze i trudniejsze niż TCP, wielu audytorów bezpieczeństwa ignoruje te porty\&. Jest to pomyłka, jako że wiele usług UDP jest podatnych na zdalne ataki i atakujący nie ignorują tego protokołu\&. Na szczęście Nmap umożliwia inwentaryzację portów UDP\&. +.sp +Skanowanie UDP jest aktywowane za pomocą opcji +\fB\-sU\fR\&. Może być łączone z innymi typami skanowania TCP, takimi jak SYN (\fB\-sS\fR), dla sprawdzenia obu protokołów w jednym przebiegu\&. +.sp +Skanowanie UDP polega na wysyłaniu pustych (bez danych) nagłówków protokołu UDP do każdego portu docelowego\&. Jeśli w odpowiedzi zostanie zwrócony komunikat ICMP port uchreachable (typ 3, kod 3), port jest uznawany za +zamknięty\&. Inne typy komunikatów ICMP unreachable (typ 3, kody 1, 2, 9, 10 lub 13) oznaczają, że port jest +filtrowany\&. Czasami w odpowiedzi zwrócony zostanie pakiet UDP, co oznacza, że porty jest +otwarty\&. Jeśli pomimo powtarzania transmisji nie zostanie uzyskana żadna odpowiedź, port zostaje zaklasyfikowany jako +otwarty|filtrowany\&. Oznacza to, że port może być otwarty lub filtr pakietów blokuje do niego dostęp\&. Wykorzystanie skanowania wersji usług (\fB\-sV\fR) może pomóc w odróżnieniu portów na prawdę otwartych od filtrowanych\&. +.sp +Największym wyzwaniem przy skanowaniu UDP jest przeprowadzenie go odpowiednio szybko\&. Otwarte i filtrowane porty rzadko wysyłają jakąkolwiek odpowiedź, zmuszając Nmapa do oczekiwania na odpowiedź i ponawiania transmisji na wypadek zagubienia pakietów\&. Zamknięte porty są często jeszcze większym problemem\&. Zwykle wysyłają pakiet ICMP port unreachable, jednak w odróżnieniu od pakietów z flagą RST znanych ze skanowania SYN czy connect, wiele hostów domyślnie limituje szybkość wysyłania pakietów ICMP port unreachable\&. Przykładami mogą być systemy Linux i Solaris\&. Kernel Linuxa w wersji 2\&.4\&.20 limituje ilość pakietów o niedostępności portów do jednego na sekundę (w +net/ipv4/icmp\&.c)\&. +.sp +Nmap potrafi wykrywać limitowanie odpowiedzi i zwalnia odpowiednio proces skanowania dla uniknięcia zaśmiecania sieci niepotrzebnymi pakietami, które i tak nie zostaną wykorzystane\&. Niestety, skanowanie wszystkich 65,536 portów UDP przy limicie Linuxowym jeden pakiet na sekundę powoduje, że skanowanie trwa ponad 18 godzin\&. Sposobami na przyspieszenie są skanowanie wielu hostów równolegle, wykonywanie na początek szybkiego skanowania popularnych portów, skanowanie z poza systemu zaporowego i używanie opcji +\fB\-\-host\-timeout\fR +do pomijania zbyt wolnych hostów\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (Skanowania TCP Null, FIN i Xmas) +.RS 4 +Te typy skanowania (większe możliwości posiada opcja +\fB\-\-scanflags\fR +opisana w dalszej części) wykorzystują nieopisane w +\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[9]\d\s+2 +kombinacje flag do rozróżnienia pomiędzy stanami portów +otwarty +oraz +zamknięty\&. Strona 65 opisuje, że +„jeśli [docelowy] port jest ZAMKNIĘTY \&.\&.\&. w odpowiedzi na pakiet nie zawierający RST należy wysłać odpowiedź RST\&.\(rq +Następna strona opisuje pakiety wysyłane na porty bez flag SYN, RST lub ACK w następujący sposób: +„coś takiego nie powinno mieć miejsca, jednak jeśli się zdarzy, pomiń taki pakiet\(rq\&. +.sp +Podczas skanowania systemów zgodnych z zapisami w RFC, dowolny pakiet nie zawierający flag SYN, RST lub ACK powinien wywoływać odpowiedź RST w przypadku portu zamkniętego i całkowity brak odpowiedzi w przypadku portu otwartego\&. Tak długo jak żadna z wymienionych flag nie została użyta, wszystkie inne kombinacje flag (FIN, PSH i URG) są prawidłowe\&. Nmap wykorzystuje to do przeprowadzania trzech typów skanowania: +.PP +Skanowanie Null (\fB\-sN\fR) +.RS 4 +Nie ustawia żadnych flag (pole flag w nagłówku tcp zawiera 0)\&. +.RE +.PP +Skanowanie FIN (\fB\-sF\fR) +.RS 4 +Ustawiona flaga FIN\&. +.RE +.PP +Skanowanie Xmas (\fB\-sX\fR) +.RS 4 +Ustawione flagi FIN, PSH i URG, pakiet podświetlony jak choinka\&. +.RE +.sp +Te trzy tryby skanowania są takie same poza ustawionymi flagami w pakietach\&. Jeśli w odpowiedzi zostanie otrzymany pakiet RST, port jest uznawany za +zamknięty, podczas gdy brak odpowiedzi oznacza +otwarty|filtrowany\&. Port uznajemy za +filtrowany, jeśli otrzymany zostanie komunikat ICMP unreachable (typ 3, kod 1, 2, 3, 9, 10 lub 13)\&. +.sp +Główną zaleta tych typów skanowania jest to, że potrafią się one przemykać przez bezstanowe systemy zaporowe i filtrowanie na routerach\&. Inną zaletą jest tylko minimalnie większa wykrywalność niż skanowania SYN\&. Nie można jednak na to liczyć \- większość nowych systemów IDS może zostać skonfigurowana do ich wykrywania\&. Ujemną stroną jest to, że nie wszystkie systemy są zgodne z RFC793\&. Wiele systemów wysyła odpowiedzi RST niezależnie od tego czy port jest otwarty czy nie\&. Powoduje to, że wszystkie porty pojawiają się jako +zamknięty\&. Najczęściej spotykane systemy, które się tak zachowują to Microsoft Windows, wiele urządzeń Cisco, BSDI, i IBM OS/400\&. Skanowania działają jednak dobrze w przypadku większości systemów UNIXowych\&. Kolejnym minusem tych metod jest to, że nie potrafią rozróżnić portów oznaczonych jako +otwarty +od +filtrowany, ujawniając jedynie stan +otwarty|filtrowany\&. +.RE +.PP +\fB\-sA\fR (Skanowanie TCP ACK) +.RS 4 +Ten typ skanowanie jest inny niż omawiane powyżej, bo nigdy nie wykrywa stanów portów +otwarty +(lub nawet +otwarty|filtrowany)\&. Jest wykorzystywany do mapowania reguł filtrowania, do sprawdzania czy fitrowanie jest oparte o stany (stateful) lub nie i które porty są filtrowane\&. +.sp +Pakiety skanowania ACK posiadają tylko flagę ACK (o ile nie została użyta opcja +\fB\-\-scanflags\fR)\&. Podczas skanowania systemów nie posiadających filtrowania, porty o stanach +otwarty +i +zamknięty +zwrócą pakiet RST\&. W obu przypadkach Nmap oznaczy je jako +niefiltrowane, co oznacza, że były osiągalne dla pakietu ACK, ale nie zostało określone, czy posiadają stan +otwarty +czy +zamknięty\&. Porty, które nie odpowiedzą lub odpowiedzą za pomocą komunikatu o błędzie ICMP (typ 3, kody 1, 2, 3, 9, 10 lub 13), zostaną oznaczone jako +filtrowany\&. +.RE +.PP +\fB\-sW\fR (Skanowanie TCP Window) +.RS 4 +Skanowanie Window jest takie samo jak ACK, różnica polega na tym, że potrafi odróżnić porty otwarte od zamkniętych, zamiast zawsze podawać stan +niefiltrowany, kiedy otrzymano flagę RST\&. Jest to realizowane poprzez analizę pola Window pakietu zwrotnego RST\&. Na niektórych systemach, otwarte porty zwracają dodatnią wartość rozmiaru okna (także w pakietach RST), a przy zamkniętych o rozmiarze zero\&. Tak więc zamiast zawsze przedstawiać port jako +niefiltrowany +kiedy w odpowiedzi przyjdzie RST, skanowanie Window oznacza port jako +otwarty +lub +zamknięty, w zależności czy odpowiednio otrzymano w odpowiedzi rozmiar okna o wartości dodatniej lub zero\&. +.sp +Ten typ skanowania polega na szczególnej implementacji stosu TCP, występującej w rzadko spotykanych systemach w internecie, a więc nie można zawsze na niej polegać\&. Zwykle systemy, które nie obsługują tej metody będą zwracały porty oznaczone jako +zamknięty\&. Oczywiście jest również możliwe, że host na prawdę nie ma otwartych portów\&. Jeśli większość przeskanowanych portów ma stan +zamknięty, jednak niektóre (takie jak 22, 25 czy 53) mają stan +filtrowany, system jest podejrzany\&. Czasami systemy potrafią się zachowywać zupełnie przeciwnie\&. Jeśli skanowanie wykaże 1000 otwartych portów i tylko 3 zamknięte lub filtrowane, wtedy te trzy prawdopodobnie są rzeczywiście otwarte\&. +.RE +.PP +\fB\-sM\fR (Skanowanie TCP Maimon) +.RS 4 +Skanowanie Maimon zostało nazwane na cześć jego odkrywcy, Uriela Maimona\&. Opisał tę technikę w Phrack Magazine w wydaniu #49 (Listopad 1996)\&. Nmap, który potrafił wykorzystać tę technikę został wypuszczony dwa wydania później\&. Skanowanie to należy do rodziny Null, FIN i Xmass z tą różnicą, że używa flag FIN/ACK\&. Zgodnie z RFC 793 (TCP), dla takiej kombinacji flag, pakiet RST powinien być wygenerowany niezależnie czy port jest otwarty czy zamknięty\&. Jednakże Uriel zauważył, że wiele systemów opartych na BSD po prostu pomija odpowiedzi, jeśli port jest otwarty\&. +.RE +.PP +\fB\-\-scanflags\fR (Skanowanie TCP z definiowanymi flagami) +.RS 4 +Prawdziwie zaawansowani użytkownicy Nmapa nie mogą być ograniczani ilością oferowanych wbudowanych typów skanowania\&. Opcja +\fB\-\-scanflags\fR +pozwala na projektowanie własnych typów skanowania z wykorzystaniem wybranych flag TCP\&. Cieszcie się podczas wykorzystywania tej techniki do oszukiwania systemów IDS, których twórcy pobieżnie przeglądali dokumentację Nmapa dodając specyficzne reguły! +.sp +Argument opcji +\fB\-\-scanflags\fR +może być numerycznym zapisem flag, np 9 (PSH i FIN), lub dla ułatwienia można wykorzystywać symbliczne nazwy\&. Można podać dowolną kombinację flag +URG, +ACK, +PSH, +RST, +SYN +i +FIN\&. Na przykład +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +ustawia wszystkie flagi, choć nie jest to zbyt użyteczna metoda skanowania\&. Kolejność podawania flag nie jest istotna\&. +.sp +Dodatkowo przy podawaniu wybranych flag możliwe jest podanie typu skanowania (takiego jak +\fB\-sA\fR +lub +\fB\-sF\fR)\&. Dodany typ skanowania informuje Nmapa jak ma interpretować otrzymane odpowiedzi\&. Na przykład skanowanie SYN zakłada, że brak odpowiedzi oznacza stan portu +filtrowany, podczas gdy skanowanie FIN potraktuje ten go jako +otwarty|filtrowany\&. Nmap będzie się zachowywał w taki sam sposób jak przy wybranym trybie skanowania, jednak wykorzystane zostaną podane flagi\&. Jeśli bazowy typ skanowania nie zostanie określony, zostanie wykorzystany domyślny typ SYN\&. +.RE +.PP +\fB\-sI <zombie host[:probeport]>\fR (Skanowanie Idle) +.RS 4 +Ta zaawansowana technika skanowania pozwala na prawdziwie ślepe skanowanie TCP (co oznacza, że żaden pakiet nie zostanie wysłany do badanego systemu z prawdziwego adresu IP Nmapa)\&. Zamiast tego wykorzystany zostanie host zombie, o przwidywalnym działaniu stosu TCP polegającym na sekwencyjnym powiększaniu numerów ID pakietów, do uzyskania informacji o otwartych portach w badanym systemie\&. Systemy detekcji intruzów pokażą jako adres atakującego zdefiniowany host zombie (musi spełniać określone warunki)\&. Ten fascynujący typ skanowania jest zbyt skomplikowany żeby go dokładnie opisać w tej dokumentacji, dlatego napisałem oddzielny nieformalny dokument na ten temat ze szczegółowymi informacjami i jest on dostępny pod adresem +\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&. +.sp +Poza tym, że metoda ta jest niespotykanie poufna (z powodu jej ślepej natury), ten typ skanowania pozwala na mapowanie reguł zaufania pomiędzy maszynami bazujących na adresach IP\&. Wyniki zawierają otwarte porty, +\fIz punktu widzenia hosta zombie \fR\&. Tak więc można próbować skanowania z wykorzystaniem różnych hostów zombie, które można traktować jako zaufane (poprzez router/reguły filtrowania pakietów)\&. +.sp +Można po dwukropku dodać numer portu, jeśli chcemy go wykorzystać na hoście zombie do badania zmian IPID\&. W innym przypadku Nmap wykorzysta domyślnie port używany przez tcp ping (80)\&. +.RE +.PP +\fB\-sO\fR (Skanowanie protokołów IP) +.RS 4 +Skanowanie to pozwala na wykrycie listy protokołów IP (TCP, ICMP, IGMP itp), które są dostępne na danym hoście\&. Technicznie nie jest to skanowanie portów, ponieważ sprawdza kolejne numery protokołów, a nie kolejne porty TCP czy UDP\&. Opcja ta nadal używa parametru +\fB\-p\fR +do wybrania numerów protokołów do sprawdzenia, w formacie analogicznym do listy portów\&. Z tego powodu metoda ta została zaklasyfikowana jako skanowanie portów i dlatego znajduje się tutaj\&. +.sp +Poza swoją własną funkcjonalnością, skanowanie protokołów demonstruje potęgę oprogramowania open source\&. Podczas gdy podstawowa idea jest całkiem prosta, nie pomyślałem o jej dodaniu, jak również nie otrzymałem żadnej prośby o dodanie takiej funkcjonalności\&. Latem roku 2000, Gerhard Rieger opracował koncepcję, stworzył odpowiednią poprawkę i wysłał ją na listę dyskusyjną nmap\-hackers\&. Włączyłem ją do drzewa Nmapa i wypuściłem nową wersję następnego dnia\&. Niewiele komercyjnych programów posiada użytkowników na tyle entuzjastycznych, żeby zaprojektować i stworzyć ich własne poprawki! +.sp +Skanowanie protokołów działa w sposób podobny do skanowania UDP, jednak zamiast iteracji po kolejnych numerach portu, w nagłówkach pakietów zmienia się 8\-mio bitowy numer protokołu\&. Nagłówki są przeważnie puste, nie zawierają żadnych danych ani nawet poprawnego dla danego protokołu nagłówka\&. Trzema wyjątkami są TCP, UDP i ICMP\&. Poprawne nagłówki dla tych protokołów są konieczne, ponieważ niektóre systemy nie będą ich potrafiły wysłać oraz dlatego, że Nmap posiada już odpowiednie funkcje do ich tworzenia\&. Zamiast obserwować komunikaty ICMP unreachable, skanowanie protokołów nie polega na komunikatach ICMP +\fIprotocol\fR +unreachable\&. Jeśli Nmap otrzyma jakąkolwiek odpowiedź w jakimkolwiek protokole, ustala stan protokołu jako +otwarty\&. Otrzymanie komunikatu ICMP protocol unreachable (typ 3, kod 2) powoduje oznaczenie protokołu jako +zamknięty\&. Inne komuniakty ICMP protocol unreachable (typ 3, kody 1, 3, 9, 10 lub 13) powodują oznaczenie protokołu jako +filtrowany +(oraz równocześnie potwierdzają, że protokół ICMP jest również +otwarty)\&. Jeśli nie uzyskano odpowiedzi, protokół jest oznaczany jako +otwarty|filtrowany\&. +.RE +.PP +\fB\-b <pośredniczący host ftp>\fR (Skanowanie FTP bounce) +.RS 4 +Interesującą funkcją protokołu FTP (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[10]\d\s+2) jest wspieranie tak zwanych połączeń proxy\&. Pozwala to użytkownikowi na połączenie z jednym serwerem FTP i poproszenie o wysłanie plików do innego\&. Ta funkcjonalność była przyczyną nadużyć na wielu poziomach, dlatego wiele serwerów porzuciło dla niej wsparcie\&. Jednym z możliwych nadużyć jest sposobność do zmuszenia serwera do skanowania portów na zewnętrznym hoście\&. Wystarczy po prostu poprosić serwer o wysłanie pliku kolejno na każdy interesujący port badanego systemu\&. Uzyskany komunikat o błędzie zwróci informację, czy porty był otwarty czy zamknięty\&. Jest to dobra metoda do omijania systemów zaporowych, ponieważ korporacyjne serwery FTP często są umieszczane w takim miejscu, że mają możliwość komunikacji zarówno z hostami w internecie jak i w sieci lokalnej\&. Nmap obsługuje skanowanie FTP bounce z wykorzystaniem opcji +\fB\-b\fR\&. Opcja przyjmuje argument w postaci +\fInazwa_użytkownika\fR:\fIhasło\fR@\fIserwer\fR:\fIport\fR\&. +\fISerwer\fR +jest nazwą lub adresem IP podatnego serwera FTP\&. Tak jak przy zwykłym adresie URL, można pominąć pola +\fInazwa_użytkownika\fR:\fIhasło\fR, w tym przypadku zostanie wykorzystana domyślna kombinacja dla użytkowników anonimowych (użytkownik +anonymous +hasło:\-wwwuser@)\&. Numer portu (i poprzedzający go dwukropek) również może zostać pominięty, w tym przypadku przy połączeniu z wybranym adresem +\fIserwer\fR, zostanie wykorzystany domyślny port serwera FTP (21)\&. +.sp +Podatność ta była szeroko spotykana w roku 1997, kiedy to Nmap został wypuszczony, jednak z biegiem czasu jej znaczenie bardzo się zmniejszyło\&. Dziurawe serwery FTP nadal się zdarzają, więc warto wyprubować i tę metodę, jeśli inne zawiodą\&. Jeśli potrzebne jest obejście systemu zaporowego, można przeskanować sieć w poszukiwaniu otwartych portów 21 (lub poprzez wyszukanie ftp na innych portach z wykorzystaniem opcji do wykrywania wersji) i wypróbować na wykrytych portach metodę bounce\&. Nmap poinformuje, czy usługa jest podatna czy nie\&. Jeśli chcesz ukrywać swoje działania, nie trzeba (i nie powinno) ograniczać się do hostów z badanej sieci\&. Przed rozpoczęciem skanowania losowych adresów w sieci Internet w poszukiwaniu podatnych wersji serwerów FTP trzeba mieć na uwadze, że wielu administratorów nie bedzie zachwyconych wykorzystywaniem ich serwerów w ten sposób\&. +.RE +.SH "SPECYFIKACJA PORTÓW I KOLEJNOŚCI SKANOWANIA" +.PP +Poza wszystkimi metodami skanowania opisanymi wcześniej, Nmap oferuje opcję pozwalającą na podanie numerów portów do skanowania i określenie, czy skanowanie ma przebiegać w kolejności sekwencyjnej czy losowej\&. Domyślnie Nmap skanuje wszystkie porty do 1024 włącznie oraz wyższe porty wyszczególnione w pliku +nmap\-services\&. +.PP +\fB\-p <zakres portów>\fR (Skanuj tylko wybrane porty) +.RS 4 +Opcja pozwala na zdefiniowanie listy portów do skanowania, zamiast domyślnej\&. Możliwe jest podanie pojedynczych portów jak i zakresów oddzielonych myślnikiem (np\&. 1\-1023)\&. Zakres można również pominąć, co spowoduje użycie całego zakresu (1\-65535)\&. Można więc po prostu podać opcję +\fB\-p\-\fR +do przeskanowania wszystkich portów od 1 do 65535 włącznie\&. Można również podać port zero, ale trzeba to zrobic jawnie\&. W przypadku połączenia tej opcji ze skanowaniem protokołów (\fB\-sO\fR), określa ona numery protokołów do sprawdzenia (0\-255)\&. +.sp +Przy jednoczesnym skanowaniu portów TCP i UDP możliwe jest oddzielne zdefiniowanie portów dla obu protokołów poprzez poprzedzenie numerów znakami odpowiednio +T: +i +U:\&. Jako argument opcji przyjmowany jest ciąg znaków aż do następnej opcji\&. Na przykład, podanie +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +spowoduje przeskanowanie portów UDP o numerach 53,111 i 137 oraz podanych portów TCP\&. Przy skanowaniu zarówno portów TCP jak i UDP, nie można zapomnieć podać odpowiednich typów skanowania: +\fB\-sU\fR +oraz przynajmniej jednego TCP (np\&. +\fB\-sS\fR, +\fB\-sF\fR +czy +\fB\-sT\fR)\&. Jeśli nie podano protokołu skanowania, na czas skanowania numery portów zostaną dodane do domyślnej listy portów\&. +.RE +.PP +\fB\-F\fR (Skanowanie Fast (ograniczona ilość portów)) +.RS 4 +Pozwala na określenie, że mają być skanowane tylko porty zawarte w pliku +nmap\-services +z pakietu Nmapa (lub z pliku protokołów dla opcji +\fB\-sO\fR)\&. Opcja ta pozwala na szybsze skanowanie, niż w przypadku wszystkich 65535 portów\&. Ponieważ lista ta zawiera tylko nieco ponad 1200 portów, różnica w szybkości w porównaniu do typowego skanowania TCP (około 1650 portów) nie jest duża\&. Różnica może być większa, jeśli zostanie podany własny, mały plik +nmap\-services +za pomocą opcji +\fB\-\-datadir\fR\&. +.RE +.PP +\fB\-r\fR (Nie używaj losowej kolejności) +.RS 4 +Domyślnie Nmap skanuje porty w kolejności losowej (poza niektórymi najczęściej wykorzystywanymi portami, które są skanowane na początku ze względów wydajnościowych)\&. Takie zachowanie jest normalnie pożądane, jednak można je wyłączyć za pomocą opcji +\fB\-r\fR, wymuszającej sekwencyjną kolejność skanowania\&. +.RE +.SH "DETEKCJA USŁUG I WERSJI" +.PP +Przy skanowaniu zdalnego systemu, Nmap może wykryć otwarte porty takie jak 25/tcp, 80/tcp czy 53/udp\&. Wykorzystując bazę danych zawierającą około 2,200 popularnych usług, znajdującą się w pliku +nmap\-services, Nmap odczyta przypuszczalne nazwy usług dla wykrytych portów \- odpowiednio serwer pocztowy (SMTP), serwer WWW (HTTP) i serwer nazw (DNS)\&. Takie działanie jest zwykle poprawne, większość aplikacji słuchających na porcie 25, to rzeczywiście serwery pocztowe\&. Jednakże, niech Twoja ocena bezpieczeństwa niepolega na tych podpowiedziach! Ludzie mogą i często umieszczają usługi na dziwnych portach\&. +.PP +Nawet jeśli Nmap sie nie myli i hipotetyczny serwer z przykładu powyżej udostępnia usługi SMTP, HTTP i DNS, nie jest to duża ilość informacji na temat tych usług\&. Przeprowadzając testy bezpieczeństwa (lub zwykłą inwentaryzację zasobów) swojej firmy lub klienta, potrzeba uzyskać dokładniejsze informacje na temat usług: jaka aplikacja i w jakiej wersji jest zainstalowana na serwerze SMTP czy DNS\&. Posiadanie tych informacji w znaczący sposób wpływa na możliwość ustalenia podatności danej aplikacji\&. Detekcja wersji pozwala na uzyskanie takiej informacji\&. +.PP +Po tym jak zostaną wykryte za pomocą innych technik skanowania dostępne usługi TCP i UDP, detekcja wersji odpytuje porty w celu określenia dalszych szczegółów na temat aplikacji\&. Baza danych +nmap\-service\-probes +zawiera opisy wielu usług i próbuje dopasować je do uzyskanych informacji\&. Nmap stara się najpierw określić protokół wykorzystywany przez usługę (np\&. ftp, ssh, telnet, http), następnie nazwę aplikacji (np\&. ISC Bind, Apache httpd, Solaris telnetd), wersję usługi, nazwę hosta, typ urządzenia (np\&. drukarka, router), rodzinę systemów operacyjnych (np\&. Windows, Linux) i czasami uzyskuje dodatkowe informacje (takie jak czy X serwer przyjmuje połączenia, obsługiwane wersje protokołu SSH czy nazwę użytkownika KaZaA)\&. Oczywiście większość usług nie dostarczy wszystkich tych informacji\&. Jeśli Nmap został skompilowany z OpenSSL, będzie potrafił łączyć się z serwerami SSL i uzyskiwać informacje od usług ukrytych za szyfrowaną warstwą\&. Kiedy zostaną wykryte usługi RPC, odpowiedni skaner (\fB\-sR\fR) zostanie automatycznie uruchomiony do ustalenia oprogramowania i wersji RPC\&. Z powodu specyfiki UDP, po zakończeniu skanowania niektóre porty pozostają w stanie +otwarty|filtrowany, jako że ten typ skanowania nie potrafi określić, czy port jest otwarty czy filtrowany\&. Skanowanie wersji spróbuje uzyskać odpowiedź od takiego portu (tak jak to robi przy otwartych portach) i jeśli to się uda, zmieni stan na otwarty\&. Porty TCP w stanie +otwarty|filtrowany +są traktowane w ten sam sposób\&. Należy zwrócić uwagę, że opcja +\fB\-A\fR +poza innymi rzeczami włącza wykrywanie wersji\&. Dodatkowa dokumentacja na temat działania detekcji wersji jest dostępna pod adresem +\m[blue]\fB\%https://nmap.org/vscan/\fR\m[]\&. +.PP +Jeśli Nmap otrzyma odpowiedź, ale nie jest w stanie dopasować jej do żadnej znanej usługi, wyświetli specjalny odcisk palca (fingerprint) usługi wraz z adresem URL, pod którym można go następnie wysłać wraz ze stosownym opisem, jeśli jesteśmy pewni jakiej usłudze odpowiada\&. Proszę poświęcić te kilka minut na wysłanie informacji o nieznanych usługach, a będą mogli z tego skorzystać również inni użytkownicy Nmapa\&. Dzięki temu sposobowi wysyłania Nmap rozpoznaje około 3,000 odcisków dla ponad 350 protokołów usług, takich jak smtp, ftp, http itp\&. +.PP +Detekcja wersji jest włączana i kontrolowana następującymi opcjami: +.PP +\fB\-sV\fR (Detekcja wersji usług) +.RS 4 +Włącza detekcję wersji usług, opisaną powyżej\&. Alternatywnie można użyć opcji +\fB\-A\fR +do jednoczesnego włączenia detekcji wersji usług i systemu operacyjnego\&. +.RE +.PP +\fB\-\-allports\fR (Nie pomijaj żadnych portów przy detekcji wersji) +.RS 4 +Domyslnie, skanowanie wersji Nmapa pomija port TCP 9100, ponieważ niektóre drukarki po prostu drukują wszystko, co zostanie przysłane na ten port, powodując wydruk setek stron z zapytaniami HTTP, binarnymi zapytaniami SSL itp\&. Takie zachowanie może zostać wyłączone poprzez modyfikację lub usunięcie dyrektywy +Exclude +w pliku +nmap\-service\-probes, lub poprzez dodanie opcji +\fB\-\-allports\fR, wymuszającej skanowanie wszystkich portów niezależnie od dyrektywy +Exclude\&. +.RE +.PP +\fB\-\-version\-intensity <poziom>\fR (Ustaw poziom skanowania wersji) +.RS 4 +Podczas przeprowadzania skanowania wersji (\fB\-sV\fR), Nmap przeprowadza serię testów, przy czym każdy z nich ma przypisany swój poziom pomiędzy 1 a 9\&. Niskie poziomy działają poprawnie w stosunku do najpopularniejszych usług, wysokie numery obejmują mało popularne\&. Poziom skanowania określa które testy zostaną wykonane\&. Czym wyższy poziom, tym większa szansa na prawidłowe rozpoznanie mało popularnych usług\&. Domyśly poziom to 7\&. Jeśli test zostanie powiązany z wykrytą usługą z pliku +nmap\-service\-probes, określoną dyrektywą +ports, zostanie on wykonany niezależnie od ustalonego poziomu wykrywania wersji\&. Zachowanie takie ma na celu zawsze poprawne wykrywanie domyślnych usług na otwartych portach, wykrywanie serwera DNS na porcie 53, SSL na porcie 443 itp\&. +.RE +.PP +\fB\-\-version\-light\fR (Włącz tryb delikatny) +.RS 4 +Jest wygodniejszym odpowiednikiem ustalającym wartość +\fB\-\-version\-intensity 2\fR\&. Opcja ta pozwala na znaczne przyspieszenie wykrywania wersji, kosztem dokładności\&. +.RE +.PP +\fB\-\-version\-all\fR (Użyj wszystkich testów) +.RS 4 +Odpowiednik opcji +\fB\-\-version\-intensity 9\fR, powodujący wykonanie wszystkich możliwych testów na każdym porcie\&. +.RE +.PP +\fB\-\-version\-trace\fR (Śledzenie aktywności skanowania wersji) +.RS 4 +Opcja włącza opcje śledzenia błędów podczas wykrywania wersji, powodując wyświetlanie dodatkowych informacji na temat prowadzonych działań\&. Opcja ta jest częścią większej +\fB\-\-packet\-trace\fR\&. +.RE +.PP +\fB\-sR\fR (Skanowanie RPC) +.RS 4 +Metoda ta działa w połączeniu z różnymi metodami skanowania portów Nmapa\&. Na wszystkie wykryte wcześniej porty są wysyłane komendy NULL SunRPC i za ich pomocą sprawdzane jest, czy dany port należy do usług RPC\&. Jeśli tak, identyfikowana jest aplikacja i jej wersja\&. Opcja pobiera takie same informacje jak komenda +\fBrpcinfo \-p\fR, nawet jeśli host jest chroniony za pomocą systemu zaporowego (lub TCP wrapperów)\&. Hosty pośrednie zombie nie są obsługiwane przy tym trybie skanowania\&. Opcja jest automatycznie aktywowana jako część wykrywania wersji usług (\fB\-sV\fR)\&. Jako że detekcja wersji jest daleko bardziej uniwersalna, opcja +\fB\-sR\fR +jest wykorzystywana sporadycznie\&. +.RE +.SH "WYKRYWANIE SYSTEMU OPERACYJNEGO" +.PP +Jedna z najbardziej znanych możliwości Nmapa jest zdalna detekcja systemu operacyjnego za pomocą odcisków palca (fingerprint) stosu TCP/IP\&. Nmap wysyła serię pakietów TCP i UDP do zdalnego systemu i analizuje praktycznie każdy bit z uzyskanych odpowiedzi\&. Po wykonaniu dziesiątek testów takich jak próbkowanie ISN TCP, analiza opcji protokołu TCP i kolejności, próbkowanie IPID i kontrola początkowych rozmiarów okna, Nmap porównuje uzyskane wyniki z bazą z pliku +nmap\-os\-fingerprints +zawierającą ponad 1500 znanych odcisków systemów operacyjnych i wyświetla wynik, jeśli udało sie go odnaleźć\&. Każdy odcisk zawiera tekstowy opis systemu operacyjnego, nazwę jego producenta (np\&. Sun), nazwę systemu (np\&. Solaris), generację (np\&. 10) i typ urządzenia (przeznaczenie ogólne, router, switch, konsola do gier itp)\&. +.PP +Jeśli Nmap nie może ustalić systemu i warunki do jego wykrycia są wystarczające (np\&. wykryto przynajmniej jeden otwarty i jeden zamknięty port), Nmap poda adres URL, dzięki któremu, jeśli jesteśmy pewni, możliwe jest wysłanie opisu nieznanego systemu, wraz z jego odciskiem\&. Wykonanie tej operacji przyczynia się do rozbudowy bazy i poprawy wykrywania, na czym korzystają wszyscy użytkownicy\&. +.PP +Detekcja systemu operacyjnego pozwala na uzyskanie innych informacji, które są zbierane podczas tego procesu\&. Jedną z nich jest czas od uruchomienia hosta, co jest uzyskiwane poprzez wykorzystanie opcji TCP timestamp (RFC 1323) do ustalenia kiedy host był restartowany\&. Informacja ta jest podawana tylko wtedy, jeśli host jej dostarcza\&. Inną informacją jest klasyfikacja przewidywalności numerów sekwencyjnych TCP\&. Badane jest prawdopodobieństwo możliwości wstrzyknięcia pakietów w przechwycone połączenie\&. Informacja ta jest przydatna w przypadku testowania połączeń opartych na zaufaniu do adresu IP nadawcy (rlogin, filtry firewalla itp) lub podczas ukrywania źródła ataku\&. Ten typ ataków jest obecnie rzadko wykorzystywany, jednak niektóre systemy są nadal na niego podatne\&. Podawany poziom trudności jest oparty na statystycznych próbkach i może się zmieniać\&. Ogólnie lepiej jest używać angielskich określeń dla poszczególnych klas, takich jak +„worthy challenge\(rq +(stanowiący wyzwanie) lub +„trivial joke\(rq +(trywialny dowcip)\&. Taki sposób raportowania jest dostępny tylko przy domyślnym formacie raportu przy włączonej opcji zwiększającej szczegółowość podawanych informacji (\fB\-v\fR)\&. Jeśli użyto opcji +\fB\-v\fR +w połączeniu z +\fB\-O\fR, podane zostaną informacje o generowaniu numerów sekwencyjnych IPID\&. Większość adresów należy do klasy +„incremental\(rq +(rosnące) co oznacza, że wartość pola ID w nagłówkach pakietów IP jest zmieniana rosnąco w kolejnych pakietach\&. Taki sposób powiększania numerów powoduje podatność na szereg ataków\&. +.PP +Dokument opisujący działanie i używanie detekcji wersji jest dostępny w wielu językach pod adresem +\m[blue]\fB\%https://nmap.org/osdetect/\fR\m[]\&. +.PP +Wykrywanie systemu operacyjnego jest włączane i kontrolowane przez poniższe opcje: +.PP +\fB\-O\fR (Włączenie wykrywania systemu operacyjnego) +.RS 4 +Włącza wykrywanie systemu operacyjnego opisanego powyżej\&. Alternatywnie można używać opcji +\fB\-A\fR, która włącza jednocześnie wykrywanie systemu operacyjnego i wersji usług\&. +.RE +.PP +\fB\-\-osscan\-limit\fR (Limitowanie wykrywania do obiecujących celów) +.RS 4 +Wykrywanie systemu operacyjnego jest dużo bardziej efektywne, jeśli wykryto przynajmniej po jednym otwartym i zamkniętym porcie TCP\&. Użycie tej opcji spowoduje, że Nmap nie będzie próbował określać systemu operacyjnego, jeśli nie zostały spełnione powyższe kryteria\&. Wykorzystanie tego ograniczenia pozwala na znaczne skrócenie czasu, zwłaszcza w połączeniu z opcją +\fB\-P0\fR +przy skanowaniu wielu adresów\&. Opcja ma znaczenie tylko w połączeniu z +\fB\-O\fR +lub +\fB\-A\fR\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Zgadywanie wersji systemu operacyjnego) +.RS 4 +Jeśli Nmap nie może jednoznacznie dopasować systemu operacyjnego, czasami może sugerować kilka różnych, zbliżonych do siebie\&. Podobieństwo musi być bardzo duże, żeby Nmap zachował się w ten sposób przy domyślnej konfiguracji\&. Wykorzystanie tej opcji pozwala na większą swobodność przy próbach ustalenia wersji systemu\&. +.RE +.SH "ZALEŻNOŚCI CZASOWE I WYDAJNOŚĆ" +.PP +Zawsze najważniejszym priorytetem przy tworzeniu Nmapa była wysoka wydajność\&. Domyślne skanowanie (\fBnmap \fR\fB\fInazwahosta\fR\fR) hosta w sieci lokalnej zajmuje tylko jedną piątą sekundy\&. Jest to zadowalający czas, jednak przy skanowaniu setek tysięcy adresów sumaryczny czas staje się bardzo duży\&. Dodatkowo niektóre typy skanowania, takie jak skanowanie UDP i detekcja wersji także wpływają negatywnie na czas wykonania, podobnie jak konfiguracja systemów zaporowych, na przykład limitująca ilość pakietów\&. Nmap posiada możliwości równoległego skanowania i odpowiednie zaawansowane algorytmy przyspieszające skanowanie, a użytkownik posiada ogromne możliwości wpływania na to jak są one wykorzystywane\&. Zaawansowani użytkownicy uważnie przeglądający komendy Nmapa, nakazują mu dostarczanie tylko istotnych informacji zgodnie z przyjętymi wymaganiami i założeniami czasowymi\&. +.PP +Techniki przyspieszające skanowanie dotyczą ograniczenia wykonywania mało istotnych testów i częstej zmiany wersji Nmapa na najnowszą (zmiany dotyczące przyszpieszenia pracy są wprowadzane dosyć często)\&. Optymalizacja parametrów dotyczących szybkości skanowania również ma duży wpływ i została opisana poniżej\&. +.PP +\fB\-\-min\-hostgroup <ilość_hostów>\fR; \fB\-\-max\-hostgroup <numhosts>\fR (Zmiana ilości hostów w grupie) +.RS 4 +Nmap posiada możliwość skanowania portów i wersji na wielu hostach równocześnie\&. Jest to realizowane poprzez dzielenie listy adresów docelowych na grupy, które są następnie kolejno skanowane\&. Ogólnie skanowanie większych grup jest bardziej efektywne\&. Wadą tego rozwiązania jest opóźnienie w podawaniu wyników testów do czasu przeskanowania całej grupy\&. Przykładowo, jeśli Nmap rozpoczął skanowanie w grupach po 50 adresów, żadne wyniki nie zostaną wyświetlone (poza informacjami podawanymi przez \-v) do czasu zakończenia skanowania pierwszych 50 adresów\&. +.sp +Domyślnie Nmap stosuje rozwiązanie kompromisowe\&. Rozpoczyna z grupą o rozmiarze 5, co pozwala szybko wyświetlić pierwsze wyniki, a następnie stopniowo powiększa rozmiar grupy aż do maksymalnie 1024\&. Dokładne wykorzystywane rozmiary grup są uzależnione od podania dodatkowych opcji\&. Dla uzyskania większej efektywności Nmap używa większych grup dla skanowań UDP oraz przy skanowaniach TCP dotyczących zaledwie kilku portów\&. +.sp +Jeśli maksymalny rozmiar grupy został określony za pomocą opcji +\fB\-\-max\-hostgroup\fR, Nmap nigdy nie przekroczy tego limitu\&. Analogicznie podanie minimalnego rozmiaru za pomocą +\fB\-\-min\-hostgroup\fR +wymusi stosowanie grup o przynajmniej takim rozmiarze\&. Nmap może użyć mniejszej grupy tylko w przypadku, kiedy ilość adresów do przeskanowania jest mniejsza niż założone minimum\&. Obie wymienione opcje pozwalają na utrzymywanie rozmiaru grupy w podanym przedziale, jednak jest to rzadko potrzebne\&. +.sp +Podstawowym zastosowaniem tych opcji jest podawanie dużego minimalnego rozmiaru grupy tak, żeby pełne skanowanie odbywało się szybciej\&. Często stosowaną wartością jest 256, co pozwala na skanowanie w kawałkach o rozmiarze klasy C\&. Przy skanowaniu wielu portów, stosowanie większych wartości minimalnych przeważnie nie poprawi wydajności\&. W przypadku skanowania małych ilości portów pomocne może być stosowanie grup o rozmiarze 2048 lub nawet większym\&. +.RE +.PP +\fB\-\-min\-parallelism <ilość_prób>\fR; \fB\-\-max\-parallelism <ilość_prób>\fR (Kontrola współbierzności testów) +.RS 4 +Opcja ta kontroluje ilość jednoczesnych dla danej grupy adresów testów i jest wykorzystywana podczas wykrywania hostów i skanowania portów\&. Domyślnie Nmap dobiera idealną ilość testów w zależności od parametrów sieci\&. Jeśli jakiś pakiet zostanie zagubiony, zwalnia i zaczyna wykonywać mniejszą ilość testów równolegle\&. Nmap próbuje powoli przyspieszać, jeśli nie są gubione pakiety\&. Podane opcje pozwalają na określenie minimalnego i maksymalnego limitu ilości jednocześnie wykonywanych testów\&. Normalnie ilość ta może spaść do 1 przy złych warunkach sieciowych lub wzrosnąć do kilkuset w idealnych warunkach\&. +.sp +Najczęściej wykorzystywana jest opcja +\fB\-\-min\-parallelism\fR +do ustawiania wyższej niż 1 wartości przy skanowaniu sieci przy złych warunkach\&. Zmiana tej opcji może być ryzykowna, ponieważ ustawienie zbyt wysokiej wartości może sie odbić na poprawności testów\&. Wykorzystanie jej także pociąga za sobą zmniejszenie możliwości Nmapa w zakresie dynamicznego dostosowywania się do warunków panujących w sieci\&. Ustalenie minimalnej ilości na 10 może być sensowne, jednak powinno być stosowane w ostateczności\&. +.sp +Opcja +\fB\-\-max\-parallelism\fR +jest czasami wykorzystywana do zmuszenia Nmapa do nie przeprowadzania więcej niż jednego testu równolegle, co może być użyteczne w połączeniu z opcją\fB\-\-scan\-delay\fR +(opisaną dalej)\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout <czas>\fR, \fB\-\-max\-rtt\-timeout <czas>\fR, \fB\-\-initial\-rtt\-timeout <czas>\fR (Kontrola czasu oczekiwania na wykonanie testu) +.RS 4 +Nmap posiada mechanizm kontrolujący czas oczekiwania na wynik testu, zanim nie zostanie on ponowiony\&. Czas oczekiwania jest zależny od czasu wykonania poprzednich testów\&. Jeśli opóźnienia w sieci okażą sie duże i zmienne, czas oczekiwania może zwiększyć sie do kilku sekund\&. Początkowa wartość jest dosyć konserwatywna (wysoka) i może taka pozostać w przypadku skanowania nie odpowiadających hostów\&. +.sp +Opcje przyjmują wartości w milisekundach, ale można dodać litery +s, +m +lub +h +odnoszące się odpowiednio do sekund, minut i godzin\&. Podanie niższych wartości +\fB\-\-max\-rtt\-timeout\fR +i +\fB\-\-initial\-rtt\-timeout\fR +niż domyślne, może znacząco skrócić czas skanowania\&. Jest to głównie widoczne w przypadku skanowania bez wykorzystywania pinga (\fB\-P0\fR) oraz przy skanowaniu dobrze filtrowanych sieci\&. Nie można również przesadzać w drugą stronę, ustawienie zbyt małego czasu może przekładać sie na dłuższy czas skanowania przez niepotrzebne retransmisje spowodowane upływem czasu oczekiwania na odpowiedź\&. +.sp +Jeśli wszystkie skanowane hosty są w sieci lokalnej, sensownym agresywnym ustawieniem opcje +\fB\-\-max\-rtt\-timeout\fR +jest 100 milisekund\&. Jeśli skanowany ma być inny segment, warto sprawdzić czasy odpowiedzi dla protokołu ICMP \- za pomocą narzędzia ping lub innego pozwalającego na definiowanie pakietów mogących omijać system zaporowy, takiego jak hping2\&. Interesującą nas wielkością jest maksymalny czas odpowiedzi dla 10 lub więcej pakietów\&. Uzyskany czas może zostać po podwojeniu wykorzystany jako wartość dla +\fB\-\-initial\-rtt\-timeout\fR, a po pomnożeniu przez trzy lub cztery dla +\fB\-\-max\-rtt\-timeout\fR\&. Nie jest zalecane ustawianie maksymalnego rtt poniżej 100ms, niezależnie od czasów pingowania, podobnie większego niż 1000ms\&. +.sp +\fB\-\-min\-rtt\-timeout\fR +jest rzadko wykorzystywaną funkcją, która może być przydatna jeśli komunikacja sieciowa jest tak niepewna, że nawet domyślne ustawienia Nmapa są zbyt agresywne\&. Jako że Nmap redukuje czas oczekiwania tylko do momentu w którym sieć zacznie działać poprawnie, potrzeba dodatkowego wydłużania czasu oczekiwania nie jest normalna i powinna zostać zaraportowana jako błąd na liście dyskusyjnej nmap\-dev\&. +.RE +.PP +\fB\-\-max\-retries <ilość>\fR (Maksymalna ilość prób ponawiania skanowania portów) +.RS 4 +Kiedy Nmap nie otrzyma odpowiedzi na skanowanie portu, może to oznaczać, że port ten jest filtrowany\&. Możliwe jest jednak także, że pakiet testu lub odpowiedzi po prostu zaginął w sieci, albo że host limituje ilość możliwych odpowiedzi w jednostce czasu i właśnie tymczasowo je zablokował\&. Większą pewność uzyskuje się dzieki powtarzaniu testu w przedstawionych przypadkach\&. Jeśli Nmap wykryje problemy z komunikacją sieciową, może ponawiać próbę badania portu wiele razy, zanim sie podda\&. Z jednej strony zwiększa to dokładność testów, z drugiej wydłuża czas ich wykonania\&. Jeśli wydajność jest krytycznym aspektem, skanowania mogą zostać przyspieszone poprzez limitowanie dozwolonej ilości retransmisji\&. Ustawienie opcji +\fB\-\-max\-retries 0\fR +, całkowicie wyłączającej powtarzanie testów jest wykorzystywane sporadycznie\&. +.sp +Domyślnie (bez stosowania opcji +\fB\-T\fR) dozwolone jest maksymalnie 10 powtórzeń\&. Jeśli sieć działa prawidłowo i skanowane hosty nie limitują ilości pakietów, Nmap zwykle wykorzystuje jedną retransmisję\&. Dlatego też większość skanowań nie zostanie dotkniętych zmianą wartości +\fB\-\-max\-retries\fR +na trzy\&. Stosowanie tak niskich wartości pozwala na znaczne przyspieszenie skanowania hostów limitujących ilość odpowiedzi\&. Jeśli Nmap będzie zbyt szybko poddawał się przy skanowaniu portów, część informacji nie zostanie zebrana, dlatego być może warto skorzystać z opcji przerywającej test +\fB\-\-host\-timeout\fR, która dotyczy całego hosta, a nie tylko pojedynczych testów\&. +.RE +.PP +\fB\-\-host\-timeout <czas>\fR (Pomijaj powolne hosty) +.RS 4 +Skanowanie niektórych hostów trwa +\fIbardzo długo\fR\&. Może to być spowodowane niezbyt wydajnym sprzętem sieciowym lub oprogramowaniem, limitowaniem ilości pakietów czy restrykcjami systemu zaporowego\&. Niewielki procent hostów może zabrać większość czasu przeznaczonego na skanowanie\&. Czasami najlepszym rozwiązaniem jest ich pominięcie z wykorzystaniem opcji +\fB\-\-host\-timeout\fR +z parametrem oznaczającym ilość milisekund, jakie jesteśmy w stanie poświęcić na czekanie per host\&. Parametr można również podawać w sekundach, minutach lub godzinach dodając odpowiednio litery +s, +m +lub +h\&. Często dodaję +30m +żeby mieć pewność, że Nmap nie będzie skanował jednego hosta dłużej niż pół godziny\&. Trzeba pamiętać, że Nmap może równolegle w tym czasie skanować inne hosty, więc nie bedzie to czas kompletnie stracony\&. Host który przekroczy czas jest pomijany i nie są dla niego wyświetlane wyniki takie jak lista portów, system operacyjny czy wersje usług\&. +.RE +.PP +\fB\-\-scan\-delay <czas>\fR; \fB\-\-max\-scan\-delay <czas>\fR (Ustaw opóźnienie pomiędzy testami) +.RS 4 +Opcja pozwala na narzucenie czasu w milisekundach jaki musi minąć pomiędzy kolejnymi testami dla badanego hosta\&. Podobnie jak przy innych opcjach pozwalających na określanie czasu, można dodać +s, +m +lub +h +do parametru do określenia go odpowiednio w sekundach, minutach lub godzinach\&. Opcja ta jest szczególnie użyteczna w przypadku systemów limitujących ilość pakietów\&. Solaris zwykle odpowiada na skanowanie UDP poprzez wysyłanie tylko jednego pakietu ICMP na sekundę, więc wysyłanie zapytań szybciej jest zupełnie nie potrzebne\&. Wykorzystanie opcji +\fB\-\-scan\-delay 1s\fR +pozwala na wymuszenie odpowiedniej prędkości skanowania\&. Normalnie Nmap stara się wykryć jaka powinna być optymalna prędkość skanowania dla każdego hosta, jednak ręczne dodanie takiej opcji nie zaszkodzi, o ile znana jest optymalna prędkość\&. +.sp +Kiedy Nmap zwiększa czas opóźnienia, dostosowując go do limitu ilości otrzymywanych odpowiedzi, czas skanowania dramatycznie rośnie\&. Opcja +\fB\-\-max\-scan\-delay\fR +pozwala na ustawienie maksymalnego limitu do którego może być automatycznie zwiększane opóźnienie\&. Ustawienie tej wartości zbyt nisko może spowodować niepotrzebne retransmisje i pominięcie niektórych portów w przypadku hostów ściśle limitujących ilość pakietów\&. +.sp +Inną możliwością wykorzystanie opcji +\fB\-\-scan\-delay\fR +jest omijanie systemów detekcji intruzów (IDS/IPS)\&. +.RE +.PP +\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (Ustawnienie szablonu zależności czasowych skanowania) +.RS 4 +Opisane wcześniej opcje do zmiany zależności czasowych pozwalają na efektywne i precyzyjne sterowanie skanowaniem, jednak wiele osób uzna je za niepotrzebnie skomplikowane\&. Dodatkowo w wielu przypadkach dobranie odpowiedniej kombinacji parametrów może zająć więcej czasu, niż samo skanowanie\&. Z tego powodu Nmap oferuje prostrze rozwiązanie w postaci sześciu szablonów\&. Ich wybór jest możliwy poprzez wykorzystanie opcji +\fB\-T\fR +z parametrem oznaczającym numer lub nazwę szablonu\&. Dostępne szablony to paranoid (0, paranoidalny), sneaky (1, podstępny), polite (2, grzeczny), normal (3, normalny), aggressive (4, agresywny) i insane (5, szalony)\&. Pierwsze dwa wykorzystywane są do omijania systemów IDS\&. Szablon polite spowalnia skanowanie powodując mniejsze obciążenie łącza i zmniejszające wykorzystanie zasobów w badanym systemie\&. Domyślnie używany jest normal, więc podawanie +\fB\-T3\fR +nic nie zmieni\&. Szablon agresywny przyspiesza skanowanie przy założeniu że korzystamy z szybkiej i nie przeciążonej sieci\&. Insane zakłada wykorzystanie ponad przeciętnie szybkiej sieci lub jeśli chcemy uzyskać dużą szybkość kosztem możliwej utraty dokładności\&. +.sp +Szablony pozwalają poinformować Nmapa jak dużej agresywności od niego oczekujemy przy jednoczesnym pozwoleniu mu na automatyczne dobieranie pozostałych parametrów czasowych\&. Wprowadzane też są inne drobne modyfikacje, do których nie istnieją odzielne opcje\&. Na przykład, +\fB\-T4\fR +zabrania wzrostu dynamicznego opóźnienia skanowania powyżej 10ms dla portów TCP, a w przypadku +\fB\-T5\fR +powyżej 5ms\&. Szablony mogą być używane w połączeniu z innymi opcjami do ustawiania zależności czasowych o ile zostaną umieszczone przed pozostałymi opcjami w linii poleceń (inaczej domyślne ustawienia z szablonu zastąpią ustawione innymi opcjami)\&. Większość dzisiejszych sieci może być z powodzeniem skanowana z wykorzystaniem opcji +\fB\-T4\fR\&. +.sp +Jeśli używasz łącza szerokopasmowego lub sieci ethernet, rekomendowane jest stałe używanie szablonu +\fB\-T4\fR\&. Wiele osób lubi +\fB\-T5\fR, lecz jest ono jak dla mnie trochę za agresywne\&. Ludzie czasami używają +\fB\-T2\fR +ponieważ myślą, że zminiejszają szanse na zawieszenie serwera lub uważają się za bardziej kulturalnych z założenia, często nie zdając sobie sprawy z tego, jak wolne jest +\fB\-T Polite\fR +\- ich skanowania może trwać dziesięć razy dłużej\&. Zawieszanie hostów i problemy z pasmem są rzadko spotykane przy domyślym +\fB\-T3\fR, i ta opcja jest polecana dla ostrożnych skanujących\&. Nie włączanie detekcji wersji jest daleko bardziej efektywnym sposobem na unikanie problemów\&. +.sp +Podczas gdy opcje +\fB\-T0\fR +i +\fB\-T1\fR +mogą być użyteczne przy unikaniu wykrycia przez systemy IDS, są niesamowicie powolne przy skanowaniu setek adresów lub portów\&. Przy tak długich skanowaniach możesz raczej chcieć ustawić ręcznie poszczególne zależności czasowe, niż polegać na predefiniowanych wartościach z +\fB\-T0\fR +i +\fB\-T1\fR\&. +.sp +Głównym efektem działania +\fBT0\fR +jest ograniczenie ilości równolegle przeprowadzanych testów do jednego i wprowadzenie odstępu pomiędzy kolejnymi testami o długości 5 minut\&. Opcje +\fBT1\fR +i +\fBT2\fR +są podobne, ale czakają już tylko odpowiednio 15 i 0\&.4 sekundy pomiędzy testami\&. +\fBT3\fR +jest domyślnym ustawieniem Nmapa włączając w to zrównoleglanie testów\&. +\fBT4\fR +jest odpowiednikiem podania opcji +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR +i ustawienia maksymalnego opóźnienia przy skanowaniu TCP na 10 milisekund\&. Opcja +\fBT5\fR +jest alternatywą dla +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 900000\fR +oraz ustawienia maksymalnego czasu opóźnienia dla skanowania TCP na 5ms\&. +.RE +.SH "FIREWALL/IDS I PODSZYWANIE SIĘ" +.PP +Wielu pionierów ineternetu wykorzystywało globalną otwartą sieć opartą o uniwersalną przestrzeń adresową pozwalającą na tworzenie wirtualnych połączeń pomiędzy dwoma dowolnymi węzłami\&. Pozwalało to hostom na równoprawną komunikację przy której każdy mógł serwować i pobierać dane od drugiego\&. Ludzie mogli uzyskać dostęp do wszystkich swoich systemów z dowolnego miejsca w sieci\&. Wizja nieograniczonej łączności została ograniczona przez wyczerpujące się zapasy wolnych adresów IP i względy bezpieczeństwa\&. We wczesnych latach 90\-tych organizacje zaczęły masowo wprowadzać systemy zaporowe dla ograniczenia możliwości komunikacji\&. Duże sieci zostały otoczone kordonem zabezpieczeń w postaci proxy aplikacyjnych, translacji adresów i filtrowania pakietów\&. Niczym nie ograniczany przepływ informacji ustąpił ścisłym regulacjom dotyczącym dozwolonych dróg komunikacji i treści nimi przesyłanych\&. +.PP +Zabezpieczenia sieciowe takie jak systemy zaporowe mogą bardzo utrudnić uzyskiwanie informacji o sieci i jej architekturze\&. Nmap posiada wiele funkcji pozwalających zrozumieć działanie złożonych sieci i na weryfikacje działania filtrów pakietów i ich zgodności z założeniami\&. Pozwala nawet na omijanie źle zaimplementowanych zabezpieczeń\&. Jednym z najlepszych sposobów na poznanie bezpieczeństwa swojej sieci jest próba jego przełamania\&. Zacznij myśleć jak atakujący, który stosuje techniki z tej części dokumentacji przeciwko Twojej sieci\&. Uruchom skanowania FTP bounce, Idle, dodaj fragmentację pakietów lub spróbuj uruchomić tunel omijający lokalne proxy\&. +.PP +W połączeniu z ograniczeniami aktywności sieciowej, firmy coraz częściej rozpoczynają monitorowanie ruchu sieciowego za pomocą systemów detekcji intruzów (IDS)\&. Wszystkie popularne systemy IDS mają dołączone reguły wykrywające skanowania Nmapa, ponieważ skanowania takie czasami poprzedzają ataki\&. Wiele z tych systemów ostatnio przeistoczyło się w systemy +\fIprewencji\fR +(IPS), które aktywnie przeciwstawiają się niepożądanemu ruchowi\&. Niestety, dla administratorów sieci i producentów systemów IDS, wiarygodne wykrywanie złych intencji poprzez analizę pakietów jest ciężkim orzechem do zgryzienia\&. Cierpliwi atakujący, posiadający odpowiednie umiejętności podparte możliwościami Nmapa zwykle mogą ominąć systemy detekcji intruzów i ich działania nie zostaną wykryte\&. W tym samym czasie administratorzy muszą się zmagać z ogromną ilością fałszywych alarmów dotyczących niepoprawnie zaklasyfikowanej zupełnie niewinnej komunikacji\&. +.PP +Co jakiś czas ktoś sugeruje, że Nmap nie powinien oferować możliwości omijania systemów zaporowych czy systemów IDS\&. Argumentują to możliwością wykorzystania tych funkcji także przez atakujących, a nie tylko przez administratorów podnoszących bezpieczeństwo swoich sieci\&. Problemem jest sama logika, ponieważ atakujący i tak będą wykorzystywali tego typu metody używając innych narzędzi lub samemu wprowadzając odpowiednią funkcjonalność do kodu Nmapa\&. Równocześnie administratorzy będą mieli utrudniony dostęp do odpowiednich narzędzi i ich praca będzie trudniejsza\&. Uruchomienie nowoczesnego, bezpiecznego serwera FTP jest dużo skuteczniejszą metodą ochrony niż ograniczanie dostępności do narzędzi pozwalających na przeprowadzanie ataków FTP bounce\&. +.PP +Nie ma magicznej kuli (lub opcji Nmapa) do przełamywania i obchodzenia systemów zaporowych i IDS\&. Wymaga to umiejętności i doświadczenia\&. Dokładne instrukcje wykraczają poza zakres tej dokumentacji, która jest jedynie listą dostępnych opcji wraz z opisami jak one działają\&. +.PP +\fB\-f\fR (fragmentacja pakietów); \fB\-\-mtu\fR (Używanie wybranego MTU) +.RS 4 +Opcja +\fB\-f\fR +powoduje wykorzystywanie przy skanowaniu (włączając w to skanowanie ping) małych pofragmentowanych pakietów\&. Idea polega na podzieleniu nagłówka TCP na wiele pakietów, co powoduje utrudnienia w ich przetwarzaniu przez filtry pakietów, systemy detekcji intruzów oraz irytujące komplikacje przy ustalaniu co się dzieje\&. Ale uwaga! Wiele programów ma problemy przy obsłudze tego typu pakietów\&. Przestarzały sniffer Sniffit wykonuje nieprawidłową operacje i zostaje zamknięty zaraz po odebraniu już pierwszego z takich pakietów\&. Dodanie tej opcji spowoduje automatyczne dzielenie wszystkich pakietów wysyłanych przez Nmapa na mniejsze o rozmiarze maksymalnie 8 bajtów\&. Przykładowo 20 bajtowy nagłówek TCP zostanie podzielony na 3 pakiety: najpierw dwa po 8 bajtów i ostatni 4 bajty\&. Oczywiście każdy fragment dostaje własny nagłówek IP\&. Dodanie drugiej opcji +\fB\-f\fR +powiększa wykorzystywany rozmiar fragmentów z 8 do 16 (redukując ilość fragmentów)\&. Możliwe jest również podanie własnego rozmiaru za pomocą opcji +\fB\-\-mtu\fR\&. Nie używaj parametru +\fB\-f\fR, jeśli używasz +\fB\-\-mtu\fR\&. Podawany rozmiar musi być wielokrotnością 8\&. W niektórych systemach filtry pakietów nie otrzymują bezpośrednio pakietów, tylko są one wstępnie kolejkowane, tak jak w Linuxie przy ustawieniu opcji CONFIG_IP_ALWAYS_DEFRAG w kernelu, jednak w wielu przypadkach takie opcje nie są włączane ze względów wydajnościowych\&. Opcja taka nie jest również włączana jeśli zachodzi możliwość routowania poszczególnych pakietów różnymi ścieżkami\&. Niektóre systemy operacyjne potrafią defragmentować pakiety wysyłane przez kernel, Linux z iptables i modułem śledzenia połączeń jest jednym z przykładów\&. Uruchamiając skanowanie można podsłuchać za pomocą sniffera takiego jak Ethereal, czy wychodzące pakiety są rzeczywiście pofragmentowane\&. Jeśli system powoduje tego typu problemy, można wypróbować opcje +\fB\-\-send\-eth\fR, która pomija stos TCP/IP i wysyła bezpośrenio ramki ethernetowe\&. +.RE +.PP +\fB\-D <decoy1 [,decoy2][,ME],\&.\&.\&.>\fR (Ukrywaj skanowanie za pomocą innych hostów) +.RS 4 +Powoduje skanowanie, wykrywane jako przychodzące z kilku miejsc równocześnie\&. System IDS może wykryć 5\-10 różnych skanowań z różnych adresów, jednak nie będzie w stanie ocenić który z nich jest prawdziwym źródłem pochodzenia, a które tylko niewinnymi zasłonami\&. Chociaż metoda ta może zostać rozpoznana poprzez śledzenie ścieżki pakietów na routerach i innych aktywnych mechanizmów, ogólnie jest efektywną techniką na ukrywanie swojego adresu IP\&. +.sp +Podwając listę poszczególnych hostów\-zasłon, trzeba je oddzielić przecinkami, można również na tej liście umieścic +ME +oznaczające pozycję własnego adresu IP na liście\&. W przypadku wykorzystania przynajmniej 6\-tej pozycji na liście dla własnego IP, wiele popularnych systemów wykrywających skanowania (na przykład scanlogd firmy Solar Designer) nawet nie pokaże prawdziwego źródła pochodzenia pakietów na liście ataków\&. Jeśli +ME +nie zostanie dodane, Nmap umieści je losowo na liście\&. +.sp +Należy zwrócić uwagę, ze hosty\-przykrywki powinny być dostępne, inaczej będzie można łatwo wykryć host skanujący i że można niechcący dokonać ataku SYN flood na hosty skanowane\&. Bezpieczniej jest używać adresów IP zamiast nazw systemów\-przykrywek, bo nie zostawi to informacji w logach ich serwera nazw\&. +.sp +Przykrywki są używane zarówno przy początkowym skanowaniu ping (z wykorzystaniem ICMP, SYN ACK itp), podczas skanowania portów jak i przy wykrywaniu systemu operacyjnego\&. Technika ta nie działa podczas wykrywania wersji i skanowania metodą connect()\&. +.sp +Używanie zbyt wielu adresów hostów\-przykrywek znacznie spowalnia skanowanie i może nawet spowodować zmniejszenie dokładności\&. Dodatkowo niektórzy dostawcy usług odfiltrowują pakiety podszywające się pod adresy z innych sieci, jednak wielu nie robi tego wcale\&. +.RE +.PP +\fB\-S <adres_ip>\fR (Ustawienie adresu nadawcy) +.RS 4 +W niektórych przypadkach Nmap nie potrafi ustalić właściwego adresu nadawcy (i wyświetli stosowny komunikat)\&. W takim przypadku należy za pomocą opcji +\fB\-S\fR +podać adres lokalnego interfejsu przez który mają być wysyłane pakiety\&. +.sp +Inną możliwością tej opcji jest podmiana adresu nadawcy tak, by cel skanowania uważał, że skanuje go +\fIktoś inny\fR\&. Wyobraź sobie, ze firmę nagle zacznie skanować konkurencja! W przypadku takiego użycia, zwykle będzie wymagana opcja +\fB\-e\fR, a zalecana również +\fB\-P0\fR\&. +.RE +.PP +\fB\-e <interfejs>\fR (Użyj wybranego interfejsu) +.RS 4 +Informuje Nmapa przez który interfejs ma wysyłać i odbierać pakiety\&. Nmap powinien wykryć go automatycznie, ale jeśli mu się nie uda, można to zrobić ręcznie\&. +.RE +.PP +\fB\-\-source\-port <numerportu>;\fR \fB\-g <numerportu>\fR (Używaj podanego portu źródłowego) +.RS 4 +Jednym z najczęściej spotykanych problemów konfiguracyjnych jest ufanie danym przychodzącym z określonego portu źródłowego\&. Łatwo jest zrozumieć, czemu tak się dzieje\&. Administrator instaluje nowiusieńki system zaporowy, którego jedyną wadą są zgłoszenia od niepocieszonych użytkowników, którym nagle przestały działać aplikacje\&. Przykładem może być DNS, ponieważ odpowiedzi na zapytania z zewnętrznych serwerów przestały dochodzić do sieci\&. Innym przykładem jest FTP, przy stosowaniu aktywnych połączeń zewnętrzne serwery próbują utworzyć połączenia powrotne do klienta żądającego przesłania pliku\&. +.sp +Bezpieczne rozwiązanie dla tych problemów istnieje, często w formie aplikacyjnych serwerów proxy lub analizy protokołu przez systemy zaporowe\&. Niestety istnieją również inne łatwiejsze, ale i mniej bezpieczne rozwiązania\&. Wielu administratorów wpada w pułapkę zakładając, że dane przychodzące z portu 53 są zawsze odpowiedziami serwera DNS, a z 20 aktywnymi połączeniami FTP i zezwalając na przechodzenie takiego ruchu przez system zaporowy\&. Często zakładają, że żaden atakujący nie spróbuje wykorzystać takiej luki\&. Zdaża się również, że problem taki zostaje wprowadzony do konfiguracji jako tymczasowe rozwiązanie, jednak zapominają o jego zmianie na bardziej bezpieczne\&. +.sp +Przepracowani administratorzy nie są jedynymi, którzy wpadają w taką pułapkę\&. Wiele komercyjnych produktów jest dostarczanych z podobnymi problemami\&. Zdarzyło się to nawet firmie Microsoft, której filtry IPsec dostarczone z Windows 2000 i XP zawierają regułę wpuszczającą cały ruch TCP i UDP pochodzący z portu 88 (Kerberos)\&. Innym dobrze znanym przykładem jest Zone Alarm personal firewall, który do wersji 2\&.1\&.25 włącznie nie filtrował pakietów UDP z portów 53 (DNS) i 67 (DHCP)\&. +.sp +Nmap oferuje dwie ekwiwalentne opcje +\fB\-g\fR +i +\fB\-\-source\-port\fR +pozwalające na wykorzystanie opisanej wyżej funkcjonalności poprzez podanie numeru portu z którego wysyła dane, o ile jest to tylko możliwe\&. Nmap musi używać różnych numerów portów dla poprawnego działania niektórych testów wykrywających system operacyjny, zapytania DNS również ignorują opcję +\fB\-\-source\-port\fR, ponieważ Nmap wykorzystuje do tego biblioteki systemowe\&. Większość typów skanowania TCP, włączając skanowanie SYN obsługuje tę opcję we wszystkich przypadkach, podobnie jak i UDP\&. +.RE +.PP +\fB\-\-data\-length <rozmiar>\fR (Dodawaj losowe dane do wysyłanych pakietów) +.RS 4 +Domyślnie Nmap wysyła pakiety o minimalnej wielkości zawierające jedynie sam nagłówek\&. Pakiety TCP mają 40 bajtów, a ICMP tylko 28\&. Ta opcja pozwala dołączać do większości pakietów losowe dane o podanym rozmiarze\&. Pakiety używane do detekcji systemu operacyjnego (\fB\-O\fR) pozostają nie zmienione, ale przy większości pakietów ping i skanowania portów opcja ta jest wykorzystywana\&. Powiększanie pakietów spowalnia proces skanowania, jednocześnie czyniąc go mniej podejrzanym\&. +.RE +.PP +\fB\-\-ttl <wartość>\fR (Ustaw czas życia pakietu IP) +.RS 4 +Ustawia czas życia (TTL) pakietów na podaną wartość\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Losowanie kolejności skanowania hostów) +.RS 4 +Opcja powoduje włączenie losowania kolejności hostów w każdej grupie do 8096 hostów przed ich skanowaniem\&. Zachowanie takie czyni skanowanie mniej oczywistym dla wielu systemów monitorujących sieci, zwłaszcza w połączeniu z opcją spowalniającą skanowanie\&. Możliwe jest losowanie z jeszcze większych grup, poprzez zmianę stałej PING_GROUP_SZ w pliku +nmap\&.h +i rekompilacji\&. Innym rozwiązaniem jest wygenerowanie listy adresów IP za pomocą opcji lista skanowania (\fB\-sL \-n \-oN \fR\fB\fInazwapliku\fR\fR) i losowemu pomieszaniu adresów na niej za pomocą skryptu Perla, oraz podaniu jej Nmapowi za pomocą opcji +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac <adres mac, prefiks, lub nazwa producenta >\fR (Podmieniaj adres MAC) +.RS 4 +Podaje Nmapowi adres MAC z użyciem którego będą wysyłane wszystkie pakiety ethernet\&. Opcja włącza również automatycznie +\fB\-\-send\-eth\fR +dla uzyskania pewności wysyłania pakietów na poziomie ethernetu\&. Podany adres MAC może przyjmować wiele postaci\&. Jeśli zostanie podany znak +„0\(rq, Nmap wybierze kompletnie losowy adres MAC na czas trwania danej sesji\&. Podanie parzystej ilości cyfr heksadecymalnych (mogą być oddzielone dwukropkami), spowoduje wykorzystanie jej jako adresu MAC, przy czym jeśli podano mniej niż 12 cyfr szestnastkowych, Nmap wypełni pozostałość 6 bajtów losowymi wartościami\&. Jeśli podany ciąg nie jest 0 lub liczbą heksadecymalną, Nmap poszuka w pliku +nmap\-mac\-prefixes +nazwy producenta zawierającego podany ciąg (duże i małe litery nie są rozróżniane) i jeśli znajdzie, użyje identyfikatora producenta OUI (3 bajty) wypełniając pozostałe 3 bajty losowo\&. Przykłady poprawnych argumentów to +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2, +Cisco +itp\&. +.RE +.PP +\fB\-\-badsum\fR (Wysyłanie pakietów z nieprawidłową sumą kontrolną TCP/UDP) +.RS 4 +Powoduje wstawianie do nagłówków wysyłanych pakietów nieprawidłowych sum kontrolnych\&. Jako że prawie każdy stos IP odrzuci tego typu pakiety, otrzymana odpowiedź najprawdopodobniej pochodzi od systemu zaporowego lub IDS, które nie przejmują się sumami kontrolnymi\&. Dokładniejszy opis tej techniki znajduje się pod adresem +\m[blue]\fB\%https://nmap.org/p60-12.txt\fR\m[] +.RE +.SH "WYJŚCIE" +.PP +Każde narzędzie jest tylko tak dobre, jak wyniki które się za jego pomocą uzyskuje\&. Złożone testy i algorytmy nie są nic warte, jeśli ich wyniki nie są zaprezentowane w odpowiedniej formie\&. Z związku z tym, że użytkownicy Nmapa używają go w różny sposób, także w połączeniu z innymi narzędziami, nie ma jednego formatu, który by wszystkich zadowolił\&. Dlatego też Nmap oferuje kilka formatów, włączając w to tryb interaktywny i tryb XML do lepszej integracji z innymi programami\&. +.PP +Dodatkowo poza różnymi formatami wyjściowymi, Nmap posiada opcje pozwalające na kontrolowanie poziomu szczegółowości dostarczanych informacji oraz komunikatów do śledzenia błędów\&. Wyniki mogą być przekazywane do standardowego wyjścia jak i do plików (w trybie zastępowania lub dołączania)\&. Wygenerowane pliki mogą również być wykorzystywane do wznowienia przerwanych skanowań\&. +.PP +Nmap pozwala na uzyskanie pięciu różnych formatów raportów\&. Domyślny to +format interaktywny +i jest wykorzystywany w połączeniu ze standardowym wyjściem\&. Jest także format +format normalny, podobny do +interaktywnego, jednak wyświetla mniej rutynowych informacji i ostrzeżeń, ponieważ jest raczej przewidziany do poźniejszej analizy, niż do interaktywnego oglądania w trakcie skanowania\&. +.PP +Tryb XML jest jednym z najważniejszych, jako że może zostać przekonwertowany na HTML lub bezporoblemowo przetworzony przez inne programy, takie jak graficzne interfejsy użytkownika lub zaimportowany do bazy danych\&. +.PP +Pozostałe dwa najmniej skomplikowane to format pozwalający na łatwe przetwarzanie za pomocą wyrażeń regularnych (grep), który zawiera większość informacji o hoście w jednej linii, oraz format +sCRiPt KiDDi3 0utPUt\&. +.PP +Podczas gdy format interaktywny jest domyślny i nie posiada dodatkowych opcji, pozostałe cztery formaty używają tej samej składni w postaci jednego argumentu, będącego nazwą pliku do którego mają zostać zapisane wyniki\&. Możliwe jest podawanie wielu formatów jednocześnie, jednak każdy z nich może być podany tylko raz\&. Na przykład, jeśli chcesz zapisać format normalny do późniejszego przegladania i równocześnie XML do przetwarzania przez inne programy, używamy składni +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. W przykładach z tej dokumentacji dla ułatwienia używamy prostych nazw, takich jak +myscan\&.xml, jednak w codzinnym użyciu zalecane jest stosowanie nazw bardziej opisowych\&. Nazwy te mogą być dowolnie wybierane, zgodnie z własnymi preferencjami, osobiście preferuję długie nazwy zawierające datę skanowania i słowo lub dwa opisujące skanowanie, umieszczone w katalogu zawierającym nazwę firmy skanowaniej\&. +.PP +Podczas zapisywania wyników do pliku Nmap nadal wyświetla interaktywną formę raportu na standardowe wyjście\&. Przykładowo, komenda +\fBnmap \-oX myscan\&.xml cel\fR +zapisuje wyniki w formacie XML do pliku +myscan\&.xml +równocześnie wyświetlając je w trybie interaktywnym tak, jakby opcja +\fB\-oX\fR +nie była podana\&. Możliwa jest zmiana tego zachowania poprzez podanie znaku myślnika (\-) zamiast nazwy pliku przy wybranym formacie, co spowoduje wyświetlanie go zamiast formy interaktywnej\&. Tak więc komenda +\fBnmap \-oX \- cel\fR +spowoduje wyświetlenie tylko formatu XML na standardowym wyjściu stdout\&. Komunikaty o poważnych błędach sa nadal wyświetlane za pomocą standardowego wyjścia błędów stderr\&. +.PP +Inaczej niż przy innych opcjach, spacja pomiędzy opcją (taką jak +\fB\-oX\fR), a nazwą pliku lub myślnika nie jest wymagana\&. Jeśli spacja zostanie pominięta przy opcjach takich jak +\fB\-oG\-\fR +lub +\fB\-oXscan\&.xml\fR, z powodów kompatybilności wstecznej Nmap zapisze wyniki w formacie normalnym w plikach odpowiednio +G\- +i +Xscan\&.xml\&. +.PP +Nmap posiada również opcje pozwalające na ustalenie poziomu szczegółowości podawanych informacji jak również pozwalające na dołączanie wyników do już istniejących plików\&. Opcje te zostały opisane poniżej\&. +.PP +\fBFormaty wyjściowe Nmapa\fR +.PP +\fB\-oN <nazwapliku>\fR (Format normalny) +.RS 4 +Powoduje zapis w +formacie normalnym +do wskazanego pliku\&. Jak napisano wyżej, format ten różni się nieco od +formatu interaktywnego\&. +.RE +.PP +\fB\-oX <nazwapliku>\fR (Format XML) +.RS 4 +Powoduje zapis w +formacie XML +do wskazanego pliku\&. Nmap dołącza definicje formatu dokumentu (DTD), który pozwala innym programom na weryfikację zawartości tego pliku\&. Funkcja ta jest głównie przeznaczona do wykorzystania przez oprogramowanie dodatkowe, jednak może pomóc w ręcznej analizie zawartych danych\&. DTD opisuje jakie elementy XML mogą być legalnie uzywane w pliku i często podaje jakie wartości mogą przyjmować poszczególne znaczniki\&. Zawsze aktualna DTD wersja jest dostępna pod adresem +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]\&. +.sp +XML jest stabilnym formatem, który może być łatwo przetwarzany przez inne programy\&. Darmowe biblioteki do przetwarzania XML są dostępne dla większości języków programowania, takich jak C/C++, Perl, Python czy Java\&. Napisano nawet wiele procedur dostosowanych specjalnie do potrzeb Nmapa\&. Przykładami są +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[11]\d\s+2 +i +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[12]\d\s+2 +dla Perla (CPAN)\&. W wiekszości dużych aplikacji korzystających z Nmapa preferowany jest właśnie format XML\&. +.sp +W formacie XML jest również opisany styl XSL, który może zostać wykorzystany do konwersji do HTML\&. Najprostrzym sposobem jest po prostu wczytanie pliku XML do przeglądarki internetowej, takiej jak Firefox czy IE\&. Domyślnie zadziała to tylko na komputerze na którym był uruchamiany Nmap (lub skonfigurowanym podobnie), z powodu umieszczenia ścieżki do pliku +nmap\&.xsl +właściwej dla danego systemu\&. Za pomocą opcji +\fB\-\-webxml\fR +lub +\fB\-\-stylesheet\fR +można utworzyć przenośny raport XML, możliwy do obejrzenia w formacie HTML na każdym komputerze podłączonym do Internetu\&. +.RE +.PP +\fB\-oS <nazwapliku>\fR (Format ScRipT KIdd|3) +.RS 4 +Format script kiddie jest podobny do interaktywnego, jednak jest dodatkowo przetworzony na potrzeby l33t HaXXorZ, którzy nie byli zadowoleni z domyślnego, uporządkowanego formatu Nmapa\&. Osoby bez poczucia humoru powinny wiedzieć przed zarzucaniem mi +„pomagania script kiddies \(rq, że opcja ta jest tylko żartem, a nie pomocą\&. +.RE +.PP +\fB\-oG <nazwapliku>\fR (Format "grepowalny") +.RS 4 +Ten format został opisany jako ostatni, jako że jest już przestarzały\&. Format XML jest dużo lepszy i jest prawie tak samo wygodny dla zaawansowanych użytkowników\&. XML jest standardem, do którego napisano dziesiątki bibliotek, podczas gdy format grepowalny jest moim osobistym wymysłem\&. XML pozwala również na łatwe rozszerzanie o nowe funkcje Nmapa w miarę ich dodawania, podczas gdy w formacie grepowalnym muszą one być pomijane z powodu braku miejsca\&. +.sp +Niezależnie od tego, format ten jest nadal całkiem popularny\&. Jest prostym formatem opisującym każdy host w oddzielnej linii i umożliwiający bardzo proste wyszukiwanie i przetwarzanie za pomocą standardowych narzędzi systemów UNIX takich jak grep, awk, cut, sed, diff i Perl\&. Format ten jest wygodny do szybkiego odnajdywania potrzebnych danych, na przykład hostów z otwartym portem SSH lub używających systemu Solaris i jest to możliwe za pomocą wycinania interesujących informacji za pomocą prostych poleceń awk czy cut\&. +.sp +Format grepowalny składa sie z linii komentarzy (rozpoczynających się od znaku #) i linii wyników\&. Linia wyników składa się z sześciu pól, oddzielonych znakami tabulacji i przecinkami\&. Polami tymi są +Host, +Ports, +Protocols, +Ignored State, +OS, +Seq Index, +IPID +i +Status\&. +.sp +Najważniejszymi z tych pól są najczęściej pola +Ports, które zawierają informacje o interesujących portach, w postaci listy oddzielonej przecinkami\&. Każda pozycja na liście reprezentuje jeden otwarty port i opisuje go siedmioma, oddzielonymi znakami (/) subpolami: +Port number, +State, +Protocol, +Owner, +Service, +SunRPC info +i +Version info\&. +.sp +Tak jak i w przypadku formaty XML, dokładny opis formatu grepowalnego przekracza zakres tej dokumentacji i jest dostępny pod adresem +\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]\&. +.RE +.PP +\fB\-oA <nazwa>\fR (Wyjście we wszystkich formatach) +.RS 4 +Dla wygody można podać opcję +\fB\-oA\fR\fB\fInazwa\fR\fR +do zapisywania wyników w formacie normalnym, XML i grepowalnym równocześnie\&. Wyniki zostaną zapisane odpowiednio w plikach o nazwach +\fInazwa\fR\&.nmap, +\fInazwa\fR\&.xml i +\fInazwa\fR\&.gnmap\&. Tak jak i w przypadku innych programów, nazwa może zostać poprzedzona scieżką, na przykład +~/nmaplogs/foocorp/ +w systemach UNIX lub +c:\ehacking\esco +pod Windows\&. +.RE +.PP +\fBPoziom szczegółowości i opcje diagnozowania błędów\fR +.PP +\fB\-v\fR (Podwyższenie poziomu raportowania) +.RS 4 +Podwyższenie poziomu raportowania powoduje wyświetlanie przez Nmapa większej ilości informacji na temat postępów skanowania\&. Otwarte porty są pokazywane zaraz po ich wykryciu, podawany jest także przewidywany czas zakończenia skanowania w przypadku kiedy Nmap zakłada, że test potrwa dłużej niż kilka minut\&. Dwukrotne użycie tej opcji powoduje dalsze powiększenie poziomu szczegółowości, trzykrotne i dalsze nie dają już żadnego efektu\&. +.sp +Większość zmian dotyczy trybu interaktywnego, niektóre odnoszą się także do trybu normalnego i script kiddie\&. Pozostałe formaty są przystosowane do przetwarzania przez maszyny, więc Nmap może zawsze podawać szczegółowe informacje bez zmniejszania czytelności dla człowieka\&. Są jednak i drobne różnice w innych formatach, na przykład w formacie grepowalnym linia komentarza zawierająca listę skanowanych hostów jest dodawana tylko w trybie podwyższonej szczegółowości, ze względu na swoją dosyć znaczną długość\&. +.RE +.PP +\fB\-d [poziom]\fR (Ustawianie poziomu śledzenia błędów) +.RS 4 +Jeśli dostępne poziomy szczegółowości nie dostarczają wystarczającej ilości informacji, opcje śledzenia błędów mogą Cię wrecz nimi zasypać! Podobnie jak w przypadku wykorzystania opcji podwyższania szczegółowości (\fB\-v\fR), opcja włączająca umowanie nazwane śledzenie błędów, włączana jest za pomocą parametru (\fB\-d\fR) i możliwe jest jej wielokrotne dodawanie powiększające skutek\&. Alternatywnie można podać poziom jako argument do opcji +\fB\-d\fR\&. Na przykład +\fB\-d9\fR +ustawia poziom na dziewięć\&. Jest to najwyższy możliwy poziom produkujący setki linii, o ile nie jest to proste skanowanie kilku portów i hostów\&. +.sp +Format ten jest użyteczny jeśli podejrzewamy istnienie błędu w Nmapie lub jeśli po prostu chcemy wiedzieć co Nmap robi i czemu\&. Jako że opcja ta jest przeznaczona głównie dla autorów, wyświetlane linie nie zawsze są do końca zrozumiałe\&. Można otrzymać na przykład coś w stylu: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Jeśli nie rozumiesz takiego zapisu, możesz go po prostu zignorować, poszukać w kodzie źródłowym lub poprosić o pomoc na liście dyskusyjnej twórców Nmapa (nmap\-dev)\&. Niektóre linie są dosyć czytelne, ale stają się coraz bardziej skomplikowane wraz ze wzrostem poziomu śledzenia błędów\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Śledzenie wysyłanych i odbieranych pakietów) +.RS 4 +Powoduje wyświetlanie przez Nmapa krótkiej informacji na temat każdego wysyłanego i odbieranego pakietu\&. Opcja ta jest często używana podczas śledzenia błędów, ale zawiera również wartościowe informacje dla nowych użytkowników, pozwalające zrozumieć co Nmap robi\&. Uniknięcie wyświetlania tysięcy linii możliwe jest poprzez ograniczenie ilości portów do skanowania, na przykład za pomocą +\fB\-p20\-30\fR\&. Jeśli chcesz zobaczyć tylko to, co dzieje się w trakcie wykrywania wersji, użyj raczej opcji +\fB\-\-version\-trace\fR\&. +.RE +.PP +\fB\-\-iflist\fR (Pokazuj interfejsy i tablicę routingu) +.RS 4 +Wyświetla listę interfejsów i tablice routingu wykryte przez Nmapa\&. Opcja jest przydatna przy śledzeniu błędów w routingu lub niepoprawnym wykrywaniu typów interfejsów (na przykład jeśli Nmap traktuje połączenie PPP jako ethernet)\&. +.RE +.PP +\fBPozostałe opcje\fR +.PP +\fB\-\-append\-output\fR (Dołączaj wyniki do pliku) +.RS 4 +Jeśli zostanie podana nazwa pliku jako argument do opcji takiej jak +\fB\-oX\fR +czy +\fB\-oN\fR, domyślnie poprzednia zawartość pliku zostanie usunęta i zastąpiona nową\&. Jeśli zachodzi potrzeba zachowania poprzedniej zawartości pliku i dołączenie nowych wyników, należy dodać opcję +\fB\-\-append\-output\fR\&. Potraktowane tak zostaną wszystkie podane pliki\&. Opcja nie działa zbyt dobrze z formatem XML, jako że wynikowy plik nie może być pożniej bezbłędnie przetworzony bez ręcznych poprawek\&. +.RE +.PP +\fB\-\-resume <nazwapliku>\fR (Wznowienie przerwanego skanowania) +.RS 4 +Niektóre skanowania Nmapa mogą trwać bardzo długo, nawet kilka dni\&. Problem pojawia się wtedy, kiedy nie jest możliwe ciągłe prowadzenie skanowania, na przykład z powodu potrzeby działania tylko w godzinach pracy, problemów z dostępnością sieci, (nie)przypadkowym restartem komputera na którym działa Nmap lub wykonaniem przez niego nieprawidłowej operacji\&. Użytkownik może również przerwać w każdej chwili skanowanie za pomocą kombinacji +ctrl\-C\&. W takich przypadkach ponowne rozpoczynanie testów od początku może nie być pożądane\&. Na szczęście, jeśli pozostały wyniki przerwanych testów w formacie normalnym (\fB\-oN\fR) lub grepowalnym (\fB\-oG\fR), możliwe jest ich wznowienie od momentu przerwania\&. Służy do tego opcja +\fB\-\-resume\fR +dla której argumentem musi byc nazwa pliku w formacie normalnym lub grepowalnym\&. W tym przypadku nie jest możliwe podawanie żadnych innych opcji, jako że Nmap przetworzy podany plik i odtworzy wcześniej podane opcje\&. Po prostu uruchom +\fBnmap \-\-resume \fR\fB\fInazwapliku\fR\fR, a Nmap dołączy do wskazanego pliku nowe wyniki\&. Opcja ta nie obsługuje formatu XML, jako że łączenie dwóch oddzielnych wynikóę skanowań w jeden plik jest dosyć trudne\&. +.RE +.PP +\fB\-\-stylesheet <ścieżka lub URL>\fR (Styl XSL do transformacji formatu XML) +.RS 4 +Nmap posiada domyślny styl XSL do przeglądania lub konwersji do formatu XML w pliku +nmap\&.xsl\&. Plik wyjściowy XML zawiera dyrektywę +xml\-stylesheet +wskazującą na +nmap\&.xml, ze ścieżką do domyślej lokalizacji tego pliku (lub bierzącego katalogu pod Windows)\&. Dzięki temu wystarczy po prostu załadować plik XML Nmapa do przeglądarki, która sama odczyta sobie plik +nmap\&.xsl +i użyje go do prawidłowego wyświetlenia wyników\&. Możliwe jest również użycie innego stylu poprzez podanie nazwy pliku jako argumentu dla opcji +\fB\-\-stylesheet\fR\&. W tym przypadku konieczne jest podanie pełnej ścieżki lub adresu URL\&. Typowe wywołanie ma postać +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. Dyrektywa ta nakazuje pobranie najnowszej wersji pliku ze stylem ze strony Insecure\&.Org\&. Opcja +\fB\-\-webxml\fR +robi dokładnie to samo, będąc łatwiejszą do wpisania i zapamiętania\&. Używanie pliku XSL ze strony Insecure\&.Org ułatwia przeglądanie wyników na systemie nie posiadającym zainstalowanego Nmapa (czyli nie posiadającym pliku +nmap\&.xsl)\&. Podawanie adresu URL jest wygodniejsze, jednak domyślnie używany jest plik lokalny ze względu za zachowanie poufności użytkownika\&. +.RE +.PP +\fB\-\-webxml\fR (Użyj stylu ze strony Insecure\&.Org) +.RS 4 +Opcja jest wygodniejszym zapisem analogicznego +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Nie używaj deklaracji stylu XSL w formacie XML) +.RS 4 +Dodanie tej opcji powoduje wyłączenie dołączania stylu XSL do pliku z wynikami w formacie XML\&. Zostaje pominięta dyrektywa +xml\-stylesheet\&. +.RE +.SH "RÓŻNE OPCJE" +.PP +Sekcja ta opisuje istotne (i nie istotne) opcje, które nie pasowały gdzie indziej\&. +.PP +\fB\-6\fR (Włączenie skanowania IPv6) +.RS 4 +Od roku 2002 Nmap obsługuje IPv6, w zakresie jego najpopularniejszych funkcji\&. W szczególności dostępne jest skanowanie ping (tylko TCP), connect() i wykrywanie wersji\&. Składnia opcji jest taka sama jak zwykle, wystarczy tylko dodać opcję +\fB\-6\fR\&. Oczywiście w przypadku podawania adresów zamiast nazw, niezbędne jest podawanie ich zgodnie ze składnią IPv6\&. Jako że adres może wyglądać podobnie do +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, zalecane jest używanie nazw hostów\&. Wyniki poza samym adresem wyglądają tak samo jak i przy innych opcjach\&. +.sp +Adresacja IPv6 nie zawładnęła jeszcze światem, jednak jest często wykorzystywana w niektórych krajach (zwykle azjatyckich) i większość obecnych systemów ją obsługuje\&. Oczywiście do używania IPv6 musi być on prawidłowo skonfigurowany i dostępny zarówno na hoście skanowanym, jak i skanującym\&. Jeśli dostawca usług nie umożliwia uzyskania adresów IP (najczęściej tak właśnie jest), jest dużo dostawców darmowych tuneli, które działają poprawnie z Nmapem\&. Jednymi z lepszych są dostarczane przez BT Exact i Hurricane Electric na +\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]\&. Tunele 6to4 są innym popularnym i darmowym rozwiązaniem\&. +.RE +.PP +\fB\-A\fR (Agresywne opcje skanowania) +.RS 4 +Włącza dodatkowe zaawansowane i agresywne opcje skanowania\&. Aktualnie są nimi wykrywanie systemu operacyjnego (\fB\-O\fR) i wykrywanie wersji (\fB\-sV\fR)\&. Więcej opcji być może zostanie dodane w przyszłości\&. Głównym celem jest proste włączenie najbardziej popularnych opcji skanowania bez konieczności zapamiętywania wielu parametrów\&. Włączane są tylko opcje włączające określoną funkcjonalność, nie zaś te dotyczące zależności czasowych (takie jak +\fB\-T4\fR) czy poziomu szczegółowości (\fB\-v\fR), które można dodać niezależnie\&. +.RE +.PP +\fB\-\-datadir <nazwakatalogu>\fR (Określenie lokalizacji plików z danymi) +.RS 4 +Podczas pracy Nmap pobiera dodatkowe informacje z plików +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes +i +nmap\-os\-fingerprints\&. Nmap rozpoczyna poszukiwania tych plików od katalogu podanego jako parametr dla opcji +\fB\-\-datadir\fR, jeśli została dodana\&. Jeśli nie znajdzie plików w podanej lokalizacji, poszukuje ich w katalogu określonych w zmiennej środowiskowej NMAPDIR, a następnie w katalogu +~/\&.nmap +dla rzeczywistego i efektywnego UID (tylko systemy POSIX) i katalogu z programem Nmap (tylko Win32)\&. Jeśli i to nie przyniesie skutku, poszukiwane są w lokalizacji podanej przy kompilacji, takiej jak +/usr/local/share/nmap +lub +/usr/share/nmap\&. Na końcu sprawdzany jest aktualny katalog\&. +.RE +.PP +\fB\-\-send\-eth\fR (Używanie niskopoziomowych ramek ethernet) +.RS 4 +Opcja powoduje wysyłanie bezpośrednio ramek niskiego poziomu ethernet (warstwa danych), zamiast poprzez stos IP (warstwa sieci)\&. Domyślnie Nmap wybiera metodę, która jest ogólnie lepsza dla danej platformy, na której jest uruchomiony\&. Gniazda raw (warstwa IP) są efektywniejsze w przypadku systemów UNIX, podczas gdy ramki ethernet są niezbędne w przypadku systemów Windows, od czasu kiedy to Microsoft wyłączył obsługę gniazd raw\&. Jeśli nie ma innej możliwości, Nmap w systemach UNIX wybierze metodę ethernet, pomijając wybraną przez użytkownika i niedostępną opcję\&. +.RE +.PP +\fB\-\-send\-ip\fR (Wysyłaj pakiety raw IP) +.RS 4 +Włącza wysyłanie pakietów przez gniazda raw IP, zamiast przez ramki ethernet\&. Opcja jest przeciwieństwem opisanej wyżej opcji +\fB\-\-send\-eth\fR\&. +.RE +.PP +\fB\-\-privileged\fR (Zakładaj że użytkownik ma odpowiednie uprawnienia) +.RS 4 +Informuje Nmapa, że użytkownik jest wystarczająco uprzywilejowany aby korzystać z wysyłania pakietów za pomocą gniazd raw, podsłuchiwania pakietów i podobnych operacji zwykle wymagających uprwawnień roota w systemach UNIX\&. Domyślnie Nmap przerywa działanie w momencie wykrycia próby wykonania takich operacji i funkcja geteuid() nie zwraca wartości zero\&. Opcja +\fB\-\-privileged\fR +jest użyteczna w systemach Linux posiadających możliwości odpowiedniego przywilejowania użytkowników do przeprowadzania wymienionych operacji\&. Upewnij się, że opcja została podana przed innymi opcjami wymagającymi podwyższonych uprwanień (skanowanie SYN, wykrywanie systemu operacyjnego itp)\&. Zmienna NMAP_PRIVILEGED może zostać ustawiona jako alternatywa dla wykorzystania opcji +\fB\-\-privileged\fR\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Wyświetl numer wersji) +.RS 4 +Wyświetla tylko numer wersji Nmapa\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Wyświetl pomoc) +.RS 4 +Wyświetla krótki ekran pomocy opisujący najpopularniejsze opcje, podobnie jak uruchomienie Nmapa bez parametrów\&. +.RE +.SH "INTERAKCJA W CZASIE PRACY" +.PP +Podczas pracy Nmapa, przechwytywane są wszystkie naciśnięcia klawiszy\&. Pozwala to na interakcję z programem bez przerywania go lub restartowania\&. Niektóre specjalne klawisze zmieniają opcje, inne wyświetlają status skanowania\&. Konwencja zakłada, że +\fImałe litery zmniejszają\fR +ilość informacji, a +\fIduże litery powiększają\fR\&. Można również nacisnąć \(oq\fI?\fR\(cq dla +.PP +\fBv\fR / \fBV\fR +.RS 4 +Zwiększenia / Zmniejszenia poziomu szczegółowości +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Zwiększenia / Zmniejszenia poziomu śledzenia błędów +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Włączenia / Wyłączenia śledzenia pakietów +.RE +.PP +\fB?\fR +.RS 4 +Wyświetlenia ekranu pomocy +.RE +.PP +Wszystko inne +.RS 4 +Wyświetla status w postaci: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "PRZYKŁADY" +.PP +Poniżej przedstawiono przykłady wykorzystania Nmapa, od prostych i rutynowych do trochę bardziej skomplikowanych i ezoterycznych\&. Przykładowe adresy IP i nazwy domen powinny zostać zastąpione adresami/nazwami z +\fItwojej własnej sieci\fR\&. Nie uważam, że skanowanie portów powinno być nielegalne, jednak niektórzy administratorzy nie tolerują nie autoryzowanego skanowania ich sieci i mogą zgłaszać swoje protesty\&. Uzyskanie zgody jest pierwszym wyzwaniem\&. +.PP +Do celu testów, masz zgodę do skanowania hosta +scanme\&.nmap\&.org\&. Zgoda pozwala jedynie na skanowanie za pomocą Nmapa, nie zaś na testowanie exploitów czy przeprowadzanie ataków typu Denial of Service\&. Dla oszczędności pasma, proszę nie uruchamiaj więcej niż tuzina skanowań tego hosta dziennie\&. W przypadku nadużyć, host zostanie wyłączony, a Nmap będzie zwracał komunikat +Failed to resolve given hostname/IP: scanme\&.nmap\&.org\&. pozwolenie dotyczy także adresów +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org +i następnych, choć hosty te jeszcze nie istnieją\&. +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Pozwoli na przeskanowanie wszystkich portów TCP adresu +scanme\&.nmap\&.org\&. Opcja +\fB\-v\fR +podwyższy poziom szczegółowości zwracanych informacji\&. +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Uruchamia skanowanie SYN wszystkich 255 hostów znajdujących się w tej samej klasie +„C\(rq, co host scanme\&.nmap\&.org\&. Dodatkowo wykonywana jest próba detekcji systemu operacyjnego dla każdego hosta, który jest aktywny\&. Wymaga to uprawnień użytkownika root, z powodu wykorzystania skanowania SYN i wykrywania systemu operacyjnego\&. +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Uruchamia enumerację hostów i skanowanie TCP pierwszej połowy każej z 255 możliwych 8\-mio bitowych podsieci klasy B 198\&.116\&. Wykrywane jest działanie usług sshd, DNS, pop3d, imapd i portu 4564\&. Dla każdego z tych portów, który został wykryty jako otwarty przeprowadzane jest wykrywanie wersji działającej aplikacji\&. +.PP +\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR +.PP +Poleca Nmapowi na wybranie 100,000 losowych hostów i przeskanowanie ich w poszukiwaniu serwerów WWW (port 80)\&. Enumeracja hostów jest wyłączona za pomocą opcji +\fB\-P0\fR, ponieważ wysyłanie najpierw pakietów w celu określenia czy host jest aktywny nie ma sensu, jako że i tak jest wykonywany test tylko na jednym porcie per host\&. +.PP +\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Skanuje 4096 adresów IP w poszukiwaniu serwerów WWW (bez pingowania ich) i zapisuje wyniki w plikach XML i grepowalnym\&. +.SH "BŁĘDY" +.PP +Jak i jego autor, Nmap nie jest doskonały\&. Możesz jednak pomóc przysyłając raporty dotyczące błędów lub nawet wysyłając własne poprawki\&. Jeśli Nmap nie zachowuje sie w sposób którego oczekujesz, zacznij od aktualizacji do najnowszej wersji dostępnej pod adresem +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Jeśli problem nadal występuje, wykonaj trochę testów dla określenia czy podobny problem nie został już wykryty i oznaczony\&. Spróbuj poszukać Googlem komunikatu błędu lub poprzeglądaj archiwa listy dyskusyjnej Nmap\-dev pod adresem +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. Przeczytaj również cała dokumentację\&. Jeśli nic nie pomoże, wyślij raport opisujący błąd po angielsku na adres +<dev@nmap\&.org>\&. Proszę dołącz wszystko co udało Ci się ustalić na temat tego problemu, jak również informację o używanej wersji Nmapa i systemie operacyjnym na którym jest uruchamiany\&. Opisy problemów i pytania dotyczące używania Nmapa wysłane na adres dev@nmap\&.org z większym prawdopodobieństwem doczekają sie szybkiej odpowiedzi, niż wysłane bezpośrednio do Fyodora\&. +.PP +Poprawki błędnego kodu są milej widziane, niż opisy błedów\&. Podstawowe instrukcje tworzenia poprawek są opisane na stronie +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]\&. Poprawki mogą być wysyłane na nmap\-dev (rekomendowane) lub bezpośrednio do Fyodora\&. +.SH "AUTOR" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%http://www.insecure.org\fR\m[]) +.PP +Setki ludzi wniosły wartościowy wkład w rozwój Nmapa\&. Szczegóły są zamieszczane w pliku +CHANGELOG, który jest rozpowszechniany z Nmapem i jest również dostępny pod adresem +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]\&. +.SH "UWARUNKOWANIA PRAWNE" +.SS "Unofficial Translation Disclaimer / Oświadczenie dotyczące tłumaczenia" +.PP +This is an unnofficial translation of the +\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[13]\d\s+2 +into polish\&. It was not written by Insecure\&.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\&. However, we hope that this translation helps polish speakers understand the Nmap license better\&. +.PP +To jest nieoficjalne tłumaczenie +\m[blue]\fBlicencji Nmapa\fR\m[]\&\s-2\u[13]\d\s+2 +na język polski\&. Nie zostało ono napisane przez Insecure\&.Com LLC, i przez to nie może być uważane za wiążące, tak jak jego angielska wersja, jednakże uważamy, że tłumaczenie to pozwoli lepiej zrozumieć licencję Nmapa\&. +.SS "Prawa autorskie i licencjonowanie Nmap" +.PP +Prawa autorskie (1996\-2005) do programu Nmap Security Scanner posiada Insecure\&.Com LLC\&. Nmap jest także zastrzeżonym znakiem towarowym Insecure\&.Com LLC\&. Ten program jest wolnym oprogramowaniem; możliwa jest jego redystrybucja i/lub modyfikowanie zgodnie z zasadami licencji GNU General Public License opublikowanej przez Free Software Foundation; Wersja 2\&. Gwarantuje ona prawo do używania, modyfikowania i redystrybucji tego oprogramowania pod pewnymi warunkami\&. Jeśli technologia Nmapa jest integrowana z innymi programami, możliwa jest sprzedaż alternatywnych licencji (kontakt +<sales@insecure\&.com>)\&. Wielu producentów skanerów bezpieczeństwa licencjonuje technologie Nmapa takie jak wykrywanie hostów, skanowanie portów, wykrywanie systemów operacyjnych i wykrywanie usług/wersji\&. +.PP +GPL nakłada isotne ograniczenia w stosunku do +„produktów pochodnych \(rq, jednak nie jest jeszcze dostępna dokładna ich definicja\&. Dla uniknięcia nieporozumień zakładamy, że aplikacja jest produktem pochodnym w przypadku gdy spełnia któryś z warunków: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integruje kod źródłowy Nmapa +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Odczytuje lub dołącza chronione prawami autorskimi pliki Nmapa, takie jak +nmap\-os\-fingerprints +czy +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Uruchamia Nmapa i przetwarza jego wyniki (w odróżnieniu od aplikacji, które uruchamiają Nmapa i wyświetlają nie przetworzone raporty i przez to nie są produktami pochodnymi)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integrują/włączają/agregują Nmapa w wykonywalnym instalatorze, tak jak stworzone za pomocą InstallShield\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Wykorzystują bibliotekę lub program wykonujący jedno z powyższych\&. +.RE +.PP +Warunki +„Nmapa\(rq +powinny dotyczyć części i pochodnych programu Nmap\&. Powyższa lista ma na celu klarowne przedstawienie naszej interpretacji programów pochodnych z przykładami\&. Ograniczenia dotyczą tylko przypadków, w których Nmap jest rozpowszechniany razem z programem pochodnym\&. Na przykład nic nie stoi na przeszkodzie napisania i sprzedawania własnego interfejsu do Nmapa\&. Wystarczy rozprowadzać go oddzielnie podając użytkownikom adres +\m[blue]\fB\%https://nmap.org/\fR\m[] +do pobierania Nmapa\&. +.PP +Nie uważamy tego za ograniczenia dodane do GPL, ale jako klarowną interpretację +„programów pochodnych\(rq, jako że dotyczy to naszego produktu opartego na GPL\&. Jest to zbliżone do sposobu w jaki Linus Torvalds opublikował swoją interpretację dotyczącą +„programów pochodnych\(rq, opartych na modułach kernela Linuxa\&. Nasza interpretacja odnosi się tylko do Nmapa \- nie mówimy o żadnym innym produkcie GPL\&. +.PP +Jeśli masz jakiekolwiek pytania dotyczące ograniczeń licencji GPL przy zastosowaniach Nmapa w produktach nie opartych na GPL, chętnie pomożemy\&. Jak wspomniano wyżej, oferujemy także alternatywną licencję do integrowania Nmapa we własnych aplikacjach i urządzeniach\&. Licencje na integrację Nmapa zostały sprzedane wielu producentom oprogramowania związanego z bezpieczeństwem i ogólnie zawierają dożywotnią licencję oraz dostarczają priorytetowego wsparcia technicznego wraz z aktualizacjami i pomagają opłacić dalszy rozwój Nmapa\&. Proszę o kontakt z +<sales@insecure\&.com> +w celu uzyskania dalszych informacji\&. +.PP +Jako specjalny wyjątek dla warunków GPL, Insecure\&.Com LLC zezwala na linkowanie kodu tego programu z dowolną wersją biblioteki OpenSSL, która jest dystrybuowana na licencji identycznej do umieszczonej w pliku Copying\&.OpenSSL oraz na dystrybucję obu w postaci zlinkowanej\&. Musisz przestrzegać licencji GPL we wszystkich aspektach wykorzystania kodu, innym niż OpenSSL\&. Jeśli zmodyfikujesz wspomniany plik, możesz rozszerzyć ten wyjątek o Twoją wersję, ale nie jesteś do tego zobligowany\&. +.PP +Jeśli otrzymałeś(aś) te pliki z pisemną licencją lub kontraktem zmieniającym powyższe zapisy, mają one pierwszeństwo nad umieszczonymi tutaj\&. +.SS "Licencja Creative Commons dla tego podręcznika Nmap" +.PP +Prawa (2005) do tego podręcznika Nmapa posiada Insecure\&.Com LLC\&. Jest on udostępniany w oparciu o wersję 2\&.5 licencji +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. Pozwala ona na redystrybucję i modyfikowanie w potrzebnym zakresie tak długo, jak zostanie podane oryginalne źródło\&. Alternatywnie możesz traktować ten dokument jako udostępniany na takiej samej licencji jak Nmap (opisanej wcześniej)\&. +.SS "Dostępność kodu źródłowego i wkład społeczności" +.PP +Kod źródłowy dla tego programowania jest dostępny, ponieważ uważamy, że użytkownicy mają prawo wiedzieć dokładnie co program robi, zanim go uruchomią\&. Pozwala to także na przeprowadzenie audytu kodu pod kątem bezpieczeństwa (jak dotąd nie wykryto problemu tego typu)\&. +.PP +Kod źródłowy pozwala również na przenoszenie Nmapa na nowe platformy, na poprawianie błędów i dodawanie nowych funkcji\&. Mocno zachęcamy do wysyłania swoich zmian na adres +<fyodor@nmap\&.org> +w celu możliwej integracji z główną dystrybucją\&. Wysłanie tych zmian do Fyodora lub na jedną z list dyskusyjnych dla deweloperów Insecure\&.Org, powoduje przekazanie praw do nielimitowanego, nie wyłącznego prawa do ponownego wykorzystania, modyfikacji i relicencjonowania tego kodu\&. Nmap zawsze będzie dostępny jako Open Source, lecz jest to istotne z powodu dewastujących problemów jakie pojawiały się w innych projektach Free Software (takich jak KDE i NASM)\&. Okazjonalnie licencjonujemy kod do firm trzecich, jak to wspomniano wyżej\&. Jeśli chcesz dodać specjalną licencję dla swojego wkładu, wystarczy dołączyć odpowiednią informację przy wysyłaniu kodu do nas\&. +.SS "Brak gwarancji" +.PP +Program ten jest rozpowszechniany z nadzieją, że będzie użyteczny, jednak BEZ ŻADNEJ GWARANCJI; także bez założonej gwarancji PRZYDATNOŚCI HANDLOWEJ lub PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ\&. Zobacz licencję GNU General Public License dla dalszych szczegółów pod adresem +\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[], jej polskie nieoficjalne tłumaczenie +\m[blue]\fB\%http://www.gnu.org.pl/text/licencja-gnu.html\fR\m[] +lub w pliku COPYING dołączanym do Nmapa\&. +.PP +Należy również zwrócić uwagę, że Nmap okazjonalnie potrafi spowodować zaprzestanie działania źle napisanych aplikacji, stosu TCP/IP lub nawet całego systemu operacyjnego\&. Jest to bardzo rzadko spotykane, ale ważne jest, aby o tym pamiętać\&. +\fINmap nie powinien być nigdy uruchamiany przeciwko systemom krytycznym\fR, o ile nie jesteś przygotowany(a) na ewentualną przerwę w działaniu\&. Potwierdzamy, że Nmap może spowodować awarię systemów lub sieci i wypieramy się jakiejkolwiek odpowiedzialności za uszkodzenia lub problemy spowodowane przez jego działanie\&. +.SS "Nieodpowiednie użycie" +.PP +Z powodu istnienia niewielkiego ryzyka spowodowania awarii i ponieważ niektóre czarne kapelusze lubią używać Nmapa do wykonania rekonesansu przed atakiem systemu, administratorzy mogą się denerwować i zgłaszać swoje protesty z powodu skanowania ich systemów\&. Z tego powodu, najczęściej zalecane jest uzyskanie odpowiedniej zgody przed wykonaniem nawet delikatnego skanowania sieci\&. +.PP +Z powodów bezpieczeństwa, Nmap nie powinien być nigdy instalowany ze specjalnymi uprawnieniami (np\&. suid root)\&. +.SS "Oprogramowanie firm trzecich" +.PP +Ten produkt zawiera oprogramowanie stworzone przez +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[14]\d\s+2\&. Zmodyfikowana wersja biblioteki +\m[blue]\fBLibpcap portable packet capture library\fR\m[]\&\s-2\u[15]\d\s+2 +jest dołączana do dystrybucji Nmapa\&. Wersja Nmapa dla systemu Windows wykorzystuje opartą na libpcap bibliotekę +\m[blue]\fBWinPcap\fR\m[]\&\s-2\u[16]\d\s+2 +(zamiast libpcap)\&. Obsługę wyrażeń regularnych zapewnia biblioteka +\m[blue]\fBPCRE\fR\m[]\&\s-2\u[17]\d\s+2, która jest oprogramowaniem open source, napisanym przez Philip Hazel\&. Niektóre funkcje dotyczące niskiego poziomu sieci wykorzystują bibliotekę +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[18]\d\s+2, napisaną przez Dug Songa\&. Zmodyfikowana jej wersja jest dołączana do dystrybucji Nmapa\&. Nmap może być opcjonalnie linkowany z biblioteką kryptograficzną +\m[blue]\fBOpenSSL\fR\m[]\&\s-2\u[19]\d\s+2, używaną do detekcji wersji SSL\&. Wszystkie opisane w tym paragrafie programy firm trzecich są rozpowszechniane na licencji BSD\&. +.SS "Klasyfikacja eksportowa Stanów Zjednoczonych Ameryki Północnej" +.PP +US Export Control: Insecure\&.Com LLC wierzy, że Nmap kwalifikuje się pod oznaczenie US ECCN (export control classification number) 5D992\&. Kategoria ta jest opisana jako +„Oprogramowanie dotyczące bezpieczeństwa informacji nie objęte 5D002\(rq\&. Jedynym ograniczeniem tej kategorii jest AT (anty\-terroryzm), która odnosi się do większości dóbr i zabrania eksportu do niektórych awanturniczych krajów takich jak Iran czy Północna Korea\&. Z tego powodu Nmap nie wymaga żadnej specjalnej licencji, zgody lub innych autoryzacji rządu USA\&. +.SH "PRZYPISY" +.IP " 1." 4 +oryginalnej dokumentacji Nmapa +.RS 4 +\%https://nmap.org/man/ +.RE +.IP " 2." 4 +Creative Commons Attribution License +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 3." 4 +HTML +.RS 4 +\%https://nmap.org/man/pl/ +.RE +.IP " 4." 4 +NROFF +.RS 4 +\%https://nmap.org/data/man-xlate/nmap-pl.1 +.RE +.IP " 5." 4 +XML +.RS 4 +\%https://nmap.org/data/man-xlate/nmap-man-pl.xml +.RE +.IP " 6." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 7." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 8." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 9." 4 +TCP RFC +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP "10." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP "11." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP "12." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP "13." 4 +Nmap license details +.RS 4 +\%https://nmap.org/man/man-legal.html +.RE +.IP "14." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "15." 4 +Libpcap portable packet capture library +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "16." 4 +WinPcap +.RS 4 +\%http://www.winpcap.org +.RE +.IP "17." 4 +PCRE +.RS 4 +\%http://www.pcre.org +.RE +.IP "18." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "19." 4 +OpenSSL +.RS 4 +\%http://www.openssl.org +.RE diff --git a/docs/man-xlate/nmap-pt_BR.1 b/docs/man-xlate/nmap-pt_BR.1 new file mode 100644 index 0000000..b3959ee --- /dev/null +++ b/docs/man-xlate/nmap-pt_BR.1 @@ -0,0 +1,1773 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "Autor" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 17/05/2023 +.\" Manual: Guia de Referência do Nmap +.\" Source: Nmap +.\" Language: Portuguese (Brazil) +.\" +.TH "NMAP" "1" "17/05/2023" "Nmap" "Guia de Referência do Nmap" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NOME" +nmap \- Ferramenta de exploração de rede e segurança / scanner de portas +.SH "SINOPSE" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fITipo\ de\ Scan\fR...] [\fIOpções\fR] {\fIespecificação\ do\ alvo\fR} +.SH "DESCRIçãO" +.PP +O Nmap (\(lqNetwork Mapper\(rq) é uma ferramenta de código aberto para exploração de rede e auditoria de segurança\&. Ela foi desenhada para escanear rapidamente redes amplas, embora também funcione muito bem contra hosts individuais\&. O Nmap utiliza pacotes IP em estado bruto (raw) de maneira inovadora para determinar quais hosts estão disponíveis na rede, quais serviços (nome da aplicação e versão) os hosts oferecem, quais sistemas operacionais (e versões de SO) eles estão executando, que tipos de filtro de pacotes/firewalls estão em uso, e dezenas de outras características\&. Embora o Nmap seja normalmente utilizado para auditorias de segurança, muitos administradores de sistemas e rede consideram\-no útil para tarefas rotineiras tais como inventário de rede, gerenciamento de serviços de atualização agendados, e monitoramento de host ou disponibilidade de serviço\&. +.PP +A saída do Nmap é uma lista de alvos escaneados, com informações adicionais de cada um dependendo das opções utilizadas\&. Uma informação chave é a +\(lqtabela de portas interessantes\(rq\&. Essa tabela lista o número da porta e o protocolo, o nome do serviço e o estado\&. O estado pode ser +aberto (open), +filtrado (filtered), +fechado (closed), ou +não\-filtrado (unfilterd)\&. Aberto (open) significa que uma aplicação na máquina\-alvo está escutando as conexões/pacotes naquela porta\&. +Filtrado (filtered) +significa que o firewall, filtro ou outro obstáculo de rede está bloqueando a porta de forma que o Nmap não consegue dizer se ela está +aberta (open) +ou +fechada (closed)\&. Portas +fechadas (closed)não possuem uma aplicação escutando nelas, embora possam abrir a qualquer instante\&. Portas são classificadas como +não filtradas (unfiltered)quando elas respondem às sondagens do Nmap, mas o Nmap não consegue determinar se as portas estão abertas ou fechadas\&. O Nmap reporta as combinações +aberta|filtrada (open|filtered)e +fechada|filtrada (closed|filtered)quando não consegue determinar qual dos dois estados descrevem melhor a porta\&. A tabela de portas também pode incluir detalhes de versão de software quando a detecção de versão for solicitada\&. Quando um scan do protocolo IP é solicitado (\fB\-sO\fR), o Nmap fornece informações dos protocolos IP suportados ao invés de portas que estejam abertas\&. +.PP +Além da tabela de portas interessantes, o Nmap pode fornecer informações adicionais sobre os alvos, incluíndo nomes de DNS reverso, possível sistema operacional, tipos de dispositivos e endereços MAC\&. +.PP +Um scan típico do Nmap é mostrado em +Exemplo 1, \(lqUma amostra de scan do Nmap\(rq\&. Os únicos argumentos que o Nmap utiliza nesse exemplo são +\fB\-A\fR, para habilitar a detecção de SO e a versão, +\fB\-T4\fR +para execução mais rápida, e os hostnames de dois alvos\&. +.PP +\fBExemplo 1. Uma amostra de scan do Nmap\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org playground + +Starting nmap ( https://nmap\&.org/ ) +Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X +OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11 +Uptime 33\&.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground\&.nmap\&.org (192\&.168\&.0\&.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios\-ssn +389/tcp open ldap? +445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds +1002/tcp open windows\-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper +5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3\&.8) +MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds +.fi +.if n \{\ +.RE +.\} +.PP +A versão mais nova do Nmap pode ser obtida em +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. A versão mais nova da página do manual está disponível em +\m[blue]\fB\%https://nmap.org/man/\fR\m[]\&. +.SH "NOTAS DA TRADUçãO" +.PP +Esta edição em Português (Brasil) do Guia de Referência do Nmap foi traduzida da versão [3244] do +\m[blue]\fBoriginal em Inglês\fR\m[]\&\s-2\u[1]\d\s+2 +por Lucien Raven :> (aka:ekita) +<lucienraven\&.at\&.yahoo\&.com\&.br> +e foi revisada por Humberto Sartini +<humberto\&.at\&.onda\&.com\&.br>\&. Embora tenhamos a esperança de que esta tradução torne o Nmap mais acessível para os brasileiros do mundo todo, não podemos garantir que ela esteja tão completa ou atualizada quanto a versão original em Inglês\&. Este trabalho pode ser modificado e redistribuído sob os termos da +\m[blue]\fBLicença de Atribuição da Creative Commons\fR\m[]\&\s-2\u[2]\d\s+2\&. Algumas liberdades foram tomadas na tradução de expressões, jargão e gíria\&. Para maiores detalhes sobre a tradução, sugestões ou críticas, envie um e\-mail para os tradutores \-\- não esqueça de substituir \*(Aq\&.at\&.\*(Aq por \*(Aq@\*(Aq\&. [Rev:3244\-01] +.SH "SUMáRIO DAS OPçõES" +.PP +Este sumário de opções é mostrado quando o Nmap é executado sem argumentos, e a última versão está sempre disponível em +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]\&. Ele ajuda as pessoas a lembrar das opções mais comuns, mas não substitui a documentação mais técnica do restante deste manual\&. Algumas opções obscuras não estão incluídas aqui\&. +.PP +.if n \{\ +.RS 4 +.\} +.nf +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\-255\&.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 + \-sP: Ping Scan \- go no further than determining if host is online + \-P0: Treat all hosts as online \-\- skip host discovery + \-PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery probes to given ports + \-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes + \-n/\-R: Never do DNS resolution/Always resolve [default: sometimes resolve] + \-\-dns\-servers <serv1[,serv2],\&.\&.\&.>: Specify custom DNS servers + \-\-system\-dns: Use OS\*(Aqs DNS resolver +SCAN TECHNIQUES: + \-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans + \-sN/sF/sX: TCP Null, FIN, and Xmas scans + \-\-scanflags <flags>: Customize TCP scan flags + \-sI <zombie host[:probeport]>: Idlescan + \-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 + \-F: Fast \- Scan only the ports listed in the nmap\-services file) + \-r: Scan ports sequentially \- don\*(Aqt randomize +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) +OS DETECTION: + \-O: Enable OS detection (try 2nd generation, then 1st if that fails) + \-O1: Only use the old (1st generation) OS detection system + \-O2: Only use the new OS detection system (no fallback) + \-\-osscan\-limit: Limit OS detection to promising targets + \-\-osscan\-guess: Guess OS more aggressively +TIMING AND PERFORMANCE: + Options which take <time> are in milliseconds, unless you append \*(Aqs\*(Aq + (seconds), \*(Aqm\*(Aq (minutes), or \*(Aqh\*(Aq (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 +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 + \-\-data\-length <num>: Append random data to sent packets + \-\-ttl <val>: Set IP time\-to\-live field + \-\-spoof\-mac <mac address, prefix, or vendor name>: Spoof your MAC address +OUTPUT: + \-oN/\-oX/\-oS/\-oG <file>: Output scan results 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 twice for more effect) + \-d[level]: Set or increase debugging level (Up to 9 is meaningful) + \-\-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 Insecure\&.Org for more portable XML + \-\-no\-stylesheet: Prevent associating of XSL stylesheet w/XML output +MISC: + \-6: Enable IPv6 scanning + \-A: Enables OS detection and Version detection + \-\-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 + \-V: Print version number + \-h: Print this help summary page\&. +EXAMPLES: + nmap \-v \-A scanme\&.nmap\&.org + nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8 + nmap \-v \-iR 10000 \-P0 \-p 80 +.fi +.if n \{\ +.RE +.\} +.sp +.SH "ESPECIFICAçãO DE ALVO" +.PP +Tudo na linha de comando do Nmap que não for uma opção (ou argumento de uma opção) é tratado como uma especificação de um host\-alvo\&. O caso mais simples é especificar um endereço IP como alvo ou um hostname para ser escaneado\&. +.PP +Algumas vezes você pode querer escanear uma rede inteira de hosts adjacentes\&. Para isso o Nmap suporta o estilo de endereçamento CIDR\&. Você pode acrescentar + +/\fInúmerodebits\fR +em um endereço ou hostname e o Nmap irá escanear cada endereço IP para o qual os primeiros +\fInúmerosdebits\fR +sejam o mesmo que o IP de referência ou o hostname dado\&. Por exemplo, 192\&.168\&.10\&.0/24 escanearia os 256 hosts entre 192\&.168\&.10\&.0 (binário: +11000000 10101000 00001010 00000000) e 192\&.168\&.10\&.255 (binário: +11000000 10101000 00001010 11111111), inclusive\&. 192\&.168\&.10\&.40/24 faria exatamente a mesma coisa\&. Dado que o host scanme\&.nmap\&.org está no endereço IP 205\&.217\&.153\&.62, a especificação scanme\&.nmap\&.org/16 escanearia os 65\&.536 endereços IP entre 205\&.217\&.0\&.0 e 205\&.217\&.255\&.255\&. O menor valor permitido é /1, que equivale a escanear metade da Internet\&. O maior valor é 32, que escaneia apenas o host nomeado ou endereço IP porque todos os bits de endereçamento estão fixos\&. +.PP +A notação CIDR é curta mas nem sempre flexível o suficiente\&. Por exemplo, você pode querer escanear 192\&.168\&.0\&.0/16 mas desejar pular todos os IPs terminados em \&.0 ou \&.255 porque eles são normalmente endereços de broadcast\&. O Nmap suporta isso através de endereçamento por faixa de octeto\&. Ao invés de especificar um endereço IP normal, você pode especificar uma lista de números separada por vírgulas ou faixa de números para cada octeto\&. Por exemplo, 192\&.168\&.0\-255\&.1\-254 irá pular todos os endereços na faixa que terminarem com \&.0 e/ou \&.255\&. Faixas não precisam ser limitadas ao octeto final: o especificador 0\-255\&.0\-255\&.13\&.37 irá executar um scan em toda a Internet buscando os endereços IP terminados em 13\&.37\&. Esse tipo de amostragem ampla pode ser útil em levantamentos e pesquisas da Internet toda\&. +.PP +Endereços IPv6 podem apenas ser especificados utilizando o endereço ou hostname IPv6 completamente qualificado\&. Faixas CIDR e octetos não são suportados para o IPv6 porque eles raramente são úteis\&. +.PP +O Nmap aceita múltiplas especificações de host na linha de comando, e elas não precisam ser do mesmo tipo\&. O comando +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/16 10\&.0\&.0,1,3\-7\&.0\-255\fR +executa o que se espera que dele\&. +.PP +Embora os alvos sejam normalmente especificados na linha de comando, as seguintes opções também estão disponíveis para controlar a seleção de alvos: +.PP +\fB\-iL <arquivodeentrada>\fR (Entrada à partir de uma lista) +.RS 4 +Lê a especificação de alvos à partir de um +\fIarquivodeentrada\fR\&. Passar uma lista enorme de hosts na linha de comando é muito ruim, ainda que seja comumente desejável\&. Por exemplo, seu servidor DHCP pode exportar uma lista de 10\&.000 endereços correntes em uso que você deseja escanear\&. Ou talvez você deseje escanear todos os endereços IP +\fIexceto\fR +aqueles usados para localizar hosts que usam endereços IP estáticos não\-autorizados\&. Simplesmente gere uma lista de hosts a escanear e passe o nome do arquivo para o Nmap como um argumento à opção +\fB\-iL\fR\&. As entradas podem estar em qualquer um dos formatos aceitos pelo Nmap na linha de comando (endereço IP, hostname, CIDR, IPv6, ou faixas de octetos)\&. Cada entrada deve ser separada por um ou mais espaços em branco, tabulações ou quebra de linhas\&. Você pode especificar um hífen (\-) como nome de arquivo se quiser que o Nmap leia os nomes de hosts da entrada padrão (standard input) ao invés de um arquivo\&. +.RE +.PP +\fB\-iR <número de hosts>\fR (Escolhe alvos aleatórios) +.RS 4 +Para levantamentos na Internet toda e outras pesquisas, você pode querer escolher alvos de forma aleatória\&. O argumento +\fInúmero de hosts\fR +diz ao Nmap quantos IPs ele deverá gerar\&. IPs indesejáveis, tais como aqueles de certas redes privativas, multicast e faixas de endereços não\-alocadas são automaticamente desconsideradas\&. O argumento +0 +(zero) pode ser especificado caso deseje um scan sem fim\&. Tenha em mente que alguns administradores de rede "torcem o nariz" para scans não\-autorizados de suas redes e podem reclamar\&. Use esta opção por sua conta e risco! Se você estiver realmente entediado em uma tarde chuvosa, tente o comando +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR +para localizar servidores web aleatórios para navegar\&. +.RE +.PP +\fB\-\-exclude <host1[,host2][,host3],\&.\&.\&.>\fR (Exclui hosts/redes) +.RS 4 +Especifica uma lista de alvos, separados por vírgula, a serem excluídos do scan mesmo que façam parte da faixa de rede especificada\&. A lista que você fornece utiliza a sintaxe normal do Nmap, portanto ela pode incluir nomes de hosts, blocos de rede CIDR, faixas de octetos, etc\&. Isso pode ser útil quando a rede que você deseja escanear inclui servidores de missão crítica intocáveis, sistemas que reajam contrariamente a escaneamento de portas ou sub\-redes administradas por outras pessoas\&. +.RE +.PP +\fB\-\-excludefile <arquivo_exclusão>\fR (Exclui a lista do arquivo) +.RS 4 +Oferece a mesma funcionalidade que a opção +\fB\-\-exclude\fR, exceto que os alvos a excluir são fornecidos em um +\fI"arquivo separado"\fR +, delimitados por quebra de linhas, espaço em branco ou tabulação, ao invés de na linha de comando\&. +.RE +.SH "DESCOBERTA DE HOSTS" +.PP +Um dos primeiros passos em qualquer missão de reconhecimento de uma rede é reduzir um conjunto (às vezes enorme) de faixas de endereços IP, em uma lista de hosts ativos e interessantes\&. Escanear cada porta de cada endereço IP é vagaroso e normalmente desnecessário\&. É claro que o que torna um host interessante depende muito do propósito do scan\&. Administradores de rede podem estar apenas interessados em hosts que executam um determinado serviço, enquanto os auditores de segurança podem se importar com cada dispositivo que possuir um endereço IP\&. Um administrador pode se sentir à vontade em usar o ping ICMP para localizar os hosts na rede interna, enquanto um profissional externo de análise de vulnerabilidades (penetration tester) pode utilizar um conjunto diversificado de dezenas de sondagens em uma tentativa de burlar as restrições do firewall\&. +.PP +As necessidades para o descobrimento de host são muito diversas e, por isso, o Nmap oferece uma ampla variedade de opções para customizar as técnicas utilizadas\&. A descoberta de host às vezes é chamada de ping scan, mas ela vai muito além dos simples pacotes ICMP de echo request associados com a ferramenta onipresente conhecida como ping\&. Os usuários podem pular a etapa do ping inteiramente com uma lista de scan (\fB\-sL\fR) ou desabilitanto o ping (\fB\-P0\fR), ou enfrentar a rede com combinações arbitrárias de sondagens multi\-portas TCP SYN/ACK, UDP e ICMP\&. O objetivo dessas sondagens é solicitar respostas que mostrem que um endereço IP está realmente ativo (é utilizado por um host ou dispositivo de rede)\&. Em muitas redes, apenas uma pequena percentagem dos endereços IP está ativa em um dado momento\&. Isso é particularmente comum com o espaço de endereçamento privativo abençoado pela RFC1918 como, por exemplo, 10\&.0\&.0\&.0/8\&. Essa rede tem 16 milhões de IPs, mas eu já a vi sendo utilizado em empresas com menos de mil máquinas\&. A descoberta de hosts pode encontrar essas máquinas escassamente alocadas em um mar de endereços IP\&. +.PP +Se nenhuma opção de descoberta de hosts for dada, o Nmap envia um pacote TCP ACK destinado a porta 80 e uma procura ICMP Echo Request a cada máquina\-alvo\&. Uma exceção a isso é que um scan ARP é utilizado para cada alvo localizado na rede ethernet local\&. Para usuários Unix sem privilégios, com shell, um pacote SYN é enviado ao invés do ack utilizando a chamada de sistema +\fBconnect()\fR\&. Esses valores padrão equivalem às opções +\fB\-PA \-PE\fR\&. Esta descoberta de host freqüentemente é suficiente para escanear redes locais, mas um conjunto de sondagens mais abrangentes é recomendado para auditoria de segurança\&. +.PP +As opções +\fB\-P*\fR +(que selecionam tipos de ping) podem ser combinadas\&. Você pode aumentar as chances de penetrar em um firewall rígido enviando muitos tipos de sondagens, utilizando diferentes portas/flags TCP e códigos ICMP\&. Note também que a descoberta por ARP (\fB\-PR\fR) é feita por padrão contra alvos na rede ethernet local mesmo que você especifique outras opções +\fB\-P*\fR +, porque é quase sempre mais rápida e eficiente\&. +.PP +.PP +Por definição, o Nmap faz a descoberta de host e então executa um escaneamento de portas contra cada host que ele determina que está ativo\&. Isto é verdade mesmo que você especifique tipos de busca não\-padronizadas de hosts, tais como sondagens UDP (\fB\-PU\fR)\&. Leia sobre a opção +\fB\-sP\fR +para saber como executar +\fIapenas\fR +uma descoberta de hosts, ou utilize +\fB\-P0\fR +para pular a descoberta de hosts e escanear as portas de todos os hosts\-alvo\&. As seguintes opções controlam a descoberta de hosts: +.PP +\fB\-sL\fR (Scan Listagem) +.RS 4 +O scan listagem é uma forma degenerada de descoberta de hosts que simplesmente lista cada host da rede especificada, sem enviar nenhum pacote aos hosts\-alvos\&. Por padrão o Nmap fará a resolução de DNS reverso dos hosts para descobrir seus nomes\&. Ainda é surpreendente a quantidade de informações úteis que simples nomes de hosts podem dar\&. Por exemplo, +fw\&.chi\&.playboy\&.com +é o firewall do escritório de Chicago da Playboy Enterprises\&. Nmap também reporta o número total de endereços IP ao final\&. O scan listagem é um bom teste de sanidade para assegurar que você está com a lista correta de endereços IP dos seus alvos\&. Se os hosts mostrarem nomes de domínios que você não reconhece, vale a pena investigar melhor para evitar scanear a rede da empresa errada\&. +.sp +Uma vez que a idéia é apenas mostrar uma lista dos hosts\-alvos, as opções de funcionalidade de nível mais alto tais como scan de portas, detecção de SO, ou scan utilizando ping, não podem ser combinadas com esta opção\&. Se você deseja desabilitar o scan utilizando ping enquanto executa funções de nível elevado, leia a opção +\fB\-P0\fR\&. +.RE +.PP +\fB\-sP\fR (Scan usando Ping) +.RS 4 +Esta opção diz ao Nmap para +\fIsomente\fR + + +executar um scan usando o ping (descoberta de hosts), e então mostrar os hosts disponíveis que responderam ao scan\&. Nenhum teste adicional (tais como escaneamento de portas e deteção de SO) é executado\&. Isto é um pouco mais intrusivo que o scan listagem, e pode ser usado para os mesmos propósitos\&. Permite um reconhecimento leve de uma rede\-alvo sem chamar muita atenção\&. Saber quantos hosts estão ativos é mais valioso para invasores que a lista fornecida pelo scan listagem com cada endereço IP e seu nome de host\&. +.sp +Administradores de sistemas frequentemente acham esta opção valiosa\&. Ela pode ser facilmente utilizada para contar o número de máquinas disponíveis em uma rede ou monitorar a disponibilidade dos servidores\&. Isto é normalmente chamado de varredura com ping (ping sweep), e é mais confiável do que fazer um ping em um endereço de broadcast, pois muitos hosts não respondem a pesquisas com broadcast\&. +.sp +A opção +\fB\-sP\fR +envia um ICMP echo request e um pacote TCP para a porta 80 por padrão\&. Quando executada por um usuário sem privilégios, um pacote SYN é enviado (usando uma chamada +\fBconnect()\fR) para a porta 80 no alvo\&. Quando um usuário privilegiado tenta escanear alvos na rede ethernet local, requisições ARP (\fB\-PR\fR) são utilizadas, a menos que +\fB\-\-send\-ip\fR +tenha sido especificado\&. A opção +\fB\-sP\fR +pode ser combinada com qualquer um dos tipos de sondagens de descobrimento (as opções +\fB\-P*\fR +, excluindo +\fB\-P0\fR) para maior flexibilidade\&. Se qualquer uma dessas opções de tipos de sondagens e número de porta for utilizada, as sondagens padrão (ACK e echo request) são sobrepostas\&. Quando firewalls restritivos estão posicionados entre o host de origem que executa o Nmap e a rede\-alvo, utilizar essas técnicas avançadas é recomendado\&. Do contrário, hosts podem ser perdidos quando o firewall ignorar as sondagens ou as respostas delas\&. +.RE +.PP +\fB\-P0\fR (Sem ping) +.RS 4 +Esta opção pula completamente o estágio de descoberta do Nmap\&. Normalmente o Nmap utiliza este estágio para determinar as máquinas ativas para escaneamento mais agressivo\&. Por padrão, o Nmap apenas executa sondagens agressivas tais como escaneamento de portas, detecção de versões, ou detecções do SO contra hosts que foram verificados como ativos\&. Desabilitar a descoberta de hosts com +\fB\-P0\fR +faz com que o Nmap teste as funções de escaneamento solicitadas contra +\fItodos\fR +os endereços IP alvos especificados\&. Portanto se um espaço de endereçamento alvo do tamanho de uma classe B (/16) for especificado na linha de comando, todos os 65\&.536 endereços IP serão escaneados\&. O segundo caracter da opção +\fB\-P0\fR +é um zero e não a letra O\&. A descoberta de hosts apropriada é desconsiderada como no scan listagem, mas ao invés de parar e mostrar a lista de alvos, o Nmap continua a executar as funções solicitadas como se cada alvo IP estivesse ativo\&. +.RE +.PP +\fB\-PS [listadeportas]\fR (Ping usando TCP SYN) +.RS 4 +Esta opção envia um pacote TCP vazio com a flag SYN marcada\&. A porta de destino padrão é a 80 (configurada em tempo de compilação pela variável DEFAULT_TCP_PROBE_PORT no +nmap\&.h), mas uma porta alternativa pode ser especificada como um parâmetro\&. Até uma lista de portas separadas por vírgula pode ser especificada (p\&.ex\&. +\fB\-PS22,23,25,80,113,1050,35000\fR), nesse caso as sondagens serão tentadas contra cada porta em paralelo\&. +.sp +A flag SYN sugere aos sistemas remotos que você está tentando estabelecer uma comunicação\&. Normalmente a porta de destino estará fechada e um pacote RST (reset) será enviado de volta\&. Se acontecer de a porta estar aberta, o alvo irá dar o segundo passo do cumprimento\-de\-três\-vias (3\-way\-handshake) do TCP respondendo com um pacote TCP SYN/ACK TCP\&. A máquina executando o Nmap então derruba a conexão recém\-nascida respondendo com um RST ao invés de enviar um pacote ACK que iria completar o cumprimento\-de\-três\-vias e estabelecer uma conexão completa\&. O pacote RST é enviado pelo kernel da máquina que está executando o Nmap em resposta ao SYN/ACK inesperado, e não pelo próprio Nmap\&. +.sp +O Nmap não se importa se a porta está aberta ou fechada\&. Tanto a resposta RST ou SYN/ACK discutidas anteriormente dizem ao Nmap se o hosts está disponível e responsivo\&. +.sp +Em caixas UNIX, apenas o usuário privilegiado +root +é capaz, normalmente, de enviar e receber pacotes TCP em estado bruto\&. Para usuários não privilegiados um contorno é automaticamente empregado em concordância com a chamada de sistema connect() iniciada contra cada porta\-alvo\&. Isso tem o efeito de enviar um pacote SYN ao host alvo, em uma tentativa de se estabelecer uma conexão\&. Se o connect() retornar com sucesso rápido ou com uma falha ECONNREFUSED, a pilha TCP subjacente deve ter recebido um SYN/ACK ou RST e o host é marcado como disponível\&. Se a tentativa de conexão for deixada largada até que um timeout ocorra, o host é marcado como indisponível\&. Esse contorno também é usado para conexões IPv6, pois o suporte a construção de pacotes IPv6 em estado bruto ainda não está disponível no Nmap\&. +.RE +.PP +\fB\-PA [listadeportas]\fR (Ping usando TCP ACK) +.RS 4 +O ping usando TCP ACK é muito similar ao recém\-discutido ping usando SYN\&. A diferença, como você poderia imaginar, é que a flag TCP ACK é marcada ou invés da flag SYN\&. Tal pacote ACK finge reconhecer dados de uma conexão TCP estabelecida, quando nenhuma conexão existe de fato\&. Então os hosts remotos deveriam sempre responder com pacotes RST, revelando sua existência no processo\&. +.sp +A opção +\fB\-PA\fR +utiliza a mesma porta padrão que a sondagem SYN (80) e pode também obter uma lista de portas destino no mesmo formato\&. Se um usuário privilegiado tenta isto, ou se um alvo IPv6 é especificado, o contorno connect() discutido anteriormente é utilizado\&. Esse contorno é imperfeito pois o connect() está realmente enviando um pacote SYN ao invés de um ACK\&. +.sp +O motivo para oferecer ambas as sondagens ping, que utilizam SYN e ACK, é maximizar as chances de passar por firewalls\&. Muitos administradores configuram roteadores e outros firwalls simples para bloquear pacotes SYN entrantes exceto aqueles destinados a serviços públicos como o site web da empresa ou servidor de correio eletrônico\&. Isso evita as demais conexões entrantes na organização, permitindo aos usuários fazer conexões desobstruidas à Internet\&. Essa aproximação não\-orientada à conexão (non\-stateful ou stateless) consome uns poucos recursos no firewall/roteador e é amplamente suportada por filtros de hardware e software\&. O firewall de software Netfilter/iptables do Linux oferece a conveniência da opção +\fB\-\-syn\fR +para implementar essa abordagem stateless\&. Quando regras stateless do firewall tais como essas são implementadas, sondagens de ping usando SYN (\fB\-PS\fR) muito provavelmente serão bloqueadas quando forem enviadas à portas fechadas\&. Em tais casos, a sondagem ACK se destaca pois ela simplesmente passa por essas regras\&. +.sp +Outro tipo comum de firewall utiliza regras orientadas a conexão que descartam pacotes inesperados\&. Esta característica era encontrada inicialmente apenas em firewalls de alto\-nível, embora tenha se tornado mais comum com o passar dos anos\&. O sistema Netfilter/iptables do Linux suporta esta característica através da opção +\fB\-\-state\fR, que categoriza os pacotes baseados no estado da conexão\&. Uma sondagem SYN tem maiores chances de funcionar contra um sistema assim, pois pacotes ACK inesperados são normalmente reconhecidos como falsos e descartados\&. Uma solução para esse dilema é enviar ambas as sondagens SYN e ACK especificando +\fB\-PS\fR +e +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU [listadeportas]\fR (Ping usando UDP) +.RS 4 +Outra opção de descoberta de hosts é o ping usando UDP, que envia um pacote UDP vazio (a menos que +\fB\-\-data\-length\fR +seja especificado) para as portas informadas\&. O argumento "listadeportas" tem o mesmo formato que os discutidos anteriormente nas opções +\fB\-PS\fR +e +\fB\-PA\fR\&. Se nenhuma porta for especificada, o padrão é 31338\&. Esse padrão pode ser configurado em tempo de compilação alterando DEFAULT_UDP_PROBE_PORT no +nmap\&.h\&. Uma porta alta incomum é utilizada como padrão porque enviar para portas abertas normalmente é indesejado para este tipo particular de scan\&. +.sp +Ao bater contra uma porta fechada na máquina\-alvo, a sondagem UDP deve causar um pacote ICMP de porta inalcançável como resposta\&. Isso diz ao Nmap que a máquina está ativa e disponível\&. Muitos outros tipos de erros ICMP, tais como host/rede inalcançável ou TTL excedido são indicativos de um host inativo ou inalcançável\&. A falta de resposta também é interpretada dessa forma\&. Se uma porta aberta é alcançada, a maioria dos serviços simplesmente ignoram o pacote vazio e falham em retornar qualquer resposta\&. É por isso que a porta de sondagem padrão é 31338, que pouco provavelmente estará em uso\&. Uns poucos serviços, tal como o chargen, irá responder a um pacote UDP vazio, e com isso revelará ao Nmap que a máquina está disponível\&. +.sp +A principal vantagem deste tipo de scan é que ele passa por firewalls e filtros que apenas examinam o TCP\&. Por exemplo, uma vez eu tive um roteador broadband sem\-fio Linksys BEFW11S4\&. A interface externa desse dispositivo filtrava todas as portas TCP por padrão, mas as sondagens UDP ainda causavam mensagens de porta inalcançável, entregando assim o dispositivo\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (Tipos de Ping do ICMP) +.RS 4 +Além dos tipos incomuns de descoberta de hosts TCP e UDP discutidos anteriormente, o Nmap pode enviar os pacotes\-padrão que normalmente são enviados pelo onipresente programa ping\&. O Nmap envia um pacote ICMP do tipo 8 (echo request) ao endereço IP alvo, esperando como resposta um tipo 0 (Echo Reply) do host disponível\&. Infelizmente para muitos exploradores de rede, muitos hosts e firewalls atualmente bloqueiam esses pacotes, ao invés de responder como é requerido pela +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[3]\d\s+2\&. Por essa razão, scans puramente ICMP são raramente confiáveis o suficiente contra alvos desconhecidos na Internet\&. Mas para administradores de sistemas monitorando uma rede interna eles podem ser uma abordagem prática e eficiente\&. Utilize a opção +\fB\-PE\fR +para ativar esse comportamento echo request\&. +.sp +Embora o echo request seja a pesquisa padrão de um ping ICMP, o Nmap não pára aqui\&. A padronização do ICMP (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[4]\d\s+2) também especifica timestamp request, information request, e pacotes address mask request como códigos 13, 15, e 17, respectivamente\&. Apesar do propósito ostensivo dessas pesquisas seja obter informações tais como a máscara do endereço e hora corrente, eles podem ser facilmente utilizados para descoberta de hosts\&. Um sistema que responda está ativo e disponível\&. O Nmap não implementa atualmente os pacotes de requisição de informações, pois eles não são amplamente suportados\&. A RFC 1122 insiste que +\(lqum host NÃO DEVERIA implementar essas mensagens\(rq\&. Pesquisas de marcação de hora (Timestamp) e máscara de endereço podem ser enviadas com as opções +\fB\-PP\fR +e +\fB\-PM\fR +, respectivamente\&. Uma resposta timestamp reply (código ICMP 14) ou uma resposta address mask reply (código 18) revela que o host está disponível\&. Essas duas pesquisas podem ser valiosas quando os administradores bloqueiam pacotes echo request especificamente e esquecem que outras pesquisas ICMP podem ser usadas com o mesmo propósito\&. +.RE +.PP +\fB\-PR\fR (Ping usando ARP) +.RS 4 +Um dos cenários de uso mais comuns do Nmap é escanear a LAN ethernet\&. Na maioria das LANs, especialmente aquelas que utilizam a faixa de endereçamento privativo abençoado pela RFC1918, a vasta maioria dos endereços IP não são utilizados nunca\&. Quando o Nmap tenta enviar um pacote IP em estado bruto, tal como um ICMP echo request, o sistema operacional deve determinar o endereço físico de destino (ARP) correspondente ao IP\-alvo de forma que ele possa endereçar adequadamente o frame ethernet\&. Isso normalmente é lento e problemático, pois os sistemas operacionais não foram escritos com a expectativa de que precisariam fazer milhões de requisições ARP contra hosts indisponíveis em um curto período de tempo\&. +.sp +O scan ARP encarrega o Nmap e seus algoritmos otimizados de fazer as requisições ARP\&. E se ele conseguir uma resposta de volta, o Nmap não precisa nem se preocupar com os pacotes ping baseados em IP, uma vez que ele já sabe que o host está ativo\&. Isso torna o scan ARP muito mais rápido e mais confiável que os scans baseados em IP\&. Portanto isso é feito por padrão quando se escaneia hosts ethernet que o Nmap detecta estarem posicionados em uma rede ethernet local\&. Mesmo se tipos diferentes de ping (tais como +\fB\-PI\fR +ou +\fB\-PS\fR) seja especificados, o Nmap usa o ARP no lugar para cada um dos alvos que estiverem na mesma LAN\&. Se você não quiser de forma nenhuma fazer um scan ARP, especifique +\fB\-\-send\-ip\fR\&. +.RE +.PP +\fB\-n\fR (Não faça resolução DNS) +.RS 4 +Diz ao Nmap para +\fInunca\fR +fazer uma resolução DNS reversa nos endereços IP ativos que ele encontrar\&. Uma vez que o DNS é normalmente lento, isso acelera as coisas\&. +.RE +.PP +\fB\-R\fR (resolução DNS para todos os alvos) +.RS 4 +Diz ao Nmap para +\fIsempre\fR +fazer uma resolução DNS reversa nos endereços IP\-alvos\&. Normalmente isto apenas é executado quando uma máquina está ativa\&. +.RE +.PP +\fB\-\-system\-dns\fR (Usa a resolução DNS do sistema) +.RS 4 +Por padrão, o Nmap resolve o endereço IP através do envio de pesquisas (queries) diretamente aos servidores de nome configurados em seu host, e então escuta as respostas\&. Muitas das pesquisas (dezenas) são executadas em paralalo para um melhor desempenho\&. Especifique esta opção se desejar utilizar a resolução DNS do seu sistema (um endereço IP por vez, através da chamada getnameinfo())\&. Isto é mais lente e raramente útil, a não ser que haja um bug no código de DNS do Nmap \-\- por favor, entre em contato conosco se for o caso\&. A resolução DNS do sistema é sempre usada em escaneamento IPv6\&. +.RE +.PP +\fB\-\-dns\-servers <servidor1[,servidor2],\&.\&.\&.> \fR (Servidores a utilizar para a pesquisa DNS reversa) +.RS 4 +Por padrão o Nmap irá tentar determinar os seus servidores DNS (para a resolução DNS reversa) através do arquivo resolv\&.conf (UNIX) ou do registry (Win32)\&. Opcionalmente você pode usar esta opção para especificar servidores alternativos\&. Esta opção não é honrada se você estiver usando +\fB\-\-system\-dns\fR +ou um escaneamento IPv6\&. Utilizar múltiplos servidores DNS é, normalmente, mais rápido e mais furtivo do que pesquisar apenas em um servidor\&. O melhor desempenho é frequentemente obtido especificando\-se todos os servidores que tem autoridade sobre a faixa de endereços IP\&. +.RE +.SH "FUNDAMENTOS DO ESCANEAMENTO DE PORTAS" +.PP +Embora o Nmap tenha crescido em funcionalidade ao longo dos anos, ele começou como um eficiente scanner de portas, e essa permanece sua função principal\&. O simples comando +\fBnmap \fR\fB\fIalvo\fR\fR +escaneia mais de 1660 portas TCP no host +\fIalvo\fR\&. Embora muitos scanner de portas tenham tradicionalmente agrupado todas as portas nos estados aberto ou fechado, o Nmap é muito mais granular\&. Ele divide as portas em seis estados: +aberto(open), +fechado(closed),filtrado(filtered), +não\-filtrado(unfiltered), +open|filtered, ou +closed|filtered\&. +.PP +Esses estados não são propriedades intrínsecas da porta, mas descrevem como o Nmap as vê\&. Por exemplo, um scan do Nmap da mesma rede como alvo pode mostrar a porta 135/tcp como aberta, enquanto um scan ao mesmo tempo com as mesmas opções, à partir da Internet poderia mostrar essa porta como +filtrada\&. +.PP +\fBOs seis estados de porta reconhecidos pelo Nmap\fR +.PP +aberto (open) +.RS 4 +Uma aplicação está ativamente aceitando conexões TCP ou pacotes UDP nesta porta\&. Encontrar esse estado é freqüentemente o objetivo principal de um escaneamento de portas\&. Pessoas conscientes sobre a segurança sabem que cada porta aberta é um convite para um ataque\&. Invasores e profissionais de avaliação de segurança querem explorar as portas abertas, enquanto os administradores tentam fechar ou proteger com firewalls sem bloquear usuários legítimos\&. Portas abertas são também interessantes para scans não\-relacionados à segurança pois mostram os serviços disponíveis para utilização na rede\&. +.RE +.PP +fechado (closed) +.RS 4 +Uma porta fechada está acessível (ela recebe e responde a pacotes de sondagens do Nmap), mas não há nenhuma aplicação ouvindo nela\&. Elas podem ser úteis para mostrar que um host está ativo em um determinado endereço IP (descoberta de hosts, ou scan usando ping), e como parte de uma deteção de SO\&. Pelo fato de portas fechadas serem alcançáveis, pode valer a pena escanear mais tarde no caso de alguma delas abrir\&. Os administradores deveriam considerar o bloqueio dessas portas com um firewall\&. Então elas apareceriam no estado filtrado, discutido a seguir\&. +.RE +.PP +filtrado (filtered) +.RS 4 +O Nmap não consegue determinar se a porta está aberta porque uma filtragem de pacotes impede que as sondagens alcancem a porta\&. A filtragem poderia ser de um dispositivo firewall dedicado, regras de roteador, ou um software de firewall baseado em host\&. Essas portas frustram os atacantes pois elas fornecem poucas informações\&. às vezes elas respondem com mensagens de erro ICMP tais como as do tipo 3 código 13 (destino inalcançável: comunicação proibida administrativamente), mas os filtros que simplesmente descartam pacotes sem responder são bem mais comuns\&. Isso força o Nmap a tentar diversas vezes só para o caso de a sondagem ter sido descartada por congestionamento da rede ao invés de filtragem\&. Isso reduz a velocidade do scan dramaticamente\&. +.RE +.PP +não\-filtrado (unfiltered) +.RS 4 +O estado não\-filtrado significa que uma porta está acessível, mas que o Nmap é incapaz de determinar se ela está aberta ou fechada\&. Apenas o scan ACK, que é usado para mapear conjuntos de regras de firewall, classifica portas com este estado\&. Escanear portas não\-filtradas com outros tipos de scan, tal como scan Window, scan Syn, ou scan FIN, podem ajudar a responder se a porta está aberta\&. +.RE +.PP +open|filtered +.RS 4 +O Nmap coloca portas neste estado quando é incapaz de determinar se uma porta está aberta ou filtrada\&. Isso acontece para tipos de scan onde as portas abertas não dão nenhuma resposta\&. A falta de resposta também pode significar que um filtro de pacotes descartou a sondagem ou qualquer resposta que ela tenha provocado\&. Portanto não sabe\-se com certeza se a porta está aberta ou se está sendo filtrada\&. Os scans UDP, IP Protocol, FIN, Null, e Xmas classificam portas desta forma\&. +.RE +.PP +closed|filtered +.RS 4 +Este estado é usado quando o Nmap é incapaz de determinar se uma porta está fechada ou filtrada\&. É apenas usado para o scan IPID Idle scan\&. +.RE +.SH "TéCNICAS DE ESCANEAMENTO DE PORTAS" +.PP +Como um novato executando um reparo automotivo, posso brigar por horas tentando usar minhas ferramentas rudimentares (martelo, fita adesiva, grifo, etc\&.) nas tarefas\&. Quando eu falho miseravelmente e reboco minha lata\-velha para um mecânico de verdade ele invariavelmente pesca aqui e ali em um enorme baú de ferramentas até pegar a coisa perfeita que torna a tarefa uma brincadeira\&. A arte de escanear portas é similar\&. Os experts entendem as dezenas de técnicas de escaneamento e escolhem as que são apropriadas (ou uma combinação) para uma dada tarefa\&. Usuários inexperientes e script kiddies, por outro lado, tentam resolver todos os problemas com o scan SYN padrão\&. Uma vez que o Nmap é gratuito, a única barreira para a maestria em escaneamento de portas é o conhecimento\&. Isso certamente é melhor que no mundo automotivo, onde pode ser necessário uma grande habilidade para determinar que você precisa de um compressor de molas e então você tem que pagar milhares de dólares por um\&. +.PP +A maioria dos tipos de scan está disponível apenas para usuários privilegiados\&. Isso acontece porque eles enviam e recebem pacotes em estado bruto, o que requer acesso de root em sistemas Unix\&. Utilizar a conta de administrador no Windows é recomendado, embora o Nmap às vezes funcione com usuários sem privilégios nessa plataforma quando o WinPcap foi carregado no SO\&. Requerer privilégio de root era uma séria limitação quando o Nmap foi lançado em 1997, pois muitos usuários apenas tinham acesso a contas de shell compartilhadas\&. Agora o mundo é diferente\&. Computadores estão mais baratos, muito mais pessoas tem acesso direto e permanente à Internet, e computadores de mesa Unix (incluindo Linux e MAC OS X) são comuns\&. Uma versão para o Windows do Nmap se encontra disponível atualmente, permitindo que se rode em muito mais computadores de mesa\&. Por todas essas razões, os usuários tem menos necessidade de executar o Nmap à partir de contas de shell compartilhadas e limitadas\&. Isso é muito bom pois as opções privilegiadas tornam o Nmap muito mais poderoso e flexível\&. +.PP +Embora o Nmap tente produzir resultados precisos, tenha em mente que todas as deduções são baseadas em pacotes devolvidos pelas máquinas\-alvo (ou firewalls na frente delas)\&. Tais hosts podem ser não\-confiáveis e enviar respostas com o propósito de confundir ou enganar o Nmap\&. Muito mais comum são os hosts não\-de\-acordo\-com\-a\-rfc que não respondem como deveriam às sondagens do Nmap\&. As sondagens FIN, Null e Xmas são particularmente suscetíveis a esse problema\&. Tais questões são específicas de determinados tipos de scan e portanto são discutidos nas entradas individuais de cada um dos tipos\&. +.PP +Esta seção documenta as dezenas de técnicas de escaneamento de portas suportadas pelo Nmap\&. Apenas um método pode ser utilizado de cada vez exceto que um scan UDP (\fB\-sU\fR) pode ser combinado com qualquer um dos tipos de scan TCP\&. Como uma ajuda para a memória, as opções dos tipos de escaneamento de portas estão no formato +\fB\-s\fR\fB\fIC\fR\fR, onde +\fIC\fR +é um caracter proeminente no nome do scan, normalmente o primeiro\&. A única exceção a essa regra é para o scan deprecado FTP bounce (\fB\-b\fR)\&. Por padrão, o Nmap executa um scan SYN, embora ele substitua por um scan connect se o usuário não tiver os privilégios adequados para enviar pacotes em estado bruto (requer acesso de root no UNIX) ou se alvos IPv6 forem especificados\&. Dos scans listados nesta seção, os usuários não privilegiados podem apenas executar os scans connect e ftp bounce\&. +.PP +\fB\-sS\fR (scan TCP SYN) +.RS 4 +O scan SYN é a opção de scan padrão e mais popular por boas razões\&. Pode ser executada rapidamente, escaneando milhares de portas por segundo em uma rede rápida, não bloqueada por firewalls intrusivos\&. O scan SYN é relativamente não\-obstrusivo e camuflado, uma vez que ele nunca completa uma conexão TCP\&. Ele também trabalha contra qualquer pilha TCP padronizada ao invés de depender de idiossincrasias de plataformas específicas como os scans Fin/Null/Xmas, Maimon e Idle fazem\&. Ele também permite uma diferenciação limpa e confiável entre os estados +aberto (open), +fechado (closed), e +filtrado (filtered)\&. +.sp +Esta técnica é freqüentemente chamada de escaneamento de porta entreaberta (half\-open scanning), porque você não abre uma conexão TCP completamente\&. Você envia um pacote SYN, como se fosse abrir uma conexão real e então espera uma resposta\&. Um SYN/ACK indica que a porta está ouvindo (aberta), enquanto um RST (reset) é indicativo de uma não\-ouvinte\&. Se nenhuma resposta é recebida após diversas retransmissões, a porta é marcada como filtrada\&. A porta também é marcada como filtrada se um erro ICMP de inalcançável é recebido (tipo 3, código 1,2, 3, 9, 10, ou 13)\&. +.RE +.PP +\fB\-sT\fR (scan TCP connect) +.RS 4 +O scan TCP connect é o scan padrão do TCP quando o scan SYN não é uma opção\&. Esse é o caso quando o usuário não tem privilégios para criar pacotes em estado bruto ou escanear redes IPv6\&. Ao invés de criar pacotes em estado bruto como a maioria dos outros tipos de scan fazem, o Nmap pede ao sistema operacional para estabelecer uma conexão com a máquina e porta alvos enviando uma chamada de sistema +connect()\&. Essa é a mesma chamada de alto nível que os navegadores da web, clientes P2P, e a maioria das outras aplicações para rede utilizam para estabelecer uma conexão\&. É parte da interface de programação conhecida como API de Sockets de Berkeley\&. Ao invés de ler as respostas em pacotes em estado bruto diretamente dos fios, o Nmap utiliza esta API para obter informações do estado de cada tentativa de conexão\&. +.sp +Quando um scan SYN está disponível é normalmente a melhor escolha\&. O Nmap tem menos controle sobre a chamada de alto nível +connect() +do que sobre os pacotes em estado bruto, tornando\-o menos eficiente\&. A chamada de sistema completa as conexões nas portas\-alvo abertas ao invés de executar o reset de porta entreaberta que o scan SYN faz\&. Isso não só leva mais tempo e requer mais pacotes para obter a mesma informação, mas também torna mais provável que as máquinas\-alvo registrem a conexão\&. Um sistema IDS decente irá detectar qualquer um deles, mas a maioria das máquinas não tem esse tipo de sistema de alarme\&. Muitos serviços na maioria dos sistema Unix irão acrescentar uma nota no syslog, e às vezes uma mensagem de erro obscura, quando o Nmap se conecta e então fecha a conexão sem enviar nenhum dado\&. Serviços verdadeiramente patéticos irão travar quando isso acontecer, embora isso seja incomum\&. Um administrador que vê um punhado de tentativas de conexão nos registros vindos de um único sistema deveria saber que foi escaneado com connect()\&. +.RE +.PP +\fB\-sU\fR (scans UDP) +.RS 4 +Embora os serviços mais populares na Internet trafeguem sobre o protocolo TCP, os serviços +\m[blue]\fBUDP\fR\m[]\&\s-2\u[5]\d\s+2 +são amplamente difundidos\&. O DNS, o SNMP, e o DHCP (registrados nas portas 53, 161/162, e 67/68) são três dos mais comuns\&. Pelo fato do escaneamento UDP ser normalmente mais lento e mais difícil que o TCP, alguns auditores de segurança ignoram essas portas\&. Isso é um erro, pois serviços UDP passíveis de exploração são bastante comuns e invasores certamente não ignoram o protocolo inteiro\&. Felizmente o Nmap pode ajudar a inventariar as portas UDP\&. +.sp +O scan UDP é ativado com a opção +\fB\-sU\fR\&. Ele pode ser combinado com um tipo de escaneamento TCP como o scan SYN (\fB\-sS\fR) para averigüar ambos protocolos na mesma execução\&. +.sp +O scan UDP funciona enviando um cabeçalho UDP vazio (sem dados) para cada porta almejada\&. Se um erro ICMP de porta inalcançável (tipo 3, código 3) é retornado, a porta está +fechada\&. Outros erros do tipo inalcançável (tipo 3, códigos 1, 2, 9, 10, ou 13) marcam a porta como +filtrada\&. Ocasionalmente um serviço irá responder com um pacote UDP, provando que está +aberta\&. Se nenhuma resposta é recebida após as retransmissões, a porta é classificada como +aberta|filtrada\&. Isso significa que a porta poderia estar aberta, ou talvez que filtros de pacotes estejam bloqueando a comunicação\&. Scans de versões (\fB\-sV\fR) podem ser utilizados para ajudar a diferenciar as portas verdadeiramente abertas das que estão filtradas\&. +.sp +Um grande desafio com o escaneamento UDP é fazê\-lo rapidamente\&. Portas abertas e filtradas raramente enviam alguma resposta, deixando o Nmap esgotar o tempo (time out) e então efetuar retransmissões para o caso de a sondagem ou a resposta ter sido perdida\&. Portas fechadas são, normalmente, um problema ainda maior\&. Elas costumam enviar de volta um erro ICMP de porta inalcançável\&. Mas, ao contrário dos pacotes RST enviados pelas portas TCP fechadas em resposta a um scan SYN ou connect, muitos hosts limitam a taxa de mensagens ICMP de porta inalcançável por padrão\&. O Linux e o Solaris são particularmente rigorosos quanto a isso\&. Por exemplo, o kernel 2\&.4\&.20 do Linux limita a quantidade de mensagens de destino inalcançável a até uma por segundo (no +net/ipv4/icmp\&.c)\&. +.sp +O Nmap detecta a limitação de taxa e diminui o ritmo de acordo para evitar inundar a rede com pacotes inúteis que a máquina\-alvo irá descartar\&. Infelizmente, um limite como o do Linux de um pacote por segundo faz com que um scan de 65\&.536 portas leve mais de 18 horas\&. Idéias para acelerar o escaneamento UDP incluem escanear mais hosts em paralelo, fazer um scan rápido apenas das portas mais comuns primeiro, escanear por detrás de um firewall, e utilizar +\fB\-\-host\-timeout\fR +para pular os hosts lentos\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (scans TCP Null, FIN, e Xmas) +.RS 4 +Esses três tipos de scan (existem outras opções, possíveis com a opção +\fB\-\-scanflags\fR +descrita na próxima seção) exploram uma brecha sutil na +\m[blue]\fBRFC do TCP\fR\m[]\&\s-2\u[6]\d\s+2 +para diferenciarem entre portas +abertas +e +fechadas\&. A página 65 diz que +\(lqse a porta [destino] estiver FECHADA \&.\&.\&.\&. um segmento entrante que não contenha um RST irá causar o envio de um RST como resposta\&.\(rq +Então a página seguinte discute os pacotes enviados à portas abertas sem os bits SYN, RST ou ACK marcados, afirmando que: +\(lqé pouco provável que você chegue aqui, mas se chegar, descarte o segmento, e volte\&.\(rq +.sp +Quando se escaneia sistemas padronizados com o texto desta RFC, qualquer pacote que não contenha os bits SYN, RST, ou ACK irá resultar em um RST como resposta se a porta estiver fechada, e nenhuma resposta se a porta estiver aberta\&. Contanto que nenhum desses três bits estejam incluídos, qualquer combinação dos outros três (FIN, PSH e URG) é válida\&. O Nmap explora isso com três tipos de scan: +.PP +scan Null (\fB\-sN\fR) +.RS 4 +Não marca nenhum bit (o cabeçalho de flag do tcp é 0) +.RE +.PP +scan FIN (\fB\-sF\fR) +.RS 4 +Marca apenas o bit FIN do TCP\&. +.RE +.PP +scan Xmas(\fB\-sX\fR) +.RS 4 +Marca as flags FIN, PSH e URG, iluminando o pacote como uma árvore de Natal\&. +.RE +.sp +Esses três tipos de scan são exatamente os mesmos em termos de comportamento, exceto pelas flags TCP marcadas no pacotes de sondagem\&. Se um pacote RST for recebido, a porta é considerada +fechada, e nenhuma resposta significa que está +aberta|filtrada\&. A porta é marcada como +filtrada +se um erro ICMP do tipo inalcançável (tipo 3, código 1, 2, 3, 9, 10, ou 13) for recebido\&. +.sp +A vantagem principal desses tipos de scan é que eles podem bisbilhotar através de alguns firewalls não\-orientados à conexão e de roteadores que filtram pacotes\&. Outra vantagem é que esses tipos de scan são um pouco mais camuflados do que o scan SYN\&. Mas, não conte com isso \-\- a maioria dos produtos IDS modernos podem ser configurados para detectá\-los\&. O maior problema é que nem todos os sistemas seguem a RFC 793 ao pé\-da\-letra\&. Diversos sistemas enviam respostas RST para as sondagens independentemente do fato da porta estar aberta ou não\&. Isso faz com que todas as portas sejam classificadas como +fechadas\&. A maioria dos sistemas operacionais que fazem isso são Microsoft Windows, muitos dispositivos Cisco, BSDI, e o IBM OS/400\&. Esse scan realmente funciona contra a maioria dos sistemas baseados em Unix\&. Outro ponto negativo desses scans é que eles não conseguem diferenciar portas +abertas +de alguns tipos de portas +filtradas, deixando você com a resposta +abera|filtrada\&. +.RE +.PP +\fB\-sA\fR (scan TCP ACK) +.RS 4 +Esse scan é diferente dos outros discutidos até agora pelo fato de que ele nunca determina se uma porta está +aberta +(ou mesmo +aberta|filtrada)\&. Ele é utilizado para mapear conjuntos de regras do firewall, determinando se eles são orientados à conexão ou não e quais portas estão filtradas\&. +.sp +O pacote de sondagem do scan ACK tem apenas a flag ACK marcada (a menos que você use +\fB\-\-scanflags\fR)\&. Quando se escaneia sistemas não\-filtrados, as portas +abertas +e +fechadas +irão devolver um pacote RST\&. O Nmap então coloca nelas o rótulo +não\-filtradas (unfiltered), significando que elas estão alcançáveis pelo pacote ACK, mas se elas estão +abertas +ou +fechadas +é indeterminado\&. Portas que não respondem, ou que devolvem certas mensagens de erro ICMP (tipo 3, código 1, 2, 3, 9, 10, ou 13), são rotuladas como +filtradas\&. +.RE +.PP +\fB\-sW\fR (scan da Janela TCP) +.RS 4 +Scan da Janela é exatamente o mesmo que o scan ACK, exceto que ele explora um detalhe da implementação de certos sistemas de forma a diferenciar as portas abertas das fechadas, ao invés de sempre mostrar +não\-filtrada +quando um RST é devolvido\&. Ele faz isso examinando o campo Janela TCP (TCP Window) do pacote RST devolvido\&. Em alguns sistemas, as portas abertas usam um valor positivo de tamanho de janela (mesmo para pacotes RST), enquanto que as portas fechadas tem um valor igual a zero\&. Então, ao invés de sempre mostrar uma porta como +não\-filtrada +quando se recebe um RST de volta, o scan da Janela mostra a porta como +aberta +ou +fechada +se o valor da Janela TCP no reset for positivo ou zero, respectivamente\&. +.sp +Este scan se baseia em um detalhe de implementação de uma minoria de sistemas na Internet, portanto não se pode confiar sempre nele\&. Sistemas que não suportam isso irão normalmente devolver todas as portas como +fechadas\&. É claro que é possível que a máquina realmente não tenha nenhuma porta aberta\&. Se a maioria das portas escaneadas estiver +fechada +mas uns poucos números de portas comuns (tais como 22, 25, 53) estão +filtrados, o sistema muito provavelmente está vulnerável\&. De vez em quando, os sistemas irão mostrar exatamente o comportamento oposto\&. Se o seu scan mostrar 1000 portas abertas e 3 fechadas ou filtradas, então essas três podem muito bem ser as verdadeiramente abertas\&. +.RE +.PP +\fB\-sM\fR (scan TCP Maimon) +.RS 4 +O scan Maimon recebeu o nome de seu descobridor, Uriel Maimon\&. Ele descreveu a técnica na Phrack Magazine, edição 49 (Novembro de 1996)\&. O Nmap, que incluiu essa técnica, foi lançado duas edições mais tarde\&. A técnica é exatamente a mesma que os scans Null, FIN e Xmas, exceto que a sondagem é FIN/ACK\&. De acordo com a RFC 793 (TCP), um pacote RST deveria ser gerado em resposta a tal sondagem se a porta estiver aberta ou fechada\&. Entretanto, Uriel notou que muitos sistemas derivados do BSD simplesmente descartavam o pacote se a porta estivesse aberta\&. +.RE +.PP +\fB\-\-scanflags\fR (scan TCP Personalizado) +.RS 4 +Usuários verdadeiramente avançados do Nmap não precisam se limitar aos tipos de scans enlatados oferecidos\&. A opção +\fB\-\-scanflags\fR +permite que você desenhe seu próprio scan permitindo a especificação de flags TCP arbitrárias\&. Deixe sua imaginação correr solta enquanto dribla sistemas de detecção de intrusão, cujos fabricantes apenas olharam rapidamente a página man do Nmap adicionando regras específicas! +.sp +O argumento do +\fB\-\-scanflags\fR +pode ser um valor numérico da marca (flag) como o 9 (PSH e FIN), mas usar nomes simbólicos é mais fácil\&. Apenas esprema alguma combinação de +URG, +ACK, +PSH, +RST, +SYN, e +FIN\&. Por exemplo, +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +marca tudo, embora não seja muito útil para escaneamento\&. A ordem em que essas marcas são especificadas é irrelevante\&. +.sp +Além de especificar as marcas desejadas, você pode especificar um tipo de scan TCP (como o +\fB\-sA\fR +ou +\fB\-sF\fR)\&. Esse tipo\-base diz ao Nmap como interpretar as respostas\&. Por exemplo, um scan SYN considera nenhuma\-resposta como uma indicação de porta +filtrada, enquanto que um scan FIN trata a mesma como +aberta|filtrada\&. O Nmap irá se comportar da mesma forma que o tipo de scan\-base escolhido, exceto que ele irá usar as marcas TCP que você especificar\&. Se você não escolher um tipo\-base, o scan SYN é utilizado\&. +.RE +.PP +\fB\-sI <hostzumbi[:portadesondagem]>\fR (scan Idle) +.RS 4 +Este método avançado de scan permite um scan TCP realmente cego das portas do alvo (significando que nenhum pacote é enviado para o alvo do seu endereço IP real)\&. Ao invés disso, um ataque canal\-lateral (side\-channel) explora a previsível geração de seqüencia de ID, conseqüencia da fragmentação do IP, no host zumbi, para juntar informações sobre as portas abertas no alvo\&. Sistemas IDS irão mostrar o scan como se viessem da máquina zumbi que você especificou (que deve estar ativa e obedecer a alguns critérios)\&. Este tipo fascinante de scan é complexo demais para se descrever completamente aqui, neste guia de referência, então eu escrevi e postei um trabalho informal com detalhes completos em +\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&. +.sp +Além de ser extraordinariamente camuflado (devido à sua natureza cega), este tipo de scan permite mapear relações de confiança baseadas em IP entre máquinas\&. A listagem de portas mostra as portas abertas +\fIda perspectiva do host zumbi\&.\fR +Portanto você pode tentar escanear algo usando vários zumbis que você acha que podem ser confiáveis (via regras de roteador/filtro de pacotes)\&. +.sp +Você pode adicionar o sinal "dois\-pontos", seguido do número da porta, ao nome do host zumbi se quiser sondar uma porta em particular no zumbi, verificando as mudanças de IPID\&. Do contrário o Nmap irá utilizar a porta que ele normalmente usa por padrão para pings tcp (80)\&. +.RE +.PP +\fB\-sO\fR (Scans do protocolo IP) +.RS 4 +Scans do Protocolo IP permitem que você determine quais protocolos IP (TCP, ICMP, IGMP, etc\&.) são suportados pelas máquina\-alvo\&. Isso não é, tecnicamente, um scan de portas, pois ele varia os números do protocolo IP ao invés dos números de portas TCP e UDP\&. Ainda assim, ele utiliza a opção +\fB\-p\fR +para selecionar os números de protocolos a escanear, mostra os resultados dentro do formato normal da tabela de portas e usa o mesmo mecanismo de escaneamento dos métodos de descoberta de portas\&. Portanto ele é parecido o suficiente com um scan de portas e por isso pertence à este lugar\&. +.sp +Além de ser útil de seu jeito, o scan de protocolo mostra o poder do software de código aberto\&. Embora a idéia fundamental seja bastante simples, eu não havia pensado em adicioná\-la e nem havia recebido nenhuma solicitação para essa funcionalidade\&. Então, no verão de 2000, Gerhard Rieger concebeu a idéia, escreveu uma excelente alteração (patch) implementando\-a, e a enviou para a lista de discussão nmap\-hackers\&. Eu incorporei a alteração na árvore do Nmap e lancei uma nova versão no dia seguinte\&. Poucos produtos de software comercial tem usuários entusiasmados o suficiente para desenhar e contribuir com melhorias! +.sp +O scan de protocolo funciona de uma forma similar a um scan UDP\&. Ao invés de ficar repetindo alternando o campo de número de porta de um pacote UDP, ele envia cabeçalhos de pacote IP e faz a repetição alternando o campo de protocolo IP de 8 bits\&. Os cabeçalhos normalmente estão vazios, sem conter dados, e nem mesmo contendo o cabeçalho apropriado do suposto protocolo\&. As três exceções são o TCP, o UDP e o ICMP\&. Um cabeçalho de protocolo apropriado para estes é incluído, uma vez que alguns sistemas não os enviarão caso não tenham, e porque o Nmap tem as funções para criá\-los Ao invés de observar as mensagens de erro ICMP de porta inalcançável, o scan de protocolo fica de olho nas mensagens ICMP de +\fIprotocolo\fR +inalcançável\&. Se o Nmap recebe qualquer resposta de qualquer protocolo do host\-alvo, o Nmap marca esse protocolo como +aberto\&. Um erro ICMP de protocolo não\-alcançável (tipo 3, código 2) faz com que o protocolo seja marcado como +fechado\&. Outros erros ICMP do tipo inalcançável (tipo 3, código 1, 3, 9, 10, ou 13) fazem com que o protocolo seja marcado como +filtrado +(embora eles provem, ao mesmo tempo, que o ICMP está +aberto)\&. Se nenhuma resposta for recebida após as retransmissões, o protocolo é marcado como +aberto|filtrado\&. +.RE +.PP +\fB\-b <host para relay de ftp>\fR (Scan de FTP bounce) +.RS 4 +Uma característica interessante do protocolo FTP (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[7]\d\s+2) é o suporte à conexões denominadas proxy ftp\&. Isso permite que um usuário conecte\-se a um servidor FTP, e então solicite que arquivos sejam enviados a um terceiro servidor\&. Tal característica é sujeita a abusos em diversos níveis, por isso a maioria dos servidores parou de suportá\-la\&. Um dos abusos permitidos é fazer com que o servidor FTP escaneie as portas de outros hosts\&. Simplesmente solicite que o servidor FTP envie um arquivo para cada porta interessante do host\-alvo\&. A mensagem de erro irá descrever se a porta está aberta ou não\&. Esta é uma boa forma de passar por cima de firewalls porque os servidores FTP de empresas normalmente são posicionados onde tem mais acesso a outros hosts internos que os velhos servidores da Internet teriam\&. O Nmap suporta o scan de ftp bounce com a opção +\fB\-b\fR\&. Ela recebe um argumento no formato +\fInomedousuário\fR:\fIsenha\fR@\fIservidor\fR:\fIporta\fR\&. +\fIServidor\fR +é o nome ou endereço IP de um servidor FTP vulnerável\&. Assim como em uma URL normal, você pode omitir +\fInomedousuário\fR:\fIsenha\fR, neste caso as credenciais de login anônimo (usuário: +anonymous +senha:\-wwwuser@) serão usados\&. O número da porta (e os dois\-pontos) podem ser omitidos, e então a porta FTP padrão (21) no +\fIservidor\fR +será utilizada\&. +.sp +Esta vulnerabilidade espalhou\-se em 1997 quando o Nmap foi lançado, mas foi corrigida amplamente\&. Servidores vulneráveis ainda estão por aí, então pode valer a pena tentar se tudo o mais falhar\&. Se passar por cima de um firewall é o seu objetivo, escaneie a rede\-alvo procurando por uma porta 21 aberta (ou mesmo por qualquer serviço FTP se você escanear todas as portas com a detecção de versão), então tente um scan bounce usando\-as\&. O Nmap irá dizer se o host é vulnerável ou não\&. Se você estiver apenas tentando encobrir suas pegadas, você não precisa (e, na verdade, não deveria) limitar\-se a hosts na rede\-alvo\&. Antes de sair escaneando endereços aleatórios na Internet, procurando por servidores FTP, considere que os administradores de sistemas podem não apreciar o seu abuso nos servidores deles\&. +.RE +.SH "ESPECIFICAçãO DE PORTAS E ORDEM DE SCAN" +.PP +Somado a todos os métodos de scan discutidos anteriormente, o Nmap oferece opções para especificar quais portas são escaneadas e se a ordem de escaneamento é aleatória ou sequencial\&. Por padrão, o Nmap escaneia todas as portas até, e incluindo, 1024, bem como portas com numeração alta listadas no arquivo the +nmap\-services +para o(s) protocolo(s) escaneados\&. +.PP +\fB\-p <faixa de portas>\fR (Escaneia apenas as portas especificadas) +.RS 4 +Esta opção especifica quais portas que você deseja escanear e prevalece sobre o padrão\&. Números de portas individuais são suportadas, bem como as faixas separadas por um hífen (p\&.ex\&.: 1\-1023)\&. Os valores iniciais e/ou finais da faixa podem ser omitidos, o que faz com que o Nmap use 1 e 65535, respectivamente\&. Portanto, você pode especificar +\fB\-p\-\fR +para escanear as portas de 1 até 65535\&. Escanear a porta zero é permitido se você especificar explicitamente\&. Para o escaneamento do protocolo IP (\fB\-sO\fR), esta opção especifica os números dos protocolos que você deseja escanear (0\-255)\&. +.sp +Quando escanear ambas as portas TCP e UDP, você pode especificar um protocolo em particular, precedendo os números de portas com +T: +ou +U:\&. O qualificador dura até que você especifique um novo qualificador\&. Por exemplo, o argumento +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +escanearia as portas UDP 53, 111 e 137, bem como as portas TCP listadas\&. Note que para escanear ambas as portas UDP e TCP, você tem que especificar +\fB\-sU\fR +e pelo menos um tipo de scan TCP (tal como +\fB\-sS\fR, +\fB\-sF\fR +ou +\fB\-sT\fR)\&. Se nenhum qualificador de protocolo for informado, os números de portas serão acrescentados à todas as listas de protocolos\&. +.RE +.PP +\fB\-F\fR (Scan Rápido (portas limitadas)) +.RS 4 +Especifica que você deseja apenas escanear as portas listadas no arquivo +nmap\-services +que vem com o nmap (ou o arquivo de protocolos para o +\fB\-sO\fR)\&. Isto é muito mais rápido do que escanear todas as 65535 portas de um host\&. Pelo fato desta lista conter tantas portas TCP (mais de 1200), a diferença de velocidade de um scan TCP padrão (cerca de 1650 portas) não é dramática\&. A diferença pode ser enorme se você especificar seu próprio minúsculo arquivo +nmap\-services +usando a opção +\fB\-\-datadir\fR\&. +.RE +.PP +\fB\-r\fR (Não usa as portas de forma aleatória) +.RS 4 +Por padrão, o Nmap usa a ordem das portas a serem escaneadas de forma aleatória (exceto aquelas portas normalmente certamente acessíveis que são movidas próximas ao início por motivos de eficiência)\&. Essa técnica de busca aleatória normalmente é desejável, mas você pode especificar +\fB\-r\fR +para um escaneamento de portas sequencial\&. +.RE +.SH "DETECçãO DE SERVIçO E VERSãO" +.PP +Aponte o Nmap para uma máquina remota e ele poderá lhe dizer que as portas 25/tcp, 80/tcp e 53/udp estão abertas\&. Utilizar o banco de dados +nmap\-services, com cerca de 2\&.200 serviços bastante conhecidos, do Nmap iria relatar que aquelas portas provavelmente correspondem a um servidor de correio eletrônico (SMTP), a um servidor de páginas web (HTTP) e a um servidor de nomes (DNS) respectivamente\&. Essa pesquisa normalmente é precisa \-\- a grande maioria de daemons escutando na porta TCP 25 é, de fato, de servidores de correio eletrônico\&. Entretanto, você não deveria apostar a sua segurança nesta informação! As pessoas podem e executam serviços em portas estranhas\&. +.PP +Mesmo que o Nmap esteja certo, e o servidor hipotético acima esteja executando os serviços SMTP, HTTP e DNS, isso não é informação o bastante\&. Quando fizer uma avaliação de vulnerabilidades (ou mesmo um simples inventário da rede) de sua empresa ou clientes, você realmente deseja saber qual o programa\-servidor de correio eletrônico ou de nomes e as versões que estão rodando\&. Ter um número de versão exato ajuda substancialmente na determinação de quais explorações (exploits) o servidor está vulnerável\&. A detecção de versão ajuda a obter esta informação\&. +.PP +Depois que as portas TCP e/ou UDP forem descobertas usando qualquer um dos outros métodos de scan, a detecção de versão interroga essas portas para determinar mais informações sobre o que realmente está sendo executado nessas portas\&. O banco de dados +nmap\-service\-probes +do Nmap contém sondagens para pesquisar diversos serviços e expressões de acerto (match expressions) para reconhecer e destrinchar as respostas\&. O Nmap tenta determinar os protocolos de serviços (p\&.ex\&.: ftp, ssh, telnet, http), o nome da aplicação (p\&.ex\&.: ISC Bind, Apache httpd, Solaris telnetd), o número da versão, o nome do host, tipo de dispositivo (p\&.ex\&.: impressora, roteador), a família do SO (p\&.ex\&.: Windows, Linux) e às vezes detalhes diversos do tipo, se um servidor X está aberto para conexões, a versão do protocolo SSH ou o nome do usuário do KaZaA\&. É claro que a maioria dos serviços não fornece todas essas informações\&. Se o Nmap foi compilado com o suporte ao OpenSSL, ele irá se conectar aos servidores SSL para deduzir qual o serviço que está escutando por trás da camada criptografada\&. Quando os serviços RPC são descobertos, o "amolador" de RPC (RPC grinder) do Nmap (\fB\-sR\fR) é automaticamente utilizado para determinar o nome do programa RPC e o número da versão\&. Algumas portas UDP são deixadas no estado +aberta|filtrada +depois que scan de porta UDP não consegue determinar se a porta está aberta ou filtrada\&. A detecção de versão irá tentar provocar uma resposta dessas portas (do mesmo jeito que faz com as portas abertas), e alterar o estado para aberta se conseguir\&. Portas TCP do tipo +aberta|filtrada +são tratadas da mesma forma\&. Note que a opção +\fB\-A\fR +do Nmap habilita a detecção de versão, entre outras coisas\&. Um trabalho documentando o funcionamento, uso e customização da detecção de versão está disponível em +\m[blue]\fB\%https://nmap.org/vscan/\fR\m[]\&. +.PP +Quando o Nmap recebe uma resposta de um serviço mas não consegue encontrá\-la em seu banco de dados, ele mostra uma identificação (fingerprint) especial e uma URL para que você envie informações se souber com certeza o que está rodando nessa porta\&. Por favor, considere dispor de alguns minutos para mandar essa informação de forma que sua descoberta possa beneficiar a todos\&. Graças a esses envios, o Nmap tem cerca de 3\&.000 padrões de acerto para mais de 350 protocolos, tais como o smtp, ftp, http, etc\&. +.PP +A detecção de versão é habilitada e controlada com as seguintes opções: +.PP +\fB\-sV\fR (detecção de versão) +.RS 4 +Habilita a detecção de versão, conforme discutido acima\&. Alternativamente, você pode usar a opção +\fB\-A\fR +para habilitar tanto a detecção de SO como a detecção de versão\&. +.RE +.PP +\fB\-\-allports\fR (Não exclui nenhuma porta da detecção de versão) +.RS 4 +Por padrão, a detecção de versão do Nmap pula a porta TCP 9100 por causa de algumas impressoras que imprimem qualquer coisa que seja enviada para essa porta, levando a dezenas de páginas com requisições HTTP, requisições de sessões SSL binárias, etc\&. Esse comportamento pode ser alterado modificando\-se ou removendo a diretiva +Exclude +no +nmap\-service\-probes, ou você pode especificar +\fB\-\-allports\fR +para escanear todas as portas independente de qualquer diretiva +Exclude\&. +.RE +.PP +\fB\-\-version\-intensity <intensidade>\fR (Estabelece a intensidade do scan de versão) +.RS 4 +Quando está executando um scan de versão (\fB\-sV\fR), o nmap envia uma série de sondagens, cada qual com um valor atribuído de raridade, entre 1 e 9\&. As sondagens com números baixos são efetivas contra uma ampla variedade de serviços comuns, enquanto as com números altos são raramente úteis\&. O nível de intensidade especifica quais sondagens devem ser utilizadas\&. Quando mais alto o número, maiores as chances de o serviço ser corretamente identificado\&. Entretanto, scans de alta intensidade levam mais tempo\&. A intensidade deve estar entre 0 e 9\&. O padrão é 7\&. Quando uma sondagem é registrada na porta\-alvo através da diretiva +nmap\-service\-probes +ports, essa sondagem é tentada independentemente do nível de intensidade\&. Isso assegura que as sondagens DNS sempre serão tentadas contra qualquer porta 53 aberta, e a sondagem SSL será realizada contra a 443, etc\&. +.RE +.PP +\fB\-\-version\-light\fR (Habilita o modo leve (light)) +.RS 4 +Esse é um apelido conveniente para +\fB\-\-version\-intensity 2\fR\&. Esse modo leve torna o escaneamento de versão muito mais rápido, mas é ligeiramente menos provável que identifique os serviços\&. +.RE +.PP +\fB\-\-version\-all\fR (Tenta simplesmente todas as sondagens) +.RS 4 +Um apelido para +\fB\-\-version\-intensity 9\fR, assegurando que todas as sondagens sejam tentadas contra cada porta\&. +.RE +.PP +\fB\-\-version\-trace\fR (Monitora as atividades do scan de versão) +.RS 4 +Isto faz com que o Nmap mostre informações de depuração extensivas sobre o que o escaneamento de versão está fazendo\&. É um sub\-conjunto do que você obteria com +\fB\-\-packet\-trace\fR\&. +.RE +.PP +\fB\-sR\fR (Scan RPC) +.RS 4 +Este método trabalha em conjunto com os vários métodos de escaneamento de portas do Nmap\&. Ele pega todas as portas TCP/UDP descobertas no estado aberta e inunda\-as com comandos NULL do programa SunRPC, em uma tentativa de determinar se elas são portas RPC e, se forem, quais programas e números de versão elas mostram\&. Dessa forma você pode obter efetivamente a mesma informação que o +\fBrpcinfo \-p\fR +mesmo se o portmapper do alvo estiver atrás de um firewall (ou protegido por TCP wrappers)\&. Chamarizes não funcionam ainda com o scan RPC\&. Isso é habilitado automaticamente como parte do scan de versão (\fB\-sV\fR) se você o solicitar\&. Como a detecção de versão inclui isso e é muito mais abrangente, o +\fB\-sR\fR +raramente é necessário\&. +.RE +.SH "DETECçãO DE SO" +.PP +Uma das características mais conhecidas do Nmap é a detecção remota de SO utilizando a identificação da pilha (stack fingerprinting) do TCP/IP\&. O Nmap envia uma série de pacotes TCP e UDP ao host remoto e examina praticamente todos os bits das respostas\&. Após executar dezenas de testes como a amostragem TCP ISN, suporte e ordenamento das opções do TCP, amostragem IPID e a checagem do tamanho inicial da janela, o Nmap compara os resultados com o banco de dados +nmap\-os\-fingerprints +com mais de 1500 identificações de SO conhecidas e mostra os detalhes do SO se houver uma correspondência\&. Cada identificação inclui uma descrição textual livre do SO e uma classificação que fornece o nome do fabricante (p\&.ex\&.: Sun), SO base (p\&.ex\&.: Solaris), geração do SO (p\&.ex\&.: 10) e tipo de dispositivo (genérico, roteador, switch, console de jogo, etc\&.)\&. +.PP +Se o Nmap não conseguir identificar o SO da máquina, e as condições forem favoráveis (p\&.ex\&.: pelo menos uma porta aberta e uma porta fechada foram encontradas), o Nmap irá fornecer uma URL onde você poderá enviar a identificação se souber (com certeza) o SO em execução na máquina\&. Fazendo isso, você contribui para a gama de sistemas operacionais conhecidos pelo Nmap e, com isso, ele será mais preciso para todos\&. +.PP +A detecção de SO habilita diversos outros testes que usam as informações coletadas durante o processo\&. Um deles é a medição de uptime, que utiliza a opção timestamp do TCP (RFC 1323) para supor quando uma máquina foi reiniciada pela última vez\&. Isso apenas é mostrado para as máquinas que fornecem essa informação\&. Outro é a Classificação de Previsibilidade da Seqüencia do TCP\&. Ele mede aproximadamente o grau de dificuldade de se estabelecer uma conexão TCP forjada contra um host remoto\&. É útil para se explorar relações de confiança baseadas no IP de origem (rlogin, filtros de firewall, etc\&.) ou para ocultar a origem de um ataque\&. Esse tipo de enganação (spoofing) raramente é executada hoje em dia, mas muitas máquinas ainda estão vulneráveis a ele\&. O número de dificuldade real é baseado em amostragens estatísticas e pode variar\&. Normalmente é melhor usar a classificação em inglês, do tipo +\(lqworthy challenge\(rq +(um desafio que vale a pena) ou +\(lqtrivial joke\(rq +(uma piada, muito fácil)\&. Isso só é mostrado na saída normal do modo verbose (\fB\-v\fR)\&. Quando o modo verbose é habilitado juntamente com o +\fB\-O\fR, a Geração de Seqüencia IPID também é mostrada\&. A maioria das máquinas é classificada como +\(lqincremental\(rq +, o que significa que elas incrementam o campo ID no cabeçalho IP para cada pacote que envia\&. Isso torna\-as vulnerável a diversos ataques avançados de levantamento e forjamento de informações\&. +.PP +Um trabalho documentando o funcionamento, utilização e customização da detecção de SO está disponível em mais de uma dezena de línguas em +\m[blue]\fB\%https://nmap.org/osdetect/\fR\m[]\&. +.PP +A detecção de SO é habilitada e controlada com as seguintes opções: +.PP +\fB\-O\fR (Habilita a detecção de SO) +.RS 4 +Habilita a deteção de SO, como discutido acima\&. Alternativamente, você pode usar +\fB\-A\fR +para habilitar tanto a detecção de SO quanto a detecção de versão\&. +.RE +.PP +\fB\-\-osscan\-limit\fR (Limitar a detecção de SO a alvos promissores) +.RS 4 +A detecção de SO é bem mais eficiente se ao menos uma porta TCP aberta e uma fechada for encontrada\&. Escolha esta opção e o Nmap não irá nem tentar a detecção de SO contra hosts que não correspondam a este critério\&. Isso pode economizar um tempo considerável, particularmente em scans +\fB\-P0\fR +contra muitos hosts\&. Isso só importa quando a detecção de SO é solicitada através de +\fB\-O\fR +ou +\fB\-A\fR\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Resultados de tentativas de detecção de SO) +.RS 4 +Quano o Nmap não é capaz de detectar uma correspondência exata de SO, às vezes ele oferece possibilidades aproximada\&. A correspondência tem que ser muito próxima para o Nmap fazer isso por padrão\&. Qualquer uma dessas opções (equivalentes) tornam as tentativas do Nmap mais agressivas\&. O Nmap ainda assim irá dizer quando uma correspondência imperfeita é mostrada e o nível de confiança (porcentagem) de cada suposição\&. +.RE +.SH "TEMPORIZAçãO (TIMING) E DESEMPENHO" +.PP +Uma das minhas prioridades mais altas no desenvolvimento do Nmap tem sido o desempenho\&. Um scan padrão (\fBnmap \fR\fB\fIhostname\fR\fR) de um host em minha rede local leva apenas um quinto de segundo\&. Isso mal dá tempo de piscar o olho, mas esse tempo aumenta conforme você está escaneando dezenas ou centenas de milhares de hosts\&. Além disso, certos tipos de scan, como o escaneamento UDP ou a detecção de versão, aumentam o tempo de escaneamento substancialmente\&. Da mesma forma algumas configurações de firewall fazem o mesmo, particularmente quando limitam a taxa de resposta\&. Embora o Nmap se utilize de paralelismo e muitos outros algoritmos avançados para acelerar esses scans, o usuário tem o controle final sobre como o Nmap executa\&. Usuários avançados elaboram comandos do Nmap cuidadosamente para obter apenas as informações que importam, sempre se preocupando com as restrições de tempo\&. +.PP +Técnicas para melhorar os tempos de scan incluem omitir testes não\-críticos e atualizar até a versão mais recente do Nmap (melhorias de desempenho são feitas freqüentemente)\&. Otimizar os parâmetros de tempo também podem fazer uma grande diferença\&. Essas opções estão listadas abaixo\&. +.PP +Algumas opções aceitam um parâmetro de +tempo\&. É especificado em milissegundos por padrão, embora você possa acrescentar \(oqs\(cq, \(oqm\(cq ou \(oqh\(cq ao valor para especificar segundos, minutos ou horas\&. Dessa forma, os argumentos +\fB\-\-host\-timeout\fR +arguments +900000, +900s +e +15m +fazem a mesma coisa\&. +.PP +\fB\-\-min\-hostgroup <númerodehosts>\fR; \fB\-\-max\-hostgroup <númerodehosts>\fR (Ajuste dos tamanhos dos grupos de scan paralelos) +.RS 4 +O Nmap tem a habilidade de fazer um scan de portas ou de versões em múltiplos hosts em paralelo\&. O Nmap faz isso dividindo a faixa de endereços IP\-alvo em grupos, e então escaneando um grupo de cada vez\&. No geral, grupos maiores são mais eficientes\&. A contrapartida é que os resultados dos hosts não pode ser fornecido até que o grupo inteiro tenha terminado\&. Portanto, se o Nmap começou com um tamanho de grupo igual a 50, o usuário não receberia nenhum relatório (exceto pelas atualizações mostradas no modo verbose) até que os primeiros 50 hosts tivessem completado\&. +.sp +Por padrão, o Nmap assume um compromisso para resolver esse conflito\&. Ele começa com um tamanho de grupo pequeno, igual a cinco, para que os primeiros resultados venham rápido, e então aumenta o tamanho até que chegue em 1024\&. O número padrão exato depende das opções fornecidas\&. Por questões de eficiência, o Nmap usa tamanhos de grupo maiores para o UDP ou para scans TCP com poucas portas\&. +.sp +Quando o tamanho de grupo máximo é especificado com +\fB\-\-max\-hostgroup\fR, o Nmap nunca irá exceder esse tamanho\&. Especifique um tamanho mínimo com +\fB\-\-min\-hostgroup\fR +e o Nmap irá tentar manter o tamanho dos grupos acima desse nível\&. O Nmap pode ter que usar tamanhos menores do que você especificou, se não houverem hosts\-alvo suficientes restantes em uma dada interface, para completar o mínimo especificado\&. Ambos podem ser configurados para manter o tamanho do grupo dentro de uma faixa específica, embora isso raramente seja desejado\&. +.sp +O uso primário destas opções é especificar um tamanho de grupo mínimo grande de forma que o scan completo rode mais rapidamente\&. Uma escolha comum é 256 para escanear uma rede em blocos de tamanho Classe C\&. Para um scan com muitas portas, exceder esse número não irá ajudar muito\&. Para scans com poucos números de portas, um tamanho de grupo de hosts de 2048 ou mais pode ser útil\&. +.RE +.PP +\fB\-\-min\-parallelism <numprobes>\fR; \fB\-\-max\-parallelism <numprobes>\fR (Ajuste da paralelização das sondagens) +.RS 4 +Estas opções controlam o número total de sondagens que podem estar pendentes para um grupo de hosts\&. Elas são usadas para o escaneamento de portas e para a descoberta de hosts\&. Por padrão, o Nmap calcula um paralelismo ideal e constantemente atualizado baseado no desempenho da rede\&. Se os pacotes estiverem sendo descartados, o Nmap reduz o ritmo e libera menos sondagens pendentes\&. O número de sondagens ideal aumenta vagarosamente conforme a rede se mostre mais confiável\&. Estas opções estabelecem limites mínimo e máximo nessa variável\&. Por padrão, o paralelismo ideal pode cair até 1 se a rede se mostrar não\-confiável e subir até diversas centenas em condições perfeitas\&. +.sp +O uso mais comum é estabelecer +\fB\-\-min\-parallelism\fR +em um número maior que 1 para melhorar a velocidade dos scans de hosts ou redes com desempenho ruim\&. Esta é uma opção arriscada para se ficar brincando pois configurar um valor alto demais pode afetar a precisão\&. Configurar isso também reduz a habilidade do Nmap de controlar o paralelismo dinamicamente baseado nas condições da rede\&. Um valor igual a dez pode ser razoável, embora eu só ajuste esse valor como última alternativa\&. +.sp +A opção +\fB\-\-max\-parallelism\fR +às vezes é configurada para evitar que o Nmap envie aos hosts mais do que uma sondagem por vez\&. Isso pode ser útil em conjunto com +\fB\-\-scan\-delay\fR +(discutido mais tarde), embora esta última normalmente sirva bem ao propósito por si só\&. +.RE +.PP +\fB\-\-min\-rtt_timeout <tempo>\fR, \fB\-\-max\-rtt\-timeout <tempo>\fR, \fB\-\-initial\-rtt\-timeout <tempo>\fR (Ajuste de tempo de expiração (timeouts) das sondagens) +.RS 4 +O Nmap mantém um valor de tempo de expiração (timeout) de execução para determinar quanto tempo ele deve esperar por uma resposta de uma sondagem antes de desistir ou retransmitir essa sondagem\&. Isso é calculado com base nos tempos de resposta de sondagens anteriores\&. Se a latência da rede se mostrar significativa e variável, esse tempo de expiração pode subir para diversos segundos\&. Ele também começa com um nível conservador (alto) e pode ficar desse jeito por um tempo, enquanto o Nmap escaneia hosts não\-responsivos\&. +.sp +Especificar valores +\fB\-\-max\-rtt\-timeout\fR +e +\fB\-\-initial\-rtt\-timeout\fR +mais baixos que o padrão pode reduzir o tempo de scan significativamente\&. Isso é particularmente verdadeiro para scans sem ping (\fB\-P0\fR), e para aqueles contra redes bastante filtradas\&. Mas não se torne muito agressivo\&. O scan pode acabar levando mais tempo se você especificar um valor tão baixo que muitas sondagens irão expirar o tempo e serem retransmitidas enquanto a resposta ainda está em trânsito\&. +.sp +Se todos os hosts estão em uma rede local, 100 milissegundos é um valor de +\fB\-\-max\-rtt\-timeout\fR +razoavelmente agressivo\&. Se houver roteamento envolvido, faça um ping de um host da rede primeiro com o utilitário ICMP ping, ou com um formatador de pacotes customizados como o hping2, que pode passar por um firewall mais facilmente\&. Descubra o tempo máximo de round trip em dez pacotes, mais ou menos\&. Coloque o dobro desse valor em +\fB\-\-initial\-rtt\-timeout\fR +e o triplo ou quádruplo para o +\fB\-\-max\-rtt\-timeout\fR\&. Normalmente eu não configuro o rtt máximo abaixo de 100ms, não importa quais os tempos de ping\&. Eu também não excedo o valor 1000ms\&. +.sp +\fB\-\-min\-rtt\-timeout\fR +é uma opção raramente utilizada que poderia ser útil quando uma rede é tão não\-confiável que mesmo o padrão do Nmap é muito agressivo\&. Considerando que o Nmap apenas reduz o tempo de expiração para um valor mínimo quando a rede parece ser confiável, esta necessidade não é comum e deveria ser reportada à lista de discussão nmap\-dev como um bug\&. +.RE +.PP +\fB\-\-max\-retries <númerodetentativas>\fR (Especifica o número máximo de retransmissões de sondagens de scan de portas) +.RS 4 +Quando o Nmap não recebe nenhuma resposta a uma sondagem de escaneamento de portas, isso pode significar que a porta está filtrada\&. Ou talvez a sondagem ou a resposta simplesmente se perdeu na rede\&. Também é possível que o host\-alvo tenha habilitado uma limitação de tráfego que tenha bloqueado temporariamente a resposta\&. Então o Nmap tenta novamente retransmitindo a sondagem inicial\&. Se o Nmap perceber que a confiabilidade da rede está baixa, ele poderá tentar muitas vezes ainda, antes de desistir de uma porta\&. Embora isso beneficie a exatidão, isso também aumenta o tempo de escaneamento\&. Quando o desempenho é crítico, os escaneamentos podem ser acelerados através da limitação do número de retransmissões permitidas\&. Você pode até especificar +\fB\-\-max\-retries 0\fR +para evitar qualquer retransmissão, embora isto seja raramente recomendado\&. +.sp +O normal (sem nenhum padrão +\fB\-T\fR) é permitir dez retransmissões\&. Se a rede aparentar ser confiável e os hosts\-alvo não estiverem limitando o tráfego, o Nmap normalmente fará apenas uma retransmissão\&. Portanto, a maioria dos escaneamentos de alvos não serão sequer afetados com a redução do +\fB\-\-max\-retries\fR +para um valor baixo, como por exemplo três\&. Tais valores podem acelerar significativamente o escaneamento de hosts lentos (com limitação de tráfego)\&. Você normalmente perde alguma informação quando o Nmap desiste das portas rapidamente, embora isso seja preferível a permitir que o +\fB\-\-host\-timeout\fR +expire e você perca todas as informações sobre o alvo\&. +.RE +.PP +\fB\-\-host\-timeout <tempo>\fR (Desiste de hosts\-alvo lentos) +.RS 4 +Alguns hosts simplesmente levam tempo +\fIdemais\fR +para serem escaneados\&. Isso pode ser causado por um hardware ou software de rede com fraco desempenho ou pouco confiável, limitação na taxa dos pacotes ou por um firewall restritivo\&. Os poucos hosts mais lentos de todos os hosts escaneados podem acabar sendo responsáveis pela maior parte do tempo total gasto com o scan\&. Às vezes é melhor cortar fora o prejuízo e pular esses hosts logo no início\&. Especifique a opção +\fB\-\-host\-timeout\fR +com o valor máximo de tempo que você tolera esperar\&. Eu normalmente especifico +30m +para ter certeza de que o Nmap não gaste mais do que meia hora em um único host\&. Note que o Nmap pode estar escaneando outros hosts ao mesmo tempo em que essa meia hora desse único host está correndo, então não é uma perda de tempo total\&. Um host que expira o tempo é pulado\&. Nenhum resultado de tabela de portas, detecção de SO ou detecção de versão é mostrado para esse host\&. +.RE +.PP +\fB\-\-scan\-delay <tempo>\fR; \fB\-\-max\-scan\-delay <tempo>\fR (Ajusta o atraso entre sondagens) +.RS 4 +Esta opção faz com que o Nmap aguarde um tempo determinado entre cada sondagem enviada a um dado host\&. Isto é particularmente útil no caso de limitação de taxas de transferência\&. Máquinas Solaris (entre muitas outras) irão normalmente responder à pacotes de sondagens de scans UDP com apenas uma mensagem ICMP por segundo\&. Qualquer número maior que isso, enviado pelo Nmap, será um desperdício\&. Um +\fB\-\-scan\-delay\fR +de +1s +irá manter uma taxa de transferência baixa\&. O Nmap tenta detectar a limitação de taxa e ajusta o atraso no scan de acordo, mas não dói especificar explicitamente se você já sabe qual a taxa que funciona melhor\&. +.sp +Quando o Nmap ajusta o atraso no scan aumentando para tentar igualar com a limitação na taxa de transferência, o scan fica consideravelmente mais lento\&. A opção +\fB\-\-max\-scan\-delay\fR +especifica o maior atraso que o Nmap irá permitir\&. Estabelecer um valor muito baixo pode levar à uma retransmissão de pacotes inútil e à possíveis portas perdidas, quando o alvo utiliza limitação rígida de taxa de transferência\&. +.sp +Outro uso do +\fB\-\-scan\-delay\fR +é para evitar os sistemas de prevenção e detecção de intrusão (IDS/IPS) baseados em limites\&. +.RE +.PP +\fB\-\-defeat\-rst\-ratelimit\fR +.RS 4 +Muitos hosts usam há bastante tempo a limitação de taxa de transferência para reduzir o número de mensagens de erro ICMP (tais como os erros de porta\-inalcançavel) enviados\&. Alguns sistemas agora aplicam limitações de taxa similares aos pacotes RST (reset) que eles geram\&. Isso pode tornar o Nmap consideravelmente mais lento pois o obriga a ajustar seu tempo de forma a refletir essas limitações de taxa\&. Você pode dizer ao Nmap para ignorar essas limitações de taxa (para scans de porta como o Scan SYN que +\fInão\fR +trata portas que não respondem como +abertas) especificando +\fB\-\-defeat\-rst\-ratelimit\fR\&. +.sp +Utilizar esta opção pode reduzir a precisão, pois algumas portas irão aparecer como não\-respondendo porque o Nmap não esperou tempo suficiente para uma resposta RST com taxa limitada\&. No caso de um scan SYN, o "não\-respondendo" resulta na porta sendo rotulada como +filtrada +ao invés de no estado +fechada +que vemos quando os pacotes RST são recebidos\&. Esta opção é útil quando você se importa apenas com as portas abertas e distinguir entre portasfechadas +e +filtradas +não vale o tempo extra\&. +.RE +.PP +\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (Estabelece um padrão de temporização) +.RS 4 +Embora os controles de temporização de ajuste fino discutidos nas seções anteriores sejam poderosos e efetivos, algumas pessoas os consideram confusos\&. Ainda mais, escolher os valores apropriados pode, às vezes, tomar mais tempo do que o próprio scan que você está tentando otimizar\&. Por isso, o Nmap oferece uma aproximação mais simples, com seis padrões de temporização\&. Você pode especificá\-los com a opção +\fB\-T\fR +e os números (0 \- 5) ou os nomes\&. Os nomes de padrões são paranóico (paranoid, 0), furtivo (sneaky, 1), educado (polite, 2), normal (3), agressivo (agressive, 4) e insano (insane, 5)\&. Os dois primeiros são para evitar um IDS\&. O modo educado (ou polido), diminui o ritmo de escaneamento para usar menos banda e recursos da máquina alvo\&. O modo normal é o padrão e, portanto, +\fB\-T3\fR +não faz nada\&. O modo agressivo acelera os scans assumindo que você está em uma rede razoavelmente rápida e confiável\&. Finalmente, o modo insano assume que você está em uma rede extraordinariamente rápida ou está disposto a sacrificar alguma precisão pela velocidade\&. +.sp +Esses padrões permitem que o usuário especifique o quão agressivo desejam ser, ao mesmo tempo que deixam o Nmap escolher os valores de temporização exatos\&. Os padrões também fazem ajustes pequenos na velocidade onde ainda não existem opções para controle de ajuste fino\&. Por exemplo, +\fB\-T4\fR +proibe que o atraso dinâmico de escaneamento exceda 10ms para portas TCP e +\fB\-T5\fR +corta esse valor para 5 milissegundos\&. Padrões podem ser utilizados em conjunto com controles de ajuste fino e esses controles que você especificar irão ter precedência sobre o padrão de temporização do parâmetro\&. Eu recomendo usar +\fB\-T4\fR +quando escanear redes razoavelmente modernas e confiáveis\&. Mantenha essa opção mesmo que você adicione controles de ajuste fino, de forma que você possa se beneficiar com as pequenas otimizações extras que ela habilita\&. +.sp +Se você tiver uma conexão ethernet ou de banda\-larga decente, eu recomendaria sempre utilizar +\fB\-T4\fR\&. Algumas pessoas adoram o +\fB\-T5\fR +embora seja agressivo demais para o meu gosto\&. As pessoas às vezes especificam +\fB\-T2\fR +porque acham que diminui a probabilidade de travar os hosts ou porque elas se consideram educadas no geral\&. Normalmente elas não percebem o quão lento o +\fB\-T Polite\fR +realmente é\&. Esses scans podem levar dez vezes mais tempo que um scan padrão\&. Travamento de máquinas e problemas com a banda são raros com as opções de temporização padrão (\fB\-T3\fR) e, portanto, eu normalmente as recomendo para escaneadores precavidos\&. Omitir a detecção de versão é bem mais eficaz do que ficar brincando com os valores de temporização para reduzir esses problemas\&. +.sp +Embora o +\fB\-T0\fR +e o +\fB\-T1\fR +possam ser usados para evitar alertas no IDS, eles irão leva muito mais tempo para escanear milhares de máquinas ou portas\&. Para um scan tão amplo, prefira estabelecer os valores exatos de temporização que você precisa ao invés de depender dos valores "engessados" de +\fB\-T0\fR +e +\fB\-T1\fR\&. +.sp +O principal efeito de +\fBT0\fR +é serializar o scan de forma que apenas uma porta é escaneada por vez, e então, aguardar cinco minutos entre o envio de cada sondagem\&. +\fBT1\fR +e +\fBT2\fR +são similares mas aguardam apenas 15 segundos e 0,4 segundos, respectivamente, entre as sondagens\&. +\fBT3\fR +é o comportamento padrão do Nmap, que inclui o paralelismo\&. +\fBT4\fR +faz o mesmo que +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR +e estabelece o atraso máximo de scan TCP em 10 milissegundos\&. +\fBT5\fR +faz o mesmo que +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 15m\fR +e estabelece o atraso máximo de scan TCP em 5ms\&. +.RE +.SH "EVITANDO E ENGANANDO O FIREWALL/IDS" +.PP +Muitos pioneiros da Internet vislumbraram uma rede mundial aberta com um espaço de endereçamento IP universal que permitisse conexões virtuais entre quaisquer dois nós\&. Isso permite que os hosts atuem como verdadeiros semelhantes, servindo e obtendo informações uns dos outros\&. As pessoas poderiam acessar seus computadores domésticos do trabalho, mudando os ajustes do controle de climatização ou abrindo as portas para convidados\&. Essa visão de conectividade universal foi sufocada pela falta de espaço de endereçamento e preocupações com a segurança\&. No início dos anos 1990, as empresas começaram a instalar firewalls para o propósito claro de reduzir a conectividade\&. Rede enormes foram isoladas da Internet\-sem\-fronteiras por proxies de aplicativos, tradução de endereçamento de rede (network address translation) e filtros de pacotes\&. O fluxo irrestrito de informações deu a vez à regulamentação acirrada de canais de comunicação autorizados e ao conteúdo que neles trafegam\&. +.PP +As obstruções de rede, como o firewall, podem tornar o mapeamente de uma rede extremamente difícil\&. E isso não vai se tornar mais fácil, pois sufocar as sondagens casuais é, freqüentemente, o objetivo principal de se instalar esses dispositivos\&. Apesar disso, o Nmap oferece muitas ferramentas para ajudar a entender essas redes complexas, e para verificar que os filtros estão funcionando como esperado\&. Ele até suporta mecanismos para passar por cima de defesas mal implementadas\&. Um dos melhores métodos para se entender a postura de segurança de uma rede é tentar derrubá\-la\&. Pense com a mente de uma pessoa que quer atacá\-lo, e aplique técnicas desta seção contra a sua rede\&. Lance um scan FTP bounce, um scan idle, um ataque de fragmentação ou tente "tunelar" (criar um túnel) através de um de seus próprios proxies\&. +.PP +Além de restringir a atividade de rede, as empresas estão monitorando o tráfego cada vez mais, com sistemas de detecção de intrusão (IDS)\&. Todos os principais IDS vêm com regras designadas para detectar escaneamentos feitos com o Nmap porque os scans são, às vezes, precursores de ataques\&. Muitos desses produtos foram recentemente metamorfoseados em sistemas de +\fIprevenção\fR +de intrusão (IPS) que bloqueiam o tráfego considerado malicioso de forma ativa\&. Infelizmente, para administradores de rede e vendedores de IDS, detectar confiavelmente as más intenções através da análise de dados de pacotes é um problema difícil\&. Atacantes com paciência, habilidade e a ajuda de certas opções do Nmap podem normalmente passar por um IDS sem serem detectados\&. Enquanto isso, os administradores devem lidar com um alto número de resultados do tipo falso\-positivo, onde atividades inocentes são diagnosticadas erroneamente e recebem alertas ou são bloqueadas\&. +.PP +De vez em quando, as pessoas sugerem que o Nmap não deveria oferecer opções que permitam evitar as regras de firewalls ou passar desapercebidos por IDSs\&. Elas argumentam que essas características são tão sujeitas à má\-utilização por atacantes quanto são utilizadas por administradores para aumentar a segurança\&. O problema com esta lógica é que esses métodos ainda assim seriam utilizados pelos atacantes, que encontrariam outras ferramentas ou então acrescentariam essa funcionalidade no Nmap\&. Enquanto isso, os administradores achariam muito mais difícil executar suas tarefas\&. Instalar apenas servidores FTP modernos e corrigidos é uma defesa muito melhor do que tentar evitar a distribuição de ferramentas que implementem o ataque FTP bounce\&. +.PP +Não existe uma carta mágica (ou opção do Nmap) para detectar e subverter firewalls e sistemas IDS\&. É necessário habilidade e experiência\&. Um tutorial está além do escopo deste guia de referência, que apenas lista as opções relevantes e descreve suas funções\&. +.PP +\fB\-f\fR (fragmenta os pacotes); \fB\-\-mtu\fR (usando a MTU especificada) +.RS 4 +A opção +\fB\-f\fR +faz com que o scan solicitado (incluindo scans usando ping) utilize pequenos pacotes IP fragmentados\&. A idéia é dividir o cabeçalho TCP em diversos pacotes para tornar mais difícil para os filtros de pacotes, os sistemas de detecção de intrusão, e outros aborrecimentos, detectar o que você está fazendo\&. Tenha cuidado com isto! Alguns programas tem problemas para lidar com estes pequenos pacotes\&. O sniffer da velha\-guarda chamado Sniffit sofria uma falha de segmentação assim que recebia o primeiro fragmento\&. Especifique esta opção uma vez e o Nmap dividirá os pacotes em 8 bytes ou menos após o cabeçalho IP\&. Portanto, um cabeçalho TCP de 20 bytes seria dividido em 3 pacotes\&. Dois com oito bytes do cabeçalho TCP e um com os quatro restantes\&. É claro que cada fragmento também tem um cabeçalho IP\&. Especifique +\fB\-f\fR +novamente para usar 16 bytes por fragmento (reduzindo o número de fragmentos)\&. Ou então, você pode especificar o seu próprio tamanho de quebra com a opção +\fB\-\-mtu\fR\&. Não especifique também o +\fB\-f\fR +se você usar o +\fB\-\-mtu\fR\&. A quebra deve ser um múltiplo de 8\&. Embora os pacotes fragmentados não passem por filtros de pacotes e firewalls que enfilerem todos os fragmentos IP, tal como a opção CONFIG_IP_ALWAYS_DEFRAG do kernel do Linux faz, algumas redes não aguentam o impacto no desempenho que isso causa, deixando a opção desabilitada\&. Outros não conseguem habilitar isso porque os fragmentos podem seguir por rotas diferentes na rede\&. Alguns sistemas de origem desfragmentam pacotes de saída no kernel\&. O Linux e o módulo de reastreamento de conexão do iptables é um exemplo desse tipo\&. Faça um scan enquanto executa um sniffer como o Ethereal para ter a certeza de que pacotes enviados estão fragmentados\&. Se o SO do seu host estiver causando problemas, tente a opção +\fB\-\-send\-eth\fR +para passar por cima da camada IP e enviar frames ethernet em estado bruto\&. +.RE +.PP +\fB\-D <chamariz1 [,chamariz2][,ME],\&.\&.\&.>\fR (Disfarça um scan usando chamarizes) +.RS 4 +Faz com que um scan com chamarizes seja executado, o que parece ao host remoto que, o(s) host(s) que você especificou como chamarizes também estejam escaneando a rede\-alvo\&. Com isso, o IDS poderá reportar 5 a 10 scans de portas de endereços IP únicos, mas não saberá qual IP estava realmente escaneando e qual era um chamariz inocente\&. Embora isso possa ser desvendado através de rastreamento de caminho de roteador, descarte de respostas (response\-dropping) e outros mecanismos ativos, normalmente é uma técnica eficaz para esconder o seu endereço IP\&. +.sp +Separe cada host\-chamariz com vírgulas, e você pode opcionalmente usar +ME +como um dos chamarizes para representar a posição do seu endereço IP real\&. Se você colocar +ME +na 6a\&. posição ou acima, alguns detectores de scan de portas comuns (como o excelente scanlogd da Solar Designer) pouco provavelmente irão mostrar o seu endereço IP\&. Se você não utilizar o +ME, o nmap irá colocá\-lo em uma posição aleatória\&. +.sp +Observe que os hosts que você utilizar como chamarizes devem estar ativos ou você poderá, acidentamente, inundar com SYN os seus alvos\&. Também será bastante fácil determinar qual é o host que está escaneando se houver apenas um host realmente ativo na rede\&. Você pode preferir usar endereços IP ao invés de nomes (de forma que as redes chamarizes não vejam você em seus logs dos servidores de nomes)\&. +.sp +Chamarizes são utilizados tanto no scan com ping inicial (usando ICMP, SYN, ACK ou qualquer outro), como também durante a fase real de escaneamento de portas\&. Chamarizes também são usados durante a detecção de SO remoto (\fB\-O\fR)\&. Chamarizes não funcionam com a detecção de versão ou com o scan TCP connect\&. +.sp +Vale a pena observar que usar chamarizes demais pode deixar seu scan lento e potencialmente até torná\-lo menos preciso\&. Outra coisa, alguns provedores de internet (ISP) irão filtrar os seus pacotes disfarçados, mas muitos não restringem pacotes IP disfarçados\&. +.RE +.PP +\fB\-S <Endereço_IP>\fR (Disfarça o endereço de origem) +.RS 4 +Em algumas circunstâncias, o Nmap pode não conseguir determinar o seu endereço de origem (o Nmap irá dizer se for esse o caso)\&. Nesta situação, use o +\fB\-S\fR +com o endereço IP da interface que você deseja utilizar para enviar os pacotes\&. +.sp +Outro uso possível para esta flag é para disfarçar o scan e fazer com que os alvos achem que +\fIalguma outra pessoa\fR +está escaneando\-as\&. Imagine uma empresa que está constantemente sofrendo scan de portas de um concorrente! A opção +\fB\-e\fR +normalmente seria requerida para este tipo de uso e +\fB\-P0\fR +seria recomendável\&. +.RE +.PP +\fB\-e <interface>\fR (Usa a interface especificada) +.RS 4 +Diz ao Nmap qual interface deve ser utilizada para enviar e receber pacotes\&. O Nmap deveria ser capaz de detectar isto automaticamente, mas ele informará se não conseguir\&. +.RE +.PP +\fB\-\-source\-port <númerodaporta>;\fR \fB\-g <númerodaporta>\fR (Disfarça o número de porta de origem) +.RS 4 +Um erro de configuração surpreendentemente comum é confiar no tráfego com base apenas no número da porta de origem\&. É fácil entender como isso acontece\&. Um administrador configura um firewall novinho em folha, só para ser inundado com queixas de usuários ingratos cujas aplicações param de funcionar\&. Em particular, o DNS pode parar de funcionar porque as respostas DNS UDP de servidores externos não conseguem mais entrar na rede\&. O FTP é outro exemplo comum\&. Em tranferências FTP ativas, o servidor remoto tenta estabelecer uma conexão de volta com o cliente para poder transferir o arquivo solicitado\&. +.sp +Soluções seguras para esses problemas existem, freqüentemente na forma de proxies no nível da aplicação ou módulos de firewall para análise de protocolo\&. Infelizmente também há soluções mais fáceis e inseguras\&. Observando que as respostas DNS chegam pela porta 53 e o FTP ativo pela porta 20, muitos administradores caem na armadilha de apenas permitir tráfego vindo dessas portas\&. Eles normalmente assumem que nenhum atacante irá notar e explorar essas brechas no firewall\&. Em outros casos, os administradores consideram isso uma medida provisória de curto prazo até que eles possam implementar uma solução mais segura\&. Então, eles normalmente se esquecem de fazer as atualizações de segurança\&. +.sp +Administradores de rede sobrecarregados não são os únicos a caírem nessa armadilha\&. Diversos produtos foram empacotados com essas regras inseguras\&. Mesmo a Microsoft é culpada\&. Os filtros IPsec que vieram com o Windows 2000 e com o Windows XP contém uma regra implícita que permite todo o tráfego TCP ou UDP da porta 88 (Kerberos)\&. Em outro caso bastante conhecido, versões do firewall pessoal Zone Alarm, até a versão 2\&.1\&.25, permitiam qualquer pacote UDP entrante com a porta de origem 53 (DNS) ou 67 (DHCP)\&. +.sp +O Nmap oferece as opções +\fB\-g\fR +e +\fB\-\-source\-port\fR +(elas são equivalentes) para explorar essas fraquezas\&. Apenas forneça um número de porta e o Nmap irá enviar pacotes dessa porta onde for possível\&. O Nmap utiliza números de porta diferentes para que certos testes de detecção de SO funcionem direito, e as requisições DNS ignoram a flag +\fB\-\-source\-port\fR +porque o Nmap confia nas bibliotecas de sistema para lidar com isso\&. A maioria dos scans TCP, incluindo o scan SYN, suportam a opção completamente, assim como o scan UDP\&. +.RE +.PP +\fB\-\-data\-length <número>\fR (Acrescenta dados aleatórios nos pacotes enviados) +.RS 4 +Normalmente o Nmap envia pacotes minimalistas contendo apenas o cabeçalho\&. Dessa forma os pacotes TCP têm normalmente 40 bytes e os echo requests ICMP tem só 28\&. Esta opção faz com que o Nmap acrescente o número informado de bytes aleatórios na maioria dos pacotes que envia\&. Os pacotes de detecção de SO (\fB\-O\fR) não são afetados, pois a precisão exige consistência das sondagens, mas a maioria dos pacotes de ping e scan de portas funcionam assim\&. Isso atrasa um pouco as coisas, mas pode tornar um scan ligeiramente menos chamativo\&. +.RE +.PP +\fB\-\-ttl <valor>\fR (Establece o valor do campo time\-to\-live) +.RS 4 +Estabelece que o campo tempo\-de\-vida (time\-to\-live) dos pacotes enviados terá o valor informado\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Torna aleatória a ordem dos hosts\-alvo) +.RS 4 +Informa ao Nmap que ele deve embaralhar cada grupo de, no máximo, 8096 hosts antes de escaneá\-los\&. Isso torna os scans menos óbvios a vários sistemas de monitoramento de rede, especialmente quando você combina isso com as opções de temporização lentas\&. Se você deseja fazer isso em grupos maiores, aumente o PING_GROUP_SZ no +nmap\&.h +e recompile\&. Uma solução alternativa é gerar uma lista de endereços IP\-alvos com um scan de lista (\fB\-sL \-n \-oN \fR\fB\fInomedoarquivo\fR\fR), embaralhar a lista com um script Perl e então fornecer a lista completa para o Nmap com +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac <endereço mac, prefixo, ou nome do fabricante>\fR (Disfarça o endereço MAC) +.RS 4 +Solicita ao Nmap que utilize o endereço MAC informado para todos os frames ethernet em estado bruto (raw) que ele enviar\&. Esta opção implica em +\fB\-\-send\-eth\fR +para assegurar que o Nmap realmente envie pacotes no nível ethernet\&. O MAC fornecido pode assumir diversos formatos\&. Se for apenas a string +\(lq0\(rq, o Nmap irá escolher um MAC completamente aleatório para a sessão\&. Se a string informada for um número par de dígitos hexa (com os pares opcionalmente separados por dois pontos), o Nmap irá usa\-la como o MAC\&. Se menos do que 12 dígitos hexa forem informados, o Nmap preenche o restante dos 6 bytes com valores aleatórios\&. Se o argumento não for um 0 ou uma string hexa, o Nmap irá procurar no +nmap\-mac\-prefixes +para encontrar o nome de um fabricante contendo a string informada (não é sensível a maiúsculas ou minúsculas)\&. Se encontrar, o Nmap usa o OUI (prefixo de 3 bytes) do fabricante e preenche os 3 bytes restantes aleatoriamente\&. Exemplos de argumentos +\fB\-\-spoof\-mac\fR +válidos são +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2 +e +Cisco\&. +.RE +.PP +\fB\-\-badsum\fR (Send packets with bogus TCP/UDP checksums) +.RS 4 +Solicita ao Nmap que utilize uma soma de verificação (checksum) TCP ou UDP inválida para os pacotes enviados aos hosts\&. Uma vez que virtualmente todos as pilhas (stack) IP do host irão rejeitar esses pacotes, quaisquer respostas recebidas são provavelmente vindas de um firewall ou IDS que nem se incomodou em verificar a soma de verificação\&. Para mais detalhes desta técnica, veja +\m[blue]\fB\%https://nmap.org/p60-12.txt\fR\m[] +.RE +.SH "SAíDA (OUTPUT)" +.PP +Qualquer ferramenta de segurança só é útil se a saída que ela gera também o for\&. Testes e algoritmos complexos são de pouco valor se não forem apresentados de uma forma organizada e compreensível\&. Dado o número de formas que o Nmap é utilizado pelas pessoas e por outros softwares, nenhum formato irá agradar a todos\&. Então o Nmap oferece diversos formatos, incluindo o modo interativo para humanos lerem diretamente e o XML para fácil interpretação por um software\&. +.PP +Além de oferecer diversos formatos de saída, o Nmap fornece opções para controlar a verbosidade da saída, bem como das mensagens de depuração\&. Os tipos de saída podem ser enviados para a saída padrão (standard output) ou para arquivos, o qual o Nmap pode acrescentar ou então sobrescrever\&. Arquivos de saída também podem ser utilizados para se retomar scans abortados\&. +.PP +O Nmap torna a saída disponível em cinco formatos diferentes\&. O padrão é chamado de +saída interativa (interactive output), e é enviada para a saída padrão (stdout)\&. Há também a +saída normal (normal output), que é similar à +interativa +exceto pelo fato de mostrar menos informações e alertas sobre a execução uma vez que se espera que seja feita uma análise somente após o scan completar, ao invés de interativamente\&. +.PP +A saída XML é um dos tipos de saída mais importantes pois permite a conversão para HTML, é facilmente analisada por programas como a interface gráfica do Nmap, ou pode ser importada em banco de dados\&. +.PP +Os dois tipos restantes de saída são a simples +saída para o grep (grepable output) +que inclui a maioria das informações de um host\-alvo em uma única linha e a +s4íd4 sCRiPt KiDDi3 (sCRiPt KiDDi3 0utPUt) +para usuários que se consideram 1r4d0z (|<\-r4d)\&. +.PP +Embora a saída interativa seja a padrão e não tenha associada nenhuma opção de linha de comando, as outras quatro opções de formato utilizam a mesma sintaxe\&. Elas recebem um argumento, que é o nome do arquivo onde os resultados devem ser armazenados\&. Formatos múltiplos podem ser especificados, mas cada formato só pode ser especificado uma vez\&. Por exemplo, você pode querer armazenar a saída normal para seu uso enquanto grava a saída XML do mesmo scan para análise utilizando programas\&. Você pode fazer isso com as opções +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Embora este capítulo use nomes simples como +myscan\&.xml +por uma questão de brevidade, nomes mais descritivos normalmente são recomendados\&. Os nomes escolhidos são uma questão de preferência pessoal, embora eu use nomes longos que incorporam a data do scan e uma palavra ou duas que descrevam o scan, colocados em um diretório com o nome da empresa que eu estou escaneando\&. +.PP +Mesmo que essas opções gravem os resultados em arquivos, o Nmap ainda assim mostra a saída interativa na stdout como de costume\&. Por exemplo, o comando +\fBnmap \-oX myscan\&.xml target\fR +grava em XML no +myscan\&.xml +e enche a saída padrão com os mesmos resultados interativos que teria mostrado se a opção +\fB\-oX\fR +não tivesse sido especificada\&. Você pode mudar isso passando um caracter hífen como argumento de um dos tipos de formato\&. Isso faz com que o Nmap desative a saída interativa e apenas grave os resultados no formato que você especificou para a saída padrão\&. Dessa forma, o comando +\fBnmap \-oX \- target\fR +irá enviar apenas a saída XML para a stdout\&. Erros sérios ainda podem ser mostrados na saída padrão de erros, stderr\&. +.PP +Ao contrário de alguns argumentos do Nmap, o espaço em branco entre a flag da opção (como a +\fB\-oX\fR) e o nome do arquivo ou hífen é obrigatório\&. Se você omitir as flags e informar argumentos como +\fB\-oG\-\fR +ou +\fB\-oXscan\&.xml\fR, uma característica de compatibilidade retroativa do Nmap irá causar a criação de arquivos de saída do tipo +\fInormal format\fR +chamados +G\- +e +Xscan\&.xml +respectivamente\&. +.PP +O Nmap também oferece opções para controlar a verbosidade do scan e para acrescentar informações nos arquivos de saída, ao invés de sobrepor\&. Todas essas opções estão descritas abaixo\&. +.PP +\fBFormatos de Saída do Nmap\fR +.PP +\fB\-oN <especificaçãodearquivo>\fR (Saída normal) +.RS 4 +Solicita que a +saída normal (normal output) +seja direcionada para o arquivo informado\&. Conforme discutido acima, é um pouco diferente da +saída interativa (interactive output)\&. +.RE +.PP +\fB\-oX <especificaçãodearquivo>\fR (Saída em XML) +.RS 4 +Solicita que a +saída em XML (XML output) +seja direcionada para o arquivo informado\&. O Nmap inclui uma definição do tipo de documento (document type definition, DTD) que permite que os analisadores (parsers) XML validem a saída em XML do Nmap\&. Embora seja primeiramente voltada para ser usada por programas, também pode ajudar os humanos a interpretar a saída em XML do Nmap\&. A DTD define os elementos válidos do formato, e geralmente enumera os atributos e valores que eles podem receber\&. A última versão está sempre disponível em +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]\&. +.sp +O XML oferece um formato estável que é facilmente interpretado por software\&. Interpretadores (parsers) XML gratuitos estão disponível para as principais linguagens de computador, incluindo C/C++, Perl, Python e Java\&. As pessoas até já escreveram extensões para a maioria dessas linguagens para manipular a saída e a execução especificamente do Nmap\&. Exemplos são o +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[8]\d\s+2 +e o +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[9]\d\s+2 +em Perl CPAN\&. Em quase todos os casos em que uma aplicação não\-trivial faz interface com o Nmap, o XML é o formato preferido\&. +.sp +A saída XML faz referência à uma folha de estilo que pode ser usada para formatar os resultados em HTML\&. A forma mais fácil de se utilizar isso é simplesmente carregar a saída XML em um navegador web como o Firefox ou o IE\&. Por padrão, isso só irá funcionar na máquina onde você rodou o Nmap (ou em uma máquina similarmente configurada) devido ao caminho (path) do sistema de arquivos (filesystem) gravado de forma inalterável do +nmap\&.xsl\&. Utilize a opção +\fB\-\-webxml\fR +ou +\fB\-\-stylesheet\fR +para criar arquivos XML portáveis que podem ser interpretados como um HTML em qualquer máquina conectada à web\&. +.RE +.PP +\fB\-oS <especificaçãodearquivo>\fR (S4íd4 ScRipT KIdd|3) +.RS 4 +A saída script kiddie é como a saída interativa, com a diferença de ser pós\-processada para atender melhor aos "hackers de elite" (l33t HaXXorZ) que antigamente rejeitavam o Nmap devido ao uso consistente de maiúsculas e minúsculas e a grafia correta\&. Pessoas sem senso de humor devem observar que esta opção serve para se fazer graça dos script kiddies antes de me xingar por estar, supostamente, +\(lqajudando\-os\(rq\&. +.RE +.PP +\fB\-oG <especificaçãodearquivo>\fR (Saída para o grep) +.RS 4 +Este formato de saída é mencionado por último porque está deprecado\&. O formato de saída XML é muito mais poderoso e é bastante adequado para usuário avançados\&. O XML é um padrão para o qual existem dezenas de excelentes interpretadores (parsers) disponíveis, enquanto que a saída para o grep é um quebra\-galho feito por mim\&. O XML é extensível para suportar novas características do Nmap conforme elas forem lançadas, por outro lado, sempre tenho que omitir essas novas características da saída para o grep por falta de onde colocá\-las\&. +.sp +Apesar disso, a saída para o grep é bastante popular\&. É um formato simples que lista cada host em uma linha e pode ser pesquisado de forma trivial, e interpretado por qualquer ferramenta padrão do Unix, como o grep, awk, cut, sed, diff, e Perl\&. Em mesmo uso\-a para testes rápidos feitos na linha de comando\&. Descobrir todos os hosts com a porta ssh aberta ou que estão rodando o Solaris requer apenas um simples grep para identificá\-los, concatenado via pipe a um comando awk ou cut para mostrar os campos desejados\&. +.sp +A saída para o grep consiste de comentários (linhas começadas com o símbolo #) e linhas\-alvo\&. Uma linha\-alvo inclui uma combinação de 16 campos rotulados, separados por tab e seguidos por dois\-pontos\&. Os campos são +Host, +Portas (Ports),Protocolos (Protocols), +Estado Ignorado (Ignored State), +SO (OS), +Índice de Seqüência (Seq Index), +IPID +e +Estado (Status)\&. +.sp +O campo mais importante é, normalmente, +Portas (Ports), que fornece detalhes de cada porta interessante\&. É uma lista com a relação de portas, separada por vírgula\&. Cada porta representa uma porta interessante, e tem o formato de sete sub\-campos separados por barra (/)\&. Esses sub\-campos são: +Número da Porta (Port number), +Estado (State), +Protocolo (Protocol), +Proprietário (Owner), +Serviço (Service), +informação sobre o SunRPC (SunRPC info) +e +informação sobre a Versão (Version info)\&. +.sp +Assim como na saída XML, esta página man não permite que se documente o formato todo\&. Uma visão mais detalhada sobre o formato de saída para o grep do Nmap está disponível em +\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]\&. +.RE +.PP +\fB\-oA <nome\-base>\fR (Saída para todos os formato) +.RS 4 +Para facilitar, você pode especificar +\fB\-oA \fR\fB\fInome\-base\fR\fR +para armazenar os resultados de scan nos formatos normal, XML e para o grep de uma vez\&. Eles são armazenados nos arquivos +\fInome\-base\fR\&.nmap, +\fInome\-base\fR\&.xml e +\fInome\-base\fR\&.gnmap, respectivamente\&. Como na maioria dos programas, você pode colocar como prefixo aos nomes de arquivos o caminho de um diretório, como +~/nmaplogs/foocorp/ +no UNIX ou +c:\ehacking\esco +no Windows\&. +.RE +.PP +\fBOpções de Verbosidade e depuração (debugging)\fR +.PP +\fB\-v\fR (Aumenta o nível de verbosidade) +.RS 4 +Aumenta o nível de verbosidade, fazendo com que o Nmap mostre mais informações sobre o progresso do scan\&. Portas abertas são mostradas conforme são encontradas, e estimativas de tempo para o término são fornecidas quando o Nmap acha que um scan irá demorar mais do que alguns minutos\&. Use duas vezes para uma verbosidade ainda maior\&. Usar mais do que duas vezes não surte nenhum efeito\&. +.sp +A maioria das alterações afetam apenas a saída interativa, e algumas também afetam a saída normal e script kiddie\&. Os outros tipos de saída foram feitos para serem processados por máquinas, então o Nmap pode dar informações bastante detalhadas por padrão nesse formatos sem cansarem o usuário humano\&. Entretanto, existem algumas mudanças nos outros modos onde o tamanho da saída pode ser reduzido substancialmente pela omissão de alguns detalhes\&. Por exemplo, uma linha de comentário, na saída para o grep, que fornece uma lista de todas as portas escaneadas só é mostrada no modo verboso porque ela pode ser bem longa\&. +.RE +.PP +\fB\-d [nível]\fR (Aumenta ou estabelece o nível de depuração) +.RS 4 +Se mesmo o modo verboso não fornece dados suficientes para você, o modo de depuração está disponível para inundá\-lo com muito mais! Assim como na opção de verbosidade (\fB\-v\fR), a depuração é habilitada com uma flag na linha de comando (\fB\-d\fR) e o nível de depuração pode ser aumentado especificando\-a múltiplas vezes\&. Alternativamente, você pode estabelecer o nível de depuração fornecendo um argumento para o +\fB\-d\fR\&. Por exemplo, +\fB\-d9\fR +estabelece o nível nove\&. Esse é efetivamente o nível mais alto e irá produzir milhares de linhas, a menos que você execute um scan muito simples com poucas portas e alvos\&. +.sp +A saída da depuração é útil quando há a suspeita de um bug no Nmap, ou se você simplesmente está confuso com o que o Nmap está fazendo e por quê\&. Como esta opção é, na maioria das vezes, destinada a desenvolvedores, a linhas de depuração nem sempre são auto\-explicativas\&. Você pode obter algo como: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Se você não entender uma linha, suas únicas opções serão ignorá\-la, procurar no código\-fonte ou pedir ajuda na lista de discussão de desenvolvimento (nmap\-dev)\&. Algumas linhas são auto\-explicativas, mas as mensagens ficam cada vez mais obscuras conforme o nível de depuração é aumentado\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Rastreia pacotes e dados enviados e recebidos) +.RS 4 +Faz com que o Nmap mostre um sumário de todos os pacotes enviados ou recebidos\&. Isto é bastante usado para depuração, mas também é uma forma valiosa para novos usuário entenderem exatamente o que o Nmap está fazendo por baixo dos panos\&. Para evitar mostrar milhares de linhas, você pode querer especificar um número limitado de portas a escanear, como +\fB\-p20\-30\fR\&. Se tudo o que lhe interessa for saber o que se passa no subsistema de detecção de versão, use o +\fB\-\-version\-trace\fR\&. +.RE +.PP +\fB\-\-iflist\fR (Lista as interfaces e rotas) +.RS 4 +Mostra a lista de interfaces e rotas do sistema conforme detectados pelo Nmap\&. Isto é útil para depurar problemas de roteamento ou erro de caracterização de dispositivo (como, por exemplo, no caso do Nmap tratar uma conexão PPP como se fosse uma Ethernet)\&. +.RE +.PP +\fB\-\-log\-errors\fR (Registrar os erros/avisos em um arquivo de sáida em modo normal) +.RS 4 +Avisos e erros mostrados pelo Nmap normalmente aparecem apenas na tela (saída interativa), deixando quaisquer arquivos de saída com formato normal especificados íntegros\&. Mas quando você quer realmente ver essas mensagens no arquivo de saída que você especificou, inclua esta opção\&. É útil quando você não está vendo a saída interativa ou está tentando depurar um problema\&. As mensagens continuarão a aparecer no modo interativo\&. Isto não irá funcionar para a maioria dos erros ligados à argumento inválidos na linha de comando, ocorre que o Nmap pode ainda não ter inicializado seus arquivos de saída ainda\&. Somado a isso, algumas mensagens de erro/aviso do Nmap utilizam um sistema diferente que ainda não suporta esta opção\&. Uma alternativa ao uso desta opção é redirecionar a saída interativa (incluindo o fluxo de erros padrão) para um arquivo\&. Embora a maioria dos shells Unix tornem essa uma alternativa fácil, pode ser difícil fazer o mesmo no Windows\&. +.RE +.PP +\fBOpções diversas (miscellaneous) de saída\fR +.PP +\fB\-\-append\-output\fR (Acrescenta no arquivo de saída, ao invés de sobrepor) +.RS 4 +Quando você especifica um nome de arquivo na flag de formato de saída, como +\fB\-oX\fR +ou +\fB\-oN\fR, esse arquivo é sobreposto por padrão\&. Se você preferir manter o conteúdo existente do arquivo e acrescentar os novos resultados, especifique a opção +\fB\-\-append\-output\fR\&. Todos os arquivos de saída especificados na execução do Nmap terão os resultados acrescidos ao invés de sobrepostos\&. Isso não funciona bem com os dados de scan para XML (\fB\-oX\fR) pois o arquivo resultante não será adequadamente interpretado até que você conserte manualmente\&. +.RE +.PP +\fB\-\-resume <nomedoarquivo>\fR (Retoma um scan abortado) +.RS 4 +Algumas execuções extensas do Nmap podem levar muito tempo \-\- na ordem de dias\&. Tais scans nem sempre rodam até o fim\&. Podem haver restrições que impeçam que o Nmap seja executado durante o horário de expediente, a rede pode cair, a máquina onde o Nmap está rodando pode sofrer um reboot planejado ou não, ou o Nmap pode simplesmente travar\&. O administrador que está rodando o Nmap poderia cancelá\-lo por qualquer outra razão, bastando teclar +ctrl\-C\&. Reiniciar um scan inteiro do começo pode ser indesejável\&. Felizmente, se forem mantidas logs normal (\fB\-oN\fR) ou para o grep (\fB\-oG\fR), o usuário pode pedir que o Nmap continue o escaneamento do alvo que estava verificando quando a execução foi interrompida\&. Simplesmente especifique a opção +\fB\-\-resume\fR +e informe o arquivo da saída normal/para o grep como argumento\&. Nenhum outro argumento é permitido, pois o Nmap analisa o arquivo de saída e usa os mesmos argumentos especificados anteriormente\&. Basta chamar o Nmap com +\fBnmap \-\-resume \fR\fB\fInomedoarquivodelog\fR\fR\&. O Nmap irá acrescentar os novos resultados ao arquivo de dados especificado na execução anterior\&. Essa retomada de execução não suporta o formato de saída XML porque combinar as duas execuções em um arquivo XML válido seria difícil\&. +.RE +.PP +\fB\-\-stylesheet <caminho ou URL>\fR (Informa a folha de estilo XSL usada para transformar a saída XML) +.RS 4 +O Nmap vem com uma folha de estilo (stylesheet) chamada +nmap\&.xsl +para visualizar ou traduzir a saída XML em HTML\&. A saída XML inclui uma diretiva +xml\-stylesheet +que mostra para o +nmap\&.xml +onde ele foi inicialmente instalado pelo Nmap (ou para o diretório corrente no Windows)\&. Simplesmente carregue a saída XML do Nmap em um navegador moderno e ele deve conseguir achar o +nmap\&.xsl +no sistema de arquivos e utilizá\-lo para interpretar os resultados\&. Se você deseja utilizar uma folha de estilo diferente, especifique\-a como um argumento para +\fB\-\-stylesheet\fR\&. Você deve informar o caminho completo ou a URL\&. Uma chamada comum é +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. Isso diz ao navegador para carregar a versão mais atual da folha de estilo da Insecure\&.Org\&. A opção +\fB\-\-webxml\fR +faz a mesma coisa com menos teclas e menor memorização\&. Carregar o XSL da Insecure\&.org torna mais fácil de se ver os resultados em uma máquina que não tenha o Nmap instalado (e, conseqüentemente o +nmap\&.xsl)\&. Então, a URL é normalmente mais útil, mas a localização nmap\&.xsl em um filesystem local é usada por padrão por questões de privacidade\&. +.RE +.PP +\fB\-\-webxml\fR (Carrega a folha de estilo da Insecure\&.Org) +.RS 4 +Esta opção conveniente é apenas um apelido para +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Omite do XML a declaração da folha de estilo XSL) +.RS 4 +Especifique esta opção para evitar que o Nmap associe qualquer folha de estilo XSL à saída XML\&. A diretiva +xml\-stylesheet +é omitida\&. +.RE +.SH "OPçõES DIVERSAS (MISCELâNEA)" +.PP +Esta seção descreve algumas opções importantes (e não\-tão\-importantes) que realmente não couberam em nenhum outro lugar\&. +.PP +\fB\-6\fR (Habilita o escaneamento IPv6) +.RS 4 +Desde 2002, o Nmap oferece suporte a IPv6 na maioria de suas opções mais populares\&. Em particular, o scan com ping (apenas TCP), o scan com connect e a detecção de versão, todo suportam IPv6\&. A sintaxe de comando é a mesma de sempre, exceto que você irá também adicionar a opção +\fB\-6\fR\&. É claro que você deve usar a sintaxe IPv6 se especificar um endereço no lugar de um nome de host\&. Um endereço pode se parecer com +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, portanto os nomes de host são recomendados\&. A saída é a mesma de sempre, com o endereço IPv6 na linha +\(lqportas interessantes\(rq +sendo a única dica visível de se tratar realmente de IPv6\&. +.sp +Muito embora o IPv6 não ter, exatamente, se alastrado pelo mundo, seu uso se torna mais significativo em alguns países (normalmente asiáticos) e a maioria dos sistemas operacionais modernos passam a suportá\-lo\&. Para usar o Nmap com o IPv6, tanto a origem, quanto o alvo de seu scan devem estar configurados para IPv6\&. Se o seu provedor (ISP) (como a maioria) não aloca endereços IPv6 para você, alguns intermediários, que fazem o túnel gratuitamente, estão amplamente disponíveis e funcionam bem com o Nmap\&. Um dos melhores é disponibilizado pela BT Exact\&. Também tenho utilizado um, fornecido pela Hurricane Electric em +\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]\&. Túneis 6para4 são outra abordagem gratuita e popular\&. +.RE +.PP +\fB\-A\fR (Opções agressivas de scan) +.RS 4 +Esta opção habilita opções adicionais avançadas e agressivas\&. Ainda não decidi exatamente qual das duas é a certa\&. Atualmente ela habilita a Detecção de SO (\fB\-O\fR) e o escaneamento de versão (\fB\-sV\fR)\&. Mais características poderão ser adicionadas no futuro\&. A questão é habilitar um conjunto completo de opções de escaneamento sem que as pessoas tenham que se lembrar de um grupo grande de flags\&. Esta opção apenas habilita as funções e não as opções de temporização (como a +\fB\-T4\fR) ou opções de verbosidade (\fB\-v\fR) que você pode também querer\&. +.RE +.PP +\fB\-\-datadir <nomedodiretório>\fR (Especifica a localização dos arquivos de dados do scan) +.RS 4 +O Nmap obtém alguns dados especiais, em tempo de execução, em arquivos chamados +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes +e +nmap\-os\-fingerprints\&. O Nmap primeiramente busca esses arquivos em um diretório especificado na opção +\fB\-\-datadir\fR +(se houver)\&. Qualque arquivo que não seja encontrado lá é procurado no diretório especificado pela variável de ambiente NMAPDIR\&. A seguir vem o +~/\&.nmap +para se achar os UIDs reais e efetivos (apenas em sistemas POSIX) ou a localização do executável do Nmap (apenas Win32) e, então, a localização definida na compilação, que pode ser +/usr/local/share/nmap +ou +/usr/share/nmap +\&. Como último recurso, o Nmap irá procurar no diretório corrente\&. +.RE +.PP +\fB\-\-send\-eth\fR (Use a transmissão pela ethernet em estado bruto) +.RS 4 +Solicita ao Nmap para que envie pacotes na ethernet (data link) em estado bruto (raw) ao invés de usar a camada de nível mais alto IP (rede)\&. Por padrão, o Nmap escolhe o que for melhor para a plataforma onde está rodando\&. Soquetes (sockets) em estado bruto (camada IP) são normalmente mais eficientes em máquinas UNIX, enquanto que os frames ethernet são necessários nas operações do Windows, uma vez que a Microsoft desabilitou o suporte a soquetes em estado bruto\&. O Nmap ainda usa pacotes IP em estado bruto no UNIX, independentemente desta opção, quando não há outra alternativa (como no caso de conexões não\-ethernet)\&. +.RE +.PP +\fB\-\-send\-ip\fR (Envia no nível do IP em estado bruto) +.RS 4 +Pede ao Nmap que envie os pacotes pelos soquetes IP em estado bruto ao invés de enviar pelo nível mais baixo dos frames ethernet\&. É o complemento da opção +\fB\-\-send\-eth\fR +discutida anteriormente\&. +.RE +.PP +\fB\-\-privileged\fR (Assume que o usuário é altamente privilegiado) +.RS 4 +Informa ao Nmap para simplesmente assumir que ele tem privilégio suficiente para executar transmissões de soquetes em estado bruto, farejar (sniff) pacotes e operações similares que normalmente requerem privilégio de root em sistemas UNIX\&. Por padrão, o Nmap se encerra se tal operação é solicitada mas o geteuid() não é zero\&. +\fB\-\-privileged\fR +é útil com as possibilidades oferecidas pelo kernel do Linux, e sistemas similares, que pode ser configurado para permitir que usuários não\-privilegiados executem scans de pacotes em estado bruto\&. Assegure\-se de informar esta flag de opção antes de outras flags de opção que requeiram privilégios (scan SYN, detecção de OS, etc\&.)\&. A variável NMAP_PRIVILEGED pode ser configurada como uma alternativa equivalente de +\fB\-\-privileged\fR\&. +.RE +.PP +\fB\-\-release\-memory\fR (Release memory before quitting) +.RS 4 +Esta opção é útil apenas para depuração de vazamentos de memória (memory\-leak)\&. Ela faz com que o Nmap libere memória alocada pouco antes de encerrar de forma a tornar os vazamentos de memória reais mais fáceis de se ver\&. Normalmente o Nmap pula essa parte pois o SO faz isso de qualquer forma no encerramento de um processo\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Mostra o número da versão) +.RS 4 +Mostra o número da versão do Nmap e sai\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Mostra a página do sumário de ajuda) +.RS 4 +Mostra uma pequena tela com as flags de comandos mais comuns\&. Executar o nmap sem nenhum argumento faz a mesma coisa\&. +.RE +.SH "INTERAçãO EM TEMPO DE EXECUçãO" +.PP +Durante a execução do Nmap, todas as teclas pressionadas são capturadas\&. Isso permite que você interaja com o programa sem abortá\-lo ou reiniciá\-lo\&. Algumas teclas especiais irão mudar as opções, enquanto outras irão mostrar uma mensagem de estado dando informações sobre o scan\&. A convenção é que +\fIletras minúsculas aumentam\fR +a quantidade de informação e +\fIletras maiúsculas diminuem\fR\&. Você também pode pressionar \(oq\fI?\fR\(cq para obter ajuda\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Aumenta / Diminui a quantidade de informações (Verbosity) +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Aumenta / Diminui o Nível de Depuração (Debugging Level) +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Habilita / Desabilita o Rastreamento de Pacotes (Packet Tracing) +.RE +.PP +\fB?\fR +.RS 4 +Mostra uma tela de ajuda da interação em tempo de execução +.RE +.PP +Qualquer outra letra +.RS 4 +Mostra uma mensagem de estado como esta: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "EXEMPLOS" +.PP +Aqui estão alguns exemplos de utilização do Nmap, desde o simple e rotineiro, até o um pouco mais complexo e esotérico\&. Alguns endereços IP reais e nomes de domínio foram utilizados para tornar as coisas mais concretas\&. Nesses lugares você deve substituir os endereços/nomes pelos da +\fIsua própria rede\fR\&. Embora eu não ache que o escaneamento de portas de outras redes seja, ou deva ser considerado, ilegal alguns administradores de rede não apreciam o escaneamento não\-solicitado de suas redes e podem reclamar\&. Obter a permissão antecipadamente é a melhor opção\&. +.PP +Para fins de teste, você tem permissão para escanear o host +scanme\&.nmap\&.org\&. Esta permissão inclui apenas o escaneamento via Nmap e não tentativas de explorar vulnerabilidades ou ataques de negação de serviço (denial of service)\&. Para preservar a banda, por favor não inicie mais do que uma dúzia de scans contra o host por dia\&. Se esse serviço de alvo livre para escaneamento for abusado, será derrubado e o Nmap irá reportar +Failed to resolve given hostname/IP: scanme\&.nmap\&.org\&. Essas permissões também se aplicam aos hosts +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org, e assim por diante, embora esses hosts ainda não existam\&. +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Esta opção escaneia todas as portas TCP reservadas na máquina +scanme\&.nmap\&.org +\&. A opção +\fB\-v\fR +habilita o modo verboso (verbose)\&. +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Inicia um scan SYN camuflado contra cada máquina que estiver ativa das 255 possíveis da rede +\(lqclasse C\(rq +onde o Scanme reside\&. Ele também tenta determinar qual o sistema operacional que está rodando em cada host ativo\&. Isto requer privilégio de root por causa do scan SYN e da detecção de SO\&. +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Inicia uma enumeração de hosts e um scan TCP na primeira metade de cada uma das 255 sub\-redes de 8 bits possíveis na classe B do espaço de endereçamento 198\&.116\&. Também testa se os sistemas estão executando sshd, DNS, pop3d, imapd ou a porta 4564\&. Para cada uma destas portas encontradas abertas, a detecção de versão é usada para determinar qual aplicação está executando\&. +.PP +\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR +.PP +Pede ao Nmap para escolher 100\&.000 hosts de forma aleatória e escaneá\-los procurando por servidores web (porta 80)\&. A enumeração de hosts é desabilitada com +\fB\-P0\fR +uma vez que enviar primeiramente um par de sondagens para determinar se um hosts está ativo é um desperdício quando se está sondando uma porta em cada host alvo\&. +.PP +\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Este exemplo escaneia 4096 endereços IP buscando por servidores web (sem usar o ping) e grava a saída nos formatos XML e compatível com o programa grep\&. +.SH "BUGS" +.PP +Como seu autor, o Nmap não é perfeito\&. Mas você pode ajudar a torná\-lo melhor enviando relatórios de erros (bug reports) ou mesmo escrevendo correções\&. Se o Nmap não se comporta da forma que você espera, primeiro atualize para a versão mais atual disponível em +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Se o problema persistir, pesquise um pouco para determinar se o problema já foi descoberto e encaminhado\&. Tente procurar no Google pela mensagem de erro ou navegar nos arquivos da Nmap\-dev em +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. Se não encontrar nada, envie uma mensagem com um relatório do erro para +<dev@nmap\&.org>\&. Por favor, inclua tudo o que souber sobre o problema, bem como a versão do Nmap que você está executando e em qual versão e sistema operacional você está rodando\-o\&. +.PP +Correções codificadas para consertar os erros são ainda melhores que os relatórios de erro\&. Instruções básicas para a criação de arquivos de correções com as suas alterações estão disponíveis em +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]\&. +.SH "AUTOR" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%https://insecure.org\fR\m[]) +.PP +Centenas de pessoas fizeram contribuições valiosas para o Nmap ao longo dos anos\&. Isso está detalhado no arquivo +CHANGELOG +que é distribuído com o Nmap e também está disponível em +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]\&. +.SH "AVISOS LEGAIS" +.SS "Unofficial Translation Disclaimer / Aviso de Tradução Não\-Oficial" +.PP +This is an unnofficial translation of the +\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[10]\d\s+2 +into Portuguese (Brazil)\&. It was not written by Insecure\&.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\&. However, we hope that this translation helps Portuguese (Brazil) speakers understand the Nmap license better\&. +.PP +Esta é uma tradução não\-oficial dos +\m[blue]\fBdetalhes do licenciamento do Nmap\fR\m[]\&\s-2\u[10]\d\s+2 +em português (Brasil)\&. Ela não foi escrita pela Insecure\&.Com LLC e não tem poder legal sobre os termos de distribuição do Nmap \-\- apenas o texto original em inglês o tem\&. Entretanto, esperamos que esta tradução auxilie os falantes de português (Brasil) a compreender melhor a licença do Nmap\&. +.SS "Copyright e Licenciamento do Nmap" +.PP +O Nmap Security Scanner é (C) 1996\-2005 Insecure\&.Com LLC\&. O Nmap também é uma marca registrada de Insecure\&.Com LLC\&. Este programa é um software livre; você pode redistribuí\-lo e/ou modificá\-lo sob os termos da Licença Pública Geral GNU (GNU General Public License) conforme publicado pela Free Software Foundation; Versão 2\&. Isso garante o seu direito de usar, modificar e redistribuir este software sob certas condições\&. Se você desejar embutir a tecnologia do Nmap em um software proprietário, poderemos querer vender licenças alternativas (contate +<sales@insecure\&.com>)\&. Muitos vendedores de scanner de segurança já licenciam a tecnologia do Nmap, tal como a descoberta de hosts, escaneamento de portas, detecção de SO e detecção de serviços/versões\&. +.PP +Observe que a GPL impõe restrições importantes em +\(lqtrabalhos derivados\(rq, embora ela não forneça uma definição detalhada desse termo\&. Para evitar más\-interpretações, consideramos que uma aplicação constitui um +\(lqtrabalho derivado\(rq, para o propósito desta licença, se ela se enquadra em um dos seguintes ítens: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integra código fonte do Nmap +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Lê ou inclui arquivos de dados do Nmap que são protegidos por copyright, tal como o +nmap\-os\-fingerprints +ou +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Executa o Nmap e decompõe (parse) os resultados (diferentemente de uma execução típica de um shell ou aplicações de menu de execução, que simplesmente mostram a saída em estado bruto do Nmap e portanto não constituem um trabalho derivado)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integra/inclui/agrega o Nmap em um instalador executável proprietário, tal como os produzidos pelo InstallShield\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Estabelece uma ligação (link) com uma biblioteca ou executa um programa que faz qualquer um dois ítens acima\&. +.RE +.PP +O termo +\(lqNmap\(rq +deve ser considerado como contendo parte ou sendo trabalho derivado do Nmap\&. Esta lista não é definitiva, mas deve ser entendida como uma forma de clarear nossa interpretação de trabalho derivado com alguns exemplos comuns\&. Estas restrições apenas se aplicam quando você realmente redistribui o Nmap\&. Por exemplo, nada impede que você escreva e venda um front\-end proprietário para o Nmap\&. Apenas redistribua o seu produto isoladamente e mostre às pessoas aonde elas podem +\m[blue]\fB\%https://nmap.org/\fR\m[]baixar o Nmap\&. +.PP +Nós não consideramos isso como restrições adicionais à GPL, mas apenas uma elucidação de como nós interpretamos +\(lqtrabalhos derivados\(rq +pois elas se aplicam ao nosso produto Nmap licenciado no formato GPL\&. Isso é idêntico à forma como Linus Torvalds anunciou sua interpretação de como os +\(lqtrabalhos derivados\(rq +se aplicam aos módulos do kernel do Linux\&. Nossa interpretação refere\-se apenas ao Nmap \- não respondemos por qualquer outro produto GPL\&. +.PP +Se você tiver qualquer dúvida quanto às restrições do licenciamento GPL na utilização do Nmap em produtos não\-GPL, ficaríamos felizes em ajudar\&. Como mencionado acima, também oferecemos licenças alternativas para a integração do Nmap em aplicações e dispositivos proprietários\&. Esses contratos foram vendidos para muitas empresas de segurança e geralmente incluem uma licença perpétua, bem como disponibiliza um suporte e atualizações prioritários, e também nos ajuda financeiramente o desenvolvimento contínuo da tecnologia do Nmap\&. Por favor, envie um e\-mail para +<sales@insecure\&.com> +se desejar mais informações\&. +.PP +Como uma exceção especial aos termos da GPL, a Insecure\&.Com LLC permite que uma ligação (link) do código deste program seja feito com qualquer versão da biblioteca do OpenSSL que seja distribuída sob uma licença idêntica àquela listada no arquivo Copying\&.OpenSSL incluso, e distribuir combinações de ligação incluindo os dois\&. Você deve obedecer à GPL GNU em todos os aspectos para todo o código utilizado que não seja OpenSSL\&. Se você modificar este aquivo, você pode estender esta exceção para a sua versão do arquivo, mas você não é obrigado a fazer isso\&. +.PP +Se você recebeu estes arquivos com um acordo de licenciamento por escrito ou um contrato ditando termos que não sejam diferentes dos acima, então essa licença alternativa tem precedência sobre estes comentários\&. +.SS "Licença da Creative Commons para este guia do Nmap" +.PP +Este Guia de Referência do Nmap é (C) 2005 da Insecure\&.Com LLC\&. Está aqui colocado sob a versão 2\&.5 da +\m[blue]\fBLicença de Atribuição da Creative Commons\fR\m[]\&\s-2\u[2]\d\s+2\&. Isso permite que você redistribua e modifique o trabalho como desejar, contanto que você credite a fonte original\&. Opcionalmente, você pode preferir tratar este documento sob as mesmas regras de licenciamento do Nmap (discutido anteriormente)\&. +.SS "Disponibilidade de código fonte e contribuições da comunidade" +.PP +O código fonte é fornecido com este software porque acreditamos que os usuários tem o direito de saber exatamente o que um programa irá fazer antes de se executá\-lo\&. Isso também permite que você audite o software procurando por brechas na segurança (nenhuma foi encontrada até agora)\&. +.PP +O código fonte também permite que você porte o Nmap para novas plataformas, conserte problemas e adicione novas características\&. Você é altamente encorajado a enviar suas alterações para +<fyodor@nmap\&.org> +para uma possível incorporação na distribuição principal\&. Enviar essas alterações para Fyodor ou para alguém da lista de mensagens de desenvolvimento da Insecure\&.Org, pressupõe que você está oferecendo a Fyodor e à Insecure\&.Com LLC o direito ilimitado e não\-exclusivo para reutilizar, modificar e re\-licenciar o código\&. O Nmap sempre estará disponível como um Open Source, mas isto é importante porque a impossibilidade de re\-licenciar o código causou problemas devastadores para outros projetos de Software Livre (tal como o KDE e o NASM)\&. Nós também re\-licenciamos ocasionalmente o código para terceiros, conforme discutido anteriormente\&. Se você deseja especificar condições de licenciamento especiais das suas contribuições, apenas deixe isso claro quando enviá\-las\&. +.SS "Sem Garantia" +.PP +Este programa é distribuído na esperança de que será útil, mas SEM QUALQUER GARANTIA; sem sequer a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A QUALQUER PROPÓSITO PARTICULAR\&. Veja a Licença Pública Geral GNU para mais detalhes em +\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[], ou no arquivo COPYING incluído com o Nmap\&. +.PP +Também deve ser observado que o Nmap reconhecidamente trava certas aplicações mal\-escritas, a pilha TCP/IP e mesmo alguns sistemas operacionais\&. +\fBO Nmap nunca deve ser executado contra sistemas de missão\-crítica\fR +a menos que você esteja preparado para lidar com o serviço fora do ar (downtime)\&. Nós reconhecemos aqui que o Nmap pode travar os seus sistemas ou redes e nós renunciamos toda e qualquer responsabilidade por qualquer dano ou problema que o Nmap possa causar\&. +.SS "Uso inapropriado" +.PP +Pelo fato de haver o menor risco de travamento e porque existem pessoas mal\-intencionadas (black hats) que gostam de usar o Nmap para reconhecimento antes de atacar um sistema, existem administradores que ficam chateados e podem reclamar quando o sistema deles é escaneado\&. Portanto, é normalmente aconselhável que se solicite a permissão antes de fazer um scan de uma rede, por mais leve que seja\&. +.PP +O Nmap nunca deveria ser instalado com privilégios especiais (p\&.ex\&.: suid root) por questões de segurança\&. +.SS "Software de Terceiros" +.PP +Este produto inclui software desenvolvido pela +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[11]\d\s+2\&. Uma versão modificada da +\m[blue]\fBbiblioteca portátil de captura de pacotes Libpcap\fR\m[]\&\s-2\u[12]\d\s+2 +é distribuída junto com o Nmap\&. A versão para o Windows do Nmap, por outro lado, utiliza +\m[blue]\fBbiblioteca WinPcap\fR\m[]\&\s-2\u[13]\d\s+2, derivada da libpcap\&. O suporte à expressões regulares é fornecido pela +\m[blue]\fBbiblioteca PCRE\fR\m[]\&\s-2\u[14]\d\s+2, que é um software de código aberto, escrito por by Philip Hazel\&. Algumas funções de rede em estado bruto utilizam a biblioteca de rede +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[15]\d\s+2, que foi escrita por Dug Song\&. Uma versão modificada é distribuída com o Nmap\&. O Nmap pode, opcionalmente, ser ligado ao +\m[blue]\fBconjunto de ferramentas de criptografia do OpenSSL\fR\m[]\&\s-2\u[16]\d\s+2 +para o suporte à detecção de versão do SSL\&. Todos os softwares de terceiros descritos neste parágrafo são distribuídos gratuitamente sob o licenciamento de software no estilo BSD\&. +.SS "Classificação do Controle de Exportação dos EUA" +.PP +Controle de Exportação dos EUA: A Insecure\&.Com LLC acredita que o Nmap se enquadra no US ECCN (número de classificação para controle de exportação) 5D992\&. Essa categoria é chamada de +\(lqsoftware de Segurança da Informação não\-controlado pela 5D002\(rq\&. A única restrição à essa classificação é o AT (anti\-terrorismo), que se aplica a quase todos os produtos e nega a exportação à um punhado de nações não\-confiáveis tais como o Irã e a Coréia do Norte\&. Portanto, exportar o Nmap não requer nenhuma licença ou permissão especial, ou qualquer outro tipo de autorização governamental\&. +.SH "NOTAS" +.IP " 1." 4 +original em Inglês +.RS 4 +\%https://nmap.org/man/ +.RE +.IP " 2." 4 +Licença de Atribuição da Creative Commons +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 3." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 4." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 5." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 6." 4 +RFC do TCP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 7." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 8." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP " 9." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP "10." 4 +Nmap license details +.RS 4 +\%https://nmap.org/man/man-legal.html +.RE +.IP "11." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "12." 4 +biblioteca portátil de captura de pacotes Libpcap +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "13." 4 +biblioteca WinPcap +.RS 4 +\%http://www.winpcap.org +.RE +.IP "14." 4 +biblioteca PCRE +.RS 4 +\%http://www.pcre.org +.RE +.IP "15." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "16." 4 +conjunto de ferramentas de criptografia do OpenSSL +.RS 4 +\%http://www.openssl.org +.RE diff --git a/docs/man-xlate/nmap-pt_PT.1 b/docs/man-xlate/nmap-pt_PT.1 new file mode 100644 index 0000000..753eb8e --- /dev/null +++ b/docs/man-xlate/nmap-pt_PT.1 @@ -0,0 +1,1654 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "Autor" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 31/03/2023 +.\" Manual: Guia de Referência do Nmap +.\" Source: Nmap +.\" Language: Portuguese +.\" +.TH "NMAP" "1" "31/03/2023" "Nmap" "Guia de Referência do Nmap" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NOME" +nmap \- Ferramenta de exploração de Rede e Rastreio de Segurança / Portas +.SH "SINOPSE" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fITipo\ de\ Rastreio(Scan)\fR...] [\fIOpções\fR] {\fIEspecificação\ do\ Alvo\fR} +.SH "DESCRIÇÃO" +.PP +O Nmap (\(lqNetwork Mapper\(rq) é uma ferramenta em código aberto para exploração de rede e auditoria de segurança\&. Foi desenhada para rastrear(Scan) rapidamente redes amplas contudo funciona bem com um único anfitrião(host)\&. Nmap usa pacotes IP em estado bruto(raw) sobre novas formas para determinar que anfitriões(hosts) estão disponíveis na rede, que serviços (nome e versão da aplicação) esses anfitriões(hosts) estão disponibilizando, que sistemas operativos (e versões de SO) estão em uso, que tipo de filtros de pacotes/firewalls estão em uso e dezenas de outras características\&. Enquanto o Nmap é frequentemente usado para auditorias de segurança, muitos sistemas e administradores de redes consideram\-no útil para as tarefas de rotina como o inventário da rede, gestão de actualizações de serviços e monitorizar o uptime de anfitriões ou serviços\&. +.PP +A saída do Nmap é uma lista de alvos rastreados(scanned) com informações adicionais de cada um dependendo das opções utilizadas\&. Uma informação chave é a +\(lqtabela de portas interessantes\(rq\&. Essa tabela lista o número da porta e o protocolo, o nome do serviço e o estado\&. O estado pode ser +aberto (open), +filtrado (filtered), +fechado (closed), ou +não\-filtrado (unfilterd)\&. Aberto (open) significa que uma aplicação na máquina\-alvo está escutando as conexões/pacotes nessa porta\&. +Filtrado (filtered) +significa que o firewall, filtro ou outro obstáculo de rede está bloqueando a porta de forma que o Nmap não consegue dizer se ela está +aberta (open) +ou +fechada (closed)\&. Portas +fechadas (closed)não possuem uma aplicação escutando nelas embora possam abrir a qualquer instante\&. Portas são classificadas como +não filtradas (unfiltered)quando elas respondem às sondagens do Nmap mas o Nmap não consegue determinar se as portas estão abertas ou fechadas\&. O Nmap reporta as combinações +aberta|filtrada (open|filtered)e +fechada|filtrada (closed|filtered)quando não consegue determinar qual dos dois estados descrevem melhor a porta\&. A tabela de portas também pode incluir detalhes de versão de software quando a detecção de versão for solicitada\&. Quando um rastreio(scan) do protocolo IP é solicitado (\fB\-sO\fR) o Nmap fornece informações dos protocolos IP suportados ao invés de portas que estejam abertas\&. +.PP +Além da tabela de portas interessantes o Nmap pode fornecer informações adicionais sobre os alvos, incluíndo nomes de DNS reverso, suposições de sistema operativo, tipos de dispositivos e endereços MAC\&. +.PP +Um rastreio(scan) típico do Nmap é mostrado em +Exemplo 1, \(lqUma amostra de rastreio(scan) do Nmap\(rq\&. Os únicos argumentos que o Nmap utiliza nesse exemplo são +\fB\-A\fR +para permitir a detecção de SO e a versão +\fB\-T4\fR +para execução mais rápida e os nomes de anfitrião(hostnames) de dois alvos\&. +.PP +\fBExemplo 1. Uma amostra de rastreio(scan) do Nmap\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org playground + +Starting nmap ( https://nmap\&.org/ ) +Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X +OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11 +Uptime 33\&.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground\&.nmap\&.org (192\&.168\&.0\&.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios\-ssn +389/tcp open ldap? +445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds +1002/tcp open windows\-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper +5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3\&.8) +MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds +.fi +.if n \{\ +.RE +.\} +.PP +A versão mais nova do Nmap pode ser obtida em +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. A versão mais nova da página man está disponível em +\m[blue]\fB\%https://nmap.org/man/\fR\m[]\&. +.SH "SUMÁRIO DAS OPÇÕES" +.PP +Este sumário de opções é mostrado quando o Nmap é executado sem argumentos e a última versão está sempre disponível em +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]\&. Ele ajuda as pessoas a lembrar\-se das opções mais comuns mas não substitui a documentação mais técnica do restante deste manual\&. Algumas opções mais obscuras nem estão aqui incluídas\&. +.PP +.if n \{\ +.RS 4 +.\} +.nf +Synopsis: nmap [Tipo(s) de Rastreio(Scan)] [Opções] {especificação do alvo} +ESPECIFICAÇÂO DO ALVO: + Pode\-se usar nomes de anfitriões(hostnames), Endereços IP, redes, etc\&. + Ex: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\-255\&.0\-255\&.1\-254 + \-iL <inputfilename>: Entrada(Input) de listas de anfitriões(hosts)/redes + \-iR <num hosts>: Escolher alvos aleatoriamente + \-\-exclude <host1[,host2][,host3],\&.\&.\&.>: Excluir anfitriões(hosts)/redes + \-\-excludefile <exclude_file>: Lista de exclusões de um ficheiro +DESCOBERTA DE ANFITRIÕES(HOSTS): + \-sL: List Scan \- lista simplesmente os alvos para efectuar o rastreio(scan) + \-sP: Ping Scan \- apenas determnina se o anfitrião está online + \-P0: Considera todos os anfitriões como online \-\- salta a descoberta de anfitriões + \-PS/PA/PU [portlist]: rastreio de descoberta TCP SYN/ACK ou UDP para determinadas portas + \-PE/PP/PM: Rastreio(scan) de descoberta ICMP echo, timestamp, and netmask request + \-n/\-R: Nunca resolver/Resolver sempre nomes de DNS [default: resolver algumas vezes] +TÉCNICAS DE SCAN: + \-sS/sT/sA/sW/sM: Rastreios(Scans) TCP SYN/Connect()/ACK/Window/Maimon + \-sN/sF/sX: Rastreios(Scans) TCP Null, FIN, and Xmas + \-\-scanflags <flags>: Customizar as TCP scan flags + \-sI <anfitrião(host) zombie[:probeport]>: Idlescan + \-sO: Rastreio(Scan) de protocolo IP + \-b <ftp relay host>: FTP bounce scan +ESPECIFICAÇÃO DO PORTO E ORDEM DE RASTREIO: + \-p <port ranges>: Apenas efectuar o rastreio(scan) de portas específicas + Ex: \-p22; \-p1\-65535; \-p U:53,111,137,T:21\-25,80,139,8080 + \-F: Rápido \- Efectua o rastreio(Scan) apenas das portas especificadas no ficheiro nmap\-services + \-r: Efectuar o rastreio(Scan) das portas consecutivas e não aleatoriamente +DETECÇÃO DO SERVIÇO/VERSÃO: + \-sV: Rastrear(scan) portas abertas para determinar a informação sobre o serviço/versão + \-\-version\-light: Limitar aos rastreios mais prováveis para identificação mais rápida + \-\-version\-all: Experimentar todos os rastreios para detectar a versão + \-\-version\-trace: Mostrar detalhadamente a actividade do rastreio(scan) + da versão (para debugging) +DETECÇÃO DO SO: + \-O: Permite a detecção do SO + \-\-osscan\-limit: Limitar a detecção de SO aos alvos promissores + \-\-osscan\-guess: Efectuar o rastreio do SO de forma mais agressiva +TIMING AND PERFORMANCE: + \-T[0\-6]: Ajustar o tempo do modelo(template) (maior é mais rápido) + \-\-min\-hostgroup/max\-hostgroup <tamanho>: Tamanho dos grupos de rastreio(scan) + de anfitrião(host) paralelo + \-\-min\-parallelism/max\-parallelism <numprobes>: Rastreio paralelismo + \-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msec>: Ajustar o + tempo de retorno do rastreio\&. + \-\-host\-timeout <msec>: Desistir de um alvo após este tempo + \-\-scan\-delay/\-\-max\-scan\-delay <msec>: Ajustar esperas entre rastreios +FIREWALL/IDS EVASÃO E DISFARÇE(SPOOFING): + \-f; \-\-mtu <val>: fragmentar pacotes (opcional com dado MTU) + \-D <decoy1,decoy2[,ME],\&.\&.\&.>: Disfarça um rastreio(scan) com iscos + \-S <IP_Address>: Disfarçar(Spoof) endereço de origem + \-e <iface>: Usar um interface especifico + \-g/\-\-source\-port <portnum>: Usar um determinado numero de porta + \-\-data\-length <num>: Acrescentar dados aleatorios aos pacotes enviados + \-\-ttl <val>: Ajustar o campo IP TTL tempo\-de\-vida + \-\-spoof\-mac <mac address, prefix, or vendor name>: Disfarçar(Spoof) o endereço MAC +SAIDA(OUTPUT): + \-oN/\-oX/\-oS/\-oG <file>: Retorna os resultados do rastreio(scan) em XML normal, s|<rIpt kIddi3, + e formatados respectivamente para o ficheiro especificado + \-oA <basename>: Saida(Output) nos três formatos principais + \-v: Aumenta o nivel de informação apresentada(verbosity) (usar 2x para aumentar o efeito) + \-d[level]: Ajusta o nivel de debugging (Áté 9 é significativo) + \-\-packet\-trace: Mostra todos os pacotes enviados e recebidos + \-\-iflist: Mostra os interfaces do anfitrião e rotas (para debugging) + \-\-append\-output: Acrescenta, em vez de destruir/substituir, ficheiros de resultados + \-\-resume <filename>: Continuar um rastreio cancelado(aborted) + \-\-stylesheet <path/URL>: A XSL stylesheet para transformar retorno(output) XML para HTML + \-\-no\-stylesheet: Impedir que o Nmap de associar a XSL stylesheet com retorno(output) XML +OUTROS(MISC): + \-6: Permitir rastreio(scanning) IPv6 + \-A: Permitir detecção do SO e versão + \-\-datadir <dirname>: Especifica a localização do ficheiro de dados personalizado do Nmap + \-\-send\-eth/\-\-send\-ip: Enviar pacotes utilizando "raw ethernet frames" ou pacotes IP + \-\-privileged: Assume que o utilizador possui os previlégios necessários + \-V: Mostra a versão + \-h: Mostra esta página de sumário de ajuda +EXEMPLOS: + nmap \-v \-A scanme\&.nmap\&.org + nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8 + nmap \-v \-iR 10000 \-P0 \-p 80 +.fi +.if n \{\ +.RE +.\} +.sp +.SH "ESPECIFICAÇÃO DE ALVO" +.PP +Tudo na linha de comando do Nmap que não for uma opção (ou argumento de uma opção) é tratado como uma especificação de um anfitrião (host)\-alvo\&. O caso mais simples é especificar um endereço IP como alvo ou um nome de anfitrião(hostname) para ser rastreado(scaned)\&. +.PP +Algumas vezes pode querer efectuar o rastreio(scan) de uma rede inteira de anfitriões(hosts) adjacentes\&. Para isso o Nmap suporta o estilo de endereçamento CIDR\&. Pode acrescentar /\fInúmerodebits\fR +em um endereço ou hostname e o Nmap irá efectuar o rastreio(scan) de cada endereço IP para o qual os primeiros +\fInúmerosdebits\fR +sejam o mesmo que o IP de referência ou o hostname dado\&. Por exemplo, 192\&.168\&.10\&.0/24 escanearia os 256 hosts entre 192\&.168\&.10\&.0 (binário: +11000000 10101000 00001010 00000000) e 192\&.168\&.10\&.255 (binário: +11000000 10101000 00001010 11111111), inclusive\&. 192\&.168\&.10\&.40/24 faria exatamente a mesma coisa\&. Dado que o afitrião(host) scanme\&.nmap\&.org está no endereço IP 205\&.217\&.153\&.62, a especificação scanme\&.nmap\&.org/16 efectuaria o rastreio(scan) dos 65\&.536 endereços IP entre 205\&.217\&.0\&.0 e 205\&.217\&.255\&.255\&. O menor valor permitido é /1, que equivale ao rastreio(scan) de metada da Internet\&. O maior valor é 32, que faz o rastreio(scan) de apenas o anfitrião(host) nomeado ou endereço IP porque todos os bits de endereçamento estão fixos\&. +.PP +A notação CIDR é curta mas nem sempre flexível o suficiente\&. Por exemplo, pode querer fazer o rastreio(scan) de 192\&.168\&.0\&.0/16 mas desejar saltar todos os IPs terminados em \&.0 ou \&.255 porque eles são normalmente endereços de broadcast\&. O Nmap suporta isso através de endereçamento por faixa de octeto\&. Ao invés de especificar um endereço IP normal, pode especificar uma lista de números separada por vírgulas ou faixa de números para cada octeto\&. Por exemplo, 192\&.168\&.0\-255\&.1\-254 irá saltar todos os endereços na faixa que terminarem com \&.0 e/ou \&.255\&. Faixas não precisam ser limitadas ao octeto final: o especificador 0\-255\&.0\-255\&.13\&.37 irá executar um rastreio(scan) em toda a Internet buscando os endereços IP terminados em 13\&.37\&. Esse tipo de amostragem ampla pode ser útil em levantamentos e pesquisas de toda a Internet\&. +.PP +Endereços IPv6 podem apenas ser especificados utilizando o endereço IP ou hostname IPv6 completamente qualificado\&. Faixas CIDR e octetos não são suportados para o IPv6 porque eles raramente são úteis\&. +.PP +O Nmap aceita múltiplas especificações de anfitrião(host) na linha de comando, e elas não precisam ser do mesmo tipo\&. O comando +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.0\-255\fR +executa o que se espera dele\&. +.PP +Embora os alvos sejam normalmente especificados na linha de comando, as seguintes opções também estão disponíveis para controlar a seleção de alvos: +.PP +\fB\-iL <arquivodeentrada>\fR (Entrada a partir de uma lista) +.RS 4 +Lê a especificação de alvos à partir de um +\fIarquivodeentrada\fR\&. Passar uma lista enorme de anfitriões(hosts) na linha de comando é muito ruim, ainda que seja normalmente desejável\&. Por exemplo, o seu servidor DHCP pode exportar uma lista de 10\&.000 endereços correntes em uso que deseja efectuar o rastreio(scan)\&. Ou talvez deseje o rastreio(scan) dr todos os endereços IP +\fIexcepto\fR +aqueles usados para localizar anfitriões(hosts) que usam endereços IP estáticos não\-autorizados\&. Simplesmente gere uma lista de anfitriões(hosts) a efectuar o rastreio(scan) e passe o nome do arquivo para o Nmap como um argumento à opção +\fB\-iL\fR\&. As entradas podem estar em qualquer um dos formatos aceites pelo Nmap na linha de comando (endereço IP, hostname, CIDR, IPv6, ou faixas de octetos)\&. Cada entrada deve ser separada por um ou mais espaços em branco, tabulações ou newlines\&. Você pode especificar um hífen (\-) como nome de arquivo se quiser que o Nmap leia os nomes de anfitrião(hostsnames) da entrada padrão (standard input) ao invés de um arquivo\&. +.RE +.PP +\fB\-iR <número de afitriões(hosts)>\fR (Escolhe alvos aleatórios) +.RS 4 +Para levantamentos na Internet toda e outras pesquisas, pode querer escolher alvos de forma aleatória\&. O argumento +\fInúmero de anfitriões(hosts)\fR +diz ao Nmap quantos IPs ele deverá gerar\&. IPs indesejáveis, tais como aqueles de certas redes privadas, multicast e faixas de endereços não\-alocadas são automaticamente anuladas\&. O argumento +0 +(zero) pode ser especificado caso deseje um rastreio(scan) sem fim\&. Tenha em mente que alguns administradores de rede não gostam de rastreios(scans) não\-autorizados de suas redes e podem apresentar queixa Use esta opção por sua conta e risco! Se estiver realmente aborrecido em uma tarde chuvosa, tente o comando +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR +para localizar servidores web aleatórios para navegar\&. +.RE +.PP +\fB\-\-exclude <host1[,host2][,host3],\&.\&.\&.>\fR (Exclui anfitriões(hosts)/redes) +.RS 4 +Especifica uma lista de alvos, separados por vírgula, a serem excluídos do rastreio(scan) mesmo que façam parte da faixa de rede especificada\&. A lista que fornece utiliza a sintaxe normal do Nmap, portanto ela pode incluir nomes de afitrião(hosts), blocos de rede CIDR, faixas de octetos, etc\&. Isso pode ser útil quando a rede que deseja efectuar o rastreio(scan) inclui servidores de missão crítica intocáveis, sistemas que reconhecidamente reagem mal a rastreio(scan) de portas ou sub\-redes administradas por outras pessoas\&. +.RE +.PP +\fB\-\-excludefile <arquivo_exclusão>\fR (Exclui a lista do arquivo) +.RS 4 +Oferece a mesma funcionalidade que a opção +\fB\-\-exclude\fR, excepto que os alvos a excluir são fornecidos em um +\fIexclude_file\fR +, delimitados por newline, espaço em branco ou tabulação, ao invés de na linha de comando\&. +.RE +.SH "DESCOBERTA DE HOSTS" +.PP +Um dos primeiros passos em qualquer missão de reconhecimento de uma rede é reduzir um conjunto (às vezes enorme) de faixas de endereços IP, em uma lista de anfitriões(hosts) activos e interessantes\&. Efectuar o rastreio(scan) de cada porta de cada endereço IP é lento e normalmente desnecessário\&. É claro que o que torna um anfitrião(host) interessante depende muito do propósito do rastreio(scan)\&. Administradores de rede podem estar apenas interessados em hosts que executam um determinado serviço, enquanto os auditores de segurança podem se importar com cada dispositivo que possuir um endereço IP\&. Um administrador pode se sentir à vontade em usar o ping ICMP para localizar os anfitriões(hosts) na rede interna, enquanto um profissional externo de análise de vulnerabilidades (penetration tester) pode utilizar um conjunto diversificado de dezenas de sondagens numa tentativa de enganar as restrições da firewall\&. +.PP +As necessidades para o descobrimento de anfitrião(host) são muito diversas e, por isso, o Nmap oferece uma ampla variedade de opções para customizar as técnicas utilizadas\&. A descoberta de anfitrião(host) às vezes é chamada de rastreo ping(ping scan), mas ela vai muito além dos simples pacotes ICMP de echo request associados com a popular ferramenta conhecida como ping\&. Os usuários podem saltar a etapa do ping inteiramente com uma lista de rastreio(scan) (\fB\-sL\fR) ou desactivado o ping (\fB\-P0\fR), ou enfrentar a rede com combinações arbitrárias de sondagens multi\-portas TCP SYN/ACK, UDP, e ICMP\&. O objetivo dessas sondagens é solicitar respostas que mostrem que um endereço IP está realmente activo (é utilizado por um afitrião(host) ou dispositivo de rede)\&. Em muitas redes, apenas uma pequena percentagem dos endereços IP está activa em um dado momento\&. Isso é particularmente comum com o espaço de endereçamento privado ao abrigo do RFC1918 como, por exemplo, 10\&.0\&.0\&.0/8\&. Essa rede tem 16 milhões de IPs, mas eu já a vi sendo utilizado em empresas com menos de mil máquinas\&. A descoberta de anfitriões(hosts) pode encontrar essas máquinas escassamente alocadas em um mar de endereços IP\&. +.PP +Se nenhuma opção de descoberta de hosts for dada, o Nmap envia um pacote TCP ACK destinado a porta 80 e uma procura ICMP Echo Request a cada máquina\-alvo\&. Uma exceção a isso é que um rastreio(scan) ARP é utilizado para cada alvo localizado na rede ethernet local\&. Para usuários Unix sem privilégios de shell, um pacote SYN é enviado ao invés do ack utilizando a chamada de sistema +\fBconnect()\fR\&. Esses valores default equivalem às opções +\fB\-PA \-PE\fR\&. Esta descoberta de anfitrião(host) frequentemente é suficiente para o rastreio(scan) de redes locais, mas um conjunto de sondagens mais abrangentes é recomendado para auditoria de segurança\&. +.PP +As opções +\fB\-P*\fR +(que seleccionam tipos de ping) podem ser combinadas\&. Você pode aumentar as chances de penetrar numa firewall enviando muitos tipos de sondagens, utilizando diferentes portas/flags TCP e códigos ICMP\&. Note também que a descoberta por ARP (\fB\-PR\fR) é feita por default contra alvos na rede ethernet local mesmo que especifique outras opções +\fB\-P*\fR +, porque é quase sempre mais rápida e mais eficiente\&. +.PP +As seguintes opções controlam a descoberta de anfitriões(hosts)\&. +.PP +\fB\-sL\fR (Listagem de rastreio(scan)) +.RS 4 +A listagem de rastreio(scan) é uma forma degenerada de descoberta de anfitriões(hosts) que simplesmente lista cada anfitrião(host) da rede especificada, sem enviar nenhum pacote aos hosts\-alvos\&. Por default o Nmap fará a resolução de DNS dos anfitriões(hosts) para descobrir seus nomes\&. Ainda é surpreendente a quantidade de informações úteis que simples nomes de hosts podem dar\&. Por exemplo, +fw\&.chi\&.playboy\&.com +é o firewall do escritório de Chicago da Playboy Enterprises\&. Nmap também reporta o número total de endereços IP ao final\&. A listagem de rastreio(scan) é um bom teste de sanidade para assegurar que está com a lista correta de endereços IP dos seus alvos\&. Se os anfitriões(hosts) mostrarem nomes de domínios que não reconhece, vale a pena investigar melhor para evitar o rastreio(scan) da rede da empresa errada\&. +.sp +Uma vez que a idéia é apenas mostrar uma lista dos hosts\-alvos, as opções de funcionalidade de nível mais alto tais como o rastreio(scan) de portas, detecção de SO, ou rastreio(scan) utilizando ping, não podem ser combinadas com esta opção\&. Se deseja desactivar o rastreio(scan) utilizando ping enquanto executa funções de nível elevado, leia a opção +\fB\-P0\fR\&. +.RE +.PP +\fB\-sP\fR (Rastreio(scan) usando Ping) +.RS 4 +Esta opção diz ao Nmap para +\fIsomente\fR +executar um rastreio(scan) usando o ping (descoberta de anfitriões(hosts)), e então mostrar os hosts disponíveis que responderam ao scan\&. Nenhum teste adicional (tais como o rastreio(scan) de portas e deteção de SO) é executado\&. Isto é um pouco mais intrusivo que a listagem de rastreio(scan), e pode ser usado para os mesmos propósitos\&. Permite um reconhecimento leve de uma rede\-alvo sem chamar muita atenção\&. Saber quantos hosts estão ativos é mais valioso para invasores que a lista fornecida pela listagem de rastreio(scan) com cada endereço IP e seu nome de anfitrião(host)\&. +.sp +Administradores de sistemas frequentemente acham esta opção valiosa\&. Ela pode ser facilmente utilizada para contar o número de máquinas disponíveis em uma rede ou monitorar a disponibilidade dos servidores\&. Isto é normalmente chamado de varredura com ping (ping sweep), e é mais confiável do que fazer um ping num endereço de broadcast, pois muitos anfitriões(rastreio(scan)hosts) não respondem a pesquisas com broadcast\&. +.sp +A opção +\fB\-sP\fR +envia um ICMP echo request e um pacote TCP para a porta 80 por default\&. Quando executada por um usuário sem privilégios, um pacote SYN é enviado (usando uma chamada +\fBconnect()\fR) para a porta 80 no alvo\&. Quando um usuário privilegiado tenta rastrear(scan) alvos na rede ethernet local, requisições ARP (\fB\-PR\fR) são utilizadas, a menos que +\fB\-\-send\-ip\fR +tenha sido especificado\&. A opção +\fB\-sP\fR +pode ser combinada com qualquer um dos tipos de sondagens de descobrimento (as opções +\fB\-P*\fR +, excluindo +\fB\-P0\fR) para maior flexibilidade\&. Se qualquer uma dessas opções de tipos de sondagens e número de porta for utilizada, as sondagens default (ACK e echo request) são sobrepostas\&. Quando firewalls restritivos estão posicionados entre o host de origem que executa o Nmap e a rede\-alvo, utilizar essas técnica avançadas é recomendado\&. Do contrário, hosts podem ser perdidos quando o firewall ignorar as sondagens ou as respostas delas\&. +.RE +.PP +\fB\-P0\fR (Sem ping) +.RS 4 +Esta opção salta completamente a fase de descoberta do Nmap\&. Normalmente o Nmap utiliza este estágio para determinar as máquinas activas para o rastreio(scan) mais agressivo\&. Por default, o Nmap apenas executa sondagens agressivas tais como o rastreio(scan) de portas, detecção de versões, ou detecções do SO contra afitriões(hosts) que foram verificados como activos\&. Desactivar a descoberta de anfitriões(hosts) com +\fB\-P0\fR +faz com que o Nmap teste as funções de rastreio(scan) solicitadas contra +\fItodos\fR +os endereços IP alvos especificados\&. Portanto se um espaço de endereçamento alvo do tamanho de uma classe B (/16) for especificado na linha de comando, todos os 65\&.536 endereços IP serão alvo do rastreio(scan)\&. O segundo caracter da opção +\fB\-P0\fR +é um zero e não a letra O\&. A descoberta de anfitriões(hosts) apropriada é desconsiderada como na listagem de rastreio(scan), mas ao invés de parar e mostrar a lista de alvos, o Nmap continua a executar as funções solicitadas como se cada alvo IP estivesse activo\&. +.RE +.PP +\fB\-PS [listadeportas]\fR (Ping usando TCP SYN) +.RS 4 +Esta opção envia um pacote TCP vazio com a flag SYN marcada\&. A porta de destino default é a 80 (configurada em tempo de compilação pela variável DEFAULT_TCP_PROBE_PORT no +nmap\&.h), mas uma porta alternativa pode ser especificada como um parâmetro\&. Até uma lista de portas separadas por vírgula pode ser especificada (p\&.ex\&. +\fB\-PS22,23,25,80,113,1050,35000\fR), nesse caso as sondagens serão tentadas contra cada porta em paralelo\&. +.sp +A flag SYN sugere aos sistemas remotos que está tentando estabelecer uma comunicação\&. Normalmente a porta de destino estará fechada e um pacote RST (reset) será enviado de volta\&. Se a porta estiver aberta, o alvo irá dar o segundo passo do cumprimento\-de\-três\-vias (3\-way\-handshake) do TCP respondendo com um pacote TCP SYN/ACK TCP\&. A máquina executando o Nmap então derruba a conexão recém\-criada respondendo com um RST ao invés de enviar um pacote ACK que iria completar o cumprimento\-de\-três\-vias e estabelecer uma conexão completa\&. O pacote RST é enviado pelo kernel da máquina que está executando o Nmap em resposta ao SYN/ACK inesperado, e não pelo próprio Nmap\&. +.sp +O Nmap não se importa se a porta está aberta ou fechada\&. Tanto a resposta RST ou SYN/ACK discutidas anteriormente dizem ao Nmap se o hosts está disponível e responsivo\&. +.sp +Em máquinas UNIX apenas o usuário privilegiado +root +é capaz, normalmente, de enviar e receber pacotes TCP em estado bruto(raw packets)\&. Para usuários não privilegiados um contorno é automaticamente empregado em concordância com a chamada de sistema connect() iniciada contra cada porta\-alvo\&. Isso tem o efeito de enviar um pacote SYN ao anfitrião(host) alvo em uma tentativa de estabelecer uma conexão\&. Se o connect() retornar com sucesso rápido ou com uma falha ECONNREFUSED, a pilha TCP subjacente deve ter recebido um SYN/ACK ou RST e o anfitrião(host) é marcado como disponível\&. Se a tentativa de conexão for abandonada até que um timeout ocorra, o host é marcado como indisponível\&. Esse contorno também é usado para conexões IPv6, pois o suporte a construção de pacotes IPv6 em estado bruto(raw) ainda não está disponível no Nmap\&. +.RE +.PP +\fB\-PA [listadeportas]\fR (Ping usando TCP ACK) +.RS 4 +O ping usando TCP ACK é muito similar ao recém\-discutido ping usando SYN\&. A diferença como poderia imaginar, é que a flag TCP ACK é marcada ou invés da flag SYN\&. O pacote ACK finge reconhecer dados de uma conexão TCP estabelecida, quando nenhuma conexão existe de facto\&. Então os anfitriões(hosts) remotos deveriam sempre responder com pacotes RST revelando sua existência no processo\&. +.sp +A opção +\fB\-PA\fR +utiliza a mesma porta default que a sondagem SYM (80) e pode também obter uma lista de portas destino no mesmo formato\&. Se um usuário privilegiado tenta isto, ou se um alvo IPv6 é especificado, o contorno connect() discutido anteriormente é utilizado\&. Esse contorno é imperfeito pois o connect() está realmente enviando um pacote SYN ao invés de um ACK\&. +.sp +O motivo para oferecer ambas as sondagens ping, que utilizam SYN e ACK, é maximizar as chances de passar por firewalls\&. Muitos administradores configuram routers e outros firewalls simples para bloquear a entrada de pacotes SYN excepto aqueles destinados a serviços públicos como o site web da empresa ou servidor de correio electrónico\&. Isso evita as demais conexões entradas na organização, permitindo aos usuários fazer conexões desobstruidas à Internet\&. Essa aproximação não\-orientada à conexão (non\-stateful ou stateless) consome poucos recursos no firewall/router e é amplamente suportada por filtros de hardware e software\&. O firewall de software Netfilter/iptables do Linux oferece a conveniência da opção +\fB\-\-syn\fR +para implementar essa abordagem stateless\&. Quando regras stateless do firewall como essas são implementadas, sondagens de ping usando SYN (\fB\-PS\fR) muito provavelmente serão bloqueadas quando forem enviadas à portas fechadas\&. Nesses casos, a sondagem ACK se destaca pois ela simplesmente passa por essas regras\&. +.sp +Outro tipo comum de firewall utiliza regras orientadas a conexão que descartam pacotes inesperados\&. Esta característica era encontrada inicialmente apenas em firewalls de alto\-nível, embora tenha se tornado mais comum com o passar dos anos\&. O sistema Netfilter/iptables do Linux suporta esta característica através da opção +\fB\-\-state\fR, que categoriza os pacotes baseados no estado da conexão\&. Uma sondagem SYN tem maiores chances de funcionar contra um sistema assim, pois pacotes ACK inesperados são normalmente reconhecidos como falsos e descartados\&. Uma solução para esse dilema é enviar ambas as sondagens SYN e ACK especificando +\fB\-PS\fR +e +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU [listadeportas]\fR (Ping usando UDP) +.RS 4 +Outra opção de descoberta de anfitriões(hosts) é o ping usando UDP, que envia um pacote UDP vazio (a menos que +\fB\-\-data\-length\fR +seja especificado) para as portas informadas\&. A listadeportas tem o mesmo formato que os discutidos anteriormente nas opções +\fB\-PS\fR +e +\fB\-PA\fR\&. Se nenhuma porta for especificada, o default é 31338\&. Esse default pode ser configurado em tempo de compilação alterando DEFAULT_UDP_PROBE_PORT no +nmap\&.h\&. Uma porta alta não comum é utilizada como default porque enviar para portas abertas normalmente é indesejado para este tipo particular de rastreio(scan)\&. +.sp +Ao bater contra uma porta fechada na máquina\-alvo, a sondagem UDP deve criar um pacote ICMP de porta inalcançável como resposta\&. Isso diz ao Nmap que a máquina está activa e disponível\&. Muitos outros tipos de erros ICMP, tais como anfitrião(host)/rede inalcançável ou TTL excedido são indicativos de um anfitrião(host) inactivo ou inalcançável\&. A falta de resposta também é interpretada dessa forma\&. Se uma porta aberta é alcançada, a maioria dos serviços simplesmente ignoram o pacote vazio e falham em retornar qualquer resposta\&. É por isso que a porta de sondagem default é 31338, que pouco provavelmente estará em uso\&. Uns poucos serviços, tal como o chargen, irá responder a um pacote UDP vazio, e com isso revelará ao Nmap que a máquina está disponível\&. +.sp +A principal vantagem deste tipo de scan é que ele passa por firewalls e filtros que apenas examinam o TCP\&. Por exemplo, uma vez eu tive um router broadband sem\-fios Linksys BEFW11S4\&. A interface externa desse dispositivo filtrava todas as portas TCP por default, mas as sondagens UDP ainda causavam mensagens de porta inalcançável, denunciando assim o dispositivo\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (Tipos de Ping do ICMP) +.RS 4 +Além dos tipos incomuns de descoberta de anfitriões(hosts) TCP e UDP discutidos anteriormente, o Nmap pode enviar os pacotes\-padrão que normalmente são enviados pelo popular programa ping\&. O Nmap envia um pacote ICMP do tipo 8 (echo request) ao endereço IP alvo, esperando como resposta um tipo 0 (Echo Reply) do anfitrião(host) disponível\&. Infelizmente para muitos exploradores de rede, muitos anfitriões(hosts) e firewalls actualmente bloqueiam esses pacotes, ao invés de responder como é requerido pela +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[1]\d\s+2\&. Por essa razão, rastreios(scans) puramente ICMP são raramente confiáveis o suficiente contra alvos desconhecidos na Internet\&. Mas para administradores de sistemas monitorando uma rede interna eles podem ser uma abordagem prática e eficiente\&. Utilize a opção +\fB\-PE\fR +para activar esse comportamento echo request\&. +.sp +Embora o echo request seja a pesquisa padrão de um ping ICMP, o Nmap não pára aqui\&. A padronização do ICMP (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[2]\d\s+2) também especifica timestamp request, information request, e pacotes address mask request como códigos 13, 15, e 17, respectivamente\&. Apesar do propósito ostensivo dessas pesquisas seja obter informações tais como a máscara do endereço e hora corrente, eles podem ser facilmente utilizados para descoberta de anfitriões(hosts)\&. Um sistema que responda está activo e disponível\&. O Nmap não implementa actualmente os pacotes de requisição de informações, pois eles não são amplamente suportados\&. A RFC 1122 insiste que +\(lqum anfitrião(host) NÃO DEVERIA implementar essas mensagens\(rq\&. Pesquisas de marcação de hora (Timestamp) e máscara de endereço podem ser enviadas com as opções +\fB\-PP\fR +e +\fB\-PM\fR +, respectivamente\&. Uma resposta timestamp reply (código ICMP 14) ou uma resposta address mask reply (código 18) revela que o host está disponível\&. Essas duas pesquisas podem ser valiosas quando os administradores bloqueiam pacotes echo request especificamente e esquecem que outras pesquisas ICMP podem ser usadas com o mesmo propósito\&. +.RE +.PP +\fB\-PR\fR (Ping usando ARP) +.RS 4 +Um dos cenários de uso mais comuns do Nmap é o rastreio(scan) da LAN ethernet\&. Na maioria das LANs, especialmente aquelas que utilizam a faixa de endereçamento privado ao abrigo do RFC1918, a vasta maioria dos endereços IP nuca são utilizados\&. Quando o Nmap tenta enviar um pacote IP em estado bruto(raw), tal como um ICMP echo request, o sistema operativo deve determinar o endereço físico de destino (ARP) correspondente ao IP\-alvo de forma que ele possa endereçar adequadamente o frame ethernet\&. Isso normalmente é lento e problemático, pois os sistemas operativos não foram escritos com a expectativa de que precisariam fazer milhões de requisições ARP contra anfitriões(hosts) indisponíveis em um curto período de tempo\&. +.sp +O rastreio(scan) ARP encarrega o Nmap e seus algorítmos optimizados de fazer as requisições ARP\&. E se ele conseguir uma resposta de volta, o Nmap não precisa de se preocupar com os pacotes ping baseados em IP, uma vez que ele já sabe que o anfitrião(host) está activo\&. Isso torna o rastreio(sca) ARP muito mais rápido e mais confiável que os rastreios(scans) baseados em IP\&. Portanto isso é feito por default quando se faz o rastreio(scan) de anfitriões(hosts) ethernet que o Nmap detecta estarem posicionados em uma rede ethernet local\&. Mesmo se tipos diferentes de ping (tais como +\fB\-PI\fR +ou +\fB\-PS\fR) sejam especificados, o Nmap usa o ARP em vez, para cada um dos alvos que estiverem na mesma LAN\&. Se não quiser de forma alguma fazer um ratreio(scan) ARP, especifique +\fB\-\-send\-ip\fR\&. +.RE +.PP +\fB\-n\fR (Não faça resolução DNS) +.RS 4 +Diz ao Nmap para +\fInunca\fR +fazer uma resolução DNS nos endereços IP activos que ele encontrar\&. Uma vez que o DNS é normalmente lento, isso acelera as coisas\&. +.RE +.PP +\fB\-R\fR (resolução DNS para todos os alvos) +.RS 4 +Diz ao Nmap para fazer +\fIsempre\fR +uma resolução DNS reversa nos endereços IP\-alvos\&. Normalmente isto apenas é executado quando uma máquina está activa\&. +.RE +.SH "FUNDAMENTOS DO RASTREIO(SCAN) DE PORTAS" +.PP +Embora o Nmap tenha crescido em funcionalidades ao longo dos anos, ele começou como um eficiente scanner de portas e essa permanece a sua função principal\&. O simples comando +\fBnmap \fR\fB\fIalvo\fR\fR +faz o rastreio(scan) a mais de 1660 portas TCP no anfitrião(host) +\fIalvo\fR\&. Embora muitos scanner de portas tenham tradicionalmente agrupado todas as portas nos estados aberto ou fechado, o Nmap é muito mais granular\&. Ele divide as portas em seis estados: +aberto(open), +fechado(closed),filtrado(filtered), +não\-filtrado(unfiltered), +aberto(open)|filtrado(filtered), ou +fechado(closed)|filtrado(filtered)\&. +.PP +Esses estados não são propriedades intrínsecas da porta mas descrevem como o Nmap as vê\&. Por exemplo, um rastreio(scan) do Nmap da mesma rede como alvo pode mostrar a porta 135/tcp como aberta, enquanto um rastreio(scan) ao mesmo tempo com as mesmas opções a partir da Internet poderia mostrar essa porta como +filtrada\&. +.PP +\fBOs seis estados de porta reconhecidos pelo Nmap\fR +.PP +aberto (open) +.RS 4 +Uma aplicação está activamente aceitando conexões TCP ou pacotes UDP nesta porta\&. Encontrar esse estado é frequentemente o objectivo principal de um rastreio(scan) de portas\&. Pessoas conscientes sobre a segurança sabem que cada porta aberta é um convite para um ataque\&. Invasores e profissionais de avaliação de segurança querem explorar as portas abertas, enquanto os administradores tentam fechar ou proteger com firewalls sem bloquear usuários legítimos\&. Portas abertas são também interessantes para rastreios(scans) não\-relacionados à segurança pois mostram os serviços disponíveis para utilização na rede\&. +.RE +.PP +fechado (closed) +.RS 4 +Uma porta fechada está acessível (ela recebe e responde a pacotes de sondagens do Nmap), mas não há nenhuma aplicação ouvindo nela\&. Elas podem ser úteis para mostrar que um anfitrião(host) está activo em um determinado endereço IP (descoberta de hosts, ou rastreio(scan) usando ping), e como parte de uma deteção de SO\&. Pelo facto de portas fechadas serem alcançáveis, pode valer a pena o rastreio(scan) mais tarde no caso de alguma delas abrir\&. Os administradores deveriam considerar o bloqueio dessas portas com um firewall\&. Então elas apareceriam no estado filtrado, discutido a seguir\&. +.RE +.PP +filtrado(filtered) +.RS 4 +O Nmap não consegue determinar se a porta está aberta porque uma filtragem de pacotes impede que as sondagens alcancem a porta\&. A filtragem poderia ser de um dispositivo firewall dedicado, regras de router, ou um software de firewall baseado em anfitrião(host)\&. Essas portas frustram os atacantes pois elas fornecem poucas informações\&. Às vêzes elas respondem com mensagens de erro ICMP tais como as do tipo 3 código 13 (destino inalcançável: comunicação proibida administrativamente), mas os filtros que simplesmente descartam pacotes sem responder são bem mais comuns\&. Isso força o Nmap a tentar diversas vezes só para o caso de a sondagem ter sido descartada por congestionamento da rede ao invés de filtragem\&. Isso reduz a velocidade do rastreio(scan) dramaticamente\&. +.RE +.PP +não\-filtrado(unfiltered) +.RS 4 +O estado não\-filtrado significa que uma porta está acessível, mas que o Nmap é incapaz de determinar se ela está aberta ou fechada\&. Apenas o rastreio(scan) ACK, que é usado para mapear conjuntos de regras de firewall classifica portas com este estado\&. O rastreio(scan) de portas não\-filtradas com outros tipos de scan, tal como scan Window, scan Syn, ou scan FIN, podem ajudar a responder se a porta está aberta\&. +.RE +.PP +open|filtered +.RS 4 +O Nmap coloca portas neste estado quando é incapaz de determinar se uma porta está aberta ou filtrada\&. Isso acontece para tipos de rastreio(scan) onde as portas abertas não dão nenhuma resposta\&. A falta de resposta poderia também significar que um filtro de pacotes descartou a sondagem ou qualquer resposta que ela tenha provocado\&. Portanto o não sabe com certeza se a porta está aberta ou se está sendo filtrada\&. Os rastreios(scans) UDP, IP Protocol, FIN, Null, e Xmas classificam portas desta forma\&. +.RE +.PP +closed|filtered +.RS 4 +Este estado é usado quando o Nmap é incapaz de determinar se uma porta está fechada ou filtrada\&. É apenas usado para o rastreio(scan) IPID Idle scan\&. +.RE +.SH "TÉCNICAS DE RASTREIO(SCAN) DE PORTAS" +.PP +Como um novato executando uma reparação automóvel posso perder horas tentando usar minhas ferramentas rudimentares (martelo, fita adesiva, grifo, etc\&.) nas tarefas\&. Quando eu falho miseravelmente e reboco minha lata\-velha para um mecânico de verdade ele invariavelmente pesca aqui e ali em um enorme baú de ferramentas até pegar a coisa perfeita que torna a tarefa numa brincadeira\&. A arte de rastrear(scaning) portas é similar\&. Os peritos entendem as dezenas de técnicas de rastreio(scan) e escolhem as que são apropriadas (ou uma combinação) para uma dada tarefa\&. Usuários inexperientes e script kiddies, por outro lado, tentam resolver todos os problemas com o scan SYN default\&. Uma vez que o Nmap é gratuito a única barreira para a mestria em rastreio(scaning) de portas é o conhecimento\&. Isso certamente é melhor que no mundo automóvel onde pode ser necessário uma grande habilidade para determinar que precisa de um compressor de molas e então tem que pagar milhares de euros por um\&. +.PP +A maioria dos tipos de rastreio(scan) está disponível apenas para usuários privilegiados\&. Isso acontece porque eles enviam e recebem pacotes em estado bruto(raw), o que requer acesso de root em sistemas Unix\&. Utilizar a conta de administrador no Windows é recomendado, embora o Nmap às vêzes funcione com usuários sem privilégios nessa plataforma quando o WinPcap foi carregado no SO\&. Requerer privilégio de root era uma séria limitação quando o Nmap foi lançado em 1997, pois muitos usuários apenas tinham acesso a contas de shell compartilhadas\&. Agora o mundo é diferente\&. Computadores estão mais baratos, muito mais pessoas tem acesso directo e permanente à Internet e computadores desktop Unix (incluindo Linux e MAC OS X) são comuns\&. Uma versão para o Windows do Nmap se encontra actualmente disponível permitindo que se use em muito mais computadores desktop\&. Por todas essas razões os usuários têm menos necessidade de executar o Nmap a partir de contas de shell compartilhadas e limitadas\&. Isso é muito bom pois as opções privilegiadas tornam o Nmap muito mais poderoso e flexível\&. +.PP +Embora o Nmap tente produzir resultados precisos tenha em mente que todas as deduções são baseadas em pacotes devolvidos pelas máquinas\-alvo (ou firewalls na frente delas)\&. Tais anfitriões(hosts) podem não ser confiáveis e enviar respostas com o propósito de confundir ou enganar o Nmap\&. Muito mais comum são os anfitriões(hosts) não\-de\-acordo\-com\-a\-rfc que não respondem como deveriam às sondagens do Nmap\&. As sondagens FIN, Null e Xmas são particularmente suscetíveis a esse problema\&. Tais questões são específicas de determinados tipos de scan e portanto são discutidos nas entradas individuais de cada um dos tipos\&. +.PP +Esta seção documenta as dezenas de técnicas de rastreio(scan) de portas suportadas pelo Nmap\&. Apenas um método pode ser utilizado de cada vezm excepto que um scan UDP (\fB\-sU\fR) pode ser combinado com qualquer um dos tipos de scan TCP\&. Como uma ajuda para a memória as opções dos tipos de rastreio(scan) de portas estão no formato +\fB\-s\fR\fB\fIC\fR\fR, onde +\fIC\fR +é um caracter proeminente no nome do rastreio(scan), normalmente o primeiro\&. A única excepção a essa regra é para o rastreio(scan) denominado FTP bounce (\fB\-b\fR)\&. Por default o Nmap executa um rastreio(scan) SYN, embora ele substitua por um rastreio(scan) Connect() se o usuário não tiver os privilégios adequados para enviar pacotes em estado bruto(raw) (requer acesso de root no UNIX) ou se alvos IPv6 forem especificados\&. Dos rastreios(scans) listados nesta secção os usuários não privilegiados podem apenas executar os rastreios(scans) connect() e ftp bounce\&. +.PP +\fB\-sS\fR (rastreio(scan) TCP SYN) +.RS 4 +O rastreio(scan) SYN é a opção de rastreio(scan) default e a mais popular por boas razões\&. Pode ser executada rapidamente fazendo o rastreio(scan) a milhares de portas por segundo em uma rede rápida, não bloqueada por firewalls intrusivos\&. O rastreio(scan) SYN é relativamente não\-obstrusivo e camuflado, uma vez que ele nunca completa uma conexão TCP\&. Ele também trabalha contra qualquer pilha TCP padronizada ao invés de depender de factores específicos de plataformas como os rastreios(scans) Fin/Null/Xmas, Maimon e Idle fazem\&. Ele também permite uma diferenciação limpa e confiável entre os estados +aberto (open), +fechado (closed), e +filtrado (filtered)\&. +.sp +Esta técnica é freqüentemente chamada de rastreio(scan) de porta entreaberta (half\-open scanning), porque não abre uma conexão TCP completamente\&. Você envia um pacote SYN, como se fosse abrir uma conexão real e então espera uma resposta\&. Um SYN/ACK indica que a porta está ouvindo (aberta) enquanto um RST (reset) é indicativo de uma não\-ouvinte\&. Se nenhuma resposta é recebida após diversas retransmissões a porta é marcada como filtrada\&. A porta também é marcada como filtrada se um erro ICMP de inalcançável é recebido (tipo 3, código 1,2, 3, 9, 10, ou 13)\&. +.RE +.PP +\fB\-sT\fR (rastreio(scan) TCP connect()) +.RS 4 +O rastreio(scan) TCP Connect() é o rastreio(scan) default do TCP quando o rastreio(scan) SYN não é uma opção\&. Esse é o caso quando o usuário não tem privilégios para criar pacotes em estado bruto(raw) ou rastrear redes IPv6\&. Ao invés de criar pacotes em estado bruto(raw) como a maioria dos outros tipos de rastreio(scan) fazem, o Nmap pede ao sistema operativo para estabelecer uma conexão com a máquina e porta alvos enviando uma chamada de sistema +connect()\&. Essa é a mesma chamada de alto nível que os navegadores da web, clientes P2P, e a maioria das outras aplicações para rede utilizam para estabelecer uma conexão\&. É parte do interface de programação conhecida como API de Sockets de Berkeley\&. Ao invés de ler as respostas em pacotes em estado bruto(raw) directamente dos fios, o Nmap utiliza esta API para obter informações do estado de cada tentativa de conexão\&. +.sp +Quando um rastreio(scan) SYN está disponível é normalmente a melhor escolha\&. O Nmap tem menos controle sobre a chamada de alto nível +connect() +do que sobre os pacotes em estado bruto(raw) tornando\-o menos eficiente\&. A chamada de sistema completa as conexões nas portas\-alvo abertas ao invés de executar o reset de porta entreaberta que o rastreio(scan) SYN faz\&. Isso não só leva mais tempo e requer mais pacotes para obter a mesma informação mas também torna mais provável que as máquinas\-alvo registrem a conexão\&. Um sistema IDS decente irá detectar qualquer um deles, mas a maioria das máquinas não tem esse tipo de sistema de alarme\&. Muitos serviços na maioria dos sistema Unix irão acrescentar uma nota na syslog e às vêzes uma mensagem de erro obscura, quando o Nmap se conecta e então fecha a conexão sem enviar nenhum dado\&. Serviços verdadeiramente patéticos irão travar quando isso acontecer embora isso seja incomum\&. Um administrador que vê um punhado de tentativas de conexão nos registros vindos de um único sistema deveria saber que foi rastreado(scanned) com connect\&. +.RE +.PP +\fB\-sU\fR (rastreios(scans) UDP) +.RS 4 +Embora os serviços mais populares na Internet operem sobre o protocolo TCP, os serviços +\m[blue]\fBUDP\fR\m[]\&\s-2\u[3]\d\s+2 +são amplamente difundidos\&. O DNS, o SNMP e o DHCP (registrados nas portas 53, 161/162, e 67/68) são três dos mais comuns\&. Pelo facto do rastreio(scan) UDP ser normalmente mais lento e mais difícil que o TCP alguns auditores de segurança ignoram essas portas\&. Isso é um erro pois serviços UDP passíveis de exploração são bastante comuns e invasores certamente não ignoram o protocolo inteiro\&. Felizmente o Nmap pode ajudar a inventariar as portas UDP\&. +.sp +O rastreio(scan) UDP é activado com a opção +\fB\-sU\fR\&. Ele pode ser combinado com um tipo de rastreio(scan) TCP como o rastreio(scan) SYN (\fB\-sS\fR) para averiguar ambos protocolos na mesma execução\&. +.sp +O SYN UDP funciona enviando um cabeçalho UDP vazio (sem dados) para cada porta pretendida\&. Se um erro ICMP de porta inalcançável (tipo 3, código 3) é retornado a porta está +fechada\&. Outros erros do tipo inalcançável (tipo 3, códigos 1, 2, 9, 10, ou 13) marcam a porta como +filtrada\&. Ocasionalmente um serviço irá responder com um pacote UDP provando que está +aberta\&. Se nenhuma resposa é recebida após as retransmissões a porta é classificada como +aberta|filtrada\&. Isso significa que a porta poderia estar aberta ou talvez que filtros de pacotes estejam bloqueando a comunicação\&. Rastreios(scans) de versões (\fB\-sV\fR) podem ser utilizados para ajudar a diferenciar as portas verdadeiramente abertas das que estão filtradas\&. +.sp +Um grande desafio com o rastreio(scan) UDP é fazê\-lo rapidamente\&. Portas abertas e filtradas raramente enviam alguma resposta, deixando o Nmap esgotar o tempo (time out) e então efectuar retransmissões para o caso de a sondagem ou a resposta ter sido perdida\&. Portas fechadas são normalmente um problema ainda maior\&. Elas costumam enviar de volta um erro ICMP de porta inalcançável\&. Mas, ao contrário dos pacotes RST enviados pelas portas TCP fechadas em resposta a um rastreio(scan) SYN ou Connect, muitos anfitriões(hosts) limitam a taxa de mensagens ICMP de porta inalcançável por default\&. O Linux e o Solaris são particularmente rigorosos quanto a isso\&. Por exemplo, o kernel 2\&.4\&.20 do Linux limita a quantidade de mensagens de destino inalcançável a até uma por segundo (no +net/ipv4/icmp\&.c)\&. +.sp +O Nmap detecta a limitação de taxa e diminui o ritmo de acordo para evitar inundar a rede com pacotes inúteis que a máquina\-alvo irá descartar\&. Infelizmente, um limite como o do Linux de um pacote por segundo faz com que um rastreio(scan) de 65\&.536 portas leve mais de 18 horas\&. Idéias para acelerar o rastreio(scan) UDP incluem rastrear(scan) mais anfitriões(hosts) em paralelo, fazer um rastreio(scan) rápido apenas das portas mais comuns primeiro, rastrear(scan) por detrás de um firewall e utilizar +\fB\-\-host\-timeout\fR +para saltar os anfitriões(hosts) lentos\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (rastreios(scans) TCP Null, FIN, e Xmas) +.RS 4 +Estes três tipos de rastreio(scan) (até mais são possíveis com a opção +\fB\-\-scanflags\fR +descrita na próxima secção) exploram uma brecha subtil na +\m[blue]\fBRFC do TCP\fR\m[]\&\s-2\u[4]\d\s+2 +para diferenciarem entre portas +abertas +e +fechadas\&. A página 65 diz que +\(lqse a porta [destino] estiver FECHADA \&.\&.\&.\&. um segmento de entrada que não contenha um RST irá causar o envio de um RST como resposta\&.\(rq +Então a página seguinte discute os pacotes enviados a portas abertas sem os bits SYN, RST ou ACK marcados, afirmando que: +\(lqé pouco provável que chegue aqui, mas se chegar, descarte o segmento e volte\&.\(rq +.sp +Quando se rastreia(scan) sistemas padronizados com o texto desta RFC, qualquer pacote que não contenha os bits SYN, RST ou ACK irá resultar em um RST como resposta se a porta estiver fechada e nenhuma resposta se a porta estiver aberta\&. Contanto que nenhum desses três bits esteja incluídos qualquer combinação dos outros três (FIN, PSH e URG) é válida\&. O Nmap explora isso com três tipos de rastreio(scan): +.PP +rastreio(scan) Null (\fB\-sN\fR) +.RS 4 +Não marca nenhum bit (o cabeçalho de flag do tcp é 0) +.RE +.PP +rastreio(scan) FIN (\fB\-sF\fR) +.RS 4 +Marca apenas o bit FIN do TCP\&. +.RE +.PP +rastreio(scan) Xmas(\fB\-sX\fR) +.RS 4 +Marca as flags FIN, PSH e URG, iluminando o pacote como uma árvore de Natal\&. +.RE +.sp +Estes três tipos de rastreio(scan) são exatamente os mesmos em termos de comportamento exceto pelas flags TCP marcadas no pacotes de sondagem\&. Se um pacote RST for recebido a porta é considerada +fechada +e nenhuma resposta significa que está +aberta|filtrada\&. A porta é marcada como +filtrada +se um erro ICMP do tipo inalcançável (tipo 3, código 1, 2, 3, 9, 10, ou 13) for recebido\&. +.sp +A vantagem principal destes tipos de rastreio(scan) é que eles podem bisbilhotar através de alguns firewalls não\-orientados à conexão e de routers que filtram pacotes\&. Outra vantagem é que esses tipos de rastreio(scan) são um pouco mais camuflados do que o rastreio(scan) SYN\&. Mas não conte com isso \-\- a maioria dos produtos IDS modernos podem ser configurados para detectá\-los\&. O maior problema é que nem todos os sistemas seguem a RFC 793 ao pé\-da\-letra\&. Diversos sistemas enviam respostas RST para as sondagens independentemente do facto da porta estar aberta ou não\&. Isso faz com que todas as portas sejam classificadas como +fechadas\&. A maioria dos sistemas operativos que fazem isso são Microsoft Windows, muitos dispositivos Cisco, BSDI e o IBM OS/400\&. Esse rastreio(scan) funciona realmente contra a maioria dos sistemas baseados em Unix\&. Outro ponto negativo desses rastreios(scans) é que eles não conseguem diferenciar portas +abertas +de alguns tipos de portas +filtradas +deixando com a resposta +abera|filtrada\&. +.RE +.PP +\fB\-sA\fR (rastreio(scan) TCP ACK) +.RS 4 +Este rastreio(scan) é diferente dos outros discutidos até agora pelo facto de que ele nunca determina se uma porta está +aberta +(ou mesmo +aberta|filtrada)\&. Ele é utilizado para mapear conjuntos de regras do firewall determinando se eles são orientados à conexão ou não e quais portas estão filtradas\&. +.sp +O pacote de sondagem do rastreio(scan) ACK tem apenas a flag ACK marcada (a menos que use +\fB\-\-scanflags\fR)\&. Quando se rastreia(scan) sistemas não\-filtrados as portas +abertas +e +fechadas +irão devolver um pacote RST\&. O Nmap então coloca nelas o rótulo +não\-filtradas (unfiltered) +significando que elas estão alcançáveis pelo pacote ACK, mas se elas estão +abertas +ou +fechadas +é indeterminado\&. Portas que não respondem ou que devolvem certas mensagens de erro ICMP (tipo 3, código 1, 2, 3, 9, 10, ou 13), são rotuladas como +filtradas\&. +.RE +.PP +\fB\-sW\fR (rastreio(scan) da Janela TCP) +.RS 4 +Rastreio(scan) da Janela é exactamente o mesmo que o rastreio(scan) ACK excepto que ele explora um detalhe da implementação de certos sistemas de forma a diferenciar as portas abertas das fechadas ao invés de sempre mostrar +não\-filtrada +quando um RST é devolvido\&. Ele faz isso examinando o campo Janela TCP (TCP Window) do pacote RST devolvido\&. Em alguns sistemas as portas abertas usam um valor positivo de tamanho de janela (mesmo para pacotes RST) enquanto que as portas fechadas têm um valor igual a zero\&. Então, ao invés de mostrar sempre uma porta como +não\-filtrada +quando se recebe um RST de volta, o rastreio(scan) da Janela mostra a porta como +aberta +ou +fechada +se o valor da Janela TCP no reset for positivo ou zero, respectivamente\&. +.sp +Este rastreio(scan) se baseia em um detalhe de implementação de uma minoria de sistemas na Internet, portanto não se pode confiar sempre nele\&. Sistemas que não suportam isso irão normalmente devolver todas as portas como +fechadas\&. É claro que é possível que a máquina realmente não tenha nenhuma porta aberta\&. Se a maioria das portas rastreadas(scaned) estiver +fechada +mas uns poucos números de portas comuns (tais como 22, 25, 53) estão +filtrados, o sistema muito provavelmente está vulnerável\&. De vez em quando os sistemas irão mostrar exatamente o comportamento oposto\&. Se o seu rastreio(scan) mostrar 1000 portas abertas e 3 fechadas ou filtradas, então essas três podem muito bem ser as verdadeiramente abertas\&. +.RE +.PP +\fB\-sM\fR (rastreio(scan) TCP Maimon) +.RS 4 +O rastreio(scan) Maimon recebeu o nome de seu descobridor, Uriel Maimon\&. Ele descreveu a técnica na Phrack Magazine, edição 49 (Novembro de 1996)\&. O Nmap, que incluiu essa técnica, foi lançado duas edições mais tarde\&. A técnica é exatamente a mesma que os rastreios(scans) Null, FIN e Xmas, exceto que a sondagem é FIN/ACK\&. De acordo com a RFC 793 (TCP) um pacote RST deveria ser gerado em resposta a tal sondagem se a porta estiver aberta ou fechada\&. Entretanto, Uriel notou que muitos sistemas derivados do BSD simplesmente descartavam o pacote se a porta estivesse aberta\&. +.RE +.PP +\fB\-\-scanflags\fR (rastreio(scan) TCP Customizado) +.RS 4 +Usuários verdadeiramente avançados do Nmap não precisam se limitar aos tipos de rastreios(scans) enlatados oferecidos\&. A opção +\fB\-\-scanflags\fR +permite que desenhe seu próprio rastreio(scan) permitindo a especificação de flags TCP arbitrárias\&. Deixe sua imaginação correr solta enquanto dribla sistemas de detecção de intrusão cujos fabricantes apenas olharam rapidamente a página man do Nmap adicionando regras específicas! +.sp +O argumento do +\fB\-\-scanflags\fR +pode ser um valor numérico da marca (flag) como o 9 (PSH e FIN), mas usar nomes simbólicos é mais fácil\&. Apenas esprema alguma combinação de +URG, +ACK, +PSH, +RST, +SYN, e +FIN\&. Por exemplo, +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +marca tudo, embora não seja muito útil para rastreio(scan)\&. A ordem em que essas marcas são especificadas é irrelevante\&. +.sp +Além de especificar as marcas desejadas pode especificar um tipo de rastreio(scan) TCP (como o +\fB\-sA\fR +ou +\fB\-sF\fR)\&. Esse tipo\-base diz ao Nmap como interpretar as respostas\&. Por exemplo, um rastreio(scan) SYN considera nenhuma\-resposta como uma indicação de porta +filtrada +enquanto que um rastreio(scan) FIN trata a mesma como +aberta|filtrada\&. O Nmap irá se comportar da mesma forma que o tipo de rastreio(scan)\-base escolhido, excepto que ele irá usar as marcas TCP que especificar\&. Se não escolher um tipo\-base, o rastreio(scan) SYN é utilizado\&. +.RE +.PP +\fB\-sI <hostzumbi[:portadesondagem]>\fR (rastreio(scan) Idle) +.RS 4 +Este método avançado de rastreio(scan) permite um rastreio(scan) TCP realmente cego das portas do alvo (significando que nenhum pacote é enviado para o alvo do seu endereço IP real)\&. Ao invés disso um ataque canal\-lateral (side\-channel) explora a previsível geração de sequência de ID, consequência da fragmentação do IP no anfitrião(host) zumbi, para juntar informações sobre as portas abertas no alvo\&. Sistemas IDS irão mostrar o rastreio(scan) como se viessem da máquina zumbi que especificou (que deve estar activa e obedecer a alguns critérios)\&. Este tipo fascinante de rastreio(scan) é complexo demais para se descrever completamente aqui neste guia de referência, então eu escrevi e postei um trabalho informal com detalhes completos em +\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&. +.sp +Além de ser extraordinariamente camuflado (devido à sua natureza cega), este tipo de rastreio(scan) permite mapear relações de confiança baseadas em IP entre máquinas\&. A listagem de portas mostra as portas abertas +\fIda perspectiva do anfitrião(host) zumbi\&.\fR +Portanto pode tentar rastrear(scan) um alvo usando vários zumbis que acha que podem ser confiáveis (via regras de router/filtro de pacotes)\&. +.sp +Você pode adicionar os dois\-pontos seguindo do número da porta ao nome do anfitrião(host) zumbi, se quiser sondar uma porta em particular no zumbi verificando as mudanças de IPID\&. Do contrário o Nmap irá utilizar a porta que ele normalmente usa por default para pings tcp (80)\&. +.RE +.PP +\fB\-sO\fR (Rastreios(Scans) do protocolo IP) +.RS 4 +Scans do Protocolo IP permitem que determine quais protocolos IP (TCP, ICMP, IGMP, etc\&.) são suportados pelas máquina\-alvo\&. Isso não é tecnicamente um rastreio(scan) de portas, pois ele varia os números do protocolo IP ao invés dos números de portas TCP e UDP\&. Ainda assim, ele utiliza a opção +\fB\-p\fR +para seleccionar os números de protocolos a rastrear(scan), mostra os resultados dentro do formato normal da tabela de portas e até usa o mesmo mecanismo de rastreio(scan) dos métodos de descoberta de portas\&. Portanto ele é parecido o suficiente com um rastreio(scan) de portas e por isso pertence a este lugar\&. +.sp +Além de ser útil de certa forma, o rastreio(scan) de protocolo mostra o poder do software de código aberto\&. Embora a idéia fundamental seja bastante simples, eu não tinha pensado em adicioná\-la e nem havia recebido nenhuma solicitação para essa funcionalidade\&. Então, no verão de 2000, Gerhard Rieger concebeu a idéia, escreveu uma excelente alteração (patch) implementando\-a e enviou\-a para a lista de discussão nmap\-hackers\&. Eu incorporei a alteração na árvore do Nmap e lancei uma nova versão no dia seguinte\&. Poucos produtos de software comercial tem usuários entusiasmados o suficiente para desenhar e contribuir com melhorias! +.sp +O rastreio(scan) de protocolo funciona de uma forma similar a um rastreio(scan) UDP\&. Ao invés de ficar repetindo alternando o campo de número de porta de um pacote UDP, ele envia cabeçalhos de pacote IP e faz a repetição alternando o campo de protocolo IP de 8 bits\&. Os cabeçalhos normalmente estão vazios, sem conter dados, nem mesmo o cabeçalho apropriado do suposto protocolo\&. As três excepções são o TCP, o UDP e o ICMP\&. Um cabeçalho de protocolo apropriado para estes é incluído, uma vez que alguns sistemas não os enviarão caso não tenham e porque o Nmap tem as funções para criá\-los ao invés de observar as mensagens de erro ICMP de porta inalcançável, o rastreio(scan) de protocolo fica de olho nas mensagens ICMP de +\fIprotocolo\fR +inalcançável\&. Se o Nmap recebe qualquer resposta de qualquer protocolo do anfitrião(host)\-alvo, o Nmap marca esse protocolo como +aberto\&. Um erro ICMP de protocolo não\-alcançável (tipo 3, código 2) faz com que o protocolo seja marcado como +fechado\&. Outros erros ICMP do tipo inalcançável (tipo 3, código 1, 3, 9, 10, ou 13) fazem com que o protocolo seja marcado como +filtrado +(embora eles provem, ao mesmo tempo, que o ICMP está +aberto)\&. Se nenhuma resposta for recebida após as retransmissões, o protocolo é marcado como +aberto|filtrado\&. +.RE +.PP +\fB\-b <anfitrião(host) para relay de ftp>\fR (Rastreio(Scan) de FTP bounce) +.RS 4 +Uma característica interessante do protocolo FTP (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[5]\d\s+2) é o suporte a conexões denominadas proxy ftp\&. Isso permite que um usuário conecte\-se a um servidor FTP e então solicite que arquivos sejam enviados a um terceiro servidor\&. Tal característica é sujeita a abusos em diversos níveis, por isso a maioria dos servidores parou de suportá\-la\&. Um dos abusos permitidos é fazer com que o servidor FTP efectue o rastreio(scan) das portas de outros anfitriões(hosts)\&. Simplesmente solicite que o servidor FTP envie um arquivo para cada porta interessante do anfitrião(host)\-alvo\&. A mensagem de erro irá descrever se a porta está aberta ou não\&. Esta é uma boa forma de passar por cima de firewalls porque os servidores FTP de empresas normalmente são posicionados onde tem mais acesso a outros anfitriões(hosts) internos que os velhos servidores da Internet teriam\&. O Nmap suporta o rastreio(scan) de ftp bounce com a opção +\fB\-b\fR\&. Ela recebe um argumento no formato +\fInomedousuário\fR:\fIsenha\fR@\fIservidor\fR:\fIporta\fR\&. +\fIServidor\fR +é o nome ou endereço IP de um servidor FTP vulnerável\&. Assim como em uma URL normal, pode omitir +\fInomedousuário\fR:\fIsenha\fR, neste caso as credenciais de login anónimo (usuário: +anonymous +senha:\-wwwuser@) serão usados\&. O número da porta (e os dois\-pontos) podem ser omitidos, e então a porta FTP default (21) no +\fIservidor\fR +será utilizada\&. +.sp +Esta vulnerabilidade espalhou\-se em 1997 quando o Nmap foi lançado mas foi corrigida amplamente\&. Servidores vulneráveis ainda estão por aí, então pode valer a pena tentar se tudo o mais falhar\&. Se passar por cima de um firewall é o seu objetivo, faça o rastreio(scan) da rede\-alvo procurando por uma porta 21 aberta (ou mesmo por qualquer serviço FTP se rastrear(scan) todas as portas com a detecção de versão), então tente um rastreio(scan) bounce usando\-as\&. O Nmap irá dizer se o anfitrião(host) é vulnerável ou não\&. Se estiver apenas tentando encobrir suas pegadas, não precisa (e, na verdade, não deveria) limitar\-se a anfitriões(hosts) na rede\-alvo\&. Antes de sair rastreando endereços aleatórios na Internet procurando por servidores FTP, considere que os administradores de sistemas podem não apreciar o seu abuso nos servidores deles\&. +.RE +.SH "ESPECIFICAÇÃO DE PORTAS E ORDEM DE SCAN" +.PP +Somado a todos os métodos de rastreio(scan) discutidos anteriormente, o Nmap oferece opções para especificar quais portas são rastreadas(scaned) e se a ordem de rastreio(scan) é aleatória ou sequencial\&. Por default, o Nmap rastreia(scan) todas as portas até, e incluindo, 1024, bem como portas com numeração alta listadas no arquivo +nmap\-services +para o(s) protocolo(s) rastreados(scaned)\&. +.PP +\fB\-p <faixa de portas>\fR (Rastreia apenas as portas especificadas) +.RS 4 +Esta opção especifica quais as portas que deseja rastrear(scan) e prevalece sobre o default\&. Números de portas individuais são OK, bem como as faixas separadas por um hífen (p\&.ex\&.: 1\-1023)\&. Os valores iniciais e/ou finais da faixa podem ser omitidos, o que faz com que o Nmap use 1 e 65535 respectivamente\&. Portanto pode especificar +\fB\-p\-\fR +para rastrear(scan) as portas de 1 até 65535\&. Escanear a porta zero é permitido se especificar explicitamente\&. Para o rastreio(scan) do protocolo IP (\fB\-sO\fR), esta opção especifica os números dos protocolos que deseja rastrear(scan) (0\-255)\&. +.sp +Quando rastrear(scan) ambas as portas TCP e UDP, pode especificar um protocolo em particular precedendo os números de portas com +T: +ou +U:\&. O qualificador dura até que especifique um novo qualificador\&. Por exemplo, o argumento +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +faria o rastreio(scan) das portas UDP 53, 111 e 137, bem como as portas TCP listadas\&. Note que para rastrear(scan) ambas as portas UDP & TCP, tem que especificar +\fB\-sU\fR +e pelo menos um tipo de rastreio(scan) TCP (tal como +\fB\-sS\fR, +\fB\-sF\fR +ou +\fB\-sT\fR)\&. Se nenhum qualificador de protocolo for informado, os números de portas serão acrescentados à todas as listas de protocolos\&. +.RE +.PP +\fB\-F\fR (rastreio(scan) Rápido (portas limitadas)) +.RS 4 +Especifica que deseja apenas rastrear(scan) as portas listadas no arquivo +nmap\-services +que vem com o nmap (ou o arquivo de protocolos para o +\fB\-sO\fR)\&. Isto é muito mais rápido do que rastrear(scan) todas as 65535 portas de um anfitrião(host)\&. Pelo facto desta lista conter tantas portas TCP (mais de 1200), a diferença de velocidade de um rastreio(scan) TCP default (cerca de 1650 portas) não é dramática\&. A diferença pode ser enorme se especificar seu próprio minúsculo arquivo +nmap\-services +usando a opção +\fB\-\-datadir\fR\&. +.RE +.PP +\fB\-r\fR (Não usa as portas de forma aleatória) +.RS 4 +Por default o Nmap usa a ordem das portas a serem rastreadas de forma aleatória (excepto aquelas portas normalmente acessíveis que são movidas próximas ao início por motivos de eficiência)\&. Essa técnica de busca aleatória normalmente é desejável mas pode especificar +\fB\-r\fR +para um rastreio(scan) de portas sequencial\&. +.RE +.SH "DETECÇÃO DE SERVIÇO E VERSÃO" +.PP +Aponte o Nmap para uma máquina remota e ele poderá lhe dizer que as portas 25/tcp, 80/tcp e 53/udp estão abertas\&. Utilizar o banco de dados +nmap\-services +com cerca de 2\&.200 serviços bastante conhecidos do Nmap iria relatar que aquelas portas provavelmente correspondem a um servidor de correio eletrônico (SMTP), a um servidor de páginas web (HTTP) e a um servidor de nomes (DNS) respectivamente\&. Essa pesquisa normalmente é precisa \-\- a grande maioria de daemons escutando na porta TCP 25 é de facto de servidores de correio eletrónico\&. Entretanto não deveria apostar a sua segurança nesta informação! As pessoas podem e executam serviços em portas estranhas\&. +.PP +Mesmo que o Nmap esteja certo e o servidor hipotético acima esteja executando os serviços SMTP, HTTP e DNS, isso não é informação o bastante\&. Quando fizer uma avaliação de vulnerabilidades (ou mesmo um simples inventário da rede) de sua empresa ou clientes, realmente deseja saber qual o programa\-servidor de correio eletrónico ou de nomes e as versões que estão rodando\&. Ter um número de versão exacto ajuda substancialmente na determinação de quais explorações (exploits) o servidor está vulnerável\&. A detecção de versão ajuda a obter esta informação\&. +.PP +Depois que as portas TCP e/ou UDP forem descobertas usando qualquer um dos outros métodos de rastreio(scan), a detecção de versão interroga essas portas para determinar mais informações sobre o que realmente sendo executado nessas portas\&. O banco de dados +nmap\-service\-probes +do Nmap contém sondagens para pesquisar diversos serviços e expressões de acerto (match expressions) para reconhecer e destrinchar as respostas\&. O Nmap tenta determinar os protocolos de serviços (p\&.ex\&.: ftp, ssh, telnet, http), o nome da aplicação (p\&.ex\&.: ISC Bind, Apache httpd, Solaris telnetd), o número da versão, o nome do anfitrião(host), tipo de dispositivo (p\&.ex\&.: impressora, router), a família do SO (p\&.ex\&.: Windows, Linux) e às vezes detalhes diversos do tipo, se um servidor X está aberto para conexões, a versão do protocolo SSH ou o nome do usuário do KaZaA\&. É claro que a maioria dos serviços não fornece todas essas informações\&. Se o Nmap foi compilado com o suporte ao OpenSSL ele irá se conectar aos servidores SSL para deduzir qual o serviço que está escutando por trás da camada criptografada\&. Quando os serviços RPC são descobertos, o "amolador" de RPC (RPC grinder) do Nmap (\fB\-sR\fR) é automaticamente utilizado para determinar o nome do programa RPC e o número da versão\&. Algumas portas UDP são deixadas no estado +aberta|filtrada +depois que rastreio(scan) de porta UDP não consegue determinar se a porta está aberta ou filtrada\&. A detecção de versão irá tentar provocar uma resposta dessas portas (do mesmo jeito que faz com as portas abertas) e alterar o estado para aberta se conseguir\&. Portas TCP do tipo +aberta|filtrada +são tratadas da mesma forma\&. Note que a opção +\fB\-A\fR +do Nmap habilita a detecção de versão entre outras coisas\&. Um trabalho documentando o funcionamento, uso e customização da detecção de versão está disponível em +\m[blue]\fB\%https://nmap.org/versionscan.html\fR\m[]\&. +.PP +Quando o Nmap recebe uma resposta de um serviço mas não consegue encontrá\-la em seu banco de dados, ele mostra uma identificação (fingerprint) especial e uma URL para que envie informações se souber com certeza o que está rodando nessa porta\&. Por favor considere dispor de alguns minutos para mandar essa informação de forma que sua descoberta possa beneficiar a todos\&. Graças a esses envios o Nmap tem cerca de 3\&.000 padrões de acerto para mais de 350 protocolos, tais como o smtp, ftp, http, etc\&. +.PP +A detecção de versão é habilitada e controlada com as seguintes opções: +.PP +\fB\-sV\fR (detecção de versão) +.RS 4 +Habilita a detecção de versão, conforme discutido acima\&. Alternativamente pode usar a opção +\fB\-A\fR +para habilitar tanto a detecção de SO como a detecção de versão\&. +.RE +.PP +\fB\-\-allports\fR (Não exclui nenhuma porta da detecção de versão) +.RS 4 +Por default a detecção de versão do Nmap salta a porta TCP 9100 por causa de algumas impressoras que imprimem qualquer coisa que seja enviada para essa porta, levando a dezenas de páginas com requisições HTTP, requisições de sessões SSL binárias, etc\&. Esse comportamento pode ser alterado modificando\-se ou removendo a directiva +Exclude +no +nmap\-service\-probes +ou pode especificar +\fB\-\-allports\fR +para rastrear(scan) todas as portas independente de qualquer directiva +Exclude\&. +.RE +.PP +\fB\-\-version\-intensity <intensidade>\fR (Estabelece a intensidade do rastreio(scan) de versão) +.RS 4 +Quando está executando um rastreio(scan) de versão (\fB\-sV\fR) o nmap envia uma série de sondagens, cada qual com um valor atribuído de raridade, entre 1 e 9\&. As sondagens com números baixos são efectivas contra uma ampla variedade de serviços comuns, enquanto as com números altos são raramente úteis\&. O nível de intensidade especifica quais sondagens devem ser utilizadas\&. Quando mais alto o número, maiores as chances de o serviço ser corretamente identificado\&. Entretanto rastreios(scans) de alta intensidade levam mais tempo\&. A intensidade deve estar entre 0 e 9\&. O default é 7\&. Quando uma sondagem é registrada na porta\-alvo através da directiva +nmap\-service\-probes +ports, essa sondagem é tentada independentemente do nível de intensidade\&. Isso assegura que as sondagens DNS sempre serão tentadas contra qualquer porta 53 aberta e a sondagem SSL será realizada contra a 443, etc\&. +.RE +.PP +\fB\-\-version\-light\fR (Habilita o modo leve (light)) +.RS 4 +Esse é um apelido conveniente para +\fB\-\-version\-intensity 2\fR\&. Esse modo leve torna o rastreio(scan) de versão muito mais rápido, mas é ligeiramente menos provável que identifique os serviços\&. +.RE +.PP +\fB\-\-version\-all\fR (Tenta simplesmente todas as sondagens) +.RS 4 +Um apelido para +\fB\-\-version\-intensity 9\fR, assegurando que todas as sondagens sejam tentadas contra cada porta\&. +.RE +.PP +\fB\-\-version\-trace\fR (Monitora as atividades do rastreio(scan) de versão) +.RS 4 +Isto faz com que o Nmap mostre informações de depuração extensivas sobre o que o rastreio(scan) de versão está fazendo\&. É um sub\-conjunto do que obteria com +\fB\-\-packet\-trace\fR\&. +.RE +.PP +\fB\-sR\fR (Scan RPC) +.RS 4 +Este método trabalha em conjunto com os vários métodos de rastreio(scan) de portas do Nmap\&. Ele pega todas as portas TCP/UDP descobertas no estado aberta e inunda\-as com comandos NULL do programa SunRPC em uma tentativa de determinar se elas são portas RPC e se forem, quais programas e números de versão elas mostram\&. Dessa forma pode obter efectivamente a mesma informação que o +\fBrpcinfo \-p\fR +mesmo se o portmapper do alvo estiver atrás de um firewall (ou protegido por TCP wrappers)\&. Chamarizes não funcionam ainda com o rastreio(scan) RPC\&. Isso é habilitado automaticamente como parte do rastreio(scan) de versão (\fB\-sV\fR) se o solicitar\&. Como a detecção de versão inclui isso e é muito mais abrangente, o +\fB\-sR\fR +raramente é necessário\&. +.RE +.SH "DETECÇÃO DE SO" +.PP +Uma das características mais conhecidas do Nmap é a detecção remota de SO utilizando a identificação da pilha (stack fingerprinting) do TCP/IP\&. O Nmap envia uma série de pacotes TCP e UDP ao anfitrião(host) remoto e examina praticamente todos os bits das respostas\&. Após executar dezenas de testes como a amostragem TCP ISN, suporte e ordenamento das opções do TCP, amostragem IPID e a observação do tamanho inicial da janela, o Nmap compara os resultados com o banco de dados +nmap\-os\-fingerprints +com mais de 1500 identificações de SO conhecidas e mostra os detalhes do SO se houver uma correspondência\&. Cada identificação inclui uma descrição textual livre do SO e uma classificação que fornece o nome do fabricante (p\&.ex\&.: Sun), SO base (p\&.ex\&.: Solaris), geração do SO (p\&.ex\&.: 10) e tipo de dispositivo (genérico, router, switch, consola de jogo, etc\&.)\&. +.PP +Se o Nmap não conseguir identificar o SO da máquina e as condições forem favoráveis (p\&.ex\&.: pelo menos uma porta aberta e uma porta fechada foram encontradas), o Nmap irá fornecer uma URL onde poderá enviar a identificação se souber (com certeza) o SO em execução na máquina\&. Fazendo isso, contribui para o pool de sistemas operacionais conhecidos pelo Nmap e, com isso, ele será mais preciso para todos\&. +.PP +A detecção de SO habilita diversos outros testes que usam as informações coletadas durante o processo\&. Um deles é a medição de uptime, que utiliza a opção timestamp do TCP (RFC 1323) para supor quando uma máquina foi reiniciada pela última vez\&. Isso apenas é mostrado para as máquinas que fornecem essa informação\&. Outro é a Classificação de Previsibilidade da Seqüencia do TCP\&. Ele mede aproximadamente o grau de dificuldade de se estabelecer uma conexão TCP forjada contra um anfitrião(host) remoto\&. É útil para se explorar relações de confiança baseadas no IP de origem (rlogin, filtros de firewall, etc\&.) ou para ocultar a origem de um ataque\&. Esse tipo de enganação (spoofing) raramente é executada hoje em dia, mas muitas máquinas ainda estão vulneráveis a ele\&. O número de dificuldade real é baseado em amostragens estatísticas e pode variar\&. Normalmente é melhor usar a classificação em inglês, do tipo +\(lqworthy challenge\(rq +(um desafio que vale a pena) ou +\(lqtrivial joke\(rq +(uma piada, muito fácil)\&. Isso só é mostrado na saída normal do modo verbose (\fB\-v\fR)\&. Quando o modo verbose é habilitado juntamente com o +\fB\-O\fR, a Geração de Seqüencia IPID também é mostrada\&. A maioria das máquinas é classificada como +\(lqincremental\(rq +, o que significa que elas incrementam o campo ID no cabeçalho IP para cada pacote que envia\&. Isso torna\-as vulnerável a diversos ataques avançados de levantamento e forjamento de informações\&. +.PP +Um trabalho documentando o funcionamento, utilização e customização da datecção de versão está disponível em mais de uma dezena de línguas em +\m[blue]\fB\%https://nmap.org/osdetect/\fR\m[]\&. +.PP +A deteção de SO é habilitada e controlada com as seguintes opções: +.PP +\fB\-O\fR (Habilita a detecção de SO) +.RS 4 +Habilita a deteção de SO como discutido acima\&. Alternativamente pode usar +\fB\-A\fR +para habilitar tanto a detecção de SO quanto a detecção de versão\&. +.RE +.PP +\fB\-\-osscan\-limit\fR (Limitar a detecção de SO a alvos promissores) +.RS 4 +A detecção de SO é bem mais eficiente se ao menos uma porta TCP aberta e uma fechada for encontrada\&. Escolha esta opção e o Nmap não irá nem tentar a detecção de SO contra anfitriões(hosts) que não correspondam a este critério\&. Isso pode economizar um tempo considerável, particularmente em rastreios(scans) +\fB\-P0\fR +contra muitos anfitriões(hosts)\&. Isso só importa quando a detecção de SO é solicitada através de +\fB\-O\fR +ou +\fB\-A\fR\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Resultados de tentativas de detecção de SO) +.RS 4 +Quano o Nmap não é capaz de detectar uma correspondência exacta de SO, às vêzes ele oferece possibilidades aproximada\&. A correspondência tem que ser muito próxima para o Nmap fazer isso por default\&. Qualquer uma dessas opções (equivalentes) tornam as tentativas do Nmap mais agressivas\&. +.RE +.SH "TEMPORIZAÇÃO (TIMING) E DESEMPENHO" +.PP +Uma das minhas mais altas prioridades no desenvolvimento do Nmap tem sido o desempenho\&. Um rastreio(scan) default (\fBnmap \fR\fB\fIhostname\fR\fR) de um anfitrião(host) em minha rede local leva apenas um quinto de segundo\&. Isso mal dá tempo de piscar o olho, mas esse tempo conforme está rastreando dezenas ou centenas de milhares de anfitriões(hosts)\&. Além disso, certos tipos de rastreio(scan) como o rastreio(scan) UDP ou a detecção de versão, aumentam o tempo de rastreio(scan) substancialmente\&. Da mesma forma algumas configurações de firewall fazem o mesmo, particularmente quando limitam a taxa de resposta\&. Embora o Nmap se utilize de paralelismo e muitos outros algoritmos avançados para acelerar esses rastreios(scans) o usuário tem o controle final sobre como o Nmap executa\&. Usuários avançados elaboram comandos do Nmap cuidadosamente para obter apenas as informações que importam, sempre se preocupando com as restrições de tempo\&. +.PP +Técnicas para melhorar os tempos de rastreio(scan) incluem omitir testes não\-críticos e atualizar até a versão mais recente do Nmap (melhorias de desempenho são feitas freqüentemente)\&. Otimizar os parâmetros de tempo também podem fazer uma grande diferença\&. Essas opções estão listadas abaixo\&. +.PP +\fB\-\-min\-hostgroup <tamanho>\fR; \fB\-\-max\-hostgroup <tamanho>\fR (Ajuste dos tamanhos dos grupos de rastreio(scan) paralelos) +.RS 4 +O Nmap tem a habilidade de fazer um rastreio(scan) de portas ou de versões em múltiplos anfitriões(hosts) em paralelo\&. O Nmap faz isso dividindo a faixa de endereços IP\-alvo em grupos e então rastreando um grupo de cada vez\&. No geral grupos maiores são mais eficientes\&. A contrapartida é que os resultados dos anfitriões(hosts) não pode ser fornecido até que o grupo inteiro tenha terminado\&. Portanto se o Nmap começou com um tamanho de grupo igual a 50, o usuário não receberia nenhum relatório (exceto pelas atualizações mostradas no modo verbose) até que os primeiros 50 anfitriões(hosts) tivessem completado\&. +.sp +Por default, o Nmap assume um compromisso para resolver esse conflito\&. Ele começa com um tamanho de grupo pequeno, igual a cinco, para que os primeiros resultados venham rápido e então aumenta o tamanho até que chegue em 1024\&. O número default exacto depende das opções fornecidas\&. Por questões de eficiência o Nmap usa tamanhos de grupo maiores para o UDP ou para rastreios(scans) TCP com poucas portas\&. +.sp +Quando o tamanho de grupo máximo é especificado com +\fB\-\-max\-hostgroup\fR, o Nmap nunca irá exceder esse tamanho\&. Especifique um tamanho mínimo com +\fB\-\-min\-hostgroup\fR +e o Nmap irá tentar manter o tamanho dos grupos acima desse nível\&. O Nmap pode ter que usar tamanhos menores do que especificou, se não houverem anfitriões(hosts)\-alvo suficientes restando em uma dada interface para completar o mínimo especificado\&. Ambos podem ser configurados para manter o tamanho do grupo dentro de uma faixa específica, embora isso raramente seja desejado\&. +.sp +O uso primário destas opções é especificar um tamanho de grupo mínimo grande de forma que o rastreio(scan) completo seja executado mais rapidamente\&. Uma escolha comum é 256 para rastrear(scan) uma rede em blocos de tamanho Classe C\&. Para um rastreio(scan) com muitas portas exceder esse número não irá ajudar muito\&. Para rastreios(scans) com poucos números de portas um tamanho de grupo de anfitriões(hosts) de 2048 ou mais pode ser útil\&. +.RE +.PP +\fB\-\-min\-parallelism <numprobes>\fR; \fB\-\-max\-parallelism <numprobes>\fR (Ajuste da paralelização das sondagens) +.RS 4 +Estas opções controlam o número total de sondagens que podem estar pendentes para um grupo de anfitriões(hosts)\&. Elas são usadas para o rastreio(scan) de portas e para a descoberta de anfitriões(hosts)\&. Por default o Nmap calcula um paralelismo ideal e constantemente actualizado baseado no desempenho da rede\&. Se os pacotes estiverem sendo descartados o Nmap reduz o ritmo e liberta menos sondagens pendentes\&. O número de sondagens ideal aumenta vagarosamente conforme a rede se mostre mais confiável\&. Estas opções estabelecem limites mínimo e máximo nessa variável\&. Por default o paralelismo ideal pode cair até 1 se a rede se mostrar não\-confiável e subir até diversas centenas em condições perfeitas\&. +.sp +O uso mais comum é estabelecer +\fB\-\-min\-parallelism\fR +em um número maior que um para melhorar a velocidade dos rastreios(scans) de anfitriões(hosts) ou redes com desempenho ruim\&. Esta é uma opção arriscada para se ficar brincando pois configurar um valor alto demais pode afetar a precisão\&. Configurar isso também reduz a habilidade do Nmap de controlar o paralelismo dinamicamente baseado nas condições da rede\&. Um valor igual a dez pode ser razoável, embora eu só ajuste esse valor como última alternativa\&. +.sp +A opção +\fB\-\-max\-parallelism\fR +às vêzes é configurada para evitar que o Nmap envie aos anfitriões(hosts) mais do que uma sondagem de cada vez\&. Isso pode ser útil em conjunto com +\fB\-\-scan\-delay\fR +(discutido mais tarde), embora esta última normalmente sirva bem ao propósito por si só\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout <milissegundos>\fR, \fB\-\-max\-rtt\-timeout <milissegundos>\fR, \fB\-\-initial\-rtt\-timeout <milissegundos>\fR (Ajuste de tempo de expiração (timeouts) das sondagens) +.RS 4 +O Nmap mantém um valor de tempo de expiração (timeout) de execução para determinar quanto tempo ele deve esperar por uma resposta de uma sondagem antes de desistir ou retransmitir essa sondagem\&. Isso é calculado com base nos tempos de resposta de sondagens anteriores\&. Se a lentidão da rede se mostra significativa e variável esse tempo de expiração pode subir para vários segundos\&. Ele também começa com um nível conservador (alto) e pode ficar desse jeito por um tempo enquanto o Nmap rastreia(scan) anfitriões(hosts) não\-responsivos\&. +.sp +Estas opções recebem um valor em milissegundos\&. Especificar um +\fB\-\-max\-rtt\-timeout\fR +e +\fB\-\-initial\-rtt\-timeout\fR +mais baixos que o default pode reduzir o tempo de rastreio(scan) significativamente\&. Isso é particularmente verdade para rastreios(scans) sem ping (\fB\-P0\fR) e para aqueles contra redes bastante filtradas\&. Mas não se torne muito agressivo\&. O rastreio(scan) pode acabar levando mais tempo se especificar um valor tão baixo que muitas sondagens irão expirar o tempo e serem retransmitidas enquanto a resposta ainda está em trânsito\&. +.sp +Se todos os anfitriões(hosts) estão em uma rede local, 100 milissegundos é um valor de +\fB\-\-max\-rtt\-timeout\fR +razoavelmente agressivo\&. Se houver roteamento envolvido faça um ping de um anfitrião(host) da rede primeiro com o utilitário ICMP ping ou com um formatador de pacotes customizados como o hping2, que pode passar por um firewall mais facilmente\&. Descubra o tempo máximo de round trip em dez pacotes mais ou menos\&. Coloque o dobro desse valor em +\fB\-\-initial\-rtt\-timeout\fR +e o triplo ou quádruplo para o +\fB\-\-max\-rtt\-timeout\fR\&. Normalmente eu não configuro o rtt máximo abaixo de 100ms, não importa quais os tempos de ping\&. Eu também não excedo o valor 1000ms\&. +.sp +\fB\-\-min\-rtt\-timeout\fR +é uma opção raramente utilizada que poderia ser útil quando uma rede é tão não\-confiável que mesmo o default do Nmap é muito agressivo\&. Considerando que o Nmap apenas reduz o tempo de expiração para um valor mínimo quando a rede parece ser confiável, esta necessidade não é comum e deveria ser reportada à lista de discussão nmap\-dev como um bug\&. +.RE +.PP +\fB\-\-host\-timeout <milissegundos>\fR (Desiste em anfitriões(hosts)\-alvo lentos) +.RS 4 +Alguns anfitriões(hosts) simplesmente levam tempo +\fIdemais\fR +para serem rastreados\&. Isso pode ser causado por um hardware ou software de rede com fraco desempenho ou pouco confiável, limitação na taxa dos pacotes ou por um firewall restritivo\&. Os poucos anfitriões(hosts) mais lentos de todos os anfitriões(hosts) escaneados podem acabar sendo responsáveis pela maior parte do tempo total gasto com o rastreio(scan)\&. Às vêzes é melhor cortar fora o prejuízo e saltar esses anfitriões(hosts) logo no início\&. Isso pode ser feito especificando +\fB\-\-host\-timeout\fR +com o número de milissegundos que tolera esperar\&. Eu normalmente especifico 1800000 para ter certeza de que o Nmap não irá gastar mais do que meia hora em um único anfitrião(host)\&. Note que o Nmap pode estar escaneando outros anfitriões(hosts) ao mesmo tempo em que essa meia hora desse único anfitrião(host) está correndo, então não é uma perda de tempo total\&. Um anfitriões(hosts) que expira o tempo é saltado\&. Nenhum resultado de tabela de portas, detecção de SO ou detecção de versão é mostrado para esse anfitrião(host)\&. +.RE +.PP +\fB\-\-scan\-delay <milissegundos>\fR; \fB\-\-max\-scan\-delay <milissegundos>\fR (Ajusta o atraso entre sondagens) +.RS 4 +Esta opção faz com que o Nmap aguarde um determinado número de milissegundos entre cada sondagem enviada a um dado anfitrião(host)\&. Isto é particularmente útil no caso de limitação de taxas de transferência\&. Máquinas Solaris (entre muitas outras) irão normalmente responder a pacotes de sondagens de rastreios(scans) UDP com apenas uma mensagem ICMP por segundo\&. Qualquer número maior que isso, enviado pelo Nmap, será um desperdício\&. Um +\fB\-\-scan\-delay\fR +de 1000 irá manter uma taxa de transferência baixa\&. O Nmap tenta detectar a limitação de taxa e ajusta o atraso no rastreio(scan) de acordo, mas não dói especificar explicitamente se já sabe qual a taxa que funciona melhor\&. +.sp +Outro uso do +\fB\-\-scan\-delay\fR +é para evitar os sistemas de prevenção e deteção de intrusão (IDS/IPS) baseados em limites\&. +.RE +.PP +\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (Estabelece um padrão de temporização) +.RS 4 +Embora os controles de temporização de ajuste fino discutidos nas seções anteriores sejam poderosos e efectivos, algumas pessoas consideram\-nos confusos\&. Escolher os valores apropriados pode às vêzes levar mais tempo do que o próprio rastreio(scan) que está tentando optimizar\&. Por isso o Nmap oferece uma aproximação mais simples com seis padrões de temporização\&. Você pode especificá\-los com a opção +\fB\-T\fR +e os números (0 \- 5) ou os nomes\&. Os nomes de padrões são paranóico (paranoid, 0), furtivo (sneaky, 1), educado (polite, 2), normal (3), agressivo (agressive, 4) e insano (insane, 5)\&. Os dois primeiros são para evitar um IDS\&. O modo educado (ou polido), diminui o ritmo de rastreio(scan) para usar menos banda e recursos da máquina alvo\&. O modo normal é o default e, portanto, +\fB\-T3\fR +não faz nada\&. O modo agressivo acelera os rastreios(scans) assumindo que está em uma rede razoavelmente rápida e confiável\&. Finalmente, o modo insano assume que está em uma rede extraordinariamente rápida ou está disposto a sacrificar alguma precisão pela velocidade\&. +.sp +Estes padrões permitem que o usuário especifique o quão agressivo desejam ser, ao mesmo tempo que deixam o Nmap escolher os valores de temporização exactos\&. Os padrões também fazem ajustes pequenos na velocidade onde ainda não existem opções para controle de ajuste fino\&. Por exemplo, +\fB\-T4\fR +proibe que o atraso dinâmico de rastreio(scan) exceda 10ms para portas TCP e +\fB\-T5\fR +corta esse valor para 5 milissegundos\&. Padrões podem ser utilizados em conjunto com controles de ajuste fino desde que o padrão seja especificado primeiramente\&. Do contrário os valores default para os padrões irão se sobrepor aos valores que especificar\&. Eu recomendo usar +\fB\-T4\fR +quando rastrear(scan) redes razoavelmente modernas e confiáveis\&. Mantenha essa opção (no começo da linha de comando) mesmo que adicione controles de ajuste fino, de forma que possa se beneficiar com as pequenas otimizações extras que ela habilita\&. +.sp +Se tiver uma conexão ethernet ou de banda\-larga decente, eu recomendaria sempre utilizar +\fB\-T4\fR\&. Algumas pessoas adoram o +\fB\-T5\fR +embora seja agressivo demais para o meu gosto\&. As pessoas às vêzes especificam +\fB\-T2\fR +porque acham que diminui a probabilidade de travar os anfitriões(hosts) ou porque elas consideram\-se educadas em geral\&. Normalmente elas não percebem o quão lento o +\fB\-T Polite\fR +realmente é\&. Esses rastreios(scans) podem levar dez vêzes mais tempo que um rastreio(scan) default\&. Travamento de máquinas e problemas com a banda são raros com as opções de temporização default (\fB\-T3\fR) e portanto, eu normalmente as recomendo para escaneadores precavidos\&. Omitir a detecção de versão é bem mais eficaz do que ficar brincando com os valores de temporização para reduzir esses problemas\&. +.sp +Embora o +\fB\-T0\fR +e o +\fB\-T1\fR +possam ser usados para evitar alertas no IDS, eles irão leva muito mais tempo para rastrear(scan) milhares de máquinas ou portas\&. Para um rastreio(scan) tão amplo prefira estabelecer os valores exatos de temporização que precisa ao invés de depender dos valores "engessados" de +\fB\-T0\fR +e +\fB\-T1\fR\&. +.sp +Os principais efeitos de +\fBT0\fR +é serializar o rastreio(scan) de forma que apenas uma porta é rastreada de cada vez e então aguardar cinco minutos entre o envio de cada sondagem\&. +\fBT1\fR +e +\fBT2\fR +são similares mas aguardam apenas 15 segundos e 0,4 segundos, respectivamente, entre as sondagens\&. +\fBT3\fR +é o comportamento default do Nmap, que inclui o paralelismo\&. +\fBT4\fR +faz o mesmo que +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500\fR +e estabelece o atraso máximo de rastreio(scan) TCP em 10 milissegundos\&. +\fBT5\fR +faz o mesmo que +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-host\-timeout 900000\fR +e estabelece o atraso máximo de rastreio(scan) TCP em 5ms\&. +.RE +.SH "EVITANDO E ENGANANDO O FIREWALL/IDS" +.PP +Muitos pioneiros da Internet vislumbraram uma rede mundial aberta com um espaço de endereçamento IP universal que permitisse conexões virtuais entre quaisquer dois nós\&. Isso permite que os anfitriões(hosts) actuem como verdadeiros semelhantes, servindo e obtendo informações uns dos outros\&. As pessoas poderiam aceder a seus computadores domésticos do trabalho, mudando os ajustes do controle de climatização ou abrindo as portas para convidados\&. Essa visão de conectividade universal foi sufocada pela falta de espaço de endereçamento e preocupações com a segurança\&. No início dos anos 1990 as empresas começaram a instalar firewalls para o propósito claro de reduzir a conectividade\&. Rede enormes foram isoladas da Internet\-sem\-fronteiras por proxies de aplicativos, tradução de endereçamento de rede (network address translation) e filtros de pacotes\&. O fluxo irrestrito de informações deu a vez à regulamentação acirrada de canais de comunicação autorizados e ao conteúdo que neles trafegam\&. +.PP +As obstruções de rede como o firewall podem tornar o mapeamente de uma rede extremamente difícil\&. E isso não vai se tornar mais fácil, pois sufocar as sondagens casuais é freqüentemente o objetivo principal de se instalar esses dispositivos\&. Apesar disso o Nmap oferece muitas ferramentas para ajudar a entender essas redes complexas e para verificar que os filtros estão funcionando como esperado\&. Ele até suporta mecanismos para passar por cima de defesas mal implementadas\&. Um dos melhores métodos para se entender a postura de segurança de uma rede é tentar derrubá\-la\&. Pense com a mente de uma pessoa que quer atacá\-lo e aplique técnicas desta seção contra a sua rede\&. Lance um rastreio(scan) FTP bounce, um rastreio(scan) idle, um ataque de fragmentação ou tente "tunelar" (criar um túnel) através de um de seus próprios proxies\&. +.PP +Além de restringir a atividade de rede as empresas estão monitorando o tráfego cada vez mais com sistemas de detecção de intrusão (IDS)\&. Todos os principais IDS vêm com regras designadas para detectar rastreios(scans) feitos com o Nmap porque os rastreios(scans) são, às vêzes, precursores de ataques\&. Muitos desses produtos foram recentemente metamorfoseados em sistemas de +\fIprevenção\fR +de intrusão (IPS) que bloqueiam o tráfego considerado malicioso de forma activa\&. Infelizmente para administradores de rede e vendedores de IDS, detectar confiavelmente as más intenções através da análise de dados de pacotes é um problema difícil\&. Atacantes com paciência, habilidade e a ajuda de certas opções do Nmap podem normalmente passar por um IDS sem serem detectados\&. Enquanto isso, os administradores devem lidar com um alto número de resultados do tipo falso\-positivo onde actividades inocentes são diagnosticadas erradamente e recebem alertas ou são bloqueadas\&. +.PP +De vez em quando as pessoas sugerem que o Nmap não deveria oferecer opções que permitam evitar as regras de firewalls ou passar desapercebidos por IDSs\&. Elas argumentam que essas características são tão sujeitas à má\-utilização por atacantes quanto são utilizadas por administradores para aumentar a segurança\&. O problema com esta lógica é que esses métodos ainda assim seriam utilizados pelos atacantes que encontrariam outras ferramentas ou então acrescentariam essa funcionalidade no Nmap\&. Enquanto isso os administradores achariam muito mais difícil executar suas tarefas\&. Instalar apenas servidores FTP modernos e corrigidos é uma defesa muito melhor do que tentar evitar a distribuição de ferramentas que implementem o ataque FTP bounce\&. +.PP +Não existe uma carta mágica (ou opção do Nmap) para detectar e subverter firewalls e sistemas IDS\&. É necessário habilidade e experiência\&. Um tutorial está além do objectivo deste guia de referência que apenas lista as opções relevantes e descreve suas funções\&. +.PP +\fB\-f\fR (fragmenta os pacotes); \fB\-\-mtu\fR (usando a MTU especificada) +.RS 4 +A opção +\fB\-f\fR +faz com que o rastreio(scan) solicitado (incluindo rastreios(scans) usando ping) utilize pequenos pacotes IP fragmentados\&. A idéia é dividir o cabeçalho TCP em diversos pacotes para tornar mais difícil para os filtros de pacotes, os sistemas de detecção de intrusão e outros aborrecimentos, detectar o que está fazendo\&. Tenha cuidado com isto! Alguns programas tem problemas para lidar com estes pequenos pacotes\&. O sniffer da velha\-guarda chamado Sniffit sofria uma falha de segmentação assim que recebia o primeiro fragmento\&. Especifique esta opção uma vez e o Nmap dividirá os pacotes em 8 bytes ou menos após o cabeçalho IP\&. Portanto, um cabeçalho TCP de 20 bytes seria dividido em 3 pacotes\&. Dois com oito bytes do cabeçalho TCP e um com os quatro restantes\&. É claro que cada fragmento também tem um cabeçalho IP\&. Especifique +\fB\-f\fR +novamente para usar 16 bytes por fragmento (reduzindo o número de fragmentos)\&. Ou então, pode especificar o seu próprio tamanho de quebra com a opção +\fB\-\-mtu\fR\&. Não especifique também o +\fB\-f\fR +se usar o +\fB\-\-mtu\fR\&. A quebra deve ser um múltiplo de 8\&. Embora os pacotes fragmentados não passem por filtros de pacotes e firewalls que enfilerem todos os fragmentos IP, tal como a opção CONFIG_IP_ALWAYS_DEFRAG do kernel do Linux faz, algumas redes não aguentam o impacto no desempenho que isso causa deixando a opção desabilitada\&. Outros não conseguem habilitar isso porque os fragmentos podem seguir por rotas diferentes na rede\&. Alguns sistemas de origem desfragmentam pacotes de saída no kernel\&. O Linux e o módulo de reastreamento de conexão do iptables é um exemplo desse tipo\&. Faça um rastreio(scan) enquanto executa um sniffer como o Ethereal para ter a certeza de que pacotes enviados estão fragmentados\&. Se o SO do seu anfitrião(host) estiver causando problemas tente a opção +\fB\-\-send\-eth\fR +para passar por cima da camada IP e enviar frames ethernet em estado bruto(raw)\&. +.RE +.PP +\fB\-D <chamariz1 [,chamariz2][,ME],\&.\&.\&.>\fR (Disfarça um rastreio(scan) usando chamarizes) +.RS 4 +Faz com que um rastreio(scan) com chamarizes seja executado, o que parece ao anfitrião(host) remoto que, o(s) anfitrião(host)(s) que especificou como chamarizes também estejam rastreando a rede\-alvo\&. Com isso, o IDS poderá reportar 5 a 10 rastreios(scans) de portas de endereços IP únicos, mas não saberá qual IP estava realmente efectuado o rastreio(scan) e qual era um chamariz inocente\&. Embora isso possa ser desvendado através de rastreamento de caminho de router, descarte de respostas (response\-dropping) e outros mecanismos activos, normalmente é uma técnica eficaz para esconder o seu endereço IP\&. +.sp +Separe cada anfitrião(host)\-chamariz com vírgulas e pode opcionalmente usar +ME +como um dos chamarizes para representar a posição do seu endereço IP real\&. Se colocar +ME +na 6a\&. posição ou acima, alguns detectores de rastreio(scan) de portas comuns (como o excelente scanlogd da Solar Designer) pouco provavelmente irão mostrar o seu endereço IP\&. Se não utilizar o +ME +o nmap irá colocá\-lo em uma posição aleatória\&. +.sp +Observe que os anfitriões(hosts) que utilizar como chamarizes devem estar activos ou poderá acidentamente inundar com SYN os seus alvos\&. Também será bastante fácil determinar qual é o anfitrião(host) que está a efectuar o rastreio(scan) se houver apenas um anfitrião(host) realmente activo na rede\&. Você pode preferir usar endereços IP ao invés de nomes (de forma que as redes chamarizes não vejam em seus logs dos servidores de nomes)\&. +.sp +Chamarizes são utilizados tanto no rastreio(scan) com ping inicial (usando ICMP, SYN, ACK ou qualquer outro) como também durante a fase real de rastreio(scan) de portas\&. Chamarizes também são usados durante a detecção de SO remoto (\fB\-O\fR)\&. Chamarizes não funcionam com a detecção de versão ou com o rastreio(scan) TCP connect()\&. +.sp +Vale a pena observar que usar chamarizes demais pode deixar seu rastreio(scan) lento e potencialmente até torná\-lo menos preciso\&. Outra coisa, alguns provedores ISP irão filtrar os seus pacotes disfarçados mas muitos não restringem pacotes IP disfarçados\&. +.RE +.PP +\fB\-S <Endereço_IP>\fR (Disfarça o endereço de origem) +.RS 4 +Em algumas circunstâncias o Nmap pode não conseguir determinar o seu endereço de origem (o Nmap irá dizer se for esse o caso)\&. Nesta situação use o +\fB\-S\fR +com o endereço IP da interface que deseja utilizar para enviar os pacotes\&. +.sp +Outro uso possível para esta flag é para disfarçar o rastreio(scan) e fazer com que os alvos achem que +\fIalguma outra pessoa\fR +está fazendo o rastreio(scan)\&. Imagine uma empresa que está constantemente sofrendo rastreios(scans) de portas de um concorrente! A opção +\fB\-e\fR +normalmente seria requerida para este tipo de uso e +\fB\-P0\fR +seria recomendável\&. +.RE +.PP +\fB\-e <interface>\fR (Usa a interface especificada) +.RS 4 +Diz ao Nmap qual interface deve ser utilizada para enviar e receber pacotes\&. O Nmap deveria ser capaz de detectar isto automaticamente mas ele informará se não conseguir\&. +.RE +.PP +\fB\-\-source\-port <númerodaporta>;\fR \fB\-g <númerodaporta>\fR (Disfarça o número de porta de origem) +.RS 4 +Um erro de configuração surpreendentemente comum é confiar no tráfego com base apenas no número da porta de origem\&. É fácil entender como isso acontece\&. Um administrador configura um firewall novinho em folha só para ser inundado com queixas de usuários ingratos cujas aplicações param de funcionar\&. Em particular, o DNS pode parar de funcionar porque as respostas DNS UDP de servidores externos não conseguem mais entrar na rede\&. O FTP é outro exemplo comum\&. Em tranferências FTP activas o servidor remoto tenta estabelecer uma conexão de volta com o cliente para poder transferir o arquivo solicitado\&. +.sp +Soluções seguras para esses problemas existem frequentemente na forma de proxies no nível da aplicação ou módulos de firewall para análise de protocolo\&. Infelizmente também há soluções mais fáceis e inseguras\&. Observando que as respostas DNS chegam pela porta 53 e o FTP activo pela porta 20 muitos administradores caem na armadilha de apenas permitir tráfego vindo dessas portas\&. Eles normalmente assumem que nenhum atacante irá notar e explorar essas brechas no firewall\&. Em outros casos os administradores consideram isso uma medida provisória de curto prazo até que eles possam implementar uma solução mais segura\&. Normalmente ele esquecem\-se de fazer as actualizações de segurança\&. +.sp +Administradores de rede sobrecarregados não são os únicos a caírem nessa armadilha\&. Diversos produtos foram empacotados com essas regras inseguras\&. Mesmo a Microsoft é culpada\&. Os filtros IPsec que vieram com o Windows 2000 e com o Windows XP contém uma regra implícita que permite todo o tráfego TCP ou UDP da porta 88 (Kerberos)\&. Em outro caso bastante conhecido, versões do firewall pessoal Zone Alarm, até a versão 2\&.1\&.25, permitiam qualquer pacote UDP entrante com a porta de origem 53 (DNS) ou 67 (DHCP)\&. +.sp +O Nmap oferece as opções +\fB\-g\fR +e +\fB\-\-source\-port\fR +(elas são equivalentes) para explorar essas fraquezas\&. Apenas forneça um número de porta e o Nmap irá enviar pacotes dessa porta onde for possível\&. O Nmap utiliza números de porta diferentes para que certos testes de detecção de SO funcionem direito e as requisições DNS ignoram a flag +\fB\-\-source\-port\fR +porque o Nmap confia nas bibliotecas de sistema para lidar com isso\&. A maioria dos rastreios(scans) TCP, incluindo o rastreio(scan) SYN, suportam a opção completamente assim como o rastreio(scan) UDP\&. +.RE +.PP +\fB\-\-data\-length <número>\fR (Acrescenta dados aleatórios nos pacotes enviados) +.RS 4 +Normalmente o Nmap envia pacotes minimalistas contendo apenas o cabeçalho\&. Dessa forma os pacotes TCP têm normalmente 40 bytes e os echo requests ICMP tem só 28\&. Esta opção faz com que o Nmap acrescente o número informado de bytes aleatórios na maioria dos pacotes que envia\&. Os pacotes de detecção de SO (\fB\-O\fR) não são afectados mas a maioria dos pacotes de ping e rastreio(scan) de portas são\&. Isso atrasa as coisas mas pode tornar um rastreio(scan) ligeiramente menos chamativo\&. +.RE +.PP +\fB\-\-ttl <valor>\fR (Establece o valor do campo time\-to\-live) +.RS 4 +Estabelece que o campo tempo\-de\-vida (time\-to\-live) dos pacotes enviados terá o valor informado\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Torna aleatória a ordem dos anfitriões(hosts)\-alvo) +.RS 4 +Informa ao Nmap que ele deve embaralhar cada grupo de, no máximo, 8096 anfitriões(hosts) antes de efectuar o rastreio(scan)\&. Isso torna os rastreios(scans) menos óbvios a vários sistemas de monitoramento de rede, especialmente quando combina isso com as opções de temporização lentas\&. Se deseja que fazer isso em grupos maiores aumente o PING_GROUP_SZ no +nmap\&.h +e recompile\&. Uma solução alternativa é gerar uma lista de endereços IP\-alvos com um rastreio(scan) de lista (\fB\-sL \-n \-oN \fR\fB\fInomedoarquivo\fR\fR), embaralhar a lista com um script Perl e então fornecer a lista completa para o Nmap com +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac <endereço mac, prefixo, ou nome do fabricante>\fR (Disfarça o endereço MAC) +.RS 4 +Solicita ao Nmap que utilize o endereço MAC informado para todos os frames ethernet em estado bruto (raw) que ele enviar\&. Esta opção implica em +\fB\-\-send\-eth\fR +para assegurar que o Nmap realmente envie pacotes no nível ethernet\&. O MAC fornecido pode assumir diversos formatos\&. Se for apenas a string +\(lq0\(rq +o Nmap irá escolher um MAC completamente aleatório para a sessão\&. Se a string informada for um número par de dígitos hexa (com os pares opcionalmente separados por dois pontos) o Nmap irá usa\-la como o MAC\&. Se menos do que 12 dígitos hexa forem informados o Nmap preenche o restante dos 6 bytes com valores aleatórios\&. Se o argumento não for um 0 ou uma string hexa o Nmap irá procurar no +nmap\-mac\-prefixes +para encontrar o nome de um fabricante contendo a string informada (não é sensível a maiúsculas ou minúsculas)\&. Se encontrar, o Nmap usa o OUI (prefixo de 3 bytes) do fabricante e preenche os 3 bytes restantes aleatoriamente\&. Exemplos de argumentos +\fB\-\-spoof\-mac\fR +válidos são +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2 +e +Cisco\&. +.RE +.SH "SAÍDA (OUTPUT)" +.PP +Qualquer ferramenta de segurança só é útil se a saída que ela gera também o for\&. Testes e algorítmos complexos são de pouco valor se não forem apresentados de uma forma organizada e compreensível\&. Dado o número de formas que o Nmap é utilizado pelas pessoas e por outros softwares, nenhum formato irá agradar a todos\&. Então o Nmap oferece diversos formatos incluindo o modo interativo para humanos lerem diretamente e o XML para fácil interpretação por um software\&. +.PP +Além de oferecer diversos formatos de saída, o Nmap fornece opções para controlar a verbosidade da saída assim como as mensagens de depuração\&. Os tipos de saída podem ser enviados para a saída padrão (standard output) ou para arquivos, o qual o Nmap pode acrescentar ou então sobrescrever\&. Arquivos de saída também podem ser utilizados para se retomar rastreios(scans) abortados\&. +.PP +O Nmap torna a saída disponível em cinco formatos diferentes\&. O default é chamado de +saída interativa (interactive output) +e é enviada para a saída padrão (stdout)\&. Há também a +saída normal (normal output) +que é similar à +interativa +excepto pelo facto de mostrar menos informações e alertas sobre a execução uma vez que se espera que seja feita uma análise somente após o rastreio(scan) completar, ao invés de interativamente\&. +.PP +A saída XML é um dos tipos de saída mais importantes pois permite a conversão para HTML, é facilmente analisada por programas como a interface gráfica do Nmap ou pode ser importada em banco de dados\&. +.PP +Os dois tipos restantes de saída são a simples +saída para o grep (grepable output) +que inclui a maioria das informações de um anfitrião(host)\-alvo em uma única linha e a +s4íd4 sCRiPt KiDDi3 (sCRiPt KiDDi3 0utPUt) +para usuários que se consideram 1r4d0z (|<\-r4d)\&. +.PP +Embora a saída interativa seja a default e não tenha associada nenhuma opção de linha de comando, as outras quatro opções de formato utilizam a mesma sintaxe\&. Elas recebem um argumento que é o nome do arquivo onde os resultados devem ser armazenados\&. Formatos múltiplos podem ser especificados mas cada formato só pode ser especificado uma vez\&. Por exemplo, pode querer armazenar a saída normal para seu uso enquanto grava a saída XML do mesmo rastreio(scan) para análise utilizando programas\&. Você pode fazer isso com as opções +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Embora este capítulo use nomes simples como +myscan\&.xml +por uma questão de brevidade, nomes mais descritivos normalmente são recomendados\&. Os nomes escolhidos são uma questão de preferência pessoal, embora eu use nomes longos que incorporam da data do rastreio(scan) e uma palavra ou duas que descrevam o rastreio(scan), colocados em um diretório com o nome da empresa que eu estou rastreando\&. +.PP +Mesmo que essas opções gravem os resultados em arquivos, o Nmap ainda assim mostra a saída interativa na stdout como de costume\&. Por exemplo, o comando +\fBnmap \-oX myscan\&.xml target\fR +grava em XML no +myscan\&.xml +e enche a saída padrão com os mesmos resultados interativos que teria mostrado se a opção +\fB\-oX\fR +não tivesse sido especificada\&. Você pode mudar isso passando um caracter hífen como argumento de um dos tipos de formato\&. Isso faz com que o Nmap desactive a saída interativa e apenas grave os resultados no formato que especificou para a saída padrão\&. Dessa forma, o comando +\fBnmap \-oX \- target\fR +irá enviar apenas a saída XML para a stdout\&. Erros sérios ainda podem ser mostrados na saída padrão de erros, stderr\&. +.PP +Ao contrário de alguns argumentos do Nmap o espaço em branco entre a flag da opção (como a +\fB\-oX\fR) e o nome do arquivo ou hífen é obrigatório\&. Se omitir as flags e informar argumentos como +\fB\-oG\-\fR +ou +\fB\-oXscan\&.xml\fR, uma característica de compatibilidade retroactiva do Nmap irá causar a criação de arquivos de saída do tipo +\fInormal format\fR +chamados +G\- +e +Xscan\&.xml +respectivamente\&. +.PP +O Nmap também oferece opções para controlar a verbosidade do rastreio(scan) e para acrescentar informações nos arquivos de saída ao invés de sobrepor\&. Todas essas opções estão descritas abaixo\&. +.PP +\fBFormatos de Saída do Nmap\fR +.PP +\fB\-oN <especificaçãodearquivo>\fR (Saída normal) +.RS 4 +Solicita que a +saída normal (normal output) +seja direcionada para o arquivo informado\&. Conforme discutido acima, é um pouco diferente da +saída interativa (interactive output)\&. +.RE +.PP +\fB\-oX <especificaçãodearquivo>\fR (Saída em XML) +.RS 4 +Solicita que a +saída em XML (XML output) +seja direcionada para o arquivo informado\&. O Nmap inclui uma definição do tipo de documento (document type definition, DTD) que permite que os analisadores (parsers) XML validem a saida em XML do Nmap\&. Embora seja primeiramente voltada para ser usada por programas também pode ajudar os humanos a interpretar a saída em XML do Nmap\&. A DTD define os elementos válidos do formato e geralmente enumera os atributos e valores que eles podem receber\&. A última versão está sempre disponível em +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]\&. +.sp +O XML oferece um formato estável que é facilmente interpretado por software\&. Interpretadores (parsers) XML gratuitos estão disponível para as principais linguagens de computador, incluindo C/C++, Perl, Python e Java\&. As pessoas até já escreveram extensões para a maioria dessas linguagens para manipular a saída e a execução especificamente do Nmap\&. Exemplos são o +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[6]\d\s+2 +e o +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[7]\d\s+2 +em Perl CPAN\&. Em quase todos os casos em que uma aplicação não\-trivial faz interface com o Nmap, o XML é o formato preferido\&. +.sp +A saída XML faz referência a uma folha de estilo que pode ser usada para formatar os resultados em HTML\&. A forma mais fácil de se utilizar isso é simplesmente carregar a saída XML em um navegador web como o Firefox ou o IE\&. Por default, isso só irá funcionar na máquina onde rodou o Nmap (ou em uma máquina similarmente configurada) devido ao caminho (path) do sistema de arquivos (filesystem) gravado de forma inalterável do +nmap\&.xsl\&. Veja a opção +\fB\-\-stylesheet\fR +para ver uma forma de criar um arquivo XML portável que possa ser interpretado como um HTML em qualquer máquina conectada à web\&. +.RE +.PP +\fB\-oS <especificaçãodearquivo>\fR (S4íd4 ScRipT KIdd|3) +.RS 4 +A saída script kiddie é como a saída interativa, com a diferença de ser pós\-processada para atender melhor ao "hacker de elite" (\*(Aql33t HaXXorZ\*(Aq) que antigamente rejeitava o Nmap devido ao uso consistente de maiúsculas e minúsculas e a grafia correta\&. Pessoas sem senso de humor devem observar que esta opção serve para se fazer graça dos script kiddies antes de me lixar por estar, supostamente, +\(lqajudando\-os\(rq\&. +.RE +.PP +\fB\-oG <especificaçãodearquivo>\fR (Saída para o grep) +.RS 4 +Este formato de saída é mencionado por último porque está deprecado\&. O formato de saída XML é muito mais poderoso e é bastante adequado para usuário avançados\&. O XML é um padrão para o qual existem dezenas de excelentes interpretadores (parsers) disponíveis, enquanto que a saída para o grep é um quebra\-galho feito por mim\&. O XML é estensível para suportar novas características do Nmap conforme elas forem lançadas, por outro lado, sempre tenho que omitir essas novas características da saída para o grep por falta de onde colocá\-las\&. +.sp +Apesar disso a saída para o grep é bastante popular\&. É um formato simples que lista cada anfitrião(host) em uma linha e pode ser pesquisado de forma trivial e interpretado por qualquer ferramenta padrão do Unix como o grep, awk, cut, sed, diff e Perl\&. Eu mesmo uso\-a para testes rápidos feitos na linha de comando\&. Descobrir todos os anfitriões(hosts) com a porta ssh aberta ou que estão com o SO Solaris requer apenas um simples grep para identificá\-los, concatenado via pipe a um comando awk ou cut para mostrar os campos desejados\&. +.sp +A saída para o grep consiste de comentários (linhas começadas com o símbolo #) e linhas\-alvo\&. Uma linha\-alvo inclui uma combinação de 16 campos rotulados, separados por tab e seguidos por dois\-pontos\&. Os campos são +Host, +Portas (Ports),Protocolos (Protocols), +Estado Ignorado (Ignored State), +SO (OS), +Índice de Seqüência (Seq Index), +IPID +e +Estado (Status)\&. +.sp +O campo mais importante é normalmente +Portas (Ports), que fornece detalhes de cada porta interessante\&. É uma lista com a relação de portas separada por vírgula\&. Cada porta representa uma porta interessante e tem o formato de sete sub\-campos separados por barra (/)\&. Esses sub\-campos são: +Número da Porta (Port number), +Estado (State), +Protocolo (Protocol), +Proprietário (Owner), +Serviço (Service), +informação sobre o SunRPC (SunRPC info) +e +informação sobre a Versão (Version info)\&. +.sp +Assim como na saída XML, esta página man não permite que se documente o formato todo\&. Uma visão mais detalhada sobre o formato de saída para o grep do Nmap está disponível em +\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]\&. +.RE +.PP +\fB\-oA <nome\-base>\fR (Saída para todos os formatos) +.RS 4 +Para facilitar pode especificar +\fB\-oA \fR\fB\fInome\-base\fR\fR +para armazenar os resultados de rastreio(scan) nos formatos normal, XML e para o grep de uma só vez\&. Eles são armazenados nos arquivos +\fInome\-base\fR\&.nmap, +\fInome\-base\fR\&.xml e +\fInome\-base\fR\&.gnmap, respectivamente\&. Como na maioria dos programas pode colocar como prefixo nos nomes de arquivos o caminho de um diretório como +~/nmaplogs/foocorp/ +no UNIX ou +c:\ehacking\esco +no Windows\&. +.RE +.PP +\fBOpções de Verbosidade e depuração (debugging)\fR +.PP +\fB\-v\fR (Aumenta o nível de verbosidade) +.RS 4 +Aumenta o nível de verbosidade fazendo com que o Nmap mostre mais informações sobre o progresso do rastreio(scan)\&. Portas abertas são mostradas conforme são encontradas e estimativas de tempo para o término são fornecidas quando o Nmap acha que um rastreio(scan) irá demorar mais do que alguns minutos\&. Use duas vêzes para uma verbosidade ainda maior\&. Usar mais do que duas vêzes não surte nenhum efeito\&. +.sp +A maioria das alterações afectam apenas a saída interactiva e algumas também afectam a saída normal e script kiddie\&. Os outros tipos de saída foram feitos para serem processados por máquinas, então o Nmap pode dar informações bastante detalhadas por default nesse formatos sem cansarem o usuário humano\&. Entretanto, existem algumas mudanças nos outros modos onde o tamanho da saída pode ser reduzido substancialmente pela omissão de alguns detalhes\&. Por exemplo, uma linha de comentário na saída para o grep que fornece uma lista de todas as portas rastreadas só é mostrada no modo verboso porque ela pode ser bem longa\&. +.RE +.PP +\fB\-d [nível]\fR (Aumenta ou estabelece o nível de depuração) +.RS 4 +Se mesmo o modo verboso não fornece dados suficientes para si, o modo de depuração está disponível para inundá\-lo com muito mais! Assim como na opção de verbosidade (\fB\-v\fR), a depuração é habilitada com uma flag na linha de comando (\fB\-d\fR) e o nível de depuração pode ser aumentado especificando\-a múltiplas vêzes\&. Alternativamente pode estabelecer o nível de depuração fornecendo um argumento para o +\fB\-d\fR\&. Por exemplo, +\fB\-d9\fR +estabelece o nível nove\&. Esse é efectivamente o nível mais alto e irá produzir milhares de linhas a menos que execute um rastreio(scan) muito simples com poucas portas e alvos\&. +.sp +A saída da depuração é útil quando há a suspeita de um bug no Nmap ou se está simplesmente confuso com o que o Nmap está fazendo e porquê\&. Como esta opção é na maioria das vêzes destinada a programadores, as linhas de depuração nem sempre são auto\-explicativas\&. Pode obter algo como: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Se não entender alguma linha suas únicas opções serão ignorá\-la, procurar no código\-fonte ou pedir ajuda na lista de discussão de desenvolvimento (nmap\-dev)\&. Algumas linhas são auto\-explicativas mas as mensagens ficam cada vez mais obscuras conforme o nível de depuração é aumentado\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Rastreia pacotes e dados enviados e recebidos) +.RS 4 +Faz com que o Nmap moste um sumário de todos os pacotes enviados ou recebidos\&. Isto é bastante usado para depuração mas também é uma forma valiosa para novos usuário entenderem exatamente o que o Nmap está fazendo por debaixo dos panos\&. Para evitar mostrar milhares de linhas, pode querer especificar um número limitado de portas a rastrear(scan) como +\fB\-p20\-30\fR\&. Se tudo o que lhe interessa for saber o que se passa no subsistema de detecção de versão, use o +\fB\-\-version\-trace\fR\&. +.RE +.PP +\fB\-\-iflist\fR (Lista as interfaces e rotas) +.RS 4 +Mostra a lista de interfaces e rotas do sistema conforme detectados pelo Nmap\&. Isto é útil para depurar problemas de roteamento ou erro de configuração de dispositivo (como, por exemplo, no caso do Nmap tratar uma conexão PPP como se fosse uma Ethernet)\&. +.RE +.PP +\fBOpções diversas (miscellaneous) de saída\fR +.PP +\fB\-\-append\-output\fR (Acrescenta no arquivo de saída ao invés de sobrepor) +.RS 4 +Quando especifica um nome de arquivo na flag de formato de saída, como +\fB\-oX\fR +ou +\fB\-oN\fR, esse arquivo é sobreposto por default\&. Se preferir manter o conteúdo existente no arquivo e acrescentar os novos resultados, especifique a opção +\fB\-\-append\-output\fR\&. Todos os arquivos de saída especificados na execução do Nmap terão os resultados acrescidos ao invés de sobrepostos\&. Isso não funciona bem com os dados de rastreio(scan) para XML (\fB\-oX\fR) pois o arquivo resultante não será adequadamente interpretado até que consserte manualmente\&. +.RE +.PP +\fB\-\-resume <nomedoarquivo>\fR (Retoma um rastreio(scan) abortado) +.RS 4 +Algumas execuções extensas do Nmap podem levar muito tempo, na ordem de dias\&. Tais rastreios(scans) nem sempre rodam até o fim\&. Podem haver restrições que impeçam que o Nmap seja executado durante o horário de expediente, a rede pode cair, a máquina onde o Nmap está a ser executado pode sofrer um reboot planeado ou não, ou o Nmap pode simplesmente travar\&. O administrador que está executando o Nmap poderia cancelá\-lo por qualquer outra razão bastando teclar +ctrl\-C\&. Reiniciar um rastreio(scan) inteiro do começo pode ser indesejável\&. Felizmente se forem mantidos logs normais (\fB\-oN\fR) ou para o grep (\fB\-oG\fR), o usuário pode pedir que o Nmap continue o rastreio(scan) do alvo que estava verificando quando a execução foi interrompida\&. Simplesmente especifique a opção +\fB\-\-resume\fR +e informe o arquivo da saída normal/para o grep como argumento\&. Nenhum outro argumento é permitido, pois o Nmap analisa o arquivo de saída e usa os mesmos argumentos especificados anteriormente\&. Basta chamar o Nmap com +\fBnmap \-\-resume \fR\fB\fInomedoarquivodelog\fR\fR\&. O Nmap irá acrescentar os novos resultados ao arquivo de dados especificado na execução anterior\&. Essa retomada de execução não suporta o formato de saída XML porque combinar as duas execuções em um arquivo XML válido seria difícil\&. +.RE +.PP +\fB\-\-stylesheet <caminho ou URL>\fR (Informa a folha de estilo XSL usada para transformar a saída XML) +.RS 4 +O Nmap vem com uma folha de estilo (stylesheet) chamada +nmap\&.xsl +para visualizar ou traduzir a saída XML em HTML\&. A saída XML inclui uma diretiva +xml\-stylesheet +que mostra para o +nmap\&.xml +onde ele foi inicialmente instalado pelo Nmap (ou para o diretório corrente no Windows)\&. Simplesmente carregue a saída XML do Nmap em um navegador moderno e ele deve conseguir achar o +nmap\&.xsl +no sistema de arquivos e utilizá\-lo para interpretar os resultados\&. Se desejar utilizar uma folha de estilo diferente, especifique\-a como um argumento para +\fB\-\-stylesheet\fR\&. Deve informar o caminho completo ou a URL\&. Uma chamada comum é +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR +\&. Isso diz ao navegador para carregar a versão mais actual da folha de estilo da Insecure\&.Org\&. Isso torna mais fácil ver os resultados em uma máquina que não tenha o Nmap instalado (e consequentemente o +nmap\&.xsl)\&. A URL é normalmente mais útil mas a localização nmap\&.xsl num sistema de ficheiros(filesystem) local é usada por default por questões de privacidade\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Omite do XML a declaração da folha de estilo XSL) +.RS 4 +Especifique esta opção para evitar que o Nmap associe qualquer folha de estilo XSL à saída XML\&. A directiva +xml\-stylesheet +é omitida\&. +.RE +.SH "OPÇÕES DIVERSAS (MISCELLANEOUS)" +.PP +Esta seção descreve algumas opções importantes (e não\-tão\-importantes) que realmente não couberam em nenhum outro lugar\&. +.PP +\fB\-6\fR (Habilita o rastreio(scan) IPv6) +.RS 4 +Desde 2002 que o Nmap oferece suporte a IPv6 na maioria de suas opções mais populares\&. Em particular o rastreio(scan) com ping (apenas TCP), o rastreio(scan) com connect() e a detecção de versão, todas suportam IPv6\&. A sintaxe de comando é a mesma de sempre excepto que irá também adicionar a opção +\fB\-6\fR\&. É claro que deve usar a sintaxe IPv6 se especificar um endereço no lugar de um nome de anfitrião(host)\&. Um endereço pode se parecer com +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, portanto os nomes de anfitrião(host) são recomendados\&. A saída é a mesma de sempre com o endereço IPv6 na linha +\(lqportas interessantes\(rq +sendo a única dica visível de que se tratar realmente de IPv6\&. +.sp +Muito embora o IPv6 não tenha exactamente se alastrado pelo mundo, seu uso se torna mais significativo em alguns países (normalmente asiáticos) e a maioria dos sistemas operativos modernos passaram a suportá\-lo\&. Para usar o Nmap com o IPv6, tanto a origem quanto o alvo de seu rastreio(scan), devem estar configurados para IPv6\&. Se o seu provedor (ISP) (como a maioria) não aloca endereços IPv6 para si, alguns intermediários que fazem o túnel gratuitamente estão amplamente disponíveis e funcionam bem com o Nmap\&. Um dos melhores é disponibilizado pela BT Exact\&. Também tenho utilizado um fornecido pela Hurricane Electric em +\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]\&. Túneis 6para4 são outra abordagem gratuita e popular\&. +.RE +.PP +\fB\-A\fR (Opções agressivas de rastreio(scan)) +.RS 4 +Esta opção habilita opções adicionais avançadas e agressivas\&. Ainda não decidi exactamente qual das duas é a certa\&. Actualmente ela habilita a Detecção de SO (\fB\-O\fR) e o rastreio(scan) de versão (\fB\-sV\fR)\&. Mais características poderão ser adicionadas no futuro\&. A questão é habilitar um conjunto completo de opções de rastreio(scan) sem que as pessoas tenham que se lembrar de um grupo grande de flags\&. Esta opção apenas habilita as funções e não as opções de temporização (como a +\fB\-T4\fR) ou opções de verbosidade (\fB\-v\fR) que pode também querer\&. +.RE +.PP +\fB\-\-datadir <nomedodiretório>\fR (Especifica a localização dos arquivos de dados do rastreio(scan)) +.RS 4 +O Nmap obtém alguns dados especiais em tempo de execução em arquivos chamados +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes +e +nmap\-os\-fingerprints\&. O Nmap primeiramente procura esses arquivos num diretório especificado na opção +\fB\-\-datadir\fR +(se houver)\&. Qualquer arquivo que não seja encontrado lá é procurado no diretório especificado pela variável de ambiente NMAPDIR\&. A seguir vem o +~/\&.nmap +para se achar os UIDs reais e efectivos (apenas em sistemas POSIX) ou a localização do executável do Nmap (apenas Win32) e então, a localização definida na compilação que pode ser +/usr/local/share/nmap +ou +/usr/share/nmap +\&. Como último recurso, o Nmap irá procurar no diretório corrente\&. +.RE +.PP +\fB\-\-send\-eth\fR (Usa a transmissão pela ethernet em estado bruto(raw)) +.RS 4 +Solicita ao Nmap para que envie pacotes na ethernet (data link) em estado bruto (raw) ao invés de usar a camada de nível mais alto IP (rede)\&. Por default, o Nmap escolhe o que for melhor para a plataforma onde está rodando\&. Soquetes (sockets) em estado bruto (camada IP) são normalmente mais eficientes em máquinas UNIX enquanto que os frames ethernet são necessários nas operações do Windows, uma vez que a Microsoft desabilitou o suporte a sockets em estado bruto\&. O Nmap ainda usa pacotes IP em estado bruto no UNIX, independentemente desta opção, quando não há outra alternativa (como no caso de conexões não\-ethernet)\&. +.RE +.PP +\fB\-\-send\-ip\fR (Envia no nível do IP em estado bruto(raw)) +.RS 4 +Pede ao Nmap que envie os pacotes pelos sockets IP em estado bruto(raw) ao invés de enviar pelo nível mais baixo dos frames ethernet\&. É o complemento da opção +\fB\-\-send\-eth\fR +discutida anteriormente\&. +.RE +.PP +\fB\-\-privileged\fR (Assume que o usuário é altamente privilegiado) +.RS 4 +Informa ao Nmap para simplesmente assumir que ele tem privilégios suficientes para executar transmissões de sockets em estado bruto(raw), farejar (sniff) pacotes e operações similares que normalmente requerem privilégio de root em sistemas UNIX\&. Por default, o Nmap encerra se tal operação é solicitada mas o geteuid() não é zero +\fB\-\-privileged\fR\&. É útil com as possibilidades oferecidas pelo kernel do Linux e sistemas similares que pode ser configurado para permitir que usuários não\-privilegiados executem rastreios(scans) de pacotes em estado bruto\&. Assegure\-se de informar esta flag de opção antes de outras flags de opção que requeiram privilégios (rastreio(scan) SYN, detecção de OS, etc\&.)\&. A variável NMAP_PRIVILEGED pode ser configurada como uma alternativa equivalente de +\fB\-\-privileged\fR\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Mostra o número da versão) +.RS 4 +Mostra o número da versão do Nmap e sai\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Mostra a página do sumário de ajuda) +.RS 4 +Mostra uma pequena tela com as flags de comandos mais comuns\&. Executar o nmap sem nenhum argumento faz a mesma coisa\&. +.RE +.SH "INTERAÇÃO EM TEMPO DE EXECUÇÃO" +.PP +.PP +Durante a execução do Nmap todas as teclas pressionadas são capturadas\&. Isso permite que interaja com o programa sem abortá\-lo ou reiniciá\-lo\&. Algumas teclas especiais irão mudar as opções enquanto outras irão mostrar uma mensagem de estado dando informações sobre o rastreio(scan)\&. A convenção é que +\fIletras minúsculas aumentam\fR +a quantidade de informação e +\fIletras maiúsculas diminuem\fR\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Aumenta / Diminui a quantidade de informações (Verbosity) +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Aumenta / Diminui o Nível de Depuração (Debugging Level) +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Habilita / Desabilita o Rastreamento de Pacotes (Packet Tracing) +.RE +.PP +Qualquer outra letra +.RS 4 +Mostra uma mensagem de estado como esta: +.sp +Stats: 0:00:08 elapsed; 111 anfitriões(hosts) completed (5 up), 5 undergoing Service Scan +.sp +Service rastreio(scan) Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "EXEMPLOS" +.PP +Aqui estão alguns exemplos de utilização do Nmap desde o simples e rotineiro, até ao mais complexo e esotérico\&. Alguns endereços IP reais e nomes de domínio foram utilizados para tornar as coisas mais concretas\&. Nesses lugares deve substituir os endereços/nomes pelos da +\fIsua própria rede\fR\&. Embora eu não ache que o rastreio(scan) de portas de outras redes seja ou deva ser considerado ilegal, alguns administradores de rede não apreciam o rastreio(scan) não\-solicitado de suas redes e podem reclamar\&. Obter a permissão antecipadamente é a melhor opção\&. +.PP +Para fins de teste tem permissão para rastrear(scan) o anfitrião(host) +scanme\&.nmap\&.org\&. Esta permissão inclui apenas o rastreio(scan) via Nmap e não tentativas de explorar vulnerabilidades ou ataques de negação de serviço (denial of service)\&. Para preservar a banda, por favor não inicie mais do que uma dúzia de rastreios(scans) contra o anfitrião(host) por dia\&. Se esse serviço de alvo livre para rastreio(scan) for abusado, será derrubado e o Nmap irá reportar +Failed to resolve given hostname/IP: scanme\&.nmap\&.org\&. Essas permissões também se aplicam aos anfitriões(hosts) +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org +e assim por diante, embora esses anfitriões(hosts) ainda não existam\&. +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Esta opção rastreia(scan) todas as portas TCP reservadas na máquina +scanme\&.nmap\&.org\&. A opção +\fB\-v\fR +habilita o modo verboso (verbose)\&. +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Inicia um rastreio(scan) SYN camuflado contra cada máquina que estiver activa das 255 possíveis da rede +\(lqclasse C\(rq +onde o Scanme reside\&. Ele também tenta determinar qual o sistema operativo que está sendo executado em cada anfitrião(host) activo\&. Isto requer privilégio de root por causa do rastreio(scan) SYN e da detecção de SO\&. +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Inicia uma enumeração de anfitriões(hosts) e um rastreio(scan) TCP na primeira metade de cada uma das 255 sub\-redes de 8 bits possíveis na classe B do espaço de endereçamento 198\&.116\&. Também testa se os sistemas estão executando sshd, DNS, pop3d, imapd ou a porta 4564\&. Para cada uma destas portas encontradas abertas a detecção de versão é usada para determinar qual aplicação está em execução\&. +.PP +\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR +.PP +Pede ao Nmap para escolher 100\&.000 anfitriões(hosts) de forma aleatória e rastreia\-os procurando por servidores web (porta 80)\&. A enumeração de anfitriões(hosts) é desabilitada com +\fB\-P0\fR +uma vez que enviar primeiramente um par de sondagens para determinar se um anfitriões(hosts) está activo é um desperdício quando se está sondando uma porta em cada anfitrião(host) alvo\&. +.PP +\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Este exemplo rastreia(scan) 4096 endereços IP buscando por servidores web (sem usar o ping) e grava a saída nos formatos XML e compatível com o programa grep\&. +.PP +\fBanfitrião(host) \-l company\&.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR +.PP +Faz uma transferência de zona DNS para descobrir os anfitriões(hosts) em company\&.com e então alimenta o Nmap com os endereços IP\&. Os comandos acima são para a minha máquina GNU/Linux \-\- outros sistemas têm comandos diferentes para executar a transferência de zona\&. +.SH "BUGS" +.PP +Como o seu autor, o Nmap não é perfeito\&. Mas pode ajudar a torná\-lo melhor enviando relatórios de erros (bug reports) ou mesmo escrevendo correções\&. Se o Nmap não se comporta da forma que espera, primeiro actualize para a versão mais atual disponível em +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Se o problema persistir, pesquise um pouco para determinar se o problema já foi descoberto e encaminhado\&. Tente procurar no Google pela mensagem de erro ou navegar nos arquivos da Nmap\-dev em +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. Se não encontrar nada envie uma mensagem com um relatório do erro para +<dev@nmap\&.org>\&. Por favor inclua tudo o que souber sobre o problema bem como a versão do Nmap que está executando e em qual versão e sistema operativo que está a usar\&. +.PP +Correções codificadas para concertar os erros são ainda melhores que os relatórios de erro\&. Instruções básicas para a criação de arquivos de correções com as suas alterações estão disponíveis em +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]\&. +.SH "AUTOR" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%http://www.insecure.org\fR\m[]) +.PP +Centenas de pessoas fizeram contribuições valiosas para o Nmap ao longo dos anos\&. Isso está detalhado no arquivo +CHANGELOG +que é distribuído com o Nmap e também está disponível em +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]\&. +.SH "TRADUÇÃO" +.PP +Português (Portugal) : José Domingos +<jd_pt@yahoo\&.com> +Português (Portugal) : Andreia Gaita +<shana\&.ufie@gmail\&.com> +.PP +Translation Disclaimer: The translation attempts to achieve the highest possible accuracy\&. The official text is the English version available at [url]\&. Any discrepancies or differences created in translations are not binding and have no legal effect or compliance or enforcement purposes\&. If any questions arise in regard to the accuracy of information contained in any translated portion of text, please refer to the official English version\&. Slangs and language structures in English are not easily translated into another language\&. Source text that includes jargon common to an industry, may not be translated accurately\&. Insecure\&.Com LLC is not responsible for translation errors\&. We apologize for any translation that is not correct\&. +.PP +Desobrigação da Tradução: A tradução tenta alcançar a maior precisão possível\&. O texto oficial é a versão em inglês disponível em [url]\&. Quaisquer discrepâncias ou diferenças criadas pelas traduções não são obrigações e não tem efeito legal, conformidade ou propósitos impositivos\&. Se qualquer dúvida surgir em relação à precisão da informação contida em qualquer parte traduzida do texto, por favor verifique a versão oficial em inglês\&. Gírias e estruturas de linguagem em inglês não são facilmente traduzidas em outra língua\&. Texto original que inclui jargão comum a uma atividade pode não ser traduzido com precisão\&. A Insecure\&.Com LLC não é responsável por erros de tradução\&. Nós pedimos desculpas se alguma parte da tradução não estiver correcta\&. +.SH "AVISOS LEGAIS" +.SS "Copyright e Licenciamento" +.PP +O Nmap Security Scanner é (C) 1996\-2005 Insecure\&.Com LLC\&. O Nmap também é uma marca registada de Insecure\&.Com LLC\&. Este programa é um software livre; pode redistribuí\-lo e/ou modificá\-lo sob os termos da Licença Pública Geral GNU (GNU General Public License) conforme publicado pela Free Software Foundation; Versão 2\&. Isso garante o seu direito de usar, modificar e redistribuir este software sob certas condições\&. Se desejar embutir a tecnologia do Nmap em um software proprietário poderemos querer vender licenças alternativas (contate +<sales@insecure\&.com>)\&. Muitos vendedores de scanner de segurança já licenciam a tecnologia do Nmap, tal como a descoberta de anfitriões(hosts), rastreio(scan) de portas, detecção de SO e detecção de serviços/versões\&. +.PP +Observe que a GPL impõe restrições importantes em +\(lqtrabalhos derivados\(rq +embora ela não forneça uma definição detalhada desse termo\&. Para evitar más\-interpretações consideramos que uma aplicação constitui um +\(lqtrabalho derivado\(rq +para o propósito desta licença, se ela se enquadra em um dos seguintes ítens: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Contém código fonte do Nmap +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Lê ou inclui arquivos de dados do Nmap que são protegidos por copyright, tal como o +nmap\-os\-fingerprints +ou +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Executa o Nmap e decompõe (parse) os resultados (diferentemente de uma execução típica de um shell ou aplicações de menu de execução que simplesmente mostram a saída em estado bruto do Nmap e portanto não constituem um trabalho derivado)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integra/inclui/agrega o Nmap em um instalador executável proprietário tal como os produzidos pelo InstallShield\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Estabelece uma ligação (link) com uma biblioteca ou executa um programa que faz qualquer um dos dois ítens em cima\&. +.RE +.PP +O termo +\(lqNmap\(rq +deve ser considerado como contendo parte ou sendo trabalho derivado do Nmap\&. Esta lista não é definitiva mas deve ser entendida como uma forma de esclareçer nossa interpretação de trabalho derivado com alguns exemplos comuns\&. Estas restrições apenas se aplicam quando realmente redistribui o Nmap\&. Por exemplo, nada impede que escreva e venda um front\-end proprietário para o Nmap\&. Apenas redistribua o seu produto isoladamente e mostre às pessoas onde elas podem descarregar(download) o Nmap\&. +.PP +Nós não consideramos isso como restrições adicionais à GPL mas apenas uma elucidação de como nós interpretamos +\(lqtrabalhos derivados\(rq +pois elas se aplicam ao nosso produto Nmap licenciado no formato GPL\&. Isso é idêntico à forma como Linus Torvalds anunciou sua interpretação de como os +\(lqtrabalhos derivados\(rq +se aplicam aos módulos do kernel do Linux\&. A nossa interpretação refere\-se apenas ao Nmap \- não respondemos por qualquer outro produto GPL\&. +.PP +Se tiver qualquer dúvida quanto às restrições do licenciamento GPL na utilização do Nmap em produtos não\-GPL, ficaríamos felizes em ajudar\&. Como mencionado acima, também oferecemos licenças alternativas para a integração do Nmap em aplicações e dispositivos proprietários\&. Esses contratos foram vendidos para muitas empresas de segurança e geralmente incluem uma licença perpétua, disponibiliza um suporte para actualizações prioritários, e também nos ajuda financeiramente o desenvolvimento contínuo da tecnologia do Nmap\&. Por favor, envie um e\-mail para +<sales@insecure\&.com> +se desejar mais informações\&. +.PP +Como uma exceção especial aos termos da GPL, a Insecure\&.Com LLC permite que uma ligação (link) do código deste program seja feito com qualquer versão da biblioteca do OpenSSL que seja distribuída sob uma licença idêntica àquela listada no arquivo Copying\&.OpenSSL incluido e distribuir combinações de ligação incluindo os dois\&. Deve obedecer à GPL GNU em todos os aspectos para todo o código utilizado que não seja OpenSSL\&. Se modificar este aquivo pode estender esta excepção para a sua versão do arquivo mas não é obrigado a fazer isso\&. +.PP +Se recebeu estes arquivos com um acordo de licenciamento por escrito ou um contrato ditando termos que não sejam diferentes dos em cima então essa licença alternativa tem precedência sobre estes comentários\&. +.SS "Disponibilidade de código fonte e contribuições da comunidade" +.PP +O código fonte é fornecido com este software porque acreditamos que os usuários tem o direito de saber exactamente o que um programa irá fazer antes de executá\-lo\&. Isso também permite que vaudite o software procurando por falhas na segurança (nenhuma foi encontrada até agora)\&. +.PP +O código fonte também permite que porte o Nmap para novas plataformas consserte problemas e adicione novas características\&. E altamente encorajado a enviar suas alterações para +<fyodor@nmap\&.org> +para uma possível incorporação na distribuição principal\&. Enviar essas alterações para Fyodor ou para alguém da lista de mensagens de desenvolvimento da Insecure\&.Org, pressupõe que está oferecendo a Fyodor e à Insecure\&.Com LLC o direito ilimitado e não\-exclusivo para reutilizar, modificar e relicenciar o código\&. O Nmap sempre estará disponível como um Open Source mas isto é importante porque a impossibilidade de relicenciar o código causou problemas devastadores para outros projetos de Software Livre (tal como o KDE e o NASM)\&. Nós também relicenciamos ocasionalmente o código para terceiros conforme discutido anteriormente\&. Se deseja especificar condições de licenciamento especiais das suas contribuições deixe isso claro quando enviá\-las\&. +.SS "Nenhuma Garantia" +.PP +Este programa é distribuído na esperança de que será útil mas SEM QUALQUER GARANTIA; sem sequer a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A QUALQUER PROPÓSITO PARTICULAR\&. Veja a Licença Pública Geral GNU para mais detalhes em +\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[] +ou no arquivo COPYING incluído com o Nmap\&. +.PP +Também deve ser observado que o Nmap reconhecidamente trava certas aplicações mal\-escritas, a pilha TCP/IP e mesmo alguns sistemas operativos\&. +\fBO Nmap nunca deve ser executado contra sistemas de missão\-crítica\fR +a menos que esteja preparado para lidar com o serviço fora do ar (downtime)\&. Nós reconhecemos aqui que o Nmap pode travar os seus sistemas ou redes e nós renunciamos toda e qualquer responsabilidade por qualquer dano ou problema que o Nmap possa causar\&. +.SS "Uso inapropriado" +.PP +Pelo facto de haver o menor risco de travamento e porque existem pessoas mal\-intencionadas (black hats) que gostam de usar o Nmap para reconhecimento antes atacar um sistema, existem administradores que ficam chateados e podem reclamar quando o sistema deles é rastreado\&. Portanto é normalmente aconselhável que solicite a permissão antes de fazer um rastreio(scan) de uma rede por mais leve que seja\&. +.PP +O Nmap nunca deveria ser instalado com privilégios especiais (p\&.ex\&.: suid root) por questões de segurança\&. +.SS "Software de Terceiros" +.PP +Este produto inclui software desenvolvido pela +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[8]\d\s+2\&. Uma versão modificada da +\m[blue]\fBbiblioteca portátil de captura de pacotes Libpcap\fR\m[]\&\s-2\u[9]\d\s+2 +é distribuída junto com o Nmap\&. A versão para o Windows do Nmap por outro lado utiliza +\m[blue]\fBbiblioteca WinPcap\fR\m[]\&\s-2\u[10]\d\s+2, derivada da libpcap\&. O suporte a expressões regulares é fornecido pela +\m[blue]\fBbiblioteca PCRE\fR\m[]\&\s-2\u[11]\d\s+2 +que é um software de código aberto escrito por by Philip Hazel\&. Algumas funções de rede em estado bruto utilizam a biblioteca de rede +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[12]\d\s+2 +que foi escrita por Dug Song\&. Uma versão modificada é distribuída com o Nmap\&. O Nmap pode opcionalmente ser ligado ao +\m[blue]\fBconjunto de ferramentas de criptografia do OpenSSL\fR\m[]\&\s-2\u[13]\d\s+2 +para o suporte à detecção de versão do SSL\&. Todos os softwares de terceiros descritos neste parágrafo são distribuídos gratuitamente sob o licenciamento de software no estilo BSD\&. +.SS "Classificação do Controle de Exportação dos EUA" +.PP +Controle de Exportação dos EUA: A Insecure\&.Com LLC acredita que o Nmap se enquadra no US ECCN (número de classificação para controle de exportação) 5D992\&. Essa categoria é chamada de +\(lqsoftware de Segurança da Informação não\-controlado pela 5D002\(rq\&. A única restrição a essa classificação é o AT (anti\-terrorismo) que se aplica a quase todos os produtos e nega a exportação a um punhado de nações não\-confiáveis tais como o Irão e a Coreia do Norte\&. Portanto, exportar o Nmap não requer nenhuma licença ou permissão especial ou qualquer outro tipo de autorização governamental\&. +.SH "NOTAS" +.IP " 1." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 2." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 3." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 4." 4 +RFC do TCP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 5." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 6." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP " 7." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP " 8." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP " 9." 4 +biblioteca portátil de captura de pacotes Libpcap +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "10." 4 +biblioteca WinPcap +.RS 4 +\%http://www.winpcap.org +.RE +.IP "11." 4 +biblioteca PCRE +.RS 4 +\%http://www.pcre.org +.RE +.IP "12." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "13." 4 +conjunto de ferramentas de criptografia do OpenSSL +.RS 4 +\%http://www.openssl.org +.RE diff --git a/docs/man-xlate/nmap-ro.1 b/docs/man-xlate/nmap-ro.1 new file mode 100644 index 0000000..36f54db --- /dev/null +++ b/docs/man-xlate/nmap-ro.1 @@ -0,0 +1,1498 @@ +'\" t +.\" Title: nmap +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 05/17/2023 +.\" Manual: Ghid de referinta Nmap +.\" Source: Nmap +.\" Language: Romanian +.\" +.TH "NMAP" "1" "05/17/2023" "Nmap" "Ghid de referinta Nmap" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NUME" +nmap \- Instrument de explorare a retelei si scaner de securitate / porturi +.SH "REZUMAT" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR[\fITip\ de\ scanare\fR...][\fIOptiuni\fR]{\fIspecificarea\ tintei\fR} +.SH "DESCRIERE" +.PP +Nmap ( +„Network Mapper\(rq) este un instrument open source pentru explorarea retelei si audit de securitate A fost proiectat sa scaneze repede retele mari, cu toate ca functioneaza bine si la scanarea unui singur host\&. Nmap foloseste pachete IP in forma bruta intr\-un mod inovator pentru a determina ce calculatoare sunt disponibile in retea, ce servicii (numele aplicatiei si versiunea) ofera acestea, ce sistem de operare (si versiune) ruleaza, ce tipuri de filtre de pachete/firewall sunt utilizate si o multime de alte caracteristici\&. Nmap este folosit in mod curent in procesul de audit al securitatii, dar este folosit si de administratorii de retea pentru rutinele de inventariere a retelei, managementul upgradeurilor si monitorizarea calculatoarelor sau a perioadelor de uptime pentru servicii\&. +.PP +Rezultatul generat de Nmap este o lista de tinte scanate, cu informatii secventiale despre fiecare in functie de optiunile utilizate\&. O parte cheie a informatiilor furnizate este +„tabela de porturi interesante\(rq\&. Aceasta tabela contine numarul portului si protocolul, numele serviciului si starea\&. Starea poate fi +open (deschis), +filtered (filtrat), +closed (inchis), sau +unfiltered (nefiltrat)\&. Deschis (open) inseamna ca aplicatia de pe masina tinta asculta la portul respectiv, asteptand conexiuni\&. +Filtered (filtrat)inseamna ca un firewall, filtru sau alt obstacol in retea blocheaza respectivul port astfel incat Nmap nu poate spune daca este +deschissau +inchis\&. Porturile +inchisenu au nici o aplicatie care sa astepte conexiuni, cu toate ca ele se pot deschide in orice moment\&. Porturile sunt clasificate ca +nefiltratecand ele raspund la probele Nmap, dar Nmap nu poate determina daca sunt inchise sau deschise\&. Nmap raporteaza combinatia de stari +open|filtered (deschis|filtrat)si +closed|filtered (inchis|filtrat)cand nu poate determina care din cele doua stari este cea corecta\&. Tabela de porturi mai poate include versiuni ale softwareului cand detectia versiunii a fost solicitata\&. Cand un protocol de scanare IP este solicitat ( +\fB\-sO\fR), Nmap furnizeaza informatii despre protocoalele IP suportate in locul listei de porturi\&. +.PP +In plus fata de lista de porturi interesante, Nmap poate furniza si alte informatii despre tinte, incluzand aici nume obtinute prin reverse DNS, poate ghici sistemul de operare, tipul hardwareului si adresele MAC\&. +.PP +O scanare tipica cu Nmap este exemplificata in +Exemplu 1, „O scanare reprezentativa cu Nmap\(rq\&. Singurele argumente folosite in aceste exemplu sunt +\fB\-A\fR, pentru a activa detectia versiunii si a sistemului de operare, +\fB\-T4\fRpentru executia mai rapida a scanarii, si apoi specificatiile pentru cele doua tinte\&. +.PP +\fBExemplu 1. O scanare reprezentativa cu Nmap\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org playground + Starting nmap ( https://nmap\&.org/ ) Interesting ports on + scanme\&.nmap\&.org (205\&.217\&.153\&.62): (The 1663 ports scanned but not shown + below are in state: filtered) PORT STATE SERVICE VERSION 22/tcp open + ssh OpenSSH 3\&.9p1 (protocol 1\&.99) 53/tcp open domain 70/tcp closed + gopher 80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) 113/tcp closed + auth Device type: general purpose Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X OS + details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11 Uptime 33\&.908 days + (since Thu Jul 21 03:38:03 2005) Interesting ports on + playground\&.nmap\&.org (192\&.168\&.0\&.40): (The 1659 ports scanned but not + shown below are in state: closed) PORT STATE SERVICE VERSION 135/tcp + open msrpc Microsoft Windows RPC 139/tcp open netbios\-ssn 389/tcp open + ldap? 445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds + 1002/tcp open windows\-icfw? 1025/tcp open msrpc Microsoft Windows RPC + 1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper 5800/tcp open vnc\-http + RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900) 5900/tcp open vnc + VNC (protocol 3\&.8) MAC Address: 00:A0:CC:63:85:4B (Lite\-on + Communications) Device type: general purpose Running: Microsoft Windows + NT/2K/XP OS details: Microsoft Windows XP Pro RC1+ through final + release Service Info: OSs: Windows, Windows XP Nmap finished: 2 IP + addresses (2 hosts up) scanned in 88\&.392 seconds +.fi +.if n \{\ +.RE +.\} +.PP +Cea mai noua versiune de Nmap poate fi obtinuta de la +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Cea mai noua versiune a paginii man poate fi vizualizata la +\m[blue]\fB\%https://nmap.org/man/\fR\m[]\&. +.SH "TRADUCERE" +.PP +Aceasta editie inlimba romana a Ghidului de referinta Nmap a fost tradus din versiunea 2991 a textului original aflat la +\m[blue]\fBoriginal English version\fR\m[]\&\s-2\u[1]\d\s+2de Dan Catalin Vasile +<danvasile@danvasile\&.com>\&. Traducerea a fost facuta cu scopul de a asigura o intelegere mai buna a functionalitatilor Nmap intai pentru autor si mai apoi pentru toti vorbitorii nativi de limba romana\&. Autorul traducerii nu va poate garanta faptul ca traducerea este la fel de completa cu versiunea actualizata in limba engleza\&. Acest produs poate fi modificat si redistribuit in conditiile stipulate de +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. +.SH "SUMARUL OPTIUNILOR" +.PP +Acest sumar al optiunilor este printat cand Nmap este rulat fara nici un argument si ultima versiune este disponibila la +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]\&. Ajuta oamenii sa isi aduca aminte de cele mai comune optiuni, dar nu reprezinta un substitut pentru documentatia in profunzime din restul acestui manual\&. Unele optiuni obscure nici nu sunt incluse aici\&. +.PP +.if n \{\ +.RS 4 +.\} +.nf +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 \-sP: Ping Scan \- go no further than + determining if host is online \-P0: Treat all hosts as online \-\- skip + host discovery \-PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery to + given ports \-PE/PP/PM: ICMP echo, timestamp, and netmask request + discovery probes \-n/\-R: Never do DNS resolution/Always resolve + [default: sometimes] SCAN TECHNIQUES: \-sS/sT/sA/sW/sM: TCP + SYN/Connect()/ACK/Window/Maimon scans \-sN/sF/sX: TCP Null, FIN, and + Xmas scans \-\-scanflags <flags>: Customize TCP scan flags \-sI + <zombie host[:probeport]>: Idlescan \-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 \-F: Fast \- Scan only the + ports listed in the nmap\-services file) \-r: Scan ports sequentially \- + don\*(Aqt randomize SERVICE/VERSION DETECTION: \-sV: Probe open ports to + determine service/version info \-\-version\-light: Limit to most likely + probes for faster identification \-\-version\-all: Try every single probe + for version detection \-\-version\-trace: Show detailed version scan + activity (for debugging) OS DETECTION: \-O: Enable OS detection + \-\-osscan\-limit: Limit OS detection to promising targets \-\-osscan\-guess: + Guess OS more aggressively TIMING AND PERFORMANCE: \-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 <msec>: + Specifies probe round trip time\&. \-\-host\-timeout <msec>: Give up + on target after this long \-\-scan\-delay/\-\-max\-scan\-delay <msec>: + Adjust delay between probes 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 \-\-data\-length <num>: Append random data to sent packets + \-\-ttl <val>: Set IP time\-to\-live field \-\-spoof\-mac <mac + address/prefix/vendor name>: Spoof your MAC address 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 twice for more effect) \-d[level]: Set or + increase debugging level (Up to 9 is meaningful) \-\-packet\-trace: Show + all packets sent and received \-\-iflist: Print host interfaces and + routes (for debugging) \-\-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 Insecure\&.Org for + more portable XML \-\-no\-stylesheet: Prevent associating of XSL + stylesheet w/XML output MISC: \-6: Enable IPv6 scanning \-A: Enables OS + detection and Version detection \-\-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 \-V: Print version number \-h: Print this help summary + page\&. EXAMPLES: nmap \-v \-A scanme\&.nmap\&.org nmap \-v \-sP 192\&.168\&.0\&.0/16 + 10\&.0\&.0\&.0/8 nmap \-v \-iR 10000 \-P0 \-p 80 +.fi +.if n \{\ +.RE +.\} +.sp +.SH "SPECIFICAREA TINTELOR" +.PP +Tot ceea ce in lina de comanda a Nmap nu este optiune (sau argument al unei optiuni) este tratat ca specificare a unei tinte\&. Cel mai simplu caz este specificarea adresei IP sau a numelui calculatorului ce urmeaza a fi scanat\&. +.PP +Cateodata se doreste scanarea unei intregi retele pentru calculatoare adiacente\&. Pentru asta, Nmap suporta stilul de adresare CIDR\&. Se poate adauga / +\fInumarul de biti\fRla o adresa IP sau nume si Nmap va scana toate adresele IP pentru care primii +\fIbiti\fRsunt aceeasi cu IP sau numele de referinta\&. De exemplu, 192\&.168\&.10\&.0/24 va scana cele 256 de calculatoare intre 192\&.168\&.10\&.0 (binar: +11000000 10101000 00001010 00000000) si 192\&.168\&.10\&.255 (binar: +11000000 10101000 00001010 11111111), inclusiv\&. 192\&.168\&.10\&.40/24 va realiza exact acelasi lucru\&. Dat fiind numele scanme\&.nmap\&.org cu adresa IP 205\&.217\&.153\&.62, specificatia scanme\&.nmap\&.org/16 va scana cele 65\&.536 adrese IP intre 205\&.217\&.0\&.0 si 205\&.217\&.255\&.255\&. Cea mai mica valoare permisa este /1, care va scana jumatate de Internet\&. Cea mai mare este 32, care va scana doar calculatorul specificat prin nume sau IP deoarece toti bitii sunt fixati\&. +.PP +Natatia CIDR este scurta dar nu intotdeauna suficient de flexibila\&. De exemplu, puteti dori scanarea 192\&.168\&.0\&.0/16 dar fara adresele care se termina in \&.0 sau \&.255, deoarece ele sunt in general adrese de broadcast\&. Nmap suporta acest lucru prin adresarea unei anumite limite pentru fiecare octet in parte\&. In locul specificarii adresei IP normale, puteti specifica o lista de numere separate prin virgula sau un domeniu pentru fiecare octet\&. De exemplu, 192\&.168\&.0\-255\&.1\-254 va sari toate adresele din acest domeniu care se termina in \&.0 si \&.255\&. Domeniile nu se limiteaza la ultimii octeti: specificatorul 0\-255\&.0\-255\&.13\&.37 va scana Internetul dupa toate IPurile care se termina in \&.13\&.37\&. Acest tip de scanare poate fi folositor pentru inspectarea si cercetarea Internetului\&. +.PP +Adresele IPv6 pot fi specificate doar prin adresa completa sau nume\&. CIDR si domeniile pe octeti nu sunt suportate pentru IPv6 deoarece sunt rareori folositoare\&. +.PP +Nmap accepta specificarea mai multor adrese in linia de comanda si nici nu este necesar ca ele sa fie de acelasi tip\&. Comnda +\fBnmapscanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.0\-255\fRrealizeaza exact ceea ce asteptati\&. +.PP +Desi tintele sunt specificate in mod uzual in linia de comanda, exista si urmatoarele optiuni pentru selectia tintelor +.PP +\fB\-iL <fisierdeintrare>\fR(Preluare dintr\-un fisier) +.RS 4 +Citeste specificarile tintelor din +\fIfisierdeintrare\fR\&. Preluarea unei liste mari de calculatoare este un lucru greu de facut din linia de comanda, desi acest lucru este de preferat\&. De exemplu, serverul DHCP poate exporta o lista de 10\&.000 de IP pe care le\-a atribuit si pe care noi dorim sa le scanam\&. Sau poate dorim sa scanam toate adresele +\fIcu exceptia\fRcelor generate de DHCP pentru a monitoriza adresele statice neautorizate\&. Generati lista de IPuri si plasati numele fisierului ca argument al optiunii +\fB\-iL\fRIntrarile din fisier pot fi in orice format acceptat de Nmap in linia d ecomanda (adrese IP, nume, CIDR, IPv6 sau domenii pe octeti)\&. Fiecare intrare trebuie separata prin unul sau mai multe spatii libere sau prin linie noua\&. Puteti specifica caracterul +\-ca nume de fisier daca vreti ca Nmap sa citeasca de la intrarea standard in locul unui fisier\&. +.RE +.PP +\fB\-iR <numar de tinte>\fR(Alegere de tinte aleatoare) +.RS 4 +Pentru sondaje asupra Internetului sau alte cercetari, puteti alege tinte aleator\&. +\fINumarul de tinte\fRcomunica Nmapului cate tinte aleatoare sa genereze\&. Adrese nedorite cum ar fi IPurile private, cele de multicast sau cele nealocate sunt sarite in mod automat la generarea listei\&. Argumentul +0poate specifica o scanare fara sfarsit\&. Tineti minte ca unii administratori de retea sunt deranjati de scanarile neautorizate asupra retelei lor si pot depune plangeri\&. Folositi aceasta optiune asumandu\-va riscurile! Daca sunteti cu adevarat plictisit intr\-o dupa\-amiaza ploioasa incercati comanda +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fRpentru a localiza aleator servere care gazduiesc pagini web si incepeti sa faceti brosing\&. +.RE +.PP +\fB\-\-exclude<host1[,host2][,host3],\&.\&.\&.>\fR(Se exclud de la scanare calculatoarele/retelele specificate ca argument) +.RS 4 +Specifica o lista separata prin virgula de tinte excluse de la scanare chiar daca ele se afla in domeniul specificat\&. Lista foloseste sintaxa normala a Nmap, asa ca poate include nume, specificatori CIDR, domenii pe octeti, etc\&. Aceasta optiune poate fi folositoare cand reteaua pe care dorim sa o scanam include servere ce ruleaza aplicatii critice, sisteme care reactioneaza la scanari sau subretele administrate de alte persoane\&. +.RE +.PP +\fB\-\-excludefile <fisier_de_excludere>\fR(Lista de excludere dintr\-un fisier) +.RS 4 +Aceasta ofera aceeasi functionalitate ca si optiunea +\fB\-\-exclude\fR, cu exceptia ca ca tintele excluse sunt furnizate intr\-un format delimitat prin linie noua, spatiu sau tab din +\fIfisierul_de_excludere\fRin loc sa fie furnizate din linia de comanda\&. +.RE +.SH "DESCOPERIREA HOSTURILOR" +.PP +Nota: Vom imprumuta din limba engleza termenul de host\&. Acesta se refera la orice element din retea care comunica sau poate comunica\&. Aceste elemente pot fi statii de lucru, servere, routere, imprimante de retea, etc\&. Unul din primii pasi ai descoperirii elementelor din retea este reducerea numarului (adesea urias) de IP intr\-o lista de hosturi active sau interesante\&. Scanarea fiecarui port de pe fiecare IP este un proces lent si de obicei inutil\&. Desigur, ce transforma un host intr\-unul interesant depinde in mare parte de scopul scanarii\&. Administratorii de retea ar putea fi interesati doar de calculatoarele ce ruleaza anumite servicii, in timp ce auditorii de securitate pot fi interesati de toate elementele ce poseda o adresa IP\&. Unui administrator ii poate fi suficient un simplu pachet ping ICMP pentru localizarea calculatoarelor din reteaua interna, in timp ce un auditor extern poate folosi o multitudine de probe in incercarea de a scapa de restrictiile firewallului\&. +.PP +Deoarece necesitatile in vederea descoperirii hosturilor sunt atat de diverse , Nmap ofera o varietate mare de optiuni de personalizare a tehnicilor folosite\&. Descoperirea hosturilor este adesea numita scanare ping, dar trece cu mult de simplul stadiu al pachetelor ICMP care solicita un raspuns asociate omniprezentului instrument +pingUtilizatorii pot sari de pasul care implica pingul cu o scanare de tip lista ( +\fB\-sL\fR) sau dezactivand pingul ( +\fB\-P0\fR), sau angrenand alte combinatii arbitrare de probe multiport TCP SYN/ACK, UDP si ICMP\&. Scopul acestor probe este sa solicite raspunsuri care sa demonstreze daca o adresa IP este cu adevarat activa (este folosita de un dispozitiv din retea)\&. In multe retele, doar un mic procentaj de adrese IP sunt active la un moment dat\&. Acest lucru este in mod special adevarat intr\-un spatiu de adrese rezervat conform binecuvantatului RFC1918 cum ar fi 10\&.0\&.0\&.0/8\&. Aceasta retea are 16 milioane de IPuri, dar am vazut ca sunt folosite de companii cu mai putin de o mie de calculatoare\&. Descoperirea hosturilor poate gasi acele masini risipite in marea de adrese IP\&. +.PP +Daca nu sunt furnizate optiuni de descoperire a hosturilor, Nmap trimite un pachet TCP ACK destinat portului 80 si un pachet de interogare ICMP cu solicitare de raspuns la fiecare masina tinta\&. O exceptie la acestea este ca scanarea ARP este folosita pentru orice tinta dintr\-o retea locala\&. Pentru utilizatori neprivilegiati cu conturi shell pe sisteme UNIX, sunt trimise pachete SYN in locul celor ack folosind apelul de sistem +\fBconnect()\fR\&. Aceste optiuni implicite sunt echivalente cu +\fB\-PA \-PE\fR\&. Descoperirea hosturilor este de obicei suficienta pentru scanarea retelelor locale, dar un set mult mai cuprinzator de probe pentru descoperire este recomandat in auditul de securitate\&. +.PP +Optiunea +\fB\-P*\fR(care selecteaza tipul pingului) poate fi combinata\&. Puteti mari sansele de penetrare a unor firewalluri stricte trimitand mai multe probe folosind diferite porturi/flaguri (indicatori din pachetele) TCP si coduri ICMP\&. Notati de asemenea ca descoperirea ARP ( +\fB\-PR\fR) este executata implicit impotriva tintelor dintr\-o retea locala chiar daca specificati alta optiune +\fB\-P*\fR, deoarece este aproape intotdeauna mai rapida si mai eficienta\&. +.PP +Urmatoarele optiuni controleaza descoperirea hosturilor\&. +.PP +\fB\-sL\fR(Scanarea de tip lista) +.RS 4 +Scanarea de tip lista este o forma degenerata de descoperire a hosturilor care listeaza fiecare host al retelei specificate, fara a trimite nici un pachet tintelor\&. In mod implicit, Nmap realizeaza totusi o rezolutie inversa DNS pentru a afla si numele tintelor\&. Adesea este surprinzator cate informatii utile ne pot oferi simplele nume ale hosturilor\&. De exemplu, +fw\&.chi\&.playboy\&.comeste firewallul biroului din Chicago al Playboy Enterprises\&. Nmap raporteaza numarul total de adrese IP la sfarsit\&. Scanarea de tip lista este o buna verificare a faptului ca aveti adresele IP corecte pentru tinte\&. Daca hosturile au nume pe care nu le recunoasteti, este bine sa investigati in profunzime pentru a nu scana reteaua unei alte companii\&. +.sp +Din moment ce ideea este de afisa o lista cu tinte, optiunile pentru un nivel mai inalt de functionalitate cum ar fi scanare de porturi, detectia sistemului de operare sau scanarea ping nu pot fi combinate cu aceasta\&. Daca doriti dezactivarea scanarea ping si in acelasi timp sa executati tehnicile corespunzatoare nivelului inalt de functionalitate, cititi paragraful destinat optiunii +\fB\-P0\fR\&. +.RE +.PP +\fB\-sP\fR(Scanare ping) +.RS 4 +Aceasta optiune spune Nmapului sa realizeze +\fInumai\fRo scanare ping (descoperirea hosturilor) si apoi sa afiseze hosturile disponibile care raspund la scanare\&. Nici un alt fel de test (cum ar fi scanarea de porturi sau detectia sistemului de operare) nu va fi realizat\&. Acest pas este mai intruziv decat scanarea de tip lista si poate fi folosita adesea in acelasi scop\&. Permite o descoperire a tintelor din retea fara a atrage prea mult atentia\&. Cunoscand cate hosturi sunt active este o informatie mult mai valoroasa unui atacator decat simpla lista furizata de scanarea de tip lista a fiecarei adrese IP si a numelor hosturilor\&. +.sp +Administratorii de sistem gasesc adesea aceasta optiune pretioasa ca atare\&. Poate fi usor utilizat pentru numararea masinilor disponibile intr\-o retea sau pentru monitorizarea disponibilitatii serverelor\&. Adesea este denumita maturare ping si este mai de incredere decat pingul asupra adresei de broadcast deoarece multe hosturi nu raspund la solicitarile de broadcast\&. +.sp +Optiunea +\fB\-sP\fRtrimite un pachet ICMP cu solicitare de raspuns si un pachet TCP la portul 80 in mod implicit\&. Cand se executa de catre un utilizator neprivilegiat, un pachet SYN este trimis (folosin apelul +\fBconnect()\fR) la portul 80 al tintei\&. Cand un utilizator privilegiat incearca sa scaneze tinte dintr\-o retea locala, solicitari ARP ( +\fB\-PR\fR) sunt utilizate, doar daca +\fB\-\-send\-ip\fR(adresa IP de expediere) a fost specificat\&. Optiunea +\fB\-sP\fRpoate fi combinata cu oricare dintre tipurile de probe de descoperire (optiunile +\fB\-P*\fR, exluzand +\fB\-P0\fR) pentru o mai mare flexibilitate\&. Daca oricare dintre tipurile de probe si optiuni de porturi sunt utilizate, se renunta la probele implicite (ACK si ICMP cu solicitare de raspuns)\&. Cand firewalluri stricte sunt plasate intre calculatorul sursa care ruleaza Nmap si reteaua tinta, folosirea acelor tehnici avansate este recomandata\&. Altfel, hosturi pot ramane nedescoperite cand firewallul executa comanda drop (pur si simplu ignora pachetele) la probe sau la raspunsuri\&. +.RE +.PP +\fB\-P0\fR(Fara ping) +.RS 4 +Aceasta optiune sare complet peste faza de descoperire\&. In mod normal, Nmap foloseste aceasta faza pentru a determina masinile active pentru scanarea avansata\&. Implicit, Nmap realizeaza scanarea avansata cum ar fi scanarea de porturi, detectia versiunii si a sistemului de operare doar pentru hosturile gasite active\&. Dezactivarea descoperirii hosturilor cu +\fB\-P0\fRface ca Nmap sa incerce tehnicile avansate de scanare pentru +\fIfiecare\fRadresa IP specificata ca tinta\&. Asadar, daca spatiul unei clase B (/16) este specificata in linia de comanda, toate cele 65,536 de IP vor fi scanate cu tehnicile avansate\&. Cel de\-al doilea caracter din optiunea +\fB\-P0\fReste un zero si nu litera O\&. Descoperirea obisnuita a hosturilor este sarita execucandu\-se o scanare de tip lista, dar in loc sa se opreasca si sa afiseze lista de tinte, Nmap continua sa realizeze cererile din linia de comanda ca si cum fiecare adresa IP ar fi activa\&. +.RE +.PP +\fB\-PS [listadeporturi]\fR(Ping TCP SYN) +.RS 4 +Aceasta optiune trimite un pachet TCP gol cu flagul SYN setat\&. Portul de destinatie implicit este 80 (configurabil la compilare prin schimbarea DEFAULT_TCP_PROBE_PORT in +nmap\&.h), dar un alt port poate fi specificat ca parametru\&. Chiar o lista separata prin virgula de porturi poate fi specificata (de exemplu +\fB\-PS22,23,25,80,113,1050,35000\fR),caz in care probele vor fi trimise la fiecare port in paralel\&. +.sp +Flagul SYN sugereaza tintei ca dorim sa stabilim o conexiune\&. In mod normal portul destinatie va fi inchis si un pachet RST (de resetare) este trimis inapoi\&. Daca se intampla ca portul sa fie deschis, tinta va face cel de\-al doilea pas dintr\-un 3\-way\-handshake (stabilirea unei conexiuni in trei pasi) raspunzand cu un pachet TCP SYN/ACK\&. Masina care ruleaza nmap va inchide apoi conexiunea raspunzand cu un pachet RST in loc sa trimita pachetul ACK care ar completa 3\-way\-handshakeul si ar stabili o conexiune completa\&. Pachetul RST este trimis de kernelul sistemului de operare al masinii care ruleaza Nmap ca raspuns la pachetul SYN/ACK neasteptat, si nu de catre Nmap ca atare\&. +.sp +Nmapului nu ii pasa daca portul este deschis sau inchis\&. Fie ca este RST sau SYN/ACK dupa cum s\-a vazut anterior, raspunsul anunta Nmapul ca hostul este activ si raspunde la probe +.sp +Pe masinile UNIX, numai utilizatorii privilegiati +rootsunt capabili sa trimita si sa primeasca pachete TCP in forma bruta\&. Pentru utilizatorii neprivilegiati, un ocolis este automat pus in functiune si implica apelul de sistem connect() initiat impotriva fiecarui port tinta\&. Acesta are ca efect trimiterea unui pachet SYN catre tinta, intr\-o incercare de a stabili conexiunea\&. Daca connect() returneaza o valoare care indica succesul operatiunii sau un raspuns ECONNREFUSED (conexiune refuzata), inseamna ca nivelele inferioare ale stivei TCP au primit un SYN/ACK sau RST iar hostul este marcat ca fiind disponibil\&. Daca tentativa de conexiune este lasata sa astepte un timp mai mare decat timeoutul (timpul maxim in care se asteapta un raspuns), hostul este marcat ca indisponibil\&. Acest ocolis este utilizat si pentru conexiunile IPv6, deoarece constructia pachetelor brute IPv6 nu este inca suportata de Nmap\&. +.RE +.PP +\fB\-PA [lista_de_porturi]\fR(Ping TCP ACK) +.RS 4 +Pingul TCP ACK este similar cu proaspat discutatul ping SYN\&. Diferenta, dupa cum probabil ati ghicit, este ca flagul TCP ACK este setat in locul celui SYN\&. Un astfel de pachet ACK pretinde ca transporta date in cadrul unei conexiuni ACK deja stabilite, dar nu exista nici o astfel de conexiune\&. Asadar tintele trebuie sa raspunda intotdeauna cu un pachet RST, dezvaluindu\-si existenta in cadrul acestui proces\&. +.sp +Optiunea +\fB\-PA\fRfoloseste acelasi port implicit ca probele SYN si de asemenea poate prelua o lista de porturi destinatie in acelasi format\&. Daca un utilizator neprivilegiat incearca aceasta optiune, sau o tinta IPv6 este specificata, ocolisul connect() discutat anterior este utilizat\&. Acest ocolis este imperfect deoarece connect() trimite de fapt un pachet SYN in locul unuia ACK\&. +.sp +Motivul oferirii ambelor probe de ping SYN si ACK este de a maximiza sansele de trecere printr\-un firewall\&. Multi administratori configureaza routerele si alte firewalluri simple pentru a bloca pachetele SYN cu exceptia acelora destinate serviciilor publice cum ar fi serverul web sau serverul de mail al companiei\&. Acest lucru previne realizarea altor conexiuni catre reteaua organizatiei, in timp ce permite utilizatorilor sa realizeze neobstructionati conexiuni catre Internet\&. Aceasta abordare non\-statefull sau stateless (nu se analizeaza ACK) utilizeaza putine resurse ale firewallului sau routerului si este suportata intr\-un procent mare de filtrele hardware sau software\&. Firewallul software din Linux Netfilter/iptables ofera o optiune convenabila +\fB\-\-syn\fRpentru implementarea acestei abordari stateless\&. Cand firewalluri stateless ca acestea sunt in functiune, probele ping SYN ( +\fB\-PS\fR) vor fi mai mult ca sigur blocate in drumul lor catre porturi tinta inchise\&. In aceste cazuri, probele ACK stralucesc deoarece trec cu usurinta de aceste reguli\&. +.sp +Alt tip comun de firewalluri folosesc reguli statefull care ignora pachetele ce nu sunt asteptate\&. Aceasta optiune a fost initial gasita doar in firewallurile high\-end, dar a devenit mult mai comuna de\-a lungul timpului\&. In linux, sistemul Netfilter/iptables suporta aceasta abordare prin optiunea +\fB\-\-state\fR, care catalogheaza pachetele in functie de starea conexiunii\&. O proba SYN este mai probabil sa functioneze impotriva unui astfel de sistem din moment ce pachetele neasteptate sunt in general recunoscute ca fiind simulate si ignorate\&. O solutie la aceasta dilema este trimiterea ambelor probe, SYN si ACK, specificand +\fB\-PS\fRsi +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU [lista_de_porturi]\fR(Ping UDP) +.RS 4 +Alta optiune de descoperire a hosturilor este pingul UDP, care trimite un pachet gol (doar daca optiunea +\fB\-\-data\-length\fRnu este specificata) UDP la portul specificat\&. Lista de porturi are acelasi format cu cel discutat anterior la optiunile +\fB\-PS\fRsi +\fB\-PA\fR\&. daca nici un port nu este specificat, implicit este utilizat 31338\&. Aceasta valoare implicita poate fi configurata la compilare schimband DEFAULT_PROBE_PORT in +nmap\&.h\&. Un port necomun este folosit implicit deoarece trimiterea unui pachet la un port deschis nu este de dorit pentru acest tip de scanare\&. +.sp +Dupa trimiterea probei catre un port inchis al tintei, proba UDP trebuie sa obtina un pachet ICMP de port indisponibil\&. Acest lucru semnalizeaza Nmapul ca masina este activa si disponibila\&. Multe alte tipuri de erori ICMP, cum ar fi cele de host/retea ce nu pot fi contactate sau TTL (time to live = timp de viata; timpul maxim admis pentru asteptarea raspunsului) depasit sunt indicatori al unui host inactiv sau care nu poate fi contactat\&. Lipsa unui raspuns este interpretata la fel\&. Daca un port deschis este nimerit de pachetul de proba, multe servicii vor ignora pachetul si nu vor returna nici un raspuns\&. De aceea portul de proba este 31338, care are o probabilitate mare sa nu fie utilizat\&. Cateva servicii vor raspunde totusi la un pachet UDP gol, dezvaluind in acest fel Nmapului faptul ca masina este disponibila\&. +.sp +Principalul avantaj al acestui tip de scanare este ca poate trece de firewallurile si filtrele care monitorizeaza doar traficul TCP\&. De exemplu, am avut o data un router wireless Linksys BEFW11S4\&. Interfata externa a acestui dispozitiv filtra in mod implicit toate porturile TCP, dar probele UDP puteau totusi sa obtina mesajele de port indisponibil si in felul acesta sa arate starea hostului\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR(Tipuri de ping ICMP) +.RS 4 +Pe langa tipurile de descoperire TCP si UDP uzuale discutate anterior, Nmap poate trimite pachete standard prin intermediul omniprezentului +ping\&. Nmap un pachet ICMP de tipul 8 (solicitare de raspuns) catre adresa IP tinta, asteptand un pachet de tip 0 (raspuns) in schimb de la hosturile disponibile\&. Din pacate pentru exploratorii de retele, in zilele noastre multe hosturi si firewalluri blocheaza aceste pachete, in loc sa raspunda in conformitate cu +\m[blue]\fBRFC1122\fR\m[]\&\s-2\u[3]\d\s+2\&. Din acest motiv scanarile ICMP simple sau rareori de incredere impotriva unor tinte necunoscute din Internet\&. Dar pentru administratorii de sistem care monitorizeaza o retea interna, ea poate fi o abordare practica si eficienta\&. Folositi optiunea +\fB\-PE\fRpentru a activa acest comportament de solicitare a raspunsului\&. +.sp +Cu toate ca cererile de raspuns ICMP sunt standard, Nmap nu se opreste aici\&. Standardul ICMP ( +\m[blue]\fBRFC792\fR\m[]\&\s-2\u[4]\d\s+2) specifica de asemenea solicitarea amprentei de timp, a informatiilor si a mastii de retea corespunzatoare codurilor 13,15 si 17\&. Aceste solicitari au ca scop aflarea de informatii precum amprenta de timp sau masca de retea dar pot fi usor folosite si la descoperirea hosturilor\&. Un sistem care raspunde este disponibil\&. Nmap nu implementeaza inca solicitarea de informatii (15) deoarece acestea nu beneficiaza de o implementare la nivel larg\&. RFC 1122 insista ca +„un host NU TREBUIE sa implmenteze aceste mesaje\(rq\&. Solicitarile de amprenta de timp si masca de retea pot fi trimise cu ajutorul optiunilor +\fB\-PP\fR, respectiv +\fB\-PM\fR\&. Un raspuns amprenta de timp (ICMP cod 14) sau un raspuns masca de retea (cod 18) dezvaluie un host disponibil\&. Aceste doua interogari pot fi de folos cand administratorul de retea blocheaza pingul ICMP standard uitand faptul ca si celelalte solicitari ICMP pot fi folosite in acelasi scop\&. +.RE +.PP +\fB\-PR\fR(Ping ARP) +.RS 4 +Unul dintre cele mai comune scenarii de utilizare ale Nmapului o reprezinta scanarea unei intregi retele locale (LAN)\&. In multe LANuri, in special in cele care folosesc spatiul privat de adrese specificat in RFC1918, mare majoritate a adreselor IP nu sunt utilizate la un moment dat\&. Cand Nmap incearca sa trimita un pachet ICMP solicitand un raspuns, sistemul de operare trebuie sa determine adresa de destinatie hardware (ARP) corespunzatoare adresei tinta IP astfel incat sa poata adresa in mod corect frameul ethernet\&. Este adesea un proces lent, din moment ce sistemele de operare nu au fost proiectate sa realizeze milioane de solicitari ARP catre hosturi indisponibile intr\-o peioada foarte scurta de timp\&. +.sp +Scanarea ARP pune Nmapul si algoritmii lui optimizati in functiune pentru a realiza solicitarile ARP\&. Si daca primeste un raspuns, Nmap nici nu mai ia in in considerare pingurile bazate pe IP din moment ce stie deja ca hostul este activ\&. Acest lucru face scanarea ARP mult mai rapida si mai corecta decat scanarile bazate pe IP\&. Asadar este realizata implicit cand Nmapul detecteaza faptul ca adresele scanate fac parte dintr\-un LAN\&. Chiar daca tipuri diferite de ping (cum ar fi optiunea +\fB\-PE\fRsau +\fB\-PS\fR) sunt specificate, Nmap foloseste ARP in locul lor pentru orice adresa din acelasi LAN cu masina care ruleaza Nmap\&. Daca sunteti sigur ca nu doriti scanare ARP, specificati +\fB\-\-send\-ip\fR\&. +.RE +.PP +\fB\-n\fR(Nu se realizeaza rezolutia DNS) +.RS 4 +Transmite Nmapului ca +\fIniciodata\fRsa nu realizeze rezolutia inversa DNS pentru IPurile active gasite\&. Din moment ce DNS este adesea lent, aceasta optiune poate mari viteza de scanare\&. +.RE +.PP +\fB\-R\fR(Rezolutie DNS pentru toate tintele) +.RS 4 +Transmite Nmapului ca +\fIintotdeauna\fRsa realizeze rezolutia DNS pentru IPurile tinta\&. In mod normal acest lucru este realizat cand o masina este gasita activa\&. +.RE +.PP +\fB\-\-system\-dns\fR(Foloseste DNSul sistemului de operare) +.RS 4 +Implicit, Nmap rezolva adresele IP prin trimiterea de cereri la DNSurile configurate pe sistem si asteapta apoi raspunsuri\&. Multe solicitari (adesea foarte multe) sunt realizate in paralel pentru o performanta crescuta\&. Specificati aceasta optiune daca doriti sa folositi DNSul sistemului de operare (cate un IP o data prin intermediul apelului getnameinfo())\&. Aceasta optiune este lenta si rareori folositoare\&. O putei folosi in cazul in care exista o problema in codul DNS al Nmapului – va rugam sa ne contactati in acest caz\&. DNSul sistemului este intotdeauna folosit pentru scanarile IPv6\&. +.RE +.SH "BAZELE SCANARII DE PORTURI" +.PP +Cu toate ca functiile Nmap au crescut ca numar in timp, el a inceput ca un scaner de porturi eficient si acesasta ramane fuctia lui de baza\&. Simpla comanda +\fBnmap \fR\fB\fItinta\fR\fRscaneaza mai mult de 1660 de porturi TCP ale +\fItintei\fR\&. In timp ce multe scanere de porturi traditionale catalogheaza porturile in deschise si inchise, Nmap este mult mai avansat\&. El imparte porturile in sase stari: +open (deschis), +closed (inchis), +filtered (filtrat), +unfiltered (nefiltrat), +open|filtered (deschis|filtrat), or +closed|filtered (inchis|filtrat)\&. +.PP +Aceste stari nu sunt proprietati intrinsece ale porturilor, dar descriu modul in care sunt vazute de Nmap\&. De exemplu, o scanare Nmap din aceeasi retea ca si tinta poate arata portul tcp 135 ca deschis, in timp ce o scanare realizata simultan din Internet cu aceleasi optiuni poate arata portul ca +filtered (filtrat)\&. +.PP +\fBCele sase stari ale porturilor recunoscute de Nmap\fR +.PP +open (deschis) +.RS 4 +O aplicatie accepta in mod activ conexiuni TCP sau pachete UDP la respectivul port\&. Gasirea acestora este adesea scopul principal al scanarii de porturi\&. Oamenii preocupati de securitate stiu ca fiecare port deschis reprezinta o cale de acces pentru un atac\&. Atacatorii si pen\-testerii doresc exploatarea porturilor deschise, in timp ce administratorii incearca sa le inchida sau sa le protejeze prin firewalluri fara a incurca planurile utilizatorilor legitimi\&. Porturile deschise sunt interesante si pentru scanarile ce nu urmaresc stabilirea securitatii deoarece ele arata serviciile disponibile pentru retea de la respectivul host\&. +.RE +.PP +closed (inchis) +.RS 4 +Un port inchis este accesibil (primeste si raspunde la un pachet de proba trimis de Nmap), dar nu exista nici o aplicatie care sa asculte la el\&. Pot fi folositoare in dezvaluirea starii hostului sau ca parte a detectiei sistemului de operare\&. Deoarece cu porturile inchise se pote comunica, ele merita scanate si mai tarziu in caz ca vreunul dintre ele se deschide\&. Administratorii pot lua in considerare blocarea unor astfel de porturi cu ajutorul unui firewall\&. Astfel ele vor aparea avand starea filtrat, discutata mai departe +.RE +.PP +filtered (filtrat) +.RS 4 +Nmap nu poate determina daca portul este deschis datorita unui filtru de pachete care impiedica pachetele sa ajunga la portul destinatie\&. Filtrarea poate proveni de la un firewall dedicat, din regulile unui router sau dintr\-un firewall software al tintei\&. Aceste porturi frustreaza atacatorii deoarece furnizeaza foarte putine informatii\&. Uneori raspund cu un mesaj de eroare ICMP cum ar fi tipul 3 codul 13 (destinatie care nu a putu fi atinsa: comunicatia interzisa administrativ), dar filtrele care executa operatia drop (ignora pachetul) fara sa raspunda sunt mult mai comune\&. Acest lucru forteaza Nmap sa retrimita de cateva ori probele pentru cazul in care pachetul s\-a pierdut din cauza congestionarii retelei si nu din cauza filtrarii\&. Acest lucru incetineste viteza de scanare dramatic\&. +.RE +.PP +unfiltered (nefiltrat) +.RS 4 +Starea nefiltrata inseamna ca portul este accesibil, dar Nmap nu poate determina daca portul este inchis sau deschis\&. Numai scanarea ACK, folosita pentru maparea regulilor din firewall, clasifica portul in aceasta stare\&. Scanarea porturilor nefiltrate cu alte tipuri de optiuni cum ar fi scanarea Window(fereastra), scanarea SYN sau scanarea FIN poate stabili daca portul este deschis\&. +.RE +.PP +open|filtered (deschis|filtrat) +.RS 4 +Nmap plaseaza porturi in aceasta categorie cand nu poate determina daca portul este deschis sau filtrat\&. Acestea apar pentru tipurile de scanari in care porturile deschise nu ofera nici un raspuns\&. Lipsa raspunsului poate sa mai insemne si ca un filtru de pachete a ignorat pachetul de proba sau orice raspuns aferent\&. Asadar Nmap nu poate stii sigur daca portul este deschis sau filtrat\&. Scanarile UDP, IP, FIN, Null sau Xmas clasifica porturile in aceasta stare\&. +.RE +.PP +closed|filtered (inchis|filtrat) +.RS 4 +Aceasta stare este folosita cand Nmap este in imposibilitatea de a determina daca portul este inchis sau filtrat\&. Este folosit doar de scanarea IPID Idle\&. +.RE +.SH "TEHNICI DE SCANARE DE PORTURI" +.PP +Ca un incepator care incearca sa repare un motor, ma pot stradui ore intregi sa gasesc ustensile rudimentare (ciocan, banda adeziva, etc\&.) potrivite pentru operatia propusa\&. Cand esuez lamentabil si imi las rabla pe mana unui mecanic adevarat, invariabil el gaseste in marea de unelte ustensila potrivita care face treaba sa para una fara efort\&. Arta scanarii de porturi este similara\&. Expertii inteleg multitudinea de tehnici de scanare si o aleg pe cea potrivita (sau combinatia potrivita) pentru o anumita misiune\&. Pe de alta parte, utilizatorii neexperimentati si script kiddies incearca sa rezolve problema prin scanarea SYN implicita\&. Din moment ce Nmap este gratuit, singura bariera in arta scanarii de porturi o reprezinta cunostintele\&. Acest fapt bate lucrurile din viata reala, unde cu multa pricepere poti determina ca ai nevoie de un arc nou pentru compresor, dar totusi esti nevoit sa platesti si bani buni pe el\&. +.PP +Multe dintre tipurile de scanare sunt disponibile doar utilizatorilor privilegiati\&. Aceasta datorita faptului ca trimit si primesc pachete brute, care necesita acces root pe sistemele UNIX\&. Folosirea unui cont de administrator sub Windows este recomandata, cu toate ca Nmap functioneaza cateodata si pentru utilizatorii neprivilegiati pe platformele pe care WinPcap a fost deja incarcat de sistemul de operare\&. Necesitatea privilegiilor root au reprezentat o problema serioasa la lansarea Nmapului in 1997, deoarece multi utilizatori beneficiau doar de conturi limitate\&. Acum lumea e diferita\&. Calculatoarele sunt ieftine, multi oameni au acces direct si permanent la Internet iar sistemele UNIX (incluzand Linux si MAC OS X) sunt raspandite\&. O versiune de Windows a Nmap este acum disponibila, permitand rularea acestuia pe si mai multe calculatoare\&. Oricare ar fi motivul, utilizatorii au o nevoie mai mica de a rula Nmap de pe conturi limitate\&. Acesta este un lucru bun, deoarece optiunile privilegiate sunt mult mai puternice si mai flexibile\&. +.PP +Chiar daca Nmap incearca sa produca cele mai precise rezultate, tineti minte intotdeauna ca el se bazeaza pe pachetele returnate de masina tinta (sau firewallul din fata lui)\&. Asemenea hosturi pot sa nu fie de incredere iar raspunsurile trimise pot fi menite sa incurce sau sa duca pe o pista gresita Nmapul\&. Comune sunt hosturile neconcordante cu standardele RFC care nu raspund cum ar trebui probelor Nmap\&. Scanarile Fin, Null si Xmas sunt in mod particular susceptibile de asa ceva\&. Astfele de probleme sunt specifice anumitor tipuri de scanari si sunt discutate individual la fiecare tip de scanare in parte\&. +.PP +Aceasta sectiune documenteaza multitudinea de tehnici de scanare de porturi suportate de Nmap\&. O singura metoda poate fi folosita la o scanare (nu pot fi combinate mai multe tipuri), cu exceptia scanarii UDP ( +\fB\-sU\fR) care poate fi combinata cu unul din tipurile de scanare TCP\&. Cu un ajutor la memorare, tipurile de scanare de porturi sunt de forma +\fB\-s \fR\fB\fIC\fR\fR, unde +\fIC\fReste caracterul principal al numelui scanarii, in general primul\&. Singura exceptie o reprezinta scanarea sarita FTP (metoda depasita moral) ( +\fB\-b\fR)\&. Implicit, Nmap executa o scanare SYN, cu toate ca o poate inlocui cu una Connect() daca utilizatorul nu are privilegii pentru a trimite pachete brute (acces root pe sisteme UNIX) sau daca tinte IPv6 au fost specificate\&. Dintre scanarile mentionate in aceasta sectiune, utilizatorii neprivilegiati le pot executa doar pe cele de tipul connect() si ftp sarit\&. +.PP +\fB\-sS\fR(Scanare TCP SYN) +.RS 4 +Scanarea SYN este implicita si cea mai populara metoda pentru motive bine intemeiate\&. Poate fi executata rapid, scanand mii de porturi pe secunda intr\-o retea rapida neobstructionata de un firewall deranjant\&. Scanarile SYN sunt relativ invizibile, din moment ce nu stabilesc niciodata o conexiune TCP\&. Functioneaza impotriva oricarei implementari conforma cu standardul de stiva TCP in loc sa depinda de platforma asa cum o fac scanarile Fin/Null/Xmas, Maimon si Idle\&. Ofera de asemenea o diferenta clara si precisa intre starile +open (deschisa), +closed (inchisa), si +filtered (filtrata)\&. +.sp +Aceasta tehnica este adesea denumita ca o scanare jumatate deschisa, deoarece nu deschideti o conexiune completa TCP\&. Trimiteti un pachet SYN, ca si cum ati deschide o conexiune si asteptati un raspuns\&. Un pachet SYN/ACK indica faptul ca portul este deschis, in timp ce un RST (reset) este indicatorul unui port inchis\&. Daca nici un raspuns nu este primit dupa mai multe retransmiteri, portul este marcat ca fiind filtrat\&. Portul este de asemena marcat filtrat daca un mesaj de eroare ICMP negasit (tipul 3, codurile 1,2,3,9,10 sau 13) este receptionat\&. +.RE +.PP +\fB\-sT\fR(Scanare TCP connect()) +.RS 4 +Scanarea TCP Connect() este implicita cand SYN nu reprezinta o optiune viabila\&. Acesta este cazul in care utilizatorul nu beneficiaza de posibilitatea de trimitere a pachetelor brute sau scaneaza retele IPv6\&. In locul scrierii pachetelor brute asa cum o fac majoritatea tipurilor de scanare, Nmap cere nivelelor inferioare ale sistemului de operare sa stabileasca o conexiune cu masina tinta si portul dorit realizand un apel de sistem +connect()\&. Acesta este acelasi apel de sistem prin care aplicatiile de nivel inalt cum ar fi browserele, clientii P2P si in general aplicatiile cu functii de retea le folosesc pentru stabilirea conexiunii\&. Este o parte a interfetei de programare cunoscuta ca Berkley Sockets API\&. In loc sa citeasca pachete brute ca raspuns, Nmap foloseste API pentru a obtine informatii despre starea fiecarei conexiuni incercate\&. +.sp +Cand scanarea SYN este disponibila, ea reprezinta in general alegerea mai buna\&. Nmap are un control mai restrans asupra nivelului inalt al apelului +connect()cu pachete brute, facandu\-l mai putin eficient\&. Apelul de sistem completeaza conexiunea pentru a deschide conexiunea in loc sa efectueze o jumatate de conexiune asa cum scanarea SYN o face\&. Nu numai ca acest lucru dureaza mai mult si necesita mai multe pachete pentru a obtine aceeasi informatie, dar exista sanse mai mari ca masinile tinta sa logheze conexiunea\&. Un IDS decent va prinde si el conexiunea, dar multe masinii nu au astfel de sisteme de alarma\&. Multe servicii ale unui sistem uzual UNIX vor adauga o nota la syslog si cateodata si un mesaj criptic de eroare cand Nmap se conecteaza si apoi inchide conexiunea fara a trimite date\&. Servicii patetice se pot bloca in acest caz, dar nu este un lucru comun\&. Un administrator care vede o multime de tentative de conexiune in loguri venind de la o singura sursa trebuie sa stie ca a fost scanat prin metoda connect\&. +.RE +.PP +\fB\-sU\fR(Scanare UDP) +.RS 4 +In tim ce multe servicii in Internet ruleaza prin protocolul TCP, serviciile +\m[blue]\fBUDP\fR\m[]\&\s-2\u[5]\d\s+2sunt si ele raspandite\&. DNS, SNMP si DHCP (porturile inregistrate 53, 161/162 si 67/68) sunt trei dintre cele mai comune\&. Deoarece scanarea UDP este in general lenta si mai dificila decat TCP, unii auditori de securitate ignora aceste porturi\&. Aceasta este o greseala, deoarece serviciile UDP exploatabile sunt destul de cunoscute si atacatorii cu siguranta nu vor ignora un intreg protocol\&. Din fericire, Nmap poate ajuta la inventarierea porturilor UDP\&. +.sp +Scanarea UDP este acivata cu optiunea +\fB\-sU\fR\&. Poate fi combinata cu o scanare TCP cum ar fi scanrea SYN ( +\fB\-sS\fR) pentru a verifica ambele protocoale in timpul aceleiasi scanari\&. +.sp +Scanarea UDP functioneaza prin trimiterea de headere UDP goale (fara date) la fiecare port specificat al masinii tinta\&. Daca un mesaj ICMP de port inaccesibil (tipul 3, codul 3) este returnat, portul este +closed (inchis)\&. Alte mesaje ICMP de port care nu poate fi atins (tipul 3, codurile 1, 2, 9, 10 sau 13) marcheaza portul ca +filtered (filtrat)\&. Ocazional, un serviciu poate raspunde cu un pachet UDP, demonstrand faptul ca este +open (deschis)\&. Daca nici un raspuns nu este primit dupa mai multe retransmisii atunci portul este catalogat ca +open|filtered (deschis|filtrat)\&. Asta inseamna ca portul poate fi deschis sau poate un filtru de pachete blocheaza comunicatia\&. Scanarile de versiune ( +\fB\-sV\fR) pot fi folosite pentru a ne ajuta sa diferentiem porturile cu adevarat deschise de cele filtrate\&. +.sp +O mare incercare in scanarea UDP o reprezinta realizarea acesteia rapid\&. Porturile deschise si filtrate rareori trimit raspuns, lasand Nmapul sa astepte si apoi sa retrimita pachetul pentru situatia in care proba sau raspunsul s\-au pierdut\&. Porturile inchise reprezinta adesea o problema si mai mare\&. In mod uzual trimit inapoi un mesaj de eroare ICMP inaccesibil\&. Dar spre deosebire de de pachetele RST trimise de porturile TCP inchise ca raspuns la scanarile SYN sau connect, multe hosturi limiteaza rata de mesaje ICMP port inaccesibil\&. Linux si Solaris sunt foarte stricte in aceasta privinta\&. De exemplu, kernelul Linux 2\&.4\&.20 limiteaza aceste mesaje la unul pe secunda (din +net/ipv4/icmp\&.c)\&. +.sp +Nmap detecteaza rata de limitare si incetineste scanarea in conformitate cu aceasta pentru a preveni inundarea retelei cu pachete inutile pe care masina tinta le va ignora\&. Din pacate, o limitare de genul Linuxului de un pachet la o secunda face ca o scanare de 65\&.536 de porturi sa dureze mai mult de 18 ore\&. Ideile de accelerare a scanarii UDP includ scanarea in paralel a mai multor hosturi, scanarea doar a porturilor cunoscute, scanarea din spatele firewallului si folosind optiunea +\fB\-\-host\-timeout\fRpentru a sari peste hosturile lente\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR(Scanari TCP Null, FIN, si Xmas) +.RS 4 +Aceste trei tipuri de scanare (chiar si mai multe posibile folosind optiunea +\fB\-\-scanflags\fRdescrisa in aceasta sectiune) exploateaza o portita din +\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[6]\d\s+2pentru a diferentia intre porturile +deschise (open)si cele +inchise (closed)\&. Pagina 65 spune ca +„daca starea portului [destinatie] este INCHIS \&.\&.\&. un segment de intrare care nu contine un RST face ca un raspuns RST sa fie trimis inapoi\(rqIn urmatoarea pagina se discuta pachetele trimise catre porturile deschise fara bitii SYN, RST sau ACK setati, specificand ca: +„este putin probabil sa ajungeti intr\-o asemenea situatie, dar daca o faceti, ignorati segmentul si reveniti\(rq +.sp +Cand scanam un sistem compatibil cu textul RFC, orice pachet care nu contine bitii SYN, RST sau ACK va genera un raspuns RST daca portul este inchis si nici un raspuns daca portul este deschis\&. De vreme ce nici unul dintre acesti biti nu este inclus, orice combinatie a celorlalti trei (FIN, PSH si URG) este buna\&. Nmap exploateaza aceasta problema cu trei tipuri de scanari: +.PP +Scanare Null ( \fB\-sN\fR) +.RS 4 +Nu seteaza nici un bit (flagul header tcp este 0) +.RE +.PP +Scanare FIN ( \fB\-sF\fR) +.RS 4 +Seteaza doar bitul TCP FIN\&. +.RE +.PP +Scanare Xmas ( \fB\-sX\fR) +.RS 4 +Seteaza flagurile FIN, PSH si URG, luminand pachetul ca pe un pom de Craciun\&. +.RE +.sp +Aceste trei tipuri de scanare sunt identice in comportament exceptand flagurile TCP setate in pachetele de proba\&. Daca un pachet RST este primit, portul este considerat +closed (inchis), in vreme ce nici un raspuns inseamna un port +open|filtered (deschis|filtrat)\&. Portul este marcat ca +filtered (filtrat)daca un mesaj de eroare ICMP de port indisponibil (tipul 3, codurile 1, 2, 3, 9, 10 sau 13) este receptionat\&. +.sp +Principalul avantaj al acestor tipuri de scanare este acela ca se pot strecura prin anumite firewalluri non\-statefull si routere cu filtrare de pachete\&. Alt avantaj al acestor tipuri de scanare este ca sunt si mai discrete decat o scanare SYN\&. Nu va bazati pe asta – multe IDSuri moderne pot fi configurate sa le detecteze\&. Marea problema este ca nu toate sistemele urmeaza RFC 793 litera cu litera\&. Un numar de sisteme trimit un raspuns RST la probe indiferent daca portul este deschis sau nu\&. Acest lucru face ca porturile sa fie marcate ca fiind +inchise (closed)\&. Majoritatea sistemelor care fac acest lucru sunt Microsoft Windows, multe dispozitive Cisco, BSDI si IBM OS/400\&. Acest tip de scanare functioneaza impotriva celor mai multe sisteme bazate pe UNIX\&. Alta problema este ca aceste tipuri de scanari nu pot face diferenta intre porturile +deschise (open)de cele +filtrate (filtered), lasand un raspuns de tipul +deschis|filtrat (open|filtered)\&. +.RE +.PP +\fB\-sA\fR(Scanare TCP ACK) +.RS 4 +Aceasta scanare e diferita de celelalte discutate pana acum in sensul in care nu poate determina niciodata un port +deschis (open)(sau chiar +deschis|filtrat (open|filtered))\&. Este folosita pentru a mapa regulile firewallului, determinand daca acestea sunt statefull sau nu si ce porturi sunt filtrate\&. +.sp +Packetul de proba la scanrea ACK are doar bitul ACK setat (doar daca nu se specifica altceva cu +\fB\-\-scanflags\fR)\&. Cand scanam sisteme nefiltrate porturile, +deschise (open)si +inchise (closed)vor returna un pachet RST\&. Nmap le eticheteaza ca +nefiltrate (unfiltered), ceea ce inseamna ca sunt disponibile pentru pachetul ACK dar nu se poate determina daca sunt +deschise (open)sau +inchise (closed)\&. Porturile care nu raspuns, sau trimit inapoi anumite mesaje de eroare ICMP (tipul 3, codurile 1, 2, 3, 9, 10 sau 13) sunt etichetate ca +filtrate (filtered)\&. +.RE +.PP +\fB\-sW\fR(Scanare TCP Window) +.RS 4 +Scanarea Window (fereastra) este asemanatoare cu scanarea ACK, cu exceptia ca exploateaza un detaliu de implementare a anumitor sisteme pentru a diferentia porturile deschise de cele inchise, in loc sa aiseze +nefiltrat (unfiltered)cand un RST este returnat\&. Realizeaza acest lucru prin examinarea campului TCP Window din pachetul RST returnat\&. Pe unele sisteme, porturile deschise folosesc o valoare pozitiva in timp ce porturile inchise au valoarea 0\&. Astfel ca in loc sa afiseze o lista de porturi +nefiltrate (unfiltered)cand primeste un RST, scanrea TCP Window marcheaza porturile ca +deschise (open)sau +inchise (closed)daca valoarea TCP Window este pozitiva sau 0, dupa caz\&. +.sp +Scanarea se bazeaza pe detalii de implementare a unei minoritati de sisteme din Internet, deci nu va bazati intotdeauna pe ea\&. Sistemele care nu suporta aceasta implementare returneaza de obicei toate porturile +inchise (closed)\&. Desigur, este posibil ca respectiva masina sa nu aiba porturi deschise\&. Daca majoritatea porturilor sunt +inchise (closed)dar cateva numere comune cum ar fi (22, 25, 53) sunt +filtrate (filtered), sistemul este unul compatibil cu scanarea\&. Ocazional, sistemul va raporta un comportament inversat\&. Daca scanarea returneaza 1000 de porturi deschise si 3 inchise sau filtrate, atunci acele trei pot fi adevaratele porturi deschise\&. +.RE +.PP +\fB\-sM\fR(Scanarea TCP Maimon) +.RS 4 +Scanarea TCP Maimon este denumita astfel dupa descoperitorul ei, Uriel Maimon\&. El descrie aceasta tehnica in Magazinul Phrak editia 49 (noiembrie 1996)\&. Nmap, care include aceasta tehnica, a fost lansat doua editii mai tarziu\&. Tehnica este similara cu scanarile Null, FIN si Xmas cu exceptia ca proba este FIN/ACK\&. In conformitate cu RFC 793, un pachet RST trebuie generat ca raspuns la o astfel de proba indiferent daca portul este inchis sau deschis\&. Oricum, Uriel a remarcat faptul ca multe sisteme derivate din BSD ignora pachetul daca portul este deschis\&. +.RE +.PP +\fB\-\-scanflags\fR(Scanare TCP personalizata) +.RS 4 +Utilizatorii avansati de Nmap nu trebuie sa se limiteze la tipurile de scanare generale oferite Optiunea +\fB\-\-scanflags\fRva permite sa creati propriile tipuri de scanare prin specificarea flagurilor TCP\&. Lasati spiritul creativ sa lucreze, penetrand IDSurile ale caror producatori se multumesc sa adauge reguli specifice doar pentru tipurile clasice de scanare\&. +.sp +Argumentul pentru +\fB\-\-scanflags\fRpoate fi o valoare numerica cum ar fi 9 (PSH si FIN), dar folosirea numelor simbolice este mult mai comoda\&. Puneti alaturi orice combinatie dintre +URG, +ACK, +PSH, +RST, +SYN, and +FIN\&. De exemplu, +\fB\-\-scanflagsURGACKPSHRSTSYNFIN\fRsetaza toti bitii, desi nu este foarte folositor pentru scanare\&. Ordinea in care se fac specificarile este irelevanta\&. +.sp +In plus fata de specificarea flagurilor, puteti specifica si tipul de scanare TCP (cum ar fi +\fB\-sA\fRsau +\fB\-sF\fR)\&. Aceasta spune Nmapului cum sa interpreteze raspunsurile\&. De exemplu, o scanare SYN considera ca lipsa unui raspuns indica un port +filtrat (filtered), in timp ce o scanare FIN trateaza acelasi raspuns ca +deschis|filtrat (open|filtered)\&. Nmap se va comporta in acelasi fel in care o face pentru scanarile de baza, cu exceptia faptului ca va folosi flagurile TCP specificate\&. Daca nu specificati o scanare de baza, SYN va fi utilizata\&. +.RE +.PP +\fB\-sI <host zombie [:port_de_proba]>\fR(Scanare Idle) +.RS 4 +Aceasta metoda avansata de scanare permite o scanare TCP complet oarba a tintei (insemnand ca nici un pachet nu este trimis tintei de la adresa IP reala)\&. In loc, un canal derivat de atac exploateaza o secventa de fragmentare IPID predictibila a hostului zombie pentru a culege informatii despre porturile deschise pe masina tinta\&. Sistemele IDS vor indica scanarea ca venind de la hostul zombie specificat (care trebuie sa fie functional si sa indeplineasca anumite criterii)\&. Acest tip fascinant de scanare este prea complex pentru a fi descris in acest ghid de referinta, astfel ca am scris un document informativ cu detalii complete disponibil la +\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&. +.sp +In afara faptului ca este extrem de discreta (datorita naturii oarbe), acest tip de scanare permite maparea relatiilor de incredere bazate pe IP intre masini\&. Lista de porturi arata porturile deschise +\fIdin perspectiva hostului zombie\&.\fRAsa ca puteti incerca scanarea tintei folosind diferiti zombie despre care credeti ca ar putea avea relatii de incredere cu tinta (prin router/filtru de pachete)\&. +.sp +Puteti adauga doua puncte (\(lq:\(rq) urmate de numarul portului de pe calculatorul zombie daca vreti sa probati un port particular al zombieului pentru modificari IPID\&. Altfel Nmap va folosi portul utilizat implicit pentru pinguri tcp (80)\&. +.RE +.PP +\fB\-sO\fR(Scanarea protocolului IP) +.RS 4 +Scanarea protocolului IP permite determinarea protocoalelor (TCP, ICMP, IGMP, etc\&.) suportate de masina tinta\&. Aceasta nu reprezinta din punct de vedere tehnic o scanare de porturi, din moment ce trece prin numarul protocoalelor IP in loc de numarul porturilor TCP sau UDP\&. Totusi foloseste optiunea +\fB\-p\fRpentru selectarea numerelor de protocol, raporteaza rezultatele in formatul de tabel specific scanriif de porturi, si chiar foloseste acelasi motor de scanare ca la scanarea de porturi\&. Este strans legata asadar de scanarea de porturi asa ca apartine acestei categorii\&. +.sp +Pe langa faptul ca este folositoare in sine, scanarea protocoalelor demonstreaza puterea softwareului open source\&. In vreme ce ideea fundamentala este destul de simpla, nu m\-am gandit sa adaug sau sa primesc solicitari pentru o astfel de functionalitate\&. Apoi in vara lui 2000, Gerhard Rieger a intuit aceasta necesitate, a scris un patch excelent implementand\-o si a trimis\-o la lista de discutii nmap\-hackers\&. Am incorporat patchul in distributia Nmap si am lansat o noua versiune in ziua urmatoare\&. Putine softwareuri comerciale au utilizatori suficient de entuziasti sa realizeze si sa contribuie cu propriile imbunatatiri\&. +.sp +Scanarea protocoalelor functioneaza intr\-un mod similar cu scanarea UDP\&. In locul iterarii numerelor de porturi ale unui pachet UDP, se trimite un pachet IP si se itereaza cei 8 biti ai ai campului destinat protocolului din headerul pachetului IP\&. Headerele sunt de obicei goale, necontinand date si nici macar headerul potrivit pentru protocolul pretins\&. Cele trei exceptii sunt TCP, UDP si ICMP\&. Un header potrivit pentru acestea este inclus din moment ce unele sisteme nu le vor trimite altfel si pentru ca Nmap are deja functiile sa le creeze\&. In loc sa primeasca mesaje ICMP de port indisponibil, scanarea de protocoale cauta aceste mesaje de +\fIprotocol\fRICMP port indiponibil\&. Daca Nmap primeste orice raspuns de la tinta, Nmap marcheaza protocolul ca +deschis (open)\&. Un mesaj ICMP de protocol indisponibil (tip 2, cod 3) face ca protocolul sa fie marcat +inchis (closed)\&. Alte erori ICMP de indisponibilitate (tipul 3, codurile 1, 3, 9, 10 sau 13) duc la marcarea protocolului ca +filtrat (filtered)(cu toate ca ele dovedesc ca ICMP este +deschis (open)in acelasi timp)\&. Daca nici un mesaj nu este primit dupa retransmisie, protocolul este marcat ca +deschis|filtrat (open|filtered) +.RE +.PP +\fB\-b <host ftp de intermediere>\fR(Scanare FTP sarita) +.RS 4 +Un aspect interesant al protocolului FTP ( +\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[7]\d\s+2) este suportul pentru asa numitele conexiuni proxy ftp\&. Acesta permite utilizatorului conectarea la un server FTP si apoi solicitarea ca anumite fisiere sa fie trimise pe un al alt server\&. O astfel de functionalitate poate fi folosita pentru abuzuri asa ca multe servere au incetat sa o mai suporte\&. Unul dintre aceste abuzuri face ca serverul FTP sa scaneze alte hosturi\&. Cereti serverului sa trimita un fisier la fiecare port al masinii tinta\&. Mesajul de eroare va descrie daca portul este inchis sau deschis\&. Este o buna modalitate de a sari un firewall deoarece FTPurile sunt adesea plasate in zone cu acces la reteaua interna\&. Nmap suporta scanarea ftp sarita prin optiunea +\fB\-b\fR\&. Preia un argument de forma +\fInumeutilizator\fR: +\fIparola\fR@ +\fIserver\fR: +\fIport\fR\&. +\fIServer\fReste numele sau adresa IP a serverului FTP vulnerabil\&. La fel ca la URLul normal puteti omite +\fInumeutilizator\fR: +\fIparola\fR, caz in care sunt folosite valorile implicite (numeutilizator: +anonymousparola: +\-wwwuser@)\&. Numarul portului (si caracterul doua puncte \(lq:\(rq care il precede) pot fi omise de asemenea, caz in care portul implicit FTP (21) al +\fIserverului\fReste utilizat\&. +.sp +Aceasta vulnerabilitate era raspandita in 1997 cand Nmap a fost lansat, dar in mare parte a fost rezolvata\&. Servere vulnerabile exista inca, deci merita sa le cautati cand orice alta optiune a picat\&. Daca trecerea de un firewall reprezinta tinta dumneavoastra, scanati reteaua dupa portul 21 (sau orice alt serviciu ftp pe care il detectati cu ajutorul optiunii de identificare a versiunii), apoi incercati un atac sarit prin respectivul server\&. Nmap va va anunta daca serverul este vulnerabil sau nu\&. Daca incercati doar sa va acoperiti urmele, nu aveti nevoie (de fapt nici nu trebuie) sa va limitati la hosturile din reteaua tinta\&. Inainte sa scanati aleator prin Internet dupa servere FTP vulnerabile, luati in considerare faptul ca administratorii de sistem pot sa nu aprecieze faptul ca abuzati de serverele lor in acest mod\&. +.RE +.SH "SPECIFICAREA PORTURILOR SI A ORDINII DE SCANARE" +.PP +In plus fata de toate metodele discutate anterior, Nmap ofera optiuni pentru specificarea porturilor ce urmeaza a fi scanate si daca scanarea se va realiza intr\-o ordine aleatoare sau secventiala\&. Implicit, Nmap scanaeaza toate porturile pana la 1024 inclusiv, precum si porturile mai mari aflate in fisierul +nmap\-servicespentru protocolul/protocoalele scanate\&. +.PP +\fB\-p <domeniu de porturi>\fR(Se scaneaza doar porturile specificate aici) +.RS 4 +Aceasta optiune specifica porturile pe care doriti sa le scanati, trecand peste valorile implicite\&. Numere de porturi individuale reprezinta o optiune valida, precum si domenii separate prin cratima (de exemplu 1\-1023)\&. Valorile de inceput si/sau sfarsit ale domeniului pot fi omise, Nmap inlocuindu\-le cu 1, respectiv 65535\&. Specificand optiunea +\fB\-p\-\fRse vor scana porturile de la 1 la 65535\&. Scanarea portului 0 este permisa daca specificati acest lucru explicit\&. Pentru scanarea protocolului IP ( +\fB\-sO\fR), aceasta optiune specifica numarul protocolului pe care doriti sa\-l scanati (0\-255)\&. +.sp +Cand scanati atat porturi TCP cat si UDP, puteti specifica un protocol particular precedand numarul portului cu +T:sau +U:\&. Identificatorul are domeniu de actiune pana la aparitia altui identificator\&. De exemplu, argumentul +\fB\-pU:53,111,137,T:21\-25,80,139,8080\fRva scana porturile UDP 53, 111 si 137 precum si porturile TCP listate\&. De notat ca pentru scanarea simultana de porturi UDP si TCP, trebuie sa specificati +\fB\-sU\fRsi cel putin un tip de scanare TCP (cum ar fi +\fB\-sS\fR, +\fB\-sF\fR, sau +\fB\-sT\fR)\&. Daca nici un calificator nu a fost furnizat, numerele de porturi sunt adaugate fiecarui protocol in parte\&. +.RE +.PP +\fB\-F\fR(Scanare rapida (numar limitat de porturi) +.RS 4 +Specifica faptul ca doriti sa scanati doar porturile listate in +nmap\-services, fisier care vine cu nmap (sau fisierul de protocoale pentru +\fB\-sO\fR)\&. Este mult mai rapida decat scanarea tuturor celor 65535 porturi de pe un host\&. Deoarece lista contine atat de multe porturi TCP (mai mult de 1200), diferenta de viteza fata de o scanare implicita TCP (aproximativ 1650 de porturi) este dramatica\&. Diferenta poate fi enorma daca specificati propriul fisier minimizat in functie de nevoi +nmap\-servicesutilizand optiunea +\fB\-\-datadir\fR\&. +.RE +.PP +\fB\-r\fR(Nu se scaneaza porturile in ordine aleatoare) +.RS 4 +Implicit, Nmap scaneaaz porturile intr\-o ordine aleatoare (cu exceptia faptului ca anumite porturi uzuale sunt mutate la inceputul scanarii din motive de eficienta)\&. Aceasta ordine aleatoare este in mod normal de dorit, dar puteti specifica +\fB\-r\fRpentru scanarea secventiala\&. +.RE +.SH "DETECTIA SERVICIILOR SI A VERSIUNILOR" +.PP +Rulati nmap pe o masina si el ar putea sa va spuna ca porturile 25/tcp, 80/tcp si 53/udp sunt deschise\&. Folosind baza de date +nmap\-servicesde aproximativ 2\&.200 servicii cunoscute, Nmap va raporta ca respectivele porturi corespund unui server de mail (SMTP), unui server web (HTTP) si respectiv unui server DNS (53)\&. Aceasta recunoastere este de obicei corecta – majoritatea serviciilor care asculta la portul TCP 25 sunt servere de mail\&. Totusi, nu trebuie sa va bazati pe asta! Oamenii pot si chiar ruleaza servicii pe porturi ciudate\&. +.PP +Chiar daca Nmap realizeaza recunoasterea corect, si ipoteticul server de mai sus ruleaza SMTP, HTTP si DNS, tot nu este suficienta informatie\&. Cand se realizeaza o evaluare a vulnerabilitatilor (sau chiar o simpla inventariere a retelei) a companiilor sau clientilor dumneavoastra, vreti sa stiti ce server de mail, ce server DNS si in ce versiuni ruleaza acestea\&. Avand un numar corect de versiune ne ajuta foarte mult sa determinam la ce exploituri este serverul vulnerabil\&. Detectia versiunilor ne ajuta sa obtinem aceste informatii\&. +.PP +Dupa ce porturile TCP si/sau UDP sunt descoperite folosind una dintre metodele de scanare, detectia versiunii interogheaza acele porturi pentru a determina mai multe despre ce se ruleaza la ele de fapt\&. Baza de date +nmap\-service\-probescontine probe pentru interogarea diferitelor servicii si compara expresiile pentru a recunoaste si procesa raspunsurile\&. Nmap incearca sa determine protocolul serviciului (ex: ftp, ssh, telnet, http), numele aplicatiei (ex: ISC Bind, Apache httpd, Solaris telnetd), numarul versiunii, numele hostului, tipul masinii (ex: printer, router), familia de sisteme de operare (ex: Windows, Linux) si cateodata si alte informatii diverse cum ar fi daca exista un server X deschis la conexiuni\&. Daca Nmap a fost compilat cu suport OpenSSL, se va conecta la servere SSL pentru a deduce serviciile care asculta in spatele acelui nivel de criptare\&. Cand servicii RPC sunt descoperite, evaluatorul RPC din Nmap ( +\fB\-sR\fR) este automat folosit pentru a determina programul RPC si numarul versiunii\&. Unele porturi UDP sunt lasate in starea +deschis|filtrat (open|filtered)dupa o scanare UDP care nu a putut determina daca porturile sunt deschise sau filtrate\&. Detectia versiunii va incerca sa smulga un raspuns de la aceste porturi (asa cum o face cu porturile deschise), si sa sa le schimbe starea in deschis daca reuseste\&. Porturile TCP +deschis|filtrat (open|filtered)sunt tratate in aceeasi maniera\&. Notati ca optiunea +\fB\-A\fRactiveaza detectia versiunii printre altele\&. Un document care explica aceste lucruri, utilizarea lor si rafinarea detectiei versiunii este disponibila la +\m[blue]\fB\%https://nmap.org/vscan/\fR\m[]\&. +.PP +Cand Nmap primeste raspunsuri de la un serviciu dar nu gaseste ceva corespunzator in baza de date, afiseaza o amprenta si un URL pentru a o putea trimite daca stiti cu exactitate ce ruleaza la respectivul port\&. Va rog sa va rupeti cateva minute pentru a face acest lucru, astfel incat de descoperirea dumneavoastra sa poata beneficia toata lumea\&. Datorita amprentelor trimise de utilizatori, Nmap are aproximativ 3\&.000 de modele pentru 350 de protocoale cum ar fi smtp, ftp, http, etc\&. +.PP +Detectia versiunii este activata si controlata de urmatoarele optiuni: +.PP +\fB\-sV\fR(Detectia versiunii) +.RS 4 +Activeaza detectia versiunii, dupa cum s\-a discutat anterior\&. Alternativ, puteti folosi +\fB\-A\fRpentru activarea detectiei versiunii si a sistemului de operare simultan\&. +.RE +.PP +\fB\-\-allports\fR(Nu se exclude nici un port de la detectia versiunii) +.RS 4 +Implicit, detectia versiunii din Nmap sare peste portul TCP 9100, deoarece unele imprimante imprima orice data trimisa la acel port, ducand la o multime de pagini pline de cererei HTTP, sesiuni SSL, etc\&. Acest comportament poate fi schimbat prin modificarea sau stergerea directivei +Excludedin +nmap\-service\-probes, sau prin specificarea +\fB\-\-allports\fRpentru scanarea tuturor porturilor in ciuda directivei +Exclude\&. +.RE +.PP +\fB\-\-version\-intensity <intensitate>\fR(Seteaza intensitatea detectiei versiunii) +.RS 4 +Cand realizam o detectie a versiunii ( +\fB\-sV\fR), nmap trimite o serie de probe, fiecare cu o valoare atasata, intre 1 si 9, care reprezinta raritatea\&. Probele cu numere mici sunt eficiente impotriva unei arii largi a serviciilor comune, in timp ce acelea cu numere mari sunt mai rar folosite\&. Nivelul de intensitate specifica ce probe trebuie aplicate\&. Cu cat mai mare este numarul, cu atat mai precisa este detectarea versiunii\&. Oricum, scanarea cu intensitate mare dureaza mai mult\&. Intensitatea trebuie sa fie intre 0 si 9\&. Implicit este 7\&. Cand o proba este gasita ca o legatura intre +nmap\-service\-probes +si numarul portului, atunci proba este incercata indiferent de nivelul de intensitate\&. Acest lucru asigura faptul ca probele DNS vor fi incercate pentru fiecare port 53 gasit deschis, probele SSL pentru portl 443, etc\&. +.RE +.PP +\fB\-\-version\-light\fR(Activeaza modul delicat) +.RS 4 +Este o notare convenabila pentru +\fB\-\-version\-intensity 2\fR\&. Acest mod delicat face scanarea versiunii mult mai rapida, dar si mai putin precisa in identificarea serviciilor\&. +.RE +.PP +\fB\-\-version\-all\fR(Incearca toate probele) +.RS 4 +Un sinonim pentru +\fB\-\-version\-intensity 9\fR, asigurandu\-se ca toate probele vor fi incercate impotriva fiecarui port\&. +.RE +.PP +\fB\-\-version\-trace\fR(Urmareste activitatea scanarii vesiunii) +.RS 4 +Acest lucru face ca Nmap sa afiseze informatii detaliate despre ce face detectarea versiunii\&. Este un subset al informatiilor obtinute cu +\fB\-\-packet\-trace\fR\&. +.RE +.PP +\fB\-sR\fR(Scanare RPC) +.RS 4 +Aceasta metoda functioneaza in combinatie cu multimea de metode de scanare de porturi a Nmapului\&. Ia toate porturile TCP/UDP deschise si le inunda cu pachete de comanda SunRPC nule in incercarea de a determina daca sunt porturi RPC si, daca e asa, ce program si ce versiune servesc\&. Puteti obtine aceleasi informatii cu +\fBrpcinfo \-p\fRchiar daca portmapperul tintei se afla in spatele unui firewall (sau este protejat de TCP wrapper)\&. Momelile nu functioneaza cu scanarea RPC\&. Este activat automat ca parte a scanarii versiunii ( +\fB\-sV\fR) daca solicitati asa ceva\&. Deoarece detectia versiunii include si rezultatele acestei scanari fiind mult mai larga in acoperire, +\fB\-sR\fReste rareori necesara\&. +.RE +.SH "DETECTIA SISTEMULUI DE OPERARE" +.PP +Una dintre cele mai cunoscute facilitati ale Nmap o reprezinta detectarea de la distanta a sistemului de operare folosind amprentele stivei TCP/IP\&. Nmap trimite o serie de pachete TCP si UDP la calculatorul tinta si examineaza practic bit cu bit raspunsul\&. Dupa ce ruleaza o multime de teste ce includ crearea de modele TCP ISN, suportul si ordonarea optiunilor TCP, crearea de modele IPID si verificarea dimensiunii intiale a cadrului, Nmap compare rezultatul cu baza de date +nmap\-os\-fingerprintsce contine mai mult de 1500 de amprente de sisteme de operare, si afiseaza detaliile acestuia daca este gasita o similitudine\&. Fiecare amprenta include o descriere textuala a sistemului de operare si o clasificare ce furnizeaza numele producatorului (ex: Sun), sistemul de operare (ex: Solaris), versiunea (ex: 10) si tipul masinii (scop general, router, switch, consola de jocuri, etc\&.) +.PP +Daca Nmap este in imposibilitatea de a ghici sistemul de operare al unei masini iar conditiile sunt favorabile (ex: cel putin un port deschis si unul inchis au fost gasite), Nmap va furniza un URL pe care il puteti folosi pentru a trimite, daca stiti cu siguranta, ce sistem de operare ruleaza\&. Prin acest lucru contribuiti la baza de sisteme cunoscute de Nmap, facand identificarea sistemului de operare mai precisa si pentru ceilalti\&. +.PP +Detectia sistemului de operare activeaza alte cateva teste care folosesc oricum informatia obtinuta in acest proces\&. Unul dintre acestea este masurarea timpului de activitate (uptime), care foloseste optiunea de amprenta de timp din pachetele TCP (RFC 1323) si ghiceste cand a fost ultima oara rebutata masina\&. Acest lucru este raportat doar pentru masinile care furnizeaza aceasta informatie\&. Alt test este cel de clasificare al predictibilitatii secventei TCP\&. Acesta masoara cu aproximatie cat de greu este sa stabilesti o conexiune falsificata TCP cu tinta\&. Este folositoare pentru exploatarea relatiilor de incredere bazate pe IP (rlogin, filtre firewall, etc\&.) sau pentru ascunderea sursei unui atac\&. Acest tip de ascundere a identitatii este rar intalnita in zilele noastre, dar multe masini sunt inca vulnerabile\&. Numarul ce reprezinta dificultatea este bazat pe modelarea statistica si poate fluctua\&. In general este mai bine daca se foloseste clasificarea textuala, cum ar fi +„worthy challenge (merita incercat)\(rqsau +„trivial joke (gluma banala)\(rq\&. Acestea sunt raportate doar in modul afisare detaliata ( +\fB\-v\fR)\&. Cand modul afisare detaliata este activat alaturi de +\fB\-O\fR, generarea secventei IPID este si ea raportata\&. Cele mai multe masini sunt in clasa +„incrementala\(rq, ceea ce inseamna ca incrementeaza campul ID din headerul fiecarui pachet pe care il trimit\&. Acest lucru le face vulnerabile la cateva tehnici avansate de culegere a informatiilor si la atacuri simulate\&. +.PP +Un articol ce documenteaza aceste aspecte, precum si personalizarea detectiei versiunii este disponibil in mai multe limbi la +\m[blue]\fB\%https://nmap.org/osdetect/\fR\m[]\&. +.PP +Detectarea sistemului de operare este activata si controlata prin urmatoarele optiuni: +.PP +\fB\-O\fR(Activeaza detectia sistemului de operare) +.RS 4 +Activeaza detectia sistemului de operare, dupa cum s\-a discutat inainte\&. Alternativ, se poate folosi +\fB\-A\fRpentru activarea atat a detectiei sistemului de operare cat si a detectiei versiunii\&. +.RE +.PP +\fB\-\-osscan\-limit\fR(Limiteaza detectarea sistemului de operare la tintele promitatoare) +.RS 4 +Detectia sistemului de operare este mult mai eficienta daca sunt gasite cel putin un port TCP inchis si unul deschis\&. Setati aceasta optiune si Nmap nici nu va mai incerca detectarea sistemului de operare pentru hosturile care nu indeplinesc aceste criterii\&. Acest lucru poate salva timp substantial, in special in scanarile mai multor hosturi cu optiunea +\fB\-P0\fR\&. Optiunea are valoare atunci cand detectia sistemului de operare a fost solicitata prin +\fB\-O\fRsau +\fB\-A\fR\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR(Ghiceste sistemul de operare pe baza rezultatelor) +.RS 4 +Cand Nmap nu poate determina cu exactitate un sistem de operare, poate oferi un raspuns bazat pe asemanare\&. Asemanarea trebuie sa fie foarte apropiata in mod implicit\&. Oricare dintre aceste optiuni fac Nmapul sa adopte o atitudine mai agresiva in gasirea similitudinilor\&. +.RE +.SH "OPTIUNI DE TIMP SI PERFORMANTA" +.PP +Una dintre prioritatile principale in dezvoltarea Nmapului a fost performanta\&. O scanare implicita ( +\fBnmap \fR\fB\fInume_host\fR\fR) de pe un calculator din reteaua locala ia mai putin de o cincime de secunda\&. Cu greu ai timp sa clipesti, dar timpul creste o data cu numarul hosturilor\&. Mai mult, anumite optiuni cum ar fi scanarea UDP si detectia versiunii pot mari substantial timpul de scanare\&. Acelasi lucru il pot face si anumite configuratii firewall, in special cele care limiteaza rata de raspuns\&. Cu toate ca Nmap utilizeaza paralelismul si algoritmi avansati de accelerare a scanarilor, controlul final asupra a cum ruleaza Nmap revine utilizatorului\&. Expertii compun cu atentie comenzile Nmap pentru a obtine numai informatia de care au nevoie incadrandu\-se si in perioada de timp\&. +.PP +Tehnicile pentru imbunatatirea vitezei de scanare includ omiterea testelor ne\-critice si upgradeul la ultima versiune de Nmap (imbunatatiri de performanta se realizeaza frecvent)\&. Optimizarea parametrilor de timp poate aduce de asemenea un spor substantial\&. Aceste optuni sunt prezentate in cele ce urmeaza\&. +.PP +\fB\-\-min\-hostgroup <dimensiune>\fR; \fB\-\-max\-hostgroup<dimensiune>\fR(Ajusteaza dimensiunea grupurilor pentru scanari paralele) +.RS 4 +Nmap are capacitatea de a scana porturi sau versiuni pe mai multe hosturi in paralel\&. Nmap realizeaza acest lucru prin divizarea spatiului de adrese IP tinta in grupuri si scanand fiecare grup pe rand\&. In general, grupurile mari sunt mult mai eficiente\&. Aspectul negativ este ca rezultatul scanarii pentru fiecare host nu poate fi furnizat pana ce nu e terminata scanarea pentru intregul grup\&. Daca Nmap porneste scanarea unui grup de 50 de hosturi, utilizatorul nu va primi nici un raport (cu exceptia updateurilor oferite de modul vizualizare detaliata) pana ce primele nu s\-a terminat scanarea pentru aceste hosturi\&. +.sp +Implicit, Nmap adopta o abordare de compromis in acest conflict\&. Porneste cu un grup mic de cinci pentru a afisa rapid primele rezultate si apoi creste dimensiunea grupului pana la 1024\&. Numarul exact depinde de optiunea data\&. Din motive de eficienta, Nmap utilizeaza grupuri mai mari pentru scanarile UDP si pentru cateva din porturile TCP\&. +.sp +Cand o dimensiune maxima este specificata cu +\fB\-\-max\-hostgroup\fR, Nmap nu va depasi niciodata aceasta valoare\&. Specificati o dimensiune minima cu +\fB\-\-min\-hostgroup\fRsi Nmap va incerca sa mentina dimensiunile grupurilor peste acel nivel\&. Nmap se poate vedea nevoit sa foloseasca grupuri mai mici daca nu mai sunt suficiente tinte ramase pentru a completa nivelul minim\&. Amandoua pot fi folosite pentru a mentine dimensiunea grupului intre anumite limite, desi acest lucru este in putine cazuri unul de dorit\&. +.sp +Principala utilizare a acestei optiuni este specificarea dimensiunii minime a unui grup astfel incat scanarea sa ruleze mai rapid\&. O alegere uzuala este 256 pentru scanarea unei retele in bucati egale cu o clasa C\&. Pentru o scanare cu multe porturi, depasirea acestui numar este improbabil sa ajute la ceva\&. Pentru o scanare cu doar cateva porturi, grupurile de 2048 sau mai multe hosturi pot fi folositoare\&. +.RE +.PP +\fB\-\-min\-parallelism <milisecunde>\fR; \fB\-\-max\-parallelism<milisecunde>\fR(Seteaza paralelizarea probelor) +.RS 4 +Aceste optiuni controleaza numarul de probe in asteptare pentru un host\&. Sunt folosite la scanarea de porturi si la descoperirea hosturilor\&. Implicit, Nmap calculeaza un numar ideal pentru paralelism, mereu variabil, in baza performantelor retelei\&. Daca unele pachete sunt ignorate, Nmap incetineste ritmul si permite un numar mai mic de probe in asteptare\&. Numarul ideal de probe creste incet pe masura ce reteaua este mai rapida\&. Aceste optiuni stabilesc limitele minima si maxima ale acestei variabile\&. Implicit, paralelismul ideal poate scadea la 1 daca reteaua raspunde greu si se ridica pana la cateva sute in conditii perfecte\&. +.sp +Cea mai comuna utilizare o reprezinta setarea +\fB\-\-min\-parallelism\fRla o valoare mai mare de unu pentru a mari viteza de scanare pentru hosturi si retele cu performante slabe\&. Aceasta este o optiune riscanta, deoarece setarea ei la o valoare prea mare poate influenta calitatea rezultatului\&. Setarea acesteia reduce de asemenea capacitatea Nmap de a controla paralelismul in mod dinamic pe baza conditiilor intalnite in retea\&. O valoare de zece poate fi una rezonabila, cu toate ca eu ajustez aceasta valoare doar ca o ultima optiune\&. +.sp +Optiunea +\fB\-\-max\-parallelism\fReste setata cateodata pentru a preveni Nmap sa trimita mai mult de o proba o data catre un host\&. Poate fi folositoare in combinatie cu +\fB\-\-scan\-delay\fR(ce va fi discutata mai tarziu), cu toate ca cea de\-a doua face acest lucru destul de bine si singura\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout <milisecunde>\fR, \fB\-\-max\-rtt\-timeout <milisecunde>\fR, \fB\-\-initial\-rtt\-timeout<milisecunde>\fR(Seteaza timpul de viata al probelor) +.RS 4 +Nmap mentine un timp de viata pentru determinarea timpului maxim asteptat pentru ca o proba sa genereze un raspuns, inainte sa se renunte la ea sau sa fie retransmisa\&. Este calculata pe baza timpilor de raspuns a probelor anterioare\&. Daca latenta retelei are o valoare mare si variabila, atunci timpul de viata poate creste pana la cateva secunde\&. Porneste de la o valoare mare si poate ramane asa un timp pana cand Nmap scaneaza hosturi care nu raspund\&. +.sp +Aceasta optiune preia o valoare in milisecunde\&. Specificand o valoare mica pentru +\fB\-\-max\-rtt\-timeout\fRsi +\fB\-\-initial\-rtt\-timeout\fR, in scanarile default se pot obtine reduceri de timp semnificative\&. Acest lucru este in particular adevarat pentru hosturile care nu raspund la ping ( +\fB\-P0\fR) si a celor impotriva retelelor masiv filtrate\&. nu deveniti insa prea agresiv\&. Scanarea poate sfarsi intr\-un timp mare daca valorile sunt prea mici si probele expira repede, fiind necesara retransmiterea lor in timp ce probabil raspunsul este pe drum\&. +.sp +Daca hosturile fac parte din reteaua interna, o valoare de 100 milisecunde este una suficient de agresiva pentru +\fB\-\-max\-rtt\-timeout\fR\&. Daca routarea intra in joc, executati un ping la un host din respectiva retea folosind utilitarul PING din sistemul de operare, sau cu un utilitar de construit pachete cum ar fi hping2 ce are mai multe sanse de a trece prin firewall\&. Analizati timpul maxim dintr\-un grup de zece pachete\&. Il puteti dubla pentru +\fB\-\-initial\-rtt\-timeout\fRsi tripla pentru +\fB\-\-max\-rtt\-timeout\fR\&. In general, nu setati timpul maxim rtt sub 100 milisecunde\&., indiferent de ce raporteaza pingurile\&. Si nici nu depasiti 1000 milisecunde\&. +.sp +\fB\-\-min\-rtt\-timeout\fReste rar folosita si nu este folositoare intr\-o retea pentru care valoarea implicita a Nmap este prea agresiva\&. Din moment ce Nmap reduce timpul de viata al pachetelor pana la minim pentru o retea eficienta, nevoia acestei optiuni nu este uzuala si ar trebui raporta ca o problema in lista de discutii nmap\-dev\&. +.RE +.PP +\fB\-\-host\-timeout <milisecunde>\fR(Se renunta la tintele lente in raspuns) +.RS 4 +Unele hosturi iau un timp prea +\fIlung\fRde scanare\&. Se poate datora unor performante proaste ale retelei hardware si software, limitarii a ratei de pachete sau firewallurilor restrictive\&. Cele mai lente cateva hosturi pot manca majoritata timpului de scanare\&. Cateodata este bine sa scapam de aceste pierderi si sa sarim aceste hosturi\&. Acest lucru poate fi realizat prin specificarea +\fB\-\-host\-timeout\fRcu un numar de milisecunde in care sunteti disponibili sa asteptati\&. De obicei specific 1800000 pentru a ma asigura ca Nmap nu va pierde mai mult de o jumatate de ora pentru un singur host\&. De notat ca Nmap poate scana si alte hosturi in acelasi timp, deci nu reprezinta o pierdere totala acest timp\&. Un host care depaseste aceasta perioada este sarit\&. Tabela de porturi, detectia sistemului de operare sau detectia versiunii nu sunt afisate pentru acel host\&. +.RE +.PP +\fB\-\-scan\-delay <milisecunde>\fR; \fB\-\-max\-scan\-delay<milisecunde>\fR(Ajusteaza pauza dintre probe) +.RS 4 +Aceasta optiune face ca Nmap sa astepte cel putin un numar dat de milisecunde intre probele trimise la un host\&. Este folositoare in particular in cazul in care exista o rata de limitare\&. Masinile Solaris (printre multe altele) vor raspunde scanarii UDP cu un singur mesaj ICMP pe secunda\&. Orice alta proba trimisa de Nmap in acest interval va fi irosita\&. O optiune +\fB\-\-scan\-delay\fRcu valoarea 1000 va mentine Nmap la acea rata lenta\&. Nmap incearca detectarea ratei de limitare si ajusteaza scanarea in functie de aceasta, dar nu face rau sa specificati explicit daca stiti deja ce rata functioneaza cel mai bine\&. +.sp +Alta utilizare a +\fB\-\-scan\-delay\fReste ascunderea scanarii in fata IDS/IPSurilor bazate pe un anumit prag de raspuns\&. +.RE +.PP +\fB \-T<Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR(Seteaza optiunile de timp) +.RS 4 +Desi optiunile detaliate de control al timpilor discutate mai sus sunt puternice si eficiente, unii oameni le gasesc confuze\&. Mai mult, alegerea valorilor corecte poate dura uneori mai mult decat scanarea in sine\&. Asadar Nmap ofera o abordare mai simpla, cu sase modele de timp\&. Le puteti specifica cu optiunea +\fB\-T\fRsi numarul (0\-5) sau numele\&. Numele modelelor sunt paranoid (paranoic \- 0), sneaky (siret \- 1), polite (politicos \-2), aggresive (agresiv \- 4) si insane (nebun \- 5)\&. Primele doua sunt folosite pentru ascunderea de IDS\&. Modul politicos incetineste ritmul scanarii pentru a utiliza mai putina latime de banda a masinii tinta\&. Modul normal este implicit asa ca +\fB\-T3\fRnu face nimic\&. Modul agresiv accelereaza scanarea presupunand ca va aflati intr\-o retea rapida\&. In fine, modul nebun presupune ca va aflati intr\-o retea extrem de rapida sau ca sunteti dispus sa sacrificati acuratetea rezultatelor in favoarea vitezei\&. +.sp +Aceste modele permit utilizatorului sa specifice cat de agresiva sa fie scanarea, lasand totusi Nmapul sa aleaga valorile exacte\&. Modelele realizeaza uneori mici reglaje pentru care inca nu exista optiuni de control\&. De exemplu, +\fB\-T4\fRinterzice scanarii dinamice sa depaseasca 10 milisecunde pentru porturile TCP si +\fB\-T5\fRreduce aceasta valoare la 5 milisecunde\&. Modelele pot fi folosite in combinatie cu controalele fine de timp, atat timp cat modelul este specificat mai intai\&. Altfel valorile standard ale modelului pot suprascrie valorile specificate\&. Se recomanda folosirea +\fB\-T4\fRcand se scaneaza retele moderne rapide\&. Pastrati aceasta optiune la inceputul liniei de comanda chiar si cand adaugati optiuni de control fin pentru a beneficia de micile ajustari oferite\&. +.sp +Daca folositi o conexiune broadband sau ethernet, recomand folosirea intotdeauna a optiunii +\fB\-T4\fR\&. Unii oameni adora +\fB\-T5\fRcu toate ca este prea agresiva pentru gustul meu\&. Altii specifica +\fB\-T2\fRdeoarece cred ca scanarea va bloca hosturile si se considere pe ei politicosi in general\&. De obicei nu realizeaza cat de inceata este optiunea +\fB\-TPolite\fR\&. Scanarile lor pot lua de zece ori mai mult timp decat unele implicite\&. Blocarile masinilor si probleme legate de banda sunt rare cu modelul implicit ( +\fB\-T3\fR) asa ca in mod normal este recomandat pentru scanere precaute\&. Omiterea detectiei versiunii este mult mai eficienta decat jocul cu optiunile de timp\&. +.sp +Desi +\fB\-T0\fRsi +\fB\-T1\fRpot fi folosite pentru pacalirea IDSurilor, ele pot lua un timp extrem de mare pentru a scana mii de masini sau porturi\&. Pentru o astfel de scanare lunga, puteti prefera setarea exacta a optiunilor de timp decat sa va bazati pe cele inglobate in optiunile +\fB\-T0\fRsi +\fB\-T1\fR\&. +.sp +Principalul efect al +\fBT0\fReste serializarea scanarii astfel incat un singur port este scanat o data, si se asteapta cinci minute intre trimiterea probelor\&. +\fBT1\fRsi +\fBT2\fRsunt similare dar asteapta doar 15 secunde, respectiv 0,4 secunde intre probe\&. +\fBT3\fReste comportamentul implicit al Nmapului ce include si paralelizarea\&. +\fBT4\fRrealizeaza echivalentul +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500\fRsi seteaza intarzierea maxima pentru scanarea TCP la 10 milisecunde\&. +\fBT5\fRrealizeaza echivalentul la +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-host\-timeout 900000\fRsi seteaza intarzierea maxima pentru scanarea TCP la 5 milisecunde\&. +.RE +.SH "PACALIREA FIREWALL/IDSURILOR SI ASCUNDEREA IDENTITATII" +.PP +Multi pionieri ai internetului au prevazut o retea globala deschisa cu un spatiu universal de adrese IP permitand conexiuni virtuale intre oricare doua noduri\&. Acest lucru permite hosturilor sa actioneze ca parteneri in comunicatie, sa serveasca si sa obtina informatii unul de la celalalt\&. Oamenii pot accesa sistemele de acasa, sa schimbe temperatura in casa sau sa deschida usa pentru oaspetii grabiti\&. Viziunea conectivitatii universale a fost inabusita de micsorarea spatiului de adrese si de problemele de securitate\&. La inceputul anilor 90, organizatiile au inceput implementarea firewallurilor cu scopul precis de reducere a conectivitatii\&. Retele uriase au fost separate de Internetul nefiltrat prin aplicatii proxy, traduceri de adrese de retea (NAT) si filtre de pachete\&. Fluxul nerestrictionat de informatii a facut loc canalelor de comunicatie aprobate si supuse unor anumite reguli, precum si controlului datelor ce trece prin ele\&. +.PP +Obstacolele din retea cum ar fi firewallurile pot face din maparea retelei o operatie extrem de dificila\&. Nu va deveni mai usor din moment ce constrangerile aplicate retelei reprezinta adesea un scop al implementarii noilor echipamente in retea\&. Nu e mai putin adevarat ca Nmap ofera multe optiuni pentru intelegerea acestor retele complexe si sa verifice daca filtrele functioneaza asa cum trebuie\&. Chiar suporta mecanisme de depasire a sistemelor de aparare prost implementate\&. Punetiva in pielea unui atacator si aplicati tehnici din aceasta sectiune in reteaua dumneavoastra\&. Lansati un atac sarit FTP, o scanare Idle, o fragmentare a atacului sau incercati realizarea unui tunel printr\-un proxy de\-al dumneavoastra\&. +.PP +In plus fata restrictiile retelelor, companiile au inceput sa monitorizeze traficul cu sisteme de detectie a intruziunilor (IDS)\&. Toate IDSurile cunoscute sunt livrate cu reguli care sa detecteze scanarile Nmap deoarece acestea preced de obicei un atac\&. Multe dintre acestea sau transformat in sisteme de +\fIprevenire\fRa intruziunilor (IPS) care blocheaza in mod activ traficul presupus malitios\&. Din pacate pentru administratorii de retea si vanzatorii IDSurilor, detectarea in mod corect a relelor intentii prin analizarea pachetelor este o problema dificila\&. Atacatorii cu rabdare, indemanare si ajutor din partea anumitor optiuni Nmap pot in mod normal sa treaca de IDS nedetectati\&. Intre timp, administratorii au de a face cu o multime de alerte false cand trafic inocent este gresit diagnosticat si se emite o atentionare sau este chiar blocat\&. +.PP +Cateodata oamenii sugereaza ca Nmap nu ar trebui sa ofere functii de pacalire a regulilor firewallurilor sau de trecerea nedetectata de IDS\&. Argumeenteaza prin faptul ca pot fi folosite de atacatori\&. Problema in acest rationament este ca atacatorii tot vor gasi instrumente sau patchuri pentru Nmap pentru a realiza acest lucru\&. Intre timp, administratorii pot descoperii ca munca lor este mult mai dificila\&. Instalarea numai a serverelor FTP moderne, cu patchurile aplicate la zi este o metoda mult mai buna de protectie decat prevenirea distribuirii instrumentelor ce implementeaza atacurile sarite FTP\&. +.PP +Nu exista nici o optiune magica in Nmap pentru detectarea si pacalirea firewallurilor si a sistemelor IDS\&. Acest lucru ia indemanare si experienta\&. O prezentare detaliata este dincolo de scopul acestui ghid de referinta, care listeaza doar optiunile relevante si descrie ce fac ele\&. +.PP +\fB\-f\fR(fragmenteaza pachetele); \fB\-\-mtu\fR(foloseste MTU specificat – Unitatea Maxima de Transmitere) +.RS 4 +Optiunea +\fB\-f\fRface ca scanarea ceruta (incluzand scanarea ping) sa foloseasa fragmente mici de pachete IP\&. Ideea este impartirea headerului TCP in mai multe pachete pentru a ingreuna misiunea filtrelor de pachete, sistemelor de detectare a intruziunilor si a altor elemente de detectare a activitatii\&. Atentie cu aceasta optiune! Unele programe au probleme in manevrarea acestor pachete mici\&. De exemplu Sniffit esua dupa primirea primului fragment\&. Specificati aceasta optiune o data si Nmap va imparti pachetul in fragmente de opt bytes sau mai putin dupa headerul IP\&. Astfel, un header TCP de 20 bytes va fi impartit in 3 pachete\&. Doua de opt bytes si unul cu ultimii patru\&. Desigur, fiecare fragment are propriul header TCP\&. Specificati +\fB\-f\fRinca o data pentru folosirea a 16 bytes pe fragment (reducand numarul de fragmente)\&. Sau puteti specifica propriile dimensiuni cu optiunea +\fB\-\-mtu\fR\&. Nu specificati si +\fB\-f\fRdaca folositi +\fB\-\-mtu\fR\&. Dimensiunea trebuie sa fie un multiplu de 8\&. Pachetele fragmentate nu vor trece de filtrele de pachete si firewallurile care interogheaza toate fragmentele IP, cum ar fi optiunea CONFIG_IP_ALWAYS_DEFRAG din kernelul Linuxului, unele retele nu\-si pot permite pierderea de performanta cauzata de aceste configurari si le dezactiveaza\&. Altele nu pot activa configurarile de acest gen deoarece fragmentele pot intra pe rute diferite in retea\&. Unele sisteme defragmenteaza pachetele de iesire in kernel\&. Linux cu modulul de urmarire a conexiunii din iptables este un exemplu\&. Realizati o scanare si rulati in acelasi timp un sniffer de genul Ethereal pentru a va asigura ca pachetele sunt fragmentate\&. Daca sistemul de operare va creaza probleme, incercati optiunea +\fB\-\-send\-eth\fRde sarire a nivelului IP si de trimitere de cadre ethernet brute\&. +.RE +.PP +\fB\-D <momeala1 [,momeala2][,ME (EU)],\&.\&.\&.>\fR(Scanare acoperita de momeli) +.RS 4 +Face ca o scanare acoperita de momeli sa fie executata, ceea ce face ca tinta sa creada ca momelile specificate ca argument scaneaza si ele reteaua\&. Astfel IDS poate raporta 5\-10 scanari de porturi de la adrese IP unice, dar nu va stii care adresa scaneaza cu adevarat si care sunt momeli inocente\&. Cu toate ca aceasta tehnica poate fi contrata prin urmarirea caii prin routere, ignorarea raspunsului si alte mecanisme active, ea reprezinta o tehnica eficienta de ascundere a adresei IP\&. +.sp +Separati fiecare momeala prin virgule si folositi optional +ME(adica propria adresa IP) ca una dintre momeli pentru a reprezenta adevarata pozitie a adresei IP reale\&. Daca puneti +MEin a sasea pozitie sau mai tarziu, unele detectoare de scanari de porturi (cum ar fi Solar Design) pot sa nici nu afiseze adresa IP reala\&. Daca nu folositi +ME, nmap il va pune intr\-o pozitie aleatoare\&. +.sp +Retineti faptul ca tintele pe care le folositi ca momeli trebuie sa fie active sau altfel riscati sa inundati cu pachete SYN tinta\&. In aceeasi ordine de idei, este usor de determina cine face scanarea daca o singura adresa IP este activa\&. E de preferat sa utilizati adrese IP in loc de nume (astfel incat numele hostului dumneavoastra sa nu apara in logurile DNSului tinta)\&. +.sp +Momelile sunt folosite atat in pingul initial (folosind ICMP, SYN, ACK sau orice altceva) si in timpul scanarii efective de porturi\&. Momelile sunt de asemenea folosite la detectarea sistemului de operare ( +\fB\-O\fR)\&. Momelile nu functioneaza cu detectia versiunii sau scanarea TCP connect()\&. +.sp +Nu folositi prea multe momeli deoarece pot incetini scanarea si o pot face mai putin corecta\&. De asemena, unii ISP vor filtra pachetele false, dar multi nu restrictioneaza pachetele IP de loc\&. +.RE +.PP +\fB\-S <Adresa_IP>\fR(Seteaza adresa IP sursa) +.RS 4 +In anumite circumstante, Nmap se poate afla in imposibilitatea determinarii adresei sursa (Nmap va anunta daca acest lucru se intampla)\&. In aceasta situatie, folositi +\fB\-S\fRcu adresa IP a interfetei pe care doriti sa trimiteti pachetele\&. +.sp +Alta posibila utilizare a acestei optiuni este sa faceti tinta sa creada ca este scanata de +\fIaltcineva\fR\&. Imaginativa o companie permananent scanata de un competitor! Optiunea +\fB\-e\fRva fi in general necesara pentru astfel de utilizare si +\fB\-P0\fReste de asemenea recomanda\&. +.RE +.PP +\fB\-e <interfata>\fR(Foloseste interfata specificata) +.RS 4 +Spune Nmapului ce interfata sa foloseasca pentru trimiterea si primirea pachetelor\&. Nmap ar trebui sa poata determina automat acest lucru, dar va va anunta daca nu poate\&. +.RE +.PP +\fB\-\-source\-port <numarul_portului>;\fR \fB\-g <numarul_portului>\fR(Seteaza portul sursa) +.RS 4 +O greseala surprinzator de des intalnita o reprezinta configurarea relatiilor de incredere in functie de numaul portului sursa\&. Este usor de inteles cum stau lucrurile\&. Un administrator instaleaza un nou firewall si este apoi ingropat in plangeri din partea utilizatorilor nemultumiti ale caror aplicatii nu mai functioneaza\&. In particular, DNSul poate fi blocat deoarece raspunsurile UDP DNS de la serverele externe nu mai pot intra in retea\&. FTP este un alt exemplu\&. In transferurile FTP active, serverul incearca sa stabileasca o conexiune inapoi la client pentru transferarea fisierului solicitat\&. +.sp +Solutii securizate la aceste probleme exista, de obicei sub forma de proxiuri la nivelul aplicatie sau module firewall care analizeaza protocoalele\&. Din pacate exista si solutii mai simple si mai nesigure\&. Notand faptul ca raspunsurile DNS vin de la portul 53 si cele de la conexiunile FTP de la portul 20, multi administratori au cazut in capcana permiterii neconditionate a traficului de la aceste porturi\&. Adesea ei presupun ca nici un atacator nu va observa si exploata astfel de gauri in firewall\&. In alte cazuri, administratorii considera aceasta rezolvare ca una pe termen scurt pana cand vor implementa o solutie mai sigura\&. Apoi ei uita sa mai faca upgradeul de securitate\&. +.sp +Administratorii retelelor supraincarcate nu sunt singurii care cad in aceasta capcana\&. Numeroase produse au fost livrate cu aceste reguli nesigure\&. Chiar si Microsoft are partea ei de vina\&. Filtrele IPsec livrate cu Windows 2000 si Windows XP contin o regula implicita care permite traficul oricarui pachet UDP cu portul sursa 53 (DNS) sau 67 (DHCP)\&. +.sp +Nmap ofera optiunile +\fB\-g\fRsi +\fB\-\-source\-port\fR(care sunt echivalente) pentru exploatarea acestei slabiciuni\&. Specificati un numar ca argument si Nmap va trimite pachete de la acel port oricand acest lucru este posibil\&. Nmap trebuie sa foloseasca porturi diferite pentru anumite teste de detectare a sistemului de operare si cererile DNS ignora optiunea +\fB\-\-source\-port\fRdeoarece Nmap se bazeaza pe librariile sistemului pentru a le manevra\&. Multe scanari TCP, incluzand\-o pe cea SYN, suporta aceasta optiune, la fel ca si scanarea UDP\&. +.RE +.PP +\fB\-\-data\-length <numar>\fR(Adauga un numar aleator de date la pachetul trimis) +.RS 4 +In mod normal Nmap trimite pachete minimaliste continand doar headerul\&. Astfel pachetele TCP au in general 40 bytes si cererile de raspuns ICMP doar 28\&. Aceasta optiune adauga un numarul dat ca argument de bytes, generati aleator, la majoritatea pachetelor trimise\&. Pachetele pentru detectia sistemului de operare ( +\fB\-O\fR) nu sunt afectate, dar majoritatea pingurilor si scanarilor de porturi sunt\&. Acest lucru incetineste viteza de scanare, dar pachetele pot fi mai putin suspicioase\&. +.RE +.PP +\fB\-\-ttl <valoare>\fR(Seteaza campul IP time\-to\-live – timp de viata) +.RS 4 +Seteaza campul IP time\-to\-live – timp de viata – la valoarea specificata\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR(Scaneaza hosturile in ordine aleatoare) +.RS 4 +Spune Nmapului sa aranjeze aleator grupuri de 8096 hosturi inainte de scanare\&. Aceasta optiune poate face scanarea mai putin vizibila pentru anumite sisteme de monitorizare a retelei, in special cand e combina cu un specificator mic de timp\&. Daca vreti ca aranjarea aleatoare sa se realizeze pentru grupuri mai mari, cresteti valoarea PING_GROUP_SZ din +nmap\&.hsi recompilati\&. O solutie alternativa o reprezinta generarea listei de IPuri ce urmeaza a fi scanata cu o scanre de tip lista ( +\fB\-sL \-n \-oN \fR\fB\fInumefisier\fR\fR), si sa realizati aranjarea aleatoare a lor cu un script Perl, apoi sa furnizati intreaga lista Nmapului cu optiunea +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac <adresa mac, prefix, numele vanzatorului >\fR(Falsifica adresa MAC) +.RS 4 +Cere Nmapului sa foloseasca adresa MAC furnizata pentru toate cadrele ethernet pe care le trimite\&. Aceata optiune implica +\fB\-\-send\-eth\fRpentru a se asigura ca Nmap trimite pachetele la nivelul retea\&. MACul specificat poate avea cateva formate\&. Daca spcificati sirul +„0\(rq, Nmap alege un MAC complet aleator pentru sesiunea respectiva\&. Daca sirul furnizat este un numar par de digiti hexa (cu perechile separate prin caracterul \(lq:\(rq), Nmap va folosi respectuva adresa MAC\&. Daca mai putin de 12 digiti sunt furnizati, Nmap umple 6 bytes cu valori aleatoare\&. Daca argumentul nu este nici 0, nici sir hexa, Nmap cauta in +nmap\-mac\-prefixespentru a gasi un producator care sa contina sirul dat (cautare insenzitiva)\&. Daca o asemanare este gasita, Nmap foloseste identificatorul unic al vanzatorului (3 bytes) si completeaza cu 3 bytes alesi aleator\&. Argumentele valide ale optiunii +\fB\-\-spoof\-mac\fRsunt +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2, si +Cisco\&. +.RE +.SH "AFISAREA REZULTATELOR" +.PP +Orice instrument de securitate este bun in masura rezultatelor generate\&. Teste complexe si algoritmi nu au nici o valoare daca nu sunt prezentate intr\-un mod organizat si inteligibil\&. Dat fiind numarul de moduri in care Nmap este folosit de oamenii sau programe, nu exista un format unic care sa ii multumeasca pe toti\&. Asadar, Nmap ofera mai multe formate, incluzandu\-l pe cel interactiv pentru citirea uzuala si XML pentru interpretarea rezultatelor de catre software\&. +.PP +In plus fata de oferirea diferitelor formate de afisare, Nmap furnizeaza si optiuni de control al cantitatii de informatii si al mesajelor de eroare\&. Tipurile de afisare a rezultatelor sunt trimise la iesirea standard sau in fisiere, unde Nmap poate adauga sau rescrie\&. Fisierele cu rezultate pot fi de asemenea folosite pentru reluarea scanarilor intrerupte\&. +.PP +Nmap face rezultatele disponibile in cinci formate\&. Cel implicit este numit +afisare interactiva, si este trimis la iesirea standard (stdout)\&. Exista si un mod de +afisare normala, care este similar cu cel +interactivcu exceptia faptului ca afiseaza mai putine informatii si avertizari in timpul rularii din moment ce se asteapta analizarea rezultatelor dupa ce scanarea s\-a incheiat\&. +.PP +Formatul XML este unul dintre cele mai importante tipuri, deoarece poate fi convertit in HTML, prelucrat de programe cum ar fi interfata grafica a Nmap sau importat in baze de date\&. +.PP +Celelalte doua tipuri sunt mai simple +formatul pentru comanda grepcare include majoritatea informatiilor despre un host pe o singura linie si +f0rm4Tu1 sCRiPt KiDDi3pentru utilizatorii care se considera |<\-r4d\&. +.PP +In vreme ce afisarea interactiva este formatul implicit si nu are asociat o optiune pentru linia de comanda, celelalte patru formate folosesc aceeasi sintaxa\&. Ele iau un argument, care este numele fisierului in care se stocheaza rezultatele\&. Formate multiple pot fi specificate, dar fiecare format poate fi specificat cel mult o data\&. De exemplu, puteti dori salvarea in formatul normal pentru citirea ulterioara si in formatul XML pentru analiza software\&. Puteti realiza acestea cu optiunea +\fB\-oX scanarea_mea\&.xml \-oN scanarea_mea\&.nmap\fR\&. Desi in acest capitol numele folosite sunt simple, precum +scanarea_mea\&.xmlpentru simplitate, nume mai descriptive sunt recomandate\&. Numele alese sunt o chestie de preferinta, iar eu folosesc nume lungi care incorporeaza data scanarii si un cuvant doua pentru descriere si sunt plasate in directoare numite in functie de companiile scanate\&. +.PP +Desi aceste optiuni salveaza rezultatele in fisiere, Nmap afiseaza totusi in modul interactiv la iesirea standard rezultatele\&. De exemplu, comanda +\fBnmap \-oX scanarea_mea\&.xml tinta\fRscrie in format XML in +scanarea_mea\&.xmlsi afiseaza la iesirea standard rezultatele in modul interactiv ca si cum optiunea +\fB\-oX\fRnu a fost specificata\&. Puteti modifica acest lucru furnizand ca argument al optiunii caracterul cratima (\(lq\-\(rq) la unul din tipurile de formate de afisare\&. Acest lucru face ca Nmap sa dezactiveze formatul interactiv, si sa afiseze in schimb rezultatele in formatul specificat la iesirea standard\&. Comanda +\fBnmap \-oX \- tinta\fRva trimite rezultatele in format XML la iesirea standard\&. Erorile mari pot fi scrise in mod normal in sirul de erori, stderr\&. +.PP +Spre deosebire de argumentele Nmap, spatiul dintre optiune (cum este +\fB\-oX\fR) si numele fisierului sau cratima este obligatoriu\&. In caz contrar, in situatii ca +\fB\-oG\-\fRsau +\fB\-oXscan\&.xml\fR, o functie de compatibilitate cu versiunile anterioare va face ca Nmap sa creeze in +\fIformatul normal\fRfisiere de iesire cu numele +G\-si +Xscan\&.xml\&. +.PP +Nmap ofera optiuni de control al nivelului de informatii afisate si daca la fisiere se va face adaugare de informatie sau vor fi suprascrise\&. Toate optiunile sunt descrise mai jos +.PP +\fBFormate de afisare a rezultatelor\fR +.PP +\fB\-oN <specificator_fisier>\fR(Afisare normala) +.RS 4 +Cere ca +formatul normalsau fie directionat catre fisierul specificat\&. Asa cum s\-a discutat mai sus, exista o mica diferenta fata de +formatul interactiv\&. +.RE +.PP +\fB\-oX <specificator_fisier>\fR(Formatul XML) +.RS 4 +Cere ca +formatul XMLsa fie directionat catre fisierul specificat\&. Nmap include o definitie a tipului de document (DTD) care permite analizatoarelor XML sa valideze fisierele cu rezultate in format XML\&. Desi este in principal folosit in programare, el poate ajuta si oamenii sa interpreteze rezultatele\&. DTD defineste elementele legale ale formatului si adesea enumera atributele si valorile pe care le pot lua\&. Ultima versiune este intotdeauna disponibila la +\m[blue]\m[]\&\s-2\u[8]\d\s+2\&. +.sp +XML ofera un format stabil care este usor interpretat de software\&. Analizatoare XML sunt disponibile pentru majoritate limbajelor de programare, incluzand C/C++, Perl, Python si Java\&. Oamenii au scris programe pentru majoritatea acestor limbaje care interpreteaza direct rezultatele Nmap\&. Exemplele sunt +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[9]\d\s+2si +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[10]\d\s+2in Perl CPAN\&. In majoritatea cazurilor in care o aplicatie interfereaza cu Nmap, XML este formatul preferat\&. +.sp +Formatul XML referentiaza un format de pagina XSL care poate fi folosit pentru convertirea rezultatelor in HTML\&. Cea mai usoara cale de a realiza acest lucru o reprezinta simpla incarcare a fisierului XML intr\-un browser cum ar fi Firefox sau IE\&. Implicit, acest lucru functioneaza doar pe masinile pe care rulati Nmap (sau pe cele configurate similar) din cauza caii fisierului +nmap\&.xsl\&. Folositi optiunile +\fB\-\-webxml\fRsau +\fB\-\-stylesheet\fRpentru crearea de fisiere XML portabile care sunt randate ca HTML pe orice masina conectata la web\&. +.RE +.PP +\fB\-oS <specificator de fisier>\fR(f0rm4u1 ScRipT KIdd|3) +.RS 4 +Formatul script kiddie este asemanator cu formatul interactiv, cu exceptia faptului ca sirul de iesire este post\-procesat pentru a se potrivi mai bine cu stilul HaXXorZ care au neglijat in trecut Nmapul datorita formatului corect gramatical si ortografic de afisare a rezultatelor\&. Cei fara umor ar trebui sa noteze faptul ca eu iau peste picior script kiddie, inainte de a ma blama pentru presupusul +„ajutor acordat\(rq\&. +.RE +.PP +\fB\-oG <specificator_fisier>\fR(Formatul pentru comanda grep) +.RS 4 +Acest format este lasat la urma deoarece este invechit\&. Formatul XML este mult mai puternic si este aproape la fel de convenabil pentru utilizatorii experimentati\&. XML este un standar pentru care exista o multime de interpretoare, in vreme ce formatul grep reprezinta solutia doar pentru probleme punctuale\&. XML este extensibil pentru a prelua noi functionalitati ale Nmap in versiunile urmatoare in vreme ce sunt nevoit adeseori sa omit aceste optiuni din formatul greu din cauza lipsei de spatiu\&. +.sp +Nu e mai putin adevarat ca formatul grep este inca destul de popular\&. Este un format simplu care listeaza fiecare host pe cate o linie si poate fi usor interpretat cu instrumente standard UNIX cum ar fi grep, awk, cut, sed, diff si Perl\&. Chiar si eu il folosesc pentru unul din testele realizate in linie de comanda\&. Gasirea tuturor hosturilor cu portul ssh deschis si care ruleaza Solaris presupune o simpla comanda grep pentru identificarea hosturilor, imbinata cu awk sau cut pentru afisarea campurilor dorite\&. +.sp +Formatul grep consta in comentarii (linii care incep cu diez (#)) si linii cu tinte\&. O linie cu tinta include o combinatie de 6 campuri etichetate, separate prin taburi si urmate de doua puncte (\(lq:\(rq)\&. Campurile sunt +Host, +Porturi, +Protocoale, +Status ignorat, +Sistem de operare, +Index Seq, +IPID, si +Status\&. +.sp +Cele mai importante dintre aceste campuri sunt in general +Porturile, care ofera detalii despre fiecare port interesant\&. Este o lista separata prin virgule de porturi\&. Fiecare port reprezinta un port interesant, si ia forma unui subcamp separat in sapte de caracterul slash (/)\&. Subcampurile sunt: +Numarul portului, +Status, +Protocol, +Detinator, +Serviciu, +informatii SunRPC, si +Informatii despre versiune\&. +.sp +Ca si pentru formaul XML, aceasta pagina man nu permite documentarea intregului format\&. O detaliere a formatului pentru comanda grep este disponibila la +\m[blue]\m[]\&\s-2\u[11]\d\s+2\&. +.RE +.PP +\fB\-oA <nume_de_baza>\fR(Scrie in toate formatele) +.RS 4 +Pentru usurinta, puteti specifica +\fB\-oA \fR\fB\fInume_de_baza\fR\fRpentru stocarea rezultatelor in formatele normal, XML si pentru comanda grep, toate odata\&. Ele sunt stocate in +\fInume_de_baza\fR\&.nmap, +\fInume_de_baza\fR\&.xml, si +\fInume_de_baza\fR\&.gnmap\&. La fel ca in majoritatea programelor puteti adauga si calea inaintea numelor fisierelor, ca in exemplele +~/logurinmap/foocorp/sub UNIX sau +c:\ehacking\escosub Windows\&. +.RE +.PP +\fBOptiuni privind cantitatea de informatii afisate si + depanare\fR +.PP +\fB\-v\fR(Creste cantitatea de informatii afisate) +.RS 4 +Creste cantitatea de informatii afisate, facand ca Nmap sa afiseze mai multe date despre scanarea in curs\&. Porturile deschise sunt afisate pe masura ce sunt descoperite si un timp estimat al terminarii este furnizat atunci cand Nmap constata ca scanarea va dura mai mult decat cateva minute\&. Folositi de doua ori optiunea pentru un efect si mai puternic\&. Folosirea mai mult de doua ori nu are nici un efect\&. +.sp +Majoritatea modificarilor vor afecta doar afisarea interactiva si unele mai pot afecta formatul script kiddie\&. Celelalte formate sunt concepute pentru a fi procesate de masini, asa ca Nmap ofera implicit un nivel detaliat de informatii fara a obosi utilizatorul\&. Totusi, exista cateva schimbari in celelalte moduri unde dimensiunea rezultatelor poate fi redusa substantial prin omiterea unor detalii\&. De exemplu, o linie ce contine comentarii in formatul pentru comanda grep care furnizeaza o lista cu toate porturile scanate este furnizata doar in modul de afisare cu informatii detaliate (\-v) dearece poate fi destul de lunga\&. +.RE +.PP +\fB\-d [nivel]\fR(Creste sau seteaza nivelul de depanare) +.RS 4 +Cand modul afisare detaliata nu va ofera suficiente informatii, modul depanare este disponibil pentru a va inunda cu si mai multa informatie! La fel ca si cu optiunea de vizualizare detaliata ( +\fB\-v\fR), modul depanare este activat printr\-un specificator ( +\fB\-d\fR) si nivelul de depanare poate fi crescut prin specificarea lui de mai multe ori\&. Alternativ, se poate seta un nivel de depanare prin specificarea unui argument la +\fB\-d\fR\&. De exemplu, +\fB\-d9\fRseteaza nivelul 9\&. Acesta este cel mai mare nivel efectiv si va produce mii de linii, doar daca nu realizati o scanare simpla cu cateva porturi si hosturi\&. +.sp +Modul depanare este folositor cand se suspecteaza o problema in Nmap, sau daca esti pur si simplu incurcat de ce si ce face Nmap\&. Cum aceasta functionalitate este in general destinata dezvoltatorilor, mesajele de depanare nu sunt intotdeauna clare\&. Puteti vedea ceva de genul: +Timeoutvals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Daca nu intelegeti o linie, singurele lucruri de facut este sa o ignorati, sa cautati in codul sursa sau sa solicitati ajutor in lista de dezvoltare (nmap\-dev)\&. Unele linii sunt explicite, dar mesajele devin mai obscure pe masura ce nivelul de depanare creste\&. +.RE +.PP +\fB\-\-packet\-trace\fR(Urmareste pachetele si datele trimise si primite) +.RS 4 +Face ca Nmap sa afiseze un sumar cu toate pachetele trimise sau primite\&. Este adesea folositoare pentru depanare, dar este si o sursa pretioasa pentru noii utilizatori de a intelege exact ce face Nmap\&. Pentru a evita printarea de mii de linii, puteti dori specificarea unui numar limitat de porturi in vederea scanarii, cum ar fi +\fB\-p20\-30\fR\&. Daca va intereseaza doar ce se intampla in timpul detectarii versiunii, folositi in schimb +\fB\-\-version\-trace\fR\&. +.RE +.PP +\fB\-\-iflist\fR(Listeaza interfetele si caiule de rutare) +.RS 4 +Afiseaza interfetele si caile de rutare ale sistemului asa cum sunt ele detectate de Nmap\&. Este folositor pentru depanarea cailor de rutare sau interpretarea gresita a dispozitivelor (cum ar fi tratarea de catre Nmap a unei conexiuni PPP ca una Ethernet)\&. +.RE +.PP +\fBOptiuni pentru afisare unor informatii diverse\fR +.PP +\fB\-\-append\-output\fR(Adauga la fisierul de rezultate in loc sa il inlocuiasca) +.RS 4 +Cand specificati un nume de fisier la optiuni cum ar fi +\fB\-oX\fRsau +\fB\-oN\fR, acel fisier este suprascris implicit\&. Daca prefereati pastrarea continutului si adaugarea la sfarsitul lui de noi informatii, specificati optiunea +\fB\-\-append\-output\fR\&. Toate fisierele de rezultate specificate la executia Nmap vor fi deschise in modul adaugare in loc sa fie suprascrise\&. Acest lucru nu functioneaza bine cu formatul XML ( +\fB\-oX\fR) deoarece rezultatul nu va fi interpretat corect pana nu aranjati fisierul manual\&. +.RE +.PP +\fB\-\-resume <nume_fisier>\fR(Reia o scanare intrerupta) +.RS 4 +Unele scanari Nmap pot lua un timp foarte mare – de ordinul zilelor\&. Asemenea scanari nu ruleaza pana la sfarsit\&. Anumite restrictii pot face Nmapul sa nu ruleze in orele cu trafic intens, reteaua poate fi cazuta, masina pe care ruleaza Nmap poate suferii o restartare planificata sau neplanificata, sau Nmap poate sa se blocheze\&. Administratorul care ruleaza Nmap poate opri scanarea pentru orice alt motiv, apasand +ctrl\-C\&. Refacerea intregii scanari de la inceput nu este de dorit\&. Din fericire, in modul normal ( +\fB\-oN\fR) sau cel pentru comanda grep ( +\fB\-oG\fR) logurile sunt pastrate, utilizatorul poate solicita Nmap reluarea scanarii de la ultima tinta care era scanata in momentul intreruperii\&. Specificati optiunea +\fB\-\-resume\fRsi furnizati ca argument fisierul de rezultate in formatul normal sau grep\&. Nici un alt argument nu este permis, pentru ca Nmap citeste fisierul de rezultate si foloseste aceleasi optiuni specificate\&. Rulati Nmap cu +\fBnmap \-\-resume \fR\fB\fInumele_fisierului_log\fR\fR\&. Nmap va adauga la fisier noile rezultate\&. Reluarea nu este suportata de formatul XML deoarece combinarea a doua rulari succesive intr\-un singur fisier XML valid este dificila\&. +.RE +.PP +\fB\-\-stylesheet <cale sau URL>\fR(Seteaza formatul XSL pentru transformarea rezultatului XML) +.RS 4 +Nmap este furnizat cu un format XSL numit +nmap\&.xslpentru vizualizarea sau traducerea rezultatelor XML in HTML\&. Rezultatele in formatul XML includ o directiva +xml\-stylesheetdirective care indica fisierul +nmap\&.xmldin locatia in care a fost instalat Nmap (sau din directorul curent in Windows)\&. Incarcati rezultatul scanarii cu Nmap in format XML intr\-un browser si acesta ar trebui sa aleaga +nmap\&.xsldin sistemul de fisiere si sa\-l foloseasca pentru afisarea rezultatelor\&. Daca doriti specificarea unui alt format de afisare, specificati\-l ca argument pentru +\fB\-\-stylesheet\fR\&. Trebuie sa furnizati calea completa sau URLul\&. O apelare uzuala este +\fB \-\-stylesheethttps://nmap\&.org/data/nmap\&.xsl\fR\&. Aceasta aplelare spune browserului sa incarce cel mai nou format de afisare de la Insecure\&.Org\&. Optiunea +\fB\-\-webxml\fRrealizeaza acelasi lucru cu mai putine lucruri de tastat si memorat\&. Incarcand fisierul XSL de la Insecure\&.Org face vizualizarea mai facila pentru un calculator care nu are Nmap instalat (si implicit nici +nmap\&.xsl) Astfel URLul este adesea mult mai folositor, dar fisierul local nmap\&.xsl este utilizat implicit din motive de securitate\&. +.RE +.PP +\fB\-\-webxml\fR(Incarca formatul stylesheet de la Insecure\&.Org) +.RS 4 +Este un sinonim covenabil pentru +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR(Se omite declaratia stylesheetului XSL din XML) +.RS 4 +Specificati aceasta optiune daca vreti sa preveniti Nmapul sa asocieze vreun format XSL cu fisierul XML\&. Directiva +xml\-stylesheeteste omisa\&. +.RE +.SH "OPTIUNI DIVERSE" +.PP +Aceasta sectiune descrie cateva optiuni importante (si mai putin importante) care nu si\-au gasit locul in nici o alta sectiune +.PP +\fB\-6\fR(Activeaza scanarea IPv6) +.RS 4 +Din 2002, Nmap ofera suport IPv6 pentru majoritatea functionalitatilor sale\&. In particular, scanarea ping (doar TCP), scanarea connect() si detectarea versiunii suporta toate IPv6\&. Sintaxa comenzii este aceeasi cu exceptia adaugarii optiunii +\fB\-6\fR\&. Desigur, trebuie sa folositi sintaxa IPv6 daca specificati o adresa in locul unui hostname\&. O adresa poate arata +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, asa ca hostnameurile sunt recomandate\&. Rezultatul arata in mod normal, cu adresa IPv6 pe linia +„porturi_interesante\(rqca singura adresa\&. +.sp +Desi IPv6 nu a revolutionat lumea, are parte de o folosire semnificativa in unele tari (in special in Asia) si majoritatea sistemelor moderne de operare ofera suport\&. Pentru folosirea Nmap cu IPv6, atat sursa cat si tinta scanarii trebuie sa fie configurate in IPv6\&. Daca ISPul dumneavoastra nu aloca o adresa IPv6 (multi nu o fac), tunele de trecere sunt disponibile gratuit si functioneaza bine cu Nmap\&. Unul dintre cele mai bune este cel rulat de BT Exact\&. Am folosit si cel furnizat de Hurricane Electric la +\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]\&. Tunelele 6la4 sunt de asemenea folosite, existand si optiuni gratuite\&. +.RE +.PP +\fB\-A\fR(Optiuni de scanare agresive) +.RS 4 +Aceasta optiune activeaza alte optiuni avansate si agresive\&. Nu m\-am decis inca de la ce vine litera de specificare\&. In prezent activeaza detectia sistemului de operare ( +\fB\-O\fR) si scanarea versiunii ( +\fB\-sV\fR)\&. Mai multe functionalitati pot fi inglobate pe viitor\&. Ideea este de a activa un set cuprinzator de optiuni de scanare fara ca oamenii sa fie nevoiti sa tina minte un set intreg de optiuni\&. Aceasta optiune activeaza functionalitatile, nu si optiunile de timp (cum ar fi +\fB\-T4\fR) sau nivelul de informatii afisat ( +\fB\-v\fR) pe care le\-ati dori\&. +.RE +.PP +\fB\-\-datadir <nume_director>\fR(Specifica un anumit director pentru localizarea fisierelor Nmap) +.RS 4 +Nmap obtine anumite date in momentul rularii in fisierele numite +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes, si +nmap\-os\-fingerprints\&. Nmap incearca intai sa caute aceste fisiere in directorul specificat cu optiunea +\fB\-\-datadir\fR(daca exista)\&. Orice fisier negasit aici este cautat in directorul specificat de directiva NMAPDIR\&. La rand vin apoi +~/\&.nmappentru sisteme POSIX sau locatia executabilului Nmap (pe sistemele Win32), si apoi o locatie precompilata cum ar fi +/usr/local/share/nmapsau +/usr/share/nmap\&. Ca o ultima optiune, Nmap va cauta in directorul curent\&. +.RE +.PP +\fB\-\-send\-eth\fR(Foloseste trimiterea bruta ethernet) +.RS 4 +Cere Nmapului sa trimita pachete brute ethernet (la nivelul legaturii de date) in locul trimiterii de la nivelul IP superior\&. Implicit, Nmap alege pe cel care este in general potrivit pentru platforma de rulare\&. Socketuri brute (nivelul IP) sunt in general mult mai eficiente pe masinile UNIX, in timp ce cadre ethernet sunt necesare pentru operatii sub Windows, din moment ce Microsoft a dezactivat suportul pentru suport de socketuri brute\&. Nmap foloseste pachete IP brute pe UNIX in ciuda acestei optiunii cand nu exista nici o alta alegere (conexiuni non\-ethernet)\&. +.RE +.PP +\fB\-\-send\-ip\fR(Trimite pachete brute la nivelul IP) +.RS 4 +Cere Nmapului sa trimita pachete brute prin socketuri IP in locul trimiterii lor la nivelul cadrelor ethernet\&. Este complementul optiunii +\fB\-\-send\-eth\fRdiscutata anterior\&. +.RE +.PP +\fB\-\-privileged\fR(Se presupune ca utilizatorul are privilegii depline) +.RS 4 +Spune Nmapului sa presupuna ca are privilegii suficiente pentru a trimite pachete brute, sa intercepteze pachete si alte operatii similare care in general necesita privilegii de root pe sisteme UNIX\&. Implicit Nmap renunta la astfel de operatii daca getuid() nu este zero\&. +\fB\-\-privileged\fReste o optiune folositoare impreuna cu capacitatea kernelului de Linux de a permite utilizatorilor neprivilegiati sa realizeze scanari cu pachete brute\&. Asigurativa ca ati mentionat aceasta optiune inaintea oricarei optiuni care necesita privilegii (scanare SYN, detectia sistemului de operare, etc\&.)\&. Variabila NMAP_PRIVILEGED poate fi setata ca o alternativa la +\fB\-\-privileged\fR\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR(Afiseaza numarul versiunii) +.RS 4 +Afiseaza versiunea de Nmap si iese\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR(Afiseaza o pagina sumara de ajutor) +.RS 4 +Afiseaza un ecran de ajutor cu principalele optiuni\&. Rularea Nmap fara nici un argument face exact acelasi lucru\&. +.RE +.SH "INTERACTIUNE IN TIMPUL RULARII" +.PP +.PP +In timpul executiei Nmap, toate tastele apasate sunt inregistrate\&. Acest lucru va perite interactiunea cu programul fara oprirea si restartarea lui\&. Anumite taste vor schimba optiuni in vreme ce altele vor afisa mesaje despre scanarea in curs\&. Conventia este ca +\fIliterele mici cresc\fRnivelul de afisare si +\fIliterele mari scad\fRacest nivel\&. +.PP +\fBv\fR/ \fBV\fR +.RS 4 +Cresc / Descresc cantitatea de informatii afisate +.RE +.PP +\fBd\fR/ \fBD\fR +.RS 4 +Cresc /Descresc cantitatea de informatii de depanare +.RE +.PP +\fBp\fR/ \fBP\fR +.RS 4 +Activeaza / Dezactiveaza urmarirea pachetelor +.RE +.PP +Anything else (Orice altceva) +.RS 4 +Afiseaza un mesaj de genul: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "EXEMPLE" +.PP +Aici sunt cateva exemple de utilizare a Nmap, de la unele simple si de rutina pana la altele mai complexe si ezoterice\&. Unele adrese IP si nume de domenii sunt folosite pentru a face lucrurile mai concrete\&. In locul lor trebuie sa puneti adresele/numele din +\fIreteaua dumneavoastra\&.\fR\&. Desi nu cred ca scanarea de porturi a altor retele este sau ar trebui sa fie ilegala, unii administratori de retea nu apreciaza scanari nesolicitate ale retelelor lor si pot depune plangere\&. Obtinerea mai intai a permisiunii este cea mai buna abordare\&. +.PP +Pentru testare, aveti permisiunea sa scanati hostul +scanme\&.nmap\&.org\&. Aceasta permisiune include doar scanarea cu Nmap si nu testarea gaurilor de securitate sau atacuri de tip DOS\&. Pentru conservarea latimii de banda, va rog sa nu initiati mai multe scanari zilnic\&. Daca aceasta tinta este abuzata, va fi indisponibila in retea si Nmap va raporta imposibilitatea de a gasi hostul +Failed to resolve given hostname/IP: scanme\&.nmap\&.org\&. Aceasta permisiune se aplica si hosturilor +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org, si asa mai departe, desi acestea nu exista inca\&. +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Aceasta linie de comanda scaneaza toate porturile TCP rezervate de pe masina +scanme\&.nmap\&.org\&. Optiunea +\fB\-v\fRactiveaza modul de afisare in timp real a rezultateor\&. +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Lanseaza o scanare SYN impotriva tuturor celor 255 masini din reteaua de +„clasa C\(rqunde isi are locul hostul scanme\&. De asemenea incearca determinarea sistemului de operare a fiecarui host activ\&. Acesta lansare necesita privilegii root din cauza scanarii SYN si a detectarii sistemului de operare\&. +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Lanseaza enumerarea hosturilor si o scanare TCP in prima jumatate a celor 255 de subretele 198\&.116 de clasa B\&. Testeaza daca sistemul ruleaza sshd, DNS, pop3d, imapd sau portul 4546\&. Pentru fiecare dintre porturile gasite deschise, detectia versiunii este pusa in functiune pentru a se determina aplicatia care ruleaza\&. +.PP +\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR +.PP +Cere Nmapului sa aleaga aleator 100\&.000 tinte si sa le scaneze in cautarea serverelor web (portul 80)\&. Enumerarea hosturilor este dezactivata cu +\fB\-P0\fRdin moment ce trimiterea unui cuplu de probe pentru a determina daca hostul este activ este o pierdere de timp atata vreme cat se cauta un singur port al fiecarei tinte\&. +.PP +\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Scaneaza cele 4096 IPuri dupa servere web (fara ping) si salveaza rezultatele in formatul pentru comanda grep si in formatul XML\&. +.PP +\fBhost \-l company\&.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR +.PP +Realizeaza un transfer de zona DNS pentru a gasi toate hosturile din company\&.com si apoi furnizeaza adresele Nmapului\&. Comanda de mai sus este valabila pentru un sistem Linux – alte sisteme beneficiaza de comenzi diferite pentru realizarea transferului DNS\&. +.SH "PROBLEME" +.PP +Asemeni autorului, Nmap nu este perfect\&. Dar ilputeti face mai bun trimitand rapoarte despre problemele aparute si chiar scriind patchuri\&. daca Nmap nu se comporta in modul in care va asteptati, faceti upgradeul la ultima versiune disponibila la +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Daca problema persista, faceti munca de cercetare pentru a vedea daca problema a fost descoperita si discutata\&. Incercati cautarea in Google a mesajului de eroare sau navigand prin arhivele Nmap\-dev la +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. Cititi acest manual in intregime de asemenea\&. Daca nimic nu se rezolva, trimiteti un mail la +<dev@nmap\&.org>\&. Va rog sa includeti tot ce ati aflat despre problema, precum si versiunea de Nmap pe care o folositi si sistemul de operare\&. Problemele si intrebarile legate de utilizarea Nmapului trimise la dev@nmap\&.org au sanse mult mai mari de a li se raspunde decat cele trimise direct la Fyodor\&. +.PP +Patchurile de rezolvare a problemelor sunt si mai bune decat rapoartele despre problema in sine\&. Instructiuni de baza pentru crearea patchurilor sunt disponibile la +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]\&. Patchurile pot fi trimise la nmap\-dev (recomandat) sau direct la Fyodor\&. +.SH "AUTOR" +.PP +Fyodor +<fyodor@nmap\&.org>( +\m[blue]\fB\%http://www.insecure.org\fR\m[]) +.PP +Sute de oameni au facut contributii importante la Nmap de\-a lungul timpului\&. Ei sunt mentionati in fisierul +CHANGELOGdistribuit cu Nmap si disponibil la +\m[blue]\m[]\&\s-2\u[12]\d\s+2\&. +.SH "ASPECTE LEGALE" +.SS "Unofficial Translation Disclaimer / Disculparea fata de traducerea neoficiala" +.PP +This is an unnofficial translation of the +\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[13]\d\s+2into Romanian\&. It was not written by Insecure\&.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\&. However, we hope that this translation helps Romanian speakers understand the Nmap license better\&. +.PP +Aceasta este traducerea neoficiala a +\m[blue]\fBdetaliilor de licenta ale Nmap\fR\m[]\&\s-2\u[13]\d\s+2in limba romana\&. Nu a fost scrisa de Insecure\&.Com LLC si nu statueaza in mod legal termenii distributiei Nmap – numai textul original in limba engleza realizeaza acest lucru\&. Oricum speram ca aceasta traducere sa ajute vorbitorii de limba romana sa inteleaga termenii licentei Nmap mai bine\&. +.SS "Dreptul de autor si licentiere" +.PP +Scanerul de securitate Nmap este (C) 1996\-2005 a Insecure\&.Com LLC\&. Nmap este marca inregistrata a Insecure\&.Com LLC\&. Acest program este software liber; il puteti redistribui si/sau modifica sub termenii Licentei Publice Generale (GNU General Public License) asa cum este publicata de Free Software Foundation; Versiunea 2\&. Aceasta va garanteaza dreptul de folosire, modificare si redistribuire sub anumite conditii\&. Daca doriti sa incorporati tehnologie Nmap in software proprietar, suntem dispusi sa vindem licente alternative (contact +<sales@insecure\&.com>)\&. Multi producatori de scanere de securitate au licentiat deja tehnologie Nmap cum ar fi descoperirea hosturilor, scanare de porturi, detectia sistemului de operare si detectia serviciului/versiunii\&. +.PP +Notati ca GPL pune restrictii importante asupra +„produselor derivate\(rq, desi nu furnizeaza o definitie detaliata a termenului\&. Pentru a evita neintelegerile, consideram ca o aplicatie este +„produs derivat\(rqin termenii licentei daca realizeaza unul din urmatoarele lucruri: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integreaza cod sursa din Nmap +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Citeste sau include fisiere Nmap proteja de drepturi de autor, cum ar fi +nmap\-os\-fingerprintssau +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Executa Nmap si interpreteaza rezultatele (spre deosebire de aplicatiile shell care afiseaza outputul brut al Nmapului si nu reprezinta produse derivate)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Integreaza/include/agregheaza Nmap intr\-un executabil de instalare proprietar, cum sunt cele produse de InstallShield\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Face legatura la o biblioteca sau executa un program care realizeaza oricare dintre cele enumerate\&. +.RE +.PP +Termenul +„Nmap\(rqinclude si portiuni din produse derivate din Nmap\&. Lista nu este exclusiva, dar este menita a clarifica interpretarea noastra a produselor derivate cu exemple comune\&. Aceste restrictii se aplica doar pentru cazul in care redistribuiti Nmap\&. De exemplu, nimic nu va impiedica sa scrieti interfete grafice proprietare pentru Nmap\&. Distribuiti\-o independent si invitati oamenii la +\m[blue]\fB\%https://nmap.org/\fR\m[]pentru a descarca Nmap\&. +.PP +Nu consideram aceste ca restrictii adugate peste GPL ci doar o clarificare a modului in care interpretam termenul de +„produs derivat\(rqasa cum se aplica el la produsul Nmap licentiat GPL\&. Este similar modului in care Linus Torvalds a anuntat interpretarea sa asupra a cum se aplica termenul de +„produs derivat\(rqla modulele kernellului Linux\&. Interpretarea noastra se refera doar la Nmap – nu vorbim in numele nici unui alt produs GPL\&. +.PP +Daca aveti intrebari despre restrictiile licentei GPL in ceea ce priveste folosirea Nmap in produse non\-GPL, sunt bucurosi sa va ajutam\&. Asa cum am mentionat, oferim licente alternative pentru integrarea Nmap in aplicatii si aplicari proprietare\&. Astfel de contracte au fost vandute majoritatii producatorilor de software de securitate si in general includ o licenta perpetua precum si furnizarea prioritara de suport si actualizari, dupa cum ne si ajuta sa finantam dezvoltarea tehnologiei Nmap\&. Va rugam sa trimiteti un email la +<sales@insecure\&.com>pentru mai multe informatii\&. +.PP +Ca o exceptie speciala de la termenii GPL, Insecure\&.Com LLC permite legarea acestui cod cu orice versiune de biblioteca OpenSSL distribuita sub o licenta identica cu cea din fiserul Copying\&.OpenSSL si distribuirea codului legat a celor doua\&. Trebuie sa va supuneti GNU GPL pentru orice cod in afara de OpenSSL\&. Daca modificati acest fisier, puteti extinde aceasta exceptie si asupra fisierului dumneavoastra, desi nu sunteti obligati sa o faceti\&. +.PP +Daca primiti aceste fisiere cu o alta licenta scrisa sau contract care specifica alti termeni decat cei precizati aici, atunci licenta alternativa ia locul celei de fata\&. +.SS "Disponibilitatea codului sursa si contributiile comunitatii" +.PP +Sursa este furnizata cu acest software deoarece consideram ca utilizatorii au dreptul de a stii exact ce face un program inainte de a\-l rula\&. Acest lucru permite si auditul softwareului in vederea descoperirii gaurilor de securitate (nici una nu a fost descoperita pana acum)\&. +.PP +Codul sursa permite portarea Nmap pe noi platforme, rezolvarea problemelor si adaugarea de noi functionalitati\&. Sunteti incurajati sa trimiteti modificarile dumneavoastra la +<fyodor@nmap\&.org>pentru o posibila incorporare in distributia principala\&. Prin trimiterea acestor modificari catre Fyodor sau la una din listele de dezvoltare de la Insecure\&.Org, se presupune ca oferiti lui Fyodor si Insecure\&.Com LLC dreptul neliitat, neexclusiv de reutilizare, modificare si relicentiere a codului\&. Nmap va fi intotdeauna disponibil ca software cu sursa disponibila, dar acest lucru este important din cauza imposibilitatii relicentierii ce a creat probleme devastatoare pentru alte proiecte cu software liber (cum sunt KDE si NASM)\&. Ocazional relicentiam codul catre terti asa cum s\-a discutat mai devreme\&. Daca doriti sa specificati conditii speciale de licentiere a contributiei dumneavoastra, precizati acest lucru cand o trimiteti\&. +.SS "Nici o garantie" +.PP +Acest program este distribuit in speranta ca va fi folositor, dar FARA NICI O GARANTIE; fara macar a garantiei de COMERCIABILITATE sau POTRIVIRE PENTRU UN SCOP PARTICULAR\&. Vezi GNU GPL pentru mai multe detalii la +\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[], sau in fisierul COPYING inclus in Nmap\&. +.PP +Notati si faptul ca Nmap, ocazional, blocheaza aplicatii prost scrise, stive TCP/IP si chiar sisteme de operare\&. Desi este un lucru extrem de rar, este important sa tinteti minte ca +\fINmap nu trebuie niciodata rulat impotriva sistemelor cu aplicatii critice\fRdecat daca sunteti pregatit sa suferiti eventuale blocari\&. Statuam aici faptul ca Nmap poate bloca sistemele sau retelele dumneavoastra si ne disculpam de orice paguba sau problema pe care Nmap o poate cauza\&. +.SS "Utilizare inadecvata" +.PP +Datorita micului risc de blocare si pentru ca unele personaje negative folosesc Nmap in cunoasterea tintelor premergator atacului, exista administratori care devin suparati si pot depune plangere daca sistemele lor sunt scanate\&. Asadar, este recomandata solicitarea permisiunii chiar si inaintea unei scanari superficiale a retelei\&. +.PP +Din ratiuni de securitate Nmap nu ar trebui instalat niciodata cu privilegii speciale (ex: suid root) +.SS "Software de la terti" +.PP +Acest produs iclude software dezvoltat de +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[14]\d\s+2\&. O versiune modificata a +\m[blue]\fBbibliotecii de captura a pachetelor Libpcapportable\fR\m[]\&\s-2\u[15]\d\s+2este distribuita impreuna cu Nmap\&. Versiunea de Windows a Nmap utilizeaza biblioteca derivata din libpcap, +\m[blue]\fBWinPcap\fR\m[]\&\s-2\u[16]\d\s+2\&. Suportul pentru expresiile regulate este furnizat de +\m[blue]\fBPCRE library\fR\m[]\&\s-2\u[17]\d\s+2, software open source, scris de Philip Hazel\&. Anumite functii brute de retea folosesc biblioteca +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[18]\d\s+2, scrisa de Dug Song\&. O versiune modificata este distribuita cu Nmap\&. Optional Nmap se poate lega de +\m[blue]\fBTrusa criptografica OpenSSL\fR\m[]\&\s-2\u[19]\d\s+2pentru suportul de detectare a versiunii SSL\&. Toate softurile de la terti descrise in acest paragraf sunt redistribuibile gratuit sub licente de tipul BSD\&. +.SS "Clasificarea de control al exportului din SUA" +.PP +Clasificarea de control al exportului din SUA: Insecure\&.Com LLC considera ca Nmap cade sub incidenta US ECCN (numarul de control al clasificarii de export) 5D992\&. Aceasta categorie este denumita +„Software de securitate a informatiilor necontrolat de 5D002\(rq\&. Singurele restrictii ale acestei clasificari sunt AT (anti\-terrorism) care se aplica aproape tuturor bunurilor si interzic exportul catre cateva natiuni ca Iranul si Coreea de Nord\&. Asadar exportul Nmapului nu necesita licente speciale, permisiuni sau autorizari guvernamentale\&. +.SH "NOTE" +.IP " 1." 4 +original English version +.RS 4 +\%https://nmap.org/man/ +.RE +.IP " 2." 4 +Creative Commons Attribution License +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 3." 4 +RFC1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 4." 4 +RFC792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 5." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 6." 4 +TCP RFC +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 7." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 8." 4 +.RS 4 +\%https://nmap.org/data/nmap.dtd +.RE +.IP " 9." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP "10." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP "11." 4 +.RS 4 +\%http://www.unspecific.com/nmap-oG-output +.RE +.IP "12." 4 +.RS 4 +\%https://nmap.org/nmap_changelog.html +.RE +.IP "13." 4 +Nmap license details +.RS 4 +\%https://nmap.org/man/man-legal.html +.RE +.IP "14." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "15." 4 +bibliotecii de captura a pachetelor Libpcapportable +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "16." 4 +WinPcap +.RS 4 +\%http://www.winpcap.org +.RE +.IP "17." 4 +PCRE library +.RS 4 +\%http://www.pcre.org +.RE +.IP "18." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "19." 4 +Trusa criptografica OpenSSL +.RS 4 +\%http://www.openssl.org +.RE diff --git a/docs/man-xlate/nmap-ru.1 b/docs/man-xlate/nmap-ru.1 new file mode 100644 index 0000000..5cba198 --- /dev/null +++ b/docs/man-xlate/nmap-ru.1 @@ -0,0 +1,2320 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "Автор" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 03/31/2023 +.\" Manual: Справочное руководство Nmap +.\" Source: Nmap +.\" Language: Russian +.\" +.TH "nmap" "1" "03/31/2023" "Nmap" "Справочное руководство Nmap" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "НАЗВАНИЕ" +nmap \- Утилита для исследования сети и сканер портов +.SH "СИНТАКСИС" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fIТип\ сканирования\fR...] [\fIОпции\fR] {\fIцель\ сканирования\fR} +.SH "ОПИСАНИЕ" +.PP +Nmap («Network Mapper») \- это утилита с открытым исходным кодом для исследования сети и проверки безопасности\&. Она была разработана для быстрого сканирования больших сетей, хотя прекрасно справляется и с единичными целями\&. Nmap использует "сырые" IP пакеты оригинальным способом, чтобы определить какие хосты доступны в сети, какие службы (название приложения и версию) они предлагают, какие операционные системы (и версии ОС) они используют, какие типы пакетных фильтров/брандмауэров используются и еще множество других характеристик\&. В то время, как Nmap обычно используется для проверки безопасности, многие системные администраторы находят ее полезной для обычных задач, таких как контролирование структуры сети, управление расписаниями запуска служб и учет времени работы хоста или службы\&. +.PP +Выходные данные Nmap это список просканированных целей с дополнительной информацией по каждой из них в зависимости от заданных опций\&. Ключевой информацией является +«таблица важных портов»\&. +Эта таблица содержит номер порта, протокол, имя службы и состояние\&. Состояние может иметь значение +open +(открыт), +filtered +(фильтруется), +closed +(закрыт) или +unfiltered +(не фильтруется)\&. +Открыт +означает, что приложение на целевой машине готово для установки соединения/принятия пакетов на этот порт\&. +Фильтруется +означает, что брандмауэр, сетевой фильтр, или какая\-то другая помеха в сети блокирует порт, и Nmap не может установить +открыт +этот порт или +закрыт\&. +Закрытые +порты не связаны ни с каким приложением, но могут быть открыты в любой момент\&. Порты расцениваются как +не фильтрованные, когда они отвечают на запросы Nmap, но Nmap не может определить открыты они или закрыты\&. Nmap выдает комбинации +открыт|фильтруется +и +закрыт|фильтруется, когда не может определить, какое из этих двух состояний описывает порт\&. Эта таблица также может предоставлять детали о версии программного обеспечения, если это было запрошено\&. Когда осуществляется сканирование по IP протоколу (\fB\-sO\fR), Nmap предоставляет информацию о поддерживаемых протоколах, а не об открытых портах\&. +.PP +В дополнение к таблице важных портов Nmap может предоставлять дальнейшую информацию о целях: преобразованные DNS имена, предположение об используемой операционной системе, типы устройств и MAC адреса\&. +.PP +Типичное сканирование с использованием Nmap показано в +Пример 1\&. Единственные аргументы, использованные в этом примере \- это +\fB\-A\fR, для определения версии ОС, сканирования с использованием скриптов и трассировки; +\fB\-T4\fR +для более быстрого выполнения; затем два целевых хоста\&. +.PP +\fBПример 1. Типичный пример сканирования с помощью Nmap\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org playground + +Starting Nmap ( https://nmap\&.org ) +Interesting ports on scanme\&.nmap\&.org (64\&.13\&.134\&.52): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X +OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11 + +Interesting ports on playground\&.nmap\&.org (192\&.168\&.0\&.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios\-ssn +389/tcp open ldap? +445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds +1002/tcp open windows\-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper +5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC port: 5900) +5900/tcp open vnc VNC (protocol 3\&.8) +MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds +.fi +.if n \{\ +.RE +.\} +.PP +Самую новую версию Nmap можно скачать с +\m[blue]\fB\%https://nmap.org\fR\m[]\&. Самая новая версия страницы справки Nmap (man page) расположена по адресу +\m[blue]\fB\%https://nmap.org/book/man.html\fR\m[]\&. +.SH "ЗАМЕЧАНИЯ О ПЕРЕВОДЕ" +.PP +Гуз Александр (Guz Alexander) +<kalimatas@gmail\&.com> +.PP +Этот русский вариант Справочного Руководства Nmap является переводом версии 6184 +\m[blue]\fBоригинальной английской версии\fR\m[]\&\s-2\u[1]\d\s+2\&. Хотя я надеюсь, что данный перевод сделает Nmap более доступным для русскоязычных пользователей, я не могу гарантировать, что он является полным или является переводом последней официальной английской версии\&. Эту работу можно модифицировать и(или) распространять на основе лицензии +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. +.PP +Марк Бруцкий (Mark Brutsky) +<hackcat\&.dev@gmail\&.com> +.PP +Этот русский вариант Справочного Руководства Nmap является переводом версии 6184 +\m[blue]\fBоригинальной английской версии\fR\m[]\&\s-2\u[1]\d\s+2\&. Хотя я надеюсь, что данный перевод сделает Nmap более доступным для русскоязычных пользователей, я не могу гарантировать, что он является полным или является переводом последней официальной английской версии\&. Эту работу можно модифицировать и(или) распространять на основе лицензии +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. +.SH "СВОДКА ОПЦИЙ" +.PP +Эта сводка опций выводится на экран, когда Nmap запускается без каких\-либо опций; последняя версия всегда доступна здесь +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]\&. Эта сводка помогает людям запомнить наиболее употребляемые опции, но она не может быть заменой документации, предоставленной в данном руководстве\&. Некоторые опции не включены в этот список\&. +.PP + + + + +.sp +.if n \{\ +.RS 4 +.\} +.nf +Nmap 4\&.76 ( https://nmap\&.org ) +Использование: nmap [Тип(ы) Сканирования] [Опции] {цель сканирования} +ОПРЕДЕЛЕНИЕ ЦЕЛИ СКАНИРОВАНИЯ: + Можно использовать сетевые имена, IP адреса, сети и т\&.д\&. + Пример: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\&.0\-255\&.1\-254 + \-iL <имя_входного_файла>: Использовать список хостов/сетей из файла + \-iR <количество_хостов>: Выбрать произвольные цели + \-\-exclude <хост1[,хост2][,хост3],\&.\&.\&.>: Исключить хосты/сети + \-\-excludefile <имя_файла>: Исключить из сканирования список хостов/сетей, находящийся в файле +ОБНАРУЖЕНИЕ ХОСТОВ: + \-sL: Сканирование с целью составления списка \- просто составить список целей для сканирования + \-sP: Пинг сканирование \- просто определить, работает ли хост + \-PN: Расценивать все хосты как работающие \- пропустить обнаружение хостов + \-PS/PA/PU [список_портов]: TCP SYN/ACK или UDP пингование заданных хостов + \-PE/PP/PM: Пингование с использованием ICMP\-эхо запросов, запросов временной метки и сетевой маски + \-PO [список_протоколов]: Пингование с использованием IP протокола + \-n/\-R: Никогда не производить DNS разрешение/Всегда производить разрешение [по умолчанию: иногда] + \-\-dns\-servers <сервер1[,сервер2],\&.\&.\&.>: Задать собственные DNS сервера для разрешения доменных имён + \-\-system\-dns: Использовать системный DNS\-преобразователь +РАЗЛИЧНЫЕ ПРИЕМЫ СКАНИРОВАНИЯ: + \-sS/sT/sA/sW/sM: TCP SYN/с использованием системного вызова Connect()/ACK/Window/Maimon сканирования + \-sU: UDP сканирование + \-sN/sF/sX: TCP Null, FIN и Xmas сканирования + \-\-scanflags <флаги>: Задать собственные TCP флаги + \-sI <зомби_хост[:порт]>: "Ленивое" (Idle) сканирование + \-sO: Сканирование IP протокола + \-b <FTP_хост>: FTP bounce сканирование + \-\-traceroute: Трассировка пути к хосту + \-\-reason: Выводить причину, почему Nmap установил порт в определенном состоянии +ОПРЕДЕЛЕНИЕ ПОРТОВ И ПОРЯДКА СКАНИРОВАНИЯ: + \-p <диапазон_портов>: Сканирование только определенных портов + Пример: \-p22; \-p1\-65535; \-p U:53,111,137,T:21\-25,80,139,8080 + \-F: Быстрое сканирование \- Сканирование ограниченного количества портов + \-r: Сканировать порты последовательно \- не использовать случайный порядок портов + \-\-top\-ports <количество_портов>: Сканировать <количество_портов> наиболее распространенных портов + \-\-port\-ratio <рейтинг>: Сканировать порты с рейтингом большим, чем <рейтинг> +ОПРЕДЕЛЕНИЕ СЛУЖБ И ИХ ВЕРСИЙ: + \-sV: Исследовать открытые порты для определения информации о службе/версии + \-\-version\-intensity <уровень>: Устанавливать от 0 (легкое) до 9 (пробовать все запросы) + \-\-version\-light: Ограничиться наиболее легкими запросами (интенсивность 2) + \-\-version\-all: Использовать каждый единичный запрос (интенсивность 9) + \-\-version\-trace: Выводить подробную информацию о процессе сканирования (для отладки) +СКАНИРОВАНИЕ С ИПОЛЬЗОВАНИЕМ СКРИПТОВ: + \-sC: эквивалентно опции \-\-script=default + \-\-script=<Lua скрипты>: <Lua скрипты> \- это разделенный запятыми список директорий, файлов скриптов или + категорий скриптов + \-\-script\-args=<имя1=значение1,[имя2=значение2,\&.\&.\&.]>: Передача аргументов скриптам + \-\-script\-trace: Выводить все полученные и отправленные данные + \-\-script\-updatedb: Обновить базу данных скриптов +ОПРЕДЕЛЕНИЕ ОС: + \-O: Активировать функцию определения ОС + \-\-osscan\-limit: Использовать функцию определения ОС только для "перспективных" хостов + \-\-osscan\-guess: Угадать результаты определения ОС +ОПЦИИ УПРАВЛЕНИЯ ВРЕМЕНЕМ И ПРОИЗВОДИТЕЛЬНОСТЬЮ: + Опции, принимающие аргумент <время>, задаются в миллисекундах, пока вы не добавите \*(Aqs\*(Aq (секунды), \*(Aqm\*(Aq (минуты), + или \*(Aqh\*(Aq (часы) к значению (напр\&. 30m)\&. + \-T[0\-5]: Установить шаблон настроек управления временем (больше \- быстрее) + \-\-min\-hostgroup/max\-hostgroup <кол_хостов>: Установить размер групп для параллельного сканирования + \-\-min\-parallelism/max\-parallelism <количество_запросов>: Регулирует распараллеливание запросов + \-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <время>: Регулирует время ожидания ответа на запрос + \-\-max\-retries <количество_попыток>: Задает максимальное количество повторных передач запроса + \-\-host\-timeout <время>: Прекращает сканирование медленных целей + \-\-scan\-delay/\-\-max\-scan\-delay <время>: Регулирует задержку между запросами + \-\-min\-rate <число>: Посылать запросы с интенсивностью не меньше чем <число> в секунду + \-\-max\-rate <число>: Посылать запросы с интенсивностью не больше чем <число> в секунду +ОБХОД БРАНДМАУЭРОВ/IDS: + \-f; \-\-mtu <значение>: Фрагментировать пакеты (опционально с заданным значениме MTU) + \-D <фикт_хост1,фикт_хост2[,ME],\&.\&.\&.>: Маскировка сканирования с помощью фиктивных хостов + \-S <IP_адрес>: Изменить исходный адрес + \-e <интерфейс>: Использовать конкретный интерфейс + \-g/\-\-source\-port <номер_порта>: Использовать заданный номер порта + \-\-data\-length <число>: Добавить произвольные данные к посылаемым пакетам + \-\-ip\-options <опции>: Посылать пакет с заданным ip опциями + \-\-ttl <значение>: Установить IP поле time\-to\-live (время жизни) + \-\-spoof\-mac <MAC_адрес/префикс/название производителя>: Задать собственный MAC адрес + \-\-badsum: Посылать пакеты с фиктивными TCP/UDP контрольными суммами +ВЫВОД РЕЗУЛЬТАТОВ: + \-oN/\-oX/\-oS/\-oG <файл>: Выводить результаты нормального, XML, s|<rIpt kIddi3, + и Grepable формата вывода, соответственно, в заданный файл + \-oA <базовове_имя_файла>: Использовать сразу три основных формата вывода + \-v: Увеличить уровень вербальности (задать дважды или более для увеличения эффекта) + \-d[уровень]: Увеличить или установить уровень отладки (до 9) + \-\-open: Показывать только открытые (или возможно открытые) порты + \-\-packet\-trace: Отслеживание принятых и переданных пакетов + \-\-iflist: Вывести список интерфейсов и роутеров (для отладки) + \-\-log\-errors: Записывать ошибки/предупреждения в выходной файл нормального режима + \-\-append\-output: Добавлять выходные данные в конец, а не перезаписывать выходные файлы + \-\-resume <имя_файла>: Продолжить прерванное сканирование + \-\-stylesheet <путь/URL>: Устанавливает XSL таблицу стилей для преобразования XML вывода в HTML + \-\-webxml: Загружает таблицу стилей с Nmap\&.Org + \-\-no\-stylesheet: Убрать объявление XSL таблицы стилей из XML +РАЗЛИЧНЫЕ ОПЦИИ: + \-6: Включить IPv6 сканирование + \-A: Активировать функции определения ОС и версии, сканирование с использованием скриптов и трассировку + \-\-datadir <имя_директории>: Определяет место расположения файлов Nmap + \-\-send\-eth/\-\-send\-ip: Использовать сырой уровень Ethernet/IP + \-\-privileged: Подразумевать, что у пользователя есть все привилегии + \-\-unprivileged: Подразумевать, что у пользователя нет привилегий для использования сырых сокетов + \-V: Вывести номер версии + \-h: Вывести эту страницу помощи +ПРИМЕРЫ: + nmap \-v \-A scanme\&.nmap\&.org + nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8 + nmap \-v \-iR 10000 \-PN \-p 80 +ДЛЯ СПРАВКИ ПО ДРУГИМ ОПЦИЯМ, ОПИСАНИЙ И ПРИМЕРОВ СМОТРИТЕ MAN СТРАНИЦУ + +.fi +.if n \{\ +.RE +.\} +.sp + + +.SH "ОПРЕДЕЛЕНИЕ ЦЕЛИ СКАНИРОВАНИЯ" +.PP +В командной строке Nmap все, что не является опцией (или аргументом опции), рассматривается как цель сканирования\&. В простейшем случае для сканирования используется IP адрес или сетевое имя целевой машины\&. +.PP +Иногда необходимо просканировать целую сеть\&. Для этого Nmap поддерживает CIDR адресацию\&. + +Вы можете добавить /\fIкол\-во бит\fR +к IP адресу или сетевому имени и Nmap просканирует каждый IP адрес, для которого первые +\fIкол\-во бит\fR +такие же как и у заданного хоста\&. Например, 192\&.168\&.10\&.0/24 просканирует 256 хостов между 192\&.168\&.10\&.0 (бинарное: +11000000 10101000 00001010 00000000) и 192\&.168\&.10\&.255 (бинарное: +11000000 10101000 00001010 11111111) включительно\&. 192\&.168\&.10\&.40/24 сделает абсолютно то же самое\&. Зная, что IP адрес scanme\&.nmap\&.org 64\&.13\&.134\&.52, при записи типа scanme\&.nmap\&.org/16 будет произведено сканирование 65,536 IP адресов между 64\&.13\&.0\&.0 и 64\&.13\&.255\&.255\&. Наименьшее допустимое значение /0, при котором будет просканирован весь Интернет\&. Наибольшее значение /32, при котором будет просканирован только заданный хост или IP адрес, т\&.к\&. все адресные биты заблокированы\&. +.PP +CIDR нотация коротка, однако не всегда достаточно гибка\&. Например, вы хотите просканировать 192\&.168\&.0\&.0/16, но пропустить все IP\-адреса, оканчивающиеся на \&.0 или \&.255, т\&.к\&. обычно это широковещательные адреса\&. Nmap может осуществить такое сканирование путем задания диапазонов в октетах\&. Вместо определния обычного IP адреса, вы можете определить для каждого октета либо разделенный запятыми список чисел, либо диапазон\&. Например, 192\&.168\&.0\-255\&.1\-254 пропустит все адреса в диапазоне оканчивающиеся на \&.0 и \&.255\&. Диапазоны не обязательно задавать только в последних октетах: при записи 0\-255\&.0\-255\&.13\&.37 будет произведено сканирование всех адресов в Интернете оканчивающихся на 13\&.37\&. Такой тип сканирования может быть полезен для исселедования просторов Интернета\&. +.PP +IPv6 адреса могут быть определны только в форме, полностью соответствующей правильной форме записи IPv6 адресов\&. CIDR и использование диапазонов в октетах не применимо к IPv6 адресам, т\&.к\&. они редко используются\&. +.PP +Вы можете передавать в командной строке Nmap различные варианты определения целей, не обязательно одного типа\&. Команда +\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/16 10\&.0\&.0,1,3\-7\&.0\-255\fR +сделает то, что вы ожидаете\&. +.PP +Цели сканирования обычно задаются в командной строке, и существуют различные опции контроля выбора целей: +.PP +\fB\-iL \fR\fB\fIимя_файла\fR\fR (Ввод из списка) +.RS 4 +Считывает цели из +\fIимя_файла\fR\&. Хотя передача большого списка хостов для сканирования является обычным явлением, это не удобно\&. Например, ваш DHCP сервер передают вам список из 10,000 используемых им на данный момент адресов, и вы хотите его просканировать\&. Или, возможно, вы хотите просканировать все IP адреса, +\fIкроме\fR +переданных им, чтобы выявить несанкционированное использование статических IP адресов\&. Просто сгенерируйте список хостов для сканирования и передайте имя файла в Nmap как аргумент для опции\fB\-iL\fR\&. Записи в файле могут находиться в любой приемлимой для Nmap форме (IP адреса, сетевые имена, CIDR, IPv6, или диапазоны в октетах)\&. Каждая запись должна быть отделена пробелом или несколькими, символами табуляции либо символами перехода на новую строку\&. Вы можете передать в качестве аргумента дефис(\-) как имя файла, если хотите, чтобы Nmap считывал список хостов из стандартного ввода, а не из файла\&. +.RE +.PP +\fB\-iR \fR\fB\fIкол\-во хостов\fR\fR (Выбирает произвольные цели) +.RS 4 +Для сканирования в пределах всего Интернета или каких\-либо исследований, вам, возможно, понадобится выбрать цели произвольно\&. Аргумент +\fIкол\-во хостов\fR +определяет сколько необходимо сгенерировать IP адресов\&. Неподходящие IP адреса, такие как частные, широковещательные или нелокализованные диапазоны адресов автоматически пропускаются\&. Аргумент +0 +может быть передан для бесконечного сканирования\&. Имейте в виду, что некоторым системным администраторам может не понравиться неразрешенное сканирование их сетей и они могут пожаловаться\&. Используйте эту опцию на свой страх и риск! Если в дождливый денек вам будет скучно, попробуйте команду +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR + + + +для сканирования произвольных веб\-серверов\&. +.RE +.PP +\fB\-\-exclude \fR\fB\fIхост1\fR\fR\fB[,\fIхост2\fR[,\&.\&.\&.]]\fR (Исключить хосты/сети) +.RS 4 +Определяет разделенный запятыми список целей, которые необходимо исключить из сканирования, даже если они являются частью заданного вами диапазона сканирования\&. Передаваемый список использует стандартный синтаксис Nmap, поэтому может содержать сетевые имена, CIDR адресацию, диапазоны в октетах и т\&.д\&. Эта опция может быть полезна, если сеть, которую вы хотите просканировать, содержит сервера или системы, негативно реагирующие на сканирование портов, или подсети, администрируемые другими людьми\&. +.RE +.PP +\fB\-\-excludefile \fR\fB\fIимя_файла\fR\fR (Исключить список из файла) +.RS 4 +Эта опция делает то же самое, что и +\fB\-\-exclude\fR, за исключением того, что цели для исключения находятся в разделенном пробелами, символами табуляции или символами перехода на новую строку +\fIфайле\fR, а не в командной строке\&. +.RE +.SH "ОБНАРУЖЕНИЕ ХОСТОВ" +.PP +Одна из первейших задач при исследовании любой сети это сократить (иногда довольно большой) набор IP диапазонов до списка активных или интересных хостов\&. Сканирование каждого порта каждого IP адреса медленно и необязательно\&. Конечно же то, что делает хост интересным для исселедования во многом определяется целями сканирования\&. Сетевые администраторы возможно будут заинтересованы только в хостах, на которых запущена определенная служба, в то время как тем, кого интересует безопасность, будут интересны все устройства с IP адресами\&. Задачи администраторов по обнаружению работающих хостов в сети могут быть удовлетворены обычным ICMP пингом, людям же, которые тестируют способность сети противостоять атакам из вне, необходимо использовать разнообразные наборы запросов с целью обхода брандмауэра\&. +.PP +Посколько задачи, требующие обнаружения хостов столь различны, Nmap предоставляет большое разнообразие опций для различных методов\&. Задачу обнаружения хостов иногда называют пинг сканированием (ping scan), однако она намного превосходит использование обычных ICMP запросов ассоциирующихся с вездесущими +ping +утилитами\&. Пользователи могут полностью пропустить шаг пинг сканирования с помощью опции сканирования с целью составления списка (\fB\-sL\fR) или просто отключив его (\fB\-PN\fR), или сканировать сеть с помощью произвольных комбинаций мультипортовых TCP SYN/ACK, UDP и ICMP запросов\&. Целью всех этих запросов является получение ответов, указывающих, что IP адрес в настоящее время активен (используется хостом или сетевым устройством)\&. В большинстве сетей лишь небольшой процент IP адресов активен постоянно\&. Это особенно характерно для адресных пространств вида 10\&.0\&.0\&.0/8\&. Такие сети имеют 16 млн\&. IP адресов, но я видел, как они используются компаниями, в которых не более тысячи машин\&. Функция обнаружения хостов может найти эти машины в этом необъятном море IP адресов\&. +.PP +Если не задано никаких опций обнаружения хостов, то Nmap посылает TCP ACK пакет на порт 80 и запрос на ICMP эхо ответ кажодй целевой машине\&. Исключение составляет ARP сканировании всех целей в сети\&. Для непривилегированных пользователей Unix оболочки, вместо ACK пакета посылается SYN используя системный вызов +\fBconnect\fR +Эти умолчания равнозначны опциям +\fB\-PA \-PE\fR\&. Такое сканирование достаточно для локальных сетей, но для исследования безопасности необходимо использовать более сложные наборы запросов\&. +.PP +Опции +\fB\-P*\fR +(определяющие тип пинг сканирования) могут комбинироваться\&. Вы можете увеличить шансы обхода строго брандмауэра посылая множество запросов различных типов, используя различные TCP порты/флаги и ICMP коды\&. Также имейте в виду, что даже если вы определите различные +\fB\-P*\fR +опции, по умолчанию применительно к целям локальной сети будет производиться и ARP сканирование (\fB\-PR\fR), т\&.к\&. оно почти всегда быстрее и более эффективно\&. +.PP +По умолчанию после обнаружения хостов Nmap начинает сканирование портов каждой активной машины\&. Так будет, даже если вы укажите на использование нестандартных методов обнаружения хостов, например, с использованием UDP запросов (\fB\-PU\fR)\&. Прочтите об опции +\fB\-sP\fR, чтобы узнать, как выполнить только обнаружение хостов, или используйте опцию +\fB\-PN\fR, чтобы пропустить обнаружение хостов и осуществить сканирование портов всех целевых машин\&. С помощью следующих опций можно настраивать функцию обнаружения хостов: +.PP +\fB\-sL\fR (Сканирование с целью составления списка) +.RS 4 +Это тип сканирования является "упрощенной" версией функции обнаружения хостов, при помощи которого просто будет создан список хостов заданной сети без посылки каких\-либо пакетов целевым машинам\&. По умолчанию Nmap все же будет осуществлять обратное разрешение DNS с целью узнавания имен хостов\&. Часто бывает удивительно, как много полезной информации могут содержать обычные имена хостов\&. Например, +fw\&.chi +это имя брандмауэра одной Чикагской компании\&. + +В конце Nmap также сообщает общее количество IP адресов\&. Этот тип сканирования также является хорошим способом проверить, что вы действительно знаете IP адреса необходимых вам целей\&. Если имена хостов содержат неизвестные вам доменные имена, то стоит провести дальнейшее исследование, чтобы избежать сканирования сети не той компании, которая вам нужна\&. +.sp +Т\&.к\&. целью является просто составление списка целевых хостов, то опции с большим уровнем функциональности, такие как сканирование портов, определение ОС или пинг сканирование не могут сочетаться с рассматриваемой опцией\&. Если вы хотите отключить пинг сканирование, но хотите использовать опции с таким высоким уровнем функциональности, то почитайте об опции +\fB\-PN\fR\&. +.RE +.PP +\fB\-sP\fR (Пинг сканирование) +.RS 4 +Эта опция указывает Nmap произвести пинг сканирование (определение хостов), а затем вывести список доступных хостов, т\&.е\&. тех, которые ответили на запросы\&. Определение маршрутов и NSE скрипты также используются, если необходимо, однако дальнейшее тестирование (как сканирование портов или определение ОС) не производится\&. По умолчанию эта опция считается как бы на один шаг более тщательной, чем сканирование с целью составления простого списка хостов, и может быть использована в этих же целях\&. Она позволяет произвести исследование целевой сети без привлечения внимания\&. Знание, какие хосты в сети в данный момент работают, для атакующих ценне, чем просто список IP адресов и сетевых имен, предоставляемых опцией \-sL\&. +.sp +Эта опция также полезна системным администраторам\&. Она может быть использована для подсчета количества работающих в сети машин или мониторинга доступности сервера\&. Это часто называют "пинг чисткой" (ping sweep) и результаты, предоставляемые этой опцией, заслуживают больше доверия, чем обычное пингование широковещательных адресов, т\&.к\&. большинство хостов не отвечают на подобные запросы\&. +.sp +По умолчанию опцией +\fB\-sP\fR +посылаются запрос на ICMP это ответ и TCP ACK пакет на порт 80\&. Когда используется непривилегированным пользователем, посылается только SYN пакет (используя системные вызов +\fBconnect\fR) на порт 80 целевой машины\&. Когда привилегированный пользователь производит сканирование целей локальной сети, то используются ARP запросы до тех пор, пока не будет задано +\fB\-\-send\-ip\fR\&. Для большей гибкости опция +\fB\-sP\fR +может быть скомбинирована с любой из опций +\fB\-P*\fR +(за исключением +\fB\-PN\fR)\&. Если используется какой\-либо из этих типов запросов и опции для задания номеров портов, то запросы по умолчанию (ACK и это ответы) опускаются\&. Когда между машиной с Nmap и целевой сетью расположен строгий брандмауэр, то рекомедуется использование таких расширенных методов сканирования\&. Иначе некоторые из хостов могут быть не определены, т\&.к\&. брандмауэр заблокировал запрос или ответ\&. +.RE +.PP +\fB\-PN\fR (Не использовать пинг сканирование) +.RS 4 +Указывает Nmap полностью пропустить этап обнаружения хостов\&. Обычно, Nmap использует этот этап для обнаружения активных машин, к которым можно применить более углубленное сканирование\&. По умолчанию Nmap производит углубленное сканирование, такое как сканирование портов, определение версии или определение ОС только обнаруженных работающих хостов\&. После отключения этапа обнаружения хостов опцией +\fB\-PN\fR, Nmap будет производить сканирование +\fIкаждого\fR +заданого целевого IP адреса\&. Так что, если для сканирования будет определена сеть с адресным пространством класса B (/16), то будет произведено сканирование всех 65,536 IP адресов\&. Т\&.к\&. этап обнаружения хостов и составления списка целей сканирования пропущен, то Nmap будет исполнять запрошенные функции, как если бы каждый IP адрес был активен\&. Для машин локальной сети будет произведено ARP сканирование (пока не зададите +\fB\-\-send\-ip\fR), т\&.к\&. Nmap необходимы MAC адреса для дальнейшего сканирования целевых хостов\&. Раньше эта опция задавалась флагом +\fBP0\fR +(используется нуль), но была переименова, чтобы избежать путаницы с пингованием с использованием IP протокола +\fBPO\fR +(используется буква O)\&. +.RE +.PP +\fB\-PS \fR\fB\fIсписок_портов\fR\fR (TCP SYN пингование) +.RS 4 +Эта опция посылает пустой TCP пакет с установленным SYN флагом\&. Порт по умолчанию \- 80 (можно задать во время компилирования изменяя +\fIDEFAULT_TCP_PROBE_PORT_SPEC\fR + +в +nmap\&.h)\&. + +Альтернативные порты задаются в качестве параметров\&. Синтаксис такой же как и для опции +\fB\-p\fR +за исключением того, что спецификаторы типа +T: +недопустимы\&. Примеры: +\fB\-PS22\fR +и +\fB\-PS22\-25,80,113,1050,35000\fR\&. Имейте в виду, что между списком портов и +\fB\-PS\fR +не должно быть пробела\&. Если заданы несколько запросов, то они будут посланы параллельно\&. +.sp +Установленные флаг SYN указывает удаленной системе, что вы пытаетесь установить соединение\&. Если порт назначения закрыт, то в ответ посылается RST (сброс) пакет\&. Если порт открыт, то удаленная система предпримет второй шаг в 3\-ех этапной последовательности установки TCP соединения путем ответа + +SYN/ACK TCP пакетом\&. Система, на которой работает Nmap, сбрасывает почти установленное соединение отвечая RST пакетом вместо ACK, что привело бы к установке полного соединения\&. RST пакет посылается ядром системы, на которой работает Nmap, в ответ на непредвиденный SYN/ACK пакет, а не самой Nmap\&. +.sp +Nmap не важно открыт порт или закрыт\&. Ответы пакетами RST или SYN/ACK описанными выше, указывают Nmap на то, что хост доступен и может отвечать на запросы\&. +.sp +На Unix машинах, только пользователь с правами +root, как правило, может посылать и принимать сырые TCP пакеты\&. +Для непривилегированного пользователя +для каждого целевого порта инициируется системный вызов +\fBconnect\fR\&. Поэтому при попытке установить соединение на целевой хост посылается SYN пакет\&. Если на вызов +\fBconnect\fR +приходит быстрый ответ или отказ типа ECONNREFUSED, значит TCP стек получил SYN/ACK или RST пакет, и хост помечается как доступный\&. Если соединение не устанавливается по причине истечения времени (timeout), то хост помечается как не работающий\&. Этот механизм также используется для соединений с использованием протокола IPv6, т\&.к\&. построение сырых пакетов IPv6 еще не реализовано в Nmap\&. +.RE +.PP +\fB\-PA \fR\fB\fIсписок_портов\fR\fR (TCP ACK пингование) +.RS 4 +Этот тип пингования очень похож на описанный выше\&. Разница состоит в том, как вы могли догадаться, что вместо установки SYN флага устанавливается TCP ACK флаг\&. Такой ACK пакет имеет своей целью распознавание данных во время установленного TCP соединения, но такого соединения не существует, поэтому удаленные хосты всегда будут отвечат на такой запрос RST пакетом, тем самым выдавая свое существование\&. +.sp +Опция +\fB\-PA\fR +использует тот же порт по умолчанию, что и SYN запросы (80), и так же может принимать в качестве параметра список портов в том же формате\&. Если эту опцию пытается использовать непривилегированный пользователь или задана цель в формате IPv6, то используется механизм с использованием вызова +\fBconnect\fR +описанный выше\&. Этот механизм несовершенен, т\&.к\&. при использовании вызова +\fBconnect\fR +вместо ACK пакета посылается SYN\&. +.sp +Причина, по которой Nmap предоставляет оба типа пингования (SYN и ACK), состоит в повышении шансов обхода брандмауэров\&. Многие администраторы конфигурируют роутеры или другие простые брандмауэры на блокировку входящих SYN пакетов за исключением тех, что предназначены для публичных служб, таких как веб сайт или почтовый сервер\&. Тем самым предотвращаются все остальные соединения, и в то же время пользователи могут беспрепятственно выходить в Интернет\&. Такой подход не требует много ресурсов от брандмауэров/роутеров и широко поддерживается различными аппаратными и программными фильтрами\&. + +для реализации такого подхода имеет опцию +\fB\-\-syn\fR\&. Когда брандмауэр использует такие правила, то запросы с установленным флагом SYN (\fB\-PS\fR), посланные на закрытые порты, с большой вероятностью будут заблокированы\&. В таких случаях более выгодно использовать запросы с флагом ACK, т\&.к\&. они не попадают под эти правила\&. +.sp +Другим популярным типом сетевого экрана является брандмауэр блокирующий все непредвиденные пакеты\&. Изначально эта функция поддерживалась только в наиболее продвинутых брандмауэрах, хотя с годами она становится все популярнее\&. Использующийся в Linux сетевой экран Netfilter/iptables реализует этот механизм с помощью опции +\fB\-\-state\fR, которая категоризирует пакеты в зависимости от состояния соединения\&. Против таких систем лучше использовать пакеты SYN, т\&.к\&. непредвиденные пакеты ACK с большой вероятностью будут распознаны как фиктивные и заблокированы\&. Решение такого затруднительного положение состоит в том, чтобы посылать и SYN и ACK запросы путем задания опций +\fB\-PS\fR +и +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU \fR\fB\fIсписок_портов\fR\fR (UDP пингование) +.RS 4 +Еще одной функцией используемой для обнаружения хостов является UDP пингование, которая посылает пустой (пока не задана опция +\fB\-\-data\-length\fR) UDP пакет на данные порты\&. Список портов задается в том же формает, что и для описанных выше опций +\fB\-PS\fR +и +\fB\-PA\fR\&. Если порты не заданы, то по умолчанию используется 31338\&. Порт по умолчанию может быть задан во время компиляции путем изменения +\fIDEFAULT_UDP_PROBE_PORT_SPEC\fR +в +nmap\&.h\&. + +По умолчанию выбран не распростаненный порт, т\&.к\&. отправка запросов на открытые порты нежелательна для этого типа сканирования\&. +.sp +Целью запроса UDP является получение в ответ ICMP пакета с ошибкой "порт недостижим"\&. Это указывает Nmap на то, что машина работает и доступна\&. Другие типы ICMP ошибок, такие как хост/сеть недоступна или превышение TTL указывают на то, что машина выключена или недоступна\&. Отсутствие ответа интерпретируется этим же путем\&. Если такой запрос посылается на открытый порт, то большинство служб просто игнорируют пустой пакет и не посылают никакого ответа\&. Поэтому портом по умолчанию является 31338, т\&.к\&. он вряд ли будет использоваться какой\-либо службой\&. Лишь некоторые службы, такие как Character Generator (chargen) protocol, ответят на пустой UDP пакет, и это также укажет Nmap на то, что машина доступна\&. +.sp +Основным преимуществом такого типа сканирования является то, что он позволяет обходить брандмауэры, фильтрующие только TCP запросы\&. Например, однажды у меня был беспроводной широкополосный роутер Linksys BEFW11S4\&. Внутренний интерфейс этого устройства фильтровал по умолчанию все TCP порты, в то время как в ответ на UDP запросы посылалось сообщение об ошибке "порт недостижим", что делало его работу бесполезной\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (Типы пинг пакетов ICMP) +.RS 4 +В дополнении к нестандратным методам обнаружения хостов с помощью TCP и UDP запросов, Nmap может посылать и стандартные пакеты, используемые вездесущей программой +ping\&. Nmap посылает ICMP пакет типа 8 (эхо запрос) на целевой IP адрес, ожидая в ответ от доступного хоста пакет типа 0 (эхо ответ)\&. +К сожалению для сетевых исследователей, многие хосты и брандмауэры теперь блокируют такие пакеты вместо того, чтобы ответить на них, как это требуется в +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[3]\d\s+2\&. По этой причине сканеры использующе только ICMP запросы редко бывают полезны при сканировании неизвестных целей в Интернете\&. Но они могут быть полезны системным администраторам, занимающимся мониторингом внутренней сети\&. Используйте опцию +\fB\-PE\fR, чтобы активировать такой тип сканирования\&. +.sp +Но Nmap использует не только стандратный эхо запрос\&. В стандарте ICMP (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[4]\d\s+2) также определены запросы временной метки, информационные запросы и запросы адресной маски с кодами 13, 15 и 17 соответственно\&. Хотя они служат для того, чтобы узнать какую\-либо информацию, такую как адресную маску или текущее время, они могут быть легко применены для обнаружения целей\&. Система, которая отвечает на них, работает и доступна\&. В настоящее время Nmap не использует информационные запросы, т\&.к\&. они не получиил широкого распространения\&. Стандарт RFC 1122 наставивает на том, что +«хост НЕ ДОЛЖЕН посылать такие сообщения»\&. Запросы временной метки или адресной маски могут быть посланы путем задания опций +\fB\-PP\fR +и +\fB\-PM\fR +соответственно\&. Ответ на запрос временной метки (ICMP код 14) или на запрос адресной маски (код 18) указывают на то, что хост доступен\&. Эти запросы могут быть полезны, когда администраторы блокируют пакеты эхо запросов, но забывают о том, что другие типы ICMP запросов могут быть использованы в тех же целях\&. +.RE +.PP +\fB\-PO \fR\fB\fIсписок_протоколов\fR\fR (пингование с использованием IP протокола) +.RS 4 +Новейшей опцией для обнаружения хостов является пингование с использованием IP протокола, которая посылает IP пакеты с номером протокола, указанным в заголовке пакета\&. Список протоколов задается в том же формате, что и список портов в описанных выше опциях обнаружения хостов с помощью протоколов TCP и UDP\&. Если не указан ни один протокол, то по умолчанию будут использованы IP пакеты ICMP (протокол 1), IGMP (протокол 2) и IP\-in\-IP (протокол 4)\&. Протоколы по умолчанию могут быть заданы во время компиляции путем изменения +\fIDEFAULT_PROTO_PROBE_PORT_SPEC\fR +в +nmap\&.h\&. +Имейте в виду, что для ICMP, IGMP, TCP (протокол 6) и UDP (протокол 17), пакеты посылаются с "правильными" заголовками протокола, в то время как для остальных протоколов пакеты посылаются без дополнительной информации после IP заголовка (пока не задана опция +\fB\-\-data\-length\fR)\&. +.sp +При использовании этого метода ожидаются ответы по протоколу исходного запроса, либо ICMP сообщение о недостижимости, что свидетельствует о том, что данный протокол не поддерживается удаленным хостом\&. Оба варианта ответа означают, что целевой хост доступен\&. +.RE +.PP +\fB\-PR\fR (ARP пингование) +.RS 4 +Одной из наиболее популярных сфер применения Nmap является сканирование локальных сетей (LAN)\&. В большинстве локальных сетей, особенно тех, которые используют диапазоны частных адресов определенные в +\m[blue]\fBRFC 1918\fR\m[]\&\s-2\u[5]\d\s+2, большое количество IP адересов не используется в любой момент времени\&. Когда Nmap пытается послать сырой IP пакет, такой как ICMP эхо запрос, операционная система должна определить MAC\-адрес (ARP) соответствующий целевому IP, чтобы правильно адресовать фрейм\&. Это часто бывает медленно и проблематично, т\&.к\&. операционные системы не были написаны с учетом того, что им придется посылать миллионы ARP запросов недоступным хостам в короткий промежуток времени\&. +.sp +ARP сканирование позволяет Nmap вместо ARP запросов использовать свои собственные оптимизированные алгоритмы\&. И если Nmap получает ответ, то ей даже нет необходимости беспокоиться о других типах обнаружения хостов, основанных на IP пакетах\&. Этот делает ARP сканирование более быстрым и надежным\&. Поэтому оно применяется по умолчанию для сканирования локальных сетей\&. Даже если указаны другие типы сканирования (как +\fB\-PE\fR +или +\fB\-PS\fR), Nmap все равно использует ARP сканирование для машин локальной сети\&. Если вы абсолютно не хотите использовать такой тип сканирования, то задайте опцию +\fB\-\-send\-ip\fR\&. +.RE +.PP +\fB\-\-traceroute\fR (Отслеживать путь к хосту) +.RS 4 +Отслеживание осуществляется после сканирования, используя результаты этого сканирования для определения порта и протокола, с помощью которых можно будет достичь цели\&. Процедура работает со всеми типами сканирования кроме сканирования с использованием системного вызова connect (\fB\-sT\fR) и "ленивого" (idle) сканирования (\fB\-sI\fR)\&. Все отслеживания используют динамическую модель таймингов Nmap и осуществляются параллельно\&. +.sp +Процедура отслеживания маршрута работает путем посылки пакетов с низким TTL (time\-to\-live (временем\-жизни) в попытке получить в ответ ICMP сообщение Time Exceeded (Превышение Времени Жизни) от промежуточных узлов между сканером и целевым хостом\&. Стандартные реализации процедуры отслеживания маршрута начинают с TTL равным 1, а затем увеличивают его до тех пор, пока не будет достигнут целевой хост\&. В реализации же этой процедуры в Nmap сначала устанавливается высокий TTL, а затем TTL уменьшается, пока не станет равным 0\&. Это позволяет Nmap использовать "умные" алгоритмы кэширования с целью увеличения скорости отслеживания маршрута\&. В среднем Nmap посылает 5\-10 пакетов на хост, в зависимости от условий в сети\&. В случае сканирования единственной подсети (напр\&. 192\&.168\&.0\&.0/24), возможно будет необходимо послать только один пакет на каждый хост\&. +.RE +.PP +\fB\-\-reason\fR (Показать причины состояний портов и хостов) +.RS 4 +Показывает информацию о причинах, по которым каждый порт установлен в какое\-либо состояние, и по которым каждый хост работает или нет\&. Эта опция выводит тип пакета, по которому было определено состояние порта или хоста\&. Например, +RST +пакет от закрытого порта или эхо ответ от работающего хоста\&. Информация, которую может предоставить Nmap, определяется типом сканирования или пингования\&. SYN сканирование и SYN пингование (\fB\-sS\fR +и +\fB\-PS\fR) описываются очень детально, а информация о сканировании с использованием TCP соединений (\fB\-sT\fR) ограничена реализацией системного вызова +\fBconnect\fR\&. Эта функция автоматически активируется при использовании опции отладки (\fB\-d\fR), и результаты ее работы хранятся в XML файлах, даже если эта опция не была задана\&. +.RE +.PP +\fB\-n\fR (Не производить разрешение DNS имен) +.RS 4 +Указывает Nmap +\fIникогда\fR +не производить обратное разрешение DNS + +имен каждого обнаруженного активного IP адереса\&. Преобразование DNS может быть медленным даже со встроенным в Nmap параллельным преобразователем IP адресов, поэтому данная опция может сократить время сканирования\&. +.RE +.PP +\fB\-R\fR (Производить разрешение DNS имен для всех целей) +.RS 4 +Указыват Nmap +\fIвсегда\fR +производить обратное разрешение DNS имен для каждого целевого IP адреса\&. Обычно DNS преобразование применяется только к доступным хостам\&. +.RE +.PP +\fB\-\-system\-dns\fR (Использовать системный DNS преобразователь) +.RS 4 +По умолчанию Nmap преобразует IP адреса путем посылки запросов непосредственно серверам имен, указанным в вашей системе, и последующим анализом ответов\&. Многие запросы (часто десятки) исполняются параллельно для увеличения производительности\&. Задайте эту опцию, чтобы использовать ваш системный преобразователь IP адресов (один IP адрес за один системный вызов +\fBgetnameinfo\fR)\&. Это медленно и редко бывает полезно, до тех пор, пока вы не найдете ошибку в параллельном преобразователе Nmap (если найдете, известите нас, пожалуйста)\&. Системный преобразователь всегда используется для сканирования с использованием протокола IPv6\&. +.RE +.PP +\fB\-\-dns\-servers \fR\fB\fIserver1\fR\fR\fB[,\fIserver2\fR[,\&.\&.\&.]]\fR\fB \fR (Сервера для обратного разрешения DNS) +.RS 4 +По умолчанию Nmap определяет DNS сервера (для разрашения rDNS) из вашего resolv\&.conf файла (Unix) или из реестра (Win32)\&. Вы можете использовать эту опцию для задания альтернативных серверов\&. Эта опция игнорируется, если вы используете +\fB\-\-system\-dns\fR +или сканирование по протоколу IPv6\&. Использование нескольких DNS серверов частно увеличивает скорость сканирования, особенно если вы выбираете официальные сервера для IP пространства вашей цели\&. Эта опция также может увеличить незаметность, т\&.к\&. ваши запросы могут быть перенаправлены любым рекурсивным DNS сервером в Интернете\&. +.sp +Эта опция также бывает полезна при сканировании частных сетей\&. Иногда лишь некоторые сервера имен предоставляют правильную rDNS информацию, и вы можете даже не знать, где они\&. Вы можете просканировать сеть на наличие открытого порта 53 (возможно с помощью фукнкции определения версии), затем попробовать составить список (\fB\-sL\fR) указывая по очереди все сервера имен в опции +\fB\-\-dns\-servers\fR +до тех пор, пока не найдете тот, который работает\&. +.RE +.SH "ОСНОВЫ СКАНИРОВАНИЯ ПОРТОВ" +.PP +Хотя Nmap постоянно наращивала функциональность, изначально утилита разрабатывалась как эффективный сканер портов, и она по\-прежнему сохраняет свои основные функции\&. Простой командой +\fBnmap \fR\fB\fIцель сканирования\fR\fR +будет произведено сканирование более чем 1660 TCP портов на +\fIцелевой машине\fR\&. В то время как многие сканеры портов традиционно разделяют все порты на закрытые и открытые, Nmap имеет более подробную шкалу деления\&. Она подразделяет порты на шесть состояний: +открыт, +закрыт, +фильтруется, +не фильтурется, +открыт|фильтруется +или +закрыт|фильтруется\&. +.PP +Эти состояния не являются собственно характеристиками самих портов, а лишь описывают, как Nmap видит их\&. Например, сканирование из той же сети, что и цель, может показать, что порт +135/tcp +открыт, в то время как сканирование из Интернета в то же время и с теми же опциями может показать, что порт +фильтруется\&. +.PP +\fBШесть состояний портов распознаваемых Nmap\fR +.PP +открыт (open) +.RS 4 +Приложение принимает запросы на TCP соединение или UDP пакеты на этот порт\&. Обнаружение этого состояния обычно является основной целью сканирования\&. Люди разбирающиеся в безопасности знают, что каждый открытый порт это прямой путь к осуществлению атаки\&. Атакующие хотят использовать открытые порты, а администраторы пытаются закрыть их или защитить с помощью брадмауэров так, чтобы не мешать работе обычных пользователей\&. Октрытые порты также интересны с точки зрения сканирования, не связанного с безопасностью, т\&.к\&. они позволяют определить службы доступные в сети\&. +.RE +.PP +закрыт (closed) +.RS 4 +Закрытый порт доступен (он принимает и отвечает на запросы Nmap), но не используется каким\-либо приложением\&. Они могут быть полезны для установления, что по заданному IP адресу есть работающий хост (определение хостов, ping сканирование), или для определения ОС\&. Т\&.к\&. эти порты достижимы, может быть полезным произвести сканирование позже, т\&.к\&. некоторые из них могут открыться\&. Администраторы могут заблокировать такие порты с помощью брандмауэров\&. Тогда их состояние будет определено как фильтруется, что обсуждается далее\&. +.RE +.PP +фильтруется (filtered) +.RS 4 +Nmap не может определить, открыт ли порт, т\&.к\&. фильтрация пакетов не позволяет достичь запросам Nmap этого порта\&. Фильтрация может осуществляться выделенным брадмауэром, правилами роутера или брандмауэром на целевой машине\&. Эти порты бесполезны для атакующих, т\&.к\&. предоставляют очень мало информации\&. Иногда они отвечают ICMP сообщениями об ошибке, такими как тип 3 код 13 (destination unreachable: communication administratively prohibited (цель назначения недоступна: связь запрещена администратором)), но чаще встречаются фильтры, которые отбрасывают запросы без предоставления какой\-либо информации\&. Это заставляет Nmap совершить еще несколько запросов, чтобы убедиться, что запрос был отброшен фильтром, а не затором в сети\&. Это очень сильно замедляет сканирование\&. +.RE +.PP +не фильтруется (unfiltered) +.RS 4 +Это состояние означает, что порт доступен, но Nmap не может определить открыт он или закрыт\&. Только ACK сканирование, используемое для определения правил брандмауэра, может охарактеризовать порт этим состоянием\&. Сканирование не фильтруемых портов другими способами, такими как Window сканирование, SYN сканирование или FIN сканирование может помочь определить, является ли порт открытым\&. +.RE +.PP +открыт|фильтруется (open|filtered) +.RS 4 +Nmap характеризует порт таким состоянием, когда не может определить октрыт порт или фильтруется\&. Это состояние возникает при таких типах сканирования, при которых открытые порты не отвечают\&. Отсутствие ответа также может означать, что пакетный фильтр не пропустил запрос или ответ не был получен\&. Поэтому Nmap не может определить наверняка открыт порт или фильтруется\&. При сканировании UDP, по IP протоколу, FIN, NULL, а также Xmas порт может быть охарактеризован таким состоянием\&. +.RE +.PP +закрыт|фильтруется (closed|filtered) +.RS 4 +Это состояние используется, когда Nmap не может определить закрыт порт или фильтруется\&. Используется только при сканировании IP ID idle типа\&. +.RE +.SH "РАЗЛИЧНЫЕ ПРИЕМЫ СКАНИРОВАНИЯ ПОРТОВ" +.PP +Как новичок в автомобильном деле, я могу часами биться в попытках использовать свои элементарные инструменты (молоток, клейкая лента, гаечный ключ и т\&.д\&.) для решения какой\-либо проблемы\&. Когда все мои попытки с крахом проваливаются, и я буксирую свою развалюху к настоящему механику, он неизменно достает из большой коробки с интрументами какую\-нибудь штуковину, и сразу складывается впечатление, что решение проблемы не требует много усилий\&. Искусство сканирования портов очень на это похоже\&. Эксперты понимают дюжины различных приемов сканирования портов и выбирают для конкретной задачи подходящий (или комбинацию из нескольких)\&. Неопытные пользователи и script kiddies, + +пытаются решить все задачи с помощью используемого по умолчанию SYN сканирования\&. Т\&.к\&. Nmap является бесплатной, то единственным барьером на пути к овладению техникой сканирования портов является знание\&. Это все же лучше чем в мире автомобилей, где, когда вам наконец\-то удается определить, что вам необходимо какое\-либо устройство, вам еще надо будет заплатить за него тысячу долларов\&. +.PP +Большинство типов сканирования доступны только привилегированным пользователям, + +потому что посылаются и принимаются сырые пакеты, + +что требует прав пользователя root на Unix системах\&. Под Windows рекомендуется работать с учетной записью администратора, хотя иногда Nmap работает и с непривилегированными пользователя, когда в ОС уже загружена утилита WinPcap\&. Требование root привилегий было серьезным ограничением, когда Nmap была выпущена в свет в 1997, т\&.к\&. многие пользователи имели доступ только к разделяемым аккаунтам\&. Сейчас мир изменился\&. Компьютеры стали дешевле, многие пользователи имеют постоянный доступ в Интернет, а Unix системы для домашних компьютеров (включая Linux и Mac OS X) теперь широко распространены\&. Также теперь доступна Windows версия Nmap, что позволяет запускать ее на еще большем количестве компьютеров\&. По этим причинам, пользователям нет необходимости запускать Nmap с разделяемых аккаунтов\&. Это большая удача, т\&.к\&. функции требующие привилегированного доступа делают Nmap намного более мощной и гибкой\&. +.PP +Когда Nmap предпринимает попытку выдать правильные результаты, надо иметь ввиду, что вся информация базируется на пакетах, возвращенных целевыми машинами (или брандмауэром перед ними)\&. Такие хосты могут быть ненадежными и посылать ответы с целью ввести Nmap в забдуждение\&. Намного более распространным случаем являются не совместимые с RFC хосты, которые отвечают на запросы Nmap не так, как должны\&. Сканирования типа FIN, NULL и Xmas наиболее восприимчивы к такого рода проблемам\&. Такие сложности специфичны только для определенных типов сканирования, и поэтому обсуждаются в посвященных им разделах\&. +.PP +В этом разделе описываются около дюжины способов сканирования портов поддерживаемых Nmap\&. В любой момент времени вы можете использовать только один метод; исключение составляет UDP сканирование (\fB\-sU\fR), которое может быть скомбинировано с любым типом TCP сканирования\&. В качестве памятки имейте ввиду, что различные опции сканирования портов задаются в форме +\fB\-s\fR\fB\fIC\fR\fR, где +\fIC\fR +это символ из названия какого\-либо типа сканирования, обычно первый\&. Единственное исключение это FTP bounce сканирование (\fB\-b\fR)\&. По умолчанию Nmap осуществляет SYN сканирование; этот тип сканирования заменяет сканирование с использованием соединения для пользователей не имеющих достаточных привилегий для отправки сырых пакетов (требует root доступа в Unix), или если были заданы цели в формате IPv6\&. Среди описанных ниже типов сканирования, непривилегированные пользователи могут осуществлять только сканирование с использованием соединения и FTP bounce сканирование\&. +.PP +\fB\-sS\fR (TCP SYN сканирование) +.RS 4 +SYN это используемый по умолчанию и наиболее популярный тип сканирования\&. На то есть несколько причин\&. Он может быть быстро запущен, он способен сканировать тысячи портов в секунду при быстром соединении, его работе не препятствуют ограничивающие бранмауэры\&. Этот тип сканирования относительно ненавящив и незаметен, т\&.к\&. при таком сканировании TCP соединение никогда не устанавливается до конца\&. Он работает с любым TCP стеком, не завися от каки\-либо особенностей специфичной платформы, как это происходит при сканированиях типа FIN/NULL/Xmas, Maimon и idle сканировании\&. Он также предоставляет ясную и достоверную дифференциацию между состояниями +открыт, +закрыт +и +фильтруется\&. +.sp +Эту технику часто называют сканированием с использованием полуотрытых соединений, т\&.к\&. вы не открываете полного TCP соединения\&. Вы посылаете SYN пакет, как если бы вы хотели установить реальное соединение и ждете\&. Ответы SYN/ACK указывают на то, что порт прослушивается (открыт), а RST (сброс) на то, что не прослушивается\&. Если после нескольких запросов не приходит никакого ответа, то порт помечается как фильтруемый\&. Порт также помечается как фильтруемый, если в ответ приходит ICMP сообщение об ошибке недостижимости (тип 3, код 1,2, 3, 9, 10 или 13)\&. +.RE +.PP +\fB\-sT\fR (TCP сканирование с использованием системного вызова connect) +.RS 4 +Это используемый по умолчанию тип TCP сканирования, когда недоступно SYN сканирование\&. Это происходит в случае, когда у пользователя нет привилегий для использования сырых пакетов или при сканировании IPv6 сетей\&. Вместо того, чтобы использовать сырые пакеты, как это происходит при большинстве других типов сканирования, Nmap "просит" операционную систему установить соединение с целевой машиной по указанному порту путем системного вызова +\fBconnect\fR\&. Это такой же высокоуровневый системный вызов, используемый браузерами, P2P клиентами и другими приложениями для установки соединения\&. Этот вызов является частью программируемого интерфейса, известного как Berkeley Sockets API\&. Вместо того, чтобы считывать ответы в форме сырых пакетов, Nmap использует этот API для получения информации о статусе каждой попытки соединения\&. +.sp +При доступности SYN сканирования, оно, безусловно, будет являться лучшм выбором\&. У Nmap имеется меньше возможностей контролирования высокоуровнего вызова +\fBconnect\fR +по сравнению с сырыми пакетами, что делает его менее эффективным\&. Системный вызов завершает соединения по открытым портам, вместо того, чтобы использовать полуоткрытые соединения, как в случае с SYN сканированием\&. Таким образом на получение той же самой информации потребуется больше времени и пакетов, да к тому же целевые машины скорее всего запишут это соединение в свои логи\&. То же самое сделает и порядочная IDS, хотя большинство машин не имеют такой системы защиты\&. Многие службы на вашей Unix системе будут добавлять запись в системный лог (syslog), а также сообщение об ошибке, когда Nmap будет устанавливать и закрывать соединение без отправления данных\&. Некоторые службы даже аварийно завершают свою работу, когда это происходит, хотя это не является обычной ситуацией\&. Администратор, который увидит в логах группу записей о попытке установки соединения от одной и той же системы, должен знать, что его машина подверглась такому типу сканирования\&. +.RE +.PP +\fB\-sU\fR (Различные типы UDP сканирования) +.RS 4 +В то время как большинство сервисов Интернета используют TCP протокол, +\m[blue]\fBUDP\fR\m[]\&\s-2\u[6]\d\s+2 +службы также широко распространены\&. Тремя наиболее популярными являются DNS, SNMP и DHCP (используют порты 53, 161/162 и 67/68)\&. Т\&.к\&. UDP сканирование в общем случае медленнее и сложнее TCP, то многие специалисты по безопасности игнорируют эти порты\&. Это является ошибкой, т\&.к\&. существуют UDP службы, которые используются атакующими\&. К счастью, Nmap позволяет инвентаризировать UDP порты\&. +.sp +UDP сканирование запускается опцией +\fB\-sU\fR\&. Оно может быть скомбинировано с каким\-либо типом TCP сканирования, например SYN сканирование (\fB\-sS\fR), чтобы использовать оба протокола за один проход\&. +.sp +UDP сканирование работает путем посылки пустого (без данных) UDP заголовка на каждый целевой порт\&. Если в ответ приходит ICMP ошибка о недостижимости порта (тип 3, код 3), значит порт +закрыт\&. Другие ICMP ошибки недостижимости (тип 3, коды 1, 2, 9, 10 или 13) указывают на то, что порт +фильтруется\&. Иногда, служба будет отвечать UDP пакетом, указывая на то, что порт +открыт\&. Если после нескольких попыток не было получено никакого ответа, то порт классифицируется как +открыт|фильтруется\&. Это означает, что порт может быть открыт, или, возможно, пакетный фильтр блокирует его\&. Функция определения версии (\fB\-sV\fR) может быть полезна для дифференциации действительно открытых портов и фильтруемых\&. +.sp +Большой проблемой при UDP сканировании является его медленная скорость работы\&. Открытые и фильтруемые порты редко посылают какие\-либо ответы, заставляя Nmap отправлять повторные запросы, на случай если пакеты были утеряны\&. Закрытые порты часто оказываются еще большей проблемой\&. Обычно они в ответ возвращают ICMP ошибку о недостижимости порта\&. Но в отличии от RST пакетов отсылаемых закрытыми TCP портами в ответ на SYN или сканирование с установкой соединения, многие хосты ограничивают лимит + +ICMP сообщений о недостижимости порта по умолчанию\&. Linux и Solaris особенно строги в этом плане\&. Например, ядро Linux 2\&.4\&.20 огранивает количество таких сообщений до одного в секунду (в +net/ipv4/icmp\&.c)\&. +.sp +Nmap обнаруживает такого рода ограничения и соответственно сокращает количество запросов, чтобы не забивать сеть бесполезными пакетами, которые все равно будут отброшены целевой машиной\&. К сожалению, при ограничении в стиле Linux (один пакет в секунду) сканирование 65,536 портов займет более 18 часов\&. К способам увеличения скорости UDP сканирования относятся: параллельное сканирование нескольких хостов, сканирование в первую очередь только наиболее популярных портов, сканирование из\-за брандмауэра и использование +\fB\-\-host\-timeout\fR +дял пропуска медленных хостов\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP NULL, FIN и Xmas сканирования) +.RS 4 +Эти три типа сканирования используют (другие типы сканирования доступны с использованием опции +\fB\-\-scanflags\fR +описанной в другой секции) незаметную лазейку в +\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[7]\d\s+2, чтобы разделять порты на +открытые +и +закрытые\&. На странице 65 RFC 793 говорится, что +«если порт назначения ЗАКРЫТ \&.\&.\&.\&. входящий сегмент не содержащий RST повлечет за собой отправку RST в ответ\&.» +На следующей странице, где обсуждается отправка пакетов без установленных битов SYN, RST или ACK, утверждается что: +«вы вряд ли с этим столкнетесь, но если столкнетесь, то сбросьте сегменти и вернитесь к исходному состоянию\&.» +.sp +Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт открыт\&. Т\&.к\&. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться правильной\&. Nmap использует это в трех типах сканирования: +.PP +Null сканирование (\fB\-sN\fR) +.RS 4 +Не устанавливаются никакие биты (Флагов в TCP заголовоке 0) +.RE +.PP +FIN сканирование (\fB\-sF\fR) +.RS 4 +Устанавливается только TCP FIN бит\&. +.RE +.PP +Xmas сканирование (\fB\-sX\fR) +.RS 4 +Устанавливаются FIN, PSH и URG флаги\&. +.RE +.sp +Эти три типа сканирования работают по одной схеме, различия только в TCP флагах установленных в пакетах запросов\&. Если в ответ приходит RST пакет, то порт считается +закрытым, отсутствие ответа означает, что порт +открыт|фильтруется\&. Порт помечается как +фильтруется, если в ответ приходит ICMP ошибка о недостижимости (тип 3, код 1, 2, 3, 9, 10 или 13)\&. +.sp +Ключевой особенностью этих типов сканирования является их способность незаметно обойти некоторые не учитывающие состояние (non\-stateful) брандмауэры и роутеры с функцией пакетной фильтрации\&. Еще одним преимуществом является то, что они даже чуть более незаметны, чем SYN сканирование\&. Все же не надо на это полагаться \- большинство современных IDS могут быть сконфигурированы на их обнаружение\&. Большим недостатком является то, что не все системы следуют RFC 793 дословно\&. Некоторые системы посылают RST ответы на запросы не зависимо от того, открыт порт или закрыт\&. Это приводит к тому, что все порты помечаются как +закрытые\&. Основными системами ведущими себя подобным образом являются Microsoft Windows, многие устройства Cisco, BSDI и IBM OS/400\&. Хотя такое сканирование применимо к большинству систем, основанных на Unix\&. Еще одним недостатком этих видов сканирования является их неспособность разделять порты на +открытые +и +фильтруемые, т\&.к\&. порт помечается как +открыт|фильтруется\&. +.RE +.PP +\fB\-sA\fR (TCP ACK сканирование) +.RS 4 +Этот тип сканирования сильно отличается от всех других тем, что он не способен определить открый порт +open +(или даже +открытый|фильтруемый)\&. Он используются для выявления правил брандмауэров, определения учитывают ли он состояние или нет, а также для определения фильтруемых ими портов\&. +.sp +Пакет запроса при таком типе сканирования содержит установленным только ACK флаг (если не используется +\fB\-\-scanflags\fR)\&. При сканировании нефильтруемых систем, +открытые +и +закрытые +порты оба будут возвращать в ответ RST пакет\&. Nmap помечает их как +не фильтруемые, имея ввиду, что они достижимы для ACK пакетов, но неизвестно +открыты +они или +закрыты\&. Порты, которые не отвечают или посылают в ответ ICMP сообщение об ошибке (тип 3, код 1, 2, 3, 9, 10 или 13), помечаются как +фильтруемые\&. +.RE +.PP +\fB\-sW\fR (TCP Window сканирование) +.RS 4 +Этот тип сканирования практически то же самое, что и ACK сканирование, за исключением того, что он использует особенности реализации различных систем для разделения портов на открытые и закрытые, вместо того, чтобы всегда при получении RST пакета выводить +не фильтруется\&. Это осуществляется путем анализа TCP Window поля полученного в ответ RST пакета\&. В некоторых системах открытые порты используют положительное значение этого поля (даже в RST пакетах), а закрытые \- нулевое\&. Поэтому вместо того, что все время при получении RST пакета в ответ помечать порты как +не фильтруемые, при Window сканировании порты помечаются как +открытые +или +закрытые, если значение поля TCP Window положительно или равно нулю соответственно\&. +.sp +Этот тип сканирования основывается на особенностях реализации меньшинства систем в Интернете, поэтому вы не можете все время доверять ему\&. В общем случае в системах, не имеющих таких особенностей, все порты будут помечаться как +закрытые\&. Конечно, это возможно, что у машины действительно нет открытых портов\&. Если большинство просканированных портов +закрыты, и лишь несколько распространненых портов (таких как 22, 25, 53) +фильтруются, то скорее всего результатам сканирования можно доверять\&. Иногда, системы будут вести себя прямо противоположным образом\&. Если в результате сканирования будет найдено 1000 открытых портов и 3 закрытых или фильтруемых, то как раз эти 3 могут оказаться действительно открытыми\&. +.RE +.PP +\fB\-sM\fR (TCP сканирование Мэймона (Maimon)) +.RS 4 +Этот тип сканирования носит имя своего первооткрывателя, Уриела Мэймона (Uriel Maimon)\&. + +Он описал эту технику в журнале +Phrack +Magazine, выпуск #49 (Ноябрь 1996)\&. + +Версия Nmap с поддержкой этого типа сканирования была выпущена через два номера\&. Техника практически такая же как и при NULL, FIN и Xmas сканированиях, только в качестве запросов используются запросы FIN/ACK\&. Согласно +\m[blue]\fBRFC 793\fR\m[]\&\s-2\u[7]\d\s+2 +(TCP), в ответ на такой запрос должен быть сгенерирован RST пакет, если порт открыт или закрыт\&. Тем не менее, Уриел заметил, что многие BSD системы просто отбрасывают пакет, если порт открыт\&. +.RE +.PP +\fB\-\-scanflags\fR (Заказное TCP сканирование) +.RS 4 +Действительно продвинутым пользователям Nmap не нужды ограничивать себя заранее приготовленными типами сканирования\&. С помощью опции +\fB\-\-scanflags\fR +вы можете разработать свой тип сканирования путем задания специфичных TCP флагов\&. +Используйте свое воображение, обходя системы обнаружения вторжений, чьи производители просто просмотрели справочное руководство Nmap, путем задания собственных правил! +.sp +Аргументом опции +\fB\-\-scanflags\fR +может быть числовое значение, например, 9 (PSH и FIN флаги), но использование символьных имен намного проще\&. Используйте любые комбинации +URG, +ACK, +PSH, +RST, +SYN +и +FIN\&. Например, опцией +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +будут установлены все флаги, хотя это и не очень полезно для сканирования\&. Порядок задания флагов не имеет значения\&. +.sp +В добавлении к заданию желаемых флагов, вы также можете задать тип TCP сканирования (например, +\fB\-sA\fR +или +\fB\-sF\fR)\&. Это укажет Nmap на то, как необходимо интерпретировать ответы\&. Например, при SYN сканировании отсутствие ответа указывает на +фильтруемый +порт, тогда как при FIN сканировании \- на +открытый|фильтруемый\&. Nmap будет осуществлять заданный тип сканирования, но используя указанные вами TCP флаги вместо стандартных\&. Если вы не указываете тип сканирования, то по умолчанию будет использоваться SYN\&. +.RE +.PP +\fB\-sI \fR\fB\fIзомби_хост\fR\fR\fB[:\fIпорт\fR]\fR ("ленивое" idle сканирование) +.RS 4 +Этот продвинутый метод сканирования позволяет осуществить действительно незаметное TCP сканирование портов цели (имеется ввиду, что никакие пакеты не отсылаются на целевую машину с вашего реального IP адерса)\&. Вместо этого, на зомби машине используется предсказуемая последовательность генерации ID IP фрагментов для сбора информации об открытых портах цели\&. Системы IDS будут считать, что сканирование производится с заданной вами зомби машины (которая должна работать и удовлетворять определенным критериям)\&. +Этот тип сканирования слишком сложен для описания в этом справочном руководстве, поэтому я написал и выложил подробное описание на \m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&. +.sp +Помимо его незаметности (в силу своей природы), этот тип сканирования также позволяет определять основанные на IP доверительные отношения между машинами\&. Список открытых портов показывает открытые порты +\fIс точки зрения зомби машины\&.\fR +Поэтому вы можете попробовать просканировать цель используя различные зомби машины, которым, вы считаете, возможно будут доверять + +(посредством правил роутера/пакетного фильтра)\&. +.sp +Вы можете добавить номер порта после двоеточия к зомби хосту, если хотите использовать конкретный порт\&. По умолчанию будет использоваться порт 80\&. +.sp +Порты также могут быть заданы именами, которым они соответствуют в файле +nmap\-services\&. Вы даже можете использовать шаблоны * и ? в именах\&. Например, чтобы просканировать ftp и все порты начинающиеся с http используйте +\fB\-p ftp,http*\fR\&. В таких случаях лучше брать аргументы \-p в кавычки\&. +.sp +Диапазоны портов заключаются в квадратные скобки; будут просканированы порты из этого диапазона, встречающиеся в +nmap\-services\&. Например, с помощью следующей опции будут просканированы все порты из +nmap\-services +равные или меньше 1024: +\fB\-p [\-1024]\fR\&. В таких случаях лучше брать аргументы \-p в кавычки\&. +.RE +.PP +\fB\-sO\fR (Сканирование IP протокола) +.RS 4 +Сканирование такого типа позволяет определить, какие IP протоколы (TCP, ICMP, IGMP и т\&.д\&.) поддерживаются целевыми машинами\&. Технически такое сканирование не является разновидностью сканирования портов, т\&.к\&. при нем циклически перебираются номера IP протоколов вместо номеров TCP или UDP портов\&. Хотя здесь все же используется опция +\fB\-p\fR +для выбора номеров протоколов для сканирования, результаты выдаются в формате таблицы портов, и даже используется тот же механизм сканирования, что и при различных вариантах сканирования портов\&. Поэтому он достаточно близок к сканированию портов и описывается здесь\&. +.sp +Помимо полезности непосредственно в своей сфере применения, этот тип сканирования также демонстрирует всю мощь открытого программного обеспечения (open\-source software)\&. Хотя основная идея довольна проста, я никогда не думал включить такую функцию в Nmap, и не получал запросов на это\&. Затем, летом 2000\-го, Джерард Риджер (Gerhard Rieger) + +развил эту идею, написал превосходный патч воплощающий ее и отослал его на +nmap\-hackers +рассылку\&. +Я включил этот патч в Nmap и на следующий день выпустил новую версию\&. Лишь единицы комерческого программного обеспечения могут похвастаться пользователями, достаточно полными энтузиазма для разработки и предоставления своих улучшений! +.sp +Способ работы этого типа сканирования очень похож на реализованный в UDP сканировании\&. Вместо того, чтобы изменять в UDP пакете поле, содержащее номер порта, отсылаются заголовки IP пакета, и изменяется 8 битное поле IP протокола\&. Заголовки обычно пустые, не содержащие никаких данных и даже правильного заголовка для требуемого протокола\&. Исключениями явлются TCP, UDP и ICMP\&. Включение правильного заголовка для этих протоколов необходимо, т\&.к\&. в обратном случае некоторые системы не будут их отсылать, да и у Nmap есть все необходимые функции для их создания\&. Вместо того, чтобы ожидать в ответ ICMP сообщение о недостижимости порта, этот тип сканирования ожидает ICMP сообщение о недостижимости +\fIпротокола\fR\&. Если Nmap получает любой ответ по любому протоколу, то протокол помечается как +открытый\&. ICMP ошибка о неостижимости протокола (тип 3, код 2) помечает протокол как +закрытый\&. Другие ICMP ошибки недостижимости (тип 3, код 1, 3, 9, 10 или 13) помечают протокол как +фильтруемый +(в то же время они показывают, что протокол ICMP +открыт)\&. Если не приходит никакого ответа после нескольких запросов, то протокол помечается как +открыт|фильтруется +\&. + + .RE +.PP +\fB\-b \fR\fB\fIFTP хост\fR\fR (FTP bounce сканирование) +.RS 4 +Интересной возможностью FTP протокола (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[8]\d\s+2) является поддержка так называемых прокси FTP соединений\&. Это позволяет пользователю подключиться к одному FTP серверу, а затем попросить его передать файлы другому\&. Это является грубым нарушением, поэтому многие сервера прекратили поддерживать эту функцию\&. Используя эту функцию, можно осуществить с помощью данного FTP сервера сканирование портов других хостов\&. Просто попросите FTP сервер переслать файл на каждый интересующий вас порт целевой машины по очереди\&. Сообщение об ошибке укажет: открыт порт или нет\&. Это хороший способ обхода брандмауэров, т\&.к\&. организационные FTP сервера обычно имеют больше доступа к другим внутренним хостам, чем какие\-либо другие машины\&. В Nmap такой тип сканирования задается опцией +\fB\-b\fR\&. В качестве аргумента ей передается +\fIимя_пользователя\fR:\fIпароль\fR@\fIсервер\fR:\fIпорт\fR\&. +\fIСервер\fR +\- это сетевое имя или IP адрес FTP сервера\&. Как и в случае в обычными URL, вы можете опустить +\fIимя_пользователя\fR:\fIпароль\fR, тогда будут использованы анонимные данные (пользователь: +anonymous +пароль:\-wwwuser@)\&. Номер порта (и предшествующее ему двоеточие) также можно не указывать; тогда будет использован FTP порт по умолчанию (21) для подключения к +\fIсерверу\fR\&. +.sp +Эта уязвимость была широко распространена в 1997, когда была выпущена Nmap, но теперь почти везде исправлена\&. Уязвимые сервера по\-прежнему есть, так что, если ничего другое не помогает, то стоит попробовать\&. Если вашей целью является обход бранмауэра, то просканируйте целевую сеть на наличие открытого порта 21 (или даже на наличие любых FTP служб, если вы используете определение версии), а затем попробуйте данный тип сканирования с каждым из найденных\&. Nmap скажет вам, уязвим хост или нет\&. Если вы просто пытаетесь замести следы, то вам нет необходимости (и, фактически, не следует) ограничивать себя только хостами целевой сети\&. Перед тем как вы начнете сканировать произвольные Интернет адреса на наличие уязвимого FTP сервера, имейте ввиду, что многим системным администраторам это не понравится\&. +.RE +.SH "ОПРЕДЕЛЕНИЕ ПОРТОВ И ПОРЯДКА СКАНИРОВАНИЯ" +.PP +В дополнении ко всем методам сканирования описанными ранее, Nmap предлагает опции для определения портов для сканирования, а также порядка сканирования: произвольного или последовательного\&. По умолчанию, Nmap сканирует все порты до 1024 включительно, а также все порты с большими номерами упомянутыми в файле +nmap\-services +для протокола, по которому идет сканирование\&. + +.PP +\fB\-p \fR\fB\fIдиапазон портов\fR\fR (Сканирование только определенных портов) +.RS 4 +С помощью этой опции вы можете определить, какие порты вы хотите просканировать и переопределить установки по умолчанию\&. Указание отдельных номеров портов допустимо, как и задание диапазонов портов разделенных дефисом (напр\&. +1\-1023)\&. Начальные и/или кончные значения диапазонов могут быть опущены, что заставит Nmap использовать 1 и 65535 соответственно\&. Поэтому вы можете задать опцию +\fB\-p\-\fR, чтобы просканировать все порты от 1 до 65535\&. Сканирование нулевого порта допустимо, если вы укажене его явно +\&. Для сканирования по IP протоколу (\fB\-sO\fR), эта опция определяет номера протоколов, которые вы хотите просканировать для диапазона (0\-255)\&. +.sp +Когда сканируете и TCP и UDP порты, вы можете задать определенный протокол указав перед номерами портов +T: +или +U:\&. Определитель будет действовать до того момента, пока вы не зададите другой\&. Например, при задании аргумента +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +будут просканированы UDP порты 53,111, и 137, а также все перечисленные TCP порты\&. Имейте в виду, что для сканирования и UDP и TCP портов, вы должны указать опцию +\fB\-sU\fR +и, по крайне мере, один из типов сканирования TCP (таких как +\fB\-sS\fR, +\fB\-sF\fR +или +\fB\-sT\fR)\&. Если определитель прокотола не указан, то перечисленные порты будут добавлены ко всем протоколам\&. +.sp + +Порты также могут быть заданы именами, которые указаны в +nmap\-services\&. Вы даже можете использовать символы ? и * с именами\&. Например, чтобы просканировать FTP и все порты, чьи имена начинаются с +«http», используйте +\fB\-p ftp,http*\fR\&. Будьте осторожны при вводе этой команды и лучше заключите аргумент +\fB\-p\fR +в кавычки\&. +.sp +Диапазоны портов могут быть заключены в квадратные скобки, чтобы определить порты внутри этого диапазона, которые упомянуты в +nmap\-services\&. Например, с помощью следующей команды будут просканированы все порты из +nmap\-services +равные или меньшие 1024: +\fB\-p [\-1024]\fR\&. Будьте осторожны при вводе этой команды и лучше заключите аргумент +\fB\-p\fR +в кавычки\&. +.RE +.PP +\fB\-F\fR (Быстрое (ограниченные порты) сканирование) +.RS 4 +Указывает, что вы хотите произвести сканирование только портов, указанных в +nmap\-services, который поставляется вместе с Nmap (или в файле протоколов для +\fB\-sO\fR)\&. Это намного быстрее, чем сканировать все 65535 портов целевой машины\&. Т\&.к\&. этот список содержит много TCP портов (больше 1200), разница в скорости в отличии от TCP сканирования по умолчанию (около 1650 портов) несущественна\&. Разница может быть огромна, если вы определите свой небольшой +nmap\-services +файл используя +\fB\-\-servicedb\fR +или +\fB\-\-datadir\fR +опции\&. +.RE +.PP +\fB\-r\fR (Не использовать случайный порядок портов) +.RS 4 +По умолчанию, Nmap использует произвольный порядок сканирования портов (исключение составляют лишь наиболее часто употребляемые порты, которые расположены в начале списка сканирования по причинам эффективности)\&. Обычно эта случайность нужна, но вы можете задать опцию +\fB\-r\fR, чтобы использовать прямой порядок сканирования\&. +.RE +.PP +\fB\-\-port\-ratio <десятичное число между 0 и 1>\fR +.RS 4 +Сканирует все порты из +nmap\-services, чей рейтинг больше числа, указанного как аргумент (только для нового формата +nmap\-services)\&. +.RE +.PP +\fB\-\-top\-ports <целое число от 1 и выше>\fR +.RS 4 +Сканирует N портов с наибольшими рейтингами, расположенными в +nmap\-services +файле (только для нового формата +nmap\-services)\&. +.RE +.SH "ОБНАРУЖЕНИЕ СЛУЖБ И ИХ ВЕРСИЙ" +.PP +При сканировании удаленной машины Nmap может выдать, что порты +25/tcp, +80/tcp, и +53/udp +открыты\&. Используя свою базу данных +nmap\-services, состоящюю из около 2200 известных служб, + +Nmap сообщит, что эти порты вероятно соответстуют почтовому серверу (SMTP), веб серверу (HTTP), и серверу доменных имен (DNS) соответственно\&. Эта информация обычно верна, т\&.к\&. подавляющее большинство служб, использующих 25 TCP порт, фактически, почтовые сервера\&. Тем не менее, вам не следует полностью полагаться на эту информацию! Люди могут и запускают службы с использованием нестандартных портов\&. +.PP +Даже если Nmap права, и на какой\-либо гипотетической машине упомянутой выше запушены SMTP, HTTP и DNS сервера, это не так уж и много информации\&. Когда производится сканирование с целью обнаружения уязвимостей (или же просто определение структуры сети) компьютеров ваших компаний или клиентов, вам хочется знать, какие точно почтовые и DNS сервера и какие версии используются\&. Знание точной версии очень помогает в определении, к каким эксплоитам сервер наиболее уязвим\&. Эту информацию вы можете получить с помощью задания опции определения версии\&. +.PP +После того как какие\-либо TCP и/или UDP были обнаружены, Nmap начинает "опрашивать" эти порты, чтобы определить, какие же приложения (службы) их действительно используют\&. База данных +nmap\-service\-probes +содержит запросы для обращения к различным службам и соответствующие выражения для распознавания и анализа ответов\&. Nmap пытается определить протоколо службы (напр\&. FTP, SSH, Telnet, HTTP), имя приложения (e\&.g\&. ISC BIND, Apache httpd, Solaris telnetd), номер версии, имя хоста, тип устройства (напр\&. принтер, роутер), семейство ОС (напр\&. Windows, Linux) и иногда различные детали типа возможно ли соединится с X сервером, версию протокола SSH, или имя пользователя KaZaA\&. Конечно же, большинство служб не предоставляют такую информацию\&. Если Nmap была скомпилирована с поддержкой OpenSSL, Она соединится с сервером SSL, чтобы попытаться определить запущенные службы, работающие за зашифрованным слоем\&. + +Когда обнаружены службы RPC, удет автоматически задействована опция Nmap + +(\fB\-sR\fR) + +для определения программы RPC и ее версии\&. После сканирования портов UDP некоторые из них характеризуются как +открыт|фильтруется, если сканирование не может определить открыт порт или фильтруется\&. С заданной опцией определения версии Nmap попытается получить ответ от таких портов (точно так же как она поступает с открытыми портами), и, в случае успеха, поменяет состояние этого порта на открыт +открытые|фильтруемые +TCP порты обрабатываются так же\&. Имейте в виду, что опция Nmap +\fB\-A\fR +помимо других команд активирует также и обнаружение версии\&. +Бумажная документация по работе, использованию и настройке опции обнаружения версии доступна на \m[blue]\fB\%https://nmap.org/book/vscan.html\fR\m[]\&. +.PP +Когда Nmap получает ответы от службы, но не может сопоставить их с какой\-либо записью в своей базе данных, она выводит на экран специальную информацию и URL, по которому вы можете опубликовать эту информацию, если вы точно уверены, что за служба запущена на исследуемом вами порте\&. Пожалуйста, потратьте пару минут на публикацию этой информации, т\&.к\&. ваша находка поможет остальным\&. Благодаря таким публикациям, Nmap содержит в своей базе данных около 3000 записей для более чем 350 протоколов, таких как SMTP, FTP, HTTP и т\&.д\&. +.PP +Функция определения версии включается и управляется с помощью следующих опций: +.PP +\fB\-sV\fR (Определение версии) +.RS 4 +Включает функцию определения версии, работа которой описана выше\&. Вы также можете использовать опцию +\fB\-A\fR, которая помимо других функций включает определение версии\&. +.RE +.PP +\fB\-\-allports\fR (Не исключать порты из проверки определения версии) +.RS 4 +По умолчанию, функция определения версии пропускает TCP порт 9100, потому что некоторые принтеры просто распечатывают все, что приходить на этот порт, что ведет к дюжинам страниц HTTP GET запросов, бинарных запросов SSL сессий т\&.д\&. Это может быть изменено путем модифицирования или удаления директивы +Exclude +в +nmap\-service\-probes, или вы можете задать опцию +\fB\-\-allports\fR, сканированить все порты не обращая внимания на всякие +Exclude +директивы\&. +.RE +.PP +\fB\-\-version\-intensity \fR\fB\fIинтенсивность\fR\fR (Устанавливает интенсивность работы функции) +.RS 4 +Когда производится сканирование с заданной опцией определения версии (\fB\-sV\fR), Nmap посылает серию запросов, каждому из которых присваивается значение в диапазоне от 1 до 9\&. Запросы с низкими значениями эффективны для большинства типичных служб, в то время как запросы с более высокими значениями редко применяются на практике\&. Уровень интенсивности определяет, какие запросы должны использоваться во время сканирования\&. Чем выше значение запроса, тем больше вероятность корректного определения службы\&. Тем не менее, сканирование с высокой интенсивностью займет много времени\&. Уровень интенсивности должна быть задана числом от 0 до 9\&. + +По умолчанию уровень интенсивности равен 7\&. + +Когда запрос привязан к целевому порту посредством директивы +nmap\-service\-probes +ports, этот запрос будет производиться вне зависимости от уровня интенсивности\&. Это гарантирует, что DNS запросы всегда будут производится с использование порта 53, SSL запросы \- 443 и т\&.д\&. +.RE +.PP +\fB\-\-version\-light\fR (Включить облегченный режим) +.RS 4 +Это не что иное как псевдоним для +\fB\-\-version\-intensity 2\fR\&. Этот режим существенно уменьшает время сканирования, но вероятность определения служб сокращается\&. +.RE +.PP +\fB\-\-version\-all\fR (Использовать каждый единичный запрос) +.RS 4 +Псевдоним для +\fB\-\-version\-intensity 9\fR, гарантирующий что каждый единичный запрос будет направлен на каждый порт\&. +.RE +.PP +\fB\-\-version\-trace\fR (Отслеживание процесса сканирования) +.RS 4 +Указывает Nmap выводить подробную отладочную информацию о процессе сканирования\&. Это часть той информации, которую вы можете получить с помощью опции +\fB\-\-packet\-trace\fR\&. +.RE +.PP +\fB\-sR\fR (RPC сканирование) +.RS 4 +Этот метод работает в связке с различными методами сканирования портов Nmap\&. При включении этой опции на все обнаруженные открытые TCP/UDP порты посылатеся множество NULL команд программы SunRPC в попытке определить, являются ли эти порты RPC портами, и если так, то какими программами (а также их версии) они используются\&. Таким образом, вы можете получить ту же информацию как и в случае использования команды +\fBrpcinfo \-p\fR, даже если целевой сервер портмаппинга (portmapper) находится за брандмауэром (или защищен TCP фильтром)\&. На сегодняшний момент ловушки со сканированием RPC не работают + +Эта опция автоматически активируется как часть сканирования с функцией определения версии (\fB\-sV\fR)\&. Т\&.к\&. это включено в функцию определения версии и более детально проработано, то опция +\fB\-sR\fR +нужна очень редко\&. +.RE +.SH "ОПРЕДЕЛЕНИЕ ОС" +.PP +Одна из наиболее известных функциональных возможностей Nmap это удаленное определение ОС на основе анализа работы стека TCP/IP\&. Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает практически каждый бит в ответах\&. После проведения дюжины тестов таких как TCP ISN выборки, поддержки опций TCP, IP ID выборки, и анализа продолжительности процедуры инициализации, Nmap сравнивает результаты со своей +nmap\-os\-db +базой данных, состоящей из более чем тысячи известных наборов типичных результатов для различных ОС и, при нахождении соответствий, выводит информацию об ОС\&. Каждый набор содержит свободное текстовое описание ОС и классификацию, в которой указаны название производителя (напр\&. Sun), название ОС (напр\&. Solaris), поколение ОС (напр\&. 10), и тип устройства ()\&. OS, and a classification which provides the vendor name (e\&.g\&. Sun), underlying OS (e\&.g\&. Solaris), OS generation (e\&.g\&. 10), and device type (для общих целей, роутер, коммутатор (switch), игровая консоль и т\&.д\&.)\&. +.PP +Если Nmap не может определить ОС, но для этого есть хорошие предпосылки (наприме, по крайней мере, найдены один открытый и один закрытый порты), то Nmap предоставит URL, по которому, если вы точно знаете, какая ОС используется, вы сможете предоставить набор ее характеристик\&. Тем самым вы внесете свой вклад в дополнение базы данных известных ОС Nmap, и она будет более полезна для всех остальных\&. +.PP +Опция определения ОС также активирует проведение некоторых других тестов, которые позволяют воспользоваться собираемой в процессе работы информацией\&. Один из них Классификация Предсказуемости Последовательности TCP (TCP Sequence Predictability Classification)\&. Это позволяет приблизительно определить, насколько сложно установить ложное TCP соединение с удаленным хостом\&. Это может быть полезно для взлома и эксплуатации программ, базирующихся на доверительных отношениях (rlogin, фильтры брандмауэров и т\&.д\&.) или для сокрытия источника атаки\&. Этот тип спуфинга (spoofing) теперь редко используется, но многие машины все еще уязвимы к такого рода атакам\&. Число, характеризующее сложность, базируется на статистической выборке и может колебаться\&. Обычно лучше испльзовать классификацию с испльзованием английских фраз типа +«worthy challenge(достойное испытание)» +или +«trivial joke(шуточное дело)»\&. Эта информация будет выведена только при включенном вербальном режиме (\fB\-v\fR)\&. Когда вербальный режим активирован вместе с опцией +\fB\-O\fR, то выводится также информация о генарции IP ID последовательности\&. Большинство машин находятся в классе +«incremental(возрастающий)», что означает, что они увеличивают поле ID в IP заголовке для каждого посланого пакета\&. Это делает их уязвимыми к спуфинг(spoofing) атакам и атакам с целью сбора расширенной информации\&. +.PP +Также во время определения ОС делается попытка узнать время работы целевой машины\&. С помощью временных меток (timestamp) TCP (\m[blue]\fBRFC 1323\fR\m[]\&\s-2\u[9]\d\s+2) Nmap пробует угадать, когда машина была перезагружена в последний раз\&. Информация может быть не точна, т\&.к\&. счетчик временной метки не был обнулен или был переполнен, или каким\-то образом скрыт\&. Информация выводится только в вербальном режиме\&. +.PP +Бумажная документация по работе, использованию и настройки опции определения ОС находится на \m[blue]\fB\%https://nmap.org/book/osdetect.html\fR\m[]\&. +.PP +Функция определения ОС включается и управляется с помощью следующих опций: +.PP +\fB\-O\fR (Включить определение ОС) +.RS 4 +Включает фукнцию определения ОС, работа которой описана выше\&. Вы также можете использовать опцию +\fB\-A\fR, которая помимо других функций включает определение ОС\&. +.RE +.PP +\fB\-\-osscan\-limit\fR (Использовать функцию определения ОС только для "перспективных" хостов) +.RS 4 +Функция определения ОС намного более эффективна, если обнаружены, по крайней мере, один открытый и один закрытый TCP порты\&. Задайте эту опцию, и Nmap не будет даже пытаться определить ОС хостов, не удовлетворяющих этому критерию\&. Это поможет сэкономить массу времени, особенно при +\fB\-PN\fR +сканирование многих хостов\&. Эта опция будет действовать только при включении функции ОС путем задания опций +\fB\-O\fR +или +\fB\-A\fR\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Угадать результаты определения ОС) +.RS 4 +Когда Nmap не в состоянии определеить точное совпадение, она иногда предоставляет наиболее близкие к результатам сканирования совпадения\&. Чтобы Nmap сделала это по умолчанию, совпадения должны быть очень близки\&. Любая их этих (равных) опций побуждает Nmap к более агрессивному анализу результатов\&. Nmap по\-прежнему будет сообщать, когда будет найдено не идеальное совпадение, а также отображать стпень соответствия (в процентах) для каждого набора характеристик\&. +.RE +.PP +\fB\-\-max\-os\-tries\fR (Устанавливает максимальное количество попыток определения ОС) +.RS 4 +Когда Nmap пытается определить ОС на целевом хосте и не может найти идеального соответствия результатов, то она обычно повторяет попытку\&. По умолчанию, Nmap совершает пять попыток при условии, что существуют благоприятные условия для определения ОС, и дважды \- в противном случае\&. Задание более низкого значения +\fB\-\-max\-os\-tries\fR +(напр\&. 1) увеличивает скорость работы Nmap, однако вы пропускаете некоторые записи, с помощью которых, возможно, можно было бы определить ОС\&. Большое значение может быть задано для разрешения большего количества попыток при благоприятных условиях\&. Это делается редко, за исключением тех случаев, когда необходимо сгенерировать более детальный набор характеристик ОС для занесения в базу данных Nmap\&. +.RE +.SH "СКРИПТОВЫЙ ДВИЖОК Nmap(NSE \- Nmap Scripting Engine)" +.PP +Скриптовый движок Nmap (NSE) это одна из наиболее мощных и гибких возможностей Nmap\&. Он позволяет пользователям писать (и делиться ими) простые скрипты (используя +\m[blue]\fBязык программирования Lua\fR\m[]\&\s-2\u[10]\d\s+2, +) для автоматизации широкого круга сетевых задач\&. Эти скрипты выполняются со скоростью и эффективность ожидаемой вами от Nmap\&. Пользователи могут использовать разнообразный и постоянно расщиряющийся набор скриптов, которые поставляются вместе с Nmap, или написать свои скрипты под свои собственные нужды\&. +.PP +Когда мы создавали эту систему, считалось, что она будет использоваться для задач исследования сети, более изощренного варианта определения версии, исследования уязвимостей\&. NSE может быть исполльзован даже для обнаружения уязвимостей\&. +.PP +Чтобы отразить все многообразие возможностей использования скриптов и при этом упростить выбор необходимого скрипта, каждый из них содержит поле, где указано к какой категории он принадлежит\&. Сейчас определены следующие категории: +safe, +(intrusive), +malware, +version, +discovery, +vuln, +auth +и +default\&. Все они описаны +в \m[blue]\fB\%https://nmap.org/book/nse-usage.html#nse-categories\fR\m[]\&. +.PP +Скриптовый движок Nmap детально описан +на \m[blue]\fB\%https://nmap.org/book/nse.html\fR\m[] + +и настраивается с помощью следующих опций: +.PP +\fB\-sC\fR +.RS 4 +Осуществляет сканирование на основе скриптов\&. Эквивалентно опции +\fB\-\-script=default\fR\&. Некоторые их применяемых здесь скриптов относятся к категории intrusive (навязчивые) и не должны быть использованы для сканирования целевой сети без разрешения\&. +.RE +.PP +\fB\-\-script \fR\fB\fIкатегории\-скриптов\fR\fR\fB|\fR\fB\fIдиректория\fR\fR\fB|\fR\fB\fIимя_файла\fR\fR\fB|all\fR +.RS 4 +Осуществляет сканирование на основе скриптов (как +\fB\-sC\fR) используя разделенный запятыми список категорий скриптов, отдельных файлов скриптов или директорий содержащих скрипты вместо стандартного набора скриптов\&. Сначала Nmap пытается интерпретирует все аргументы как категории, затем (в случае неудачи) как файлы или директории\&. Файл скрипта или директория скриптов могут быть определны с использованием абсолютного или относительного пути\&. Абсолютные пути используются так, как вы их зададите\&. Относительные пути будут определяться относительно: + +\-\-datadir/; +$NMAPDIR/; +~/\&.nmap/ +(не используется в Windows); +NMAPDATADIR/ или +\&./\&. Также все эти папки будут проверяться на наличие поддиректории +scripts/ +.sp +Если вы определили директорию со скриптами, и она была найдена, то Nmap загружает все NSE скрипты (все файлы с расширением +\&.nse) из этой директории\&. Файлы без расширения +nse +игнорируются\&. Nmap не производит рекурсивный поиск скриптов во всех поддиректориях\&. Если вы указываете конкретный файл, то его расширение не обязательно должно быть +nse\&. +.sp +По умолчанию скрипты Nmap хранятся в папке +scripts +\- поддиректории основного каталого Nmap\&. Для большей производительности, все скрипты проиндексированы в базе даннных +scripts/script\&.db, + +где указано к какой категории или категориям принадлежит каждый скрипт\&. Для исполнения всех скриптов из базы данных Nmap задайте атрибут +all\&. +.sp +Злонамеренные скрипты запускатся не в "песочнице" (sandbox) и поэтому могут повредить вашу систему или нарушить вашу анонимность\&. Никогда не используйте скрипты от третьих лиц до тех пор, пока не будете доверять автору или сами тщательно просмотрите скрипт\&. +.RE +.PP +\fB\-\-script\-args \fR\fB\fIимя1\fR\fR\fB=\fR\fB\fIзначение1\fR\fR\fB, \fR\fB\fIимя2\fR\fR\fB={\fR\fB\fIимя3\fR\fR\fB=\fR\fB\fIзначение3\fR\fR\fB}, \fR\fB\fIимя4\fR\fR\fB=\fR\fB\fIзначение4\fR\fR +.RS 4 +Позволяет вам передавать аргументы NSE скриптам\&. Аргументы передаются как пары +имя=значение\&. Передаваемый аргумент обрабатывается и хранится в Lua таблице, к которой имеют доступ все скрипты\&. Имена передаются как строки (должны быть буквенно\-цифровыми значениями) и используются в качестве ключей в +argument\-table\&. Значения могут быть также строками или в свою очередь таблицами (заключенными в \(oq{\(cq и \(oq}\(cq)\&. Такие подтаблицы позволяют переопределить аргументы для конкретных скриптов (например, если вы хотите предоставить различным скриптам различные пары login/password)\&. Например, вы можете определить аргументы через запятые: +user=bar, +password=foo +и +anonFTP={password=nobody@foobar\&.com}\&. Если вы хотите переопределить опцию для скрипта, вы должны проиндексировать подтаблицу с помощью +id +скрипта, т\&.к\&. это единственный способ указать скрипту на наличие специального аргумента\&. +.RE +.PP +\fB\-\-script\-trace\fR +.RS 4 +Эта опция делает то же самое, что и +\fB\-\-packet\-trace\fR, но на один ISO уровень выше\&. Если задана эта опция, то все входящие и исходящие соединения, осуществляемые скриптом, выводятся на экран\&. Выводимая информация включает в себя используемый коммуникационный протокол, источник, цель и переданные данные\&. Если более 5% переданных данных невозможно вывести на экран, то вывод будет представлять собой шестнадцатеричный (hex) дамп\&. +.RE +.PP +\fB\-\-script\-updatedb\fR +.RS 4 +Этой опцией обновляется база скриптов +scripts/script\&.db, которая используется Nmap для определения доступных скриптов по умолчанию и их категорий\&. Обновлять базу необходимо, только если вы добавили или удалили NSE скрипты из директории +scripts, или поменяли категорию какого\-нибудь скрипта\&. Эта опция обычно используется без аргументов: +\fBnmap \-\-script\-updatedb\fR\&. +.RE +.SH "ОПЦИИ УПРАВЛЕНИЯ ВРЕМЕНЕМ И ПРОИЗВОДИТЕЛЬНОСТЬЮ" +.PP +Наиболее приоритетной стороной развития Nmap для меня всегда была производительность\&. Сканирование по умолчанию (\fBnmap \fR\fB\fIимя_хоста\fR\fR) какого\-либо хоста в моей локальной сети занимает пятую долю секунды\&. Этого едва хватает, чтобы моргнуть, но становится существенным, когда вы сканируете сотни или тысячи хостов\&. Более того, некоторые типы сканирования, как например, UDP или сканирование с целью определения версии могут в значительной степени увеличить время сканирования\&. Этому также могут поспособствовать настройки некоторых брандмауэров, где есть ограничения на количество ответов\&. Хотя в Nmap используются параллелизм и различные продвинутые алгоритмы для уменьшения времени сканирования, у пользователя есть возможность полностью контролировать работу программы\&. Опытные пользователи Nmap задают команды таким образом, чтобы получать только необходимую им информацию и в удовлетворяющие им сроки\&. +.PP +Способами увеличения скорости сканирования могут быть пропуск не критичных тестов, или обновление Nmap до последней версии (улучшения производительности выходят довольно часто)\&. Оптимизация параметров опций управления временем также может значительно повлиять на скрость сканирования\&. Эти опции описаны ниже\&. +.PP +Некоторые опции могут принимать параметр +время\&. По умолчанию он задается в миллисекундах, но вы можете добавить \(oqs\(cq, \(oqm\(cq или \(oqh\(cq к значению, чтобы задать его в секундах, минутах или часах\&. Поэтому для опции +\fB\-\-host\-timeout\fR +аргументы +900000, +900s +и +15m +означают одно и то же\&. +.PP +\fB\-\-min\-hostgroup \fR\fB\fIколичество_хостов\fR\fR; \fB\-\-max\-hostgroup \fR\fB\fIколичество_хостов\fR\fR (Регулирует размер групп для параллельного сканирования) +.RS 4 +В Nmap есть возможность осуществлять сканирование портов или сканирование с целью определения версии нескольких хостов параллельно\&. Это происходит путем разделения целевого IP пространства на группы, а затем сканирования одной группы за раз\&. В общем случае целесообразно использовать большие группы\&. Недостатком является то, что вы не можете узнать информацию о каком\-либо хосте, пока не закончится сканирование всей группы\&. Таким образом, если Nmap начнет сканирование группы из 50\-ти хостов, то пользователь не будет получать никакой информации (кроме обновлений информации предлагаемых в вербальном режиме), пока не будет завершено сканирование всех 50\-ти хостов\&. +.sp +По умолчанию Nmap использует компромиссный подход к решению этой проблемы\&. Сначала производится сканирование небольших групп из 5\-ти хостов, поэтому первые результаты приходят быстро, затем размер группы постепенно увеличивается до максимального \- 1024\&. Точные значения по умолчанию зависят от заданных опций\&. Для большей эффективности Nmap использует группы больших размеров для UDP сканирования и для некоторых типов TCP сканирования портов\&. +.sp +Когда максимальный размер группы задан опцией +\fB\-\-max\-hostgroup\fR, Nmap не будет его превышать\&. Минимальный размер группы задается опцией +\fB\-\-min\-hostgroup\fR, и Nmap будет пытаться поддерживать размер групп больше этого уровня\&. Возможно Nmap придется использовать группы меньше заданных размеров, когда для выполнения условия минимальности будет не хватать целевых хостов\&. Эти опции могут быть использованы для удержания размера группы внутри некоторого диапазона, хотя это редко необходимо\&. +.sp +Эти опции не имеют эффекта на фазе обнаружения хостов\&. Там используются обычное ping сканирование (\fB\-sP\fR)\&. При сканировании с целью обнаружения хостов всегда используются большие группы для увеличения скорости и точности\&. +.sp +Основной целью использования этих опций является задание большого минимума размера группы, с тем чтобы сканирование проходило быстрее\&. При сканировании сети класса C обычным выбором является 256\&. При сканировании большого количества портов, превышение этого числа вряд ли поможет\&. При сканировании лишь нескольких портов, наилучшим размером группы будет 2048 или больше\&. +.RE +.PP +\fB\-\-min\-parallelism \fR\fB\fIколичество_запросов\fR\fR; \fB\-\-max\-parallelism \fR\fB\fIколичество_запросов\fR\fR (Регулирует распараллеливание запросов) +.RS 4 +Эти опции регулируют общее количество запросов для группы хостов\&. Опции испльзуются при сканировании портов и при обнаружени хостов\&. По умолчанию Nmap высчитывает степень параллельности основываясь на производительности сети\&. Если пакеты отбрасываются, то Nmap использует меньшее количество запросов\&. Количество запросов медленно увеличивается по мере того, как сеть продолжает нормально работать\&. Эти опции устанавливают минимальную и максимальную границы для этой переменной\&. По умолчанию параллелизм устанавливается в 1, если сеть работает плохо, и может достигать нескольких сотен при идеальных условиях\&. +.sp +Наиболее частым вариантом применения является установка опции +\fB\-\-min\-parallelism\fR +в значение большее единицы, чтобы увеличить скорость сканирования плохо работающих хостов и сетей\&. Это очень рискованная опция, т\&.к\&. установка большого значения может повлиять на правильность результатов сканирования\&. Установка этого значения также сокращает возможности Nmap по динамическому контролю параллелизма в зависимости от условий в сети\&. Значение равное 10\-ти является приемлимым, хотя я прибегаю к этой опции в последнюю очередь\&. +.sp +Опция +\fB\-\-max\-parallelism\fR +иногда устанавливается для предотвращения отправки хостам более одного запроса за раз\&. Это может быть полезно в комбинации с опцией +\fB\-\-scan\-delay\fR +(описывается далее), хотя она и сама справляется со своими обязанностями\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout \fR\fB\fIвремя\fR\fR, \fB\-\-max\-rtt\-timeout \fR\fB\fIвремя\fR\fR, \fB\-\-initial\-rtt\-timeout \fR\fB\fIвремя\fR\fR (Регулирует время ожидания ответа на запрос) +.RS 4 +В Nmap есть значение промежутка времени, в течении которого будет ожидаться ответ на запрос, перед тем как прекратить попытки или совершить еще одну\&. Этот промежуток вычисляется на основе времени, в течении которого были получены ответы на предыдущие запросы\&. Если в сети есть значительная и непостоянная задержка, то этот промежуток может возрасти до нескольких секунда\&. Он также устанавливается на безопасном (высоком) уровне и может таким и оставаться некоторое время, если Nmap производит сканирование не отвечающих на запросы хостов \&. +.sp +Задание значений +\fB\-\-max\-rtt\-timeout\fR +и +\fB\-\-initial\-rtt\-timeout\fR +ниже значений по умолчанию может существенно сократить время сканирования\&. Это особенно заметно при различных вариантах сканирования с заданной опцией +\fB\-PN\fR, а также при сканировании сильно фильтруемых сетей\&. Однако не торопитесь делать этого сразу\&. Сканирование займет много времени, если вы укажете такое низкое значение, при котором у большинства запросов закончиться время ожидания ответа, и они будут ретранслированы, в то время как ответы на них будут в пути\&. +.sp +Если хосты находятся в локальной сети, то 100 миллисекунда будет приемлимым значением опции +\fB\-\-max\-rtt\-timeout\fR\&. Если при этом производится отслеживание маршурта, то для начала пропингуйте хост в сети с помощью утилиты ICMP ping или +\fBhping2\fR, у которой больше шансов обойти брандмауэр\&. Выясните среднее максимальное значение для, примерно, 10\-ти пакетов\&. Удвойте это значение для передачи опции +\fB\-\-initial\-rtt\-timeout\fR +и умножьте на три или четыре для опции +\fB\-\-max\-rtt\-timeout\fR\&. Обычно я не устанавливаю maximum RTT ниже 100\ \&мс, не зависимо от результатов пингования\&. А также не превышаю 1000\ \&мс\&. +.sp +Опция +\fB\-\-min\-rtt\-timeout\fR +редко используется; она может быть полезна, в случае если сеть настолько ненадежна, что даже значения Nmap по умолчанию слишком агрессивны\&. Так как Nmap просто сокращает время ожидания до минимума, в случае если сеть кажется надежной, то нужды в этой опции нет, о ней дожно быть сообщено как о баге на +nmap\-dev +рассылку\&. +.RE +.PP +\fB\-\-max\-retries \fR\fB\fIколичество_попыток\fR\fR (Задает максимальное количество повторных передач запроса) +.RS 4 +Когда Nmap не получает ответа на запрос сканирования порта, это может означать, что порт фильтруется\&. А возможно, запрос или ответ просто затерялись в сети\&. Также возможно, что у цели есть ограничение на количество ответов, что стало причиной временной блокировки запроса\&. В этом случае Nmap повторную передачу исходного запроса\&. Если для Nmap сеть кажется ненадежной, то она может совершить очень много попыток, перед тем как бросить это дело\&. Хотя это и придает достоверность результатам сканирования, это в то же время увеличивает время сканирования\&. Когда производительность критична, время сканирования может быть сокращено путем введения ограничения на максимальное количество повторных передач запроса\&. Вы даже можете задать +\fB\-\-max\-retries 0\fR, чтобы предотвратить все повторные попытки, хотя это не рекомендуется\&. +.sp +Значением по умолчанию (без +\fB\-T\fR +шаблона) является 10 ретрансляций\&. Если сеть кажется надежной, и целевые хосты не имеют ограничений на количество ответов, то Nmap обычно делают одну повторную попытку\&. Поэтому установка +\fB\-\-max\-retries\fR +в низкое значение (например, 3) никак не вличет на большинство типов сканирования\&. Такие значения могут значительно увеличить скорость сканирования медленных (с ограничениями на количество ответов) хостов\&. Обычно вы теряете некоторую информацию, когда Nmap рано прекращает сканировать порты, поэтому лучше дать истечь времени +\fB\-\-host\-timeout\fR, и потерять всю информацию о цели\&. +.RE +.PP +\fB\-\-host\-timeout \fR\fB\fIвремя\fR\fR (Прекращает сканирование медленных целей) +.RS 4 +Некоторые хосты просто требуют +\fIдлительного\fR +времени сканирования\&. Это может быть в силу низкой производительности или ненадежности сетевого оборудования или программного обеспечения, ограничений на количество пакетов или ограничивающих брандмауэров\&. Несколько процентов наиболее медленных хостов могут занять большую часть времени сканирования\&. Иногда лучшим выходом является просто пропуск таких хостов\&. Передайте в качестве аргумента опции +\fB\-\-host\-timeout\fR +максимальное значение промежутка времени, в течении которого вы готовы ждать\&. Я часто задаю +30 мин, чтобы удостовериться в том, что Nmap не потратит более получаса на единичный хост\&. Имейте ввиду, что в течении этого получаса Nmap может сканировать другие хосты, так что это не просто потеря времени\&. Хост, чье время истекло, пропускается\&. Для этого хоста не выводится ни таблица портов, ни информации об ОС\&. +.RE +.PP +\fB\-\-scan\-delay \fR\fB\fIвремя\fR\fR; \fB\-\-max\-scan\-delay \fR\fB\fIвремя\fR\fR (Регулирует задержку между запросами) +.RS 4 +Эта опция вынуждает Nmap подождать по крайней мере заданное время между каждым запросом\&. Это особенно полезно в случае наличия ограничения на количество ответов у целевых хостов\&. Машины Solaris (как и многие другие) обычно отвечают на запросы при UDP сканировании только одним ICMP сообщением в секунду\&. Посылка большего количества запросов со стороны Nmap будет впустую\&. Установка значения опции +\fB\-\-scan\-delay\fR +в +1 сек +будет поддерживать в Nmap такую медленную интенсивность\&. Nmap пытается определить ограничения на количество ответов у целевых хостов и подстроить задержку между запросами соответственно, но ничто не мешает указать вам это значение явно, если вы точно знаете, что так будет лучше\&. +.sp +Когда Nmap подстраивает задержку между запросами к обнаруженному ограничению, то скорость сканироания значительно уменьшается\&. Опция +\fB\-\-max\-scan\-delay\fR +позволяет задать наибольшую возможную задержку\&. Установка здесь маленького значения может привести к бесполезной ретрансляции пакетов или возможному пропуску портов, если у цели есть строгий лимит на количество ответов\&. +.sp +Еще одним вариантом использования опции +\fB\-\-scan\-delay\fR +является обход пороговых систем обнаружения и предотвращения вторжений (IDS/IPS)\&. +.RE +.PP +\fB\-\-min\-rate \fR\fB\fIчисло\fR\fR (Задает минимальную интенсивность сканирования) +.RS 4 +Функции динамического управления различными опциями времени в Nmap хорошо справляются с задачей подборки подходящей скорости сканирования\&. Тем не менее, иногда вы можете заранее узнать подходящую интенсивность сканирования сети, или можете гарантировать, что сканирование закончится к определенному времени\&. Когда задается опция +\fB\-\-min\-rate\fR, Nmap будет пытаться отсылать пакеты с той же или большей, чем задано, интенсивностью\&. Аргументом этой опции является положительное число, отражающее интенсивность сканирования в пакетах в секунду\&. Например, задание опции +\fB\-\-min\-rate 300\fR +означает, что Nmap будет пыпыться отсылать пакеты с интенсивностью 300 пакетов в секунду или больше\&. Задание низкого значения не отнимает у Nmap права работать с большей интенсивностью, если позволяют условия\&. +.sp +Существуют два варианта, при которых реальная интенсивность работы будет меньше заданного минимума\&. Первый, когда заданный минимум быстрее, чем наиболее быстрый возможный уровень работы Nmap, который зависит от аппаратного обеспечения\&. В этом случае Nmap будет посылать пакеты так быстро, как может; но будьте осторожны, т\&.к\&. при быстрой скорости возможны потери точности\&. Второй случай, когда у Nmap больше нечего отсылать, например, в конце сканирования, когда последние запросы уже посланы, и Nmap ожидает ответы на них\&. Это нормально, когда интенсивность падает в конце сканирования или при смене групп сканирования\&. +.sp +Задание минимального уровня интенсивности должно производится с осторожностью\&. Сканирование быстрее, чем возможно в данной сети, может привести к потери точности\&. В некоторых случаях, задание выского уровня интенсивности может привести к тому, что сканирование займет +\fIбольше\fR +времени, чем с более низким уровнем\&. Это может произойти в случае, если адаптивные ретрансляционные + +алгоритмы Nmap обнаружат перегрузку сети, вызванную высоким уровнем интенсивности сканирования, и увеличат количество ретрансляций для повышения точности сканирования\&. Поэтому, даже хотя пакеты отсылаются с большой интенсивностью, еще больше пакетов отсылается впустую\&. Установите максимальное количество ретрансляций с помощью опции +\fB\-\-max\-retries\fR, если вы хотите ограничить общее время сканирования\&. +.sp +Опция +\fB\-\-min\-rate\fR +глобальна, она оказывает влияние на все сканирование, а не на отдельные хосты\&. Учитывается только при сканировании с целью обнаружения хостов и сканировании портов\&. Другие функции, как например определение ОС, имеют собственные особенности управления временем\&. +.RE +.PP +\fB\-\-max\-rate \fR\fB\fIчисло\fR\fR (Задает максимальную интенсивность сканирования) +.RS 4 +Дополнительно к опции +\fB\-\-min\-rate\fR +есть опция +\fB\-\-max\-rate\fR, которая ограничивает максимальную интенсивность сканирования заданным значением\&. Используйте +\fB\-\-max\-rate 100\fR, например, чтобы ограничиться 100 пакетами в секунду в быстрой сети\&. Используйте +\fB\-\-max\-rate 0\&.1\fR +для медленного сканирования \- один пакет в десять секунд\&. +.sp +\fB\-\-max\-rate\fR +также как и +\fB\-\-min\-rate\fR +глобальная опция, оказывающая влияние на все сканирование\&. Учитывается только при сканировании с целью обнаружения хостов и сканировании портов\&. +.sp +Иногда уровень интенсивности может превышать максимальное заданное значение для больры с непредвиденными задержками, но в среднем он будет находится на максимальном уровне или ниже\&. Nmap будет работать с меньшей интенсивностью, если того требуют условия\&. Чтобы удерживать интенсивность сканирования внутри определенного промежутка, используйте опции +\fB\-\-min\-rate\fR +и +\fB\-\-max\-rate\fR +вместе\&. +.RE +.PP +\fB\-\-defeat\-rst\-ratelimit\fR +.RS 4 +Многие хосты имеют давно использующие ограничения + +на количество ICMP сообщений об ошибке (как ошибки о недостижимости порта)\&. Многие системы сейчас используют похожие ограничения на количество пакетов RST (сброс), генерируемых ими\&. Это может сильно замедлить сканирование, т\&.к\&. Nmap подстраивается под эти ограничения\&. Вы можете указать Nmap игнорировать такие ограничения (для сканирования портов типа SYN, при котором не отвечающие порты +\fIне считаются\fR +открытыми) путем задания опции +\fB\-\-defeat\-rst\-ratelimit\fR\&. +.sp +Использование этой опции может привести к потери точности сканирования, т\&.к\&. Nmap могла не подождать неоходимое время ответа RST (на которые у целевой машины есть ограничения)\&. При сканировании типа SYN не отвечающие порты помечаются как +фильтруемые, а не +закрытые, как в случае принятия ответа RST\&. Это опция полезна, только когда вам важны открытые порты, а различать +закрытые +и +фильтруемые +порты нет необходимости\&. +.RE +.PP +\fB\-T paranoid(паранойдный)|sneaky(хитрый)|polite(вежливый)|normal(обычный)|aggressive(агрессивный)|insane(безумный) \fR (Устанавливает шаблон настроек управления временем) +.RS 4 +Хотя описанные выше опции управления временем мощны и эффективны, многих людей они сбивают с толку\&. Более того, выбор подходящих значений может иногда занимать больше времени, чем само сканирование\&. Поэтому Nmap предлагает более легкий подход, заключайющийся в применении шести шаблонов настроек\&. Вы можете задавать их с помощью опции +\fB\-T\fR +и номера шаблона (0–5) или его имени\&. Имена шаблонов следующие: +\fBparanoid(паранойдный)\fR\ \&(\fB0\fR), +\fBsneaky(хитрый)\fR\ \&(\fB1\fR), +\fBpolite(вежливый)\fR\ \&(\fB2\fR), +\fBnormal(обычный)\fR\ \&(\fB3\fR), +\fBaggressive(агрессивный)\fR\ \&(\fB4\fR) и +\fBinsane(безумный)\fR\ \&(\fB5\fR)\&. Первые два предназначены для обхода IDS\&. Вежливый (polite) режим снижает интенсивность сканирования с целью меньшего потребления пропускной способности и машинных ресурсов\&. Обычнй (normal) режим устанавливается по умолчанию, поэтому опция +\fB\-T3\fR +ничего не делает\&. Агрессивный (aggressive) режим повышает интенсивность сканирования, предполагая, что вы используете довольно быструю и надежную сеть\&. Наконец, безумный (insane) режим + +предполагает, что вы используете чрезвычайно быструю сеть и готовы пожертвовать точностью ради скорости\&. +.sp +Эти опции позволяет определять пользователям, насколько агрессивными они хотят быть, оставляя за Nmap право выбирать подходящие значения опций управления временем\&. Также шаблоны позволяют производить некоторые незначительные корректировки скорости, для которых пока нет отдельных опций\&. Например, +\fB\-T4\fR +запрещает установку динамической задержки во время сканирования выше 10 мс для TCP порт, а +\fB\-T5\fR +\- выше 5\ \&мс\&. Шаблоны могут использоваться в комбинации с описанными выше опциями; в этом случает будут использоваться в качестве значений аргументы этих опций, а не значения по умолчанию, заданные в шаблонах\&. Я рекомендую задавать +\fB\-T4\fR +при сканировании довольно современных и надежных сетей\&. Задавайте эту опцию, даже если вы используете описанные выше опции управления временем, и вы сможете получить выгоду от этих незначительных оптимизаций, которые включаются этой опцией\&. +.sp +Если у вас приличная широкополосная связь или ethernet соединение, то я бы порекомендовал вам всегда использовать +\fB\-T4\fR\&. Некоторым людям нравится +\fB\-T5\fR, хотя она чересчур агрессивна на мой взгляд\&. Иногда люди используют +\fB\-T2\fR, потому что думают, что так у них мешьнше шансов пропустить какие\-либо хосты или потому, что считают себя вежливыми по жизни\&. Они часто не осознают, насколько опция +\fB\-T polite\fR +медленна\&. Время их сканирования может занять в десять раз больше обычного\&. Проблемы с хостами и пропускной способностью редки при использовании опции (\fB\-T3\fR), поэтому я рекомендую ее для осторожного сканирования\&. Отключение функции определения версии намного более эффективно для сокращения таких проблем, чем попытка настройки всех опций управления временем\&. +.sp +Хотя опции +\fB\-T0\fR +и +\fB\-T1\fR +могут быть полезны для обхода IDS, они отнимут очень много времени при сканировании тысяч хостов или портов\&. Для такого сканирования, предпочтительнее будет задать свои точные значения, чем полагаться на опции +\fB\-T0\fR +и +\fB\-T1\fR\&. +.sp +При использовании опции +\fBT0\fR +в любой момент времени производится сканирование только одного порта, и перед отправкой каждого запроса проходит пять минут\&. +\fBT1\fR +и +\fBT2\fR +практически одинаковы, только между запросами проходит 15 секунд и 0\&.4 секунды соответственно\&. Опция +\fBT3\fR +является опцией Nmap по умолчанию, она включает распараллеливание\&. +\fB\-T4\fR +эквивалента опциям +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR +и устанавливает максимальную задержку при TCP сканировании 10 миллисекунд\&. +\fBT5\fR +эквивалента опциям +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 15m\fR +и устанавливает максимальную задержку при TCP сканировании 5 миллисекунд\&. +.RE +.SH "ОБХОД БРАНДМАУЭРОВ/IDS" +.PP +Многие пионеры Интернета представляли его в своем воображении как открутую глобальную сеть с универсальным пространством IP адресов, позволяющую создавать виртуальные соединения между любыми двумя точками\&. Это позволило бы хостам общаться на равных, обмениваясь информацией между собой\&. Люди могли бы получить доступ к своим домашним системам с работы, изменяя настройки климат\-контроля или открывая двери ранним гостям\&. Этому видению глобальной соединенности не суждено было сбыться по причинам нехватки адресного пространства и проблемам безопасности\&. В ранние 1990\-е организации стали использовать брадмауэры с целью сокращения возможностей соединения\&. Огромные сети были отрезаны от Интернета различными программными прокси, серверами преобразования имен и пакетными фильтрами\&. Неограниченный поток информации сократился до строго регламентированных каналов связи и содержимому передающемуся по ним\&. +.PP +Сетевые барьеры, такие как брандмауэры, могут сделать процесс исследования сети чрезвычайно сложным\&. Никаких послаблений не намечается, т\&.к\&. предотвращение инвентаризации сети часто является ключевой целью введения таких устройств\&. Тем не менее, Nmap предоставляет множество функций для облегчения понимания структуры таких сложных сетей и для проверки того факта, что сетевые фильтры работают как предполагалось\&. Поддерживаются даже механизмы обхода плохо организованных вариантов защит\&. Один из лучших методов проверки вашей системы безопасности \- это попытка ее обойти\&. Поставьте себя на место атакующего и примените описанные ниже методы к вашей сети\&. Запустите FTP bounce сканирование, idle сканирование, атаку с фрагментацией пакетов или попробуйте пробиться через один из ваших прокси\-серверов\&. +.PP +В дополнении к ограничению сетевой активности, компании все больше и больше используют мониторинг траффика с помощью систем обнаружения вторжений (intrusion detection systems \- IDS)\&. Все эти системы используют правила, составленные для обнаружения различного рода сканирований с помощью Nmap, т\&.к\&. сканирование часто оказывается предвестником атак\&. Многие из этих систем недавно были преобразованы в системы +\fIпредотвращения\fR +вторжений (intrusion prevention systems \- IPS), + +которые блокирую трафик, расцениваемый как злонамеренный\&. К сожалению для сетевых администраторов и продавцов IDS, обнаружение вторжений с большой долей вероятности путем анализа паетов данных является сложной задачей\&. Атакующие с помощью терпения, навыков и с помощью некоторых опций Nmap обычно могут незамеченными обойти системы IDS\&. Между тем, администраторам приходится иметь дело с большим количеством ложных положительных результатов, когда такие системы ошибаются и блокируют безвредную сетевую активность\&. +.PP +Время от времени некоторые высказывают предположения, что Nmap не следует предоставлять фукнции для обхода IDS\&. Они аргументируют свою позицию тем, что эти функции могут быть с равным успехом использованы атакующими, так же как они используются администраторами для улучшения систем защиты\&. Проблема в таких рассуждениях заключается в том, что такие методы будут по\-прежнему использоваться атакующими, которые просто найдут другие утилиты или самостоятель добавят такие функции в Nmap\&. Тем временем администраторам будет намного сложнее выполнять свою работу\&. Использование только современных FTP серверов намного более мощное средство защиты, чем попытки предотвратить распространение утилит позволяющих реализовать FTP bounce атаки\&. +.PP +Не существует такой магической опции, которая позволяла бы обнаруживать и обходить брандмауэры и IDS\&. Для этого необходимы навыки и опыт\&. Подробное описание таких методов выходит за рамки данного справочного руководства, где содержаться только важные опции с описанием их возможностей\&. +.PP +\fB\-f\fR (фрагментировать пакеты); \fB\-\-mtu\fR (используя заданное значение MTU) +.RS 4 +При задании опции +\fB\-f\fR +все типы сканирования (включая различные типы пингования) будут использовать маленькие фрагментированные IP пакеты\&. Идея состоит в том, чтобы разбить TCP заголовок на части и посылать их в различных пакетах для того, чтобы не дать определить пакетным фильтрам и системам обнаружения вторжения, что вы делаете\&. Будьте осторожны с этой опцией! Некоторые программы имеют проблемы с обработкой таких маленьких пакетов\&. Один старый сниффер Sniffit аварийно завершал работу после принятия первого фрагмента\&. Задайте эту опцию один раз, и Nmap будет разбивать пакеты на части по 8 байт или меньше после IP заголовка\&. Таким образовм, 20\-ти байтный TCP заголовок будет разбит на 3 пакета\&. Два из них будут содержать по 8 байт этого заголовка, а третий \- последние 4\&. Конечно же, каждый фрагмент также имеет IP заголовок\&. Задайте опцию +\fB\-f\fR +снова, чтобы использовать фрагменты по 16 байт (тем самым сократится число фрагментов)\&. +Или вы можете задать свой собственный размер фрагмента с помощью опции +\fB\-\-mtu\fR\&. Не используйте опцию +\fB\-f\fR +вместе с +\fB\-\-mtu\fR\&. Размер должен быть кратным 8\&. В то время как фрагментированные пакеты не смогут пройти через пакетные фильтры и брандмауэры, которые ставят в очередь все IP фрагменты, например, с помощью опции +\fICONFIG_IP_ALWAYS_DEFRAG\fRв ядре Linux, некоторые сети не могут позволить себе связанное с этим падение производительности и поэтому не используют такую возможность\&. Другие могут использовать ее, потому что фрагменты в таких сетях могут идти по разным маршрутам\&. Некоторые системы фрагментируют исходящие пакеты прямо в ядре\&. Linux с включенным модулем отслеживания соединения iptables + +тому пример\&. Произведите сканирование с включенным сниффером +Wireshark +, чтобы убедиться, что пакеты фрагментируются\&. Если в вашей ОС возникают проблемы, попробуйте задать опцию +\fB\-\-send\-eth\fR, чтобы обойти IP слой и отсылать сырые ethernet фрэймы\&. +.RE +.PP +\fB\-D \fR\fB\fIфиктивный_хост1\fR\fR\fB[,\fIфиктивный_хост2\fR]\fR\fB[,ME]\fR\fB[,\&.\&.\&.]\fR (Маскировка сканирования с помощью фиктивных хостов) +.RS 4 +Производится сканирование с использованием фиктивных хостов; в этом случае цель сканирования считает, что заданные вами фиктивные хосты также производят ее сканирование\&. Хотя IDS цели может сообщить о том, что было произведено 5\-10 сканирований портов с каждого IP адреса, система не сможет узнать, с какого из этих IP адресов действительно производилось сканирование, а какие были лишь безвредными ловушками\&. Хотя этот тип сканирования может быть распознан путем отслеживания маршрута, сбрасыванием ответа или другими активными методами, в большинстве случае он является эффективным способом сокрытия вашего IP адреса\&. +.sp +При задании фиктивных хостов, разделяйте их запятыми; вы также можете указать +ME +как один из фиктивных хостов для задания позиции в списке вашего реального IP адреса\&. Если вы задаете +ME +в шестой позиции или дальше, некоторые обычные системы обнаружения сканирования портов (например, Solar Designer\*(Aqs +excellent Scanlogd) +вряд ли вообще отобразят ваш IP адрес\&. Если вы не задаете флаг +ME, Nmap поставит его в произвольную позицию\&. Вы также можете использовать +RND +для генерации произвольного, незарезервированного IP адреса, или +RND:\fIчило\fR +для генерации определенного +\fIчисла\fR +адресов\&. +.sp +Имейте ввиду, что хосты, указанные вами в качестве фиктивных, должны работать, иначе вы просто зафлудите целевые хосты с помощью запросов на подключение\&. Также легко будет определить, какой хост действительно производит сканирование, если только он будет работать\&. Возможно вы захотите использовать IP адреса вместо имен (в этом случае сети, в которых находятся фиктивные хосты, не видят вас в своих логах)\&. +.sp +Фиктивные хосты используются и во время фазы обнаружения хостов (используя ICMP, SYN, ACK и что там еще), и во время сканирования портов\&. Также они используются во время удаленного определения ОС (\fB\-O\fR)\&. Эта техника не работает при сканировании с целью определения версии или с целью обнаружения возможности установления TCP соединения\&. Во время сканирования задержки принудительно устанавливаются между каждой группой обманных запросов\&. Т\&.к\&. ловушки посылаются одной группой сразу, то это может временно нарушить работу системы контроля ограничений нагрузок\&. +.sp +Использование большого количества фиктивных хостов может снизить скорость вашего сканирование и даже сделать его менее точным\&. Также, некоторые ISP будут отфильтровывать ваши обманные пакеты, в то время как некоторые вообще никак не ограничивают такого рода IP пакеты\&. +.RE +.PP +\fB\-S \fR\fB\fIIP_адрес\fR\fR (Изменить исходный адрес) +.RS 4 +В некоторых обстоятельствах Nmap может не определить ваш адрес (в этом случае Nmap сообщит вам об этом)\&. В этом случае используйте опцию +\fB\-S\fR, передав ей в качестве параметра IP адрес, чтобы указать интерфейс, который вы хотите использовать для отправки пакетов\&. +.sp +Также эта опция может быть использована для того, чтобы заставить "думать" цель сканирования, что ее сканирует +\fIкто\-то другой\fR\&. Представьте компанию, которая частенько подвергается сканированию портов со стороны конкурента! Как правило, в этом случае необходимо использовать также опции +\fB\-e\fR +и +\fB\-PN\fR\&. Имейте ввиду, что вы не будете получать в ответ никаких пакетов (они будут отправлены на указанный вами IP адрес), поэтому Nmap не будет выводить какой\-либо полезной информации\&. +.RE +.PP +\fB\-e \fR\fB\fIинтерфейс\fR\fR (Использовать конкретный интерфейс) +.RS 4 +Указывает Nmap, какой интерфейс использовать для отправки и приема пакетов\&. Nmap в состоянии определить его автоматически, но сообщит вам, если не сможет\&. +.RE +.PP +\fB\-\-source\-port \fR\fB\fIномер_порта\fR\fR\fB;\fR \fB\-g \fR\fB\fIномер_порта\fR\fR (Задать свой номер порта) +.RS 4 +Одной из удивительно часто встречаюшиься ошибок при конфигурировании системы безопасности является тенденция доверять траффику основываясь только на номере исходного порта\&. Легко понять как это происходит\&. Администратор устанавливает новенький брандмауэр, и его заваливают жалобы от неблагодарных пользователей, чьи приложения перестали работать\&. В частности, может не работать DNS, т\&.к\&. UDP DNS ответы от внешних серверов больше не могут войти в сеть\&. Еще одним распространенным примером ялвяется FTP\&. При активной FTP передаче, удаленный сервер пытается установить соединение с клиентом, чтобы послать запрашиваемый файл\&. +.sp +Существуют безопасные методы решения этих проблем, часто в виде прокси на уровне приложений или надстроек к брандмауэрам\&. Но, к сожалению, существуют и более легкие, небезопасные методы\&. Принимая во внимание то, что DNS ответы приходят с порта 53 а FTP с порта 20, многие администраторы поддаются искушению и просто разрешают весь входящий трафик с этих портов\&. Они также часто полагают, что атакующие не заметят и не будут использовать такие дыры в брандмауэрах\&. В других случаях, администраторы считают, что это всего лишь временные меры, до тех пор пока они не придумают более безопасные способы решения проблем\&. Потом они забывают об этом\&. +.sp +Перегруженные работой сетевые администраторы не единственные, кто попадается в такую ловушку\&. Многочисленные продукты просто кишат такими небезопасными правилами\&. Даже Microsoft заслуживает порицания\&. Фильтры IPsec, которые были установлены в Windows 2000 и Windows XP содержат внутренне правило, разрешающее весь TCP или UDP траффик с порта 88 (Kerberos)\&. Еще один известный случай: версии брандмауэра Zone Alarm до 2\&.1\&.25 разрешали все входящие UDP пакеты с порта 53 (DNS) или 67 (DHCP)\&. +.sp +Nmap предоставляет опции +\fB\-g\fR +и +\fB\-\-source\-port\fR +(они эквиваленты) для того, чтобы воспользоваться такими ошибками\&. Просто задайте номер порта, и Nmap будет использовать его для отправки пакетов\&. Nmap должна использовать различные номера портов, чтобы точно определить ОС; также DNS запросы игнорируют опцию +\fB\-\-source\-port\fR, т\&.к\&. для их осуществления Nmap использует системные библиотеки\&. Большинство TCP вариантов сканирований, включая SYN сканирование, полностью поддерживают эту опцию, как и UDP сканирование\&. +.RE +.PP +\fB\-\-data\-length \fR\fB\fIчисло\fR\fR (Добавить произвольные данные к посылаемым пакетам) +.RS 4 +В обычных условиях Nmap посылает минимальные пакеты, содержащие только заголовок\&. Так TCP пакеты составляют 40 байтов, а запросы на ICMP эхо ответ всего 28\&. Эта опция указывет Nmap добавлять заданное число произвольных байтов к посылаемым пакетам\&. Эта опция не влияет на пакеты, используемые для определения ОС (\fB\-O\fR) +, поскольку в этом случае необходимо тщательное соответствие запросов, но большинство пакетов, используемых для различных видов пингования и сканирования портов поддерживают ее\&. Это немного замедляет сканирование, зато делает его более незаметным\&. +.RE +.PP +\fB\-\-ip\-options \fR\fB\fIS|R [маршрут]|L [маршрут]|T|U \&.\&.\&. \fR\fR\fB;\fR \fB\-\-ip\-options \fR\fB\fIшестнадцатиричная строка\fR\fR (Посылать пакет с заданным ip опциями) +.RS 4 +\m[blue]\fBПротокол IP\fR\m[]\&\s-2\u[11]\d\s+2 +предоставляет несколько опций, которые могут быть заданы в заголовке пакета\&. В отлиии от повсеместно используемых TCP опций, опций IP редко видны из соображений практичности и безопасности\&. Фактически, большинство роутеров Интернета блокируют наиболее опасные опации, как, например, отслеживание источника\&. И все же опции могут быть полезны для определения и манипулирования сетевым маршрутом к целевым машинам\&. Например, возможно вы сможете воспользоваться опцией для определния маршрута до цели, когда более традиционные методы в стиле tracerout будут бесполезны\&. Или если ваши пакеты блокируются каким\-либо брандмауэром, вы можете попробовать задать маршрут с менее строгим сетевым экраном\&. +.sp +Наиболее действенным способом задания IP опций является передача их значений в качестве аргументов опции +\fB\-\-ip\-options\fR\&. Каждое шестнадцатиричное значение задается с помощью +\ex, после которого следуют два цифры\&. Вы можете повторять символы, поставив после них звездочку и указав количество повторений\&. Например, +\ex01\ex07\ex04\ex00*36\ex01 +это шестнадцатиричная строка, содержащая 36 NUL байтов\&. +.sp +Nmap также предоставляет механизм сокращений для задания таких опций\&. Просто передайте в качестве аргумента букву +R, +T +или +U +для задания опции записи маршрута, + +записи временной метки + +или обеих соответственно\&. Ослабление или ужесточение отслеживания источника + +может быть задано с помощью +L +или +S, затем пробела, а затем разделенный пробелами список IP адресов\&. +.sp +Если вы хотите заданные опции в передаваемых и получаемых пакетах, задайте опцию +\fB\-\-packet\-trace\fR\&. Для большей информации и примеров использования IP опций с Nmap, смотрите +\m[blue]\fB\%https://seclists.org/nmap-dev/2006/q3/0052.html\fR\m[]\&. +.RE +.PP +\fB\-\-ttl \fR\fB\fIзначение\fR\fR (Установить IP поле time\-to\-live (время жизни) +.RS 4 +Устанавливает IPv4 поле time\-to\-live в посылаемых пакетах в соответствии с заданным значением\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Использовать произвольный порядок целей сканирования) +.RS 4 +Указывает Nmap перемешать каждую группу, содержащую до 16384 хостов, перед началом сканирования\&. Это может сделать сканирование менее заметным для различного рода систем сетевого мониторинга, особенно если вы используете низкие значения таймингов\&. Если вы хотите перемешивать большие по размеру группы, то увеличьте значение +\fIPING_GROUP_SZ\fR +в +nmap\&.h +и перекомпилируйте программу\&. Альтернативным решением является генерация списка целевых IP адресов (\fB\-sL \-n \-oN \fR\fB\fIимя_файла\fR\fR), обработка его с помощью Perl скрипта и затем передача его Nmap в качестве параметра опции +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac \fR\fB\fIMAC адрес, префикс или название производителя\fR\fR (Задать собственный MAC адрес) +.RS 4 +Указывает Nmap использовать заданный MAC адрес + +для всех отсылаемых сырых ethernet фреймов\&. Эта опция подразумевает использование, +\fB\-\-send\-eth\fR +чтобы быть уверенным, что Nmap действительно использует пакеты уровня ethernet\&. MAC адрес может быть задан в нескольких форматах\&. Если это просто число +0, то Nmap выбирает польностью произвольный MAC адрес для сессии\&. Если задается строка в виде простого набора шестнадцатиричных цифр (можно разделять пары двоеточиями), то Nmap будет использовать эту строку в качестве MAC адреса\&. Если задано менее 12\-ти шестнадцатиричных цифр, то Nmap заполняет остаток из 6 байтов произвольными значениями\&. Если в качестве аргумента не передается ни 0, ни шестнадцатиричная строка, то Nmap просматривает +nmap\-mac\-prefixes +в поисках названия производителя, содержащего данную строку (нечувствительна к регистру)\&. Если найдено совпадение, то Nmap использует OUI производителя (3\-байтный префикс), + +а оставшиеся 3 байта заполняет произвольно\&. Примеры аргументов опции +\fB\-\-spoof\-mac\fR: +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2 +и +Cisco\&. Эта опция оказывает влияние только на сканирования с использованием сырых пакетов, такие как SYN сканирование или определение ОС, а также не ориентированные на соединение функции, такие как определение версии или Nmap Scripting Engine (NSE)\&. +.RE +.PP +\fB\-\-badsum\fR (Посылать пакеты с фиктивными TCP/UDP контрольными суммами) +.RS 4 +Указывает Nmap использовать неправильные TCP или UDP контрольные суммы для пакетов, отправляемых на целевой хост\&. Т\&.к\&. практически все реализации стека IP просто не обрабатывают такие пакеты, то любые ответы скорее всего приходят от брандмауэров или IDS, которые не обременяеют себя проверкой контрольной суммы\&. Более детальное описание этой техники смотрите на +\m[blue]\fB\%https://nmap.org/p60-12.html\fR\m[] +.RE +.SH "ВЫВОД РЕЗУЛЬТАТОВ" +.PP +Любая утилита безопасности полезна ровно настолько, насколько полезны выдаваемые ею результаты\&. Различные сложные тесты и алгоритмы имеют мало пользы, если они не представлены в хорошо организованной и удобной для понимания форме\&. Предоставляя разлиные способы вывода результатов Nmap используется людьми и программным обеспечением, т\&.к\&. нет такого формата, который подходил бы всем\&. Поэтому Nmap предлагает несколько форматов, включая интерактивный режим для чтения людьми и XML для удобного анализа программным обеспечением\&. +.PP +В дополнении к предоставлению различных форматов вывода, Nmap предлагает опции для упрваления уровнем вербальности выходных данных и отладочных сообщений\&. Результаты могут быть направлены на стандартный вывод или в файлы, причем Nmap может как добавлять в конец файлов, так и создавать новые\&. Выходные файлы также могут быть использованы для продолжения остановленного сканирования\&. +.PP +Nmap предоставляет пять различных выходных форматов\&. Формат по умолчанию называется +интерактивный вывод,, результаты передаются на стандартный вывод (stdout)\&. +Есть также +нормальный вывод,, который подобен интерактивному, за исключением того, что в процессе работы выводится меньше информации и предупреждений, т\&.к\&. предполагатеся, что эти результаты будут анализироваться после завершения сканирования, а не интерактивно\&. +.PP +XML вывод +это один из наиболее важных выходных форматов, т\&.к\&. он может быть конвертирован в HTML, лего анализируется программами типа графического пользовательского интерфейса Nmap или может быть экспортирован в базу данных\&. +.PP +Оставшимися двумя форматами являются +grepable формат, который содержит большую часть о целевом хосте в одной строке, и +sCRiPt KiDDi3 0utPUt +для пользователей, которые считают себя |<\-r4d\&. +.PP +В то время как интерактивный вывод устанавливается по умолчанию и не имеет связанных с ним опций командой строки, опции остальных четырех форматов вывода имеют похожий синтаксис\&. В качестве аргумента они принимают имя файла, где должны храниться результаты\&. Возможно испльзование нескольких форматов, но каждый из них должен быть задан только один раз\&. Например, вы хотите сохранить результаты предоставляемые форматом нормального вывода для себя, и в то же время сохранить в формате XML результаты того же сканирования для анализа программами\&. Вы можете сделать это с помощью опции +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Для краткости здесь используются простые имена типа +myscan\&.xml, но рекомендуется использовать более описательные имена\&. Каждый выбирает имена по своему; я обычно использую длинные имена, содержащие дату сканирования и пару слов описания, и помещаю эти файлы в директории с именем компании, которую я сканирую\&. +.PP +Хотя с помощью этих опций информация сохраняется в файлы, Nmap по\-прежнему выводит интерактивную информацию на стандартный вывод\&. Например, с помощью опции +\fBnmap \-oX myscan\&.xml target\fR +XML сохраняется в файл +myscan\&.xml, а стандартный вывод заполняется информацией, как если бы опция +\fB\-oX\fR +вообще не была задана\&. Вы можете изменить это поведение передав в качестве аргумента к одному из форматов вывода символ дефиса\&. Это деактивирует интерактивный вывод, а на стандартный вывод будет пересылаться информация в заданном вами формате\&. Поэтому с помощью команды +\fBnmap \-oX \- target\fR +на стандартный вывод будет пересылаться только XML\&. +Серьезный ошибки могут выводиться в стандартный поток ошибок, stderr\&. +.PP +В отличии от некоторых аргументов Nmap, пробел между флагом формата файла (например, +\fB\-oX\fR) и именем файла или дефисом здесь обязателен\&. Если вы опустите флаги и зададите аргументы типа +\fB\-oG\-\fR +или +\fB\-oXscan\&.xml\fR, из\-за функции обратной совместимости Nmap будут созданы файлы +\fIнормального формата\fR +с именами +G\- +и +Xscan\&.xml +соответственно\&. +.PP +Все эти аргументы поддерживают +\fBstrftime\fR +перобразования в именах файлов\&. +%H, +%M, +%S, +%m, +%d, +%y +и +%Y +это то же самое что и в +\fBstrftime\fR\&. +%T +то же самое что и +%H%M%S, +%R +то же самое что и +%H%M +и +%D +то же самое что и +%m%d%y\&. Знак +%, после которого следует любой символ просто даст этот символ (%% +даст вам символ процента)\&. Поэтому опция +\fB\-oX \*(Aqscan\-%T\-%D\&.xml\*(Aq\fR +будет использовать XML файл в формате +scan\-144840\-121307\&.xml\&. +.PP +Nmap также предоставляет опции для управления вербальностью сканирования, а также для добавления в конец файлов вместо их перезаписи\&. Все эти опции описаны ниже\&. +.PP +\fBФорматы вывода Nmap\fR +.PP +\fB\-oN \fR\fB\fIимя_файла\fR\fR (Нормальный вывод) +.RS 4 +Перенаправляет +нормальный вывод +в заданный файл\&. Как отмечалось выше, немного отличается от +интерактивного вывода\&. +.RE +.PP +\fB\-oX \fR\fB\fIимя_файла\fR\fR (XML вывод) +.RS 4 +Перенаправляет +XML вывод +в заданный файл\&. Nmap включает определение типа документа (DTD), что позволяет XML парсерам использовать XML вывод Nmap\&. Изначально это предназначалось для программного использования, хотя это также позволяет людям интерпретировать XML вывод Nmap\&. DTD определяет возможные элементы, а также перечисляет атрибуты и значения, которые они могут принимать\&. Последняя версия всегда доступна на +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]\&. +.sp +XML предоставляет формат, который легко обрабатывается программным обеспечением\&. Бесплатные XML парсеры, доступны для всех основных языков программирования, включая C/C++, Perl, Python и Java\&. Люди даже написали привязки для большинства из этих языков для обработки выходных данных Nmap\&. Примерами являются +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[12]\d\s+2 + +и +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[13]\d\s+2 + +на Perl CPAN\&. В большинстве случаев взаимодействия какого\-либо приложения и Nmap, XML является предпочитаемым форматом\&. +.sp +XML вывод связывается с XSL таблицей стилей, которая используется для форматирования результатов как HTML\&. Самым легким способом использования этой возможности является загрузка XML вывода в браузер типа Firefox или IE\&. По умолчанию это будет работать только на машине, на которой установлена Nmap (или настроенной аналогично) из\-за жесткой привязки полного пути файла +nmap\&.xsl\&. Используйте опции +\fB\-\-webxml\fR +или +\fB\-\-stylesheet\fR +для создания XML файлов отображаемых как HTML только на подключенной к интернету машине\&. +.RE +.PP +\fB\-oS \fR\fB\fIимя_файла\fR\fR (ScRipT KIdd|3 oUTpuT) +.RS 4 +Script kiddie формат практически такой же как и интерактивный, за тем исключением, что после окончания сканирования он перерабатывается, чтобы больше подходит l33t HaXXorZ, который смотрит свысока на Nmap из\-за постоянного использования заглавных букв и правовисания\&. Лишенные чувства юмора люди должны иметь ввиду, что эта опция высмеивает script kiddies, перед тем как ругать меня за то, что я якобы +«помогаю им»\&. +.RE +.PP +\fB\-oG \fR\fB\fIимя_файла\fR\fR (grepable вывод) +.RS 4 +Это формат обсуждается последним, т\&.к\&. он нежелетален для использования\&. Формат вывода XML намного мощенее, а также особенно удобен для опытных пользователей\&. XML это стандарт, для которого доступны дюжины отличных парсеров, в то время как grepable вывод всего лишь мое простое изобретение\&. XML достаточно гибок для поодержания новых функций Nmap по мере их выхода, тогда как мне частенько приходится опускать некоторые возможности grepable вывода из\-за недостатка места\&. +.sp +Тем не менее, этот формат вывода все еще довольно популярен\&. Это простой формат, который просто описывает каждый хост в одну строку и может быть легко обработан стандартными Unix утилитами как grep, awk, cut, sed, diff и Perl\&. Даже я иногда использую этот формат вывода\&. Поиск хостов, на которых открыт SSH порт или работает Solaris сводится к простой передаче результатов утилите grep, а затем утилитам типа awk или cut для вывода желаемой информации\&. +.sp +Grepable вывод состоит из комментариев (линий начинающихся с #) +и строк описывающих цели\&. Каждая строка включает комбинацию из 6 помеченных полей, разделенных знаками табуляции и оканчивающихся двоеточием\&. Поля следующие: +Хост, +Порты, +Протоколы, +Ignored State, +ОС, +Seq Index, +IP ID +и +Статус\&. +.sp +Наиболее важным из этих полей обычно является +Порты, где дается описание каждого интересного порта\&. Это поле представляет собой разделенный запятыми список портов\&. Каждый элемент этого списка описывает один интересный порт и состоит из семи подполей, разделенных знаком косой черты (/)\&. Подполя следующие: +Номер порта, +Состояние, +Протокол, +Владелец, +Служба, +SunRPC информация +и +Информация о версии\&. +.sp +Как и в случае с XML выводом, это руководство не позволяет полностью описать формат\&. Более подробное описание этого формата доступно +с \m[blue]\fB\%https://nmap.org/book/output-formats-grepable-output.html\fR\m[]\&. +.RE +.PP +\fB\-oA \fR\fB\fIбазовое_имя_файла\fR\fR (Использовать все форматы вывода) +.RS 4 +Для удобства вы можете задать опцию +\fB\-oA \fR\fB\fIбазовове_имя_файла\fR\fR, чтобы сохранить результаты сканирования в обычном, XML и grepable форматах сразу\&. Они будут содержаться в файлах +\fIбазовове_имя_файла\fR\&.nmap, +\fIбазовове_имя_файла\fR\&.xml +и +\fIбазовове_имя_файла\fR\&.gnmap +соответственно\&. Как и с большинством программ вы можете предварять имя файла путем к директории, например, +~/nmaplogs/foocorp/ +для Unix или +c:\ehacking\esco +для Windows\&. +.RE +.PP +\fBОпции управления вербальностью и отладкой\fR +.PP +\fB\-v\fR (Увеличить уровень вербальности) +.RS 4 +Увеличение уровня вербальности влечет за собой вывод большего количества информации во время сканирования\&. Когда Nmap предполагает, что сканирование займет больше нескольких минут, будет выводиться приблизительное время завершения работы и открытые порты по мере их обнаружения\&. Задайте эту опцию дважды или более для увеличения количества выводимой информации\&. +.sp +Большинство изменений касаются только интерактивного режима; некоторые также нормального и script kiddie режимов\&. Остальные форматы вывода предназначены для обработки машинами, поэтому вся необходимая информация выдается Nmap по умолчанию\&. Тем не менее существуют несколько изменений в других режимах, когда размер выходной информации может быть существенно сокращен путем отбрасывания некоторых деталей\&. Например, линия комментариев в grepable формате, предоставляющая список всех просканированных портов, выводится только в вербальном режиме, т\&.к\&. список может быть довольно длинный\&. +.RE +.PP +\fB\-d [уровень]\fR (Увеличить или установить уровень отладки) +.RS 4 +Когда даже вербальный режим не предоставляет вам достаточную информацию, вы можете использовать отладку! Отладка активируется опцией командной строки (\fB\-d\fR), и уровень отладочной информации может быть увеличен путем задания этой опции несколько раз\&. +В качестве альтернативы, вы можете передать уровень отладки как аргумент опции +\fB\-d\fR\&. Например, опцией +\fB\-d9\fR +устанавливается девятый уровень\&. Это наивысший уровень, который будет предоставлять тысячи строк, до тех пор пока вы не запустите очень простое сканирование небольшого количества целей\&. +.sp +Отладка полезна, если вы предполагаете, что в Nmap есть баг, или если вы просто озадачены тем, что делает Nmap и почему\&. Т\&.к\&. эта функция по большому счету предназначена для разработчиков, то выходная информация не всегда понятна\&. Вы можете получить что\-то типа: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Если вы не понимаете, что это означает, вы можете проигнорировать эту информацию, посмотреть в исходному коде или попросить помощи у разработчиков (nmap\-dev)\&. +Некоторые линии довольно понятны, но сообщения становятся более неясными с увеличением уровня отладки\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Отслеживание принятых и переданных пакетов и данных) +.RS 4 +Указывает Nmap выводить краткую информацию о каждом принятом и отправленном пакете\&. Обычно используется для отладки, но также может быть полезна новичкам для понимания того, что же действительно делает Nmap\&. Чтобы избежать вывода тысяч строк, вы можете ограничить количество портов для сканирования, например опцией +\fB\-p20\-30\fR\&. Если вас интересует только то, что происходит при процессе определения версии, то вместо этой опции используйте +\fB\-\-version\-trace\fR\&. +.RE +.PP +\fB\-\-open\fR (Показывать только открытые (или возможно открытые) порты) +.RS 4 +Иногда вас интересуют только порты, к которым вы фактически можете подключиться (а именно +открытые), и вам не нужны результаты о +закрытых, +фильтруемых +и +закрытых|фильтруемых +портах\&. Обработка выходной информации может быть легко произведена с помощью таких утилит как +grep, +awk +и +Perl, но по многочисленным просьбам эта функция была добавлена в Nmap\&. Задайте опцию +\fB\-\-open\fR, чтобы видеть информацию только об +открытых, +открытых|фильтруемых +и +не фильтруемых +портах\&. Эти три типа портов расцениваются как обычно, что означает, что +открытые|фильтруемые +и +нефильтруемые +порты могут быть приняты во внимание, если их набралось большое количество\&. +.RE +.PP +\fB\-\-iflist\fR (Вывести список интерфейсов и роутеров) +.RS 4 +Выводит список интерфейсов и системных роутеров, обнаруженных Nmap\&. Это полезно для отладки проблем с роутерами и неправильного описания устройств (когда, например, Nmap рассматривает PPP соединение как ethernet)\&. +.RE +.PP +\fB\-\-log\-errors\fR (Записывать ошибки/предупреждения в выходной файл нормального режима) +.RS 4 +Обычно предупреждения и ошибки выводятся Nmap только на экран (интерактивный вывод), и не сохраняются в файлах нормального режима вывода (заданных опцией +\fB\-oN\fR)\&. Если вы хотите записывать эти сообщения в заданные вами файлы, то используйте эту\&. Это может быть полезно, если вы не просматриваете интерактивный вывод или хотите сохранить все ошибки во время отладки какой\-либо проблемы\&. Сообщения об ошибках и предупреждениях по\-прежнему будут выводится в интерактивном режиме\&. Это не будет работать для большинства ошибок, вызванных неправильным заданием аргументов командой строки, т\&.к\&. Nmap может не успеть проинициализировать выходные файлы этих команд\&. В дополнении ко всему, некоторые предупреждения и ошибки Nmap используют другую систему, которая еще не поддерживает данную опцию\&. +.sp +Альтернативой опции +\fB\-\-log\-errors\fR +может служить перенаправление интерактивного вывода (включая стандартный поток ошибок) в файл\&. Большинство командных оболочек Unix легко справится с этим, но это может быть проблематично на Windows\&. +.RE +.PP +\fBРазличные опции вывода\fR +.PP +\fB\-\-append\-output\fR (Добавлять в конец, а не перезаписывать выходные файлы) +.RS 4 +Когда вы передаете в качестве аргумента какому\-либо флагу формата вывода (например, +\fB\-oX\fR +или +\fB\-oN\fR) имя файла, то по умолчанию этот файл перезаписывается\&. Если вы хотите оставить текущее содержание файла, а новые результаты добавлять в конец, используйте опцию +\fB\-\-append\-output\fR\&. В результате все указанные файлы вывода не будут перезаписываться, а новое содержимое будем добавляться в конец\&. Существуют некоторые сложности с XML выводом (\fB\-oX\fR), т\&.к\&. результирующий файл в этом случае обычно не сможет быть правильно проанализирован программами, пока не вы подправите его вручную\&. +.RE +.PP +\fB\-\-resume \fR\fB\fIимя_файла\fR\fR (Продолжить прерванное сканирование) +.RS 4 +Некоторые всесторонние варианты сканирования Nmap могут занимать очень продолжительное время \- порядка нескольких дней\&. И они не всегда работают до завершения\&. Различные ограничения могут не позволить Nmap сканировать в течении рабочих часов, сеть может перестать работать, машина, на которой запущена Nmap может быть перезагружена, или сама Nmap может вылететь\&. Администратор, использующий Nmap, может отменить сканирование по каким\-то другим причинам, просто нажав +ctrl\-C\&. Запуск целого сканирования с самого начала может быть нежелателен\&. К счастью, если были сохранены логи нормального (\fB\-oN\fR) или grepable формата (\fB\-oG\fR), пользователь может продолжить сканирование с того места, на котором оно было остановлено\&. Просто задайте опцию +\fB\-\-resume\fR +и передайте в качестве аргумента имя выходного файла обычного или grepable формата\&. Никакие другие опции использовать не разрешается, т\&.к\&. Nmap будет продолжать сканирование с заданными ранее опциями\&. Просто запустите Nmap командой +\fBnmap \-\-resume\fR\fB\fIимя_лог_файла\fR\fR\&. Nmap будет добавлять новые результаты к выходным файлам, определенным при предыдущем запуске\&. Выходные файлы формата XML не поддерживаются функцией возобновления работы, т\&.к\&. комбинирование результатов двух сканирований в один правильный XML файл является сложной задачей\&. +.RE +.PP +\fB\-\-stylesheet \fR\fB\fIпуть или URL\fR\fR (Устанавливает XSL таблицу стилей для преобразования XML вывода) +.RS 4 +Nmap использует XSL + +таблицу стилей + +nmap\&.xsl + +для просмотра или перевода XML вывода в HTML\&. + +XML вывод включает директиву +xml\-stylesheet, которая указывает на файл +nmap\&.xml, туда, где он был размещен Nmap при установке (или на текущую рабочую директорию в Windows)\&. Просто загрузите XML вывод Nmap в любой современный веб браузер, и он самостоятельно найдет файл +nmap\&.xsl +для отображения результатов\&. Если вы хотите использовать другой файл таблицы стилей, то передайте имя этого файла в качестве аргумента опции +\fB\-\-stylesheet\fR\&. Вы должны использовать полный путь к файлу или URL\&. Один из примеров: +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. Эта опция указывает браузеру загружать последнюю версию таблицы стилей с Nmap\&.Org\&. Опция +\fB\-\-webxml\fR +делает то же самое, но без лишнего набора на клавиатуре и запоминания\&. Загрузка XSL с Nmap\&.Org облегчает просмотр результатов на машине, на которой не установленна Nmap (и поэтому нет файла +nmap\&.xsl)\&. Поэтому URL часто бывает более полезен, но локальный файл +nmap\&.xsl +используется по умолчанию из соображений приватности\&. +.RE +.PP +\fB\-\-webxml\fR (Загружает таблицу стилей с Nmap\&.Org) +.RS 4 +Эта опция является просто псевдонимом +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Убрать объявление XSL таблицы стилей из XML) +.RS 4 +Задайте эту опцию, чтобы не ассоциировать какую\-либо XSL таблицу стилей с XML выводом\&. В этом случае директива +xml\-stylesheet +опускается\&. +.RE +.SH "РАЗЛИЧНЫЕ ОПЦИИ" +.PP +В этой секции описываются некоторые важные (и не очень важные) опции, которые не подходят к другим категориям\&. +.PP +\fB\-6\fR (Включает IPv6 сканирование) +.RS 4 +Начиная с 2002 года Nmap имеет поддержку протокола IPv6 для своих наиболее используемых функций\&. В частности, пинг сканирование (только TCP), выявление возможности установки соединения и определение версии имеют поддержку протокола IPv6\&. Синтаксис команд такой же как и обычный за исключением того, что вы добавляете опцию +\fB\-6\fR\&. Конечно же, вы должны использовать синтаксис IPv6, если вы указываете адрес, а не имя хоста\&. Адрес может выглядеть как +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, поэтому лучше использовать имена хостов\&. Вывод выглядит так же как и обычный, только на линии +«интересных портов» +будет IPv6 адрес\&. +.sp +Хотя протокол IPv6 еще не завоевал весь мир, в некоторых (обычно Азиатских) странах он используется интенсивно, и большинство современных операционных систем поддерживают его\&. Чтобы использовать Nmap с протоколом IPv6, и источник и цель сканирования должны быть настроены на работу с ним\&. Если ваш ISP (как большинство из них) не предоставляет вам IPv6 адрес, вы можете использовать широко распространенный и работающий с Nmap сервис Tunnel Brokers\&. Я использую бесплатный сервис + +на +\m[blue]\fB\%http://www.tunnelbroker.net\fR\m[]\&. Другие подобные сервисы +\m[blue]\fBперечислены на Wikipedia\fR\m[]\&\s-2\u[14]\d\s+2\&. +.RE +.PP +\fB\-A\fR (Опции агрессивного сканирования) +.RS 4 +Этой опцией активируется набор агрессивных опций сканирования\&. Я еще не решил до конца, какие же опции будут использоваться\&. Сейчас этот набор включает определение ОС (\fB\-O\fR), сканирование с целью определения версии (\fB\-sV\fR), сканирование с использованием скриптов (\fB\-sC\fR) и трассировку (\fB\-\-traceroute\fR)\&. + +Возможно в будущем будут добавлены другие функции\&. Целью является создание всестороннего набора опций сканирования, чтобы людям не надо было запоминать большое количество флагов\&. Тем не менее, т\&.к\&. сканирование с использованием скриптов с настройками по умолчанию расценивается как "назойливое", вам не следует использовать опцию +\fB\-A\fR +для сканирования целевых сетей без разрешения\&. Эта опция активирует только возможности, но не устанавливает опции времени (timing) (такие как +\fB\-T4\fR) или опции вербального вывода (\fB\-v\fR), которые вы, возможно, хотели бы использовать\&. +.RE +.PP +\fB\-\-datadir \fR\fB\fIимя_директории\fR\fR (Определяет место расположения файлов Nmap) +.RS 4 +Во время работы Nmap получает некоторые данные из файлов +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes +и +nmap\-os\-db\&. Если место расположение какого\-либо из этих файлов было задано конкретно (используя опции +\fB\-\-servicedb\fR +или +\fB\-\-versiondb\fR), то оно используется для этого файла\&. Далее Nmap ищет эти файлы в директории, заданной опцией +\fB\-\-datadir\fR +(если задана)\&. Если файлы не были найдены там, то Nmap ищет их в директории, определенной переменной окружения NMAPDIR +\&. Далее идут +~/\&.nmap +для реальных и действующих в данный момент UIDs (только POSIX системы) или расположение исполняемого файла Nmpa (только Win32), и далее +/usr/local/share/nmap +или +/usr/share/nmap\&. В последнюю очередь Nmap будет искать эти файлы в текущей директории\&. +.RE +.PP +\fB\-\-servicedb \fR\fB\fIфайл_служб\fR\fR (Задает определенный файл служб) +.RS 4 +Указывает Nmap использовать заданный файл служб вместо файла +nmap\-services, который поставляется вместе с Nmap\&. Использование этой опции также подразумевает использование опции быстрого сканирования (\fB\-F\fR)\&. Смотрите описание +\fB\-\-datadir\fR +для более подробной информации о файлах данных Nmap\&. +.RE +.PP +\fB\-\-versiondb \fR\fB\fIфайл_запросов_служб\fR\fR (Задает определенный файл запросов для служб) +.RS 4 +Указывает Nmap использовать заданный файл запросов для служб вместо файла +nmap\-service\-probes, который поставляется вместе с Nmap\&. Смотрите описание +\fB\-\-datadir\fR +для более подробной информации о файлах данных Nmap\&. +.RE +.PP +\fB\-\-send\-eth\fR (Использовать сырой уровень ethernet) +.RS 4 +Указывает Nmap посылать пакеты с использование более низкого сырого уровня ethernet, а не с использованием более высокого уровня IP (сетевого)\&. По умолчанию Nmap выбирает тот способ, который больше подоходит для используемой платформы\&. Сырые сокеты (уровень IP) + +в общем случае более эффективны для Unix машин, в то время как использование ethernet фреймов необходимо для операционных систем Windows, т\&.к\&. Microsoft отключила в них поддержку сырых сокетов\&. Nmap по\-прежнему использует сырые IP пакеты на Unix не смотря на эту опцию, когда нет другого выбора (как в случае с не\-ethernet соединениями)\&. +.RE +.PP +\fB\-\-send\-ip\fR (Использовать сырой уровень IP) +.RS 4 +Указывает Nmap посылать пакеты с использование сырых IP сокетов, а не с использованием более низкого уровня ethernet фреймов\&. Это дополнение к опции +\fB\-\-send\-eth\fR +описанной выше\&. +.RE +.PP +\fB\-\-privileged\fR (Подразумевать, что у пользователя есть все привилегии) +.RS 4 +Указывает Nmap, что у нее есть необходимые привилегии для использования сырых сокетов, пакетного сниффинга и сходных операций, которые обычно требуют привилегий пользователя root на Unix системах\&. + +По умолчанию Nmap завершает работу, если были запрошены такие опреации, но +\fBgeteuid\fR +не нуль\&. Опцию +\fB\-\-privileged\fR +хорошо использовать на системах с возможностями ядра Linux или подобных, которые могут быть сконфигурированы так, что непривилегированные пользовтели смогут осуществлять сканирование с использованием сырых сокетов\&. Удостоверьтесь, что эта опция указана перед любымими опциями требующими привилегий (сканирование SYN, определение ОС и т\&.д\&.)\&. Переменная окурежния +\fBNMAP_PRIVILEGED\fR +может быть установлена как равнозначная альтернатива опции +\fB\-\-privileged\fR\&. +.RE +.PP +\fB\-\-unprivileged\fR (Подразумевать, что у пользователя нет привилегий для использования сырых сокетов) +.RS 4 +Эта опция противоположна +\fB\-\-privileged\fR\&. Указывает Nmap, что у пользователя нет привилегий для использования сырых сокетов и сниффинга\&. Полезна для тестирования, отладки или когда по какой\-то причине на вашей системе не работае механизм сырых сокетов\&. Переменная окружения +\fBNMAP_UNPRIVILEGED\fR +может быть установлена как равнозначная альтернатива опции +\fB\-\-unprivileged\fR\&. +.RE +.PP +\fB\-\-release\-memory\fR (Освободить память перед завершением работы) +.RS 4 +Эта опция полезна только во время отладки утечки памяти\&. Заставляет Nmap освободить занянутю память перед завершением работы, что облегчает задачу обнаружения действительной утечки памяти\&. В обычном режиме работы Nmap пропускает этот шаг, так ОС делает это самостоятельно при закрытии процесса\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Вывести номер версии) +.RS 4 +Выводит номер версии Nmap и завершает работу\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Вывести страницу помощи) +.RS 4 +Выводит небольшую страницу помощи с наиболее часто используемыми командами и опциями\&. Запуск Nmap без аргументов приводит к такому же результату\&. +.RE +.SH "ВЗАИМОДЕЙСТВИЕ ВО ВРЕМЯ ВЫПОЛНЕНИЯ" +.PP +Во время работы Nmap, все нажатые клавиши фиксируются\&. Это позволяет вам взаимодействовать с программой не прерывая и не перезапуская ее\&. С помощью некоторых клавиш можно изменить опции сканирования, при использовании же других будут выведены сообщения о текущем статусе сканирования\&. Существует договоренность, что +\fIстрочные буквы увеличивают\fR +количество выводимой информации, а +\fIпрописные буквы уменьшают\fR\&. Для справки можно нажать \(oq\fI?\fR\(cq\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Увеличить / уменьшить уровень вербальности +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Увеличить / уменьшить отладочный уровень +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Включить / выключить отслеживание пакетов +.RE +.PP +\fB?\fR +.RS 4 +Вывести справку о взаимодействии во время выполнения +.RE +.PP +Что\-либо другое +.RS 4 +Выведет сообщение типа: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "ПРИМЕРЫ" +.PP +Здесь приведены несколько примеров использования Nmap, от самых простых до более изощренных\&. Некоторые реально существующие IP адреса и доменные имена использованны для того, чтобы сделать примеры более конкретными\&. На их место вы должны подставить адреса/имена из +\fIвашей собственной сети\&.\fR\&. В то время как сканирование портов некоторой сети не является незаконным, некоторым администраторам сетей может не понравиться своевольное сканирование их сетей и они могут пожаловаться\&. Для начала постарайтесь получить разрешение\&. +.PP +В целях тестирования у вас есть разрешение сканировать +scanme\&.nmap\&.org\&. Вы можете использовать сканирование с помощью Nmap, но не тестировать эксплоиты или производить атаки отказа в обслуживании\&. Для того чтобы не перегружать канал, пожалуйста, не производите более дюжины сканирований этого хоста в день\&. В случае злоупотребления этим свободным для сканирования хостом, он будет отключен и Nmap выдаст +Failed to resolve given hostname/IP: scanme\&.nmap\&.org +(не могу разрешить данное имя/IP: scanme\&.nmap\&.org)\&. Все выше сказанное также относится и к хостам +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org, и так далее, несмотря на то, что эти хосты еще не существуют\&. +.PP + +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Этой командой будут просканированы все TCP порты машины +scanme\&.nmap\&.org +\&. Опция +\fB\-v\fR +активирует вербальный режим\&. +.PP + + +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Этой командой будет произведено скрытное SYN сканирование всех 255 машин сети +«класса C», в которой расположена машина Scanme\&. Также будет произведена попытка определения операционной системы на каждом работающем хосте\&. Из\-за SYN сканирования и опции определения ОС данная команда требует привилегий суперпользователя (root)\&. +.PP + +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Запускает перебор хостов и TCP сканирование первой половины всех (из доступных 255) 8 битных подсетей адресного пространства 198\&.116 класса B\&. Также проверяет запущены ли SSH, DNS, POP3 или IMAP с использованием их стандартных портов, а также использует ли какое\-нибудь приложение порт 4564\&. Если какой\-нибудь из этих портов открыт, то будет произведена попытка определения работающего с этим портом приложения\&. +.PP + + +\fBnmap \-v \-iR 100000 \-PN \-p 80\fR +.PP +Указывает Nmap выбрать случайным образом 100,000 хостов и просканировать их на наличие запущенных на них веб\-серверов (порт 80)\&. Перебор хостов отключен опцией +\fB\-PN\fR, т\&.к\&. посылка пары предварительных запросов с целью определения доступности хоста является нецелесообразной, когда вас интересует всего один порт на каждом хосте\&. +.PP + + +\fBnmap \-PN \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Этой командой будут просканированы 4096 IP адресов (без предварительного пингования), а выходные данные будут сохранены в фомате XML и формате, удобном для просмотра утилитой grep (grepable формат)\&. +.SH "ОШИБКИ" +.PP +Как и ее автор, Nmap не идеальна\&. Но вы можете сделать ее лучше посылая нам отчеты об ошибках или даже написав патч\&. Если Nmap ведет себя не так, как вы ожидаете, то для начала обновитесь до последней версии с +\m[blue]\fB\%https://nmap.org\fR\m[]\&. Если проблема останется, то выясните, не была ли эта проблема уже обнаружена кем\-то\&. Попробуйте поискать сообщения об ошибках на нашей странице поиска +\m[blue]\fB\%https://insecure.org/search.html\fR\m[] +или в Google\&. Также попробуйте просмотреть +nmap\-dev +архивы на +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. +Также прочитайте полностью страницу руководства\&. Если ничего не помогло, отправьте сообщение об ошибке на +<dev@nmap\&.org>\&. Пожалуйста, включите всю известную вам информацию об ошибке, какую версию Nmap вы используете, и на какой операционной системы вы запускаете Nmap\&. Сообщения о проблемах и вопросы по использованию Nmap отправленные на +<dev@nmap\&.org> +имеют больше шансов на ответ, чем если бы вы послали их непосредственно Fyodor\*(Aqу\&. Если вы подпишитесь на рассылку nmap\-dev перед отправкой сообщения, то ваше сообщение будет обработано быстрее\&. Подпишитесь на рассылку на +\m[blue]\fB\%https://nmap.org/mailman/listinfo/dev\fR\m[]\&. +.PP +Патчи для исправления ошибок даже лучше просто сообщений об ошибках\&. Базовые инструкции по созданию патчей доступны по адресу +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]\&. Созданные вами патчи можно отправить на +nmap\-dev +(рекомендуется) или непосредственно Fyodor\*(Aqу\&. +.SH "АВТОР" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%https://insecure.org\fR\m[]) +.PP +На протяжении многих лет сотни людей внесли ценный вклад в разработку Nmap\&. Все изменения и улучшения подробно описаны в файле +CHANGELOG, который распространяется вместе с Nmap, а также доступен на +\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]\&. +.SH "ЮРИДИЧЕСКИЕ УВЕДОМЛЕНИЯ" +.SS "Unofficial Translation Disclaimer / Отречение неофициального перевода" +.PP +This is an unnofficial translation of the +\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[15]\d\s+2 +into Russian\&. It was not written by Insecure\&.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\&. However, we hope that this translation helps Russian speakers understand the Nmap license better\&. +.PP +Это неофициальный перевод +\m[blue]\fBлицензии Nmap\fR\m[]\&\s-2\u[15]\d\s+2 +на русский язык\&. Он не был осуществлен Insecure\&.Com LLC, и не определяет с юридической точки зрения условия распространения Nmap \-\- это делает только оригинальный английский вариант\&. Тем не менее, мы надеемся, что этот перевод поможет русскоязычным пользователям лучше понять лицензию Nmap\&. +.SS "Авторское право и лицензия Nmap" +.PP +Nmap Security Scanner (C) 1996\-2008 Insecure\&.Com LLC\&. Nmap также является зарегистрированным товарным знаком Insecure\&.Com LLC\&. Эта программа является свободным программным обеспечением; вы можете распространять и / или модифицировать его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation; Версия 2 с уточнениями и исключениями, описанными ниже\&. Лицензия гарантирует ваше право использовать, модифицировать и распространять данное программное обеспечение на определенных условиях\&. Если вы хотите встроить Nmap технологии в собственное программное обеспечение, мы продаем альтернативные лицензии (обращаться +<sales@insecure\&.com>)\&. Десятки поставщиков программного обеспечения, уже имеют лицензии на использование Nmap технологий, таких, как обнаружение хостов, сканирование портов, определение OS и определение версии\&. +.PP +Имейте ввиду, что GPL накладывает важные ограничения на +«производные приложения», хотя и не дает четкого определения этого термина\&. Чтобы избежать недоразумений, мы считаем, что приложение является +«производным», если в нем реализованы любые из следующих пунктов: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Используется исходный код Nmap +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Используются авторские файлы данных Nmap, такие, как +nmap\-os\-db +или +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Запускается Nmap, и анализируются результаты работы (в противовес обычным командным оболочкам, которые просто отображают необработанные выходные данные Nmap и поэтому не являются производными приложениями\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Nmap интегрируется/включается/агрегируется в собственный исполняемый инсталлятор, как предоставляемые, например, с помощью InstallShield\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Используется ссылка на библиотеку или запускается программа, в которой реализованы любые из перечисленных пунктов\&. +.RE +.PP +В термин +«Nmap» +следует также включать любые части Nmap или производные от нее приложения\&. Это список не является полным, мы просто хотим сделать ясным наше понимание производных приложений с помощью некоторых общих примеров\&. Эти ограничения имеют силу, только когда вы действительно распростаняете Nmap\&. Например, ничего не мешает вам написать и продавать свой собственный пользовательский интерфейс для Nmap\&. Распространяйте его самостоятельно, а для скачивания Nmap направляйте людей на +\m[blue]\fB\%https://nmap.org\fR\m[]\&. +.PP +Мы не считаем, что данные ограничения должны быть добавлены к лицензии GPL, мы просто приводим наше понимание +«производных приложений» +по отношению к нашему продукту с GPL лицензией\&. Это похоже на то, как Линус Торвальдс (Linus Torvalds) опубликовал свое понимание +«производных приложений» +применимо к модулям ядра Linux\&. Наше трактовка относится только к Nmap, мы не говорим ни о каких других GPL продуктах\&. +.PP +Если у вас есть какие\-либо вопросы о GPL ограничениях по использованию Nmap в не\-GPL продуктах, мы с радостью вам поможем\&. Как уже упоминалось выше, мы предоставляем альтернативную лицензию для интегрирования Nmap в собственные программные продукты\&. Эти контракты были проданы многим производителям программного обеспечения и обычно они включают: бессрочную лицензию, предоставление приоритетной поддержки и обновлений, а также содействие спонсированию продолжающейся разработки Nmap технологии\&. Для дальнейшей информации пишите на +<sales@insecure\&.com>\&. +.PP +В качестве исключения из GPL соглашений, Insecure\&.Com LLC предоставляет право связывать исходный код этой программы с любой версией OpenSSL библиотеки, которая распространяется по лицензии приведенной в файле +COPYING\&.OpenSSL, а также распространять эту комбинацию\&. +Вы должны удовлетворять условиям лицензии GNU GPL во всем, что касается кода не использующего OpenSSL\&. Если вы модифицируете этот файл, вы можете расширить это исключение на вашу версию файла, но вы не обязаны это делать\&. +.PP +Если вы получаете эти файлы в лицензионным соглашением или контрактом, где указаны отличные от этих условий, то альтернативные условия лицензионного соглашения имеют преимущество над этими комментариями\&. +.SS "Creative Commons License для этого справочного руководства Nmap" +.PP +Справочно Руководство Nmap +это (C) 2005\-2008 Insecure\&.Com LLC\&. Оно распространяется под лицензией +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2 +версии 2\&.5\&. Это позволяет вам распространять и модифицировать его по вашему усмотрению, до тех пор пока вы считаетесь с исходным источником\&. В качестве альтернативы вы можете считать, что этот документ распространяется по той же лицензии, что и сама Nmap (описывается выше)\&. +.SS "Доступность исходного кода и общественные вклады" +.PP +Мы предоставляем исходный код, потому что верим, что пользователи должны иметь право знать, что именно программа будет делать до того, как запустят ее\&. Это также позволяет вам проверять программное обеспечение на наличие дыр в безопасности (пока не было найдено ни одной)\&. +.PP +Исходный код также позволяет вам портировать Nmap на новые платформы, исправлять баги и добавлять новые возможности\&. Всячески поощряется посылка своих изменений на +<fyodor@nmap\&.org> +для возможного их включения в основной дистрибутив\&. Отправляют эти изменения Fyodor\*(Aqу или разработчикам на Insecure\&.Org, пердполагается, что вы предоставляете Fyodor\*(Aqу и Insecure\&.Com LLC безграничное, не эксклюзивное право на повторное использование, модификацию и изменение лицензии кода\&. Nmap всегда будет доступна как Open Source продукт, +это важно, т\&.к\&. невозможность изменения лицензии на кода уже повлекла за собой большие проблемы для других Free Software проектов (как, например, KDE и NASM)\&. Вы также порой позволяем третьим сторонам изменять лицензию, как описывалось выше\&. Если вы хотите использовать собственные лицензионные условия для ваших изменений, сообщите об этом, когда будете их отсылать\&. +.SS "Отсутствие гарантии" +.PP +Эта программа распространяется в надежде на то, что она будет полезна, но БЕЗ КАКИХ\-ЛИБО ГАРАНТИЙ; даже без какой\-либо подразумеваемой ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КАКОЙ\-ЛИБО ОПРЕДЕЛЕННОЙ ЗАДАЧИ\&. Смотрите GNU General Public License v2\&.0 для подробностей +\m[blue]\fB\%http://www.gnu.org/licenses/gpl-2.0.html\fR\m[], или в файле +COPYING, который распространяется с Nmap\&. +.PP +Также следует принять во внимание, что время от времени Nmap вызывает крах плохо написанных приложений, TCP/IP стеков и даже операционных систем\&. +Хотя такие случаи и чрезвычайно редки, не следует о них забывать\&. +\fINmap никогда не следует использовать для сканирования критичных систем\fR, пока вы не готовы мириться в временем простоя\&. Мы признаем, что Nmap может вызвать крах ваших систем или сетей, и отрицаем всякую ответственность за проблемы или ущерб, нанесенные Nmap\&. +.SS "Несоответствующее использование" +.PP +Из\-за возможного риска краха и из\-за того, что некоторые личности используют Nmap для предварительного исследования систем перед их атакой, некоторые администраторы могут быть недовольны тем, что их система была просканирована\&. Поэтому, перед тем как сканировать сеть, разумно получить на это разрешение\&. +.PP +Nmap не следует устанавливать с особыми привилегиями (например, suid root) из соображений безопасности\&. +.SS "Стороннее программное обеспечение" +.PP +Этот продукт содержит программное обеспечение разработанное +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[16]\d\s+2\&. Модифицированная версия библиотеки +\m[blue]\fBLibpcap portable packet capture library\fR\m[]\&\s-2\u[17]\d\s+2 +распространяется вместе с Nmap\&. Windows версия Nmap использует вместо Libpcap производную от нее библиотеку +\m[blue]\fBWinPcap library\fR\m[]\&\s-2\u[18]\d\s+2\&. Поддержка регулярных выражений предоставляется библиотекой +\m[blue]\fBPCRE library\fR\m[]\&\s-2\u[19]\d\s+2,, которая является программным обеспечением с открытым исходным кодом, написана Филипом Хазелом (Philip Hazel)\&. +Некоторые функции по работе с сырыми сокетами используют сетевую библиотеку +\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[20]\d\s+2, написанную Дагом Сонгом (Dug Song)\&. +Модифицированная версия распространяется вместе с Nmap\&. Nmap может быть связана с +\m[blue]\fBOpenSSL cryptography toolkit\fR\m[]\&\s-2\u[21]\d\s+2 +поддержки SSL определения версии\&. Скриптовый движок Nmap (Nmap Scripting Engine) использует встроенную версию +\m[blue]\fBязыка программирования Lua\fR\m[]\&\s-2\u[22]\d\s+2\&. +Все описанное здесь стороннее проограммное обеспечение бесплатно распространяется на основе лицензии в стиле BSD\&. +.SS "Классификация по контролю экспорта Соединенных Штатов" +.PP +U\&.S\&. Export Control: Insecure\&.Com LLC указывает, что Nmap попадает под U\&.S\&. ECCN (число в классификации по контролю экспорта) 5D992\&. Эта категория называется +«Программное обеспечение информационной безопасности не контролируемое 5D002»\&. Единственным ограничем в этой категории является AT (анти\-терроризм), под который попадают почти все товары, что запрещает экспорт в горстку не стран типа Ирана и Северной Кореи\&. Поэтому экспорт Nmap не требует какой\-либо специальной лицензии, разрешения или других санкций со стороны государства\&. +.SH "ПРИМЕЧАНИЯ" +.IP " 1." 4 +оригинальной английской версии +.RS 4 +\%https://nmap.org/book/man.html +.RE +.IP " 2." 4 +Creative Commons Attribution License +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 3." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 4." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 5." 4 +RFC 1918 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1918.txt +.RE +.IP " 6." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 7." 4 +TCP RFC +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 8." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 9." 4 +RFC 1323 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1323.txt +.RE +.IP "10." 4 +язык программирования Lua +.RS 4 +\%http://lua.org +.RE +.IP "11." 4 +Протокол IP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc791.txt +.RE +.IP "12." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP "13." 4 +Nmap::Parser +.RS 4 +\%http://nmapparser.wordpress.com/ +.RE +.IP "14." 4 +перечислены на Wikipedia +.RS 4 +\%http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers +.RE +.IP "15." 4 +Nmap license details +.RS 4 +\%https://nmap.org/book/man-legal.html +.RE +.IP "16." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "17." 4 +Libpcap portable packet capture library +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "18." 4 +WinPcap library +.RS 4 +\%http://www.winpcap.org +.RE +.IP "19." 4 +PCRE library +.RS 4 +\%http://www.pcre.org +.RE +.IP "20." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "21." 4 +OpenSSL cryptography toolkit +.RS 4 +\%http://www.openssl.org +.RE +.IP "22." 4 +языка программирования Lua +.RS 4 +\%http://www.lua.org +.RE diff --git a/docs/man-xlate/nmap-sk.1 b/docs/man-xlate/nmap-sk.1 new file mode 100644 index 0000000..88d12c6 --- /dev/null +++ b/docs/man-xlate/nmap-sk.1 @@ -0,0 +1,1691 @@ +'\" t +.\" Title: nmap +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 17. mája 2023 +.\" Manual: Nmap - Referencna prirucka +.\" Source: Nmap +.\" Language: Slovak +.\" +.TH "NMAP" "1" "17. mája 2023" "Nmap" "Nmap \- Referencna prirucka" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "MENO" +nmap \- Nastroj na skumanie siete a scanner bezpecnosti/portov +.SH "PREHĽAD" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fITyp\ scanu\fR...] [\fIMoznosti\fR] {\fISpecifikacia\ cielovej\ stanice\fR} +.SH "OPIS" +.PP +Nmap (\(lqNetwork Mapper\(rq) je open\-source nastrojom na skumanie siete a kontrolu bezpecnosti\&. Bol vyvinuty s ohladom na rychle scanovanie velkych sieti, hoci funguje vyborne aj pri nasadeni proti jednotlivym hostitelom\&. Nmap neobvyklymi sposobmi pouziva neupravene IP pakety na urcenie hostitelskych stanic v sieti, sluzieb, ktore (aplikacia Nmap neobvyklym sposobom pouziva neupravene IP pakety na urcenie cisla a verzie) tieto hostitelske stanice ponukaju, na akom operacnom systeme (a verziach OS) bezia, aky typ paketovych filtrov alebo firewallu je pouzity, a mnoho dalsich charakteristickych veci\&. Hoci sa Nmap bezne pouziva na vykonavanie kontrol bezpecnosti, mnoho systemovych a sietovych administratorov ho vyuzije aj pri obvyklych ulohach ako napriklad obsah siete, sprava casovych rozvrhnuti upgradeovania sluzby ci monitorovanie uptimu hostitelskej stanice alebo sluzby\&. +.PP +Vystup aplikacie Nmap je tvoreny zoznamom scanovanych cielovych stanic s dodatocnymi informaciami o kazdom z nich v zavislosti na pouzitych moznostiach\&. Klucovou medzi tymito informaciami je +\(lqtabulka zaujimavych portov \(rq\&. Tato tabulka obsahuje zoznam cisla portu a protokolu, nazov sluzby a stav\&. Stav moze byt bud +otvoreny, +filtrovany, +zatvoreny, alebo +nefiltrovany\&. Otvoreny Open znamena, ze aplikacia na cielovom pocitaci nacuva spojeniam alebo paketom na tomto porte\&. +Filtrovany +znamena, ze nejaky firewall, filter alebo sietova prekazka blokuje port takym sposobom, ze Nmap nedokaze urcit, ci je port +otvoreny +alebo +zatvoreny\&. +Zatvorene +porty neobsahuju ziadne na nich nacuvajuce aplikaciu, aj ked by sa mohli kedykolvek otvorit\&. Porty su oznacovane ako +nefiltrovane +ak reaguju na testovanie Nmapom, no Nmap nedokaze urcit, ci su otvorene alebo zatvorene\&. Nmap ohlasi kombinaciu stavov +otvoreny|filtrovany +a +zatvoreny|filtrovany +ak nedokaze urcit, ktory z dvoch stavov zodpoveda portu\&. \&. Ak bola vyzadovana detekcia verzie, tabulka portov moze takisto obsahovat podrobnosti o verzii softwaru\&. Ak je vyzadovany scan protokolu IP (\fB\-sO\fR), Nmap poskytne informacie namiesto nacuvajucich portov informacie o podporovanych protokoloch IP\&. +.PP +Okrem tabulky zaujimavych portov dokaze Nmap poskytnut dalsie informacie o cielovych staniciach, vratane reverznych nazvov DNS, odhadov operacneho systemu, typoch zariadeni a MAC adries\&. +.PP +Typicky Nmap scan je zobrazeny na tomto mieste\&.Príklad 1, \(lqUkazkovy Nmap scan\(rq\&. Jedinymi parametrami Nmapu pouzitymi v tomto priklade su +\fB\-A\fR, na povolenie detekcie OS a verzie,\fB\-T4\fR +kvoli rychlejsiemu behu programu, a dva hostitelske nazvy cielovych stanic\&. +.PP +\fBPríklad 1. Ukazkovy Nmap scan\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org playground + +Starting nmap ( https://nmap\&.org/ ) +Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X +OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11 +Uptime 33\&.908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground\&.nmap\&.org (192\&.168\&.0\&.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios\-ssn +389/tcp open ldap? +445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds +1002/tcp open windows\-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper +5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3\&.8) +MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds +.fi +.if n \{\ +.RE +.\} +.PP +Najnovsia verzia Nmapu sa nachadza na adrese +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Najnovsia verzia manualu je k dispozicii na adrese +\m[blue]\fB\%https://nmap.org/man/\fR\m[]\&. +.SH "POZNAMKY O PREKLADE" +.PP +Tato slovenska verzia referencnej prirucky Nmapu bola prelozena z verzie 2991 +\m[blue]\fBpovodnej anglickej verzie\fR\m[]\&\s-2\u[1]\d\s+2 +Stanislavom Sivakom\&. Dufam sice, ze tento preklad viac spristupni Nmap slovensky hovoriacim ludom na celom svete, ale nemozem zarucit, ze preklad je taky uplny alebo aktualny ako oficialna anglicka verzia\&. Toto dielo moze byt modifikovane a siritelne podla podmienok licencie +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. +.SH "ZOZNAM MOZNOSTI" +.PP +Tento zoznam moznosti sa zobrazi, ak je Nmap spusteny bez parametrov a jeho najnovsia verzia je k dispozii na adrese +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]\&. Pomaha ludom zapamatat si najbeznejsie moznosti, ale nie je nahradou za podrobnu dokumentaciu v zostavajucej casti tohoto manualu\&. Na tomto mieste nie su dokonca uvedene niektore malo zname, nejasne moznosti\&. +.PP +.if n \{\ +.RS 4 +.\} +.nf +Pouzitie: nmap [Typ(y) scanu] [Moznosti] {specifikacia cielovej stanice} +SPECIFIKACIE CIELOVEJ STANICE: + Je mozne zadat hostitelsky nazov stanice, IP adresy, siete atd\&. + Priklad: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\&.0\-255\&.1\-254 + \-iL <inputfilename>: Pouzit ako vstup zoznam hostistelskych stanic alebo sieti + \-iR <num hosts>: Zvolit nahodne cielove stanice + \-\-exclude <host1[,host2][,host3],\&.\&.\&.>: Vynechat hostitelske stanice alebo siete + \-\-excludefile <exclude_file>: Vynechat zoznam zo suboru +ZISTOVANIE HOSTITELSKEJ STANICE: + \-sL: List Scan \- zobrazit zoznam cielovych stanic, ktore sa maju scanovat + \-sP: Ping Scan \- nevykonat nic ine okrem zistenia, ci je hostitelska stanice online + \-P0: Treat all hosts as online \-\- preskocit zistovanie hostitelskych stanic + \-PS/PA/PU [portlist]: pre zadane porty vykonat zistenie protokolov TCP SYN/ACK alebo UDP + \-PE/PP/PM: vyskusat ICMP echo, parameter timestamp a poziadavku na sietovu masku + \-n/\-R: Nikdy nevykonavat DNS preklad/Vzdy vykonavat preklad DNS [povodne nastavenie: niekedy] + \-\-dns\-servers <serv1[,serv2],\&.\&.\&.>: Zadat vlastne servery DNS + \-\-system\-dns: Pouzit prekladac DNS operacneho systemu +SPOSOBY SCANOVANIA: + \-sS/sT/sA/sW/sM: Scan typu TCP SYN/Connect()/ACK/Window/Maimon + \-sN/sF/sX: Scany typu TCP Null, FIN a Xmas + \-\-scanflags <flags>: Nastavit vlastne flagy scanu TCP scan + \-sI <zombie host[:probeport]>: Scan typu Idlescan + \-sO: Scan protokolu IP + \-b <ftp relay host>: Scan vyuzivajuci FTP bounce +SPECIFIKACIA PORTOV A PORADIE SCANOVANIA: + \-p <port ranges>: Len specifikovane porty + Priklad: \-p22; \-p1\-65535; \-p U:53,111,137,T:21\-25,80,139,8080 + \-F: Fast \- Vykonat scan len na portoch zahrnutych v subore nmap\-services + \-r: Scanovat porty postupne a nie nahodne +DETEKCIA SLUZBY/VERZIE: + \-sV: Testovat otvorene porty na urcenie informacii o sluzbe/verzii + \-\-version\-light: Kvoli rychlejsej identifikacii sluzby/verzie vykonat len tie + najpravdepodobnejsie testy + \-\-version\-all: Vykonat vsetky mozne testy + \-\-version\-trace: Zobrazit podrobnosti o priebehu scanovanie verzie (pre ucely debugovania) +DETEKCIA OS: + \-O: Povolit detekciu OS + \-\-osscan\-limit: Zuzit detekciu OS len na slubne vyzerajuce cielove stanice + \-\-osscan\-guess: Pouzit agresivnejsiu detekciu OS +CASOVANIE A VYKON: + \-T[0\-5]: Nastavit casovaciu sablonu (vyssie cislo zodpoveda rychlejsej sablone) + \-\-min\-hostgroup/max\-hostgroup <size>: Velkosti skupin paralelnych scanov + \-\-min\-parallelism/max\-parallelism <numprobes>: Paralelizacia testu + \-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msec>: Udava + velkost hodnoty RTT testu + \-\-max\-retries <tries>: Udava pocet retransmisii testu scanovania portov\&. + \-\-host\-timeout <msec>: Po uplynuti tohoto casoveho limitu ukoncit test cielovej stanice + \-\-scan\-delay/\-\-max\-scan\-delay <msec>: Prisposobit oneskorenie medzi testami +OBIDENIE FIREWALLU/IDS A FALSOVANIE: + \-f; \-\-mtu <val>: Fragmentovat pakety ( s pridanou moznostou fragmentovania podla velkosti MTU) + \-D <decoy1,decoy2[,ME],\&.\&.\&.>: Ukryt scan pouzitim trikov + \-S <IP_Address>: Sfalsovat zdrojovu adresu + \-e <iface>: Pouzit zadane rozhranie + \-g/\-\-source\-port <portnum>: Pouzit dane cislo portu + \-\-data\-length <num>: Do odosielanych paketov vlozit nahodne data + \-\-ttl <val>: Nastavit velkost polozky time\-to\-live protokolu IP + \-\-spoof\-mac <mac address/prefix/vendor name>: Sfalsovat MAC adresu aktualneho pocitaca + \-\-badsum: Odoslat pakety s falosnym kontrolnym suctom TCP/UDP +VYSTUP: + \-oN/\-oX/\-oS/\-oG <file>: Vystup scanu zadaneho suboru vo formate obycajnom, XML, s|<rIpt kIddi3, + a Grep\&. + \-oA <basename>: Vystup sucasne vo vsetkych troch hlavnych formatoch + \-v: Zvysit uroven priebezneho vystupu (pre vacsi ucinok pouzit dvakrat) + \-d[level]: Nastavit alebo zvysit uroven debugovania (Zmysel maju hodnoty do 9) + \-\-packet\-trace: Zobrazit vsetky odoslane a prijate pakety + \-\-iflist: Vytlacit rozhrania hostitelskej stanice a trasy (pre ucely debugovania) + \-\-append\-output: Namiesto vymazania dat suborov pridat vystup k datam zadanych vystupnych suborov + \-\-resume <filename>: Pokracovat v prerusenom scane + \-\-stylesheet <path/URL>: Na prenesenie vystupu vo formate XML do formatu HTML pouzit stylesheet XSL + \-\-webxml: Na ziskanie prenositelnejsieho formatu XML pouzit referencny stylesheet zo stranky Insecure\&.Org + \-\-no\-stylesheet: Nepouzivat stylesheet pre vystup v XML +ROZNE: + \-6: Povolit scan pre protokol IPv6 + \-A: Povolit detekciu OS a verzie + \-\-datadir <dirname>: Zadat vlastne umiestnenie datoveho suboru pre Nmap + \-\-send\-eth/\-\-send\-ip: Odoslat pouzitim neupravenych ethernetovych ramcov alebo IP paketov + \-\-privileged: Usudzovat, ze uzivatel ma plne opravnenia + \-V: zobrazit cislo verzie + \-h: zobrazit suhrn tejto stranky napovedy\&. +PRIKLADY: + nmap \-v \-A scanme\&.nmap\&.org + nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8 + nmap \-v \-iR 10000 \-P0 \-p 80 +.fi +.if n \{\ +.RE +.\} +.sp +.SH "SPECIFIKACIA CIELOVEJ STANICE" +.PP +Vsetko v prikazovom riadku Nmapu co nie je parametrom (alebo argumentom parametra) sa povazuje za specifikaciu cielovej stanice\&. Najjednoduchsim pripadom je specifikovat cielovu IP adresu alebo hostitelsky nazov stanice, ktora sa ma scanovat\&. +.PP +Niekedy je potrebne scanovat celu siet susednych hostitelskych stanic\&. Pre tento ucel podporuje Nmap adresovanie typu CIDR\&. K IP adrese alebo hostitelskemu nazvu je mozne pripojit /\fInumbits\fR +a Nmap vykona scan kazdej IP adresy, u ktorej sa zhoduju prve +\fInumbits\fR +s referencnou IP adresou alebo hostitelskym nazvom\&. Napriklad po zadani adresy v tvare 192\&.168\&.10\&.0/24 by sa scanovalo 256 hostitelskych stanic medzi 192\&.168\&.10\&.0 (v binarnom tvare: +11000000 10101000 00001010 00000000) a 192\&.168\&.10\&.255 (v binarnom tvare: +11000000 10101000 00001010 11111111), vratane\&. Zadanie adresy 192\&.168\&.10\&.40/24 by sposobilo presne to iste\&. Za predpokladu, ze nazov scanme\&.nmap\&.org je na IP adrese 205\&.217\&.153\&.62, specifikacia scanme\&.nmap\&.org/16 sposobi, ze by sa scanovalo 65,536 IP adries medzi adresami 205\&.217\&.0\&.0 a 205\&.217\&.255\&.255\&. Najmensia povolena hodnota je /1, co sposobi scanovanie polovice internetu\&. Najvacsia hodnota je 32, co ma za nasledok scanovanie len spomenutej hostitelskej stanice, pretoze vsetky bity IP adresy su pevne\&. +.PP +Zapis typu CIDR je sice kratky, no nie vzdy dostatocne flexibilny\&. Napriklad, ak je potrebne scanovat adresy v rozsahu 192\&.168\&.0\&.0/16, ale pritom preskocit vsetky adresy zakoncene \&.0 alebo \&.255, pretoze bezne su to broadcastove adresy\&. Nmap to podporuje pomocou pouzitia specifikacie jednotlivych oktetov adresy\&. Namiesto zadania obycajnej IP adresy je mozne specifikovat zoznam cisel alebo rozsah pre kazdy oktet, oddeleny ciarkou\&. Rozsah 192\&.168\&.0\-255\&.1\-254 napriklad preskoci vsetky adresy v zadanom rozsahu, ktore obsahuju na konci \&.0 alebo \&.255\&. Rozsahy sa nemusia viazat len na posledne oktety: specifikacia 0\-255\&.0\-255\&.13\&.37 vykona scan vsetkych adries na internete konciace oktetmi 13\&.37\&. Tento druh specifikacie sa moze hodit pri skumani internetu a vyskume\&. +.PP +Adresy protokolu IPv6 mozu byt specifikovane len plne urcenou IPv6 adresou alebo hostitelskym nazvom\&. Zapisy typu CIDR a rozsahy oktetov nie su podporovane pre IPv6, pretoze su zriedkavo uzitocne\&. +.PP +Nmap akceptuje viacnasobne specifikacie hostitelskych stanic v prikazovom riadku, ktore pritom nemusia byt rovnakeho typu\&. Prikaz\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.0\-255\fR +funguje podla ocakavania\&. +.PP +Zatial co su cielove stanice obvykle specifikovane v prikazovom riadku, je mozne tiez specifikovat nasledujuce moznosti, a tym riadit vyber cielovych stanic: +.PP +\fB\-iL <inputfilename>\fR (Vstup zo zoznamu) +.RS 4 +Nacita specifikacie cielovych stanic z +\fIinputfilename\fR\&. Zadavanie velkeho zoznamu hostitelskych stanic do prikazoveho riadku je casto tazkopadne avsak casto ziadane\&. Napriklad vas DHCP server moze exportovat zoznam momentalnych 10000 pridelenych adries, ktore sa maju scanovat, alebo je mozne scanovat vsetky IP adresy +\fIokrem\fR +tychto na zistenie hostitelskych stanic pouzivajucich neopravnene staticke adresy\&. Vytvorite zoznam hostitelskych stanic, ktore sa maju scanovat a nazov suboru zadate ako argument k parametru\fB\-iL\fR\&. Polozky v subore mozu byt v lubovolnom formate, ktory je akceptovany Nmapom v prikazovom riadku (IP adresa, hostitelsky nazov, IP adresa typu CIDR, IPv6, alebo rozsahy oktetov)\&. Kazda polozka musi musi byt oddelena aspon jednou medzerou, tabulatormi alebo novym riadkom\&. Ak sa maju hostitelske stanice nacitavat zo standardneho vstupu a nie aktualneho suboru, je mozne pouzit spojitko (\-) +.RE +.PP +\fB\-iR <num hosts>\fR (Vybrat nahodne cielove stanice) +.RS 4 +Pre rozsiahle internetove prieskumy a dalsi vyskum je mozne zvolit nahodne cielove stanice\&. Argument +\fInum hosts\fR +udava, kolko IP adries ma Nmap generovat\&. Automaticky sa preskocia adresy privatne, multicastove alebo nealokovane\&. Argument +0 +udava scan, ktory sa nikdy neskonci\&. Je potrebne uvedomit si, ze niektori sietovi administratori s nevolou sleduju neopravnene scanovania sieti a mozu sa stazovat\&. Pouzitie tejto moznosti je na vlastne nebezpecie! Ak sa budete v jedno dazdive odpoludnie naozaj nudit, pokuste sa prikazom +\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR +najst nahodne webove servery\&. +.RE +.PP +\fB\-\-exclude <host1[,host2][,host3],\&.\&.\&.>\fR (Vynechat hostitelske stanice alebo siete) +.RS 4 +Specifikuje zoznam cielovych stanic oddelenych ciarkou, ktore sa maju vynechat zo scanu, aj ked su castou celkoveho specifikovaneho sietoveho rozsahu\&. Zoznam pouziva obvyklu syntax Nmapu, to znamena hostitelske nazvy, bloky adries podla CIDR, rozsahy oktetov, atd\&. Tato moznost je uzitocna, ak sa v scanovanych sietach vyskytuju nedotknutelne kriticke servery, systemy s nepriaznivou reakciou na scanovanie portov, ci systemy spravovane dalsimi ludmi\&. +.RE +.PP +\fB\-\-excludefile <exclude_file>\fR (Vynechat subor zo zoznamu) +.RS 4 +Ponuka podobnu funkcionalitu ako moznost +\fB\-\-exclude\fR +s tym rozdielom, ze vynechane cielove stanice su namiesto prikazoveho riadku ulozene v +\fIexclude_file\fR +s polozkami oddelenymi novym riadkom, medzerou alebo tabulatorom\&. +.RE +.SH "ZISTOVANIE HOSTITELSKYCH STANIC" +.PP +Jednym z uplne prvych krokov pri prieskume siete je zuzit niekedy obrovsku mnozinu rozsahov IP adries na zoznam aktivnych alebo zaujimavych hostitelskych stanic\&. Scanovanie kazdeho portu kazdej jednej adresy nie je obycajne nevyhnutne\&. Samozrejme, ze ciel scanovania zavisi od typu scanu\&. Sietovych administratorov mozu zaujimat len hostitelske stanice, na ktorych bezi urcita sluzba, kym spravcov bezpecnosti mozu dbat o kazde zariadenie s IP adresou\&. Administratorovi moze stacit ICMP ping, aby nasiel hostitelske stanice vo vnutornej sieti, kym tester moznosti vonkajsieho preniknutia do siete moze pouzit mnozinu testov pri pokuse vyhnut sa obmedzeniam firewallu\&. +.PP +Pretoze potreby pri zistovanie hostitelskych stanic su rozmanite, Nmap ponuka siroku paletu moznosti prisposobenia pouzitych technik\&. Zistovanie hostitelskej stanice sa niekedy nazyva ping scan, zachadza vsak daleko za jednoduchym ICMP echo request spojenou so vsadepritomnym +ping +nastrojom\&. Pouzivatelia mozu krok pingovania vynechat uplne pouzitim parametra (\fB\-sL\fR) alebo zakazanim pingu parametrom (\fB\-P0\fR), ci pouzit v sieti nahodne kombinacie multi\-portovych testov TCP SYN/ACK, UDP, a ICMP\&. Cielom tychto testov je pokusit sa ziskat odpovede, ktore ukazuju, ze IP adresa je vlastne aktivna (je pouzivana hostitelskou stanicou alebo sietovym zariadenim)\&. Vo viacerych sietach je aktivne len male percento IP adries v rovnakom momente, co je obvykle hlavne pre rozsah privatnych adries, napr\&. 10\&.0\&.0\&.0/8 podla standardu RFC1918\&. Tato siet obsahuje 16 milionov IP adries, ale videl som, ze ich pouzivali spolocnosti s menej ako tisic pocitacmi\&. Zistovanie hostitelskych stanic dokaze najst tieto pocitace v riedko alokovanom oceane IP adries\&. +.PP +Ak nie su zadane ziadne parametre pre zistovanie hostitelskych stanic, Nmap odosle kazdej cielovej stanici TCP ACK paket urceny pre port 80 a poziadavku ICMP Echo Request\&. Vynimkou je je ARP scan pouzivany pre vsetky cielove stanice v lokalnej ethernetovej sieti\&. Pri neprivelegovanych pouzivateloch UNIXoveho shellu sa namiesto typu ACK odosle paket typu SYN pouzitim systemoveho volania\fBconnect()\fR +Tieto predvolene nastavenia odpovedaju parametrom +\fB\-PA \-PE\fR\&. Taketo zistovanie hostitelskych stanic je sice casto postacujuce pri scanovani lokalnych sieti, ale pri testovani bezpecnosti sa odporuca pouzit rozsiahlejsiu mnozinu testov na zistovanie\&. +.PP +Parametre\fB\-P*\fR +(vyberajuce typy pingu) sa mozu kombinovat\&. Vyhliadky preniknutia nekompromisnymi firewallmi sa mozu zvysit odoslanim viacerych typov testov vyuzivajuc rozlicne typy portov a priznakov TCP a ICMP sprav\&. Je dolezite vsimnut si, ze zistovanie ARP (\fB\-PR\fR) sa normalne vykonava na cielovych staniciach v lokalnej ethernetovej sieti, aj pri zadani dalsich parametrov +\fB\-P*\fR, pretoze je to takmer vzdy rychlejsie a efektivnejsie\&. +.PP +Nasledujuce parametre sluzia na ovladanie zistovania hostitelskych stanic\&. +.PP +\fB\-sL\fR (List scan) +.RS 4 +List scan je neupravena podoba zistovania hostitelskych stanic, ktora jednoducho zobrazi zoznam kazdej hostitelskej stanice specifikovanej sieti bez odoslania paketov cielovym staniciam\&. V predvolenom nastaveni vykonava Nmap reverzny preklad DNS hostitelskych stanic kvoli ziskaniu nazvov\&. Je casto prekvapujuce, kolko uzitocnych informacii vydaju jednoduche hostitelske nazvy\&. Napriklad nazov +fw\&.chi\&.playboy\&.com +je firewallom spolocnosti Playboy Enterprises kancelarie v Chicagu\&. Nmap na konci takisto oznami celkovy pocet IP adries\&. Zoznam scanovania je dobrou kontrolou spravnosti, ze su vybrate nalezite IP adresy\&. Ak hostitelske stanice vykazuju nazvy domen, ktore nerozponavate, je ich vhodne preskumat hlbsie, aby sa predislo scanovaniu siete nespravnej spolocnosti\&. +.sp +Kedze myslienkou je len jednoduchy vypis zoznamu hostitelskych stanic, parametre funkcionality vyssieho stupna ako scanovanie portov, detekcia OS alebo scanovanie pouzitim pingu nemoze byt kombinovane\&. Ak chcete zakazat vykonat tieto vyssie funkcie a zakazat scanovanie pouzitim pingu, dalsie informacie su uvedene pri parametri +\fB\-P0\fR\&. +.RE +.PP +\fB\-sP\fR (Ping scan) +.RS 4 +Tento parameter zabezpeci, ze sa vykona +\fIlen\fR +ping scan (zistovanie hostitelskych stanic) a potom sa zobrazia dostupne hostitelske stanice, ktore odpovedali na scan\&. Ziadne dalsie testovanie ako scan portov alebo detekcia OS, sa nevykona\&. Je to o krok dotieravejsie ako list scan a casto sa moze pouzit pre rovnake ucely\&. Dovoluje jemne preskumanie cielovej siete bez vzbudenia velkej pozornosti\&. Poznatok o pocte aktivnych hostitelskych stanic je pre utocnikov cennejsi ako zoznam poskytnuty list scanom kazdej IP adresy a nazvu host\&. stanice\&. +.sp +Systemovi administratori tiez casto ocenia tento parameter\&. Moze sa pouzit jednoducho na zistenie poctu dostupnych pocitacov v sieti alebo monitorovanie dostupnosti servera\&. Casto sa to nazyva ping sweep a je spolahlivejsie ako vysielanie pingu broadcastovej adrese, pretoze mnoho hostitelskych stanic neodpoveda na broadcastove poziadavky\&. +.sp +Parameter\fB\-sP\fR +normalne vysle ICMP echo request a TCP paket na port 80\&. Ak je prikaz spusteny neprivilegovanym pouzivatelom, vysle sa na port 80 cielovej stanice SYN paket (pouzitim volania funkcie +\fBconnect()\fR)\&. Ak sa privilegovany pouzivatel pokusa scanovat cielove stanice na lokalnej ethernetovej sieti, pouzivaju sa spravy ARP request (\fB\-PR\fR) , ak nie je explicitne zadany parameter +\fB\-\-send\-ip\fR\&. Parameter\fB\-sP\fR +sa moze kombinovat s akymkolvek z testov zistovania ( parametre +\fB\-P*\fR, s vynimkou +\fB\-P0\fR) kvoli vacsej flexibilite\&. Ak sa pouziju nejake z tychto typov testov a parametrov cisel portov, prepisu sa tym predvolene testy (ACK a echo request)\&. Ak sa medzi zdrojovou host\&. stanicou so spustenym Nmapom a cielovou sietou nachadza nekompromisny firewall, odporuca sa pouzitie tychto pokrocilych technik, inac by mohli hostitelske stanice chybat v pripade, ze firewall vyluci spusteny test alebo odpovede hostitelskych stanic\&. +.RE +.PP +\fB\-P0\fR (Bez pingu) +.RS 4 +Tento parameter kompletne preskoci fazu zistovania\&. Nmap obvykle pouziva tuto fazu na zistenie aktivnych pocitacov pred rozsiahlejsim scanovanim\&. V predvolenom nastaveni vykonava Nmap len intenzivne testovanie ako scanovania portov, detekciu verzie alebo detekciu OS pri zistenych aktivnych hostitelskych staniciach\&. Zakazanie zistovania hostitelskych stanic parametrom +\fB\-P0\fR +sposobi, ze Nmap vykona pozadovanie funkcie scanovania na +\fIkazdej\fR +specifikovanej IP adrese\&. Takze ak je v prikazovom riadku zadany adresovy priestor triedy B (/16), bude sa scanovat vsetkych 65 536 IP adries\&. Druhy znak v parametri +\fB\-P0\fR +je nula a nie pismeno O\&. Riadne zistovanie hostitelskych stanic sa vynecha ako pri list scane, ale namiesto zastavenia a zobrazenia cieloveho zoznamu, Nmap pokracuje vo vykonavani pozadovanych funkcii ako keby bola kazda cielova IP adresa aktivna\&. +.RE +.PP +\fB\-PS [portlist]\fR (Ping TCP SYN ) +.RS 4 +Tento parameter vysiela prazdny TCP paket s nastavenym flagom SYN\&. Predvoleny cielovy port je 80 (konfigurovatelny v case kompilacie zmenou hodnoty premennej DEFAULT_TCP_PROBE_PORT v subore +nmap\&.h), no alternativny port moze byt specifikovany ako parameter\&. Zoznam portov oddeleny ciarkou moze byt dokonca specifikovany za parametrom (napriklad +\fB\-PS22,23,25,80,113,1050,35000\fR), a v tomto pripade sa testy budu vykonavat paralelne pre kazdy port\&. +.sp +SYN flag vyjadruje pre vzdialeny system pokus o nadviazanie spojenia\&. Za normalnych podmienok by bol cielovy port zatvoreny a spat by bol odoslany RST(reset) paket\&. Ak sa port zda byt otvoreny, ciel vysle druhy stupen mechanizmu TCP 3\-way handshake, a teda odpovie SYN/ACK TCP paketom\&. Pocitac so spustenym Nmapom potom zrusi vznikajuce spojenie odpovedanim RST paketom namiesto ACK paketom, ktory by dokoncil uplny mechanizmus 3\-way\-handshake a nadviazal plne spojenie\&. RST paket nie je odoslany Nmapom, ale kernelom pocitaca, na ktorom je spusteny Nmap, ako odpoved na neocakavany paket SYN/ACK\&. +.sp +Nmap sa nestara o to, ci je port otvoreny alebo zatvoreny\&. Odpoved s flagom RST alebo SYN/ACK opisana vyssie prezradi Nmapu, ci je hostitelska stanica dostupna a ci odpoveda\&. +.sp +Na pocitacoch s UNIXom moze vseobecne len privilegovany pouzivatel +root +posielat a prijimat neupravene TCP pakety\&. Pri neprivilegovanych pouzivateloch sa automaticky pouzije systemove volanie funkcie connect() na kazdy cielovy port\&. Ma to za efekt odoslanie SYN paketu cielovej stanici ako pokusu o nadviazanie spojenia\&. Ak funkcia connect() vrati rychlo uspesny vysledok alebo chybu ECONNREFUSED, zakladny TCP stack musel prijat SYN/ACK alebo RST paket a hostitelska stanica je oznacena ako dostupna\&. Ak je pokus o spojenie neukonceny az do dosiahnutia casoveho limitu, hostitelska stanica je oznacena ako nedostupna\&. To sa pouziva aj pre spojenia pre protokol IPv6, kedze podpora neupravenych IPv6 paketov v Nmape este nie je dostupna\&. +.RE +.PP +\fB\-PA [portlist]\fR (Ping TCP ACK) +.RS 4 +Ping TCP ACK je dost podoba na prave rozobraty SYN ping\&. Rozdiel je v tom, ze namiesto SYN flagu je nastaveny ACK flag\&. Takyto ACK paket znaci potvrdenie dat nad vybudovanym TCP spojenim, ale pritom ziadne taketo spojenie neexistuje, takze vzdialene hostitelske stanice by mali vzdy odpovedat RST paketom, cim v tomto procese prezradia svoju existenciu\&. +.sp +Parameter\fB\-PA\fR +pouziva rovnaky predvoleny port ako test SYN (80) a takisto moze spracovat zoznam cielovych portov v rovnakom formate\&. Ak sa o to pokusa neprivilegovany pouzivatel alebo je specifikovany cielova stanica s protokolom IPv6, pouzije sa obvykle systemove volanie funkcie connect(), co nie je bezchybne, pretoze connect() vysiela SYN paket a nie ACK paket\&. +.sp +Pricinou moznosti zvolenia medzi testami SYN a ACK ping je maximalizovat sancu obidenia firewallov\&. Vela administratorov nastavi router a dalsie jednoduche firewally tak, ze blokuju prichadzajuce SYN pakety okrem tych, ktore su urcene pre verejne sluzby ako napr\&. webova stranka spolocnosti alebo postovy server\&. Toto brani pred dalsimi prichodzimi spojeniami k organizacii, zatial co pouzivatelia mozu nadvazovat neobmedzene vychadzajuce spojenia na internet\&. Tento bezstavovy pristup zabera malo systemovych prostriedkov na firewalle alebo routeri a je siroko podporovany v hardwarovych a softwarovych filtroch\&. Linuxovsky firewallovy software Netfilter/iptables ponuka parameter +\fB\-\-syn\fR +na realizaciu tejto bezstavovej metody\&. Ak su zavedene taketo bezstavove pravidla, je mozne, ze testy SYN ping (\fB\-PS\fR) pri zatvorenych cielovych portoch budu blokovane\&. V takychto pripadoch sa velmi zide test ACK, pretoze je schopny prejst tymito pravidlami\&. +.sp +Dalsi bezny typ firewallu pouziva stavove pravidla, ktore odhadzuju neocakavane pakety\&. Tato funkcia bola spociatku implementovana hlavne na high\-endovych firewalloch, hoci sa v poslednych rokoch stala beznejsou\&. Linuxovsky system Netfilter/iptables podporuje tuto funkciu cez parameter +\fB\-\-state\fR, ktory triedi pakety na zaklade stavu spojenia\&. Test SYN bude v takychto podmienkach pravdepodobne fungovat, zatial co ACK pakety budu vseobecne povazovane za falosne a budu zahodene\&. Riesenim tohoto problemu je vykonat oba testy SYN a ACK zadanim parametrov\&. +\fB\-PS\fR +a +\fB\-PA\fR\&. +.RE +.PP +\fB\-PU [portlist]\fR (Ping UDP) +.RS 4 +Dalsou moznostou zistenia hostitelskych stanic je UDP ping, ktory vysiela prazdny UDP paket (v pripade, ze nie je specifikovany parameter +\fB\-\-data\-length\fR +) na dane cielove porty\&. Zoznam portov ma rovnaky format ako pri predtym rozoberanych parametroch +\fB\-PS\fR +a +\fB\-PA\fR\&. Ak nie je specifikovane inac, predvoleny port je 31338, co je mozne zmenit v case kompilacie zmenou premennej DEFAULT_UDP_PROBE_PORT v suborenmap\&.h\&. V predvolenom nastaveni sa pouziva velmi neobvykly port, pretoze odosielanie na otvorene porty je casto nevyziadane v tomto specialnom type scanovania\&. +.sp +Po zisteni zatvoreneho portu na cielovej stanici by mal UDP test vratit spravu ICMP Port unreachable\&. To indikuje Nmapu, ze pocitac je aktivny a dostupny\&. Mnoho dalsich chybovych sprav ICMP ako host/network unreachable alebo TTL exceeeded indikuje neaktivnu alebo nedosiahnutelnu hostitelsku stanicu\&. Touto cestou sa interpretuje aj neobdrzanie ziadnej odpovede\&. Ak sa dosiahne otvoreny port, vacsina sluzieb jednoducho ignoruje prazdny paket a nevratia ziadnu odpoved\&. To je dovod, preco je predvolenym portom testu port 31338, u ktoreho je vysoka pravdepodobnost, ze sa nebude pouzivat\&. Niekolko sluzieb, napr\&. sluzba chargen, odpovie na prazdny UDP paket a takto prezradi Nmapu, ze pocitac je dostupny\&. +.sp +Hlavna vyhoda tohoto typu scanu je, ze obchadza tie firewally a filtre, ktore presetruju len TCP protokol\&. Niekedy som napriklad vlastnil bezdratovy broadbandovy router Linksys BEFW11S4\&. Externe rozhranie tohoto zariadenia filtrovalo vsetky TCP porty v predvolenom nastaveni\&. ale UDP testy stale dokazali zistit spravy port unreachable a takto prezradit zariadenie\&. +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (Typy ICMP Pingu ) +.RS 4 +Okrem neobvyklych, predtym rozoberanych typov TCP a UDP testov, Nmap dokaze odoslat normalne pakety odoslane vsade sa vyskytujucim programom +ping\&. Nmap odosiela paket typu 8(echo request) na cielove IP adresy stanic, ocakavajuc, ze dostupne hostitelske stanice odpovedia spravou typu 0 (Echo Reply)\&. Nanestastie pre sietovych badatelov, mnoho hostitelskych stanic a firewallov v sucasnosti blokuje tieto pakety namiesto odpovede podla normy +\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[3]\d\s+2\&. Z tohoto dovodu su samotne ICMP scany zriedkavo spolahlive pri nasadeni proti neznamym cielovym staniciam na internete, no pre systemovych administratorov monitorujucich vnutornu siet mozu byt praktickou a efektivnou metodou\&. Tato moznost sa povoli zadanim parametra +\fB\-PE\fR\&. +.sp +Aj ked echo request je standardnou poziadavkou ICMP pingu, Nmap pokracuje dalej\&. Standard ICMP (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[4]\d\s+2) takisto specifikuje poziadavky timestamp request, information request a address mask request ako spravy s kodmi 13, 15, a 17\&. Aj ked zdanlivy ucel pre tieto dotazy moze byt ziskanie informacii ako napr\&. masky adresy alebo momentalny cas, mozu byt lahko pouzite na zistovanie hostitelskych stanic\&. System, ktory odpovie, je aktivny a dostupny\&. Nmap v sucanosti neimplementuje poziadavky information request, pretoze nie su siroko podporovane\&. RFC 1122 trva na tom, ze +\(lqhostitelska stanica by NEMALA implementovat tieto spravy\(rq\&. Dotazy na casove razitko a masku adresy mozu byt odoslane parametrami +\fB\-PP\fR +a +\fB\-PM\fR\&. Odpoved timestamp reply (ICMP kod 14) alebo odpoved mask reply (kod 18) prezradi to, ze hostitelska stanica je dostupna\&. Tieto dve dotazy mozu byt cenne, ked administrator specificky zablokuje pakety poziadavky echo request a zabudne pritom, ze na tento ucel sa daju pouzit dalsie ICMP dotazy\&. +.RE +.PP +\fB\-PR\fR (Ping ARP ) +.RS 4 +Jeden z najbeznejsich pouzivatelskych scenarov pouzitia Nmapu je scanovanie lokalnej ethernetovej siete\&. Vo vacsine takychto sieti, hlavne tych pouzivajucich privatne adresove rozsahy podla RFC1918, je vacsina IP adries nepouzivana v lubovolnom casovom okamihu\&. Ak sa Nmap pokusi o odoslanie neupraveneho IP paketu ako napr\&. ICMP echo request, operacny system musi urcit adresu cieloveho zariadenia (ARP) oodpovedajucu cielovej IP adrese, aby sa mohol odoslat ethernetovy ramec s prislusnou adresou\&. Tento proces je casto pomaly a problematicky, pretoze operacne systemy neboli vytvorene s ocakavanim, ze budu musiet v kratkom casovom intervale vykonat miliony ARP dotazov na nedostupne hostitelske stanice\&. +.sp +ARP scan prenechava zodpovednost pri poziadavkach ARP request na Nmap a jeho optimalizovane algoritmy a ak je ziskana spiatocna odpoved, Nmap sa nezaujima o IP ping pakety, pretoze uz vie, ze prislusna hostitelska stanica je aktivna\&. Preto je ARP scan omnoho rychlejsi a spolahlivejsi ako scany zalozene na IP\&. Takto sa to aj bezne vykonava, ked sa scanuju ethernetove hostitelske stanice, ktore Nmap detekuje v lokalnej ethernetovej sieti, a to aj ked su pouzite odlisne typy pingov(napriklad +\fB\-PE\fR +alebo +\fB\-PS\fR)\&. Ak sa chcete predsa vyhnut ARP scanu, pouzite parameter +\fB\-\-send\-ip\fR\&. +.RE +.PP +\fB\-n\fR (Bez prekladu DNS) +.RS 4 +Indikuje Nmapu, aby +\fInikdy\fR +nevykonaval reverzny preklad DNS aktivnych IP adries, ktore najde\&. Kedze DNS je casto pomale, proces sa urychli\&. +.RE +.PP +\fB\-R\fR (DNS preklad pre vsetky cielove stanice) +.RS 4 +Indikuje Nmapu, aby +\fIvzdy\fR +vykonaval reverzny preklad cielovych IP adries\&. Za normalnych podmienok sa to vykonava len ak je pocitac povazovany za aktivny\&. +.RE +.PP +\fB\-\-system\-dns\fR (Pouzit systemovy prekladac DNS) +.RS 4 +V predvolenom nastaveni preklada Nmap IP adresy tak, ze odosiela dotazy priamo DNS serverom nastavenym v lokalnej host\&. stanici a potom caka na odpovede\&. Vela dotazov (casto tucty) sa vykonava paralelne kvoli vykonu\&. Specifikovanim toho parametra sa namiesto toho pouzije systemovy prekladac\&. (jedna IP adresa sucasne prostrednictvom volania getnameinfo())\&. Je to pomalsie a malokedy pouzivane \-\- v pripade, ze sa v DNS kode Nmapu vyskytuje chyba, kontaktujte nas prosim\&. Systemovy prekladac sa vzdy pouziva pre scany IPv6 protokolu\&. +.RE +.PP +\fB\-\-dns\-servers <server1[,server2],\&.\&.\&.> \fR (Servery, ktore sa maju pouzit pre reverzne DNS dotazy) +.RS 4 +Za normalnych okolnosti sa Nmap pokusi urcit DNS servery z konfiguracneho suboru (UNIX) alebo registrov (Win32) lokalneho pocitaca, avsak alternativne je mozne pouzit tuto moznost na zadanie vlastnych serverov\&. Tento parameter sa nedodrzuje, pri pouziti parametra +\fB\-\-system\-dns\fR +alebo scanu protokolu IPv6\&. Pouzitie viacerych DNS serverov je casto rychlejsie ako odoslanie dotazov na jeden server\&. +.RE +.SH "ZAKLADY SCANOVANIA PORTOV" +.PP +Aj ked Nmap ziskal rokmi vacsiu funkcionalitu, zacinal ako efektivny scanovac portov a to aj zostava jeho hlavnou funkciou\&. Jednoduchy prikaz +\fBnmap \fR\fB\fItarget\fR\fR +scanuje viac ako 1660 TCP portov cielovej stanice +\fItarget\fR\&. Zatial co mnoho scanovacov portov tradicne deli vsetky porty na otvorene alebo zatvorene, Nmap pouziva granularnejsi pristup\&. Deli porty do 6 stavov: +otvoreny, +zatvoreny, +filtrovany, +nefiltrovany, +otvoreny|filtrovany, alebo +zatvoreny|filtrovany\&. +.PP +Tieto stavy nie su pravymi vlastnostami samotneho portu, ale opisuju, ako ich vidi Nmap\&. Napriklad ak scan z tej istej siete, v akej sa nachadza cielova stanica moze odhalit port 135/tcp ako otvoreny, kym scan v rovnakom case a parametrami z internetu mozu odhalit, ze port je +filtrovany\&. +.PP +\fBSest stavov portov rozpoznavanych Nmapom\fR +.PP +otvoreny +.RS 4 +Aplikacia na tomto porte aktivne prijima TCP spojenia alebo UDP pakety\&. Zistenie tohoto faktu je casto hlavnym cielom scanovania portov\&. Ludia s bezpecnostou v mysli vedia, ze kazdy otvoreny port je pristupom pre utok\&. Utocnici a testeri preniknutia chcu vyuzivat otvorene porty, zatial co administratori sa pokusaju zatvorit ich alebo chranit ich firewallmi bez limitovania opravnenych pouzivatelov\&. Otvorene porty su zaujimave aj pre nebezpecnostne scany, pretoze ukazuju sluzby dostupne v sieti\&. +.RE +.PP +zatvoreny +.RS 4 +Zatvoreny port je pristupny (prijima a odpoveda na pakety testu vykonavaneho Nmapom), ale ziadna aplikacia na nom nepocuva\&. Mozu sa zist pri zistovani ci je hostitelska stanica aktivna na IP adrese (zistenie hostitelskej stanice alebo ping scan) a ako cast detekcie OS\&. Pretoze zatvorene porty su dosiahnutelne, moze byt uzitocne vykonat neskorsi scan a niektore mozu byt neskor otvorene\&. Administratori mozu uvazovat o blokovani takychto portov prostrednictvom firewallu\&. Tie by sa potom objavili vo filtrovanom stave, ktory je rozobrany nizsie\&. +.RE +.PP +filtrovany +.RS 4 +Nmap nedokaze urcite, ci je port otvoreny, pretoze filtrovanie paketov zabranuje testom dosiahnut tento port\&. Filtrovanie moze pochadzat z osobitneho firewalloveho zariadenia, pravidiel routera alebo hostitelskeho softwaroveho firewallu\&. Tieto porty frustruju utocnikov, pretoze poskytuju malo informacii\&. Niekedy odpovedia chybovou spravou ICMP ako napriklad typ 3, kod 13 (destination unreachable: communication administratively prohibited), ale filtre, ktore jednoducho zahodia test bez odpovede su ovela beznejsie\&. Tento jav prinuti Nmap zopakovat pokus niekolkokrat kvoli moznemu pripadu, ze test bol zahodeny kvoli zahlteniu siete\&. Toto dramaticky spomaluje scan\&. +.RE +.PP +nefiltrovany +.RS 4 +Nefiltrovany stav znamena, ze port je pristupny, ale Nmap nedokaze urcite, ci je otvoreny alebo zatvoreny\&. Len ACK scan, pouzivany na zmapovanie pravidiel firewallu, klasifikuje porty do tohoto stavu\&. Scanovanie nefiltrovanych portov inymi typmi scanu ako napr\&. Window scan, SYN scan alebo FIN scan, moze pomoct rozlustit, ci je port otvoreny\&. +.RE +.PP +otvoreny|filtrovany +.RS 4 +Nmap charakterizuje porty tymto stavom, ak nedokaze urcit, ci je port otvoreny alebo filtrovany\&. K tomu dochadza pri typoch scanov portov, kde otvorene porty neposkytuju odpoved, co moze tiez znamenat, ze paketovy filter zahodil test alebo vyvolanu odpoved, takze Nmap nedokaze naisto urcit, ci je port otvoreny alebo filtrovany\&. Protokoly UDP,IP a scany FIN, Null a Xmas vykonavaju takuto klasifikaciu portov\&. +.RE +.PP +zatvoreny|filtrovany +.RS 4 +Tento stav je pouzity, ked Nmap nedokaze urcit ci je port zatvoreny alebo filtrovany\&. Pouziva sa len pri scane typu IPID Idle\&. +.RE +.SH "SPOSOBY SCANOVANIA PORTOV" +.PP +Ako novacik pokusajuci sa opravit auto, mozem sa trapit dlhe hodiny, aby som nasiel vhodne zakladne naradie (kladivo, lepiaca paska, kluc, atd) na danu ulohu\&. Ked sa uz citim utrapene a odtiahnem svoj vrak ku naozajstnemu mechanikovi, ten stale obchadza auto s velkou debnou naradia, az kym nevylovi tu vecicku co z prace urobi hracku\&. Podobne je aj umenie scanovania\&. Experti ovladaju kopu metod scanovania a zvolia prislusnu (alebo kombinaciu) pre danu ulohu\&. Na druhej strane neskuseni pouzivatelia a rychlokvaseni majstri v praci so skriptom budu riesit kazdy problem predvolenym SYN scanom\&. Kedze Nmap je zadarmo, jedinou barierou pred majstrovstvom v scanovani portov je vedomost, co urcite poraza svet automobilov, kde zistenie potreby pruzinoveho kompresora stale vyzadujuce zaplatit zan tisice dolarov, moze vyzadovat velke zrucnosti\&. +.PP +Vacsina typov scanov je dostupna len pre privilegovanych pouzivatelov, z toho dovodu, ze posielaju a prijimaju neupravene pakety, co si na UNIXovych systemoch vyzaduje pristup roota\&. Na platforme Windows sa odporuca administratorsky ucet, hoci po nahrati kniznice WinPcap do OS funguje niekedy Nmap aj pre neprivilegovanych pouzivatelov\&. V roku 1997 po vydani Nmapu bola otazka privilegii roota dost vaznym obmedzenim, kedze mnohi pouzivatelia mali pristup len ku shared shell uctu\&. Svet sa vsak zmenil\&. Pocitace su lacnejsie, ovela viac ludi ma teraz neprestajny priamy pristup na internet a UNIXove systemy pre desktop (vratane Linuxu a MAC OS X) su rozsirene\&. Dostupna je aj verzia Nmapu pre Windows, co dovoluje spustit program na este viac desktopoch\&. Z tychto vsetkych dovodov nemaju pouzivatelia taku potrebu spustat Nmap z obmedzenych shared shell uctov\&. To je stastne, pretoze parametre vyzadajuce privilegia robia z Nmapu ovela mocnejsi a flexibilnejsi nastroj\&. +.PP +Nmap sa sice pokusa produkovat presne vysledky, ale je dolezite si uvedomovat, ze vsetko jeho chapania problemu su zalozene na paketoch odoslanych cielovymi pocitacmi alebo firewallmi pred nimi\&. Taketo hostitelske stanice mozu byt nedoveryhodne a posielat zamerne matuce odpovede a uviest Nmap do omylu\&. Ovela beznejsie su vsak hostitelske stanice nevyhovujuce standardu RFC, ktore neodpovedaju na testy Nmapom tak ako by mali\&. Specialne nachylne na tento problem su scany typu FIN, Null a Xmas\&. Taketo potiaze su specificke pre iste typy scanov a su rozobrate v zaznamoch o jednotlivych typoch scanov\&. +.PP +Tento cast dokumentuje asi tucet metod scanovania portov podporovanych Nmapom\&. Len jedna metoda moze byt pouzita sucasne, s vynimkou UDP scanu (\fB\-sU\fR), ktory moze byt kombinovany s lubovolnym dalsim TCP scanom\&. Ako pomocka pre pamat, parametre typu scanovania portov su vo formate +\fB\-s\fR\fB\fIC\fR\fR, kde +\fIC\fR +predstavuje hlavny znak v nazve scanu, obycajne ten prvy\&. Vynimkou je uz odmietnuty FTP bounce scan (\fB\-b\fR)\&. V predvolenom nastaveni vykonava Nmap SYN scan, hoci ak pouzivatel nema dostatocne privilegia alebo ciele IPv6 neboli specifikovane, nahradzuje ho volanim Connect(), aby sa mohli odoslat neupravene pakety (to vyzaduje pristup roota na UNIXovych pocitacoch)\&. Zo vsetkych spomenutych scanov mozu pouzivatelia bez privilegii spustit len scany connect() a ftp bounce\&. +.PP +\fB\-sS\fR (Scan TCP SYN ) +.RS 4 +SYN scan je predvolenym a najoblubenejsim typom scanu a to z dobrych dovodov\&. Dokaze byt vykonany rychlo, scanujuc tisicky portov za sekundu tam, kde je rychla siet bez obmedzeni dotieravych firewallov\&. SYN scan je relativne nenapadny a tajny, pretoze nikdy nedokonci fazu nadvazovania TCP spojeni\&. Funguje aj proti akymkolvek TCP stackom a nezavisi teda na svojraznostiach konkretnych platform ako dalsie Nmapovske scany Fin, Null, Xmas, Maimon a Idle\&. Umoznuje takisto ciste a spolahlive rozlisenie medzi +otvorenymi, +zatvorenymi +a +filtrovanymi +stavmi\&. +.sp +Na tuto metodu sa casto odkazuje ako na polootvorene scanovanie,pretoze nie je potrebne otvarat plne TCP spojenie\&. Odosle sa SYN paket ako keby sa nadvazovalo skutocne spojenie a potom sa caka na spojenie\&. Prichodzi SYN/ACK paket indikuje, ze port nacuva (je otvoreny), kym RST (reset) naznacuje, ze port nenacuva\&. Ak sa neodosle ziadna odpoved ani po niekolkych retransmisiach, port sa oznaci ako filtrovany\&. Taketo oznacenie sa pouzije, aj ked pride chybova sprava ICMP unreachable error (typ 3, kody 1,2, 3, 9, 10, alebo 13)\&. +.RE +.PP +\fB\-sT\fR (Scan TCP connect()) +.RS 4 +Scan TCP Connect() je predvolenym typom TCP scanu, ak SYN scan nepatri medzi moznosti\&. K tomu dochadza, ak pouzivatel nema privilegia na odosielanie neupravenych paketov, alebo pri scanovani sieti s protokolom IPv6\&. Nmap namiesto vytvorenia neupravenych paketov, ako pri vacsine dalsich scanov, poziada operacny system o vytvorenie spojenia s cielovou stanicou a portom pomocou systemoveho volania +connect()\&. Je to presne to iste volanie na vyssej urovni k vytvoreniu spojenia, ktore vyuzivaju webove prehliadace, klienti P2P a vacsina dalsich aplikacii vyuzivajucich siet a tvori cast programoveho rozhrania znameneho pod menom Berkeley Sockets API\&. Namiesto prijimania a spracovavania neupravenych odpovedi po sieti, Nmap pri kazdom pokuse o spojenie pouziva toto rozhranie API na ziskanie informacii o stave\&. +.sp +Ak je dostupny SYN scan, je obycajne lepsou volbou\&. Nmap ma mensiu kontrolu nad vysokourovnovym volanim +connect() +ako nad neupravenymi paketmi, co sposobuje horsiu efektivnost\&.Systemove volanie dokoncuje nadvazovanie spojeni k otvorenym portom cieloveho hostitela namiesto vykonania polootvoreneho resetu, ktory vykonava SYN scan\&. Tento postup nielenze trva dlhsie, ale takisto vyzaduje viac paketov na ziskanie tych istych informacii a cielove pocitace budu spojenie pravdepodobne zaznamenavat do logu\&. Poriadny IDS to sice tiez zachyti, ale vacsina pocitacov nema takyto system\&. Ked sa Nmap pripoji a potom zavrie spojenia bez odoslania dat, vacsina sluzieb na priemernom UNIXovom system prida poznamku do syslogu\&. Niektore fakt ubohe sluzby mozu pritom spadnut, ale to je nezvycajne\&. Administrator, ktory vidi v logu niekolko pokusov o spojenie od jedneho systemu by mal vediet, ze bol scannovany s ohladom na nadviazanie spojenia\&. +.RE +.PP +\fB\-sU\fR (UDP scany) +.RS 4 +Zatial co vacsina oblubenych sluzieb na internete funguje na TCP protokole, +\m[blue]\fBUDP\fR\m[]\&\s-2\u[5]\d\s+2 +sluzby su tiez siroko nasadzovane\&. Tri najbeznejsie z nich su DNS, SNMP a DHCP (registrovane porty 53, 161/162 a 67/68)\&. Pretoze scanovanie UDP je vseobecne pomalsie a narocnejsie ako TCP, niektori spravcovia bezpecnosti si nevsimaju tieto porty a to je chyba, lebo zneuzitelne UDP sluzby su celkom bezne a utocnici iste nebudu ignorovat cely protokol\&. Nastastie, Nmap dokaze pomoct urobit supis tychto UDP portov\&. +.sp +UDP scan je mozne spustit parametrom +\fB\-sU\fR\&. Moze sa kombinovat s TCP scanom ako napr\&. SYN scan (\fB\-sS\fR) a tak sa mozu skontrolovat oba protokoly pocas jedneho spustenia\&. +.sp +UDP scan funguje tak, ze odosle kazdemu cielovemu portu prazdnu hlavicku UDP header bez dat\&. Ak sa vrati chybova sprava ICMP port unreachable error (typ 3, kod 3) port je +zatvoreny\&. Ostatne chybove spravy ICMP (typ 3, kody 1, 2, 9, 10 alebo 13) oznacuju port ako +filtrovany\&. Prilezitostne moze sluzba odpovedat UDP paketom a tym dokaze, ze port je +otvoreny\&. Ak sa po opakovanych retransmisiach neobjavi ziadna odpoved, port je oznaceny ako +otvoreny|filtrovany\&. To znamena, ze port by mohol byt otvoreny alebo mozno paketove filtre blokuju komunikaciu\&. Na pomoc pri odliseni otvorenych a filtrovanych portov sa moze pouzit parameter (\fB\-sV\fR)\&. +.sp +Velkou vyzvou pre scanovanie UDP je rychlost\&. Otvorene a filtrovane porty malokedy posielaju odpoved a tak pre vyprsi casovy limit, co vyusti v dalsie retransmisie pre pripad, ze sa test alebo odpoved mohli v sieti stratit\&. Zatvorene porty su casto vacsim problemom\&. Obycajne odosielaju spat chybovu spravu ICMP port unreachable error, no na rozdiel od RST paketov odosielanych zatvorenymi TCP portmi ako odpoved na SYN alebo Connect scan, , mnoho hostitelskych stanic standardne pouziva limit takychto odoslanych chybovych sprav\&. Specialne prisne na tento fakt su Linux a Solaris\&. Napriklad linuxove jadro 2\&.4\&.20 dava obmedzenie na spravy typu destination unreachable v pocte jedna sprava za sekundu (v subore +net/ipv4/icmp\&.c)\&. +.sp +Nmap detekuje obmedzenie v pocte a podla toho sa spomali, aby sa vyhol zaplaveniu siete nepotrebnymi paketmi, ktore by cielova stanica zahodila\&. Linuxovske obmedzenie 1 paket za sekundu nanestastie sposobuje, ze by scan 65536 portov trval 18 hodin\&. Napady ako tento proces urychlit su napr\&.scanovanie viacerych hostov sucasne , vykonat najprv rychly scan popularnych portov, scanovat spoza firewallu alebo pouzitie parametru +\fB\-\-host\-timeout\fR +na preskocenie pomalych hostitelskych stanic\&. +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP Null, FIN a Xmas scany) +.RS 4 +Tieto tri typy scanov (dalsie sa daju vykonat pouzitim parametra +\fB\-\-scanflags\fR +su opisane v dalsej casti) vyuzivaju malu dieru v standarde +\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[6]\d\s+2, aby rozlisili medziotvorenymi +a +zatvorenymi +portmi\&. Na strane sa 65 hovori, ze +\(lqak je [cielovy] port zatvoreny\&.\&.\&.\&. prichadzajuci segment, ktory neobsahuje flag RST sposobi, ze sa ako odpoved odosle RST segment\&.\(rq +Dalsia strana potom rozobera pakety odosielane na otvorene porty bez nastavenych bitov SYN, RST ani ACK a tvrdi: +\(lqje nepravdepodobne, ze sa dostanete do tejto situacie, ale ak k nej dojde, zahodte segment a vratte sa\&.\(rq +.sp +Ak sa scanuju systemy zodpovedajuce tomuto textu RFC, lubovolny paket neobsahujuci nastavene bity SYN, RST ani ACK vyvola odpoved s RST bitom, ak bol port zatvoreny a ziadnu odpoved, ak je port zatvoreny\&. Pokial nie su zahrnute ziadne z tychto troch bitov, je v poriadku lubovolna kombinacia flagov (FIN, PSH a URG)\&. Nmap ich vyuziva pomocou tychto troch typov scanov: +.PP +Null scan (\fB\-sN\fR) +.RS 4 +Nenastavuje ziadne bity(tcp flag header je nastaveny na 0) +.RE +.PP +FIN scan (\fB\-sF\fR) +.RS 4 +Nastavi len bit TCP FIN\&. +.RE +.PP +Xmas scan (\fB\-sX\fR) +.RS 4 +Nastavi flagy FIN, PSH a URG, cim sa paket "rozsvieti" ako Vianocny stromcek\&. +.RE +.sp +Tieto tri typy scanov maju rovnake spravanie az na to nastavenie TCP flagov\&. Ak dojde ako odpoved RST paket, port sa povazuje za +zatvoreny, kym ziadna odpoved znaci +otvoreny|filtrovany\&. Port sa oznaci ako +filtrovany +ak dorazi chybova sprava ICMP unreachable (typ 3, kod 1, 2, 3, 9, 10 alebo 13)\&. +.sp +Klucovou vyhodou tychto typov scanov je, ze sa dokazu pretlacit cez iste bezstavove firewally a routre s filtrovanim paketov\&. Okrem toho su este viac tajnejsie ako SYN scan, no neda sa na to spoliehat \-\- vacsina modernych IDS sa da nastavit tak, aby ich detekovala\&. Velkou nevyhodou je, ze cely rad systemov sa nedrzi do pismena standardu RFC 793, posielaju odpovede RST bez ohladu na to, ci je port otvoreny alebo zatvoreny\&. Preto su vsetky taketo porty oznacovane ako +closed\&. Hlavne operacne systemy s takymto spravanim su Microsoft Windows, mnohe zariadenia Cisco , BSDI a IBM OS/400\&. Tento scan vsak funguje na mnohe UNIXovske systemy\&. Dalsim hacikom tychto scanov je, ze nedokazu rozlisit +otvorene +porty od istychfiltrovanych, takze vyvolaju odpoved +otvoreny|filtrovany\&. +.RE +.PP +\fB\-sA\fR (Scan TCP ACK) +.RS 4 +Tento scan sa lisi od ostatnych doposial rozoberanych v tom, ze nikdy neurcuje porty v stave +otvoreny +(dokonca ani +otvoreny|filtrovany)\&. Pouziva sa na zmapovanie sad pravidiel firewallu, ci su stavove alebo bezstavove a ktore porty su filtrovane\&. +.sp +Testovaci ACK Paket ma nastaveny len ACK flag (ak nie je pouzity parameter +\fB\-\-scanflags\fR)\&. Ak sa scanuju nefiltrovane systemy, stavy portov +otvoreny +a +zatvoreny +vratia zhodny RST paket\&. Nmap ich potom oznaci ako +nefiltrovane, co znamena, ze su dostupne pomocou ACK paketu , ale nie je rozpoznane, ci su +otvorene +alebo +zatvorene\&. Porty, ktore neodpovedia ci odoslu spat nejaku chybovu spravu ICMP (typ 3, kod 1,2,3,9,10 alebo 13) su oznacene ako +filtrovane\&. +.RE +.PP +\fB\-sW\fR (Scan TCP Window) +.RS 4 +Window scan je presne taky isty ako ACK scan az na to, ze vyuziva implementacne detaily istych systemov na rozlisenie otvorenych a zatvorenych portov, namiesto prosteho vypisu +nefiltrovany +po navrate RST paketu\&. Realizuje sa to preskumanim polozky RST paketu s nazvom TCP Window\&. Na niektorych systemoch pouzivaju otvorene porty kladnu velkost okienka, dokonca aj pre RST pakety, kym, zatvorene porty maju nulovu velkost okienka, takze namiesto vypisu stavu portu ako +nefiltrovany +Window scan zobrazi port v staveotvoreny +alebo +zatvoreny +podla velkosti okienka (kladna resp\&. nulova)\&. +.sp +Tento typ scanu sa spolieha na implementacny detail mensiny systemov na internete, takze mu nie je mozne vzdy doverovat\&. Systemy ktore to nepodporuju obycajne vratia vsetky porty v stave +zatvoreny\&. Je samozrejme mozne, ze pocitac nema ziadne otvorene porty\&. Ak je vacsina scanovanych portov +zatvorena, ale niekolko beznych portov (napr\&. 22, 25, 53) je v stave +filtrovany +system je pravdepodobne nachylny na tento scan\&. Zriedkavo mozu systemy vykazat presne opacne spravanie\&. Ak je scan ukaze, ze je 1000 otvorenych portov a 3 zatvorene alebo filtrovane , tieto tri porty mozu byt pokojne tie otvorene\&. +.RE +.PP +\fB\-sM\fR (Scan TCP Maimon) +.RS 4 +Maimon scan je pomenovany po svojom objavitelovi, Urielovi Maimonovi\&. Tuto techniku opisal v casopise Phrack, vydanie #49 (November 1996) Nmap s touto metodou bol vydany o dve vydania neskor\&. Metoda funguje presne ako scany Null, FIN a Xmas, ale test je typu FIN/ACK\&. Podla standardu RFC 793 (TCP), RST paket by mal byt generovany ako odpoved na tento test bez ohladu na otvoreny alebo zatvoreny port\&. Uriel vsak spozoroval, ze mnohe systemy odvodene od BSD jednoducho zahodia paket, ak je port otvoreny\&. +.RE +.PP +\fB\-\-scanflags\fR (Vlastny TCP scan) +.RS 4 +Naozaj pokrocili pouzivatelia Nmapu sa nemusia obmedzovat len na vopred ponuknute type scanov\&. Parameter +\fB\-\-scanflags\fR +vzdy umozni zadanim lubovolnych TCP flagov vytvorit vlastny scan\&. Neobmedzujte svoju kreativitu pri vyhybani sa systemom IDS, ktorych vyrobcovia jednoducho prelisovali manual k Nmapu a pridali specificke pravidla\&. +.sp +Argumentom parametru\fB\-\-scanflags\fR +moze byt hodnota cisla flagu ako napr\&. 9 (PSH a FIN), no je jednoduchsie pouzivat nazvy, staci zlepit dokopy lubovolnu kombinaciu flagov +URG, +ACK, +PSH, +RST, +SYN +a +FIN\&. Napriklad +\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR +nastavi vsetko, hoci to nie je prilis uzitocne pre scanovanie\&. Poradie nazvov nie je dolezite\&. +.sp +Okrem specifikovanie ziadanych flagov je mozne zadat typ TCP scanu (napriklad\fB\-sA\fR +alebo +\fB\-sF\fR), co Nmapu napovie ako interpretovat odpovede\&. Napriklad SYN scan povazuje absenciu odpovede za port so stavom +filtrovany, kym FIN scan odpovie na rovnaku situaciu +otvoreny|filtrovany\&. Nmap bude postupovat presne tak ako pri zakladnych typoch scanu, no pouzije TCP flagy, ktore budu zadane\&. Ak nie je zadany zakladny typ scanu, pouzije sa SYN scan\&. +.RE +.PP +\fB\-sI <zombie host[:probeport]>\fR (Scan naprazdno \- Idlescan) +.RS 4 +Tato pokrocila metoda umoznuje naozaj slepy scan portov cielovej stanice s tym, ze z lokalnej skutocnej IP adresy nie su odosielane ziadne pakety\&. Namiesto toho sa pouzije utok po bocnom kanale, ktory vyuziva delenie na IP fragmenty a predpovedatelne tvorenie sekvencie ID cisel na zombie hostitelovi\&. Tym sa zhromazduju informacie o otvorenych portoch na cielovom pocitaci\&. IDS systemy zobrazia, ze scan pochadza z pocitaca zombie, ktory bol specifikovany, musi byt samozrejme aktivny a splnat urcite kriteria\&. Tento fascinujuci typ scanu je prilis zlozity na plny popis v tejto prirucke, takze som uplne detaily popisal neformalnym sposobom a ulozil na adresu +\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&. +.sp +Okrem toho, ze tento scan je vynimocne nenapadny (kvoli svojej slepej povahe), umoznuje zmapovat doveryhodne vztahy medzi pocitacmi zalozene na IP adrese\&. Zoznam portov zobrazuje otvorene porty +\fIz pohladu zombie hostitela\&.\fR +Takze je mozne pokusit sa o scan cielovej stanice pouzitim roznych zombie pocitacov, o ktorych si myslite, ze su doveryhodne (pomocou pravidiel routra alebo paketoveho filtra)\&. +.sp +Ak sa ma na strane zombie pocitaca testovat specificky port kvoli zmenam hodnoty IPID, pridajte dvojbodku nasledovanu cislom portu\&. Inak Nmap pouzije povodny port urceny na tcp pingovanie \- 80\&. +.RE +.PP +\fB\-sO\fR (Scan protokolu IP) +.RS 4 +Scan protokolu IP umoznuje urcite, ktore protokoly IP (TCP, ICMP, IGMP, atd\&.) su podporovane cielovymi pocitacmi\&. Technicky to nie je scan portov, pretoze prebieha roznymi cislami protokolov IP a nie cislami portov protokolov TCP a UDP\&. Aj napriek tomu pouziva parameter +\fB\-p\fR +na vyber scanovanych cisel protokolov, oznamuje vysledky v normalnom formate tabulky portov a dokonca pouziva ten isty mechanizmus scanu ako prave metody scanovania portov, takze je dost blizko scanovaniu portov, a preto patri sem\&. +.sp +Okrem toho, ze je uzitocny vo vlastnom zmysle, scan protokolov demonstruje silu open\-source softwaru\&. Zatial co zakladna myslienka je dost jednoducha, nerozmyslal som nad jej pridanim ani som nedostal poziadavky o takuto funkcionalitu\&. Potom vsak v lete roku 2000 dostal Gerhard Rieger tento napad, napisal excelentny patch, ktory to implementoval a poslal ho do mailing listu skupiny hackerov nmapu\&. Tento patch som vlozil do stromu Nmapu a na dalsi den vydal novu verziu\&. Len malo zastupcov komercneho softwaru ma nadsenych uzivatelov, ktori vytvaraju a prispievaju svojimi vylepseniami\&. +.sp +Scan protokolu funguje podobne ako UDP scan\&. Namiesto iterovania cez cisla portov v policku UDP paketu vysiela Nmap hlavicky IP paketu a iteruje cez 8\-bitove policko IP protokolu\&. Hlavicky su zvycajne prazdne, neobsahuju data a ani patricnu hlavicku pre vyhlaseny protokol\&. Troma vynimkami su protokoly TCP, UDP a ICMP\&. Tu je patricna hlavicka protokolu zahrnuta, pretoze niektore systemy ich inak neodoslu a pretoze uz Nmap obsahuje funkcie na ich vytvorenie\&. Namiesto pozorovania sprav ICMP port unreachable protocol sa scan zaujima o spravy ICMP +\fIprotocol\fR +unreachable\&. Ak Nmap prijme od cieloveho hostitela akukolvek odpoved akehokolvek protokolu, Nmap oznaci protokol ako +otvoreny\&. Chybova sprava ICMP protocol unreachable(typ 3, kod 2) sposobi, ze sa protokol oznaci ako +zatvoreny +Dalsie chybove spravy ICMP unreachable (typ 3, kod 1, 3, 9, 10 alebo 13) sposobia stav protokolu ako +filtrovany +(hoci v rovnakom momente dokazuju, ze je +otvoreny)\&. Ak sa neobdrzi ziadna odpoved po retransmisiach, protokol sa oznaci ako +otvoreny|filtrovany\&. +.RE +.PP +\fB\-b <ftp relay host>\fR (FTP bounce scan) +.RS 4 +Zaujimavou funkciou protokolu FTP (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[7]\d\s+2) je podpora takzvanych proxy ftp spojeni, co umoznuje pouzivatelovi pripojit sa k jednemu FTP serveru a potom ziadat o to, aby sa subory posielali serveru tretej strany\&. Tato vlastnost je priam idealna pre zneuzitie na mnohych urovniach , takze mnohe servery ju prestali podporovat\&. Jednym z tychto zneuziti tejto funkcie je vyvolanie situacie, kde FTP server scanuje porty dalsich hostitelskych stanic\&. Je mozne zaradom jednoducho poziadat FTP server o zaslatie subor na kazdy zaujimavy port cieloveho hostitela\&. Chybova sprava opise, ci je port otvoreny alebo nie\&. To je dobry sposob ako obist firewally, pretoze FTP servery organizacii su casto umiestnovane tam, kde maju vacsi pristup k vnutornym hostitelskym staniciam ako kazda ina stanica na internete\&. Nmap podporuje ftp bounce scan pomocou parametra +\fB\-b\fR\&. Ako argumenty pouziva +\fIpouzivatelske meno\fR:\fIheslo\fR@\fIserver\fR:\fIport\fR\&. +\fIServer\fR +je nazvom IP adresy zranitelneho FTP servera\&. Tak ako aj pri normalnej URL adrese, aj tu sa moze vynechat +\fIpouzivatelske meno\fR:\fIheslo\fR, pricom sa pouziju anonymne prihlasovacie udaje (pouzivatel: +anonymous +heslo:\-wwwuser@)\&. Cislo portu (a predchadzajuca dvojbodka ) mozu byt vynechane tiez, pricom sa vtedy pouzije povodny FTP port (21) na +\fIserveri\fR\&. +.sp +Tato zranitelnost bola siroko rozsirena v roku 1997, ked bol Nmap vydany, no bola do velkej miery opravena\&. Zranitelne servery su stale naokolo, takze stoji to za to vyskusat ich\&. Ak je cielom obist firewall, je mozne scanovat cielovu siet s cielovym portom 21 (alebo aj akekolvek ftp sluzby ak sa scanuju vsetky porty s detekciou verzie) a potom vyskusat spustit scan bounce scan ftp\&. Nmap prezradi, ci je hostitelska stanica zranitelna alebo nie\&. Ak sa pokusate len zakryt svoje stopy, nie je nevyhnutne (a v skutocnosti by sa ani nemalo) obmedzovat sa na hostitelske stanice v cielovej sieti\&. Pred scanovanim nahodnych internetovych adries na zistenie zranitelnych FTP serverov zoberte do uvahy, ze systemovym administratorom sa nemusi pacit zneuzitie ich serverov takymto sposobom\&. +.RE +.SH "SPECIFIKACIA PORTU A PORADIE SCANOV" +.PP +Okrem vyssie rozoberanych scanov ponuka Nmap moznosti na specifikaciu scanovanych portov a ci ma byt poradie scanov nahodne alebo sekvencne\&. V predvolenom nastaveni scanuje Nmap vsetky porty do a vratane 1024 tak ako aj vyssie cisla portov zobrazenych pre scanovane protokoly v subore +nmap\-services\&. +.PP +\fB\-p <port ranges>\fR (Scanovat len specifikovane porty) +.RS 4 +Tento parameter specifikuje, ktore porty sa maju scanovat a prepise povodne nastavenie\&. Mozu byt pouzite jednotlive cisla portov, ako aj rozsahy oddelene spojovnikom, napr\&. 1\-1023\&. Zaciatocne a konecne hodnoty rozsahu mozu byt vynechane, cim budu Nmapom pouzite hodnoty 1 resp\&. 65535\&. Je teda mozne specifikovat parameter +\fB\-p\-\fR +cim sa budu scanovat porty od 1 po 65535\&. Po explicitnom specifikovani je mozne scanovat aj port 0\&. Pri scanovani protokolu IP ,(\fB\-sO\fR), tento parameter specifikuje cisla protokolov, ktore sa maju scanovat (0\-255)\&. +.sp +Ak sa scanuju TCP aj UDP porty, mozete prislusny protokol charakterizovat pismenami +T: +alebo +U: +predchadzajucimi cislo portu\&. Toto pismeno plati az kym nespecifikujete dalsie pismeno\&. Napriklad argument +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +bude scanovat UDP porty 53,111 a 137 a takisto spomenute TCP porty\&. Na to, aby sa scanovali TCP aj UDP, je potrebne zadat parameter +\fB\-sU\fR +a aspon jeden typ TCP scanu (napriklad +\fB\-sS\fR, +\fB\-sF\fR +alebo +\fB\-sT\fR)\&. Ak nie je zadane ziadne urcujuce pismeno, cisla portov su pridane do zoznamu vsetkych protokolov\&. +.RE +.PP +\fB\-F\fR (Rychly scan s limitovanym poctom portov) +.RS 4 +Udava, ze je nutne scanovat len porty uvedene v subore +nmap\-services +ktory je dodavany spolu s Nmapom(alebo subor s protokolmi pomocou parametra +\fB\-sO\fR)\&. Tento sposob je ovela rychlejsi ako scannovanie vsetkych 655535 portov na hostitelskej stanici\&. Pretoze tento zoznam obsahuje viac ako TCP portov, nie je tu vyrazny rozdiel oproti povodnemu TCP scanu s okolo 1650 portmi\&. Rozdiel je dramaticky, ak specifikujete svoj vlastny maly subor +nmap\-services +pouzitim parametru +\fB\-\-datadir\fR\&. +.RE +.PP +\fB\-r\fR (Nevyberat porty nahodne) +.RS 4 +V predvolenom nastaveni vybera Nmap poradie scanovanych portov nahodne (okrem toho, ze iste vseobecne pristupne porty su z dovodov efektivnosti na zaciatok)\&. Tento proces randomizacie je za normalnych okolnosti ziadany, ale parametrom +\fB\-r\fR +je mozne specifikovat sekvencne scanovanie portov\&. +.RE +.SH "DETEKCIA SLUZBY A VERZIE" +.PP +Pouzite Nmap na vzdialeny pocitac a ten potom moze prezradit, ze porty 25/tcp, 80/tcp a 53/udp su otvorene\&. Pouzitim svojej databazy +nmap\-services +s obsahom okolo 2,200 znamych sluzieb, by dokazal Nmap oznamit, ze tieto porty pravdepodobne patria postovemu serveru (SMTP) webovemu serveru (HTTP) a DNS serveru (DNS)\&. Toto vyhladanie je obycajne presne \- drviva vacsina daemonov nacuvajucich na TCP porte 25 su v skutocnosti postove servery, no urcite sa na tomto neda stavit bezpecnost, ludia mozu mat spustene sluzby na zvlastnych portoch\&. +.PP +Aj ked ma Nmap pravdu a hypoteticky server ma spustene servery SMTP, HTTP a DNS, neznamena to vela informacii\&. Ked vykonavate odhady zranitelnosti alebo hoci aj jednoduche supisy siete vasich firiem alebo klientov, chcete naozaj vediet aj to, ake mailove a DNS servery a ich verzie su spustene\&. Ziskanie presneho cisla verzie pomaha dramaticky urcit, pred akymi zneuzitim je server zranitelny\&. Detekcia verzie pomaha zistit tuto informaciu\&. +.PP +Po zisteni TCP alebo UDP portov pomocou jednej z metod scanu, detekcia verzie skuma tieto porty, aby zistila, co na nich bezi\&.Subor s databazou +nmap\-service\-probes +obsahuje testy na dotazovanie rozlicnych sluzieb a zodpovedajucih vyrazov na rozpoznanie a vykonanie rozboru odpovedi\&. Nmap sa pokusa urcit protokol sluzby (napriklad ftp, ssh, telnet, http), nazov aplikacie (napriklad ISC Bind, Apache httpd, Solaris telnetd), cislo verzie, hostitelsky nazov, typ zariadenia(napr\&. tlaciaren, router), skupinu OS (napr\&. Windows, Linux) a niekedy rozlicne podrobnosti ako napr\&. ci je X server otvoreny spojeniam verziu SSH protokolu alebo pouzivatelske meno v programe KaZaA)\&. Samozrejme, ze vacsina sluzieb neposkytuje tieto informacie\&. Ak bol Nmap kompilovany s podporou OpenSSL , pripoji sa k SSL serverom, aby urcil sluzbu nacuvajucu za zasifrovanou vrstvou\&. Ked su objavene RPC sluzby, automaticky sa pouzije Nmap RPC grinder (\fB\-sR\fR) na urcenie RPC programu a cisla verzie\&. Po tom, co scan UDP portov nie je schopny urcit, ci je port otvoreny alebo zatvoreny, niektore UDP porty su oznacene v stave +otvoreny|filtrovany\&. Detekcia verzie sa bude snazit vyvolat odpoved tychto portov (presne tak ako aj pri otvorenych portoch) a stav sa moze zmenit na otvoreny, ak tato detekcia uspeje\&. Pri +otvorenych|filtrovanych +TCP portoch sa postupuje tou istou cestou\&. Je potrebne si vsimnut, ze parameter Nmapu +\fB\-A\fR +medzi inym ponuka detekciu verzie\&. Dokument opisujuci priebeh, pouzitie a vlastne prisposobenie detekcie verzie je dostupny na adrese +\m[blue]\fB\%https://nmap.org/vscan/\fR\m[]\&. +.PP +Ak Nmap dostane odpovede od sluzby, ale nevie ju priradit ziadnej polozke v databaze, zobrazi specialny fingerprint a takisto adresu URL, kde mozete odoslat odpoved, ak ju poznate\&. Venujte prosim tejto operacii niekolko minut, aby bola na prospech kazdemu\&. Vdaka tymto odpovediem ma Nmap okolo 3,000 zodpovedajucich vzorov pre viac ako 350 protokolov napr\&. smtp, ftp, http, atd\&. +.PP +Detekcia verzie sa povoli a da sa ovladat nasledujucimi parametrami: +.PP +\fB\-sV\fR (Detekcia verzie) +.RS 4 +Umoznuje detekciu verziu ako bolo spomenute vyssie\&. Je mozne pouzit namiesto toho parameter +\fB\-A\fR, ktorym sa povoli aj detekcia OS\&. +.RE +.PP +\fB\-\-allports\fR (Pri detekcii verzie nevynechavat ziadne porty) +.RS 4 +V predvolenom nastaveni Nmap pri detekcii verzie vynechava TCP port 9100, pretoze niektore tlaciarne tlacia vsetko co pride na tento port a vedie to k hromade vytlacenych stran poziadaviek HTTP get request, poziadaviek SSL session request, atd\&.\&. Toto spravanie sa da zmenit upravenim alebo odstranenim direktivy +Exclude +v suborenmap\-service\-probes +alebo mozete zadat parameter\fB\-\-allports\fR, aby sa scanovali vsetky porty nehladiac na direktivu +Exclude\&. +.RE +.PP +\fB\-\-version\-intensity <intensity>\fR (Nastavit intenzitu scanovania verzie) +.RS 4 +Ak sa vykonava scan verzie (\fB\-sV\fR), Nmap odosiela seriu testov , pricom kazdemu z nich je priradena vynimocna hodnota medzi 1 az 9\&. Kym testy z nizsou hodnotou su ucinne na testovanie sirokej skalu beznych sluzieb, vyssie cisla su len zriedkavo uzitocne\&. Stupen intenzity udava, ktore testy sa maju pouzit\&. Cim vyssie je cislo, tym vacsia je pravdepodobnost, ze sluzba bude spravne indentifikovana, taketo scany vsak trvaju dlhsie\&. Predvolena hodnota je 7\&. Ak je test registrovany na cielovy port v subore +nmap\-service\-probes +pomocou direktivy +ports, tento test sa vykona bez ohladu na stupen intenzity\&. Zaistuje to to, ze DNS testy sa budu vzdy robit vhladom na lubovolny otvoreny port 53, SSL skuska vzhladom na port 443, atd\&.\&. +.RE +.PP +\fB\-\-version\-light\fR (Povolit light mod ) +.RS 4 +Je to pohodlny alias pre parameter +\fB\-\-version\-intensity 2\fR\&. Tento light mod znacne urychluje scanovanie verzie, no znizuje sa pravdepodobnost spravnej identifikacie sluzieb\&. +.RE +.PP +\fB\-\-version\-all\fR (Vyskusat kazdy test) +.RS 4 +Alias pre parameter +\fB\-\-version\-intensity 9\fR, cim sa zaisti vykonanie kazdeho testu voci kazdemu portu\&. +.RE +.PP +\fB\-\-version\-trace\fR (Sledovat cinnost scanovania verzie) +.RS 4 +Nmap zobrazi rozsiahle debugovacie informacie cinnosti scanovania verzie\&. Je to podmnozina vystupu pri zadani parametra +\fB\-\-packet\-trace\fR\&. +.RE +.PP +\fB\-sR\fR (RPC scan) +.RS 4 +Tato metoda funguje v spojeni s rozlicnymi scanmi portov Nmapu, vsetky zistene otvorene TCP/UDP porty zahlti NULL prikazmi programu SunRPC za ucelom zistenia, ci su to porty sluzby RPC a ak ano, ktoremu programu a cisle verzii sluzia\&. Rovnake informacie sa daju efektivne ziskat pomocou parametru +\fBrpcinfo \-p\fR +aj ked je mapovac portov cielovej stanice za firewallom alebo chraneny TCP wrappermi\&. Decoye momentalne nefunguju s RPC scanom\&. Toto je automaticky povolene ako cast scanu verzie pri zadani parametra (\fB\-sV\fR)\&. Kedze detekcie verzie obsahuje okrem tohoto este ovela viac veci, parameter +\fB\-sR\fR +sa pouziva zriedka\&. +.RE +.SH "DETEKCIA OS" +.PP +Jedna z najznamejsich funkcii Nmapu je vzdialena detekcia OS pomocu fingerprintingu stacku TCP/IP\&. Nmap odosiela vzdialenej hostitelskej stanici rad TCP a UDP paketov a potom skuma kazdy bit odpovedi\&. Po vykonani serie testov ako napr\&. sampling TCP ISN, poradie a podpora moznosti TCP, sampling IPID a pociatocna kontrola velkosti okienka porovnava Nmap vysledky so databazou +nmap\-os\-fingerprints +skladajucej sa z viac ako 1500 znamych odtlackov OS a pri zhode zobrazi podrobnosti o OS\&. Kazdy fingerprint zahrna textovy popis OS vo volnom formate a klasifikaciu poskytujucu nazov vyrobcu OS (napr\&. Sun), zakladny typ OS Each fingerprint includes a freeform textual description of the (napr\&. Solaris), generacia OS (napr\&. 10) a typ zariadenia (bez specialneho ucelu, router, switch, herna konzola, atd)\&. +.PP +Ak Nmap nedokaze odhadnut OS pocitaca a podmienky su pritom dobre (napr\&. zistilo sa, ze aspon 1 port je otvoreny a aspon 1 zatvoreny), Nmap poskytne adresu URL, na ktorej mozete zadat fingerprint, ak ste si isty OS beziacom na vasom pocitaci\&. Tymto prispievate do mnoziny operacnych systemov znamych Nmapu a proces sa spresnuje pre kazdeho dalsieho\&. +.PP +Detekcia OS umoznuje vykonanie niekolko dalsich testov, ktore vyuzivaju informacie vzdy nadobudnute tymto procesom\&. Jednym z nich je merania uptimu, ktore na odhadnutie casu od posledneho restartovania pocitaca vyuziva moznost TCP timestamp (RFC 1323)\&. Parameter sa oznamuje len pre pocitace, ktore poskytuju tuto informaciu\&. Dalsim z nich je TCP Sequence Predictability Classification \- Klasifikacia predvidatelnosti TCP sekvencie\&. Toto meranie zistuje, ake je narocne nadviazat falosne TCP spojenie so vzdialenou hostitelskou stanicou a je uzitocne na zistovanie slabin relacii, ktore stavaju doveru na zdrojovej IP adrese (rlogin, firewall, filtre, atd\&.) alebo takisto je uzitocne kvoli moznosti ukryvania zdroja utoku\&. Tento typ falsovania sa dnes vykonava zriedkavo, no mnohe pocitace su na to stale zranitelne\&. Vlastne cislo obtiaznosti je zalozene ne statistickom vzorkovani a moze sa menit\&. Vseobecne je lepsie pouzit anglicku klasifikaciu, napr\&. +\(lqworthy challenge\(rq +\- hodne vyzvy alebo +\(lqtrivial joke\(rq +\- jednoduchy zabava\&. Normalne sa to oznamuje len v mode verbose (\fB\-v\fR)\&. Ak sa povoli verbose mod sucasne z parametrom +\fB\-O\fR, oznamuje sa aj Vytvaranie sekvencie IPID\&. Vacsina pocitacov sa nachadza +\(lqinkrementalnej\(rq +triede, co znamena, ze zvysuju cislo policka ID v IP hlavicke kazdeho odoslaneho paketu, co z nich robi zranitelne ciele pre niektore pokrocile utoky, ktore su zalozene na zbere informacii a falsovani\&. +.PP +Dokument popisujuci cinnost, pouzitie a priposobenie detekcie verzie je dostupny vo viacerych jazykoch na adrese\&.\m[blue]\fB\%https://nmap.org/osdetect/\fR\m[]\&. +.PP +Detekcia OS je povolovana a ovladana nasledujucimi moznostami parametrov: +.PP +\fB\-O\fR (Povolit detekciu OS) +.RS 4 +Umozni detekciu OS podla vyssie opisaneho rozboru\&. Alternativne sa pouzitim parametra +\fB\-A\fR +umozni detekciu OS aj verzie\&. +.RE +.PP +\fB\-\-osscan\-limit\fR (Obmedzit detekciu OS len na slubne cielove stanice) +.RS 4 +Detekcia OS je ovela efektivnejsie, ak je zisteny aspon 1 port otvoreny a 1 port zatvoreny\&. Po nastaveni tohoto parametra sa nebude vykonavat detekcia OS na pocitacoch, ktore nesplnaju tieto kriteria, cim sa da usetrit podstatny cas, hlavne pri scanoch s parametrom +\fB\-P0\fR +aplikovanych na mnohych hostitelskych staniciach, no je to dolezite len ak sa pre detekciu OS zada parameter +\fB\-O\fR +alebo +\fB\-A\fR\&. +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (Odhadnut vysledky detekcie OS) +.RS 4 +Ak je Nmap nedokaze detekovat uplnu zhodu s OS, niekedy navrhne dalsie co najblizsie zhody ako moznosti\&. Nmap to normalne vykonava, len ak je zhoda velmi podobna\&. Kazda z tychto dvoch ekvivalentnych moznosti sposobi agresivnejsi odhad Nmapu\&. +.RE +.SH "CASOVANIE A VYKON" +.PP +Jednou z mojich najvyssich priorit pri vyvoji Nmapu bol vzdy vykon\&. Predvoleny scan (\fBnmap \fR\fB\fIhostname\fR\fR) hostitelskej stanice v mojej lokalnej sieti trva patinu sekundy\&. Trva to sice menej ako zmrknutie oka, ale pridava to na vyzname, ak sa scanuju stovky alebo tisice hostitelskych stanic\&. Navyse urcite moznosti scanov ako UDP scanovanie a detekcia verzie mozu podstatne zvysit cas vykonanavania scanu, tak ako aj urcite nastavenia firewallu, zvlast obmedzenie poctu odpovedi\&. Nmap sice na zrychlenie scanov vyuziva paralelizmus a mnohe pokrocile algoritmy, je to pouzivatel, kto ma absolutnu kontrolu nad tym, ako Nmap pracuje\&. Ak je cas obmedzenim, pouzivatelia na urovni expertov sikovne produkuju prikazu, aby ziskali len informacie, o ktore maju zaujem\&. +.PP +Metody zlepsujuce casy scanov zahrnuju vynechanie nekritickych testov a prechadzanie na poslednu verziu Nmapu (zdokonolanie vykonu sa vykonava casto)\&. Optimalizovanie casovych parametrov dokaze takisto sposobit markantny rozdiel\&. Tieto parametre su spomenute nizsie: +.PP +\fB\-\-min\-hostgroup <numhosts>\fR; \fB\-\-max\-hostgroup <numhosts>\fR (Prisposobit velkosti paralelnych skupin pri scanovani) +.RS 4 +Nmap ma schopnost sucasne scanovat porty alebo verzie viacerych hostitelskych stanic a to takym, sposobom, ze sa cielovy rozsah IP adries rozdeli do skupin a potom sa scanuje jedna skupina sucasne\&. Vo vseobecnosti su efektivnejsie vacsie skupiny, no nevyhodou je, ze vysledky nemozu byt poskytnute, kym nie je ukoncene cela skupina\&. cize ak Nmap zacne so skupinou velkosti 50, pouzivatel nedostane ziadnu spravu (okrem updatov v mode verbose) az kym nie je ukoncenych vsetkych 50 hostitelskych stanic\&. +.sp +V predvolenom nastaveni riesi Nmap tento konflikt kompromisom\&. Zacne skupinou o pocte 5, takze prve vysledky sa dostavia rychlo a potom sa velkost skupiny zvysi na 1024\&. Presne predvolene cisla zavisia od zadanych parametroch\&. Z dovodov efektivity pouziva Nmap rozsiahle skupiny pre UDP scany alebo malo portove TCP scany\&. +.sp +Po zadani maximalnej velkosti skupiny pomocou parametra +\fB\-\-max\-hostgroup\fR +Nmap nikdy neprokroci tuto hodnotu\&. Po zadani minimalnej velkosti skupiny parametrom +\fB\-\-min\-hostgroup\fR +nebude Nmap pouzivat mensie skupiny ako bolo zadane\&. Ak vsak nie je dostatok hostitelskych stanic, Nmap moze pracovat s mensimi skupinami ako specifikovane parametrom\&. Aj ked je to zriedkavo vyuzivane, oba parametre mozu byt pouzite sucasne na specifikovanie rozsahu skupiny\&. +.sp +Hlavne pouzitie tychto parametrov je specifikacia vacsieho minima velkosti skupiny, takze plny scan pobezi rychlejsie\&. Vseobecna volba velkosti minima na scan porcii siete triedy C je cislo 256\&. Nie je obvykle prilis uzitocne zvysovat toto cislo, ak sa jedna o scan s mnohymi portmi\&. Pri scanoch s par cislami portov je velkost skupiny hostitelskych pocitacov rovna 2048 alebo viac prospesna\&. +.RE +.PP +\fB\-\-min\-parallelism <numprobes>\fR; \fB\-\-max\-parallelism <numprobes>\fR (Upravit paralelizaciu testov) +.RS 4 +Tieto parametre ovladaju absolutny pocet testov, co moze byt nedokoncene pre skupinu hostitelskych pocitacov\&. Pouzivaju sa pri scanovani portov a zistovenie hostitelskych pocitacov\&. V povodnom nastaveni pocita vzdy sa meniaci idealny stav paralelizmu v zavislosti na vykone siete\&. Ak su pakety zahadzovane, Nmap spomali a povoli menej neukoncenych scanov\&. Idealny pocet testov pri dobrych podmienkach v sieti pomaly stupa\&. Tieto parametre urcuju na tuto premennu minimalnu a maximalnu hranicu\&. V predvolenom nastaveni sa idealny paralelizmus moze znizit az na 1, ak sa sietove testy javia ako nespolahlive a na druhej strane idealizmus stupa pri vybornych podmienkach\&. +.sp +Najcastejsim pouzitim je nastavenie parametra +\fB\-\-min\-parallelism\fR +na vyssiu hodnotu ako je 1 kvoli urychleniu scanovania pomalych hostitelskych stanic alebo sieti\&. Je to riskantny parameter na zabavu, pretoze prilis vysoka hodnota moze ovplyvnit presnost a takisto schopnost Nmapu ovladat paralelizmus dynamicky podla sietovych podmienok\&. Hodnota desat moze byt rozumna, hoci tuto hodnotu nastavujem len ako poslednu moznost\&. +.sp +Parameter +\fB\-\-max\-parallelism\fR +je niekedy nastaveny na 1, aby sa predislo odosielaniu viac ako jedneho testu sucasne\&. Moze sa to hodit v kombinacii s parametrom +\fB\-\-scan\-delay\fR +(rozoberanom nizsie), hoci tento druhy parameter je dostatocne silny, aby sam sluzil svojmu ucelu\&. +.RE +.PP +\fB\-\-min\-rtt\-timeout <time>\fR, \fB\-\-max\-rtt\-timeout <time>\fR, \fB\-\-initial\-rtt\-timeout <time>\fR (Nastavit casovy interval testu) +.RS 4 +Nmap si uchovava hodnotu casoveho intervalu kvoli urceniu, ako dlho bude cakat na odpoved testu predtym ako to vzda alebo vykona retransmisiu testu\&. Pocita sa to na zaklade casov odpovedi predchadzajucich testov\&. Ak je latencia siete vyznamnym faktorom a meni sa, tento casovy interval narastie na niekolko sekund\&. Takisto zacina na opatrnej(vysokej) urovni a ak Nmap scanuje neodpovedajuce hostitelske stanice, moze to na nej aj chvilu ostat\&. +.sp +Tieto parametre maju hodnotu v milisekundach alebo je mozne pridat argument jednotky +s, +maleboh +to a takto sa cas specifuje v sekundach, minutach alebo hodinach\&. Specifikovanie nizsich hodnot parametrov\fB\-\-max\-rtt\-timeout\fR +a +\fB\-\-initial\-rtt\-timeout\fR +ako predvolene hodnoty moze vyznamne skratit casy scanov, co plati hlavne pre scany bez pingu (\fB\-P0\fR) a dalej pre velmi filtrovane siete, nie je vsak dobre zadavat prilis kratke hodnoty, pretoze potom moze scan pozadovat viac casu ako je specifikovane a pre vela testov vyprsi casovy interval, zatial co odpoved je stale na ceste\&. +.sp +Ak su vsetky hostitelske stanice v lokalnej sieti, rozumna hodnota intervalu je 100 milisekund +\fB\-\-max\-rtt\-timeout\fR\&. Ak je zahrnute routovanie, je potrebne najprv vykonat ping hosta bud pomocnym programom ICMP ping alebo prisposobenym programom pre tvorenie paketov ako napr\&. hping2, ktory sa pravdepodobnejsie dostane cez firewall\&. Vsimnite si maximalny cas hodnoty RTT (Maximum Round Trip) asi 10 paketov\&. Tuto hodnotu mozete zdvojnasobit pre +\fB\-\-initial\-rtt\-timeout\fR +a stroj\- alebo stvornasobit pre parameter\fB\-\-max\-rtt\-timeout\fR\&. Vseobecne nenastavujem tento parameter maximum rtt pod 100ms, bez ohladu na hodnoty pingov, a ani ich nezvysujem nad 1000ms\&. +.sp +Parameter +\fB\-\-min\-rtt\-timeout\fR +je malokedy pouzivany\&. Moze sa zist, ked je siet taka nespolahliva, ze aj predvolena hodnota Nmapu je prilis agresivna\&. Kedze vsak Nmap pri spolahlivej sieti znizuje casovy interval na minimum, tento parameter nie je potrebny a jeho pouzitie by sa malo nahlasit ako bug do mailingu listu nmap\-dev\&. +.RE +.PP +\fB\-\-max\-retries <numtries>\fR (Specifikovat maximalny pocet retransmisii testov scanovania portov) +.RS 4 +Ak Nmap nedostane odpoved na test scanu portov, moze to znamenat , ze port je filtrovany alebo ze bol test alebo odpoved jednoducho stratena po sieti\&. Je mozne tiez, ze cielova stanica obmedzenie poctu odpovedi a to docasne zablokovalo odpoved, takze sa Nmap opatovna pokusi poslat pociatocny test\&. Ak Nmap detekuje slabu sietovu spolahlivost, moze sa pokusit o retransmissiu viackrat pred ukoncenim snahy\&. Na jednej strane to zvysuje presnost, no takisto aj cas scanov\&. Ak je kriticky vykon, scany mozu byt urychlenie limitovanim povoleneho poctu retransmisii\&. Retransmisiam sa zabrani parametrom +\fB\-\-max\-retries 0\fR, no zriedkakedy sa to odporuca\&. +.sp +Predvolena hodnota (bez parametru\fB\-T\fR) je 10 ten retransmisii\&. Ak sa siet zda byt spolahliva a cielove stanice neobmedzuju pocet odpovedi, Nmap obycajne vykona len jednu retransmisiu, takze vacsina scanov ani nie je ovplyvnena, ak sa parameter +\fB\-\-max\-retries\fR +znizi na 3\&. Tieto hodnoty dokazy podstatne zrychlit scany pomalych (s obmedzenim poctu odpovedi) hostitelskych stanic\&. Ak Nmap prilis skoro zanechava testy portov, obycajne sa stracaju nejake informacie, hoci moze to stale moze byt uprednostnovane pred situaciou, kde uplynie interval parametru +\fB\-\-host\-timeout\fR +a stratia sa vsetky informacie o cielovej stanici\&. +.RE +.PP +\fB\-\-host\-timeout <time>\fR (Zanechat pomale cielove stanice) +.RS 4 +Niektore hostitelske stanice jednoducho potrebuju +\fIdlhy\fR +cas na to, aby boli prescanovane, co moze byt dosledkom zleho vykonu alebo nespolahliveho sietoveho hardwaru/softwaru, obmedzeniu poctu paketov alebo obmedzujuceho firewallu\&. Najpomalsich malo percent scanovanych hostitelskych stanic moze zabrat podstatu casu scanu\&. Niekedy je lepsie orezat tieto straty casu a preskocit taketo stanice uz na zaciatku\&. Da sa to dosiahnut zadanim parametra +\fB\-\-host\-timeout\fR +s pozadovanym poctom milisekund cakania\&. Alternativne je mozne pripojit argument jednotky +s, +m +aleboh +to , cim sa casovy interval specifikuje v sekundach, minutach alebo hodinach\&. Ja casto specifikujem hodnotu +30m, aby Nmap neplytval viac ako polhodinou na 1 stanicu\&. Vsimnite si, ze Nmap moze sucasne scanovat dalsie hostitelske stanice, takze to nie je uplna strata casu\&. Hostitelska stanica, ktorej casovy interval vyprsi sa vynecha a nezobrazi sa pre nu tabulka portov, detekcia OS, ani detekcia verzie\&. +.RE +.PP +\fB\-\-scan\-delay <time>\fR; \fB\-\-max\-scan\-delay <time>\fR (Nastavit oneskorenie medzi testami) +.RS 4 +Tento parameter sposobi, ze Nmap bude cakat aspon zadany hodnotu v milisekundach medzi odoslanim dalsieho testu hostitelskej stanice\&. Tak ako aj pri inych parametroch casu, aj tu je mozne pripojit +s, +maleboh +ako argument na specifikovanie oneskorenia v sekundach, minutach alebo hodinach namiesto ms\&. Hodi sa to hlavne v pripade obmedzenia poctu odpovedi\&. Pocitace so systemom Solaris ako aj niektore ine obycajne na test UDP scanu odpovedia jednou ICMP spravou za sekundu\&. Vsetko co sa odosle Nmapom navyse, bude stratene\&. Parameter +\fB\-\-scan\-delay\fR +nastaveny na +1s +udrzi Nmap na takejto pomalej rychlosti\&. Nmap sa pokusi detekovat obmedzenie a priposobit oneskorenie scanu podla toho, ale nie je na skodu specifikovat to explicitne, ak uz viete, aka rychlost je najvhodnejsia\&. +.sp +Ak Nmap prisposobuje oneskorenie scanu smerom nahor pri obmedzeni rychlosti odpovedi, scan sa dramaticky spomali\&. Parameter\fB\-\-max\-scan\-delay\fR +specifikuje najvacsie oneskorenie, ktore povoli Nmap\&. Nastavenie prilis nizkej hodnoty moze pri zavedenej obmedzenej rychlosti odpovedi viest k zbytocnym retransmisiam paketov a moznym vynechanym portom\&. +.sp +Dalsie pouzitie parametra +\fB\-\-scan\-delay\fR +je vyhnut sa systemom detekcie (IDS) a narusenia (IPS) zalozenych na prahovej hodnote\&. +.RE +.PP +\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (Nastavit casovu sablonu) +.RS 4 +Je sice pravda, ze vyssie rozoberane jemne casove ovladanie scanov je mocne a ucinne, no niektori ludia to povazuju za dezorientujuce\&. Niekedy dokonca moze volenie primeranych hodnot zabrat viac casu ako scan, ktory sa pokusat optimalizovat, a tak Nmap ponuka jednoduchsi pristup so siestimi sablonami\&. Je ich mozne specifikovat parametrom +\fB\-T\fR +a ich cislami(0 \- 5) ci menami\&. Nazvy sablon tu paranoid (0), sneaky (1), polite (2), normal (3), aggressive (4) a insane (5)\&. Prve dve su urcene pre obidenie systemov IDS\&. Mod Polite sa spomali, ked scan pouziva mensiu sirky pasma a prostriedkov cieloveho pocitaca\&. Mod Normal je predvolenym a teda +\fB\-T3\fR +neurobi ziadnu zmenu\&. Mod Aggressive urychli scan predpokladom, ze ste na rozumne rychlej a spolahlivej sieti\&. Konecne mod Instane predpoklada, ze ste na vynimocne rychlej sieti alebo chcete obetovat presnost za rychlost\&. +.sp +Tieto sablony dovoluju pouzivatelovi specifikovat agresivitu, zatial co, Nmap sam vyberie presne hodnoty casovania\&. Sablony takisto vykonavaju male prisposobenia rychlosti, na ktore momentalne neexistuju jemne ovladacie parametre\&. Napriklad moznost +\fB\-T4\fR +zakazuje, aby dynamicke oneskorenie scanu prekrocilo 10ms pre TCP porty a\fB\-T5\fR +ohranici tuto hodnotu 5 milisekundami\&. Pokial sa sablona specifikuje ako prva, moze byt pouzita v kombinacii s jemnym ovladanim, inak sa povodne hodnoty pre sablony prepisat vami specifikovanymi hodnotami\&. Odporucam pouzitie parametra +\fB\-T4\fR +ak sa scanuju moderne a spolahlive siete\&. Aj ked zadate dalsie jemne ovladanie kvoli dodatocnym malym povolenym optimalizaciam, zachovajte tento parameter (na zaciatok prikazoveho riadku)\&. +.sp +Ak ste na poriadnej sieti s broadbandovym alebo ethernetovym pripojenim, vzdy by som odporucal pouzitie parametra\fB\-T4\fR\&. Niektori ludia preferuju moznost +\fB\-T5\fR, hoci pre mna je prilis agresivna\&. Ini zasa niekedy zadaju +\fB\-T2\fR, pretoze si myslia, ze tymto je mensia pravdepodobnost sposobenia spadnutia pocitaca alebo pretoze sa sami vo vseobecnosti povazuju za zdvorilych\&. Casto si pritom neuvedomuju, za moznost +\fB\-T Polite\fR +je skutocne velmi pomala\&. Takyto scan moze trvat desatkrat viac ako povodny scan\&. Spadnutia pocitacov a problemy so sirkou pasma su zriedkave pri pouziti predvoleneho parametra casovania (\fB\-T3\fR) a tak ho normalne odporucam pre pozornych scannerov\&. Vynechanie detekcie verzie je vsak casovo ovela ucinnejsie ako hranie sa s hodnotami casovania\&. +.sp +Zatial co moznosti +\fB\-T0\fRa\fB\-T1\fR +mozu byt uzitocne pre vyhnutie sa upozorneni systemov IDS, scanovanie tisicov portov pocitacov bude trvat vynimocne dlho\&. Pri takomto dlhom scane je mozno lepsie nastaveni presnych hodnot casovania namiesto spolahnutia sa na vopred pripravene moznosti\fB\-T0\fRa\fB\-T1\fR +\&. +.sp +Hlavnymi nasledkami pouzitia parametru\fBT0\fR +je serializacia scanovania portov, takze sa sucasne scanuje len jeden port, a pred vyslanim dalsieho testu sa caka 5 minut\&. Moznosti +\fBT1\fR +a +\fBT2\fR +su podobne, ale medzi jednotlivymi testami cakaju len 15 resp\&. 0\&.4 sekund\&. Moznost\fBT3\fR +je predvolenou pre Nmap a zahrna paralelizaciu\&. Moznost +\fBT4\fR +je ekvivalentna zadaniu\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR +a nastavuje maximalne oneskorenie TCP scanu na 10 ms\&. Moznost\fBT5\fR +je ekvivalentna zadaniu +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 900000\fR +a takisto nastavenia maximalneho oneskorenia TCP scanu na 5ms\&. +.RE +.SH "VYHNUTIE SA FIREWALLU/ SYSTEMU IDS A FALSOVANIE" +.PP +Mnohi priekopnici internetu si predstavovalo globalnu otvorenu siet s univerzalnym priestorom IP adries umoznujucim vykonavat virtualne spojenia medzi lubovolnymi dvoma uzlami\&. To umoznuje hostitelskym staniciam posobit ako ozajstni peers, poskytujuc a ziskavajuc informacie od kazdeho jedneho\&. Ludia mohli pristupovat na vsetky domace systemy z prac a tak zmenit nastavenie ovladania klimy alebo otvorenia dveru pre skorych hosti\&. Tato vizia univerzalnej konektivity je vsak potlacena nedostatkom priestoru IP adries a obavami z bezpecnosti\&. Na zaciatku 90\&.rokov zacali organizacie nasadzovat firewally na rychly ucel obmedzenia konektivity\&. Obrovske siete boli uzavrete pred nefiltrovanym intenernetom pomocou aplikacnych proxy serverov, prekladu NAT a paketovych filtrov\&. Neobmedzeny tok informacii dal zelenu uzkej regulacii odsuhlasenych komunikacnych kanalov a obsahu, ktory cez ne prechadza\&. +.PP +Sietove prekazky ako firewally vedia velmi stazit zmapovanie siete\&. Nezjednodusi sa to, pretoze potlacenie neplanovaneho skumania siete ja casto klucovym cielom implementovania tychto zariadeni\&. Napriek tomu obsahuje Nmap mnohe funkcie, ktore pomahaju pochopit tieto zlozite siete a overit, ze filtre funguju podla ocakavania, dokonca podporuje aj mechanizmy obidenia pre slabo implementovane obrany\&. Jednou z najlepsich metod pochopenia situacie vasej sietovej bezpecnosti je pokusit sa ju prelomit\&. Predstavte si seba ako utocnika a nasadte proti vasim sietam metody z tejto sekcie\&. Spustite scan FTP bounce ftp, Idle scan, utok pomocou fragmentacie alebo sa pokuste pretunelovat cez jeden z vasich proxy serverov\&. +.PP +Okrem obmedzovania sietovej aktivity spolocnosti stale viac monitoruju traffic v sieti pomocou systemov na detekciu preniknutia (IDS)\&. Vsetky hlavne systemy IDS sa dodavaju s pravidlami vytvorenymi na detekciu scanov Nmapu, pretoze tieto scany su niekedy pociatkom pre utoky\&. Vela tychto produktov sa casom vyvinulo do systemov s +\fIprevenciou\fR +preniknutia (IPS), ktore aktivne blokuju traffic, ktory sa zda byt skodlivy\&. Spolahlive detekovanie zlych umyslov pomocou analyzy dat v paketoch je nanestastie pre sietovych administratorov a vyrobcov systemov IDS tazky problem\&. Utocnici s trpezlivostou, zrucnostou a pomocou urcitych parametrov Nmapu mozu obycajne zabranit detekcii systemu IDS\&. Na druhej strane sa administratori musia popasovat s velkym mnozstvom falosnych pozitivnych vysledkov, kde sa nespravne diagnizuje nevinna aktivita a je v stave pohotovosti alebo je blokovana\&. +.PP +Niekedy ludia navrhuju, ze by Nmap nemal ponukat funkcie na vyhnutie sa pravidlam firewallu alebo prejdenia cez systemy IDS\&. Zdovodnuju, ze tieto funkcie mozu byt tak vyuzite administratormi na zvysenie bezpecnosti ako aj utocnikmi\&. Problemom toho je, ze tieto metody by sa stale vyuzivali utocnikmi, ktori by si namiesto toho nasli dalsie nastroje alebo patche, ktore by fungovali s Nmapom\&. Na druhej strane, pre administratorov by bolo ovela tazsie vykonavat si svoju pracu\&. Nasadzovanie len modernych, opravenych FTP serverov je ovela mocnejsia obrana, ako snaha predist rozsireniu nastrojov implementujucich utok FTP bounce\&. +.PP +Neexistuje ziadne specialne magicke kuzlo(alebo parameter Nmapu) na detekciu a podkopanie firewallov a systemov IDS\&. Vyzaduje si to zrucnost a skusenost\&. Tutorial je za mimo rozsahu tejto referencnej prirucky, ktora len podava zoznam relevantnych parametrov a opisuje, co robia\&. +.PP +\fB\-f\fR (fragmentovat pakety); \fB\-\-mtu\fR (pouzitim specifikovanej velkosti jednotky MTU) +.RS 4 +Parameter +\fB\-f\fR +sposobi, ze pozadovany scan(vratane scanov pingu) pouzije male fragmentovane IP pakety\&. Myslienka je rozdelit hlavicku TCP na niekolko paketov, cim sa stazi detekcia aktivity pre paketove filtre, systemy IDS a ine\&. Je nutne byt pri tomto opatrny\&. Niektore programy nedokazu korektne prijat male pakety\&. Sniffer zo starej skoly s nazvom Sniffit po prijati prveho segmetu okamzite zahlasil chybu "segmentation fault"\&. Po jednom zadani tohoto parametra Nmap rozdeli pakety po hlavicke IP na maximalne 8 bajtov dlhe, takze 20\-bajtova hlavicka TCP sa rozdeli na 3 pakety, dva s velkostou hlavicky TCP osem bajtov a posledny o velkosti styri\&. Samozrejme, ze kazdy fragment ma takisto hlavicku IP\&. Po opatovnom zadani moznosti +\fB\-f\fR +sa na jeden fragment pouzije 16 bajtov, cim sa znizi pocet fragmentov\&. Dalej je mozne specifikovat vlastnu velkost offsetu zadanim parametra +\fB\-\-mtu\fR\&. Nezadavajte sucasne parametre\fB\-f\fR +a +\fB\-\-mtu\fR\&. Offset musi byt nasobkom cisla 8\&. Zatial co fragmentovane pakety neprejdu cez paketove filtre a firewally, ktore zhromazduju vsetky IP fragmenty v rade, ako napriklad parameter CONFIG_IP_ALWAYS_DEFRAG v jadre Linuxu, niektore siete si nemozu dovolit takyto zasah do vykonu siete a preto nechavaju parameter zakazany\&. Ine to zase neumoznuju, pretoze fragmenty mozu putovat do siete roznymi cestami\&. Niektore zdrojove systemy defragmentuju vychadzajuce pakety v jadre, jednym z nich Linux s modulom ip tables\&. Pocas vykonavania scanu je mozne pouzit sniffer napr\&. Ethereal a tym sa da sledovat, ci su odosielane pakety fragmentovane\&. Ak sa v lokalnom OS na lokalnom pocitaci vyskytnu problemy, skuste zadat parameter\fB\-\-send\-eth\fR +cim sa to obide vrstva IP a odoslu sa neupravene ethernetove ramce\&. +.RE +.PP +\fB\-D <decoy1 [,decoy2][,ME],\&.\&.\&.>\fR (Zakryt scan pomocou decoys) +.RS 4 +Spusti sa scan pomocou obetnych stanic(decoys), cim sa pre vzdialenu hostitelsku stanicu bude specifikovana scanovacia hostitelska stanica/stanice javit ako decoy, ktora takisto ako ozajstna stanica scanuje cielovu siet\&. Ich system IDS preto moze zahlasit 5\-10 scanov portov z roznych IP adries, no nebude vediet, ktore scany boli prave, a z ktorej IP adresy sa naozaj scanovalo\&. Zatial co sa tato metoda porazit pouzitim mechanizmov sledovania drah routerov, zahodenia odpovedi a dalsich aktivnych mechanizmov, je to stale ucinny sposob ako zakryt pravu IP adresu\&. +.sp +Adresu kazdej decoy je potrebne oddelit ciarkami a je mozne pouzit parameter +ME +urcujuci, ktora z decoys reprezentuje vasu realnu IP adresu\&. Ak sa ME +ME +vlozi na vzdialenejsiu ako 6\&.poziciu, niektore bezne detektory scanov portov (napr\&. vyborny scanlogd spolocnosti Solar Designer) by nemali byt vobec dokazat zobrazit vasu IP adresu\&. Ak pouzijete +ME +, nmap vlozi vasu IP adresu na nahodnu poziciu\&. +.sp +Vsimnite si, ze hostitelske stanice pouzite ako falosne scannery teda decoys by mali byt aktivne, inak mozete nahodne zahltit cielove stanice SYN paketmi\&. Ak bude aktivna len jedna hostitelska stanica, bude velmi jednoduche zistit, ktora z decoys vykonala scan\&. Namiesto DNS nazvov moze byt uzitocne pouzit IP adresy (takze vas siete pocitacov decoys nebudu vidiet v logu nameserveru\&.) +.sp +Decoys su pouzivane pri pociatocnom ping scane (pouzijuc ICMP, SYN, ACK alebo ine) tak ako aj pocas samotnej fazy scanovania, a pouzivaju sa aj pri detekcii vzdialeneho OS (\fB\-O\fR)\&. Decoys nefunguju pri detekcii verzie alebo scane typu TCP connect()\&. +.sp +Prilis mnoho decoys moze spomalit scan a potencialne ho znepresnit\&. Niektori internetovi provideri mozu filtrovat falosne pakety, no mnohi ich vobec neobmedzuju\&. +.RE +.PP +\fB\-S <IP_Address>\fR (Falosna zdrojova IP adresa) +.RS 4 +Pri niektorych okolnostiach nedokaze Nmap urcit lokalnu zdrojovu IP adresu ( ak je s tym problen, Nmap to oznami)\&. V tejto situacii je nutne pouzit parameter\fB\-S\fR +s IP adresou, cez ktoru sa maju odosielat pakety\&. +.sp +Dalsim moznym sposobom pouzitia tohoto flagu je falsovanie scanu, cim sa cielove stanice budu domnievat, ze ich scanuje +\fIniekto iny\fR\&. Predstavte si firmu, ktora je opakovane scanovana konkurencnou firmou\&. Parameter +\fB\-e\fR +bude pre tento typ pouzitia vsobecne vyzadovany a parameter +\fB\-P0\fR +je tiez vhodny\&. +.RE +.PP +\fB\-e <interface>\fR (Pouzit specifikovane rozhranie) +.RS 4 +Povie Nmapu, cez ktore rozhranie sa maju odosielat a prijimat pakety\&. Nmap by to mal vediet detekovat automaticky, ale v opacnom pripade to oznami\&. +.RE +.PP +\fB\-\-source\-port <portnumber>;\fR \fB\-g <portnumber>\fR (Falsovat zdrojove cislo portu) +.RS 4 +Jednou z bezne nespravnej konfiguracie je ak sa doveruje trafficu zalozenom na zdrojovom cisle portu\&. Nie je tazke pochopit ako k tomu dochadza\&. Administrator nastavi nablyskany novy firewall a bude zahlteny staznostami nevdacnych pouzivatelov, ktorych aplikacie prestali fungovat\&. Specialnym pripadom moze byt pokazeny DNS server, pretoze odpovede na DNS request z vonkajsich serverov uz nemozu vstupovat do siete\&. Dalsim castym prikladom je FTP\&. Pri aktivnych prenosoch FTP sa vzdialeny server pokusa o spatne spojenie ku klientovi, aby dodal pozadovany subor\&. +.sp +Bezpecnymi rieseniami na tieto problemy su casto vo forme proxy serverov na aplikacnej urovni alebo firewallove moduly skumajuce protokoly\&. Existuju nanestastie aj jednoduchsie a nebezpecne riesenia\&. Vediac, ze DNS odpovede prichadzaju z portu 53 a aktivne ftp z portu 20, vela administratorov sa chytilo do pasce a jednoducho povolilo prichadzajuci traffic z tychto portov, pricom castu beru do uvahy, ze to ziadny utocnik nespozoruje a ani nezneuzije tuto dieru vo firewalle\&. V inych pripadoch to administrator povazuje za kratkodobe opatrenie az kym sa neimplementuje bezpecnejsie riesenie, a potom na tento upgrade zabudnu\&. +.sp +Prepracovani sietovi administratori vsak nie su jedinymi, kto sa chyti do tejto pasce\&. Mnohe produkty sa dodavaju s tymito nebezpecnymi pravidlami, dokonca aj Microsoft bol vinny\&. Filtre protokolu IPsec dodavane so systemami Windows 2000 a Windows XO obsahuju implicitne pravidlo, ktore povoluje cely neobmedzeny TCP a UDP traffic z portu 88 (Kerberos)\&. Dalsim dobre znamym pripadom povolovali verzie osobneho firewallu Zone Alarm az do verzie 2\&.1\&.25 vsetky prichadzajuce UDP pakety so zdrojovym portom 53(DNS) alebo 67 (DHCP)\&. +.sp +Nmap ponuka na objavenie tychto zranitelnosti ekvivalentne parametere\fB\-g\fR +a +\fB\-\-source\-port\fR\&. Jednoducho zadate cislo portu a Nmap z neho odosle pakety\&. Pri niektorych testoch detekcie OS kvoli ich spravnej funkcii musi Nmap pouzivat odlisne cisla portov a DNS poziadavky ignoruju parameter +\fB\-\-source\-port\fR, pretoze Nmap ich nechava na pleciach systemovych kniznic\&. Vacsina TCP scanov vratane SYN scanu ako aj UDP scan podporuju tento parameter uplne\&. +.RE +.PP +\fB\-\-data\-length <number>\fR (Do odosielanych paketov pripojit nahodne data) +.RS 4 +Za normalnych okolnosti odosiela Nmap minimalne pakety obsahujuce len hlavicku, takze TCP pakety maju obycajne 40 bajtov a ICMP echo poziadavky len 28\&. Tento parameter napoveda Nmapu, aby pripojil nahodne bajty nahodnej dlzky do odosielanych paketov\&. Pakety detekcie OS(\fB\-O\fR) nie su ovplyvnene na rozdiel od vacsiny ping a portscan paketov\&. Spomaluje to proces, ale trochu znenapadnuje scan\&. +.RE +.PP +\fB\-\-ttl <value>\fR (Nastavit pole IP time\-to\-live) +.RS 4 +Nastavi hodnotu pola IPv4 time\-to\-live odosielanych paketov na udanu hodnotu\&. +.RE +.PP +\fB\-\-randomize\-hosts\fR (Nahodne vybrat poradie cielovych pocitacov) +.RS 4 +Nmap premiesa kazdu skupinu o velkosti az do 8096 hostitelskych stanic pred ich scanovanim, co moze znenapadnit scany pre rozne sietove moniturujuce systemy, hlavne ked sa skombinuju s parametrami pomaleho casovania\&. Ak chcete nahodne premiesat vacsie velkosti skupin, zvyste hodnotu premennej PING_GROUP_SZ v subore +nmap\&.h +a znovu skompilujte\&. Dalsim riesenim je vytvorit zoznam cielovych stanic pomocou list scanu An alternative solution is to generate the target IP list (\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR), premiesat ho nahodne pomocoou scriptu napisaneho v Perli a potom tento zoznam predat Nmapu parametrom +\fB\-iL\fR\&. +.RE +.PP +\fB\-\-spoof\-mac <mac address, prefix, or vendor name>\fR (Vytvorit falosnu MAC adresu) +.RS 4 +Nmap pouzije zadanu MAC adresu pre vsetky odosielane neupravene ethernetove ramce\&. Zahrna to v sebe parameter +\fB\-\-send\-eth\fR, cim sa zaisti, ze Nmap vlastne odosle pakety na urovni ethernetu\&. Zadana MAC adresa moze byt v roznych formatoch\&. Ak je to jednoducho znak +\(lq0\(rq, Nmap zvoli uplne nahodnu mac adresu\&. Ak je zadanym retazcom parny pocet hexadecimalnych cislic (s parmi dvoch nepovinne oddelenymi ciarkami), Nmap ich pouzije ako MAC adresu\&. Ak je zadanych menej ako 12 hexadec\&. cisel, Nmap vyplni zbytok zvyskom 6 byteov nahodnych hodnot\&. Ak sa nepouzije ani jedna z tycho moznosti, Nmap prehlada subor +nmap\-mac\-prefixes +pri pokuse najst nazov vyrobcu obsahujuci dany retazec (nezavisi na velkosti velkych a malych pismen)\&. Ak je najdena zhoda, Nmap pouzije OUI vyrobcu (3\-bajtova predpona) a nahodne vyplne 3 zostavajuce bajty\&. Spravne zadanymi prikladmi pre parameter\fB\-\-spoof\-mac\fR +su +Apple, +0, +01:02:03:04:05:06, +deadbeefcafe, +0020F2 +ci +Cisco\&. +.RE +.PP +\fB\-\-badsum\fR (Odoslat pakety s falosnym kontrolnym suctom TCP/UDP) +.RS 4 +Nmap pouzije neplatny kontrolny sucet TCP alebo UDP na odoslanie paketov cielovej stanici\&. Kedze prakticky vsetky hostitelske IP stacky dokladne zahadzuju taketo pakety, ak pride odpoved, pochadza pravdepodobne od firewallu alebo systemu IDS, ktory neoveroval kontrolny sucet\&. Viac podrobnosti o tejto metode najdete na adrese +\m[blue]\fB\%https://nmap.org/p60-12.txt\fR\m[] +.RE +.SH "VYSTUP" +.PP +Kazdy bezpecnostny nastroj je len tak uzitocny, ako uzitocny je vytvarany vystup\&. Zlozite testy a algoritmy maju malu hodnotu, ak nie su prezentovane v organizovanej a zrozumitelnej forme\&. Pri pohlade na pocet sposobov, akymi je Nmap pouzivany ludmi a dalsim softwarom, neexistuje jednotlivy format, ktory by vyhovoval kazdemu, takze preto Nmap ponuka niekolko formatov vratane interaktivneho modu citatelneho pre ludi a XML formatu lahko spracovavaneho softwarom\&. +.PP +Okrem ponukania rozlicnych vystupnych formatov poskytuje Nmap parametre na ovladanie miery mnozstva vystupu tak ako aj debugovacie spravy\&. Vystupne typy mozu byt odoslane na standardny vystup alebo do nazvaneho suboru, do ktoreho moze Nmap data pripojit k existujucim alebo premazat subor a vlozit data\&. Vystupne subory mozu byt tiez pouzite na pokracovanie zachytavania vystupu z prerusenych scanov\&. +.PP +Nmap ponuka vystup v piatich moznych formatoch\&. Predvolenym je +interactive output +a je odosielany na standardny vystup (stdout)\&. Existuje aj +normal output +podobny +interactive +s tou vynimkou, ze zobrazuje menej runtimeovych informacii a upozorneni pri behu Nmapu, pretoze sa od neho ocakava, ze bude analyzovany az po skonceni scanu a nie interaktivne\&. +.PP +Vystup vo formate je jednym z najdolezitejsich vystupnych typov a moze byt konvertovany na HTML format, lahko rozobraty dalsimi programami napr\&. grafickymi rozhraniami Nmapu, alebo importovany do databaz\&. +.PP +Dva zostavajuce typy vystupov su jednoduchy +grepable output +obsahujuci vacsinu informacii o cielovej stanici na jednom riadku , asCRiPt KiDDi3 0utPUt +pre pouzivatelov povazujucich sa za |<\-r4d\&. +.PP +Zatial co interaktivny vystup je predvoleny a nema ziadne suvisiace parametre prikazoveho riadku, dalsie styri formaty maju tu istu syntax\&. Pouzivaju jeden argument, ktorym nazov vystupneho suboru\&. Mozu byt zadane aj viacere formaty, ale vzdy len raz\&. Ak napriklad chcete ulozit normalny vystup pre seba a zaroven ho ulozit do XML formatu kvoli analyze programu, mozete pouzit parametre +\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Tato kapitola sice pouziva kvoli strucnosti jednoduche nazvy suborov ako +myscan\&.xml, ale odporuca sa pouzit popisnejsie nazvy\&. Zvolene nazvy su otazkou osobnych preferencii, hoci ja pouzivam dlhe nazvy zahrnujuce datum scanu a par slov opisujucich scan, ktory je umiestneny v adresari podla scanovej spolocnosti\&. +.PP +Kym tieto parametre ukladaju vysledky do suborov, Nmap stale zobrazuje interaktivny vystup na stdout ako obycajne\&. Napriklad prikaz +\fBnmap \-oX myscan\&.xml target\fR +zobrazi XML vystup do suboru +myscan\&.xml +a standardny vystup zobrazi presne tie iste interaktivne vysledky, ako keby parameter +\fB\-oX\fR +nebol vobec specifikovany\&. Zmenit to mozete zadanim spojovnika ako argumentu pre jeden z typov formatov, co sposobi, ze Nmap deaktivuje interaktivny vystup a namiesto toho posle vysledky len do zadaneho formatu, cize prikaz +\fBnmap \-oX \- target\fR +odosle do stdout len vystup v XML\&. Vazne chyby mozu byt stale zobrazovane do normalneho chyboveho streamu s nazvom stderr\&. +.PP +Na rozdiel od niektorych argumentov Nmapu, medzera medzi parametrom logovacieho suboru (napr\&. +\fB\-oX\fR) a nazvom suboru alebo spojovnikom je povinna\&. Ak vynechate flagy a zadate argumenty ako napr\&. +\fB\-oG\-\fR +alebo +\fB\-oXscan\&.xml\fR +funkcia spatnej kompatibility Nmapu sposobi, ze sa vytvori vystupnych suborov v +\fInormal format\fR +s nazvom +G\-, resp\&. +Xscan\&.xml +\&. +.PP +Nmap takisto ponuka parametre na ovladanie mnozstva vystupu scanu a ci sa maju vystupne subory prepisat alebo sa ma pokracovat v pripajani dat\&. Vsetky tieto parametre su opisane nizsie\&. +.PP +\fBVystupne formaty Nmapu\fR +.PP +\fB\-oN <filespec>\fR (Normalny vystup) +.RS 4 +Sposobi, zenormal output +sa presmeruje do suboru so zadanym nazvom\&. Ako bolo rozobrate vyssie, tento vystup sa mierne lisi od interaktivneho \- +interactive output\&. +.RE +.PP +\fB\-oX <filespec>\fR (XML vystup) +.RS 4 +Sposobi, ze +XML output +sa presmeruje do suboru so zadanym nazvom\&. Nmap zahrna definiciu typu dokumentu (DTD), co umoznuje XML parserom vytvarat korektny XML vystup Nmapu\&. Je to sice urcene hlavne pre programove ucely, moze takisto pomoct ludom interpretovat XML vystup Nmapu\&. DTD definuje platne prvky formatu a casto vymenuva atributy a hodnoty, ktore mozu nadobudat\&. Posledna verzia je dostupna z adresy +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]\&. +.sp +XML ponuka stabilny format lahko spracovatelny softwarom\&. Volne XML parsery su dostupne vo vsetkych hlavnych programovacich jazykoch vratane C/C++,Perl, Python a Java\&. Su ponukane napojenia pre vacsinu tychto jazykov tak, ze si vedia specificky poradit s vystupom a behom Nmapu\&. Prikladmi su +\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[8]\d\s+2 +a +\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[9]\d\s+2 +v Perl CPAN\&. Skoro vo vsetkych pripadoch rozhrania netrivialnej aplikacie s Nmapom, XML je preferovanym formatom\&. +.sp +XML vystup sa odkazuje na XSL stylesheet, ktory moze byt pouzity na formatovanie vysledkov do HTML\&. Najjednoduchsim sposobom ako ho pouzit je jednoducho nahrat vystup v XML do weboveho prehliadaaca akym je Firefox alebo IE\&. Za normalnych okolnosti to bude fungovat len na pocitaci, na ktorom bezi Nmap (alebo na podobne nastavenom) kvoli napevno zadanej ceste suboru +nmap\&.xsl +suboroveho systemu\&. Zadanim parametrov +\fB\-\-webxml\fR +alebo +\fB\-\-stylesheet\fR +vytvorite prenosne XML subory, ktore sa na kazdom pocitaci s webovym prehliadacom zobrazia v HTML formate\&. +.RE +.PP +\fB\-oS <filespec>\fR (ScRipT KIdd|3 oUTpuT) +.RS 4 +Vystup formatu Script kiddie je podobny interaktivnemu, no dodatocne sa spracuvava, aby vyhovoval skupine l33t HaXXorZ, ktori predtym opovrhovali Nmapom kvoli jeho doslednemu formatovaniu velkych pismen a hlaskovaniu\&. Ludia s nedostatkom zmyslu pre humor by si mali uvedomit, ze tento parameter je mysleny ako vtip pre script kiddies, predtym ako ma zacnu flamovat za to, ze im udajne +\(lqpomaham\(rq\&. +.RE +.PP +\fB\-oG <filespec>\fR (Vystup typu Grep) +.RS 4 +Tento format vystupu je spomenuty ako posledny, pretoze je zastaraly\&. Vystup vo formate XML je ovela mocnejsi a takmer tak isto vhodny a pohodlny pre skusenych pouzivatelov\&. XML je standardom, pre ktory je dostupnych mnoho excelentnych parserov, kym vystup typu grep je len moj vlastny vymysel\&. XML je rozsiritelne na podporu novych vydanych funkcii Nmapu, zatial co tieto funkcie musim casto vynechat pri vystupe formatu grep kvoli nedostatku miesta na ich umiestnenie\&. +.sp +Aj tak je vsak tento format stale dost oblubeny\&. Je to jednoduchy format, ktory zobrazuje kazdy hostitelsku stanicu na jeden riadok a moze byt jednoducho prehladavany a parsovany standardnymi UNIXovymi nastrojmi ako grep, awk, cut, sed, diff ci Perl\&. Aj ja ho dokonca pouzivam pre jednorazove testy na prikazovom riadku\&. Najst vsetky hostitelske stanice s otvorenym portom ssh alebo s beziacim systemom Solaris si vyzaduje jednoduchy grep na identifikaciu hostitelskych stanic, napojeny rurou \- pipe na prikaz awk alebo cut, cim sa zobrazia pozadovane polia\&. +.sp +Vystup vo formate Grep sa sklada z komentara (riadky zacinajuce sa znakom) a riadkami cielov\&. Riadok ciela zahrnuje kombinaciu 6 oznacenych poli, oddelenych tabulatorom a nasledovanym dvojbodkou, +Host, +Ports, +Protocols, +Ignored State, +OS, +Seq Index, +IPID +a +Status\&. +.sp +Najdolezitejsim z tychto poli je vo vseobecnosti +Ports, ktore poskytuje podrobnosti o kazdom zaujimavom porte a obsahuje zoznam poloziek portov oddelenenych ciarkou, pricom kazda polozka reprezentuje jednotlivy port a zaujima podobu siedmych mensich poli oddelenych znakom /\&. Su nimi: +Port number, +State, +Protocol, +Owner, +Service, +SunRPC info +a +Version info\&. +.sp +Tak ako pri vystupe XML, ani tento manual nemoze pokryvat dokumentaciu celeho formatu\&. Podrobnejsi pohlad na format typu grep Nmapu je dostupny z adresy +\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]\&. +.RE +.PP +\fB\-oA <basename>\fR (Vystup vo vsetkych formatoch) +.RS 4 +Pre ucel pohodlnosti je mozne zadat +\fB\-oA \fR\fB\fIbasename\fR\fR, cim sa vysledky scanu naraz ulozia v normalnom, XML a grep formate\&. Ulozia sa do suborov v tvare are stored in +\fIbasename\fR\&.nmap, +\fIbasename\fR\&.xml a +\fIbasename\fR\&.gnmap\&. Tak ako pri vacsine programov je aj tu mozne pridat predponu adresarovej cesty, napr\&. +~/nmaplogs/foocorp/ +na UNIXovych systemoch alebo +c:\ehacking\esco +na Windows\&. +.RE +.PP +\fBMiera vypisu a moznosti debugovania\fR +.PP +\fB\-v\fR (Zvysit stupen miery vypisu) +.RS 4 +Zvysi stupen miery vypisu, cim Nmap zobrazi viac informacii o vykonavanom scane\&. Otvorene porty su zobrazovane hned pri ich najdeni\&. Ak Nmap odhaduje, ze scan zabere viac ako niekolko minut, zobrazi tento odhad\&. Pri dvojnasobnom pouziti parametru sa este viac zvysi miera vypisu\&. Viacnasobne pouzitie nema ziadny efekt\&. +.sp +Vacsina zmien ovplyvnuje len interaktivny vystup a niektore tiez normalny a script kiddie format vystupu\&. Ostatne typy vystupov su spracovavane pocitacmi, takze Nmap poskytuje podstatne podrobnosti predvolene bez unavovania cloveka\&. Existuje vsak niekolko zmien v dalsich modoch, kde sa moze velkost vystupu podstatne zmensit vynechanim niektorych podrobnosti\&. Napriklad riadok s komentarom vo formate grep poskytujuci vsetkych scanovanych portov sa zobrazi len v mode verbose \- s velkou mierou vypisu \- pretoze moze byt dost dlhy\&. +.RE +.PP +\fB\-d [level]\fR (Zvysit alebo nastavit uroven debugovania) +.RS 4 +Ak ani mod verbose neposkytuje dostatocne udaje, je vhodne pouzit debugovanie, cim sa doda omnoho viac informacii\&. Tak ako pri parametri stupna urovne vypisu, (\fB\-v\fR), debugovanie sa povoli riadkovym parametrom(\fB\-d\fR) a jeho stupen sa da zvysit jeho niekolkonasobnym zadanim\&. Alternativne je mozne nastavit stupen debugovania dosadenim argumentu za parameter +\fB\-d\fR, napriklad +\fB\-d9\fR +nastavi uroven na devat, co predstavuje najvyssi platny stupen a v pripade, ze sa nevykonava velmi jednoduchy scan s par portmi a cielovymi stanicami vyprodukuje tisicky riadkov\&. +.sp +Vystup debugovania je uzitocny, ak je podozrive, ze Nmap obsahuje bug, alebo ak ste proste zmateni, co Nmap robi a preco\&. Riadky debuggovania nie su prilis samo vysvetlujuce, kedze su urcene pre vyvojarov\&. Je mozne dopracovat sa k niecomu takemu: +Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Ak nerozumiete ani jednemu riadku, jedinym riesenim je ignorovat vypis alebo si ho vyhladat v zdrojovom kode, pripadne si vyziadat pomoc zo development listu (nmap\-dev)\&. Niektore riadku su samovysvetlujuce, no zvysovanim stupna debugovania sa straca prehlad\&. +.RE +.PP +\fB\-\-packet\-trace\fR (Sledovat odosielane a prijimane pakety a data) +.RS 4 +Nmap zobrazi obsah kazdeho odoslaneho alebo prijateho paketu\&. Casto sa to pouziva pre debugovanie, ale zide sa tiez novacikom, ktori su presne rozumiet, co sa deje pod pokryvkou Nmapu\&. Ak chcete predist zobrazovaniu tisicov riadkov, je mozne specifikovat obmedzeny pocet portov na scanovanie, napr\&.\fB\-p20\-30\fR\&. Ak vas zaujima len priebeh detekcie verzie, zadajte +\fB\-\-version\-trace\fR\&. +.RE +.PP +\fB\-\-iflist\fR (Zobrazit zoznam rozhrani a ciest) +.RS 4 +Zobrazi zoznam rozhrani a systemovych ciest tak ako boli detekovane Nmapom, co sa hodi pre debugovanie problemov s routovanim alebo nespravnou charakterizaciou zariadenia, napr\&. ak Nmap povazuje pripojenie PPP za ethernetovske\&. \&. +.RE +.PP +\fBRozne moznosti vystupu\fR +.PP +\fB\-\-append\-output\fR (Pripojit vystup namiesto vymazania predchadzajucich dat) +.RS 4 +Pri specifikacii nazvu suboru za parametrom formatu vystupu napr\&. +\fB\-oX\fR +alebo +\fB\-oN\fRsa v predvolenom nastaveni subor prepise\&. Ak chcete zachovat obsah suboru a pripojit nove vysledky, zadajte parameter +\fB\-\-append\-output\fR +a vsetky zadane nazvy suborov sa namiesto prepisovania budu rozsirovat o nove data\&. Nefunguje to pre data scanu pre format XML(\fB\-oX\fR), pretoze sa vysledny subor nespracuje spravne, az kym ho neopravite rucne\&. +.RE +.PP +\fB\-\-resume <filename>\fR (Pokracovat v prerusenom scane) +.RS 4 +Niektore rozsiahle scany trvaju Nmapu velmi dlho \- radovo aj dni\&. Taketo scany nebezia stale do konca\&. Mozu existovat obmedzenia, ze Nmap nesmie byt spusteny pocas pracovneho casu, mohla by spadnut siet, pocitac so spustenym Nmapom by mohol planovane ci neplanovane restartovat alebo by Nmap sam mohol zhavarovat\&. Administrator ho moze zrusit takisto a to stlacenim kombinacie +ctrl\-C\&. Restartovat cely scan od zaciatku moze byt neprijatelne\&. Nastastie, ak sa uchovavali logovacie zaznamy typu normal (\fB\-oN\fR) alebo grep (\fB\-oG\fR) , pouzivatel moze pokracovat v scanovani s tymi istymi cielovymi stanicami ako predtym pred prerusenim scanu\&. Docieli sa to zadanim parametra +\fB\-\-resume\fR +a vystupneho suboru vo formate normal/grep ako argumentu\&. Ziadne dalsie argumenty nie su povolene, pretoze Nmap spracuvava subor pomocou predchadzajucich parametrov\&. Je teda potrebne zadat +\fBnmap \-\-resume \fR\fB\fIlogfilename\fR\fR\&. Nmap pripoji nove vysledky do suborov specifikovanych v predchadzajucom vykonavani scanu\&. Taketo obnovenie scanu nepodporuje vystup v XML formate, pretoze miesanie vysledkov dvoch spusteni scanu do jedneho spolocneho spravneho XML suboru by bolo narocne\&. +.RE +.PP +\fB\-\-stylesheet <path or URL>\fR (Nastavit XSL stylesheet na prevod XML vystupu) +.RS 4 +Nmap je dodavany s XSL stylesheetom nazvanym +nmap\&.xsl +na prezeranie a preklad XML formatu do HTML\&. Vystup XML zahrna direktivu +xml\-stylesheet +, ktora ukazuje na subor +nmap\&.xml, kde bola pocitatocne nainstalovana Nmapom (vo Windowse aktualnym pracovnym adresarom)\&. Nahrajete XML vystup Nmapu do moderneho weboveho prehliadaca a ten by mal zo suboroveho systemu najst subor +nmap\&.xsl +a pouzit ho na preklad vysledkov\&. Ak si zelate pouzit odlisny stylesheet, zadajte ho ako argument za parametrom +\fB\-\-stylesheet\fR\&. Je nutne zadat plnu cestu alebo adresu URL\&. Jednym z beznych prikladov je +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR, co sposobi, ze browser nahra najnovsiu verziu stylesheetu z adresy Insecure\&.Org\&. Parameter +\fB\-\-webxml\fR +robi to iste bez tolkeho pisania a memorovania\&. Nahratie XSL stylesheetu z Insecure\&.Org ulahcuje prezeranie vysledkov na pocitaci, ktory nema Nmap (a preto ani +nmap\&.xsl)\&. URL je teda casto uzitocnejsia, ale ulozenie suboru v lokalnom suborovom systeme sa pouziva predvolene kvoli bezpecnosti\&. +.RE +.PP +\fB\-\-webxml\fR (Nahrat stylesheet z adresy Insecure\&.Org) +.RS 4 +Tento pohodlny parameter je jednoducho alternativou k zadaniu +\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR\&. +.RE +.PP +\fB\-\-no\-stylesheet\fR (Vynechat zadanie XSL stylesheetu z XML) +.RS 4 +Tento parameter zabrani Nmapu spajat XSL stylesheet s XML vystupom\&. Vynecha sa direktiva +xml\-stylesheet\&. +.RE +.SH "ROZNE MOZNOSTI" +.PP +Tato cast opisuje niektore dolezite a menej dolezite moznosti, ktore nikam inam nezapadaju\&. +.PP +\fB\-6\fR (Povolit scanovanie IPv6) +.RS 4 +Od roku 2002 ponuka Nmap podporu protokolu IPv6 pre svoje najpopularnejsie funkcie, specialne pre ping scan (len pri TCP), scanovani typu connect() a detekcii verzie\&. Syntax prikazov je rovnaka, len sa este prida parameter +\fB\-6\fR\&. Pri zadavani IP adresy je samozrejme nutne pouzit syntax IPv6\&. Adresa moze byt napr\&. v tvare +3ffe:7501:4819:2000:210:f3ff:fe03:14d0, a preto je odporucane pouzit hostitelske nazvy\&. Vystup vyzera podobne ako zvycajne, s adresou v tvare IPv6 v riadku +\(lqinteresting ports\(rq, ktory IPv6 prezradza ako jediny\&. +.sp +Aj ked sa IPv6 stale nerozsiril poriadne, pouziva sa vyznamne v niektorych krajinach, zvycajne azijskych, a vacsina modernych operacnych systemov ho podporuju\&. Ak chcete pouzit Nmap s protokolom IPv6, musia byt zdrojovy aj cielovy pocitac scanu nastavene na tento protokol\&. Ak vam vas ISP, ako vacsina, nepriradi IPv6 adresy, su zdarma dostupne tunelovacie programy pre IPv6 a dobre spolupracuju s Nmapom\&. Jeden z tych lepsich je BT Exact\&. Pouzil som aj jeden poskytovany spolocnostou na adrese\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]\&. Dalsou metodou zdarma su tunely IPv6 na IPv4\&. +.RE +.PP +\fB\-A\fR (Parametre agresivneho scanu) +.RS 4 +Tento parameter umoznuje dalsie pokrocile a agresivne moznosti\&. Este som sa nerozhodol presne, co vsetko to predstavuje\&. V sucasnosti umoznuje detekciu OS (\fB\-O\fR) a scan verzie(\fB\-sV\fR)\&. Viac funkcii sa moze pridat v buducnosti\&. Dovodom je umoznit rozsiahlu mnozinu moznosti scanu bez toho, aby si ludia museli pamatat mnozstvo flagov\&. Tento parameter povoluje len funkcie, no nie casovacie moznosti (napr\&.\fB\-T4\fR) alebo parametre miery vystupu (\fB\-v\fR), ktore by tiez mohli byt potrebne\&. +.RE +.PP +\fB\-\-datadir <directoryname>\fR (Specifikovat vlastne datoveho suboru Nmapu) +.RS 4 +Nmap ziskava specialne data pocas behu zo suborovnmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes +a +nmap\-os\-fingerprints\&. Najprv ich hlada v adresari zadanom volitelne parametrom +\fB\-\-datadir\fR\&. Ak tam nie su najdene vsetky subory, chybajuce su hladane v adresari specifikovanom premennou NMAPDIR\&. Dalsim v poradi je adresar +~/\&.nmap, kde sa hladaju pre systemy POSIX realne a efektivne UID a pre systemy Win32 umiestnenia spustitelneho suboru Nmapu\&. Potom sa hlada nakompilovane umiestnenie napr\&. +/usr/local/share/nmap +ci +/usr/share/nmap +\&. Ako posledna moznost pri hladani sa pouzije aktualny adresar\&. +.RE +.PP +\fB\-\-send\-eth\fR (Posielat neupravene pakety na ethernetovej vrstve) +.RS 4 +Nmap bude odosielat pakety na neupravenej druhej, ethernetovej vrstve (vrstva data link) namiesto vyssej sietovej vrstvy\&. V predvolenom nastaveni zvoli Nmap sposob, ktory sa lepsie hodi pre danu platformu\&. Neupravene sockety (sietova vrstva) su efektivnejsie pre UNIXovske pocitace, kym ethernetovske ramce sa vyzaduju pre operacie na platforme Windows, pretoze Microsoft nepodporuje neupravene sockety\&. Nmap pouziva na UNIXoch vzdy neupravene IP pakety, napriek tejto moznosti, aj ked neexistuje ina volba\&. +.RE +.PP +\fB\-\-send\-ip\fR (Posielat neupravene pakety na vrstve IP) +.RS 4 +Nmap bude odosielat pakety prostrednictvom neupravenych IP socketov a nebude odosielat nizkourovnove ethernetove ramce\&. Je to doplnkom parametra +\fB\-\-send\-eth\fR +rozoberaneho predtym\&. +.RE +.PP +\fB\-\-privileged\fR (Predpokladat, ze pouzivatel je plne privilegovany) +.RS 4 +Nmap bude predpokladat, ze ma dost privilegii, aby mohol odosielat neupravene sockety, vykonavat sniffing paketov a podobne operacie, ktore obycajne na UNIXovych systemoch vyzaduju privilegia roota\&. Za normalnych okolnosti Nmap skonci, ak su taketo operacie pozadovane, no funkcia geteuid() nevrati nulu\&. Parameter +\fB\-\-privileged\fR +sa hodi pri schopnostiach kernelu Linuxu a pri podobnych systemoch, ktore mozu byt konfigurovane, aby umoznili neprivilegovanym pouzivatelom vykonavat scany pouzitim neupravenych paketov\&. Tento parameter je potrebne zadat pred vsetkymi parametrami, ktore vyzaduju privilegia (SYN scan, detekcia OS, atd\&.)\&. Premenna NMAP_PRIVILEGED moze byt nastavena ako ekvivalentna alternativa k parametru +\fB\-\-privileged\fR\&. +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (Zobrazit cislo verzie) +.RS 4 +Zobrazi cislo verzie Nmapu a ukonci sa\&. +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (Zobrazi obsah napovedy) +.RS 4 +Zobrazi kratku obrazovku napovedy s najbeznejsimi prikazmi\&. To iste sa dosiahne pri spusteni Nmapu bez argumentov\&. +.RE +.SH "INTERAKCIA S BEHOM PROGRAMU" +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBPoznámka\fR +.ps -1 +.br +.PP +Funkcia interakcie s behom programu este na systemoch Windows nie je plne podporovana\&. +.sp .5v +.RE +.PP +Pocas behu Nmapu sa zachytavaju vsetky stlacenie klucovych klavesov, co dovoluje komunikovat s programom bez jeho zastavenia a restartovania\&. Iste specialne klavesy zmenia parametre, zatial co ine klavesy zobrazia stavovu spravu informujucu o scane\&. Konvencia je taka, ze +\fImale pismena \fR +zvysuju mnozstvo zobrazovanych udajov a +\fIvelke pismena\fR +ho znizuju\&. +.PP +\fBv\fR / \fBV\fR +.RS 4 +Zvysit / Znizit mieru zobrazovania +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +Zvysit / Znizit stupen debugovania +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +Zapnut/ Vypnut sledovanie paketov +.RE +.PP +Cokolvek ine +.RS 4 +Zobrazi stavovu spravu, napr\&.: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "PRIKLADY" +.PP +Na tomto mieste je niekolko prikladov pouzitia Nmapu, od jednoduchych a rutinnych az po zlozitejsie a tajuplne\&. Pouzite su niektore vlastne IP adresy a nazvy domen, aby bol proces konkretny, no namiesto nich by sme mali pouzit nahrady +\fIvasej vlastnej siete\&.\fR\&. Aj ked si nemyslim, ze scanovanie portov dalsich sieti je alebo by malo byt nelegalne, administratori niektorych sieti nijak neocenuju nevyziadane scanovanie svojich sieti a mozu sa stazovat\&. Najlepsie je najprv ziskat opravnenie\&. +.PP +Pre testovacie ucely mate opravnenie scanovat pocitac na adrese +scanme\&.nmap\&.org\&. Toto opravnenie vsak obsahuje len scanovanie pomocou Nmapu a nie testovanie exploitov alebo utokov typu Denial of service\&. Aby sa nevycerpala sirka pasma, nespustajte viac ako 12 scanov na tento pocitac za jeden den\&. Ak je tato sluzba volneho scanovania cieloveho pocitaca zneuzita, zrusi sa a Nmap oznami +Failed to resolve given hostname/IP: scanme\&.nmap\&.org\&. Tieto opravnenia sa tiez vztahuju na hostitelske pocitace +scanme2\&.nmap\&.org, +scanme3\&.nmap\&.org +atd\&., hoci tieto stanice momentalne neexistuju\&. +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +Tento parameter spusti scan vsetkych rezervovanych TCP portov na pocitaci +scanme\&.nmap\&.org +\&. Parameter\fB\-v\fR +umoznuje tzv\&. verbose mode\&. +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +Spusti SYN scan proti kazdemu aktivnemu pocitacu v sieti triedy +\(lqclass C\(rq +s nazvom Scanme\&. Takisto sa pokusi urcit spustene operacne systemy aktivnych pocitacov\&. K tymto parametrom sa vyzaduju privilegia roota\&. +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +Spusti vypocet hostitelskych stanic a TCP scan na prvu polovicu z 255 moznych 8\-bitovych subnetov v adresnom priestore 198\&.116 triedy B\&. Zaroven sa testuje, ci na systemoch bezia sluzby sshd, DNS, pop3d, imapd alebo port 4564\&. Pre kazdy z najdenych otvorenych portov sa pouzije detekcia verzia na urcenie spustenych aplikacii\&. +.PP +\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR +.PP +Nmap zvoli nahodne 100 000 hostitelskych pocitacov a scanuje ich port 80\&. Vypocet hostitelskych stanic je zakazany parametrom +\fB\-P0\fR, pretoze je zbytocne najprv posielat test na zistenie, ci je hostitelska stanica aktivna, ak sa bude aj tak testovat len jeden port\&. +.PP +\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +Scanuje 4096 IP adries kvoli najdeniu webserverov (bez ich pingnutia) a vystup ulozi vo formatoch grep a XML\&. +.PP +\fBhost \-l company\&.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR +.PP +Vykona preklad domeny DNS, cim sa najdu hostitelske pocitace na adrese company\&.com a potom Nmap pouzije tieto IP adresy\&. Tieto prikazy sa mozu pouzit pre pocitac so systemom GNU/Linux \- dalsie systemy maju odlisne prikazy na vykonavanie prekladu domeny\&. +.SH "BUGY" +.PP +Tak ako autor, ani Nmap nie je dokonaly, no mate moznost pomoct pri jeho vylepsovani tym, ze zaslete spravu o bugoch alebo dokonca napisete patch\&. Ak sa Nmap nechova podla ocakavania, vykonajte najprv upgrade na najnovsiu verziu dostupnu z adresy +\m[blue]\fB\%https://nmap.org/\fR\m[]\&. Ak problem pretrvava, preskumajte, ci uz nebol objaveny a adresovany\&. Vyskusajte pouzit google s vyrazom chybovej spravy alebo prehladajte archivy Nmap\-dev na adrese +\m[blue]\fB\%https://seclists.org/\fR\m[]\&. Precitajte si aj tento plny manual\&. Ak nenajdete nic podobne, poslite mail o bugu na adresu +<dev@nmap\&.org>\&. Zahrnte vsetko, co ste sa dozvedeli o probleme spolu s verziou Nmapu a operacnym systemom\&. Spravy o problemoch a otazky na pouzivanie Nmapu budu ovela pravdepodobnejsie zodpovedane, ak budu odoslane na dev@nmap\&.org namiesto odosielania priamo Fyodorovi\&. +.PP +Patche s kodom na opravu bugov su este lepsie ako samotne spravy o bugoch\&. Zakladne instrukcie na tvorbu suborov patchov s vasimi zmenami su dostupne na +\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[]\&. Patche mozu byt odoslane prednostne na nmap\-dev alebo priamo Fyodorovi\&. +.SH "AUTOR" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%http://www.insecure.org\fR\m[]) +.PP +Za posledne roky stovky ludi vyznamne prispeli pre Nmap\&. Podrobnosti o nich su obsiahnute v suboreCHANGELOG, ktory sa dodava s Nmapom a je dostupny z adresy\m[blue]\fB\%https://nmap.org/changelog.html\fR\m[]\&. +.SH "PRAVNE PREHLASENIA" +.SS "Unofficial Translation Disclaimer/ Zrieknutie sa zaruky nad neoficialnym prekladom" +.PP +This is an unnofficial translation of the +\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[10]\d\s+2 +into Slovak\&. It was not written by Insecure\&.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\&. However, we hope that this translation helps Slovak speakers understand the Nmap license better\&. +.PP +Toto je len neoficialny preklad\m[blue]\fBlicencnych podrobnosti Nmapu\fR\m[]\&\s-2\u[10]\d\s+2 +do slovenciny\&. Nebol vytvoreny spolocnostou Insecure\&.Com LLC a ani legalne nevyjadruje podmienky distribucie pre Nmap; to ma za ulohu len povodny anglicky text\&. Aj tak vsak dufame, ze tento preklad pomoze slovensky hovoriacim ludom lepsie pochopit licenciu pre Nmap\&. +.SS "Copyright a licencia Nmapu" +.PP +Program Nmap Security Scanner je produktom (C) 1996\-2005 Insecure\&.Com LLC\&. Nmap je tiez registrovana obchodna znacka spolocnosti Insecure\&.Com LLC\&. Tento program je free softwarom; je mozne ho redistribuovat alebo modifikovat podla podmienok licencie GNU General Public License 2 uverejnenou zdruzenim Free Software Foundation\&. Zarucuje pravo na pouzivanie, modifikaciu a redistribuciu tohoto softwaru za istych podmienok\&. Ak mate zaujem o zaclenenie technologie Nmapu do proprietarneho softwaru, mozeme predat alternativne licencie (kontakt +<sales@insecure\&.com>)\&. Vela vyrobcov bezpecnostnych scannerov uz licencuju technologiu Nmapu, napr\&. zistovanie hostitelskych stanic, scanovanie portov, detekcia OS a detekcia sluzby/verzie\&. +.PP +Je nutne poznamenat, ze GPL uvaluje dolezite obmedzenia na +\(lqodvodene diela\(rq, no neposkytuje podrobnu definiciu tohoto pojmu\&. Aby sa predislo nedorozumeniam, za ucelom tejto licencie povazujeme aplikaciu za +\(lqodvodene dielo (derivative work)\(rq +ak vykonava lubovolnu z nasledujucich veci: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Zaclenuje zdrojovy kod z Nmapu +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Nacitava alebo obsahuje Nmapovske Nmap datove subory chranene copyrightom, napr\&. +nmap\-os\-fingerprints +ci +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Spusta Nmap a spracuvava vysledky(oproti typickym shellovskym aplikaciam ci aplikaciam s menu pre spustanie, ktore jednoducho zobrazia neupraveny vystup Nmapu a nie su odvodenym dielami\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Zaclenuje, obsahuje alebo zhromazduje Nmap do proprietarneho spustitelneho instalacneho programu, napr\&. tie vyrobene spolocnostou InstallShield\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Je prepojeny na kniznicu alebo spusta program, co vykonava lubovolnu hore uvedenu cinnost\&. +.RE +.PP +Pojem +\(lqNmap\(rq +by sa mal pouzit aj pri zahrnuti akychkolvek casti alebo diel odvodenych od Nmapu\&. Tento zoznam nie je vyhradny, no jeho zamerom je objasnit nasu interpretaciu odvodenych diel pomocou niekolkych beznych prikladov\&. Tieto obmedzenia vlastne platia len pri redistribucii Nmapu\&. Napriklad vas nic nemoze zastavit od napisania a predavania proprietarnej celnej aplikacie k Nmapu, mozete to sami distribuovat a zverejnit pre verejnost adresu +\m[blue]\fB\%https://nmap.org/\fR\m[] +na stiahnutie Nmapu\&. +.PP +Nepokladame to za dodatocne restrikcie ku GPL, ale len ako objasnenie toho ako interpretujeme +\(lqodvodene diela\(rq +podla vztahu k nasmu produktu s licenciou GPL\&. Je to nieco podobne, ako ked Linus Torvalds oznamil svoju interpretaciu ako sa vztahuju +\(lqodvodene diela\(rq +k modulom linuxovskeho kernelu\&. Nasa intepretacia sa odkazuje len na Nmap \- nehovorime za ine GPL produkty\&. +.PP +Ak mate otazky tykajuce sa obmedzeni licencii GPL ohladom pouzivania Nmapu v dielach nelicencovanych GPL, radi pomozeme\&. Ako uz bolo spomenute vyssie, tiez ponukame alternativne licencie na zahrnutie Nmapu do proprietarnych aplikacii a zariadeni\&. Tieto zmluvy uz boli predane mnohym vyrobcom zaoberajucich sa bezpecnostou a vseobecne zahrnuju trvalu licenciu tak ako aj poskytovanie prioritnej podpory a updateov a pomoc financne podporovat pokracujuci vyvoj technologie Nmapu\&. Na ziskanie dalsich informacii zaslite e\-mail na adresu +<sales@insecure\&.com>\&. +.PP +Ako vynimku ku terminom licencie GPL, spolocnost Insecure\&.Com LLC udeluje povolenie spajat kod tohoto programu s lubovolnou verziou kniznice OpenSSL, ktora je distribuovana pod licenciou identickou k tej zmienenej v zahrnutom subore Copying\&.OpenSSL, a distribuovat suvisiace kombinacie vratane tychto dvoch\&. Musite dodrziavat GNU GPL vo vsetkych ohladoch pre kod iny ako OpenSSL\&. Ak pozmenite tento subor, je mozne nezavazne rozsirit tuto vynimku na vasu verziu tohoto suboru\&. +.PP +Ak ste tieto subory ziskali s pisomnou licencnou zmluvou alebo sa zmluva zmienuje o inych pojmoch ako su vyssie uvedene, ma prednost pred tymito podmienkami\&. +.SS "Licencia Creative Commons pre tuto prirucku Nmapu" +.PP +Tato prirucka Nmapu je chranena copyrightom spolocnosti (C) 2005 Insecure\&.Com LLC a je preto umiestnena pod verziou licenciou +\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2 +verzie 2\&.5, co dovoluje redistribuovat a modifikovat dielo podla ziadosti, pricom sa odkazete na povodny zdroj\&. Alternativne je mozne vybrat si, ze tento dokument sa bude povazovat, ze spada pod tu istu licenciu ako sam Nmap (predtym rozobrata)\&. +.SS "Dostupnost zdrojoveho kodu a prispevky komunity" +.PP +K tomuto softwaru je poskytovany kod, pretoze si myslime, ze pouzivatelia maju pravo poznat pred jeho spustenim, co presne program vykona\&. To umoznuje aj vam skumat software kvoli bezpecnostnym dieram, aj ked zatial neboli ziadne najdene\&. +.PP +Zdrojovy kod vam tiez dovoluje portovat Nmap na nove platformy, opravovat bugy, a pridavat nove funkcie\&. Ste vrelo podporovani zasielat vase modifikacie pre pripadne zaclenenie do hlavnej distribucie na adresu +<fyodor@nmap\&.org>\&. Zaslatim tychto zmien Fyodorovi alebo na niektory z vyvojarskych mailing listov Insecure\&.Org sa predpoklada, ze poskytujete Fyodorovi a firme Insecure\&.Com LLC nelimitovane, nevylucne pravo na pouzivanie, modifikaciu a opatovne licencovanie kodu\&. Nmap bude vzdy dostupnym Open Source programom, ale tato zmienka je dolezita, pretoze nemoznost prelicencovat kod uz sposobila obrovske problemy dalsim projektom Free Software (napr\&. KDE a NASM)\&. Prilezitostne relicencujeme kod tretim stranam podla hore spomenuteho\&. Ak si prajete specifikovat specialne podmienky licencie vasich prispevkov, uvedte to pri ich zasielani\&. +.SS "Bez zaruky" +.PP +Tento program je distribuovany s vierou, ze bude uzitocny, ale BEZ AKEJKOLVEK ZARUKY; dokonca aj bez naznacenej zaruky PREDAJNOSTI a VHODNOSTI NA URCITY UCEL\&. Dalsie podrobnosti mozete najst na adrese\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[], alebo v subore COPYING zahrnutym v Nmape\&. +.PP +Je takisto dolezite poznamenat, ze Nmap je znamy tym, ze obcas sposobi zrutenie slabo naprogramovanych aplikacii, stackov TCP/IP a dokonca aj operacnych systemov\&. Aj ked sa to stava velmi zriedkave, je na to potrebne mysliet\&. +\fINmap by sa nikdy nemal spustat na testovanie kritickych systemov \fR, kym nie ste pripraveny trpiet ich vypadky\&. Na tomto mieste uznavame, ze Nmap moze sposobit spadnutie vasich systemov alebo sieti a zriekame sa vsetkych zavazkov za akukolvek skodu alebo problemy pripadne zapricinene Nmapom\&. +.SS "Nevhodne pouzitie" +.PP +Kvoli istemu riziku padov systemov a niekolkym trufalcom, ktori pouzivaju Nmap na prieskum pred napadnutim systemov existuju administratori, ktori su znepokojeni a mozu sa stazovat pri zisteni scanovania systemu\&. Je preto doporuceniahodne vyziadat si povolenie pred podniknutim co i len lahkeho scanu siete\&. +.PP +Nmap by nikdy nemal byt z bezpecnostnych dovodov instalovany so specialnymi privilegiami (napr\&. suid root) +.SS "Software tretich stran" +.PP +Tento produkt zahrnuje software vyvinuty organizaciou +\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[11]\d\s+2\&. Modifikovana verzia kniznice +\m[blue]\fBLibpcap portable packet capture library\fR\m[]\&\s-2\u[12]\d\s+2 +sa dofavat spolu s nmapom\&. Verzia Nmapu pre Windows namiesto toho vyuziva od tejto kniznice odvodenu +\m[blue]\fBWinPcap library\fR\m[]\&\s-2\u[13]\d\s+2\&. Podpora regularnych vyrazov je poskytovana kniznicou\m[blue]\fBPCRE library\fR\m[]\&\s-2\u[14]\d\s+2, ktora je open source softwarom a jej autorom je Philip Hazel\&. Niektore neupravene sietove funkcie pouzivaju sietovu kniznicu s nazvom\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[15]\d\s+2 +vytvorena autorom Dug Song\&. Jej pozmenena verzia sa dodava s Nmapom\&. Nmap moze byt volitelne spojeny s toolkitom\m[blue]\fBOpenSSL cryptography toolkit\fR\m[]\&\s-2\u[16]\d\s+2 +na podporu detekcie verzie protokolu SSL\&. Kazdy z tu spomenuteho softwaru tretich stran je volne siritelny pod softwarovymi licenciami typu BSD\&. +.SS "Klasifikacia riadenia exportu z USA (US Export Control Classification)" +.PP +Klasifikacia riadenia exportu z USA: Insecure\&.Com LLC sa domnieva, ze Nmap spada pod americky ECCN (export control classification number) 5D992\&. Tato kategoria sa nazyva +\(lqInformation Security software not controlled by 5D002\(rq\&. Jedinym obmedzenim tejto klasifikacie je AT (anti\-terorizmus), ktory sa vztahuje na skoro vsetky tovary a odmieta exportovat do par nebezpecnych krajin ako su Iran a Severna Korea, preto exportovanie Nmapu nevyzaduje ziadnu specialnu licenciu, povolenie alebo ine splnomocnenie vladou\&. +.SH "POZNÁMKY" +.IP " 1." 4 +povodnej anglickej verzie +.RS 4 +\%https://nmap.org/man/ +.RE +.IP " 2." 4 +Creative Commons Attribution License +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 3." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 4." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 5." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 6." 4 +TCP RFC +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 7." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 8." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP " 9." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP "10." 4 +Nmap license details +.RS 4 +\%https://nmap.org/man/man-legal.html +.RE +.IP "11." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "12." 4 +Libpcap portable packet capture library +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "13." 4 +WinPcap library +.RS 4 +\%http://www.winpcap.org +.RE +.IP "14." 4 +PCRE library +.RS 4 +\%http://www.pcre.org +.RE +.IP "15." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "16." 4 +OpenSSL cryptography toolkit +.RS 4 +\%http://www.openssl.org +.RE diff --git a/docs/man-xlate/nmap-zh.1 b/docs/man-xlate/nmap-zh.1 new file mode 100644 index 0000000..df19327 --- /dev/null +++ b/docs/man-xlate/nmap-zh.1 @@ -0,0 +1,1274 @@ +'\" t +.\" Title: nmap +.\" Author: [see the "作者" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> +.\" Date: 2023-03-31 +.\" Manual: Nmap参考指南 +.\" Source: Nmap +.\" Language: Chinese +.\" +.TH "NMAP" "1" "2023-03-31" "Nmap" "Nmap参考指南" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "名称" +nmap \- 网络探测工具和安全/端口扫描器 +.SH "大纲" +.HP \w'\fBnmap\fR\ 'u +\fBnmap\fR [\fI扫描类型\fR...] [\fI选项\fR] {\fI扫描目标说明\fR} +.SH "描述" +.PP +Nmap (\(lqNetwork Mapper(网络映射器)\(rq) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些 主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。 +.PP +Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。 +\(lq所感兴趣的端口表格\(rq是其中的关键。那张表列出端口号,协议,服务名称和状态。状态可能是 +open(开放的),filtered(被过滤的), +closed(关闭的),或者unfiltered(未被过滤的)。 Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。 +filtered(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知 它是 +open(开放的) 还是 +closed(关闭的)。 +closed(关闭的) 端口没有应用程序在它上面监听,但是他们随时可能开放。 当端口对Nmap的探测做出响应,但是Nmap无法确定它们是关闭还是开放时,这些端口就被认为是 +unfiltered(未被过滤的) 如果Nmap报告状态组合 +open|filtered +和 +closed|filtered时,那说明Nmap无法确定该端口处于两个状态中的哪一个状态。 当要求进行版本探测时,端口表也可以包含软件的版本信息。当要求进行IP协议扫描时 (\fB\-sO\fR),Nmap提供关于所支持的IP协议而不是正在监听的端口的信息。 +.PP +除了所感兴趣的端口表,Nmap还能提供关于目标机的进一步信息,包括反向域名,操作系统猜测,设备类型,和MAC地址。 +.PP +一个典型的Nmap扫描如例 1 \(lq一个典型的Nmap扫描\(rq所示。在这个例子中,唯一的选项是\fB\-A\fR, 用来进行操作系统及其版本的探测,\fB\-T4\fR +可以加快执行速度,接着是两个目标主机名。 +.PP +\fB例 1. 一个典型的Nmap扫描\fR +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nmap \-A \-T4 scanme\&.nmap\&.org playground + +Starting nmap ( https://nmap\&.org/ ) +Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62): +(The 1663 ports scanned but not shown below are in state: filtered) +port STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X +OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11,Linux 2\&.6\&.0 \- 2\&.6\&.11 +Uptime 33。908 days (since Thu Jul 21 03:38:03 2005) + +Interesting ports on playground。nmap。或者g (192\&.168\&.0\&.40): +(The 1659 ports scanned but not shown below are in state: closed) +port STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios\-ssn +389/tcp open ldap? +445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds +1002/tcp open windows\-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper +5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900) +5900/tcp open vnc VNC (protocol 3\&.8) +MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows,Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds +.fi +.if n \{\ +.RE +.\} +.SH "译注" +.PP +该Nmap参考指南中文版由Fei Yang +<fyang1024@gmail\&.com>和Lei Li<lilei_721@6611\&.org> +从\m[blue]\fB英文版本\fR\m[]\&\s-2\u[1]\d\s+2翻译而来。 我们希望这将使全世界使用中文的人们更了解Nmap,但我们不能保证该译本和官方的 英文版本一样完整,也不能保证同步更新。 它可以在\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2下被修改并重新发布。 +.SH "选项概要" +.PP +当Nmap不带选项运行时,该选项概要会被输出,最新的版本在这里 +\m[blue]\fB\%https://nmap.org/data/nmap.usage.txt\fR\m[]。 它帮助人们记住最常用的选项,但不能替代本手册其余深入的文档,一些晦涩的选项甚至不在这里。 +.PP +.if n \{\ +.RS 4 +.\} +.nf +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\-255\&.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 + \-sP: Ping Scan \- go no further than determining if host is online + \-P0: Treat all hosts as online \-\- skip host discovery + \-PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery probes to given ports + \-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes + \-n/\-R: Never do DNS resolution/Always resolve [default: sometimes resolve] +SCAN TECHNIQUES: + \-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans + \-sN/sF/sX: TCP Null, FIN, and Xmas scans + \-\-scanflags <flags>: Customize TCP scan flags + \-sI <zombie host[:probeport]>: Idlescan + \-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 + \-F: Fast \- Scan only the ports listed in the nmap\-services file) + \-r: Scan ports sequentially \- don\*(Aqt randomize +SERVICE/VERSION DETECTION: + \-sV: Probe open ports to determine service/version info + \-\-version\-light: Limit to most likely probes for faster identification + \-\-version\-all: Try every single probe for version detection + \-\-version\-trace: Show detailed version scan activity (for debugging) +OS DETECTION: + \-O: Enable OS detection + \-\-osscan\-limit: Limit OS detection to promising targets + \-\-osscan\-guess: Guess OS more aggressively +TIMING AND PERFORMANCE: + \-T[0\-6]: 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 <msec>: Specifies + probe round trip time\&. + \-\-host\-timeout <msec>: Give up on target after this long + \-\-scan\-delay/\-\-max\-scan\-delay <msec>: Adjust delay between probes +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 + \-\-data\-length <num>: Append random data to sent packets + \-\-ttl <val>: Set IP time\-to\-live field + \-\-spoof\-mac <mac address, prefix, or vendor name>: Spoof your MAC address +OUTPUT: + \-oN/\-oX/\-oS/\-oG <file>: Output scan results 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 twice for more effect) + \-d[level]: Set or increase debugging level (Up to 9 is meaningful) + \-\-packet\-trace: Show all packets sent and received + \-\-iflist: Print host interfaces and routes (for debugging) + \-\-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 + \-\-no\-stylesheet: Prevent Nmap from associating XSL stylesheet w/XML output +MISC: + \-6: Enable IPv6 scanning + \-A: Enables OS detection and Version detection + \-\-datadir <dirname>: Specify custom Nmap data file location + \-\-send\-eth/\-\-send\-ip: Send packets using raw ethernet frames or IP packets + \-\-privileged: Assume that the user is fully privileged + \-V: Print version number + \-h: Print this help summary page\&. +EXAMPLES: + nmap \-v \-A scanme\&.nmap\&.org + nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8 + nmap \-v \-iR 10000 \-P0 \-p 80 +.fi +.if n \{\ +.RE +.\} +.sp +.SH "目标说明" +.PP +除了选项,所有出现在Nmap命令行上的都被视为对目标主机的说明。 最简单的情况是指定一个目标IP地址或主机名。 +.PP +有时候您希望扫描整个网络的相邻主机。为此,Nmap支持CIDR风格的地址。您可以附加 一个/\fInumbit\fR在一个IP地址或主机名后面, Nmap将会扫描所有和该参考IP地址具有 +\fInumbit\fR相同比特的所有IP地址或主机。 例如,192\&.168\&.10\&.0/24将会扫描192\&.168\&.10\&.0 (二进制格式: +11000000 10101000 00001010 00000000)和192\&.168\&.10\&.255 (二进制格式: +11000000 10101000 00001010 11111111)之间的256台主机。 192\&.168\&.10\&.40/24 将会做同样的事情。假设主机 scanme\&.nmap\&.org的IP地址是205\&.217\&.153\&.62, scanme\&.nmap\&.org/16 将扫描205\&.217\&.0\&.0和205\&.217\&.255\&.255之间的65,536 个IP地址。 所允许的最小值是/1, 这将会扫描半个互联网。最大值是/32,这将会扫描该主机或IP地址, 因为所有的比特都固定了。 +.PP +CIDR标志位很简洁但有时候不够灵活。例如,您也许想要扫描 192\&.168\&.0\&.0/16,但略过任何以\&.0或者\&.255 结束的IP地址,因为它们通常是广播地址。 Nmap通过八位字节地址范围支持这样的扫描 您可以用逗号分开的数字或范围列表为IP地址的每个八位字节指定它的范围。 例如,192\&.168\&.0\-255\&.1\-254 将略过在该范围内以\&.0和\&.255结束的地址。 范围不必限于最后的8位:0\-255\&.0\-255\&.13\&.37 将在整个互联网范围内扫描所有以13\&.37结束的地址。 这种大范围的扫描对互联网调查研究也许有用。 +.PP +IPv6地址只能用规范的IPv6地址或主机名指定。 CIDR 和八位字节范围不支持IPv6,因为它们对于IPv6几乎没什么用。 +.PP +Nmap命令行接受多个主机说明,它们不必是相同类型。命令\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.0\-255\fR将和您预期的一样执行。 +.PP +虽然目标通常在命令行指定,下列选项也可用来控制目标的选择: +.PP +\fB\-iL <inputfilename>\fR (从列表中输入) +.RS 4 +从 +\fIinputfilename\fR中读取目标说明。在命令行输入 一堆主机名显得很笨拙,然而经常需要这样。 例如,您的DHCP服务器可能导出10,000个当前租约的列表,而您希望对它们进行 扫描。如果您\fI不是\fR使用未授权的静态IP来定位主机,或许您想要扫描所有IP地址。 只要生成要扫描的主机的列表,用\fB\-iL\fR +把文件名作为选项传给Nmap。列表中的项可以是Nmap在 命令行上接受的任何格式(IP地址,主机名,CIDR,IPv6,或者八位字节范围)。 每一项必须以一个或多个空格,制表符或换行符分开。 如果您希望Nmap从标准输入而不是实际文件读取列表, 您可以用一个连字符(\-)作为文件名。 +.RE +.PP +\fB\-iR <hostnum>\fR (随机选择目标) +.RS 4 +对于互联网范围内的调查和研究, 您也许想随机地选择目标。 +\fIhostnum\fR +选项告诉 Nmap生成多少个IP。不合需要的IP如特定的私有,组播或者未分配的地址自动 略过。选项 +0 +意味着永无休止的扫描。记住,一些网管对于未授权的扫描可能会很感冒并加以抱怨。 使用该选项的后果自负! 如果在某个雨天的下午,您觉得实在无聊, 试试这个命令\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR随机地找一些网站浏览。 +.RE +.PP +\fB\-\-exclude <host1[,host2][,host3],\&.\&.\&.>\fR (排除主机/网络) +.RS 4 +如果在您指定的扫描范围有一些主机或网络不是您的目标, 那就用该选项加上以逗号分隔的列表排除它们。该列表用正常的Nmap语法, 因此它可以包括主机名,CIDR,八位字节范围等等。 当您希望扫描的网络包含执行关键任务的服务器,已知的对端口扫描反应强烈的 系统或者被其它人看管的子网时,这也许有用。 +.RE +.PP +\fB\-\-excludefile <excludefile>\fR (排除文件中的列表) +.RS 4 +这和\fB\-\-exclude\fR +选项的功能一样,只是所排除的目标是用以 换行符,空格,或者制表符分隔的 +\fIexcludefile\fR提供的,而不是在命令行上输入的。 +.RE +.SH "主机发现" +.PP +任何网络探测任务的最初几个步骤之一就是把一组IP范围(有时该范围是巨大的)缩小为 一列活动的或者您感兴趣的主机。扫描每个IP的每个端口很慢,通常也没必要。 当然,什么样的主机令您感兴趣主要依赖于扫描的目的。网管也许只对运行特定服务的 主机感兴趣,而从事安全的人士则可能对一个马桶都感兴趣,只要它有IP地址:\-)。一个系统管理员 也许仅仅使用Ping来定位内网上的主机,而一个外部入侵测试人员则可能绞尽脑汁用各种方法试图 突破防火墙的封锁。 +.PP +由于主机发现的需求五花八门,Nmap提供了一箩筐的选项来定制您的需求。 主机发现有时候也叫做ping扫描,但它远远超越用世人皆知的ping工具 发送简单的ICMP回声请求报文。用户完全可以通过使用列表扫描(\fB\-sL\fR)或者 通过关闭ping (\fB\-P0\fR)跳过ping的步骤,也可以使用多个端口把TCP SYN/ACK,UDP和ICMP 任意组合起来玩一玩。这些探测的目的是获得响应以显示某个IP地址是否是活动的(正在被某 主机或者网络设备使用)。 在许多网络上,在给定的时间,往往只有小部分的IP地址是活动的。 这种情况在基于RFC1918的私有地址空间如10\&.0\&.0\&.0/8尤其普遍。 那个网络有16,000,000个IP,但我见过一些使用它的公司连1000台机器都没有。 主机发现能够找到零星分布于IP地址海洋上的那些机器。 +.PP +如果没有给出主机发现的选项,Nmap 就发送一个TCP ACK报文到80端口和一个ICMP回声请求到每台目标机器。 一个例外是ARP扫描用于局域网上的任何目标机器。对于非特权UNIX shell用户,使用\fBconnect()\fR系统调用会发送一个SYN报文而不是ACK 这些默认行为和使用\fB\-PA \-PE\fR选项的效果相同。 扫描局域网时,这种主机发现一般够用了,但是对于安全审核,建议进行 更加全面的探测。 +.PP +\fB\-P*\fR选项(用于选择 ping的类型)可以被结合使用。 您可以通过使用不同的TCP端口/标志位和ICMP码发送许多探测报文 来增加穿透防守严密的防火墙的机会。另外要注意的是即使您指定了其它 +\fB\-P*\fR选项,ARP发现(\fB\-PR\fR)对于局域网上的 目标而言是默认行为,因为它总是更快更有效。 +.PP +下列选项控制主机发现。 +.PP +\fB\-sL\fR (列表扫描) +.RS 4 +列表扫描是主机发现的退化形式,它仅仅列出指定网络上的每台主机, 不发送任何报文到目标主机。默认情况下,Nmap仍然对主机进行反向域名解析以获取 它们的名字。简单的主机名能给出的有用信息常常令人惊讶。例如, +fw\&.chi\&.playboy\&.com是花花公子芝加哥办公室的 防火墙。Nmap最后还会报告IP地址的总数。列表扫描可以很好的确保您拥有正确的目标IP。 如果主机的域名出乎您的意料,那么就值得进一步检查以防错误地扫描其它组织的网络。 +.sp +既然只是打印目标主机的列表,像其它一些高级功能如端口扫描,操作系统探测或者Ping扫描 的选项就没有了。如果您希望关闭ping扫描而仍然执行这样的高级功能,请继续阅读关于 +\fB\-P0\fR选项的介绍。 +.RE +.PP +\fB\-sP\fR (Ping扫描) +.RS 4 +该选项告诉Nmap\fI仅仅\fR +进行ping扫描 (主机发现),然后打印出对扫描做出响应的那些主机。 没有进一步的测试 (如端口扫描或者操作系统探测)。 这比列表扫描更积极,常常用于 和列表扫描相同的目的。它可以得到些许目标网络的信息而不被特别注意到。 对于攻击者来说,了解多少主机正在运行比列表扫描提供的一列IP和主机名往往更有价值。 +.sp +系统管理员往往也很喜欢这个选项。 它可以很方便地得出 网络上有多少机器正在运行或者监视服务器是否正常运行。常常有人称它为 地毯式ping,它比ping广播地址更可靠,因为许多主机对广播请求不响应。 +.sp +\fB\-sP\fR选项在默认情况下, 发送一个ICMP回声请求和一个TCP报文到80端口。如果非特权用户执行,就发送一个SYN报文 (用\fBconnect()\fR系统调用)到目标机的80端口。 当特权用户扫描局域网上的目标机时,会发送ARP请求(\fB\-PR\fR), ,除非使用了\fB\-\-send\-ip\fR选项。 +\fB\-sP\fR选项可以和除\fB\-P0\fR)之外的任何发现探测类型\fB\-P*\fR +选项结合使用以达到更大的灵活性。 一旦使用了任何探测类型和端口选项,默认的探测(ACK和回应请求)就被覆盖了。 当防守严密的防火墙位于运行Nmap的源主机和目标网络之间时, 推荐使用那些高级选项。否则,当防火墙捕获并丢弃探测包或者响应包时,一些主机就不能被探测到。 +.RE +.PP +\fB\-P0\fR (无ping) +.RS 4 +该选项完全跳过Nmap发现阶段。 通常Nmap在进行高强度的扫描时用它确定正在运行的机器。 默认情况下,Nmap只对正在运行的主机进行高强度的探测如 端口扫描,版本探测,或者操作系统探测。用\fB\-P0\fR禁止 主机发现会使Nmap对\fI每一个\fR指定的目标IP地址 进行所要求的扫描。所以如果在命令行指定一个B类目标地址空间(/16), 所有 65,536 个IP地址都会被扫描。 +\fB\-P0\fR的第二个字符是数字0而不是字母O。 和列表扫描一样,跳过正常的主机发现,但不是打印一个目标列表, 而是继续执行所要求的功能,就好像每个IP都是活动的。 +.RE +.PP +\fB\-PS [portlist]\fR (TCP SYN Ping) +.RS 4 +该选项发送一个设置了SYN标志位的空TCP报文。 默认目的端口为80 (可以通过改变nmap\&.h) 文件中的DEFAULT\-TCP\-PROBE\-PORT值进行配置,但不同的端口也可以作为选项指定。 甚至可以指定一个以逗号分隔的端口列表(如 +\fB\-PS22,23,25,80,113,1050,35000\fR), 在这种情况下,每个端口会被并发地扫描。 +.sp +SYN标志位告诉对方您正试图建立一个连接。 通常目标端口是关闭的,一个RST (复位) 包会发回来。 如果碰巧端口是开放的,目标会进行TCP三步握手的第二步,回应 一个SYN/ACK TCP报文。然后运行Nmap的机器则会扼杀这个正在建立的连接, 发送一个RST而非ACK报文,否则,一个完全的连接将会建立。 RST报文是运行Nmap的机器而不是Nmap本身响应的,因为它对收到 的SYN/ACK感到很意外。 +.sp +Nmap并不关心端口开放还是关闭。 无论RST还是SYN/ACK响应都告诉Nmap该主机正在运行。 +.sp +在UNIX机器上,通常只有特权用户 +root +能否发送和接收 原始的TCP报文。因此作为一个变通的方法,对于非特权用户, Nmap会为每个目标主机进行系统调用connect(),它也会发送一个SYN 报文来尝试建立连接。如果connect()迅速返回成功或者一个ECONNREFUSED 失败,下面的TCP堆栈一定已经收到了一个SYN/ACK或者RST,该主机将被 标志位为在运行。 如果连接超时了,该主机就标志位为down掉了。这种方法也用于IPv6 连接,因为Nmap目前还不支持原始的IPv6报文。 +.RE +.PP +\fB\-PA [portlist]\fR (TCP ACK Ping) +.RS 4 +TCP ACK ping和刚才讨论的SYN ping相当类似。 也许您已经猜到了,区别就是设置TCP的ACK标志位而不是SYN标志位。 ACK报文表示确认一个建立连接的尝试,但该连接尚未完全建立。 所以远程主机应该总是回应一个RST报文, 因为它们并没有发出过连接请求到运行Nmap的机器,如果它们正在运行的话。 +.sp +\fB\-PA\fR选项使用和SYN探测相同的默认端口(80),也可以 用相同的格式指定目标端口列表。如果非特权用户尝试该功能, 或者指定的是IPv6目标,前面说过的connect()方法将被使用。 这个方法并不完美,因为它实际上发送的是SYN报文,而不是ACK报文。 +.sp +提供SYN和ACK两种ping探测的原因是使通过防火墙的机会尽可能大。 许多管理员会配置他们的路由器或者其它简单的防火墙来封锁SYN报文,除非 连接目标是那些公开的服务器像公司网站或者邮件服务器。 这可以阻止其它进入组织的连接,同时也允许用户访问互联网。 这种无状态的方法几乎不占用防火墙/路由器的资源,因而被硬件和软件过滤器 广泛支持。Linux Netfilter/iptables 防火墙软件提供方便的 +\fB\-\-syn\fR选项来实现这种无状态的方法。 当这样的无状态防火墙规则存在时,发送到关闭目标端口的SYN ping探测 (\fB\-PS\fR) 很可能被封锁。这种情况下,ACK探测格外有闪光点,因为它正好利用了 这样的规则。 +.sp +另外一种常用的防火墙用有状态的规则来封锁非预期的报文。 这一特性已开始只存在于高端防火墙,但是这些年类它越来越普遍了。 Linux Netfilter/iptables 通过 +\fB\-\-state\fR选项支持这一特性,它根据连接状态把报文 进行分类。SYN探测更有可能用于这样的系统,由于没头没脑的ACK报文 通常会被识别成伪造的而丢弃。解决这个两难的方法是通过即指定 +\fB\-PS\fR又指定\fB\-PA\fR来即发送SYN又发送ACK。 +.RE +.PP +\fB\-PU [portlist]\fR (UDP Ping) +.RS 4 +还有一个主机发现的选项是UDP ping,它发送一个空的(除非指定了\fB\-\-data\-length\fR +UDP报文到给定的端口。端口列表的格式和前面讨论过的\fB\-PS\fR和\fB\-PA\fR选项还是一样。 如果不指定端口,默认是31338。该默认值可以通过在编译时改变nmap\&.h文件中的 DEFAULT\-UDP\-PROBE\-PORT值进行配置。默认使用这样一个奇怪的端口是因为对开放端口 进行这种扫描一般都不受欢迎。 +.sp +如果目标机器的端口是关闭的,UDP探测应该马上得到一个ICMP端口无法到达的回应报文。 这对于Nmap意味着该机器正在运行。 许多其它类型的ICMP错误,像主机/网络无法到达或者TTL超时则表示down掉的或者不可到达的主机。 没有回应也被这样解释。如果到达一个开放的端口,大部分服务仅仅忽略这个 空报文而不做任何回应。这就是为什么默认探测端口是31338这样一个 极不可能被使用的端口。少数服务如chargen会响应一个空的UDP报文, 从而向Nmap表明该机器正在运行。 +.sp +该扫描类型的主要优势是它可以穿越只过滤TCP的防火墙和过滤器。 例如。我曾经有过一个Linksys BEFW11S4无线宽带路由器。默认情况下, 该设备对外的网卡过滤所有TCP端口,但UDP探测仍然会引发一个端口不可到达 的消息,从而暴露了它自己。 +.RE +.PP +\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (ICMP Ping Types) +.RS 4 +除了前面讨论的这些不常见的TCP和UDP主机发现类型, Nmap也能发送世人皆知的ping +程序所发送的报文。Nmap发送一个ICMP type 8 (回声请求)报文到目标IP地址, 期待从运行的主机得到一个type 0 (回声响应)报文。 对于网络探索者而言,不幸的是,许多主机和 防火墙现在封锁这些报文,而不是按期望的那样响应, 参见\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[3]\d\s+2。因此,仅仅ICMP扫描对于互联网上的目标通常是不够的。 但对于系统管理员监视一个内部网络,它们可能是实际有效的途径。 使用\fB\-PE\fR选项打开该回声请求功能。 +.sp +虽然回声请求是标准的ICMP ping查询, Nmap并不止于此。ICMP标准 (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[4]\d\s+2)还规范了时间戳请求,信息请求 request,和地址掩码请求,它们的代码分别是13,15和17。 虽然这些查询的表面目的是获取信息如地址掩码和当前时间, 它们也可以很容易地用于主机发现。 很简单,回应的系统就是在运行的系统。Nmap目前没有实现信息请求报文, 因为它们还没有被广泛支持。RFC 1122 坚持 +\(lq主机不应该实现这些消息\(rq。 时间戳和地址掩码查询可以分别用\fB\-PP\fR和\fB\-PM\fR选项发送。 时间戳响应(ICMP代码14)或者地址掩码响应(代码18)表示主机在运行。 当管理员特别封锁了回声请求报文而忘了其它ICMP查询可能用于 相同目的时,这两个查询可能很有价值。 +.RE +.PP +\fB\-PR\fR (ARP Ping) +.RS 4 +最常见的Nmap使用场景之一是扫描一个以太局域网。 在大部分局域网上,特别是那些使用基于 RFC1918私有地址范围的网络,在一个给定的时间绝大部分 IP地址都是不使用的。 当Nmap试图发送一个原始IP报文如ICMP回声请求时, 操作系统必须确定对应于目标IP的硬件 地址(ARP),这样它才能把以太帧送往正确的地址。 这一般比较慢而且会有些问题,因为操作系统设计者认为一般不会在短时间内 对没有运行的机器作几百万次的ARP请求。 +.sp +当进行ARP扫描时,Nmap用它优化的算法管理ARP请求。 当它收到响应时, Nmap甚至不需要担心基于IP的ping报文,既然它已经知道该主机正在运行了。 这使得ARP扫描比基于IP的扫描更快更可靠。 所以默认情况下,如果Nmap发现目标主机就在它所在的局域网上,它会进行ARP扫描。 即使指定了不同的ping类型(如 +\fB\-PI\fR或者 +\fB\-PS\fR) ,Nmap也会对任何相同局域网上的目标机使用ARP。 如果您真的不想要ARP扫描,指定 +\fB\-\-send\-ip\fR。 +.RE +.PP +\fB\-n\fR (不用域名解析) +.RS 4 +告诉Nmap +\fI永不\fR对它发现的活动IP地址进行反向域名解析。 既然DNS一般比较慢,这可以让事情更快些。 +.RE +.PP +\fB\-R\fR (为所有目标解析域名) +.RS 4 +告诉Nmap +\fI永远\fR +对目标IP地址作反向域名解析。 一般只有当发现机器正在运行时才进行这项操作。 +.RE +.PP +\fB\-\-system\-dns\fR (使用系统域名解析器) +.RS 4 +默认情况下,Nmap通过直接发送查询到您的主机上配置的域名服务器 来解析域名。为了提高性能,许多请求 (一般几十个 ) 并发执行。如果您希望使用系统自带的解析器,就指定该选项 (通过getnameinfo()调用一次解析一个IP)。除非Nmap的DNS代码有bug\-\-如果是这样,请联系我们。 一般不使用该选项,因为它慢多了。系统解析器总是用于IPv6扫描。 +.RE +.SH "端口扫描基础" +.PP +虽然Nmap这些年来功能越来越多, 它也是从一个高效的端口扫描器开始的,并且那仍然是它的核心功能。 +\fBnmap \fR\fB\fItarget\fR\fR这个简单的命令扫描主机\fItarget\fR上的超过 1660个TCP端口。 。许多传统的端口扫描器只列出所有端口是开放还是关闭的, Nmap的信息粒度比它们要细得多。 它把端口分成六个状态: +open(开放的), +closed(关闭的),filtered(被过滤的), +unfiltered(未被过滤的), +open|filtered(开放或者被过滤的),或者 +closed|filtered(关闭或者被过滤的)。 +.PP +这些状态并非端口本身的性质,而是描述Nmap怎样看待它们。例如, 对于同样的目标机器的135/tcp端口,从同网络扫描显示它是开放的,而跨网络作完全相同的扫描则可能显示它是 +filtered(被过滤的)。 +.PP +\fBNmap所识别的6个端口状态。\fR +.PP +open(开放的) +.RS 4 +应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描 的主要目标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。 +.RE +.PP +closed(关闭的) +.RS 4 +关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。 它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有所帮助。 因为关闭的关口是可访问的,也许过会儿值得再扫描一下,可能一些又开放了。 系统管理员可能会考虑用防火墙封锁这样的端口。 那样他们就会被显示为被过滤的状态,下面讨论。 +.RE +.PP +filtered(被过滤的) +.RS 4 +由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则 或者主机上的软件防火墙。这样的端口让攻击者感觉很挫折,因为它们几乎不提供 任何信息。有时候它们响应ICMP错误消息如类型3代码13 (无法到达目标: 通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧, 不做任何响应。 这迫使Nmap重试若干次以访万一探测包是由于网络阻塞丢弃的。 这使得扫描速度明显变慢。 +.RE +.PP +unfiltered(未被过滤的) +.RS 4 +未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。 只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。 用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。 +.RE +.PP +open|filtered(开放或者被过滤的) +.RS 4 +当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。 UDP,IP协议, FIN,Null,和Xmas扫描可能把端口归入此类。 +.RE +.PP +closed|filtered(关闭或者被过滤的) +.RS 4 +该状态用于Nmap不能确定端口是关闭的还是被过滤的。 它只可能出现在IPID Idle扫描中。 +.RE +.SH "端口扫描技术" +.PP +作为一个修车新手,我可能折腾几个小时来摸索怎样把基本工具(锤子,胶带,扳子等) 用于手头的任务。当我惨痛地失败,把我的老爷车拖到一个真正的技师那儿的时候 ,他总是在他的工具箱里翻来翻去,直到拽出一个完美的工具然后似乎不费吹灰之力搞定它。 端口扫描的艺术和这个类似。专家理解成打的扫描技术,选择最适合的一种 (或者组合)来完成给定的 任务。 另一方面,没有经验的用户和刚入门者总是用默认的SYN扫描解决每个问题。 既然Nmap是免费的,掌握端口扫描的唯一障碍就是知识。这当然是汽车世界所不能比的, 在那里,可能需要高超的技巧才能确定您需要一个压杆弹簧压缩机,接着您还得为它付数千美金。 +.PP +大部分扫描类型只对特权用户可用。 这是因为他们发送接收原始报文,这在Unix系统需要root权限。 在Windows上推荐使用administrator账户,但是当WinPcap已经被加载到操作系统时, 非特权用户也可以正常使用Nmap。当Nmap在1997年发布时,需要root权限是一个严重的 局限,因为很多用户只有共享的shell账户。现在,世界变了,计算机便宜了,更多人拥有互联网连接 ,桌面UNIX系统 (包括Linux和MAC OS X)很普遍了。Windows版本的Nmap现在也有了,这使它可以运行在更多的桌面上。 由于所有这些原因,用户不再需要用有限的共享shell账户运行Nmap。 这是很幸运的,因为特权选项让Nmap强大得多也灵活得多。 +.PP +虽然Nmap努力产生正确的结果,但请记住所有结果都是基于目标机器(或者它们前面的防火墙)返回的报文的。 。这些主机也许是不值得信任的,它们可能响应以迷惑或误导Nmap的报文。 更普遍的是非RFC兼容的主机以不正确的方式响应Nmap探测。FIN,Null和Xmas扫描 特别容易遇到这个问题。这些是特定扫描类型的问题,因此我们在个别扫描类型里讨论它们。 +.PP +这一节讨论Nmap支持的大约十几种扫描技术。 一般一次只用一种方法, 除了UDP扫描(\fB\-sU\fR)可能和任何一种TCP扫描类型结合使用。 友情提示一下,端口扫描类型的选项格式是\fB\-s\fR\fB\fIC\fR\fR, 其中\fIC\fR +是个显眼的字符,通常是第一个字符。 一个例外是deprecated FTP bounce扫描(\fB\-b\fR)。默认情况下,Nmap执行一个 SYN扫描,但是如果用户没有权限发送原始报文(在UNIX上需要root权限)或者如果指定的是IPv6目标,Nmap调用connect()。 本节列出的扫描中,非特权用户只能执行connect()和ftp bounce扫描。 +.PP +\fB\-sS\fR (TCP SYN扫描) +.RS 4 +SYN扫描作为默认的也是最受欢迎的扫描选项,是有充分理由的。 它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个 端口。 SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP连接。 它也不像Fin/Null/Xmas,Maimon和Idle扫描依赖于特定平台,而可以应对任何兼容的 TCP协议栈。 它还可以明确可靠地区分open(开放的), +closed(关闭的),和filtered(被过滤的) 状态 +.sp +它常常被称为半开放扫描, 因为它不打开一个完全的TCP连接。它发送一个SYN报文, 就像您真的要打开一个连接,然后等待响应。 SYN/ACK表示端口在监听 (开放),而 RST (复位)表示没有监听者。如果数次重发后仍没响应, 该端口就被标记为被过滤。如果收到ICMP不可到达错误 (类型3,代码1,2,3,9,10,或者13),该端口也被标记为被过滤。 +.RE +.PP +\fB\-sT\fR (TCP connect()扫描) +.RS 4 +当SYN扫描不能用时,CP Connect()扫描就是默认的TCP扫描。 当用户没有权限发送原始报文或者扫描IPv6网络时,就是这种情况。 Instead of writing raw packets as most other scan types do,Nmap通过创建connect() +系统调用要求操作系统和目标机以及端口建立连接,而不像其它扫描类型直接发送原始报文。 这是和Web浏览器,P2P客户端以及大多数其它网络应用程序用以建立连接一样的 高层系统调用。它是叫做Berkeley Sockets API编程接口的一部分。Nmap用 该API获得每个连接尝试的状态信息,而不是读取响应的原始报文。 +.sp +当SYN扫描可用时,它通常是更好的选择。因为Nmap对高层的 +connect()调用比对原始报文控制更少, 所以前者效率较低。 该系统调用完全连接到开放的目标端口而不是像SYN扫描进行 半开放的复位。这不仅花更长时间,需要更多报文得到同样信息,目标机也更可能 记录下连接。IDS(入侵检测系统)可以捕获两者,但大部分机器没有这样的警报系统。 当Nmap连接,然后不发送数据又关闭连接, 许多普通UNIX系统上的服务会在syslog留下记录,有时候是一条加密的错误消息。 此时,有些真正可怜的服务会崩溃,虽然这不常发生。如果管理员在日志里看到来自同一系统的 一堆连接尝试,她应该知道她的系统被扫描了。 +.RE +.PP +\fB\-sU\fR (UDP扫描) +.RS 4 +虽然互联网上很多流行的服务运行在TCP 协议上,\m[blue]\fBUDP\fR\m[]\&\s-2\u[5]\d\s+2服务也不少。 DNS,SNMP,和DHCP (注册的端口是53,161/162,和67/68)是最常见的三个。 因为UDP扫描一般较慢,比TCP更困难,一些安全审核人员忽略这些端口。 这是一个错误,因为可探测的UDP服务相当普遍,攻击者当然不会忽略整个协议。 所幸,Nmap可以帮助记录并报告UDP端口。 +.sp +UDP扫描用\fB\-sU\fR选项激活。它可以和TCP扫描如 SYN扫描 (\fB\-sS\fR)结合使用来同时检查两种协议。 +.sp +UDP扫描发送空的(没有数据)UDP报头到每个目标端口。 如果返回ICMP端口不可到达错误(类型3,代码3), 该端口是closed(关闭的)。 其它ICMP不可到达错误(类型3, 代码1,2,9,10,或者13)表明该端口是filtered(被过滤的)。 偶尔地,某服务会响应一个UDP报文,证明该端口是open(开放的)。 如果几次重试后还没有响应,该端口就被认为是 +open|filtered(开放|被过滤的)。 这意味着该端口可能是开放的,也可能包过滤器正在封锁通信。 可以用版本扫描(\fB\-sV\fR)帮助区分真正的开放端口和被过滤的端口。 +.sp +UDP扫描的巨大挑战是怎样使它更快速。 开放的和被过滤的端口很少响应,让Nmap超时然后再探测,以防探测帧或者 响应丢失。关闭的端口常常是更大的问题。 它们一般发回一个ICMP端口无法到达错误。但是不像关闭的TCP端口响应SYN或者Connect 扫描所发送的RST报文,许多主机在默认情况下限制ICMP端口不可到达消息。 Linux和Solaris对此特别严格。例如, Linux 2\&.4\&.20内核限制一秒钟只发送一条目标不可到达消息 (见net/ipv4/icmp。c)。 +.sp +Nmap探测速率限制并相应地减慢来避免用那些目标机会丢弃的无用报文来阻塞 网络。不幸的是,Linux式的一秒钟一个报文的限制使65,536个端口的扫描要花 18小时以上。加速UDP扫描的方法包括并发扫描更多的主机,先只对主要端口进行快速 扫描,从防火墙后面扫描,使用\fB\-\-host\-timeout\fR跳过慢速的 主机。 +.RE +.PP +\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP Null,FIN,and Xmas扫描) +.RS 4 +这三种扫描类型 (甚至用下一节描述的 +\fB\-\-scanflags\fR +选项的更多类型) 在\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[6]\d\s+2 +中发掘了一个微妙的方法来区分open(开放的)和 +closed(关闭的)端口。第65页说\(lq如果 [目标]端口状态是关闭的\&.\&.\&.\&. 进入的不含RST的报文导致一个RST响应。\(rq +接下来的一页 讨论不设置SYN,RST,或者ACK位的报文发送到开放端口: +\(lq理论上,这不应该发生,如果您确实收到了,丢弃该报文,返回。 \(rq +.sp +如果扫描系统遵循该RFC,当端口关闭时,任何不包含SYN,RST,或者ACK位的报文会导致 一个RST返回,而当端口开放时,应该没有任何响应。只要不包含SYN,RST,或者ACK, 任何其它三种(FIN,PSH,and URG)的组合都行。Nmap有三种扫描类型利用这一点: +.PP +Null扫描 (\fB\-sN\fR) +.RS 4 +不设置任何标志位(tcp标志头是0) +.RE +.PP +FIN扫描 (\fB\-sF\fR) +.RS 4 +只设置TCP FIN标志位。 +.RE +.PP +Xmas扫描 (\fB\-sX\fR) +.RS 4 +设置FIN,PSH,和URG标志位,就像点亮圣诞树上所有的灯一样。 +.RE +.sp +除了探测报文的标志位不同,这三种扫描在行为上完全一致。 如果收到一个RST报文,该端口被认为是 +closed(关闭的),而没有响应则意味着 端口是open|filtered(开放或者被过滤的)。 如果收到ICMP不可到达错误(类型 3,代号 1,2,3,9,10,或者13),该端口就被标记为 +被过滤的。 +.sp +这些扫描的关键优势是它们能躲过一些无状态防火墙和报文过滤路由器。 另一个优势是这些扫描类型甚至比SYN扫描还要隐秘一些。但是别依赖它 \-\- 多数 现代的IDS产品可以发现它们。一个很大的不足是并非所有系统都严格遵循RFC 793。 许多系统不管端口开放还是关闭,都响应RST。 这导致所有端口都标记为closed(关闭的)。 这样的操作系统主要有Microsoft Windows,许多Cisco设备,BSDI,以及IBM OS/400。 但是这种扫描对多数UNIX系统都能工作。这些扫描的另一个不足是 它们不能辨别open(开放的)端口和一些特定的 +filtered(被过滤的)端口,从而返回 +open|filtered(开放或者被过滤的)。 +.RE +.PP +\fB\-sA\fR (TCP ACK扫描) +.RS 4 +这种扫描与目前为止讨论的其它扫描的不同之处在于 它不能确定open(开放的)或者 +open|filtered(开放或者过滤的))端口。 它用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。 +.sp +ACK扫描探测报文只设置ACK标志位(除非您使用 +\fB\-\-scanflags\fR)。当扫描未被过滤的系统时, +open(开放的)和closed(关闭的) 端口 都会返回RST报文。Nmap把它们标记为 +unfiltered(未被过滤的),意思是 ACK报文不能到达,但至于它们是open(开放的)或者 +closed(关闭的) 无法确定。不响应的端口 或者发送特定的ICMP错误消息(类型3,代号1,2,3,9,10, 或者13)的端口,标记为 +filtered(被过滤的)。 +.RE +.PP +\fB\-sW\fR (TCP窗口扫描) +.RS 4 +除了利用特定系统的实现细节来区分开放端口和关闭端口,当收到RST时不总是打印unfiltered, 窗口扫描和ACK扫描完全一样。 它通过检查返回的RST报文的TCP窗口域做到这一点。 在某些系统上,开放端口用正数表示窗口大小(甚至对于RST报文) 而关闭端口的窗口大小为0。因此,当收到RST时,窗口扫描不总是把端口标记为 +unfiltered, 而是根据TCP窗口值是正数还是0,分别把端口标记为open或者 +closed +.sp +该扫描依赖于互联网上少数系统的实现细节, 因此您不能永远相信它。不支持它的系统会通常返回所有端口closed。 当然,一台机器没有开放端口也是有可能的。 如果大部分被扫描的端口是 +closed,而一些常见的端口 (如 22, 25,53) 是 +filtered,该系统就非常可疑了。 偶尔地,系统甚至会显示恰恰相反的行为。 如果您的扫描显示1000个开放的端口和3个关闭的或者被过滤的端口, 那么那3个很可能也是开放的端口。 +.RE +.PP +\fB\-sM\fR (TCP Maimon扫描) +.RS 4 +Maimon扫描是用它的发现者Uriel Maimon命名的。他在 Phrack Magazine issue #49 (November 1996)中描述了这一技术。 Nmap在两期后加入了这一技术。 这项技术和Null,FIN,以及Xmas扫描完全一样,除了探测报文是FIN/ACK。 根据RFC 793 (TCP),无论端口开放或者关闭,都应该对这样的探测响应RST报文。 然而,Uriel注意到如果端口开放,许多基于BSD的系统只是丢弃该探测报文。 +.RE +.PP +\fB\-\-scanflags\fR (定制的TCP扫描) +.RS 4 +真正的Nmap高级用户不需要被这些现成的扫描类型束缚。 +\fB\-\-scanflags\fR选项允许您通过指定任意TCP标志位来设计您自己的扫描。 让您的创造力流动,躲开那些仅靠本手册添加规则的入侵检测系统! +.sp +\fB\-\-scanflags\fR选项可以是一个数字标记值如9 (PSH和FIN), 但使用字符名更容易些。 只要是URG, +ACK,PSH, +RST,SYN,and +FIN的任何组合就行。例如,\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR设置了所有标志位,但是这对扫描没有太大用处。 标志位的顺序不重要。 +.sp +除了设置需要的标志位,您也可以设置 TCP扫描类型(如\fB\-sA\fR或者\fB\-sF\fR)。 那个基本类型告诉Nmap怎样解释响应。例如, SYN扫描认为没有响应意味着 +filtered端口,而FIN扫描则认为是 +open|filtered。 除了使用您指定的TCP标记位,Nmap会和基本扫描类型一样工作。 如果您不指定基本类型,就使用SYN扫描。 +.RE +.PP +\fB\-sI <zombie host[:probeport]>\fR (Idlescan) +.RS 4 +这种高级的扫描方法允许对目标进行真正的TCP端口盲扫描 (意味着没有报文从您的真实IP地址发送到目标)。相反,side\-channel攻击 利用zombie主机上已知的IP分段ID序列生成算法来窥探目标上开放端口的信息。 IDS系统将显示扫描来自您指定的zombie机(必须运行并且符合一定的标准)。 这种奇妙的扫描类型太复杂了,不能在此完全描述,所以我写一篇非正式的论文, 发布在\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]。 +.sp +除了极端隐蔽(由于它不从真实IP地址发送任何报文), 该扫描类型可以建立机器间的基于IP的信任关系。 端口列表\fI从zombie 主机的角度。\fR显示开放的端口。 因此您可以尝试用您认为(通过路由器/包过滤规则)可能被信任的 zombies扫描目标。 +.sp +如果您由于IPID改变希望探测zombie上的特定端口, 您可以在zombie 主机后加上一个冒号和端口号。 否则Nmap会使用默认端口(80)。 +.RE +.PP +\fB\-sO\fR (IP协议扫描) +.RS 4 +IP 协议扫描可以让您确定目标机支持哪些IP协议 (TCP,ICMP,IGMP,等等)。从技术上说,这不是端口扫描 ,既然它遍历的是IP协议号而不是TCP或者UDP端口号。 但是它仍使用 +\fB\-p\fR选项选择要扫描的协议号, 用正常的端口表格式报告结果,甚至用和真正的端口扫描一样 的扫描引擎。因此它和端口扫描非常接近,也被放在这里讨论。 +.sp +除了本身很有用,协议扫描还显示了开源软件的力量。 尽管基本想法非常简单,我过去从没想过增加这一功能也没收到任何对它的请求。 在2000年夏天,Gerhard Rieger孕育了这个想法,写了一个很棒的补丁程序,发送到nmap\-hackers邮件列表。 我把那个补丁加入了Nmap,第二天发布了新版本。 几乎没有商业软件会有用户有足够的热情设计并贡献他们的改进。 +.sp +协议扫描以和UDP扫描类似的方式工作。它不是在UDP报文的端口域上循环, 而是在IP协议域的8位上循环,发送IP报文头。 报文头通常是空的,不包含数据,甚至不包含所申明的协议的正确报文头 TCP,UDP,和ICMP是三个例外。它们三个会使用正常的协议头,因为否则某些系 统拒绝发送,而且Nmap有函数创建它们。协议扫描不是注意ICMP端口不可到达消息, 而是ICMP +\fI协议\fR不可到达消息。如果Nmap从目标主机收到 任何协议的任何响应,Nmap就把那个协议标记为open。 ICMP协议不可到达 错误(类型 3,代号 2) 导致协议被标记为 +closed。其它ICMP不可到达协议(类型 3,代号 1,3,9,10,或者13) 导致协议被标记为 +filtered +(虽然同时他们证明ICMP是 +open +)。如果重试之后仍没有收到响应, 该协议就被标记为open|filtered +.RE +.PP +\fB\-b <ftp relay host>\fR (FTP弹跳扫描) +.RS 4 +FTP协议的一个有趣特征(\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[7]\d\s+2) 是支持所谓代理ftp连接。它允许用户连接到一台FTP服务器,然后要求文件送到一台第三方服务器。 这个特性在很多层次上被滥用,所以许多服务器已经停止支持它了。其中一种就是导致FTP服务器对其它主机端口扫描。 只要请求FTP服务器轮流发送一个文件到目标主机上的所感兴趣的端口。 错误消息会描述端口是开放还是关闭的。 这是绕过防火墙的好方法,因为FTP服务器常常被置于可以访问比Web主机更多其它内部主机的位置。 Nmap用\fB\-b\fR选项支持ftp弹跳扫描。参数格式是 +\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fR。 +\fIServer\fR +是某个脆弱的FTP服务器的名字或者IP地址。 您也许可以省略\fIusername\fR:\fIpassword\fR, 如果服务器上开放了匿名用户(user:anonymous +password:\-wwwuser@)。 端口号(以及前面的冒号) 也可以省略,如果\fIserver\fR使用默认的FTP端口(21)。 +.sp +当Nmap1997年发布时,这个弱点被广泛利用,但现在大部分已经被fix了。 脆弱的服务器仍然存在,所以如果其它都失败了,这也值得一试。 如果您的目标是绕过防火墙,扫描目标网络上的开放的21端口(或者 甚至任何ftp服务,如果您用版本探测扫描所有端口), 然后对每个尝试弹跳扫描。Nmap会告诉您该主机脆弱与否。 如果您只是试着玩Nmap,您不必(事实上,不应该)限制您自己。 在您随机地在互联网上寻找脆弱的FTP服务器时,考虑一下系统管理员不太喜欢您这样滥用他们的服务器。 +.RE +.SH "端口说明和扫描顺序" +.PP +除了所有前面讨论的扫描方法, Nmap提供选项说明那些端口被扫描以及扫描是随机还是顺序进行。 默认情况下,Nmap用指定的协议对端口1到1024以及nmap\-services +文件中列出的更高的端口在扫描。 +.PP +\fB\-p <port ranges>\fR (只扫描指定的端口) +.RS 4 +该选项指明您想扫描的端口,覆盖默认值。 单个端口和用连字符表示的端口范围(如 1\-1023)都可以。 范围的开始以及/或者结束值可以被省略, 分别导致Nmap使用1和65535。所以您可以指定 +\fB\-p\-\fR从端口1扫描到65535。 如果您特别指定,也可以扫描端口0。 对于IP协议扫描(\fB\-sO\fR),该选项指定您希望扫描的协议号 (0\-255)。 +.sp +当既扫描TCP端口又扫描UDP端口时,您可以通过在端口号前加上T: +或者U:指定协议。 协议限定符一直有效您直到指定另一个。 例如,参数 +\fB\-p U:53,111,137,T:21\-25,80,139,8080\fR +将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。注意,要既扫描 UDP又扫描TCP,您必须指定 +\fB\-sU\fR +,以及至少一个TCP扫描类型(如 +\fB\-sS\fR,\fB\-sF\fR,或者 +\fB\-sT\fR)。如果没有给定协议限定符, 端口号会被加到所有协议列表。 +.RE +.PP +\fB\-F\fR (快速 (有限的端口) 扫描) +.RS 4 +在nmap的nmap\-services +文件中(对于\fB\-sO\fR,是协议文件)指定您想要扫描的端口。 这比扫描所有65535个端口快得多。 因为该列表包含如此多的TCP端口(1200多),这和默认的TCP扫描 scan (大约1600个端口)速度差别不是很大。如果您用\fB\-\-datadir\fR选项指定您自己的 小小的nmap\-services文件 ,差别会很惊人。 +.RE +.PP +\fB\-r\fR (不要按随机顺序扫描端口) +.RS 4 +默认情况下,Nmap按随机顺序扫描端口 (除了出于效率的考虑,常用的端口前移)。这种随机化通常都是受欢迎的, 但您也可以指定\fB\-r\fR来顺序端口扫描。 +.RE +.SH "服务和版本探测" +.PP +把Nmap指向一个远程机器,它可能告诉您 端口25/tcp,80/tcp,和53/udp是开放的。使用包含大约2,200个著名的服务的 +nmap\-services数据库, Nmap可以报告那些端口可能分别对应于一个邮件服务器 (SMTP),web服务器(HTTP),和域名服务器(DNS)。 这种查询通常是正确的 \-\- 事实上,绝大多数在TCP端口25监听的守护进程是邮件 服务器。然而,您不应该把赌注押在这上面! 人们完全可以在一些奇怪的端口上运行服务。 +.PP +即使Nmap是对的,假设运行服务的确实是 SMTP,HTTP和DNS,那也不是特别多的信息。 当为您的公司或者客户作安全评估(或者甚至简单的网络明细清单)时, 您确实想知道正在运行什么邮件和域名服务器以及它们的版本。 有一个精确的版本号对了解服务器有什么漏洞有巨大帮助。 版本探测可以帮您获得该信息。 +.PP +在用某种其它类型的扫描方法发现TCP 和/或者UDP端口后, 版本探测会询问这些端口,确定到底什么服务正在运行。 +nmap\-service\-probes +数据库包含查询不同服务的探测报文 和解析识别响应的匹配表达式。 Nmap试图确定服务协议 (如 ftp,ssh,telnet,http),应用程序名(如ISC Bind,Apache httpd,Solaris telnetd),版本号, 主机名,设备类型(如 打印机,路由器),操作系统家族 (如Windows,Linux)以及其它的细节,如 如是否可以连接X server,SSH协议版本 ,或者KaZaA用户名)。当然,并非所有服务都提供所有这些信息。 如果Nmap被编译成支持OpenSSL, 它将连接到SSL服务器,推测什么服务在加密层后面监听。 当发现RPC服务时, Nmap RPC grinder (\fB\-sR\fR)会自动被用于确定RPC程序和它的版本号。 如果在扫描某个UDP端口后仍然无法确定该端口是开放的还是被过滤的,那么该端口状态就 被标记为open|filtered。 版本探测将试图从这些端口引发一个响应(就像它对开放端口做的一样), 如果成功,就把状态改为开放。 +open|filtered +TCP端口用同样的方法对待。 注意Nmap +\fB\-A\fR选项在其它情况下打开版本探测。 有一篇关于版本探测的原理,使用和定制的文章在 +\m[blue]\fB\%https://nmap.org/vscan/\fR\m[]。 +.PP +当Nmap从某个服务收到响应,但不能在数据库中找到匹配时, 它就打印一个特殊的fingerprint和一个URL给您提交,如果您确实知道什么服务运行在端口。 请花两分钟提交您的发现,让每个人受益。由于这些提交, Nmap有350种以上协议如smtp,ftp,http等的大约3,000条模式匹配。 +.PP +用下列的选项打开和控制版本探测。 +.PP +\fB\-sV\fR (版本探测) +.RS 4 +打开版本探测。 您也可以用\fB\-A\fR同时打开操作系统探测和版本探测。 +.RE +.PP +\fB\-\-allports\fR (不为版本探测排除任何端口) +.RS 4 +默认情况下,Nmap版本探测会跳过9100 TCP端口,因为一些打印机简单地打印送到该端口的 任何数据,这回导致数十页HTTP get请求,二进制 SSL会话请求等等被打印出来。这一行为可以通过修改或删除nmap\-service\-probes +中的Exclude指示符改变, 您也可以不理会任何Exclude指示符,指定\fB\-\-allports\fR扫描所有端口 +.RE +.PP +\fB\-\-version\-intensity <intensity>\fR (设置 版本扫描强度) +.RS 4 +当进行版本扫描(\fB\-sV\fR)时,nmap发送一系列探测报文 ,每个报文都被赋予一个1到9之间的值。 被赋予较低值的探测报文对大范围的常见服务有效,而被赋予较高值的报文 一般没什么用。强度水平说明了应该使用哪些探测报文。数值越高, 服务越有可能被正确识别。 然而,高强度扫描花更多时间。强度值必须在0和9之间。 默认是7。当探测报文通过nmap\-service\-probes +ports指示符 注册到目标端口时,无论什么强度水平,探测报文都会被尝试。这保证了DNS 探测将永远在任何开放的53端口尝试, SSL探测将在443端口尝试,等等。 +.RE +.PP +\fB\-\-version\-light\fR (打开轻量级模式) +.RS 4 +这是 +\fB\-\-version\-intensity 2\fR的方便的别名。轻量级模式使 版本扫描快许多,但它识别服务的可能性也略微小一点。 +.RE +.PP +\fB\-\-version\-all\fR (尝试每个探测) +.RS 4 +\fB\-\-version\-intensity 9\fR的别名, 保证对每个端口尝试每个探测报文。 +.RE +.PP +\fB\-\-version\-trace\fR (跟踪版本扫描活动) +.RS 4 +这导致Nmap打印出详细的关于正在进行的扫描的调试信息。 它是您用\fB\-\-packet\-trace\fR所得到的信息的子集。 +.RE +.PP +\fB\-sR\fR (RPC扫描) +.RS 4 +这种方法和许多端口扫描方法联合使用。 它对所有被发现开放的TCP/UDP端口执行SunRPC程序NULL命令,来试图 确定它们是否RPC端口,如果是, 是什么程序和版本号。因此您可以有效地获得和\fBrpcinfo \-p\fR一样的信息, 即使目标的端口映射在防火墙后面(或者被TCP包装器保护)。Decoys目前不能和RPC scan一起工作。 这作为版本扫描(\fB\-sV\fR)的一部分自动打开。 由于版本探测包括它并且全面得多,\fB\-sR\fR很少被需要。 +.RE +.SH "操作系统探测" +.PP +Nmap最著名的功能之一是用TCP/IP协议栈fingerprinting进行远程操作系统探测。 Nmap发送一系列TCP和UDP报文到远程主机,检查响应中的每一个比特。 在进行一打测试如TCP ISN采样,TCP选项支持和排序,IPID采样,和初始窗口大小检查之后, Nmap把结果和数据库nmap\-os\-fingerprints中超过 1500个已知的操作系统的fingerprints进行比较,如果有匹配,就打印出操作系统的详细信息。 每个fingerprint包括一个自由格式的关于OS的描述文本, 和一个分类信息,它提供供应商名称(如Sun),下面的操作系统(如Solaris),OS版本(如10), 和设备类型(通用设备,路由器,switch,游戏控制台, 等)。 +.PP +如果Nmap不能猜出操作系统,并且有些好的已知条件(如 至少发现了一个开放端口和一个关闭端口),Nmap会提供一个 URL,如果您确知运行的操作系统,您可以把fingerprint提交到那个URL。 这样您就扩大了Nmap的操作系统知识库,从而让每个Nmap用户都受益。 +.PP +操作系统检测可以进行其它一些测试,这些测试可以利用处理 过程中收集到的信息。例如运行时间检测,使用TCP时间戳选项(RFC 1323) 来估计主机上次重启的时间,这仅适用于提供这类信息的主机。另一种 是TCP序列号预测分类,用于测试针对远程主机建立一个伪造的TCP连接 的可能难度。这对于利用基于源IP地址的可信关系(rlogin,防火墙过滤等) 或者隐含源地址的攻击非常重要。这一类哄骗攻击现在很少见,但一些 主机仍然存在这方面的漏洞。实际的难度值基于统计采样,因此可能会有 一些波动。通常采用英国的分类较好,如\(lqworthy challenge\(rq或者 +\(lqtrivial joke\(rq。在详细模式(\fB\-v\fR)下只以 普通的方式输出,如果同时使用\fB\-O\fR,还报告IPID序列产生号。 很多主机的序列号是\(lq增加\(rq类别,即在每个发送包的IP头中 增加ID域值, 这对一些先进的信息收集和哄骗攻击来说是个漏洞。 +.PP +\m[blue]\fB\%https://nmap.org/book/osdetect.html\fR\m[] +文档使用多种语言描述了版本检测的方式、使用和定制。 +.PP +采用下列选项启用和控制操作系统检测: +.PP +\fB\-O\fR (启用操作系统检测) +.RS 4 +也可以使用\fB\-A\fR来同时启用操作系统检测和版本检测。 +.RE +.PP +\fB\-\-osscan\-limit\fR (针对指定的目标进行操作系统检测) +.RS 4 +如果发现一个打开和关闭的TCP端口时,操作系统检测会更有效。 采用这个选项,Nmap只对满足这个条件的主机进行操作系统检测,这样可以 节约时间,特别在使用\fB\-P0\fR扫描多个主机时。这个选项仅在使用 +\fB\-O\fR或\fB\-A\fR +进行操作系统检测时起作用。 +.RE +.PP +\fB\-\-osscan\-guess\fR; \fB\-\-fuzzy\fR (推测操作系统检测结果) +.RS 4 +当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,Nmap默认 进行这种匹配,使用上述任一个选项使得Nmap的推测更加有效。 +.RE +.SH "时间和性能" +.PP +Nmap开发的最高优先级是性能。在本地网络对一个主机的默认扫描(\fBnmap \fR\fB\fIhostname\fR\fR)需要1/5秒。而仅仅眨眼的 时间,就需要扫描上万甚至几十万的主机。此外,一些特定的扫描选项会明显增 加扫描时间,如UDP扫描和版本检测。同样,防火墙配置以及特殊的响应速度限制也会 增加时间。Nmap使用了并行算法和许多先进的算法来加速扫描,用户对Nmap如何 工作有最终的控制权。高级用户可以仔细地调整Nmap命令,在满足时间要求的同时获得他们所关心的信息。 +.PP +改善扫描时间的技术有:忽略非关键的检测、升级最新版本的Nmap(性能增强不断改善)。 优化时间参数也会带来实质性的变化,这些参数如下。 +.PP +\fB\-\-min\-hostgroup <size>\fR; \fB\-\-max\-hostgroup <size>\fR (调整并行扫描组的大小) +.RS 4 +Nmap具有并行扫描多主机端口或版本的能力,Nmap将多个目标IP地址 空间分成组,然后在同一时间对一个组进行扫描。通常,大的组更有效。缺 点是只有当整个组扫描结束后才会提供主机的扫描结果。如果组的大小定义 为50,则只有当前50个主机扫描结束后才能得到报告(详细模式中的补充信息 除外)。 +.sp +默认方式下,Nmap采取折衷的方法。开始扫描时的组较小, 最小为5,这样便于尽快产生结果;随后增长组的大小,最大为1024。确切的 大小依赖于所给定的选项。为保证效率,针对UDP或少量端口的TCP扫描,Nmap 使用大的组。 +.sp +\fB\-\-max\-hostgroup\fR选项用于说明使用最大的组,Nmap不 会超出这个大小。\fB\-\-min\-hostgroup\fR选项说明最小的组,Nmap 会保持组大于这个值。如果在指定的接口上没有足够的目标主机来满足所 指定的最小值,Nmap可能会采用比所指定的值小的组。这两个参数虽然很少使用, 但都用于保持组的大小在一个指定的范围之内。 +.sp +这些选项的主要用途是说明一个最小组的大小,使得整个扫描更加快速。通常 选择256来扫描C类网段。对于端口数较多的扫描,超出该值没有意义。对于 端口数较少的扫描,2048或更大的组大小是有帮助的。 +.RE +.PP +\fB\-\-min\-parallelism <numprobes>\fR; \fB\-\-max\-parallelism <numprobes>\fR (调整探测报文的并行度) +.RS 4 +这些选项控制用于主机组的探测报文数量,可用于端口扫描和主机发现。默认状态下, Nmap基于网络性能计算一个理想的并行度,这个值经常改变。如果报文被丢弃, Nmap降低速度,探测报文数量减少。随着网络性能的改善,理想的探测报文数量会缓慢增加。 这些选项确定这个变量的大小范围。默认状态下,当网络不可靠时,理想的并行度值 可能为1,在好的条件下,可能会增长至几百。 +.sp +最常见的应用是\fB\-\-min\-parallelism\fR值大于1,以加快 性能不佳的主机或网络的扫描。这个选项具有风险,如果过高则影响准确度,同时 也会降低Nmap基于网络条件动态控制并行度的能力。这个值设为10较为合适, 这个值的调整往往作为最后的手段。 +.sp +\fB\-\-max\-parallelism\fR选项通常设为1,以防止Nmap在同一时间 向主机发送多个探测报文,和选择\fB\-\-scan\-delay\fR同时使用非常有用,虽然 这个选项本身的用途已经很好。 +.RE +.PP +\fB\-\-min\-rtt\-timeout <milliseconds>\fR, \fB\-\-max\-rtt\-timeout <milliseconds>\fR, \fB\-\-initial\-rtt\-timeout <milliseconds>\fR (调整探测报文超时) +.RS 4 +Nmap使用一个运行超时值来确定等待探测报文响应的时间,随后会放弃或重新 发送探测报文。Nmap基于上一个探测报文的响应时间来计算超时值,如果网络延迟比较显著 和不定,这个超时值会增加几秒。初始值的比较保守(高),而当Nmap扫描无响应 的主机时,这个保守值会保持一段时间。 +.sp +这些选项以毫秒为单位,采用小的\fB\-\-max\-rtt\-timeout\fR值,使 +\fB\-\-initial\-rtt\-timeout\fR值大于默认值可以明显减少扫描时间,特别 是对不能ping通的扫描(\fB\-P0\fR)以及具有严格过滤的网络。如果使用太 小的值,使得很多探测报文超时从而重新发送,而此时可能响应消息正在发送,这使得整个扫描的时 间会增加。 +.sp +如果所有的主机都在本地网络,对于\fB\-\-max\-rtt\-timeout\fR值来 说,100毫秒比较合适。如果存在路由,首先使用ICMP ping工具ping主机,或使用其 它报文工具如hpings,可以更好地穿透防火墙。查看大约10个包的最大往返时间,然后将 +\fB\-\-initial\-rtt\-timeout\fR设成这个时间的2倍,\fB\-\-max\-rtt\-timeout\fR +可设成这个时间值的3倍或4倍。通常,不管ping的时间是多少,最大的rtt值不得小于100ms, 不能超过1000ms。 +.sp +\fB\-\-min\-rtt\-timeout\fR这个选项很少使用,当网络不可靠时, Nmap的默认值也显得过于强烈,这时这个选项可起作用。当网络看起来不可靠时,Nmap仅将 超时时间降至最小值,这个情况是不正常的,需要向nmap\-dev邮件列表报告bug。 +.RE +.PP +\fB\-\-host\-timeout <milliseconds>\fR (放弃低速目标主机) +.RS 4 +由于性能较差或不可靠的网络硬件或软件、带宽限制、严格的防火墙等原因, 一些主机需要\fI很长\fR的时间扫描。这些极少数的主机扫描往往占 据了大部分的扫描时间。因此,最好的办法是减少时间消耗并且忽略这些主机,使用 +\fB\-\-host\-timeout\fR选项来说明等待的时间(毫秒)。通常使用1800000 来保证Nmap不会在单个主机上使用超过半小时的时间。需要注意的是,Nmap在这半小时中可以 同时扫描其它主机,因此并不是完全放弃扫描。超时的主机被忽略,因此也没有针对该主机的 端口表、操作系统检测或版本检测结果的输出。 +.RE +.PP +\fB\-\-scan\-delay <milliseconds>\fR; \fB\-\-max\-scan\-delay <milliseconds>\fR (调整探测报文的时间间隔) +.RS 4 +这个选项用于Nmap控制针对一个主机发送探测报文的等待时间(毫秒),在带宽 控制的情况下这个选项非常有效。Solaris主机在响应UDP扫描探测报文报文时,每秒 只发送一个ICMP消息,因此Nmap发送的很多数探测报文是浪费的。\fB\-\-scan\-delay\fR +设为1000,使Nmap低速运行。Nmap尝试检测带宽控制并相应地调整扫描的延迟,但 并不影响明确说明何种速度工作最佳。 +.sp +\fB\-\-scan\-delay\fR的另一个用途是躲闭基于阈值的入侵检测和预防 系统(IDS/IPS)。 +.RE +.PP +\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (设置时间模板) +.RS 4 +上述优化时间控制选项的功能很强大也很有效,但有些用户会被迷惑。此外, 往往选择合适参数的时间超过了所需优化的扫描时间。因此,Nmap提供了一些简单的 方法,使用6个时间模板,使用时采用\fB\-T\fR选项及数字(0 \- 5) 或名称。模板名称有paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)。前两种模式用于IDS躲避,Polite模式降低了扫描 速度以使用更少的带宽和目标主机资源。默认模式为Normal,因此\fB\-T3\fR +实际上是未做任何优化。Aggressive模式假设用户具有合适及可靠的网络从而加速 扫描。Insane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。 +.sp +用户可以根据自己的需要选择不同的模板,由Nmap负责选择实际的时间值。 模板也会针对其它的优化控制选项进行速度微调。例如,\fB\-T4\fR +针对TCP端口禁止动态扫描延迟超过10ms,\fB\-T5\fR对应的值为5ms。 模板可以和优化调整控制选项组合使用,但模板必须首先指定,否则模板的标准值 会覆盖用户指定的值。建议在扫描可靠的网络时使用 +\fB\-T4\fR,即使 在自己要增加优化控制选项时也使用(在命令行的开始),从而从这些额外的较小的优化 中获益。 +.sp +如果用于有足够的带宽或以太网连接,仍然建议使用\fB\-T4\fR选项。 有些用户喜欢\fB\-T5\fR选项,但这个过于强烈。有时用户考虑到避免使主机 崩溃或者希望更礼貌一些会采用\fB\-T2\fR选项。他们并没意识到\fB\-T Polite\fR选项是如何的慢,这种模式的扫描比默认方式实际上要多花10倍的时间。默认时间 选项(\fB\-T3\fR)很少有主机崩溃和带宽问题,比较适合于谨慎的用户。不进行 版本检测比进行时间调整能更有效地解决这些问题。 +.sp +虽然\fB\-T0\fR和\fB\-T1\fR选项可能有助于避免IDS告警,但 在进行上千个主机或端口扫描时,会显著增加时间。对于这种长时间的扫描,宁可设定确切的时间 值,而不要去依赖封装的\fB\-T0\fR和\fB\-T1\fR选项。 +.sp +\fBT0\fR选项的主要影响是对于连续扫描,在一个时间只能扫描一个端口, 每个探测报文的发送间隔为5分钟。\fBT1\fR和\fBT2\fR选项比较类似, 探测报文间隔分别为15秒和0\&.4秒。\fBT3\fR是Nmap的默认选项,包含了并行扫描。 +\fBT4\fR选项与 +\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500\fR +等价,最大TCP扫描延迟为10ms。\fBT5\fR等价于 +\fB\-\-max\-rtt\-timeout 300 \-\-min\-rtt\-timeout 50 \-\-initial\-rtt\-timeout 250 \-\-host\-timeout 900000\fR,最大TCP扫描延迟为5ms。 +.RE +.SH "防火墙/IDS躲避和哄骗" +.PP +很多Internet先驱们设想了一个全球开放的网络,使用全局的IP 地址空间,使得任何两个节点之间都有虚拟连接。这使得主机间可以作为真 正的对等体,相互间提供服务和获取信息。人们可以在工作时访问家里所 有的系统、调节空调温度、为提前到来的客人开门。随后,这些全球连接的设想 受到了地址空间短缺和安全考虑的限制。在90年代早期,各种机构开始部 署防火墙来实现减少连接的目的,大型网络通过代理、NAT和包过滤器与未 过滤的Internet隔离。不受限的信息流被严格控制的可信通信通道信息流所替代。 +.PP +类似防火墙的网络隔离使得对网络的搜索更加困难,随意的搜 索变得不再简单。然而,Nmap提供了很多特性用于理解这些复杂的网 络,并且检验这些过滤器是否正常工作。此外,Nmap提供了绕过某些较弱的 防范机制的手段。检验网络安全状态最有效的方法之一是尝试哄骗网络,将 自己想象成一个攻击者,使用本节提供的技术来攻击自己的网络。如使用FTP bounce扫描、Idle扫描、分片攻击或尝试穿透自己的代理。 +.PP +除限止网络的行为外,使用入侵检测系统(IDS)的公司也不断增加。由于Nmap 常用于攻击前期的扫描,因此所有主流的IDS都包含了检测Nmap扫描的规则。 现在,这些产品变形为入侵\fI预防\fR系统(IPS),可以主 动地阻止可疑的恶意行为。不幸的是,网络管理员和IDS厂商通过分析报文 来检测恶意行为是一个艰苦的工作,有耐心和技术的攻击者,在特定Nmap选项 的帮助下,常常可以不被IDS检测到。同时,管理员必须应付大量的误报结果, 正常的行为被误判而被改变或阻止。 +.PP +有时,人们建议Nmap不应该提供躲闭防火墙规则或哄骗IDS的功能, 这些功能可能会被攻击者滥用,然而管理员却可以利用这些功能来增强安全性。 实际上,攻击的方法仍可被攻击者利用,他们可以发现其它工具或Nmap的补丁程 序。同时,管理员发现攻击者的工作更加困难,相比较采取措施来预防执 行FTP Bounce攻击的工具而言,部署先进的、打过补丁的FTP服务器更 加有效。 +.PP +Nmap不提供检测和破坏防火墙及IDS系统的魔弹(或Nmap选项),它使用 的是技术和经验,这超出了本参考手册的范围,下面描述了相关的选项和 完成的工作。 +.PP +\fB\-f\fR (报文分段); \fB\-\-mtu\fR (使用指定的MTU) +.RS 4 +\fB\-f\fR选项要求扫描时(包挺ping扫描)使用 小的IP包分段。其思路是将TCP头分段在几个包中,使得包过滤器、 IDS以及其它工具的检测更加困难。必须小心使用这个选项,有些系 统在处理这些小包时存在问题,例如旧的网络嗅探器Sniffit在接收 到第一个分段时会立刻出现分段错误。该选项使用一次,Nmap在IP 头后将包分成8个字节或更小。因此,一个20字节的TCP头会被分成3个 包,其中2个包分别有TCP头的8个字节,另1个包有TCP头的剩下4个字 节。当然,每个包都有一个IP头。再次使用\fB\-f\fR可使用 16字节的分段(减少分段数量)。使用\fB\-\-mtu\fR选项可 以自定义偏移的大小,使用时不需要\fB\-f\fR,偏移量必须 是8的倍数。包过滤器和防火墙对所有的IP分段排队,如Linux核心中的 CONFIG\-IP\-ALWAYS\-DEFRAG配置项,分段包不会直接使用。一些网络无法 承受这样所带来的性能冲击,会将这个配置禁止。其它禁止的原因有分段 包会通过不同的路由进入网络。一些源系统在内核中对发送的报文进行 分段,使用iptables连接跟踪模块的Linux就是一个例子。当使用类似Ethereal 的嗅探器时,扫描必须保证发送的报文要分段。如果主机操作系统会产 生问题,尝试使用\fB\-\-send\-eth\fR选项以避开IP层而直接 发送原始的以太网帧。 +.RE +.PP +\fB\-D <decoy1 [,decoy2][,ME],\&.\&.\&.>\fR (使用诱饵隐蔽扫描) +.RS 4 +为使诱饵扫描起作用,需要使远程主机认为是诱饵在扫描目标网络。 IDS可能会报个某个IP的5\-10个端口扫描,但并不知道哪个IP在扫描以及 哪些不是诱饵。但这种方式可以通过路由跟踪、响应丢弃以及其它主动 机制在解决。这是一种常用的隐藏自身IP地址的有效技术。 +.sp +使用逗号分隔每个诱饵主机,也可用自己的真实IP作为诱饵,这时可使用 +ME选项说明。如果在第6个位置或 更后的位置使用ME选项,一些常用 端口扫描检测器(如Solar Designer\*(Aqs excellent scanlogd)就不会报告 这个真实IP。如果不使用ME选项,Nmap 将真实IP放在一个随机的位置 +.sp +注意,作为诱饵的主机须在工作状态,否则会导致目标主机的SYN洪水攻击。 如果在网络中只有一个主机在工作,那就很容易确定哪个主机在扫描。也可 使用IP地址代替主机名(被诱骗的网络就不可能在名字服务器日志中发现)。 +.sp +诱饵可用在初始的ping扫描(ICMP、SYN、ACK等)阶段或真正的端口扫描 阶段。诱饵也可以用于远程操作系统检测(\fB\-O\fR)。在进行版 本检测或TCP连接扫描时,诱饵无效。 +.sp +使用过多的诱饵没有任何价值,反而导致扫描变慢并且结果不准确。 此外,一些ISP会过滤哄骗的报文,但很多对欺骗IP包没有任何限制。 +.RE +.PP +\fB\-S <IP_Address>\fR (源地址哄骗) +.RS 4 +在某些情况下,Nmap可能无法确定你的源地址(如果这样,Nmap会给出 提示)。此时,使用\fB\-S\fR选项并说明所需发送包的接口IP地址。 +.sp +这个标志的另一个用处是哄骗性的扫描,使得目标认为是\fI另 一个地址\fR在进行扫描。可以想象某一个竞争对手在不断扫描某个公司! +\fB\-e\fR选项常在这种情况下使用,也可采用\fB\-P0\fR选项。 +.RE +.PP +\fB\-e <interface>\fR (使用指定的接口) +.RS 4 +告诉Nmap使用哪个接口发送和接收报文,Nmap可以进行自动检测, 如果检测不出会给出提示。 +.RE +.PP +\fB\-\-source\-port <portnumber>;\fR \fB\-g <portnumber>\fR (源端口哄骗) +.RS 4 +仅依赖于源端口号就信任数据流是一种常见的错误配置,这个问题非常 好理解。例如一个管理员部署了一个新的防火墙,但招来了很多用户的不满,因为 他们的应用停止工作了。可能是由于外部的UDP DNS服务器响应无法进入网络,而导致 DNS的崩溃。FTP是另一个常见的例子,在FTP传输时,远程服务器尝试和内部用 建立连接以传输数据。 +.sp +对这些问题有安全解决方案,通常是应用级代理或协议分析防火墙模块。 但也存在一些不安全的方案。注意到DNS响应来自于53端口,FTP连接 来自于20端口,很多管理员会掉入一个陷阱,即允许来自于这些端口的数据进入 网络。他们认为这些端口里不会有值得注意的攻击和漏洞利用。此外,管理员 或许认为这是一个短期的措施,直至他们采取更安全的方案。但他们忽视了安全的 升级。 +.sp +不仅仅是工作量过多的网络管理员掉入这种陷阱,很多产品本身也会有这类 不安全的隐患,甚至是微软的产品。Windows 2000和Windows XP中包含的IPsec过滤 器也包含了一些隐含规则,允许所有来自88端口(Kerberos)的TCP和UDP数据流。另 一个常见的例子是Zone Alarm个人防火墙到2\&.1\&.25版本仍然允许源端口53(DNS)或 67(DHCP)的UDP包进入。 +.sp +Nmap提供了\fB\-g\fR和\fB\-\-source\-port\fR选项(它们是 等价的),用于利用上述弱点。只需要提供一个端口号,Nmap就可以从这些 端口发送数据。为使特定的操作系统正常工作,Nmap必须使用不同的端口号。 DNS请求会忽略\fB\-\-source\-port\fR选项,这是因为Nmap依靠系 统库来处理。大部分TCP扫描,包括SYN扫描,可以完全支持这些选项,UDP扫 描同样如此。 +.RE +.PP +\fB\-\-data\-length <number>\fR (发送报文时 附加随机数据) +.RS 4 +正常情况下,Nmap发送最少的报文,只含一个包头。因此TCP包通常 是40字节,ICMP ECHO请求只有28字节。这个选项告诉Nmap在发送的报文上 附加指定数量的随机字节。操作系统检测(\fB\-O\fR)包不受影响, 但大部分ping和端口扫描包受影响,这会使处理变慢,但对扫描的影响较小。 +.RE +.PP +\fB\-\-ttl <value>\fR (设置IP time\-to\-live域) +.RS 4 +设置IPv4报文的time\-to\-live域为指定的值。 +.RE +.PP +\fB\-\-randomize\-hosts\fR (对目标主机的顺序随机排列) +.RS 4 +告诉Nmap在扫描主机前对每个组中的主机随机排列,最多可达 8096个主机。这会使得扫描针对不同的网络监控系统来说变得不是很 明显,特别是配合值较小的时间选项时更有效。如果需要对一个较大 的组进行随机排列,需要增大nmap\&.h文件中 PING\-GROUP\-SZ的值,并重新编译。另一种方法是使用列表扫描 (\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR),产生目标IP的列表, 使用Perl脚本进行随机化,然后使用\fB\-iL\fR提供给Nmap。 +.RE +.PP +\fB\-\-spoof\-mac <mac address,prefix,or vendor name>\fR (MAC地址哄骗) +.RS 4 +要求Nmap在发送原以太网帧时使用指定的MAC地址,这个选项隐含了 +\fB\-\-send\-eth\fR选项,以保证Nmap真正发送以太网包。MAC地址有几 种格式。如果简单地使用字符串\(lq0\(rq,Nmap选择一个完全随机的MAC 地址。如果给定的字符品是一个16进制偶数(使用:分隔),Nmap将使用这个MAC地址。 如果是小于12的16进制数字,Nmap会随机填充剩下的6个字节。如果参数不是0或16进 制字符串,Nmap将通过nmap\-mac\-prefixes查找 厂商的名称(大小写区分),如果找到匹配,Nmap将使用厂商的OUI(3字节前缀),然后 随机填充剩余的3个节字。正确的\fB\-\-spoof\-mac\fR参数有, +Apple, +0,01:02:03:04:05:06, +deadbeefcafe,0020F2, 和Cisco\&. +.RE +.SH "输出" +.PP +任何安全工具只有在输出结果时才是有价值的,如果没有通过组织和 易于理解的方式来表达,复杂的测试和算法几乎没有意义。Nmap提供了一些 方式供用户和其它软件使用,实际上,没有一种方式可以使所有人满意。 因此Nmap提供了一些格式,包含了方便直接查看的交互方式和方便软件处理 的XML格式。 +.PP +除了提供输出格式外,Nmap还提供了选项来控制输出的细节以及调试 信息。输出内容可发送给标准输出或命名文件,可以追加或覆盖。输出文件还可 被用于继续中断的扫描。 +.PP +Nmap提供5种不同的输出格式。默认的方式是interactive output, 发送给标准输出(stdout)。normal output方式类似于 +interactive,但显示较少的运行时间信息 和告警信息,这是由于这些信息是在扫描完全结束后用于分析,而不是交互式的。 +.PP +XML输出是最重要的输出类型,可被转换成HTML,对于程序处理非常方便, 如用于Nmap图形用户接口或导入数据库。 +.PP +另两种输出类型比较简单,grepable output格式,在一行中包含目标主机最多的信息;sCRiPt KiDDi3 0utPUt +格式,用于考虑自己的用户 |<\-r4d。 +.PP +交互式输出是默认方式,没有相应的命令行选项,其它四种格式选项 使用相同的语法,采用一个参数,即存放结果的文件名。多种格式可同时 使用,但一种格式只能使用一次。例如,在标准输出用于查看的同时,可将结 果保存到XML文件用于程序分析,这时可以使用选项\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR。 为便于描述的简化,本章使用类似于myscan\&.xml的简单文件名, 建议采用更具有描述性的文件名。文件名的选择与个人喜好有关,建议增加 扫描日期以及一到两个单词来描述,并放置于一个目录中。 +.PP +在将结果输出到文件的同时,Nmap仍将结果发送给标准输出。例如, 命令\fBnmap \-oX myscan\&.xml target\fR将 输出XML至myscan\&.xml,并在stdout 上打印相同的交互式结果,而此时\fB\-oX\fR选项没有采用。可以 使用连字符作为选项来改变,这使得Nmap禁止交互式输出,而是将结果打印到 所指定的标准输出流中。因此,命令\fBnmap \-oX \- target\fR只 输出XML至标准输出stdout。严重错误仍然是输出到标准错误流stderr中。 +.PP +与其它Nmap参数不同,日志文件选项的空格(如\fB\-oX\fR)和 文件名或连字符是必需的。如果省略了标记,例如\fB\-oG\-\fR或 +\fB\-oXscan\&.xml\fR,Nmap的向后兼容特点将建立 +\fI标准格式\fR的输出文件,相应的文件名为G\-和 +Xscan\&.xml。 +.PP +Nmap还提供了控制扫描细节以及输出文件的添加或覆盖的选项,这些选项 如下所述。 +.PP +\fBNmap输出格式\fR +.PP +\fB\-oN <filespec>\fR (标准输出) +.RS 4 +要求将标准输出直接写入指定 的文件。如上所述,这个格式与交互式输出 +略有不同。 +.RE +.PP +\fB\-oX <filespec>\fR (XML输出) +.RS 4 +要求XML输出直接写入指定 的文件。Nmap包含了一个文档类型定义(DTD),使XML解析器有效地 进行XML输出。这主要是为了程序应用,同时也可以协助人工解释 Nmap的XML输出。DTD定义了合法的格式元素,列举可使用的属性和 值。最新的版本可在 +\m[blue]\fB\%https://nmap.org/data/nmap.dtd\fR\m[]获取。 +.sp +XML提供了可供软件解析的稳定格式输出,主要的计算机 语言都提供了免费的XML解析器,如C/C++,Perl,Python和Java。 针对这些语言有一些捆绑代码用于处理Nmap的输出和特定的执行程序。 例如perl CPAN中的\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[8]\d\s+2 +和\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[9]\d\s+2。 对几乎所有与Nmap有接口的主要应用来说,XML是首选的格式。 +.sp +XML输出引用了一个XSL样式表,用于格式化输出结果,类似于 HTML。最方便的方法是将XML输出加载到一个Web浏览器,如Firefox 或IE。由于nmap\&.xsl文件的绝对 路径,因此通常只能在运行了Nmap的机器上工作(或类似配置的机器)。 类似于任何支持Web机器的HTML文件,\fB\-\-stylesheet\fR +选项可用于建立可移植的XML文件。 +.RE +.PP +\fB\-oS <filespec>\fR (ScRipT KIdd|3 oUTpuT) +.RS 4 +脚本小子输出类似于交互工具输出,这是一个事后处理,适合于 \*(Aql33t HaXXorZ, 由于原来全都是大写的Nmap输出。这个选项和脚本小子开了玩笑,看上去似乎是为了 +\(lq帮助他们\(rq。 +.RE +.PP +\fB\-oG <filespec>\fR (Grep输出) +.RS 4 +这种方式最后介绍,因为不建议使用。XML输格式很强大,便于有经验 的用户使用。XML是一种标准,由许多解析器构成,而Grep输届更简化。XML 是可扩展的,以支持新发布的Nmap特点。使用Grep输出的目的是忽略这些 特点,因为没有足够的空间。 +.sp +然面,Grep输出仍然很常使用。它是一种简单格式,每行一个主机,可以 通过UNIX工具(如grep、awk、cut、sed、diff)和Perl方便地查找和分解。常可 用于在命令行上进行一次性测式。查找ssh端口打开或运行Sloaris的主机,只需 要一个简单的grep主机说明,使用通道并通过awk或cut命令打印所需的域。 +.sp +Grep输出可以包含注释(每行由#号开始)。每行由6个标记的域组成,由制表符及 冒号分隔。这些域有主机,端口, +协议,忽略状态, +操作系统,序列号, +IPID和状态。 +.sp +这些域中最重要的是Ports,它提供 了所关注的端口的细节,端口项由逗号分隔。每个端口项代表一个所关注的端口, 每个子域由/分隔。这些子域有:端口号, +状态,协议, +拥有者,服务, +SunRPCinfo和版本信息。 +.sp +对于XML输出,本手册无法列举所有的格式,有关Nmap Grep输出的更详细信息可 查阅\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]。 +.RE +.PP +\fB\-oA <basename>\fR (输出至所有格式) +.RS 4 +为使用方便,利用\fB\-oA\fR\fB\fIbasename\fR\fR选项 可将扫描结果以标准格式、XML格式和Grep格式一次性输出。分别存放在 +\fIbasename\fR\&.nmap,\fIbasename\fR\&.xml和 +\fIbasename\fR\&.gnmap文件中。也可以在文件名前 指定目录名,如在UNIX中,使用~/nmaplogs/foocorp/, 在Window中,使用c:\ehacking\esco +on Windows。 +.RE +.PP +\fB细节和调试选项\fR +.PP +\fB\-v\fR (提高输出信息的详细度) +.RS 4 +通过提高详细度,Nmap可以输出扫描过程的更多信息。 输出发现的打开端口,若Nmap认为扫描需要更多时间会显示估计 的结束时间。这个选项使用两次,会提供更详细的信息。这个选 项使用两次以上不起作用。 +.sp +大部分的变化仅影响交互式输出,也有一些影响标准和脚本 小子输出。其它输出类型由机器处理,此时Nmap默认提供详细的信 息,不需要人工干预。然而,其它模式也会有一些变化,省略一些 细节可以减小输出大小。例如,Grep输出中的注释行提供所有扫描 端口列表,但由于这些信息过长,因此只能在细节模式中输出。 +.RE +.PP +\fB\-d [level]\fR (提高或设置调试级别) +.RS 4 +当详细模式也不能为用户提供足够的数据时,使用调试可以得到更 多的信息。使用细节选项(\fB\-v\fR)时,可启用命令行参数 (\fB\-d\fR),多次使用可提高调试级别。也可在\fB\-d\fR +后面使用参数设置调试级别。例如,\fB\-d9\fR设定级别9。这是 最高的级别,将会产生上千行的输出,除非只对很少的端口和目标进行简单扫描。 +.sp +如果Nmap因为Bug而挂起或者对Nmap的工作及原理有疑问,调试输出 非常有效。主要是开发人员用这个选项,调试行不具备自我解释的特点。 例如,Timeoutvals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000。如果对某行输出不明白, 可以忽略、查看源代码或向开发列表(nmap\-dev)求助。有些输出行会有自 我解释的特点,但随着调试级别的升高,会越来越含糊。 +.RE +.PP +\fB\-\-packet\-trace\fR (跟踪发送和接收的报文) +.RS 4 +要求Nmap打印发送和接收的每个报文的摘要,通常用于 调试,有助于新用户更好地理解Nmap的真正工作。为避免输出过 多的行,可以限制扫描的端口数,如\fB\-p20\-30\fR。 如果只需进行版本检测,使用\fB\-\-version\-trace\fR。 +.RE +.PP +\fB\-\-iflist\fR (列举接口和路由) +.RS 4 +输出Nmap检测到的接口列表和系统路由,用于调试路由 问题或设备描述失误(如Nmap把PPP连接当作以太网对待)。 +.RE +.PP +\fB其它输出选项\fR +.PP +\fB\-\-append\-output\fR (在输出文件中添加) +.RS 4 +当使用文件作为输出格式,如\fB\-oX\fR或\fB\-oN\fR, 默认该文件被覆盖。如果希望文件保留现有内容,将结果添加在现 有文件后面,使用\fB\-\-append\-output\fR选项。所有指 定的输出文件都被添加。但对于XML(\fB\-oX\fR)扫描输出 文件无效,无法正常解析,需要手工修改。 +.RE +.PP +\fB\-\-resume <filename>\fR (继续中断的扫描) +.RS 4 +一些扩展的Nmap运行需要很长的时间 \-\- 以天计算,这类扫描 往往不会结束。可以进行一些限制,禁止Nmap在工作时间运行,导致 网络中断、运行Nmap的主机计划或非计划地重启、或者Nmap自己中断。 运行Nmap的管理员可以因其它原因取消运行,按下ctrl\-C +即可。从头开始启动扫描可能令人不快,幸运的是,如果标准扫描 (\fB\-oN\fR)或Grep扫描(\fB\-oG\fR)日志 被保留,用户可以要求Nmap恢复终止的扫描,只需要简单地使用选项 +\fB\-\-resume\fR并说明标准/Grep扫描输出文件,不允许 使用其它参数,Nmap会解析输出文件并使用原来的格式输出。使用方式 如\fBnmap \-\-resume \fR\fB\fIlogfilename\fR\fR。 Nmap将把新地结果添加到文件中,这种方式不支持XML输出格式,原因是 将两次运行结果合并至一个XML文件比较困难。 +.RE +.PP +\fB\-\-stylesheet <path or URL>\fR (设置XSL样式表,转换XML输出) +.RS 4 +Nmap提从了XSL样式表nmap\&.xsl,用于查看 或转换XML输出至HTML。XML输出包含了一个xml\-stylesheet, 直接指向nmap\&.xml文件, 该文件由Nmap安装(或位于Windows当前工作目录)。在Web浏览器 中打开Nmap的XML输出时,将会在文件系统中寻找nmap\&.xsl文件, 并使用它输出结果。如果希望使用不同的样式表,将它作为 +\fB\-\-stylesheet\fR的参数,必段指明完整的路 径或URL,常见的调用方式是\fB\-\-stylesheet https://nmap\&.org/data/nmap\&.xsl\fR。 这告诉浏览器从Insecire\&.Org中加载最新的样式表。这使得 没安装Nmap(和nmap\&.xsl) 的机器中可以方便地查看结果。因此,URL更方便使用,本地文件系统 的nmap\&.xsl用于默认方式。 +.RE +.PP +\fB\-\-no\-stylesheet\fR (忽略XML声明的XSL样式表) +.RS 4 +使用该选项禁止Nmap的XML输出关联任何XSL样式表。 +xml\-stylesheet指示被忽略。 +.RE +.SH "其它选项" +.PP +本节描述一些重要的(和并不重要)的选项,这些选项 不适合其它任何地方。 +.PP +\fB\-6\fR (启用IPv6扫描) +.RS 4 +从2002年起,Nmap提供对IPv6的一些主要特征的支持。ping扫描(TCP\-only)、 连接扫描以及版本检测都支持IPv6。除增加\fB\-6\fR选项外, 其它命令语法相同。当然,必须使用IPv6地址来替换主机名,如 +3ffe:7501:4819:2000:210:f3ff:fe03:14d0。 除\(lq所关注的端口\(rq行的地址部分为IPv6地址。 +.sp +IPv6目前未在全球广泛采用,目前在一些国家(亚洲)应用较多, 一些高级操作系统支持IPv6。使用Nmap的IPv6功能,扫描的源和目 的都需要配置IPv6。如果ISP(大部分)不分配IPv6地址,Nmap可以采用 免费的隧道代理。一种较好的选择是BT Exact,位于\m[blue]\fB\%https://tb.ipv6.btexact.com/\fR\m[]。 此外,还有Hurricane Electric,位于\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]。6to4隧道是 另一种常用的免费方法。 +.RE +.PP +\fB\-A\fR (激烈扫描模式选项) +.RS 4 +这个选项启用额外的高级和高强度选项,目前还未确定代表 的内容。目前,这个选项启用了操作系统检测(\fB\-O\fR) 和版本扫描(\fB\-sV\fR),以后会增加更多的功能。 目的是启用一个全面的扫描选项集合,不需要用户记忆大量的 选项。这个选项仅仅启用功能,不包含用于可能所需要的 时间选项(如\fB\-T4\fR)或细节选项(\fB\-v\fR)。 +.RE +.PP +\fB\-\-datadir <directoryname>\fR (说明用户Nmap数据文件位置) +.RS 4 +Nmap在运行时从文件中获得特殊的数据,这些文件有 +nmap\-service\-probes, +nmap\-services, +nmap\-protocols, +nmap\-rpc, +nmap\-mac\-prefixes和 +nmap\-os\-fingerprints。Nmap首先 在\fB\-\-datadir\fR选项说明的目录中查找这些文件。 未找到的文件,将在BMAPDIR环境变量说明的目录中查找。 接下来是用于真正和有效UID的~/\&.nmap +或Nmap可执行代码的位置(仅Win32);然后是是编译位置, 如/usr/local/share/nmap +或/usr/share/nmap。 Nmap查找的最后一个位置是当前目录。 +.RE +.PP +\fB\-\-send\-eth\fR (使用原以太网帧发送) +.RS 4 +要求Nmap在以太网(数据链路)层而不是IP(网络层)发送 报文。默认方式下,Nmap选择最适合其运行平台的方式,原套接 字(IP层)是UNIX主机最有效的方式,而以太网帧最适合Windows操作 系统,因为Microsoft禁用了原套接字支持。在UNIX中,如果没有其 它选择(如无以太网连接),不管是否有该选项,Nmap都使用原IP包。 +.RE +.PP +\fB\-\-send\-ip\fR (在原IP层发送) +.RS 4 +要求Nmap通过原IP套接字发送报文,而不是低层的以 太网帧。这是\fB\-\-send\-eth\fR选项的补充。 +.RE +.PP +\fB\-\-privileged\fR (假定用户具有全部权限) +.RS 4 +告诉Nmap假定其具有足够的权限进行源套接字包发送、 报文捕获和类似UNIX系统中根用户操作的权限。默认状态下, 如果由getuid()请求的类似操作不为0,Nmap将退出。 +\fB\-\-privileged\fR在具有Linux内核性能的类似 系统中使用非常有效,这些系统配置允许非特权用户可以进行 原报文扫描。需要明确的是,在其它选项之前使用这些需要权 限的选项(SYN扫描、操作系统检测等)。Nmap\-PRIVILEGED变量 设置等价于\fB\-\-privileged\fR选项。 +.RE +.PP +\fB\-V\fR; \fB\-\-version\fR (打印版本信息) +.RS 4 +打印Nmap版本号并退出。 +.RE +.PP +\fB\-h\fR; \fB\-\-help\fR (打印帮助摘要面) +.RS 4 +打印一个短的帮助屏幕,列出大部分常用的 命令选项,这个功能与不带参数运行Nmap是相同的。 +.RE +.SH "运行时的交互" +.PP +.PP +在执行Nmap时,所有的键盘敲击都被记录。这使得用户可以与 程序交互而不需要终止或重启。特定的键可改变选项,其它键会输出 一个有关扫描的状态消息。约定如下,\fI小写字母增加\fR +打印量,\fI大写字母减少\fR打印量。 +.PP +\fBv\fR / \fBV\fR +.RS 4 +增加 / 减少细节 +.RE +.PP +\fBd\fR / \fBD\fR +.RS 4 +提高 / 降低调试级别 +.RE +.PP +\fBp\fR / \fBP\fR +.RS 4 +打开/ 养老报文跟踪 +.RE +.PP +其它 +.RS 4 +打印的信息类似于: +.sp +Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan +.sp +Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining) +.RE +.SH "实例" +.PP +下面给出一些实例,简单的、复杂的到深奥的。为更具体,一 些例子使用了实际的IP地址和域名。在这些位置,可以使用\fI你自己网络\fR +的地址/域名替换。注意,扫描其它网络不一定合法,一些网络管理员不愿看到 未申请过的扫描,会产生报怨。因此,先获得允许是最好的办法。 +.PP +如果是为了测试,scanme\&.nmap\&.org +允许被扫描。但仅允许使用Nmap扫描并禁止测试漏洞或进行DoS攻击。为 保证带宽,对该主机的扫描每天不要超过12次。如果这个免费扫描服务被 滥用,系统将崩溃而且Nmap将报告解析 指定的主机名/IP地址失败:scanme\&.nmap\&.org。这些免 费扫描要求也适用于scanme2\&.nmap\&.org、 +scanme3\&.nmap\&.org等等,虽然这些 主机目前还不存在。 +.PP +\fBnmap \-v scanme\&.nmap\&.org\fR +.PP +这个选项扫描主机scanme\&.nmap\&.org中 所有的保留TCP端口。选项\fB\-v\fR启用细节模式。 +.PP +\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR +.PP +进行秘密SYN扫描,对象为主机Saznme所在的\(lqC类\(rq网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。 +.PP +\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR +.PP +进行主机列举和TCP扫描,对象为B类188\&.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。 +.PP +\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR +.PP +随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用\fB\-P0\fR禁止对主机列表。 +.PP +\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR +.PP +扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。 +.PP +\fBhost \-l company\&.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR +.PP +进行DNS区域传输,以发现company\&.com中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux \-\- 其它系统进行区域传输时有不同的命令。 +.SH "BUGS" +.PP +和作者一样,Nmap也不是完美的,但可以通过发送Bug报告甚至编写 补丁使其更加完善。如果Nmap不能满足要求,首先从\m[blue]\fB\%https://nmap.org/\fR\m[] +升级最新版本。如果总问题仍然存在,需要进行调查以确定问题是否 已经被解决。在\m[blue]\fB\%https://seclists.org/\fR\m[]尝试搜索出错消息或 浏览Nmap\-dev档案,以及仔细阅读使用手册。如果问题还是不能解决,发送 Bug报告至<dev@nmap\&.org>。在报告中包含所有 有关问题的信息,以及所使用的Nmap版本、操作系统版本。问题报告以及 Nmap的使用问题发送给dev@nmap\&.org比直接发送给Gyodor能更好回答。 +.PP +解决Bug的代码补丁比Bug报告更受欢迎,在\m[blue]\fB\%https://nmap.org/data/HACKING\fR\m[] +可获得建立补丁文件的基本指令。补丁可发送给nmap\-dev(建议) 或直接发给Fyodor。 +.SH "作者" +.PP +Fyodor +<fyodor@nmap\&.org> +(\m[blue]\fB\%http://www.insecure.org\fR\m[]) +.PP +译者:Fei Yang +<fyang1024@gmail\&.com>, Lei Li +<lilei_721@6611\&.org> +.PP +近年来,上百的人们为Nmap作出了极有价值的贡献,详细信息参见 随Nmap一起发布的CHANGELOG文件, 也可查看\m[blue]\fB\%https://nmap.org/nmap_changelog.html\fR\m[]。 +.SH "法律事项(版权、许可证、担保(缺)、出口限制)" +.SS "Unofficial Translation Disclaimer / 非官方翻译声明" +.PP +This is an unnofficial translation of the +\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[10]\d\s+2 +into [Finnish]\&. It was not written by Insecure\&.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\&. However, we hope that this translation helps [Finish] speakers understand the Nmap license better\&. +.PP +这是\m[blue]\fBNmap许可证明细\fR\m[]\&\s-2\u[10]\d\s+2的非官方的中文译本。它并非由Insecure\&.Com LLC编写,不是有法律效力的Nmap发布条款-- 只有原英文版具有此法律效力。然而,我们希望该译本帮助中文用户更好地理解Nmap许可证。 +.PP +在\m[blue]\fB\%https://nmap.org/\fR\m[]可获得Nmap的最新版本。 +.PP +Nmap安全扫描器(C) 1996\-2005是Insecure\&.Com LLC的产品。 Nmap也是 Insecure\&.Com LLC的注册商标。这是一个免费软件,按照免费软件联盟V2\&.0的 GNU普通公共许可证的规定,可以重新发布和/或修改。这保证用户在一定的条件 下可以使用、修改和重新发布此软件。如果需要将Nmap嵌入专用软件,我们 会销售相应的许可证(联系 +<sales@insecure\&.com>)。很多安全 扫描器厂商已经获得了Nmap技术的许可证,如主机发现、端口扫描、OS系统 检测以及服务/版本检测等技术。 +.PP +注意,GPL对\(lq衍生工作\(rq有重要的限制,但未给出有关的详细 描述。为避免误解,我们认为如果某个应用进行以下工作时被认为是该许可证的 +\(lq衍生工作\(rq: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +集成Nmap的源代码 +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +读取或包含Nmap拷贝权的数据文件,如 +nmap\-os\-fingerprints或 +nmap\-service\-probes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +执行Nmap并解析结果(与之相反的是,shell执行或执行菜单 应用,仅仅显示原始Nmap输出,则不是衍生工作。) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +将Nmap集成/包含/组合至一个专用的可执行安装程序,如由 InstallShield生成的安装程序。 +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +将Nmap链接到进行上述工作的库或程序中。 +.RE +.PP +名词\(lqNmap\(rq包含了Nmap的任何部分以及衍生工作,因此不仅限于上述 内容。上述内容使用了一些常见的例子来说明衍生工作。这些限制仅适 用于真正重新发布Nmap时。例如,不禁止开发和销售Nmap的前端,可以任意发布, 但必须说明从\m[blue]\fB\%https://nmap.org/\fR\m[]下载Nmap。 +.PP +这些条款并不是在GPL之上增加限制,只是为了明确说明与Nmap(有GPL许可证) 产品有关的\(lq衍生工作\(rq。这类似于Linus Torvalds对Linux内核模 块\(lq衍生工作\(rq的解释。我们的解释仅适用于Nmap \- 不适合其它 GPL产品。 +.PP +如果对有GPL许可证限制的Nmap应用于非GPL工作有任何问题,我们将提供 相关的帮助。如上述条款所述,我们提供了可选的许可证以集成Nmap到专用应用和设备, 这些合同已被销售给多个安全厂商,通常都包含了永久的许可证以及提供优先支 持、更新,并资助可持续的Nmap技术开发。请发送邮件至<sales@insecure\&.com> +以获得更多信息。 +.PP +作为GPL的一个特殊例外,Insecure\&.Com LLC授权许可链接该程序的代码 至任何版本的OpenSSL库,这个库的发布符合等同于Copying\&.OpenSSL文件中包含 的许可证,它的发布同时包含了两个内容。除OpenSSL外,在任何方面都必须遵 守GNU GPL。如果改变这个文件,就可能超出该文件的版本,但并不对此负责。 +.PP +如果收到书面的许可证协定或合同文件,与上述条款不同时,该可选的 许可证协定具有优先权。 +.PP +Nmap软件提供源代码,这是因为我们认为用户有权在运行之前知道程序的工作 内容,同时也使用户可以检查软件的漏洞(目前还未发现)。 +.PP +源代码还允许被移植到新的平台、修改Bug以及增加新功能。鼓励用户 向<fyodor@nmap\&.org> +发送更新,以并入正式的发布中。 发送这些更新至Fyodor或Insecure\&.Org开发列表,表明允许Fyodor和Insecure\&.Com LLC 具有无限止的、非独有的权限来使用、修改和重新定义这些代码的许可证。 Nmap将一直以开放代码的方式提供,由于无法进行代码的许可证重新定义从而可能 导致了对其它开放软件项目的破坏问题(如KDEt NASM),这一点很重要。 偶尔我们会向第三方提供重新定义的代码许可证。如果希望为自己的贡献说明 一个特定的许可证条件,在发送时指明。 +.PP +本程序的发布只是为了应用,不提供任何担保,也不隐含任何有关 特定目的的商业或适用性担保。在\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[] +的GNU通用公共许可证或Nmap中包含的COPYING文件中可查看更多细节。 +.PP +还需要注意,Nmap已经导致了一些编写拙劣的应用程序、TCP/IP 栈甚至操作系统的崩溃。\fBNmap不能用于破坏关键系统\fR, 除非准备好系统受到崩溃的影响。Nmap可能会造成系统或网络的崩溃,但 我们不对Nmap可能产生的破坏和问题负任何责任。 +.PP +由于崩溃的风险以及一些攻击者在攻击系统前使用Nmap进行检测, 因此一些管理员对此感到不安,报怨他们的系统受到扫描。因此,建议在扫描 之间获得允许,哪怕是对一个网络很轻微的扫描。 +.PP +为安全起见,不要将Nmap安装在有特殊权限的环境(如suid root)。 +.PP +这个产品包含了由\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[11]\d\s+2开发的 软件,发布时还包含了\m[blue]\fBLibpcap\fR\m[]\&\s-2\u[12]\d\s+2 +可移植包捕获器的改进版本。Windows版的Nmap使用了源于\m[blue]\fBWinPcap library\fR\m[]\&\s-2\u[13]\d\s+2 +的libpcap。正常的描述支持由\m[blue]\fBPCRE library\fR\m[]\&\s-2\u[14]\d\s+2 +提供,这也是一个开放源码软件,由Philip Hazel编写。特定的原网络功能使用 了\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[15]\d\s+2网络库, 由Dug Song编写,Nmap发布时带有一个改进版本。Nmap可以与 +\m[blue]\fBOpenSSL加密工具库\fR\m[]\&\s-2\u[16]\d\s+2链接用于SSL版本检测。 所有本段描述的第三方软件在遵守BSD风格软件许可证下均可以免费发布。 +.PP +美国出口控制:Insecure\&.Com LLC认为Nmap归入美国ECCN(出口控制分 类编码) 5D922。这个分类称为\(lq不受5D002控制的信息安全软件\(rq。 这个分类的唯一限制是AT(反恐怖主义),这个限制几乎适用于所有的产品,禁 止出口到一些国家,如伊朗和朝鲜。因此,出口Nmap不需要任何特殊的许可 证、允许或其它政府授权。 +.SH "备注" +.IP " 1." 4 +英文版本 +.RS 4 +\%https://nmap.org/man/ +.RE +.IP " 2." 4 +Creative Commons Attribution License +.RS 4 +\%http://creativecommons.org/licenses/by/2.5/ +.RE +.IP " 3." 4 +RFC 1122 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc1122.txt +.RE +.IP " 4." 4 +RFC 792 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc792.txt +.RE +.IP " 5." 4 +UDP +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc768.txt +.RE +.IP " 6." 4 +TCP RFC +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc793.txt +.RE +.IP " 7." 4 +RFC 959 +.RS 4 +\%http://www.rfc-editor.org/rfc/rfc959.txt +.RE +.IP " 8." 4 +Nmap::Scanner +.RS 4 +\%http://sourceforge.net/projects/nmap-scanner/ +.RE +.IP " 9." 4 +Nmap::Parser +.RS 4 +\%http://www.nmapparser.com +.RE +.IP "10." 4 +Nmap license details +.RS 4 +\%https://nmap.org/man/man-legal.html +.RE +.IP "11." 4 +Apache Software Foundation +.RS 4 +\%http://www.apache.org +.RE +.IP "12." 4 +Libpcap +.RS 4 +\%http://www.tcpdump.org +.RE +.IP "13." 4 +WinPcap library +.RS 4 +\%http://www.winpcap.org +.RE +.IP "14." 4 +PCRE library +.RS 4 +\%http://www.pcre.org +.RE +.IP "15." 4 +Libdnet +.RS 4 +\%http://libdnet.sourceforge.net +.RE +.IP "16." 4 +OpenSSL加密工具库 +.RS 4 +\%http://www.openssl.org +.RE |