This is an old revision of the document!
====== X36LOS: Úloha 1
Pomocí programů na odchyt a záznam síťové komunikace (packet sniffer) zaznamenejte relaci níže zadaného typu, kterou budete dále analyzovat.
Zadání má dvě části: společnou a specifickou.
Společná část
1. stupeň analýzy: Napište program, ktery analyzuje vaši relaci na úrovni TCP spojení. Vstupem programu bude záznam síťové komunikace ve formátu tcpdump, výstupem bude
- Soubor obsahující již jen vlastní data (data streams) vaší relace bez hlaviček paketů, poskládaná z příslušných TCP paketů. Formát souboru si určete sami.
- Soubor s textovým výpisem informací o daném TCP spojení. Výpis bude obsahovat hlavičky jednotlivých TCP packetů (patřících do téhož spojení) v lidsky čitelné formě. Soustřeďte se především na typy paketů (SYN, SYN-ACK, ACK) a hodnoty čítačů relace. Ve výpisu budou vyznačeny (vloženým řádkem s příslušnou zprávou) zajímavé okamžiky:
- jednotlivé fáze navazování spojení
- jednotlivé fáze ukončování spojení
- ztráta paketu či potvrzení (tj. opakování dat) (vyskytne-li se)
- fragmentované pakety (vyskytnou-li se)
- dohodu obou stran na MTU (max. transfer unit).
Stačí vypsat MTU na začátku spojení a každou její případnou změnu během spojení.
Výpis bude také obsahovat hlavičku udávající IP adresy a čísla IP portů obou komunikujících stran relace. Program bude zpracovávat jen jednu zadanou relaci. Relace může být zadána na příkazové řádce jako adresy a porty komunikujících stran. Budou-li ve vstupním souboru i pakety patřící do jiné relace, musí být ignorovány.Je také možné data předfiltrovat jiným, filtrovacím programem.
Poznámka: Prosím dodržte formát vstupního souboru. Jako ověření funkčnosti vašeho programu můžete dostat ke zpracování data odchytnutá někým jiným.
Specifická část
2. stupeň analýzy: Napište program, který analyzuje vaši relaci na úrovni příslušného aplikačního protokolu. Vstupem je výstupní datový soubor z 1. fáze analýzy, výstupem je textový soubor, popisující průběh relace “v lidsky čitelné” formě.
1. FTP řídící relace Výstupem bude text jednotlivých příkazu a odpovědí včetně vyznačeného směru.
Př.:
>>> USER abcd <<< 200 OK >>> PASS xyz <<< 200 OK
atd…
2. FTP datová relace Výstupem bude celý prenášený soubor nebo data (napr. výstup příkazu DIR, LS).
3. HTTP relace Výstupem budou 3 soubory: HTTP požadavek, hlavička HTTP odpovědi, a vlastní přenášený soubor. (Předpokládáme požadavek typu GET.)
4. TELNET relace Výstupem bude text relace včetně vyznačeného směru.
Př.:
<<< Username: >>> a <<< a (tohle je echo napsaných písmen) >>> b >>> b (opět echo) ...
Pokud TELNET relace obsahuje vyjednávání jednotlivých nastavení (TELNET options), uveďte také odpovídající výzvu i odpověď v textové (lidsky čitelné) podobě.
5. SMTP relace Výstupem bude text jednotlivých příkazu a odpovědí včetně vyznačeného směru.
Př.: Obdobný jako u zadání č.1
6. POP3 relace Výstupem bude text jednotlivých příkazu a odpovědí včetně vyznačeného směru.
Př.: Obdobný jako u zadání č.1
Vítaným rozšířením práce jsou různá vylepšení. Třeba statistické údaje, časové závislosti, různé dynamické změny parametrů …
Pro odchyt paketů použijte programy Wireshark (lin/win), nebo tcpdump (linux). tcpdump spusťte s parametry:
tcpdump -s 1530 -w (jmeno_dump_souboru) -u (vase_uzivatelske_jmeno).
K ulehčení analýzy souboru použijte knihovny WinPcap, resp. libpcap.
Odkazy
- http://wiki.wireshark.org/SampleCaptures - různě síťové toky zachycené wiresharkem
Podmínky odevzdání
Ve zdrojovém souboru budou uvedené použité zdroje, pokud vycházíte ze starší úlohy tak musí být poznat co bylo hotové a co je vaše práce.
Odevzdání na service.felk.cvut.cz do vašeho projektového adresáře (bude vytvořen později).
Uložit ve formě zkomprimovaného zip souboru, název bude ulohaX_<prijmeni>_<prijmeni spoluautora>, tzn. ulohy dělané ve dvojici budou na service uloženy dvakrát.
Odevzdávané úloze rozumí autor i spoluautor.
~~DISCUSSION~~