Back to skills
SKILL.md
Hash Crack
BSecurityHash kırma — MD5/SHA/bcrypt format tespiti, hashcat/john kullanımı, wordlist stratejisi
- 4 stars
- 0 votes
- 0 copies
- 4 views
- Added September 8, 2026
Works with
Security analysis
84/100- Accesses sensitive system or user directories
- Installs packages at runtime which could introduce malicious dependencies
npx -y skills add MustafaKemal0146/fetih --skill hash-crack --agent claude-codeAre you the author of Hash Crack?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/mustafakemal0146-hash-crack)---
name: hash-crack
description: Hash kırma — MD5/SHA/bcrypt format tespiti, hashcat/john kullanımı, wordlist stratejisi
tags: [ctf, crypto, hash, hashcat, john, md5, sha256, bcrypt, ntlm, rockyou, wordlist]
triggers:
- "hash kır"
- "MD5 hash"
- "SHA256"
- "bcrypt"
- "$2b$"
- "$apr1$"
- "hashcat"
- "john the ripper"
- "wordlist"
- "password hash"
difficulty: easy-medium
category: crypto
solved_challenges:
- "IRIS CTF 2024 - OSINT bcrypt (wordlist from social media posts)"
- "WolvCTF 2024 - Username (hashcat mode 16500 JWT)"
adapted_for: fetih
---
# Hash Kırma
## Hash Format Tespiti
### Görsel Format Tanıma
Hashin başlangıcına bakarak türünü büyük ölçüde anlayabilirsin:
| Hash Örneği / Format | Tür | Hashcat Modu |
|---------------------|-----|--------------|
| `5f4dcc3b5aa765d61d8327deb882cf99` | MD5 (32 hex) | `-m 0` |
| `aaf4c61ddcc5e8a2dabede0f3b482cd9ef` | SHA1 (40 hex) | `-m 100` |
| `2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824` | SHA256 (64 hex) | `-m 1400` |
| SHA512 (128 hex) | SHA512 | `-m 1700` |
| `$1$salt$hash` | MD5crypt | `-m 500` |
| `$5$salt$hash` | SHA256crypt | `-m 7400` |
| `$6$salt$hash` | SHA512crypt | `-m 1800` |
| `$2b$12$...` veya `$2y$...` veya `$2a$...` | bcrypt | `-m 3200` |
| `$apr1$salt$hash` | Apache MD5 | `-m 1600` |
| `aad3b435b51404eeaad3b435b51404ee` | NTLM (boş parola) | `-m 1000` |
| `eyJhbGc...` | JWT (HS256) | `-m 16500` |
| `{SSHA}...` (base64) | LDAP SHA | `-m 111` |
| `md5($pass.$salt)` bağlamı varsa | MD5+salt | `-m 10` |
### Uzunluk Tablosu (Hex Hash)
| Uzunluk | Tür |
|---------|-----|
| 32 hex | MD5 veya NTLM |
| 40 hex | SHA1 |
| 56 hex | SHA224 |
| 64 hex | SHA256 veya SHA3-256 |
| 96 hex | SHA384 |
| 128 hex | SHA512 veya SHA3-512 |
### Araç ile Tespit
```bash
# hash-identifier (kali'de mevcut)
hash-identifier
# Çıktı: MD5 / SHA1 vs.
# haiti (daha modern, önerilen)
pip install haiti-hash
haiti "5f4dcc3b5aa765d61d8327deb882cf99"
# Çıktı: MD5 [hashcat: 0] [john: md5]
# hashid
hashid "5f4dcc3b5aa765d61d8327deb882cf99"
# Python ile basit tespit
python3 -c "
import re, sys
h = sys.argv[1]
if h.startswith('\$2'): print('bcrypt → hashcat -m 3200')
elif h.startswith('\$6'): print('sha512crypt → hashcat -m 1800')
elif h.startswith('\$5'): print('sha256crypt → hashcat -m 7400')
elif h.startswith('\$1'): print('md5crypt → hashcat -m 500')
elif h.startswith('\$apr1'): print('Apache MD5 → hashcat -m 1600')
elif len(h) == 32: print('MD5 veya NTLM → hashcat -m 0 veya -m 1000')
elif len(h) == 40: print('SHA1 → hashcat -m 100')
elif len(h) == 64: print('SHA256 → hashcat -m 1400')
elif len(h) == 128: print('SHA512 → hashcat -m 1700')
else: print('Bilinmiyor, haiti veya hash-identifier kullan')
" "5f4dcc3b5aa765d61d8327deb882cf99"
```
---
## Hashcat Cheat Sheet
### Temel Sözdizimi
```bash
hashcat [seçenekler] <hash_dosyası> [wordlist/mask]
# Önemli parametreler:
# -m MODE : Hash türü modu
# -a MODE : Saldırı modu (0=dict, 1=combo, 3=brute/mask, 6=dict+mask)
# -r RULE : Kural dosyası (best64.rule, OneRuleToRuleThemAll.rule)
# --show : Kırılmış hash'leri göster
# -o FILE : Sonuçları dosyaya yaz
# --status : İlerlemeyi göster
# -w 3 : Yüksek performans (1=düşük, 4=max - GPU ısınır)
# --force : CPU ile çalıştır (GPU yoksa)
```
### Önemli Hash Modları
```bash
# --- Yaygın Hash Türleri ---
# MD5 (-m 0)
hashcat -m 0 hashes.txt /usr/share/wordlists/rockyou.txt
# SHA1 (-m 100)
hashcat -m 100 hashes.txt /usr/share/wordlists/rockyou.txt
# SHA256 (-m 1400)
hashcat -m 1400 hashes.txt /usr/share/wordlists/rockyou.txt
# SHA512 (-m 1700)
hashcat -m 1700 hashes.txt /usr/share/wordlists/rockyou.txt
# --- Unix Crypt Hash'leri ---
# md5crypt ($1$) - Linux eski sistem
hashcat -m 500 hashes.txt /usr/share/wordlists/rockyou.txt
# sha256crypt ($5$) - Linux modern
hashcat -m 7400 hashes.txt /usr/share/wordlists/rockyou.txt
# sha512crypt ($6$) - Linux modern (çok yaygın)
hashcat -m 1800 hashes.txt /usr/share/wordlists/rockyou.txt
# bcrypt ($2b$, $2y$, $2a$) - ÇOK YAVAŞ, kısa wordlist kullan
hashcat -m 3200 hashes.txt custom_wordlist.txt
# Apache MD5 ($apr1$)
hashcat -m 1600 hashes.txt /usr/share/wordlists/rockyou.txt
# --- Windows ---
# NTLM
hashcat -m 1000 hashes.txt /usr/share/wordlists/rockyou.txt
# NetNTLMv2 (Responder ile yakalanan)
hashcat -m 5600 netntlmv2.txt /usr/share/wordlists/rockyou.txt
# --- CTF Özel ---
# JWT HS256 (WolvCTF gibi)
hashcat -m 16500 jwt.txt /usr/share/wordlists/rockyou.txt
# --- Salted Hash'ler ---
# Format: hash:salt veya $hash$salt (moda göre değişir)
# MD5(pass.salt)
hashcat -m 10 "hash:salt" wordlist.txt
# MD5(salt.pass)
hashcat -m 20 "hash:salt" wordlist.txt
```
### Saldırı Modları
```bash
# 0: Dictionary saldırısı (wordlist)
hashcat -m 0 -a 0 hash.txt rockyou.txt
# 0 + Kural (şifre dönüşümleri: büyük harf, !ekleme vs.)
hashcat -m 0 -a 0 hash.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
hashcat -m 0 -a 0 hash.txt rockyou.txt -r /usr/share/hashcat/rules/OneRuleToRuleThemAll.rule
# 3: Brute-force (mask saldırısı)
# ?l = küçük harf, ?u = büyük harf, ?d = rakam, ?s = özel karakter, ?a = hepsi
# 6 karakterli, tüm küçük harf
hashcat -m 0 -a 3 hash.txt "?l?l?l?l?l?l"
# 8 karakterli, büyük+küçük+rakam
hashcat -m 0 -a 3 hash.txt "?a?a?a?a?a?a?a?a"
# Uzunluğu bilmiyorsan --increment kullan
hashcat -m 0 -a 3 hash.txt "?a?a?a?a?a?a?a?a" --increment --increment-min 4
# 6: Wordlist + Mask (şifre + rakam kombinasyonu)
hashcat -m 0 -a 6 hash.txt rockyou.txt "?d?d?d?d"
# Örn: password1234, admin2024
# 1: Combinator (iki wordlist'i birleştir)
hashcat -m 0 -a 1 hash.txt words1.txt words2.txt
```
### Performans İpuçları
```bash
# Kırılan hash'leri kaydet
hashcat -m 3200 hash.txt wordlist.txt -o cracked.txt
# Pot dosyasından kırılan hash'leri göster
hashcat -m 3200 hash.txt --show
cat ~/.hashcat/hashcat.potfile
# GPU değil CPU kullanmak (GPU yoksa)
hashcat -m 0 hash.txt rockyou.txt --force
# bcrypt çok yavaş → cost factor'e dikkat et
# $2b$12$ → 2^12 = 4096 iterasyon → çok yavaş
# $2b$10$ → 2^10 = 1024 iterasyon → biraz daha hızlı
# bcrypt için sadece kısa ve özel wordlist kullan
```
---
## John the Ripper Kullanımı
```bash
# Hash türünü otomatik tespit et ve kır
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
# Hash türünü manuel belirt
john hash.txt --format=bcrypt --wordlist=custom_wordlist.txt
john hash.txt --format=sha512crypt --wordlist=rockyou.txt
john hash.txt --format=raw-md5 --wordlist=rockyou.txt
john hash.txt --format=raw-sha256 --wordlist=rockyou.txt
# Brute-force (incremental mode)
john hash.txt --incremental
# Kırılan hash'leri göster
john hash.txt --show
# Desteklenen format listesi
john --list=formats | grep -i bcrypt
# Kural tabanlı saldırı
john hash.txt --wordlist=rockyou.txt --rules=Jumbo
# /etc/shadow dosyası için
unshadow /etc/passwd /etc/shadow > combined.txt
john combined.txt --wordlist=rockyou.txt
```
### John Format Referansı
| Hash Türü | John Format |
|-----------|------------|
| MD5 | `raw-md5` |
| SHA1 | `raw-sha1` |
| SHA256 | `raw-sha256` |
| SHA512 | `raw-sha512` |
| bcrypt | `bcrypt` |
| md5crypt ($1$) | `md5crypt` |
| sha512crypt ($6$) | `sha512crypt` |
| NTLM | `nt` |
| NetNTLMv2 | `netntlmv2` |
---
## IRIS CTF 2024 Örneği: Sosyal Medya'dan Wordlist Oluşturma
### Challenge Açıklaması
IRIS CTF 2024'te bir bcrypt hash verilmişti. Standart rockyou.txt ile kırılamıyordu. İpucu: Kullanıcının şifresi kendi sosyal medya postlarından türetilmişti.
### Adım Adım Çözüm
```bash
# 1. Verilen bcrypt hash
echo '$2b$12$AKJkSb8FXWQ1c4AqL8mKJO8AHKsJqW1Xa4Rp9Lz2mKAXzZ0nJ9v.' > hash.txt
# 2. OSINT - Sosyal medya araştırması
# Twitter/X, Reddit, Instagram, GitHub postlarını tara
# Challenge'da hedef kullanıcının profili verilmişti
```
```python
#!/usr/bin/env python3
"""
CTF OSINT Wordlist Oluşturucu
Sosyal medya postlarından potansiyel şifre listesi üretir.
"""
import re
import itertools
from pathlib import Path
# Sosyal medyadan toplanan ham metin (post'lar, biyografi, yorumlar)
raw_texts = [
"I love programming and cybersecurity!",
"My cat is named Whiskers, born in 2019",
"Working at CoolCompany since 2021",
"Favorite number: 42",
"Birthday: March 15, 1995",
"GitHub: github.com/targetuser",
"CTF player since 2020, love pwn and crypto",
]
def extract_keywords(texts: list[str]) -> set[str]:
"""Ham metinden anahtar kelimeleri çıkar."""
words = set()
for text in texts:
# Tüm kelimeleri al
raw_words = re.findall(r'\b[A-Za-z][A-Za-z0-9]{2,}\b', text)
words.update(raw_words)
# Sayıları al
numbers = re.findall(r'\b\d{2,}\b', text)
words.update(numbers)
# Özel değerleri al (kullanıcı adları, etiketler)
usernames = re.findall(r'@\w+|/[\w-]+', text)
words.update(w.strip('@/') for w in usernames)
return words
def generate_variations(word: str) -> list[str]:
"""Bir kelimeden şifre varyasyonları üret."""
variations = [word]
# Büyük/küçük harf varyasyonları
variations.append(word.lower())
variations.append(word.upper())
variations.append(word.capitalize())
# Leet speak dönüşümü
leet_map = {'a': '4', 'e': '3', 'i': '1', 'o': '0', 's': '5', 't': '7'}
leet = ''.join(leet_map.get(c.lower(), c) for c in word)
variations.append(leet)
# Sayı ekleme
for num in ['1', '12', '123', '1234', '2024', '2023', '!', '!1']:
variations.append(word + num)
variations.append(word.lower() + num)
variations.append(word.capitalize() + num)
# Özel karakter ekleme
for special in ['!', '@', '#', '.', '_']:
variations.append(word + special)
return list(set(variations))
def combine_keywords(keywords: list[str], max_combo: int = 2) -> list[str]:
"""Kelimeleri kombine ederek yeni şifreler üret."""
combos = []
for r in range(2, max_combo + 1):
for combo in itertools.permutations(keywords[:10], r): # İlk 10 kelime (verim)
combined = ''.join(combo)
combos.append(combined)
combos.append('_'.join(combo))
combos.append('.'.join(combo))
return combos
def create_ctf_wordlist(output_file: str = "ctf_wordlist.txt") -> None:
"""Tam wordlist oluştur ve dosyaya yaz."""
print("[*] Anahtar kelimeler çıkarılıyor...")
keywords = extract_keywords(raw_texts)
print(f"[*] {len(keywords)} anahtar kelime bulundu: {list(keywords)[:10]}...")
print("[*] Varyasyonlar üretiliyor...")
all_passwords = set()
for kw in keywords:
for variant in generate_variations(kw):
all_passwords.add(variant)
print("[*] Kombinasyonlar oluşturuluyor...")
keyword_list = list(keywords)
combos = combine_keywords(keyword_list)
all_passwords.update(combos)
# Minimum 6, maksimum 20 karakter
filtered = [p for p in all_passwords if 6 <= len(p) <= 20]
print(f"[*] Toplam {len(filtered)} şifre adayı üretildi")
with open(output_file, 'w') as f:
f.write('\n'.join(sorted(filtered)))
print(f"[+] Wordlist kaydedildi: {output_file}")
create_ctf_wordlist()
```
### Hashcat ile bcrypt Kırma
```bash
# Üretilen wordlist ile kır
hashcat -m 3200 hash.txt ctf_wordlist.txt --force
# Kural tabanlı saldırı (wordlist + dönüşümler)
hashcat -m 3200 hash.txt ctf_wordlist.txt -r /usr/share/hashcat/rules/best64.rule --force
# İlerlemeyi izle
hashcat -m 3200 hash.txt ctf_wordlist.txt --status --status-timer=10
# Kırıldıysa göster
hashcat -m 3200 hash.txt --show
```
### IRIS CTF Sonucu
Challenge'da şifre `Whiskers2019!` çıktı:
- `Whiskers` → kedinin ismi (sosyal medyada paylaşılmıştı)
- `2019` → doğum yılı (tweet'te bahsedilmişti)
- `!` → yaygın özel karakter eki
---
## Online Kaynaklar
### Hash Lookup (Önceden Kırılmış Hash Veritabanları)
```bash
# 1. CrackStation (en kapsamlı, 15+ milyar hash)
# https://crackstation.net/
# MD5, SHA1, SHA256, SHA512, LM, NTLM destekler
# 2. hashes.com (API ve web arayüzü)
# https://hashes.com/en/decrypt/hash
# Katkıda bulunarak daha fazla hash erişimi
# 3. MD5Decrypt
# https://md5decrypt.net/
# 4. HashKiller
# https://hashkiller.io/listmanager
```
### Python ile Online Lookup
```python
import requests
import hashlib
def crackstation_lookup(hash_value: str) -> str | None:
"""
CrackStation API ile hash sorgula.
Not: Rate limit var, tek seferde max 20 hash.
"""
url = "https://crackstation.net/crack.js" # Gerçek API endpoint farklı
# Not: CrackStation'ın herkese açık API'si yok, web scraping gerekir
# Bunun yerine hashes.com API kullan:
resp = requests.post(
"https://hashes.com/en/api/identifier",
data={"hashes[]": hash_value, "key": "YOUR_API_KEY"}
)
if resp.status_code == 200:
data = resp.json()
if data.get("result"):
return data["result"][0].get("plaintext")
return None
def check_hash_online(hash_value: str) -> None:
"""Hash değerini online kaynaklarda ara."""
print(f"[*] Hash: {hash_value}")
print(f"[*] Şu kaynaklarda ara:")
print(f" - https://crackstation.net → '{hash_value}' gir")
print(f" - https://hashes.com/en/decrypt/hash → '{hash_value}' gir")
print(f" - https://cmd5.org → '{hash_value}' gir")
print(f" - Google: \"{hash_value}\" site:pastebin.com")
```
### Wordlist Kaynakları
```bash
# Kali'de mevcut wordlist'ler
ls /usr/share/wordlists/
# rockyou.txt.gz → gunzip et
gunzip /usr/share/wordlists/rockyou.txt.gz
# SecLists (en kapsamlı koleksiyon)
git clone https://github.com/danielmiessler/SecLists /opt/SecLists
# /opt/SecLists/Passwords/ altında çok sayıda özel wordlist
# Kasgaman wordlist (Türkçe kelimeler dahil)
# https://github.com/kasgaman/wordlist
# CeWL (hedef siteden wordlist oluştur)
cewl https://target-ctf-site.com -d 2 -m 6 -w site_wordlist.txt
# Mentalist (GUI ile kural tabanlı wordlist)
# https://github.com/sc0tfree/mentalist
```
### Hızlı Referans Tablosu
| Senaryo | Komut |
|---------|-------|
| MD5 bilmiyorum | `haiti <hash>` → `hashcat -m <mode> hash.txt rockyou.txt` |
| bcrypt, zaman kısıtlı | Online lookup → CrackStation → özel wordlist |
| JWT kırma | `hashcat -m 16500 jwt.txt rockyou.txt` |
| NTLM (Windows) | `hashcat -m 1000 hash.txt rockyou.txt` |
| sha512crypt ($6$) | `hashcat -m 1800 hash.txt rockyou.txt -r best64.rule` |
| Kısa şifre (<= 6 char) | `hashcat -m 0 hash.txt -a 3 ?a?a?a?a?a?a --increment` |
| Sosyal mühendislik | CeWL + Mentalist + manuel varyasyonlar |
<!--
⚔ Bu skill FETIH AI Agent icin gelistirilmistir — https://github.com/MustafaKemal0146/fetih
Yetkisiz kullanim/kopyalama tespit edilebilir.
hash: aaa503f7942ffd7e
-->
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.