top of page

Broken brute-force protection (IP block) — Writeup

Yazarın fotoğrafı: Songül ÖZÜGÜRLER
Songül ÖZÜGÜRLER
28 Nis
2 dakikada okunur

Lab: (Broken brute-force protection, IP block) — Writeup

Bu labda amaç, brute-force korumasındaki bir mantık hatasından yararlanarak “carlos” kullanıcısının şifresini brute-force ile elde etmek. Uygulama IP tabanlı bir koruma kullanıyor gibi görünse de, arka plandaki yanlış bir mantık bu korumayı tamamen devre dışı bırakmamıza izin veriyor.

Brute-force korumasının genel mantığı

Brute-force saldırılarını engellemek için genelde iki yöntem uygulanır:

Çok fazla hatalı deneme olursa hesap kilitlenir.

Kısa süre içinde çok fazla deneme yapan IP adresi engellenir.

Bu labda ikinci yöntem var: IP adresi kısa sürede çok fazla hatalı giriş yapınca bloklanıyor.

Fakat uygulamanın yaptığı kritik bir hata var:

Başarılı bir giriş yapıldığında, IP üzerindeki başarısız deneme sayacı sıfırlanıyor. Yani saldırgan ara ara kendi hesabıyla giriş yaparak IP engelini sürekli kaldırabiliyor.

Bu da brute-force korumasını neredeyse tamamen etkisiz hale getiriyor.

Verilen bilgiler

Benim hesabım: wiener : peter

Hedef kullanıcı: carlos

İlk denemeler

Önce birkaç hatalı şifre girdim.

Broken brute-force protection (IP block) — Writeup

Birkaç denemenin ardından IP adresimin brute-force nedeniyle engellendiğini söyleyen bir uyarı aldım.

Broken brute-force protection (IP block) — Writeup

Daha sonra kendi hesabım olan wiener : peter ile giriş yapmayı denedim. Engelin anında kalktığını ve tekrar deneme yapabildiğimi gördüm. Bu, labdaki zafiyetin temelini oluşturuyor.

Yanlış giriş denemesini Burp ile yakalayıp Intruder’a gönderdim. Bu atak türü için pitchfork modunu kullandım çünkü iki farklı wordlist’in aynı anda ve birebir karşılık gelecek şekilde çalışması gerekiyordu.

Broken brute-force protection (IP block) — Writeup

Wordlist kısmında amaç, her hatalı brute-force denemesinden sonra kendi hesabımla başarılı giriş yaparak IP engelinin devreye girmesini engellemekti. Bunun için iki liste hazırladım. Kullanıcı adı listesine hem carlos’u hem de wiener’ı yazdım. Böylece Intruder, her denemede önce carlos için brute-force denemesi yapacak, hemen ardından wiener’la giriş deneyecekti. Parola listesinde ise verilen her şifrenin altına kendi şifrem olan “peter”ı ekledim.

Broken brute-force protection (IP block) — Writeup

user wordlisti

Broken brute-force protection (IP block) — Writeup

password wordlisti

Bu sayede her hatalı girişten sonra otomatik olarak “wiener : peter” isteği gönderilip sistem bunu başarılı giriş olarak gördü ve IP sayacını sıfırladı. Böylece IP bloklaması hiç devreye girmeden brute-force denemeleri kesintisiz şekilde devam etti.

Broken brute-force protection (IP block) — Writeup

Brute-force saldırısı çalışırken sonuçları kontrol ettiğimde, diğerlerinden farklı olarak 302 döndüren bir carlos isteği yakaladım. Bu, denenen şifrenin doğru olduğunu gösteriyordu. Yani artık carlos’un hesabına bu parola ile giriş yapabiliyordum. Böylece kurban kullanıcı olan carlos’un şifresini bulmuş oldum.🌸

Broken brute-force protection (IP block) — Writeup
 
 
bottom of page