V tejto časti sa zameriame na ďalšie dva populárne, no zároveň veľmi nebezpečné MITM útoky vyskytujúce sa v rámci lokálnych sieti. Pôjde o „ukradnutie portu na prepínači“ a o zaplnenie jeho CAM tabuľky. Pre plné pochopenie článku je potrebné naštudovať si teóriu z minulej časti.
Upozornenie: Všetky publikované informácie a postupy slúžia výhradne na študijné účely, prevádzané len na sieťach, ktoré patria pod vaše vlastníctvo, ak týmto konaním priamo, či nepriamo nezasiahnete ich používateľov. Vykonávanie týchto postupov na sieťach s reálnou prevádzkou môže byť ilegálne a v každom prípade ide o amorálne počínanie. Autor článku nenesie žiadnu zodpovednosť za škody, ktoré môžu vzniknúť v dôsledku realizácie týchto postupov.
Tento útok útočníci vykonávajú za rovnakým účelom ako ARP cache poisoning. Snažia sa získať dáta, ktoré im neparia a to štýlom sledovania sieťovej prevádzky. Útok však spočíva v „kradnutí“ portov na prepínači (switchi).
Základnou požiadavkou je, aby útočník poznal MAC adresu obete, to však nie je ťažké v rámci LAN siete zistiť, napr. ARP pingom. Následne musí zmiasť switch resp. pozmeniť záznamy v jeho CAM tabuľke. Pri tomto útoku sa už vyžaduje prepnutie sieťovej karty útočníka do promiskuitného režimu.
Switch sa zvyčajne učí, ktorý port prislúcha akej MAC adrese počas bežnej prevádzky. Z rámca prichádzajúceho na určitý port, vyberie zdrojovú MAC adresu a zapíše si ju do CAM tabuľky k tomuto portu. Pokiaľ nebude v rámci prichádzajúcom z toho istého portu iná MAC adresa stále predpokladá, že za daným portom sa nachádza pôvodná stanica.
Útočník pošle na prepínač rámec, kde upraví zdrojovú MAC adresu na MAC adresu obete. Ako cieľovú uvedie svoju MAC adresu. Switch následne poopraví CAM tabuľku, podľa zdrojovej MAC adresy si bude myslieť, že obeť je pripojená k portu, za ktorým je v skutočnosti útočník. A keďže cieľová MAC adresa rámca sa nachádza na tom istom porte, rámec nebude odoslaný ďalej. Cieľová adresa môže byť nastavená aj na broadcast, čo útočník využije vtedy, ak je v sieti viac prepínačov a obeť je pripojená na niektorom ďalšom z nich.
Následne, ak prepínač pošle obeti akýkoľvek rámec dostaneme ho útočník. Ten ho môže ľahko analyzovať, pozmeniť, ale v každom prípade by ho mal opäť preposlať obeti. Aby to bolo možné musí znova prísť k oprave CAM tabuľky switcha. Útočník musí prestať posielať rámce so sfalšovanou zdrojovou MAC adresou. Po ukončení odošle paket ARP request a obeť by mala odpovedať paketom ARP reply. Switch logicky opäť poopraví svoju CAM tabuľku, obeti priradí správny port. Keď dorazí ARP reply paket od obete cez switch k útočníkovi, ten už má potvrdenú opravu CAM tabuľky a môže jej odoslať zachytené rámce. Následne tento postup opakuje.
Celý útok prináša aj nevýhody. Okrem nutnosti aktivácie promiskuitného módu, je tu riziko, že ak pošle obeť akýkoľvek rámec počas samotného trvania útoku rýchlejšie ako útočník, CAM tabuľka sa pozmení. Útočník tak musí zahlcovať sieť falošnými rámcami vo vysokej intenzite, ale aj vo veľmi krátkych časových intervaloch. Pravdepodobne však o isté rámce príde tým, že CAM tabuľka sa nestihne rýchlo upraviť v jeho prospech.
Zariadenie | Označenie | Port | MAC adresa |
Switch | SW1 | - | - |
Obeť | PC1 | port1 | MAC1 |
Útočník | PC2 | port2 | MAC2 |
Port 1 | Port 2 | |
Označenie | obeť, PC1 | útočník, PC2 |
MAC adresa | MAC1 | MAC2 |
CAM tabuľka po útoku:
Port 1 | Port 2 | |
Označenie | obeť, PC1 | obeť, PC2 |
MAC adresa | MAC1 (v skutočnosti však útočník, MAC2) |
zdrojová MAC adresa: | MAC1 |
cieľová MAC adresa: | MAC2 |
Tento útok možno detegovať pasívnym sledovaním sieťovej prevádzky, veľkým množstvom ARP request paketov, ktoré sa dotazujú na preklad rovnakej IP adresy. Ak však útočník útočí na počítač pripojený k inému prepínaču, okrem spomínaných ARP request paketov možno zachytiť aj rámce určené priamo ku „krádeži“ portu. Zdrojovou MAC adresou bude v tomto prípade MAC adresa obeti. Na manažovateľných prepínačoch je možné port stealing detegovať aj vypísaním CAM tabuľky.
Obrana proti tomuto sieťovému útoku je možná iba na prepínači. Tieto bezpečnostné funkcie ponúkajú len drahšie manažovateľné switche. Využíva sa technika DHCP Snoopingu a Port Security. DHCP Snooping tabuľka zaistí zahodenie rámcov, ktorých MAC a IP adresa sa nezhoduje s jej záznamami. A tak sú rámce s podvrhnutými MAC adresami jednoducho blokované. Zabezpečeniu Cisco prepínačov sa budeme venovať v osobitom článku.
K praktickému prevedeniu použijeme opäť program Ettercap. Po vykonaní všeobecných krokov, ktoré boli popísané v minulom článku spustíme konkrétny útok. V zozname staníc Targets - Current Targets, tabuľka Targets 1 pridáme obete. Potom cez menu Mitm - Port stealing zvolíme útok. V nasledujúcom dialógovom okne sú dve možnosti, zväčša zvolíme prvú a to Sniff remote connections. Pokiaľ je na lokálnej sieti viac prepínačov a naša obeť sa nachádza niekde za nimi aplikujeme voľbu Propagate to other switches. Pokiaľ ešte nie je spustený sniffing, treba tak spraviť Start - Start Sniffing.
Pre názornosť sme opäť previedli simuláciu na virtuálnej sieti. Počas priebehu simulácie sme použili 3 virtuálne počítače (VmWare) a switch pomocou programu GNS3. Podobne ako v minulom článku na jednom z počítačov bežal webový server a FTP server. Obeť pristupovala rovnako k webovej aplikácií a FTP serveru. Simulácia sa viaže na vyššie spomenutý postup, všetky MAC adresy sú fiktívne. Znázornenie použitých zariadení sa nachádza v tabuľke.
Počítač | IP adresa | MAC adresa | Port | Operačný systém | Úloha | Nástroje |
PC1 | 192.168.1.1 | 000C-2967-B68C | 3 | Windows XP | brána, server | webová aplikácia, FTP server |
PC2 | 192.168.1.2 | 000C-292A-A53F | 1 | Windows XP | obeť | prehliadač, FTP klient |
PC3 | 192.168.1.3 | 000C-2952-4593 | 2 | BackTrack 5 | útočník | Ettercap, Wireshark |
Pred samotným zahájením útoku je podoba CAM tabuľky prepínača v tomto stave:
Ettercapom zahájime útok:
Vo Wiresharku môžeme sledovať obrovské množstvo ARP paketov:
CAM tabuľka prepínača sa zmenila:
Vo výsledku máme opäť potrebné dáta. Po ukončení útoku Ettercap navráti CAM tabuľke pôvodný rozmer.
Účel tohto útoku je rovnaký, ako účel oboch predchádzajúcich.
Princípom útoku je zaplniť CAM tabuľku prepínača odosielaním veľkého množstva rámcov. Ak totiž switch nemá v CAM cieľovú MAC adresu odošle rámec na všetky porty. CAM tabuľka switcha má obrovskú kapacitu, zvyčajne obsahuje miesto pre tisíce položiek. Po zaplnení CAM tabuľky sa najčastejšie switch prepne do stavu, v ktorom sa správa ako HUB. Začne tak odosielať všetky prichádzajúce rámce na všetky porty, okrem tých, z ktorých prišli. Útočník potom už vďaka promiskuitnému režimu svojej sieťovej karty ľahko zachytí cudzie rámce, pomocou nástrojov určených na sniffing, ako Wireshark. Často sa však vyskytuje jav, keď už existuje pre nejakú legitímnu MAC adresu v CAM tabuľke záznam. V tomto prípade zvyčajne rámce určené pre túto MAC adresu poputujú len na jeden a to správny port, útočník tak o túto sieťovú prevádzku príde.
Položky v CAM tabuľke vydržia iba určitú (krátku) dobu. Útočník tak musí rýchlo zaplniť uvoľnené miesta v tabuľke. Môže sa však stať, že nejaký iný počítač bude rýchlejší a zaplní miesto ešte pred ním. V takom prípade stratí kontrolu nad komunikáciou smerujúcou k tomuto počítaču.
Záplavové rámce môžu mať zdrojovú a cieľovú MAC adresu generovanú spolu s IP adresami náhodne. Prepínač vyhotoví pre náhodne vygenerovanú MAC adresu záznam a rámec poputuje na všetky porty, pretože cieľovú MAC adresu prepínač nepozná. Takto útočník ľahko otrávi CAM tabuľky všetkých prepínačov na lokálnej sieti. Pokiaľ nastaví v rámcoch cieľovú MAC adresu na svoju a zdrojová sa bude naďalej generovať náhodne, switch spraví záznam v CAM tabuľke, no zistí, že príjemca je na rovnakom porte ako odosielateľ a rámec ďalej nepošle. Ďalších prepínačov sa tak útok nedotkne.
Útok možno detegovať najlepšie a najspoľahlivejšie vypísaním CAM tabuľky na manažovateľných prepínačoch. Detegovať ho však možno tiež pasívnym monitorovaním siete, pri prepnutí sieťovej karty do promiskuitného režimu. Pripojení však musíte byť na rovnaký switch ako útočník. Ak zaregistrujete príjem rámcov, ktoré sú určené iným MAC adresám, ako je tá vaša, ide s vysokou pravdepodobnosťou o MAC flooding. Tento spôsob detekcie je možný až vtedy, keď je už CAM tabuľka zaplnená. No v prípade ak prebieha útok na všetky prepínače nachádzajúce sa v rámci lokálnej siete, dá sa pasívnym odposluchom detegovať aj pred samotným zaplnením CAM tabuľky. Spoznali by ste ho prijímaním veľkého množstva rámcov s inými cieľovými MAC adresami.
Obrana je opäť možná iba na manažovateľných switchoch, prevádza sa v podstate rovnako ako bolo spomenuté pri Port stealingu.
Na prevedenie tohto útoku sa dá použiť aplikácia Macoff, súčasť nástroja Dsniff. Útok sa dá riadiť parametrami, bez ich použitia program generuje MAC aj IP adresy náhodne. Počas práce tejto aplikácie si pustíme analyzátor sieťovej prevádzky Wireshark a ak je naša sieťová karta v promiskuitnom móde uvidíme cudzie rámce. Spolu s týmito rámcami však uvidíme aj množstvo rámcov programu Macof, ideálne je ich vo Wiresharku hneď filtrovať. Množstvo vygenerovaných záplavových rámcov je závislých od výkonu počítača.
Útok je veľmi závislý od používaného prepínača na vašej lokálnej sieti. Každý switch sa pri MAC floodingu môže správať trocha inak. Ide najmä o odosielanie rámcov po zaplnení CAM tabuľky.
Topológia testovacej siete je v tomto prípade rovnaká ako pri Port stealingu a rovnaký by mal byť aj výsledný efekt.
Rámce možno zachytiť i vo Wiresharku:
CAM tabuľka prepínača sa zapĺňa fiktívnymi, náhodne vygenerovanými MAC adresami:
Môžeme vidieť, že oba spomínané útoky - Port stealing i MAC flooding majú po úspešnom aplikovaní veľmi podobný efekt ako ARP cache poisoning. Port stealing a MAC flooding však z pohľadu útočníka disponujú výhodou v ťažšej detekcii a je oveľa komplikovanejšie i nákladnejšie praktizovať voči nim účinnú obranu. Proti týmto dvom útokom sa nemožno chrániť inak, ako na manažovateľnom prepínači. Na bežných lokálnych sieťach, kde sa zväčša nepoužívajú tieto citeľne drahšie prepínače, v podstate nemožno ich prevedeniu nijako zabrániť. Ideálne je na zmiernenie negatívneho dopadu šifrovať dátovú komunikáciu použitím protokolov SSL a SSH. Útočník tak síce prevádzku zachytí, no bude šifrovaná, a tak nebude môcť spracovať údaje, ako prihlasovacie mená a heslá. Drvivej väčšine útočníkov tak kvalitné šifrovanie sieťovej komunikácie znemožní odposuch lokálnej siete.