
1. Giriş
Hashcat, siber güvenlik uzmanları ve etik hackerlar tarafından kullanılan güçlü bir parola kırma aracıdır. Bu yazıda, Hashcat'in ne olduğunu, nasıl çalıştığını ve siber güvenlik alanında nasıl kullanıldığını inceleyeceğiz.
1.1. Hash Nedir?
Hash, bir veri kümesini algoritma tarafından belirlenen bir formüle tabi tutarak sabit bir uzunluktaki benzersiz bir dizeyi üreten bir matematiksel işlemdir. Özünde, aynı giriş her zaman aynı hash değerini üretir, ancak küçük bir giriş değişikliği dahi büyük bir hash değişikliğiyle sonuçlanır. Bu özellik, hash'in benzersizliği ve güvenilirliğini sağlar.
1.2. Hashcat Nedir?
Hashcat, açık kaynaklı bir parola kırma yazılımıdır. Temel amacı, kriptografik olarak hashlenmiş parolaları çözmek ve güvenlik açıklarını tespit etmektir. Hashcat, farklı hash algoritmalarını destekleyerek çeşitli şifreleme yöntemlerini kırabilme yeteneği sunar. Hashcat, MD5, SHA-1, SHA-256 gibi popüler hash algoritmalarını destekleyeren geniş bir uygulama alanına sahiptir.
2. Çalışma Prensibi
Hashcat, çeşitli saldırı modları kullanarak parola kırma işlemini gerçekleştirir. Brute Forcing (Kaba Kuvvet Saldırısı), Dictionary Attacks (Sözlük Saldırısı), Combination Attack (Kombinasyon Saldırısı) gibi yöntemlerle hash değerlerini çözmeye çalışır. Esnek kullanım imkanı sayesinde farklı senaryolara uyum sağlar.
2.1. Hashcat Kurulum
2.1.1. Windows
Hashcat'in kurulması için tek yapılması gereken Hashcat'in resmi web sitesinden Windows sürümünü indirdikten sonra sıkıştırılmış dosyayı bir klasöre çıkartmaktır.
Ardından, Command Prompt veya PowerShell'i açarak Hashcat'in başarı ile yüklenip yüklenmediği ve sürüm kontrolünü aşağıdaki komutu kullanarak yapabiliriz.
hashcat --version2.1.2. MacOS
Öncelikle terminali açarak Homebrew paket yöneticisi aşağıdaki komut kullanılarak indirilmelidir.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Ardından Hashcat aşağıdaki komut kullanılarak yüklenmelidir.
brew install hashcatHashcat'ın doğru bir şekilde yüklendiği ve çalıştığının kontrolü için aşağıdaki komut kullanılabilir.
hashcat --version2.1.3. Linux
İlk olarak, sistem paketleri güncellenmelidir:
sudo apt-get update
sudo apt-get upgradeHashcat'i indirmek için aşağıdaki komut kullanılmalıdır.
sudo apt-get install hashcatHashcat'in başarı ile yüklenip yüklenmediği ve sürüm kontrolü için aşağıdaki komut kullanılmalıdır.
hashcat --version2.2. Hashcat ve Şifre Kırma Teknikleri
2.2.1. Brute Force
Kaba Kuvvet Saldırısı olarak da bilinen Brute Force şifre kırma yaklaşımı, teknik olarak kolay olmasına karşın dezavantajları mevcuttur. Tüm olası kombinasyonları deneyerek şifre çözmeye çalışır. Bu yöntem, küçük ve basit parolalar için etkili olabilir, ancak büyük ve karmaşık parolalar için çok zaman alıcı olabilir. Örnek verirsek; Türkçe özel karakterlerin çıkarıldığı a-z aralığında ki harflerden ve 0-9 aralığında ki rakamlardan oluşan 5 haneli bir şifre için test edilmesi gereken toplam olasılığın sayısı:
a-z = 26 karakter
0-9 = 10 karakter
(26+10)⁵ = 60.466.176

2.2.2. Dictionary Attacks
Sözlük saldırıları olarak çevrilen Dictionary Attacks, önceden hazırlanmış bir kelime dosyasını kullanarak şifreleri deneyerek çözmeye çalışır. Dictionary Attacks, kullanıcıların yaygın parolaları seçme eğiliminde olduğu durumlar için etkili bir yöntemdir. Yöntemin başarı oranını arttırmak için; kelime dosyasında bulunan içeriklerin birbirleriyle kombinasyonları yapılmalıdır.
Örnek Bir Dictionary Attacks:
Adım 1: Kelime Dosyası Oluşturma - Şahıs, hedefin yapısı ve diline uygun bir sözlük dosyası oluşturur. Bu dosya, yaygın şifreler, kelimeler, marka isimleri, kullanıcı adları ve benzeri öğeleri içerir.
Adım 2: Saldırının Başlatılması - Hashcat, oluşturulan sözlük dosyasını kullanarak hedef sistemin hash'lenmiş parola veritabanındaki her hash değeri için dictionary attack'ı başlatır.
Adım 3: Şifrelerin Çözülmesi - Hashcat, sözlük dosyasındaki her öğeyi deneyerek hash değerini çözmeye çalışır. Eşleşen bir değer bulunduğunda, şahıs başarılı bir şekilde şifreyi çözmüş olur.
Önleme ve Korunma:
Sözlük saldırılarına karşı korunmak için güçlü ve karmaşık şifreler kullanmak önemlidir. Ek olarak sistemlerin parola politikalarını güncellemek, otomatik hesap kilitleme mekanizmaları eklemek ve güvenlik duvarlarıyla saldırıları sınırlamak gibi önlemler alınabilir.

2.2.3. Rainbow Tables
Hash karşılığı bilinen kelimelerin bir listede tutulmasıyla Sözlük Saldırılarına benzerlik göstermektedir. Farkı ise bu saldırı türünde herhangi bir hashing işlemi yapılmamasıdır. Hash kırma çalışmalarının en önemli noktası kısa sürede sonuca ulaşmak olduğu için, kırılması istenen hash; Rainbow tables'da tutulan hashler ile karşılaştırılır. Eğer bir eşlenme gerçekleşir ise bu hash'in karşılığının hangi kelime olduğu Rainbow tables'dan kontrol edilir. Bu sayede herhangi bir hashing işlemi gerçekleşmediğinden süreç çok daha hızlıdır.
Örnek Bir Rainbow Tables Saldırısı:
Adım 1: Rainbow Tables Hazırlama - Şahıs, geniş bir arama alanını kapsayacak şekilde rainbow tables veritabanını önceden hesaplar. Bu tablo, hash değerleri ve karşılık gelen parolaları içerir.
Adım 2: Hedef Hash Değerini Bulma - Hedef hash değeri, önceden hazırlanan rainbow tables içinde aranır. Eğer eşleşen bir değer bulunursa, bu, hedef parolanın bulunduğu anlamına gelir.
Adım 3: Şifrenin Çözülmesi - Eşleşen hash değeri için bulunan parola, hedef sistemin şifresidir. Şahıs, bu parolayı kullanarak sisteme giriş yapabilir.
Önleme ve Korunma:
Rainbow tables saldırılarına karşı korunmak için güçlü ve karmaşık şifreler kullanmak önemlidir. Ayrıca, hash değerlerini güncel ve benzersiz hale getiren tuzlama (salting) yöntemi de kullanılabilir.

2.2.4. Hybrid Attacks
Hybrid Attacks iki veya daha fazla stratejinin birleştirildiği şifre kırma tekniğidir. Genellikle Sözlük ve Kaba Kuvvet saldırılarının kombinasyonudur. Farklı parola kırma stratejilerini birleştiren bu saldırı türü, birden fazla stratejiyi eş zamanlı olarak kullanarak şifreleme algoritmalarını çözmeye çalışır. Rainbow Table'da bahsettiğimiz "salt" uygulamasına karşı başarı gösterebilecek bir hash cracking tekniğidir.
Örnek Bir Hybrid Attacks:
Adım 1: Karakter Kombinasyonları Belirleme - Şahıs, hedef sistemin parola karmaşıklığına uygun karakter kombinasyonlarını belirler. Örneğin, büyük harf, küçük harf, rakam ve özel karakter kombinasyonları.
Adım 2: Saldırı Modlarını Belirleme - Farklı saldırı modlarını belirleyerek, kaba kuvvet saldırısı, sözlük saldırısı ve benzeri stratejileri birleştirir.
Adım 3: Hybrid Attack Başlatma - Hashcat veya benzer bir araç kullanarak belirlenen karakter kombinasyonları ve saldırı modlarını kullanarak şifre çözme sürecini başlatır. Örneğin, önce basit kombinasyonları deneyerek sonra sözlük saldırısına geçer.
Adım 4: Sonuçları Değerlendirme - Hybrid attack sonuçlarını değerlendirir ve başarılı olunan kombinasyonları kaydederek şifreyi çözer.
Önleme ve Korunma:
Hybrid attacks'a karşı korunmak için güçlü ve karmaşık şifreler kullanmak önemlidir. Ek olarak, otomatik hesap kilitleme mekanizmaları eklemek ve şifre politikalarını güncelleyerek de önlem alınabilir.

2.2.5. Mask Attacks
Mask attacks, belirli bir desene dayalı olarak parolaları tahmin etmeye çalışan bir parola kırma stratejisidir. Bu desen, belirli bir karakter setini ve belirli konumları içerebilir. Mask attacks, kaba kuvvet saldırılarına göre daha optimize edilmiş bir yöntem sunar. Çalışma mantığı olarak ufak bir örnek vermek gerekirse bir çok insan şifresinin son hanelerine doğru rakam kullanmakta yahut şifresinin ilk karakteri büyük harfle başlamakta. Mask Attacks ise bu durumu spesifik olarak belirtebildiğimiz pattern'lerden yararlanarak hash cracking işlemlerini gerçekleştirmektedir.
?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?h = 0123456789abcdef
?H = 0123456789ABCDEF
?s = «boşluk»!"#$%&'()*+,-./:;<=>?@[]^_`{|}~
?a = ?l?u?d?s
?b = 0x00-0xff

Peki hangi yöntem seçilmeli? Eğer aynı anda olabildiğince çok hash cracklemek istiyorsanız Hybrid ve Mask ataklar daha fazla başarı gösterecektir. Tek bir hash'e yönelik cracking çalışmalarında ise Dictionary yahut Rainbow tercih etmek sonuca daha hızlı ulaşılabilme ihtimalini arttırır.
3. Hashcat'in Öne Çıkan Özellikleri
- Çeşitli hash algoritmalarını destekleme (MD5, SHA-1, SHA-256 vb.).
- Farklı saldırı modları ile esnek kullanım imkanı.
- GPU ve CPU üzerinde çalışabilme özelliği, yüksek performans sağlar.
- Parola kombinasyonları oluşturarak etkili sözlük saldırıları yapabilme yeteneği.
- Paralel hesaplama yetenekleri ve hızlı hash çözümü ile yüksek performans sağlar.
- Kullanıcılara kendi özel kurallarını tanımlama ve uygulama imkanı sunar.
- Düşük hafıza kullanımı ve hafıza optimizasyonu sayesinde büyük veri tabanlarında etkili performans sergiler.
4. Güvenlik Testleri ve Hashcat
Hashcat, güvenlik testlerinde kullanılarak sistemlerdeki zayıf parolaların tespit edilmesine ve güvenlik açıklarının belirlenmesinde yardımcı olur. Bu, organizasyonların siber güvenliklerini değerlendirmelerine olanak tanır ve potansiyel riskleri önceden tespit edilebilmesini sağlar. Ancak, bu tür araçların yalnızca yasal ve etik sınırlar içinde kullanılması önemlidir.
5. Yasal ve Etik Sorumluluklar
Her güçlü araç gibi, Hashcat'in de yasal ve etik sınırlar içinde kullanılması gereklidir. Yasadışı ve etik olmayan kullanımlardan kaçınılmalıdır. Hashcat'in doğru şekilde kullanılması, güvenlik açıklarını tespit etme ve sistemlerin savunulmasını güçlendirme konusunda önemli bir rol oynar.

5.1. Yasal Sorumluluklar
5.1.1. Yetki ve İzinler
Hashcat veya benzeri araçlarla parola kırma işlemleri sadece sistem sahibinin ya da gerekli izinlere sahip olan kişiler tarafından gerçekleştirilmelidir. Yasal olarak izin alınmadan gerçekleştirilen parola kırma işlemleri suç teşkil edebilir.
5.1.2. Kurum ve Ülke Yasalarına Uygunluk
Hashcat'in kullanımı, kurum içi politikalara ve ülke yasalarına uygun olmalıdır. Bazı ülkelerde belirli güvenlik testleri sıkı düzenlemelere tabi olabilir, bu nedenle kullanıcılar yerel yasal düzenlemelere dikkat etmelidir.
5.1.3. İntihal ve Veri Hırsızlığı
Hashcat'in kullanımı sırasında elde edilen bilgilerin izinsiz kullanılması, veri hırsızlığına ve etik olmayan davranışlara yol açabilir. Elde edilen verilerin sadece güvenlik değerlendirmeleri amacıyla kullanılması önemlidir.
5.2. Etik Sorumluluklar
5.2.1. Ahlaki ve Etik İlkeler
Hashcat kullanıcıları, parola kırma işlemleri sırasında ahlaki ve etik ilkeleri benimsemelidir. Kullanıcılar, güvenlik testlerini sadece yasal ve etik sınırlar içinde gerçekleştirmelidir.
5.2.2. İzinli Testler ve Bilgilendirme
Hashcat veya benzeri araçlarla gerçekleştirilen güvenlik testleri, sistem sahibinin bilgisi ve izni dahilinde yapılmalıdır. Bu, bilgilendirilmiş bir onay sürecini içerir ve testler sırasında kullanıcılara etkileşimli bir geri bildirim sağlar.
5.2.3. Müşteri İlişkileri ve Güven
Güvenlik testi uzmanları veya etik hackerlar, müşteri ilişkilerinde güveni korumak amacıyla şeffaf olmalı ve elde edilen bilgilerin gizliliğine özen göstermelidir.
5.3. Önleme ve Korunma
5.3.1. Yasal Danışmanlık
Kullanıcılar, Hashcat veya benzeri araçları kullanmadan önce yasal danışmanlık almalıdır. Bu, kullanıcıların yerel yasal düzenlemelere uygunluk sağlamalarına yardımcı olur.
5.3.2. İzin Belgesi ve Sözleşmeler
Güvenlik testi uzmanları, müşterileriyle imzalanan bir izin belgesi veya sözleşme aracılığıyla test kapsamını ve sınırlarını belirleyerek yasal çerçeveye uygun hareket etmelidirler.
5.3.3. Bilgilendirici Eğitimler
Güvenlik testi uzmanları, müşterilere ve kullanıcılara güvenlik testlerinin amacını ve sürecini anlatan bilgilendirici içerikler sağlamalıdır.
6. Hashcat'in Geleceği
Siber tehditlerin sürekli evrim geçirdiği bir dönemde, Hashcat gibi araçların geliştirilmesi ve güncellenmesi önemlidir. Hashcat'in gelecekteki sürümleri, daha karmaşık hash algoritmalarını çözebilme yetenekleri ve yeni güvenlik zorluklarına karşı daha etkili stratejiler sunabilir.
Gelecekte, Hashcat'in evrimi başka bir dizi faktöre daha bağlı olacaktır. Öncelikle, yeni güvenlik standartları ve hash algoritmalarının ortaya çıkmasıyla birlikte, Hashcat'in bu algoritmaları desteklemesi beklenmektedir. Ayrıca, gelişen GPU ve paralel işleme teknolojileriyle birlikte Hashcat'in performansında artış yaşanabilir.
Kullanıcı dostu bir arayüz ve kapsamlı dökümantasyon geliştirmeleri, Hashcat'in daha geniş bir kullanıcı kitlesi tarafından benimsenmesine katkıda bulunabilir. Güvenlik ve uyumluluk konularında yapılan geliştirmeler, Hashcat'in güvenlik profesyonelleri için daha etkili bir araç haline gelmesine olanak tanıyabilir.
Ayrıca, topluluk katkıları ve açık kaynaklı yapısı sayesinde Hashcat, kullanıcıların ihtiyaçlarına daha iyi yanıt verebilir. Ancak, yazılımın kullanıcılarından beklenen yasal ve etik sorumlulukların önemi, Hashcat'in geleceğini şekillendiren temel bir unsurdur. Kullanıcılar, bu güçlü aracı yasal ve etik sınırlar içinde kullanarak, siber güvenlik alanındaki gelişmeleri desteklemeye devam etmelidir.
Kaynakça
- Hashcat Advanced Password Cracking Tool
- Hashcat - Wikipedia
- What is Hashing?
- Hash Nedir?
- Hashcat Nedir?
- Install Hashcat on Windows
- Hashcat on macOS
- Install Hashcat on Kali Linux
- Hashcat Kullanımı
- Brute Force Attack Nedir?
- Brute Force Attack Definition
- Rainbow Tables: A Path to Password Gold
- Rainbow Table Attack
- Rainbow Table - Wikipedia
- Hybrid Password Attacks
- What is a Hybrid Attack?
- Time of Mask Attack for MD5 and SHA1
- What is Hashcat?
- Cybersecurity Laws and Regulations
- Siber Güvenlik Nedir?