Skip to content
On this page

ARP Spoofing

Dalším útokem, na který se podíváme je opět velmi jednoduchý útok, kterému říkáme ARP Spoofing nebo ARP Cache poisoning. Prvně však co je to ARP.

ARP

Jak jsme si říkali, na nízkých síťových vrstvách nemusíme mít IP adresu abychom mohli komunikovat, stačí nám MAC adresy. Když doplňujeme informace v síťové vrstvě, jako zdrojovou a cílovou ip adresu, prostě doplníme 0.0.0.0 a 255.255.255.255. [1] (jde o síťové vrstvy, vrstvu nemůžeme jentak odebrat, počítače ji očekávají a docházelo by k chybám)

Jakmile však naše síť začne nabývat v dnešní době už obvyklé až nezbytné komplexity, naskytne se problém. My nemůžeme vědět jaké jsou MAC adresy zařízení na síti, ke které jsme připojeni, a jelikož jsou MAC adresy náhodné, hádání by bylo na velmi dlouhou dobu. Narozdíl od síťové vrsty, jejíž data se nemusí využívat, (využívají je pouze zařízení síťové a vyšších vrstev + cílové počítače, které na síti nemusí být) v datalinkové vrstvě MAC adresa nesmí chybět, jinak by informaci dostal špatný počítač.

Ve většině případů naštěstí známe IP adresu počítače se kterým chceme komunikovat, takže můžeme po celé síti zakřičet, KDO Z VÁS MÁ IP ADRESU 1.2.3.4?, tomuto se říká takzvaný broadcast, cílová MAC adresa rámce je ff:ff:ff:ff:ff:ff a switche vědí, že tento rámec mají přeposlat všem. Na tuto otázku pak buď žádný počítač neodpoví, tedy nejspíš na síti není, nebo odpoví a pošle svou IP a MAC adresu.[2] jakmile tuto odpověď dostaneme, můžeme si IP adresu přiřadit k MAC adrese v ARP tabulce uvnitř našeho počítače a příště když potřebujeme zjistit MAC adresu tohoto počítače, stačí se podívat do této tabulky.

ARP Spoofing

Problém vyřešen, opět jsme ale u tohoto řešení narazili na problém, co když na tuto otázku odpoví jiný počítač než ten, který tu IP adresu opravdu má. Počítač využije první adresu, která mu přijde, takže pokud stihneme odpovědět jako první můžeme ovládat komu na síti počítač bude data posílat.

Narozdíl od MAC Floodingu, který zařídí, že data dostávají všechny zařízení na síti, ARP Spoofing způsobí, že data budou chodit nám místo originálním počítačům, tedy musíme je poté přeposílat, nebo o útoku originální počítač nezjistí, protože mu nepřijde odpověď. Naštestí toto arpspoof umí řešit za nás - data přeposílá na IP adresu, kterou definujeme jako argument (SERVER_ADDRESS)

bash
doas arpspoof -i eth0 -t CLIENT_ADDRESS SERVER_ADDRESS
# S největší pravděpodobností chceme zachytávat i data, která chodí ze serveru klientovi, proto chceme přidat záznam i
# do tabulky serveru a chceme data přeposílat uživateli
doas arpspoof -i eth0 -t SERVER_ADDRESS CLIENT_ADDRESS

# Na novějších verzích arpspoof nemusíme spouštět 2x abychom zachytávali data ze serveru pro klienta, ale stačí použít
# arguent -r
doas arpspoof -i eth0 -t CLIENT_ADDRESS SERVER_ADDRESS -r

Shrnutí

  • Když chceme posílat data jinému počítači, musíme specifikovat MAC adresu
  • Pokud neznáme cílovou MAC adresu, můžeme se počítačů zeptat
  • Útočník může odpovědět dříve než cílový počítač, takže můžeme ovládat kam mají data být poslaná místo cílenému počítači
  • Většinou chceme data chytat oběma směry, jak od počítače na server, tak ze serveru na počítač

Zdroje

  1. https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol#Discovery
  2. https://en.wikipedia.org/wiki/Address_Resolution_Protocol