# 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.

<figure><img src="/files/Ua2WAqNc0J3arm3c3L5F" alt=""><figcaption><p>John The Ripper</p></figcaption></figure>

***

## 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

{% hint style="warning" %}
**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.
{% endhint %}

***

## 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ı <a href="#dictionary-saldirilari" id="dictionary-saldirilari"></a>

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.

<figure><img src="/files/D4H6B7cDNus80bz9LtN0" alt=""><figcaption><p>John The Ripper yardım komutu</p></figcaption></figure>

## 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.

<figure><img src="/files/JjJeJZ81VGnzb7KR58tn" alt=""><figcaption><p>yusufnas parolasına sahip şifreli zip oluşturma komutu</p></figcaption></figure>

### Ş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.

<figure><img src="/files/TU82uuQv1JWbxzBcBv0a" alt=""><figcaption><p>Zip dosyasının hash'ini alan komut</p></figcaption></figure>

#### Hash değeri

<figure><img src="/files/wlpfkS7tSP4ngGeopqDi" alt=""><figcaption><p>Hash Değeri</p></figcaption></figure>

### 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ı](#dictionary-saldirilari) yöntemiyle bulmuştur.

Parola: yusufnas

<figure><img src="/files/6dtprSOyB34vOLcox7vU" alt=""><figcaption><p>Parola bulundu</p></figcaption></figure>

***

## 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

<figure><img src="/files/EemCiEzSJkHGEhMAh0hR" alt=""><figcaption><p>Kullanıcı oluşturma ve parola belirleme komutları</p></figcaption></figure>

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ı](#dictionary-saldirilari) yöntemiyle bulmuştur.

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

<figure><img src="/files/HvyF10ZaeTlZGWGehh06" alt=""><figcaption><p>User şifresini bulma</p></figcaption></figure>

***

## 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.

<figure><img src="/files/cTgwC6uMRtihbFIMJOlj" alt=""><figcaption><p>Şifreli pdf oluşturma komutu</p></figcaption></figure>

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.

<figure><img src="/files/r4JxnIZNjZBiFwU3nEhP" alt=""><figcaption></figcaption></figure>

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ı](#dictionary-saldirilari) yöntemiyle bulmuştur.

24s sonra parola değeri root olarak bulunuyor.

<figure><img src="/files/HeUwSE7C0vyN3lJuOzNW" alt=""><figcaption></figcaption></figure>

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.

<details>

<summary>Kaynaklar</summary>

<https://sibermetin.com/rar-zip-sifreleri-nasil-kirilir>

<https://serdardasdemir.com/john-the-ripper-jtr-kullanimi-john-the-ripper-nedir-jtr-brute-force/>

</details>

{% embed url="<https://github.com/yyusufnas>" %}
Bu yazı Yusuf Nas tarafından yazılmıştır.
{% endembed %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.yavuzlar.org/araclar/john-the-ripper.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
