Wednesday 11 July 2012

Ispitivanje ranjivosti WPA/WPA2 - WPS

Bežične mreže zaštićene sa WPA/WPA2 su puno sigurnije od mreža koje koriste WEP, no u slučaju korštenja kratkih passworda ili često korištenih riječi podložne su brute force napadima. Kod korištenja dugih passworda brute forcing prestaje biti praktičan zbog broja kombinacija i vremena koje bi bilo potrebno za probijanje. No, velika količina SOHO routera i AP-ova koji su popularni u našim krajevima (npr WRG54G2) dolaze sa uključenim WPS-om i ponekad nemogućnošću isključivanja.

Što je WPS? WPS ili Wi-Fi Protected Setup je pojednostavljeni način konfiguracije sigurnosnih postavki na Wi-Fi mrežama. Kao što je pokazao whitepaper Stefana Viehböcka radi se o protokolu s nekoliko mana koje omogućavaju brute forcing WPA/WPA2 mreža u puno kraćem vremenu, satima i danima umjesto mjesecima ili godinama u slučaju dugih passworda.

Testiranje

Za testiranje ranjivosti koristiti ćemo popularnu distribuciju Backtrack 5 R2 te Asus Eee 1000HE na kojem za razliku od prijašnjih Backtrack distribucija u ovoj zadnjoj sve radi bez potrebe za skidanjem dodatnih drivera, pogotovo za Ralink rt2860 b/g/n karticu. Kod samog testiranja mreže preporuka je biti što bliže AP-u da nemate problema s jačinom signala.


Popularni alat za bruteforcing WPS-a je Reaver koji je potrebno skinuti, otpakirati i kompajlirati.
Reaver ima odličnu mogućnost nastavljanja napada u slučaju prekida (npr. presumnjivi ste sjedeći nekoliko sati blizu mete testiranja).

Započeti ćemo prebacivanjem wifi kartice u monitor mod rada:

airmon-ng start wlan0
Nakon toga sve operacije radimo na interfaceu mon0 koji imamo nakon ove naredbe.

Koristiti ćemo Reaver 1.4 set alata koji je zadnja verzija u trenutku pisanja ovog bloga iako ta verzija ima nekih manjih problema no sve je moguće odraditi i sa njom.

Za otkrivanje da li AP koristi WPS možemo koristiti alat po imenu wash koji je dio Reavera. (-C ignorira checksum greške koji su se u ovom testu javljali)
wash -i mon0 -C

Vrlo jednostavno vidimo da li mreža koju trebamo testirati podržava WPS.

Nakon toga potrebno se asocirati na AP preko njegovog BSSID-a, to je prije Reaver radio ok ali u trenutnoj verziji ima problema pa ćemo koristiti dio aircrack seta alata:

aireplay-ng -1 120 -a 00:11:22:33:44:55 mon0
Gdje je  00:11:22:33:44:55 BSSID naše mete:


Kada smo asocirani, možemo pokrenuti Reaver:

reaver -i mon0 -b 00:11:22:33:44:55
Što bi teoretski trebalo pokrenuti Reaver  i probijanje PIN-a no pošto se svaki tip AP-a ponaša drugačije vjerovatno će biti potrebno modificirati naredbu za pokretanje. U našem konkretnom slučaju to je bilo:

reaver -i mon0 -b 00:11:22:33:44:55 -d 2 -c 9 -vv --no-ack --no-associate --win7
sa dodanim -vv za dodatni verbosity. Ostale opcije ostavljam da ih sami istražite :)

Nakog nekog vremena dobijemo PIN ali ne i WPA PSK password zbog buga u verziji 1.4:


Sada kada imamo pin, workaroundom preko wpa_supplicanta ćemo doći do PSK-a.

Potrebno je kreirati osnovni wpa_supplicant.conf:
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0
update_config=1
Zatim, potrebno je pokrenuti wpa_supplicant:
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf –B
Nakon toga je potrebno pokrenuti wpa_cli te upisati BSSID te pin:
wps_reg 00:11:22:33:44:55 12345678
wpa_suplicant će se pokušati i uspjeti spojiti, te generirati konfiguraciju u svom conf fileu za mrežu na koju se spajamo, što uključuje i WPA-PSK password, conf file bi trebao imati ovakav novi dio:
network={
        ssid="labtest"
        bssid=00:11:22:33:44:55
        psk="passzalabtestiranje"
        key_mgmt=WPA-PSK
        auth_alg=OPEN
}
 Te smo uspješno došli do passworda.

Koraci neće biti identični za svaki AP no i ideja je da se cijelo vrijeme uči nove stvari.
 


No comments:

Post a Comment