7 Şubat 2021 Pazar

John the Ripper ile Şifre Kırmak


 

JOHN THE RIPPER ARACIYLA ŞİFRE KIRMAK 


John The Ripper, açık kaynak ve ücretsiz bir şifre kırma aracı. Her ne kadar Unix için çıkmış olsa da artık Windows, DOS, BeOS, OpenVMS ve Unix benzeri işletim sistemleri dahil çok sayıda farklı platformda kullanılabiliyor. 

İlk çıkış amacı zayıf parola yapılandırmalarını tespit etmekmiş ancak günümüzde kullanım amacı şifre kırmak ve bu konuda en bilinen, en sık kullanılan araç olduğu da söylenebilir.

Çoğunlukla hemen hemen her şifreyi kırabilen, her derde deva bir araç olarak görüldüğünden de çok sık karşıma çıkıyor.

Eğer JtR'yi çıkartan OpenWall sayfasına göz atmak isterseniz https://www.openwall.com/john/ adresinden ulaşabilirsiniz.

John the Ripper'ın ne olduğunu anladığımıza göre sıra nasıl yükleneceğine bakmakta.

John the Ripper Nasıl Yüklenir?

Linux terminalinizi açın ve aşağıdaki komutu yazın:

sudo apt-get install john -y

Yükleme bittikten sonra john yazıp enter tuşuna basarsanız hangi versiyonu kullandığınızı ve hangi dizin altına kaydedildiğini görebilirsiniz:

root@sparta:/home/sinem# john
Created directory: /root/.john
John the Ripper 1.9.0-jumbo-1 [linux-gnu 64-bit x86_64 AVX2 AC]
Copyright (c) 1996-2019 by Solar Designer and others
Homepage: http://www.openwall.com/john/

Ayrıca nasıl kullanılacağı ve beraberinde girilebilecek opsiyonlar da altında sıralanıyor:


Basit görünüyor: john [OPTIONS] [PASSWORD-FILES] ancak çok sayıda opsiyon seçilebileceğini de listede görebiliyoruz.

Şifre kırma saldırı türleri:

1. Brute-force yani kaba kuvvet saldırıları: 
Bu saldırı türünde her harf, sayı ve özel karakter kombinasyonu sırayla denenerek şifre tahmin edilmeye çalışılıyor. Aşırı derecede yavaş ve uzun süren bir süreç olmakla birlikte etkili bir yöntem olarak biliniyor.

2. Dictionary yani sözlük kullanmak:
Bu saldırı tipinde genellikle daha önce veri ihlallerinde yer almış olan ve kullanılmış/sık kullanılan şifreler içeren dosyalar üzerinden deneme yapılıyor. Gerçek hayatta bu saldırı tipini kullanarak şifre kırmak çok zor ancak eğer TryHackMe ya da HackTheBox tarzı yerlerde CTF çözmeye çalışıyorsanız faydalı olabiliyor.

3. Rainbow table yani tablo kullanmak (bu tablolara neden gökkuşağı dendiğini bilmiyorum):
Gökkuşağı tabloları adını verdikleri bu tablolar içerisinde önceden hesaplanmış (pre-computed) hashler bulunuyor. Tabloların belirtilen bir algoritma için mümkün olan tüm hashleri barındırması üzerine kurulu bir saldırı tipi. Parola kırmaya ya da hashi çözmek yerine elinizdeki hash ile tabloda arama yapılıyor. Bu yöntemin ciddi şekilde işlemci gücü gerektirdiği konusunda uyarılar mevcut.

JtR varsayılan olarak "single" (tekli), ardından "wordlist" (kelime listesi) ve son olarak "incremental" (artımlı) modlarda şifre kırmayı deniyor. (Mod = JtR'nin parolaları kırmak için kullandığı bir yöntemler)

Ayrıca kendinize ait bir kelime listesi dosyası seçebilir veya şifrelerdeki tüm olası permütasyonları deneyerek John The Ripper ile brute-force saldırısı deneyebilirsiniz. 

Şunu unutmamak gerekiyor ki bu parola kırma denemeleri özellikle de evlerde kullandığımız bilgisayarlarda günlerce sürebiliyor. TryHackMe'de denediklerim bu kadar uzun sürmedi ancak yine de sabır gerektiren bir süreç olduğunu hatırlamakta fayda var.

Eğer durdurmak ya da çıkmak isterseniz q tuşuna ya da Ctrl + C tuşuna basmak  gerekiyor.

JtR şifreyi bulduğunda terminalde görüntüleniyor ayrıca kırılan tüm şifreler
~ / .john / john.pot
adlı bir dosyaya kaydediliyor. (Şifreler [HASH]: <pass> formatında görüntüleniyor.)

Bir deneme yapalım:


Yukarıdaki resimde görülebileceği gibi bir adet jtr.hash dosyası oluşturdum ve içerisine bd9059497b4af2bb913a8522747af2de şeklinde bir MD5 parola hashini kaydettim.


Bu çok kolay bir örnekti ve parola emerald olarak terminalde görülebiliyor.
(Örneği biraz değiştirerek https://linuxhint.com/john_ripper_ubuntu/ kaynağından aldım. Sayfada verilen örnekte hash'in başına admin: yazılarak kullanıcı adı da belirtilmişti)

Buarada eğer hash formatını bilmiyorsanız hash-identifier aracı bu konuda yardımcı oluyor:

 

Eğer daha sonra bulduğumuz parolayı yeniden görüntülemek istersek aşağıdaki komutu kullanabiliyoruz:

john jtr.hash --format=Raw-MD5 --show


Kullanıcı adı belirtmediğim için ?:emerald olarak çıkıyor aksi halde ? yerinde kullanıcı adı da yazıyor olacaktı.

Bu defa kullanıcı adı ile birlikte farklı bir deneme yapalım:

Yeni bir dosya kaydedeceğim ve bu dosyanın adını jtr2.hash koyacağım. İlk örnekten farklı olarak <user>:<hash> şeklinde veri kaydedeceğim:


sinem:AZl.zWwxIh15Q şeklinde yazdığım hash'i jtr2.hash dosyasına kaydettim.

Bu kaydetmiş olduğum hash formatı DES: 


Hiçbir opsiyon belirtmeden sadece john jtr2.hash komutu ile çalıştırıyorum:



Parolanın example olduğu yukarıda görülebiliyor.

Daha önce kırılan bir parolayı yeniden görüntülemek: 

john --show jtr2.hash komutuyla ise istendiğinde yeniden görüntülemek mümkün:

Belirli bir kullanıcıya ait parolayı bulmak:

Eğer belirli bir kullanıcı ya da root kullanıcısına ait parola kırılmış mı diye kontrol etmek istersek bunu da user id kullanarak yani UID ile kontrol edebiliriz:

john --show --users=0 jtr2.hash

(Users yerine groups yazarak aynısını GUID ile de yapabilir ve belirli bir gruba göre de filtreleme  yapabiliriz.)

JtR'yi Wordlist ile kullanmak:

3 tip saldırı var demiştik, eğer wordlist (kelime listesi) kullanıyorsanız bu durumda Dictionary attack (sözlük saldırısı diyebiliriz sanırım) gerçekleştirmiş oluyorsunuz. 

Wordlist'ler içerisinde de en sık kullanılan ve en iyi sonuç verdiği bilinen rockyou.txt normalde /usr/share/wordlists/ altında bulunabiliyor. Eğer yoksa buradan indirebilirsiniz. (Dosya zipli olarak indiği için tar ya da gzip benzeri bir araç ile unzip etmeniz gerekiyor.)

JtR'yi wordlist modunda kullanmak istiyorsak aşağıdaki komut ile mümkün oluyor:

john --wordlist=passwd.lst jtr2.hash

Elbette --wordlist flag'den sonra farklı wordlistler seçmek ve kullanmak da mümkün, örneğin en sık kullanılan rockyou.txt ile çalışsın istiyorsak /usr/share/wordlists/rockyou.txt şeklinde dosya yolunu da belirterek çalıştırabiliriz.

JtR'yi incremental mode ile kullanmak:

En başta bahsetmiş olduğum incremental (artırımlı ya da artımlı) mod ile kullanmak için ise aşağıdaki komut kullanılabilir:

john --incremental jtr2.hash

JtR için gerekli hash formatı:

JtR için bilinmesi gereken önemli bir konu parolaları kırabilmesi için belirli bir formatta olması gerektiği. 

Çeşitli dosya türlerini JtR uyumlu saldırı dosyalarına dönüştürmek için birçok farklı dönüştürme aracı var ve bunları locate *2john komutuyla görüntüleyebiliriz:



Yine konu aşırı uzadığından John The Ripper ile SSH anahtarlarını kırmak adlı farklı bir yazıda görüşmek üzere diyerek bu yazıyı burada sonlandırıyorum...


Faydalandığım kaynaklar:

https://linuxhint.com/john_ripper_ubuntu/

https://linuxconfig.org/password-cracking-with-john-the-ripper-on-linux

https://www.varonis.com/blog/john-the-ripper/

https://www.openwall.com/john/

https://null-byte.wonderhowto.com/how-to/crack-ssh-private-key-passwords-with-john-ripper-0302810/

Hiç yorum yok:

Yorum Gönder

John the Ripper ile Şifre Kırmak

  JOHN THE RIPPER ARACIYLA ŞİFRE KIRMAK  John The Ripper, açık kaynak ve ücretsiz bir şifre kırma aracı. Her ne kadar Unix için çıkmış ols...