Konuyu Okuyanlar: 1 Ziyaretçi

Hydra ile Çevrimiçi Parola Saldırıları: SSH ve HTTP Form Brute Force

Hydra ile Çevrimiçi Parola Saldırıları: SSH ve HTTP Form Brute Force
Selam TurkTeam,

Parola denetiminin iki ayrı dünyası vardır: çevrimdışı (hash kırma) ve çevrimiçi (canlı servise deneme yapma). Bu rehber çevrimiçi tarafa odaklanıyor ve sektörün en bilinen aracı THC-Hydra ile SSH ve HTTP form tabanlı giriş noktalarına karşı kaba kuvvet/sözlük denemelerini uygulamalı anlatıyor. Tüm örnekler yalnızca kendi lab servislerinizde ve yetkili denetimlerde geçerlidir.

Konuda Anlatılacaklar
  1. Çevrimiçi parola saldırısı nedir, çevrimdışından farkı
  2. Hydra nedir, hangi protokolleri destekler
  3. Lab kurulumu ve kelime listeleri
  4. Hydra parametre referansı
  5. Uygulamalı: SSH ve HTTP POST form denemesi
  6. İleri seviye: oran sınırlama, devam ettirme, savunma
  7. Sonuç, kaynakça ve yasal uyarı

1. Çevrimiçi vs Çevrimdışı
Çevrimdışı saldırıda elinizde bir hash vardır ve onu yerelde, hedefle konuşmadan kırarsınız (John/Hashcat). Çevrimiçi saldırıda ise canlı bir servise (SSH, FTP, bir web giriş formu) gerçek giriş denemeleri gönderirsiniz. Çevrimiçi saldırılar çok daha yavaştır, ağ gecikmesine bağlıdır ve tespit edilebilir: başarısız girişler loglanır, hesap kilitleme ve oran sınırlama tetiklenir. Bu yüzden gerçek denetimlerde dikkatli, hedefli ve izinli yapılmalıdır.

2. Hydra Nedir?
THC-Hydra, çok sayıda protokole (ssh, ftp, http-get/post-form, smb, rdp, mysql ve daha fazlası) paralel giriş denemesi yapabilen hızlı bir çevrimiçi parola denetim aracıdır. Paralelliği sayesinde tek tek denemeye göre çok daha verimlidir, ancak bu aynı zamanda hedefe yük bindirir; eşzamanlılığı bilinçli ayarlamak gerekir.

3. Lab Kurulumu ve Wordlist'ler
Kod:
sudo apt update sudo apt install hydra seclists
Pratik için kendi makinenizde bir SSH servisi ve bilinen bir test kullanıcısı kurabilir, ya da Metasploitable2 gibi izole bir lab hedefi kullanabilirsiniz. Kullanıcı ve parola listeleri:
Kod:
ls /usr/share/seclists/Usernames/ ls /usr/share/seclists/Passwords/ # klasik parola listesi ls -l /usr/share/wordlists/rockyou.txt*

4. Hydra Parametre Referansı
-l / -L - Tek kullanıcı / kullanıcı listesi:
Kod:
hydra -l admin ... hydra -L kullanicilar.txt ...

-p / -P - Tek parola / parola listesi:
Kod:
hydra -P /usr/share/wordlists/rockyou.txt ...

-t - Paralel görev sayısı (varsayılan 16; SSH için düşürmek gerekebilir):
Kod:
hydra -t 4 ...

-s - Standart dışı port:
Kod:
hydra -s 2222 ...

-f - İlk geçerli kimlik bulununca dur; -V her denemeyi göster:
Kod:
hydra -f -V ...

-o - Sonuçları dosyaya yaz:
Kod:
hydra -o bulgu.txt ...

5. Uygulamalı Adımlar
Adım 1 - SSH sözlük denemesi. Bilinen bir kullanıcı için parola listesi deneyin (yalnızca kendi lab hedefinizde):
Kod:
hydra -l msfadmin -P /usr/share/wordlists/rockyou.txt -t 4 -f -V ssh://192.168.56.101
SSH el sıkışması pahalı olduğu için -t değerini düşük (4 civarı) tutmak daha kararlı sonuç verir. Hydra parolayı bulunca şuna benzer bir satır yazar:
Kod:
[22][ssh] host: 192.168.56.101 login: msfadmin password: msfadmin
[Resim: attachment.php?aid=229]

Adım 2 - HTTP POST form denemesi. Web giriş formlarında http-post-form modülü kullanılır. Üç alanı iki nokta ile ayırırsınız: yol:POST gövdesi:başarısızlık işareti. ^USER^ ve ^PASS^ yer tutucularını Hydra doldurur:
Kod:
hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.56.101 \ http-post-form "/login.php:username=^USER^&password=^PASS^:F=Login failed"
Buradaki F=Login failed, yanıtta bu metin varsa denemenin başarısız sayılacağını belirtir. Doğru metni bulmak için önce tarayıcıda hatalı bir giriş yapıp sunucunun döndürdüğü hata ifadesini (örn. "Invalid credentials") not edin. Alternatif olarak başarı koşulu için S= kullanılabilir.
[Resim: attachment.php?aid=230]

Adım 3 - Gövde ve çerez detayları. Form bir CSRF token veya oturum çerezi istiyorsa, POST gövdesine ilgili alanı ekler ve C=/çerez seçeneğiyle çerezi geçirirsiniz. Doğru POST alan adlarını tarayıcı geliştirici araçlarının "Network" sekmesinden teyit edin; yanlış alan adı tüm denemeleri boşa çıkarır.

6. İleri Seviye ve Savunma
  • Eşzamanlılık ve gecikme: Hesap kilitleme ve tespit riskini azaltmak için -t değerini düşürün; bazı modüllerde denemeler arası bekleme için -W / -c seçenekleri yardımcı olur.
  • Hedefli liste: Devasa listeler yerine, keşifte toplanan bağlama uygun (kurum adı, yıl, sızıntı listeleri) küçük ve akıllı listeler çok daha etkilidir.
  • Birden çok hedef: -M dosya ile birden çok host'u aynı anda test edebilirsiniz.
Savunma tarafı: Çevrimiçi kaba kuvvete karşı en etkili önlemler; güçlü ve benzersiz parolalar, çok faktörlü kimlik doğrulama (MFA), başarısız giriş sınırlama (fail2ban gibi), hesap kilitleme politikaları ve SSH'te parola yerine anahtar tabanlı kimlik doğrulamadır. Bu önlemler devrede olduğunda Hydra tipi saldırılar pratik olarak işe yaramaz hale gelir; bu yüzden denetimin asıl değeri bu kontrollerin eksikliğini ortaya koymaktır.
[Resim: attachment.php?aid=231]

6.1. Neden Çoğu Çevrimiçi Saldırı Başarısız Olur?
Yeni başlayanlar sık sık "Hydra'yı rockyou ile çalıştırdım ama hiçbir şey bulamadım" der. Bunun nedeni genellikle aracın değil, yöntemin yanlış olmasıdır. Çevrimiçi saldırıda milyonlarca parolayı denemek pratikte imkansızdır: her deneme bir ağ turu ve sunucu yanıtı gerektirir, SSH gibi protokollerde el sıkışma pahalıdır ve saniyede yalnızca birkaç deneme yapabilirsiniz. Üstelik modern sistemler fail2ban, hesap kilitleme veya oran sınırlama ile kısa sürede IP'nizi engeller. Dolayısıyla "listeyi büyüt" yaklaşımı değil, "listeyi akıllı seç" yaklaşımı kazandırır.

Profesyonel bir denetimde doğru sıralama şudur: önce keşif (hangi kullanıcı adları gerçekten var, kurumun parola politikası ne, sızıntı veritabanlarında bu kuruma ait kimlik var mı), sonra bu bağlama göre küçük ve hedefli bir liste, en sonunda düşük eşzamanlılıkla dikkatli bir deneme. Çoğu zaman tek bir zayıf veya varsayılan parola (admin/admin, root/toor, kurum adı + yıl gibi) tüm kapıyı açar; dev listeler ise yalnızca gürültü üretir ve sizi engelletir.

Bir diğer sık hata, HTTP form modülünde yanlış "başarısızlık işareti" belirlemektir. F= ile verdiğiniz metin yanıtta her zaman görünüyorsa Hydra hiçbir denemeyi başarılı saymaz; hiç görünmüyorsa her denemeyi başarılı sanır. Bu yüzden önce elle bir hatalı ve bir doğru giriş yapıp yanıtların farkını net görmek, modülü doğru kurmanın anahtarıdır.

Sonuç
Hydra, çevrimiçi parola denetiminde hızlı ve esnek bir araçtır; gücü protokol çeşitliliği ve paralelliğinde yatar. Ancak çevrimiçi saldırılar gürültülü ve tespit edilebilirdir; başarı büyük ölçüde doğru kullanıcı/parola listesi ve doğru modül yapılandırmasına bağlıdır. Her zaman yetki dahilinde, hedefi yormadan ve bulguları savunma önerilerine (MFA, anahtar tabanlı giriş, fail2ban) dönüştürerek çalışın.

Kaynakça
Yasal Uyarı
Alıntı:Çevrimiçi parola denemeleri yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde yapılmalıdır. İzinsiz giriş denemeleri Türk Ceza Kanunu 243-245. maddeleri kapsamında suçtur.

Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).


Ek DosyalarEkran Görüntüleri
           
Cevapla



Hızlı Menü: