Kablosuz Yerel Ağ(WLAN) Kullanıcılarına Yönelik Saldırı Yöntemleri-I

Kablosuz
ağlar, yaygın kullanım alanları ve genelde çok güvenli olmayan yapıları
nedeniyle saldırganların hedefi olmaktadır. Bu saldırılar hedef ağın
kaynaklarını kullanmak veya zararlı  aktiviteler için hedef şaşırtmak
amaçlarıyla yapılabileceği gibi ağdaki servis ya da kullanıcılara
yönelik saldırıların da ilk adımını oluşturabilirler. 

Bu yazının amacı
kablosuz ağ kullanıcılarına yönelik ya da kullanıcılar üzerinden gerçekleştirilecek saldırı yöntemlerini incelemektir.

Kullanılan Araçlar

Wireshark packet sniffer : http://www.wireshark.org/download.html
Aircrack-ng suite: http://www.aircrack-ng.org/
Aircrack-ng için desteklenen sürücüler: http://www.aircrack-ng.org/doku.php?id=install_drivers&DokuWiki=53e42aa38c82d956be2405b0dc6f63e9
freeradius-wpe: http://freeradius.org/download.html
(Eğer Backtrack’te segmentation fault alıyorsanız çözümü: https://github.com/brad-anton/freeradius-wpe)
Hostapd: http://hostap.epitest.fi/hostapd/

Örnekler Backtrack 5 (x64) işletim sistemiyle gerçekleştirilmiştir.

Kablosuz Yerel Ağlarda Çerçeve(frame) Yapısı

Kablosuz
yerel ağlarda haberleşme çerçeve adı verilen yapılar(paketler)
aracılığıyla sağlanır. Bir 802.11 çerçevesinin yapısı şu şekildedir.

Burada
bizim için önemli olan kısım çerçevenin türünü belirleyen “Frame
control” alanının “Type” ve “Subtype” alt alanlarıdır. Çerçevelerin
olası tür ve alt türleri şu şekildedir.

Yönetim çerçeveleri (Management frames): Bu çerçeveler kullanıcıyla erişim noktası arasındaki bağlantının kurulması ve sürdürülmesinden sorumludur.
‰‰Authentication,
De-authentication, Association Request, Association Response,
Reassociation Request, Reassociation Response, Disassociation, Beacon,
Probe Request, Probe Response
bu türdeki paketlerdir.
Kontrol çerçeveleri (Control Frames): Verinin kullanıcı ile erişim noktası arasında düzgün iletildiğini doğrulamakta kullanılan çerçevelerdir.
Request to Send (RTS), Clear to Send (CTS), Acknowledgment (ACK) paketleri bu kategoridedir.

Veri çerçeveleri (Data Frames): Kablosuz ağlarda esas veriyi taşıyan çerçevelerdir.

Erişim Noktası Olmadan WEP Anahtarı Kırma

Bu
kategoride incelenen ilk yöntemin adı Vivek Ramachandran tarafından
icat edilen Caffe Latte saldırısıdır. Kablosuz istemciler aksi
belirtilmedikçe daha önce bağlandıkları kablosuz ağlara ait parola
bilgilerini saklarlar. Bu bilgileri bu ağlara tekrar bağlandıklarında
kullanırlar. Hatta tekrar bağlanma sürecini hızlandırmak için
hafızalarındaki SSID(kablosuz ağ adı)’ler için Probe Request paketlerini
yollarlar. Böylelikle çekim alanında ilgili AP(erişim noktası) olmadan
da hangi isimdeki AP ye bağlanmaya çalıştıkları görülebilir.

1)
airmon-ng wlan0 komutu ile (kablosuz kart sizde başka bir arayüzde
olabilir, ifconfig ile kontrol ediniz) monitör modda yeni bir kablosuz
arayüz oluşturulur. Monitör moddaki arayüz (benim bilgisayarımda mon0)
iwconfig komutu ile kontrol edilebilir.

2)
airodump-ng mon0 komutu ile mon0 arayüzünden kablosuz trafik dinlenir.
Eğer wlan0 arayüzünden bir AP’e bağlanıldıysa sadece o AP’in bulunduğu
kanaldaki trafik dinlenebilir bu yüzden mon0’ın bağlı olduğu karttaki
diğer arayüzlerin bağlantısını kesmek daha doğru sonuçlar verebilir.

Eğer
–channel parametresi ile bir kanal belirlenmediyse ve ekran
görüntüsünde sol üst köşede görünen CH kısmındaki sayı sürekli
değişiyorsa (channel hoping) mon0 arayüzü başka birşeyden etkilenmeden
doğru bir şekilde çalışıyor denilebilir. 

Örnekteki airodump çıktısının
Probe bölümünde bir AP’e bağlanmak için probe gönderen ancak henüz
bağlanamamış iki istemci bir de bağlanmış istemci görünüyor. İlginç olan
nokta, bu istemcilerden ikincisinin bağlanmaya çalıştığı AP, kapsama
alanındaki AP’lerin listesinde yok.
Bu durumda AP’e erişim olsun ya da
olmasın eğer istemci parolaya sahipse, sahte bir AP oluşturulup
istemcinin bu AP’e bağlanmasıyla WEP kırma işlemi başlatılabilir.

3) Sahte AP airbase-ng aracı kullanılarak oluşturulur.

airbase-ng -N -a 00:1E:40:D9:06:9F -e “testwifi” -W 1 -c 7 mon0

-N
Caffe Latte yönteminin tüm paketleri kullanabilen daha gelişmiş hali
olan Hirte saldırısı kullanıldığını belirtiyor -N parametresi -L ile
değiştirilerek normal Caffe Latte yöntemi de kullanılabilir.
 
Eğer
biliniyorsa(2. adıma bakınız) -a 00:1E:40:D9:06:9F ile sahtesi
oluşturulan AP’in MAC adresi kullanılabilir. -W 1 WEP şifrelemesi
kullanıldığını göstermek için -c 7 AP’in hangi kanalda çalışacağını
belirlemek için kullanılmıştır.

4) airbase-ng nin istemciyi kullanarak oluşturduğu sahte trafik airodump-ng ile (farklı bir terminal penceresinde) kaydedilir.
airodump-ng –bssid 00:1E:40:D9:06:9F -w testwifiwep –channel 7 mon0

5) Airodump-ng ile kaydedilen trafik aircrack-ng ile eşzamanlı olarak kırılmaya çalışılır.

aircrack-ng testwifiwep-01.cap

Örnekteki 128 bitlik WEP anahtarının kırılması 1 dakikadan biraz fazla sürmüştür.

Erişim Noktası Olmadan WPA/WPA2-PSK Şifre Kırma
Aynı
araçlar ve benzer bir yöntem kullanılarak WPA PSK korumalı ağların
parolaları da sadece istemci kullanılarak kırılabilir. 

Yöntem şu şekilde
çalışır. Hedef AP’in sahtesi oluşturulup istemcinin bağlanması
beklenir. Eğer istemciye fiziksel olarak yakınsak yüksek sinyal gücünden
dolayı çok büyük ihtimalle bağlantı otomatik gerçekleşir. İstemci daha
önceden bağlıysa sahte de-authentication paketleri ile bağlantısı
kesilir. Sahte AP’e bağlantı gerçekleştiğinde WPA el
sıkışması(handshake) yakalanıp yerel makinede kaba kuvvet saldırısı
denenir. 

Örneğe geçmeden WPA el sıkışmasından(handshake) basitçe
bahsetmek gerekirse: WPA korumalı ağlarda istemci ve AP her oturum için
PTK(Pairwise Transient Key) adı verilen bir anahtar oluşturup
aralarındaki tüm trafiği bu anahtar ile şifrelerler. PTK, SSID
ANounce(AP’den gelen bir kerelik rastgele bir sayı), SNounce(istemciden
gelen bir kerelik rastgele bir sayı), AP MAC adresi, istemci MAC adresi
ve ağ parolası kullanılarak oluşturulur. 
WPA/WPA2 kullanılan bir ağın
parolası bilinse bile bir istemcinin trafiğini deşifre etmek için
oturumun başlangıcındaki el sıkışmaya ihtiyaç duyulmasının sebebi de
budur.

Şekilde
görülen dörtlü el sıkışmadan da anlaşılacağı üzere aslında WPA şifre
kırma işlemi için sadece ilk iki paketin yakalanması da yeterli
olacaktır. Bu sebeple sahte AP yönteminde 3. ve 4. paketlerin eksikliği
bir engel oluşturmamaktadır. 
Şifre kırma işleminin mantığına da kısaca
değinirsek: PTK’yı oluşturmak için ağ anahtarı hariç bütün değerler elde
edildiğinde ağ anahtarı yerine bir değer koyulup PTK oluşturulur ve el
sıkışmasındaki MIC(Message Integrity Check) kullanılarak doğruluğu
kontrol edilir.

1)  Sahte AP başlatılır.
airbase-ng -c 7 -a 00:1E:40:D9:06:9F -e “testwifi” -0 mon0

Burada
farklı olan -0 parametresi AP’in tüm şifreleme türlerini desteklemesini
sağlar. Sadece belli bir şifreleme seçmek için -z ve -Z parametreleri
kullanılabilir.

2) WPA el sıkışmasını yakalamak için airodump başlatılır.
airodump-ng –bssid 00:1E:40:D9:06:9F -w testwifiwpa –channel 7 mon0

3) Bağlı istemciyi düşürmek için de-authentication paketleri gönderilir.

aireplay-ng –deauth 10 -a 00:1E:40:D9:06:9F -c E0:F8:47:9E:37:1A mon0
–deauth 10 ile gönderilecek paket türü ve sayısı, -a ile AP MAC adresi ve -c ile istemci MAC adresi belirlenir.

4)
Şifre kırma işlemi için yine aircrack kullanılabilir ancak, GPU
kullanan oclhashcat ya da benzeri bir araç kullanılması çok ciddi hız
artışı sağlayacaktır. Yakalanan el sıkışmasını oclhashcat’in
kullanabilmesi için aircrack-ng -J testwifihandshake testwifiwpa-02.cap
komutuyla testwifihandshake adında bir .hccap dosyası oluşturulabilir.

WPA-Enterprise Şifre Kırma

WPA-Enterprise
ağlarda kullanıcıyı doğrulama işleminden sorumlu RADIUS olarak
kısaltılan bir sunucu devreye girer. Temel mantık kullanıcı ve sunucu
arasında daha önceden onaylanmış bir anahtarın kullanılmasıdır. Bu
saldırı yönteminde sahte AP’e ek olarak bir de sahte RADIUS sunucusu
kullanılır. Saldırının başarılı olabilmesi için istemcinin sahte
sunucunun sertifikasını onaylaması gerekir. Örnekte sahte sunucu için
freeradius-wpe, sahte AP için hostapd yazılımları kullanılmıştır.

1)
freeradius-wpe /usr/local/etc/raddb/eap.conf dosyası düzenlenerek hedef
ağın özellikleriyle(PEAP, LEAP, EAP-TTLS…) eşlecek bir RADIUS
sunucusu hazırlanır ve
radiusd -X -s komutuyla çalıştırılır. Bu örnekte varsayılan ayarlarındadır.

2) hostapd sunucuya uygun ayarlanıp
hostpad ayarlar.conf komutu ile çalıştırılır.

Örnek ayarlar.conf
interface=wlan0
driver=nl80211
ssid=testwifi
logger_stdout=-1
logger_stdout_level=0
dump_file=/tmp/hostapd.dump
ieee8021x=1
eapol_key_index_workaround=0
own_ip_addr=127.0.0.1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=testing123
wpa=1
wpa_key_mgmt=WPA-EAP
channel=11
wpa_pairwise=TKIP CCMP

3) Bir istemci bağlandığında şifre kırma işlemi için gerekli olan challenge ve response değerleri
usr/local/var/log/radius/freeradius-server-wpe.log dosyasına yazılır.

4)
asleap -C 79:8b:61:24:17:d0:66:85 -R
19:b4:1c:cc:b8:a6:3b:35:48:19:95:9d:b0:41:b2:9f:a2:61:db:31:9f:f3:ff:4c
-W wordlist komutu ile şifre kırma işlemi başlatılır. -C challenge
değerini, -R response değerini ve -W denenecek şifre listesini belirtmek
için kullanılır.

Onur ALANBEL <onur.alanbel@bga.com.tr>