'\" 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