Nmap, czyli Network Mapper, to zbiór narzędzi przeznaczonych do kompleksowego testowania funkcjonalności sieci oraz przeprowadzania testów penetracyjnych. Obejmuje on między innymi skanowanie portów i wyszukiwanie słabych punktów w systemach.
Jedną z najpopularniejszych i najbardziej zaawansowanych funkcjonalności Nmapa jest silnik skryptowy (NSE). Skrypty te, używane do identyfikacji podatności, są cennym zasobem dla testerów penetracyjnych i specjalistów ds. bezpieczeństwa, którzy wykorzystują je do wykrywania powszechnie znanych luk.
Baza danych Common Vulnerabilities and Exposures (CVE) gromadzi publicznie ujawnione problemy związane z bezpieczeństwem danych. Jest ona podstawą do identyfikowania zagrożeń i słabych punktów w systemach informatycznych.
W tym artykule pokażemy, jak korzystać z Nmapa do wyszukiwania luk w zabezpieczeniach.
Zaczynajmy!
Instalacja Nmapa
Nmap jest zazwyczaj domyślnie zainstalowany w większości dystrybucji Linuksa. Jeżeli jednak go nie masz, konieczna będzie ręczna instalacja. Można ją przeprowadzić za pomocą prostego polecenia:
apt-get install nmap
Można też zainstalować Nmapa, klonując oficjalne repozytorium git.
git clone https://github.com/nmap/nmap.git
Następnie, przejdź do sklonowanego katalogu i zainstaluj potrzebne elementy przy użyciu następujących poleceń:
./configure make make install
Najnowsza wersja oprogramowania, wraz z instalatorami binarnymi dla systemów Windows, macOS i Linux (RPM), jest dostępna tutaj.
Skanowanie podatności za pomocą Nmap
Do popularnych i najczęściej wykorzystywanych skryptów Nmap do wyszukiwania CVE należą nmap-vulners, vulscan oraz vuln. Te skrypty umożliwiają uzyskanie kluczowych informacji o słabych punktach systemu.
Nmap Vulners
Nmap Vulners to jeden z szeroko znanych skanerów podatności. Zobaczmy, jak skonfigurować to narzędzie oraz jak przeprowadzić podstawowe skanowanie CVE. Silnik skryptowy Nmapa analizuje odpowiedzi HTTP, aby zidentyfikować CPE dla danego skryptu.
Instalacja
Aby zainstalować skrypt Nmap-vulners, przejdź do katalogu skryptów Nmap, używając tego polecenia:
cd /usr/share/nmap/scripts/
Kolejnym krokiem jest sklonowanie repozytorium git:
git clone https://github.com/vulnersCom/nmap-vulners.git
Po sklonowaniu repozytorium nie są wymagane żadne dodatkowe czynności konfiguracyjne. Narzędzie zainstaluje się automatycznie.
Aby sprawdzić skrypty NSE dostępne w bazie danych Nmap-vulners, użyj polecenia ls. Wyświetli ono wszystkie skrypty z rozszerzeniem .nse.
Użycie
Używanie skryptów NSE jest proste. Wystarczy dodać argument -script do polecenia Nmap, aby określić, który skrypt NSE ma zostać użyty.
nmap -sV --script vulners [--script-args mincvss=<arg_val>] <cel>
Należy pamiętać o dodaniu argumentu „-sV” podczas korzystania ze skryptów NSE. Bez informacji o wersji od Nmap, Nmap-vulners nie będzie mógł uzyskać dostępu do bazy danych exploitów Vulners. Dlatego parametr -sV jest zawsze niezbędny.
Przykładowe polecenie
Składnia jest intuicyjna. Wystarczy wywołać skrypt za pomocą opcji „–script”, podać silnik odpowiedzialny za wyszukiwanie luk oraz cel, aby rozpocząć skanowanie.
nmap -sV --script nmap-vulners/ <cel>
Aby przeskanować konkretne porty, dodaj opcję „-p” na końcu polecenia, podając numery portów, które chcesz uwzględnić.
nmap -sV --script nmap-vulners/ <cel> -p80,223
Nmap – vuln
Skrypty NSE są klasyfikowane według predefiniowanych kategorii. Do niektórych z nich należą: uwierzytelnianie, transmisja, brute force, intruz, złośliwe oprogramowanie, bezpieczeństwo, wersja i podatność. Pełną listę kategorii skryptów NSE wraz z ich charakterystyką można znaleźć tutaj.
Skrypty z kategorii „podatności” wyszukują znane luki w zabezpieczeniach i raportują je tylko wtedy, gdy zostaną znalezione w systemie docelowym.
nmap -sV --script vuln <cel>
Nmap-vulscan
Vulscan to skrypt NSE, który pomaga Nmapowi w wykrywaniu luk w systemach na podstawie zidentyfikowanych usług i ich wersji. Działa jak rozszerzenie Nmapa, przekształcając go w skaner podatności. Opcja Nmap -sV umożliwia wykrycie wersji każdej usługi, co jest wykorzystywane do identyfikacji potencjalnych exploitów dla znalezionych luk w systemie.
Obecnie dostępne są następujące, wstępnie skonfigurowane bazy danych:
- exploitdb.csv
- osvdb.csv
- securitytracker.csv
- openvas.csv
- scipvuldb.csv
- xforce.csv
- securityfocus.csv
- cve.csv
Instalacja
Aby zainstalować Vulscan, na początek przejdź do katalogu skryptów Nmap:
cd /usr/share/nmap/scripts/
Następny krok to sklonowanie repozytorium git i zainstalowanie wszystkich wymaganych elementów:
git clone https://github.com/scipag/vulscan.git ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
Vulscan korzysta z prekonfigurowanych baz danych przechowywanych lokalnie. Aby je zaktualizować, przejdź do katalogu updater:
cd vulscan/utilities/updater/
Następnie zmień uprawnienia pliku, aby umożliwić jego uruchomienie:
chmod +x updateFiles.sh
Na koniec zaktualizuj bazy danych exploitów:
./updateFiles.sh
Użycie
Użyjmy vulscan do skanowania podatności za pomocą Nmap. Skrypt NSE vulscan może być używany analogicznie do nmap-vulners.
nmap -sV --script vulscan <cel>
Domyślnie Vulscan przeszukuje wszystkie bazy danych. Przeszukiwanie wszystkich naraz może być czasochłonne. Używając parametru vulscandb, możesz wskazać tylko jedną bazę danych CVE do przeszukania.
--script-args vulscandb=nazwa_bazy_danych
Przykładowe polecenie
nmap -sV --script vulscan --script-args vulscandb=exploit.csv <cel> -p 80,233
Indywidualne skanowanie podatności
Można też przeprowadzać skanowanie pod kątem określonych luk, korzystając z poszczególnych skryptów z każdej kategorii. Tutaj znajduje się lista ponad 600 skryptów NSE i 139 bibliotek NSE.
Przykłady
- http-csrf: Ten skrypt wykrywa luki typu Cross-Site Request Forgery (CSRF).
nmap -sV --script http-csrf <cel>
- http-sherlock: Ma za zadanie wykorzystać lukę „shellshock” w aplikacjach internetowych.
nmap -sV --script http-sherlock <cel>
- http-slowloris-attack: Bez uruchamiania ataku DoS, ten skrypt sprawdza, czy serwer sieciowy lub system docelowy jest podatny na atak Slowloris DoS.
nmap -sV --script http-slowloris-check <cel>
- http-vmware-path-vuln: Testuje VMWare ESX, ESXi i Server pod kątem podatności na path-traversal.
nmap -sV --script http-vmware-path-vuln <cel>
- http-passwd: Próbuje pobrać /etc/passwd lub boot.ini, aby sprawdzić, czy serwer WWW jest podatny na przeglądanie katalogów.
nmap -sV --script http-passwd <cel>
- http-internal-ip-disclosure: Sprawdza, czy serwer Web, wysyłając żądanie HTTP/1.0 bez nagłówka hosta, ujawnia swój wewnętrzny adres IP.
nmap -sV --script http-internal-ip-disclosure <cel>
- http-vuln-cve2013-0156: Identyfikuje serwery Ruby on Rails, które mogą być podatne na ataki DOS i wstrzykiwanie poleceń.
nmap -sV --script http-vuln-cve2013-0156 <adres-celu>
Na koniec, tutaj znajduje się lista wszystkich skryptów NSE, które należą do kategorii „vuln”.
Czy twój system wykrywa skanowanie Nmapem?
Rekonesans to pierwszy etap etycznego hakowania i testów penetracyjnych. Podczas niego hakerzy starają się zlokalizować luki i słabe punkty w systemie, które mogą zostać zaatakowane. Dlatego systemy obronne powinny być w stanie takie skanowanie wykryć.
Jeśli korzystasz z narzędzi SIEM (Security Information and Event Management), zapór sieciowych lub innych środków ochrony, powinieneś otrzymywać alerty. Oto lista najlepszych narzędzi SIEM do zabezpieczania firm i organizacji przed cyberatakami. Narzędzia te pomagają również w rejestrowaniu skanów Nmap. Skanowanie podatności jest korzystne, gdyż wczesne wykrycie może zapobiec przyszłym uszkodzeniom systemu.
Wniosek
Mam nadzieję, że ten artykuł okazał się pomocny w zrozumieniu, jak używać Nmap do skanowania w poszukiwaniu słabych punktów zabezpieczeń.
Być może zainteresuje Cię również lista skanerów bezpieczeństwa sieci Web o otwartym kodzie źródłowym do wyszukiwania podatności.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.