portal Michała Hanćkowiaka
Begin main content
Search · Index
No registered users in community Materiały
in last 10 minutes

SIK - Temat E - analiza protokołów - zadania dodatkowe

uwagi o programie sockspy
można obserwować dane przepływające przez połączenie tcp przy pomocy tego programu...
program sockspy nie wymaga uprawnien root-a !
program sockspy nie widzi komunikatów niższych warstw, ale dzieli dane przepływające przez połączenie tcp na podstawie przerw (w czasie) między danymi
uwaga: niektóre protokoły, np. ftp, tworzą wiecej niż jedno połączenie tcp, i wtedy program sockspy bedzie raczej nieprzydatny, bardziej się nada wireshark...
sockspy dobrze sie nadaje do obserwowania prot. HTTP !

Zadanie E.1 - eksperymenty z prot. HTTP
Zbadaj komunikaty prot. HTTP, między przeglądarka a serwerem www:
1. http://mhanckow.vm.wmi.amu.edu.pl:20002/zajecia
2. http://localhost:8015/ (po uruchomieniu serwera www tclhttpd, z tematu D)
+ zobacza jakie ciasteczka tworza te serwery i wstaw do sprawozdania nagłówki http tworzace te ciasteczka
+ zaobserwuj w działaniu "cache" przegladarki, sprawdz czy obrazki sa ponownie wczytywane z serwera po przeładowaniu strony, -1-
+ w tclhttpd, do otwarcia np. http://localhost:8015/status/size potrzebne jest hasło...
hasło to jest wyświetlane na konsoli tekstowej z ktorej uruchamiamy serwer (login "debug" haslo "dziwny string")
tclhttpd używa tzw. "Basic Http Auth" ...
zbadaj czy łatwo się włamać do tego serwera obserwując komunikaty http!
wskazówka: poszukaj nagłówka "Authorization" i spróbuj go odkodować z base64, np. przy pomocy:
echo "string Auth" | openssl enc -base64 -d (z bash-a)
package re base64; base64::decode "string Auth" (z tcl-a)
+ spróbuj uruchomic tclhttpd w rybie SSL (w tym celu przed jego uruchomieniem w konsoli musi byc dostępny pakiet Tls)
czy jesli bedziemy sie logowac przez https (metodą Basic Http Auth) to włamanie będzie trudne/niemożliwe?
sprawdź to znów obserwując komunikację między przeglądarką a serwerem

......................................................

Uwaga: Poniższe zadania są dla osób zalogowanych jako root, np. na VBox/puppy.
Trzeba doinstalować do VBox/puppy program wireshark z folderu:
rox wireshark-1.6.6-i686.pet; # plus potw. myszką

Zadanie E.2 - FTP, interaktwyne eksperymenty z wireshark
Zbadaj doświadczalnie jak działa protokoł FTP;
w tym celu uruchom serwer ftp (np. pure-ftp) na loklanej maszynie,
klienta także uruchom na lokalnej maszynie,
i obserwuj programem wireshark interf. sieciowy "lo".
Co wstawić do sprawozdania?
można wyeksportować przechwycone pakiety do pliku .txt (File | Export | As plain text);
proszę wstawic to do sprawozdania, odpowiednio skomentować (jakieś swoje uwagi),
oraz dodac kod z konsoli, który spowodował wysłanie tych pakietów...
(podobnie postępujemy w innych zadaniach typu interaktywne eksperymenty z wireshark !)
Wskazówki do używania gftp i pure-ftpd:
gftp; w przypadku używania serwera na maszynie students wybrac prot "ssh2'
pure-ftpd; udostepnia pliki w kat. /root/ftpd, użytkownik/hasło: anonymous anonymous

Zadanie E.3 - prot. TCP pod wireshark/ interaktywnie
Zbadaj doświadczalnie działanie połączenia TCP;
w tym celu wykonaj podobny eksperyment jak wyżej, ale tym razem
użyj klienta i serwera gniazdkowego w języku Tcl (w 2 konsolach, z klientem i z serwerem),
próbuj wysyłać przez połączenie różne teksty, długie i krótkie,
równocześnie obserwuj pakiety które pokazuje wireshark,
zobacz też co się dzieje po close oraz przy nawiązywaniu połączenia,
zbadaj jak flush się przekłada na operacje sieciowe...

Zadanie E.4 - prot. SSL pod wireshark/ interaktywnie
Okazuje się, że program wireshark "rozumie" prot SSL;
wykonaj eksperyment podobny do powyższego dla połączenia SSL;
użyj znów 2 konsol tcl-owych, ale zamiast komendy socket używaj tls::socket
(jak w temacie D).

Zadanie E.5 - jak wireshark widzi operacje pakietu Tnm z prog. Scotty
Zaobserwuj przy pomocy wireshark, ruch sieciwy generowany przez
pakiet Tnm (j. Tcl) programu Scotty...
Program Scotty służy do monitorowania sieci, ale ma uniwersalny pakiet Tnm,
który może też służyć do innych rzeczy... (patrz temat F)

program scotty z pkg. Tnm scotty.zip, rozpakuj tego zip-a!; tu jest folder z dodatkowymi plikami
w przykładowych plikach z serii scotty01*.tcl jest pokazane jak używać pakietu Tnm
dokumentacja pkg. Tnm w bin3/man/mann; oglądać przy pomocy "mc"
skrypt e3 (uruchamiać: . ./e3) ustawia zmienne środowiska dla scotty/Tnm
najlepiej posłużyć się oczywiście konsolą tcl-ową (32-bit. tclkit potrafi załadować pakiet Tnm)
wypróbuj komendy: dns ???, icmp echo, icmp netmask, i inne ...
zastanów się do czego może się przydać "icmp echo lista_hostow"
Uwaga: część poleceń Tnm wymaga uprawnień root-a (dotyczy zwłaszcza komendy icmp);
przy okazji przyjrzyj się innym poleceniom Tnm, np. netdb

Zadanie E.6 - analiza prot. FTP
Przeczytaj opis działania FTP w literaturze do opis(3), zwłaszcza ten opis, patrz też slajdy MH (str 23);
przeanalizuj sesję FTP (klient: gftp, serwer: pure-ftpd, oboje na localhost) przechwyconą samodzielnie wireshark-iem;
aby widzieć tylko komunikaty FTP włącz filtr: ftp or ftp-data;
odpowiedz na pytania:
1. w jakim trybie dziala ftp?
2. na jakim nr. portu klient lub serwer oczekują na połączenie ftp-data?
(wymień je osobno dla różnych danych przesyłanych jako ftp-data)
3. odp. na pytanie 2 zapewne opiera się na obserwacji komunikatów prot. FTP
potwierdź swoje przypuszczenia wyłączając filtr i obserwując pakiety tcp i ich nagłówki!
(do sprawozdania wstaw wyeksportowane pakiety jako dowód)

Zadanie E.7 - obserwacja prot. SMB/CIFS (sieciowego sys. plików z Win)
Docs o poleceniu "mount" i "mount -t cifs": mount, mount.cifs.
Oczywiście montowanie sys. plików wymaga uprawnień root-a i musi być robione na VBox/puppy.
Na początek spróbuj zamontować sieciowy sys. plików CIFS/SMB z maszyny "files".
Jeśli z Twojego katalogu home na maszynie "students" wystaje podkatalog "kat" to można wykonać to tak:
mkdir dysk
mount -t cifs //files.wmi.amu.edu.pl/students ./dysk \
-o rw,username=s?????,domain=LABS,iocharset=iso8859-2,prefixpath=s?????/kat
# parametry muszą być starannie podane
# program mount zapyta się o hasło do maszyny students
umount dysk; # w ten sposob możemy odmontować sys. plików

Następnie możesz obserwować ruch sieciowy gdy wykonuje się jakieś operacje plikowe na kat. "dysk";
warto też zobaczyć jak wygląda sam proces montowania od strony sieci...
Do sprawozdania wstaw wydruki wyciągnięte z wireshark,
podaj jakich filtrów wireshark używałeś,
a także odpowiedz na pytanie jak wygląda uwierzytelnianie montującego sys. plików,
czy jego hasło (dość ważne w tym wypadku...) jest widoczne w sieci???
Uwaga 1: to jest też sposób na pisanie sprawozdania bezpośrednio na VBox/puppy!
Uwaga 2: syst. plików z maszyny files.wmi.amu.edu.pl można montować tylko z sieci WMI,
można jednak to obejść przez zastosowanie tunelu SSH (patrz temat D, ssh -Lport1:host2:port2),
serwer CIFS używa portów 445 i 139.

Zadanie E.8 - obserwacja prot. SSHFS/SFTP
To samo co w zadaniu E.7 ale dla sieciowego sys. plików "sshfs"...
Program sshfs trzeba doinstalowac do VBox/puppy (z folderu).
Docs: sshfs man;
co do tematyki cifs/smb/sshfs można też spojrzeć do tych materiałów (szukac po słowie kluczowym)...
Proszę zbadać jak wireshark rozumie prot. SSH... SSH vs SSL ???
i swoje uwagi wpisać do sprawozdania.
Czym jest SFTP ? czym się różnią FTPS i SFTP ?


......................................................

Zadanie E.10 - namiastka FTP, ale może lepsza?
Zaproponuj własny protokół pozwalający przesyłać pliki od klienta do serwera
przy pomocy 2 "kanałów komunikacyjnych": rozkazowego i dla danych;
zakładam, że mamy 1 serwer i wielu klientów;
równocześnie wielu klientów może się podłączyć do serwera;
kanał rozkazowy pozwala poinformować serwer, że będzie przesyłany plik o danej nazwie;
zaraz potem dane pliku są przesyłane kanałem dla danych;
uwaga: mówiąc "kanał" mam na myśli abstrakcyjny kanał, niekoniecznie połączenie tcp ...
.................
Następnie zaimplementuj swoje rozwiązanie w dowolnym języku (i przetestuj!!).

Zadanie E.11 - hping, prosty eksperyment
Istnieje narzędzie "hping" podobne do programu wireshark, ale umożliwiające także
wysyłanie pakietów do sieci (patrz folder).
W ramach zadania spróbuj zasymulować działanie programu ping (prot ICMP, wysłać pytanie, zobaczyć odpowiedź),
przy pomocy programu hping... patrz przykład hping01.tcl w folderze oraz dokumentacja tamże...




uwaga: portal używa ciasteczek tylko do obsługi tzw. sesji...