27 Ağustos 2014

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.

Makalelerin kötüye kullanım kullanıcının sorumluluğundadır. | networkpentest.net. Blogger tarafından desteklenmektedir.