Post

PinPulse: Python ve asyncio ile Yüksek Performanslı PIN Brute-Force

🇹🇷 PinPulse, Python'un asenkron gücünü kullanarak HTTP tabanlı PIN doğrulama mekanizmalarını test etmek için geliştirilmiş yüksek performanslı bir güvenlik aracıdır.

PinPulse: Python ve asyncio ile Yüksek Performanslı PIN Brute-Force

Güvenlik testlerinde (Pentest) en sık karşılaşılan engellerden biri, hız limitleri ve zaman kısıtlamalarıdır. Özellikle PIN tabanlı kimlik doğrulama mekanizmalarını test ederken, geleneksel senkron araçlar çok yavaş kalabiliyor. Bu ihtiyacı karşılamak için Python’un asenkron yeteneklerini (asyncio & aiohttp) kullanan yeni aracım PinPulse‘ı geliştirdim. | 🇬🇧 English

PinPulse Nedir?

PinPulse 🚀, HTTP uç noktaları (endpoints) üzerinde PIN denemeleri yapmak için tasarlanmış, yüksek performanslı ve asenkron bir komut satırı aracıdır. Saniyeler içinde yüzlerce istek göndererek hedef sistemin direncini ölçmenizi sağlar.

Geleneksel araçların aksine, her isteğin cevabını beklemek yerine aynı anda çok sayıda bağlantı açar. Bu da özellikle 4 veya 6 haneli PIN’lerin saniyeler içinde test edilebilmesi anlamına gelir.

Neden PinPulse?

  • Asenkron Mimari: aiohttp sayesinde I/O bloklaması yaşamadan maksimum ağ trafiği sağlar.
  • Akıllı Durdurma: Doğru PIN bulunduğu anda tüm aktif görevler anında iptal edilir, gereksiz kaynak tüketimi önlenir.
  • Esnek Filtreleme: Sadece HTTP durum koduna göre değil, yanıt içeriğindeki (örneğin “Hatalı kod”) metne göre de başarı tespiti yapabilir.
  • Canlı İzleme: tqdm entegrasyonu ile anlık hız, kalan süre ve ilerleme durumunu görebilirsiniz.

Kurulum

PyPI Üzerinden (Önerilen)

1
pip install pinpulse

Kaynak Koddan

1
2
3
git clone [https://github.com/fr0stb1rd/PinPulse.git](https://github.com/fr0stb1rd/PinPulse.git)
cd PinPulse
pip install -r requirements.txt

Çalışma Mantığı

PinPulse, bir Semaphore yapısı kullanarak aynı anda yapılacak maksimum istek sayısını kontrol altında tutar. Bu sayede yerel sistem kaynaklarını tüketmeden en yüksek verimi elde eder.

flowchart TD
    Start(["🚀 Başlat"]) --> Config["Parametreleri Oku\n(URL, Digits, Thread)"]
    Config --> Loop{PIN Havuzu Bitti mi?}
    Loop -- Hayır --> AsyncReq["Asenkron HTTP İsteği"]
    AsyncReq --> Check{"Başarılı mı?\n(Status & Text Check)"}
    Check -- Evet --> Found["✅ PIN Bulundu!"]
    Check -- Hayır --> Loop
    Found --> Stop["🛑 Tüm İşlemleri Durdur"]
    Loop -- Evet --> Fail["❌ PIN Bulunamadı"]

Kullanım Örnekleri

PinPulse oldukça esnektir. İşte birkaç yaygın kullanım senaryosu:

1. Standart 6 Haneli OTP Testi:

1
pinpulse -u "[https://api.hedef.com/v1/verify](https://api.hedef.com/v1/verify)" -d 6 -p "otp"

2. WAF Atlatma ve Yüksek Hız: Özel bir User-Agent tanımlayarak ve eşzamanlı istek sayısını 100’e çıkararak test yapın:

1
pinpulse -u "[https://site.com/login](https://site.com/login)" -a "Mozilla/5.0 (PentestBot)" -c 100

3. Gelişmiş Yanıt Kontrolü: Başarıyı sadece HTTP 302 (yönlendirme) koduyla ve “Hatalı” metninin olmamasıyla teyit edin:

1
pinpulse -u "[https://api.site.com/auth](https://api.site.com/auth)" -s 302 -t "Hatalı PIN Girdiniz"

Teknik Detaylar

Araç, iki aşamalı bir doğrulama kontrolü yapar:

  1. HTTP Durum Kodu: Gelen yanıt --status (varsayılan 200) ile eşleşiyor mu?
  2. Gövde İçeriği: --text ile belirtilen hata mesajı yanıtta yok mu?

Eğer bu iki şart da sağlanırsa, PinPulse hedef PIN’i bulduğunu anlar ve süreci sonlandırır.

Bu araç yalnızca yetkili güvenlik testleri ve eğitim amaçlı geliştirilmiştir. İzin alınmamış sistemlerde kullanılması yasal sorumluluk doğurabilir.

Kaynak Kod: fr0stb1rd/PinPulse
PyPI: pypi.org/project/pinpulse

This post is licensed under CC BY 4.0 by the author.