Nmap – skanowanie sieci

0

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.

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.

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.

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.

1
2
3
PODZIEL SIĘ

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ