John the Ripper Kurulumu ve Kullanımı - Hacker Adana Blog

Başkalarının yolunda yürüyenler ayak izi bırakamazlar!

Post Top Ad

27 Haziran 2018

John the Ripper Kurulumu ve Kullanımı


Merhaba dost,
Hash'leri kırman için kullanabileceğin en iyi güvenlik araçlarından biri olan John the Ripper, çapraz platform destekli ve açık kaynak kodlu.

Bu araç ile onlarca şifreleme ve karma formatlarını kırabilir/çatlatabilirsin.

Hashcat Kurulumu

1. Zahmetsiz Kurulum

Hapentool 0.14~rc2 sürümüyle birlikte, Parola Saldırı Araçları kategorisine John aracını ekledik.
Hapentool aracınızı --guncelle parametresi ile güncelledikten sonra aşağıdaki komutu çalıştırarak John aracını kurabilirsin. Hapentool hakkında detaylı bilgi için tıklayabilirsin.
sudo ./hapentool.py --kur john

2. Zahmetli Kurulum

Aşağıdaki komutları sırasıyla uçbirimde çalıştır.
git clone https://github.com/magnumripper/JohnTheRipper.git
cd JohnTheRipper/src
./configure
make
John the Ripper aracı, bir üst dizindeki run dizininde. Bu dizini silersen John aracını çalıştıramazsın.

Başlamadan Önce

Eğer kurulumu Hapentool ile değilde elle yaptıysan john yerine ./john kullanmalısın

John aracını kullanabilmen için, hash(karma) içeren bir dosyaya ihtiyacın var. Aşağıdaki komutu uçbirimde çalıştırarak yazımın ilerleyen satırlarında kullanacağım karma dosyasını oluştur. Dosyada iki adet MD5 karmasından oluşacak.

echo 'root:4ef3eb850fdc82a7a94808f142f11b1c\njack:7b24afc8bc80e548d66c4e7ff72171c5' > $HOME/md5-hash.lst
MD5 oldukça eski bir karma yöntemi ve hemen hemen tüm Web siteleri veritabanında MD5 kullanıyor. Keza MD5 bir çok donanımda nispeten daha çabuk kırılıyor.

Yukarıdaki komut ile, ev dizininde md5-hash.lst adında bir dosya oluşturdun. Genelde John aracını tanıtanlar hash dosyası için /etc/shadow yada /etc/passwd dosyasını kullanıyor. Bu dosyalardan da bahsedeceğim sana.

Hashcat Kullanımı

Temel sözdizimi aşağıdaki gibidir.
john options hash-file
  • options:  --format, --wordlist, --single gibi parametreleri kullanacağın alan burası.
  • hash-file: Hash'ları içeren dosyanın konumu bu alana yazmalısın.

--list parametresi: Başlangıç için gereksiz bir parametre olduğu konusunda hemfikiriz. Ancak bu parametre John aracının desteklediği formatları sana gösteriyor. Az sonra sana --format parametresinden bahsedince neden bununla başladığımı anlayacaksın.
john --list=formats
Komutu çalıştırdığında aşağıdaki çıktıyı alacaksın.

Çıktıda doğru görüyorsun. Gpg, Blockchain, Bitcoin, KeePass, ZIP gibi formatları da destekliyor. MD5 kıracağımız için buradan MD5'i bulmalısın. Raw-MD5 şeklinde geçmiş. Bazı formatları kullanabilmen için hash değerini dönüştürmen gerekiyor. Bu işlemi de John ile gelen araçlarla yapıyoruz. Bunlardan sonraki yazılarımızda bahsedeceğiz.


--format parametresi: Bu parametre ile hash dosyasındaki formatı belirleyeceksin. Yukarıda MD5'i Raw-MD5 olarak bulmuştun. --format parametresinin son şekli şöyle olmalı:
--format=Raw-MD5


--single parametresi: Kullanıcı adına yakın tahminlerde bulunur.
Sana şöyle bir örnek vereyim. Beni herkes, Hacker Adana'da Joe olarak bilir. Parolamı: ismim-doğum tarihim yada doğum tarihim-ismim şeklinde koymuş olabilirim. Ki en çok kullanılan parolalar bu şekilde. Hadi bu mod ile hash dosyamızı beraber kırmaya çalışalım.
john --single --format=Raw-MD5 $HOME/hash-file.lst
Biraz bekledikten sonra aşağıdaki çıktıyı alacaksın.
Sonuca ulaştık. Jack kullanıcısı toor şeklinde. Root ise root1990 şeklinde şifre koymuş. Bu iki kullanıcı ya aptal yada bilgisiz. Zira böyle bir parola koymak mantık işi değil.

Çıktıda 2 parametre gördün. Farketmişsindir herhalde?

--fork parametresi: CPU ve GPU çekirdeğini belirliyorsun bu parametre ile. 4 çekirdekli bir işlemcin varsa John aracı varsayılan olarak tek bir çekirdeği kullanacaktır. Bu da tek çekirdekle daha yavaş tahmin yapacağın anlamına gelir. --fork parametresinin son şekli şöyle olmalı.
--fork=2

--show parametresi: Kırılmış hashleri görüntülemek için bu parametreyi kullanırsın.
john --format=Raw-MD5 $HOME/hash-file.lst --show
Komutta bir yere dikkat etmen gerekiyor. --single parametresini kullanmadım, --format ve hash dosyasını kullandım.

incremental parametresine geçmeden önce şu komutu uçbirimde çalıştır. Eğer çalıştırmazsan izh ghan niğt diyeceksin. Komm und sprich Deutsch ;)
Kurulumu hapentool ile yaptıysan şu komutu:
sudo rm -rf /opt/HackerAdana/JohnTheRipper/run/john.pot
Kurulumu elle yaptıysan, yani zahmetli kurulum. John dizini altında şu komutu:
sudo rm -rf run/john.pot

--incremental parametresi: En güçlü ve en zaman gerektiren saldırı yöntemidir; zira tüm olası parola kombinasyonlarını dener. 5 Farklı saldırı modu var:
  • digits : 0-9 arası rakamlar
  • alpha : Yalnızca harfler
  • lanman : Harf ve rakamlar
  • ASCII : Özel karakterler
  • all : Tüm karakterler
--incremental parametresinin son şekli şöyle olmalı.
--incremental:all


--users parametresi: Hash dosyanın içindeki kullanıcıyı seçiyorsun bu parametre ile. --incremental parametresiyle birlikte dene hadi.
john --format=Raw-MD5 --incremental:alpha --users:jack $HOME/hash-file.lst
incremental:alpha diyerek sadece harfleri denemesini istedin. --users:jack ile hash dosyası içindeki Jack kullanıcısını seçtin.

Jack kullanıcısının şifresini daha önce bulmuştun, toor olduğunu bildiğimiz için sadece harfleri denedin yukarıdaki komut ile. Aynı komutu root kullanıcısı için çalıştırırsan yıllar geçsede parolayı bulamazsın. Zira içerisinde rakam var ve sen, sadece harfleri denemesini istersin.


Bir sonraki parametreye geçmeden önce şu parolaların saklandığı .pot dosyasını tekrar sil. Yukarıda komutu vermiştim.


--wordlist parametresi: Sözcük listesi içindeki kelimelerin denendiği mod. Wordlist hakkında bilgin yoksa burayı incele. Bağlantıda nasıl wordlist oluşturabileceğini anlattık.

Bu parametreyi incremental ve single modları ile birlikte kullanamazsın. Son hali aşağıdaki gibi olmalı.

john --format=Raw-MD5 --wordlist=/WORDLIST/DOSYASININ/YOLU-UZANTISI hash-dosyası-yolu

John ile birlikte en çok kullanılan parolaların saklandığı bir wordlist dosyası gelir. --wordlist yerine -w:password.lst kullanarak en çok kullanılan parolaları deneyebilirsin.


Diğer parametreleri anlatma gereği duymuyorum.

/etc/shadow ve /etc/passwd dosyalarından bahsedeyim. Bu dosyada kullanıcıların ve grupların parolaları saklanır. Bu dosyanın içeriğini şu komut ile görebilirsin:

sudo cat /etc/shadow /etc/passwd

Çıktının içinden oturum açtığın kullanıcı adını bul. Benimki şu şekilde.

Joe:$6$pGABfI5u$74g0oqVgRKnMnStetFhOTa49NjdEMkSasoHaqLsVZ.hegijfSilgvSjJxKiyft8aw23a.VBkinlCKfGr

Renklendirme ile sana anlatacağım.
Kırmızı kısım: oturum açtığım kullanıcının adı.
Mavi Kısım: Kullanılan algoritmanın belirildiği alan.
$1$ : MD5
$2$ ve $2a$ : Blowfish
$5$ : SHA256
$6$ : SHA512
Yeşil Kısım: Salt değeri.
Turuncu Kısım: Hash

Hapentool ile kurulumu yaptıysan aşağıdaki komut ile John dizinine geç. Pentest dağıtımının birisini kullanıyorsan ikinci komutu çalıştırmalısın. Kurulumu elle yaptıysan üçüncü komutu John dizini altında çalıştır.
cd /opt/HackerAdana/JohnTheRipper/run
cd /pentest/passwords/john
cd run/
Her kurulum yönteminde de aynı komutu çalıştırıyorum.
unshadow aracını kullanarak yukarıda bahsettiğim dosyayı birleştiriyorum.
./unshadow /etc/shadow /etc/passwd > $HOME/password.db
Ardından John ile saldırıyı başlatıyorum.
john $HOME/password.db

ZIP, Bitcoin, Keepass, GPG gibi metodları kırmak istersen az önce geçtiğimiz dizindeki araçlar ile hash dönüştürmen gerekiyor. John ile ilgili sonraki yazılarımda bunlara değineceğim.

Sorun yaşarsan yada bir şeyler merak edersen bana mail at HackerAdana@Protonmail.com

Hoşçakal!
#Joe

Post Bottom Ad