Hashcat Kullanımı

Hashcat Nedir?

Hashcat, hashlerin(özetlerin) kırılmasını sağlayan ve açık kaynak olarak geliştirilen araçtır. CPU ve GPU desteği bulunur. Ayrıca Linux, Windows ve macOS gibi işletim sitemlerinde çalıştırabilir. Hashcat içeresinde manual olarak seçebileceğimiz 5 atak tipi bulunur. Bunlar;

  • Dictionary attack
  • Combinator attack
  • Brute-force attack and Mask attack
  • Hybrid attack
  • Association attack

Yazımız da hashcat dictionary ve Brute-force & Mask attack konularına değineceğim.

Hashcat Kurulumu

Linux dağıtımlarında aşağıda ki kurabilirsiniz.

sudo apt install hashcat

Hashcat hızlı bir araç ama ne yazık ki hash türünü henüz tanımlayamıyor. Yani bir crack hash yaparken kırdığımız hash türünü parametre olarak vermemiz gerekiyor.

Hash türünü tespit etmek ya da tanımlamak

Github üzerinde çok fazla araç bulunmaktadır. Hash identifier olarak aratabilirsiniz. Bu araçlar %100 doğrulukta olmasa da genel olarak doğru sonuçlarda hash türünü belirtebilir. Sizin yapmanız sadece hash değerini vermek ve gelen sonucu okumaktır.

Name-That-Hash Kullanımı

Ben nth kullanıyorum. Kurulumu ve kullanımı oldukça basit olan bir araçtır. Python ile geliştirildiği için aşağıda ki gibi kurulabilir.

pip3 install name-that-hash

ya da

pip install name-that-hash

Name-That-Hash ile hash türünü tespit etmek

nth --text C4318372F98F4C46ED3A32C16EE4D7A76C832886D887631C0294B3314F34EDF1

Yüksek ihtimalle sha-256 olduğunu gösteriyor ki bu doğrudur. Kendim sha-256 genaretor kullanarak bu özeti oluşturmuştum.

Hashcat için önemli parametreler

Aşağıda ki yardım komutu ile ilgili açıklamaları görebiliriz. Hedeflediğim yazıdan dolayı Straight(Dictionary) ve Brute-force saldıların örneklerini göstereceğim.

hashcat --help

# | Mode
===+======
0 | Straight
1 | Combination
3 | Brute-force
6 | Hybrid Wordlist + Mask
7 | Hybrid Mask + Wordlist

Bu ataklardan seçtiğimiz mod bu şekilde belirtilir. -a 0 olacaktır. Yani atak modunu Straight seçmiş oluruz.

a parametresi atak modu içindir.

Hash modları

Verdiğimiz hash türünü belirttiğimiz hash kodudur. Örnek vermek gerekirse, SHA2-256 için -m 1400 verilir. Bu hash kodlarını –help ile ya da https://hashcat.net/wiki/doku.php?id=example_hashes adresinde bulabilirsiniz. Burada bilmemiz gereken -m parametresinin hash türünü alır.

Hashcat Dictiornay Saldırısı

Ufak bir hatırlatmak gerekirse, wordlist üzerinde bulunan tüm kelimeleri deneyerek yapılan atak türüdür.

Hash tipi tespit edilir. Burada hash(özet) değerimizi bir dosya içeresinde verdik. Siz isterseniz –text parametresi ile CLI doğrudan verebilirsiniz.

nth --file hash.txt
hash türünü tespit etmek

bycrypt hash türü olduğu görülür. Şimdi bunun için hash koduna bakalım. Ayrıca hashcat codunu resimde 3200 olarak göstermektedir.

Buradan tipini bulduğumuz hash türünden bağımsızdır. Yani; sha2 ya da md5 de olabilir. Bunlara karşı atak senaryo ve kullanımları aynı olacaktır. Sadece bizim hash kodunu doğru vermemiz gerekir.

Daha önceden el ile oluşturduğum basit bir wordlist.txt bulunmaktadır. Bununla beraber saldırıyı gerçekleştireceğim.

hashcat -a 0 -m 3200 hash.txt wordlist.txt
hashcat ile dictionary saldırısı
Hash crack with Hashcat

Görüldüğü üzere şifremiz Fenerbahçe1905’dir

Hashcat Kural Bazlı Saldırılar

Detaylı bilgi için https://hashcat.net/wiki/doku.php?id=rule_based_attack adresinden yararlanabilirsiniz.

Peki neden kural bazlı saldırıya ihtiyaç duyulur ?

Örnek ile anlatmak gerekirse elimizde ki wordlist şu şekilde olsun.

asimM
asimmisirli
misirliasim
asimmisirli.com
www.asimmmisili
fenerbahçe1907
hashcat101
131ASDzxczx
a12122
aa123456
gNU-best

Hashcat rule based attack için kurallar dosya içeresine yazılır. Örnek olarak kullandığım kurallar;

Wordlist içeresinde bulunan asimM için şu şekilde olacaktır

: ifadesi, hiç bir şey yapmadan devam edecektir.

asimM

l ifadesi, tüm harfleri lower yapacaktır.

asimm

u ifadesi, tüm harfleri upper yapacaktır.

ASIMM

c ifadesi, İlk harfi büyük ve geri kalanı lower yapacaktır.

Asimm

Oluşturduğumuz kural dosyası sayesinde saldırı yöntemimiz zengin hale gelecektir.

Örnek saldırıda hashcat eğer kural vermeseydik oluşturulan sözlük ifadelerine bakıp doğru hash değerini bulamayacaktı. Bizim verdiğimiz kurallar sayesinde ek olarak sözlüğü 4 katına çıkarmış olduk.

Hashcat rule based attack

hashcat -a 0 -m 1400 -r rules.txt hash.txt wordlist.txt
hashcat rule kullanımı
Hashcat rule based attack

İşlemimiz başarılı,şifremiz Asimm olarak bulundu.

Hashcat Mask Attack Kullanımı

Detaylı açıklamayı https://hashcat.net/wiki/doku.php?id=mask_attack adresinden bulabilirsiniz. Elimizde önceden oluşturmadığımız wordlist dosyası olmadan yaptığımız saldırı çeşididir. Burada ki pattern oluşturmamız gerekir. Örnek bazı ifadeler şu şekildedir;

?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?h = 0123456789abcdef
?H = 0123456789ABCDEF
?s = «space»!”#$%&'()*+,-./:;<=>?@[]^_`{|}~
?a = ?l?u?d?s
?b = 0x00 – 0xff

hash101 ifadesi için, ?l?l?l?l?d?d?d gibi olur.

Burada -a parameteresi için değerimiz 3 olacaktır. Artık dictionary saldırısı gerçekleştirmiyoruz.

hashcat -a 3 -m 0 hash.txt ?l?l?l?l?l?l?l?d?d?d

İlk 4 karakter için sadece küçük harfleri deneyecek ve son 3 karakter için rakamları deneyecektir. Daha önceden iyi bir analiz yaptıysak bu yöntem ile daha hızlı sonuçlara ulaşabiliriz.

Hashcat mask attack

Leave a Reply

Your email address will not be published. Required fields are marked *