(masscan, zmap, arp-scan, fping)
Enumeracja sieci
Wykrycie hostów, portów, adresacji, podstawowych usług – faza rozpoznania IP. Główne narzędzie to Nmap. Nmap (Network Mapper) to jedno z najpopularniejszych narzędzi do skanowania sieci, hostów, portów i usług. Pozwala na: identyfikację aktywnych urządzeń, otwartych portów, wersji usług, systemów operacyjnych oraz potencjalnych podatności. Pozostałe przykładowe narzędzia to narzędzia to:
masscan ekstremalnie szybki odpowiednik nmapa (skanuje cały Internet w kilka minut)
zmap używany do bardzo szybkiego i dużego skanowania sieci (np. do znajdowania podatnych usług na wielką skalę).
fping dla pasywnego i aktywnego ping sweepingu.
arp-scan dla lokalnych sieci (warstwa 2, bardzo skuteczne w LAN).
Nmap identyfikuje otwarte porty oraz działające na nich usługi (np. HTTP, FTP, SMB). Dzięki temu możemy określić, które protokoły są aktywne na danej maszynie i dobrać odpowiednie narzędzia do dalszej interakcji.
Po zakończeniu skanowania Nmapem, kolejnym krokiem jest wykorzystanie specjalistycznych narzędzi — takich jak curl, wget, ftp czy smbclient — do eksploracji, pobierania danych, logowania się do usług czy wyszukiwania flag i luk.
- Nmap odpowiada na pytanie: „co jest otwarte?”
curl,wget,ftp,smbclientodpowiadają na pytanie: „co mogę z tym zrobić?”
Nmap command
man nmap Wyświetla podręcznik obsługi narzędzia nmap
nmap -h Wyświetla listę wszystkich opcji i parametrów, z jakimi możemy uruchomić nmap
nmap <target> Podstawowe skanowanie celu.
nmap <target1> <target2> Skanowanie wielu celów.
nmap 192.168.1.1-50 Skanowanie zakresu adresów IP.
nmap 192.168.1.0/24 Skanowanie całej podsieci.
nmap -p 22,80,443 <target> Skanowanie określonych portów.
nmap -p- <target> Skanowanie wszystkich portów.
nmap -sV <target> Wykrywanie wersji usług.
nmap -O <target> Wykrywanie systemu operacyjnego.
nmap -sT <target> Wykonanie pełnego połączenia TCP (connect scan).
nmap -sS <target> Wykonanie skanowania SYN (ukryte, stealth scan).
nmap -sU <target> Wykonanie skanowania UDP.
nmap -A <target> Agresywne skanowanie (wersje usług, system, skrypty).
nmap -Pn <target> Wyłączenie wykrywania hostów (pominięcie ping).
nmap -sL <target> Wypisanie listy celów bez wykonywania skanu.
nmap -sn <target> Ping scan – sprawdzenie, czy hosty są aktywne.
nmap -oN output.txt Zapisanie wyników w formacie tekstowym (normal).
nmap -oX output.xml Zapisanie wyników w formacie XML.
nmap -oG output.gnmap Zapisanie wyników w formacie grepable (łatwym do filtrowania).
nmap --script <script> Uruchomienie określonego skryptu NSE.
nmap --top-ports <number> Skanowanie najczęściej używanych portów.
nmap --script vuln <target> Uruchomienie skryptów wykrywających podatności.
nmap -6 <target> Skanowanie w sieci IPv6.
nmap -T4 <target> Dostosowanie prędkości skanowania (T4 = szybkie).
nmap --version-all Szczegółowe wykrywanie wersji usług.
nmap --traceroute <target> Traceroute – określenie trasy do celu.
nmap --script=http-* <target> Uruchomienie skryptów związanych z HTTP.
nmap -sC <target> Uruchomienie domyślnych skryptów detekcji (kategoria "default").
nmap --script-timeout <time> Ustawienie limitu czasu dla skryptów.
nmap --max-retries <num> Ustawienie maksymalnej liczby ponowień dla prób sondowania.
nmap --scan-delay <time> Ustawienie opóźnienia między pakietami podczas skanowania.
nmap --data-length <length> Dostosowanie długości danych pakietu dla sond.
nmap --ttl <value> Ustawienie wartości TTL (Time-To-Live) dla pakietów.
nmap -D <decoys> <target> Użycie przynęt (decoys), aby ukryć źródło skanowania.
nmap --spoof-mac <MAC address> Podszycie się pod adres MAC skanującej maszyny.
nmap --exclude <targets> Wykluczenie konkretnych celów ze skanowania.
nmap --exclude-file <file> Wykluczenie celów zapisanych w pliku.
nmap --reason Wyświetlenie powodów zmian stanu hosta lub portu.
nmap --defeat-rst-ratelimit Ominięcie mechanizmów ograniczających RST na celu.
nmap --append-output Dołączenie wyników skanu do istniejącego pliku wynikowego.
nmap --badsum <target> Wysyłanie pakietów z niepoprawnymi sumami kontrolnymi.
nmap -sN <target> Null scan – pakiety bez ustawionych flag.
nmap -sF <target> FIN scan – pakiety z ustawioną tylko flagą FIN.
nmap -sX <target> Xmas scan – pakiety z flagami FIN, PSH i URG.
nmap --script=ftp-anon <target> Sprawdzenie anonimowego dostępu do FTP.
nmap --script=dns-cache-snoop Wykrywanie podatności DNS cache snooping.
nmap --script=http-stored-xss Sprawdzanie podatności na zapisaną XSS.
nmap --script=ssl-enum-ciphers Sprawdzenie zestawów szyfrów SSL/TLS.
nmap --script=http-robots.txt Pobieranie i analiza plików robots.txt.
nmap --script=http-sitemap-generator Generowanie mapy strony aplikacji webowej.
nmap -PE <target> Wykorzystanie żądań ICMP echo do wykrycia hostów.
nmap -PR <target> Wykorzystanie żądań ARP do wykrywania hostów w sieci lokalnej.
nmap --script=http-waf-detect Wykrywanie zapór aplikacyjnych (WAF).
nmap --randomize-hosts <targets> Losowe porządkowanie kolejności skanowanych hostów.
nmap --min-hostgroup <number> Ustawienie minimalnej liczby hostów w grupie skanowania.
nmap --max-hostgroup <number> Ustawienie maksymalnej liczby hostów w grupie skanowania.
nmap --min-parallelism <number> Ustawienie minimalnej liczby równoległych skanów.
nmap --max-parallelism <number> Ustawienie maksymalnej liczby równoległych skanów.
nmap -sW <target> Wykonanie skanowania TCP Window.
nmap -sM <target> Wykonanie skanowania TCP Maimon.
nmap -sZ <target> Wykonanie skanowania SCTP INIT.
nmap --unprivileged Uruchomienie Nmap w trybie bez uprawnień administratora.
nmap --send-ip Użycie surowych pakietów IP zamiast wyższych protokołów.
nmap --disable-arp-ping Wyłączenie ARP ping podczas wykrywania hostów.
nmap --ip-options <options> Użycie określonych opcji IP w pakietach.
nmap --script=smb-vuln-ms08-067 Sprawdzenie podatności SMB, takich jak MS08-067.
nmap --script=http-sql-injection Wykrywanie podatności typu SQL Injection.
nmap --script=http-userdir-enum Enumeracja katalogów użytkowników na serwerach HTTP.
nmap --script=http-shellshock Wykrywanie podatności Shellshock.
nmap --script=mysql-empty-password Sprawdzanie podatności na puste hasła w MySQL.
nmap --script=http-vuln-cve-2020-3452 Sprawdzenie podatności CVE-2020-3452.
nmap --script=ssh-auth-methods Enumeracja obsługiwanych metod uwierzytelniania SSH.
nmap --script=firewalk Analiza reguł zapory sieciowej (firewall).
nmap --script=rdp-enum-encryption Enumeracja ustawień szyfrowania RDP.
nmap --script=smb-enum-shares Wypisanie udostępnionych zasobów SMB.
nmap --script=smb-enum-users Enumeracja użytkowników w systemach SMB.
nmap --script=imap-capabilities Sprawdzenie możliwości serwera IMAP.
nmap --script=pop3-capabilities Sprawdzenie możliwości serwera POP3.
nmap --script=http-auth Testowanie metod uwierzytelniania HTTP.
nmap --script=ssl-heartbleed Wykrywanie podatności Heartbleed w SSL/TLS.
nmap --script=ftp-bounce Sprawdzenie podatności FTP Bounce.
nmap --script=ldap-rootdse Zbieranie informacji RootDSE z serwera LDAP.
nmap --script=rdp-vuln-ms12-020 Testowanie podatności MS12-020 w protokole RDP.
nmap --script=ntp-monlist Pobranie listy ostatnich połączeń z serwera NTP.
nmap --script=snmp-brute Wykonywanie ataków brute-force na SNMP.
nmap --script=ip-geolocation-* Pobieranie danych geolokalizacyjnych dla przeskanowanych adresów IP.
nmap --dns-servers <servers> Ustawienie własnych serwerów DNS do skanowania.
nmap --script=dns-recursion Testowanie, czy serwer DNS pozwala na rekursję.
nmap --script=dns-zone-transfer Testowanie podatności na transfer strefy DNS.
nmap --resolve-all Rozwiązywanie wszystkich adresów IP przed skanem.
nmap --script=dns-service-discovery Wykrywanie usług działających w DNS.
nmap --script=tls-nextprotoneg Testowanie Next Protocol Negotiation w TLS.
nmap --script=ssl-cert-introspection Dogłębna analiza certyfikatów SSL.
nmap --script=ntp-info Zbieranie informacji o serwerze NTP.
nmap --script=http-grep Wyszukiwanie wzorców w odpowiedziach HTTP.
nmap --script=smtp-commands Enumeracja komend SMTP wspieranych przez serwer.
nmap --script=vnc-info Zbieranie informacji o usługach VNC.
nmap --script=ftp-proftpd-backdoor Sprawdzanie podatności backdoora ProFTPD.
nmap --osscan-limit Ogranicz wykrywanie systemu operacyjnego do potencjalnie trafnych celów.
nmap --osscan-guess Zgadywanie systemu operacyjnego, gdy detekcja jest niejednoznaczna.
Przykłady testów
- Podstawowe skanowanie hosta w sieci lokalnej
Zadanie: Przeprowadzenie podstawowego skanowania hosta 192.168.100.0 w sieci LAN w celu identyfikacji otwartych portów i podstawowej aktywności sieciowej.*Domyślnie wykonywany w trybie scan stealth (-sS).bash
nmap 192.168.100.0
- Agresywne skanowanie celu z wykrywaniem wersji usług
Zadanie: Wykonanie agresywnego skanowania sieciowego z użyciem opcji -A, w celu identyfikacji systemu operacyjnego, wersji usług i uruchomionych skryptów detekcji.*Wykonuje tryb scan script (-sC) oraz scan version (-sV).bash
nmap -A 192.168.100.0
- Wykrywanie usług metodą stealth scan (SYN scan)
Zadanie: Przeprowadzenie ukrytego skanowania (SYN scan) w celu wykrycia usług, przy jednoczesnym zminimalizowaniu śladu w logach systemowych celu.*Skanowanie stealth (półotwarte połączenia TCP) bez użycia ICMP ping (opcja -Pn).bash
nmap -sS -Pn 192.168.100.0
- Skanowanie z użyciem domyślnych skryptów NSE
Zadanie: Przeprowadź skanowanie całej podsieci i uruchom zestaw domyślnych skryptów detekcyjnych Nmap (kategoria “default”).*Używa domyślnej kategorii skryptów NSE w celu wykrycia popularnych usług i luk.bash
nmap -sC 192.168.100.0/24
- Wykorzystanie niestandardowych skryptów Nmap
Zadanie: Uruchom niestandardowe skrypty Nmap pasujące do określonego wzorca, np. tylko te dotyczące protokołu HTTP.Wykonuje wszystkie skrypty pasujące do wzorca http-, np. http-title, http-auth czy http-vuln-.bash
nmap --script=http-* 192.168.100.0/24
- Detekcja systemu operacyjnego hostów w sieci
Zadanie: Wykonaj skanowanie sieci w celu identyfikacji systemów operacyjnych hostów, z użyciem heurystycznego dopasowania w przypadku niepewności.*Umożliwia wykrycie systemów operacyjnych, nawet gdy standardowa detekcja nie daje jednoznacznych wyników.bash
nmap -O --osscan-guess 192.168.100.0/24
- Dogłębne skanowanie hosta z detekcją OS i wszystkich portów TCP
Zadanie: Przeprowadź pełne skanowanie wybranego hosta, obejmujące wszystkie porty TCP, wykrywanie wersji usług, uruchomienie domyślnych skryptów oraz próbę identyfikacji systemu operacyjnego, z rozszerzonym poziomem szczegółowości wyników.*Włącza pełne skanowanie TCP (-sT), detekcję wersji (-sV), skrypty domyślne (-sC), identyfikację OS (-O, --osscan-guess), skan wszystkich portów (-p-) oraz zwiększoną werbalizację (-vv).bash
nmap -sT -sV -sC -O --osscan-guess -p- -vv 192.168.200.52
- Pełne skanowanie TCP z zapisem wyników do plików w wielu formatach
Zadanie: Wykonaj pełne skanowanie maszyny pentest na wszystkich portach TCP, wykorzystując domyślne skrypty, wykrywanie wersji usług oraz podwyższony poziom szczegółowości wyników. Zapisz wyniki w formacie .nmap, .xml i .gnmap pod nazwą network-enum-pentest.*Opcja -oA tworzy 3 pliki wyjściowe: network-enum-pentest.nmap, network-enum-pentest.xml, network-enum-pentest.gnmap.bash
nmap -sT -sC -sV -p- -vv 192.168.200.152 -oA network-enum-pentest