Hlavní navigace

Průvodce programem ethereal (4)

Dominik Pintér 18. 5. 2006

V dnešním díle se podíváme na práci se zachycenými daty, řeč bude o práci se soubory, o druhém způsobu filtrování, o vyhledávání a o barvení paketů.

Práce se soubory

Nejprve se podíváme na ukládání souborů. Na to, zda uložit soubor, se ptá ethereal při zavírání neuloženého souboru (kromě samotného zavírání souboru k tomu dojde při ukončování programu nebo otevírání jiného souboru). K obsloužení této činnosti slouží Save Capture file As dialog. Tento dialog můžeme vyvolat samozřejmě manuálně (pomocí Menu nebo Main toolbaru).

Save

Zde nejprve zvolíme název souboru a umístění. Widnows uživatel by mohlo zmást, že je defaultně předvolen jakýsi home adresář, ve win XP je považován za home adresář C:\Documents and Settings\vas_profil. Kromě adresáře home můžete nalézt standardně v tomto seznamu (prvním) kořenové adresáře všech záznamových zařízení na vašem počítači (to lze ovšem změnit, viz o několik řádek níž). Možností Browse for other folders zobrazíte klasické okno s výpisem adresářů a souborů na pravé straně a seznam vlevo je seznam „oblíbených“ adresářů, do kterého můžete adesáře přidávat i z něj ubírat podle libosti. V rámu Packet range můžeme vybrat, které pakety chceme uložit. Na výběr máme jednak mezi zachycenými (Captured) – tedy všemi – pakety a pouze těmi zobrazenými (Displayed) a za druhé (shora) mezi všemi, pouze vybranými, označenými, od prvního označeného po poslední, nebo můžeme specifikovat rozsah. A nakonec můžeme nastavit výstupní formát souboru. Můžeme si vybrat mezi následujícími:

  • libpcap (tcpdump)
  • Novell LANalyzer
  • Network Associates Sniffer
  • Sun snoop
  • Microsoft Network Monitor
  • Visual Networks Visual UpTime traffic
  • Accellent 5Views
  • Networks Instruments Observer version 9

Otevírání souborů není nijak obtížná činnost. Open file dialog využívá stejné seznamy pro práci se soubory jako Save Capture file As, navíc zde můžeme aplikovat display filtr (viz níže), nastavit překlad adres a infobox pod seznamem souborů nás informuje o souboru (velikost,formát, počet paketů, atd.). Ethereal umí číst poměrně velké množství formátů, viz tento počeštěný seznam:

  • libpcap, tcpdump a další tools, které používají formát souboru jako tcpdump
  • Sun snoop a atmsnoop
  • Shotimi/Finishar topografické odchytávání
  • Novell LANalyzer odchytávání
  • Microsoft Network Monitor odchytávání
  • AIX's iptrace odchytávání
  • Cinco Networks NetXray odchytávání
  • Network Associates Windows Sniffer a Sniffer Pro odchytávání
  • Network General/Network Associates DOS Sniffer (komprimované či nikoli) odchytávání
  • AG Group/WildPackets EtherPeek/Token­Peek/AiroPeek/Et­herHelp/Packet­Grabber odchytávání
  • RADCOM's WAN/LAN Analyzer odchytávání
  • Network Instruments Observer verze 9 odchytávání
  • Lucent/Ascend router deboguový výstup
  • HP-UX's nettl
  • Toshiba's ISDN routers dump výstup
  • ISDN4BSD i4btrace utility
  • Sledovací výstup z the EyeSDN USB S0
  • IPLog format z Cisco Secure Intrusion Detection System
  • pppd logy (pppdump format)
  • Výstup z VMS's TCPIP­trace/TCPtrace/UC­X$TRACE utilit
  • Textový výstup z DBS Etherwatch VMS utility
  • Visual Networks' Visual UpTime výstup ze zátěže
  • Výstup z CoSine L2 debug
  • Výstup z Accellent's 5Vi­ews LAN agentů
  • Endace Measurement Systems' ERF format odchytávání
  • Linux Bluez Bluetooth stack hcidump -w sledování

Spojování souborů

Spojovat jednotlivé soubory lze provést několika způsoby:

a) Pomocí Merge dialogu (File Menu->Merge) – zobrazit tento dialog můžeme pouze, pokud v etherealu s nějakým souborem pracujeme (buď jsme zachytili nějaké pakety a nebo otevřeli soubor). Dialog je velice podobný předchozím dialogům. Jedinou novinkou je zde výběr, jakým způsobem soubory spojit. Můžeme si vybrat mezi možností Přidat data před data z existujícího souboru (Prepend to existing file), spojit pakety chronologicky (Merge packets chronologically) a připojit pakety v programu za pakety v existujícím souboru (Append packets to existing file).

b) Metodou drag & drop – jednoduše přetáhnete do okna etherealu ikonky souborů, které hodláte pospojovat (bohužel nemám přehled, jak je to s kompatibilitou etherealu s různými grafickými prostředími ve světě unixu).

c) Pomocí textové utility mergecap – tato metoda nabízí další možnosti, viz mergecap -h.

Export a Tisk

Export i Print (tiskový) dialogy jsou si (opět) velice podobné. Exportovat data můžeme buď jako čistý text (Plaintext), Postscript a dvě XML podoby, jako přehled (Packets summary) a nebo jako detaily (packet details).

Export

Jak vidíte z obrázku, naleznete zde opět Packet range rám, který byl již představený. Navíc u dvou prvních (z vrchu) možností exportu a u Print dialogu nalezneme rám Packet Format. Zde si vybereme, jak podrobné budou informace o každém paketu. Můžeme vybrat možnost Packet summary line – velice podobné shrnutí jako v Packet list pane. Pak zde můžeme vybrat Packet details a zde máme další tři možnosti – All collapsed, stejné info jako když je Packet details pane celý zabalený, As displayed, tak jak je to právě zobrazeno v Packet details pane a nebo All expanded, všechny dostupné informace (jako rozbalený packet details pane). Print dialog navíc ještě obsahuje Print rámec, kde nastavíme formát, opět výběr mezi plain textem a PostScriptem a pak ještě můžeme nastavit tisk do souboru (Output to file).

Display filtry

Nyní se podíváme na druhý druh filtrování, a to na to display filtry. Podstata je opět stejná – vyhodnocování logických výrazů. Ale tento způsob filtrování nabízí mnohem více možností, obsáhlejší syntaxi a celkově se mi zdá více propracovaný. Aplikace těchto filtrů způsobí ale jen vizuální změny, pakety zmizí pouze z Packet list pane, data v souboru to nijak neovlivní. Toto neplatí v případě, kdy při aplikovaném filtru uložíme pouze zobrazené pakety, potom budou samozřejmě vyfiltrované pakety v souboru chybět. K práci s filtry slouží filtr toolbar. Ethereal také disponuje dialogem pro ukládání těchto filtrů(Menu->Analyze->Display Filtres…), který se velice podobá dialogu pro Capture filtry, o kterém jsem psal minule, proto se o něm už dále nebudu zmiňovat. A také zde nalezneme sestavovač (omlouvám se za toto slovo) těchto filtrů – Filter Expression (Filter Toolbar->Expression…). Nejříve si ale představíme samotný filtrovací jazyk.

Operátory

Můžete použít dva typy operátorů, buď podobné jazyku C nebo slovní. Myslím, že pro nás Čechy je ta první varianta mnohem jasnější.

Relační
Eng Jazyk C Vysvětlení a příklad
eq == Rovná se, ip.addr==127.0.0.1
ne != Nerovná se, ip.addr!=127.0.0.1
gt > Větší než, frame.pkt_len > 10
lt < Menší než, frame.pkt_len < 128
ge >= Větší nebo se rovná, frame.pkt_len >= 10
le < Menší nebo se rovná, frame.pkt_len >= 128
Kombinační
Eng Jazyk C Vysvětlení a příklad
and && Logický AND, ip.addr==10.1­.1.1 and tcp
or || Logický OR, tcp or udp
xor ^^ Logický XOR
not ! Negace, not tcp
[..] Substring operator – umožní nastavit část např. MAC adresy, od které bude systém odposlouchávat, eth.src[2]==82

Již z těchto tabulek si můžete všimnout, že mezi operátory a operandy můžete dávat mezery nebo nikoli, to záleží zcela na vás. Kromě těchto operátorů můžeme do jazyka vkládat závorky () pro určování priorit logických výrazů.

Typy hodnot

Číselné hodnoty můžete psát v desítkové, šestnáctkové i v osmičkové soustavě, takže zápisy:

ip.len 1500
ip.len 02734
ip.len 0x436 

jsou ekvivalentní. Dále jsou přípustné i logické(boolean) typy, ale pouze ve stavu true, tedy pravda, ovšem to se dá vyřešit pomocí kouzelného slovíčka „not“. Potom je samozřejmě přípustná hodnota IP adresy IPv4 i IPv6, MAC adresy, IPX, textu i čísla s desetinnou čárkou.

Protože výrazů, které můžeme mezi sebou porovnávat, má ethereal implementováno obrovské množství, existuje již zmíněný Expression Filter dialog, kde lze všechny tyto výrazy lehce nalézt. Ovládání je velice jednoduché, v levém sloupci vybereme výraz, uprostřed relační operátor a přiřadíme hodnotu.

Express

Nyní několik příkladů těchto filtrů:

ip.addr == 10.1.1.100 

tento filtr odstraní všechny pakety, které neodesílá/nepříjímá stanice s IP adresou 10.1.1.100.

icmp.type == 8 

Zobrazí pouze icmp echo pakety.

tcp.port == 80 and tcp.flags.fin == 1 

TCP pakety pouze s příznakem fin, které přišly/odešly přes port 80.

(ip.addr == 1.2.3.4 and ip.addr eq 10.1.1.100) and (tcp.port eq 6667 and tcp.port eq 1076) 

Pozor na chyby

Lidé často používají něco jako ip.addr == 1.1.1.1 pro filtraci paketů, které pocházejí nebo jdou na tento určitý počítač. Což je v pořádku. Ale často také používají něco jako i p.addr != 1.1.1.1  aby se jim do výpisu nepletly všechny pakety, které obsahují tuto určitou adresu. Ovšem tady je zrada. Ethereal si totiž tento filtr přeloží tak, že alespoň jedna IP adresa v paketu musí obsahovat jinou adresu než zadanou. Takže pro negaci filtru používejte vždy !(vyraz), tady např. !(ip.addr == 1.1.1.1).

Vyhledávání paketů

K vyhledávání paketů slouží Find Packet dialog, který zobrazí pomocí Edit->Find packet nebo klávesovou zkratkou ctrl+f.

Find

V panelu Find se definuje způsob vyhledávání. Máme na výběr ze tří možností, podle display filtru, hodnoty v hexa soustavě nebo stringu, textového řetězce. Zvolíte-li poslední možnost, můžete ještě definovat v jakém poli hledat(Search In). Dále můžete určit, jestli má být hledání citlivé na malá a velká písmena (case sensitive) a můžete vybrat taky znakovou sadu. No a poslední nastavení Direction se týká všech třech možností a rozhoduje, zda se bude hledat směrem dolů (down) nebo nahoru (up). Dále nechybí možnost Find next (hledej další) a Find previous (předchozí).

Obarvování paketů

Tahle pomůcka je velice užitečná, protože po navolení barviček a aplikování stačí zběžně shlédnout komunikaci a už víte, co jste zachytili. Otevřete si tedy Coloring rules dialog (view->Coloring rules)

Color

Práce s tímto dialogem je velice jednoduchá, stačí kliknout na pole new, v dalším okně vyplnit display filter, jméno pravidla (nepovinné) a barvu, foreground je barva písma, background je barva pozadí. Pak už jen stačí kliknout na tlačítko OK, tlačítko save, chcete-li pravidlo uložit, apply, chcete-li ho nyní aplikovat. Dále tam máte funkce export import na přenos pravidel na jiný/ z jiného počítače a funkci clear, která všechny pravidla vymaže. A ještě malá drobnost, musíte dávat pozor na pořadí pravidel (k přehazování slouží tlačítka up a down). Postupujte od nejvyšší vrstvy k nižším (např.: DNS před UDP), jinak se totiž stane, že program obarví všechny UDP pakety pouze jako UDP, aniž by ty DNS obarvil jinak.

A to je pro dnešek vše. Dnešní díl se všemi těmi obrázky okolo asi vypadal tak napůl jako omalovánka, ale pro lepší názornost jsem všechny podstatné dialogy nafotil. Příště se podíváme na pokročilejší funkce programu jako je follow tcp stream, packet reassembling, nastavení vlastních pravidel dekódování a tak dále.

Našli jste v článku chybu?

29. 11. 2007 2:54

Shang (neregistrovaný)
jOe, co kdybys přestal nabourávat články ostatních a taky něco napsal...
Ať už to autor napsal, nebo opsal, je to informace která se může hodit, tak jdi kritizovat jinam ;-)

Zdraví Shang


29. 7. 2006 12:16

Garfield (neregistrovaný)
j0e, máš na mysli jiný ČESKÝ článek a nebo se ti jako "kradení" jeví překlad z angličtiny?
I kdyby to byl "jen" překlad z angličtiny, má to pro mnoho lidí velkou cenu. A nad "kradením" bych kroutil hlavou, pokud by to autor prodával. Pokud to dává volně k dispozici, díky za to. A jestli máš něco lepšího, dej sem, taky budeš "Slavnej" :-)
Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

120na80.cz: Stoná vaše dítě často? Upravte mu jídelníček

Stoná vaše dítě často? Upravte mu jídelníček

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu