Odposloucháváme data na přepínaném Ethernetu (2.)

V tomto dílu se již zaměříme na konkrétní techniku, a tou bude ARP Cache poisoning. Jedná se o techniku velmi účinnou, oblíbenou a těžce odhalitelnou, pokud jí nejsou zasaženy všechny počítače. Opět bych chtěl na tomto místě varovat, že odposlouchávání cizích dat může být trestné a můžete také tímto konáním porušovat smlouvu s vaším poskytovatelem připojení.

ARP Cache poisoning

Potřebná teorie

Jedná se o techniku, která využívá slabiny v ARP protokolu. Naším hlavním cílem je dostat data někoho jiného k našemu počítači, abychom si je mohli prohlédnout.

Nacházíme se v síti, kde je spojovacím zařízením switch. Switch pracuje na linkové vrstvě a adresuje pomocí MAC adres. Každý switch má uvnitř paměť, do které si ukládá MAC adresy zařízení v síti a přiřazuje si k nim porty, ke kterým jsou tato zařízení připojena. Když mu poté přijdou data (z jakéhokoliv portu), on se podívá, pro jakou MAC adresu jsou určena. Vyhledá tuto adresu v paměti a podívá se, ke kterému portu je tato adresa přiřazena, a data pošle tímto portem.

Protokol ARP slouží k překladu IP adres na MAC adresy (může sloužit i pro jiné překlady). Mezi IP adresou a MAC adresou není žádná matematická spojitost, proto tento překlad nemůže proběhnout výpočtem. Překlad nastane tehdy, jestliže chcete komunikovat s počítačem (budeme se zabývat pouze počítačem v LAN, jelikož adresování počítačů mimo LAN probíhá jiným způsobem), se kterým jste ještě nekomunikoval. Vy znáte nejčastěji pouze IP adresu onoho cílového PC, ale pro adresaci je ještě potřeba MAC adresa. Počítač proto pošle paket, který se nazývá ARP Request, který pro adresování používá pouze MAC adresy, jelikož se jedná o protokol, který pracuje na linkové vrstvě. V datové části tohoto paketu se nachází čtyři položky pro adresy. ARP Request paket slouží jako žádost, aby se ozval počítač, který má svoji IP adresu rovnu IP adrese příjemce v datové oblasti („IP adr. cílového PC“) paketu. Na obrázku níže je zachyceno, jak bude vyplněno všech šest adres paketu.

ARP

MAC adresa FF-FF-FF-FF-FF-FF je speciální a jedná se o broadcast. Když má nějaký paket tuto adresu nastavenou, je poslán switchem na všechny porty a zachytí jej všechny počítače. Každý počítač, který tento paket dostane, se na něj podívá a porovná IP adresu příjemce (IP adr. cílového PC) v datové části se svou. Jestliže nenastala shoda, paket zahodí a dále se mu nevěnuje. Nastane-li shoda, počítač odpoví zpátky vašemu a nastaví v paketu všechny adresy, jak je vidět na obrázku níže.

ARP

Váš počítač si z paketu odpovědi vytáhne MAC adresu odesílatele z datové části (MAC adr. cílového PC – z datové části, ta z adresové části se může během cesty paketu změnit). Nyní váš počítač ví, jakou MAC adresu má daný počítač. Aby nemusel tento překlad dělat pokaždé, udělá si záznam do paměti, že k určité IP adrese patří určitá MAC adresa. Tento záznam je uložen po nějakou dobu v paměti, poté je vymazán a překlad proběhne znovu. Této paměti říkáme ARP Cache.

Teorie útoku

Protokol ARP byl navrhován v dobách, kdy se o bezpečnost ještě moc nestaralo, proto nemá žádné ochranné mechanismy. Naše situace je taková: máme síť tří počítačů propojených switchem, máme počítače Útočník, Oběť a Brána. Brána je počítač, ke kterému je připojen Internet, a všechny počítače, pokud chtějí do Internetu, musí komunikovat přes něj (viz obr. níže).

Útok spočívá v tom, že Oběti pošleme paket, ve kterém jí říkáme, že Brána má MAC adresu stejnou jako Útočník. Dále pošleme paket Bráně, že oběť má MAC adresu stejnou jako Útočník. Tím docílíme, že počítače pro vzájemnou komunikaci budou dosazovat MAC adresu Útočníka a switch pošle data nám. My si data prohlédneme a pošleme je dále, ovšem teď již vyplníme správnou MAC adresu.

Nejspíše se ptáte, jak je to možné. Útok se nám podařil, protože protokol ARP si vůbec nehlídá, jestli o tato data žádal nebo ne. Jakmile už má záznam vytvořen, jakýmkoliv paketem ARP Reply mu můžeme záznam změnit. Jediná podmínka, která musí být splněna, je, aby už byl záznam (přiřazení MAC adresy k IP adrese), který chceme změnit, v cílovém počítači vytvořen. Tohle ovšem taky není problém, protože můžeme poslat například ping s falešným odesílatelem. Počítač dostane tato data a sám si uloží odesílatelovu IP a MAC adresu.

diagram - Ethernet

K dokonalosti nám chybí pouze to, aby neuplynula doba, po kterou jsou data uchovávána v ARP Cache (tato doba záleží na operačním systému). Toho docílíme tím, že tyto falešné ARP Reply pakety budeme posílat například každých deset sekund.

Pro hromadné otrávení ARP Cache se používají také takzvané ARP Gratuitous (zbytečné) Reply pakety. Jedná se o normální ARP Reply, kterému nepředcházel ARP Request a MAC adresa příjemce je nastavena na FF:FF:FF:FF:FF:FF . Proto ho přijmou všechny počítače na síti, a pokud mají u IP adresy oběti už záznam, změní jej na vaši MAC adresu.

ARP

Existují také ARP Gratuitous Request (je to dotaz na svoji IP adresu). Tento paket se posílá například při změně vaší IP adresy a nebo spuštění operačního systému. Slouží ke zjištění, zda není tato IP adresa již obsazena.

Praxe

Vše si ukážeme také prakticky. Těm, kteří doma nemají síť anebo to nemohou zkusit, doporučuji použít VMware Workstation, ve kterém si můžeme vytvořit virtuální síť, počítače a vše si tam odzkoušet. Veškeré další programy, které budeme potřebovat, jsou Ettercap, Ethereal a Dsniff. Všechny tyto programy naleznete také na Live CD. Toto Live CD nám bude stačit spustit pouze na jednom počítači. Program Dsniff je pouze pro Linux. Proto je potřeba Live CD, nebo aby na PC1 byl Linux.

Máme tři počítače: PC1, PC2 a PC3. Jejich IP a MAC adresy zjistíte příkazy ipconfig /all (Windows) nebo ifconfig (Linux). PC1 bude náš záškodník. Nejdříve vytvoříme záznamy v ARP Cache, a to tak, že z PC2 provedeme ping na PC3. Nyní si prohlédneme ARP Cache na počítači PC2. ARP Cache se nechá zobrazit pomocí příkazu arp -a (Windows), arp (Linux). Podívejte se hlavně, jaká MAC adresa je zde uvedena u IP adresy PC3. To samé proveďte na PC3. Nyní zahájíme pomocí PC1 útok. Na PC1 spustíme arpspoof –t IP_ADRESA_PC2 IP_ADRESA_PC3 (program arpspoof je součástí balíku programů dsniff). Nyní, když se podíváte na ARP Cache u PC2, zjistíte, že záznam se změnil. Nyní spustíme na PC1 arpspoof –t IP_ADRESA_PC3 IP_ADRESA_PC2. Předchozí program neukončujte. Otevřete si pouze novou konzoli.

ARP

Nyní veškerá komunikace půjde přes nás. Má to ovšem ještě ale malý háček  – data končí na počítači PC1, a ten je nepředává dále. Předávání dat povolíme příkazem echo 1 > /proc/sys/net/ipv4/ip_forward (na PC1). Nyní by vše mělo chodit v pořádku. Že data procházejí přes PC1, si můžeme ověřit programem Ethereal.

EBF16

Takto získáme komunikaci pouze mezi dvěma počítači. Pokud ale chceme veškerou komunikaci, provádí se to tak, že se otráví celá ARP Cache všech počítačů. Přesně tak to například dělá program Ettercap. Ettercap spustíme, vybereme „unified switching“ z panelu sniff. Dále v panelu Hosts vybereme „scan for hosts“. Tím se najdou počítače na síti. Nyní vybereme položku „Mitm“ (Man in the Midle) a vybereme „ARP Poisoning“. Tím jsme spustili útok, který pomocí ARP Cache poisoningu přesměruje veškerý síťový provoz přes vás. Nyní jen vybereme „Start“ a „Start sniffing“. Tento program vypisuje pouze cenné údaje, například hesla a uživatelská jména nebo jejich hashe.

Ettercap

Závěr

Jestli vás tento útok zaujal, doporučuji prostudovat blíže program Ettercap, zvláště pak jeho pluginy, které nabízejí spoustu zajímavých věcí. Na Live CD dále naleznete nějaké tutoriály. Například bych chtěl upozornit na tutoriál „Smart spoofing“, který využívá dnes probraného útoku k obcházení firewallu.

Anketa

Bojíte se, že by někdo mohl odposlouchávat vaše data?

33 názorů Vstoupit do diskuse
poslední názor přidán 2. 7. 2006 10:12

Školení Google Analytics pro pokročilé

  •  
    Jak využít nové funkce Google Analytics
  • Vyhodnocování pomocí Multichannel funnels
  • Neopakujte chyby při vyhodnocování dat.

Informace o školení Google Analytics pro pokročilé »