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