Vezetéknélküli hálózatok elleni támadások

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(Fake authentication)
a (Fake authentication: typo)
 
125. sor: 125. sor:
 
==== Fake authentication ====
 
==== Fake authentication ====
 
<pre>aireplay-ng -1 <delay></pre>
 
<pre>aireplay-ng -1 <delay></pre>
Elvégzi az autentikációt és az asszociációt a kijelölt hálózattal. Önmagában nem alkalmas ARP csomagok generálására, viszont hasznos, ha valamilyen további módszerrel forgalmat akarunk generálni, de ehhez kell egy, a rendszerbe regisztrált MAC cím (és nincs aktív kliens a hálózaton). WPA/WPA2-es AP-khoz nem használható.<br>
+
Elvégzi az autentikációt és az asszociációt a kijelölt hálózattal. Önmagában nem alkalmas ARP-csomagok generálására, viszont hasznos, ha valamilyen további módszerrel forgalmat akarunk generálni, de ehhez kell egy, a rendszerbe regisztrált MAC cím (és nincs aktív kliens a hálózaton). WPA/WPA2-es AP-khoz nem használható.<br>
 
A <tt><delay></tt> másodpercben megadja az autentikációs csomagok küldése közt eltelt időt.
 
A <tt><delay></tt> másodpercben megadja az autentikációs csomagok küldése közt eltelt időt.
   

A lap jelenlegi, 2009. december 15., 02:51-kori változata

Írta: Zentai Ármin, 2009. december.

A mai világban a vezetéknélküli internetelérés már a mindennapi élet része, az utcán hotspotokra kapcsolódhatunk mobil eszközeinkkel és innen érjük el az e-mailjeinket, nézünk meg weboldalakat. Ha otthon laptopon szoktunk dolgozni, akkor sokkal egyszerűbb egy tízezer forint körüli, SOHO (Small Office / Home Office) routert felállítani, amivel az internetelérésünk könnyedén "szétszórható" a lakásban. Ez a technológia előnyös oldala, de a vezetékes kapcsolattal ellentétben, itt nincs egy elszigetelt közeg, így viszonylag könnyű megfigyelni, hiszen az adataink a levegőben terjednek, bárki számára lehallgatható módon. Fontos, hogy tisztában legyünk azzal, hogy a különféle titkosítási módok, amit használhatunk mennyire biztonságosak, illetve saját kisebb hálózatainkat hogyan védhetjük meg jobban. A témáról sokat lehetne írni, pl. a kriptográfiai háttérről, vagy a különféle protokollok részletes felépítéséről stb., de nem ez a célom. A rendelkezésre álló programok közül is csak néhányat fogok említeni. Gyakorlatilag egy how-to jellegű leírást készítettem, ami minimálisan érinti, hogy mi miért működik. A szócikket kizárólag oktatási célból írom, mivel magánszemélyek és szervezetek hálózataiba illetéktelenül behatolni törvényellenes. Írásomban a vezetéknélküli hálózat felfedezésétől, az abba való betörésig prezentálom a módszereket, az egyes lépéseknél minimálisan igyekszem kitérni a részletekre, és röviden leírni, hogy miért működik az adott támadás.

Tartalomjegyzék

[szerkesztés] 1 Használt programok

  • A legtöbb használt program csak root jogokkal fut rendesen.
  • A programoknak nincs szükségük grafikus felületre.
  • Ahol nem írok a telepítésről, ott a legtöbb disztribúcióban a csomagkezelőben elérhető (APT-nél: apt-get install <csomag neve>).
  • Az összes program elérhető a Backtrack 4 elnevezésű pentestingre kifejlesztett disztribúcióban.

[szerkesztés] 2 A környezetünkben lévő hálózatok felkutatása

Alapvetően sokféle eszközzel kilistázhatjuk a környezetünkben lévő wifi-hálózatokat; ezek közül most kettőt említenék meg. A Kismet jó választás, sok minden másra is használhatjuk ezen kívül, de most nem fogok róla írni. Az iwlist, a Wireless tools for Linux csomag része, és amelyik disztribúció támogat wifi-adaptereket, abban szinte kivétel nélkül megtalálhatjuk, mint alapból telepített csomagot.

iwlist wlan0 scan

Ehhez hasonlókat fog visszadni:

Cell 01 - Address: DE:AD:BE:EF:CA:FE
        Channel:6
        Frequency:2.437 GHz (Channel 6)
        Quality=38/70  Signal level=-72 dBm
        Encryption key:on
        ESSID:"enegywlanvagyok"
        Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                  12 Mb/s; 24 Mb/s; 36 Mb/s
        Bit Rates:9 Mb/s; 18 Mb/s; 48 Mb/s; 54 Mb/s
        Mode:Master
        Extra:tsf=0000001265fd641e
        Extra: Last beacon: 960ms ago
        IE: Unknown: 00096779756C75734E4554
        IE: Unknown: 010882848B960C183048
        IE: Unknown: 030106
        IE: Unknown: 2A0100
        IE: Unknown: 32041224606C
        IE: Unknown: DD0900037F01010008FF7F
        IE: Unknown: DD1A00037F0301000000002127F2FF5A022127F2FF5A64002C010808

Innen a legtöbb adat értelemszerű, vagy lényegtelen: A DE:AD:BE:EF:CA:FE, az AP MAC címe, a 6-os csatornán üzemel és a jel erőssége megfelelő. Az encryption key: on-ból kiderül, hogy a hálózat titkosítást használ, az ESSID:"enegywlanvagyok", pedig mutatja, hogy a hálózat azonosítója "enegywlanvagyok". Ha az ESSID üres, akkor az AP-n ki van kapcsolva az SSID Broadcasting opció (a legtöbb SOHO eszközben is be/ki kapcsolható). Ilyenkor csak akkor tudunk rá kapcsolódni, ha MAC cím alapján tesszük, vagy valahogy megszerezzük az SSID-t (pl. Deauthentication segítségével).

[szerkesztés] 3 A hálózatok lehallgatása

A WLAN-ok lehallgatása passzív támadásnak minősül, mivel nem küldünk csomagokat a rendszerbe, csak elfogjuk és rögzítjük azokat, amik elérik a mi hálózati adapterünket. Erre a standard wifi driver nem feltétlenül elegendő, mert nem támogatja a monitor mode-ot. A Linux alatt elérhető wifidriver-megoldások (ndiswrapper, madwifi stb.) egy elég nagy témakört tesznek ki, amit itt nem részletezek, mert egy külön szócikket is megérne. Szükségünk lesz még egy aircrack-ng nevű programcsomagra, ez már a legtöbb disztribúcióban elérhető a csomagkezelőben. Először az airmon-ng nevű programmal monitor módba kell raknunk a vezérlőnket.

airmon-ng start wlan0

Ha sikeres, akkor közli, hogy monitor mode enabled on mon0, és ezentúl ezen érjük el a monitor módban lévő adapterünket. Kiírhatja, hogy pár másik program zavarhatja az aircrack-ng suite egyes programjait, és ha gondokat tapasztalunk a működésükkel akkor lőjük ki őket. Ha végeztünk a dolgunkkal, akkor a monitor mode kikapcsolása a következő módon történik:

airmon-ng stop mon0

Ha csomagokat is szeretnénk a rendszerbe küldeni, akkor célszerű nem a saját gyári MAC-címünket használni erre; lecserélni a macchanger-el tudjuk.

macchanger --mac=BA:DC:0D:ED:C0:DE mon0

Csomagokat lehallgatni az airodump-ng-vel tudunk

airodump-ng [-c <channel>] [-i] [-w <prefix] [-d <bssid>] mon0
  • -c <channel>: Fixálni lehet a vizsgálódást egy adott csatornára (sok további program csak fixált csatornával működik)
  • -i: Csak IV-ket (Initialization Vector) ment le (WEP törésnél hasznos)
  • -w <prefix>: A pcap fájl előtagja, ebbe fognak kerülni a mentett csomagok
  • -d <bssid>: Csak a megadott MAC című AP csomagjait rögzíti

A program lehetséges kimenete

 CH  3 ][ Elapsed: 4 s ][ 2009-12-06 20:59

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 00:22:6B:DB:1B:84  -70        8        0    0  11  54e  WPA2 CCMP   PSK  <length:  4>
 00:21:27:F2:FF:5A  -74       13        2    0   6  54 . WEP  WEP         gyNET
 00:10:E7:F5:94:23  -97        6        0    0   8  11   OPN              WifiZone
 00:1C:C5:D7:F3:F4  -98        4        0    0  11  54e. WEP  WEP         Solaronics

 BSSID              STATION            PWR   Rate    Lost  Packets  Probes

 00:21:27:F2:FF:5A  00:24:2C:5E:64:7E  -75   54 -54      0        2

A különböző oszlopok jelentése
Felső rész - AP

  • BSSID: A MAC címe az AP-nek
  • PWR: A jel erőssége; nagyban függ az antenna erősségétől, az AP-tól való távolságtól, a jel útjában lévő akadályoktól és a drivertől is. Ha az összesnél -1 az érték, akkor a driver nem támogatja a jelerősség kijelzését. Ha csak néhánynál, akkor látja az AP által küldött jeleket, de ha kliens lóg az AP-n, akkor az ő visszaküldött jeleit már nem érzékeli.
  • RXQ: Csak rögzített csatornánál van ilyen oszlop. Megmutatja, hogy a legutolsó 10 másodpercben detektált csomagok hány százaléka értelmezhető sikeresen.
  • Beacons: Az AP által küldött beaconframe-ek száma. Általában kb. 10 érkezik másodpercenként a legalacsonyabb küldési beállításnál, általában nagyobb távolságról is sikeresen detektálható.
  • Data: Elfogott adatcsomagok száma
  • #/s: Az adatcsomagok másodpercenkénti száma az utolsó 10 másodpercben
  • CH: Csatorna száma (1-13)
  • MB: Az AP maximális sebessége
    • = 11 : 802.11b
    • = 22 : 802.11b+
    • ennél magasabb: 802.11g
    • +e: 802.11e
  • ENC és AUTH: titkosítási eljárás:
    • ENC=OPN: Nincs titkosítás
    • ENC=WEP?: WEP, vagy ennél magasabb szintű, nincs elég adat az eldöntéséhez
    • ENC=WEP: dinamikus WEP (CIPHER=WEP40, WEP104, a WEP különböző, az általánosnál hosszabb kulcsú fajtái)
    • ENC=TKIP/CCMP: WPA/WPA2 (A TKIP általában WPA-t, a CCMP általában WPA2-t jelent)
  • ESSID: SSID, a hálózat azonosítója

Alsó rész - Kliensek

  • STATION: A kliens MAC-címe
  • Rate: Az adatáramlás sebessége (első szám: AP->kliens; második szám: kliens->AP)
  • Lost: A kliens által küldött csomagokból elveszített csomagok száma
  • Packets: A kliens által küldött csomagok száma
  • Probes: Azoknak a hálózatoknak az azonosítói, amikre egy kliens megpróbált felcsatlakozni

Tehát itt négy AP van a környezetünkben, amik közül az egyik rejtett SSID-t használ, az egyiken nincs titkosítás, kettőn WEP található, egy meg WPA2/AES-sel védett. Továbbá a gyNet hálózattal asszociálva van egy kliens.

[szerkesztés] 4 Csomagok injektálása a hálózatba

Csomagok beszúrására alkalmas eszköz az aireplay-ng. Sok funkciója van: ezek működését itt ismertetem, használatukra példákat pedig az egyes támadások részletezésénél.

[szerkesztés] 4.1 Deauthentication

aireplay-ng -0 <count>

Kapcsolatbontást előidéző üzeneteket küld a megadott kliensnek (klienseknek). Ennek a hatására a kliensek újra fognak kapcsolódni, így közben el lehet fogni a WPA/WPA2 handshake-eket; a windowsos kliensek pedig jó eséllyel ürítik az ARP cache-üket is. Hidden SSID-nél is jó, mivel ilyenkor újra el fogja küldeni a leválasztott kliens az SSID-t.
A <count>-tal meghatározható, hogy hány deauthentication csomagot küldjön.

[szerkesztés] 4.2 Fake authentication

aireplay-ng -1 <delay>

Elvégzi az autentikációt és az asszociációt a kijelölt hálózattal. Önmagában nem alkalmas ARP-csomagok generálására, viszont hasznos, ha valamilyen további módszerrel forgalmat akarunk generálni, de ehhez kell egy, a rendszerbe regisztrált MAC cím (és nincs aktív kliens a hálózaton). WPA/WPA2-es AP-khoz nem használható.
A <delay> másodpercben megadja az autentikációs csomagok küldése közt eltelt időt.

[szerkesztés] 4.3 Interactive

aireplay-ng -2

Egy kiválasztott csomagot visszainjektál a rendszerbe. Csomagokat két forrásból szerezhet: a vezetéknélküli hálózati csatoló forgalmából, illetve egy pcap fájlból. Leggyakrabban a packetforge-ng által generált pcap fájlok tartalmának injektálására használják. Ha a beszúrt csomag érvényes a rendszer számára és az AP elfogadja, akkor új IV fog generálódni.

[szerkesztés] 4.4 ARP Replay

aireplay-ng -3

Nagyon hatékony módszer arra, hogy új IV-ket generáljunk. ARP-csomagot vár a program, majd ezt visszaküldi az AP-nek, ennek hatására az AP megismétli az ARP csomagot egy új IV-vel és ez így folytatódik tovább. Alkalmas arra, hogy viszonylag gyorsan gyűjtsünk elég IV-t a WEP-kulcs felfedéséhez.

[szerkesztés] 4.5 Chop-Chop

aireplay-ng -4

Ha ez a támadás sikeres, akkor dekódolható egy WEP csomag, anélkül, hogy tudnánk a jelszót. Nem fedi fel a jelszót, de megtudható bizonyos csomagok plaintext-je. Az AP-k egy része nem támadható ezzel a módszerrel.

[szerkesztés] 4.6 Fragmentation

aireplay-ng -5

Ha sikeres, akkor 1500 bájtot meg tud szerezni a PRGA-ból. Nem fejti meg a kulcsot, de használható a megszerzett PRGA alapján véghezvihető injektálásos támadásokra. A megszerzett adat használható arra, hogy a packetforge-ng segítségével a rendszer számára érvényes csomagokat generáljunk.

[szerkesztés] 5 Titkosítás nélküli hálózatok (OPN)

Ezeken a hálózatokon semmilyen alsó rétegbeli titkosítás nincs; a .pcap fájlt el tudjuk olvasni bármilyen protokoll-analizátorral (pl. Wireshark vagy tcpdump), és megfelelő beállításokkal bizalmas információkat tartalmazó csomagokra tudunk szűrni (pl. POP3-on, SMTP-n, HTTP/POST-on, FTP-n stb. keresztüli autentikációkra). Természetesen ha a kliensek valamilyen magasabb rétegbeli titkosítást haszálnak (pl. SSL, TLS), vagy biztonságos VPN-csatornán át kommunikálnak, akkor ez a fajta lehallgatás nem fog eredményre vezetni. Legtöbbször a gyári beállításon hagyott SOHO WLAN routerekre jellemző, illetve hotspotokra. Sok helyen annak ellenére, hogy szabadon csatlakozhatunk rájuk, nem jutunk internet-eléréshez, mert valamilyen további hitelesítést kíván, amit legtöbbször pénzért vehetünk (repülőtereken, éttermekben gyakori). Ezeknél is van egy később tárgyalt lehetőség, hogy internet-elérést szerezzünk (fizetés nélkül).

[szerkesztés] 6 A WEP

A WEP (Wired Equivalent Privacy) használata támadhatósága miatt manapság nem javasolt. Létezik belőle 64 bites és 128 bites változat is, de az algoritmus gyengesége miatt a 128 bites kulcshossz sem jelent sokkal nagyobb kihívást. Néhány gyártó termékeiben beállítható a 256 bites változata is. Elegendően sok csomag megszerzése után (ez egy forgalmas hálózaton nem több, mint 4-5 perc) percek alatt visszafejthető a titkosításra használt kulcs. A visszafejtésre több algoritmus is rendelkezésünkre áll, ezek kifejlesztésük sorrendjében az alábbiak: FMS [1], KoreK és a manapság a legjobb teljesítménnyel bíró a PTW (whitepaper az említett algoritmusokról: http://papers.zenta.iarm.in/wifi/WiFi%5ben%5d-breaking%20wep%20and%20wpa.pdf).

[szerkesztés] 6.1 A titkosítás kriptográfiai hátteréről

RC4-es kulcsfolyam-rejtjelezőt használ titkosításhoz és CRC32-t integritásvédelemre. Az RC4-es egy elég egyszerű és gyors rejtjelező, ami úgy működik, hogy a plaintext-et xorolja egy végtelen hosszú bitfolyammal, ami egy kezdeti kulcsból generálódott. Ebből a kulcsból egy KSA (Key Scheduling Algorithm) előállítja az SA-t (State Array, 2048 bites), és a SA-ból a PRGA (Pseudo Random Generation Algorithm) mindíg előállít egy újabb álvéletlen bájtot, majd ezen és a sorra következő plaintext bájton hajtódik végre a xor. A WEP-nél az RC4-nek adott kulcs a hálózathoz használt jelszó és egy IV összefűzéséből ered. Az IV csak 24 bit hosszú, ami egy forgalmas hálózaton nem elegendő, mivel a 16,7 millió lehetőség nem jelent megfelelő ütközésállóságot. Ezért viszonylag rövid időn belül elő fog állni egy olyan helyzet, amikor ugyanazt a kulcsot többször használjuk; ez az algoritmus gyengéje. Emellett a 32 bites CRC sem tekinthető kriptográfiailag biztonságosnak, rövidsége és gyenge ütközésállósága miatt.

[szerkesztés] 6.2 WEP elleni támadások

Minden támadásnál szükséges lehallgatni a kommunikációt és a keletkezett pcap fájlban lévő adatokkal az aircrack-ng segítségével visszafejteni a kulcsot. A csomagok rögzítését nem muszáj leállítanunk a jelszóvisszafejtés elindításához. Nagyforgalmú hálózaton nincs szükség további lépésekre, mivel ilyenkor magától is gyorsan összegyűlik elegendő adatcsomag (és így IV). Ekkor elegendő csupán hallgatózni, majd törni; támadásunk teljes mértékben passzív lesz. Ha nincs forgalom a hálózaton, akkor forgalmat kell generálnunk. Erre több módszer is létezik.

[szerkesztés] 6.2.1 Deauthentication and ARP Packets Injections

  • Szükségünk lesz hozzá egy aktív kliensre
aireplay-ng -1 0 -e <SSID> -a <AP MAC addr> -h <Client MAC addr> mon0
aireplay-ng -3 -b <SSID> -h <Client MAC addr> mon0

Ilyenkor a kijelölt klienst kommunikációra kényszerítjük és ezzel generáljuk a szükséges adatáramlást.

[szerkesztés] 6.2.2 ARP Replay

  • Alkalmazható kliens nélküli hálózatokra is
  • Ha MAC filtering van az AP-n, akkor a rendszer számára engedélyezett MAC címet kell beállítani magunknak.
aireplay-ng -1 0 -e <SSID> -a <AP MAC addr> -h <Your MAC addr> mon0
aireplay-ng -3 -x 1000 -n 100000 -b <AP MAC addr> -h <Your MAC addr> mon0

Ilyenkor magunkat asszociáltatjuk a kijelölt AP-vel és elkezdjük visszajátszani az általa küldött ARP-csomagokat.

[szerkesztés] 6.2.3 KoreK's Chop-Chop attack

  • Alkalmazható kliens nélküli hálózatokra is
  • Nem minden AP-n működik (az általam tesztelt 3 Linksys router közül egyiken sem ment)
aireplay-ng -1 0 -e <SSID> -a <AP MAC addr> -h <Your MAC addr> mon0
aireplay-ng -4 -b <AP MAC addr> -h <Your MAC addr>
 - Use this packet ? y
packetforge-ng -0 -a <AP MAC addr> -h <Your MAC addr> -k 255.255.255.255 -l 255.255.255.255 -y <xor file, az előző parancsból> -w arp-request
aireplay-ng -2 -r arp-request mon0

Leírás a támadásról: http://www.aircrack-ng.org/doku.php?id=chopchoptheory

[szerkesztés] 6.2.4 Fragmentation Attack

  • Alkalmazható kliens nélküli hálózatokra is
  • Nagyon érzékeny az AP-tól való távolságra
  • Szignifikánsan több csomagot kell gyűjteni, mint a többi támadásnál
aireplay-ng -1 0 -e <SSID> -a <AP MAC addr> -h <Your MAC addr> mon0
aireplay-ng -5 -b <AP MAC addr> -h <Your MAC addr> mon0
 - Use this packet ? y 
packetforge-ng -0 -a <AP MAC addr> -h <Your MAC addr> -k 255.255.255.255 -l 255.255.255.255 -y <xor file, az előző parancsból> -w arp-request
aireplay-ng -2 -r arp-request mon0

A célja gyakorlatilag a PRGA algoritmus felfedése, és a következő érték generálása, ami ahhoz szükséges, hogy új csomagot szúrjunk be a rendszerbe. Gyakorlatilag a beszúrt ARP-csomagra érkező válaszok jelentik a generált forgalmat.

[szerkesztés] 6.2.5 Caffe-Latte attack

  • Akkor hasznos, ha a kliens hatókörében vagyunk, de az AP-t már nem érjük el.
airbase-ng -N -e <SSID> -a <AP MAC addr> -W 1 -c <AP channel> mon0

Az airbase-ng arra használható, hogy ideiglenes AP-vá változtassuk a wifi-vezérlőnket. A támadásban a kliens felé egy ARP-csomagáradatot zúdítunk és mivel ugyanolyan paraméterekkel rendelkezünk mint az igazi AP, válaszol is rájuk; ebből a forgalomból tudjuk majd megfejteni a jelszót.

WEP-nél lehetőség van arra, hogy a pcap fájlt utólag dekódoljuk a hálózat jelszavával, és így megtudjuk a csomagok tartalmát. Erre az airdecap-ng használható:

airdecap-ng -e <SSID> -w <wep key> <cap file>

Előfordulhat az is, hogy érzékelik a támadásunkat és elkezdik véletlenszerű WEP-kulccsal titkosított üzenetekkel elárasztani a hálózatot, ami lehetetlenné tenné a PTW-algoritmus használatát. Ezen csomagok kiszűrésére alkalmas az airdecloak-ng, de csak akkor működik, ha mindent rögzítünk a pcap fájlban (-i/--ivs kapcsoló nem lehet bekapcsolva az airodump-ng-ben).

airdecloak-ng --bssid <AP MAC addr> -i <cap file>

[szerkesztés] 6.3 Jelszavak visszafejtése

Az aircrack-ng nevű programot fogjuk erre használni

aircrack-ng [-b <MAC>] [-e <SSID>] [-f <fudge>] [-x2] <.cap / .ivs fájlok>
  • -b <MAC>: Csak a kijelölt MAC-című AP-hoz tartozó jelszóval próbálkozik.
  • -e <SSID>: Csak a kijelölt SSID-t használó AP-hoz tartozó jelszóval próbálkozik.
  • -f <fudge>: Ennek magas értéke esetén lassúbb lesz az algoritmus, viszont nagyobb esély lesz arra, hogy sikeres lesz (default: 2).
  • -x2: Az utolsó két byte-on futtat bruteforce algoritmust; következménye hasonló a fudge factorhoz.
  • <.cap / .ivs fájlok>: Az airodump-ng-vel generált pcap fájl, ami tartalmazza az IV-ket.

Ha nem adunk meg se -b, se -e kapcsolót, akkor kiválaszhatjuk egy listából a törendő hálózatot. Ezek után a program elkezdi futtatni a PTW-algoritmust, ami jó esetben pár perc alatt megfejti a jelszót. Általában 30.000 IV-vel már lehet próbálkozni.

Az aircrack-ng-nek létezik egy aircrack-ng-cuda nevű változata is, amivel kihasználhatjuk a grafikus vezérlőnk (Nvidia DX10+) teljesítményét is.

[szerkesztés] 7 WPA

A WPA (Wi-Fi Protected Access) gyakorlatilag a WEP továbbfejlesztett változata, de alkalmaz néhány technikai újítást. Egy TKIP-implementáció (TKIP: Temporal Key Integrity Protocol) kapja meg az IV-t (ami már 48 bites) és a hálózathoz használt jelszót, és ez állítja elő az RC4-es algoritmus számára a kulcsot (ami így biztonságosabb, mint a sima összefűzésnél). A WPA bevezet egy szekvenciaszámlálót a csomag-visszajátszásos támadások ellen, Továbbá az integritásellenőrző kódot is 64 bitesre bővítették; az új CRC neve MICHAEL. Később a TKIP-ben is találtak különböző hibákat, amikkel a tikosításra használt kulcsfolyam soron következő értékei megjósolhatóak voltak; ezáltal lehetővé vált adatok injektálása a hálózatba.

Két üzemmódja van: PSK (Pre-Shared Key) és Enterprise. Mi az előbbivel fogunk foglalkozni. A PSK-nál egy jelszót kell megadni (8-63 karakter), ami még 4096 iteráción keresztülmegy egy HMAC-SHA1 hashelő algoritmuson, aminek a sóját az SSID adja (ha a kódot 64 darab hexadecimális számként adjuk meg, nem fut le a hashrutin). A jelszót belátható időn belül csak akkor tudjuk visszafejteni (illetve ütközést találni a célhashre), ha rövid (bruteforce attack), vagy könnyen kitalálható (dictionary attack).

[szerkesztés] 7.1 WPA elleni támadások

A WPA-kapcsolatok felépülésekor lefut egy négylépéses handshake; ezeket az üzenetet elfogva lehetőségünk van arra, hogy megszerezzük a kapcsolathoz használt hash-t. Ha találunk ezután olyan jelszót, aminek a hash-e ütközik a célhash-sel, akkor az a hálózathoz tartozó jelszó. Először az aireplay-ng-vel deautentikálunk.

aireplay-ng -0 10 -e <SSID> -a <AP MAC addr> -h <Client MAC addr> mon0

Ezzel kikényszerítünk egy újracsatlakozást, és ekkor elfoghatjuk a handshake-et. Az aircrack-ng is képes hash-törésre az alábbi módon:

aircrack-ng <pcap file> -w <wordlist>

Most már csak egy jó szólistára [2] [3] lesz szükségünk és jó esetben meg tudjuk találni a keresett jelszót.

Létezik továbbá egy coWPAtty nevű program is, ami hasonló célt szolgál. Lefordítani és installálni a szokásos make && make install paranccsal tudjuk. Működése során előfordulhat, hogy buffer overflow-val elszáll, ilyenkor a Makefile-ban a CFLAGS += -02 sor kikommentezése segít (elvileg 4.2 utáni GCC fordítókon gyakori).

Az aircrack-ng-nél valamivel lassúbb, de nagy előnye, hogy jelenleg a négylépéses handshake első két lépése is elegendő neki (legalábbis jelen sorok írásakor az 1.0-nál tartó aircrack-ng még nem tudta ezt a funkciót). A handshake első két fázisa akkor is lefut, ha egy általunk létrehozott fake AP-hoz kapcsolódik a kliens (ez persze nem fog neki sikerülni), így sokkal bővebbek a lehetőségeink, mint az aircrack-ng esetében.

cowpatty -r <cap file> -f <wordlist> -s <SSID>

Fontos funkciója továbbá, hogy képes előre generálni táblákat (rainbow table [4]), amivel sokkal gyorsabban lehet véghezvinni a bruteforce eljárást. Sajnos, mivel az SSID sóként működik, SSID-nként kellenek különböző táblák. A táblákat a genpmk paranccsal generálhatunk:

genpmk -f <wordlist> -d <table_file> -s <SSID>

Utána az előállított table_file-al tudjuk gyorsabban használni a cowpatty-t

cowpatty -r <pcap file> -d <table_file> -s <SSID>

A projekt oldaláról letölthető egy 7 gigabájtos táblacsomag 1000 különböző SSID-hez, mintegy 170 000 kipróbált jelszóval.
Ennél komolyabb (33 GB) található az alábbi címen: http://rainbowtables.shmoo.com/

[szerkesztés] 8 WPA2

A Wi-Fi Protected Access 2 a WPA-hoz képest bevezet egy AES-en alapuló CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code) protokollt, ami lecseréli a TKIP-t, és ez kezeli az integritásellenőrzést is. Jelenleg a CCMP-t használó WPA2 (sokszor WPA2/AES néven fut) biztonságosnak tekinthető; nem létezik olyan támadás, ami az algoritmus valamely gyengeségét használná ki.

Ugyan kompatibilitási okokból továbbra is használhatjuk a TKIP-t, de az AES (CCMP) biztonságosabb nála.

[szerkesztés] 9 MAC filtering

WLAN-okban is lehetőségünk van MAC-cím-szűrést végezni. Ez a módszer a támadások egy részét lehetetlenné teszi, illetve a kapcsolódást is, még akkor is, ha megszereztük a jelszót. Ebben az esetben meg kell várni, míg egy kliens csatlakozik a hálózatra és megszerezni a MAC címét, majd miután lecsatlakozott, az ő MAC címére állítani a sajátunkat; így már netezhetünk. Ha két különböző eszköz próbál ugyanolyan MAC-címmel kapcsolódni, akkor az AP általban meghatározott időre letiltja azt a MAC-címet.

[szerkesztés] 10 Rogue AP / Evil Twin

Nagy területeket lefedő wifiknél természetesen nem egyetlen AP-t használnak, hanem több egységgel egyenletesen fedik le a területet. Ezeknek különböző a MAC-címük, de ugyanolyan SSID-vel rendelkeznek. Ha a gépünk egyszerre több AP-t is lát, azzal fog kommunikálni, amelyiknek a legerősebb a jele. Ezt többféleképpen is ki lehet használni.

[szerkesztés] 10.1 Rogue AP

A Rogue AP egy védett hálózatban, engedély nélkül elhelyezett AP, aminek üzemeltetője (a támadó) ismeri a rendszerhez szükséges hozzáférési kódokat. Az SSID-je ugyanaz lesz, mint a hálózatban lévő többi AP-nek, és a rajta használt titkosítás is (ez azért lehetséges, mert a támadó ismeri a kódokat). A támadó az AP-t be is csatlakoztatja az eredeti hálózatba (akár egy másik WLAN AP-n keresztül is, amit elér), ezáltal be tud ékelődni a saját AP-je és a védett rendszer közé és mindenfélét csinálhat a rajta keresztülhaladó kapcsolatokkal: lehallgathatja őket, módosíthatja a csomagokat, eltérítheti a DNS-kéréseiket. A Rogue AP-k kiszűrésére léteznek módszerek (például: RogueScanner[5]).

[szerkesztés] 10.2 Evil Twin

A támadó kiszemel egy áldozatot és kideríti, hogy melyik AP-hez csatlakozik; majd az eredeti AP SSID-jével létrehoz közel hozzá egy ideiglenes AP-t (általában a laptop wifi vezérlőjét master mode-ba állítva). Így a támadó megoldja, hogy az ő jele erősebb legyen, ezért a kliens őt fogja preferálni. Hasonló támadások vihetőek véghez a kliens ellen, mint a fentebb említett Rogue AP-nál.

Ha MAC-cím szerint csatlakozunk egy AP-hoz, akkor ilyen támadások ellen védve vagyunk (persze több AP-vel lefedett területen ez csak akkor jöhet szóba, ha minden legitim AP MAC-címét ismerjük).

[szerkesztés] 10.3 AirSnarf

Olyan program, ami fake AP-t tud létrehozni. Neve hasonló hangzása ellenére nem része az aircrack-ng csomagnak. Kipróbálni nem tudtam, mert nem találtam olyan drivert a vezérlőmhöz, amivel a master mode működött volna.

A projekt weboldala: http://airsnarf.shmoo.com/.

Szükség van hozzá dhcpd-re, httpd-re, sendmail-re és a perl Net::DNS moduljára. Indítása előtt konfigurálni kell. Ezt az airsnarf könyvátárában található cfg/airsnarf.cgi fájl átírásával tehetjük meg:

ROGUE_SSID="airsnarf"           // SSID beállítása
ROGUE_NET="192.168.1.0"         // A hálózat IP címe
ROGUE_GW="192.168.1.254"        // A gateway IP címe
ROGUE_INTERFACE="wlan0"         // Használni kívánt interface

Ezek után egy új wifi-hálózatot fognak látni a userek, amire csatlakozva minden oldal helyett a cgi/html/index.html tartalmát fogják találni. Ezt tetszőlegesen lehet módosítani, designolni. Kreatív felhasználása a támadóra van bízva...

Létezik még egy fake-AP-t létrehozó és a rákapcsolódó usereket exploitokkal bombázni kezdő framework is, a Karmetasploit. A framework a Metasploit-ra épül, ami egy afféle click-and-boom jelleggel működő, kizárólag tesztelési célokra készült rendszer.

[szerkesztés] 11 IP-over-DNS és IP-over-ICMP

Repülőtereken, éttermekben tapasztalható, hogy autentikáció nélküli AP-ket látunk és tudunk is rájuk csatlakozni, de minden oldal helyett egy -- a szolgáltató által beállított -- másik oldal jön be, ami fizetés ellenében időszakos hozzáférést enged nekünk. Itt sokszor kiengedik a DNS-kéréseinket. Ha akármelyik DNS-szerverre engednek kapcsolódni, akkor egy távoli szerveren elegendő létrehoznunk egy VPN szolgáltatást az 53-as UDP porton, és a szerverünket az IP címe alapján el is érhetjük és biztonságos VPN-csatornát építhetünk ki. Gyakoribb eset, hogy csak a saját DNS-szerverükhöz engednek kapcsolódni; erre is léteznek megoldások.

[szerkesztés] 11.1 IP-over-DNS

Ez a megoldás az IP-csomagjainkat DNS-csomagokba ágyazva küldi el. Szükségünk lesz hozzá:

  • Egy domainre, amit mi ellenőrzünk.
  • Egy DNS-szerverre, amire ennek a domainnek egy szubdomainjét delegáljuk, és amin majd az nstxd szolgáltatás fut.

A kliensprogram neve nstx. How-to a konfiguráláshoz: http://thomer.com/howtos/nstx.html.

[szerkesztés] 11.2 IP-over-ICMP

Az IP-csomagjainkat ICMP-csomagokba burkolva is elküldhetjük:

[szerkesztés] 12 Konklúzió

A bemutatott támadások szinte mindegyikét teszteltem egy otthon felállított rendszeren; amit nem tudtam, annál ezt külön jeleztem.

A gyengébb titkosítások többféleképpen is támadhatók; a közös titok (WEP- vagy WPA-kulcs) egy elszánt támadó számára reális befektetés és idő árán megszerezhető. A minden felhasználóhoz vagy kapcsolathoz különböző kulcsot használó titkosítások, amelyekkel inkább csak vállalati környezetben találkozunk, biztonságosabbnak mondhatók (ilyen pl. a WPA Enterprise).

A lehallgatásszerű támadások azért veszélyesek, mert a nyilvános hotspotokon többnyire semmilyen titkosítás nincs, és egy-két népszerű szolgáltatás még mindíg teljesen titkosítatlanul működik (a freemail.hu például a mai napig nem érhető el biztonságos POP3 protokollal, az MSN pedig csak az autentikálás idejére épít fel titkosított csatornát, az üzenetek teljes egészükben lehallgathatóak és elolvashatóak).

Ha otthoni célra építünk ki hálózatot, használjunk WPA2/AES-t elegendően hosszú és kitalálhatlan jelszóval; ha nyilvános helyen használunk wifit, akkor bizalmas információkat csak biztonságos protokollon küldjünk (SSL/TLS), de legjobban akkor járunk, ha biztonságos VPN-csatornát húzunk ki köztünk és egy távoli szerver között.

[szerkesztés] 13 Források

Személyes eszközök