Ders 2 - Brute Force (Low Level)
Bu yazıda DVWA adlı web uygulamasının içerisinde bulunan bir sayfanın güvenlik zafiyetinden faydalanarak Brute Force saldırısında bulunulacaktır.

Bu tutorial'ın saldırı içerikli ilk yazısının konusuna başlamadan önce bir defaya mahsus tutorial boyunca takip edilecek anlatım methodundan bahsetmekte fayda var. Her ders yazısına Dersin Hedefi başlıklı bir alt başlıkla başlanacaktır. Bu başlık yapacağınız saldırı ile ne sonuca varmanız gerektiği konusunda size direktif verecektir. Ardından derste kullanılacak saldırı tekniğinin tanımından bahsedilecektir. Bunun akabinde ise bahsedilen saldırı tekniğinin DVWA'daki güvenlik zafiyeti barındıran sayfaya nasıl uygulanabileceğinden bahsedilecektir. Böylelikle teorik olarak öğrendiğiniz saldırı tekniğinin pratikte uygulanışını tecrübe etmiş olacaksınız. Dersi toparlamak adına bir de Sonuç bölümü yer alacaktır. Opsiyonel olarak ise Sonuç bölümünden sonra Ekstra adlı başlık yer alacak olup bu başlık saldırıyı gerçekleştirme hususunda kullanılabilecek yan tool'lardan bahsedecektir. Evet, tutorial'ın işleyişi kabaca bu şekilde olacaktır. Haydi şimdi derse başlayalım.

Dersin Hedefi

Hedefiniz Brute Force saldırısı yaparak admin kullanıcısının şifresini kırmaktır.

Brute Force Nedir?

Brute force saldırısı bir yazılıma deneme yanılma yaptırtarak şifreyi tespit ettirmeye denir. Yazılıma bu deneme yanılma işlemini bir sözlük yardımıyla, yani önceden belirlenmiş olası şifrelerin yer aldığı txt dosyası yardımıyla yaptırtabileceğimiz gibi yazılıma bu deneme yanılma işini olası tüm kombinasyonları denettirerek de yaptırabiliriz. Tüm kombinasyonlardan kasıt şudur: Bilgisayar sistemlerinde bir karakter - mesela a harfi - 8 bitten oluşur. (10010001 gibi). Bu 8 bitlik sayının 1'lerini ve 0'larını değiştirerek biz aslında alfabedeki harfleri değiştirmiş oluruz. İşte bu 8 haneli sayıdan türetilebilecek tüm sayılara (karakterlere) tüm kombinasyonlar adını veriyoruz. Brute force saldırısını tüm kombinasyonları deneyecek şekilde düzenlersek bu kombinasyonlar içerisinden biri şifrenin kendisi olacağından şifre tespit edilmiş olacaktır. Daha teknik ifadeyle şifre kırılmış olacaktır. Teorik olarak tüm kombinasyonları denemek şeklinde uygulanan Brute Force saldırıları sizi daima kesin sonuca götürür. Yani bu yöntemle kırılamayacak şifre yoktur. Her şifre kırılabilir. Fakat bu yöntem saniyeler içerisinde sizi sonuca götürebileceği gibi günler, haftalar, aylar hatta yıllar içerisinde de sizi sonuca götürebilir. Yani tüm kombinasyonları denemek biraz maliyetli, zaman isteyen bir iştir. Dolayısıyla bunun yerine - Brute Force saldırıları yerine - genellikle sözlük saldırıları gerçekleştirilir. Yani daha önceden oluşturulmuş olası yüzlerce, binlerce şifrelerin yer aldığı bir text dosyasındaki tüm şifreler yazılımla mesela login ekranına tıpkı Brute Force gibi denenir. Eğer saldırgan şanslıysa şifreyi tutturur ve login ekranından içeri girer. Tüm kombinasyonları denemek kadar garanti olmasada yine de denemeye değerdir. İnternet üzerinde bu iş için paylaşılmış hazır ve kapsamlı sözlükler bulunmaktadır. Brute Force'un kelime anlamı Kaba Kuvvet demektir.

Brute Force Nasıl Yapılır?

Bu başlık Brute Force nasıl yapılır şeklindedir. Fakat tıpkı brute force gibi otomatik şekilde deneme yanılma yapan, yani aynı prensipte çalışan bir diğer saldırı yöntemi olan sözlük saldırısı ele alınacaktır. Çünkü Brute Force saldırısıyla DVWA'nın ilgili dersini tamamlamamız belki haftaları alacak bir süreç olacaktır. Oysa aynı çalışma şekline sahip olan Dictionary (Sözlük) saldırısı ile DVWA'daki login ekranına ait hesap bilgilerini elde etmemiz bir çırpıda olacaktır. Bu nedenle Brute Force saldırısı da yapabilen BurpSuite yazılımı ile bu yazıda Dictionary Attack (Sözlük Saldırısı) yapılacaktır. Burpsuite yazılımını şu adresten temin edebilir, Windows kullanıcısıysanız indirdiğiniz jar dosyasının üzerine çift tıklayarak, Linux kullanıcısıysanız konsoldan


java -jar burpsuite-versiyonNo.jar


gibi bir kodlamayı tuşlayarak başlatabilirsiniz. Ama ufak bir not: Burpsuite çalışmak için JRE'ye ihtiyaç duyar. Eğer JRE makinanızda yüklü değilse Windows kullanıcıları şu adresten ilgili JRE sürümünü indirip kurabilirler, linux kullanıcıları ise aşağıdaki shell kodlamalarını terminallerine sırasıyla girerek JRE'yi makinalarına kurabilirler:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer 


Evet, şimdi derse dönelim. DVWA uygulamasının Brute Force bölümünde bir login ekranı görmektesiniz:





Dersin hedefi başlığında da belirtildiği gibi hedefimiz admin kullanıcısının şifresini kırmaktır. Bunun için tüm kombinasyonları denemek yerine hemen çözüme ulaşabileceğimiz basit bir sözlük dosyası oluşturalım. Bu sözlük dosyası olası şifreleri içeren bir txt dosyasından ibaret olduğu için içeriğinin şu şekilde olduğunu varsayalım:





Kullanıcı adı olarak admin kullanıcısını hedef almıştık. Fakat biraz kapsamı genişletmek adına birden fazla kullanıcı adının yer aldığı bir sözlük dosyası kullanalım. Böylece her bir kullanıcı adı için yukarıdaki tüm şifreler birer birer denensin:





Yukarıdaki olası kullanıcı adlarını barındıran sözlük dosyasına dikkat ederseniz çoğu web sahibi tarafından sık kullanılan kullanıcı adları seçilmiştir. Hakeza şifreleri barındıran sözlük dosyası da o şekildedir. Sözlük dosyalarımızı oluşturduğumuza göre şimdi BurpSuite adlı yazılıma geçiş yapalım. Öncelikle BurpSuite yazılımını ve saldırı esnasında kullanacağınız tarayıcıyı yapılandırmanız gerekmektedir. Bunun için BurpSuite'i başlatın ve Proxy sekmesine geçiş yapın.





Sonra Options sekmesine tıklayın.





Ardından Edit butonuna tıklayın ve aşağıdaki resimdeki gibi ayarlamaları yapın.











Ardından BurpSuite'in penceresinden biraz aşağıya kayın ve aşağıdaki resimden de görülebileceği gibi Intercept Client To Server Message'a tick işareti koyulu olduğundan emin olun. Bu tick işareti sizin login ekranında deneme mahiyetinde yapacağınız ilk giriş teşebbüsünde talebinizi sunucuya gitmeden BurpSuite'in yakalamasını sağlayacaktır. Ardından BurpSuite'in içerisinden sözlük dosyalarını ekleyeceğiz ve BurpSuite yaptığımız ilk giriş teşebbüsünü sözlük dosyalarınındaki tüm kelimeleri sırasıyla deneyecek kadar tekrarlayacaktır.





Şimdi Firefox'u açın ve aşağıdaki adımları uygulayın.













Artık Brute Force için hazırsınız. DVWA'nın Brute Force ders ekranına gelin. Login ekranına rasgele bir şeyler girin. Mesela kullanıcı adı için deneme ve şifre için de deneme girin:





Login butonuna tıkladığınız an BurpSuite bu isteğinizi sunucuya giderken yakalayacaktır ve sözlük dosyalarını eklemek ve kuralları belirlemek için bekletecektir. BurpSuite penceresine gelin ve Proxy > Intercept sekmelerine tıklayın.





Yukarıdaki pencerede yer alan kodların bulunduğu alana sağ tıklayın ve Send To Intruder seçeneğine tıklayın. Bu işlem sizi aşağıdaki resimde görünen sekmeye yönlendirecektir:





Yukarıdaki resmin sağ tarafında bulunan Clear $ butonuna tıklayın. Bu işlem BurpSuite'in brute force için seçtiği parametreleri seçimli halden kaldıracaktır. Bu seçimi elimizle yapacağız. Clear $ butonuna tıkladıktan sonra username parametresine $ sembolünü koyacağız. Bunun için aşağıdaki resimdeki gibi deneme yazısını seçin ve sağ taraftaki Add $ butonuna tıklayın.





Aynı işlemi password parametresinin içerdiği deneme yazısı için de yapın. Yani password'ün yanındaki denemeyi farenizle seçin ve Add $ butonuna tıklayın.





Böylelikle sözlük dosyalarının kullanılacağı bölgeleri belirlemiş olduk.





Hatırlarsanız en başta login ekranına kullanıcı adı olarak deneme, şifre olarak da deneme girmiştik. İşte bu metin kutularını $ işareti ile kod üzerinde belirledik ve şimdi bu belirlediğimiz noktalara sözlükleri denettireceğiz. Bulunduğunuz BurpSuite penceresindeki Sniper'ı Cluster Bomb olarak değiştirin.





Ardından bulunduğunuz sekme olan Positions'ın yanındaki Payloads sekmesine gelin. Load butonuna tıklayın ve kullanıcı adları için oluşturduğunuz sözlük dosyasını ekleyin.





Şimdi ikinci metin kutusuna denenecek şifrelerin yer aldığı sözlük dosyasını eklemek için Payload Set'in yanındaki 1'i 2 olarak değiştirin, ardından tekrar Load butonuna tıklayın ve şifreler için oluşturduğunuz sözlük dosyasını ekleyin.









Sözlük dosyalarının deneneceği metin kutularını kod bazında seçtik, sözlük dosyalarını da ekledik. Geriye bir şey daha kaldı. O da yazılımın şifrenin doğru olup olmadığını anlaması için ona bir işaret vermek. DVWA'nın login ekranına gireceğiniz rasgele kullanıcı adı ve şifre sonrası ekran şu uyarıyı vermektedir:





Yani kullanıcı adı ya da şifre yanlış olduğunda bir bildirim ekrana gelmektedir. Ne zaman kullanıcı adı ve şifre doğru olursa o zaman bu hata bildirimi gelmeyecektir. İşte bu özelliği şimdi yazılıma öğretelim ve yazılım bu bildirimi aldığında desin ki bize bilgiler yanlış, doğru olduğunda da desin ki bize bilgiler doğru. Şimdi BurpSuite'e tekrar dönün ve bulunduğunuz Options sekmesinin aşağılarına pencereyi kaydırın. Orada Grep - Match adlı bir bölüm vardır. Oradaki Clear butonuna tıklayın.





Sildiklerimizin yerine şimdi DVWA'nın hata bildirimini koyacağız. Bunun için tüm hata bildirimi cümlesini girmenize gerek yoktur. Sadece hata durumunda beliren bir kelimeyi - eğer şifre doğru olduğunda o kelime sayfanın herhangi bir yerinde yoksa - kullanabilirsiniz. Hata bildirimi şuydu:

Username and/or password is incorrect.

Bu cümledeki incorrect kelimesini yazılıma ekleyelim. Bunun için aşağıdaki resimdeki gibi metin kutusuna incorrect kelimesini girin ve Add butonuna tıklayın.





Hepsi bu kadar. Artık yazılım sözlüklerden alıp deneyeceği login bilgilerinin yanlış olup olmadığı konusunda bizi bilgilendirebilecektir. Bulunduğunuz sekmenin en yukarısına pencereyi kaydırın ve Start Attack butonuna tıklayarak Brute Force saldırısını başlatın.





Ekrana yeni bir pencere gelecektir ve size anlık olarak denediği kullanıcı adı ve şifre ikililerini gösterecektir. Bu ikililerin yanlış olduğunu penceredeki Incorrect sütunundaki tick işaretlerinden anlayabilirsiniz. Eğer Incorrect sütununda tick işareti varsa girilen kullanıcı bilgileri sonucu Incorrect bilgisi yakalandı anlamına gelir. Yani demek ki denenen kullanıcı bilgileri yanlışmış. Eğer Incorrect sütununda tick işareti yoksa bu durumda denenen kullanıcı bilgisi sonucu Incorrect kelimesi yakalanmamıştır anlamına gelir. Yani denenen kullanıcı bilgileri doğru demektir. Böylece admin'in şifresini elde etmiş oluruz.





Dilerseniz DVWA'nın Brute Force ekranındaki login ekranına BurpSuite'in tespit ettiği bilgileri girerek doğruluğunu test edebilirsiniz.

NOT: Eğer kullanıcı adı olarak admin ve şifre olarak password ikilisinin denenme sırası ortalarda bir yerde yer alsaydı bu durumda onların bulunduğu konumdan sonraki bütün Incorrect sütununun satırlarında tick işareti olmayacaktır. Bu tüm sonraki denemelerin başarılı olduğu anlamına gelmiyor. Yanıltmasın. İlk tick işaretinin olmadığı satır ile DVWA'da oturum açıldığından sonraki denemeler oturum açıkken denendiği için sanki başarılıymış gibi bir izlenim vermektedir. Yani ilk tick işaretinin olmadığı satır asıl doğru bilgilerin yer aldığı satırdır.

Sonuç

Bu derste bir login ekranına Brute Force'umsu bir tekniğe sahip Dictionary Attack yaparak admin'in şifresini kırmış olduk. Bu dersin anlaşılması için basit ve kısa sözlük dosyaları kullanılmıştır. Fakat internette türkçe, ingilizce kapsamlı sözlük dosyaları bulunabilir. Bu sözlük dosyaları binlerce, onbinlerce, yüzbinlerce ve milyonlarca satırdan oluşabilmektedir. Eğer dilerseniz kendi sözlük dosyanızı da oluşturabilirsiniz. Bunun için tek tek elle bir şeyler yazmanız da gerekmiyor. Bir tool'a komut vererek istekleriniz doğrultusunda sözlük dosyası ürettirebilirsiniz ki bu sonraki başlığın konusudur.

Ekstra

Kendi sözlük dosyanızı otomatize bir şekilde kendiniz oluşturmak için Crunch adlı tool'u kullanabilirisiniz. Bu tool'u kullanabilmek için bilgisayarınıza indirip kurmayı seçebilir ya da Virtual Machine / Virtualbox gibi bir sanallaştırıcı program kurup içine Kali adlı linux dağıtımını kurarak kullanmayı da seçebilirsiniz. İkinci seçimin şöyle bir avantajı vardır: Kali Linux işletim sistemi crunch, burpsuite ve daha onlarca siber güvenlik tool'unu bünyesinde hazır kurulu olarak barındırmaktadır. Dolayısıyla bu şekilde büyük bir yükten kurtulmuş olursunuz. Neyse, şimdi derse dönelim. Crunch tool'unun kullanımı şu şekildedir:

crunch <min> <max> <karakterseti> -t <desen> -o <sözlükdosyası.txt>


Diyelim ki 10 haneli 911 sayısıyla başlayan ve 0,1,2,3,4,5,6,7,8,9 sayılarının kullanıldığı olabilecek tüm sayıları sozluk.txt dosyasına kaydetmek isteyelim. Bu durumda aşağıdaki komutu komut ekranına girmemiz gerekir:

cruch 10 10 0123456789 -t 911@@@@@@@ -o sozluk.txt 


Böylece sözlük dosyamız oluşturulur:





Komut ekranı bize 10 milyon satırlı bir sözlük dosyası oluşturduğunu söylemektedir. Aşağıda bu sözlük dosyasının içeriğini görmektesiniz.





Sözlük dosyasına bakacak olursanız sırayla tüm kombinasyonların oluşturulduğunu görebilirsiniz. İsterseniz sayı karakterleri yerine harfler kullanabilir ve aynı zamanda şu şu karakterle başlasın ya da bitsin gibi kurallar koymadan olabilecek tüm kombinasyonlardan bir sözlük dosyası oluşturabilirsiniz. Hatta sadece 10 karakter uzunluğunda olsun şeklinde değil de 1'den 10'a kadar olsun dahi diyebilirsiniz. Fakat baştan söylüyeyim: Eğer garantici olmaya çalışırsanız bilgisayarınızı kapatmadan yıllarca açık vaziyette tutmanıza sebep olabilir. :) Benden söylemesi.

Oluşturacağınız bir sözlük dosyası BurpSuite'e eklenerek daha etkili şifre kırma teşebbüslerinde bulunulabilinmektedir.

Yararlanılan Kaynak

http://searchsecurity.techtarget.com/definition/brute-force-cracking
Bu yazı 12.01.2016 tarihinde, saat 08:34:18'de yazılmıştır. 27.03.2016 tarihi ve 16:58:38 saatinde ise güncellenmiştir.
Yazar : Hasan Fatih ŞİMŞEK Görüntülenme Sayısı : 2063
Yorumlar
fulya g
Emeklerinize sağlık..
Bu yorum 28.01.2017 tarihinde, saat 13:18:50'de gönderilmiştir.
Yorum Ekle
*
* (E-posta adresiniz yayınlanmayacaktır.)
*
*

#Arşiv


#Giriş

ID :
Şifre :