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)
a (MAC filtering)
a (Fake authentication: typo)
 
(2 szerkesztő 22 közbeeső változata nincs mutatva)
1. sor: 1. sor:
== Bevezetés ==
+
Í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ó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.
 
   
  +
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.
   
 
== Használt programok ==
 
== Használt programok ==
   
* A legtöbb használt program csak root jogokkal fut rendesen
+
* A legtöbb használt program csak root jogokkal fut rendesen.
* A programoknak nincs szükségük grafikus felületre
+
* 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: <tt>apt-get install <csomag neve></tt>)
+
* Ahol nem írok a telepítésről, ott a legtöbb disztribúcióban a csomagkezelőben elérhető (APT-nél: <tt>apt-get install <csomag neve></tt>).
* Az összes program elérhető a Backtrack 4 elnevezésű pentestingre kifejlesztett disztribúcióban ([http://www.remote-exploit.org/backtrack_download.html])
+
* Az összes program elérhető a [http://www.remote-exploit.org/backtrack_download.html Backtrack 4] elnevezésű pentestingre kifejlesztett disztribúcióban.
 
   
 
== A környezetünkben lévő hálózatok felkutatása ==
 
== 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 <tt>Kismet</tt> [http://www.kismetwireless.net/index.shtml] jó választás, sok minden másra is használhatjuk ezen kívül, de most nem fogok róla írni. Az <tt>iwlist</tt>, 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.
+
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 <tt>[http://www.kismetwireless.net/index.shtml Kismet]</tt> jó választás, sok minden másra is használhatjuk ezen kívül, de most nem fogok róla írni. Az <tt>iwlist</tt>, 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.
 
<pre>
 
<pre>
 
iwlist wlan0 scan
 
iwlist wlan0 scan
38. sor: 39. sor:
   
 
</pre>
 
</pre>
Innen a legtöbb adat értelemszerű, vagy lényegtelen: A <tt>DE:AD:BE:EF:CA:FE</tt>, az AP MAC címe, a 6-os csatornán üzemel és a jel erőssége megfelelő. Az <tt>encryption key: on</tt>-ból kiderül, hogy a hálózat titkosítást használ, az <tt>ESSID:"enegywlanvagyok"</tt>, 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).
+
Innen a legtöbb adat értelemszerű, vagy lényegtelen: A <tt>DE:AD:BE:EF:CA:FE</tt>, az AP MAC címe, a 6-os csatornán üzemel és a jel erőssége megfelelő. Az <tt>encryption key: on</tt>-ból kiderül, hogy a hálózat titkosítást használ, az <tt>ESSID:"enegywlanvagyok"</tt>, 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).
 
   
 
== A hálózatok lehallgatása ==
 
== 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 [http://en.wikipedia.org/wiki/Monitor_mode]. A linux alatt elérhető wifi driver 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.
+
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 [http://en.wikipedia.org/wiki/Monitor_mode 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 <tt>aircrack-ng</tt> nevű programcsomagra, ez már a legtöbb disztribúcióban elérhető a csomagkezelőben.
 
Szükségünk lesz még egy <tt>aircrack-ng</tt> nevű programcsomagra, ez már a legtöbb disztribúcióban elérhető a csomagkezelőben.
 
Először az <tt>airmon-ng</tt> nevű programmal monitor módba kell raknunk a vezérlőnket.
 
Először az <tt>airmon-ng</tt> nevű programmal monitor módba kell raknunk a vezérlőnket.
48. sor: 49. sor:
 
airmon-ng start wlan0
 
airmon-ng start wlan0
 
</pre>
 
</pre>
Ha sikeres, akkor közli, hogy <tt>monitor mode enabled on mon0</tt>, é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 sikeres, akkor közli, hogy <tt>monitor mode enabled on mon0</tt>, é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:
 
Ha végeztünk a dolgunkkal, akkor a monitor mode kikapcsolása a következő módon történik:
 
<pre>
 
<pre>
54. sor: 55. sor:
 
</pre>
 
</pre>
   
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 <tt>macchanger</tt>-el tudjuk.
+
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 <tt>macchanger</tt>-el tudjuk.
 
<pre>
 
<pre>
 
macchanger --mac=BA:DC:0D:ED:C0:DE mon0
 
macchanger --mac=BA:DC:0D:ED:C0:DE mon0
86. sor: 87. sor:
 
Felső rész - AP <br>
 
Felső rész - AP <br>
 
* <tt>BSSID:</tt> A MAC címe az AP-nek
 
* <tt>BSSID:</tt> A MAC címe az AP-nek
* <tt>PWR:</tt> 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 útjá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 érzékeli.
+
* <tt>PWR:</tt> 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.
 
* <tt>RXQ:</tt> 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.
 
* <tt>RXQ:</tt> 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.
 
* <tt>Beacons:</tt> 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ó.
 
* <tt>Beacons:</tt> 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ó.
 
* <tt>Data:</tt> Elfogott adatcsomagok száma
 
* <tt>Data:</tt> Elfogott adatcsomagok száma
* <tt>#/s:</tt> Az utolsó 10 másodpercben, az adatcsomagok száma / másodperc
+
* <tt>#/s:</tt> Az adatcsomagok másodpercenkénti száma az utolsó 10 másodpercben
 
* <tt>CH:</tt> Csatorna száma (1-13)
 
* <tt>CH:</tt> Csatorna száma (1-13)
 
* <tt>MB:</tt> Az AP maximális sebessége
 
* <tt>MB:</tt> Az AP maximális sebessége
105. sor: 106. sor:
   
 
Alsó rész - Kliensek <br>
 
Alsó rész - Kliensek <br>
* <tt>STATION:</tt> A kliens MAC címe
+
* <tt>STATION:</tt> A kliens MAC-címe
 
* <tt>Rate:</tt> Az adatáramlás sebessége (első szám: AP->kliens; második szám: kliens->AP)
 
* <tt>Rate:</tt> Az adatáramlás sebessége (első szám: AP->kliens; második szám: kliens->AP)
* <tt>Lost:</tt> Az elveszített csomagok száma, amik a klienstől jöttek
+
* <tt>Lost:</tt> A kliens által küldött csomagokból elveszített csomagok száma
 
* <tt>Packets:</tt> A kliens által küldött csomagok száma
 
* <tt>Packets:</tt> A kliens által küldött csomagok száma
* <tt>Probes:</tt> Azoknak a hálózatoknak az azonosítói, amikre a kliens megpróbált felcsatlakozni
+
* <tt>Probes:</tt> 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.
 
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.
 
   
 
== Csomagok injektálása a hálózatba ==
 
== 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.
+
Csomagok beszúrására alkalmas eszköz az <tt>aireplay-ng</tt>. 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.
   
 
==== Deauthentication ====
 
==== Deauthentication ====
 
<pre>aireplay-ng -0 <count></pre>
 
<pre>aireplay-ng -0 <count></pre>
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.<br>
+
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.<br>
A <count>-al meghatározható, hogy hány deauthentication csomagot küldjön.
+
A <count>-tal meghatározható, hogy hány deauthentication csomagot küldjön.
   
 
==== Fake authentication ====
 
==== Fake authentication ====
 
<pre>aireplay-ng -1 <delay></pre>
 
<pre>aireplay-ng -1 <delay></pre>
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 a hálózatba. Ez a kapcsolódás nem fog ARP csomagokat generálni. Nem használható WPA/WPA2-es AP-kal.<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 <delay>-al meghatározható, hogy hány másodpercenként küldjön fake authentication csomagokat.
+
A <tt><delay></tt> másodpercben megadja az autentikációs csomagok küldése közt eltelt időt.
   
 
==== Interactive ====
 
==== Interactive ====
 
<pre>aireplay-ng -2</pre>
 
<pre>aireplay-ng -2</pre>
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 <tt>packetforge-ng</tt> által generált pcap fájlok tartalmának injektálására használják.
+
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 <tt>packetforge-ng</tt> á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.
   
 
==== ARP Replay ====
 
==== ARP Replay ====
 
<pre>aireplay-ng -3</pre>
 
<pre>aireplay-ng -3</pre>
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.
+
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.
   
 
==== Chop-Chop ====
 
==== Chop-Chop ====
142. sor: 142. sor:
 
==== Fragmentation ====
 
==== Fragmentation ====
 
<pre>aireplay-ng -5</pre>
 
<pre>aireplay-ng -5</pre>
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 <tt>packetforge-ng</tt> segítségével a rendszer számára valid csomagokat generáljunk.
+
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 <tt>packetforge-ng</tt> segítségével a rendszer számára érvényes csomagokat generáljunk.
 
   
 
== Titkosítás nélküli hálózatok (OPN) ==
 
== 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.
+
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 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.
+
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).
 
   
 
== A WEP ==
 
== A WEP ==
   
Wired Equivalent Privacy
+
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 [http://en.wikipedia.org/wiki/Fluhrer,_Mantin,_and_Shamir_attack], 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).
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.
 
   
 
=== A titkosítás kriptográfiai hátteréről ===
 
=== A titkosítás kriptográfiai hátteréről ===
RC4-es [http://en.wikipedia.org/wiki/RC4] 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.
+
[http://en.wikipedia.org/wiki/RC4 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 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.
+
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.
   
=== Támadások a WEP ellen ===
+
=== 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 <tt>aircrack-ng</tt> segítségével visszafejteni a kulcsot. Elkezdhetjük a fejtést miközben még keletkeznek a csomagok.
+
Minden támadásnál szükséges lehallgatni a kommunikációt és a keletkezett pcap fájlban lévő adatokkal az <tt>aircrack-ng</tt> 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.
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.
+
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.
 
Ha nincs forgalom a hálózaton, akkor forgalmat kell generálnunk. Erre több módszer is létezik.
 
==== Deauthentication and ARP Packets Injections ====
 
==== Deauthentication and ARP Packets Injections ====
* Szükségünk lesz egy aktív kliensre hozzá
+
* Szükségünk lesz hozzá egy aktív kliensre
 
<pre>
 
<pre>
 
aireplay-ng -1 0 -e <SSID> -a <AP MAC addr> -h <Client MAC addr> mon0
 
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
+
aireplay-ng -3 -b <SSID> -h <Client MAC addr> mon0
 
</pre>
 
</pre>
 
Ilyenkor a kijelölt klienst kommunikációra kényszerítjük és ezzel generáljuk a szükséges adatáramlást.
 
Ilyenkor a kijelölt klienst kommunikációra kényszerítjük és ezzel generáljuk a szükséges adatáramlást.
  +
 
==== ARP Replay ====
 
==== ARP Replay ====
 
* Alkalmazható kliens nélküli hálózatokra is
 
* 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.
+
* Ha MAC filtering van az AP-n, akkor a rendszer számára engedélyezett MAC címet kell beállítani magunknak.
 
<pre>
 
<pre>
 
aireplay-ng -1 0 -e <SSID> -a <AP MAC addr> -h <Your MAC addr> mon0
 
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
 
aireplay-ng -3 -x 1000 -n 100000 -b <AP MAC addr> -h <Your MAC addr> mon0
 
</pre>
 
</pre>
Ilyenkor magunkat asszociáltatjuk a kijelölt AP-vel és elkezdjük visszajátszani az általa küldött ARP csomagokat.
+
Ilyenkor magunkat asszociáltatjuk a kijelölt AP-vel és elkezdjük visszajátszani az általa küldött ARP-csomagokat.
 
==== KoreK's Chop-Chop attack ====
 
==== KoreK's Chop-Chop attack ====
 
* Alkalmazható kliens nélküli hálózatokra is
 
* 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)
+
* Nem minden AP-n működik (az általam tesztelt 3 Linksys router közül egyiken sem ment)
 
<pre>
 
<pre>
 
aireplay-ng -1 0 -e <SSID> -a <AP MAC addr> -h <Your MAC addr> mon0
 
aireplay-ng -1 0 -e <SSID> -a <AP MAC addr> -h <Your MAC addr> mon0
198. sor: 199. sor:
 
aireplay-ng -2 -r arp-request mon0
 
aireplay-ng -2 -r arp-request mon0
 
</pre>
 
</pre>
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 visszaérkező válaszok fogják gyakorlatilag a forgalmat generálni.
+
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.
 
==== Caffe-Latte attack ====
 
==== Caffe-Latte attack ====
 
* Akkor hasznos, ha a kliens hatókörében vagyunk, de az AP-t már nem érjük el.
 
* Akkor hasznos, ha a kliens hatókörében vagyunk, de az AP-t már nem érjük el.
204. sor: 205. sor:
 
airbase-ng -N -e <SSID> -a <AP MAC addr> -W 1 -c <AP channel> mon0
 
airbase-ng -N -e <SSID> -a <AP MAC addr> -W 1 -c <AP channel> mon0
 
</pre>
 
</pre>
Az <tt>airbase-ng</tt> 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á, s ebből a forgalomból tudjuk majd megfejteni a jelszót.
+
Az <tt>airbase-ng</tt> 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ó:
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ó
 
 
<pre>
 
<pre>
 
airdecap-ng -e <SSID> -w <wep key> <cap file>
 
airdecap-ng -e <SSID> -w <wep key> <cap file>
 
</pre>
 
</pre>
   
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 <tt>airdecloak-ng</tt>, de csak akkor működik, ha mindent rögzítünk a pcap fájlban (-i/--ivs kapcsoló nem lehet bekapcsolva az <tt>airodump-ng</tt>-ben).
+
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 <tt>airdecloak-ng</tt>, de csak akkor működik, ha mindent rögzítünk a pcap fájlban (-i/--ivs kapcsoló nem lehet bekapcsolva az <tt>airodump-ng</tt>-ben).
 
<pre>
 
<pre>
 
airdecloak-ng --bssid <AP MAC addr> -i <cap file>
 
airdecloak-ng --bssid <AP MAC addr> -i <cap file>
 
</pre>
 
</pre>
 
   
 
=== Jelszavak visszafejtése ===
 
=== Jelszavak visszafejtése ===
222. sor: 222. sor:
 
aircrack-ng [-b <MAC>] [-e <SSID>] [-f <fudge>] [-x2] <.cap / .ivs fájlok>
 
aircrack-ng [-b <MAC>] [-e <SSID>] [-f <fudge>] [-x2] <.cap / .ivs fájlok>
 
</pre>
 
</pre>
* <tt>-b <MAC></tt>: Csak a kijelölt MAC című AP-hez tartozó jelszóval próbálkozik
+
* <tt>-b <MAC></tt>: Csak a kijelölt MAC-című AP-hoz tartozó jelszóval próbálkozik.
* <tt>-e <SSID></tt>: Csak a kijelölt SSID-ű AP-hez tartozó jelszóval próbálkozik
+
* <tt>-e <SSID></tt>: Csak a kijelölt SSID-t használó AP-hoz tartozó jelszóval próbálkozik.
* <tt>-f <fudge></tt>: Ennek magas értéke esetén lassabb lesz az algoritmus, viszont nagyobb esély lesz arra, hogy sikeres lesz (default: 2)
+
* <tt>-f <fudge></tt>: Ennek magas értéke esetén lassúbb lesz az algoritmus, viszont nagyobb esély lesz arra, hogy sikeres lesz (default: 2).
* <tt>-x2</tt>: Az utolsó két byte-on futtat bruteforce algoritmust, következménye hasonló a fudge factorhoz.
+
* <tt>-x2</tt>: Az utolsó két byte-on futtat bruteforce algoritmust; következménye hasonló a fudge factorhoz.
 
* <tt> <.cap / .ivs fájlok></tt>: Az <tt>airodump-ng</tt>-vel generált pcap fájl, ami tartalmazza az IV-ket.
 
* <tt> <.cap / .ivs fájlok></tt>: Az <tt>airodump-ng</tt>-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.
+
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 <tt>aircrack-ng</tt>-nek létezik egy <tt>aircrack-ng-cuda</tt> [http://trac.aircrack-ng.org/svn/branch/aircrack-ng-cuda/] nevű változata is, amivel kihasználhatjuk a grafikus vezérlőnk (Nvidia DX10+) teljesítményét is.
 
   
  +
Az <tt>aircrack-ng</tt>-nek létezik egy <tt>[http://trac.aircrack-ng.org/svn/branch/aircrack-ng-cuda/ aircrack-ng-cuda]</tt> nevű változata is, amivel kihasználhatjuk a grafikus vezérlőnk (Nvidia DX10+) teljesítményét is.
   
 
== WPA ==
 
== WPA ==
   
Wi-Fi Protected Access
+
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.
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 injektálhatóak lettek a hálózatba. <br >
+
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 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).
+
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).
   
 
=== WPA elleni támadások ===
 
=== WPA elleni támadások ===
A WPA kapcsolatok felépülésekor 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ó.
+
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 <tt>aireplay-ng</tt>-vel deautentikálunk.
 
Először az <tt>aireplay-ng</tt>-vel deautentikálunk.
 
<pre>
 
<pre>
243. sor: 244. sor:
 
</pre>
 
</pre>
 
Ezzel kikényszerítünk egy újracsatlakozást, és ekkor elfoghatjuk a handshake-et.
 
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:
+
Az aircrack-ng is képes hash-törésre az alábbi módon:
 
<pre>
 
<pre>
 
aircrack-ng <pcap file> -w <wordlist>
 
aircrack-ng <pcap file> -w <wordlist>
249. sor: 250. sor:
 
Most már csak egy jó szólistára [http://theargon.com/achilles/wordlists/] [ftp://ftp.openwall.com/pub/wordlists/] lesz szükségünk és jó esetben meg tudjuk találni a keresett jelszót.<br>
 
Most már csak egy jó szólistára [http://theargon.com/achilles/wordlists/] [ftp://ftp.openwall.com/pub/wordlists/] lesz szükségünk és jó esetben meg tudjuk találni a keresett jelszót.<br>
   
Ezenkívül még létezik egy coWPAtty nevű program, ami az alábbi címről tölthető le:<br>
+
Létezik továbbá egy [http://www.willhackforsushi.com/Cowpatty.html coWPAtty] nevű program is, ami hasonló célt szolgál.
http://www.willhackforsushi.com/Cowpatty.html<br>
+
Lefordítani és installálni a szokásos <tt>make && make install</tt> paranccsal tudjuk.
Fordítani és installálni a szokásos <tt>make && make install</tt> paranccsal tudjuk.
+
Működése során előfordulhat, hogy buffer overflow-val elszáll, ilyenkor a Makefile-ban a <tt>CFLAGS += -02</tt> sor kikommentezése segít (elvileg 4.2 utáni GCC fordítókon gyakori).
Működése során előfordulhat, hogy buffer overflow-val elszáll, ilyenkor a Makefile-ban a <tt>CFLAGS += -02</tt> sor kikommentezése segít (elvileg 4.2 utáni GCC fordítókon gyakori).<br>
+
Első használatra ugyan arra alkalmas WPA terén, mint az <tt>aircrack-ng</tt> (igazából annál lassabb is), de az a nagy előnye, hogy jelenleg a 4 lé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 <tt>aircrack-ng</tt> esetében.
+
Az <tt>aircrack-ng</tt>-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 <tt>aircrack-ng</tt> esetében.
 
<pre>
 
<pre>
 
cowpatty -r <cap file> -f <wordlist> -s <SSID>
 
cowpatty -r <cap file> -f <wordlist> -s <SSID>
 
</pre>
 
</pre>
Még fontos funkciója, hogy képes előre generálni táblákat (rainbow table [http://en.wikipedia.org/wiki/Rainbow_table]), 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 <tt>genpmk</tt> paranccsal generálhatunk:
+
  +
Fontos funkciója továbbá, hogy képes előre generálni táblákat (rainbow table [http://en.wikipedia.org/wiki/Rainbow_table]), 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 <tt>genpmk</tt> paranccsal generálhatunk:
 
<pre>
 
<pre>
 
genpmk -f <wordlist> -d <table_file> -s <SSID>
 
genpmk -f <wordlist> -d <table_file> -s <SSID>
268. sor: 269. sor:
 
Ennél komolyabb (33 GB) található az alábbi címen: http://rainbowtables.shmoo.com/
 
Ennél komolyabb (33 GB) található az alábbi címen: http://rainbowtables.shmoo.com/
   
  +
== WPA2 ==
   
== WPA 2 ==
+
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.
 
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étezik olyan támadás, ami az algoritmus valamely gyengeségét használná ki.<br>
 
Gyakorlatilag itt is használható kompatibilitási okokból a TKIP, de az AES (CCMP) biztonságosabb nála.
 
   
  +
Ugyan kompatibilitási okokból továbbra is használhatjuk a TKIP-t, de az AES (CCMP) biztonságosabb nála.
   
 
== MAC filtering ==
 
== 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 ugyanolyan MAC címmel kapcsolódni, akkor az AP általban letiltja meghatározott időre azt a MAC címet.
+
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.
   
 
== Rogue AP / Evil Twin ==
 
== 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.
+
  +
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.
  +
 
=== Rogue AP ===
 
=== 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[http://www.paglo.com/opensource/roguescanner]).
+
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[http://www.paglo.com/opensource/roguescanner]).
  +
 
=== Evil Twin ===
 
=== 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.
+
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 nem jöhet szóba)
+
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).
   
 
=== AirSnarf ===
 
=== 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''
+
Olyan program, ami fake AP-t tud létrehozni. Neve hasonló hangzása ellenére nem része az aircrack-ng csomagnak.
A projekt oldala: http://airsnarf.shmoo.com
+
''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.''
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
+
A projekt weboldala: http://airsnarf.shmoo.com/.
Az airsnarf könyvátárában: <tt>cfg/airsnarf.cgi</tt>
+
  +
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ó <tt>cfg/airsnarf.cgi</tt> fájl átírásával tehetjük meg:
 
<pre>
 
<pre>
 
ROGUE_SSID="airsnarf" // SSID beállítása
 
ROGUE_SSID="airsnarf" // SSID beállítása
298. sor: 301. sor:
 
ROGUE_INTERFACE="wlan0" // Használni kívánt interface
 
ROGUE_INTERFACE="wlan0" // Használni kívánt interface
 
</pre>
 
</pre>
Ezekután egy új wifi elérést fognak a userek látni, amire csatlakozva, minden oldal helyett a <tt>cgi/html/index.html</tt> 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...
+
Ezek után egy új wifi-hálózatot fognak látni a userek, amire csatlakozva minden oldal helyett a <tt>cgi/html/index.html</tt> 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 [http://www.metasploit.com/redmine/projects/framework/wiki/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.
 
   
  +
Létezik még egy fake-AP-t létrehozó és a rákapcsolódó usereket exploitokkal bombázni kezdő framework is, a [http://www.metasploit.com/redmine/projects/framework/wiki/Karmetasploit 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.
   
 
== IP-over-DNS és IP-over-ICMP ==
 
== 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.
+
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.
 
==== IP-over-DNS ====
 
==== IP-over-DNS ====
Ez a megoldás az IP csomagjainket DNS csomagokba fogja pakolni és így tud kommunikációt intézni kifelé
+
Ez a megoldás az IP-csomagjainkat DNS-csomagokba ágyazva küldi el.
 
Szükségünk lesz hozzá:
 
Szükségünk lesz hozzá:
* Egy DNS szerverre, amit mi konfigurálunk
+
* Egy domainre, amit mi ellenőrzünk.
* Egy másik szerverre, amin majd az nstxd szolgáltatás fut
+
* Egy DNS-szerverre, amire ennek a domainnek egy szubdomainjét delegáljuk, és 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.
+
A kliensprogram neve <tt>nstx</tt>. How-to a konfiguráláshoz: http://thomer.com/howtos/nstx.html.
How-to a konfiguráláshoz: http://thomer.com/howtos/nstx.html
+
 
==== IP-over-ICMP ====
 
==== 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
+
  +
Az IP-csomagjainkat ICMP-csomagokba burkolva is elküldhetjük:
 
* ICMPTX [http://thomer.com/howtos/nstx.html]
 
* ICMPTX [http://thomer.com/howtos/nstx.html]
 
* Ping Tunnel [http://www.cs.uit.no/~daniels/PingTunnel/]
 
* Ping Tunnel [http://www.cs.uit.no/~daniels/PingTunnel/]
 
   
 
== Konklúzió ==
 
== 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.
+
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.
   
 
== Források ==
 
== Források ==

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