John the Ripper

John The Ripper nedir?

John the Ripper, C programlama dili ile yazılmış açık kaynak bir parola çözme aracıdır. Başlangıçta Unix işletim sistemi için geliştirilen bu araç, şimdi 15 farklı platformda çalışmaktadır. Parola çözücüleri tek paket içinde bir araya getiren, parola test eden ve çözen en popüler araçlardan biridir.

John The Ripper

John The Ripper Aracının Teknik Özellikleri

John the Ripper, hem zengin özelliklere sahip hem de hızlı olacak şekilde tasarlandı. Çeşitli kırma modlarını tek bir programda birleştirir ve özel ihtiyaçlarınıza göre tamamen yapılandırılabilir bir çalışma mantığı vardır.

John the Ripper, aşağıdaki Unix crypt(3) karma türlerini destekler:

  1. Geleneksel DES tabanlı

  2. Bigcrypt

  3. BSDI uzatılmış DES tabanlı

  4. FreeBSD MD5 tabanlı (Linux'ta ve Cisco IOS'ta da kullanılır)

  5. OpenBSD Blowfish tabanlı (bazı Linux dağıtımlarında ve güncel Solaris sürümlerinde desteklenir)

Ayrıca desteklenen diğer şifreleme türleri:

  1. Kerberos/AFS

  2. Windows LM (DES tabanlı)

  3. DES tabanlı tripcodes

  • John the Ripper genellikle kıracağı hash türünü otomatik olarak algılar. Ancak algılamadığı durumlarda kullanıcı tarafından --format parametresiyle dosya türü verilmelidir. Örneğin: --format=pdf

  • Çeşitli platformlarda (Unix, Linux, Windows, macOS gibi) çalışabilir.

  • Çeşitli parola kırma tekniklerini içerir:

    • brute force (kaba kuvvet)

    • dictionary (sözlük tabanlı)

    • hibrit saldırılar

Yasal Uyarı: John the Ripper, parola kırma işlemleri gibi yasal ve etik sınırların aşılmasına neden olabilecek bir yazılımdır. Kullanımı yalnızca yasal ve etik sınırlar içinde gerçekleştirilmelidir. Aksi takdirde yasal sonuçları olabilir.


John the Ripper (JTR) ile hangi saldırılar yapılabilir?

Brute Force Saldırıları

Bu saldırı türünde, tüm olası kombinasyonlar yani her bir karakterin tüm olası değerleri denetlenir. Bu yöntem en temel ve en genel parola kırma yöntemidir. Ancak oldukça zaman alıcı olabilir.

Dictionary Saldırıları

Bu saldırı türünde John the Ripper, bir wordlist (sözlük) adı verilen bir dosyadaki kelimeleri veya parolaları kullanarak hash'i kırmaya çalışır. Wordlist, potansiyel parolaların bir listesini içerir. JTR, wordlist'teki her kelimeyi sırayla hash fonksiyonuna sokar ve elde edilen hash ile hedef hash'i karşılaştırır. Eğer eşleşen bir hash bulunursa parola bulunmuş olur.

Eğer belirli bir saldırı yöntemi belirtmediyseniz, JTR genellikle varsayılan olarak sözlük saldırısını kullanacaktır. Eğer başka bir saldırı yöntemi kullanmak istiyorsanız bunu belirtmeniz gerekecektir. Örneğin; "kaba kuvvet saldırısı" veya "hibrit saldırı" gibi.

Rainbow Table Saldırıları

Bu saldırı türünde, önceden hesaplanmış karma parola çiftleri içeren bir veritabanı olan rainbow table kullanılır. Bu tablo, hızlı bir şekilde parolaları geri çözebilir. Ancak güvenlik önlemleri genellikle bu tür saldırılara karşı korunur.

John the Ripper'ın kullanabileceği yaygın saldırı türleridir. Ancak daha fazla teknik ve özelleştirilmiş saldırı türleri de mümkündür.


John The Ripper Kullanımı

Genel olarak bahsettiğimize göre kullanımından ve örnek saldırılardan bahsedelim.

-h parametresi ile JohnTheRipper üzerinde kullanabileceğimiz parametreleri görebiliyoruz.

Kullanacağımız yönteme göre çeşitli parametreler JohnTheRipper'da bulunmaktadır.

John The Ripper yardım komutu

John The Ripper ile şifreli zip dosyası kırma

Zip dosyası oluşturma ve şifreleme işlemi

Öncelikle şifreli bir zip dosyası oluşturuyoruz. Oluşturmak için -e ve -r parametreleri ile birlikte bir zip dosyası adı ve içine koymak istediğimiz dosyanın adını (önceden oluşturduğumuz) veriyoruz.

Aşağıda örnek olarak şifreli zip dosyası oluşturma verilmiştir.

Ben oluşturduğum user.txt şifremi yusufnas olarak belirledim.

yusufnas parolasına sahip şifreli zip oluşturma komutu

Şifreli Zip Dosyasını kırmak için hash alma

JohnTheRipper'da zip dosyasına özel kullandığımız zip2john ile zip dosyası içindeki veri dosyasının (user.txt) hash değerini almakla ilk adıma başlıyoruz.

Hash değerini almak için kullanım zip2john "şifreli dosyayı bulunduran zip" > "hash değerinin saklanacağı dosya"

zip2john yusufnas.zip > zip.hash komutu ile hash değerini alıyoruz.

Zip dosyasının hash'ini alan komut

Hash değeri

Hash Değeri

Son aşama

Aldığımız hash değeri ile birlikte artık şifre kırmaya hazırız. john "hash dosyası" komutu ile şifre kırma işlemini başlatıyoruz. İşlem bittikten sonra aşağıdaki görselde gösterildiği gibi şifremiz bulunmuş bir şekilde ekranda yazıyor.

John, bu parolayı yukarıda bahsettiğimiz Sözlük Saldırısı yöntemiyle bulmuştur.

Parola: yusufnas

Parola bulundu

John The Ripper ile Kullanıcıların şifresini kırma

John The Ripper'ın kullanım alanı oldukça geniştir. Önceki örnekten farklı olarak bu sefer linux üzerinde bir kullanıcı oluşturacağız ve bunun şifresini kırmayı deneyeceğiz.

Kullanıcı oluşturma ve şifre belirleme

Öncelikle bir kullanıcı oluşturuyoruz ve şifresini belirliyoruz.

useradd -r "kullanıcı adi" ile kullanıcımızı oluşturduktan sonra passwd "kullanıcı adı" ile kullanıcımıza bir parola belirliyoruz.

Kullanıcı adı: sibervatan Parola: sibervatan

Kullanıcı oluşturma ve parola belirleme komutları

Oluşturduğumuz kullanıcının parolasını kırmak için kullanıcıların bulunduğu /etc/shadow dosyasına bir saldırı yapacağız.

Kullanım: john "dosya dizini" "şifre kırma formatı"

etc dizininde bulunduğum için john shadow --format=crypt komutu ile saldırıyı başlatıyorum. John The Ripper, kullanıcıları belirleyip hashlenmiş parolalarını verdiğiniz format yöntemine göre kendi algoritmasıyla bir saldırıda bulunuyor ve kullanıcı parolalarını ekrana yazdırıyor.

John bu şifreyi yukarıda bahsettiğimiz Sözlük Saldırısı yöntemiyle bulmuştur.

sibervatan kullanıcısı ve parolası (soldaki parola sağdaki kullanıcı adı) olarak ekrana yazdırılıyor.

User şifresini bulma

John The Ripper ile PDF şifresi kırma

John The Ripper ile pdf şifrelerini de şifrenin uzunluğuna ve karmaşıklığına göre belirli bir süre içerisinde kırabiliyoruz. Önce şifreli bir pdf dosyası oluşturalım.

Ben hazırda bulunan yusuf.pdf dosyamın adını belge-sifreli.pdf olarak değiştirip şifresini root olarak belirliyorum.

Şifreli pdf oluşturma komutu

Oluşturduğum belge-sifreli.pdf dosyasının şifresinin hash değerini **pdfhash.txt'**ye atıyorum. Bu işlemi yaparken pdf2john'u kullanıyoruz.

Görüldüğü üzere pdfhash.txt masaüstünde oluşturuldu ve pdf dosyasının şifresinin hash değeri içine aktarıldı.

Son aşamada elde ettiğimiz hash değerini çözümlemeye çalışacağız. Bu sefer pdf dosyası kullandığımız için formatı pdf olarak veriyor ve pdfhash.txt içeriğini john aracı ile çözmeye çalışıyoruz.

John, bu parolayı yukarıda bahsettiğimiz Sözlük Saldırısı yöntemiyle bulmuştur.

24s sonra parola değeri root olarak bulunuyor.

Bu yazımda John The Ripper ile yapabileceğiniz zip ve kullanıcı parolasını kırma yöntemlerini anlattım. Çeşitli birçok şifre kırma saldırısını John The Ripper üzerinden yapabilirsiniz. Kafanıza takılan, anlamadığınız veya çözemediğiniz bir kısım olursa bana Github üzerindeki sosyal medya hesaplarımdan ulaşabilirsiniz.

Kaynaklar

Last updated