Nmap – skanowanie sieci

0

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.

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.

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ć.

1
2
3
PODZIEL SIĘ

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ