Skrypty NSE. Przewodnik pomocniczy Nmap (strona podręcznika)

Dom / Nie włącza się

Poniżej znajdziesz 20 podstawowych przykłady użycia polecenia Nmap.

Dowiesz się, jak korzystać z Nmap z wiersz poleceń w systemie Linux aby wyszukać aktywne hosty w sieci i skanować otwarte porty.

Zobaczysz jak zdalnie wykryć system operacyjny korzystanie z odcisków palców stosu TCP/IP i w jaki sposób poznaj wersję oprogramowanie działa na zdalnym serwerze.

Pokażę Ci również, jak to zrobić za pomocą Nmapa ukryte skanowanie, Jak zdefiniuj zaporę sieciową i jak zmień adres MAC.

1. Zeskanuj pojedynczy host lub adres IP

Skandować Oddzielny adres IP:

$nmapa 192.168.1.1

Przeskanuj serwer według Nazwa hosta:

$ serwer nmap.site

Zwiększyć Poziom szczegółowości wyniki skanowania:

$ nmap -v serwer..strona

2. Skanowanie wielu adresów IP

Skandować Wiele adresów IP:

$nmap 192.168.1.1 192.168.1.2 192.168.1.3 $namp 192.168.1.1,2,3

Skandować Podsieć:

$ nmap 192.168.1.0/24 $ nmap 192.168.1.*

Skandować Zakres adresów IP (192.168.1.0 — 192.168.1.200):

$nmapa 192.168.1.0-200

3. Wyszukaj aktywne komputery w sieci

Dobra rada: Przeskanuj swoją sieć jednym poleceniem ping! Znajdź wszystkie aktywne komputery!

Przeskanuj sieć w poszukiwaniu Aktywni gospodarze:

$ nmap -sn 192.168.1.0/24

4. Zeskanuj listę hostów z pliku

Skanowanie listy hostów/sieci z Plik:

$ nmap -iL wejście.txt

Format pliku:

# Wpisy mogą być w dowolnym formacie, # z którym współpracuje Nmap z linii poleceń (adresy IP, nazwy hostów, CIDR, IPv6 lub zakresy # oktetów). Wpisy muszą być oddzielone jedną lub kilkoma spacjami, tabulatorami # lub znakami nowej linii. $ cat wejście.txt serwer.site 192.168.1.0/24 192.168.2.1,2,3 192.168.3.0-200

5. Wykluczanie adresów IP/hostów/sieci ze skanowania

Wyklucz cele ze skanu Nmapa:

$ nmap 192.168.1.0/24 --wyklucz 192.168.1.1 $ nmap 192.168.1.0/24 --wyklucz 192.168.1.1 192.168.1.5 $ nmap 192.168.1.0/24 --wyklucz 192.168.1.1,2,3

Lista wykluczeń hosty pobrane z pliku:

$ nmap 192.168.1.0/24 --excludefileclude.txt

Format pliku z wykluczonymi hostami jest podobny do powyższego.

6. Skanuj określone porty

Skandować Jeden port:

$ nmap -p 80 192.168.1.1

Skandować Wiele portów:

$ nmap -p 80.443 192.168.1.1

Skandować Zakres portów:

$ nmap -p 80-1000 192.168.1.1

Skandować Wszystkie porty:

$ nmap -p „*” 192.168.1.1

Zeskanuj kilka z nich Wspólne porty:

$ nmap --top-ports 5 192.168.1.1 $ nmap --top-ports 10 192.168.1.1

7. Określenie obsługiwanych protokołów IP

Ustal które Protokoły IP(TCP, UDP, ICMP itp.) obsługuje skanowane hosty:

$ nmap -sO 192.168.1.1

8. Skanowanie portów TCP/UDP

Skandować wszystkie porty TCP:

$ nmap -sT 192.168.1.1

Skandować określone porty TCP:

$ nmap -p T:80 192.168.1.1

Skandować wszystkie porty UDP:

$ nmap -sU 192.168.1.1

Skandować określone porty UDP:

$ nmap -p U:53 192.168.1.1

Łączenie skanowania różnych portów:

$ nmap -p U:53,79,113,T:21-25,80,443,8080 192.168.1.1

9. Szybkie skanowanie

Aktywować Tryb szybki skandować:

$ nmap -F 192.168.1.1

* Skanuje mniej portów niż w przypadku zwykłego skanowania.

10. Pokaż przyczynę statusu portu

Pokazywać Powód, przez co Nmap uważa, że ​​port jest w określonym stanie:

$ nmap --powód 192.168.1.1

11. Pokaż tylko otwarte porty

Pokazywać Tylko otwarte porty(lub ewentualnie otwarte):

$ nmap --otwórz 192.168.1.1

12. Definicja systemu operacyjnego

Jeden z najbardziej znanych funkcjonalność Nmap to zdalne wykrywanie systemu operacyjnego w oparciu o analizę stosu TCP/IP.

Nmap wysyła serię pakietów TCP i UDP do zdalnego hosta i sprawdza odpowiedzi.

Po przeprowadzeniu wielu testów Nmap porównuje wyniki ze swoją bazą danych i, jeśli znajdzie dopasowanie, wyświetla informacje o systemie operacyjnym.

Włączyć coś Definicja systemu operacyjnego:

$ nmap -O 192.168.1.1

13. Ustalanie wersji Usług

Włączyć coś Określanie wersji usług:

$ nmap -sV 192.168.1.1

* Określa wersje programów działających na serwerze zdalnym.

14. Wykrywanie zapory sieciowej

Dowiedz się, czy Twój komputer jest przez nie chroniony Filtry wsadowe Lub Zapora sieciowa:

$ nmap -sA 192.168.1.1

15. Podstawienie adresu MAC

Zastąpić Adresy MAC:

$ nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1

Zmień adres MAC Losowy MAC:

$ nmap --spoof-mac 0 192.168.1.1

16. Przeskanuj zaporę sieciową w poszukiwaniu luk

Te trzy typy skanowań wykorzystują subtelną lukę w dokumencie RFC protokołu TCP, aby kategoryzować porty jako otwarte i zamknięte.

Podczas skanowania systemu zgodnego z RFC każdy pakiet, który nie ma ustawionego bitu SYN, RST lub ACK, spowoduje odpowiedź RST, jeśli port jest zamknięty, lub brak odpowiedzi, jeśli port jest otwarty.

Ponieważ żaden z tych bitów nie jest ustawiony, wówczas dowolna kombinacja pozostałych trzech (FIN, PSH i URG) będzie poprawna.

TCP Zerołów:

$ nmap -sN 192.168.1.1

* Nie ustawiono żadnych bitów (flagi w nagłówku TCP 0).

Finał TCPłów:

$ nmap -sF 192.168.1.1

* Ustawiony jest tylko bit TCP FIN.

Święta Bożego Narodzenia TCPłów:

$ nmap -sX 192.168.1.1

* Flagi FIN, PSH i URG są ustawione (paczka świeci się jak choinka).

17. Tajne skanowanie

Dobra rada: Zachowaj anonimowość podczas skanowania portów! Użyj Nmap + Tor + ProxyChains! Bezpieczne i łatwe testy penetracyjne!

SYN.TCPłów:

$ nmap -sS 192.168.0.1

* Nazywane skanowaniem półotwartym, ponieważ nie otwiera pełnych połączeń TCP.

18. Wyłączanie wykrywania hosta (brak pingu)

Nie pinguj hostów przed skanowaniem:

$ nmap -Pn 192.168.1.1

19. Wyłączanie korzystania z DNS

Dobra rada: Chcesz zwiększyć bezpieczeństwo swojego Linuksa? Szyfruj ruch DNS, aby chronić przed fałszowaniem!

Nigdy nie odwracaj rozpoznawania nazw DNS dla każdego wykrytego aktywnego adresu IP.

Nmap to bardzo popularny skaner sieciowy typu open source kod źródłowy, którego można używać zarówno w systemie Windows, jak i Linux. Nmap lub Network Mapper został opracowany przez Gordona Luona i w tej chwili używane przez specjalistów ds. bezpieczeństwa i administratorów systemów na całym świecie.

Program ten pomaga administratorom systemu bardzo szybko zrozumieć, które komputery są podłączone do sieci, poznać ich nazwy, a także sprawdzić, jakie oprogramowanie jest na nich zainstalowane, jaki system operacyjny i jakie typy filtrów są używane. Funkcjonalność programu można rozszerzyć o własny język skryptowy, co pozwala administratorom zautomatyzować wiele działań.

Na przykład skrypty mogą automatycznie wykrywać nowe luki w zabezpieczeniach Twojej sieci. Namp może być używany w dobrych i złych intencjach, należy jednak uważać, aby nie używać nmapa niezgodnie z prawem. W tym samouczku przyjrzymy się, jak używać namp do skanowania portów system operacyjny Linuksa. Ale najpierw musisz spróbować zrozumieć, jak działa to narzędzie.

W sieciach komputerowych wszystkie podłączone urządzenia mają swój własny adres IP. Każdy komputer obsługuje protokół ping, za pomocą którego można określić, czy jest podłączony do sieci. Po prostu wysyłamy żądanie ping do komputera, a jeśli odpowie, zakładamy, że jest podłączony. Nmap przyjmuje nieco inne podejście. Komputery również reagują w określony sposób na pewne zdarzenia pakiety sieciowe, narzędzie po prostu wysyła wymagane pakiety i sprawdza, którzy hosty wysłali odpowiedź.

Ale prawdopodobnie już o tym wiesz. Co bardziej interesujące, Nmap dowiaduje się, jakie usługi działają na komputerze. Esencja pracy każdego człowieka programy sieciowe w oparciu o porty. Aby odebrać wiadomość z sieci, program musi otworzyć port w Twoim komputerze i czekać na połączenia przychodzące. Aby wysłać wiadomość przez sieć, musisz połączyć się z innym portem programu (docelowym). Program będzie wówczas musiał otworzyć port, na którym będzie oczekiwał na odpowiedź.

Narzędzie nmap podczas skanowania sieci przegląda dostępny zakres portów i próbuje połączyć się z każdym z nich. Jeśli połączenie się powiedzie, w większości przypadków poprzez przesłanie kilku pakietów, program może nawet dowiedzieć się, która wersja oprogramowania nasłuchuje połączeń z tym portem. Teraz, gdy omówiliśmy podstawy, przyjrzyjmy się, jak używać nmap do skanowania portów i sieci.

Składnia Nmapa

Polecenie uruchomienia Nmapa jest bardzo proste; wystarczy przekazać mu docelowy adres IP lub sieć w parametrach, a także określić opcje, jeśli to konieczne:

$ Opcje nmap – adres

Przyjrzyjmy się teraz głównym opcjom, których będziemy potrzebować w tym artykule.

  • -SL- po prostu utwórz listę uruchomionych hostów, ale nie skanuj portów nmap;
  • -sP- sprawdź tylko, czy host jest dostępny za pomocą polecenia ping;
  • -PN- uważaj wszystkie hosty za dostępne, nawet jeśli nie odpowiadają na polecenia ping;
  • -sS/sT/sA/sW/sM- skanowanie TCP;
  • -sU- skanowanie UDP nmap;
  • -sN/sF/sX- Skanowanie TCP NULL i FIN;
  • -sC- domyślnie uruchom skrypt;
  • -si- leniwe skanowanie Indle;
  • -P- określ zakres portów do sprawdzenia;
  • -sV- szczegółowe badanie portów w celu określenia wersji usług;
  • -O- określić system operacyjny;
  • -T- prędkość skanowania, im wyższa, tym szybciej;
  • -D- skanowanie masek przy użyciu fikcyjnych adresów IP;
  • -S- zmienić swój adres IP na podany;
  • -mi- użyj określonego interfejsu;
  • --spoof-mac- ustaw swój adres MAC;
  • -A- określenie systemu operacyjnego za pomocą skryptów.

Teraz, gdy omówiliśmy wszystkie podstawowe opcje, porozmawiajmy o tym, jak działa skanowanie portów nmap.

Jak używać Nmap do skanowania portów w systemie Linux

Następnie spójrzmy na przykłady nmap. Najpierw przyjrzyjmy się, jak znaleźć wszystkie urządzenia podłączone do sieci; w tym celu wystarczy użyć opcji -sL i określić maskę naszej sieci. w moim przypadku jest to 192.168.1.1/24. Możesz znaleźć maskę sieci lokalnej, uruchamiając polecenie:

Z wyniku interfejsu, którego używasz, pobierz liczbę po ukośniku, a przed ukośnikiem wskaż adres IP routera. Polecenie przeskanowania sieci nmap będzie wyglądać następująco:

nmap -sL 192.168.1.1/24

Czasami to skanowanie może nie dać żadnych wyników, ponieważ niektóre systemy operacyjne mają ochronę przed skanowaniem portów. Można to jednak obejść, po prostu używając polecenia ping do przeskanowania wszystkich adresów IP w sieci. W tym celu dostępna jest opcja -sn:

nmap -sn 192.168.1.1/24

Jak widać, program wykrył urządzenia aktywne w Internecie. Następnie możemy przeskanować porty nmap w poszukiwaniu żądanego hosta, uruchamiając narzędzie bez opcji:

sudo nmap 192.168.1.1

Teraz widzimy, że mamy otwartych kilka portów, z których wszystkie są używane przez jakąś usługę na komputerze docelowym. Każdy z nich może być potencjalnie podatny na ataki, dlatego posiadanie wielu otwartych portów na komputerze nie jest bezpieczne. Ale to nie wszystko, co możesz zrobić; w następnej kolejności nauczysz się korzystać z nmap.

Aby dowiedzieć się więcej szczegółowe informacje o maszynie i działających na niej usługach, możesz użyć opcji -sV. Narzędzie połączy się z każdym portem i określi wszystkie dostępne informacje:

sudo nmap -sV 192.168.1.1

Na naszej maszynie działa ftp, więc możemy spróbować przyjrzeć się tej usłudze bliżej, używając standardowych skryptów nmap. Skrypty pozwalają na bardziej szczegółowe sprawdzenie portu i znalezienie ewentualnych luk. Aby to zrobić, użyj opcji -sC i -p, aby ustawić port:

sudo nmap -sC 192.168.56.102 -p 21

Wykonaliśmy domyślny skrypt, ale są też inne skrypty, na przykład wszystkie skrypty dla ftp można znaleźć za pomocą polecenia:

sudo find /usr/share/nmap/scripts/ -name "*.nse" | grep-ftp

Następnie spróbujemy użyć jednego z nich, w tym celu wystarczy go określić za pomocą opcji --script. Ale najpierw możesz zapoznać się z informacjami o skrypcie:

sudo nmap --script-help ftp-brute.nse

Ten skrypt spróbuje określić login i hasło FTP na zdalnym hoście. Następnie uruchom skrypt:

sudo nmap --script ftp-brute.nse 192.168.1.1 -p 21

W rezultacie skrypt pobrał login i hasło admin/admin. Dlatego nie musisz używać domyślnych opcji logowania.

Możesz także uruchomić narzędzie z opcją -A; aktywuje to bardziej agresywny tryb działania narzędzia, dzięki któremu uzyskasz większość informacji za pomocą jednego polecenia:

sudo nmap -A 192.168.1.1

Należy pamiętać, że prawie wszystkie informacje, które widzieliśmy wcześniej, znajdują się tutaj. Można go użyć do zwiększenia ochrony tej maszyny.

Wnioski

W tym artykule przyjrzeliśmy się, jak przeprowadzane jest skanowanie portów nmap, a także kilku proste przykłady za pomocą tego narzędzia. Te polecenia nmap mogą być przydatne dla wielu administratorów systemów w celu poprawy bezpieczeństwa ich systemów. Ale to nie wszystkie możliwości narzędzia. Kontynuuj eksperymentowanie z narzędziem, aby dowiedzieć się więcej, ale nie w sieciach innych osób!

O autorze

Założyciel i administrator serwisu, pasjonat oprogramowania open source i systemów operacyjnych System Linux. Obecnie używam Ubuntu jako głównego systemu operacyjnego. Oprócz Linuksa interesuję się wszystkim co jest z nim związane technologia informacyjna i współczesna nauka.

Istnieją cztery typy skryptów NSE, a mianowicie:

  • Skrypty wstępne– to skrypty uruchamiane przed jakąkolwiek operacją skanowania Nmapa, są wykonywane, gdy Nmap nie zebrał jeszcze żadnych informacji o celu.
  • Skrypty hosta– to skrypty wykonywane po wykonaniu przez Nmap normalnych operacji, takich jak wykrywanie hosta, skanowanie portów, wykrywanie wersji i wykrywanie systemu operacyjnego na hoście docelowym.
  • Skrypty serwisowe– to skrypty uruchamiane w odniesieniu do określonych usług nasłuchujących na hoście docelowym.
  • Skrypty postulacyjne– to skrypty uruchamiane po przeskanowaniu przez Nmap wszystkich hostów docelowych.

Następnie skrypty te są pogrupowane w różne kategorie, w tym te służące do uwierzytelniania ( autoryzacja), odkrywanie gospodarzy ( audycja), brutalna siła ataki mające na celu odgadnięcie danych uwierzytelniających ( bydlę), odkrywając więcej o sieci ( odkrycie), powodując odmowę usługi ( tak), wykorzystując pewną lukę ( wykorzystać) itp. Wiele skryptów należy do kategorii domyślnej.

Notatka: Zanim przejdziemy dalej, powinieneś zwrócić uwagę na następujące kluczowe punkty:

  • Nie wykonuj skryptów pochodzących od osób trzecich bez ich krytycznego przejrzenia lub tylko wtedy, gdy ufasz ich autorom. Dzieje się tak dlatego, że skrypty te nie są uruchamiane w piaskownicy i dlatego mogą nieoczekiwanie lub złośliwie uszkodzić system lub naruszyć Twoją prywatność.
  • Po drugie, wiele z tych skryptów może prawdopodobnie działać jako plik a reguła wstępna Lub postulat scenariusz. Biorąc to pod uwagę, w celu zachowania spójności zaleca się użycie reguły wstępnej.
  • Nmap używa skrypty/skrypt.db bazy danych, aby znaleźć dostępne domyślne skrypty i kategorie.

Aby zobaczyć lokalizację wszystkich dostępnych skryptów NSE, uruchom na terminalu polecenie w następujący sposób:

$ zlokalizuj *.nse/usr/share/nmap/scripts/acarsd-info.nse /usr/share/nmap/scripts/address-info.nse /usr/share/nmap/scripts/afp-brute.nse /usr/share/nmap/scripts /afp-ls.nse /usr/share/nmap/scripts/afp-path-vuln.nse /usr/share/nmap/scripts/afp-serverinfo.nse /usr/share/nmap/scripts/afp-showmount.nse /usr/share/nmap/scripts/ajp-auth.nse /usr/share/nmap/scripts/ajp-brute.nse /usr/share/nmap/scripts/ajp-headers.nse /usr/share/nmap/scripts /ajp-methods.nse /usr/share/nmap/scripts/ajp-request.nse /usr/share/nmap/scripts/allseeingeye-info.nse /usr/share/nmap/scripts/amqp-info.nse /usr /share/nmap/scripts/asn-query.nse ...

Skrypty NSE są ładowane przy użyciu flagi --script, która umożliwia także uruchamianie własnych skryptów poprzez podanie kategorii, nazw plików skryptów lub nazw katalogów, w których znajdują się skrypty.

Składnia włączania skryptów jest następująca:

$ namp -sC cel #ładuj domyślne skrypty LUB $ nmap --script nazwa pliku|kategoria|katalog|wyrażenie,... cel

Możesz wyświetlić opis skryptu za pomocą opcji --script-help. Dodatkowo możesz przekazywać argumenty do niektórych skryptów za pomocą opcji --script-args i --script-args-file, ta druga służy do podania nazwy pliku, a nie argumentu wiersza poleceń.

Aby wykonać skanowanie większością domyślnych skryptów, użyj opcji -sC lub alternatywnie użyj opcji --script=default, jak pokazano.

$ nmap -sC scanme.nmap.org LUB $ nmap --script=domyślny scanme.nmap.org LUB $ nmap --script domyślny scanme.nmap.org

Przykładowe wyjście
Uruchamianie Nmap 7.01 (https://nmap.org) o 15.11.2017 10:36 IST Raport skanowania Nmap dla scanme.nmap.org (45.33.32.156) Host działa (opóźnienie 0,0027 s). Nie pokazano: 999 filtrowanych portów PORT STATE SERVICE 80/tcp otwarte http |_http-title: Śmiało i ScanMe! Nmap wykonany: 1 adres IP (1 host w górę) przeskanowany w 11,74 sekundy

Aby wykorzystać skrypt do odpowiedniego celu, można przede wszystkim uzyskać krótki opis jego działania, np nagłówki http.

$ nmap --script-help Nagłówki http scanme.nmap.org

Przykładowe wyjście
Począwszy od Nmap 7.01 (https://nmap.org) o 15.11.2017 10:37 IST http-headers Kategorie: bezpieczne wykrywanie https://nmap.org/nsedoc/scripts/http-headers.html Wykonuje żądanie HEAD dla folderu głównego („/”) serwera WWW i wyświetla zwrócone nagłówki HTTP.

Ładowanie skryptów NSE w celu wykonania skanowania Nmap

Możesz wybrać lub załadować skrypty w celu przeprowadzenia skanowania różnymi metodami opisanymi poniżej.

Używanie nazwy skryptu

Kiedy już wiesz, co robi skrypt, możesz przeprowadzić skanowanie za jego pomocą. Możesz użyć jednego skryptu lub wprowadzić listę nazw skryptów rozdzielonych przecinkami. Poniższe polecenie umożliwi wyświetlenie nagłówków HTTP skonfigurowanych na serwerze internetowym na hoście docelowym.

$ nmap --script Nagłówki http scanme.nmap.org

Skanuj nagłówki HTTP

Uruchamianie Nmap 7.01 (https://nmap.org) o 15.11.2017 10:39 IST Raport skanowania Nmap dla scanme.nmap.org (45.33.32.156) Host działa (opóźnienie 0,27 s). Nie pokazano: 996 zamkniętych portów PORT STATE SERVICE 22/tcp otwarte ssh 80/tcp otwarte http | nagłówki http: | Data: środa, 15 listopada 2017 r. 05:10:04 GMT | Serwer: Apache/2.4.7 (Ubuntu) | Akceptuj zakresy: bajty | Zmieniaj: Akceptuj-kodowanie | Połączenie: zamknij | Typ zawartości: tekst/html | |_ (Typ żądania: HEAD) 179/tcp filtrowane bgp 31337/tcp otwarte Elite Nmap zrobione: 1 adres IP (1 host w górę) przeskanowany w 20,96 sekundy

Korzystanie z kategorii

Możesz także ładować skrypty z jednej kategorii lub z listy kategorii oddzielonych przecinkami. W tym przykładzie używamy wszystkich skryptów z kategorii domyślnej i transmisji, aby przeprowadzić skanowanie hosta 192.168.56.1 .

$ nmap --skrypt domyślny, rozgłaszanie 192.168.56.1

Używanie * symboli wieloznacznych

Jest to przydatne, gdy chcesz wybrać skrypty o podanym wzorcu nazwy. Na przykład, aby załadować wszystkie skrypty o nazwach zaczynających się od ssh, uruchom poniższe polecenie na terminalu:

$ nmap --skrypt „ssh-*” 192.168.56.1

Używanie wyrażeń boolowskich

Można także wybierać skrypty przy użyciu wyrażeń boolowskich, które można zbudować za pomocą metody I, Lub, I nie operatorzy. A nazwy w wyrażeniu boolowskim mogą być kategorią, nazwą pliku skrypt.db lub wszystkie.

Poniższe polecenie załaduje skrypty z kategorii domyślnych lub rozgłoszeniowych.

$ nmap --script „domyślny lub rozgłoszeniowy” 192.168.56.10

Co jest równoważne:

$ nmap --skrypt domyślny, rozgłaszanie 192.168.56.10

Aby załadować wszystkie skrypty z pominięciem tych w pliku słaby kategorii, uruchom to polecenie na terminalu.

$ nmap --script „nie jest zagrożony” 192.168.56.10

Następne polecenie wygląda na nieco skomplikowane, ale jest łatwe do zrozumienia, wybiera skrypty w kategoriach domyślnych lub rozgłoszeniowych, pomijając te, których nazwy zaczynają się od ssh-:

$ nmap --script "(domyślny lub rozgłoszeniowy) i nie ssh-*” 192.168.56.10

Co ważne, możliwe jest łączenie kategorii, nazw skryptów, katalogu zawierającego własne skrypty lub wyrażenie logiczne w celu ładowania skryptów, na przykład:

$ nmap --rozgłaszanie skryptu, podatność, metody uwierzytelniania ssh,/ścieżka/do/niestandardowe/skrypty 192.168.56.10

Przekazywanie argumentów do skryptów NSE

Poniżej znajduje się przykład pokazujący, jak przekazywać argumenty do skryptów za pomocą metody --argumenty-skryptu opcja:

$ nmap --script mysql-audit --script-args "mysql-audit.username="root", \ mysql-audit.password="hasło_tutaj", mysql-audit.filename="nselib/data/mysql-cis. rewizja""

Aby przekazać numer portu, użyj metody -P opcja nmapa:

$ nmap -p 3306 --script mysql-audit --script-args "mysql-audit.username="root", \ mysql-audit.password="hasło_tutaj", mysql-audit.filename="nselib/data/mysql -cis.audyt""

Powyższe polecenie uruchamia audyt konfiguracji zabezpieczeń serwera bazy danych MySQL pod kątem części pliku CIS MySQL v1.0.2 reper. Możesz także tworzyć własne, przydatne, niestandardowe pliki audytu dla innych audytów MySQL.

To tyle na teraz. Więcej informacji możesz znaleźć na stronie podręcznika nmap lub sprawdzić NSE Usage.

Aby rozpocząć pisanie własnych skryptów NSE, zapoznaj się z tym przewodnikiem: https://nmap.org/book/nse-tutorial.html

Wniosek

Nmapa to naprawdę potężne i przydatne narzędzie, którego każdy administrator systemu lub sieci potrzebuje w swoim arsenale bezpieczeństwa – NSE po prostu zwiększa jego wydajność.

W tym artykule przedstawiliśmy Państwu Silnik skryptowy Nmap i sprawdziliśmy, jak znaleźć i wykorzystać różne dostępne skrypty w różnych kategoriach. Jeśli masz jakieś pytania, nie wahaj się do nas napisać za pomocą poniższego formularza komentarza.

Dla wielu z nas, których zadania zawodowe przynajmniej od pewnego czasu są ściśle związane z bezpieczeństwem informacji, Nmap już dawno stał się znanym i użytecznym narzędziem. Jest niezastąpiony jak ciepły koc w mroźną zimową noc. Tyle że Nmap to cholernie skuteczny koc.

Nmap to popularny i wydajny skaner wieloplatformowy bezpieczeństwo sieci, uruchamiany z wiersza poleceń, dzięki któremu możesz niezwykle efektywnie eksplorować dowolną sieć. Może również pomóc w uzyskaniu przeglądu systemów podłączonych do Twojej sieci; możesz go użyć, aby znaleźć adresy IP wszystkich „żywych” hostów, scan otwarte porty i usług działających na tych hostach, a także wiele, wiele więcej.

Bez wątpienia Nmap jest najbardziej wszechstronnym dostępnym obecnie skanerem portów. Tak, można znaleźć szybsze skanery, ale nie ma takiego, który byłby tak przydatny i po prostu niezbędny do rozwiązania wielu, wielu Twoich problemów. I zdecydowana większość profesjonalistów w tej dziedzinie bezpieczeństwo informacji kategorycznie zgadzam się z tym stwierdzeniem.

Jednak znacznie mniej osób wie, że jedną z najciekawszych funkcji Nmapa jest możliwość korzystania ze skryptów NSE, które zapewnią Twojemu ulubionemu narzędziu bezpieczeństwa sieci jeszcze większą elastyczność i wydajność. Z ich pomocą możesz robić rzeczy, których nigdy byś się nie spodziewał po nawet bardzo zaawansowanym skanerze portów, takim jak Nmap.

Przyjrzyjmy się bliżej skryptom NSE, a być może ich potencjał może Cię miło zaskoczyć.

Innymi słowy, oprócz standardowego sprawdzania otwartych portów skanerem Nmap, korzystając z NSE, masz także możliwość uzyskania rozszerzonych informacji o działających na nim usługach. Na przykład za pomocą skryptów NSE możesz przeprowadzić głębszą analizę swoich usług sieciowych i sprawdzić, jak dobrze są one skonfigurowane, jakie są dostępne informacje, czy używane są słabe dane uwierzytelniające itp. W rzeczywistości skrypty NSE zmieniają Nmap w elastyczny platforma interakcji z usługami sieciowymi.

Funkcje skryptowania silnika skryptowego Nmap

Zespół programistów skanera portów Nmap wymyślił i stworzył silnik skryptowy przede wszystkim w celu rozwiązywania problemów takich jak:

1. Badania sieciowe

Jest to główny obszar praktycznego zastosowania Nmapa. Niektóre skrypty mają na celu ułatwienie, optymalizację i przyspieszenie pracy Twojego ulubionego skanera portów. Niektóre przykłady ich użycia obejmują wykonywanie zadań takich jak:

  • wyszukiwanie danych WHOIS (protokół sieciowy warstwy aplikacji oparty na protokole TCP; jego głównym zastosowaniem jest pozyskiwanie w formie tekstowej danych rejestracyjnych o właścicielach nazw domen, adresach IP i systemy autonomiczne) według odpowiednich domen;
  • wysyłanie zapytań do głównych regionalnych serwerów WHOIS ARIN (Ameryka Północna), RIPE (Europa i Bliski Wschód) lub APNIC (Azja i Pacyfik) w celu ustalenia właściciela konkretnego adresu IP;
  • wyszukiwanie identyfikacyjne na otwartych portach (umożliwia identyfikację podłączonych do nich użytkowników);
  • wysyłanie żądań poprzez protokół SNMP (protokół internetowy służący do zarządzania urządzeniami w sieciach IP opartych na architekturach TCP/UDP);
  • tworzenie list dostępnych zasobów i usług poprzez protokoły sieciowe Dla zdalny dostęp NFS, SMB lub RPC.

2. Bardziej zaawansowana opcja wykrywania wersji

System wersjonowania usług i aplikacji Nmapa może rozpoznać tysiące różnych usług przy użyciu sond i dopasowywania sygnatur wyrażeń regularnych, ale nie jest on wszechmocny. Przykładowo identyfikacja usługi Skype v2 wymaga pracy dwóch niezależnych od siebie sond, których możliwości wykrywania wersji nie są zbyt elastyczne. Nmap jest także w stanie rozpoznać niektóre usługi SNMP, jeśli spróbuje brutalnie przebić się przez kilkaset nazw społeczności. Obydwa powyższe zadania nie są zbyt wygodne w użyciu standardowych metod wersjonowania Nmapa, ale oba można łatwo wykonać za pomocą NSE. Z tego powodu system kontroli wersji domyślnie wywołuje teraz NSE w celu rozwiązania problemu kontroli wersji podczas przetwarzania niektórych złożonych usług.

3. Wyszukaj luki

Po wykryciu nowej luki staje się ona powszechnie znana, a specjaliści ds. bezpieczeństwa sieci muszą pilnie przeskanować swoje sieci, aby szybko zidentyfikować podatne systemy, zanim zrobią to za nich przestępcy. Chociaż Nmap nie jest pełnoprawnym skanerem podatności, potężne możliwości NSE pozwalają mu przeprowadzać kontrolę podatności nawet przy bardzo rygorystycznych wymaganiach. Na przykład, gdy błąd Heartbleed w oprogramowaniu kryptograficznym OpenSSL naraził na szwank setki tysięcy systemów na całym świecie, programiści Nmap zareagowali, pisząc w ciągu dwóch dni skrypt wykrywający ssl-heartbleed.

4. Wykrywanie tylnych drzwi

Wielu cyberprzestępców, a także niektóre zautomatyzowane robaki, pozostawia tylne drzwi, aby w przyszłości zapewnić tylne drzwi umożliwiające łatwą penetrację systemu. Niektóre z tych backdoorów można wykryć za pomocą standardowa procedura wykrywa wersje Nmap w oparciu o dopasowanie sygnatur wyrażeń regularnych, ale wiele bardziej złożonych robaków i backdoorów wymaga zaawansowanych funkcji NSE, aby niezawodnie wykryć. W szczególności NSE służy do wykrywania backdoora DoublePulsar, który wykorzystuje lukę w implementacji Protokół SMB, wersje backdoora dla serwera IRC UnrealIRCd, a także serwery FTP vsftpd i ProFTPd.

5. Wykrywanie podatności

Zaimplementowany w oparciu o język skryptowy ogólnego przeznaczenia, NSE można nawet wykorzystać do tworzenia exploitów, które mogą pomóc w wykryciu luk w zabezpieczeniach, zanim ich istnienie stanie się znane opinii publicznej. Ta możliwość dodawania niestandardowych exploitów skryptowych może być niezwykle przydatna dla niektórych osób (głównie testerów penetracji). Jednak NSE nadal nie jest pełnoprawną platformą do tworzenia sygnatur i exploitów, jak Metasploit.

Jakie są kategorie skryptów NSE?

Obecnie istnieje 598 skryptów NSE, które można znaleźć w folderze „scripts”, podkatalogu głównego katalogu Nmap. Aby zapewnić lepszą wydajność, wszystkie skrypty są indeksowane w bazie danych „scripts/script.db”, która wskazuje, do której kategorii lub kategorii należy każdy skrypt.

W zależności od przeznaczenia, a także w celu uproszczenia ich obsługi, skrypty NSE pogrupowano w różne kategorie. Obecnie zdefiniowano następujące kategorie skryptów NSE: auth, broadway, brute, default. odkrycie, dos, exploit, zewnętrzne, fuzzer, natrętne, złośliwe oprogramowanie, bezpieczne, wersja i luka (w nazwach kategorii nie jest rozróżniana wielkość liter). Poniżej znajduje się bardziej szczegółowe przedstawienie każdej kategorii:

  • autoryzacja- Ta kategoria skryptów zajmuje się (lub omija) poświadczeniami uwierzytelniającymi w systemie docelowym. Przykładami takich skryptów są „x11-access”, „ftp-anon” i „oracle-enum-users”. Należy pamiętać, że skrypty wykorzystujące atak brute-force w celu ustalenia danych uwierzytelniających są klasyfikowane jako brutalne.
  • audycja— skrypty z tej kategorii są zwykle używane do wykrywania hostów, których nie ma na liście wiersz poleceń, poprzez interakcję szerokokanałową z sieć lokalna. W przypadku użycia argumentu skryptu „newtargets” automatycznie dodadzą wykryte hosty do kolejki skanowania.
  • bydlę- Ta kategoria skryptów służy do przeprowadzania ataków typu brute-force w celu uzyskania poświadczeń uwierzytelniających zdalnego serwera. Nmap oferuje skrypty ataku brute-force dla dziesiątek protokołów. Należą do nich następujące skrypty: „http-brute”, „oracle-brute”, „snmp-brute” itp.
  • domyślny— ta kategoria skryptów definiuje skrypty wybrane przez twórców Nmapa jako przydatne do rozszerzenia funkcjonalności skanera lub optymalizacji jego działania i przypisane do „domyślnego” zestawu podstawowego. Są one uruchamiane przy użyciu opcji „-sC” lub „-A”, a nie poprzez określenie określonej listy skryptów za pomocą opcji „--script”. Można jawnie określić tę kategorię skryptów, podobnie jak inne, używając „--script=default”. Zespół Nmap stara się opierać na następujących wymaganiach przy ustalaniu, czy dany skrypt powinien zostać zaklasyfikowany jako domyślny:
    • prędkość— skanowanie powinno domyślnie zakończyć się szybko, co wyklucza włączenie do tej kategorii hakerów uwierzytelniających metodą brute-force, pająków internetowych i wszelkich innych skryptów, których czas skanowania dla jednej usługi liczony jest w minutach, a nawet godzinach.
    • pożytek— Skanowanie kategorii domyślnej wymaga uzyskania cennych i istotnych informacji. Innymi słowy, wynik skanowania takiego skryptu powinien być zrozumiały i przydatny dla przeciętnego specjalisty ds. bezpieczeństwa sieci. W W przeciwnym razie domyślnie nie ma sensu go uruchamiać.
    • zwięzłość— dane wyjściowe otrzymane przez skaner Nmap są wykorzystywane do różnych celów i potrzeb, dlatego informacje te powinny być czytelne i zwięzłe. Skrypty, które często tworzą wiele stron z pełnym wyjściem wszystkich otrzymanych informacji, również nie należą do domyślnej kategorii skryptów. Innymi słowy, skrypty NSE, które są klasyfikowane jako domyślne, gdy żadnego nie znajdą ważne informacje raport nic nie pokazuje. Dotyczy to domyślnych skryptów, które szukają ukrytych luk - wyświetlają wyniki tylko wtedy, gdy te luki wykryją.
    • niezawodność— wiele skryptów w swojej pracy może opierać się na danych z analizy heurystycznej i rozmytego dopasowywania sygnatur w celu wyciągnięcia pewnych wniosków na temat docelowego hosta lub usługi. Przykładami takich skryptów są „sniffer-detect” i „sql-injection”. Takie skrypty nie będą domyślnie kategoryzowane, ponieważ wyniki ich pracy są często błędne i mogą wprowadzić w błąd użytkownika, który nie rozumie do końca całej specyfiki ich pracy.
    • dyskretność— niektóre skrypty mogą być nadmiernie inwazyjne, gdy wykorzystują znaczne zasoby zdalnego systemu, co może doprowadzić do awarii tego systemu lub usługi lub ich działania mogą zostać odebrane przez zdalnych administratorów jako atak. Takie skrypty również nie są zaliczane do kategorii domyślnej. Jednakże, niektóre „umiarkowanie agresywne” skrypty były nadal klasyfikowane przez zespół Nmapa jako domyślne, w oparciu o ich użyteczność i to, jak poprawnie mogą się zachowywać, biorąc pod uwagę inne czynniki.
    • poufność- wiele skryptów może ujawnić informacje poufne osobom trzecim, ze względu na samą specyfikę ich pracy. Na przykład skrypty do wyszukiwania danych WHOIS muszą zgłaszać docelowy adres IP rejestratorom regionalnym. Innymi słowy, w kategorii domyślnych skryptów NSE zespół Nmap stara się nie dodawać skryptów, które mogłyby naruszyć poufność.
  • odkrycie- Ta kategoria skryptów aktywnie próbuje dowiedzieć się więcej o sieci, wysyłając publiczne żądania do rejestratora, urządzeń obsługujących SNMP, usług katalogowych itp. Przykładami takich skryptów są „html-title” (pobiera tytuł ścieżki głównej witryn internetowych), „smb-enum-shares” (lista popularnych Zasoby systemu Windows) i „snmp-sysdescr” (pobiera szczegółowe informacje o systemie za pośrednictwem standardowego protokołu internetowego do zarządzania urządzeniami SNMP).
  • tak— skryptów tej kategorii należy używać z dużą ostrożnością, ponieważ mogą one prowadzić do odmowy usługi. Czasami są one używane przez testerów bezpieczeństwa do testowania podatności systemu na ataki typu „odmowa usługi”, ale takie testowanie może mieć niepożądane skutki uboczne, takie jak awaria niektórych podatnych na ataki usług.
  • wykorzystać— celem tych skryptów jest aktywne wykorzystanie określonej luki. Przykładami tej kategorii skryptów są „jdwp-exec” i „http-shellshock”.
  • zewnętrzny— skrypty w tej kategorii mogą wysyłać dane do stron trzecich kontrolujących bazy danych lub inne zasoby sieciowe. Przykładem takiego skryptu jest „whois-ip”, który łączy się z serwerami WHOIS w celu uzyskania informacji o adresie IP celu. Zawsze istnieje możliwość, że zewnętrzni operatorzy baz danych będą rejestrować wszystko, co im wysyłasz, co w wielu przypadkach będzie zawierać informacje o Twoim adresie IP i adresie IP celu. Większość skryptów zajmujących się wyłącznie ruchem pomiędzy komputerem skanującym a klientem nie należy do tej kategorii.
  • fuzzer to kategoria skryptów zaprojektowana do wysyłania nieoczekiwanych lub losowych pól do oprogramowania serwera w każdym pakiecie. Chociaż ta metoda może być przydatna do wyszukiwania nieznanych błędów i luk w oprogramowaniu, jest to powolny proces, który również wykorzystuje przepustowość sieci. Przykładem skryptu w tej kategorii jest „dns-fuzz”, który bombarduje serwer DNS częściowo zmodyfikowanymi zapytaniami o domeny, aż do awarii serwera lub upłynięcia limitu czasu ustawionego przez użytkownika.
  • natrętny—do tej kategorii skryptów zaliczają się te, których nie można zaliczyć do bezpiecznych, gdyż ryzyko jest zbyt duże, że system docelowy załamie się pod ich naciskiem, będzie wymagało znacznych zasobów na hoście docelowym (na przykład przepustowości lub czasu procesora) lub z innego powodu, ich wykonanie będzie postrzegane przez administratorów systemu docelowego jako złośliwe działanie. Przykładami takich skryptów są „http-open-proxy” (który próbuje użyć serwera docelowego jako proxy HTTP) i „snmp-brute” (który próbuje odgadnąć tzw. „ciąg społeczności” urządzeń SNMP poprzez wysłanie ich popularne wartości, takie jak publiczne, prywatne i cisco). Jeżeli skrypt nie należy do kategorii wersji specjalnych, należy go zaliczyć do kategorii bezpiecznych lub natrętnych.
  • złośliwe oprogramowanie- te skrypty sprawdzają, czy platforma docelowa jest zainfekowana złośliwe oprogramowanie lub tylnymi drzwiami. Przykładami skryptów w tej kategorii są „smtp-strangeport”, który monitoruje serwery SMTP działające na nietypowych numerach portów oraz „auth-spoof”, który wykrywa fałszywe demony identd (implementujące obsługę protokołu uwierzytelniania użytkownika), które jeszcze dostarczają fałszywą odpowiedź przed otrzymaniem żądania. Zarówno w pierwszym, jak i drugim przykładzie takie zachowanie, jeśli zostanie wykryte, jest zwykle oznaką zainfekowania systemu złośliwym oprogramowaniem.
  • bezpieczna— wszystkie skrypty, które nie zostały utworzone w celu powodowania awarii usług, wykorzystywania dużej przepustowości sieci lub innych zasobów i nie miały na celu wykorzystania luk w zabezpieczeniach, są klasyfikowane jako bezpieczne. Jest znacznie mniej prawdopodobne, że przyciągną uwagę zdalnych administratorów, chociaż (jak w przypadku każdej innej funkcjonalności Nmapa) nie ma stuprocentowej gwarancji, że nigdy nie przyciągną uwagi zdalnych administratorów. Większość tych skryptów wykonuje zadania związane z ogólną eksploracją sieci. Przykładami skryptów w tej kategorii są „ssh-hostkey” (pobiera klucz SSH hosta) i „html-title” (pobiera tytuł ze strony internetowej). Skrypty z kategorii wersji nie są klasyfikowane jako bezpieczne, natomiast inne skrypty, które nie są bezpieczne, należy określić jako inwazyjne.
  • wersja- Skrypty z tej specjalnej kategorii stanowią rozszerzenie funkcjonalności wykrywania wersji i nie można ich jawnie wybrać. Są one wybierane do uruchamiania tylko po wyświetleniu monitu o określenie wersji Nmap („-sV”). Ich danych wyjściowych nie można oddzielić od wyników funkcji kontroli wersji i nie działają one jako skrypty hosta ani usługi. Przykładami takich skryptów są „wersja-skypev2”, „wersja-pptp” i „wersja-iax2”.
  • słaby— skrypty z tej kategorii sprawdzają obecność określonej znanej luki i zazwyczaj generują tylko te wyniki, które potwierdzają, że taka luka została znaleziona. Przykładami takich skryptów są „realvnc-auth-bypass” i „afp-path-vuln”.

Skrypty, w zależności od ich funkcjonalności oraz fazy skanowania, podczas której są wykonywane, dzielą się na cztery typy (niektóre skrypty mogą obsługiwać kilka typów operacji jednocześnie):

  • Skrypty reguły wstępnej — tego typu skrypty są uruchamiane przed wykonaniem jakichkolwiek operacji Nmap, co oznacza, że ​​są wykonywane przed fazą skanowania, kiedy Nmap nie zebrał jeszcze żadnych informacji o celu. Skrypty te mogą być przydatne do wykonywania zadań niezależnych od konkretnych celów skanowania, takich jak wysyłanie żądań rozgłoszeniowych do odpytywania serwerów DHCP i DNS SD. Niektóre z tych skryptów mogą tworzyć nowe cele do skanowania Nmap (tylko jeśli podasz argument NSE „newtargets”). Na przykład skrypt „dns-zone-transfer” może uzyskać listę adresów IP w domenie za pomocą żądania transferu strefy, a następnie automatycznie dodać je do listy celów skanowania Nmap. Skrypty typu Prerule skrypty identyfikowane są za pomocą funkcji prerule.
  • Skrypty hosta — te skrypty są uruchamiane podczas standardowego procesu skanowania Nmap, po tym jak skaner Nmap wykonał normalne operacje, takie jak wykrywanie hosta, skanowanie portów, wykrywanie wersji i wykrywanie systemu operacyjnego na hoście docelowym. Ten typ skryptu jest wywoływany raz dla każdego hosta docelowego, który pasuje do jego funkcji hostrule. Przykłady obejmują skrypty „whois-ip”, które wyszukują informacje o własności docelowego adresu IP, oraz „path-mtu”, które próbują określić maksymalny rozmiar pakietu IP, który może dotrzeć do celu bez konieczności fragmentacji.
  • Skrypty usług — ten typ skryptu jest uruchamiany po wykryciu określonych usług na hoście docelowym. Na przykład Nmap zawiera ponad 15 skryptów usług HTTP, które są uruchamiane w celu współpracy z serwerami internetowymi. Jeśli host ma serwery WWW działające na wielu portach, skrypty te można wykonać wiele razy (po jednym na każdy port). Są to najpopularniejsze typy skryptów w Nmap i różnią się tym, że zawierają funkcję portrule określającą, dla których z wykrytych usług skrypt powinien działać.
  • Skrypty Postrule — tego typu skrypty są uruchamiane jednorazowo, po tym jak Nmap przeskanuje wszystkie zamierzone cele. Mogą być przydatne do formatowania i prezentacji wyników informacji uzyskanych przez skaner Nmap. Na przykład skrypt „ssh-hostkey” jest lepiej znany jako skrypt serwisowy (z określoną funkcją portrule), który łączy się z serwerami SSH i je wykrywa klucze publiczne i drukuje je. Ale zawiera także funkcjonalność postruli, która sprawdza duplikaty kluczy wśród wszystkich sprawdzanych hostów, a następnie drukuje wszystkie znalezione. Kolejny potencjalny przykład wykorzystania skryptów tego typu to odwrotne wydrukowanie wyniku skanera Nmap - na przykład lista wszystkich hostów, na których działa dana usługa, zamiast zwykłej listy wszystkich hostów, na których działają usługi. Skrypty postruli identyfikuje się za pomocą funkcji postruli.

Notatka: Wiele skryptów można uruchomić jako skrypt przedregułowy lub skrypt postrułowy. W takich przypadkach zaleca się użycie funkcji reguły wstępnej, aby uniknąć niespójności.

Wieczny paranoik, Anton Koczukow.


Zobacz także:

  • Odkrywanie usług i ich wersji
  • Definicja systemu operacyjnego
  • Opcje zarządzania czasem i produktywnością
  • Różne opcje
  • Interakcja w czasie wykonywania
  • Przykłady
  • Informacje o skryptach Nmap (w języku angielskim):

    Ukryty przed gośćmi


    Najnowsza wersja dokumentacji Nmapa (w języku angielskim):

    Ukryty przed gośćmi


    Oficjalna książka o Nmap od twórców Nmap (w języku angielskim):

    Ukryty przed gośćmi

    Preambuła

    nmap - Narzędzie do eksploracji sieci i skaner portów

    Nmap („Network Mapper”) to narzędzie typu open source do eksploracji sieci i testowania bezpieczeństwa. Został zaprojektowany do szybkiego skanowania dużych sieci, chociaż dobrze radzi sobie również z pojedynczymi celami. Nmap wykorzystuje nieprzetworzone pakiety IP w genialny sposób, aby określić, jakie hosty są dostępne w sieci, jakie usługi (nazwa i wersja aplikacji) oferują, jakich systemów operacyjnych (i wersji systemów operacyjnych) używają, jakich typów filtrów pakietów/zapór sieciowych używają, i dziesiątki innych cech. Chociaż Nmap jest powszechnie używany do testowania bezpieczeństwa, wiele sieci i administratorzy systemu uważają, że jest przydatny do typowych zadań, takich jak monitorowanie struktury sieci, zarządzanie harmonogramami uruchamiania usług i śledzenie czasu pracy hosta lub usługi.

    Dane wyjściowe Nmap to lista zeskanowanych celów dodatkowe informacje dla każdego w zależności od określonych opcji. Kluczową informacją jest „tabela ważnych portów”. Ta tabela zawiera numer portu, protokół, nazwę usługi i stan. Status może być otwarty, filtrowany, zamknięty lub niefiltrowany. Otwarty oznacza, że ​​aplikacja na komputerze docelowym jest gotowa do ustanowienia połączenia/odbioru pakietów na tym porcie. Filtrowany oznacza, że ​​zapora sieciowa, filtr sieciowy lub inne zakłócenia sieciowe blokują port i Nmap nie może określić, czy port jest otwarty, czy zamknięty. Zamknięte porty nie są powiązane z żadną aplikacją, dlatego można je otworzyć w dowolnym momencie. Porty są uważane za niefiltrowane, gdy odpowiadają na żądania Nmap, ale Nmap nie jest w stanie określić, czy są otwarte, czy zamknięte. Nmap wysyła polecenie open|filtered izamknięte|filtered, gdy nie może określić, który z tych dwóch stanów opisuje port. Na żądanie tabela ta może również zawierać szczegółowe informacje na temat wersji oprogramowania. Podczas skanowania protokołu IP (-sO) Nmap dostarcza informacji o obsługiwanych protokołach IP, a nie o otwartych portach.

    Oprócz tabeli ważnych portów, Nmap może dostarczyć dalszych informacji o celach: rozpoznanych nazw DNS, przewidywań dotyczących używanego systemu operacyjnego, typów urządzeń i adresów MAC.

    Typowe skanowanie za pomocą Nmap pokazano w przykładzie 1. Jedynymi argumentami użytymi w tym przykładzie są -A, aby określić wersję systemu operacyjnego, skanowanie skryptu i śledzenie; -T4 dla szybszego wykonania; następnie dwa hosty docelowe.

    Przykład 1: Typowy przykład skanowania za pomocą Nmapa:

    # nmap -A -T4 scanme.nmap.org plac zabaw Uruchamianie Nmap (https://nmap.org/) Ciekawe porty na scanme.nmap.org (64.13.134.52): (1663 przeskanowanych portów, ale nie pokazanych poniżej, jest w stanie : filtrowane) WERSJA USŁUGI PAŃSTWA PORTU 22/tcp otwarte ssh OpenSSH 3.9p1 (protokół 1.99) 53/tcp otwarta domena 70/tcp zamknięte gopher 80/tcp otwarte http Apache httpd 2.0.52 ((Fedora)) 113/tcp zamknięte urządzenie uwierzytelniające typ: ogólnego przeznaczenia Działa: Linux 2.4.X|2.5.X|2.6.X Szczegóły systemu operacyjnego: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 Ciekawe porty na placu zabaw.nmap.org (192.168.0.40 ): (1659 przeskanowanych portów, które nie zostały pokazane poniżej, jest w stanie: zamknięte) WERSJA USŁUGI PAŃSTWA PORTU 135/tcp open msrpc Microsoft Windows RPC 139/tcp otwarte netbios-ssn 389/tcp otwarte ldap? 445/tcp otwórz microsoft-ds Microsoft Windows XP microsoft-ds 1002/tcp otwórz 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 (rozdzielczość 400x250; port VNC: 5900) 5900/tcp open vnc VNC (protokół 3.8) MAC Adres: 00:A0:CC:63:85:4B (komunikacja Lite-on) Typ urządzenia: ogólnego przeznaczenia Działa: Microsoft Windows NT/2K/XP Szczegóły systemu operacyjnego: Microsoft Windows XP Pro RC1+ do wersji ostatecznej Informacje serwisowe: Systemy operacyjne: Windows , Windows XP Nmap został ukończony: 2 adresy IP (2 hosty w górę) przeskanowane w 88,392 sekundy

    Podsumowanie opcji

    Stosowanie:
    nmap [Typy skanowania] [Opcje] (określone_cele)

    OKREŚLENIE CELÓW SKANOWANIA:

    Może pracować z nazwami hostów, adresami IP, sieciami itp.
    Na przykład: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
    -iL<ввести_имя_файла>: Import z listy hostów/sieci
    -iR<количество хостов>: Wybierz losowe cele
    -wykluczać : wyklucz hosty/sieci
    –wyklucz plik<файл_с_исключениями>: Wyklucz listę z pliku

    WYKRYWANIE HOSTA:

    SL: Skanowanie w celu utworzenia listy — po prostu utwórz listę celów do przeskanowania
    -sn: Skanowanie pingiem - po prostu sprawdź, czy host działa
    -Pn: Traktuj wszystkie hosty jako aktywne - pomiń wykrywanie hostów
    -PS/PA/PU/PY[lista_portów]: określone hosty TCP SYN/ACK, UDP lub SCTP
    -PE/PP/PM: Pingowanie przy użyciu żądań echa ICMP, żądań znacznika czasu i maski sieci
    -PO[protocol_list]: Pingowanie przy użyciu protokołu IP
    -n/-R: Nigdy nie rozwiązuj DNS/Zawsze rozwiązuj [domyślnie: czasami]
    –serwery DNS<сервер1[,сервер2],…>: Ustaw własne serwery DNS
    –system-dns: Użyj systemowego narzędzia rozpoznawania nazw DNS
    –traceroute: Śledź (śledź ścieżkę) do każdego hosta

    RÓŻNE TECHNIKI SKANOWANIA:

    SS/sT/sA/sW/sM: TCP SYN/przy użyciu wywołania systemowego Connect()/ACK/Window/Maimon scan
    -sU: skanowanie UDP
    -sN/sF/sX: skanowanie TCP Null, FIN i Xmas
    –flagi skanowania<флаги>: Ustaw własne flagi TCP
    -si<зомби_хост[:порт]>: Skanowanie w trybie bezczynności
    -sY/sZ: skanowanie SCTP INIT/COOKIE-ECHO
    -sO: skanowanie protokołu IP
    -B : Skanowanie zwrotne FTP

    DEFINICJA PORTÓW I KOLEJNOŚCI SKANOWANIA:

    P<диапазон_портов>: Skanuj tylko określone porty
    Przykład: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
    -F: Szybkie skanowanie – skanuje ograniczoną liczbę portów
    -r: Skanuj porty sekwencyjnie — nie losuj portów
    –górne porty<количество_портов>: Skanuj<количество_портов>najczęstsze porty
    –stosunek portu<рейтинг>: Skanuj porty o wartości znamionowej większej niż<рейтинг>

    DEFINICJA USŁUG I ICH WERSJE:

    SV: Przeglądaj otwarte porty, aby określić informacje o usłudze/wersji
    –intensywność wersji<уровень>: Ustaw od 0 (łatwy) do 9 (wypróbuj wszystkie żądania)
    –version-light: Ogranicz do najlżejszych zapytań (intensywność 2)
    –version-all: Użyj każdego pojedynczego żądania (intensywność 9)
    –version-trace: Drukuje szczegółowe informacje o procesie skanowania (w celu debugowania)

    SKANUJ PRZY UŻYCIU SKRYPTÓW:

    SC: odpowiednik opcji –script=domyślna
    –skrypt= : jest to rozdzielona przecinkami lista katalogów, plików skryptów lub kategorii skryptów
    –argumenty-skryptu=<имя1=значение1,[имя2=значение2,…]>: Przekazywanie argumentów do skryptów
    –script-args-file=nazwa pliku: Przekaż argumenty pliku do skryptów NSE
    –script-trace: Drukuje wszystkie odebrane i wysłane dane
    –script-updatedb: Aktualizuje bazę danych skryptów
    –pomoc-skryptu= : Wyświetla pomoc dotyczącą skryptów. Rozdzielana przecinkami lista skryptów lub lista kategorii skryptów.

    DEFINICJA systemu operacyjnego:

    O: Aktywuj funkcję wykrywania systemu operacyjnego
    –osscan-limit: Używaj funkcji wykrywania systemu operacyjnego tylko w przypadku „obiecujących” hostów
    –osscan-guess: Zgadnij wyniki wykrycia systemu operacyjnego

    OPCJE ZARZĄDZANIA CZASEM I PRODUKTYWNOŚCIĄ:

    Opcje wymagające argumentu<время>, są podawane w milisekundach, dopóki nie dodasz „s” (sekund), „m” (minut) lub „h” (godzin) do wartości (np. 30m).
    -T<0-5>: Ustaw szablon ustawień zarządzania czasem (im więcej, tym szybciej)
    –min-grupa hostów/max-grupa hostów<кол_хостов>: Ustaw rozmiar grupy dla skanowania równoległego
    –min-równoległość/max-równoległość<кол_хостов>: Reguluje równoległość żądań
    –min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout<время>: dostosowuje czas oczekiwania na odpowiedź na żądanie.
    –maksymalna liczba ponownych prób<количество_попыток>: Ustawia maksymalną liczbę retransmisji żądań
    –przekroczenie limitu czasu hosta<время>: Zatrzymuje skanowanie powolnych celów
    –opóźnienie-skanowania/–maksymalne opóźnienie-skanowania<время>: reguluje opóźnienie pomiędzy żądaniami
    –stawka minimalna<число>: Wysyłaj żądania z intensywnością nie mniejszą niż<число>na sekundę
    –stawka maksymalna<число>: Wysyłaj żądania o intensywności nie większej niż<число>na sekundę

    OMIJANIE FIREWALLÓW/IDS:

    F; –mtu<значение>: Pakiety fragmentów (opcjonalnie z określoną wartością MTU)
    -D<фикт_хост1,фикт_хост2[,ME],…>: Maskowanie skanów przy użyciu fałszywych hostów
    -S : Zmień adres źródłowy
    -mi<интерфейс>: Użyj określonego interfejsu
    -g/–port-źródłowy<номер_порта>: Użyj określonego numeru portu
    – proxy : Przekazywanie połączeń przez serwer proxy HTTP/SOCKS4
    –długość danych<число>: Dodaj dowolne dane do wysłanych pakietów
    –opcje ip<опции>: Wyślij pakiet z określonymi opcjami IP
    –ttl<значение>: Ustaw czas życia pola IP (czas życia)
    –spoof-mac : Ustaw własny adres MAC
    –badsum: Wysyłaj pakiety z fałszywymi sumami kontrolnymi TCP/UDP/SCTP

    WYNIKI WYNIKÓW:

    ON/-oX/-oS/-oG Wyniki wyjściowe normalne, XML, s| -oA<базовове_имя_файла>: Użyj trzech głównych formatów wyjściowych jednocześnie
    -v: Zwiększ poziom werbalny (ustaw dwa lub więcej, aby zwiększyć efekt)
    -d: Zwiększ lub ustaw poziom debugowania (do 9)
    –powód: Pokaż powód, dla którego port znajduje się w określonym stanie
    –open: Pokaż tylko otwarte (lub prawdopodobnie otwarte) porty
    –packet-trace: Śledzenie odebranych i przesłanych pakietów
    –iflist: lista interfejsów i routerów (do debugowania)
    –log-errors: Rejestruje błędy/ostrzeżenia w pliku wyjściowym trybu normalnego
    –append-output: Dołącz na końcu zamiast nadpisywać pliki wyjściowe
    -wznawiać<имя_файла>: Kontynuuj przerwane skanowanie
    –arkusz stylów<путь/URL>: Konfiguruje arkusz stylów XSL do konwersji danych wyjściowych XML na HTML
    –webxml: Ładuje arkusz stylów z Nmap.Org
    –no-stylesheet: Usuń deklarację arkusza stylów XSL z XML

    RÓŻNE OPCJE:

    6: Włącz skanowanie IPv6
    -A: Włącz wykrywanie systemu operacyjnego i wersji oraz funkcje skanowania i śledzenia za pomocą skryptów
    –katalog danych<имя_директории>: Określa lokalizację plików Nmap
    –send-eth/–send-ip: Użyj surowej warstwy Ethernet/IP
    –privileged: Załóżmy, że użytkownik ma wszystkie uprawnienia
    –unprivileged: sugeruje, że użytkownik nie ma uprawnień do korzystania z surowych gniazd
    -V: Wydrukuj numer wersji
    -h: Wyświetl tę stronę pomocy

    INTERAKTYWNE POLECENIA:

    POMOC: Nie działa z „sudo nmap”, więc użyj „sudo –i”
    Podczas działania możesz wysyłać zapytania do nmap za pomocą następujących kluczy:
    ? Pokaż te informacje
    v/V zwiększa/zmniejsza werbalność
    d/D zwiększanie/zmniejszanie debugowania
    p/P włącz/wyłącz śledzenie pakietów
    i inne klawisze, które zostaną wydrukowane w statusie

    PRZYKŁADY:
    Definiowanie celu skanowania

    W wierszu poleceń Nmap wszystko, co nie jest opcją (lub argumentem opcji) jest traktowane jako cel skanowania. W najprostszym przypadku do skanowania używany jest adres IP lub nazwa sieciowa komputera docelowego.

    Czasami konieczne jest przeskanowanie całej sieci. Aby to osiągnąć, Nmap obsługuje adresowanie CIDR. Możesz dodać /<кол-во бит>do adresu IP lub nazwy sieci, a Nmap przeskanuje każdy adres IP, dla którego pierwszy<кол-во бит>takie same jak w przypadku określonego hosta. Na przykład 192.168.10.0/24 przeskanuje 256 hostów między 192.168.10.0 (binarnie: 11000000 10101000 00001010 00000000) a 192.168.10.255 (binarnie: 11000000 10101000 00). 001010 11111111) włącznie. 192.168.10.40/24 zrobi dokładnie to samo. Wiedząc, że adres IP scanme.nmap.org to 64.13.134.52, rekord taki jak scanme.nmap.org/16 przeskanuje 65 536 adresów IP z zakresu od 64.13.0.0 do 64.13.255.255. Najmniejszą akceptowalną wartością jest /0, przy której przeskanowany zostanie cały Internet. Najwyższą wartością jest /32, przy której skanowany będzie tylko określony adres hosta lub IP, ponieważ wszystkie bity adresu są wyłączone.

    Notacja CIDR jest krótka, ale nie zawsze wystarczająco elastyczna. Na przykład chcesz przeskanować adres 192.168.0.0/16, ale pominąć wszystkie adresy IP kończące się na .0 lub .255, ponieważ Są to zazwyczaj adresy rozgłoszeniowe. Nmap może wykonać to skanowanie poprzez określenie zakresów w oktetach. Zamiast określać zwykły adres IP, dla każdego oktetu można zdefiniować listę liczb lub zakres oddzielonych przecinkami. Na przykład 192.168.0-255.1-254 przekaże wszystkie adresy z zakresu kończącego się na .0 i .255. Zakresy nie muszą być podawane tylko w ostatnich oktetach: wpisanie 0-255.0-255.13.37 spowoduje przeskanowanie wszystkich adresów internetowych kończących się na 13.37. Ten rodzaj skanowania może być przydatny do przeglądania Internetu i różnych badań.

    Adresy IPv6 można podawać jedynie w formie w pełni odpowiadającej poprawnej formie zapisu adresów IPv6. CIDR i użycie zakresów w oktetach nie mają zastosowania do adresów IPv6, ponieważ są rzadko używane.

    W wierszu poleceń Nmap możesz przekazać różne definicje obiektów docelowych, niekoniecznie tego samego typu. Zespół nmap scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255 zrobi to, czego oczekujesz.

    Cele skanowania są zwykle określane w wierszu poleceń i istnieją różne opcje kontrolowania wyboru celu:

    IL<имя_файла>(Wejście z listy)

    Odczytuje cele z<имя_файла>. Chociaż przesyłanie dużej listy hostów do skanowania jest powszechne, nie jest to wygodne. Na przykład serwer DHCP udostępnia listę 10 000 aktualnie używanych adresów i chcesz ją przeskanować. A może chcesz przeskanować wszystkie adresy IP z wyjątkiem przypisanych do nich, aby wykryć nieautoryzowane użycie statycznych adresów IP. Po prostu wygeneruj listę hostów do przeskanowania i przekaż nazwę pliku do Nmapa jako argument opcji -iL. Wpisy w pliku mogą mieć dowolną formę akceptowaną przez Nmap (adresy IP, nazwy sieci, CIDR, IPv6 lub zakresy oktetów). Każdy wpis musi być oddzielony spacją lub większą liczbą, znakami tabulacji lub znakami nowej linii. Możesz przekazać myślnik(-) jako argument nazwy pliku, jeśli chcesz, aby Nmap czytał listę hostów ze standardowego wejścia, a nie z pliku.

    IR<кол-во хостов>(Wybiera losowe cele)

    W przypadku skanowania całej sieci lub jakichkolwiek badań konieczne może być losowe wybranie celów. Argument<кол-во хостов>określa, ile adresów IP należy wygenerować. Nieodpowiednie adresy IP, takie jak zakresy adresów prywatnych, rozgłoszeniowych lub niezlokalizowanych, są automatycznie pomijane. Argument 0 można przekazywać do skanowania w nieskończoność. Należy pamiętać, że niektórzy administratorzy systemu mogą nie lubić nieautoryzowanego skanowania swoich sieci i mogą narzekać. Korzystaj z tej opcji na własne ryzyko! Jeśli nudzisz się w deszczowy dzień, wypróbuj nmap -sS -PS80 -iR 0 -p 80, aby przeskanować losowe serwery internetowe.

    -wykluczać<хост1>[,<хост2>[,…]] (Wyklucz hosty/sieci)

    Określa rozdzieloną przecinkami listę celów, które należy wykluczyć ze skanowania, nawet jeśli należą one do określonego zakresu skanowania. Przekazana lista wykorzystuje standardową składnię Nmap, więc może zawierać nazwy sieci, adresy CIDR, zakresy oktetów itp. Ta opcja może być przydatna, jeśli sieć, którą chcesz przeskanować, zawiera serwery lub systemy, które negatywnie reagują na skanowanie portów, lub podsieci administrowane przez inne osoby.

    –wyklucz plik<имя_файла>(Wyklucz listę z pliku)

    Ta opcja działa tak samo jak –exclude, z tą różnicą, że elementy docelowe do wykluczenia są oddzielone spacjami, tabulatorami lub znakami nowej linii<файле>, a nie w wierszu poleceń.

    © 2024 ermake.ru - O naprawie komputerów PC - Portal informacyjny