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