Hned na úvod článku se vás pokusím navnadit tím, že vám prozradím, čím vším že se budeme zabývat. Obsah seriálu tedy plánuji takto:
- Úvod – Popis funkce programu a instalace
- Popis programu
- Odchytávání živé komunikace
- Práce se soubory
- Offline práce se zachycenou komunikací
- Další funkce programu
- Závěr
Takto nějak si představuji průběh seriálu, v jehož průběhu se podíváme na všechny zákoutí tohoto programu. Pustíme se hned do díla.
Co je to ethereal?
Už v úvodu jsem napsal, že ethereal je sniffer, ale co to vůbec sniffer je? Sniffery též známy jako síťové analyzátory jsou programy (na Wikipedii se píše, že sniffer může být i hardware, ale osobně jsem nic podobného neviděl), které odposlouchávají síťovovou komunikaci na určitém síťovém zařízení. Zachycené informace potom většinou dekóduje podle RFC norem a výsledky nějakým způsobem zaznamená.
Teď záleží na tom, zda síťové zařízení podporuje tzv. promiskuidní mód, pří kterém zachycuje sniffer všechny pakety, které projdou skrz dané síťové zařízení a nebo pouze ty, které jsou směřovány přímo jemu. Pokud tedy nastavíme promiskuidní mód, může sniffer zachycovat veškerou komunikaci na síti v případě, že síť je tvořena hubem, nebo se tak může stát po úspěšném útoku na switchovanou síť (man in the middle).
Ovšem důvodů k použití takovýchto programů existuje více:
- analyzování síťového provozu
- obrana proti napadení počítače – (IDS systémy mohou být založené právě na sniffování paketů)
- analýza problémů na síti
- rekonstrukce špatně zdokumentovaných nebo uzavřených protokolů
- již zmíněné špehování ostatních uživatelů sítě
- odlaďování vlastních síťových aplikací
Určitě jsem nevyčerpal všechny možnosti, ale pro představu to myslím stačí. Samozřejmě všechny předcházející řádky platí i pro ethereal, který se navíc pyšní kvalitním grafickým i textovým prostředím, dostupností na velkém počtu operačních systémů, implementací 750 síťových protokolů, možností importu a exportu různých formátů, propracovaným systémem filtrování, sestavování statistik atd.
Podle oficiální příručky je program dostupný pro následující platformy:
- Apple Mac Os X
- BeOS
- FreeBSD
- HP-UX
- IBM AIX
- NetBSD
- OpenBSD
- SCOUnixWare/OpenUnix
- SGI Irix
- Sun Solaris
- Tru64 UNIX
- všechny významné linuxové distribuce
- Microsoft Windows Xp, 2000 , NT4.0, W98, ME
Přitom jeho požadavky nejsou nijak přehnané. Jádro programu je postaveno na knihovně libpcap na unixech a na Winpcap na windows systémech. Grafické zpracování zajišťuje knihovna GTK+ a některé jeho funkce jsou realizovány pomocí knihovny Glib. Protože je program šířen pod licencí GNU GPL, tak v případě že se výše zmíněné knihovny nachází na vašem disku v použitelném stavu už vám nic nebrání v nainstalování samotného programu. K tomu se dostaneme ještě níže.
Ovšem aby nedošlo k omylu, musím podotknout, že ethereal je zcela pasivní nástroj. To znamená, že nedokáže pakety přetvářet, vytvářet nebo dokonce odesílat. Také nedokáže na zachytávanou komunikaci nijak reagovat či snad odvracet případný útok. Pro takovou činnost tento nástroj vyvíjen není. Ale na druhou stranu se dozvíte, co útoku předcházelo, jak probíhal a z toho můžete usuzovat, kde se stala chyba, což také nejsou informace k zahození.
Instalace pod *nixy
Co potřebujeme:
- GTK+ – pokud chybí, můžeme knihovnu stáhnout z www.gtk.org/download/
- Glib – možnost stáhnout ze stejné stránky jako GTK+
- Libpcap – možnost stáhnout z www.tcpdump.org/
- Zdrojový kód nebo binární balíček programu ethereal – možno stáhnout z www.ethereal.com/download.html
- V případě kompilace ze zdrojové kód ještě nějaký c kompilátor (např.: gcc)
Postup:
a) zdrojový kód
- Stáhneme Ethereal ( v mém případě
ethereal-0.10.14.tar.gz
) - Rozpakujeme archív
tar -xzvf ethereal-0.10.14.tar.gz
- Přemístíme se do složky se zdrojovým kódem
cd ethereal-0.10.14
- Spustíme konfigurační skript, pomocí argumentů je možno nastavit co chceme a co nechceme nainstalovat (ve většině případů stačí spustit základní verzi)
./configure
- Kompilace
make
- Přepneme se na uživatele root
su root
- Nainstalujeme
make install
Stejným způsobem nainstalujeme i chybějící balíky. Ethereal při instalaci kontroluje závislosti, takže se o chybějících balících dozvíme a musíme je instalovat před samotným etherealem.
b) binární balíček
- Debian:
apt-get install ethereal
- Redhat a distra využívající RPM:
rpm -ivh balik.rpm
Instalace pod Windows
Co potřebujeme: knihovnu Winpcap – možno stáhnout z www.winpcap.org/install/default.htm Instalační balík etherealu – možno stáhnout opět z www.ethereal.com/download.html.
Postup:
Instalační balík programu ethereal klasicky nainstalujeme (GTK+ a glib by měl instalátor obsahovat také). Totéž platí pro knihovnu winpcap. Co se týče vlastní kompilace ze zdrojového kódu, samozřejmě je možná také, ale nedoporučuje se. A proč dělat věci složitější než jsou, že?
První spuštění
A místo „hello word” programu v programátorských seriálech spustíme ehtereal. Pokud se všechno povedlo, měli byste mít zhruba tento pohled (grafické vykreslení se může malinko lišit v závislosti na operačním systému a verzi GTK+ knihovny):
A to je z prvního dílu vše. V příštím díle se zaměříme na popis grafického rozhraní a také podrobněji na vlastnosti a možnosti programu.