Yazının sonunda kendi saldırınızı yapıp kendinizi test edeceksiniz :)), (Uygulamalı) Brute Force -Kaba Kuvvet Saldırısı
Nedir Bu Brute Force ?
Brute Force saldırısında hedef kişinin şifre olarak kullanabileceği bütün seçenekler bir dosyaya yazılır ve giriş yapılmak istenen sistemde tek tek denenerek doğru şifre bulunmaya çalışılır.
Saldırının daha verimli olması için hedef kişinin kullanıcı adı bilinmelidir. Çünkü hem kullanıcı adın hem de parolanın tek tek denenerek bulunması samanlıkta iğne aramaktan da zordur.
Nasıl Yapılır?
Öncelikle sistemin belirli bir şifre denemesinden sonra kısıtlama getirmediğinden emin olmalıyız. Yani 3 hatalı girişten sonra çiçekler, böcekler, sayılar sormaya başlarsa saldırı hayallerimiz suya düşer.
1.adım — Keşif
Buradaki sistemimizde herhangi bir kısıtlama söz konusu olmadan istediğim kadar deneme yapabiliyorum. Aldığım tek şey “Yanlış” yazısı. Bu hatayı ileride kullanıcağımız için notlarımıza ekliyoruz. Ek olarak, karşılaştığımız bu durum bir güvenlik açığıdır. O yüzden bu açığı raporlayıp belirtmeniz gerekmektedir.
2.adım — Wordlist
Wordlistimizi kali linuxde bulunan “crunch” ile oluşturacağız.
crunch yazdıktan sonra ilk yazdığımız rakam minimum basamak sayısını ikinci rakam ise maksimum basamak sayısını temsil eder. Oradan sonra yazdığımız “0123456789” karakterleri şifrenin bu karakterlerden oluşacağı anlamına gelmektedir. Son olarak “-o deneme.txt” komutu ise çıktı dosyasının deneme.txt adında olmasını sağlamaktadır.
Crunch ile işimiz bittikten sonra oluşturulan dosyayı “home” sekmesinde bulabilirsiniz.
Dosyayı açtığınızda göreceksiniz ki içinde “0123456789” karakterlerinin kombinasyonlarını bulunduran bütün 4 basamaklı seçenekler orada duruyor.
3.adım — Kaynak Kodları
a) method
Sağ click yapıp sayfanın kaynak kodlarını görüntüleyince saldırı için çok önemli bilgilerin orada saklı olduğunu görüceksiniz.
İlk dikkat etmemiz gereken şey kullanılan method olmalıdır. Sayfamız post methodunu kullanmaktadır. Bulduğumuz methodu not alıyoruz.
“Masaüstü programlamadan farklı olarak web programlamada sayfalar arasında veri iletimi yapılır. Yani web uygulamaları istek/cevap (request/response) mantığı ile çalışır. Web’te Get, Post, Put, Trace, Delete, Head ve Options olmak üzere 7 adet istek (request) tipi vardır. Bunlardan ençok kullanılan ve bilinenleri şüphesiz Get ve Post metodlarıdır. Zaten Get ve Post metodları dışındaki diğer metodların kullanım alanları çok çok dardır yani nadiren kullanılır.”
b) Değişken isimleri
Bilgisayar şifre seçeneklerini nereye deneyeceğini kendisi anlayamaz. O yüzden denemelerin nereye yapılacağını en küçük detayına kadar bildirmemiz gerekmektedir. İşte tam da bu yüzden kullanıcı adı ve parolanın deneneceği yerlerin yazılımsal isimlerini bilmek zorundayız.
Kaynak kodlarda da görebileceğiniz gibi kullanıcı adı girişleri için “kullaniciBilgi” parola girişleri için “parolaBilgi” isimleri sayfanın kendi yazılımcıları tarafından belirlenmiştir. Bu bilgileri de notlarımıza ekleyip devam ediyoruz.
Sayfanın kaynak kodları biraz karışık olduğundan dolayı eğer değişken isimlerinden emin olamazsanız sağ click yapıp “Inspect Element (Q)” seçeneğine tıklayın.
Karşınıza yukarıdaki gibi bir pencere çıkacak.
Yukarıda görebileceğiniz gibi “Network” sekmesine tıklarsanız yeni bir pencere açılacak fakat değişken isimlerini görebilmemiz için bir giriş yapmamız lazım. Herhangi bir kullanıcı ve parolayı girdiğinizde “Network” sekmesinde hareketlilikler göreceksiniz.
Network sekmesinde en üstte bulunan “POST” methoduna tıklayıp sağ tarafta açılan menüde “Params” sekmesine gelirseniz kullanıcı adı ve parola değişkenlerini rahat bir şekilde görebilirsiniz.
4.adım — Cookie
Eğer sitede PHPSESID varsa bizim bunu belirtmemiz gerekecektir.
Siz bilgilerinize ve paralarınıza ulaşmak için kartı kullanırsınız. Sessionda size direkt olarak bilgileri vermek yerine bir PHPSESSID adında değer verir ve o değer üzerinden size ait olan verileri okur ve düzenler.
Sayfada PHPSESID olup olmadığına aşağıdaki yönergeden ulaşabilirsiniz.
Sağ Click -> Inspect Element -> Storage -> Cookies -> PHPSESID
Eğer PHPSESID varsa değerini(value) kopyalayıp notlarımıza ekliyoruz.
5.adım — Saldıralım
Bu adımı dikkatle okumanızı tavsiye ediyorum. Ben rahat anlaşılması ve mantığının oturması için adım adım anlatıcam o yüzden lütfen kodlarımız bitene kadar enter’a basmayın aksi taktirde hata alırsınız.
hydra
Terminale hydra yazarak çalıştırdık.
hydra -l ankayazilim -P /root/deneme.txt
kullanıcı adının ankayazilim olduğunu varsayalım.
“l” , “L” = login anlamına gelir ve kullanıcı adı için kullanılır. Kullanıcı adı bilindiğimiz için küçük “l” kullanıyoruz ve ardından kullanıcı adını belirtiyoruz.
“p”, “P” = password anlamına gelir ve şifre için kullanılır. Parolayı bilmediğimiz için büyük “P” kullanıyoruz ve ardından oluşturduğumuz wordlistimizi ekliyoruz.
hydra -l ankayazilim -P /root/deneme.txt demirci.siberkuvvet.com http-post-form
Hedef sistemimizin adresini ve kullandığı methodu giriyoruz.
Eğer “get” methodu kullanılsaydı http-get-form yazacaktık.
Saldırı yapacağımız site “https” olsa bile method belirtilirken “http” kullanılır.
hydra -l ankayazilim -P /root/deneme.txt demirci.siberkuvvet.com http-post-form “/bf_afcdf1c574c2f80f52bd70ebd66969c9/index.php
Tırnak açarak sitenin url’ sinde site isminden sonra gelen adresi olduğu gibi kopyalanarak yapıştırdık. Ek olarak “index.php” ekliyoruz ve tırnağı henüz kapatmıyoruz.
hydra -l ankayazilim -P /root/deneme.txt demirci.siberkuvvet.com http-post-form “/bf_afcdf1c574c2f80f52bd70ebd66969c9/index.php:kullaniciBilgi=^USER^&parolaBilgi=^PASS^
“:” site adresini sonlandırdığımızı söylüyoruz ve sitenin kulanıcı ad ve parola değişkenlerini hydraya bildiriyoruz.
hydra -l ankayazilim -P /root/deneme.txt demirci.siberkuvvet.com http-post-form “/bf_afcdf1c574c2f80f52bd70ebd66969c9/index.php:kullaniciBilgi=^USER^&parolaBilgi=^PASS^:Yanlış:H=Cookie
“:” koyarak değişken isimleri kısmını bitirdiğimizi belirtiyoruz. Ardından 1.adım da karşılaştığımız hata mesajımızı hydraya bildirip “:” ile bu bölümü sonlandırıyoruz.
hydra -l ankayazilim -P /root/deneme.txt demirci.siberkuvvet.com http-post-form “/bf_afcdf1c574c2f80f52bd70ebd66969c9/index.php:kullaniciBilgi=^USER^&parolaBilgi=^PASS^:Yanlış:H=Cookie: PHPSESSID=cbsr34umtp2ppt53tccaqd2nvg”
Bulduğumuz PHPSESSID değerini de bildirip tırnağımızı kapatıyoruz ve kodumuzu çalıştırıyoruz.
Şimdi sıra sizde.
Demirci atölyesindeki “Ne Kadar Kabasın Görevini” çözebilirsiniz
Herkese Kolay Gelsin.