الفرق الزرقاء — الدفاعخبير90mL62

Windows Forensics — الآثار اللي بتفضح المهاجم

Sysmon و 4624/4688/7045 و MFT و ShimCache و Prefetch

#Windows#Sysmon#MFT#Registry#Prefetch

فن قراءة ويندوز — البيانات بتتكلّم

تشبيه — شرح مبسط
قدامك جهاز ويندوز فيه اختراق. هتبدأ منين؟ تفتح Task Manager وتدور على process مشبوه؟ تشغّل antivirus؟ تبص في الـ Event Viewer وتقعد تتفرّج؟ ده تصرّف على ادهم. ويندوز زي بيت فيه آلاف العدادات. عداد الكهرباء العام بيقولك على الاستهلاك الكلي. بس لو عرفت إن العداد الفرعي للمطبخ علا فجأة الساعة 3 الفجر، تعرف مين كان صاحي وكان بيعمل إيه. الـ forensics هي إنك تعرف "أنهي عداد ينفع تبصله امتى". - طب أنا أبص في كل العدادات يا حضرتك؟؟ لأ يا مستجد. لو فتحت كل artifact واحدة واحدة من غير فرضية، هتقعد شهر وما تطلعش بحاجة. اشتغل بفرضية: "أنا شاكك في persistence" → روح للـ Run keys + Services + Scheduled Tasks. السؤال الأول، الأداة بعدين.

كل عملية، كل تسجيل دخول، كل اتصال شبكة، كل ما تفتح ملف — بيسيب أثر في مكان معروف. الفرق بين محقق محترف ومبتدئ مش في الأدوات. لأ. الفرق في إنه عارف يبصّ فين وبأي ترتيب.

ويندوز فيه حوالي 40 مصدر artifact، 6 منهم بيكفوك في 80% من القضايا. اللي عمّال يفتح كل artifact واحدة واحدة بدون فرضية = بيعك في وقته. اشتغل بفرضية: "أنا شاكك إن فيه persistence" → روح للـ Run keys + Services + Scheduled Tasks. مش العكس.

غلطات الـ junior في الـ Windows forensics
  • بيفتح الـ EVTX على الجهاز نفسه بـ Event Viewer — كده غيّرت الـ $STANDARD_INFORMATION timestamps. الأدلة لمستها بإيدك.
  • بينسى الـ Order of Volatility — بيعمل disk image قبل memory dump. الذاكرة راحت.
  • بيعتمد على Prefetch بس وينسى Amcache. Prefetch ممكن يبقى معطّل، Amcache مش بيتعطّل.
  • بيقرا $STANDARD_INFORMATION ومش بيقارنه بـ $FILE_NAME — ميمكاتز بيغيّر الأول، التاني بيفضح الـ timestomping.

الخريطة — أين تبحث عن ماذا

من سجّل دخول؟
Security Event Log: 4624 (logon), 4625 (failed), 4634 (logoff), 4672 (special privileges).
ماذا شغّل؟
Sysmon Event 1, Security 4688 (process creation), Prefetch (C:\Windows\Prefetch), Amcache, ShimCache.
هل أُنشئت خدمة؟
System log: 7045 (service installed), 7036 (start/stop). Sysmon Event 6 (driver loaded).
هل تم تنفيذ PowerShell؟
Microsoft-Windows-PowerShell/Operational: 4103/4104 (script block, command), 600/400 in old logs.
هل تم اتصال شبكة؟
Sysmon Event 3 (network connect). إذا غاب: NetFlow / Zeek / firewall logs.
هل عُدّل ملف؟
MFT ($MFT) — كل ملف على NTFS. USN Journal ($UsnJrnl) لتسلسل التغييرات.

Sysmon — الـ EDR المجاني الذي يجب أن يكون على كل host

Sysmon من Sysinternals بيضيف أكتر من 20 نوع event مهم ويندوز ما بيسجّلهومش افتراضياً. مع config محترم (SwiftOnSecurity أو Olaf Hartong) بيبقى أقوى من EDRs تجارية في الكشف. كل ده ببلاش.

bash
# تثبيت
sysmon64.exe -accepteula -i sysmonconfig.xml

# تحديث config دون إعادة تثبيت
sysmon64.exe -c sysmonconfig.xml

# إلغاء التثبيت
sysmon64.exe -u

أهم Event IDs:

  • 1 Process Create — مع CommandLine, ParentImage, Hashes (MD5/SHA256/IMPHASH).
  • 3 Network Connection — مع process المسبّب.
  • 7 Image Loaded — DLLs المحمّلة (مفيد لكشف DLL hijacking).
  • 8 CreateRemoteThread — كشف process injection.
  • 10 ProcessAccess — من فتح handle لـ LSASS؟ (Mimikatz).
  • 11 FileCreate — كتابة ملفات.
  • 12/13/14 Registry create/set/rename.
  • 22 DNS Query — مع process.
  • 25 ProcessTampering — كشف Process Hollowing/Doppelganging.
config جاهز
ابدأ من github.com/SwiftOnSecurity/sysmon-config ثم طبّق github.com/olafhartong/sysmon-modular لتعديل modular.

Event Log Analysis — استعلامات حرجة

Lateral Movement عبر RDP / SMB

powershell
# 4624 Logon Type 3 (Network) أو 10 (RDP) — من IP خارجي
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 1000 |
  Where-Object { $_.Properties[8].Value -in 3,10 -and $_.Properties[18].Value -notmatch '^10\.' } |
  Select-Object TimeCreated, @{n='User';e={$_.Properties[5].Value}}, @{n='SrcIP';e={$_.Properties[18].Value}}

إنشاء خدمة جديدة (مؤشّر persistence)

powershell
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045} -MaxEvents 50 |
  Format-Table TimeCreated,
    @{n='Service';e={$_.Properties[0].Value}},
    @{n='Path';e={$_.Properties[1].Value}},
    @{n='StartType';e={$_.Properties[3].Value}}

PowerShell scriptblock logging

kql
// Microsoft Sentinel KQL
Event
| where Source == "Microsoft-Windows-PowerShell" and EventID == 4104
| extend ScriptBlock = tostring(EventData["ScriptBlockText"])
| where ScriptBlock matches regex @"(?i)Invoke-Mimikatz|Invoke-Expression|DownloadString|FromBase64String"
| project TimeGenerated, Computer, ScriptBlock

Registry — مخبأ الـ persistence

Hives الأكثر فحصاً: SYSTEM, SOFTWARE, NTUSER.DAT, UsrClass.dat.

Run Keys
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
+ RunOnce, RunOnceEx, RunServices.
Services
HKLM\System\CurrentControlSet\Services — كل خدمة + binPath.
UserAssist
HKCU\...\UserAssist — برامج شغّلها المستخدم (ROT13 encoded).
ShimCache (AppCompat)
HKLM\System\CurrentControlSet\Control\Session Manager\AppCompatCache — أسماء ملفات نُفّذت أو فُحصت (آخر 1024).
Amcache
C:\Windows\AppCompat\Programs\Amcache.hve — معلومات أكثر: SHA1, publisher, last modified.
ASEPs الغريبة
AppInit_DLLs, Image File Execution Options (IFEO), Winlogon Shell, COM hijacking, WMI subscriptions.

MFT و Timeline — الترتيب يحلّ القضية

كل ملف على NTFS له MFT record (1024 byte) فيه: created, modified, accessed, MFT-modified (4 timestamps × 2 attributes = 8 timestamps). هذا يكشف timestomping (Mimikatz, Cobalt Strike).

bash
# على Linux — تحليل image
mmls disk.img                                   # partitions
fls -r -m C: -o 2048 disk.img > body.txt        # body file
mactime -d -b body.txt 2026-04-25 > timeline.csv

# Plaso (log2timeline) — الأقوى للـ super-timeline
log2timeline.py timeline.plaso /mnt/evidence
psort.py -o l2tcsv timeline.plaso > super.csv

# أو Eric Zimmerman's Tools (سريعة جداً)
MFTECmd.exe -f $MFT --csv .
KAPE.exe --tsource C: --tdest C:\triage --target KapeTriage

Prefetch — ما الذي شُغّل و متى

Windows ينشئ ملف .pf في C:\Windows\Prefetch لأول 128 برنامج. يحتوي:

  • اسم البرنامج + hash من path الكامل (يكشف لو نُسخ من مسار غريب).
  • آخر 8 مرات تنفيذ (timestamps).
  • قائمة DLLs و ملفات قرأها.
  • عدد التنفيذات الكلي.
powershell
# تحليل Prefetch
PECmd.exe -d C:\Windows\Prefetch --csv .

# بحث: ملفات شُغّلت من %TEMP% (مؤشّر مشبوه)
Import-Csv .\PECmd_Output.csv | Where-Object { $_.ExecutablePath -match 'TEMP|AppData' }
ملاحظة
Prefetch معطّل افتراضياً على Windows Server. على workstations نشط.

فرز سريع باستخدام KAPE و Velociraptor

في حادث live: لا تنسخ كل القرص (300GB). انسخ فقط ما يهمّ — ~3GB من artifacts.

bash
# KAPE — جمع artifacts فقط
KAPE.exe --tsource C: --tdest C:\triage --target !BasicCollection --vhdx triage

# ثم تشغيل modules للتحليل
KAPE.exe --msource C:\triage --mdest C:\out --module !EZParser

# Velociraptor — جمع عن بعد لـ thousands of hosts
velociraptor.exe artifact collect Windows.KapeFiles.Targets \
  --args Device=C: --args _Triage=Y

Memory Forensics — الذاكرة لا تكذب

bash
# جمع الذاكرة (live)
winpmem.exe -o memory.raw

# أو DumpIt.exe (single click)

# تحليل بـ Volatility 3
vol -f memory.raw windows.pslist
vol -f memory.raw windows.netscan
vol -f memory.raw windows.malfind            # injected code
vol -f memory.raw windows.cmdline
vol -f memory.raw windows.dlllist --pid 1234
vol -f memory.raw windows.hashdump           # SAM hashes
vol -f memory.raw windows.lsadump            # secrets cached
ترتيب التطايُر (Order of Volatility)
CPU regs → cache → RAM → network state → disk → logs offsite. اجمع بالترتيب ده. اوعى تطفّي الجهاز قبل ما تاخد الـ memory. جدياً.

Anti-forensics و كيف تغلبه

  • Timestomping — يغيّر MFT $STANDARD_INFORMATION لكن غالباً ينسى $FILE_NAME. قارنهما.
  • Log clearing — Event ID 1102 يُسجّل عند مسح Security log. أيضاً افحص USN Journal لـ .evtx deletes.
  • Alternate Data Streamsfile.txt:hidden.exe. اكتشفها بـ dir /R أو streams.exe.
  • WMI persistence — لا يظهر في autoruns عادية. استخدم Get-WmiObject -Namespace root\\subscription -Class __EventFilter.
  • Wiping with cipher /w — يكتب صفر/واحد على free space. يبقى MFT records و metadata.

منهجية أول 60 دقيقة

Triage playbook
  1. Memory dump أولاً (قبل أي تغيير). كل خطوة تانية بتغيّر الـ RAM.
  2. KAPE Triage على القرص.
  3. Sysmon + Security + System logs (آخر 30 يوماً).
  4. Autoruns full scan (autorunsc.exe -accepteula -a * -h -s -m -nobanner -c).
  5. Run keys, Services, Scheduled Tasks، WMI subscriptions.
  6. Process tree الحالي + network connections.
  7. Recent file modifications (last 24h).
أدوات أساسية
KAPE, Velociraptor, Eric Zimmerman tools (MFTECmd, PECmd, RECmd, EvtxECmd, AmcacheParser), Volatility 3, Plaso, Hayabusa (sigma لـ EVTX), Chainsaw.
الخلاصة الناشفة
ويندوز ما بيكدبش — بس بيقول الحقيقة لمين عارف يسأل صح. الـ artifacts كلها هناك من 2009. اللي بينجح مش اللي عنده أحدث أداة، اللي بينجح اللي عنده أسئلة محددة. اكتبها على شاشة محطة الـ DFIR: السؤال الأول، الأداة تاني.