Yavuz Kuk
  • Ben kimim?
  • Linux Privilege Escalation (Linux Yetki Yükseltme)
  • 🚩Zafiyetler
    • API Testing
    • Authentication Vulnerabilities
    • Command Injection
    • File Upload
    • HTTP Host Header Attack
    • XSS (Cross Site Scripting)
    • LFI (Local File Inclusion)
    • Race Condition
    • JWT Bypass
    • Web Cache Poisoning
    • SOP ve CORS
  • 🚩Araçlar
    • Beef
    • FFUF
    • Gobuster
    • Hashcat
    • Hydra
    • John the Ripper
    • Nmap
    • Zphisher
    • Wpscan
  • 🚩Network
    • İnternet nedir?
    • IPv 4/6 nedir?
    • DHCP nedir?
    • Firewall nedir?
    • DNS nedir?
    • OSI modeli nedir?
    • TCP/IP modeli nedir?
    • NAT nedir?
    • Web Cache nedir?
  • 🚩Protokoller
    • SMB (Server Message Block)
    • Telnet
  • 🚩Diğer
    • CVSS nedir?
Powered by GitBook
On this page
  1. Araçlar

John the Ripper

PreviousHydraNextNmap

Last updated 9 months ago

John the Ripper aracı, piyasadaki en iyi bilinen ve çok yönlü hash kırma araçlarından biridir. Aracın nasıl kullanıldığına bakmadan önce hash nedir onu öğrenelim.

Hash, herhangi bir uzunluktaki bir veri parçasını alıp onu sabit uzunlukta başka bir biçimde göstermenin bir yoludur. Bu, verinin orijinal değerini maskeler. Bu, orijinal veriyi bir karma algoritmasından geçirerek yapılır. MD4, MD5, SHA1 ve NTLM gibi birçok popüler karma algoritması vardır.

Örnek vermek amacıyla sitesinden denemeler yapacağım. "deneme" kelimesinin MD5 hash karşılığı 8f10d078b2799206cfe914b32cc6a5e9 32 karakterli bir çıktıdır. Aynı şekilde "a" karakterinin MD5 hash karşılığı ise 0cc175b9c0f1b6a831c399e269772661 32 karakterli bir çıktıdır.

Hash işlevleri tek yönlü işlevler olarak tasarlanmıştır. Başka bir deyişle, verilen bir girdinin hash değerini elde etmek kolaydır; ancak hash değeri verildiğinde orijinal değeri bulmak zor bir sorundur. Hash değerini metine döndürmek için çeşitli yöntemler kullanılır ama temel olarak hash algoritmaları geri döndürülemezler.


Algoritmanın kendisi geri döndürülemez olsa da. Bu, hash değerlerinin kırmanın imkansız olduğu anlamına gelmez. Örneğin, bir parolanın hash algoritmasını biliyorsanız ve elinizde sık kullanılan şifreleri içeren bir wordlist olduğunu düşünün. Listede bulunan bütün şifreleri verilen algoritmaya göre hashleyip elimizde bulunan hash değeri ile kontrol ederiz. Eşleşiyorlarsa, artık o hashin hangi kelimeye karşılık geldiğini öğrenmiş oluyoruz.

Bu işleme sözlük saldırısı denir ve John the Ripper veya yaygın olarak kısaltıldığı adıyla John, çok sayıda farklı hash türünde hızlı kaba kuvvet saldırıları gerçekleştirmenizi sağlayan bir araçtır.

Temel olarak John the Ripper aracının 2 farklı kullanım yöntemi vardır. İlk yöntem olarak aracın hash algoritması otomatik olarak tespit etmeye çalıştığı durumdur. Diğer yöntem ise Hashes gibi web sitelerinden hash algoritmasını öğrenip, aracımıza hash alogirtması hakkında bilgi verebiliriz.

Elimizde şöyle bir hash bulunuyor: 2e728dd31fb5949bc39cac5a9f066498

john --wordlist=rockyou.txt hash1.txt

Bu komutu yazdıktan sonra aracımız bize algoritma tipi hakkında bilgi verir.

Aracımız bize hash algoritması hakkında bilgi verdi ve bu bilgiler eşliğinde işlemlerimizi yapabiliriz. Kullanılan hash tipini format parametresiyle belirtmemiz gerekiyor, hash algoritmalarının bazı özel isimleri olabiliyor bu formatları listelemek için şu komutu kullanabiliriz.

john --list=formats

Aracımız hash algortiması olarak md5 olarak bize sonuç verdi, format olarak belirtmek için formatlar arasından seçmemiz gerekiyor.

john --list=formats | grep MD5

MD5 için format belirtirken Raw-MD5 şeklinde belirtmemiz gerekiyor. Aracı kullanırken ayrıca bir wordlist vermemiz gerekiyor. Bunun içinse --wordlist parametresini vermemiz gerekiyor. Wordlist olarak rockyou.txt dosyasını kullanacağım.

john --wordlist=rockyou.txt --format=Raw-MD5 hash1.txt

İlk hash değerimizin asıl orjinal değeri biscuit olduğunu anlamış olduk.


Web sitesi hash algoritması olarak SHA1 olarak sonuç verdi.

John the Ripper aracının SHA1 için kullandığı parametre şekli nedir öncelikle ona bakalım.

john --list=formats | grep SHA1

Format olarak Raw-SHA1 olarak belirteceğiz. Benzer şekilde komudumuzu yazdıktan sonra hashin değerini ulaşabiliyoruz.

john --wordlist=rockyou.txt --format=Raw-SHA1 hash2.txt


Üçüncü örneğimizde aynı şekilde bir hash değerini çözeceğiz. Öncelikle hash algoritmasını tespit etmek için Hashes sitesinden algoritma tespiti yapıyoruz.

Bulunan hash formatına göre kodumuzu düzenleyip hashin sonucuna ulaşıyoruz.

NT hash (veya NTLM), modern Windows işletim sistemlerinde kullanıcı ve servis parolalarını saklamak için kullanılan bir hash formatıdır. Bu, "NT/LM" olarak da adlandırılır; burada "LM", eski Windows sürümlerinde kullanılan bir parola hash formatına atıfta bulunur.

Elimizde 5460C85BD858A11475115D2DD3A82333Windows tipinde bir hash değerimiz var. Öncelikle hash algoritmasını öğrenmemiz lazım.

NTLM algoritmasının format tipini öğrenmek için şu komutu kullanıyoruz:

john --list=formats | grep NT

john --wordlist=rockyou.txt --format=nt ntlm.txt


Nasıl Windows sistemlerin şifrelerini öğrendiysek Linux sistemlerin şifrelerini de öğrenebiliriz bunun için iki farklı dosyaya ihtiyacımız var /etc/shadow ve /etc/passwd dosyaları. Bu iki dosya da kullanıcılar hakkında bilgi tutar. Bu iki dosyada kullanıcılar hakkında bilgiler olduğu için unshadow komutuyla hem /etc/passwd hem de /etc/shadow dosyalarındaki bilgileri birleştirerek işlem yapabilmemizi sağlar.

Öncelikle bu iki dosyayı unshadow komutuyla birleştirmemiz gerekiyor.

unshadow /etc/shadow /etc/passwd > unshadow.txt

Ortaya çıkan dosya üzerinde algoritma tespiti yaptıktan sonra format parametresini gönderip hash değerimizi kırıyoruz.


John the Ripper'da bulunan "single crack mode", genellikle en hızlı ve basit parola kırma yöntemlerinden biridir. Bu mod, kullanıcının adını ve diğer mevcut bilgileri kullanarak basit parolaları kırmayı amaçlar. Bu yöntem, özellikle zayıf ve tahmin edilebilir parolalar için çok etkilidir.

Elimde joker kullanıcısına ait böyle bir hash var. Format olarak kullanıcı bilgisi:hash şeklindedir.

Çözüm yöntemi için şöyle bir yöntem izlenir. Kişi bilgilerinde bulunan karakterler farklı şekillerde yazılır. Örneğin:

Joker , JoKer , j0ker

Öncelikle hangi hash algoritmasını kullandığını öğrenmek için john --single hash.txt kodunu yazıyoruz.

Md5 algoritması kullanıyor. Format değeri belirtirken Raw-MD5 şeklinde belirteceğimizi daha önce görmüştük.

john --single --format=Raw-MD5 hash.txt

Orjinel değere ulaşıyoruz.


John aracıyla Zip dosyalarının şifrelerini de kırabiliriz. Öncelikle zip dosyası Jonh aracının anlayabileceği formata dönüştürmemiz lazım. Bunun için zip2john aracını kullanacağız.

zip2john <zipDosya> > <txtDosya>

Herhangi bir format bildirmeden wordlist değerimizi vererek şifreyi kırabiliyoruz.

Aynı şekilde RAR dosyalarını da John the Ripper ile kırabiliriz. Jonh aracının içeriği anlayabilmesi için bu sefer rar2john aracını kullanacağız çıktı üzerinde aynı işlemleri yapıp kıracağız.

Örnek olması amacıyla bir tane de SSH hash değerini elde edeceğiz. Öncelikle elimizde id_rsa_1605800988509.id_rsa adında bir dosya var. Bu dosyayı öncelikle John aracının anlayacağı şekle getirmemiz gerekiyor. Sonrasında wordlist ve dosyayı vererek şifreyi çözebiliriz.

John the Ripper aracı kendi içinde hash algoritmasını tespit etme özelliğine sahiptir. Bazı durumlarda John the Ripper aracı hash algortimasını tespit edemeyebilir. Bu durumda denilen siteler kullanılır.

İkinci bir örnek olaraksa elimizde şöyle bir hash değeri var. 1A732667F3917C0F4AA98BB13011B9090C6F8065 örnek olması açısından bu hash değerinin kullandığı algoritma yöntemini sitesinden tespit edeceğim.

sitesinden baktığımızda da şöyle bir sonuç çıkıyor.

🚩
Hash Identifier
Hashes
Hashes
https://www.md5hashgenerator.com/