Konuyu Okuyanlar: 1 Ziyaretçi

John the Ripper ile Parola Kırma: Kurulum, Modlar ve Uygulamalı Örnekler

John the Ripper ile Parola Kırma: Kurulum, Modlar ve Uygulamalı Örnekler
Merhaba TurkTeam,

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
  1. John the Ripper nedir, nasıl çalışır
  2. Kurulum: paket deposu ve jumbo sürüm
  3. Hash biçimi tespiti ve *2john yardımcıları
  4. Çalışma modları: single, wordlist, incremental
  5. Uygulamalı: Linux shadow parolası kırma
  6. Kural (rules), maske ve ilerleme yönetimi
  7. 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:
Kod:
sudo apt update sudo apt install john
Sürümü ve derlenmiş özellikleri doğrulayın:
Kod:
john --version john --list=build-info
Desteklenen hash biçimlerini listelemek için:
Kod:
john --list=formats | tr ',' '\n' | head

3. 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:
Kod:
sudo unshadow /etc/passwd /etc/shadow > hashes.txt

zip2john / rar2john - Parolalı arşivlerin hash'ini çıkarır:
Kod:
zip2john gizli.zip > zip.hash

ssh2john - Parolalı özel anahtarın hash'ini çıkarır:
Kod:
ssh2john id_rsa > key.hash

Bir 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:
Kod:
john --format=sha512crypt hashes.txt

4. Çalışma Modları
single - Kullanıcı adı, GECOS alanı gibi bilgilerden türetilen akıllı tahminler; hızlı ilk geçiş için idealdir:
Kod:
john --single hashes.txt

wordlist - Bir kelime listesi üzerinden deneme; isteğe bağlı kurallarla güçlenir:
Kod:
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:
Kod:
john --wordlist=/usr/share/wordlists/rockyou.txt --rules hashes.txt

incremental - Karakter uzayını istatistiksel sırayla deneyen brute-force modu (uzun sürebilir):
Kod:
john --incremental hashes.txt

5. 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):
Kod:
sudo useradd -m testkullanici echo 'testkullanici:password123' | sudo chpasswd

Adım 2 - Hash'leri birleştirin:
Kod:
sudo unshadow /etc/passwd /etc/shadow > hashes.txt
Çıktı satırı şuna benzer; $6$ öneki parolanın sha512crypt ile saklandığını gösterir:
Kod:
testkullanici:$6$xyz...$abcdef...:1002:1002::/home/testkullanici:/bin/bash
[Resim: attachment.php?aid=132]

Adım 3 - rockyou ile kırma:
rockyou.txt Kali'de genelde sıkıştırılmıştır; önce açın:
Kod:
sudo gzip -d /usr/share/wordlists/rockyou.txt.gz 2>/dev/null john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
JtR parolayı bulunca şuna benzer bir satır yazar ve kırılan kayıtları john.pot dosyasına ekler:
Kod:
password123 (testkullanici)


Adım 4 - Sonuçları görüntüleme:
Kırılmış parolaları tekrar çalıştırmadan görmek için:
Kod:
john --show hashes.txt
Bu komut "testkullanici:password123" gibi çözülmüş kayıtları listeler.


6. İ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:
Kod:
john --session=denetim --wordlist=rockyou.txt hashes.txt john --restore=denetim

Mask modu: Parola kalıbını biliyorsanız (örn. 6 küçük harf + 2 rakam) hedefli brute-force çok hızlanır:
Kod:
john --mask='?l?l?l?l?l?l?d?d' --min-length=8 hashes.txt
Burada ?l küçük harfi, ?d rakamı temsil eder.

Ö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
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).


Ek DosyalarEkran Görüntüleri
   
Cevapla



Hızlı Menü: