SIK11.rst

Sieci Komputerowe

Bezpieczeństwo w sieci

Linux

Jeżeli działasz na własnym komputerze z systemem operacyjnym linux to wykonaj następujące operacje:

Proszę ściągnąć

oraz zainstalować na swoim komputerze pakiety Aircrack-ng oraz tcpdump. Uwaga! do wykonania niektórych operacji wymagane jest konto administratora!

Podsłuchiwanie sieci

Na systemie linux (z prawami administratora) możemy wykonać następujące operacje, aby podsłuchać informacje sieciowe za pomocą karty Wifi

sudo airmon-ng start wlp3s0

Powyższe polecenie spowoduje uruchomienie interfejsu mon0 do obsługi karty Wifi w trybie monitorowania sieci (nasłuchiwania). Po wykonaniu komendy sprawdź istnienie nowego interfejsu za pomocą komendy

ifconfig -a

Następnie możemy przejść do nasłuchiwania sieci. Skorzystamy z polecenia airodump-ng, określamy interfejs, kanał oraz plik do którego zapiszemy zrzut komunikacji.

airodump-ng wlp3s0 --output-format pcap -w sieci2 --channel 11

WEP

W celu odzyskania hasła sieci WEP dokonamy ataku słownikowego na przechwycony pakiet.

Ściągnij słownik passwords.txt

Ściągnij plik komunikacji (zadanie 1 i 2, 3) wynik.pcap .

Ściągnij plik komunikacji (zadanie 4 i 5) wynik2.pcap .

Ściągnij plik kluczy (zadanie 4, 5) key.txt .

Do ataku wykorzystamy program aircrack.

Wykonaj operacje. Wskaż jako interfejs atakowaną sieć abecadlo.

aircrack-ng wlan.pcap -n 128 -w passwords.txt

Zadanie (10 pkt)

Podaj hasło WEP sieci abecadlo

Atak na WPA

Sieć typu WPA atakujemy poprzez podsłuchiwanie nawiązywania komunikatów (handshake)

Komenda do wymuszenia rozłączenia klienta i nawiązania nowego połączenia, jako adres podajemy adres MAC routera

aireplay-ng -0 1 -a DC:EF:09:DE:38:DF   wlp3s0

Jednocześnie musimy znów nasłuchiwać komunikacji

sudo tcpdump -i mon0 -w /var/tmp/wlan2.pcap

Wireshark

Sieć typu WEP szyfruje wszystkie wiadomości za pomocą hasła sieciowego. Dlatego też znając hasło możemy podejrzeć całą niezaszyfrowaną komunikację zachodzącą w tej sieci.

Otwórz zrzut komunikacji sieciowej w wiresharku. Jak widzisz komunikacja jest zakodowana. Możesz użyć uzyskanego kodu WEP do odszyfrowania zawartości logów pcap. Przeczytaj jak to zrobić na

Zadanie (30 pkt)

Odczytaj login i hasło użyte do zalogowania na stronę

Hint: Możesz użyć w Wireshark filtra http.host contains by odnaleźć zapytania do powyższej strony.

HTTPS

HTTPS to wersja protokołu HTTP z szyfrowaniem SSL/TLS. Polega ona na tym, że podczas połączenia serwer i klient za pomocą kluczy publicznych i prywatnych wymieniają między sobą "sekret" czyli klucz szfrowania, którym następnie szyfrują komunikację.

W trakcie uzgadniania TLS klient i serwer razem wykonają następujące czynności:

Określają, której wersji protokołu TLS (TLS 1.0, 1.2, 1.3 itd.) Będą używać
Decydują, które zestawy szyfrów będą używane
Uwierzytelniają tożsamość serwera za pomocą klucza publicznego serwera i podpisu cyfrowego urzędu certyfikacji SSL
Generują klucze sesji, aby zastosować szyfrowanie symetryczne po zakończeniu uzgadniania

a1

Dokładne kroki w ramach uzgadniania TLS będą się różnić w zależności od rodzaju używanego algorytmu wymiany kluczy i zestawów szyfrów obsługiwanych przez obie strony. Najczęściej używany jest algorytm wymiany kluczy RSA. To wygląda następująco:

Komunikat „client hello”: klient inicjuje uzgadnianie, wysyłając komunikat „hello” do serwera. Komunikat będzie zawierał informacje o obsługiwanej przez klienta wersji TLS, obsługiwanych mechanizmach szyfrowania oraz ciągach losowych bajtów zwanych „losowym klientem”.
Wiadomość „server hello”: w odpowiedzi na wiadomość hello klienta serwer wysyła wiadomość zawierającą certyfikat SSL serwera, wybrany przez serwer zestaw szyfrów oraz „server random”, inny losowy ciąg bajtów generowany przez serwer.
Uwierzytelnianie: klient weryfikuje certyfikat SSL serwera w urzędzie certyfikacji, który go wystawił. Potwierdza to, że serwer jest tym, za kogo się podaje, i że klient wchodzi w interakcję z rzeczywistym właścicielem domeny.
Sekret premastera: klient wysyła jeszcze jeden losowy ciąg bajtów, „sekret premastera”. Sekret premastera jest zaszyfrowany kluczem publicznym i może być odszyfrowany przez serwer tylko za pomocą klucza prywatnego. (Klient pobiera klucz publiczny z certyfikatu SSL serwera).
Używany klucz prywatny: serwer odszyfrowuje klucz wstępny.
Utworzone klucze sesji: zarówno klient, jak i serwer generują losowe klucze sesji z klienta, losowe klucze serwera i klucz wstępny. Powinny przynieść takie same wyniki.
Klient jest gotowy: klient wysyła „zakończoną” wiadomość, która jest zaszyfrowana za pomocą klucza sesji.
Serwer jest gotowy: serwer wysyła „ukończoną” wiadomość zaszyfrowaną za pomocą klucza sesji.
Osiągnięto bezpieczne szyfrowanie symetryczne: uzgadnianie jest zakończone, a komunikacja jest kontynuowana przy użyciu kluczy sesji.

Ruch HTTPS często ujawnia nazwę domeny. Na przykład, podczas przeglądania https://www.wireshark.org w przeglądarce internetowej, pcap pokaże www.wireshark.org jako nazwę serwera dla tego ruchu podczas przeglądania na dostosowanym wyświetlaczu kolumnowym Wireshark. Niestety nie znamy innych szczegółów, takich jak rzeczywisty adres URL lub dane zwrócone z serwera. Podążanie za strumieniem protokołu kontroli transmisji (TCP) z pcap nie ujawni zawartości tego ruchu, ponieważ jest on zaszyfrowany.

Zastosuj podany filtr do odnalezienia handshake TLS

tls.handshake.type eq 1

Jak widać komukację przez HTTPS odszyfrować jest niezmiernie trudno, chyba, że znamy klucze jednej ze stron. Możemy na naszych komputerach wymusić zapisywanie przez przelądarkę kluczy i wykorzystać je do odszyfrowania komunikacji HTTPS. Aby tego dokonać należy ustawić zmienną systemową SSLKEYLOGFILE. Po restarcie przeglądarka powinna zapisywać wykorzystane klucze do tego pliku.

Plik ten może być następnie użyty do odszyfrowania komunikacji HTTPS (Uwaga! link do pliku podany był powyżej!). Uwaga do odczytania komunikacji potrzebujemy poznać klucze zapisane przy handshake clienta z serwerem dane te są cachowane więc zapis uda się za pierwszym razem a kolejna próba po chwili może się nie powieść (dopóki nie wygaśnie sesja).

Zadanie (30 pkt)

Powiedz co dodała do koszyka osoba przeglądająca sklep:

W tym celu musisz w zrzutach z komunikacji odnaleźć i rozpoznać ciasteczko z tej strony oraz podmienić / dodać odpowiednie wartości z ciasteczka u siebie na komputerze. Polecane wykonanie poprzez Chrome i wtyczkę EditThisCookie.

Jak znaleźć ciasteczko w Wireshark:

Uwaga! Sesja trwa tylko godzinę więc po tym czasie może nie być możliwe odtworzenie sesji!

Web Site Reconstruction & Image Reconstruction

Zadanie (20 pkt)

Odzyskaj obrazek z trzeciej strony na którą wszedł użytkownik.

How to:

Zadanie (10 pkt)

Podaj wersję protokołu TLS używaną do komunikacji z trzecią stroną.