Laboratorium nr 8 „Skanowanie sieci”
Transkrypt
Laboratorium nr 8 „Skanowanie sieci”
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 nmap nmap nmap 10.64.1.X –PU53 –sn 10.64.1.0-255 –PU53 -sn 10.64.1.X –PA80 –sn 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 nmap nmap nmap –sU –sU –sU –sU 10.64.1.X 10.64.1.X –p 53 10.64.1.X –p 1-200 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 nmap –sT nmap –sT nmap –sT portów) nmap –sT 10.64.1.X –p 80 10.64.1.X –p 80,443,1234 10.64.1.X –p 1-65535 10.64.1.X (cały zakres portów TCP) (lista 1000 najpopularniejszych 10.64.1.0-255 –p 80 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 nmap nmap nmap nmap –sS –sS –sS –sS –sS 10.64.1.X –p 80 10.64.1.X –p 80,443,1234 10.64.1.X –p 1-65535 (cały zakres portów TCP) 10.64.1.X (lista 1000 najpopularniejszych portów) 10.64.1.0-255 –p 80 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.