John the Ripper (JtR), parola güvenliğini denetlemek için kullanılan, açık kaynaklı ve çok eski köklere sahip bir parola kırma aracıdır. Bu rehberde community sürümü "jumbo" üzerinden kurulumu, çalışma modlarını (single, wordlist, incremental), hash biçimlerini ve en çok kullanılan yardımcı araçları (unshadow, zip2john gibi) uygulamalı olarak ele alıyoruz. Tüm örnekler yalnızca kendi hesaplarınız ve lab verileriniz içindir.
Konuda Anlatılacaklar
- John the Ripper nedir, nasıl çalışır
- Kurulum: paket deposu ve jumbo sürüm
- Hash biçimi tespiti ve *2john yardımcıları
- Çalışma modları: single, wordlist, incremental
- Uygulamalı: Linux shadow parolası kırma
- Kural (rules), maske ve ilerleme yönetimi
- Sonuç, kaynakça ve yasal uyarı
1. John the Ripper Nedir, Nasıl Çalışır?
Parolalar sistemlerde açık metin değil, geri döndürülemez bir hash olarak saklanır. JtR, bir aday parolayı aynı algoritmayla hashleyip saklanan hash ile karşılaştırarak çalışır; eşleşirse parola bulunmuş olur. Yani JtR hash'i "çözmez", doğru adayı tahmin edip doğrular. Bu yüzden başarı; wordlist kalitesine, kurallara ve hash algoritmasının yavaşlığına bağlıdır.
Jumbo sürümü (openwall/john), topluluk tarafından yüzlerce hash türü, OpenCL/GPU desteği ve zengin yardımcı araçlarla genişletilmiş versiyondur ve pentest için önerilen sürümdür.
2. Kurulum
Kali/Parrot üzerinde jumbo sürümü genelde "john" paketiyle gelir:
sudo apt update
sudo apt install johnjohn --version
john --list=build-infojohn --list=formats | tr ',' '\n' | head3. Hash Biçimi ve *2john Yardımcıları
JtR, pek çok dosya türünü kırılabilir hash biçimine çeviren yardımcı betikler içerir. Bunlar genelde /usr/share/john/ veya /usr/sbin altında bulunur.
unshadow - /etc/passwd ve /etc/shadow dosyalarını JtR'nin anlayacağı tek dosyada birleştirir:
sudo unshadow /etc/passwd /etc/shadow > hashes.txtzip2john / rar2john - Parolalı arşivlerin hash'ini çıkarır:
zip2john gizli.zip > zip.hashssh2john - Parolalı özel anahtarın hash'ini çıkarır:
ssh2john id_rsa > key.hashBir hash'in türünden emin değilseniz, biçim tahmini için önce incelenmelidir; JtR çoğu zaman biçimi otomatik tanır, ancak --format ile zorlayabilirsiniz:
john --format=sha512crypt hashes.txt4. Çalışma Modları
single - Kullanıcı adı, GECOS alanı gibi bilgilerden türetilen akıllı tahminler; hızlı ilk geçiş için idealdir:
john --single hashes.txtwordlist - Bir kelime listesi üzerinden deneme; isteğe bağlı kurallarla güçlenir:
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt--rules - Kelimeleri dönüştürerek (büyük harf, sona rakam ekleme vb.) varyasyon üretir:
john --wordlist=/usr/share/wordlists/rockyou.txt --rules hashes.txtincremental - Karakter uzayını istatistiksel sırayla deneyen brute-force modu (uzun sürebilir):
john --incremental hashes.txt5. Uygulamalı: Linux Shadow Parolası Kırma
Aşağıdaki akışı yalnızca KENDİ test makinenizde deneyin.
Adım 1 - Test kullanıcısı oluşturun ve basit bir parola verin (lab):
sudo useradd -m testkullanici
echo 'testkullanici:password123' | sudo chpasswdAdım 2 - Hash'leri birleştirin:
sudo unshadow /etc/passwd /etc/shadow > hashes.txttestkullanici:$6$xyz...$abcdef...:1002:1002::/home/testkullanici:/bin/bashAdım 3 - rockyou ile kırma:
rockyou.txt Kali'de genelde sıkıştırılmıştır; önce açın:
sudo gzip -d /usr/share/wordlists/rockyou.txt.gz 2>/dev/null
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txtpassword123 (testkullanici)Adım 4 - Sonuçları görüntüleme:
Kırılmış parolaları tekrar çalıştırmadan görmek için:
john --show hashes.txt6. İleri Seviye: Kurallar, Maske ve İlerleme
Durum takibi: JtR çalışırken herhangi bir tuşa basınca ilerlemeyi gösterir. Oturum kaydetme ve devam ettirme:
john --session=denetim --wordlist=rockyou.txt hashes.txt
john --restore=denetimMask modu: Parola kalıbını biliyorsanız (örn. 6 küçük harf + 2 rakam) hedefli brute-force çok hızlanır:
john --mask='?l?l?l?l?l?l?d?d' --min-length=8 hashes.txtÖzel kural seti: /etc/john/john.conf içine kendi kurallarınızı ekleyip --rules=KuralAdi ile çağırabilirsiniz. Kurumsal denetimlerde parola politikasına uygun özel kurallar yazmak, gerçekçi sonuç verir.
Performans: Yavaş hash'lerde (bcrypt, sha512crypt) CPU hızı sınırlayıcıdır; büyük kampanyalar için GPU desteği olan Hashcat'i değerlendirin. JtR'nin güçlü yanı esnek kural motoru ve geniş biçim desteğidir.
6.1. Hash Türleri ve Pratik Notlar
Parola denetiminde karşılaşacağınız hash türlerini tanımak, doğru stratejiyi seçmenin yarısıdır. Modern Linux dağıtımları parolaları yavaş ve tuzlu (salted) algoritmalarla saklar: MD5-crypt, , ve öneklerini gösterir. Yavaş algoritmalar bir aday parolayı doğrulamayı kasıtlı olarak pahalı kılar; bu yüzden milyonlarca deneme saniyeler değil dakikalar-saatler alır. Bu da neden güçlü ve uzun parolaların kaba kuvvete karşı etkili olduğunu açıklar.
Windows ortamlarında NTLM hash'leri tuzsuzdur ve hızlı kırılır; bu yüzden kurumsal denetimlerde özellikle önemlidir. JtR bu biçimleri de destekler, ancak büyük NTLM koleksiyonlarında GPU hızı için Hashcat sıklıkla tercih edilir. İki aracı rakip değil tamamlayıcı görün: JtR'nin kural motoru ve biçim çeşitliliği keşif ve küçük setlerde, Hashcat'in GPU gücü büyük kampanyalarda parlar.
Denetim raporunuzda yalnızca "kaç parola kırıldı" demek yetmez; kırılan parolaların uzunluk ve karmaşıklık dağılımını, politikaya uymayanları ve yeniden kullanılan parolaları da belgeleyin. Asıl değer, bulguların düzeltici öneriye dönüşmesindedir: minimum uzunluk artırma, yaygın parolaların engellenmesi (deny list) ve çok faktörlü kimlik doğrulama.
Son olarak, john.pot dosyasının önceki sonuçları sakladığını unutmayın; yeni bir denetime temiz başlamak isterseniz bu dosyayı yedekleyip temizleyin. Aksi halde JtR, zaten kırılmış hash'leri atlayıp sonuçları birleştirir ve ilerleme olduğundan daha hızlı görünebilir.
Sonuç
John the Ripper, parola denetiminde hâlâ en pratik araçlardan biridir. Doğru yaklaşım; önce --single, sonra kurallı wordlist, en son maske/incremental sırasıyla ilerlemektir. Amaç saldırmak değil, zayıf parolaları ortaya koyup düzeltmektir. Bu yüzden denetim sonuçlarını mutlaka güçlü parola politikasıyla eşleştirin.
Kaynakça
- John the Ripper Resmi Sitesi (Openwall) - https://www.openwall.com/john/
- JtR Jumbo Deposu ve Wiki - https://github.com/openwall/john
- Openwall JtR Dokümanları - https://www.openwall.com/john/doc/
- Kali Tools: john - https://www.kali.org/tools/john/
- man john / man unshadow (yerel man sayfaları)
Yasal Uyarı
Alıntı:Parola kırma yalnızca kendi hesaplarınızda veya yazılı yetki verilmiş denetimlerde yapılmalıdır. Başkasına ait parolaları izinsiz kırmak 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).