HTML Form Tabanlı Kaba Kuvvet Saldırıları

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Amaç:

Hedef sistemdeki captcha kullanmayan giriş formuna, kaba kuvvet saldırısı yaparak kullanıcı veya yönetici parolalalarını kırmak.

Lab Senaryosu:

Herhangi bir web teknolojisi ile hazırlanmış giriş formu kullanılabilir. Örnekte “username” ve “pass” isimlerinde iki inputu ve “giris” isminde bir butonu olan, bir HTML form ve doğru parola kontrolünü yapan bir PHP Script’i ile hazırlanmış bir giriş sayfası kullanılmıştır.

Araç:

  • Burp Suite Free 1.5
  • Hydra 7.4.2
  • FireBug 1.11.4

Adımlar:

Burp Suite ile kaba kuvvet saldırısı:

  • Burp Suite uygulaması çalıştırılarak, web tarayıcısı proxy olarak 127.0.0.1:8080 kullanacak şekilde ayarlanır. Tarayıcıdan, hedef giriş ekranının bulunduğu sayfaya bağlanılır. Örnek lab ortamında bu “http://localhost/test.php” dir. Form doldurulup giriş butonuna basılır ve Burp Suite’in Proxy sekmesinin Intercept alt sekmesinde sunucuya gönderilemeden kesilmiş olan istek görülür. Burada sağ click işleminden sonra -> send to intruder” şeklinde istek Burp Suite’in Intruder eklentisine gönderilir.

BurpSuite.png

  • Intruder sekmesinde 1. adımda yakalanan isteğin POST verisine özel karakterler eklenmiş hali görülür. “Clear §” ile bütün payload noktaları temizlenip, daha sonra sadece kullanıcı adı ve parola alanları seçilip “Add §” ile işaretlenir. “Attack Type” alanı, “Cluster Bomb” olarak seçilir. Bu sayede, kullanıcı adı ve parola alanları için ayrı listeler kullanılabilir. Eğer, saldırı tek bir kullanıcı için gerçekleştirilecekse, bu alan Spider olarak seçilip, POST verisi üzerinde, sadece parolaya ait alan § karakteri ile işaretlenir.

Cluster.png

  • Payload sekmesinde payload set 1 için “simple list” seçilir ve payload options bölümünden Load denilerek kullanıcı adlarının bulunduğu liste yüklenir.

Payload.png

Payload set 2 için yine simple list kullanılabileceği gibi, eldeki wordlist’lerin yetersiz kaldığı durumlarda, diğer seçenekler de denenebilir.

  • Üst menüden Intruder->Start attack tıklanarak saldırı başlatılır. Attack penceresinde; yapılan istekler, dönen cevap, HTTP kodu, boyutu ya da timeout süresi gibi değerler bulunur. Burada, doğru şifre için dönen cevabın boyutunun farklı olmasından dolayı, doğru şifre rahatlıkla ayırt edilebilir.

IntruderAttack.png

  • Hedefin, herhangi bir geçerli kullanıcı adı - parola eşleşmesi bulmak olduğu durumlarda, Pitchfork saldırı türü daha kısa sürede sonuca götürebilir.

İlk örnekten farklı olarak, Intruder sekmesinin “Positions” alt sekmesinde, “Attack type” olarak “Pitchfork” seçilir. Payloads sekmesinde, Payload set 1 ve 2 için simple list seçilip, ikisine de kullanıcı adlarını içerecek liste yüklenir. Daha sonra payload set 2 (parola alanına denk gelen) için “Payload Processing” bölümünden, eldeki kullanıcı adlarından yaygın olarak kullanılan şifreleri üretecek ayarlar yapılabilir. Örnek olarak, kullanıcı adlarını sonuna 123 ekleyip şifre olarak denemek için “Add-> Add suffix -> 123” ayarı yapılır.

Pitchfork.png

Pitchfork saldırı tipinin özelliği, iki farklı payload kümesinin tüm kombinasyonlarını denemek yerine, her iterasyonda bire bir eşleşme yapmasıdır. Anlatılan yöntemin örnek çıktı şu şekildedir.

IntruderAttack2.png

Hydra ile kaba kuvvet saldırısı:

  • İlk olarak, giriş formunda gönderilen isteğin hangi HTTP metodunu kullandığı (POST,GET), kullanıcı adı ve parola parametrelerinin isimleri ve formun geçerli sayılması için başka zorunlu parametreler varsa bunların tespit edilmesi gerekir. Bu aşamada, ya HTML formunun kodlarına bakarak, bu bilgiler elde edilir ya da bir web proxy uygulaması ile isteğin hazır hali alınabilir. Üçüncü ve pratik bir seçenek de firebug gibi bir tarayıcı eklentisi ile sunucuya giden isteğin yakalanmasıdır. Hedef sayfa açılıp, Firebug eklentisi çalıştırılır. Firebug’ın Net sekmesine gelinip, aktif değilse aktif edilir. Giriş formu doldurulup yollanır. “Firebug Net” penceresinde yapılan istek görülür.

Firebug2.png

Ayrıca, sayfanın hatalı girişlerde görünüp, başarılı girişlerde görünmeyen bir bölümü tespit edilmelidir. Yanlış kullanıcı adı veya şifre mesajı ya da giriş formunun bir parçası, bu amaçla seçilebilir.

  • Hydra şu parametrelerle çalıştırılır.

hydra -P password.txt (denenecek parolaların listesi, -p ile tek şifre de belirtilebilir.) -l bga (denenecek kullanıcı adı, -L ile liste de belirtilebilir.) -t 3 (çalışacak thread sayısı) localhost (hedef adres) http-form-post (kullanılacak modül, http(s)-form-get/post modülleri mevcut.) "/test.php:username=^USER^&pass=^PASS^&giris=Giriş:Yanlış Şifre" (hedef sayfa:kullanıcı adı parametresi=^USER^&parola parametresi=^PASS^&diğer parametreler ve değerleri:Hatalı giriş mesajı) -v (detayları göster) -V (denemeleri göster)

Örneğin:

hydra -P passwords.txt -l bga -t 3 localhost http-form-post "/test.php:username=^USER^&pass=^PASS^&giris=Giriş:Yanlış Şifre" -v -V

Son2.png