Hlavní navigace

Průvodce programem ethereal (2)

4. 5. 2006
Doba čtení: 11 minut

Sdílet

Ve druhém dílu seriálu se budeme věnovat hlavně popisu. Popíšeme si hlavní rámce programu, jednotlivé položky v menu i v submenu v rámcích. Pár slov bude věnováno i přizpůsobení si etherealu k obrazu svému.

GUI není všechno

I když já osobně pracuji s etherealem pouze prostřednictvím grafického rozhraní (Graphical user interface – GUI), existuje i textová podoba tohoto programu. Jmenuje se tethereal a pokud jste při instalaci nic neměnili v konfiguraci, tak se vám nainstaloval spolu s etherealem a můžete si ho tedy vyzkoušet též. Umí prakticky to samé co jeho grafický bratříček, ovšem dle mého názoru se s ním pracuje trochu kostrbatěji. Ale na druhou stranu své opodstatnění určitě má, minimálně ve světě unixu, protože i v roce 2006 existují lidé, kteří pracují výhradně v textovém režimu na desktopech, natož pak na serverech, kde je použití výhradně textového režimu zcela běžné a z hlediska bezpečnosti velice rozumné. Na systémech Windows by se dalo o smyslu takového programu spekulovat, protože za prvé, samotný Windows nepojmenovává síťové adaptéry příliš přívětivým způsobem, například moje zařízení se jmenuje takto: \Device\NPF_{E5FDAAA8-BEF9-496F-B926-F50B801AC4D8}. Za druhé, protože Windows nabízí pouze grafické rozhraní a používání příkazového řádku většině uživatelům zrovna k srdci nepřirostlo. V našem seriálu se tomuto programu také věnovat nebudeme, zájemce z řad unixových uživatelů mohu pouze odkázat na manuálové stránky (man tethreal) a z řad Windows do adresáře s etherealem, kde byste měli najít soubor tethereal.html – do html převedený manuálový záznam. Tímto způsobem (man, resp. html stránka) najdete nápovědu ke všem nástrojům dodáváným k etherealu (o většině z nich bude v průběhu seriálu zmínka).

Menu

Nyní už se ale pojďme věnovat grafickému rozhraní. Ethereal obsahuje nabídkové menu, pod kterým nalezneme dvě nástrojové lišty (v základním rozestavění) a zbytek programu zabírají tři tzv. panes (česky pole, okna). Úplně dole můžeme najít ještě Statusbar. Některé funkce programu mají navíc své klávesové zkratky (viditelné v menu programu). Ale hezky od začátku.

I samotné menu svým uspořádáním nijak nepřekvapí, první položka File (soubor) nabízí otevírání, ukládání, exportování, tisk a spojování souborů se zachycenou komunikací a nechybí ani tlačítko pro ukončení aplikace.

Druhá položka Edit (editovat) obsahuje funkce na vyhledávání paketů (tomuto se budeme věnovat v díle o práci se zachycenou komunikací), označování paketů, tzv. Time reference – označení určitých paketů jako časově referenční (o této funkci blíže se zmíním taktéž v díle o práci se zachycenou komunikací) a také zde nalezneme Preferences (možnosti) programu (viz níže).

Poznámka: pokud si tyto informace v etherealu ověřujete a je vám divné, že některé položky nejsou vysvícené, tak nezoufejte. S velkou částí funkcí lze pracovat až potom, co odchytíte nějaké pakety a o tom bude až příští díl.

V další nabídce View (zobrazit) můžete jednoduchým kliknutím nechat zmizet jednu nebo více hlavních částí programu. Asi teď přesně ještě nevíte, která část programu se jak jmenuje, ale nemějte strach, k tomu se dostaneme v následujících řádcích. Dále zde najdete Display time format, kde nastavíte, jakým stylem se má zobrazovat čas u paketů – čas zachycení, čas zachycení + datum, čas od začátku sniffování a nebo čas od přijetí posledního paketu. Změna se provede okamžitě a můžete libovolně přepínat, ethereal si čas pamatuje jedním pevným způsobem a pouze převádí tuto informaci na vámi zvolený „formát“. V Name resolution ovlivníte překlad adres na jména. Druhy překladů se dělí pomocí vrstev, názvy jsou uváděny podle modelu OSI. Povolovat a zakazovat překlady můžete na transportní vrstvě (převod podle čísla port, port 80 – http atd.), síťové (převod ip adresy na hostname) a i z části na linkové vrstvě – zachytáváte-li data na ethernetové síti, můžete převádět části MAC adres na označení výrobce. Osobně doporučuji toto nastavení mít trvale zapnuté, protože i když je překlad povolen, nachází se pouze v závorce za adresou. Pro aplikování změn je nutné použít tlačitko Reload (znovu načti), které se taktéž nachází v položce View. V této položce také najdete lupu, která zvětšuje/zmenšuje písmo, tlačítka na rozbalování informací (viz. dále), tzn. Coloring rules – obarvování paketů (opět o něm bude řeč v budoucnu). A poslední tlačítko, o kterém jsem se nezmínil, je Show packet in new window – po poklikání na něj zobrazí právě označený paket v novém okně.

Položka Go nabízí funkce přesouvání tam i zpět „v čase“ po paketech, přechod na první a poslední paket a na určitý paket (podle číselného označení paketu). A pak se zde nachází ještě funkce Go to corresonding packet – tato možnost vás přesune na paket korespondující s daným paketem, např. dotaz – odpověď.

Dále zde máme položku Capture, kolem níž se bude točit celý příští díl, můžete zde totiž spustit i zastavit odchytávání, dále se zde po kliknutí na tlačítko Interfaces dozvíte, které že to všechny síťové adaptéry máte k dispozici, a také zde můžete pracovat s „capture“ filtry, o kterých si povíme též příště.

V položce Analyze, jak již název napovídá, jsou umístěny všechny funkce okolo analyzování. Hned na prvním tlačítku narazíme na „display“ filtry, o kterých se budeme bavit někdy příště, další dvě tlačítka Apply as filter a Prepare as filter slouží také k filtraci, v nějakém rámu označíte hodnotu (např.: IP adresu) a podle ní program vyhotoví vámi specifikovaný filtr, více o tom také až příště (resp. po příště). Rozdíl mezi těmito možnostmi je v tom, že první pravidlo přímo aplikuje, kdežto při druhé možnosti se objeví filtr pouze ve filter toolbaru. Po kliknutí na nápis Enabled protocols se objeví okno se seznamem všech protokolů, které má ethereal implementovány včetně jejich zkratek (např.: HTTP – Hypertransfer protocol) a dokonce můžete některé protokoly zakázat, takže ethereal zachycený paket bude považovat za paket protokolu nižší vrstvy bez bližší specifikace (např.: když zakážete HTTP, všechny HTTP protokoly budou považovány pouze za TCP). Dále je zde položka Decode As (dekódovat jako) – pokud by se stalo, že by ethereal nepřesně určil typ protokolu, můžete to zde změnit. V User definied decodes naleznete přehled vlastních vytvořených pravidel pro dekódování paketů. A poslední věcí v této nabídce je funkce Folow tcp stream, která sestavuje jakékoli TCP spojení do zvláštního okna, aby si ho uživatel mohl pohodlně prohlédnout jako celek.

Předposlední položka Statistics obsahuje všemožné statiky, obecné, z pozice hierarchie protokolů, můžete zde sestavovat grafy a spoustu dalších věcí. Všechno si to probereme v díle o práci s offline komunikací.

A poslední položka Help obsahuje jak jinak než nápovědu. Naleznete zde klasický popis funkcí programu, znova seznam podporovaných protokolů, odkaz na manuálové stránky, odkaz na webové stránky etherealu a nechybí ani About.

Nástrojové lišty – Toolbars

V etherealu jsou toolbary dva, Main toolbar a Filter toolbar. První toolbar obsahuje položky vytažené z jednotlivých částí menu, které určili autoři a bohužel se nedají v možnostech programu nijak měnit, zprava je to: zahájit naslouchání, otevřít , uložit a zavřít soubor, reload, tisk, vyhledat paket, o jít krok dopředu a dozadu, přejít na paket č., na první paket a na poslední paket, tři funkce lupy, editace capture a display fitru, obarvování, možnosti programu a nápověda. Nevím sice, podle jakého klíče přesně autoři položky vybírali, ale myslím, že výběr je poměrně šťastný, protože prakticky všechny funkce/položky, se kterými já pracuji, se na této liště nacházejí. Samozřejmě vaše osobní zkušenost může být jiná a tak není problém tento toolbar vypnout (View->Main Toolbar).

Display filter toolbar slouží k okamžitému filtrování již zachycené komunikace. Myslím, že právě pro analyzování dat je tato filtrace velice prospěšná a velice pomáhá zejména přehlednosti. Z tohoto důvodu je jí asi věnován i celý toolbar. Samozřejmě i tento toolbar lze vypnout (View->Filter Toolbar). Když to zase vezmeme zprava, tak první tlačítko vyvolá okno, ve kterém můžete spravovat display filtry, do editboxu se píší samotné filtry, tlačítko se šipkou dolů vám umožňuje listovat v historii filtrů. Pod tlačítkem Expression… naleznete editor filtrů (práci s ním si vysvětlíme později). Tlačítko Clear smaže aktuální filtr a Apply aplikuje změny (ty se totiž neprovádějí ihned).

Hlavní okna (panes) programu

Jsou to právě ty tři oblasti, které vyplňují většinu programu. V základním rozestavění jsou tyto okna poskládána pod sebou a velikostí si přibližně odpovídají. Samozřejmě toto vše lze jednoduše změnit (pozice v možnostech programu, velikost pouhým potažením kurzorem myši). Aby nedošlo k omylu, na následujícím obrázku můžete vidět v klasickém rozestavění, který pane se jak jmenuje.

ethereal 2

V Packet list pane každá řádka představuje jeden zachycený paket. Kliknutím na určitý řádek se v dalších dvou oknech ukáže podrobné info o paketu. Jednotlivé sloupce zleva jsou (v základním nastavení, s tímto lze totiž také manipulovat): číslo paketu, čas (může mít několik podob – viz View → time reference), IP počítače, od kterého paket přišel, IP počítače, kam směřoval, protokol a další informace o datech. Toto pole má samostatnou nabídku (jakož i následující dvě pole), stačí kliknout někam do prostoru pravým tlačítkem myši, naleznete zde nejpoužívanější funkce, které jsou dostupné i z menu.

Packet details pane je tvořeno hiearchickým systémem jednotlivých protokolů, které ethereal dekódoval ze zachyceného paketu. Po poklikání na určitý řádek se rozbalí informace, kde najdete přesné informace o daném protokolu. Všimněte si také, že po kliknutí na libovolný řádek se ve třetím okně označí část dat.

Třetí, Packet bytes pane, totiž obsahuje paket v „syrové podobě“, tedy vlastní data, která sniffer přijímá a ze kterých následně dekóduje informace. Skládá se ze dvou částí, část vlevo zobrazuje data v hexa soustavě, část v pravo zobrazuje „skutečné“ bity.

Statusbar

Úplně dole najdete Statusbar. Levá strana obsahuje status etherealu (např. nápis: ready to load or capture) doplněný případně názvem zařízení nebo souboru, se kterým program právě pracuje. Pravá část je statistická, obsahuje tří údaje, písmenko P označuje počet zachycených paketů, D počet zobrazených paketů a M počet označených paketů.

Vlastní nastavení

A nyní již slibované vlastní nastavení vzhledu programu. Jak víme, okno Preferences můžeme vyvolat dvěma způsoby, buďto pomocí menu Edit->Preferences a nebo kliknutím na ikonku Edit preferences v Main Toolbaru. První v seznamu nalezneme User Interface (UI), který má navíc svůj vlastní podseznam. Význam nastavení hlavního rámu UI naleznete v tabulce pod odstavcem.

Význam nastavení hlavního rámu
Anglický název Co je tím myšleno Popis, možnosti
Vertical scrollbar placement Pozice vertikální posuvné lišty Right – vpravo, Left – vlevo
Packet list selection mode Mód výběru v seznamu paketů Select – výběr po kliknutí, Browse – výběr v době kliku
Protocol tree selection mode Mód výběru v detailech protokolu ty samé možnosti jako předešlá položka
Alternating row colors in list nad trees Barevné rozlišení řádků (kromě packet bytes pane) Yes – ano, No – ne
Hex display highlight style Styl zobrazení označených hodnot v packet bytes pane Inverse – inverzí barev,Bold – ztučněním
Tooblar Style Styl hlavního toolbaru Icons only – pouze ikony, text only – pouze text, obojí
Filter toolbar placement Umístění filter toolbaru Bellow the main toolbar – pod hlavním toolbarem, Insert into statusbar – umístěn ve statusbaru
Save windows position Uložení pozice okna programu
Save windows size Uložení velikosti okna
Save maximized state Uložit maximalizovaný stav
Open a console window Otevřít konzolové okno Never – Nikdy, Automatically – Automaticky, Allways – Pokaždé
„File Open“ dialog behavior Chování „Open File“ dialogu Remember last directory – pamatovat si poslední adresář, Allways start in – pokaždé, začít v adresáři + cesta
Open file preview timeout vypršení času open file preview čas
Open recent max entries max. počet záznamů v Open recent počet
Ask for unsaved capture files Ptát se na uložení souboru při změně v souboru
Wrap to end/beginning of file during a find přejít na z konce na začátek nebo obráceně při hledání
Custom window title Vlastní titulek okna text

A nyní se vrhneme (ve zkratce) na položky z podseznamu. Pod nápisem Layout se skrývá možnost přemístění jednotlivých oken podle vašich představ. Myslím, že toto nastavení je natolik intuitivní, že netřeba k němu cokoli dodávat. Columns se týká nastavení sloupců v Packet list pane. Můžete zde jednotlivé sloupce popřesouvat, mazat, měnit jejich názvy (například si je počeštit). V poli s názvem Title právě měníte nápis, v seznamu Format určujete typ. Můžete si vybrat z poměrně velkého množství možností – různé formáty času, adresy různých vrstev i typů (zdrojová ,cílová) atd. Pod nápisem Font se (překvapivě) skrývá nastavení písma, pod nápisem Colors zase nastavení barev (naplést s Coloring rules – jde o dvě rozdílné věci).

Tímto jsme s UI skončili, ostatně nebylo toho málo. Nyní se podíváme na Capture. Zde lze nastavit implicitní zařízení, na kterém bude ethereal naslouchat – doporučuji nastavit, defaultně bývá nastaven loopback, na kterém toho dvakrát moc nezachytíte :-) Zakšrtávací tlačítko Promiscuous mode značí automatické přepínání zařízení do promiskudního módu (viz. první díl seriálu). Update packet list in real time zase zajistí, že se během odchytávání budou přímo zachycené pakety přidávat do pole Packet list a vy si je hned budete moci prohlédnout. Automatic scrolling in live capture s předchozím nastavením uzce souvisí, máte-li předchozí položku zaškrtnutou, tak po zaškrtnutí této se při příchodu každého nového paketu právě tento nový vybere. A Hide capture info dialog zapříčiní nezobrazení tzv. Capture info dialogu, o kterém bude řeč příště.

V sekci Printing můžeme ovlivnit tisk. A to dvojím způsobem – odesílaným formátem, buď čistý text a nebo postscript. A místem, kam se bude odesílat, volíme mezi tiskárnou a textovým souborem.

root_podpora

V předposlední Name resolution nastavujeme standardní hodnoty pro nám již známý překlad jmen. A úplně poslední v tomto seznamu najdeme nápis Protocols, který obsahuje podseznam všech implementovaných protokolů, zde tedy můžete ovlivnit samotné dekódování a podrobnosti informací podané etherealem. Já osobně jsme zatím nepotřeboval do těchto nastavení nijak zasahovat, takže pouštět se do přenastavování všech 750 protokolů se určitě nemusíte.

A to je pro dnešek všechno. Tento díl si kladl za cíl vás podrobně seznámit s GUI etherealu a doufám, že se to i povedlo. Příští díl už bude určitě velice zajímavý, seznámíme se se s jádrem programu, tedy s odchytáváním paketů.

Byl pro vás článek přínosný?