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

A Unix/Linux szerverek üzemeltetése wikiből
A lap korábbi változatát látod, amilyen Zarmin (vitalap | szerkesztései) 2009. december 10., 17:24-kor történt szerkesztése után volt.

Tartalomjegyzék

1 Bevezetés

A mai világban a vezetéknélküli internetelérés már a mindennapi élet része, az utcán hotspotokra kapcsolódunk mobil eszközeinkkel és innen érjük el az e-mailjeinket és nézünk meg weboldalakat. A vezetékes kapcsolódásnál sokkal kényelmesebb megoldás, hiszen otthon is, ha laptopon dolgozunk, akkor elektromos konnektort elég könnyen találunk a lakásban bárhol, de az internetet egyszerűbb szétszórni (illetve megoldható, az árammal ellentétben) a térben. Ez a technológia előnyös oldala, de a vezetékes kapcsolattal ellentétben itt nincs egy elszigetelt közeg, amit viszonylag nehéz megfigyelni; lehallgatni, 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 még rengeteget lehetne írni, bele lehetne menni teljesen a kriptográfiai háttérbe, illetve a különféle protokollok részletes felépítésébe, itt természetesen nem ez a cél. Rengeteg program is rendelkezésünkre áll, de ezek közül is csak egykettőt fogok itt említeni. Gyakorlatilag egy how-to jellegű leírást készítettem, ami minimálisan megy bele, abba, hogy mi miért működik. Kizárólag oktatási céllal teszem ki a szócikket, mivel más személyek, szervezetek magánhálózataiba való betörés törvényellenes. A cikk gyakorlatilag végigvezeti az embert a vezetéknélküli hálózatok utáni kutatástól a hálózatba való bejutásig. A végén foglalkozok még pár módszerrel, amivel megkerülhető a hálózatok védelme és elérhető vele a külvilág.


2 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 ([1])


3 A környezetünkben lévő hálózatok felkutatása

Alapvetően sok eszköz van, hogy láthassuk a környezetünkben lévő wifiket, most kettőt említenék meg. A Kismet [2] 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, ott 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).

4 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 [3]. A linux alatt elérhető wifi driver megoldások (ndiswrapper, madwifi stb.) egy elég nagy témakört tesznek ki, ami itt nem lesz kitárgyalva, 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őjjü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

Itt a különféle 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, a AP-tól való távolságtól, a jel utjában lévő akadályoktól és a drivertől is. Ha az összesnél az érték -1, 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.
  • 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 utolsó 10 másodpercben, az adatcsomagok száma / másodperc
  • CH: Csatorna száma (1-13)
  • MB: Maximális sebessége az APnek.
    • = 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/MGT: 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: Az elveszített csomagok száma, amik a klienstől jöttek
  • Packets: A kliens által küldött csomagok száma
  • Probes: Azoknak a hálózatoknak az azonosítói, amikre a 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-el védett. Továbbá a gyNet hálózattal asszociálva van egy kliens.

5 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ése itt lesz tárgyalva, példák a használatukra pedig az egyes támadások részletezésénél.

5.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, aminek a határása el lehet fogni a WPA/WPA2 handshake-eket, illetve a Windowsos kliensek ennek határása jó eséllyel ürítik az ARP cache-üket. Hidden SSID-nél is jó, mivel ilyenkor újra el fogja küldeni a leválasztott kliens az SSID-t.
A <count>-al meghatározható, hogy hány deauthentication csomagot küldjön.

5.2 Fake authentication

aireplay-ng -1 <delay>

Elvégzi az autentikációt a kijelölt hálózattal és az asszociációt. Akkor hasznos, ha nincs kliens a hálózaton és akarunk egy működő MAC címet regisztrálni hálózatba. Ez a kapcsolódás nem fog ARP csomagokat generálni. Nem használható WPA/WPA2-es AP-kal.

5.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.

5.4 ARP Replay

aireplay-ng -3

Nagyon hatékony módszer, 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.

5.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.

5.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ő injekció típusú támadásokra. A megszerzett adat használható arra, hogy a packetforge-ng segítségével a rendszer számára valid csomagokat generáljunk.


6 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 valamilyen protokoll analizátorral (Wireshark, tcpdump), és megfelelő beállításokkal szenzitív információkat tartalmazó (POP3-on, SMTP-n, HTTP/POST-on, FTP-n stb. keresztüli autentikációk) csomagokra tudunk szűrni. Természetesen ha valamilyen magasabb rétegbeli protokollon (SSL, TLS) keresztül kommunikál vagy biztonságos VPN csatornán át, akkor ez a fajta lehallgatás is hatástalan. Legtöbbször default állapotban 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.


7 A WEP

Wired Equivalent Privacy Manapság egy nem javasolt titkosítási algoritmus, annak támadhatósága miatt. Létezik belőle 64 bites és 128 bites változat is, de a 128 bites se jelent sokkal nagyobb kihívást, az algoritmus gyengesége miatt. 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ő (PTW-vel) a titkosításra használt kulcs.

7.1 A titkosítás kriptográfiai hátteréről

RC4-es [4] 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 fel fog állni egy olyan helyzet, amikor ugyanazt a kulcsot többször használjuk, ez jelenti az algoritmus gyengeségét. Továbbá a 32 bites CRC sem tekinthető kriptográfiailag biztonságosnak, annak rövidsége és gyenge ütközésállósága miatt.

7.2 Támadások a WEP ellen

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. Elkezdhetjük a fejtést miközben még keletkeznek a csomagok. Nagy forgalmú hálózaton nincs szükség további teendőkre, mivel ilyenkor magától is gyorsan összegyűlik elegendő adatcsomag (és így IV). Ekkor elegendő csupán hallgatózni, majd törni és így teljes mértékben passzív támadásnak minősül. Ha nincs forgalom a hálózaton akkor forgalmat kell generálnunk. Erre több módszer is van.

7.2.1 Deauthentication and ARP Packets Injections

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

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

7.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.

7.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 se 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

7.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. A beszúrt ARP csomagra jövő válaszok fogják a forgalmat generálni.

7.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 ugyan olyan paraméterekkel rendelkezünk mint az igazi AP válaszol is rá, 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 random WEP kulccsal titkosított üzenetekkel elárasztani a hálózatot, ami lehetetlenné tenné a PTW algoritmust. Ezen csomagok megszű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>


7.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-hez tartozó jelszóval próbálkozik
  • -e <SSID>: Csak a kijelölt SSID-ű AP-hez tartozó jelszóval próbálkozik
  • -f <fudge>: Ennek magas értéke esetén lassabb 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-nél már lehet próbálkozni.

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

8 WPA

Wi-Fi Protected Access Gyakorlatilag a WEP továbbfejlesztett változata, de alkalmaz néhány technikai újítást. Egy TKIP (Temporal Key Integrity Protocol) implementáció 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ábba az integritásellenőrző checksum is változik egy 64 bitesre, aminek a 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 adatok voltak injektálhatóak a hálózatba.
Lehet PSK (Pre-Shared Key) vagy Enterprise módja is (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ül megy egy HMAC-SHA1 hashelő algoritmuson, aminek a sóját az SSID adja (illetve megadható 64 darab hexadecimális számként is a kód, ekkor nem fut le a hashrutin). A jelszót értelmes 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).

8.1 WPA elleni támadások

A WPA kapcsolatok felépülések lefut egy 4 lépéses handshake, ezt az üzenetet elfogva lehetőségünk van, hogy megszerezzük a kapcsolathoz használt hash-t. Ha találunk ezekután olyan jelszót, aminek a hashe ütközik a célhashel, akkor az lesz a hálózathoz a 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>

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

Ezenkívül még létezik egy coWPAtty nevű program, ami az alábbi címről tölthető le. http://www.willhackforsushi.com/Cowpatty.html Fordí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). Első használatra ugyan arra alkalmas WPA terén mint az aircrack-ng (igazából annál lassabb is), de az a nagy előnye van, hogy jelenleg a 4 lépéses handshake első két lépése is elég 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 lezajlódik, 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>

Még fontos funkciója, hogy képes előre generálni táblákat (rainbow table [8]), 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. 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/


9 WPA 2

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 TKI P-et, ő kezeli az integritás ellenőrzést is. Jelenleg a CCMP-t használó WPA2 (sokszor WPA2/AES néven fut) biztonságosnak tekinthető, jelenleg nem léte zik olyan támadás, ami az algoritmus valamely gyengeségét használná ki.
Gyakorlatilag itt is használható kompatibilitási okokból a TKIP, de az AES (CCMP) biztonságosabb nála.


10 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 ha megszereztük a jelszót, akkor a kapcsolódást is. Ebben az esetben azt tehetjük, hogy meg kell várni míg egy kliens csatlakozik a hálózatra és megszerezni a MAC címét, majd miután lecsatlakozott behamisítjuk az ő MAC címét, amivel már netezhetünk. Ha két különböző eszköz próbál ugyan olyan MAC címmel kapcsolódni, akkor az AP általban letiltja meghatározott időre azt a MAC címet.


11 Rogue AP / Evil Twin

Nagy területeket lefedő wifiknél természetesen nem egy AP-vel oldják meg, hanem több egységgel egyenletesen lefedik a területet. Ezeknek különböző a MAC címük, de ugyan olyan 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öbb féle képpen is ki lehet használni.

11.1 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 ugyan az lesz, mint a hálózatban lévő többi AP-nek, a rajta használt titkosítás is (megteheti mivel ismeri a kódokat a támadó) meg fog egyezni, és az AP-t be is csatlakoztatja az eredeti hálózatba (akár egy másik WLAN AP-be is amit elér). A támadó be fog ékelődni a saját AP-je mögé és lekezelheti a rajta keresztülhaladó kapcsolatokat. 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[9]).

11.2 Evil Twin

A támadó kiszemel egy áldozatot és kideríti, hogy melyik AP-hez csatlakozik, 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), 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égbe 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 nem jöhet szóba)

11.3 AirSnarf

Egy program, ami fake AP-t tud létrehozni. Nevével ellentétben nem tagja az aircrack-ng suitenak. Kipróbálni nem tudtam, mert nem találtam olyan driver-t a vezérlőmhöz, amivel a master mode működött volna A projekt oldala: 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 szükséges bekonfigurálni Az airsnarf könyvátárában: cfg/airsnarf.cgi

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

Ezekután egy új wifi elérést fognak a userek látni, 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 [10]. 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.


12 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 elég 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 ki. Erre is vannak megoldások.

12.1 IP-over-DNS

Ez a megoldás az IP csomagjainket DNS csomagokba fogja pakolni és így tud kommunikációt intézni kifelé Szükségünk lesz hozzá:

  • Egy DNS szerverre, amit mi konfigurálunk
  • Egy másik szerverre, amin majd az nstxd szolgáltatás fut

Azért kell két különböző, mert mindkettő 53-as UDP portja használatban lesz. Egy nstx nevű programmal hajthajuk végre a hálózat kiépítését, majd használatát. How-to a konfiguráláshoz: http://thomer.com/howtos/nstx.html

12.2 IP-over-ICMP

Egy fokkal elvetemültebb megoldás, ha az IP csomagjainkat ICMP csomagokba burkolva küldjük el, de erre is van megoldás


13 Konklúzió

Ha hozzáférést szereztünk, a hálózathoz, akkor gyakorlatilag a klasszikus LAN-on működő további támadások is működnek. A legtöbb SOHO kategóriás routeren az ARP Spoofing kifogástalanul működik (legalábbis az általam tesztelteket illetőleg mindegyiken működött). Ha otthonra építünk ki WLAN-t, akkor csatlakozzunk rá MAC cím szerint, védjük WPA2/AES-el. Ha hotspotot használunk, akkor ne kommunikáljunk rajta nem titkosítot csatornán, használjunk SSL vagy TLS alapú átviteleket, ha az oldal támogatja, akkor érjük el https-en keresztül. Legjobban akkor járunk ha VPN csatornát húzunk ki köztünk és egy távoli szerver között és azon keresztül végezzük a kommunikációnkat.


14 Források

Személyes eszközök