Laboratorium nr 1 Skanowanie sieci i ataki aktywne Laboratorium nr 1 jest poświęcone różnym technikom skanowania sieci oraz wybranym atakom aktywnym. 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, identyfikacja systemów operacyjnych i usług sieciowych, znalezienie podatności i przejęcie kontroli nad systemami. 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ć?
Identyfikacja systemów operacyjnych i usług sieciowych 5. 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 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 6. 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
Ataki aktywne 7. Przejmij kontrolę nad dwoma znalezionymi systemami wirtualnymi. Wykorzystaj znalezione podatności używając narzędzia Metasloit. Jeśli nie będziesz w stanie samodzielnie znaleźć przykładowych podatności, skorzystaj z trzech poniższych: usermap_script (na system LINUX) unreal_ircd_3281_backdoor (na system LINUX) ms08_067_netapi (na system WINDOWS) Przypominam podstawowe komendy w narzędziu Metasploit: szukanie podatności w bazie: search nazwa_podatności wybieranie podatności Y: use ścieżka_dostępu_do_podatności wyświetlanie opcji niezbędnych do konfiguracji: show options ustawianie parametru X: set X wartość_parametru_x wyświetlanie listy dostępnych ładunków: show payloads informacje o konkretnym exploicie: info uruchomienie exploita: exploit 8. Twoim zadaniem po przejęciu sytemu będzie: w przypadku systemu Linux: pobranie listy skrótów haseł dostępu oraz wyczyszczenie logów w systemie aby usunąć informacje o wykonanych działaniach w przypadku systemu Windows: wykonanie i pobranie zrzutu ekranu oraz odczytanie treści poufnego pliku z Pulpitu W przypadku przejęcia systemu Windows, najprawdopodobniej użyty zostanie Meterpreter. Możesz użyć komendy help żeby zaznajomić się z dostępnymi poleceniami. 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 1 należy opisać wykonane ćwiczenia i ich wyniki. W szczególności należy odpowiedzieć na zadane pytania.