Infrastruktura

Nmap – skanowanie sieci

W tym artykule omawiamy korzystanie z popularnego skanera sieci pod nazwą Nmap. Jest to bezpłatny, a jednocześnie bardzo zaawansowany analizator sieci IP. Dostępny zarówno na systeme operacyjny z rodziny Windows, MacOSX jak i na Linuksa.

Nmap może być obsługiwany na dwa sposoby:

  • w trybie tekstowym (CLI – Command Line Interface) – jest to podstawowa metoda posługiwania się tym programem, wymagająca znajomości składni poleceń,
  • za pomocą interfejsu graficznego (GUI – Graphic User Interface) – w przypadku Nmapa nosi on nazwę Zenmap i działa jako nakładka.

Użytkowanie Nmapa w trybie tekstowym, aczkolwiek nieco trudniejsze, pozwala, m.in. na zautomatyzowanie procesu skanowania sieci i cykliczne zaplanowanie tej czynności przy pomocy programów takich jak at czy cron.

Nmap (od Network Mapper) umożliwia skanowanie sieci na wiele sposobów i pozwala na wykrywanie takich luk w bezpieczeństwie, które nie są widoczne przy podstawowym sposobie skanowania za pomocą pakietów SYN. Rezultaty skanowania są przekazywane użytkownikowi w formie czytelnych, a jednocześnie szczegółowych raportów, z których można, np. wyczytać jakiego systemu operacyjnego używa dany host, jakie ma otwarte porty (i jakie dokładnie usługi na nich nasłuchują, z uwzględnieniem nie tylko nazwy aplikacji ale i jej wersji), jaki rodzaj firewalla stosuje, jakimi adresami MAC się posługuje. Posługując się ZENem będziesz mógł także zobaczyć graficzne przedstawienie mapy sieci, uzyskiwanej z pomocą polecenia traceroute badającego trasę, którą pokonuje dany pakiet.

Nmap – skanowanie sieci

Rysunek 1. Nmap „wystąpił” nawet w takich filmach jak Ultimatum Bourne’a czy Matrix (na zdjęciu)

Sama instalacja skanera jest bardzo prosta. W przypadku Linuksa najlepiej skorzystać z menedżera pakietów w Twojej dystrybucji, np. portage w Gentoo czy apt-get w Debianie. Z kolei administratorowi Windows najłatwiej jest pobrać gotowy instalator dostępny na stronie http://nmap.org/download.html.

Zawsze możesz wybrać pomiędzy wersją stabilną oraz rozwojową, a także pomiędzy wersją do zainstalowania, a wersją do rozpakowania (.ZIP). Ta ostatnia będzie dobrym pomysłem w przypadku chęci umieszczenia Nmapa na pamięci USB.

W przypadku Linuksów można także rozważyć kompilację programu ze źródeł.

Podstawy obsługi Nmapa
Efektem działania Nmapa jest lista przeskanowanych adresów IP opatrzona dodatkowo zebranymi informacjami, których zakres zależy od użytych opcji. Zawsze jednak otrzymasz listę portów wraz z nazwami protokołów, usług oraz wykrytym stanem. Ten ostatni może być określony jako:

  • otwarty – aplikacja oczekuje na połączenie przychodzące (typowy stan większości demonów, np. sshd),
  • filtrowany – firewall nie pozwala na jakąkolwiek komunikację z tym portem i nie jest możliwe określenie jego stanu,
  • zamknięty – na tym porcie nie nasłuchuje żadna aplikacja,
  • niefiltrowany – komunikacja z portem jest wprawdzie możliwa, jednak Nmap nie potrafił określić czy jest on otwarty czy zamknięty.

Nmap zgłasza także niekiedy jeden port jako, np. i otwarty i filtrowany jednocześnie, jeżeli nie jest w stanie wskazać, który z tych dwóch podanych stanów lepiej odzwierciedla rzeczywistość.

Nmap jest dopracowanym narzędziem, jednak jego stosowanie w pewnych okolicznościach może budzić wątpliwości natury prawnej. Skanowanie portów może bowiem niekiedy być uznane za naruszenie art. 267 §2 Kodeksu karnego.

Składnia poleceń
Poznawanie Nmapa najlepiej zacząć od wydania najprostszego polecenia nmap – bez żadnych opcji. Nmap wyświetli wtedy listę wszystkich możliwych przełączników.

Nmap – skanowanie sieci

Rysunek 2. Efekt uruchomienia polecenia „nmap” – to zaledwie kilka pierwszych linijek obrazujących możliwości nmapa.

Niektóre funkcje Nmapa mogą nie działać, jeżeli nie uruchomisz go z konta roota (w przypadku Linuksa) lub Administratora (w przypadku Windows).

Podstawowa składnia poleceń to: nmap, rodzaj skanowania, opcje oraz cel do skanowania. Najważniejszy jest właśnie ten ostatni parametr, podawany zawsze na końcu całego polecenia. Przykładowe, proste polecenia skanowania wyglądają tak:

nmap localhost
nmap 192.168.1.1
nmap www.strona.pl

Możesz także skanować od razu cały zakres adresów IP, np. nmap 192.168.1.1-192.168.1.100.

W rezultacie otrzymasz komunikat o portach na danym komputerze, np. Not shown: 2303 closed ports oznacza, że tyle właśnie portów jest zamkniętych i Nmap nie pokazuje ich dla czytelności przekazu. Poniżej wyświetla za to informacje o otwartych portach, podzielone na tabelkę składającą się z trzech kolumn: numer portu (PORT), stan (STATE, zgodnie z omówieniem powyżej) oraz usługa (SERVICE). Przykładowy zapis to 80/tcp open http – oznaczający uruchomiony serwer WWW na standardowym dla tej usługi porcie. Poniżej znajdziesz także informację o czasie, jaki zajęło pełne skanowanie.

Jeżeli chcesz ograniczyć zakres skanowanych portów, użyj przełącznika –p. Przykładowo, polecenie nmap –p 1-443 localhost przeskanuje Twój własny komputer jedynie w zakresie pierwszych 443 portów. Możesz oczywiście także zeskanować tylko jeden port, np. Nmap –p 443 localhost.

Na razie uzyskaliśmy jedynie informację o otwartych portach i działających usługach. Dodając przełącznik –sV uzyskasz także informację na temat wersji danego oprogramowania. Na przykład, komenda Nmap –sV –p 80 localhost spowoduje wyświetlenie czwartej kolumny (VERSION), zawierającej wpis o przykładowej treści Apache httpd 2.2.3 ((Debian) mod_python/3.2.10 Python/2.4.4 PHP/4.4.4-8+etch1 mod_perl/2.0.2 Perl/v5.8.8).

Większość demonów (w tym Apache) ma w swojej konfiguracji możliwość wyłączenia takiego „gadatliwego” przedstawiania się – jednak mało kto z tych opcji korzysta.

Co więcej, takie badanie uruchomionych usług może nie być w pełni wiarygodne. Administrator danego serwera mógł bowiem na danej maszynie uruchomić na porcie 80-tym nie Apache’a a np. SSH – a Nmap i tak wskaże w usługach http. Dzieje się tak ponieważ Nmap domyślnie porównuje jedynie numer badanego portu ze swoją listą portów standardowych dla danych usług.

Przeczytaj również
Oracle i Equinix rozszerzają współpracę pod kątem wspierania modelu multicloud w Polsce

Parametr –O umożliwi Ci poznanie systemu operacyjnego, zainstalowanego na danym komputerze. Po komendzie nmap –O localhost możesz więc otrzymać, np. taką odpowiedź:

MAC Address: 00:1B:6C:30:BE:AC (Wistron Neweb)
Device type: general purpose
Running: Linux 2.4.X|2.5.X
OS details: Linux 2.4.0 – 2.5.20
Uptime 81.82 days (since Tue Apr 29 21:58:22 2011)

Jeżeli zależy Ci jednocześnie na poznaniu wersji systemu operacyjnego oraz wersji oprogramowania nasłuchującego na poszczególnych portach, zamiast składni –sV –O możesz użyć po prostu –A, np. nmap –A localhost.

Oczywiście każde skanowanie (może z wyjątkiem pasywnego) jest w jakiś sposób widoczne dla skanowanego. Jeżeli zależy Ci na dyskrecji możesz użyć przełącznika –sS, np. nmap –sS localhost. Jest to zw. skanowanie półotwarte.

Pamiętaj jednak, że taki sposób skanowania nie zaalarmuje użytkowników zwykłych komputerów, jednak pozostawi ślady, jeżeli skanowana maszyna posiada bardziej zaawansowane narzędzia sieciowe, np. IDS (Intrusion Detection System).

Wykrywanie urządzeń sieciowych z użyciem Nmap
Możesz także łatwo sprawdzić, które hosty w ogóle są uruchomione w danej podsieci. Zrobisz to za pomocą przełącznika –sP, np. nmap –sP 192.168.1.1-192.168.1.100. W rezultacie otrzymasz informacje takie, jak:

Host 192.168.1.34 appears to be up.

MAC Address: 00:10:22:6B:30:65 (CC&C Technologies)

Jeżeli chcesz zapisać efekt skanowania do pliku, możesz to zrobić używając przełącznika –oN, np. nmap –oN skan_20110805.log localhost.

Taki plik, tworzony np. codziennie, możesz następnie automatycznie „obrobić” za pomocą skryptu Basha, lub wysłać e-mailem na Twoją skrzynkę pocztową.

Więcej szczegółów wyników zwracanych podczas skanowania otrzymasz posługując się parametrem –v, np. nmap –v localhost. Pamiętaj jednak, że nadmiar informacji ujemnie wpłynie na czytelność raportu.

Graficzny interfejs Nmapa
Zenmap jest oficjalnym interfejsem graficznym do Nmapa, który działa z nim poprawnie we wszystkich platformach systemowych, na których jesteś w stanie uruchomić sam skaner (Windows, Linux, MacOSX). Umożliwia łatwiejsze skanowanie, bowiem jako program obsługiwany myszką nie wymaga zapamiętywania składni poleceń nmapa.

Wystarczy, że zaznaczysz odpowiednie opcje i wciśniesz właściwe przyciski w oknie Zenmapa. Ten sam już skompletuje prawidłową składnię polecenia nmap, którą zresztą także Ci wyświetli. Ułatwi Ci to zapoznawanie się z przełącznikami poleceń.

Jedną z ciekawszych możliwości Zenmapa jest zapisywanie często używanych poleceń jako profili, dzięki czemu często powtarzalne czynności możesz wykonywać zdecydowanie łatwiej i szybciej. Rezultaty skanowania zapiszesz do pliku i obejrzysz w późniejszym, dogodnym dla siebie czasie lub porównasz je, np. z tym samym skanowaniem wykonanym tydzień wcześniej.

Nmap – skanowanie sieci

Rysunek 3. Efekt skanowania w Zenmap, u góry składnia polecenia nmap

Zenmap jest dołączony do instalatora Nmapa. W przypadku poszczególnych dystrybucji Linuksa może być jednak konieczne dodatkowe zainstalowanie pakietu zenmap, np. w Debianie za pomocą polecenia sudo apt-get install zenmap. Podobnie jak w przypadku Nmapa, konieczne jest uruchomienie Zenmapa z konta roota aby mieć dostęp do wszystkich możliwości skanera.

Najprościej zacząć od wybrania profilu Quick Scan, który to rodzaj skanowania pozwoli na szybki przegląd portów określonych w pliku nmap-file-service (podstawowe, najczęściej używane porty).

W tym miejscu warto wspomnieć, że jeżeli brak Ci komputera, który może przeskanować, możesz skorzystać z adresu scanme.nmap.org. Jest to maszyna testowa, postawiona przez twórców Nmapa specjalnie po to, żeby na niej spróbować działania skanera.

Nmap – skanowanie sieci

Rysunek 4. Przykładowy wynik badania trasy pakietu w Zenmapie (TRACEROUTE), na końcu zaznaczony jest cel skanowania (scanme.nmap.org).

Zenmap potrafi również stworzyć bardzo ciekawie wyglądającą mapę sieci, która pomoże Ci się zorientować w topologii połączeń między komputerami. Wystarczy podać adresy hostów (np. kilka popularnych adresów strony internetowych), aby Zenmap utworzył mapę obrazującą drogę, pokonywaną przez pakiety od Twojego komputera aż do wskazanych witryn.

Nmap – skanowanie sieci

Rysunek 5. Topologia sieci w zakładce Topology. Po kliknięciu Save Graphic uzyskasz dostęp do funkcji zapisania wykresu

Zastosowania skanera Nmap

Skoro znasz już podstawy obsługi Nmapa, teraz przyjrzymy się bliżej wykorzystaniu tego skanera w praktyce, koncentrując się na konkretnych zastosowaniach.

Wykrywanie hostów

Przed właściwym skanowaniem sieci warto ograniczyć zakres adresów IP do listy faktycznie istniejących maszyn. Do wykrywania hostów Nmap oferuje kilka metod, daleko wykraczających poza zwykłe wysłanie pakietu ICMP echo request. Możesz m.in:

  • wyłączyć pingowanie – za pomocą przełącznika –P0 pominiesz etap wykrywania,
  • skanować wieloportowo – np. za pomocą testów TCP SYN/ACK, UDP czy ICMP.

Jeżeli nie doprecyzujesz rodzaju skanowania, Nmap wyśle standardowy pakiet TCP ACK na port 80 oraz zapytanie ICMP echo request.

 

Podstawowe opcje kontroli wykrywania hostów:

-sL
Umożliwia wskazanie listy komputerów do skanowania, pozwalając na sprawdzenie czy został podany prawidłowy zakres skanowania. Dopiero po takim sprawdzeniu włączysz właściwe skanowanie, oszczędzając tym samym czas.

-sP
Skanowanie ping polega jedynie na wykryciu hostów i sporządzenia listy aktywnych adresów IP – bez skanowania portów lub wykrywania systemu operacyjnego.

-P0
Ta opcja działa zupełnie odwrotnie –wyłącza wykrywanie hostów, jakie Nmap przeprowadza przed dokładniejszym skanowaniem danego adresu IP. Tak więc przeskanowany zostanie dokładnie cały podany zakres adresów IP, nawet jeżeli nie jest włączony ani jeden komputer.

-PS
Wykrywanie hosta poprzez zidentyfikowanie otwartych portów za pomocą wysyłania pakietów TCP SYN. Jeżeli Nmap otrzyma zwrotnie pakiet RST to oznacza to, że port jest zamknięty, a jeżeli TCP SYN/ACK to wskazuje to na otwarty port i co za tym idzie – aktywny host.

Przeczytaj również
Przyszłość infrastruktury hiperkonwergentnej w Polsce

-PA
Jak wyżej, ale z wykorzystaniem pakietu TCP ACK.

-PU
UDP Ping, czyli wysyłanie pustych pakietów UDP na wskazane porty. Nmap oznaczy hosta jako dostępnego, jeżeli otrzyma „w zamian” pakiet ICMP port unreachable.

-PE, -PP, -PM
Wszystkie te skanowania to pokrewne rodzaje identyfikacji hostów za pomocą standardowego pakietu ICMP echo request. Ze względu na częste blokowanie tych pakietów przez administratorów, wynik takiego skanowania jest mało wiarygodny.

-PR
Dużo szybsze i bardziej wiarygodne skanowanie sieci, ale tylko lokalnej, w oparciu o pakiety ARP.

Skanowanie portów

Zbierzemy teraz w jednym miejscu rozmaite rodzaje skanowania. Zwróć uwagę, że w jednym czasie możesz korzystać tylko z jednej metody skanowania. Wyjątkiem jest skanowanie UDP (-sU), które może być łączone z dowolnymi typami skanowania TCP.

-sS

Skanowanie TCP SYN to podstawowa (domyślna) metoda, szybka i stosunkowo dyskretna. Polega na wysyłaniu pakietów SYN i nigdy nie prowadzi do całkowitego otwarcia połączenia (jest to tzw. metoda half-open). Wymaga uruchomienia Nmapa z konta roota.

-sT
Skanowanie TCP connect() odbywa się, gdy skanowanie TCP SYN nie jest możliwe (Nmap został uruchomiony z konta zwykłego użytkownika).

-sU
Skanowanie UDP jest wolniejsze od TCP i służy jedynie do analizy usług UDP, takich jak DNS, SNMP czy DHCP (porty odpowiednio 53, 161/162 i 67/68).

-sN, -sF, -sX
Skanowania TCP Null, FIN i Xmas wykorzystują pewne tricki i zapisy specyfikacji RFC, dzięki czemu potrafią się przemykać przez bezstanowe systemy zaporowe. Są szczególnie skuteczne przeciwko systemom ściśle trzymającym się specyfikacji (np. przeciwko UNIX’om), ale na niewiele się przydadzą np. w przypadku Windows.

-sA
Skanowanie TCP ACK polega na wysyłaniu pakietów posiadających tylko flagę ACK.

-sW
Skanowanie TCP Window jest nieco bardziej zaawansowane od TCP ACK, pozwalając na odróżnienie portów otwartych od zamkniętych.

-sM
Skanowanie TCP Maimon używa flag FIN/ACK
–scanflags
Pozwala na projektowanie własnych typów skanowania, poprzez dowolny wybór flag TCP, np. –scanflags ACKFINSYN użyje flag ACK, FIN i SYN (kolejność jest dowolna). Skanowanie to może pozwolić na obejście typowych zabezpieczeń firewalli, skonfigurowanych z myślą o bardziej standardowych rodzajach skanowania.

-sI
Skomplikowane technicznie skanowanie Idle, podczas którego dosłownie żaden pakiet nie jest wysyłany z Twojego adresu IP.

-sO
Skanowanie protokołów IP pozwala na wykrycie, jakie protokoły IP (np. TCP, ICMP, IGMP) są dostępne na danym komputerze.

-b
Skanowanie FTP bounce wykorzystuje pewną właściwość protokołu FTP, który pozwala na połączenie się z serwerem FTP i poproszenie go o wysłanie plików do innego serwera FTP. Dzięki temu można użyć innego serwera FTP do skanowania kolejno wszystkich portów, poprzez podejmowanie prób wysłania pliku na każdy interesujący port zdalnego systemu. Obecnie już rzadko kiedy serwery FTP pozwalają na wysyłanie plików na inne serwery.

Wybór zakresu portów w Nmap
Niezależnie od wybranego rodzaju skanowania Nmap pozwala na sprecyzowanie zakresu portów do skanowania oraz określenie, w jakiej kolejności te porty powinny być skanowane.

Domyślnym sposobem działania (przy braku sprecyzowanego zakresu portów) jest skanowanie wszystkich portów od 1 do 1024 oraz wybranych portów o wyższych numerach, tj. tych, które zostały zapisane w pliku nmap-services.

Podstawowym przełącznikiem określającym zakres portów jest –p. Możesz wskazać konkretne, pojedyncze porty, całe zakresy oddzielone myślnikiem czy wreszcie wszystkie możliwe porty (zakres 1-65535). Poprzedzenie numeru portu literami T: albo U: pozwala na wskazanie skanowania TCP lub UDP danego portu.

Pamiętaj, że opcja –p użyta przy skanowaniu protokołów (-sO) wskazuje nie na numer portu a numer protokołu (0-255).

Na przykład, podanie -p U:80,443,T:21-25,53 spowoduje przeskanowanie portów UDP o numerach 80 i 443 oraz portów TCP o numerach od 21 do 25 oraz 53.

Możesz także stworzyć własny plik nmap-services ze swoją listą portów do skanowania i nakazać Nmapowi przeskanowanie tylko portów z listy za pomocą przełączników –F –-datadir i wskazanie następnie dokładnej ścieżki do Twojego pliku.

Ponadto należy zauważyć, że Nmap skanuje porty w kolejności losowej. Jeżeli chcesz, aby w przykładzie powyżej skanował kolejno porty 80, 443, 21, 22, 23, 24, 25 i 53, musisz się posłużyć dodatkowo parametrem –r.

Wykrywanie usług i wersji oprogramowania

Jak już wiesz, Nmap posługuje się plikiem nmap-services, zawierającym bazę danych najpopularniejszych usług, aby określić jaka usługa nasłuchuje na danym otwartym porcie. Jednak nie zawsze na porcie 80 nasłuchuje akurat demon httpd. Wówczas należy się posłużyć detekcją wersji usług, włączaną za pomocą przełącznika –sV lub przełącznikiem –A dla jednoczesnej detekcji także systemu operacyjnego.

Wykrywając usługi w „rzeczywisty” sposób, Nmap wykonuje serię testów mających na celu poprawne zidentyfikowanie rodzaju uruchomionego demona. Testy te ze względu na swój stopień skomplikowania (i przede wszystkim czasochłonność) są oznaczone numerami od 1 do 9, gdzie wyższy numer oznacza większe zaawansowanie testu i jego większą wiarygodność.

Niższe numery testów wystarczą spokojnie do detekcji najpopularniejszych usług, jeżeli jednak masz do czynienia z bardziej niestandardowo skonfigurowaną maszyną, warto sięgnąć po testy bardziej zaawansowane.

Przeczytaj również
Jak dostawcy cloud computing w Polsce komentują powstanie Gaia-X - europejskiej chmury obliczeniowej

Nmap standardowo wykorzystuje 7-my poziom testów. Ustawienie to możesz zmienić za pomocą przełącznika –version-intensity oraz wskazanie następnie poziomu testów, np. –version-intensity 9.

Zamiast posługiwać się cyferkami możesz też użyć opcji –version-light (odpowiada poziomowi 2) oraz –version-all (odpowiada poziomowi 9).

Wykrywanie systemu operacyjnego

Nmap potrafi m.in., wykrywać zdalnie system operacyjny, dzięki tzw. odciskom palca. Polega to na wysłaniu serii pakietów TCP i UDP do zdalnego systemu i dokładnym analizowaniu otrzymanych odpowiedzi. Następnie Nmap porównuje uzyskane wyniki z danymi zawartymi w pliku nmap-os-fingerprints. Jest to baza odcisków, czyli zbiór cech charakterystycznych dla poszczególnych systemów operacyjnych. Każdy taki odcisk zawiera m.in. nazwę systemu operacyjnego, jego producenta, krótki opis, generację i typ urządzenia (np. komputer, konsola do gier, router).

Jeżeli Nmapowi nie uda się określić dokładnego rodzaju systemu operacyjnego a Ty go znasz, wysoce zalecane jest skorzystanie z możliwości wysłania odcisku palca i opisu systemu do serwera Nmapa. Dzięki temu z Twojego „odkrycia” będą mogli skorzystać także inny użytkownicy skanera.

W połączeniu z opcją ­–O lub –A warto także skorzystać z przełącznika –osscan-limit. Nmap zdecydowanie najbardziej efektywnie identyfikuje zdalny system operacyjny, jeżeli wykrył uprzednio przynajmniej jeden otwarty i zamknięty port TCP. Użycie tej opcji spowoduje, że jeżeli ten warunek nie zostanie spełniony, to skaner w ogóle nie będzie próbował określać systemu operacyjnego.

Dzięki temu znacząco skrócisz czasy skanowania, zwłaszcza w przypadku pokaźnych zakresów IP.

Niejako odwrotnie działa opcja –osscan-guess (zamiennie możesz zastosować równoznaczny przełącznik –fuzzy). Domyślnie jest tak, że jeżeli Nmap nie jest w stanie jednoznacznie określić rodzaju systemu operacyjnego, przy dużym podobieństwie kilku opcji zasugeruje on kilka potencjalnych wyników. Użycie wskazanej opcji spowoduje, że Nmap będzie bardziej skłonny do czynienia takich sugestii, nawet gdy wyniki skanowania są dość rozbieżne.

Opcje dodatkowe
Przyjrzymy się teraz rozmaitym dodatkowym możliwościom konfiguracyjnym Nmapa. Parametr -6 włącza skanowanie z użyciem protokołu IPv6. Taki rodzaj skanowania obejmuje jedynie jego najpopularniejsze funkcje, jak skanowanie ping (TCP) czy wykrywanie wersji. Funkcja bez problemu współdziała z często stosowanym tunelowanie IPv6.

Nmap korzysta z wielu zewnętrznych plików, takich jak nmap-service-probes, nmap-services, nmap-protocols, nmap-rpc, nmap-mac-prefixes czy nmap-os-fingerprints. Jeżeli nie chcesz, aby szukał ich (jak to czyni domyślnie) w katalogu określonym zmienną środowiskową NMAPDIR albo w katalogu ~/.nmap, użyj opcji –data-dir aby określić inną lokalizację tych plików.

Stosując przełączniki –send-eth albo –send-ip wymuisz użycie niskopoziomowych ramek ethernet albo pakietów Raw IP. Ta pierwsza metoda jest niezbędna, np. w przypadku systemów Windows, bowiem Microsoft wyłączył obsługę „surowych” gniazd.

Gdy nie użyjesz żadnej z tych opcji Nmap sam sprawdzi, która metoda jest osiągalna i jej użyje.

Jeżeli masz uprawnienia pozwalające na wysyłanie pakietów raw, sniffing czy inne czynności wymagające konta roota, a mimo to Nmap twierdzi że nie jesteś wystarczająco uprzywilejowany, spróbuj go uruchomić z opcją –privileged. Wymusza ona na Nmapie założenie, że jesteś użytkownikiem z prawami superadministratora – bez sprawdzania tego faktu za pomocą funkcji getuid().

Takie sytuacje zdarzają się, np. wówczas, gdy uruchamiasz skaner z konta użytkownika o uprawnieniach roota, ale nie jako root (tj. gdy Twój UID nie jest równy 0).

Bardzo ciekawym przełącznikiem jest także ­–interactive. Uruchamia on Nmapa w trybie interaktywnym, a więc z udostępnieniem Ci linii poleceń. Z jej pomocą możesz np. przeprowadzać kilka równoległych skanowań.

W tym trybie wciśnięcie klawisza [H] wyświetli podręczną pomoc.

Skrypty do Nmapa (NSE)
Nmap Scripting Engine pozwala na pisanie prostych skryptów do zautomatyzowania wielu zadań z zakresu audytu sieciowego. Oczywiście możesz także korzystać z pokaźnej bazy gotowych rozwiązań, stworzonych przez innych użytkowników Nmapa. Same skrypty pisze się w języku Lua.

Aby włączyć NSE uruchom Nmapa z opcją –sC.

Nmap – skanowanie sieci

Rysunek 6. Efekt uruchomienia Nmapa z wykorzystaniem skryptów: ssh-hostkey (wyświetla wykorzystywane przez zdalny system klucze RSA i DSA), rpcinfo (wylicza dostępne usługi z pomocą portmappera) oraz smb-os-discovery (zbiera informacje z serwerów SMB).

Zacznijmy od tego, jak pobrać i uruchomić gotowy skrypt. Skrypty Nmapa mają rozszerzenie NSE. Na przykład w Windows znajdziesz je w podkatalogu scripts katalogu, w którym został zainstalowany Nmap (najczęściej będzie to C:\Program Files\Nmap\scripts). W systemach linuksowych będzie to zapewne katalog /usr/share/nmap/scripts lub /usr/local/share/nmap/scripts.

W tym samym katalogu, w którym znajdziesz podkatalog scripts, będzie się również znajdował podkatalog nselib, zawierający pliki LUA – biblioteki niezbędne do funkcjonowania skryptów.

Tak więc cała instalacja danego skryptu ogranicza się do ściągnięcia pliku .NSE i zapisaniu go do katalogu scripts oraz, jeżeli dany skrypt wymaga określonych bibliotek, których nie posiadasz – do pobrania plików .LUA i zapisania go do katalogu nselib.

Po każdym dodaniu skryptu warto wykonać polecenie nmap -script-updatedb aby zaktualizować bazę danych o skryptach. Dzięki temu będziesz mógł używać wildcardów przy przełączniku -script do wyszukiwania interesującego Cię skryptu.

Teraz pozostaje już tylko uruchomić skrypt poleceniem nmap –script nazwa_skryptu.

Obszerną listę skryptów wraz z krótkimi opisami ich działania znajdziesz na stronie http://nmap.org/nsedoc. Na dole strony znajdują się także odpowiednie biblioteki. Po kliknięciu na nazwę któregoś ze skryptów uzyskasz więcej informacji na temat jego działania oraz będziesz mógł dany skrypt pobrać.

Komentarze

Dodaj także na LinkedIn feed

Powered by WP LinkPress