Laboratorium nr 8 Skanowanie sieci Laboratorium nr 8 jest poświęcone różnym technikom skanowania. W tym celu będziemy używać aplikacji dostępnych w systemie Kali Linux pomocnym w wykonywaniu testów penetracyjnych i audytów bezpieczeństwa. Laboratorium jest podzielone na kilka etapów: wykrywanie hostów w sieci (warstwa 2, 3 i 4) skanowanie portów (UDP, TCP connect, TPC stealth, zombie scanning) identyfikacja systemów operacyjnych i usług sieciowych skanowanie aplikacji sieciowych Wykrywanie hostów w sieci 1. Po uruchomieniu komputera w systemie Kali Linux, wykonaj skanowanie sieci w warstwie 2. Na początku wykryj hosty znajdujące się w sieci lokalnej - przede wszystkich ich adresy MAC. Spróbuj zidentyfikować adresy MAC na których znajdują się dwie wirtualne maszyny z innymi systemami operacyjnymi niż Kali Linux. Skanowanie wykonaj przy użyciu aplikacji: Arping, Netdiscover oraz Nmap. Poniżej znajdziesz przykładowe komendy dla każdej z aplikacji (zapis: 10.64.1.X oznacza konkretny adres IP proszę wstawić w to miejsce konkretny adres). Arping arping 10.64.1.X c 1 Jeśli interesuje nas tylko adres MAC, warto ograniczyć wyświetlane informacje: arping 10.64.1.X c 1 grep bytes from cut d f 5 Spróbuj wykonać komendę która wypisze jedynie adres IP oraz taką która wypisze jedynie adres MAC skanowanego komputera.
Netdiscover Aktywne skanowanie sieci (wysyłanie żądań do wszystkich hostów w sieci): netdiscover 10.64.1.0/24 Pasywne wykrywanie hostów w sieci (skanowanie nie wzbudza podejrzeń chociaż zajmuje znacznie więcej czasu): netdiscover p Nmap Uruchom polecenie nmap z opcją: -sn nmap 10.64.1.X -sn Skanowanie całej sieci: nmap 10.64.1.0-255 -sn Zauważ że Nmap skanuje sieć w warstwie 2 jedynie wtedy gdy jest to możliwe. W przeciwnym wypadku, automatycznie przechodzi do skanowania w warstwie 3. Żeby to sprawdzić przeskanuj jakiś komputer spoza sieci lokalnej. Jakie informacje o hostach jesteśmy w stanie zebrać podczas skanowania w warstwie drugiej? Jakich protokołów możemy w tym celu użyć? Czy w warstwie drugiej możemy skanować hosty spoza sieci lokalnej (odpowiedź uzasadnij)? 2. Wykonaj skanowanie sieci lokalnej w warstwie 3 przy użyciu aplikacji: fping i hping3. Zapoznaj się z informacjami jakie zwracają odpytywane hosty (osiągalny oraz nieosiągalny). fping fping 10.64.1.X c 5 (wysyłanie konkretnej liczby pakietów) fping g 10.64.1.85 10.64.1.170 (skanowanie zakresu sieci) fping g 10.64.1.0/24 (skanowanie podsieci) hping3 hping3 10.64.1.X --icmp hping3 10.64.1.X --icmp c 1 W celu automatyzacji procesu skanowania w warstwie 3 warto napisać prosty skrypt, który wykryje aktywne hosty. Przykład znajduje się poniżej. Przeanalizuj jego działanie, a następnie uruchom i zweryfikuj jego działanie
(podczas skanowania podglądnij zawartość tymczasowego pliku tmp.txt). Po wykonaniu skryptu, wynik skanowania znajdziesz w pliku wyniki.txt #!/bin/bash if [ "$#" -ne 1 ]; then echo "Uzyj prawidlowej skladni:./nazwa_skryptu.sh [/24 network address]" echo "Przyklad:./nazwa_skryptu.sh 10.64.1.0" exit fi prefix=$(echo $1 cut -d '.' -f 1-3) for addr in $(seq 1 254); do hping3 $prefix.$addr --icmp -c 1 >> tmp.txt; done grep len tmp.txt cut -d " " -f 2 cut -d "=" -f 2 >> wyniki.txt rm tmp.txt Jakie informacje o hostach jesteśmy w stanie zebrać podczas skanowania w warstwie trzeciej? Jakich protokołów możemy w tym celu użyć? 3. Wykonaj skanowanie sieci lokalnej w warstwie 4 przy użyciu aplikacji: nmap i hping3. Zapoznaj się z informacjami jakie zwracają odpytywane hosty. Nmap Skanowanie UDP oraz TCP można wykonać stosując opcje: -PU oraz PA, po których należy podać numer portu: nmap 10.64.1.X PU53 sn nmap 10.64.1.0-255 PU53 -sn nmap 10.64.1.X PA80 sn nmap 10.64.1.0-255 PA80 sn (wysłanie pakietu UDP) (wysłanie pakietu TCP z ustawioną flagą ACK) hping3 hping3 -udp 10.64.1.X hping3 -udp 10.64.1.X c 1 W celu zautomatyzowania całego procesu, użyj zmodyfikowanego skryptu bash użytego podczas skanowania w warstwie 3. Jakie informacje o hostach jesteśmy w stanie zebrać podczas skanowania w warstwie czwartej? Jakich protokołów możemy w tym celu użyć?
Skanowanie portów 4. Wykonaj skanowanie portów UDP serwerów uruchomionych na wirtualnych maszynach (użyj aplikacji Nmap i pakietu Metasploit). Zapisz zebrane informacje. Nmap nmap su 10.64.1.X nmap su 10.64.1.X p 53 nmap su 10.64.1.X p 1-200 nmap su 10.64.1.0-255 p 53 Skanowanie UDP przy użyciu programu Metasploit Metasploit dysponuje wieloma modułami pomocniczymi, które można wykorzystać do skanowania sieci. Przykładem jest moduł udp_sweep. Aby go użyć, należy uruchomić konsolę Metasploit: msfconsole Następnie wybrać odpowiedni moduł: use auxiliary/scanner/discovery/udp_sweep Sprawdzić ustawienia za pomocą komendy: show options W przypadku tego modułu wystarczy ustawić jedynie zmienną RHOSTS: set RHOSTS 10.64.1.X show options Uruchamiamy skaner za pomocą komendy: run Inne skanery znajdziesz w: auxiliary/scanner/discovery/arp_sweep auxiliary/scanner/portscan/tcp auxiliary/scanner/portscan/syn Które porty na skanowanych maszynach są otwarte? Jakie aplikacje mogą ich używać?
5. Wykonaj skanowanie portów TCP używając metody TPC Connect. Skorzystaj z aplikacji: Nmap, Dmitry i Netcat Nmap Skanowanie portów przy użyciu opcji: -st nmap st 10.64.1.X p 80 nmap st 10.64.1.X p 80,443,1234 nmap st 10.64.1.X p 1-65535 nmap st 10.64.1.X portów) nmap st 10.64.1.0-255 p 80 (cały zakres portów TCP) (lista 1000 najpopularniejszych Dmitry Sprawdź dostępne opcje programu Dmitry: dmitry Wykonaj skanowanie TCP Connect z opcją -p: dmitry p 10.64.1.X Netcat Uruchom program Netcat (komenda: nc) z parametrem h aby sprawdzić składnię i dostępne opcje. Następnie wykonaj skanowanie portów TCP: nc nvz 10.64.1.X 80 nc nvz 10.64.1.X 20-30 Można zautomatyzować skanowanie wykonując polcenie: for x in $(seq 20 30); do nc nvz 10.64.1.X $x; done 6. Wykonaj skanowanie portów TCP używając metody TPC Stealth. Skorzystaj z aplikacji: Nmap i hping3. Nmap Skanowanie portów przy użyciu opcji: -ss nmap ss 10.64.1.X p 80 nmap ss 10.64.1.X p 80,443,1234 nmap ss 10.64.1.X p 1-65535 nmap ss 10.64.1.X nmap ss 10.64.1.0-255 p 80 (cały zakres portów TCP) (lista 1000 najpopularniejszych portów)
hping3 hping3 10.64.1.X --scan 80 -S hping3 10.64.1.X -scan 0-1000 S Co różni skanowanie TPC Stealth od TPC Connect? Dla chętnych: skanowanie portów TCP metodą zombie scanning Skanowanie jest dwuetapowe. Najpierw należy znaleźć host w sieci lokalnej, który nadaje się na komputer zombie. Można to zrobić za pomocą skanera ipidseq w programie Metasploit. Kolejne komendy do wykonania: msfconsole use auxiliary/scanner/ip/ipidseq show options set RHOSTS 10.64.1.0/24 set THREADS 25 show options run Wybierz jeden z hostów dla których wartość IPID jest inkrementowana i wykonaj skanowanie typu Zombie scanning przy użyciu programu Nmap: nmap 10.64.1.X si 10.64.1.Y Pn p 1-100 (host 10.64.1.X będzie skanowany, a host 10.64.1.Y będzie hostem zombie) Identyfikacja systemów operacyjnych i usług sieciowych 7. Wykryj banery charakterystyczne dla konkretnych usług sieciowych. Netcat Wykonaj skanowanie konkretnych portów. Przykład dla portu 22: nc vn 10.64.1.X 22 Obiekt socket w języku Python Przeanalizuj działanie skryptu 1.py napisanego w języku Python 1 (plik do ściągnięcia ze strony internetowej prowadzącego zajęcia). Zwróć uwagę na obiekt socket oraz nawiązywanie połączenia TCP. Następnie przetestuj jego działanie (pamiętaj o odpowiednich prawach dostępu). 1 Skrypt pochodzi z książki: Skanowanie sieci z Kali Linux. Receptury Autor: Justin Hutchens
Dmitry Uruchom program dmitry z opcją: -pb Nmap z silnikiem skryptowym NSE (skrypt: banner) nmap st 10.64.1.X p 22 --script=banner Następnie wykonaj skanowanie portów z przedziału od 1 do 200 Amap amap B 10.64.1.X 1-2000 8. Nie zawsze usługa przedstawia się banerem. Sprawdź za pomocą programu nmap z opcją: -nv czy zwrócony zostanie baner na porcie 80. Jednak jest możliwość identyfikacji usługi sieciowej za pomocą Nmap należy użyć opcji: -sv nmap 10.64.1.X p 80 sv Przeskanuj najpopularniejsze porty sieciowe na skanowanej maszynie. Można to zrobić wykonując komendę: nmap 10.64.1.X sv 9. Zidentyfikuj systemy operacyjne hostów działających w sieci lokalnej. W tym celu przypomnij sobie jakie są domyślne wartości TTL dla systemu operacyjnego Windows oraz Linux. Następnie przeanalizuj działanie skryptu 2 2.py w którym użyty został program Scapy. Zweryfikuj jego działanie w praktyce (wykonaj skanowanie systemów uruchomionych na maszynach wirtualnych w laboratorium). Sprawdź również jak radzi sobie Nmap z identyfikacją systemów operacyjnych (opcja -O). 10. Wykonaj skanowanie za pomocą protokołu SNMP. Program Onesixtyone onesixtyone 10.64.1.X public Spróbuj również wykonać skanowanie snmp urządzeń o adresach: 10.0.0.51 oraz 149.156.119.18 2 Skrypt pochodzi z książki: Skanowanie sieci z Kali Linux. Receptury Autor: Justin Hutchens
Polecenie snmpwalk snmpwalk 10.64.1.X c public v 2c 11. Wykonaj skanowanie aplikacji sieciowych przy użyciu narzędzi dostępnych w środowisku Kali Linux. Przykłady znajdziesz poniżej. Nikto nikto host 10.64.1.X nikto host google.com port 443 -ssl SSLscan sslscan facebook.com SSLyze sslyze google.com --regular sslyze google.com --compression Dla ambitnych W systemie Kali Linux znajduje się bardzo dużo aplikacji umożliwiających skanowanie sieci. Spróbuj uruchomić taką, która nie była używana na zajęciach (np. Nessus) i sprawdzić jej funkcjonalność, zwracane wyniki, itd. Sprawozdanie W sprawozdaniu z laboratorium nr 8 należy opisać wykonane ćwiczenia i ich wyniki. W szczególności należy odpowiedzieć na zadane pytania.