Sızma Testlerinde Kablosuz Ağlar ve Atak Vektörleri – II

Kablosuz Ağ Bağlanma Aşamaları

Authentication(Kimlik doğrulama): Bir kullanıcı sisteminin AP’ye kimlik doğrulayarak ağa dahil olmasının ilk adımdır. Bu adımda iletilen frameler şifrelenmemektedir(Çünkü management framelerden birisidir). 2 çeşit kimlik doğrulama tanımlanmıştır: Open ve Shared Key.
  • Open System Authentication: Bu tip kimlik doğrulamada istemciden içinde MAC adresinin olduğu bir istek gider ve AP’den isteğin kabul veya reddediğine dair bir cevap dönülür.
20081226_709505_image002_624019_57_0.png



  • Shared Key Authentication: Kimlik doğrulama için ortak olarak bilinen bir anahtar(parola) kullanılır. Önce istemci AP’ye bir bağlantı isteğinde bulunur. AP kullanıcıya challenge text gönderir. İstemci bilinen anahtar bilgisiyle bu metini şifreler ve AP’ye gönderir. AP şifreli metini alır ve üzerinde belirlenen asıl anahtarla bu metinin şifresini çözer. Eğer şifresi çözülmüş olan metin, kullanıcıya ilk olarak gönderilen challenge text ile aynıysa parola doğru demektir. Kullanıcıya kimlik doğrulama için kabul veya ret içeren cevap dönülür.
fig4.gif



Association(Ağa kayıt olma):
İstemciler kimlik doğrulama adımını geçtikten sonra AP tarafından ağa kayıt edilmelidir(association). Bu işlem olmadan istemciden gelen/giden frameler AP tarafından yoksayılır. Bir istemci aynı anda sadece bir ağa kayıt olabilir ve kayıt işlemi sadece iletişim AP üzerinden gerçekleştiği Infrastructure modda gerçekleşir.
İstemci association için bir istek gönderir, AP isteği değerlendirir ve olumlu yada olumsuz cevap döner. Eğer cevap olumluysa association cevabı içinde istemciyi daha sonra tanımak için atanan bir ID bulunur(Association ID(AID)).  



Linux Sistemlerden Kablosuz Ağlara Bağlantı

Linux sistemler kablosuz ağ  yapılandırması için zengin seçeneklere sahiptir. Her Linux dağıtımının kendi grafik arabirimli yapılandırması olduğu gibi tüm Linux dağıtımları için geçerli komutları kullanmak  da her zaman hazır seçenek olarak durmaktadır.

Bir kablosuz ağ cihazının neler yapabileceğini düşünelim; öncelikle bulunduğu çevredeki çalışır vaziyette bulunan erisim noktalarını görmek isteyecektir, bulduğu erişim noktalarından birini seçerek bağlanmak ve gerekli IP yapılandırmasını girmesi gerekecektir, ya da erişim noktası tarafından verilen hazır bilgileri kullanacaktır. Eğer erişim noktasında güvenlik amaçlı şifreleme kullanılmışsa kullanılan protokole(WEP/WPA) uygun anahtarın da doğru şekilde girilmesi gerekir.
Kapsama alanında bulunan Erişim Noktalarını(Access Point) keşfetmek için “iwlist” komutu uygun parametreler ile kullanılır.

Linux makinemizdeki wireless Ethernet arabiriminin eth1 olduğunu varsayarsak çevremizdeki AP’leri aşağıdaki komut ile görebiliriz.



root@byte: ~# iwlist eth1 scan
eth1 Scan completed :
         Cell 01 – Address: 00:05:60:D5:CE:76
                   ESSID:”Byte Test”
                   Mode:Master
                   Frequency:2.417GHz
                   Quality:0/10  Signal level:-70 dBm  Noise level:-256 dBm
                   Encryption key:off
                   Bit Rate:1Mb/s
                   Bit Rate:2Mb/s
                   Bit Rate:5.5Mb/s
                   Bit Rate:11Mb/s
         Cell 02 – Address: 00:04:2B:52:15:58
                   ESSID:”Sebil Net”
                   Mode:Master
                   Frequency:2.467GHz
                   Quality:0/10  Signal level:-22 dBm  Noise level:-256 dBm
                   Encryption key:on
                  Bit Rate:1Mb/s
                   Bit Rate:2Mb/s
                   Bit Rate:5.5Mb/s
                   Bit Rate:11Mb/s



Peki hangi arabirimimizin kablosuz ağ adaptörü olduğunu nasıl anlarız? Bunun için de iwconfig komutu parametresiz kullanılırsa Linux  bilgisayarımızda bulunan ağ adaptörleri inceleyerek hangilerinin kablosuz ağ adaptörü olduğunu bize söyleyecektir.

Bulunan erişim noktalarından herhangi birine bağlanmak için iwconfig komutunu kullanıyoruz.



root@byte: ~# iwconfig eth1 essid “Byte Test”
root@byte: ~# ifconfig eth1 up
root@byte: ~# ifconfig eth1 192.168.1.2 netmask 255.255.255.0



ya da otomatik IP aldırmak için



root@byte: ~# dhclient eth1
root@byte~ # dhcpcd -n eth1



komutları kullanılabilir.
Yapılandırılmış arabirime ait özellikleri görmek istersek;
root@byte: ~# iwconfig eth1
eth1 IEEE 802.11-DS  ESSID:”Byte Test”  
           Mode:Managed  Frequency:2.457GHz  Access Point: 00:05:60:D5:CE:76
        Bit Rate:2Mb/s   Tx-Power=15 dBm   Sensitivity:1/3
       RTS thr:off   Fragment thr:off
        Encryption key:on
        Power Management:off
        Link Quality:46/92 Signal level:-51 dBm  Noise level:-94 dBm
        Rx invalid nwid:0  invalid crypt:0  invalid misc:0



komutunu vermemiz yeterlidir.



Bağlanmak istediğimiz erisim noktası WEP kullanacak şekilde ayarlandıysa bunu da parametre olarak belirtmeliyiz.
root@byte: ~# iwconfig eth1 key 12345768901234567890123465



WPA Korumalı Ağlara Linux Sistemler Üzerinden Bağlanmak



iwlist ve iwconfig araçları WEP ile korunan AP’lere bağlanmak için kullanılır. WPA tipinde bir AP’ye bağlanmak için wpa_supplicant aracı kullanılır. Çoğu Linux dağıtımında yüklü gelir. Eğer yüklü değilse;



root@kali:~# apt-get install wpasupplicant



WPA ile ilgili bilgiler bir yapılandırma dosyası içinde saklanır. Bu dosyaya yazmak için wpa_passphrase aracı kullanılır.



root@kali:~# wpa_passphrase BGA Bga123456 > wpa.conf



Yukarıdaki komutta BGA yerine bağlanmak istediğiniz erişim noktasının SSIDsi ve Bga123456 yerine WPA anahtarı yazılır. Cevap aşağıdaki gibi wpa.conf dosyasına yazılır.



network={
ssid=”BGA”
#psk=”Bga123456″
psk=646fa82263e0f2aec5759ff3f1b409e4cde4557a68d64c45df5904ced2c4af0d
}



Ancak yukarıdaki komutta WPA parolası komut geçmişinde yeralacağı için güvenli değildir. Bunun yerine sadece wpa_passphrase SSID_ismi şeklinde kullanılırsa imleç aşağı iner bizden anahtarı girmemizi bekler.



root@kali:~# wpa_passphrase BGA > wpa.conf
# reading passphrase from stdin
Bga123456
network={
ssid=”BGA”
#psk=”Bga123456″
psk=f0fa6500777f065586521a4e4244f2ee123af6303f70b1b75ebb127c0c8f81be
}



Yapılandırma dosyasına gerekli bilgiler yazıldıktan sonra şimdi wpa_supplicant aracıyla ağa bağlanılabilir. Komutun genel hali şu şekildedir:



wpa_supplicant -D[driver] -i[arayüz] -c[/wpa_supplicant.conf dosyasının tam yolu]



Driver seçenekleri wpa_supplicant yazıp entera basıldığında aşağıdaki gibi listelenir. Hangi driver çeşidi olduğu bilinmiyorsa wext kullanılabilir.



drivers:
 wext = Linux wireless extensions (generic)
 nl80211 = Linux nl80211/cfg80211
 wired = Wired Ethernet driver
 none = no driver (RADIUS server/WPS ER)



Arayüz iwconfig komutu sonucunda çıkan kablosuz adaptörün bağlı olduğu arayüzü ifade eder. Genelde wlan0, wlan1 gibi değerler alır.
wpa.conf dosyası başka bir yol belirtilmemişse üzerinde çalıştığımız dizine yazılmıştır.
Örnek bağlanma komutu şu şekildedir.



wpa_supplicant -Dwext -iwlan1 -c/root/wpa.conf -B



Sorun yaşanıyorsa /etc/network/interfaces dosyası herhangi bir metin editörüyle(vi, nano gibi) açılır ve aşağıdaki satırlar yazılır.



iface wlan1 inet dhcp
       wpa-conf /root/wpa.conf (yapılandırma dosyasının tam yolu)
auto wlan1



Aşağıdaki komutlar işletilir.



ifconfig wlan1 down
ifconfig wlan1 up
/etc/init.d/networking restart



Tekrar denenir.



wpa_supplicant -Dwext -iwlan1 -c/root/wpa.conf -B



IP almak için;

dhclient wlan1

Kablosuz Ağ Güvenlik Testleri  için Ortam oluşturma

Kablosuz ağlarda  güvenlik konusu pratiği zor olan bir konudur. Bunun temelde iki sebebi vardır. Birincisi kablosuz ağ adaptörleri sürücü eksikliğinden genelde Windows altında test yapacak fonksiyonlara sahip değildir. Bu gibi testler için Linux kullanılması çok daha pratik olacaktır.  Diğer bir konu da başkalarının kablosuz ağları üzerinden yapılacak testler etik olmayacağı için kendi kablosuz ağ ortamınızda çalışmalar yapmanız gerektiğidir.  Eğer kullanılan Erişim Noktası(Access Point) paylaşımlı ise yapacağınız testlerden diğer kullanıcılar etkilenecektir.

Bu durumda son çare olarak yeni bir donanım almak gerekmektedir. Diğer bir yöntem de bir adet USB üzerinden çalışan kablosuz ağ adaptorü alıp Vmware içerisinden bu adaptörü kullanmaktır. Böylece hem mobil bir AP’e sahip olunup, hem de kablosuz ağlarda güvenlik testi yaparken Windows’un kısıtlayıcı özelliklerine takılmadan Linux üzerinden istenilen işlemler yapılabilir. Böylece istediğinizde sanal bir AP’ye istediğinizde de Linux altında test yapmak için kullanabileceğiniz kablosuz bir ağ adaptörüne ulaşmış olacaksınız.

Vmware ile Kablosuz Ağ adaptörlerini Kullanma

Gerçek işletim sisteminde kullanılan kablosuz ağ kartlarını, Vmware altında da aynı özelliklerde kullanmak ne yazık ki mümkün olmaz.  Vmware’den arabirim modunu bridge, NAT yapılarak kablosuz ağ kartınızın  yararlandığı  bağlantı  Vmware makineye sağlanabilir fakat bu Vmware üzerinde kablosuz bir ağ kartı olarak algılanmaz. Sıradan bir ethernet kartı gibi Vmware’in kendi sürücülerini kullanarak işlem yapılır. Bu durumda kablosuz ağlara bağlanıp analiz yapma imkanımız yoktur. Ancak USB ile bağlanılan bir kablosuz ağ kartı ile bu işlem yapılabilir. Gercek sisteminizin Windows, Vmware’deki sisteminiz Linux ise USB kablosuz ağ kartını Vmware altında gercek özellikleri kullanabilmek icin  Vmware sürümü 6.x, Vmware player kullaniyorsaniz guncel surumu olmalıdır. Bundan sonrası Vmware’in menulerinden USB cihazi Vmware’e kablosuz kart olarak tanıtmak ve sürücünün sağladığı  wireless özelliklerini kullanmaya kalıyor.

Not: Vmware’in kullanacağı  USB kablosuz kartını gerçek işletim sisteminin tanıması gerekmez.

Windows’ta:

OSX’te:
Screen Shot 2014-09-18 at 15.28.28.png