1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-10 09:49:05 +00:00
Files
nmap/docs/man-xlate/nmap-man-pl.xml
2023-03-31 22:13:46 +00:00

3279 lines
198 KiB
XML

<?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&#281;dzie do eksploracji sieci i skaner port&#243;w/zabezpiecze&#324;</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&#281;dziem open source
do eksploracji sieci i audyt&#243;w bezpiecze&#324;stwa. Zosta&#322; zaprojektowany do
szybkiego skanowania du&#380;ych sieci, ale r&#243;wnie&#380; dzia&#322;a dobrze w stosunku do
pojedynczych adres&#243;w. Nmap wykorzystuje niskopoziomowe pakiety IP do
wykrywania kt&#243;re adresy s&#261; dost&#281;pne w sieci, jakie udost&#281;pniaj&#261; us&#322;ugi
(nazwa aplikacji i wersja), na jakich systemach operacyjnych pracuj&#261; (wersja
systemu), jakie typy system&#243;w zaporowych (firewall) s&#261; wykorzystywane i
dziesi&#261;tek innych cech. Nmap jest powszechnie wykorzystywany do audyt&#243;w
bezpiecze&#324;stwa, r&#243;wnie&#380; wielu administrator&#243;w sieci i system&#243;w wykorzystuje
go wykonywania rutynowych czynno&#347;ci, takich jak inwentaryzacja zasob&#243;w sieci,
zarz&#261;dzanie aktualizacjami oprogramowania i monitorowania system&#243;w oraz ich
czasu dzia&#322;ania (uptime).</para>
<para>Wynikiem dzia&#322;ania Nmapa jest lista przeskanowanych adres&#243;w z
dodatkowymi informacjami zale&#380;nymi od wykorzystanych opcji. Jedn&#261; z
g&#322;&#243;wnych informacji jest <quote>lista interesuj&#261;cych port&#243;w</quote>.
Zawiera ona numery port&#243;w wraz z protoko&#322;ami, nazwami us&#322;ugi i
wykrytym stanem. Stan mo&#380;e zosta&#263; opisany jako
<literal moreinfo="none">otwarty</literal>,
<literal moreinfo="none">filtrowany</literal>,
<literal moreinfo="none">zamkni&#281;ty</literal>, lub
<literal moreinfo="none">niefiltrowany</literal>.
Otwarty oznacza, &#380;e aplikacja na badanym adresie oczekuje na
po&#322;&#261;czenia/pakiety przychodz&#261;ce na ten port.
<literal moreinfo="none">Filtrowany</literal> oznacza, &#380;e system zaporowy
lub inne urz&#261;dzenie blokuj&#261;ce ruch sieciowy nie dopuszcza
komunikacji do tego portu i z tego powodu Nmap nie jest w stanie okre&#347;li&#263;
czy badany port jest <literal moreinfo="none">otwarty</literal> czy
<literal moreinfo="none">zamkni&#281;ty</literal>.
<literal moreinfo="none">Zamkni&#281;ty</literal> port nie posiada aplikacji,
kt&#243;ra obs&#322;uguje komunikacj&#281; sieciow&#261;. Porty sklasyfikowane jako
<literal moreinfo="none">niefiltrowane</literal> odpowiada&#322;y na zapytania
Nmapa, jednak nie by&#322;o mo&#380;liwe okre&#347;lenie, czy by&#322;y one otwarte czy
zamkni&#281;te. Nmap raportuje kombinacje stan&#243;w
<literal moreinfo="none">otwarty|filtrowany</literal> i
<literal moreinfo="none">zamkni&#281;ty|filtrowany</literal> je&#347;li nie jest w
stanie okre&#347;li&#263;, kt&#243;ry z dw&#243;ch podanych stan&#243;w lepiej opisuje stan portu.
Lista port&#243;w mo&#380;e r&#243;wnie&#380; zawiera&#263; informacje o wykrytych wersjach
oprogramowania, je&#347;li zosta&#322;a w&#322;&#261;czona detekcja wersji. Je&#347;li zosta&#322;a
wybrana opcja skanowania dost&#281;pnych protoko&#322;&#243;w (<option>-sO</option>),
Nmap zamiast listy port&#243;w dostarczy informacji na temat dost&#281;pno&#347;ci
poszczeg&#243;lnych protoko&#322;&#243;w IP.</para>
<para>Poza list&#261; interesuj&#261;cych port&#243;w, Nmap mo&#380;e dostarczy&#263; dodatkowych
informacje na temat badanych adres&#243;w, takich jak odwrotne nazwy DNS,
prawdopodobne systemy operacyjne, typu urz&#261;dze&#324; i adresy sprz&#281;towe
MAC.</para>
<para>Typowy wynik skanowania Nmapa jest przedstawiony w
<xref linkend="man-ex-repscan"/>. W tym przypadku wykorzystano tylko opcj&#281;
<option>-A</option>, wykrywaj&#261;c&#261; wersje systemu operacyjnego,
<option>-T4</option> dla szybszego dzia&#322;ania i dwa adresy docelowe.</para>
<example id="man-ex-repscan"><title>Przyk&#322;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&#261; wersj&#281; Nmapa mo&#380;na pobra&#263; z
<ulink url="https://nmap.org/"/>. Najnowsza wersja dokumentacji man
jest dost&#281;pna pod adresem
<ulink url="https://nmap.org/man/"/>.</para>
</refsect1>
<refsect1 id="man-translator">
<title>Uwagi do t&#322;umaczenia</title>
<para>Przemys&#322;aw Galczewski
<email>sako(at)avet.com.pl</email>
(<ulink url="http://www.avet.com.pl"/>)
</para>
<para>Dokument ten zawiera nieoficjalne polskie t&#322;umaczenie
<ulink url="https://nmap.org/man/">oryginalnej dokumentacji
Nmapa</ulink> w wersji 2991. Do&#322;o&#380;y&#322;em wszelkich stara&#324;, aby by&#322;o ono jak
najbardziej zbli&#380;one do orygina&#322;u, a przy tym fachowe i zrozumia&#322;e.
Nie jest przy tym gwarantowane, &#380;e jest ono tak samo dok&#322;adne i aktualne jak
oficjalna wersja angielska. Dokument ten mo&#380;e by&#263; 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&#281;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&#261;ce t&#322;umaczenia prosz&#281; kierowa&#263; bezpo&#347;rednio do mnie.</para>
</refsect1>
<refsect1 id="man-briefoptions">
<title>Skr&#243;cona lista opcji</title>
<para>Skr&#243;cona lista opcji jest wy&#347;wietlana przy uruchomieniu Nmapa bez
dodatkowych parametr&#243;w, a jej najnowsza wersja jest zawsze dost&#281;pna pod adresem
<ulink url="https://nmap.org/data/nmap.usage.txt"/>.
Skr&#243;cona lista pozwala &#322;atwiej zapami&#281;ta&#263; najpopularniejsze opcje, ale
nie zast&#261;pi wg&#322;&#281;bienia sie w reszt&#281; tej dokumentacji.
Wiele z pozosta&#322;ych opcji nie jest nawet zawartych na li&#347;cie skr&#243;conej.</para>
<para>
<literallayout format="linespecific" class="normal">U&#380;ycie: nmap [Typ(y) skanowania] [Opcje] {specyfikacja celu}
SPECYFIKACJA CELU:
Mo&#380;na poda&#263; nazwy host&#243;w, adresy IP, sieci, itp.
Przyk&#322;ady: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL &lt;plik_wej&#347;ciowy&gt;: Odczytanie listy host&#243;w/sieci z pliku
-iR &lt;ilo&#347;&#263; host&#243;w&gt;: Wybranie losowych adres&#243;w
--exclude &lt;host1[,host2][,host3],...&gt;: Wy&#322;&#261;czenie host&#243;w/sieci
--excludefile &lt;plik_wy&#322;&#261;cze&#324;&gt;: Wy&#322;&#261;czenie listy host&#243;w/sieci z pliku
WYKRYWANIE HOST&#211;W:
-sL: Lista skanowania - tylko wy&#347;wietla list&#281; host&#243;w do skanowania
-sP: Skanowanie Ping - tylko wykrywanie dost&#281;pno&#347;ci host&#243;w
-P0: Traktuj wszystkie hosty jako dost&#281;pne - pomijanie wykrywania
-PS/PA/PU [lista_port&#243;w]: Wykrywanie TCP SYN/ACK lub UDP na wybranych portach
-PE/PP/PM: Zykrywanie za pomoc&#261; ICMP echo, timestamp, zapytania o mask&#281; sieci
-n/-R: Nie u&#380;ywaj zapyta&#324; DNS/Zawsze odpytuj DNS [domy&#347;lnie: czasami]
--dns-servers &lt;serv1[,serv2],...&gt;: U&#380;ywaj okre&#347;lonych serwer&#243;w DNS
--system-dns: U&#380;ywaj systemowych ustawie&#324; 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 &lt;flagi&gt;: R&#281;czne narzucanie flag TCP
-sI &lt;host zombie[:port]&gt;: Idlescan
-sO: Skanowanie protoko&#322;&#243;w IP
-b &lt;host po&#347;redni ftp&gt;: Skanowanie FTP bounce
SPECYFIKACJA PORT&#211;W I KOLEJNO&#346;CI SKANOWANIA:
-p &lt;zakres port&#243;w&gt;: Skanuj tylko podane porty
Przyk&#322;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&#322;&#261;czenie losowania kolejno&#347;ci
DETEKCJA US&#321;UG/WERSJI:
-sV: Wykrywaj wersj&#281; us&#322;ugi na otwartych portach
--version-intensity &lt;poziom&gt;: Od 0 (tylko niekt&#243;re) do 9 (U&#380;ywaj wszystkich test&#243;w)
--version-light: Limituj do najpopularniejszych test&#243;w (poziom 2)
--version-all: U&#380;ywaj wszystkich test&#243;w (poziom 9)
--version-trace: Pokazuj dok&#322;adne informacje podczas skanowania (do usuwania b&#322;&#281;d&#243;w)
DETEKCJA OS:
-O: W&#322;&#261;czenie wykrywania systemu operacyjnego
--osscan-limit: Limitowanie wykrywania OS do obiecuj&#261;cych host&#243;w
--osscan-guess: Zgaduj wersj&#281; OS bardziej agresywnie
WYDAJNO&#346;&#262; I ZALE&#379;NO&#346;CI CZASOWE:
-T[0-5]: Ustaw szablon (wy&#380;szy jest szybszy)
--min-hostgroup/max-hostgroup &lt;rozmiar&gt;: Rozmiary grup do r&#243;wnoleg&#322;ego skanowania
--min-parallelism/max-parallelism &lt;ilo&#347;&#263;_pr&#243;b&gt;: Zr&#243;wnoleglenie test&#243;w
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout &lt;msec&gt;: Specyfikuje czas test&#243;w
--max-retries &lt;ilo&#347;&#263;&gt;: Ustala ilo&#347;&#263; mo&#380;liwych powt&#243;rze&#324; testu
--host-timeout &lt;msec&gt;: Pomijaj po zadanym czasie
--scan-delay/--max-scan-delay &lt;msec&gt;: Ustalenie op&#243;&#378;nienia pomi&#281;dzy testami
OPCJE FIREWALL/IDS:
-f; --mtu &lt;warto&#347;&#263;&gt;: fragmentacja pakiet&#243;w (opcjonalnie z podanym MTU)
-D &lt;decoy1,decoy2[,ME],...&gt;: Ukrywaj skanowanie za pomoc&#261; innych host&#243;w
-S &lt;Adres_IP&gt;: Podmieniaj adres nadawcy
-e &lt;interfejs&gt;: U&#380;ywaj podanego interfejsu
-g/--source-port &lt;portnum&gt;: U&#380;ywaj podanego portu &#378;r&#243;d&#322;owego
--data-length &lt;num&gt;: Dodawaj losowe dane do wysy&#322;anych pakiet&#243;w
--ttl &lt;warto&#347;&#263;&gt;: Ustaw czas &#380;ycia pakiet&#243;w
--spoof-mac &lt;adres mac/prefix/producent&gt;: Podmieniaj adres MAC
--badsum: Wysy&#322;aj pakiety z nieprawid&#322;ow&#261; sum&#261; kontroln&#261; TCP/UDP
WYJ&#346;CIE:
-oN/-oX/-oS/-oG &lt;plik&gt;: Zapisz wyniki w podanym pliku normalnie, w XML, s|&lt;rIpt kIddi3
i formacie grepowalnym
-oA &lt;nazwabazowa&gt;: Zapisz wyniki w trzech formatach jednocze&#347;nie
-v: Podwy&#380;szenie poziomu raportowania (podw&#243;jne u&#380;ycie powi&#281;ksza efekt)
-d[poziom]: Ustaw lub podwy&#380;sz poziom debugowania (do najwy&#380;szego 9)
--packet-trace: Pokazuj wszystkie wysy&#322;ane i odbierane pakiety
--iflist: Wy&#347;wietl list&#281; interfejs&#243;w i routingu (do wykrywania b&#322;&#281;d&#243;w)
--append-output: Do&#322;&#261;cz nowe wyniki do ju&#380; istniej&#261;cych w pliku
--resume &lt;nazwapliku&gt;: Wzn&#243;w przerwane skanowanie
--stylesheet &lt;&#347;cie&#380;ka/URL&gt;: plik styli XSL do konwersji wynik&#243;w w XML do formatu HTML
--webxml: Domy&#347;lny styl z Insecure.Org
--no-stylesheet: Wy&#322;&#261;czenie dodawania styli do plik&#243;w z wynikami XML
R&#211;&#379;NE:
-6: W&#322;&#261;czenie skanowania IPv6
-A: W&#322;&#261;czenie detekcji OS i wersji us&#322;ug
--datadir &lt;katalog&gt;: Podanie katalogu z plikami danych Nmapa
--send-eth/--send-ip: Wysy&#322;aj za pomoc&#261; ramek ethernet lub pakiet&#243;w IP
--privileged: Zak&#322;adaj &#380;e u&#380;ytkownik ma odpowiednie uprawnienia
-V: Wy&#347;wietl numer wersji Nmapa
-h: Wy&#347;wietl stron&#281; pomocy
PRZYK&#321;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&#261; Nmapa w parametrach wywo&#322;ania (lub jej
argumentem) jest traktowane jako specyfikacja celu skanowania.
Najprostszym przypadkiem jest sam adres do przeskanowania.</para>
<para>Czasami chcesz przeskanowa&#263; ca&#322;&#261; sie&#263;, dlatego Nmap obs&#322;uguje format
CDIR. Mo&#380;esz do&#322;&#261;czy&#263; do adresu /<replaceable>ilo&#347;&#263;bit&#243;w</replaceable> i nmap
przeskanuje ka&#380;dy adres, kt&#243;ry zawiera si&#281; w podanym zakresie.
Na przyk&#322;ad, 192.168.10.0/24 przeskanuje 256 adres&#243;w pomi&#281;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&#322;&#261;cznie. Podanie 192.168.10.40/24 spowoduje dok&#322;adnie takie samo zachowanie.
Za&#322;&#243;&#380;my, &#380;e host scanme.nmap.org ma adres 205.217.153.62, podanie
scanme.nmap.org/16 spowoduje przeskanowanie 65,536 adres&#243;w IP pomi&#281;dzy
205.217.0.0 i 205.217.255.255. Najmniejsz&#261; dopuszczalna warto&#347;&#263; to /1,
co stanowi po&#322;ow&#281; Internetu. Najwi&#281;ksza warto&#347;&#263; to 32, kt&#243;ra oznacza
skanowanie pojedynczego adresu IP.</para>
<para>Notacja CIDR jest kr&#243;tka i zwi&#281;z&#322;a, jednak nie zawsze wystarczaj&#261;co
elastyczna. Na przyk&#322;ad, chcesz przeskanowa&#263; 192.168.0.0/16 z pomini&#281;ciem
wszystkich adres&#243;w ko&#324;cz&#261;cych si&#281; .0 i .255, poniewa&#380; s&#261; one najcz&#281;&#347;ciej
adresami typu broadcast. Nmap obs&#322;uguje to poprzez podawanie zakres&#243;w adres&#243;w
za pomoc&#261; oktet&#243;w. Zamiast podawa&#263; normalny adres IP, mo&#380;esz poda&#263; list&#281;
adres&#243;w lub zakres&#243;w oddzielon&#261; przecinkami. Na przyk&#322;ad 192.168.0-255.1-254
pominie wszystkie adresy ko&#324;cz&#261;ce si&#281; .0 lub .255.
Zakresy nie s&#261; limitowane do ko&#324;cowych oktet&#243;w: podanie 0-255.0-255.13.37
pozwoli na przeskanowanie wszystkich adres&#243;w ko&#324;cz&#261;cych si&#281; 13.37. Tego typu
skanowania mog&#261; by&#263; przydatne podczas przeprowadzania bada&#324; Internetu.</para>
<para>Adresy IPv6 mog&#261; by&#263; podawane jedynie w pe&#322;nej formie IPv6 lub nazwy
hosta. Zapis z wykorzystaniem CIDR i zakres&#243;w nie jest obs&#322;ugiwany przy IPV6,
jednak rzadko by&#322;oby to przydatne.</para>
<para>Nmap akceptuje podawanie wielu host&#243;w w linii polece&#324; i nie musz&#261; one
by&#263; 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&#261; podawane w linii polece&#324;, jednak poni&#380;sze opcje
pozwalaj&#261; na alternatywn&#261; specyfikacj&#281; celu:</para>
<variablelist>
<varlistentry>
<term>
<option>-iL &lt;plik_wej&#347;ciowy&gt;</option> (Odczytanie z pliku)
</term>
<listitem>
<para>odczytuje specyfikacj&#281; celu z pliku
<replaceable>plik-wej&#347;ciowy</replaceable>. Podawanie d&#322;ugiej listy
adres&#243;w z linii polece&#324; jest dosy&#263; niewygodne. Na przyk&#322;ad Tw&#243;j
serwer DHCP mo&#380;e posiada&#263; list&#281; 10,000 aktualnie dzier&#380;awionych
adres&#243;w, kt&#243;re chcesz przeskanowa&#263;. Mo&#380;liwe r&#243;wnie&#380;, &#380;e chcesz
przeskanowa&#263; wszystkie adresy IP z <emphasis>wykluczeniem</emphasis>
aktualnie dzier&#380;awionych aby uzyska&#263; list&#281; nielegalnie przypisanych
adres&#243;w statycznych. Po prostu wygeneruj list&#281; adres&#243;w i podaj j&#261;
Nmapowi jako argument do parametru <option>-iL</option>.
Poszczeg&#243;lne definicje mog&#261; by&#263; zgodne z dowolnym formatem
akceptowanym przez Nmapa w linii polece&#324; (adres IP, nazwa, CIDR,
IPv6 lub zakres). Ka&#380;dy wpis musi by&#263; oddzielony od nast&#281;pnego za
pomoc&#261; jednej (lub wiecej) spacji, znak&#243;w tabulacji lub znak&#243;w
nowej linii. Mo&#380;esz r&#243;wnie&#380; poda&#263; znak
(<literal moreinfo="none">-</literal>) zamiast nazwy pliku je&#347;li
chesz aby Nmap pobra&#322; adresy ze standardowego wej&#347;cia zamiast z
pliku.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-iR &lt;ilo&#347;&#263; host&#243;w&gt;</option> (Wybierz losowe cele)
</term>
<listitem>
<para>Do przeprowadzania bada&#324; Internetu, mo&#380;esz u&#380;ywa&#263; wyboru
losowych adres&#243;w. Argument <replaceable>ilo&#347;&#263; host&#243;w</replaceable>
informuje Nmapa ile losowych adres&#243;w ma wygenerowa&#263;. Adresy prywatne,
typu multicast lub niewykorzystywane s&#261; automatycznie pomijane
przy generowaniu. Argument <literal moreinfo="none">0</literal>
pozwala na przeprowadzanie skanowania bez ko&#324;ca. Pami&#281;taj, &#380;e
niekt&#243;rzy administratorzy nie lubi&#261; skanowania ich sieci i mo&#380;e si&#281;
im to nie spodoba&#263;. U&#380;ywaj tej opcji na w&#322;asne ryzyko! Je&#347;li
poczujesz si&#281; naprawd&#281; znudzony w deszczowe popo&#322;udnie, wyprubuj
komend&#281; <command moreinfo="none">nmap -sS -PS80 -iR 0 -p
80</command> do wykrycia losowych serwer&#243;w WWW do przegl&#261;dania
udost&#281;pnianych przez nie stron.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--exclude
&lt;host1[,host2][,host3],...&gt;</option> (Wy&#322;&#261;czenie host&#243;w/sieci)
</term>
<listitem>
<para>Podana lista cel&#243;w do wy&#322;&#261;czenia z zakresu skanowania, je&#347;li
wchodz&#261; w zakres aktualnego skanowania. Lista musi by&#263; podana
zgodnie ze standardowym formatem akceptowanycm przez Nmapa, wi&#281;c mo&#380;e
zawiera&#263; nazwy, adresy w formacie CDIR, zakresy, itp. Opcja ta jest
przydatna, je&#347;li sie&#263; kt&#243;r&#261; chcesz przeskanowa&#263; zawiera systemy
nietykalne lub krytyczne, o kt&#243;rych wiadomo, &#380;e nie toleruj&#261; dobrze
skanowania lub te&#380; sieci administrowane przez innych ludzi.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--excludefile &lt;plik_wy&#322;&#261;cze&#324;&gt;</option> (Lista wy&#322;&#261;cze&#324; z pliku)
</term>
<listitem>
<para>Opcja ta oferuje tak&#261; sam&#261; funkcjonalno&#347;&#263; jak
<option>--exclude</option> z t&#261; ro&#380;nic&#261;, &#380;e wykluczone cele
(oddzielone spacjami, znakami tabulacji lub nowej linii) s&#261; pobierane
z pliku <replaceable>plik_wy&#322;&#261;cze&#324;</replaceable>, a nie z linii
polece&#324;.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="man-host-discovery">
<title>Wykrywanie host&#243;w</title>
<para>Jednym z pierwszych krok&#243;w rekonesansu sieciowego jest redukcja
(czasami ogromnych) zakres&#243;w adres&#243;w IP do listy aktywnych lub
interesuj&#261;cych host&#243;w. Skanowanie ka&#380;dego portu na ka&#380;dym adresie
IP jest wolne i przewa&#380;nie niepotrzebne. Oczywi&#347;cie to co czyni host
interesuj&#261;cym g&#322;&#243;wnie zale&#380;y od celu skanowania. Administratorzy sieci
mog&#261; by&#263; zainteresowani hostami udost&#281;pniaj&#261;cymi okre&#347;lon&#261; us&#322;ug&#281; podczas
gdy audytorzy bezpiecze&#324;stwa mog&#261; chcie&#263; przyjrze&#263; si&#281; ka&#380;demu urz&#261;dzeniu
posiadaj&#261;cemu adres IP. Administratorowi mo&#380;e wystarcza&#263; wykorzystanie
pinga ICMP do zlokalizowania host&#243;w w jego wewn&#281;trznej sieci, podczas gdy
audytor przeprowadzaj&#261;cy zewn&#281;trzne testy penetracyjne mo&#380;e wykorzystywa&#263;
dziesi&#261;tki r&#243;&#380;nych test&#243;w do omini&#281;cia regu&#322; filtrowania systemu
zaporowego.</para>
<para>Poniewa&#380; niezb&#281;dne s&#261; r&#243;&#380;ne metody wykrywania host&#243;w, Nmap oferuje
szeroki wachlarz opcji pozwalaj&#261;cych na wybieranie wykorzystywanych technik.
Wykrywanie host&#243;w cz&#281;sto jest zwane skanowaniem Ping, jednak wykracza
daleko poza proste wysy&#322;anie zapytania ICMP echo request znanego z
programu <application moreinfo="none">ping</application>.
U&#380;ytkownik mo&#380;e pomin&#261;&#263; etap wykrywania poprzez wykorzystanie opcji skanowania
listy (<option>-sL</option>), poprzez wy&#322;&#261;czenie pingowania
(<option>-P0</option>) lub wykorzystania r&#243;&#380;nych kombinacji wieloportowego
badania za pomoc&#261; test&#243;w TCP SYN/ACK, UDP, i ICMP. Celem tych test&#243;w jest
uzyskanie informacji o adresach IP, kt&#243;re s&#261; aktualnie dost&#281;pne (s&#261;
wykorzystywane przez urz&#261;dzenie sieciowe lub komputer). W przypadku wielu
sieci tylko ma&#322;y procent wykorzystywanych adres&#243;w IP jest r&#243;wnocze&#347;nie
aktywnych. Jest to szczeg&#243;lnie powszechne w sieciach prywatnych zgodnych
z adresacj&#261; RFC1918, takich jak 10.0.0.0/8. Ta sie&#263; zawiera 16 milion&#243;w
adres&#243;w IP, ale widzia&#322;em nie raz firmy wykorzystuj&#261;ce nieca&#322;y tysi&#261;c z
nich. Opcja wykrywania host&#243;w pozwala na szybkie wykrycie rzeczywi&#347;cie
wykorzystywanych adres&#243;w IP z ca&#322;ej dost&#281;pnej puli.</para>
<para>Je&#347;li nie podano opcji wybieraj&#261;cej metod&#281; wykrywania host&#243;w, Nmap
wysy&#322;a pakiety TCP ACK na port 80 i zapytanie ICMP Echo Request query
do ka&#380;dego badanego adresu. Wyj&#261;tkiem od tej regu&#322;y jest skanowanie
ARP przeprowadzane dla aktualnego segmentu sieci ethernet. W
przypadku uruchamiania przez nie uprzywilejowanych u&#380;ytkownik&#243;w
system&#243;w UNIX, wysy&#322;any jest pakiet SYN zamiast ACK z wykorzystaniem
wywo&#322;ania systemowego <function moreinfo="none">connect()</function>.
Ustawienia domy&#347;lne s&#261; to&#380;same z opcjami <option>-PA -PE</option>.
Takie wykrywanie host&#243;w jest najcz&#281;&#347;ciej wystarczaj&#261;ce podczas
skanowania sieci lokalnej, jednak podczas audyt&#243;w bezpiecze&#324;stwa
zalecane jest wykorzystywanie bardziej zaawansowanych opcji.</para>
<para>Opcje <option>-P*</option> (kt&#243;re wybieraj&#261; spos&#243;b pingowania) mog&#261;
by&#263; &#322;&#261;czone. Mo&#380;esz poprawic dok&#322;adno&#347;&#263; wykrywania host&#243;w za systemem
zaporowym poprzez stosowanie wielu r&#243;&#380;nych port&#243;w/flag TCP i typ&#243;w ICMP.
Zwracam uwag&#281;, &#380;e wykrywanie host&#243;w ARP (<option>-PR</option>) jest
z za&#322;o&#380;enia w&#322;&#261;czane podczas test&#243;w sieci lokalnej w ramach tego samego
segmentu, nawet je&#347;li podasz inne opcje <option>-P*</option>, poniewa&#380;
praktycznie zawsze tak jest szybciej i efektywniej.</para>
<para>Opcje kontroli wykrywania host&#243;w.</para>
<variablelist>
<varlistentry>
<term>
<option>-sL</option> (Lista skanowania)</term>
<listitem>
<para>Lista skanowania jest okrojon&#261; funkcj&#261; wykrywania host&#243;w, kt&#243;ra
po prostu wy&#347;wietla wszystkie adresy z podanych zakres&#243;w skanowania i
nie wysy&#322;a &#380;adnych pakiet&#243;w do nich. Domy&#347;lnie Nmap wykonuje
odwrotne zapytania DNS o badane adresy aby pozna&#263; ich nazwy. Cz&#281;sto
niespodziank&#261; jest jak du&#380;o informacji mog&#261; udzieli&#263; ju&#380; same nazwy
host&#243;w. Na przyk&#322;ad
<literal moreinfo="none">fw.chi.playboy.com</literal> jest systemem
zaporowym w biurze Playboy Enterprises w Chicago. Na ko&#324;cu Nmap
podaje tak&#380;e ca&#322;kowit&#261; liczb&#281; adres&#243;w IP. Lista skanowania jest
dobrym sposobem na sprawdzenie i uzyskanie pewno&#347;ci, &#380;e prawid&#322;owo
podano zakres skanowania. Je&#347;li nie rozpoznajesz nazw domen na
uzyskanej li&#347;cie, warto sprawdzi&#263; podany zakres, co pozwala unik&#261;&#263;
niepotrzebnego skanowania sieci nieznanej firmy.</para>
<para>Ide&#261; tej opcji jest wy&#347;wietlanie prostej listy adres&#243;w, z tego
powodu bardziej zaawansowana funkcjonalno&#347;&#263; taka jak skanowanie
port&#243;w, wykrywanie systemu operacyjnego czy pingowanie nie mo&#380;e by&#263;
&#322;&#261;czone z t&#261; metod&#261;. Je&#347;li chcesz wy&#322;&#261;czy&#263; 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&#263; <emphasis>tylko</emphasis>
skanowanie typu Ping (wykrywanie host&#243;w), a wynikiem jej
dzia&#322;ania jest lista aktywnych host&#243;w. Dodatkowe testy (takie jak
skanowanie port&#243;w lub wykrywanie systemu operacyjnego) nie s&#261;
przeprowadzane. Metoda ta idzie krok dalej ni&#380; lista skanowania i
mo&#380;e by&#263; wykorzystywana w podobnym celu. Pozwala na przeprowadzenie
delikatnego rekonesansu bez zwracania zbytniej uwagi. Posiadanie
wiedzy na temat ilo&#347;ci aktywnych host&#243;w jest bardziej warto&#347;ciowe
dla atakuj&#261;cych ni&#380; sama lista adres&#243;w zawieraj&#261;ca adres IP i
nazw&#281; hosta.</para>
<para>R&#243;wnie&#380; administratorzy system&#243;w cz&#281;sto korzystaj&#261; z tej
opcji. Pozwala ona na &#322;atwe i szybkie okre&#347;lenie liczby host&#243;w w
sieci lub monitorowanie dost&#281;pno&#347;ci serwer&#243;w. Opcja ta cz&#281;sto jest
nazywna Ping Sweep i daje bardziej wiarygodne wyniki ni&#380; pingowanie
adresu broadcast, poniewa&#380; niekt&#243;re adresy mog&#261; na niego nie
odpowiedzie&#263;.</para>
<para>Domy&#347;lnie opcja <option>-sP</option> wysy&#322;a pakiety ICMP echo
request i pakiety TCP na port 80. W przypadku wykonywania z konta
nie uprzywilejowanego u&#380;ytkownika wysy&#322;ane s&#261; pakiety SYN (z
wykorzystaniem funkcji systemowej
<function moreinfo="none">connect()</function>) na port 80 badanego
hosta. Je&#347;li uprzywilejowany u&#380;ytkownik pr&#243;buje przeskanowa&#263; adresy
w lokalnej sieci ethernet, wykorzystywane s&#261; zapytania ARP
(<option>-PR</option>), chyba &#380;e dodano opcj&#281;
<option>--send-ip</option>.
Dla wi&#281;kszej wygody opcja <option>-sP</option> mo&#380;e by&#263; &#322;&#261;czona w
dowolny spos&#243;b z innymi metodami wykrywania host&#243;w (opcje
<option>-P*</option>, nie dotyczy <option>-P0</option>).
Je&#347;li wybrano kt&#243;ry&#347; z typ&#243;w test&#243;w i numer portu, nie s&#261;
wykorzystywne domy&#347;lne ustawienia (ACK i echo request).
Wykorzystywanie tych opcji jest szczeg&#243;lnie zalecane, je&#347;li
pomi&#281;dzy badanym systemem, a hostem na kt&#243;rym jest uruchomiony
Nmap jest system zaporowy, inaczej niekt&#243;re (lub wszystkie) hosty
nie zostan&#261; wykryte.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-P0</option> (Bez pinga)
</term>
<listitem>
<para>Ta opcja wy&#322;&#261;cza ca&#322;kowicie wykrywanie host&#243;w. Normalnie
Nmap pr&#243;buje wykry&#263; aktywne adresy przed rozpocz&#281;ciem w&#322;a&#347;ciwego
skanowania. Domy&#347;lnie Nmap przeprowadza tylko testy takie jak
skanowanie port&#243;w, wykrywanie wersji i systemu operacyjnego tylko
dla host&#243;w, kt&#243;re zosta&#322;y wcze&#347;niej wykryte jako aktywne. Wy&#322;&#261;czenie
wykrywania host&#243;w za pomoc&#261; opcji <option>-P0</option> powoduje,
&#380;e Nmap pr&#243;buje wykona&#263; wszystkie &#380;adane typy skanowania na
<emphasis>ka&#380;dym</emphasis> podanym adresie IP. Je&#347;li wi&#281;c jako cel
w linii plece&#324; podano klas&#281; B (/16), wszystkie 65,536 adres&#243;w
zostanie przeskanowane. Drugi znak w opcji <option>-P0</option> jest
zerem, a nie liter&#261; O. Wykrywanie host&#243;w jest pomijane jak przy
wy&#347;wietlaniu listy skanowania, jednak zamiast zatrzyma&#263; si&#281; i
wy&#347;wietli&#263; list&#281;, Nmap kontynuuje i przeprowadza za&#322;o&#380;one testy
na ka&#380;ym adresie IP, tak jak by by&#322; wykryty jako aktywny.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-PS [listaport&#243;w]</option> (TCP SYN Ping)</term>
<listitem>
<para>Opcja ta powoduje wysy&#322;anie pustych pakiet&#243;w TCP z ustawion&#261;
flag&#261; SYN. Domy&#347;lnie port docelowy to 80 (konfigurowalne przed
kompilacj&#261; za pomoc&#261; sta&#322;ej DEFAULT_TCP_PROBE_PORT w pliku
<filename moreinfo="none">nmap.h</filename>), ale inny port mo&#380;e by&#263;
podany jako parametr. Mo&#380;liwe jest r&#243;wnie&#380; podanie listy port&#243;w,
odzielonych przecinkami
(np. <option>-PS22,23,25,80,113,1050,35000</option>), co spowoduje
przeprowadzenie test&#243;w na wszystkich podanych portach r&#243;wnolegle.
</para>
<para>Ustawiona flaga SYN sugeruje badanemu systemowi, &#380;e pr&#243;bujesz
nawi&#261;za&#263; z nim po&#322;&#261;czenie. Normalnie zdalny port b&#281;dzie zamkni&#281;ty
i zostanie wys&#322;any z powrotem pakiet z flag&#261; RST (reset). Je&#347;li
port b&#281;dzie otwarty, host b&#281;dzie pr&#243;bowa&#322; wykona&#263; drugi krok z
tr&#243;jstopniowego procesu nawi&#261;zywania po&#322;&#261;czenia odpowiadaj&#261;c za
pomoc&#261; pakietu TCP SYN/ACK. Nmap zamiast wys&#322;a&#263; pakiet ACK, kt&#243;ry by
pomy&#347;lnie zako&#324;czy&#322; nawi&#261;zywanie po&#322;&#261;czenia, w tym momencie przerwie
po&#322;&#261;czenie wysy&#322;aj&#261;c pakiet RST. Pakiet RST jest wysy&#322;any przez
kernel systemu na kt&#243;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&#281;ty.
W zale&#380;no&#347;ci od uzyskanej om&#243;wionej wcze&#347;niej odpowiedzi (RST lub
SYN/ACK) host jest uznawany za dost&#281;pny.</para>
<para>W systemach UNIX, tylko u&#380;ytkownik uprzywilejowany -
<literal moreinfo="none">root</literal> - mo&#380;e wysy&#322;a&#263; niskopoziomowe
pakiety raw TCP. W przypadku u&#380;ytkownik&#243;w nie posiadaj&#261;cych
odpowiednich uprawnie&#324; wykorzystywane jest obej&#347;cie w postaci
wykorzystania funkcji systemowej connect() do wykonania po&#322;&#261;cze&#324; ze
wskazanymi portami. Je&#347;li connect() zwr&#243;ci poprawno&#347;&#263; wykonania
operacji lub b&#322;&#261;d odmowy po&#322;&#261;czenia ECONNREFUSED, stos TCP musia&#322;
otrzyma&#263; pakiet z flagami SYN/ACK lub RST i host jest uznawany za
dost&#281;pny. Je&#347;li pr&#243;ba nawi&#261;zania po&#322;&#261;czenia zosta&#322;a przerwana po
przekroczeniu maksymalnego czasu oczekiwania, host jest oznaczany
jako niedost&#281;pny. To obej&#347;cie jest r&#243;wnie&#380; wykorzystywane dla
protoko&#322;u IPv6, poniewa&#380; wysy&#322;anie niskopoziomowych pakiet&#243;w raw TCP
nie jest jeszcze dost&#281;pne w Nmapie.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-PA [lista port&#243;w]</option> (TCP ACK Ping)</term>
<listitem>
<para>Metoda TCP ACK ping jest dosy&#263; podobna do powy&#380;ej opisanego
SYN ping. R&#243;&#380;nica, jak &#322;atwo zgadn&#261;&#263;, polega na wykorzystaniu flagi
ACK zamiast SYN. Flaga ACK jest wykorzystywana do potwierdzania
otrzymania danych za pomoc&#261; utworzonego wcze&#347;niej po&#322;&#261;czenia TCP,
jednak w tym wypadku po&#322;&#261;czenie takie nie istnieje. Z tego powodu
badany system powinien zawsze odpowiedzie&#263; pakietem z flag&#261; RST,
&#347;wiadcz&#261;c&#261; o nie isnieniu takiego po&#322;&#261;czenia.</para>
<para>Opcja <option>-PA</option>, tak jak SYN, u&#380;ywa portu numer 80 i
r&#243;wnie&#380; mo&#380;e przyjmowa&#263; list&#281; port&#243;w jako argument (w takim samym
formacie). Je&#347;li program zosta&#322; uruchomiony przez
nie uprzywilejowanego u&#380;ytkownika lub badany jest adres IPv6,
wykorzystywane jest opisane wcze&#347;niej obej&#347;cie za pomoc&#261; connect().
Obej&#347;cie to nie jest idealne, poniewa&#380; funkcja connect() wysy&#322;a
pakiet SYN zamiast oczekiwanego ACK.</para>
<para>Powodem udost&#281;pniania zar&#243;wno metody SYN jak i ACK jest
zwi&#281;kszenie szansy na omini&#281;cie systemu zaporowego. Wielu
administrator&#243;w konfiguruje routery i proste systemy zaporowe tak,
&#380;eby blokowa&#322;y przychodz&#261;ce pakiety SYN, poza przychodz&#261;cymi do
publicznych serwer&#243;w takich jak WWW czy pocztowych. Zabezpiecza to
przed przychodzeniem innych po&#322;&#261;cze&#324; przy jednoczesnym nie
zak&#322;ucaniu pozosta&#322;ej transmisji wychodz&#261;cej do Internetu. Takie
bezstanowe (non-stateful) rozwi&#261;zanie zajmuje ma&#322;o zasob&#243;w systemu
zaporowego/routera i jest szeroko wspierane przez filtry sprz&#281;towe i
programowe. Linuxowy firewall Netfilter/iptables dla wygody posiada
opcj&#281; <option>--syn</option>, kt&#243;ra implementuje takie w&#322;a&#347;nie
bezstanowe filtrowanie. W przypadku takiego systemu zaporowego testy
wykorzystuj&#261;ce metod&#281; SYN ping (<option>-PS</option>) zostan&#261;
prawdopodobnie zablokowane w przypadku zamkni&#281;tych port&#243;w. W tym
przypadku metoda ACK pozwoli na obej&#347;cie tych zabezpiecze&#324;.</para>
<para>Innym popularnym typem jest firewall wykorzystuj&#261;cy stany
(stateful) do blokowania niechcianych pakiet&#243;w. Taka funkcjonalno&#347;&#263;
jest najcz&#281;&#347;ciej spotykana w wysokiej klasy systemach zaporowych, kt&#243;re
staj&#261; si&#281; z roku na rok coraz popularniejsze. Linuxowy
Netfilter/iptables posiada opcj&#281; <option>--state</option>, kt&#243;ra
kategoryzuje pakiety na podstawie stanu po&#322;&#261;czenia. Metoda SYN
prawdopodobnie b&#281;dzie dzia&#322;a&#322;a poprawnie dla tego typu system&#243;w,
ale ju&#380; pakiet z ACK zostanie rozpoznany jako nieprawid&#322;owy i
zostanie zablokowany. Rozwi&#261;zaniem tego problemu jest wykorzystywanie
jednocze&#347;nie obu metod SYN i ACK poprzez podanie parametr&#243;w
<option>-PS</option> i <option>-PA</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-PU [listaport&#243;w]</option> (UDP Ping)</term>
<listitem>
<para>Kolejn&#261; metod&#261; wykrywania host&#243;w jest UDP ping, kt&#243;ry wysy&#322;a
puste (o ile nie wykorzystano opcji <option>--data-length</option>)
pakiety UDP na wskazane porty. Lista port&#243;w jest podawana w takim
samym formacie jak dla wcze&#347;niej opisanych opcji <option>-PS</option>
i <option>-PA</option>. Je&#347;li nie podano numer&#243;w port&#243;w, domy&#347;lnie
u&#380;ywany jest port 32338. Port ten mo&#380;e by&#263; zmieniony przed
kompilacj&#261; poprzez zmian&#281; sta&#322;ej DEFAULT_UDP_PROBE_PORT w pliku
<filename moreinfo="none">nmap.h</filename>. Wyb&#243;r tak ma&#322;o
popularnego portu zosta&#322; podyktowany ch&#281;ci&#261; unikni&#281;cia wysy&#322;ania
pakiet&#243;w do otwartych port&#243;w, co w przypadku tego testu nie
przynios&#322;o by oczekiwanego efektu.</para>
<para>W przypakdu kiedy port jest zamkni&#281;ty na badaniej maszynie, w
odpowiedzi na pakiet UDP powinien zosta&#263; odes&#322;any pakiet ICMP
port unreachable oznaczaj&#261;cy brak mo&#380;liwo&#347;ci komunikacji z wybranym
portem. Po otrzymaniu takiej odpowiedzi Nmap oznacza host jako
dost&#281;pny. Inne typy odpowiedzi ICMP, takie jak host/sie&#263; niedost&#281;pna
czy przekroczony czas &#380;ycia TTL oznaczaj&#261;, &#380;e badany host nie jest
dost&#281;pny, podobnie interpretowany jest brak odpowiedzi. Je&#347;li badany
port jest otwarty, wi&#281;kszo&#347;&#263; typowych us&#322;ug zignoruje pusty pakiet i
nie zostanie wys&#322;ana &#380;adna informacja zwrotna. W&#322;a&#347;nie dla tego
domy&#347;lnie testowanym portem jest 31338, kt&#243;ry jest bardzo rzadko
wykorzystywany. Wiele us&#322;ug, takich jak chargen, odpowie na pusty
pakiet co spowoduje, &#380;e Nmap uzna host za dost&#281;pny.</para>
<para>G&#322;&#243;wn&#261; zalet&#261; tego typu skanowania jest fakt, &#380;e omija systemy
zaporowe i filtry skupiaj&#261;ce sie tylko na TCP. Przyk&#322;adowo, mia&#322;em
kiedy&#347; szerokopasmowy router bezprzewodowy Linksys BEFW11S4.
Zewn&#281;trzny interfejs tego urz&#261;dzenia filtrowa&#322; domy&#347;lnie wszystkie
porty TCP, za to testy UDP zwraca&#322;y odpowiedzi ICMP port unreachable,
co ujawnia istnienie urz&#261;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&#347;niej metodami wykrywania host&#243;w
TCP i UDP, Nmap mo&#380;e wysy&#322;a&#263; standardowe pakiety ICMP znane z
typowego programu <application moreinfo="none">ping</application>.
Nmap wysy&#322;a pakiety ICMP typu 8 (echo request) do badanego hosta i
oczekuje typu 0 (echo reply) w odpowiedzi. Niestety wiele host&#243;w i
system&#243;w zaporowych blokuje tego typu pakiety, zamiast odpowiada&#263;
prawid&#322;owo i zgodnie z
<ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC
1122</ulink>. Z tego powodu skanowania nieznanych host&#243;w w internecie
za pomoc&#261; tej metody przewa&#380;nie nie s&#261; wiarygodne. Jednak&#380;e
administratorzy system&#243;w monitoruj&#261;cy wewn&#281;trzne sieci mog&#261; z
powodzeniem efektywnie wykorzystywa&#263; t&#261; metod&#281;. Takie wykorzystanie
zapyta&#324; ICMP echo request jest mo&#380;liwe za pomoc&#261; 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&#380;e zapytania timestamp request, information
request, i address mask request o kodach odpowiednio 13, 15 i 17.
Podczas kiedy za&#322;o&#380;onym efektem dzia&#322;ania tych zapyta&#324; jest uzyskanie
informacji typu maska sieci czy aktualny czas, mog&#261; by&#263; one
wykorzystane do wykrywania aktywno&#347;ci host&#243;w. System kt&#243;ry odpowiada,
jest uznawany za aktywny. Nmap nie obs&#322;uguje zapyta&#324; information
request, jako &#380;e nie s&#261; one cz&#281;sto spotykane. RFC 1122 zaleca, &#380;e
<quote>host NIE POWINIEN obs&#322;ugiwa&#263; tych zapyta&#324;</quote>.
Zapytania timestamp i address mask mog&#261; by&#263; wysy&#322;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&#261; aktywno&#347;&#263; hosta. Te dwa zapytania mog&#261; by&#263;
pomocne, kiedy administrator specyficznie blokuje zapytania
echo request zapominaj&#261;c przy tym blokowa&#263; inne typy ICMP, kt&#243;re
mog&#261; by&#263; wykorzystane w tym samym celu.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-PR</option> (ARP Ping)</term>
<listitem>
<para>Jednym z najcz&#281;&#347;ciej spotykanych scenariuszy wykorzystania
Nmapa jest skanowanie sieci lokalnej ethernet. W wi&#281;kszo&#347;ci sieci
LAN, w szczeg&#243;lno&#347;ci wykorzystuj&#261;cych adresacj&#281; prywatn&#261; zalecan&#261;
przez RFC1918, wi&#281;kszo&#347;&#263; adres&#243;w IP nie jest wykorzystywana. Kiedy
Nmap pr&#243;buje wys&#322;a&#263; pakiet raw IP taki jak ICMP echo
request, by poprawnie zaadresowa&#263; ramk&#281; ethernet system operacyjny
musi okre&#347;li&#263; (ARP) docelowy adres sprz&#281;towy koresponduj&#261;cy z
docelowym adresem IP.
Takie zachowanie jest cz&#281;sto powolne i problematyczne, poniewa&#380;
systemy operacyjne nie zosta&#322;y napisane z uwzgl&#281;dnieniem potrzeby
wysy&#322;ania milion&#243;w zapyta&#324; ARP o niedost&#281;pne hosty w kr&#243;tkim
czasie.</para>
<para>Skanowanie ARP wykorzystuje zoptymalizowany algorytm Nmapa
do wysy&#322;ania zapyta&#324; ARP. Po otrzymaniu odpowiedzi Nmap nie musi
si&#281; nawet martwi&#263; o oparte na IP pakiety ping, poniewa&#380; ju&#380; wie,
&#380;e host jest aktywny. Takie zachowanie pozwala na du&#380;o szybsze
i bardziej wiarygodne skanowanie. Z tego powodu zachowanie takie
jest domy&#347;lne podczas skanowania sieci, kt&#243;r&#261; Nmap wykryje jako sie&#263;
lokaln&#261; nale&#380;&#261;c&#261; do tego samego segmentu. Nawet je&#347;li zostan&#261; podane
inne typy skanowania ping (takie jak <option>-PE</option> lub
<option>-PS</option>), Nmap u&#380;ywa ARP zamiast nich do wykrywaia
host&#243;w w lokalnej sieci ethernet. Je&#347;li nie chcesz u&#380;ywa&#263; ARP do
skanowania, dodaj opcj&#281; <option>--send-ip</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-n</option> (Wy&#322;&#261;cz zapytania DNS)
</term>
<listitem>
<para>Nakazuje Nmapowi <emphasis>nigdy</emphasis> nie u&#380;ywa&#263; zapyta&#324;
odrotnych do serwer&#243;w DNS o nazwy przypisane do adres&#243;w IP. Jako &#380;e
zapytania DNS s&#261; najcz&#281;&#347;ciej d&#322;ugo trwaj&#261;, opcja ta przyspiesza
prac&#281;.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-R</option> (Wymu&#347; zapytania DNS)
</term>
<listitem>
<para>Nakazuje Nmapowi <emphasis>zawsze</emphasis> wykonywa&#263;
odwrotne zapytania do serwera DNS o nazwy dla skanowanych adres&#243;w
IP. Domy&#347;lnie zapytania s&#261; wykonywane tylko dla aktywnych
host&#243;w.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--system-dns</option> (U&#380;ywaj systemowego DNS)
</term>
<listitem>
<para>Domy&#347;lnie Nmap okre&#347;la nazwy dla adres&#243;w IP poprzez wysy&#322;anie
zapyta&#324; bezpo&#347;rednio do serwer&#243;w DNS skonfigurowanych w systemie, o
ile s&#261; dost&#281;pne. Wiele zapyta&#324; (cz&#281;sto dziesi&#261;tki) jest wykonywanych
r&#243;wnolegle dla uzyskania wiekszej szybko&#347;ci. Dodanie tej opcji
wymusza wykorzystywanie rozwi&#261;zywania nazw za
po&#347;rednictwem systemu operacyjnego (ka&#380;dorazowo o pojedyncze IP za
pomoc&#261; funkcji getnameinfo()). Ta opcja jest wolniejsza i jest
u&#380;yteczna tylko w sporadycznych przypadkach, chyba &#380;e w Nmapie jest
b&#322;&#261;d w kodzie DNS - prosze si&#281; z nami skontaktowa&#263; w tym przypadku.
W przypadku skanowania sieci IPv6, rozwi&#261;zywanie nazw jest zawsze
wykonywane z wykorzystaniem systemu operacyjnego.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--dns-servers &lt;server1[,server2],...&gt;
</option> (Serwery do wykonywania zapyta&#324; DNS)
</term>
<listitem>
<para>Domy&#347;lnie Nmap pr&#243;buje odczyta&#263; serwery DNS wpisane do pliku
resolv.conf (UNIX) lub rejestru (Win32). Alternatywnie, mo&#380;esz u&#380;y&#263;
tej opcji do podania w&#322;asnych serwer&#243;w. Opcja ta nie jest
uwzgl&#281;dniana, je&#347;li u&#380;yto r&#243;wnie&#380; opcji <option>--system-dns</option>
lub skanowane s&#261; adresy IPv6. U&#380;ywanie wielu serwer&#243;w DNS jest cz&#281;sto
du&#380;o szybsze, ni&#380; tylko jednego.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="man-port-scanning-basics">
<title>Podstawy skanowania port&#243;w</title>
<para>Przez lata funkcjonalno&#347;&#263; Nmapa by&#322;a sukcesywnie powi&#281;kszana,
z pocz&#261;tku by&#322; tylko efektywnym skanerem port&#243;w i to nadal pozostaje
jego g&#322;&#243;wn&#261; funkcj&#261;. Prosta komenda <command moreinfo="none">nmap
<replaceable>target</replaceable></command> skanuje ponad 1660 port&#243;w
TCP na wybranym <replaceable>celu skanowania</replaceable>. Podczas
kiedy wi&#281;kszo&#347;&#263; skaner&#243;w tradycyjnie zalicza wszystkie porty do
kategorii otwarty lub zamkni&#281;ty, Nmap jest du&#380;o dok&#322;adniejszy.
Rozr&#243;&#380;nia sze&#347;&#263; mo&#380;liwych stan&#243;w ka&#380;dego portu:
<literal moreinfo="none">otwarty</literal>,
<literal moreinfo="none">zamkni&#281;ty</literal>,
<literal moreinfo="none">filtrowany</literal>,
<literal moreinfo="none">niefiltrowany</literal>,
<literal moreinfo="none">otwarty|filtrowany</literal>, or
<literal moreinfo="none">zamkni&#281;ty|filtrowany</literal>.</para>
<para>Te stany nie s&#261; rzeczywistymi stanami port&#243;w, opisuj&#261; jak Nmap je widzi.
Na przyk&#322;ad, skanowanie Nmapa z wn&#281;trza sieci pokazuje port 135/TCP jako
otwarty, podczas kiedy skanowanie przez Internet mo&#380;e okre&#347;li&#263; stan portu
jako <literal moreinfo="none">filtrowany</literal>.</para>
<variablelist><title>Sze&#347;&#263; stan&#243;w port&#243;w Nmapa</title>
<varlistentry><term>otwarty</term>
<listitem><para>Aplikacja aktywnie akceptuje na tym porcie po&#322;&#261;czenia TCP
lub pakiety UDP. Znalezienie takich port&#243;w jest g&#322;&#243;wnym celem skanowania.
Osoby obeznane z bezpiecze&#324;stwem wiedz&#261;, &#380;e ka&#380;dy otwarty port to potencjalny
cel ataku. Atakuj&#261;cy i wykonuj&#261;cy testy penetracyjne chc&#261; wykorzysta&#263; luki w
oprogramowaniu poprzez otwarte porty, podczas gdy administratorzy staraj&#261; si&#281;
zamyka&#263; lub chroni&#263; je za pomoc&#261; system&#243;w zaporowych przed niepo&#380;&#261;danymi
u&#380;ytkownikami. Otwarte porty s&#261; tak&#380;e interesuj&#261;ce przy skanowaniach nie
zwi&#261;zanych z ocen&#261; bezpiecze&#324;stwa, poniewa&#380; pokazuj&#261; us&#322;ugi dost&#281;pne w sieci.
</para></listitem></varlistentry>
<varlistentry><term>zamkni&#281;ty</term>
<listitem><para>Zamkni&#281;ty port jest dost&#281;pny (odbiera i odpowiada na
pakiety Nmapa), ale nie ma &#380;adnej aplikacji, kt&#243;ra by obs&#322;u&#380;y&#322;a po&#322;aczenie.
Porty te mog&#261; by&#263; pomocne przy sprawdzaniu czy host jest aktywny (wykrywanie
host&#243;w lub skanowanie Ping) oraz przy wykrywaniu systemu operacyjnego.
Poniewa&#380; s&#261; dost&#281;pne zamkni&#281;te porty, warto skanowa&#263; dalej w poszukiwaniu
otwartych. Administratorzy mog&#261; chcie&#263; blokowa&#263; takie porty za pomoc&#261;
system&#243;w zaporowych, wtedy ich stan zostanie okre&#347;lony jako filtrowany,
opisany dalej.</para></listitem></varlistentry>
<varlistentry><term>filtrowany</term>
<listitem><para>Nmap nie mo&#380;e okre&#347;li&#263; czy port jest otwarty z powodu
filtrowania komunikacji. Filtrowanie mo&#380;e by&#263; przeprowadzane na
dedykowanym urz&#261;dzeniu, za pomoc&#261; regu&#322; routera lub programowego firewalla
na ho&#347;cie. Takie porty s&#261; frustruj&#261;ce dla atakuj&#261;cych, poniewa&#380; dostarczaj&#261;
znikomych ilo&#347;ci informacji. Porty czasami odpowiadaj&#261; komunikatami ICMP
takim jak typ 3 kod 13 (destination unreachable: communication
administratively prohibited), ale filtry blokuj&#261; wysy&#322;anie takiego komunikatu
bez wysy&#322;ania typowej odpowiedzi. Takie zachowanie zmusza Nmapa do
kilkukrotnego powtarzania pakiet&#243;w na wypadek ich zagini&#281;cia na przyk&#322;ad
na skutek przeci&#261;&#380;enia sieci, co spowalnia skanowanie w spos&#243;b drastyczny.
</para></listitem></varlistentry>
<varlistentry><term>niefiltrowany</term>
<listitem><para>Stan niefiltrowane oznacza &#380;e port jest dost&#281;pny, ale Nmap
nie jest w stanie ustali&#263; czy port jest otwarty czy zamkni&#281;ty. Tylko
skanowanie ACK, kt&#243;re jest u&#380;ywane do mapowania regu&#322; firewalla, mo&#380;e
przypisa&#263; portom taki stan. Skanowanie niefiltrowanych port&#243;w za pomoc&#261;
innych typ&#243;w skanowania takich jak Window, SYN czy FIN mo&#380;e pom&#243;c okre&#347;li&#263;
czy port jest otwarty czy zamkni&#281;ty.</para></listitem></varlistentry>
<varlistentry><term>otwarty|filtrowany</term>
<listitem><para>Nmap podaje taki stan w przypadku port&#243;w, dla kt&#243;rych nie
jest w stanie okre&#347;li&#263; czy port jest otwarty, czy filtrowany. Taki zachowanie
wyst&#281;puje podczas typ&#243;w skanowania, przy kt&#243;rych porty nie daj&#261; odpowiedzi.
Brak odpowiedzi mo&#380;e r&#243;wnie&#380; oznacza&#263;, &#380;e filtr pakiet&#243;w zablokowa&#322; po&#322;&#261;czenie
lub wysy&#322;an&#261; odpowied&#378;. Z tego powodu Nmap nie ma pewno&#347;ci czy port jest
otwarty, czy filtrowany. W ten spos&#243;b klasyfikuj&#261; porty skanowania UDP, FIN,
Null, Xmas i skanowanie protoko&#322;&#243;w.</para></listitem></varlistentry>
<varlistentry><term>zamkni&#281;ty|filtrowany</term>
<listitem><para>Ten stan jest u&#380;ywany przez Nmapa do oznaczania port&#243;w, dla
kt&#243;rych nie jest mo&#380;liwe ustalenie czy port jest zamkni&#281;ty czy filtrowany.
Taki stan mo&#380;e si&#281; pojawia&#263; tylko podczas skanowania IPID Idle.
</para></listitem></varlistentry>
</variablelist>
</refsect1>
<refsect1 id="man-port-scanning-techniques">
<title>Techniki skanowania port&#243;w</title>
<para>Jako pocz&#261;tkuj&#261;cy mechanik samochodowy, mog&#322;em godzinami m&#281;czy&#263; si&#281; z
wykonaniem naprawy posiadanymi narz&#281;dziami (m&#322;otek, ta&#347;ma izolacyjna,
klucz francuski itp.). Kiedy popad&#322;em w depresj&#281; i w ko&#324;cu zaprowadzi&#322;em
mojego gruchota do prawdziwego mechanika, pogrzeba&#322; w przepastnej skrzyni
z narz&#281;dziami i wyci&#261;gn&#261;&#322; specjalne narz&#281;dzie, kt&#243;rym wykona&#322; napraw&#281;
b&#322;yskawicznie i bez k&#322;opot&#243;w. Sztuka skanowania polega dok&#322;adnie na tym samym.
Eksperci znaj&#261; dziesi&#261;tki typ&#243;w skanowania i wybieraj&#261; jedn&#261; adekwatn&#261; (lub
kombinacj&#281; kilku) do danego zadania. Z drugiej strony niedo&#347;wiadczeni
u&#380;ytkownicy i script kiddies pr&#243;buj&#261; rozwi&#261;za&#263; ka&#380;dy problem za pomoc&#261;
domy&#347;lnego skanowania SYN. Nmap jest darmowy i dost&#281;pny dla wszyskich,
w zwi&#261;zku z tym jedyn&#261; barier&#261; jest odpowiednia wiedza.
To oczywi&#347;cie bije na g&#322;ow&#281; &#347;wiat motoryzacyjny, gdzie trzeba posiada&#263; du&#380;e
umiej&#281;tno&#347;ci, &#380;eby domy&#347;li&#263; si&#281;, &#380;e potrzebne jest bardzo specyficzne
narz&#281;dzie, ale wtedy potrzeba jeszcze du&#380;o pieni&#281;dzy na jego zakup.</para>
<para>Wi&#281;kszo&#347;&#263; typ&#243;w skanowania jest dost&#281;pna tylko dla uprzywilejowanych
u&#380;ytkownik&#243;w, poniewa&#380; tylko oni mog&#261; wysy&#322;a&#263; pakiety raw.
Takim u&#380;ytkownikiem w przypadku system&#243;w UNIX jest root. U&#380;ywanie konta
administratora w systemach Windows jest zalecane, jednak Nmap przewa&#380;nie
dzia&#322;a poprawnie z konta zwyk&#322;ego u&#380;ytkownika przy zainstalowanej w systemie
bibliotece WinPcap. Wym&#243;g posiadania uprawnie&#324; u&#380;ytkownika root by&#322; powa&#380;nym
ograniczeniem kiedy pojawi&#322; si&#281; Nmap w 1997 roku, jako &#380;e u&#380;ytkownicy posiadali
dost&#281;p g&#322;&#243;wnie tylko do wsp&#243;&#322;dzielonych kont. &#346;wiat si&#281; zmieni&#322;. Komputery s&#261;
ta&#324;sze, coraz wi&#281;cej ludzi ma bezpo&#347;redni dost&#281;p do Internetu i coraz
powszechniejsze staj&#261; si&#281; komputery z systemami UNIX (w&#322;&#261;czaj&#261;c Linuxa i MAC
OS X). Dost&#281;pna jest r&#243;wnie&#380; Windowsowa wersja Nmapa, co powi&#281;ksza mo&#380;liwo&#347;ci
jego wykorzystywania. Z tych powod&#243;w coraz rzadziej zachodzi potrzeba
uruchamiania Nmapa z ograniczonych wsp&#243;&#322;dzielonych kont. Na szcz&#281;&#347;cie wi&#281;ksze
przywileje u&#380;ytkownik&#243;w przek&#322;adaj&#261; si&#281; na wi&#281;ksz&#261; elastyczno&#347;&#263; i mo&#380;liwo&#347;ci
Nmapa.</para>
<para>Nmap stara si&#281; podawa&#263; jak najbardziej dok&#322;adne wyniki, jednak trzeba
mie&#263; na uwadze fakt, &#380;e wyniki s&#261; oparte na pakietach zwracanych przez badane
systemy (lub firewalle je ochraniaj&#261;ce). Dlatego te&#380; zwracane informacje nie
musz&#261; by&#263; wiarygodne i mog&#261; wprowadza&#263; Nmapa w b&#322;&#261;d. Bardzo powszechne s&#261;
hosty nie zachowuj&#261;ce si&#281; zgodnie z RFC w odpowiedzi na zapytania Nmapa.
Rozwi&#261;zaniem s&#261; skanowania FIN, Null czy Xmas. Tego typu problemy zosta&#322;y
opisane oddzielnie w cz&#281;&#347;ciach po&#347;wi&#281;conych poszczeg&#243;lnym typom skanowania.</para>
<para>Ta sekcja opisuje dziesi&#261;tki typ&#243;w skanowania dost&#281;pnych w Nmapie.
Jednocze&#347;nie mo&#380;e by&#263; wykorzystywana tylko jedna metoda, za wyj&#261;tkiem skanowania
UDP (<option>-sU</option>), kt&#243;re mo&#380;e by&#263; &#322;&#261;czone z dowolnymi typami skanowania
TCP. Dla &#322;atwiejszego zapami&#281;tania, opcje skanowania port&#243;w posiadaj&#261; nazwy
w formie <option>-s<replaceable>C</replaceable></option>, gdzie
<replaceable>C</replaceable> jest przewa&#380;nie pierwsz&#261; du&#380;&#261; liter&#261; angielskiej
nazwy typu skanowania. Wyj&#261;tkiem jest przestarza&#322;a opcja skanowania FTP bouce
(<option>-b</option>). Domy&#347;lnie Nmap wykonuje skanowanie SYN, kt&#243;re jest
zast&#281;powane connect(), je&#347;li u&#380;ytkownik nie ma odpowiednich uprawnie&#324; do
wysy&#322;ania pakiet&#243;w raw (co wymaga konta root w systemach UNIX)
lub w przypadku skanowania sieci IPv6. Z po&#347;r&#243;d przedstawionych poni&#380;ej typ&#243;w
skanowania u&#380;ytkownicy nie uprzywilejowani mog&#261; jedynie u&#380;ywa&#263; typ&#243;w connect() i
FTP bounce.</para>
<variablelist>
<varlistentry>
<term>
<option>-sS</option> (Skanowanie TCP SYN)</term>
<listitem>
<para>Skanowanie SYN jest domy&#347;ln&#261; i najpopularniejsz&#261; metod&#261; skanowania.
Jest to spowodowane tym, &#380;e mo&#380;e by&#263; przeprowadzone szybko, mo&#380;liwe jest
skanowanie tysi&#281;cy port&#243;w na sekund&#281; w szybkich sieciach nie chronionych
systemami zaporowymi. Skanowanie SYN jest relatywnie dyskretne i niewidoczne,
poniewa&#380; nigdy nie otwiera po&#322;&#261;cze&#324; do ko&#324;ca. Dzia&#322;a to dobrze w stosunku do
wszystkich stos&#243;w zgodnych z TCP, w przeciwie&#324;stwie do udziwnionych, dla
kt&#243;rych Nmap ma tryby FIN/Null/Xmas, Maimon i Idle. SYN pozwala na
przejrzyste i wiarygodne rozr&#243;&#380;nienie stan&#243;w portu pomi&#281;dzy
<literal moreinfo="none">otwartym</literal>,
<literal moreinfo="none">zamkni&#281;tym</literal> i
<literal moreinfo="none">filtrowanym</literal>.</para>
<para>Technika ta jest cz&#281;sto okre&#347;lana jako skanowanie z po&#322;owicznym
otwieraniem po&#322;&#261;cze&#324; (ang. half-open), poniewa&#380; nie otwiera pe&#322;nego po&#322;&#261;czenia
TCP. Wysy&#322;any jest pakiet SYN, tak jak by mia&#322;o by&#263; otwarte prawdziwe
po&#322;&#261;czenie i czeka na odpowied&#378;. SYN/ACK oaznacza, &#380;e port oczekuje na
po&#322;&#261;czenia (jest otwarty), a RST (reset) identyfikuje port jako zamkni&#281;ty.
Je&#347;li odpowied&#378; nie zostanie otrzymana pomimo kilku pr&#243;b, port jest oznaczany
jako filtrowany. Port jest r&#243;wnie&#380; oznaczany jako filtrowany w przypadku
otrzymania komunikatu b&#322;&#281;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&#347;lne, je&#347;li SYN nie jest dost&#281;ne.
Ma to miejsce kiedy u&#380;ytkownik nie posiada uprawnie&#324; do wysy&#322;ania
pakiet&#243;w raw lub podczas skanowania sieci IPv6. Zamiast wysy&#322;a&#263; pakiety raw,
jak to ma miejsce przy innych typach skanowania, Nmap prosi system operacyjny o
zestawienie po&#322;&#261;czenia z badanym hostem za pomoc&#261; wywo&#322;ania funkcji systemowej
<literal moreinfo="none">connect()</literal>. Jest to taki sam wysoki poziom
wywo&#322;a&#324; systemowych, z jakich korzystaj&#261; przegl&#261;darki internetowe, oprogramowanie
Peer2Peer czy inne programy korzystaj&#261;ce z po&#322;&#261;cze&#324; sieciowych. Jest to cz&#281;&#347;&#263;
interfejsu programistycznego znanego jako Berkeley Sockets API. Zamiast
odczytywa&#263; odpowiedzi za pomoc&#261; odwo&#322;a&#324; niskopoziomowych prosto z sieci, Nmap
wykorzystuje ten sam wysokopoziomowy interfejs do otrzymania informacji o stanie
operacji dla ka&#380;dej pr&#243;by po&#322;&#261;czenia oddzielnie.</para>
<para>Kiedy skanowanie SYN jest dost&#281;pne, przewa&#380;nie jest lepszym wyborem. Nmap
ma du&#380;o mniejsz&#261; kontrol&#281; nad wywo&#322;aniem wysokopoziomowym
<literal moreinfo="none">connect()</literal> ni&#380; nad pakietami raw, co jest du&#380;o
mniej efektywne. Wywo&#322;anie systemowe otwiera pe&#322;ne po&#322;&#261;czenie w przeciwie&#324;stwie
do metody SYN korzystaj&#261;cej z po&#322;owicznego po&#322;&#261;czenia. Nie tylko wymaga to
wi&#281;cej czasu i wymaga wi&#281;cej pakiet&#243;w do uzyskania takich samych informacji,
ale r&#243;wnie&#380; prawdopodobnie spowoduje zapisanie w logach badanego systemu pr&#243;by
po&#322;&#261;czenia. Nowoczesne systemy detekcji intruz&#243;w IDS potrafia wykrywa&#263; takie
po&#322;&#261;czenia, ale wi&#281;kszo&#347;&#263; system&#243;w nie posiada odpowiednich system&#243;w alarmowych.
Wiele us&#322;ug w typowym systemie UNIX zapisze uwag&#281; do logu systemowego i czasami
zagadkowy komunikat b&#322;&#281;du, kiedy Nmap po&#322;&#261;czy si&#281; i natychmiast zamknie
po&#322;&#261;czenie bez wysy&#322;ania jakichkolwiek danych. Naprawd&#281; &#380;a&#322;osne us&#322;ugi
przestan&#261; dzia&#322;a&#263; po otrzymaniu takiego pakietu, ale nie jest to cz&#281;sto
spotykane. Administrator widz&#261;cy w logach informacje o wielu pr&#243;bach nawi&#261;zania
po&#322;&#261;czenia z jednego adresu powinien wiedzie&#263;, &#380;e jego system by&#322; skanowany za
pomoc&#261; metody connect().</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-sU</option> (Skanowanie UDP)</term>
<listitem>
<para>Wi&#281;kszo&#347;&#263; popularnych us&#322;ug w sieci Internet wykorzystuje protok&#243;&#322; TCP,
ale r&#243;wnie&#380; us&#322;ugi <ulink url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink>
s&#261; cz&#281;sto spotykane. Najpopularniesze z nich to DNS, SNMP i DHCP (porty 53,
161/162 i 67/68). Poniewa&#380; skanowanie UDP jest og&#243;lnie wolniejsze i trudniejsze
ni&#380; TCP, wielu audytor&#243;w bezpiecze&#324;stwa ignoruje te porty. Jest to pomy&#322;ka, jako
&#380;e wiele us&#322;ug UDP jest podatnych na zdalne ataki i atakuj&#261;cy nie ignoruj&#261; tego
protoko&#322;u. Na szcz&#281;&#347;cie Nmap umo&#380;liwia inwentaryzacj&#281; port&#243;w UDP.</para>
<para>Skanowanie UDP jest aktywowane za pomoc&#261; opcji
<option>-sU</option>. Mo&#380;e by&#263; &#322;&#261;czone z innymi typami skanowania TCP, takimi
jak SYN (<option>-sS</option>), dla sprawdzenia obu protoko&#322;&#243;w w jednym
przebiegu.</para>
<para>Skanowanie UDP polega na wysy&#322;aniu pustych (bez danych) nag&#322;&#243;wk&#243;w
protoko&#322;u UDP do ka&#380;dego portu docelowego. Je&#347;li w odpowiedzi zostanie zwr&#243;cony
komunikat ICMP port uchreachable (typ 3, kod 3), port jest uznawany za
<literal moreinfo="none">zamkni&#281;ty</literal>. Inne typy komunikat&#243;w ICMP
unreachable (typ 3, kody 1, 2, 9, 10 lub 13) oznaczaj&#261;, &#380;e port jest
<literal moreinfo="none">filtrowany</literal>. Czasami w odpowiedzi zwr&#243;cony
zostanie pakiet UDP, co oznacza, &#380;e porty jest
<literal moreinfo="none">otwarty</literal>. Je&#347;li pomimo powtarzania transmisji
nie zostanie uzyskana &#380;adna odpowied&#378;, port zostaje zaklasyfikowany jako
<literal moreinfo="none">otwarty|filtrowany</literal>. Oznacza to, &#380;e port mo&#380;e
by&#263; otwarty lub filtr pakiet&#243;w blokuje do niego dost&#281;p. Wykorzystanie
skanowania wersji us&#322;ug (<option>-sV</option>) mo&#380;e pom&#243;c w odr&#243;&#380;nieniu port&#243;w
na prawd&#281; otwartych od filtrowanych.</para>
<para>Najwi&#281;kszym wyzwaniem przy skanowaniu UDP jest przeprowadzenie go odpowiednio szybko.
Otwarte i filtrowane porty rzadko wysy&#322;aj&#261; jak&#261;kolwiek odpowied&#378;, zmuszaj&#261;c
Nmapa do oczekiwania na odpowied&#378; i ponawiania transmisji na wypadek zagubienia
pakiet&#243;w. Zamkni&#281;te porty s&#261; cz&#281;sto jeszcze wi&#281;kszym problemem. Zwykle wysy&#322;aj&#261;
pakiet ICMP port unreachable, jednak w odr&#243;&#380;nieniu od pakiet&#243;w z flag&#261; RST znanych
ze skanowania SYN czy connect, wiele host&#243;w domy&#347;lnie limituje szybko&#347;&#263; wysy&#322;ania
pakiet&#243;w ICMP port unreachable. Przyk&#322;adami mog&#261; by&#263; systemy Linux i Solaris.
Kernel Linuxa w wersji 2.4.20 limituje ilo&#347;&#263; pakiet&#243;w o niedost&#281;pno&#347;ci port&#243;w do
jednego na sekund&#281; (w <filename moreinfo="none">net/ipv4/icmp.c</filename>).</para>
<para>Nmap potrafi wykrywa&#263; limitowanie odpowiedzi i zwalnia odpowiednio proces
skanowania dla unikni&#281;cia za&#347;miecania sieci niepotrzebnymi pakietami, kt&#243;re i tak
nie zostan&#261; wykorzystane. Niestety, skanowanie wszystkich 65,536 port&#243;w UDP
przy limicie Linuxowym jeden pakiet na sekund&#281; powoduje, &#380;e skanowanie trwa ponad
18 godzin. Sposobami na przyspieszenie s&#261; skanowanie wielu host&#243;w r&#243;wnolegle,
wykonywanie na pocz&#261;tek szybkiego skanowania popularnych port&#243;w, skanowanie z poza
systemu zaporowego i u&#380;ywanie opcji <option>--host-timeout</option> do pomijania
zbyt wolnych host&#243;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&#281;ksze mo&#380;liwo&#347;ci posiada opcja
<option>--scanflags</option> opisana w dalszej cz&#281;&#347;ci) wykorzystuj&#261; nieopisane
w <ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP RFC</ulink>
kombinacje flag do rozr&#243;&#380;nienia pomi&#281;dzy stanami port&#243;w
<literal moreinfo="none">otwarty</literal> oraz
<literal moreinfo="none">zamkni&#281;ty</literal>. Strona 65 opisuje, &#380;e <quote>je&#347;li
[docelowy] port jest ZAMKNI&#280;TY ... w odpowiedzi na pakiet nie zawieraj&#261;cy RST nale&#380;y
wys&#322;a&#263; odpowied&#378; RST.</quote> Nast&#281;pna strona opisuje pakiety wysy&#322;ane na porty bez
flag SYN, RST lub ACK w nast&#281;puj&#261;cy spos&#243;b: <quote>co&#347; takiego nie powinno mie&#263;
miejsca, jednak je&#347;li si&#281; zdarzy, pomi&#324; taki pakiet</quote>.</para>
<para>Podczas skanowania system&#243;w zgodnych z zapisami w RFC, dowolny pakiet nie
zawieraj&#261;cy flag SYN, RST lub ACK powinien wywo&#322;ywa&#263; odpowied&#378; RST w przypadku
portu zamkni&#281;tego i ca&#322;kowity brak odpowiedzi w przypadku portu otwartego.
Tak d&#322;ugo jak &#380;adna z wymienionych flag nie zosta&#322;a u&#380;yta, wszystkie inne
kombinacje flag (FIN, PSH i URG) s&#261; prawid&#322;owe. Nmap wykorzystuje to do
przeprowadzania trzech typ&#243;w skanowania:</para>
<variablelist>
<varlistentry><term>Skanowanie Null (<option>-sN</option>)</term>
<listitem><para>Nie ustawia &#380;adnych flag (pole flag w nag&#322;&#243;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&#347;wietlony jak choinka.</para></listitem></varlistentry>
</variablelist>
<para>Te trzy tryby skanowania s&#261; takie same poza ustawionymi flagami w
pakietach. Je&#347;li w odpowiedzi zostanie otrzymany pakiet RST, port jest
uznawany za <literal moreinfo="none">zamkni&#281;ty</literal>, podczas gdy brak
odpowiedzi oznacza <literal moreinfo="none">otwarty|filtrowany</literal>.
Port uznajemy za <literal moreinfo="none">filtrowany</literal>, je&#347;li
otrzymany zostanie komunikat ICMP unreachable (typ 3, kod 1, 2, 3, 9, 10 lub
13).</para>
<para>G&#322;&#243;wn&#261; zaleta tych typ&#243;w skanowania jest to, &#380;e potrafi&#261; si&#281; one
przemyka&#263; przez bezstanowe systemy zaporowe i filtrowanie na routerach.
Inn&#261; zalet&#261; jest tylko minimalnie wi&#281;ksza wykrywalno&#347;&#263; ni&#380; skanowania SYN.
Nie mo&#380;na jednak na to liczy&#263; - wi&#281;kszo&#347;&#263; nowych system&#243;w IDS mo&#380;e zosta&#263;
skonfigurowana do ich wykrywania. Ujemn&#261; stron&#261; jest to, &#380;e nie wszystkie
systemy s&#261; zgodne z RFC793. Wiele system&#243;w wysy&#322;a odpowiedzi RST niezale&#380;nie od
tego czy port jest otwarty czy nie. Powoduje to, &#380;e wszystkie porty pojawiaj&#261;
si&#281; jako <literal moreinfo="none">zamkni&#281;ty</literal>. Najcz&#281;&#347;ciej spotykane
systemy, kt&#243;re si&#281; tak zachowuj&#261; to Microsoft Windows, wiele urz&#261;dze&#324; Cisco,
BSDI, i IBM OS/400. Skanowania dzia&#322;aj&#261; jednak dobrze w przypadku wi&#281;kszo&#347;ci
system&#243;w UNIXowych. Kolejnym minusem tych metod jest to, &#380;e nie potrafi&#261;
rozr&#243;&#380;ni&#263; port&#243;w oznaczonych jako <literal moreinfo="none">otwarty</literal>
od <literal moreinfo="none">filtrowany</literal>, ujawniaj&#261;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&#380; omawiane powy&#380;ej, bo nigdy nie wykrywa
stan&#243;w port&#243;w <literal moreinfo="none">otwarty</literal> (lub nawet
<literal moreinfo="none">otwarty|filtrowany</literal>). Jest wykorzystywany
do mapowania regu&#322; filtrowania, do sprawdzania czy fitrowanie jest oparte
o stany (stateful) lub nie i kt&#243;re porty s&#261; filtrowane.</para>
<para>Pakiety skanowania ACK posiadaj&#261; tylko flag&#281; ACK (o ile nie zosta&#322;a
u&#380;yta opcja <option>--scanflags</option>). Podczas skanowania system&#243;w nie
posiadaj&#261;cych filtrowania, porty o stanach
<literal moreinfo="none">otwarty</literal> i
<literal moreinfo="none">zamkni&#281;ty</literal>
zwr&#243;c&#261; pakiet RST. W obu przypadkach Nmap oznaczy je jako
<literal moreinfo="none">niefiltrowane</literal>, co oznacza, &#380;e by&#322;y
osi&#261;galne dla pakietu ACK, ale nie zosta&#322;o okre&#347;lone, czy posiadaj&#261; stan
<literal moreinfo="none">otwarty</literal> czy
<literal moreinfo="none">zamkni&#281;ty</literal>. Porty, kt&#243;re nie odpowiedz&#261;
lub odpowiedz&#261; za pomoc&#261; komunikatu o b&#322;&#281;dzie ICMP (typ 3, kody 1, 2, 3, 9,
10 lub 13), zostan&#261; 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&#243;&#380;nica polega na tym, &#380;e
potrafi odr&#243;&#380;ni&#263; porty otwarte od zamkni&#281;tych, zamiast zawsze podawa&#263; stan
<literal moreinfo="none">niefiltrowany</literal>, kiedy otrzymano flag&#281; RST.
Jest to realizowane poprzez analiz&#281; pola Window pakietu zwrotnego RST. Na
niekt&#243;rych systemach, otwarte porty zwracaj&#261; dodatni&#261; warto&#347;&#263; rozmiaru okna
(tak&#380;e w pakietach RST), a przy zamkni&#281;tych o rozmiarze zero. Tak wi&#281;c zamiast
zawsze przedstawia&#263; 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&#281;ty</literal>, w zale&#380;no&#347;ci czy odpowiednio
otrzymano w odpowiedzi rozmiar okna o warto&#347;ci dodatniej lub zero.</para>
<para>Ten typ skanowania polega na szczeg&#243;lnej implementacji stosu TCP,
wyst&#281;puj&#261;cej w rzadko spotykanych systemach w internecie, a wi&#281;c nie mo&#380;na
zawsze na niej polega&#263;. Zwykle systemy, kt&#243;re nie obs&#322;uguj&#261; tej metody b&#281;d&#261;
zwraca&#322;y porty oznaczone jako <literal moreinfo="none">zamkni&#281;ty</literal>.
Oczywi&#347;cie jest r&#243;wnie&#380; mo&#380;liwe, &#380;e host na prawd&#281; nie ma otwartych port&#243;w.
Je&#347;li wi&#281;kszo&#347;&#263; przeskanowanych port&#243;w ma stan
<literal moreinfo="none">zamkni&#281;ty</literal>, jednak niekt&#243;re (takie jak 22,
25 czy 53) maj&#261; stan <literal moreinfo="none">filtrowany</literal>, system
jest podejrzany. Czasami systemy potrafi&#261; si&#281; zachowywa&#263; zupe&#322;nie przeciwnie.
Je&#347;li skanowanie wyka&#380;e 1000 otwartych port&#243;w i tylko 3 zamkni&#281;te lub
filtrowane, wtedy te trzy prawdopodobnie s&#261; rzeczywi&#347;cie otwarte.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-sM</option> (Skanowanie TCP Maimon)</term>
<listitem>
<para>Skanowanie Maimon zosta&#322;o nazwane na cze&#347;&#263; jego odkrywcy, Uriela Maimona.
Opisa&#322; t&#281; technik&#281; w Phrack Magazine w wydaniu #49 (Listopad 1996). Nmap, kt&#243;ry
potrafi&#322; wykorzysta&#263; t&#281; technik&#281; zosta&#322; wypuszczony dwa wydania p&#243;&#378;niej.
Skanowanie to nale&#380;y do rodziny Null, FIN i Xmass z t&#261; r&#243;&#380;nic&#261;, &#380;e u&#380;ywa flag
FIN/ACK. Zgodnie z RFC 793 (TCP), dla takiej kombinacji flag, pakiet RST
powinien by&#263; wygenerowany niezale&#380;nie czy port jest otwarty czy zamkni&#281;ty.
Jednak&#380;e Uriel zauwa&#380;y&#322;, &#380;e wiele system&#243;w opartych na BSD po prostu pomija
odpowiedzi, je&#347;li port jest otwarty.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--scanflags</option> (Skanowanie TCP z definiowanymi flagami)</term>
<listitem>
<para>Prawdziwie zaawansowani u&#380;ytkownicy Nmapa nie mog&#261; by&#263; ograniczani
ilo&#347;ci&#261; oferowanych wbudowanych typ&#243;w skanowania. Opcja
<option>--scanflags</option> pozwala na projektowanie w&#322;asnych typ&#243;w skanowania
z wykorzystaniem wybranych flag TCP. Cieszcie si&#281; podczas wykorzystywania tej
techniki do oszukiwania system&#243;w IDS, kt&#243;rych tw&#243;rcy pobie&#380;nie przegl&#261;dali
dokumentacj&#281; Nmapa dodaj&#261;c specyficzne regu&#322;y!</para>
<para>Argument opcji <option>--scanflags</option> mo&#380;e by&#263; numerycznym zapisem
flag, np 9 (PSH i FIN), lub dla u&#322;atwienia mo&#380;na wykorzystywa&#263; symbliczne nazwy.
Mo&#380;na poda&#263; dowoln&#261; kombinacj&#281; 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&#322;ad <option>--scanflags
URGACKPSHRSTSYNFIN</option> ustawia wszystkie flagi, cho&#263; nie jest to zbyt
u&#380;yteczna metoda skanowania. Kolejno&#347;&#263; podawania flag nie jest istotna.</para>
<para>Dodatkowo przy podawaniu wybranych flag mo&#380;liwe jest podanie typu
skanowania (takiego jak <option>-sA</option> lub <option>-sF</option>).
Dodany typ skanowania informuje Nmapa jak ma interpretowa&#263; otrzymane odpowiedzi.
Na przyk&#322;ad skanowanie SYN zak&#322;ada, &#380;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&#281;dzie si&#281; zachowywa&#322; w taki sam spos&#243;b jak przy wybranym trybie
skanowania, jednak wykorzystane zostan&#261; podane flagi. Je&#347;li bazowy typ
skanowania nie zostanie okre&#347;lony, zostanie wykorzystany domy&#347;lny typ SYN.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-sI &lt;zombie
host[:probeport]&gt;</option> (Skanowanie Idle)</term>
<listitem>
<para>Ta zaawansowana technika skanowania pozwala na prawdziwie
&#347;lepe skanowanie TCP (co oznacza, &#380;e &#380;aden pakiet nie zostanie
wys&#322;any do badanego systemu z prawdziwego adresu IP Nmapa).
Zamiast tego wykorzystany zostanie host zombie, o przwidywalnym
dzia&#322;aniu stosu TCP polegaj&#261;cym na sekwencyjnym powi&#281;kszaniu
numer&#243;w ID pakiet&#243;w, do uzyskania informacji o otwartych portach
w badanym systemie. Systemy detekcji intruz&#243;w poka&#380;&#261; jako adres
atakuj&#261;cego zdefiniowany host zombie (musi spe&#322;nia&#263; okre&#347;lone
warunki). Ten fascynuj&#261;cy typ skanowania jest zbyt skomplikowany
&#380;eby go dok&#322;adnie opisa&#263; w tej dokumentacji, dlatego napisa&#322;em
oddzielny nieformalny dokument na ten temat ze szczeg&#243;&#322;owymi
informacjami i jest on dost&#281;pny pod adresem
<ulink url="https://nmap.org/book/idlescan.html"/>.</para>
<para>Poza tym, &#380;e metoda ta jest niespotykanie poufna (z powodu
jej &#347;lepej natury), ten typ skanowania pozwala na mapowanie regu&#322;
zaufania pomi&#281;dzy maszynami bazuj&#261;cych na adresach IP. Wyniki
zawieraj&#261; otwarte porty, <emphasis>z punktu widzenia hosta zombie
</emphasis>. Tak wi&#281;c mo&#380;na pr&#243;bowa&#263; skanowania z wykorzystaniem
r&#243;&#380;nych host&#243;w zombie, kt&#243;re mo&#380;na traktowa&#263; jako zaufane (poprzez
router/regu&#322;y filtrowania pakiet&#243;w).</para>
<para>Mo&#380;na po dwukropku doda&#263; numer portu, je&#347;li chcemy go
wykorzysta&#263; na ho&#347;cie zombie do badania zmian IPID. W innym przypadku
Nmap wykorzysta domy&#347;lnie port u&#380;ywany przez tcp ping (80).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-sO</option> (Skanowanie protoko&#322;&#243;w IP)</term>
<listitem>
<para>Skanowanie to pozwala na wykrycie listy protoko&#322;&#243;w IP (TCP, ICMP, IGMP
itp), kt&#243;re s&#261; dost&#281;pne na danym ho&#347;cie. Technicznie nie jest to skanowanie
port&#243;w, poniewa&#380; sprawdza kolejne numery protoko&#322;&#243;w, a nie kolejne porty TCP
czy UDP. Opcja ta nadal u&#380;ywa parametru <option>-p</option> do wybrania numer&#243;w
protoko&#322;&#243;w do sprawdzenia, w formacie analogicznym do listy port&#243;w. Z tego
powodu metoda ta zosta&#322;a zaklasyfikowana jako skanowanie port&#243;w i dlatego
znajduje si&#281; tutaj.</para>
<para>Poza swoj&#261; w&#322;asn&#261; funkcjonalno&#347;ci&#261;, skanowanie protoko&#322;&#243;w demonstruje
pot&#281;g&#281; oprogramowania open source. Podczas gdy podstawowa idea jest ca&#322;kiem
prosta, nie pomy&#347;la&#322;em o jej dodaniu, jak r&#243;wnie&#380; nie otrzyma&#322;em &#380;adnej
pro&#347;by o dodanie takiej funkcjonalno&#347;ci. Latem roku 2000, Gerhard Rieger
opracowa&#322; koncepcj&#281;, stworzy&#322; odpowiedni&#261; poprawk&#281; i wys&#322;a&#322; j&#261; na list&#281;
dyskusyjn&#261; nmap-hackers. W&#322;&#261;czy&#322;em j&#261; do drzewa Nmapa i wypu&#347;ci&#322;em now&#261;
wersj&#281; nast&#281;pnego dnia. Niewiele komercyjnych program&#243;w posiada u&#380;ytkownik&#243;w
na tyle entuzjastycznych, &#380;eby zaprojektowa&#263; i stworzy&#263; ich w&#322;asne poprawki!
</para>
<para>Skanowanie protoko&#322;&#243;w dzia&#322;a w spos&#243;b podobny do skanowania UDP, jednak
zamiast iteracji po kolejnych numerach portu, w nag&#322;&#243;wkach pakiet&#243;w zmienia si&#281;
8-mio bitowy numer protoko&#322;u. Nag&#322;&#243;wki s&#261; przewa&#380;nie puste, nie zawieraj&#261;
&#380;adnych danych ani nawet poprawnego dla danego protoko&#322;u nag&#322;&#243;wka. Trzema
wyj&#261;tkami s&#261; TCP, UDP i ICMP. Poprawne nag&#322;&#243;wki dla tych protoko&#322;&#243;w s&#261;
konieczne, poniewa&#380; niekt&#243;re systemy nie b&#281;d&#261; ich potrafi&#322;y wys&#322;a&#263; oraz
dlatego, &#380;e Nmap posiada ju&#380; odpowiednie funkcje do ich tworzenia.
Zamiast obserwowa&#263; komunikaty ICMP unreachable, skanowanie protoko&#322;&#243;w nie polega
na komunikatach ICMP <emphasis>protocol</emphasis> unreachable. Je&#347;li Nmap
otrzyma jak&#261;kolwiek odpowied&#378; w jakimkolwiek protokole, ustala stan protoko&#322;u
jako <literal moreinfo="none">otwarty</literal>. Otrzymanie komunikatu ICMP
protocol unreachable (typ 3, kod 2) powoduje oznaczenie protoko&#322;u jako
<literal moreinfo="none">zamkni&#281;ty</literal>. Inne komuniakty ICMP protocol
unreachable (typ 3, kody 1, 3, 9, 10 lub 13) powoduj&#261; oznaczenie protoko&#322;u jako
<literal moreinfo="none">filtrowany</literal> (oraz r&#243;wnocze&#347;nie potwierdzaj&#261;,
&#380;e protok&#243;&#322; ICMP jest r&#243;wnie&#380; <literal moreinfo="none">otwarty</literal>).
Je&#347;li nie uzyskano odpowiedzi, protok&#243;&#322; jest oznaczany jako
<literal moreinfo="none">otwarty|filtrowany</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-b &lt;po&#347;rednicz&#261;cy host ftp&gt;</option> (Skanowanie FTP bounce)</term>
<listitem>
<para>Interesuj&#261;c&#261; funkcj&#261; protoko&#322;u FTP
(<ulink url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) jest
wspieranie tak zwanych po&#322;&#261;cze&#324; proxy. Pozwala to u&#380;ytkownikowi na po&#322;&#261;czenie
z jednym serwerem FTP i poproszenie o wys&#322;anie plik&#243;w do innego. Ta
funkcjonalno&#347;&#263; by&#322;a przyczyn&#261; nadu&#380;y&#263; na wielu poziomach, dlatego wiele serwer&#243;w
porzuci&#322;o dla niej wsparcie. Jednym z mo&#380;liwych nadu&#380;y&#263; jest sposobno&#347;&#263; do
zmuszenia serwera do skanowania port&#243;w na zewn&#281;trznym ho&#347;cie. Wystarczy po
prostu poprosi&#263; serwer o wys&#322;anie pliku kolejno na ka&#380;dy interesuj&#261;cy port badanego
systemu. Uzyskany komunikat o b&#322;&#281;dzie zwr&#243;ci informacj&#281;, czy porty by&#322; otwarty
czy zamkni&#281;ty. Jest to dobra metoda do omijania system&#243;w zaporowych, poniewa&#380;
korporacyjne serwery FTP cz&#281;sto s&#261; umieszczane w takim miejscu, &#380;e maj&#261;
mo&#380;liwo&#347;&#263; komunikacji zar&#243;wno z hostami w internecie jak i w sieci lokalnej.
Nmap obs&#322;uguje skanowanie FTP bounce z wykorzystaniem opcji
<option>-b</option>. Opcja przyjmuje argument w postaci
<replaceable>nazwa_u&#380;ytkownika</replaceable>:<replaceable>has&#322;o</replaceable>@<replaceable>serwer</replaceable>:<replaceable>port</replaceable>.
<replaceable>Serwer</replaceable> jest nazw&#261; lub adresem IP podatnego serwera
FTP. Tak jak przy zwyk&#322;ym adresie URL, mo&#380;na pomin&#261;&#263; pola
<replaceable>nazwa_u&#380;ytkownika</replaceable>:<replaceable>has&#322;o</replaceable>,
w tym przypadku zostanie wykorzystana domy&#347;lna kombinacja dla u&#380;ytkownik&#243;w
anonimowych (u&#380;ytkownik <literal moreinfo="none">anonymous</literal>
has&#322;o:<literal moreinfo="none">-wwwuser@</literal>). Numer portu (i
poprzedzaj&#261;cy go dwukropek) r&#243;wnie&#380; mo&#380;e zosta&#263; pomini&#281;ty, w tym przypadku
przy po&#322;&#261;czeniu z wybranym adresem <replaceable>serwer</replaceable>, zostanie
wykorzystany domy&#347;lny port serwera FTP (21).</para>
<para>Podatno&#347;&#263; ta by&#322;a szeroko spotykana w roku 1997, kiedy to Nmap zosta&#322;
wypuszczony, jednak z biegiem czasu jej znaczenie bardzo si&#281; zmniejszy&#322;o.
Dziurawe serwery FTP nadal si&#281; zdarzaj&#261;, wi&#281;c warto wyprubowa&#263; i t&#281;
metod&#281;, je&#347;li inne zawiod&#261;. Je&#347;li potrzebne jest obej&#347;cie systemu zaporowego,
mo&#380;na przeskanowa&#263; sie&#263; w poszukiwaniu otwartych port&#243;w 21 (lub poprzez
wyszukanie ftp na innych portach z wykorzystaniem opcji do wykrywania wersji)
i wypr&#243;bowa&#263; na wykrytych portach metod&#281; bounce. Nmap poinformuje, czy us&#322;uga
jest podatna czy nie. Je&#347;li chcesz ukrywa&#263; swoje dzia&#322;ania, nie trzeba (i nie
powinno) ogranicza&#263; si&#281; do host&#243;w z badanej sieci. Przed rozpocz&#281;ciem
skanowania losowych adres&#243;w w sieci Internet w poszukiwaniu podatnych wersji
serwer&#243;w FTP trzeba mie&#263; na uwadze, &#380;e wielu administrator&#243;w nie bedzie
zachwyconych wykorzystywaniem ich serwer&#243;w w ten spos&#243;b.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="man-port-specification">
<title>Specyfikacja port&#243;w i kolejno&#347;ci skanowania</title>
<para>Poza wszystkimi metodami skanowania opisanymi wcze&#347;niej, Nmap
oferuje opcj&#281; pozwalaj&#261;c&#261; na podanie numer&#243;w port&#243;w do skanowania i
okre&#347;lenie, czy skanowanie ma przebiega&#263; w kolejno&#347;ci sekwencyjnej czy
losowej. Domy&#347;lnie Nmap skanuje wszystkie porty do 1024 w&#322;&#261;cznie oraz
wy&#380;sze porty wyszczeg&#243;lnione w pliku
<filename moreinfo="none">nmap-services</filename>.</para>
<variablelist>
<varlistentry>
<term>
<option>-p &lt;zakres port&#243;w&gt;</option> (Skanuj tylko wybrane porty)
</term>
<listitem>
<para>Opcja pozwala na zdefiniowanie listy port&#243;w do skanowania,
zamiast domy&#347;lnej. Mo&#380;liwe jest podanie pojedynczych port&#243;w
jak i zakres&#243;w oddzielonych my&#347;lnikiem (np. 1-1023). Zakres mo&#380;na
r&#243;wnie&#380; pomin&#261;&#263;, co spowoduje u&#380;ycie ca&#322;ego zakresu (1-65535). Mo&#380;na
wi&#281;c po prostu poda&#263; opcj&#281; <option>-p-</option> do przeskanowania
wszystkich port&#243;w od 1 do 65535 w&#322;&#261;cznie. Mo&#380;na r&#243;wnie&#380; poda&#263; port
zero, ale trzeba to zrobic jawnie. W przypadku po&#322;&#261;czenia tej opcji
ze skanowaniem protoko&#322;&#243;w (<option>-sO</option>), okre&#347;la ona numery
protoko&#322;&#243;w do sprawdzenia (0-255).</para>
<para>Przy jednoczesnym skanowaniu port&#243;w TCP i UDP mo&#380;liwe jest
oddzielne zdefiniowanie port&#243;w dla obu protoko&#322;&#243;w poprzez
poprzedzenie numer&#243;w znakami odpowiednio
<literal moreinfo="none">T:</literal> i
<literal moreinfo="none">U:</literal>. Jako argument opcji przyjmowany
jest ci&#261;g znak&#243;w a&#380; do nast&#281;pnej opcji. Na przyk&#322;ad, podanie <option>-p
U:53,111,137,T:21-25,80,139,8080</option> spowoduje przeskanowanie
port&#243;w UDP o numerach 53,111 i 137 oraz podanych port&#243;w TCP. Przy
skanowaniu zar&#243;wno port&#243;w TCP jak i UDP, nie
mo&#380;na zapomnie&#263; poda&#263; odpowiednich typ&#243;w skanowania: <option>-sU</option>
oraz przynajmniej jednego TCP (np. <option>-sS</option>,
<option>-sF</option> czy <option>-sT</option>). Je&#347;li nie podano
protoko&#322;u skanowania, na czas skanowania numery port&#243;w zostan&#261;
dodane do domy&#347;lnej listy port&#243;w.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-F</option> (Skanowanie Fast (ograniczona ilo&#347;&#263; port&#243;w))
</term>
<listitem>
<para>Pozwala na okre&#347;lenie, &#380;e maj&#261; by&#263; skanowane tylko porty
zawarte w pliku <filename moreinfo="none">nmap-services</filename>
z pakietu Nmapa (lub z pliku protoko&#322;&#243;w dla opcji
<option>-sO</option>). Opcja ta pozwala na szybsze skanowanie,
ni&#380; w przypadku wszystkich 65535 port&#243;w. Poniewa&#380; lista ta
zawiera tylko nieco ponad 1200 port&#243;w, r&#243;&#380;nica w
szybko&#347;ci w por&#243;wnaniu do typowego skanowania TCP (oko&#322;o 1650
port&#243;w) nie jest du&#380;a. R&#243;&#380;nica mo&#380;e by&#263; wi&#281;ksza, je&#347;li zostanie
podany w&#322;asny, ma&#322;y plik
<filename moreinfo="none">nmap-services</filename> za pomoc&#261;
opcji <option>--datadir</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-r</option> (Nie u&#380;ywaj losowej kolejno&#347;ci)
</term>
<listitem>
<para>Domy&#347;lnie Nmap skanuje porty w kolejno&#347;ci losowej (poza
niekt&#243;rymi najcz&#281;&#347;ciej wykorzystywanymi portami, kt&#243;re s&#261; skanowane
na pocz&#261;tku ze wzgl&#281;d&#243;w wydajno&#347;ciowych). Takie zachowanie jest
normalnie po&#380;&#261;dane, jednak mo&#380;na je wy&#322;&#261;czy&#263; za pomoc&#261; opcji
<option>-r</option>, wymuszaj&#261;cej sekwencyjn&#261; kolejno&#347;&#263; skanowania.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="man-version-detection">
<title>Detekcja us&#322;ug i wersji</title>
<para>Przy skanowaniu zdalnego systemu, Nmap mo&#380;e wykry&#263; otwarte porty
takie jak 25/tcp, 80/tcp czy 53/udp. Wykorzystuj&#261;c baz&#281; danych zawieraj&#261;c&#261;
oko&#322;o 2,200 popularnych us&#322;ug, znajduj&#261;c&#261; si&#281; w pliku
<filename moreinfo="none">nmap-services</filename>, Nmap odczyta
przypuszczalne nazwy us&#322;ug dla wykrytych port&#243;w - odpowiednio serwer
pocztowy (SMTP), serwer WWW (HTTP) i serwer nazw (DNS). Takie dzia&#322;anie
jest zwykle poprawne, wi&#281;kszo&#347;&#263; aplikacji s&#322;uchaj&#261;cych na porcie 25, to
rzeczywi&#347;cie serwery pocztowe. Jednak&#380;e, niech Twoja ocena bezpiecze&#324;stwa
niepolega na tych podpowiedziach! Ludzie mog&#261; i cz&#281;sto umieszczaj&#261; us&#322;ugi
na dziwnych portach.</para>
<para>Nawet je&#347;li Nmap sie nie myli i hipotetyczny serwer z przyk&#322;adu
powy&#380;ej udost&#281;pnia us&#322;ugi SMTP, HTTP i DNS, nie jest to du&#380;a ilo&#347;&#263;
informacji na temat tych us&#322;ug. Przeprowadzaj&#261;c testy bezpiecze&#324;stwa (lub
zwyk&#322;&#261; inwentaryzacj&#281; zasob&#243;w) swojej firmy lub klienta, potrzeba uzyska&#263;
dok&#322;adniejsze informacje na temat us&#322;ug: jaka aplikacja i w jakiej wersji
jest zainstalowana na serwerze SMTP czy DNS. Posiadanie tych informacji w
znacz&#261;cy spos&#243;b wp&#322;ywa na mo&#380;liwo&#347;&#263; ustalenia podatno&#347;ci danej aplikacji.
Detekcja wersji pozwala na uzyskanie takiej informacji.</para>
<para>Po tym jak zostan&#261; wykryte za pomoc&#261; innych technik skanowania
dost&#281;pne us&#322;ugi TCP i UDP, detekcja wersji odpytuje porty w celu okre&#347;lenia
dalszych szczeg&#243;&#322;&#243;w na temat aplikacji. Baza danych
<filename moreinfo="none">nmap-service-probes</filename> zawiera opisy
wielu us&#322;ug i pr&#243;buje dopasowa&#263; je do uzyskanych informacji. Nmap stara si&#281;
najpierw okre&#347;li&#263; protok&#243;&#322; wykorzystywany przez us&#322;ug&#281; (np. ftp, ssh,
telnet, http), nast&#281;pnie nazw&#281; aplikacji (np. ISC Bind, Apache httpd,
Solaris telnetd), wersj&#281; us&#322;ugi, nazw&#281; hosta, typ urz&#261;dzenia (np. drukarka,
router), rodzin&#281; system&#243;w operacyjnych (np. Windows, Linux) i czasami
uzyskuje dodatkowe informacje (takie jak czy X serwer przyjmuje po&#322;&#261;czenia,
obs&#322;ugiwane wersje protoko&#322;u SSH czy nazw&#281; u&#380;ytkownika KaZaA). Oczywi&#347;cie
wi&#281;kszo&#347;&#263; us&#322;ug nie dostarczy wszystkich tych informacji. Je&#347;li Nmap zosta&#322;
skompilowany z OpenSSL, b&#281;dzie potrafi&#322; &#322;&#261;czy&#263; si&#281; z serwerami SSL i
uzyskiwa&#263; informacje od us&#322;ug ukrytych za szyfrowan&#261; warstw&#261;. Kiedy zostan&#261;
wykryte us&#322;ugi RPC, odpowiedni skaner (<option>-sR</option>) zostanie
automatycznie uruchomiony do ustalenia oprogramowania i wersji RPC.
Z powodu specyfiki UDP, po zako&#324;czeniu skanowania niekt&#243;re porty pozostaj&#261;
w stanie <literal moreinfo="none">otwarty|filtrowany</literal>, jako &#380;e ten
typ skanowania nie potrafi okre&#347;li&#263;, czy port jest otwarty czy filtrowany.
Skanowanie wersji spr&#243;buje uzyska&#263; odpowied&#378; od takiego portu (tak jak to
robi przy otwartych portach) i je&#347;li to si&#281; uda, zmieni stan na otwarty.
Porty TCP w stanie <literal moreinfo="none">otwarty|filtrowany</literal> s&#261;
traktowane w ten sam spos&#243;b. Nale&#380;y zwr&#243;ci&#263; uwag&#281;, &#380;e opcja
<option>-A</option> poza innymi rzeczami w&#322;&#261;cza wykrywanie wersji. Dodatkowa
dokumentacja na temat dzia&#322;ania detekcji wersji jest dost&#281;pna pod adresem
<ulink url="https://nmap.org/vscan/"/>.</para>
<para>Je&#347;li Nmap otrzyma odpowied&#378;, ale nie jest w stanie dopasowa&#263; jej do
&#380;adnej znanej us&#322;ugi, wy&#347;wietli specjalny odcisk palca (fingerprint) us&#322;ugi
wraz z adresem URL, pod kt&#243;rym mo&#380;na go nast&#281;pnie wys&#322;a&#263; wraz ze stosownym
opisem, je&#347;li jeste&#347;my pewni jakiej us&#322;udze odpowiada.
Prosz&#281; po&#347;wi&#281;ci&#263; te kilka minut na wys&#322;anie informacji o nieznanych
us&#322;ugach, a b&#281;d&#261; mogli z tego skorzysta&#263; r&#243;wnie&#380; inni u&#380;ytkownicy Nmapa.
Dzi&#281;ki temu sposobowi wysy&#322;ania Nmap rozpoznaje oko&#322;o 3,000 odcisk&#243;w dla
ponad 350 protoko&#322;&#243;w us&#322;ug, takich jak smtp, ftp, http itp.</para>
<para>Detekcja wersji jest w&#322;&#261;czana i kontrolowana nast&#281;puj&#261;cymi opcjami:</para>
<variablelist>
<varlistentry>
<term>
<option>-sV</option> (Detekcja wersji us&#322;ug)</term>
<listitem>
<para>W&#322;&#261;cza detekcj&#281; wersji us&#322;ug, opisan&#261; powy&#380;ej. Alternatywnie
mo&#380;na u&#380;y&#263; opcji <option>-A</option> do jednoczesnego w&#322;&#261;czenia
detekcji wersji us&#322;ug i systemu operacyjnego.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--allports</option> (Nie pomijaj &#380;adnych port&#243;w przy detekcji wersji)
</term>
<listitem>
<para>Domyslnie, skanowanie wersji Nmapa pomija port TCP 9100,
poniewa&#380; niekt&#243;re drukarki po prostu drukuj&#261; wszystko, co zostanie
przys&#322;ane na ten port, powoduj&#261;c wydruk setek stron z zapytaniami
HTTP, binarnymi zapytaniami SSL itp. Takie zachowanie mo&#380;e zosta&#263;
wy&#322;&#261;czone poprzez modyfikacj&#281; lub usuni&#281;cie dyrektywy
<literal moreinfo="none">Exclude</literal> w pliku
<filename moreinfo="none">nmap-service-probes</filename>, lub poprzez
dodanie opcji <option>--allports</option>, wymuszaj&#261;cej skanowanie
wszystkich port&#243;w niezale&#380;nie od dyrektywy
<literal moreinfo="none">Exclude</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--version-intensity &lt;poziom&gt;</option> (Ustaw poziom skanowania wersji)
</term>
<listitem>
<para>Podczas przeprowadzania skanowania wersji (<option>-sV</option>),
Nmap przeprowadza seri&#281; test&#243;w, przy czym ka&#380;dy z nich ma przypisany
sw&#243;j poziom pomi&#281;dzy 1 a 9. Niskie poziomy dzia&#322;aj&#261; poprawnie w
stosunku do najpopularniejszych us&#322;ug, wysokie numery obejmuj&#261;
ma&#322;o popularne. Poziom skanowania okre&#347;la kt&#243;re testy zostan&#261;
wykonane. Czym wy&#380;szy poziom, tym wi&#281;ksza szansa na prawid&#322;owe
rozpoznanie ma&#322;o popularnych us&#322;ug. Domy&#347;ly poziom to 7. Je&#347;li
test zostanie powi&#261;zany z wykryt&#261; us&#322;ug&#261; z pliku
<filename moreinfo="none">nmap-service-probes</filename>, okre&#347;lon&#261;
dyrektyw&#261; <literal moreinfo="none">ports</literal>, zostanie on
wykonany niezale&#380;nie od ustalonego poziomu wykrywania wersji.
Zachowanie takie ma na celu zawsze poprawne wykrywanie domy&#347;lnych
us&#322;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&#322;&#261;cz tryb delikatny)
</term>
<listitem>
<para>Jest wygodniejszym odpowiednikiem ustalaj&#261;cym warto&#347;&#263;
<option>--version-intensity 2</option>. Opcja ta pozwala na znaczne
przyspieszenie wykrywania wersji, kosztem dok&#322;adno&#347;ci.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--version-all</option> (U&#380;yj wszystkich test&#243;w)
</term>
<listitem>
<para>Odpowiednik opcji <option>--version-intensity 9</option>,
powoduj&#261;cy wykonanie wszystkich mo&#380;liwych test&#243;w na ka&#380;dym porcie.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--version-trace</option> (&#346;ledzenie aktywno&#347;ci skanowania wersji)
</term>
<listitem>
<para>Opcja w&#322;&#261;cza opcje &#347;ledzenia b&#322;&#281;d&#243;w podczas wykrywania wersji,
powoduj&#261;c wy&#347;wietlanie dodatkowych informacji na temat prowadzonych
dzia&#322;a&#324;. Opcja ta jest cz&#281;&#347;ci&#261; wi&#281;kszej <option>--packet-trace</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-sR</option> (Skanowanie RPC)</term>
<listitem>
<para>Metoda ta dzia&#322;a w po&#322;&#261;czeniu z r&#243;&#380;nymi metodami skanowania
port&#243;w Nmapa. Na wszystkie wykryte wcze&#347;niej porty s&#261; wysy&#322;ane
komendy NULL SunRPC i za ich pomoc&#261; sprawdzane jest, czy dany port
nale&#380;y do us&#322;ug RPC. Je&#347;li tak, identyfikowana jest aplikacja i jej
wersja. Opcja pobiera takie same informacje jak komenda
<command moreinfo="none">rpcinfo -p</command>, nawet je&#347;li host jest
chroniony za pomoc&#261; systemu zaporowego (lub TCP wrapper&#243;w). Hosty
po&#347;rednie zombie nie s&#261; obs&#322;ugiwane przy tym trybie skanowania.
Opcja jest automatycznie aktywowana jako cz&#281;&#347;&#263; wykrywania wersji
us&#322;ug (<option>-sV</option>). Jako &#380;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&#380;liwo&#347;ci Nmapa jest zdalna detekcja
systemu operacyjnego za pomoc&#261; odcisk&#243;w palca (fingerprint) stosu TCP/IP.
Nmap wysy&#322;a seri&#281; pakiet&#243;w TCP i UDP do zdalnego systemu i analizuje
praktycznie ka&#380;dy bit z uzyskanych odpowiedzi. Po wykonaniu dziesi&#261;tek
test&#243;w takich jak pr&#243;bkowanie ISN TCP, analiza opcji protoko&#322;u TCP i
kolejno&#347;ci, pr&#243;bkowanie IPID i kontrola pocz&#261;tkowych rozmiar&#243;w okna, Nmap
por&#243;wnuje uzyskane wyniki z baz&#261; z pliku
<filename moreinfo="none">nmap-os-fingerprints</filename>
zawieraj&#261;c&#261; ponad 1500 znanych odcisk&#243;w system&#243;w operacyjnych i wy&#347;wietla
wynik, je&#347;li uda&#322;o sie go odnale&#378;&#263;.
Ka&#380;dy odcisk zawiera tekstowy opis systemu operacyjnego, nazw&#281; jego
producenta (np. Sun), nazw&#281; systemu (np. Solaris), generacj&#281; (np. 10) i typ
urz&#261;dzenia (przeznaczenie og&#243;lne, router, switch, konsola do gier itp).</para>
<para>Je&#347;li Nmap nie mo&#380;e ustali&#263; systemu i warunki do jego wykrycia s&#261;
wystarczaj&#261;ce (np. wykryto przynajmniej jeden otwarty i jeden zamkni&#281;ty
port), Nmap poda adres URL, dzi&#281;ki kt&#243;remu, je&#347;li jeste&#347;my pewni, mo&#380;liwe
jest wys&#322;anie opisu nieznanego systemu, wraz z jego odciskiem. Wykonanie
tej operacji przyczynia si&#281; do rozbudowy bazy i poprawy wykrywania, na czym
korzystaj&#261; wszyscy u&#380;ytkownicy.</para>
<para>Detekcja systemu operacyjnego pozwala na uzyskanie innych informacji,
kt&#243;re s&#261; zbierane podczas tego procesu. Jedn&#261; z nich jest czas od
uruchomienia hosta, co jest uzyskiwane poprzez wykorzystanie opcji TCP
timestamp (RFC 1323) do ustalenia kiedy host by&#322; restartowany. Informacja
ta jest podawana tylko wtedy, je&#347;li host jej dostarcza. Inn&#261; informacj&#261; jest
klasyfikacja przewidywalno&#347;ci numer&#243;w sekwencyjnych TCP. Badane jest
prawdopodobie&#324;stwo mo&#380;liwo&#347;ci wstrzykni&#281;cia pakiet&#243;w w przechwycone
po&#322;&#261;czenie. Informacja ta jest przydatna w przypadku testowania po&#322;&#261;cze&#324;
opartych na zaufaniu do adresu IP nadawcy (rlogin, filtry firewalla itp)
lub podczas ukrywania &#378;r&#243;d&#322;a ataku. Ten typ atak&#243;w jest obecnie rzadko
wykorzystywany, jednak niekt&#243;re systemy s&#261; nadal na niego podatne.
Podawany poziom trudno&#347;ci jest oparty na statystycznych pr&#243;bkach i mo&#380;e
si&#281; zmienia&#263;. Og&#243;lnie lepiej jest u&#380;ywa&#263; angielskich okre&#347;le&#324; dla
poszczeg&#243;lnych klas, takich jak <quote>worthy challenge</quote> (stanowi&#261;cy
wyzwanie) lub <quote>trivial joke</quote> (trywialny dowcip). Taki spos&#243;b
raportowania jest dost&#281;pny tylko przy domy&#347;lnym formacie raportu przy
w&#322;&#261;czonej opcji zwi&#281;kszaj&#261;cej szczeg&#243;&#322;owo&#347;&#263; podawanych informacji
(<option>-v</option>). Je&#347;li u&#380;yto opcji <option>-v</option> w po&#322;&#261;czeniu z
<option>-O</option>, podane zostan&#261; informacje o generowaniu numer&#243;w
sekwencyjnych IPID. Wi&#281;kszo&#347;&#263; adres&#243;w nale&#380;y do klasy
<quote>incremental</quote> (rosn&#261;ce) co oznacza, &#380;e warto&#347;&#263; pola ID w
nag&#322;&#243;wkach pakiet&#243;w IP jest zmieniana rosn&#261;co w kolejnych pakietach. Taki
spos&#243;b powi&#281;kszania numer&#243;w powoduje podatno&#347;&#263; na szereg atak&#243;w.</para>
<para>Dokument opisuj&#261;cy dzia&#322;anie i u&#380;ywanie detekcji wersji jest
dost&#281;pny w wielu j&#281;zykach pod adresem
<ulink url="https://nmap.org/osdetect/"/>.</para>
<para>Wykrywanie systemu operacyjnego jest w&#322;&#261;czane i kontrolowane przez
poni&#380;sze opcje:</para>
<variablelist>
<varlistentry>
<term>
<option>-O</option> (W&#322;&#261;czenie wykrywania systemu operacyjnego)
</term>
<listitem>
<para>W&#322;&#261;cza wykrywanie systemu operacyjnego opisanego powy&#380;ej.
Alternatywnie mo&#380;na u&#380;ywa&#263; opcji <option>-A</option>, kt&#243;ra w&#322;&#261;cza
jednocze&#347;nie wykrywanie systemu operacyjnego i wersji us&#322;ug.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--osscan-limit</option> (Limitowanie wykrywania do
obiecuj&#261;cych cel&#243;w)
</term>
<listitem>
<para>Wykrywanie systemu operacyjnego jest du&#380;o bardziej efektywne,
je&#347;li wykryto przynajmniej po jednym otwartym i zamkni&#281;tym porcie TCP.
U&#380;ycie tej opcji spowoduje, &#380;e Nmap nie b&#281;dzie pr&#243;bowa&#322; okre&#347;la&#263;
systemu operacyjnego, je&#347;li nie zosta&#322;y spe&#322;nione powy&#380;sze kryteria.
Wykorzystanie tego ograniczenia pozwala na znaczne skr&#243;cenie czasu,
zw&#322;aszcza w po&#322;&#261;czeniu z opcj&#261; <option>-P0</option> przy skanowaniu
wielu adres&#243;w. Opcja ma znaczenie tylko w po&#322;&#261;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&#347;li Nmap nie mo&#380;e jednoznacznie dopasowa&#263; systemu
operacyjnego, czasami mo&#380;e sugerowa&#263; kilka r&#243;&#380;nych, zbli&#380;onych
do siebie. Podobie&#324;stwo musi by&#263; bardzo du&#380;e, &#380;eby Nmap zachowa&#322;
si&#281; w ten spos&#243;b przy domy&#347;lnej konfiguracji. Wykorzystanie tej opcji
pozwala na wi&#281;ksz&#261; swobodno&#347;&#263; przy pr&#243;bach ustalenia wersji systemu.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="man-performance">
<title>Zale&#380;no&#347;ci czasowe i wydajno&#347;&#263;</title>
<para>Zawsze najwa&#380;niejszym priorytetem przy tworzeniu Nmapa by&#322;a
wysoka wydajno&#347;&#263;. Domy&#347;lne skanowanie (<command moreinfo="none">nmap
<replaceable>nazwahosta</replaceable></command>) hosta w sieci lokalnej
zajmuje tylko jedn&#261; pi&#261;t&#261; sekundy. Jest to zadowalaj&#261;cy czas, jednak przy
skanowaniu setek tysi&#281;cy adres&#243;w sumaryczny czas staje si&#281; bardzo du&#380;y.
Dodatkowo niekt&#243;re typy skanowania, takie jak skanowanie UDP i detekcja
wersji tak&#380;e wp&#322;ywaj&#261; negatywnie na czas wykonania, podobnie jak konfiguracja
system&#243;w zaporowych, na przyk&#322;ad limituj&#261;ca ilo&#347;&#263; pakiet&#243;w. Nmap posiada
mo&#380;liwo&#347;ci r&#243;wnoleg&#322;ego skanowania i odpowiednie zaawansowane algorytmy
przyspieszaj&#261;ce skanowanie, a u&#380;ytkownik posiada ogromne mo&#380;liwo&#347;ci
wp&#322;ywania na to jak s&#261; one wykorzystywane. Zaawansowani u&#380;ytkownicy
uwa&#380;nie przegl&#261;daj&#261;cy komendy Nmapa, nakazuj&#261; mu dostarczanie tylko
istotnych informacji zgodnie z przyj&#281;tymi wymaganiami i za&#322;o&#380;eniami
czasowymi.</para>
<para>Techniki przyspieszaj&#261;ce skanowanie dotycz&#261; ograniczenia wykonywania
ma&#322;o istotnych test&#243;w i cz&#281;stej zmiany wersji Nmapa na najnowsz&#261; (zmiany
dotycz&#261;ce przyszpieszenia pracy s&#261; wprowadzane dosy&#263; cz&#281;sto). Optymalizacja
parametr&#243;w dotycz&#261;cych szybko&#347;ci skanowania r&#243;wnie&#380; ma du&#380;y wp&#322;yw i
zosta&#322;a opisana poni&#380;ej.</para>
<variablelist>
<varlistentry>
<term>
<option>--min-hostgroup &lt;ilo&#347;&#263;_host&#243;w&gt;</option>;
<option>--max-hostgroup
&lt;numhosts&gt;</option> (Zmiana ilo&#347;ci host&#243;w w grupie)</term>
<listitem>
<para>Nmap posiada mo&#380;liwo&#347;&#263; skanowania port&#243;w i wersji na wielu hostach
r&#243;wnocze&#347;nie. Jest to realizowane poprzez dzielenie listy adres&#243;w docelowych
na grupy, kt&#243;re s&#261; nast&#281;pnie kolejno skanowane. Og&#243;lnie skanowanie wi&#281;kszych
grup jest bardziej efektywne. Wad&#261; tego rozwi&#261;zania jest op&#243;&#378;nienie w podawaniu
wynik&#243;w test&#243;w do czasu przeskanowania ca&#322;ej grupy. Przyk&#322;adowo, je&#347;li Nmap
rozpocz&#261;&#322; skanowanie w grupach po 50 adres&#243;w, &#380;adne wyniki nie zostan&#261;
wy&#347;wietlone (poza informacjami podawanymi przez -v) do czasu zako&#324;czenia
skanowania pierwszych 50 adres&#243;w.</para>
<para>Domy&#347;lnie Nmap stosuje rozwi&#261;zanie kompromisowe. Rozpoczyna z grup&#261; o
rozmiarze 5, co pozwala szybko wy&#347;wietli&#263; pierwsze wyniki, a nast&#281;pnie
stopniowo powi&#281;ksza rozmiar grupy a&#380; do maksymalnie 1024. Dok&#322;adne
wykorzystywane rozmiary grup s&#261; uzale&#380;nione od podania dodatkowych opcji.
Dla uzyskania wi&#281;kszej efektywno&#347;ci Nmap u&#380;ywa wi&#281;kszych grup dla skanowa&#324; UDP
oraz przy skanowaniach TCP dotycz&#261;cych zaledwie kilku port&#243;w.</para>
<para>Je&#347;li maksymalny rozmiar grupy zosta&#322; okre&#347;lony za pomoc&#261; opcji
<option>--max-hostgroup</option>, Nmap nigdy nie przekroczy tego limitu.
Analogicznie podanie minimalnego rozmiaru za pomoc&#261;
<option>--min-hostgroup</option> wymusi stosowanie grup o przynajmniej takim
rozmiarze. Nmap mo&#380;e u&#380;y&#263; mniejszej grupy tylko w przypadku, kiedy ilo&#347;&#263;
adres&#243;w do przeskanowania jest mniejsza ni&#380; za&#322;o&#380;one minimum. Obie wymienione
opcje pozwalaj&#261; na utrzymywanie rozmiaru grupy w podanym przedziale, jednak
jest to rzadko potrzebne.</para>
<para>Podstawowym zastosowaniem tych opcji jest podawanie du&#380;ego minimalnego
rozmiaru grupy tak, &#380;eby pe&#322;ne skanowanie odbywa&#322;o si&#281; szybciej. Cz&#281;sto
stosowan&#261; warto&#347;ci&#261; jest 256, co pozwala na skanowanie w kawa&#322;kach o rozmiarze
klasy C. Przy skanowaniu wielu port&#243;w, stosowanie wi&#281;kszych warto&#347;ci
minimalnych przewa&#380;nie nie poprawi wydajno&#347;ci. W przypadku skanowania ma&#322;ych
ilo&#347;ci port&#243;w pomocne mo&#380;e by&#263; stosowanie grup o rozmiarze 2048 lub nawet
wi&#281;kszym.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--min-parallelism &lt;ilo&#347;&#263;_pr&#243;b&gt;</option>;
<option>--max-parallelism
&lt;ilo&#347;&#263;_pr&#243;b&gt;</option> (Kontrola wsp&#243;&#322;bierzno&#347;ci test&#243;w)</term>
<listitem>
<para>Opcja ta kontroluje ilo&#347;&#263; jednoczesnych dla danej grupy adres&#243;w
test&#243;w i jest wykorzystywana podczas wykrywania host&#243;w i skanowania port&#243;w.
Domy&#347;lnie Nmap dobiera idealn&#261; ilo&#347;&#263; test&#243;w w zale&#380;no&#347;ci od parametr&#243;w sieci.
Je&#347;li jaki&#347; pakiet zostanie zagubiony, zwalnia i zaczyna wykonywa&#263;
mniejsz&#261; ilo&#347;&#263; test&#243;w r&#243;wnolegle. Nmap pr&#243;buje powoli przyspiesza&#263;, je&#347;li nie
s&#261; gubione pakiety. Podane opcje pozwalaj&#261; na okre&#347;lenie minimalnego i
maksymalnego limitu ilo&#347;ci jednocze&#347;nie wykonywanych test&#243;w. Normalnie ilo&#347;&#263;
ta mo&#380;e spa&#347;&#263; do 1 przy z&#322;ych warunkach sieciowych lub wzrosn&#261;&#263; do kilkuset
w idealnych warunkach.</para>
<para>Najcz&#281;&#347;ciej wykorzystywana jest opcja
<option>--min-parallelism</option> do ustawiania wy&#380;szej ni&#380; 1 warto&#347;ci przy
skanowaniu sieci przy z&#322;ych warunkach. Zmiana tej opcji mo&#380;e by&#263; ryzykowna,
poniewa&#380; ustawienie zbyt wysokiej warto&#347;ci mo&#380;e sie odbi&#263; na poprawno&#347;ci test&#243;w.
Wykorzystanie jej tak&#380;e poci&#261;ga za sob&#261; zmniejszenie mo&#380;liwo&#347;ci Nmapa w
zakresie dynamicznego dostosowywania si&#281; do warunk&#243;w panuj&#261;cych w sieci.
Ustalenie minimalnej ilo&#347;ci na 10 mo&#380;e by&#263; sensowne, jednak powinno by&#263;
stosowane w ostateczno&#347;ci.</para>
<para>Opcja <option>--max-parallelism</option> jest czasami wykorzystywana do
zmuszenia Nmapa do nie przeprowadzania wi&#281;cej ni&#380; jednego testu r&#243;wnolegle, co
mo&#380;e by&#263; u&#380;yteczne w po&#322;&#261;czeniu z opcj&#261;<option>--scan-delay</option> (opisan&#261;
dalej).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--min-rtt-timeout &lt;czas&gt;</option>,
<option>--max-rtt-timeout &lt;czas&gt;</option>,
<option>--initial-rtt-timeout
&lt;czas&gt;</option> (Kontrola czasu oczekiwania na wykonanie testu)</term>
<listitem>
<para>Nmap posiada mechanizm kontroluj&#261;cy czas oczekiwania na wynik testu,
zanim nie zostanie on ponowiony. Czas oczekiwania jest zale&#380;ny od czasu
wykonania poprzednich test&#243;w. Je&#347;li op&#243;&#378;nienia w sieci oka&#380;&#261; sie du&#380;e i
zmienne, czas oczekiwania mo&#380;e zwi&#281;kszy&#263; sie do kilku sekund. Pocz&#261;tkowa
warto&#347;&#263; jest dosy&#263; konserwatywna (wysoka) i mo&#380;e taka pozosta&#263; w przypadku
skanowania nie odpowiadaj&#261;cych host&#243;w.</para>
<para>Opcje przyjmuj&#261; warto&#347;ci w milisekundach, ale mo&#380;na doda&#263; litery
<literal moreinfo="none">s</literal>, <literal moreinfo="none">m</literal>
lub <literal moreinfo="none">h</literal> odnosz&#261;ce si&#281; odpowiednio do sekund,
minut i godzin. Podanie ni&#380;szych warto&#347;ci <option>--max-rtt-timeout</option> i
<option>--initial-rtt-timeout</option> ni&#380; domy&#347;lne, mo&#380;e znacz&#261;co skr&#243;ci&#263; czas
skanowania. Jest to g&#322;&#243;wnie widoczne w przypadku skanowania bez wykorzystywania
pinga (<option>-P0</option>) oraz przy skanowaniu dobrze filtrowanych sieci.
Nie mo&#380;na r&#243;wnie&#380; przesadza&#263; w drug&#261; stron&#281;, ustawienie zbyt ma&#322;ego czasu
mo&#380;e przek&#322;ada&#263; sie na d&#322;u&#380;szy czas skanowania przez niepotrzebne retransmisje
spowodowane up&#322;ywem czasu oczekiwania na odpowied&#378;.</para>
<para>Je&#347;li wszystkie skanowane hosty s&#261; w sieci lokalnej, sensownym agresywnym
ustawieniem opcje <option>--max-rtt-timeout</option> jest 100 milisekund.
Je&#347;li skanowany ma by&#263; inny segment, warto sprawdzi&#263; czasy odpowiedzi dla
protoko&#322;u ICMP - za pomoc&#261; narz&#281;dzia ping lub innego pozwalaj&#261;cego na
definiowanie pakiet&#243;w mog&#261;cych omija&#263; system zaporowy, takiego jak hping2.
Interesuj&#261;c&#261; nas wielko&#347;ci&#261; jest maksymalny czas odpowiedzi dla 10 lub wi&#281;cej
pakiet&#243;w. Uzyskany czas mo&#380;e zosta&#263; po podwojeniu wykorzystany jako warto&#347;&#263; dla
<option>--initial-rtt-timeout</option>, a po pomno&#380;eniu przez trzy lub cztery
dla <option>--max-rtt-timeout</option>. Nie jest zalecane ustawianie
maksymalnego rtt poni&#380;ej 100ms, niezale&#380;nie od czas&#243;w pingowania, podobnie
wi&#281;kszego ni&#380; 1000ms.</para>
<para><option>--min-rtt-timeout</option> jest rzadko wykorzystywan&#261; funkcj&#261;,
kt&#243;ra mo&#380;e by&#263; przydatna je&#347;li komunikacja sieciowa jest tak niepewna, &#380;e nawet
domy&#347;lne ustawienia Nmapa s&#261; zbyt agresywne. Jako &#380;e Nmap redukuje czas
oczekiwania tylko do momentu w kt&#243;rym sie&#263; zacznie dzia&#322;a&#263; poprawnie, potrzeba
dodatkowego wyd&#322;u&#380;ania czasu oczekiwania nie jest normalna i powinna zosta&#263;
zaraportowana jako b&#322;&#261;d na li&#347;cie dyskusyjnej nmap-dev.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--max-retries &lt;ilo&#347;&#263;&gt;</option> (Maksymalna ilo&#347;&#263; pr&#243;b ponawiania skanowania port&#243;w)
</term>
<listitem>
<para>Kiedy Nmap nie otrzyma odpowiedzi na skanowanie portu, mo&#380;e to oznacza&#263;,
&#380;e port ten jest filtrowany. Mo&#380;liwe jest jednak tak&#380;e, &#380;e pakiet testu lub
odpowiedzi po prostu zagin&#261;&#322; w sieci, albo &#380;e host limituje ilo&#347;&#263; mo&#380;liwych
odpowiedzi w jednostce czasu i w&#322;a&#347;nie tymczasowo je zablokowa&#322;. Wi&#281;ksz&#261;
pewno&#347;&#263; uzyskuje si&#281; dzieki powtarzaniu testu w przedstawionych przypadkach.
Je&#347;li Nmap wykryje problemy z komunikacj&#261; sieciow&#261;, mo&#380;e ponawia&#263; pr&#243;b&#281; badania
portu wiele razy, zanim sie podda. Z jednej strony zwi&#281;ksza to dok&#322;adno&#347;&#263;
test&#243;w, z drugiej wyd&#322;u&#380;a czas ich wykonania. Je&#347;li wydajno&#347;&#263; jest krytycznym
aspektem, skanowania mog&#261; zosta&#263; przyspieszone poprzez limitowanie dozwolonej
ilo&#347;ci retransmisji. Ustawienie opcji <option>--max-retries 0</option> ,
ca&#322;kowicie wy&#322;&#261;czaj&#261;cej powtarzanie test&#243;w jest wykorzystywane sporadycznie.
</para>
<para>Domy&#347;lnie (bez stosowania opcji <option>-T</option>) dozwolone jest
maksymalnie 10 powt&#243;rze&#324;. Je&#347;li sie&#263; dzia&#322;a prawid&#322;owo i skanowane hosty nie
limituj&#261; ilo&#347;ci pakiet&#243;w, Nmap zwykle wykorzystuje jedn&#261; retransmisj&#281;. Dlatego te&#380;
wi&#281;kszo&#347;&#263; skanowa&#324; nie zostanie dotkni&#281;tych zmian&#261; warto&#347;ci
<option>--max-retries</option> na trzy. Stosowanie tak niskich warto&#347;ci pozwala
na znaczne przyspieszenie skanowania host&#243;w limituj&#261;cych ilo&#347;&#263; odpowiedzi.
Je&#347;li Nmap b&#281;dzie zbyt szybko poddawa&#322; si&#281; przy skanowaniu port&#243;w, cz&#281;&#347;&#263;
informacji nie zostanie zebrana, dlatego by&#263; mo&#380;e warto skorzysta&#263; z opcji
przerywaj&#261;cej test <option>--host-timeout</option>, kt&#243;ra dotyczy ca&#322;ego hosta,
a nie tylko pojedynczych test&#243;w.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--host-timeout &lt;czas&gt;</option> (Pomijaj powolne hosty)
</term>
<listitem>
<para>Skanowanie niekt&#243;rych host&#243;w trwa <emphasis>bardzo d&#322;ugo</emphasis>.
Mo&#380;e to by&#263; spowodowane niezbyt wydajnym sprz&#281;tem sieciowym lub
oprogramowaniem, limitowaniem ilo&#347;ci pakiet&#243;w czy restrykcjami systemu
zaporowego. Niewielki procent host&#243;w mo&#380;e zabra&#263; wi&#281;kszo&#347;&#263; czasu przeznaczonego
na skanowanie. Czasami najlepszym rozwi&#261;zaniem jest ich pomini&#281;cie z
wykorzystaniem opcji <option>--host-timeout</option> z parametrem oznaczaj&#261;cym
ilo&#347;&#263; milisekund, jakie jeste&#347;my w stanie po&#347;wi&#281;ci&#263; na czekanie per host.
Parametr mo&#380;na r&#243;wnie&#380; podawa&#263; w sekundach, minutach lub godzinach dodaj&#261;c
odpowiednio litery <literal moreinfo="none">s</literal>,
<literal moreinfo="none">m</literal> lub <literal moreinfo="none">h</literal>.
Cz&#281;sto dodaj&#281; <literal moreinfo="none">30m</literal> &#380;eby mie&#263; pewno&#347;&#263;, &#380;e Nmap
nie b&#281;dzie skanowa&#322; jednego hosta d&#322;u&#380;ej ni&#380; p&#243;&#322; godziny. Trzeba pami&#281;ta&#263;, &#380;e
Nmap mo&#380;e r&#243;wnolegle w tym czasie skanowa&#263; inne hosty, wi&#281;c nie bedzie to czas
kompletnie stracony. Host kt&#243;ry przekroczy czas jest pomijany i nie s&#261; dla
niego wy&#347;wietlane wyniki takie jak lista port&#243;w, system operacyjny czy wersje
us&#322;ug.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--scan-delay &lt;czas&gt;</option>;
<option>--max-scan-delay
&lt;czas&gt;</option> (Ustaw op&#243;&#378;nienie pomi&#281;dzy testami)</term>
<listitem>
<para>Opcja pozwala na narzucenie czasu w milisekundach jaki musi min&#261;&#263;
pomi&#281;dzy kolejnymi testami dla badanego hosta. Podobnie jak przy innych opcjach
pozwalaj&#261;cych na okre&#347;lanie czasu, mo&#380;na doda&#263;
<literal moreinfo="none">s</literal>,
<literal moreinfo="none">m</literal> lub <literal moreinfo="none">h</literal>
do parametru do okre&#347;lenia go odpowiednio w sekundach, minutach lub godzinach.
Opcja ta jest szczeg&#243;lnie u&#380;yteczna w przypadku system&#243;w limituj&#261;cych ilo&#347;&#263;
pakiet&#243;w. Solaris zwykle odpowiada na skanowanie UDP poprzez wysy&#322;anie tylko
jednego pakietu ICMP na sekund&#281;, wi&#281;c wysy&#322;anie zapyta&#324; szybciej jest zupe&#322;nie
nie potrzebne. Wykorzystanie opcji <option>--scan-delay 1s</option> pozwala na
wymuszenie odpowiedniej pr&#281;dko&#347;ci skanowania. Normalnie Nmap stara si&#281;
wykry&#263; jaka powinna by&#263; optymalna pr&#281;dko&#347;&#263; skanowania dla ka&#380;dego hosta, jednak
r&#281;czne dodanie takiej opcji nie zaszkodzi, o ile znana jest optymalna pr&#281;dko&#347;&#263;.</para>
<para>Kiedy Nmap zwi&#281;ksza czas op&#243;&#378;nienia, dostosowuj&#261;c go do
limitu ilo&#347;ci otrzymywanych odpowiedzi, czas skanowania dramatycznie ro&#347;nie.
Opcja <option>--max-scan-delay</option> pozwala na ustawienie maksymalnego
limitu do kt&#243;rego mo&#380;e by&#263; automatycznie zwi&#281;kszane op&#243;&#378;nienie. Ustawienie
tej warto&#347;ci zbyt nisko mo&#380;e spowodowa&#263; niepotrzebne retransmisje i
pomini&#281;cie niekt&#243;rych port&#243;w w przypadku host&#243;w &#347;ci&#347;le limituj&#261;cych ilo&#347;&#263;
pakiet&#243;w.</para>
<para>Inn&#261; mo&#380;liwo&#347;ci&#261; wykorzystanie opcji <option>--scan-delay</option>
jest omijanie system&#243;w detekcji intruz&#243;w (IDS/IPS).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-T
&lt;Paranoid|Sneaky|Polite|Normal|Aggressive|Insane&gt;</option>
(Ustawnienie szablonu zale&#380;no&#347;ci czasowych skanowania)
</term>
<listitem>
<para>Opisane wcze&#347;niej opcje do zmiany zale&#380;no&#347;ci czasowych pozwalaj&#261; na
efektywne i precyzyjne sterowanie skanowaniem, jednak wiele os&#243;b uzna je za
niepotrzebnie skomplikowane. Dodatkowo w wielu przypadkach dobranie
odpowiedniej kombinacji parametr&#243;w mo&#380;e zaj&#261;&#263; wi&#281;cej czasu, ni&#380; samo
skanowanie. Z tego powodu Nmap oferuje prostrze rozwi&#261;zanie w postaci
sze&#347;ciu szablon&#243;w. Ich wyb&#243;r jest mo&#380;liwy poprzez wykorzystanie opcji
<option>-T</option> z parametrem oznaczaj&#261;cym numer lub nazw&#281; szablonu.
Dost&#281;pne szablony to paranoid (0, paranoidalny), sneaky (1, podst&#281;pny),
polite (2, grzeczny), normal (3, normalny), aggressive (4, agresywny) i
insane (5, szalony). Pierwsze dwa wykorzystywane s&#261; do omijania system&#243;w
IDS. Szablon polite spowalnia skanowanie powoduj&#261;c mniejsze obci&#261;&#380;enie &#322;&#261;cza
i zmniejszaj&#261;ce wykorzystanie zasob&#243;w w badanym systemie. Domy&#347;lnie u&#380;ywany
jest normal, wi&#281;c podawanie <option>-T3</option> nic nie zmieni. Szablon
agresywny przyspiesza skanowanie przy za&#322;o&#380;eniu &#380;e korzystamy z szybkiej i
nie przeci&#261;&#380;onej sieci. Insane zak&#322;ada wykorzystanie ponad przeci&#281;tnie szybkiej
sieci lub je&#347;li chcemy uzyska&#263; du&#380;&#261; szybko&#347;&#263; kosztem mo&#380;liwej utraty
dok&#322;adno&#347;ci.</para>
<para>Szablony pozwalaj&#261; poinformowa&#263; Nmapa jak du&#380;ej agresywno&#347;ci od niego
oczekujemy przy jednoczesnym pozwoleniu mu na automatyczne dobieranie
pozosta&#322;ych parametr&#243;w czasowych. Wprowadzane te&#380; s&#261; inne drobne modyfikacje,
do kt&#243;rych nie istniej&#261; odzielne opcje. Na przyk&#322;ad, <option>-T4</option>
zabrania wzrostu dynamicznego op&#243;&#378;nienia skanowania powy&#380;ej 10ms dla port&#243;w
TCP, a w przypadku <option>-T5</option> powy&#380;ej 5ms. Szablony mog&#261; by&#263; u&#380;ywane
w po&#322;&#261;czeniu z innymi opcjami do ustawiania zale&#380;no&#347;ci czasowych o ile zostan&#261;
umieszczone przed pozosta&#322;ymi opcjami w linii polece&#324;
(inaczej domy&#347;lne ustawienia z szablonu zast&#261;pi&#261; ustawione innymi opcjami).
Wi&#281;kszo&#347;&#263; dzisiejszych sieci mo&#380;e by&#263; z powodzeniem skanowana z wykorzystaniem
opcji <option>-T4</option>.</para>
<para>Je&#347;li u&#380;ywasz &#322;&#261;cza szerokopasmowego lub sieci ethernet, rekomendowane
jest sta&#322;e u&#380;ywanie szablonu <option>-T4</option>. Wiele os&#243;b lubi
<option>-T5</option>, lecz jest ono jak dla mnie troch&#281; za agresywne. Ludzie
czasami u&#380;ywaj&#261; <option>-T2</option> poniewa&#380; my&#347;l&#261;, &#380;e zminiejszaj&#261; szanse
na zawieszenie serwera lub uwa&#380;aj&#261; si&#281; za bardziej kulturalnych z za&#322;o&#380;enia,
cz&#281;sto nie zdaj&#261;c sobie sprawy z tego, jak wolne jest <option>-T Polite</option>
- ich skanowania mo&#380;e trwa&#263; dziesi&#281;&#263; razy d&#322;u&#380;ej. Zawieszanie host&#243;w i problemy
z pasmem s&#261; rzadko spotykane przy domy&#347;lym <option>-T3</option>, i ta opcja jest
polecana dla ostro&#380;nych skanuj&#261;cych. Nie w&#322;&#261;czanie detekcji wersji jest daleko
bardziej efektywnym sposobem na unikanie problem&#243;w.</para>
<para>Podczas gdy opcje <option>-T0</option> i <option>-T1</option> mog&#261; by&#263;
u&#380;yteczne przy unikaniu wykrycia przez systemy IDS, s&#261; niesamowicie powolne
przy skanowaniu setek adres&#243;w lub port&#243;w. Przy tak d&#322;ugich skanowaniach mo&#380;esz
raczej chcie&#263; ustawi&#263; r&#281;cznie poszczeg&#243;lne zale&#380;no&#347;ci czasowe, ni&#380; polega&#263; na
predefiniowanych warto&#347;ciach z <option>-T0</option> i <option>-T1</option>.
</para>
<para>G&#322;&#243;wnym efektem dzia&#322;ania <option>T0</option> jest ograniczenie ilo&#347;ci
r&#243;wnolegle przeprowadzanych test&#243;w do jednego i wprowadzenie odst&#281;pu pomi&#281;dzy
kolejnymi testami o d&#322;ugo&#347;ci 5 minut. Opcje <option>T1</option> i
<option>T2</option> s&#261; podobne, ale czakaj&#261; ju&#380; tylko odpowiednio 15 i 0.4
sekundy pomi&#281;dzy testami. <option>T3</option> jest domy&#347;lnym ustawieniem Nmapa
w&#322;&#261;czaj&#261;c w to zr&#243;wnoleglanie test&#243;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&#243;&#378;nienia przy skanowaniu
TCP na 10 milisekund. Opcja <option>T5</option> jest alternatyw&#261; 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&#243;&#378;nienia dla skanowania TCP na 5ms.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="man-bypass-firewalls-ids">
<title>Firewall/IDS i podszywanie si&#281;</title>
<para>Wielu pionier&#243;w ineternetu wykorzystywa&#322;o globaln&#261; otwart&#261; sie&#263; opart&#261;
o uniwersaln&#261; przestrze&#324; adresow&#261; pozwalaj&#261;c&#261; na tworzenie wirtualnych
po&#322;&#261;cze&#324; pomi&#281;dzy dwoma dowolnymi w&#281;z&#322;ami. Pozwala&#322;o to hostom na r&#243;wnoprawn&#261;
komunikacj&#281; przy kt&#243;rej ka&#380;dy m&#243;g&#322; serwowa&#263; i pobiera&#263; dane od drugiego.
Ludzie mogli uzyska&#263; dost&#281;p do wszystkich swoich system&#243;w z dowolnego miejsca
w sieci. Wizja nieograniczonej &#322;&#261;czno&#347;ci zosta&#322;a ograniczona przez wyczerpuj&#261;ce
si&#281; zapasy wolnych adres&#243;w IP i wzgl&#281;dy bezpiecze&#324;stwa. We wczesnych latach
90-tych organizacje zacz&#281;&#322;y masowo wprowadza&#263; systemy zaporowe dla ograniczenia
mo&#380;liwo&#347;ci komunikacji. Du&#380;e sieci zosta&#322;y otoczone kordonem zabezpiecze&#324; w
postaci proxy aplikacyjnych, translacji adres&#243;w i filtrowania pakiet&#243;w.
Niczym nie ograniczany przep&#322;yw informacji ust&#261;pi&#322; &#347;cis&#322;ym regulacjom
dotycz&#261;cym dozwolonych dr&#243;g komunikacji i tre&#347;ci nimi przesy&#322;anych.</para>
<para>Zabezpieczenia sieciowe takie jak systemy zaporowe mog&#261; bardzo utrudni&#263;
uzyskiwanie informacji o sieci i jej architekturze.
Nmap posiada wiele funkcji pozwalaj&#261;cych zrozumie&#263; dzia&#322;anie z&#322;o&#380;onych sieci i
na weryfikacje dzia&#322;ania filtr&#243;w pakiet&#243;w i ich zgodno&#347;ci z za&#322;o&#380;eniami.
Pozwala nawet na omijanie &#378;le zaimplementowanych zabezpiecze&#324;. Jednym z
najlepszych sposob&#243;w na poznanie bezpiecze&#324;stwa swojej sieci jest pr&#243;ba jego
prze&#322;amania. Zacznij my&#347;le&#263; jak atakuj&#261;cy, kt&#243;ry stosuje techniki z tej cz&#281;&#347;ci
dokumentacji przeciwko Twojej sieci. Uruchom skanowania FTP bounce, Idle, dodaj
fragmentacj&#281; pakiet&#243;w lub spr&#243;buj uruchomi&#263; tunel omijaj&#261;cy lokalne proxy.</para>
<para>W po&#322;&#261;czeniu z ograniczeniami aktywno&#347;ci sieciowej, firmy coraz cz&#281;&#347;ciej
rozpoczynaj&#261; monitorowanie ruchu sieciowego za pomoc&#261; system&#243;w detekcji intruz&#243;w
(IDS). Wszystkie popularne systemy IDS maj&#261; do&#322;&#261;czone regu&#322;y wykrywaj&#261;ce
skanowania Nmapa, poniewa&#380; skanowania takie czasami poprzedzaj&#261; ataki. Wiele z tych
system&#243;w ostatnio przeistoczy&#322;o si&#281; w systemy <emphasis>prewencji</emphasis>
(IPS), kt&#243;re aktywnie przeciwstawiaj&#261; si&#281; niepo&#380;&#261;danemu ruchowi. Niestety, dla
administrator&#243;w sieci i producent&#243;w system&#243;w IDS, wiarygodne wykrywanie z&#322;ych
intencji poprzez analiz&#281; pakiet&#243;w jest ci&#281;&#380;kim orzechem do zgryzienia.
Cierpliwi atakuj&#261;cy, posiadaj&#261;cy odpowiednie umiej&#281;tno&#347;ci podparte
mo&#380;liwo&#347;ciami Nmapa zwykle mog&#261; omin&#261;&#263; systemy detekcji intruz&#243;w i ich
dzia&#322;ania nie zostan&#261; wykryte. W tym samym czasie administratorzy musz&#261; si&#281;
zmaga&#263; z ogromn&#261; ilo&#347;ci&#261; fa&#322;szywych alarm&#243;w dotycz&#261;cych niepoprawnie
zaklasyfikowanej zupe&#322;nie niewinnej komunikacji.</para>
<para>Co jaki&#347; czas kto&#347; sugeruje, &#380;e Nmap nie powinien oferowa&#263; mo&#380;liwo&#347;ci
omijania system&#243;w zaporowych czy system&#243;w IDS. Argumentuj&#261; to mo&#380;liwo&#347;ci&#261;
wykorzystania tych funkcji tak&#380;e przez atakuj&#261;cych, a nie tylko przez
administrator&#243;w podnosz&#261;cych bezpiecze&#324;stwo swoich sieci. Problemem jest
sama logika, poniewa&#380; atakuj&#261;cy i tak b&#281;d&#261; wykorzystywali tego typu metody
u&#380;ywaj&#261;c innych narz&#281;dzi lub samemu wprowadzaj&#261;c odpowiedni&#261;
funkcjonalno&#347;&#263; do kodu Nmapa. R&#243;wnocze&#347;nie administratorzy b&#281;d&#261; mieli
utrudniony dost&#281;p do odpowiednich narz&#281;dzi i ich praca b&#281;dzie trudniejsza.
Uruchomienie nowoczesnego, bezpiecznego serwera FTP jest du&#380;o skuteczniejsz&#261;
metod&#261; ochrony ni&#380; ograniczanie dost&#281;pno&#347;ci do narz&#281;dzi pozwalaj&#261;cych na
przeprowadzanie atak&#243;w FTP bounce.</para>
<para>Nie ma magicznej kuli (lub opcji Nmapa) do prze&#322;amywania i obchodzenia
system&#243;w zaporowych i IDS. Wymaga to umiej&#281;tno&#347;ci i do&#347;wiadczenia. Dok&#322;adne
instrukcje wykraczaj&#261; poza zakres tej dokumentacji, kt&#243;ra jest jedynie list&#261;
dost&#281;pnych opcji wraz z opisami jak one dzia&#322;aj&#261;.</para>
<variablelist>
<varlistentry>
<term>
<option>-f</option> (fragmentacja pakiet&#243;w);
<option>--mtu</option> (U&#380;ywanie wybranego MTU)
</term>
<listitem>
<para>Opcja <option>-f</option> powoduje wykorzystywanie przy
skanowaniu (w&#322;&#261;czaj&#261;c w to skanowanie ping) ma&#322;ych pofragmentowanych
pakiet&#243;w. Idea polega na podzieleniu nag&#322;&#243;wka TCP na wiele pakiet&#243;w,
co powoduje utrudnienia w ich przetwarzaniu przez filtry pakiet&#243;w,
systemy detekcji intruz&#243;w oraz irytuj&#261;ce komplikacje przy ustalaniu
co si&#281; dzieje. Ale uwaga! Wiele program&#243;w ma problemy przy obs&#322;udze
tego typu pakiet&#243;w. Przestarza&#322;y sniffer Sniffit wykonuje
nieprawid&#322;ow&#261; operacje i zostaje zamkni&#281;ty zaraz po odebraniu ju&#380;
pierwszego z takich pakiet&#243;w. Dodanie tej opcji spowoduje
automatyczne dzielenie wszystkich pakiet&#243;w wysy&#322;anych przez Nmapa
na mniejsze o rozmiarze maksymalnie 8 bajt&#243;w. Przyk&#322;adowo 20 bajtowy
nag&#322;&#243;wek TCP zostanie podzielony na 3 pakiety: najpierw dwa po 8
bajt&#243;w i ostatni 4 bajty. Oczywi&#347;cie ka&#380;dy fragment dostaje w&#322;asny
nag&#322;&#243;wek IP. Dodanie drugiej opcji <option>-f</option> powi&#281;ksza
wykorzystywany rozmiar fragment&#243;w z 8 do 16 (redukuj&#261;c ilo&#347;&#263;
fragment&#243;w). Mo&#380;liwe jest r&#243;wnie&#380; podanie w&#322;asnego rozmiaru za
pomoc&#261; opcji <option>--mtu</option>. Nie u&#380;ywaj parametru
<option>-f</option>, je&#347;li u&#380;ywasz <option>--mtu</option>. Podawany
rozmiar musi by&#263; wielokrotno&#347;ci&#261; 8. W niekt&#243;rych systemach filtry
pakiet&#243;w nie otrzymuj&#261; bezpo&#347;rednio pakiet&#243;w, tylko s&#261; one wst&#281;pnie
kolejkowane, tak jak w Linuxie przy ustawieniu opcji
CONFIG_IP_ALWAYS_DEFRAG w kernelu, jednak w wielu przypadkach takie
opcje nie s&#261; w&#322;&#261;czane ze wzgl&#281;d&#243;w wydajno&#347;ciowych. Opcja taka nie
jest r&#243;wnie&#380; w&#322;&#261;czana je&#347;li zachodzi mo&#380;liwo&#347;&#263; routowania
poszczeg&#243;lnych pakiet&#243;w r&#243;&#380;nymi &#347;cie&#380;kami. Niekt&#243;re systemy
operacyjne potrafi&#261; defragmentowa&#263; pakiety wysy&#322;ane przez kernel,
Linux z iptables i modu&#322;em &#347;ledzenia po&#322;&#261;cze&#324; jest jednym z
przyk&#322;ad&#243;w. Uruchamiaj&#261;c skanowanie mo&#380;na pods&#322;ucha&#263; za pomoc&#261;
sniffera takiego jak Ethereal, czy wychodz&#261;ce pakiety s&#261; rzeczywi&#347;cie
pofragmentowane. Je&#347;li system powoduje tego typu problemy, mo&#380;na
wypr&#243;bowa&#263; opcje <option>--send-eth</option>, kt&#243;ra pomija stos
TCP/IP i wysy&#322;a bezpo&#347;renio ramki ethernetowe.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-D &lt;decoy1 [,decoy2][,ME],...&gt;</option>
(Ukrywaj skanowanie za pomoc&#261; innych host&#243;w)
</term>
<listitem>
<para>Powoduje skanowanie, wykrywane jako przychodz&#261;ce z kilku miejsc
r&#243;wnocze&#347;nie. System IDS mo&#380;e wykry&#263; 5-10 r&#243;&#380;nych skanowa&#324; z r&#243;&#380;nych
adres&#243;w, jednak nie b&#281;dzie w stanie oceni&#263; kt&#243;ry z nich jest
prawdziwym &#378;r&#243;d&#322;em pochodzenia, a kt&#243;re tylko niewinnymi zas&#322;onami.
Chocia&#380; metoda ta mo&#380;e zosta&#263; rozpoznana poprzez &#347;ledzenie &#347;cie&#380;ki
pakiet&#243;w na routerach i innych aktywnych mechanizm&#243;w, og&#243;lnie jest
efektywn&#261; technik&#261; na ukrywanie swojego adresu IP.</para>
<para>Podwaj&#261;c list&#281; poszczeg&#243;lnych host&#243;w-zas&#322;on, trzeba je
oddzieli&#263; przecinkami, mo&#380;na r&#243;wnie&#380; na tej li&#347;cie umie&#347;cic
<literal moreinfo="none">ME</literal> oznaczaj&#261;ce pozycj&#281; w&#322;asnego
adresu IP na li&#347;cie. W przypadku wykorzystania przynajmniej 6-tej
pozycji na li&#347;cie dla w&#322;asnego IP, wiele popularnych system&#243;w
wykrywaj&#261;cych skanowania (na przyk&#322;ad scanlogd firmy Solar Designer)
nawet nie poka&#380;e prawdziwego &#378;r&#243;d&#322;a pochodzenia pakiet&#243;w na li&#347;cie
atak&#243;w. Je&#347;li <literal moreinfo="none">ME</literal> nie zostanie
dodane, Nmap umie&#347;ci je losowo na li&#347;cie.</para>
<para>Nale&#380;y zwr&#243;ci&#263; uwag&#281;, ze hosty-przykrywki powinny by&#263; dost&#281;pne,
inaczej b&#281;dzie mo&#380;na &#322;atwo wykry&#263; host skanuj&#261;cy i &#380;e mo&#380;na niechc&#261;cy
dokona&#263; ataku SYN flood na hosty skanowane. Bezpieczniej jest u&#380;ywa&#263;
adres&#243;w IP zamiast nazw system&#243;w-przykrywek, bo nie zostawi to
informacji w logach ich serwera nazw.</para>
<para>Przykrywki s&#261; u&#380;ywane zar&#243;wno przy pocz&#261;tkowym skanowaniu ping
(z wykorzystaniem ICMP, SYN ACK itp), podczas skanowania port&#243;w jak i
przy wykrywaniu systemu operacyjnego. Technika ta nie dzia&#322;a podczas
wykrywania wersji i skanowania metod&#261; connect().</para>
<para>U&#380;ywanie zbyt wielu adres&#243;w host&#243;w-przykrywek znacznie spowalnia
skanowanie i mo&#380;e nawet spowodowa&#263; zmniejszenie dok&#322;adno&#347;ci. Dodatkowo
niekt&#243;rzy dostawcy us&#322;ug odfiltrowuj&#261; pakiety podszywaj&#261;ce si&#281; pod
adresy z innych sieci, jednak wielu nie robi tego wcale.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-S &lt;adres_ip&gt;</option> (Ustawienie adresu nadawcy)
</term>
<listitem>
<para>W niekt&#243;rych przypadkach Nmap nie potrafi ustali&#263; w&#322;a&#347;ciwego
adresu nadawcy (i wy&#347;wietli stosowny komunikat). W takim przypadku
nale&#380;y za pomoc&#261; opcji <option>-S</option> poda&#263; adres lokalnego
interfejsu przez kt&#243;ry maj&#261; by&#263; wysy&#322;ane pakiety.</para>
<para>Inn&#261; mo&#380;liwo&#347;ci&#261; tej opcji jest podmiana adresu nadawcy tak,
by cel skanowania uwa&#380;a&#322;, &#380;e skanuje go <emphasis>kto&#347; inny</emphasis>.
Wyobra&#378; sobie, ze firm&#281; nagle zacznie skanowa&#263; konkurencja! W
przypadku takiego u&#380;ycia, zwykle b&#281;dzie wymagana opcja
<option>-e</option>, a zalecana r&#243;wnie&#380; <option>-P0</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-e &lt;interfejs&gt;</option> (U&#380;yj wybranego interfejsu)
</term>
<listitem>
<para>Informuje Nmapa przez kt&#243;ry interfejs ma wysy&#322;a&#263; i odbiera&#263;
pakiety. Nmap powinien wykry&#263; go automatycznie, ale je&#347;li mu si&#281;
nie uda, mo&#380;na to zrobi&#263; r&#281;cznie.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--source-port &lt;numerportu&gt;;</option>
<option>-g &lt;numerportu&gt;</option> (U&#380;ywaj podanego portu &#378;r&#243;d&#322;owego)
</term>
<listitem>
<para>Jednym z najcz&#281;&#347;ciej spotykanych problem&#243;w konfiguracyjnych jest ufanie
danym przychodz&#261;cym z okre&#347;lonego portu &#378;r&#243;d&#322;owego. &#321;atwo jest zrozumie&#263;, czemu
tak si&#281; dzieje. Administrator instaluje nowiusie&#324;ki system zaporowy, kt&#243;rego
jedyn&#261; wad&#261; s&#261; zg&#322;oszenia od niepocieszonych u&#380;ytkownik&#243;w, kt&#243;rym nagle
przesta&#322;y dzia&#322;a&#263; aplikacje. Przyk&#322;adem mo&#380;e by&#263; DNS, poniewa&#380; odpowiedzi na
zapytania z zewn&#281;trznych serwer&#243;w przesta&#322;y dochodzi&#263; do sieci. Innym
przyk&#322;adem jest FTP, przy stosowaniu aktywnych po&#322;&#261;cze&#324; zewn&#281;trzne serwery
pr&#243;buj&#261; utworzy&#263; po&#322;&#261;czenia powrotne do klienta &#380;&#261;daj&#261;cego przes&#322;ania pliku.
</para>
<para>Bezpieczne rozwi&#261;zanie dla tych problem&#243;w istnieje, cz&#281;sto w formie
aplikacyjnych serwer&#243;w proxy lub analizy protoko&#322;u przez systemy zaporowe.
Niestety istniej&#261; r&#243;wnie&#380; inne &#322;atwiejsze, ale i mniej bezpieczne
rozwi&#261;zania. Wielu administrator&#243;w wpada w pu&#322;apk&#281; zak&#322;adaj&#261;c, &#380;e dane
przychodz&#261;ce z portu 53 s&#261; zawsze odpowiedziami serwera DNS, a z 20 aktywnymi
po&#322;&#261;czeniami FTP i zezwalaj&#261;c na przechodzenie takiego ruchu przez system
zaporowy. Cz&#281;sto zak&#322;adaj&#261;, &#380;e &#380;aden atakuj&#261;cy nie spr&#243;buje wykorzysta&#263;
takiej luki. Zda&#380;a si&#281; r&#243;wnie&#380;, &#380;e problem taki zostaje wprowadzony do
konfiguracji jako tymczasowe rozwi&#261;zanie, jednak zapominaj&#261; o jego zmianie
na bardziej bezpieczne.</para>
<para>Przepracowani administratorzy nie s&#261; jedynymi, kt&#243;rzy wpadaj&#261; w tak&#261;
pu&#322;apk&#281;. Wiele komercyjnych produkt&#243;w jest dostarczanych z podobnymi
problemami. Zdarzy&#322;o si&#281; to nawet firmie Microsoft, kt&#243;rej filtry IPsec
dostarczone z Windows 2000 i XP zawieraj&#261; regu&#322;&#281; wpuszczaj&#261;c&#261; ca&#322;y ruch
TCP i UDP pochodz&#261;cy z portu 88 (Kerberos). Innym dobrze znanym przyk&#322;adem jest
Zone Alarm personal firewall, kt&#243;ry do wersji 2.1.25 w&#322;&#261;cznie nie filtrowa&#322;
pakiet&#243;w UDP z port&#243;w 53 (DNS) i 67 (DHCP).</para>
<para>Nmap oferuje dwie ekwiwalentne opcje <option>-g</option> i
<option>--source-port</option> pozwalaj&#261;ce na wykorzystanie opisanej wy&#380;ej
funkcjonalno&#347;ci poprzez podanie numeru portu z kt&#243;rego wysy&#322;a dane,
o ile jest to tylko mo&#380;liwe. Nmap musi u&#380;ywa&#263; r&#243;&#380;nych numer&#243;w port&#243;w dla
poprawnego dzia&#322;ania niekt&#243;rych test&#243;w wykrywaj&#261;cych system operacyjny,
zapytania DNS r&#243;wnie&#380; ignoruj&#261; opcj&#281; <option>--source-port</option>, poniewa&#380;
Nmap wykorzystuje do tego biblioteki systemowe. Wi&#281;kszo&#347;&#263; typ&#243;w skanowania
TCP, w&#322;&#261;czaj&#261;c skanowanie SYN obs&#322;uguje t&#281; opcj&#281; we wszystkich przypadkach,
podobnie jak i UDP.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--data-length &lt;rozmiar&gt;</option> (Dodawaj losowe dane
do wysy&#322;anych pakiet&#243;w)
</term>
<listitem>
<para>Domy&#347;lnie Nmap wysy&#322;a pakiety o minimalnej wielko&#347;ci
zawieraj&#261;ce jedynie sam nag&#322;&#243;wek. Pakiety TCP maj&#261; 40 bajt&#243;w, a ICMP
tylko 28. Ta opcja pozwala do&#322;&#261;cza&#263; do wi&#281;kszo&#347;ci pakiet&#243;w losowe
dane o podanym rozmiarze. Pakiety u&#380;ywane do detekcji systemu
operacyjnego (<option>-O</option>) pozostaj&#261; nie zmienione, ale przy
wi&#281;kszo&#347;ci pakiet&#243;w ping i skanowania port&#243;w opcja ta jest
wykorzystywana. Powi&#281;kszanie pakiet&#243;w spowalnia proces skanowania,
jednocze&#347;nie czyni&#261;c go mniej podejrzanym.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--ttl &lt;warto&#347;&#263;&gt;</option> (Ustaw czas &#380;ycia pakietu IP)
</term>
<listitem>
<para>Ustawia czas &#380;ycia (TTL) pakiet&#243;w na podan&#261; warto&#347;&#263;.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--randomize-hosts</option> (Losowanie kolejno&#347;ci skanowania host&#243;w)
</term>
<listitem>
<para>Opcja powoduje w&#322;&#261;czenie losowania kolejno&#347;ci host&#243;w w ka&#380;dej
grupie do 8096 host&#243;w przed ich skanowaniem. Zachowanie takie czyni
skanowanie mniej oczywistym dla wielu system&#243;w monitoruj&#261;cych sieci,
zw&#322;aszcza w po&#322;&#261;czeniu z opcj&#261; spowalniaj&#261;c&#261; skanowanie. Mo&#380;liwe jest
losowanie z jeszcze wi&#281;kszych grup, poprzez zmian&#281; sta&#322;ej
PING_GROUP_SZ w pliku <filename moreinfo="none">nmap.h</filename>
i rekompilacji. Innym rozwi&#261;zaniem jest wygenerowanie listy adres&#243;w
IP za pomoc&#261; opcji lista skanowania (<option>-sL -n -oN
<replaceable>nazwapliku</replaceable></option>) i losowemu
pomieszaniu adres&#243;w na niej za pomoc&#261; skryptu Perla, oraz podaniu jej
Nmapowi za pomoc&#261; opcji <option>-iL</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--spoof-mac &lt;adres mac, prefiks, lub nazwa producenta
&gt;</option> (Podmieniaj adres MAC)
</term>
<listitem>
<para>Podaje Nmapowi adres MAC z u&#380;yciem kt&#243;rego b&#281;d&#261; wysy&#322;ane
wszystkie pakiety ethernet. Opcja w&#322;&#261;cza r&#243;wnie&#380; automatycznie
<option>--send-eth</option> dla uzyskania pewno&#347;ci wysy&#322;ania
pakiet&#243;w na poziomie ethernetu. Podany adres MAC mo&#380;e przyjmowa&#263;
wiele postaci. Je&#347;li zostanie podany znak <quote>0</quote>,
Nmap wybierze kompletnie losowy adres MAC na czas trwania danej
sesji. Podanie parzystej ilo&#347;ci cyfr heksadecymalnych
(mog&#261; by&#263; oddzielone dwukropkami), spowoduje wykorzystanie jej jako
adresu MAC, przy czym je&#347;li podano mniej ni&#380; 12 cyfr szestnastkowych,
Nmap wype&#322;ni pozosta&#322;o&#347;&#263; 6 bajt&#243;w losowymi warto&#347;ciami. Je&#347;li
podany ci&#261;g nie jest 0 lub liczb&#261; heksadecymaln&#261;, Nmap poszuka w
pliku <filename moreinfo="none">nmap-mac-prefixes</filename> nazwy
producenta zawieraj&#261;cego podany ci&#261;g (du&#380;e i ma&#322;e litery nie s&#261;
rozr&#243;&#380;niane) i je&#347;li znajdzie, u&#380;yje identyfikatora producenta
OUI (3 bajty) wype&#322;niaj&#261;c pozosta&#322;e 3 bajty losowo.
Przyk&#322;ady poprawnych argument&#243;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&#322;anie pakiet&#243;w z nieprawid&#322;ow&#261; sum&#261; kontroln&#261; TCP/UDP)
</term>
<listitem>
<para>Powoduje wstawianie do nag&#322;&#243;wk&#243;w wysy&#322;anych pakiet&#243;w
nieprawid&#322;owych sum kontrolnych. Jako &#380;e prawie ka&#380;dy stos IP
odrzuci tego typu pakiety, otrzymana odpowied&#378; najprawdopodobniej
pochodzi od systemu zaporowego lub IDS, kt&#243;re nie przejmuj&#261; si&#281;
sumami kontrolnymi. Dok&#322;adniejszy opis tej techniki znajduje si&#281;
pod adresem <ulink url="https://nmap.org/p60-12.txt"/></para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="man-output">
<title>Wyj&#347;cie</title>
<para>Ka&#380;de narz&#281;dzie jest tylko tak dobre, jak wyniki kt&#243;re si&#281; za jego
pomoc&#261; uzyskuje. Z&#322;o&#380;one testy i algorytmy nie s&#261; nic warte, je&#347;li ich
wyniki nie s&#261; zaprezentowane w odpowiedniej formie. Z zwi&#261;zku z tym, &#380;e
u&#380;ytkownicy Nmapa u&#380;ywaj&#261; go w r&#243;&#380;ny spos&#243;b, tak&#380;e w po&#322;&#261;czeniu z innymi
narz&#281;dziami, nie ma jednego formatu, kt&#243;ry by wszystkich zadowoli&#322;. Dlatego
te&#380; Nmap oferuje kilka format&#243;w, w&#322;&#261;czaj&#261;c w to tryb interaktywny i tryb
XML do lepszej integracji z innymi programami.</para>
<para>Dodatkowo poza r&#243;&#380;nymi formatami wyj&#347;ciowymi, Nmap posiada opcje
pozwalaj&#261;ce na kontrolowanie poziomu szczeg&#243;&#322;owo&#347;ci dostarczanych informacji
oraz komunikat&#243;w do &#347;ledzenia b&#322;&#281;d&#243;w. Wyniki mog&#261; by&#263; przekazywane do
standardowego wyj&#347;cia jak i do plik&#243;w (w trybie zast&#281;powania lub do&#322;&#261;czania).
Wygenerowane pliki mog&#261; r&#243;wnie&#380; by&#263; wykorzystywane do wznowienia przerwanych
skanowa&#324;.</para>
<para>Nmap pozwala na uzyskanie pi&#281;ciu r&#243;&#380;nych format&#243;w raport&#243;w. Domy&#347;lny
to <literal moreinfo="none">format interaktywny</literal> i jest
wykorzystywany w po&#322;&#261;czeniu ze standardowym wyj&#347;ciem. Jest tak&#380;e format
<literal moreinfo="none">format normalny</literal>, podobny do
<literal moreinfo="none">interaktywnego</literal>, jednak wy&#347;wietla mniej
rutynowych informacji i ostrze&#380;e&#324;, poniewa&#380; jest raczej przewidziany do
po&#378;niejszej analizy, ni&#380; do interaktywnego ogl&#261;dania w trakcie skanowania.</para>
<para>Tryb XML jest jednym z najwa&#380;niejszych, jako &#380;e mo&#380;e zosta&#263;
przekonwertowany na HTML lub bezporoblemowo przetworzony przez inne programy,
takie jak graficzne interfejsy u&#380;ytkownika lub zaimportowany do bazy
danych.</para>
<para>Pozosta&#322;e dwa najmniej skomplikowane to format pozwalaj&#261;cy na &#322;atwe
przetwarzanie za pomoc&#261; wyra&#380;e&#324; regularnych (grep), kt&#243;ry zawiera wi&#281;kszo&#347;&#263;
informacji o ho&#347;cie w jednej linii, oraz format
<literal moreinfo="none">sCRiPt KiDDi3 0utPUt</literal>.</para>
<para>Podczas gdy format interaktywny jest domy&#347;lny i nie posiada dodatkowych
opcji, pozosta&#322;e cztery formaty u&#380;ywaj&#261; tej samej sk&#322;adni w postaci jednego
argumentu, b&#281;d&#261;cego nazw&#261; pliku do kt&#243;rego maj&#261; zosta&#263; zapisane wyniki.
Mo&#380;liwe jest podawanie wielu format&#243;w jednocze&#347;nie, jednak ka&#380;dy z nich mo&#380;e
by&#263; podany tylko raz. Na przyk&#322;ad, je&#347;li chcesz zapisa&#263; format normalny do
p&#243;&#378;niejszego przegladania i r&#243;wnocze&#347;nie XML do przetwarzania przez inne
programy, u&#380;ywamy sk&#322;adni <option>-oX myscan.xml -oN myscan.nmap</option>.
W przyk&#322;adach z tej dokumentacji dla u&#322;atwienia u&#380;ywamy prostych nazw, takich
jak <literal moreinfo="none">myscan.xml</literal>, jednak w codzinnym u&#380;yciu
zalecane jest stosowanie nazw bardziej opisowych. Nazwy te mog&#261; by&#263; dowolnie
wybierane, zgodnie z w&#322;asnymi preferencjami, osobi&#347;cie preferuj&#281; d&#322;ugie nazwy
zawieraj&#261;ce dat&#281; skanowania i s&#322;owo lub dwa opisuj&#261;ce skanowanie, umieszczone
w katalogu zawieraj&#261;cym nazw&#281; firmy skanowaniej.</para>
<para>Podczas zapisywania wynik&#243;w do pliku Nmap nadal wy&#347;wietla interaktywn&#261;
form&#281; raportu na standardowe wyj&#347;cie. Przyk&#322;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&#243;wnocze&#347;nie wy&#347;wietlaj&#261;c je w trybie interaktywnym tak, jakby opcja
<option>-oX</option> nie by&#322;a podana. Mo&#380;liwa jest zmiana tego zachowania
poprzez podanie znaku my&#347;lnika (-) zamiast nazwy pliku przy wybranym
formacie, co spowoduje wy&#347;wietlanie go zamiast formy interaktywnej. Tak wi&#281;c
komenda <command moreinfo="none">nmap -oX - cel</command> spowoduje
wy&#347;wietlenie tylko formatu XML na standardowym wyj&#347;ciu stdout. Komunikaty
o powa&#380;nych b&#322;&#281;dach sa nadal wy&#347;wietlane za pomoc&#261; standardowego wyj&#347;cia
b&#322;&#281;d&#243;w stderr.</para>
<para>Inaczej ni&#380; przy innych opcjach, spacja pomi&#281;dzy opcj&#261; (tak&#261; jak
<option>-oX</option>), a nazw&#261; pliku lub my&#347;lnika nie jest wymagana.
Je&#347;li spacja zostanie pomini&#281;ta przy opcjach takich jak
<option>-oG-</option> lub <option>-oXscan.xml</option>, z powod&#243;w
kompatybilno&#347;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&#243;wnie&#380; opcje pozwalaj&#261;ce na ustalenie poziomu
szczeg&#243;&#322;owo&#347;ci podawanych informacji jak r&#243;wnie&#380; pozwalaj&#261;ce na
do&#322;&#261;czanie wynik&#243;w do ju&#380; istniej&#261;cych plik&#243;w. Opcje te zosta&#322;y opisane
poni&#380;ej.</para>
<variablelist><title>Formaty wyj&#347;ciowe Nmapa</title>
<varlistentry>
<term>
<option>-oN &lt;nazwapliku&gt;</option> (Format normalny)</term>
<listitem>
<para>Powoduje zapis w <literal moreinfo="none">formacie normalnym</literal>
do wskazanego pliku. Jak napisano wy&#380;ej, format ten r&#243;&#380;ni si&#281; nieco od
<literal moreinfo="none">formatu interaktywnego</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-oX &lt;nazwapliku&gt;</option> (Format XML)</term>
<listitem>
<para>Powoduje zapis w <literal moreinfo="none">formacie XML</literal>
do wskazanego pliku. Nmap do&#322;&#261;cza definicje formatu dokumentu (DTD),
kt&#243;ry pozwala innym programom na weryfikacj&#281; zawarto&#347;ci tego pliku.
Funkcja ta jest g&#322;&#243;wnie przeznaczona do wykorzystania przez
oprogramowanie dodatkowe, jednak mo&#380;e pom&#243;c w r&#281;cznej analizie
zawartych danych. DTD opisuje jakie elementy XML mog&#261; by&#263; legalnie
uzywane w pliku i cz&#281;sto podaje jakie warto&#347;ci mog&#261; przyjmowa&#263;
poszczeg&#243;lne znaczniki. Zawsze aktualna DTD wersja jest dost&#281;pna pod
adresem <ulink url="https://nmap.org/data/nmap.dtd"/>.</para>
<para>XML jest stabilnym formatem, kt&#243;ry mo&#380;e by&#263; &#322;atwo przetwarzany
przez inne programy. Darmowe biblioteki do przetwarzania XML s&#261;
dost&#281;pne dla wi&#281;kszo&#347;ci j&#281;zyk&#243;w programowania, takich jak C/C++, Perl,
Python czy Java. Napisano nawet wiele procedur dostosowanych
specjalnie do potrzeb Nmapa. Przyk&#322;adami s&#261;
<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&#347;ci du&#380;ych aplikacji korzystaj&#261;cych z
Nmapa preferowany jest w&#322;a&#347;nie format XML.</para>
<para>W formacie XML jest r&#243;wnie&#380; opisany styl XSL, kt&#243;ry mo&#380;e zosta&#263;
wykorzystany do konwersji do HTML. Najprostrzym sposobem jest po
prostu wczytanie pliku XML do przegl&#261;darki internetowej, takiej jak
Firefox czy IE. Domy&#347;lnie zadzia&#322;a to tylko na komputerze na kt&#243;rym
by&#322; uruchamiany Nmap (lub skonfigurowanym podobnie), z powodu
umieszczenia &#347;cie&#380;ki do pliku <filename moreinfo="none">nmap.xsl</filename>
w&#322;a&#347;ciwej dla danego systemu. Za pomoc&#261; opcji <option>--webxml</option>
lub <option>--stylesheet</option> mo&#380;na utworzy&#263; przeno&#347;ny raport
XML, mo&#380;liwy do obejrzenia w formacie HTML na ka&#380;dym komputerze
pod&#322;&#261;czonym do Internetu.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-oS &lt;nazwapliku&gt;</option> (Format ScRipT KIdd|3)</term>
<listitem>
<para>Format script kiddie jest podobny do interaktywnego, jednak jest
dodatkowo przetworzony na potrzeby l33t HaXXorZ, kt&#243;rzy nie byli zadowoleni
z domy&#347;lnego, uporz&#261;dkowanego formatu Nmapa. Osoby bez poczucia humoru
powinny wiedzie&#263; przed zarzucaniem mi <quote>pomagania script kiddies
</quote>, &#380;e opcja ta jest tylko &#380;artem, a nie pomoc&#261;.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-oG &lt;nazwapliku&gt;</option> (Format "grepowalny")</term>
<listitem>
<para>Ten format zosta&#322; opisany jako ostatni, jako &#380;e jest ju&#380; przestarza&#322;y.
Format XML jest du&#380;o lepszy i jest prawie tak samo wygodny dla zaawansowanych
u&#380;ytkownik&#243;w. XML jest standardem, do kt&#243;rego napisano dziesi&#261;tki bibliotek,
podczas gdy format grepowalny jest moim osobistym wymys&#322;em. XML pozwala
r&#243;wnie&#380; na &#322;atwe rozszerzanie o nowe funkcje Nmapa w miar&#281; ich dodawania,
podczas gdy w formacie grepowalnym musz&#261; one by&#263; pomijane z powodu braku miejsca.
</para>
<para>Niezale&#380;nie od tego, format ten jest nadal ca&#322;kiem popularny. Jest
prostym formatem opisuj&#261;cym ka&#380;dy host w oddzielnej linii i umo&#380;liwiaj&#261;cy
bardzo proste wyszukiwanie i przetwarzanie za pomoc&#261; standardowych narz&#281;dzi
system&#243;w UNIX takich jak grep, awk, cut, sed, diff i Perl. Format ten jest
wygodny do szybkiego odnajdywania potrzebnych danych, na przyk&#322;ad host&#243;w
z otwartym portem SSH lub u&#380;ywaj&#261;cych systemu Solaris i jest to mo&#380;liwe
za pomoc&#261; wycinania interesuj&#261;cych informacji za pomoc&#261; prostych polece&#324;
awk czy cut.</para>
<para>Format grepowalny sk&#322;ada sie z linii komentarzy (rozpoczynaj&#261;cych si&#281;
od znaku #) i linii wynik&#243;w. Linia wynik&#243;w sk&#322;ada si&#281; z sze&#347;ciu p&#243;l,
oddzielonych znakami tabulacji i przecinkami. Polami tymi s&#261;
<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&#380;niejszymi z tych p&#243;l s&#261; najcz&#281;&#347;ciej pola
<literal moreinfo="none">Ports</literal>, kt&#243;re zawieraj&#261; informacje o
interesuj&#261;cych portach, w postaci listy oddzielonej przecinkami. Ka&#380;da pozycja
na li&#347;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&#322;adny opis formatu grepowalnego
przekracza zakres tej dokumentacji i jest dost&#281;pny pod adresem
<ulink url="http://www.unspecific.com/nmap-oG-output"/>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-oA &lt;nazwa&gt;</option> (Wyj&#347;cie we wszystkich formatach)</term>
<listitem><para>
Dla wygody mo&#380;na poda&#263; opcj&#281; <option>-oA<replaceable>nazwa</replaceable></option>
do zapisywania wynik&#243;w w formacie normalnym, XML i grepowalnym
r&#243;wnocze&#347;nie. Wyniki zostan&#261; 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&#243;w, nazwa mo&#380;e zosta&#263; poprzedzona scie&#380;k&#261;, na przyk&#322;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&#243;&#322;owo&#347;ci i opcje diagnozowania b&#322;&#281;d&#243;w</title>
<varlistentry>
<term>
<option>-v</option> (Podwy&#380;szenie poziomu raportowania)
</term>
<listitem>
<para>Podwy&#380;szenie poziomu raportowania powoduje wy&#347;wietlanie przez
Nmapa wi&#281;kszej ilo&#347;ci informacji na temat post&#281;p&#243;w skanowania.
Otwarte porty s&#261; pokazywane zaraz po ich wykryciu, podawany jest
tak&#380;e przewidywany czas zako&#324;czenia skanowania w przypadku kiedy Nmap
zak&#322;ada, &#380;e test potrwa d&#322;u&#380;ej ni&#380; kilka minut. Dwukrotne u&#380;ycie tej
opcji powoduje dalsze powi&#281;kszenie poziomu szczeg&#243;&#322;owo&#347;ci, trzykrotne
i dalsze nie daj&#261; ju&#380; &#380;adnego efektu.</para>
<para>Wi&#281;kszo&#347;&#263; zmian dotyczy trybu interaktywnego, niekt&#243;re odnosz&#261;
si&#281; tak&#380;e do trybu normalnego i script kiddie. Pozosta&#322;e formaty s&#261;
przystosowane do przetwarzania przez maszyny, wi&#281;c Nmap mo&#380;e zawsze
podawa&#263; szczeg&#243;&#322;owe informacje bez zmniejszania czytelno&#347;ci dla
cz&#322;owieka. S&#261; jednak i drobne r&#243;&#380;nice w innych formatach, na przyk&#322;ad
w formacie grepowalnym linia komentarza zawieraj&#261;ca list&#281; skanowanych
host&#243;w jest dodawana tylko w trybie podwy&#380;szonej szczeg&#243;&#322;owo&#347;ci, ze
wzgl&#281;du na swoj&#261; dosy&#263; znaczn&#261; d&#322;ugo&#347;&#263;.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-d [poziom]</option> (Ustawianie poziomu &#347;ledzenia b&#322;&#281;d&#243;w)
</term>
<listitem>
<para>Je&#347;li dost&#281;pne poziomy szczeg&#243;&#322;owo&#347;ci nie dostarczaj&#261; wystarczaj&#261;cej
ilo&#347;ci informacji, opcje &#347;ledzenia b&#322;&#281;d&#243;w mog&#261; Ci&#281; wrecz nimi zasypa&#263;!
Podobnie jak w przypadku wykorzystania opcji podwy&#380;szania szczeg&#243;&#322;owo&#347;ci
(<option>-v</option>), opcja w&#322;&#261;czaj&#261;ca umowanie nazwane &#347;ledzenie b&#322;&#281;d&#243;w,
w&#322;&#261;czana jest za pomoc&#261; parametru (<option>-d</option>) i mo&#380;liwe jest jej
wielokrotne dodawanie powi&#281;kszaj&#261;ce skutek. Alternatywnie mo&#380;na poda&#263; poziom
jako argument do opcji <option>-d</option>. Na przyk&#322;ad
<option>-d9</option> ustawia poziom na dziewi&#281;&#263;. Jest to najwy&#380;szy mo&#380;liwy
poziom produkuj&#261;cy setki linii, o ile nie jest to proste skanowanie kilku
port&#243;w i host&#243;w.</para>
<para>Format ten jest u&#380;yteczny je&#347;li podejrzewamy istnienie b&#322;&#281;du w Nmapie
lub je&#347;li po prostu chcemy wiedzie&#263; co Nmap robi i czemu. Jako &#380;e opcja
ta jest przeznaczona g&#322;&#243;wnie dla autor&#243;w, wy&#347;wietlane linie nie zawsze
s&#261; do ko&#324;ca zrozumia&#322;e. Mo&#380;na otrzyma&#263; na przyk&#322;ad co&#347; w stylu:
<computeroutput moreinfo="none">Timeout vals: srtt: -1 rttvar: -1 to:
1000000 delta 14987 ==&gt; srtt: 14987 rttvar: 14987 to: 100000</computeroutput>.
Je&#347;li nie rozumiesz takiego zapisu, mo&#380;esz go po prostu zignorowa&#263;, poszuka&#263;
w kodzie &#378;r&#243;d&#322;owym lub poprosi&#263; o pomoc na li&#347;cie dyskusyjnej tw&#243;rc&#243;w Nmapa
(nmap-dev). Niekt&#243;re linie s&#261; dosy&#263; czytelne, ale staj&#261; si&#281; coraz bardziej
skomplikowane wraz ze wzrostem poziomu &#347;ledzenia b&#322;&#281;d&#243;w.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--packet-trace</option> (&#346;ledzenie wysy&#322;anych i odbieranych pakiet&#243;w)
</term>
<listitem>
<para>Powoduje wy&#347;wietlanie przez Nmapa kr&#243;tkiej informacji na temat
ka&#380;dego wysy&#322;anego i odbieranego pakietu. Opcja ta jest cz&#281;sto
u&#380;ywana podczas &#347;ledzenia b&#322;&#281;d&#243;w, ale zawiera r&#243;wnie&#380; warto&#347;ciowe
informacje dla nowych u&#380;ytkownik&#243;w, pozwalaj&#261;ce zrozumie&#263; co Nmap
robi. Unikni&#281;cie wy&#347;wietlania tysi&#281;cy linii mo&#380;liwe jest poprzez
ograniczenie ilo&#347;ci port&#243;w do skanowania, na przyk&#322;ad za pomoc&#261;
<option>-p20-30</option>. Je&#347;li chcesz zobaczy&#263; tylko to, co dzieje
si&#281; w trakcie wykrywania wersji, u&#380;yj raczej opcji
<option>--version-trace</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--iflist</option> (Pokazuj interfejsy i tablic&#281; routingu)
</term>
<listitem>
<para>Wy&#347;wietla list&#281; interfejs&#243;w i tablice routingu wykryte przez
Nmapa. Opcja jest przydatna przy &#347;ledzeniu b&#322;&#281;d&#243;w w routingu lub
niepoprawnym wykrywaniu typ&#243;w interfejs&#243;w (na przyk&#322;ad je&#347;li Nmap
traktuje po&#322;&#261;czenie PPP jako ethernet).</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist><title>Pozosta&#322;e opcje</title>
<varlistentry>
<term>
<option>--append-output</option> (Do&#322;&#261;czaj wyniki do pliku)
</term>
<listitem>
<para>Je&#347;li zostanie podana nazwa pliku jako argument do opcji
takiej jak <option>-oX</option> czy <option>-oN</option>,
domy&#347;lnie poprzednia zawarto&#347;&#263; pliku zostanie usun&#281;ta i zast&#261;piona
now&#261;. Je&#347;li zachodzi potrzeba zachowania poprzedniej zawarto&#347;ci
pliku i do&#322;&#261;czenie nowych wynik&#243;w, nale&#380;y doda&#263; opcj&#281;
<option>--append-output</option>. Potraktowane tak zostan&#261; wszystkie
podane pliki. Opcja nie dzia&#322;a zbyt dobrze z formatem XML, jako &#380;e
wynikowy plik nie mo&#380;e by&#263; po&#380;niej bezb&#322;&#281;dnie przetworzony bez r&#281;cznych
poprawek.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--resume &lt;nazwapliku&gt;</option> (Wznowienie przerwanego skanowania)
</term>
<listitem>
<para>Niekt&#243;re skanowania Nmapa mog&#261; trwa&#263; bardzo d&#322;ugo, nawet kilka
dni. Problem pojawia si&#281; wtedy, kiedy nie jest mo&#380;liwe ci&#261;g&#322;e
prowadzenie skanowania, na przyk&#322;ad z powodu potrzeby dzia&#322;ania tylko
w godzinach pracy, problem&#243;w z dost&#281;pno&#347;ci&#261; sieci, (nie)przypadkowym
restartem komputera na kt&#243;rym dzia&#322;a Nmap lub wykonaniem przez niego
nieprawid&#322;owej operacji. U&#380;ytkownik mo&#380;e r&#243;wnie&#380; przerwa&#263; w ka&#380;dej
chwili skanowanie za pomoc&#261; kombinacji
<keycap moreinfo="none">ctrl-C</keycap>. W takich przypadkach ponowne
rozpoczynanie test&#243;w od pocz&#261;tku mo&#380;e nie by&#263; po&#380;&#261;dane. Na szcz&#281;&#347;cie,
je&#347;li pozosta&#322;y wyniki przerwanych test&#243;w w formacie normalnym
(<option>-oN</option>) lub grepowalnym (<option>-oG</option>),
mo&#380;liwe jest ich wznowienie od momentu przerwania. S&#322;u&#380;y do tego
opcja <option>--resume</option> dla kt&#243;rej argumentem musi byc
nazwa pliku w formacie normalnym lub grepowalnym. W tym przypadku nie
jest mo&#380;liwe podawanie &#380;adnych innych opcji, jako &#380;e Nmap przetworzy
podany plik i odtworzy wcze&#347;niej podane opcje. Po prostu uruchom
<command moreinfo="none">nmap --resume
<replaceable>nazwapliku</replaceable></command>, a Nmap do&#322;&#261;czy do
wskazanego pliku nowe wyniki. Opcja ta nie obs&#322;uguje formatu XML,
jako &#380;e &#322;&#261;czenie dw&#243;ch oddzielnych wynik&#243;&#281; skanowa&#324; w jeden plik
jest dosy&#263; trudne.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--stylesheet &lt;&#347;cie&#380;ka lub URL&gt;</option> (Styl XSL do
transformacji formatu XML)
</term>
<listitem>
<para>Nmap posiada domy&#347;lny styl XSL do przegl&#261;dania lub konwersji do
formatu XML w pliku <filename moreinfo="none">nmap.xsl</filename>.
Plik wyj&#347;ciowy XML zawiera dyrektyw&#281;
<literal moreinfo="none">xml-stylesheet</literal> wskazuj&#261;c&#261; na
<filename moreinfo="none">nmap.xml</filename>, ze &#347;cie&#380;k&#261; do domy&#347;lej
lokalizacji tego pliku (lub bierz&#261;cego katalogu pod Windows). Dzi&#281;ki
temu wystarczy po prostu za&#322;adowa&#263; plik XML Nmapa do przegl&#261;darki,
kt&#243;ra sama odczyta sobie plik
<filename moreinfo="none">nmap.xsl</filename> i u&#380;yje go do
prawid&#322;owego wy&#347;wietlenia wynik&#243;w. Mo&#380;liwe jest r&#243;wnie&#380; u&#380;ycie innego
stylu poprzez podanie nazwy pliku jako argumentu dla opcji
<option>--stylesheet</option>. W tym przypadku konieczne jest podanie
pe&#322;nej &#347;cie&#380;ki lub adresu URL. Typowe wywo&#322;anie ma posta&#263;
<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&#322;adnie
to samo, b&#281;d&#261;c &#322;atwiejsz&#261; do wpisania i zapami&#281;tania. U&#380;ywanie pliku
XSL ze strony Insecure.Org u&#322;atwia przegl&#261;danie wynik&#243;w na systemie
nie posiadaj&#261;cym zainstalowanego Nmapa (czyli nie posiadaj&#261;cym pliku
<filename moreinfo="none">nmap.xsl</filename>). Podawanie adresu URL
jest wygodniejsze, jednak domy&#347;lnie u&#380;ywany jest plik lokalny ze
wzgl&#281;du za zachowanie poufno&#347;ci u&#380;ytkownika.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--webxml</option> (U&#380;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&#380;ywaj deklaracji stylu XSL w formacie XML)
</term>
<listitem>
<para>Dodanie tej opcji powoduje wy&#322;&#261;czenie do&#322;&#261;czania stylu XSL
do pliku z wynikami w formacie XML. Zostaje pomini&#281;ta dyrektywa
<literal moreinfo="none">xml-stylesheet</literal>.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="man-misc-options">
<title>R&#243;&#380;ne opcje</title>
<para>Sekcja ta opisuje istotne (i nie istotne) opcje, kt&#243;re nie pasowa&#322;y
gdzie indziej.</para>
<variablelist>
<varlistentry>
<term>
<option>-6</option> (W&#322;&#261;czenie skanowania IPv6)
</term>
<listitem>
<para>Od roku 2002 Nmap obs&#322;uguje IPv6, w zakresie jego
najpopularniejszych funkcji. W szczeg&#243;lno&#347;ci dost&#281;pne jest skanowanie
ping (tylko TCP), connect() i wykrywanie wersji. Sk&#322;adnia opcji
jest taka sama jak zwykle, wystarczy tylko doda&#263; opcj&#281;
<option>-6</option>. Oczywi&#347;cie w przypadku podawania adres&#243;w zamiast
nazw, niezb&#281;dne jest podawanie ich zgodnie ze sk&#322;adni&#261; IPv6.
Jako &#380;e adres mo&#380;e wygl&#261;da&#263; podobnie do
<literal moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>,
zalecane jest u&#380;ywanie nazw host&#243;w. Wyniki poza samym adresem
wygl&#261;daj&#261; tak samo jak i przy innych opcjach.</para>
<para>Adresacja IPv6 nie zaw&#322;adn&#281;&#322;a jeszcze &#347;wiatem, jednak jest
cz&#281;sto wykorzystywana w niekt&#243;rych krajach (zwykle azjatyckich) i
wi&#281;kszo&#347;&#263; obecnych system&#243;w j&#261; obs&#322;uguje. Oczywi&#347;cie do u&#380;ywania
IPv6 musi by&#263; on prawid&#322;owo skonfigurowany i dost&#281;pny zar&#243;wno na
ho&#347;cie skanowanym, jak i skanuj&#261;cym. Je&#347;li dostawca us&#322;ug nie
umo&#380;liwia uzyskania adres&#243;w IP (najcz&#281;&#347;ciej tak w&#322;a&#347;nie jest),
jest du&#380;o dostawc&#243;w darmowych tuneli, kt&#243;re dzia&#322;aj&#261; poprawnie z
Nmapem. Jednymi z lepszych s&#261; dostarczane przez BT Exact i
Hurricane Electric na <ulink url="http://ipv6tb.he.net/"/>. Tunele
6to4 s&#261; innym popularnym i darmowym rozwi&#261;zaniem.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-A</option> (Agresywne opcje skanowania)
</term>
<listitem>
<para>W&#322;&#261;cza dodatkowe zaawansowane i agresywne opcje skanowania.
Aktualnie s&#261; nimi wykrywanie systemu operacyjnego (<option>-O</option>)
i wykrywanie wersji (<option>-sV</option>). Wi&#281;cej opcji by&#263; mo&#380;e
zostanie dodane w przysz&#322;o&#347;ci. G&#322;&#243;wnym celem jest proste w&#322;&#261;czenie
najbardziej popularnych opcji skanowania bez konieczno&#347;ci
zapami&#281;tywania wielu parametr&#243;w. W&#322;&#261;czane s&#261; tylko opcje w&#322;&#261;czaj&#261;ce
okre&#347;lon&#261; funkcjonalno&#347;&#263;, nie za&#347; te dotycz&#261;ce zale&#380;no&#347;ci czasowych
(takie jak <option>-T4</option>) czy poziomu szczeg&#243;&#322;owo&#347;ci
(<option>-v</option>), kt&#243;re mo&#380;na doda&#263; niezale&#380;nie.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--datadir &lt;nazwakatalogu&gt;</option> (Okre&#347;lenie lokalizacji plik&#243;w z danymi)
</term>
<listitem>
<para>Podczas pracy Nmap pobiera dodatkowe informacje z plik&#243;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&#243;w od katalogu podanego jako
parametr dla opcji <option>--datadir</option>, je&#347;li zosta&#322;a dodana.
Je&#347;li nie znajdzie plik&#243;w w podanej lokalizacji, poszukuje ich w
katalogu okre&#347;lonych w zmiennej &#347;rodowiskowej NMAPDIR, a nast&#281;pnie w
katalogu <filename moreinfo="none">~/.nmap</filename> dla
rzeczywistego i efektywnego UID (tylko systemy POSIX) i katalogu
z programem Nmap (tylko Win32). Je&#347;li i to nie przyniesie skutku,
poszukiwane s&#261; 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&#324;cu
sprawdzany jest aktualny katalog.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--send-eth</option> (U&#380;ywanie niskopoziomowych ramek ethernet)
</term>
<listitem>
<para>Opcja powoduje wysy&#322;anie bezpo&#347;rednio ramek niskiego poziomu
ethernet (warstwa danych), zamiast poprzez stos IP (warstwa sieci).
Domy&#347;lnie Nmap wybiera metod&#281;, kt&#243;ra jest og&#243;lnie lepsza dla danej
platformy, na kt&#243;rej jest uruchomiony. Gniazda raw (warstwa IP) s&#261;
efektywniejsze w przypadku system&#243;w UNIX, podczas gdy ramki ethernet
s&#261; niezb&#281;dne w przypadku system&#243;w Windows, od czasu kiedy to
Microsoft wy&#322;&#261;czy&#322; obs&#322;ug&#281; gniazd raw. Je&#347;li nie ma innej mo&#380;liwo&#347;ci,
Nmap w systemach UNIX wybierze metod&#281; ethernet, pomijaj&#261;c wybran&#261;
przez u&#380;ytkownika i niedost&#281;pn&#261; opcj&#281;.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--send-ip</option> (Wysy&#322;aj pakiety raw IP)
</term>
<listitem>
<para>W&#322;&#261;cza wysy&#322;anie pakiet&#243;w przez gniazda raw IP, zamiast przez
ramki ethernet. Opcja jest przeciwie&#324;stwem opisanej wy&#380;ej opcji
<option>--send-eth</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--privileged</option> (Zak&#322;adaj &#380;e u&#380;ytkownik ma odpowiednie uprawnienia)
</term>
<listitem>
<para>Informuje Nmapa, &#380;e u&#380;ytkownik jest wystarczaj&#261;co
uprzywilejowany aby korzysta&#263; z wysy&#322;ania pakiet&#243;w za pomoc&#261;
gniazd raw, pods&#322;uchiwania pakiet&#243;w i podobnych operacji zwykle
wymagaj&#261;cych uprwawnie&#324; roota w systemach UNIX. Domy&#347;lnie Nmap
przerywa dzia&#322;anie w momencie wykrycia pr&#243;by wykonania takich
operacji i funkcja geteuid() nie zwraca warto&#347;ci zero.
Opcja <option>--privileged</option> jest u&#380;yteczna w systemach Linux
posiadaj&#261;cych mo&#380;liwo&#347;ci odpowiedniego przywilejowania u&#380;ytkownik&#243;w
do przeprowadzania wymienionych operacji. Upewnij si&#281;, &#380;e opcja
zosta&#322;a podana przed innymi opcjami wymagaj&#261;cymi podwy&#380;szonych
uprwanie&#324; (skanowanie SYN, wykrywanie systemu operacyjnego itp).
Zmienna NMAP_PRIVILEGED mo&#380;e zosta&#263; ustawiona jako alternatywa dla
wykorzystania opcji <option>--privileged</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-V</option>; <option>--version</option> (Wy&#347;wietl numer wersji)
</term>
<listitem>
<para>Wy&#347;wietla tylko numer wersji Nmapa.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-h</option>; <option>--help</option> (Wy&#347;wietl pomoc)
</term>
<listitem>
<para>Wy&#347;wietla kr&#243;tki ekran pomocy opisuj&#261;cy najpopularniejsze
opcje, podobnie jak uruchomienie Nmapa bez parametr&#243;w.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="man-runtime-interaction">
<title>Interakcja w czasie pracy</title>
<para>Podczas pracy Nmapa, przechwytywane s&#261; wszystkie naci&#347;ni&#281;cia
klawiszy. Pozwala to na interakcj&#281; z programem bez przerywania go lub
restartowania. Niekt&#243;re specjalne klawisze zmieniaj&#261; opcje, inne
wy&#347;wietlaj&#261; status skanowania. Konwencja zak&#322;ada, &#380;e
<emphasis>ma&#322;e litery zmniejszaj&#261;</emphasis> ilo&#347;&#263; informacji, a
<emphasis>du&#380;e litery powi&#281;kszaj&#261;</emphasis>. Mo&#380;na r&#243;wnie&#380; nacisn&#261;&#263;
&#x2018;<emphasis>?</emphasis>&#x2019; dla </para>
<variablelist>
<varlistentry>
<term>
<option>v</option> / <option>V</option>
</term>
<listitem>
<para>Zwi&#281;kszenia / Zmniejszenia poziomu szczeg&#243;&#322;owo&#347;ci</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>d</option> / <option>D</option>
</term>
<listitem>
<para>Zwi&#281;kszenia / Zmniejszenia poziomu &#347;ledzenia b&#322;&#281;d&#243;w</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>p</option> / <option>P</option>
</term>
<listitem>
<para>W&#322;&#261;czenia / Wy&#322;&#261;czenia &#347;ledzenia pakiet&#243;w</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>?</option>
</term>
<listitem>
<para>Wy&#347;wietlenia ekranu pomocy</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Wszystko inne
</term>
<listitem>
<para>Wy&#347;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&#322;ady</title>
<para>Poni&#380;ej przedstawiono przyk&#322;ady wykorzystania Nmapa, od prostych i
rutynowych do troch&#281; bardziej skomplikowanych i ezoterycznych. Przyk&#322;adowe
adresy IP i nazwy domen powinny zosta&#263; zast&#261;pione adresami/nazwami z
<emphasis>twojej w&#322;asnej sieci</emphasis>. Nie uwa&#380;am, &#380;e skanowanie
port&#243;w powinno by&#263; nielegalne, jednak niekt&#243;rzy administratorzy nie
toleruj&#261; nie autoryzowanego skanowania ich sieci i mog&#261; zg&#322;asza&#263; swoje
protesty. Uzyskanie zgody jest pierwszym wyzwaniem.</para>
<para>Do celu test&#243;w, masz zgod&#281; do skanowania hosta
<literal moreinfo="none">scanme.nmap.org</literal>. Zgoda pozwala jedynie
na skanowanie za pomoc&#261; Nmapa, nie za&#347; na testowanie exploit&#243;w czy
przeprowadzanie atak&#243;w typu Denial of Service. Dla oszcz&#281;dno&#347;ci pasma,
prosz&#281; nie uruchamiaj wi&#281;cej ni&#380; tuzina skanowa&#324; tego hosta dziennie.
W przypadku nadu&#380;y&#263;, host zostanie wy&#322;&#261;czony, a Nmap b&#281;dzie zwraca&#322;
komunikat <computeroutput moreinfo="none">Failed to resolve given hostname/IP:
scanme.nmap.org</computeroutput>. pozwolenie dotyczy tak&#380;e adres&#243;w
<literal moreinfo="none">scanme2.nmap.org</literal>,
<literal moreinfo="none">scanme3.nmap.org</literal> i nast&#281;pnych, cho&#263;
hosty te jeszcze nie istniej&#261;.</para>
<para>
<userinput moreinfo="none">nmap -v scanme.nmap.org</userinput>
</para>
<para>Pozwoli na przeskanowanie wszystkich port&#243;w TCP adresu
<literal moreinfo="none">scanme.nmap.org</literal>. Opcja
<option>-v</option> podwy&#380;szy poziom szczeg&#243;&#322;owo&#347;ci zwracanych informacji.
</para>
<para>
<userinput moreinfo="none">nmap -sS -O scanme.nmap.org/24</userinput>
</para>
<para>Uruchamia skanowanie SYN wszystkich 255 host&#243;w znajduj&#261;cych si&#281;
w tej samej klasie <quote>C</quote>, co host scanme.nmap.org. Dodatkowo
wykonywana jest pr&#243;ba detekcji systemu operacyjnego dla ka&#380;dego hosta,
kt&#243;ry jest aktywny. Wymaga to uprawnie&#324; u&#380;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&#281; host&#243;w i skanowanie TCP pierwszej po&#322;owy
ka&#380;ej z 255 mo&#380;liwych 8-mio bitowych podsieci klasy B 198.116.
Wykrywane jest dzia&#322;anie us&#322;ug sshd, DNS, pop3d, imapd i portu 4564.
Dla ka&#380;dego z tych port&#243;w, kt&#243;ry zosta&#322; wykryty jako otwarty
przeprowadzane jest wykrywanie wersji dzia&#322;aj&#261;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&#243;w i przeskanowanie
ich w poszukiwaniu serwer&#243;w WWW (port 80). Enumeracja host&#243;w jest wy&#322;&#261;czona
za pomoc&#261; opcji <option>-P0</option>, poniewa&#380; wysy&#322;anie najpierw pakiet&#243;w
w celu okre&#347;lenia czy host jest aktywny nie ma sensu, jako &#380;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&#243;w IP w poszukiwaniu serwer&#243;w WWW (bez pingowania
ich) i zapisuje wyniki w plikach XML i grepowalnym.</para>
</refsect1>
<refsect1 id="man-bugs">
<title>B&#322;&#281;dy</title>
<para>Jak i jego autor, Nmap nie jest doskona&#322;y. Mo&#380;esz jednak pom&#243;c
przysy&#322;aj&#261;c raporty dotycz&#261;ce b&#322;&#281;d&#243;w lub nawet wysy&#322;aj&#261;c w&#322;asne poprawki.
Je&#347;li Nmap nie zachowuje sie w spos&#243;b kt&#243;rego oczekujesz, zacznij od
aktualizacji do najnowszej wersji dost&#281;pnej pod adresem
<ulink url="https://nmap.org/"/>. Je&#347;li problem nadal
wyst&#281;puje, wykonaj troch&#281; test&#243;w dla okre&#347;lenia czy podobny problem nie
zosta&#322; ju&#380; wykryty i oznaczony. Spr&#243;buj poszuka&#263; Googlem komunikatu
b&#322;&#281;du lub poprzegl&#261;daj archiwa listy dyskusyjnej Nmap-dev pod adresem
<ulink url="https://seclists.org/"/>. Przeczytaj r&#243;wnie&#380; ca&#322;a dokumentacj&#281;.
Je&#347;li nic nie pomo&#380;e, wy&#347;lij raport opisuj&#261;cy b&#322;&#261;d po angielsku na adres
<email>dev@nmap.org</email>. Prosz&#281; do&#322;&#261;cz wszystko co uda&#322;o Ci
si&#281; ustali&#263; na temat tego problemu, jak r&#243;wnie&#380; informacj&#281; o u&#380;ywanej
wersji Nmapa i systemie operacyjnym na kt&#243;rym jest uruchamiany.
Opisy problem&#243;w i pytania dotycz&#261;ce u&#380;ywania Nmapa wys&#322;ane na adres
dev@nmap.org z wi&#281;kszym prawdopodobie&#324;stwem doczekaj&#261; sie
szybkiej odpowiedzi, ni&#380; wys&#322;ane bezpo&#347;rednio do Fyodora.</para>
<para>Poprawki b&#322;&#281;dnego kodu s&#261; milej widziane, ni&#380; opisy b&#322;ed&#243;w.
Podstawowe instrukcje tworzenia poprawek s&#261; opisane na stronie
<ulink url="https://nmap.org/data/HACKING"/>. Poprawki
mog&#261; by&#263; wysy&#322;ane na nmap-dev (rekomendowane) lub bezpo&#347;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&#322;y warto&#347;ciowy wk&#322;ad w rozw&#243;j Nmapa. Szczeg&#243;&#322;y s&#261;
zamieszczane w pliku <filename moreinfo="none">CHANGELOG</filename>, kt&#243;ry
jest rozpowszechniany z Nmapem i jest r&#243;wnie&#380; dost&#281;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&#347;wiadczenie dotycz&#261;ce t&#322;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&#322;umaczenie <ulink
url="https://nmap.org/man/man-legal.html">licencji Nmapa
</ulink> na j&#281;zyk polski. Nie zosta&#322;o ono napisane przez Insecure.Com LLC,
i przez to nie mo&#380;e by&#263; uwa&#380;ane za wi&#261;&#380;&#261;ce, tak jak jego angielska wersja,
jednak&#380;e uwa&#380;amy, &#380;e t&#322;umaczenie to pozwoli lepiej zrozumie&#263; licencj&#281; 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&#380;e zastrze&#380;onym znakiem towarowym Insecure.Com
LLC. Ten program jest wolnym oprogramowaniem; mo&#380;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&#380;ywania, modyfikowania i redystrybucji tego oprogramowania pod pewnymi
warunkami. Je&#347;li technologia Nmapa jest integrowana z innymi programami, mo&#380;liwa
jest sprzeda&#380; alternatywnych licencji (kontakt <email>sales@insecure.com</email>).
Wielu producent&#243;w skaner&#243;w bezpiecze&#324;stwa licencjonuje technologie Nmapa takie
jak wykrywanie host&#243;w, skanowanie port&#243;w, wykrywanie system&#243;w operacyjnych i
wykrywanie us&#322;ug/wersji.</para>
<para>GPL nak&#322;ada isotne ograniczenia w stosunku do <quote>produkt&#243;w pochodnych
</quote>, jednak nie jest jeszcze dost&#281;pna dok&#322;adna ich definicja.
Dla unikni&#281;cia nieporozumie&#324; zak&#322;adamy, &#380;e aplikacja jest produktem pochodnym
w przypadku gdy spe&#322;nia kt&#243;ry&#347; z warunk&#243;w:</para>
<itemizedlist>
<listitem><para>Integruje kod &#378;r&#243;d&#322;owy Nmapa</para></listitem>
<listitem><para>Odczytuje lub do&#322;&#261;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&#243;&#380;nieniu od
aplikacji, kt&#243;re uruchamiaj&#261; Nmapa i wy&#347;wietlaj&#261; nie przetworzone raporty
i przez to nie s&#261; produktami pochodnymi).</para></listitem>
<listitem><para>Integruj&#261;/w&#322;&#261;czaj&#261;/agreguj&#261; Nmapa w wykonywalnym instalatorze,
tak jak stworzone za pomoc&#261; InstallShield.</para></listitem>
<listitem><para>Wykorzystuj&#261; bibliotek&#281; lub program wykonuj&#261;cy jedno z
powy&#380;szych.</para></listitem>
</itemizedlist>
<para>Warunki <quote>Nmapa</quote> powinny dotyczy&#263; cz&#281;&#347;ci i pochodnych
programu Nmap. Powy&#380;sza lista ma na celu klarowne przedstawienie naszej
interpretacji program&#243;w pochodnych z przyk&#322;adami. Ograniczenia dotycz&#261; tylko
przypadk&#243;w, w kt&#243;rych Nmap jest rozpowszechniany razem z programem pochodnym.
Na przyk&#322;ad nic nie stoi na przeszkodzie napisania i sprzedawania w&#322;asnego
interfejsu do Nmapa. Wystarczy rozprowadza&#263; go oddzielnie podaj&#261;c u&#380;ytkownikom
adres <ulink url="https://nmap.org/"/> do pobierania Nmapa.</para>
<para>Nie uwa&#380;amy tego za ograniczenia dodane do GPL, ale jako klarown&#261;
interpretacj&#281; <quote>program&#243;w pochodnych</quote>, jako &#380;e dotyczy to naszego
produktu opartego na GPL. Jest to zbli&#380;one do sposobu w jaki Linus Torvalds
opublikowa&#322; swoj&#261; interpretacj&#281; dotycz&#261;c&#261; <quote>program&#243;w pochodnych</quote>,
opartych na modu&#322;ach kernela Linuxa. Nasza interpretacja odnosi si&#281; tylko do
Nmapa - nie m&#243;wimy o &#380;adnym innym produkcie GPL.</para>
<para>Je&#347;li masz jakiekolwiek pytania dotycz&#261;ce ogranicze&#324; licencji GPL przy
zastosowaniach Nmapa w produktach nie opartych na GPL, ch&#281;tnie pomo&#380;emy.
Jak wspomniano wy&#380;ej, oferujemy tak&#380;e alternatywn&#261; licencj&#281; do integrowania
Nmapa we w&#322;asnych aplikacjach i urz&#261;dzeniach. Licencje na integracj&#281; Nmapa
zosta&#322;y sprzedane wielu producentom oprogramowania zwi&#261;zanego z bezpiecze&#324;stwem
i og&#243;lnie zawieraj&#261; do&#380;ywotni&#261; licencj&#281; oraz dostarczaj&#261; priorytetowego
wsparcia technicznego wraz z aktualizacjami i pomagaj&#261; op&#322;aci&#263; dalszy rozw&#243;j
Nmapa. Prosz&#281; o kontakt z <email>sales@insecure.com</email> w celu uzyskania
dalszych informacji.</para>
<para>Jako specjalny wyj&#261;tek dla warunk&#243;w GPL, Insecure.Com LLC zezwala na
linkowanie kodu tego programu z dowoln&#261; wersj&#261; biblioteki OpenSSL, kt&#243;ra jest
dystrybuowana na licencji identycznej do umieszczonej w pliku Copying.OpenSSL
oraz na dystrybucj&#281; obu w postaci zlinkowanej. Musisz przestrzega&#263; licencji GPL
we wszystkich aspektach wykorzystania kodu, innym ni&#380; OpenSSL.
Je&#347;li zmodyfikujesz wspomniany plik, mo&#380;esz rozszerzy&#263; ten wyj&#261;tek o Twoj&#261;
wersj&#281;, ale nie jeste&#347; do tego zobligowany.</para>
<para>Je&#347;li otrzyma&#322;e&#347;(a&#347;) te pliki z pisemn&#261; licencj&#261; lub kontraktem
zmieniaj&#261;cym powy&#380;sze zapisy, maj&#261; one pierwsze&#324;stwo nad umieszczonymi tutaj.
</para>
</refsect2>
<refsect2 id="man-copyright">
<title>Licencja Creative Commons dla tego podr&#281;cznika Nmap</title>
<para>Prawa (2005) do tego podr&#281;cznika Nmapa posiada Insecure.Com LLC. Jest on
udost&#281;pniany w oparciu o wersj&#281; 2.5 licencji
<ulink url="http://creativecommons.org/licenses/by/2.5/">Creative Commons
Attribution License</ulink>. Pozwala ona na redystrybucj&#281; i modyfikowanie
w potrzebnym zakresie tak d&#322;ugo, jak zostanie podane oryginalne &#378;r&#243;d&#322;o.
Alternatywnie mo&#380;esz traktowa&#263; ten dokument jako udost&#281;pniany na takiej
samej licencji jak Nmap (opisanej wcze&#347;niej).</para>
</refsect2>
<refsect2 id="source-contrib">
<title>Dost&#281;pno&#347;&#263; kodu &#378;r&#243;d&#322;owego i wk&#322;ad spo&#322;eczno&#347;ci</title>
<para>Kod &#378;r&#243;d&#322;owy dla tego programowania jest dost&#281;pny, poniewa&#380; uwa&#380;amy, &#380;e
u&#380;ytkownicy maj&#261; prawo wiedzie&#263; dok&#322;adnie co program robi, zanim go uruchomi&#261;.
Pozwala to tak&#380;e na przeprowadzenie audytu kodu pod k&#261;tem bezpiecze&#324;stwa
(jak dot&#261;d nie wykryto problemu tego typu).</para>
<para>Kod &#378;r&#243;d&#322;owy pozwala r&#243;wnie&#380; na przenoszenie Nmapa na nowe platformy, na
poprawianie b&#322;&#281;d&#243;w i dodawanie nowych funkcji. Mocno zach&#281;camy do wysy&#322;ania
swoich zmian na adres <email>fyodor@nmap.org</email> w celu mo&#380;liwej
integracji z g&#322;&#243;wn&#261; dystrybucj&#261;. Wys&#322;anie tych zmian do Fyodora lub na jedn&#261;
z list dyskusyjnych dla deweloper&#243;w Insecure.Org, powoduje przekazanie praw do
nielimitowanego, nie wy&#322;&#261;cznego prawa do ponownego wykorzystania, modyfikacji
i relicencjonowania tego kodu. Nmap zawsze b&#281;dzie dost&#281;pny jako Open Source,
lecz jest to istotne z powodu dewastuj&#261;cych problem&#243;w jakie pojawia&#322;y si&#281; w
innych projektach Free Software (takich jak KDE i NASM). Okazjonalnie
licencjonujemy kod do firm trzecich, jak to wspomniano wy&#380;ej. Je&#347;li chcesz
doda&#263; specjaln&#261; licencj&#281; dla swojego wk&#322;adu, wystarczy do&#322;&#261;czy&#263; odpowiedni&#261;
informacj&#281; przy wysy&#322;aniu kodu do nas.</para>
</refsect2>
<refsect2 id="no-warranty"><title>Brak gwarancji</title>
<para>Program ten jest rozpowszechniany z nadziej&#261;, &#380;e b&#281;dzie u&#380;yteczny, jednak
BEZ &#379;ADNEJ GWARANCJI; tak&#380;e bez za&#322;o&#380;onej gwarancji PRZYDATNO&#346;CI HANDLOWEJ lub
PRZYDATNO&#346;CI DO OKRE&#346;LONYCH ZASTOSOWA&#323;. Zobacz licencj&#281; GNU General Public
License dla dalszych szczeg&#243;&#322;&#243;w pod adresem
<ulink url="http://www.gnu.org/copyleft/gpl.html"/>, jej polskie nieoficjalne
t&#322;umaczenie <ulink url="http://www.gnu.org.pl/text/licencja-gnu.html"/>
lub w pliku COPYING do&#322;&#261;czanym do Nmapa.</para>
<para>Nale&#380;y r&#243;wnie&#380; zwr&#243;ci&#263; uwag&#281;, &#380;e Nmap okazjonalnie potrafi spowodowa&#263;
zaprzestanie dzia&#322;ania &#378;le napisanych aplikacji, stosu TCP/IP lub nawet ca&#322;ego
systemu operacyjnego. Jest to bardzo rzadko spotykane, ale wa&#380;ne jest, aby o tym
pami&#281;ta&#263;. <emphasis>Nmap nie powinien by&#263; nigdy uruchamiany przeciwko systemom
krytycznym</emphasis>, o ile nie jeste&#347; przygotowany(a) na ewentualn&#261; przerw&#281;
w dzia&#322;aniu. Potwierdzamy, &#380;e Nmap mo&#380;e spowodowa&#263; awari&#281; system&#243;w lub sieci
i wypieramy si&#281; jakiejkolwiek odpowiedzialno&#347;ci za uszkodzenia lub problemy
spowodowane przez jego dzia&#322;anie.</para>
</refsect2>
<refsect2 id="inappropriate-usage"><title>Nieodpowiednie u&#380;ycie</title>
<para>Z powodu istnienia niewielkiego ryzyka spowodowania awarii i poniewa&#380;
niekt&#243;re czarne kapelusze lubi&#261; u&#380;ywa&#263; Nmapa do wykonania rekonesansu przed
atakiem systemu, administratorzy mog&#261; si&#281; denerwowa&#263; i zg&#322;asza&#263; swoje protesty
z powodu skanowania ich system&#243;w. Z tego powodu, najcz&#281;&#347;ciej zalecane jest
uzyskanie odpowiedniej zgody przed wykonaniem nawet delikatnego skanowania
sieci.</para>
<para>Z powod&#243;w bezpiecze&#324;stwa, Nmap nie powinien by&#263; 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&#322;&#261;czana do dystrybucji Nmapa.
Wersja Nmapa dla systemu Windows wykorzystuje opart&#261; na libpcap bibliotek&#281;
<ulink url="http://www.winpcap.org">WinPcap</ulink> (zamiast libpcap). Obs&#322;ug&#281;
wyra&#380;e&#324; regularnych zapewnia biblioteka
<ulink url="http://www.pcre.org">PCRE</ulink>, kt&#243;ra jest oprogramowaniem
open source, napisanym przez Philip Hazel. Niekt&#243;re funkcje dotycz&#261;ce niskiego
poziomu sieci wykorzystuj&#261; bibliotek&#281;
<ulink url="http://libdnet.sourceforge.net">Libdnet</ulink>, napisan&#261; przez Dug
Songa. Zmodyfikowana jej wersja jest do&#322;&#261;czana do dystrybucji Nmapa. Nmap mo&#380;e
by&#263; opcjonalnie linkowany z bibliotek&#261; kryptograficzn&#261;
<ulink url="http://www.openssl.org">OpenSSL</ulink>, u&#380;ywan&#261; do detekcji wersji
SSL. Wszystkie opisane w tym paragrafie programy firm trzecich s&#261;
rozpowszechniane na licencji BSD.</para>
</refsect2>
<refsect2 id="us-export"><title>Klasyfikacja eksportowa Stan&#243;w Zjednoczonych
Ameryki P&#243;&#322;nocnej</title>
<para>US Export Control: Insecure.Com LLC wierzy, &#380;e Nmap kwalifikuje si&#281; pod
oznaczenie US ECCN (export control classification number) 5D992. Kategoria ta
jest opisana jako <quote>Oprogramowanie dotycz&#261;ce bezpiecze&#324;stwa informacji
nie obj&#281;te 5D002</quote>. Jedynym ograniczeniem tej kategorii jest AT
(anty-terroryzm), kt&#243;ra odnosi si&#281; do wi&#281;kszo&#347;ci d&#243;br i zabrania eksportu do
niekt&#243;rych awanturniczych kraj&#243;w takich jak Iran czy P&#243;&#322;nocna Korea. Z tego
powodu Nmap nie wymaga &#380;adnej specjalnej licencji, zgody lub innych autoryzacji
rz&#261;du USA.</para>
</refsect2>
</refsect1>
</refentry>
</article>