Windows forensics Random Notes
نوتس عشوائية
Windows Registry
ما هو الـ Windows Registry؟
الـ Registry هو قاعدة بيانات مركزية في Windows بتحتوي على:
بيانات تكوين النظام (System Configuration)
معلومات الهاردوير والبرامج
إعدادات وتفضيلات المستخدمين
أنشطة المستخدم (مثل الملفات اللي اتفتحت مؤخرًا أو الأجهزة المتصلة)
بالنسبة لـ Forensics → يعتبر مصدر غني بالأدلة لأنه يحتفظ بآثار استخدام الجهاز حتى بعد حذف الملفات أو البرامج.
مكونات الـ Registry
Registry Keys → أشبه بالـ Folders (مفاتيح رئيسية وفرعية).
Registry Values → البيانات اللي موجودة جوة كل Key.
Registry Hive → ملف فيزيائي على القرص يحتوي على Keys + Subkeys + Values.
مثال:
NTUSER.DAT → بيخزن إعدادات مستخدم معين.
SOFTWARE → بيخزن إعدادات البرامج المثبتة.
الـ Root Keys الرئيسية
Windows بيوفر 5 Root Keys أساسية بتظهر في regedit.exe:
HKEY_CURRENT_USER
إعدادات المستخدم الحالي (سطح المكتب، ألوان الشاشة، Control Panel، إلخ).
HKCU
HKEY_USERS
جميع ملفات تعريف (Profiles) المستخدمين النشطين.
HKU
HKEY_LOCAL_MACHINE
إعدادات الجهاز ككل (تنطبق على جميع المستخدمين).
HKLM
HKEY_CLASSES_ROOT
بيربط الملفات بالبرامج الصحيحة (مثلاً: .txt يفتح بـ Notepad).
HKCR
HKEY_CURRENT_CONFIG
معلومات Hardware Profile المستخدم عند إقلاع النظام.
HKCC
الوصول للـ Registry
اضغط Windows + R
اكتب:
regedit.exe
هتفتح نافذة Registry Editor:
العمود الأيسر → Tree View للـ Keys.
العمود الأيمن → الـ Values الخاصة بالـ Key المختار.
أين يتم تخزين ملفات الـ Registry ؟
المكان الرئيسي:
C:\Windows\System32\config\
والمسارات الخاصة بالمستخدم:
C:\Users\<username>\NTUSER.DAT
C:\Users\<username>\AppData\Local\Microsoft\Windows\UsrClass.dat
الأهمية في Forensics
تاريخ تشغيل البرامج → Prefetch + Registry keys.
الأجهزة المتصلة (USB, Network).
الملفات الأخيرة المستخدمة (Recent Files).
إعدادات المستخدمين (Logins, Preferences).
Persistence Mechanisms → Malware بيحط نفسه في Registry عشان يشتغل عند الإقلاع.
Windows Registry Hives (Forensics Guide)
1️ الـ Hives الرئيسية (System Hives)
موجودة في المسار:
C:\Windows\System32\Config
DEFAULT
HKEY_USERS\DEFAULT
الإعدادات الافتراضية للنظام.
SAM
HKEY_LOCAL_MACHINE\SAM
قاعدة بيانات Security Accounts Manager (المستخدمين، الجروبات، الـ Hashes).
SECURITY
HKEY_LOCAL_MACHINE\SECURITY
السياسات الأمنية والـ Credentials.
SOFTWARE
HKEY_LOCAL_MACHINE\SOFTWARE
البرامج المثبتة وإعداداتها.
SYSTEM
HKEY_LOCAL_MACHINE\SYSTEM
إعدادات إقلاع النظام والهاردوير.
Hives الخاصة بالمستخدم (User Hives)
المسار:
C:\Users\<username>\
NTUSER.DAT
HKEY_CURRENT_USER
C:\Users<username>\
إعدادات المستخدم (MRU, Recent files, Run keys).
USRCLASS.DAT
HKEY_CURRENT_USER\Software\Classes
C:\Users<username>\AppData\Local\Microsoft\Windows
بيانات الـ Classes لكل مستخدم (Associations, COM objects).
ملاحظة: الاتنين دول Hidden Files.
الـ Amcache Hive
المسار:
C:\Windows\AppCompat\Programs\Amcache.hve
بيحتوي على قائمة البرامج اللي اتشغلت مؤخراً.
أداة قوية في التحقيقات لأنها تكشف البرامج اللي اتفتحت حتى لو اتشالت.
Transaction Logs
نفس مجلد الـ Hives:
C:\Windows\System32\Config
بيكونوا بنفس اسم الـ Hive مع .LOG / .LOG1 / .LOG2
مثال:
SAM.LOG
SYSTEM.LOG1
مهم لأنهم ممكن يحتويوا على آخر تغييرات لسه ما تكتبتش في الـ Hive الأصلي.
Registry Backups
المسار:
C:\Windows\System32\Config\RegBack
نسخة احتياطية من الـ Hives الأساسية.
بيتم عمل Backup كل 10 أيام.
مهم في حالة لو شكيت إن في مفاتيح اتحذفت أو اتغيرت.
الأهمية الجنائية (Forensics Value)
SYSTEM Hive → يكشف أوقات تشغيل النظام + الأجهزة.
SAM + SECURITY → حسابات المستخدمين + كلمات المرور.
SOFTWARE Hive → البرامج المثبتة → يساعد في كشف أدوات خبيثة.
NTUSER.DAT + USRCLASS.DAT → سلوك المستخدم (Recent, Typed Paths, RunMRU).
Amcache → كشف تشغيل برمجيات (حتى بعد حذفها).
Transaction Logs → أحدث التغييرات (دليل قوي ضد Anti-forensics).
RegBack → مقارنة الماضي بالحاضر لاكتشاف التلاعب.
Data Acquisition in Windows Forensics
1️ليه ما نحللش على النظام الحي (Live System)؟
أي فتح أو تعديل أو حتى استعراض ممكن يغير في الـ Timestamps.
Registry files زي اللي في:
%WINDIR%\System32\Config
ما ينفعش تعملها Copy عادي → لأنها محمية ومفتوحة بواسطة النظام.
الحل → نعمل نسخة Forensically sound باستخدام أدوات متخصصة.
2 الأدوات الرئيسية لاستخراج الـ Registry Hives
KAPE (Kroll Artifact Parser and Extractor)
أداة قوية لجمع الـ live forensic artifacts.
ممكن تشتغل CLI أو GUI.
تقدر تختار Collect → Registry → تحفظ نسخة جاهزة للتحليل.
ميزة: سريع جدًا + بيجمع أكتر من نوع Evidence (Registry, Logs, Event logs, etc).
Autopsy
أداة Digital Forensics Suite مع واجهة رسومية.
تقدر تضيف Data Source (Live system أو Disk image).
بمجرد التحميل → توصل لمكان ملفات الـ Registry → كليك يمين → Extract File(s).
ميزة: سهل الاستخدام + بيحلل الأدلة كمان مش بس ينسخها.
FTK Imager
واحد من أشهر الأدوات للاستحواذ (Acquisition).
الاستخدام:
تضيف Disk image أو Live system.
توصل لمكان الملفات → Export Files.
أو من قائمة: Obtain Protected Files (خاص بالأنظمة الحية فقط).
يطلع كل الـ Registry hives مرة واحدة.
Limit: مش بيطلع Amcache.hve (مهم في تحقيقات Execution evidence).
الـ Files اللي لازم نجمعها دائمًا
من الـ Config Folder:
SYSTEM
SOFTWARE
SAM
SECURITY
DEFAULT
من User profile:
NTUSER.DAT
USRCLASS.DAT
من AppCompat:
Amcache.hve
(Best Practice)
لو النظام حي → استخدم FTK Imager أو KAPE (Obtain Protected Files).
لو عندك Disk Image → Autopsy أو FTK Imager لعمل Extract.
لازم تحفظ نسخة Read-only وتشتغل على Copy.
ما تنساش تجمع كمان:
Transaction logs (.LOG, .LOG1, .LOG2)
RegBack (Backups)
--
Exploring Windows Registry (Forensics Tools)
Registry Viewer (AccessData)
واجهته شبيهة جدًا بـ Windows Registry Editor.
مميزاته:
بسيط وسهل في التصفح.
بيديك إحساس مألوف لو متعود على regedit.
عيوبه:
يفتح Hive واحد فقط في المرة.
ما بيحسبش الـ Transaction logs (ممكن يفوت تغييرات حديثة).
Registry Explorer (Eric Zimmerman’s tool) ⭐ (الأفضل في التحقيقات)
أقوى أداة حالياً لمراجعة الـ Registry hives.
مميزاته:
يقدر يفتح أكتر من Hive في نفس الوقت.
يدمج البيانات من Transaction logs → بيديك نسخة "cleaner" و Up-to-date.
فيه قائمة Bookmarks → مختصرات للـ Registry keys المهمة جدًا في التحقيقات (Startup programs, UserAssist, MRU, Network info, إلخ).
سهل جدًا للتنقل السريع للأماكن الحساسة.
RegRipper
أداة قديمة لكنها مفيدة جدًا للتحليل الأوتوماتيكي.
الاستخدام:
تاخد Hive كـ Input.
تطلع تقرير Text مرتب فيه أهم القيم والمفاتيح اللي تهم المحققين.
متاح كـ CLI أو GUI.
العيوب:
ما بيقرأش Transaction logs → ممكن تكون البيانات ناقصة أو قديمة.
الحل: نستخدم Registry Explorer الأول علشان ندمج الـ Hive مع الـ logs → بعدين ندي النسخة المحدثة لـ RegRipper.
--
System Information and Accounts (Forensics via Registry)
1OS Version
المفتاح:
SOFTWARE\Microsoft\Windows NT\CurrentVersion
القيم المهمة:
ProductName → نسخة النظام (مثلاً Windows 10 Pro).
CurrentVersion و CurrentBuildNumber → الإصدار والبيلد.
InstallDate → وقت تثبيت النظام (مفيد للتسلسل الزمني).
2Control Sets
مواقعها:
SYSTEM\ControlSet001 SYSTEM\ControlSet002
المفتاح الأساسي:
SYSTEM\Select
Current → رقم الـ ControlSet اللي الجهاز مستخدمه حاليًا (عادةً 1 أو 2).
LastKnownGood → آخر إعداد تشغيل سليم.
لما نكمل تحليلنا، لازم دايمًا نركز على:
HKLM\SYSTEM\CurrentControlSet
لأنه الأكثر دقة.
Computer Name
المفتاح:
SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
القيمة: ComputerName → اسم الجهاز الفعلي. مهم للتأكد إنك شغال على النظام الصح (خاصةً في حالات فيها أكتر من جهاز).
Time Zone
المفتاح:
SYSTEM\CurrentControlSet\Control\TimeZoneInformation
القيم:
TimeZoneKeyName → اسم المنطقة الزمنية.
Bias و ActiveTimeBias → الفارق عن UTC.
مهم جدًا لأن بعض الـ Logs بتكون UTC وبعضها Local → فلازم نعرف فرق التوقيت علشان نرتب الأحداث بدقة.
Network Interfaces + Past Networks
Network Interfaces:
SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
كل واجهة بتظهر كـ GUID.
جواها تلاقي:
IP address (DhcpIPAddress / IPAddress).
Subnet mask.
DNS servers.
Past Networks:
SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Managed
بيحتوي على أسماء الشبكات السابقة + آخر وقت اتصال (من LastWrite Time).
ده بيدينا تصور عن تحركات الجهاز والـ WiFi أو الشبكات اللي اتصل بيها.
Autostart Programs (Autoruns)
مفاتيح التشغيل التلقائي:
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Run NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\RunOnce SOFTWARE\Microsoft\Windows\CurrentVersion\Run SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
الخدمات (Services):
SYSTEM\CurrentControlSet\Services
القيمة Start تحدد وقت التشغيل:
0x02 → يبدأ مع Boot.
قيم أخرى (0x03 Manual, 0x04 Disabled).
أي برنامج ضار بيحاول يثبت نفسه هنا.
SAM Hive (Accounts Info)
الموقع:
SAM\Domains\Account\Users
البيانات المستخرجة:
RID → رقم المستخدم.
Last Login Time.
Failed Logins.
Password Last Set و Expiry.
Group Membership (المجموعات اللي المستخدم فيها).
ده بيساعد جدًا في فهم حسابات المستخدمين، النشاطات، محاولات الدخول، وتغيير الباسوردات
Usage / Knowledge of Files & Folders (Registry Artifacts)
Recent Files (Windows Explorer MRU)
المفتاح:
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
المزايا:
يحفظ آخر الملفات اللي اتفتحت لأي مستخدم.
بيعرضهم بترتيب MRU (Most Recently Used) → الأحدث فوق.
مفاتيح فرعية لكل امتداد (📄 .pdf, .jpg, .docx ...) → تقدر تعرف آخر ملف من نوع معين اتفتح.
القيم بتحتوي على اسم الملف + Last Opened Time.
مهم جدًا: ده بيديك دليل مباشر إن المستخدم فتح ملف معين على الجهاز.
Office Recent Files
المفتاح:
NTUSER.DAT\Software\Microsoft\Office\VERSION
مثال:
Office 2013 →
15.0
Office 2016 →
16.0
تحت Word أو Excel → بنلاقي File MRU (Most Recently Used).
ابتداءً من Office 365:
NTUSER.DAT\Software\Microsoft\Office\VERSION\UserMRU\LiveID_####\FileMRU
يحفظ المسار الكامل للملفات المستخدمة.
مفيد جدًا لو عايز تعرف آخر ملفات Word/Excel اتفتحت حتى لو مش موجودة في RecentDocs.
ShellBags (Folders Usage)
المفاتيح:
USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\Shell\Bags USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\Shell\BagMRU NTUSER.DAT\Software\Microsoft\Windows\Shell\BagMRU NTUSER.DAT\Software\Microsoft\Windows\Shell\Bags
الغرض:
يحتفظ بإعدادات عرض الفولدرات (Details, Icons, Size ...).
بيدلنا على الفولدرات اللي المستخدم فتحها مؤخرًا.
الأداة المناسبة: ShellBag Explorer (Eric Zimmerman) → بيعمل Parse ويعرض الـ Timeline للفولدرات اللي اتفتحت.
ده بيكشف فولدرات اتفتحت حتى لو الملفات جواها مش متسجلة في RecentDocs.
Open/Save & LastVisited Dialog MRUs
المفاتيح:
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePIDlMRU NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
الغرض:
بيتسجل كل مرة المستخدم بيعمل Open / Save As من أي برنامج.
بيوضح آخر المسارات اللي المستخدم فتح أو حفظ ملفات فيها.
ممتاز لاكتشاف فولدرات أو مواقع اتفتحت مؤخرًا حتى لو مش في ShellBags.
Windows Explorer Address/Search Bars
المفاتيح:
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\WordWheelQuery
الغرض:
TypedPaths → كل المسارات اللي اتكتبت يدويًا في الـ Explorer Address Bar.
WordWheelQuery → عمليات البحث اللي اتعملت في Windows Explorer.
ده بيديك insight على نية المستخدم (إيه اللي كان بيدور عليه أو بيحاول يوصله)
--
External Devices / USB Forensics
واحدة من أهم الحاجات في التحقيقات إنك تعرف:
هل المستخدم وصل USB أو Removable Drive؟
إمتى اتوصل أول مرة وآخر مرة؟
إيه الـ Vendor/Product/Serial؟
إيه الـ Volume Label أو اسم الدرايف اللي ظهر في Explorer؟
Device Identification (USB Metadata)
الريجستري:
SYSTEM\CurrentControlSet\Enum\USBSTOR
SYSTEM\CurrentControlSet\Enum\USB
كل USB بيتسجل فيه:
Vendor ID (الشركة المصنعة – مثال: Kingston, SanDisk).
Product ID (الموديل).
Version.
Serial Number (مميز للجهاز) ده بيساعدنا نحدد USB Device معين بالضبط حتى لو اتوصل على أكتر من جهاز.
First / Last Connection & Removal
الريجستري:
SYSTEM\CurrentControlSet\Enum\USBSTOR\Ven_Prod_Version\USBSerial#\Properties\{83da6326-97a6-4088-9453-a19231573b29}\####
القيم (####) اللي بتدي التوقيتات:
0064
→ First Connection Time (أول مرة اتوصل).0066
→ Last Connection Time (آخر مرة اتوصل).0067
→ Last Removal Time (آخر مرة اتشال).
الأدوات زي Registry Explorer أو USBDeview (NirSoft) بتعمل Parse أوتوماتيك وتعرض التوقيتات دي مباشرة.
USB Device Volume Name
الريجستري:
SOFTWARE\Microsoft\Windows Portable Devices\Devices
بيسجل اسم الـ Volume Label (اللي بيظهر للمستخدم مثلاً: "MYUSB" أو "SanDisk_32GB").
بيظهر كـ GUID → لازم نربطه بالـ Disk ID / Serial من USBSTOR عشان نعرف أي USB ده بالظبط.
إزاي نربط الصورة الكاملة؟
من USBSTOR → نجيب Vendor, Product, Serial.
من Properties (83da6326…) → نحدد أول وآخر مرة اتوصل واتشال.
من Portable Devices → نربط الـ GUID بالـ Volume Label (الاسم اللي شافه المستخدم).
نقدر كمان نكمل من:
MountedDevices:
SYSTEM\MountedDevices
→ يورينا الـ Drive Letter اللي اتخصص (مثلاً: E:).
UserAssist / RecentDocs → نعرف هل المستخدم فتح ملفات من الفلاشة.
--
Windows User Activity Analysis
تحليل نشاط المستخدم في Windows بيدينا فكرة واضحة عن:
مين استخدم الجهاز؟
إمتى؟
إيه البرامج أو الملفات اللي اتفتحوا؟
هل كان فيه محاولات اختراق/إخفاء أثر؟
أهم مصادر الأدلة في Windows
1. Windows Event Logs
محفوظة في:
C:\Windows\System32\winevt\Logs\
أهمها:
Security.evtx → تسجيل الدخول (Logon/Logoff), Account Lockouts.
System.evtx → تشغيل/إيقاف النظام، أخطاء في الـ Drivers.
Application.evtx → Logs خاصة بالبرامج.
Forensics Value:
معرفة أوقات الدخول والخروج.
تتبع فشل محاولات تسجيل الدخول.
اكتشاف تثبيت برمجيات جديدة أو Services مشبوهة.
2. UserAssist Keys (Registry)
المسار:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
بتخزن كل البرامج اللي اتشغلت بواسطة المستخدم (مشفرة بـ ROT13).
Forensics Value:
كشف التطبيقات اللي اتفتحت.
إنشاء Timeline للبرامج المستخدمة.
3. Prefetch Files
المسار:
C:\Windows\Prefetch\
Windows بيعمل Prefetch لأي برنامج يتم تشغيله علشان يسرع فتحه بعدين.
Forensics Value:
إيه البرامج اللي اتشغلت؟
أول وآخر مرة اتشغل فيها.
عدد مرات التشغيل.
4. Shimcache (AppCompatCache)
موجودة في:
SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache
بتسجل أي برنامج اتشغل على النظام.
Forensics Value:
بتكشف البرامج حتى لو اتحذف الـ Prefetch.
مفيدة جدًا في Malware Analysis.
5. Amcache.hve
المسار:
C:\Windows\AppCompat\Programs\Amcache.hve
بتحتوي على Metadata عن البرامج المنصبة واللي اتشغلت.
Forensics Value:
أسماء الملفات التنفيذية.
SHA1 hash للملف → مهم في Malware detection.
6. Recent Files & Jump Lists
المسار:
C:\Users\<User>\AppData\Roaming\Microsoft\Windows\Recent
Jump Lists:
C:\Users\<User>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\
Forensics Value:
إيه الملفات اللي اتفتحت مؤخرًا.
كشف النشاط المرتبط بملفات حساسة.
7. Browser Artifacts
Cookies, History, Cache.
لكل متصفح (Chrome, Edge, Firefox).
Forensics Value:
المواقع اللي المستخدم زارها.
عمليات البحث.
روابط تحميل ملفات مشبوهة.
8. Windows Timeline / ActivitiesCache.db
موجودة في:
C:\Users\<User>\AppData\Local\ConnectedDevicesPlatform\
بتسجل أنشطة المستخدم (فتح برامج، مواقع، ملفات).
ShellBags
مسار:
HKCU\Software\Microsoft\Windows\Shell\Bags
HKCU\Software\Microsoft\Windows\Shell\BagMRU
بتسجل تفاصيل الـ folders اللي المستخدم فتحها (حتى لو اتحذفت بعدين).
Jump Lists
المسار:
C:\Users\<User>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\
بتسجل الملفات اللي اتفتحت باستخدام تطبيقات معينة (مثلاً Word, Excel).
LNK Files (Shortcuts)
المسار:
C:\Users\<User>\AppData\Roaming\Microsoft\Office\Recent\
وملفات LNK العادية في الـ Desktop أو Recent.
كل LNK بيسجل:
اسم الملف الأصلي.
الـ Path.
آخر مرة اتفتح.
Prefetch Files
المسار:
C:\Windows\Prefetch\
بتسجل البرامج اللي اتشغلت + عدد المرات + آخر وقت.
Amcache & Shimcache
Amcache.hve: تفاصيل عن البرامج المنصبة/المستخدمة + Hash.
Shimcache (AppCompatCache): يحتفظ بسجل البرامج المشغلة حتى لو اتحذف Prefetch.
Event Logs
Security.evtx → أوقات Logon/Logoff.
System.evtx → تشغيل/إيقاف النظام.
Application.evtx → تشغيل برامج أو Services.
Browser Artifacts
لو Johny استخدم الإنترنت (بحث عن أدوات، رفع ملفات).
Chrome:
History
,Cookies
.Edge/IE:
WebCacheV01.dat
.
Windows Registry – Forensics Perspective
ما هو الـ Windows Registry؟
عبارة عن Hierarchical Database (شجرة مفاتيح وقيم).
بيتخزن فيه كل إعدادات النظام + البرامج + المستخدمين.
أي حاجة بيعملها الـ User (فتح برنامج، تغيير إعداد، تشغيل Service) غالبًا بتسيب أثر في الـ Registry.
مكان ملفات الـ Registry (Hive Files)
موجودة في:
%SystemRoot%\System32\config
أهم الـ Hives (System-wide):
SAM
HKLM\SAM
Security Accounts Manager → حسابات المستخدمين وكلمات السر (مشفرة).
SECURITY
HKLM\SECURITY
إعدادات أمان، Policies، Permissions.
SYSTEM
HKLM\SYSTEM
إعدادات الأجهزة، الـ Drivers، الـ Services، Boot config.
SOFTWARE
HKLM\SOFTWARE
بيانات البرامج المثبتة، إعدادات النظام العامة.
DEFAULT
HKU\.DEFAULT
قالب Default لإنشاء حسابات جديدة.
User-Specific Hives:
NTUSER.DAT
HKCU
إعدادات خاصة بكل User (Recent files, Run history, UserAssist).
USRCLASS.DAT
HKCU\Software\Classes
إعدادات مرتبطة بالـ Shell, Desktop, UI.
مكانهم:
C:\Users\<Username>\
Registry Root Keys (Hives in Memory)
HKEY_CLASSES_ROOT (HKCR)
روابط الملفات + الـ File Associations (مثلاً .docx
يفتح بـ Word).
HKEY_CURRENT_USER (HKCU)
إعدادات المستخدم الحالي فقط.
HKEY_LOCAL_MACHINE (HKLM)
إعدادات الجهاز كلها (System + Hardware + Accounts).
HKEY_USERS (HKU)
كل حسابات المستخدمين اللي ليهم Profiles.
HKEY_CURRENT_CONFIG (HKCC)
إعدادات Hardware Profile الحالي (شاشة، طابعة..).
Forensics Value – ليه الـ Registry مهم؟
بيدينا Timeline لاستخدام المستخدم:
آخر برامج اتشغلت → UserAssist.
آخر ملفات اتفتحت → RecentDocs, OpenSavePidlMRU.
أوامر من الـ Run box → RunMRU.
فولدرات اتفتحت → ShellBags.
بيكشف وجود برامج/Tools حتى بعد مسحها (Amcache, Uninstall keys).
بيخزن معلومات حساسة زي Wi-Fi networks (SYSTEM hive), Last logon (SAM/Security hives).
Tools للتحليل
Live System:
regedit.exe
(لكن محدود للـ Forensics).Offline Forensics:
Registry Explorer (Eric Zimmerman).
RECmd (Command-line Registry parser).
FTK Imager لاستخراج الـ Hives.
Dirty Hives & Transaction Logs in Registry Forensics
ما هي الـ Transaction Logs؟
Windows لما يكتب في الـ Registry ما بيكتبش مباشرة في الـ Hive الأساسي.
بيكتب الأول في Transaction Logs (ملفات مؤقتة بتحتوي التغييرات).
لو حصل Crash / انقطاع كهرباء → النظام يقدر يرجع (Rollback) أو يكمل من آخر Log.
الملفات دي بتبقى بنفس اسم الـ Hive + امتداد
.LOG1
,.LOG2
مثلًا:SYSTEM
Hive → عندكSYSTEM.LOG1
,SYSTEM.LOG2
.SOFTWARE
Hive → عندكSOFTWARE.LOG1
,SOFTWARE.LOG2
.
مكانهم:
C:\Windows\System32\config\
Dirty Hives
Hive يعتبر "Dirty" لو ما اتقفلش بشكل سليم بعد التعديلات (مثلًا انقطاع كهرباء، Restart فجائي).
الـ Hive في الحالة دي بيبقى غير متناسق مع الـ Transaction Logs.
Windows في البوت بيعمل Recovery بدمج الـ Logs مع الـ Hive لإرجاع الحالة الأخيرة.
Forensics Value
ليه ده مهم جدًا في التحقيق؟
Recover Deleted/Modified Evidence
ممكن تلاقي آثار في الـ Transaction Logs لعمليات Registry اتغيرت أو اتمسحت بعدين.
مثلًا: إضافة Tool في RunOnce Key وبعدين اتمسح → تفضل آثار في Log.
تحديد الـ Timeline بدقة
الـ Logs بتبين تسلسل الأحداث وقت وقوع Crash أو Restart.
كشف محاولات Tampering
Attacker ممكن يحاول يمسح مفاتيح حساسة من الـ Registry → لكن تفضل نسخة منها في الـ Dirty Hive/Logs.
Windows Registry Forensics – Key User Activity Artefacts
TypedPaths
Key:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths
Evidence:
بيكشف المسارات اللي اتكتبت يدويًا في Run (
Win + R
) أو File Explorer.بيساعد تعرف المهاجم كان بيدور على إيه أو دخل أي فولدرات.
أي فولدر مش مألوف (زي
C:\tmp
) يبقى suspicious.

WordWheelQuery
Key:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\WordWheelQuery
Evidence:
بيسجل الـ search terms اللي اتكتبت في File Explorer Search.
مفيد جدًا لتحديد لو المهاجم كان بيدور على أدوات أو مستندات حساسة.
القيم بتظهر gibberish في regedit → لازم Registry Explorer لفكها.

RecentDocs
Key:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
Evidence:
بيسجل آخر المستندات اللي اتفتحت (word, excel, pdf … إلخ).
بيديك قائمة واضحة بالـ sensitive docs اللي المهاجم فتحها.
القيم Hex → Registry Explorer بيحولها readable.
Comdlg32 (Common Dialog Box)
a) LastVisitedMRU
Key:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU
بيبين آخر فولدرات اتزارِت من خلال الـ File Dialog.
b) OpenSavePidlMRU
Key:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU
بيبين آخر ملفات اتفتحت/اتسايفت من الـ Dialog Box.
مهم لتحديد إذا المستندات اتفتحت أو اتحفظت في مكان جديد.
UserAssist
Key:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
Evidence:
بيتتبع تشغيل البرامج (GUI-based).
بيسجل:
اسم البرنامج
عدد مرات تشغيله
آخر وقت تشغيل
Focus time (قد إيه البرنامج كان active).
الـ GUIDs المهمة:
{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}
→ Explorer usage.{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}
→ Shortcuts (.LNK
).
في سيناريو Johny: الأدوات اللي شغلها (network sniffer + evidence cleaner).
RunMRU
Key:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
Evidence:
بيسجل الأوامر اللي اتنفذت من Run dialog (Win + R).
بيديك قائمة أوامر بالترتيب (القيمة
dcba
بتوضح ترتيب الإدخال)ممتاز لمعرفة لو المهاجم شغل أوامر زي:
cmd
,regedit
,powershell
.
--
ShellBags Forensics (Windows)
أماكن تخزين الـ ShellBags
ShellBags محفوظة في 2 Registry hives أساسيين:
NTUSER.dat
→%USERPROFILE%\NTUSER.dat
UsrClass.dat
→%USERPROFILE%\AppData\Local\Microsoft\Windows\UsrClass.dat
في الريجستري المباشر:
HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell
ما الذي تكشفه الـ ShellBags؟
Folder Paths → كل فولدر اتفتح من Explorer (حتى لو اتشال بعد كده).
Folder View Settings → إزاي كان متشاف (list, details, icons … إلخ).
Timestamps → وقت أول مرة اتفتح، آخر مرة، تعديل.
User Preferences → حجم النافذة، ترتيب الأيقونات، sort order.
Deleted Folders → آثار فولدرات حتى بعد ما تم مسحها.
Network / External Drives → فولدرات على shares أو USBs اتفتحت.
Windows Version Specifics → البنية بتختلف حسب الإصدار.
فحص الـ ShellBags
1. Registry Editor
تفتح الـ Hive:
UsrClass.dat
تروح:
HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell
القيم بتبان، بس صعب تترجمها يدويًا.
2. ShellBags Explorer Tool
من EZ Tools → شغل كـ Admin.
اختار Load active registry أو افتح hives أوفلاين.
بيديك قائمة واضحة بالـ directories, network shares, external drives اللي اتفتحت.
LNK Files Forensics (Windows Shortcuts)
مكان تخزين الـ LNK Files
%userprofile%\AppData\Roaming\Microsoft\Windows\Recent
%userprofile%\Recent
أي ملف المستخدم يفتحه → بيتولد له Shortcut (LNK file) أوتوماتيك في الـ Recent.
معلومات موجودة في LNK File
لما نحلل LNK file (مثال: باستخدام LECmd.exe من EZ Tools)، بنلاقي metadata غني جدًا:
Original filename
بيعرفنا هو كان فاتح إيه بالظبط (Word, PDF, exe …).
Target path
الفولدر/المكان الأصلي للملف (حتى لو Network share).
Network share name
يثبت إنه اتصل بـ \server\share أو أي SMB resource.
Accessed from disk
هل الملف من الهارد المحلي، ولا Network، ولا USB.
File size
يحدد النسخة الأصلية وقت الوصول.
Timestamps
آخر وقت اتفتح فيه الملف.
MachineID / VolumeID
أحيانًا بيدينا معلومات عن الجهاز/القرص اللي اتفتح منه الملف.
خطوات التحليل بـ LECmd.exe
افتح CMD كـ Admin.
روح لمكان الأداة:
LECmd.exe -d "C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent" --csv LNK_Output.csv
ده هيطلعلك كل النتائج في CSV جاهز للتحليل.
Jump Lists Forensics
إيه هي الـ Jump Lists؟
ظهرت من Windows 7 وما بعدها.
بتبان لما تضغط Right Click على أي برنامج في الـ Taskbar أو Start Menu → هتظهر قائمة بآخر الملفات أو الروابط أو المهام اللي المستخدم عملها.
من منظور Forensics: هي أشبه بـ دفتر يوميات Activity Log للمستخدم.
مكان تخزين الـ Jump Lists
AutomaticDestinations → تتولد أوتوماتيك لأي App.
%APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations
CustomDestinations → بيتضاف فيها items manually بواسطة بعض البرامج.
%APPDATA%\Microsoft\Windows\Recent\CustomDestinations
الميزة: كل برنامج له AppID (Hash) فملفاته بتكون باسم غريب (زي 1b4dd67f29cb1962.automaticDestinations-ms). الحل: بنستخدم أداة (JumpList Explorer) → بتفك الترميز وتعرض البيانات بشكل واضح.
تحليل Jump Lists باستخدام JumpList Explorer
هتلاقي:
كل AppID = Application (مثال: Adobe Reader, Word, Notepad).
تحت كل App → هتلاقي List of recent files.
Metadata:
Absolute Path (المكان الكامل للملف).
Timestamps (آخر وقت فتح).
Count (عدد مرات الفتح).
--
Windows Applications Forensics
Scheduled Tasks & Services Forensics
Scheduled Tasks
دورها:
أدوات مشروعة في Windows عشان تشغّل أوامر/برامج أوتوماتيكياً حسب وقت أو حدث.
لكن المهاجمين بيستخدموها كـ Persistence Mechanism لتشغيل برامج خبيثة كل فترة.
أهم الـ Event IDs:
4698 → إنشاء Scheduled Task جديد.
4702 → تحديث أو تعديل Scheduled Task.
معلومات ممكن نستخرجها من اللوج:
Event timestamp → وقت الإنشاء/التعديل.
User → المستخدم اللي أنشأ أو عدّل التاسك.
Command → الأمر أو الملف التنفيذي (مهم جدًا للكشف عن برامج مشبوهة).
Execution interval → متى وكم مرة بيشتغل.
User context → الامتيازات اللي التاسك بيشتغل بيها (مثلاً SYSTEM أو مستخدم عادي).
كيفية تحديد الأنشطة المشبوهة:
Command → إذا بيشغّل exe من
Temp
أوAppData
= مريب.User Context → هل مستخدم عادي عنده صلاحية يعمل Scheduled Task؟ مش منطقي.
Execution Interval → مهام كل 3 ساعات أو عند تسجيل الدخول غير معتادة.
Baseline Comparison → قارن مع باقي الأجهزة: لو التاسك مش موجود عندهم → غالبًا malicious.
Windows Services
دورها:
خدمات بتشتغل في الخلفية وتبدأ مع تشغيل Windows.
المهاجمين بيستغلوها كطريقة تانية لـ Persistence.
أهم الـ Event IDs:
7045 → خدمة جديدة اتسطبت (System Channel).
4697 → خدمة اتسطبت في النظام (Security Channel).
معلومات ممكن نستخرجها:
Event timestamp → وقت تثبيت الخدمة.
User → مين أنشأ الخدمة.
Service binary → الملف التنفيذي المرتبط بالخدمة.
Service start type → (Automatic / Manual).
Execution context → هل بيشتغل كـ LocalService أو SYSTEM.
كيفية تحديد الأنشطة المشبوهة:
Service binary → لازم يكون ملف Service Legitimate. لو ملف عشوائي في
System32
أوTemp
→ suspicious.User Context → عادةً بس الـ Admins يقدروا يضيفوا خدمات. لو مستخدم عادي عمل كده → malicious.
Comparison to baseline → قارن مع الأجهزة الأخرى. لو الخدمة مش موجودة غير على جهاز واحد → suspicious.
أدوات
Event Viewer (eventvwr.msc
)
eventvwr.msc
)Security Logs (4698, 4702, 4697)
System Logs (7045)
PowerShell:
# Scheduled Tasks
Get-WinEvent -FilterHashTable @{LogName='Security';ID=4698} | fl
Get-WinEvent -FilterHashTable @{LogName='Security';ID=4702} | fl
# Services
Get-WinEvent -FilterHashTable @{LogName='System';ID=7045} | fl
Get-WinEvent -FilterHashTable @{LogName='Security';ID=4697} | fl
فحص الريجستري
مكان الخدمات:
HKLM\SYSTEM\CurrentControlSet\Services\
كل خدمة لها مفتاح (Registry Key).
المعلومات المستخرجة:
PathName → مكان الملف التنفيذي.
StartType.
Account Name.
Last Write Time (بعد التصدير إلى ملف نصي) → يُستخدم كمؤشر على تاريخ إنشاء/تعديل الخدمة.
لاحظ: الريجستري لا يوفر تاريخ إنشاء صريح، لكن Last Write Time يساعد كدليل تقريبي.
مؤشرات malcious services
الملف التنفيذي في مسارات غير معتادة مثل:
%AppData%
%Temp%
%ProgramData%
اسم الخدمة غريب أو مشابه لخدمة نظامية لكن مع تعديل بسيط (typosquatting).
تشغيل بامتيازات عالية (SYSTEM) بدون سبب مشروع.
إعدادات Recovery مصممة لإعادة التشغيل باستمرار أو تشغيل أوامر إضافية.
Last Write Time حديث جدًا بدون وجود سبب مشروع (مثلاً مباشرة بعد اختراق).
Browser Forensics
المتصفحات (وبالأخص Firefox, Chrome, Edge) تعتبر منجم ذهب في التحقيقات.
ممكن نستخرج منها:
التاريخ (History): المواقع اللي المستخدم زارها والتوقيت.
التنزيلات (Downloads): الملفات اللي اتحملت ومصدرها.
الكلمات السرية (Logins): بيانات الدخول المحفوظة.
الكوكيز (Cookies): جلسات تسجيل الدخول والتحقق من النشاط.
الجلسات (Sessions): كل النوافذ والتبويبات المفتوحة.
الإضافات (Extensions): اللي ممكن تكون ضارة.
أماكن تخزين بيانات Firefox
باث الأدلة:
C:\Users\<User>\AppData\Roaming\Mozilla\Firefox\Profiles\<random>.default
أهم الملفات اللي نحقق فيها:
الملف / الفولدرالمحتوىplaces.sqlite
الهيستوري + البوك ماركس
logins.json + key4.db
كلمات المرور المحفوظة
cookies.sqlite
الكوكيز
extensions.json + extensions/
الإضافات
favicons.sqlite
أيقونات المواقع (بتأكد إن الموقع اتفتح)
sessionstore-backups/
التبويبات والجلسات (jsonlz4)
formhistory.sqlite
البيانات المدخلة في الفورمات (زي إيميل أو بحث)
تحليل – أمثلة
الـ Browsing History – ملف places.sqlite
الجداول المهمة:
moz_places: يحتوي على (URL, Title, Visit Count, Last Visit Date, Typed).
لو العنوان (Title) مش متوافق مع الرابط → احتمال phishing. مثال:
URL: evil[.]com
Title: Login | Microsoft 365
moz_historyvisits: يربط مع الـ moz_places بالـ place_id ويبين طريقة الوصول.
أهم الـ visit_type values:
1: دخل من لينك.
2: كتب العنوان بنفسه.
3: دخل من Bookmark.
5/6: Redirect (مهم جدًا في الـ phishing).
7: Download.
9: Reload.
الـ Downloads – في moz_annos
يوضح:
اسم الملف.
مكان تخزينه في الجهاز.
مصدر التحميل (URL).
مهم جدًا لو المستخدم حمل ملف خبيث من لينك phishing.
الـ Cookies – ملف cookies.sqlite
جدول: moz_cookies
نقدر نعرف إذا المستخدم سجل دخول في موقع معين.
مثال: لو لقيت كوكيز O365 (ESTSAUTH, ESTSAUTHPERSISTENT) موجودة في دومين مش مايكروسوفت → دليل على MITM أو phishing.
--
Google Chrome
Okay, so Google Chrome بيخزن ال browsing data بتاع ال user في:
C:\Users\<User>\AppData\Local\Google\Chrome\User Data\Default
أهم الحاجات اللي بتتخزن هناك:
History → ده فيه كل الـ browsing history والـ downloads.
Login Data → هنا بيتخزن الـ saved passwords.
Extensions → فولدر بيجمع كل الـ browser extensions.
Cache → ملفات cache عشان السرعة.
Sessions → الـ tabs والجلسات المفتوحة.
Bookmarks → المفضلات في JSON file.
Web Data → أي form data user كتبه.
Malicious Extension Scenario
فيه attackers ساعات بيحطوا malicious extensions in Chrome. To analyze:
روح للـ path ده:
C:\Users\<User>\AppData\Local\Google\Chrome\User Data\Default\Extensions
هتلاقي folders with random IDs → كل واحد بيمثل extension.
افتح ملف manifest.json → ده اللي بيعرف structure & functionality بتاعة ال extension.
Example: “Keystroke Harvester” Extension
Description: “Collect and report keystrokes” (واضحة إنها مش طبيعية ).
عندها 2 main scripts:
background.js → just listening for events (nothing weird).
script.js → here’s the malicious behavior.
What script.js does:
It sends the current URL to an external server (via POST request).
بيراقب كل key the user types using
document.onkeydown
.Stores the keys in a variable.
Every few seconds (using
setInterval
) → بيبعت ال keystrokes ل attacker server.
Microsoft Edge
بص يا معلم، بما إن Microsoft Edge معمول أصلاً على Chromium، فمعظم الـ artefacts بتاعته شبه Google Chrome بالظبط.
المكان اللي بيتخزن فيه الحاجات دي:
C:\Users\<User>\AppData\Local\Microsoft\Edge\User Data\Default
ممكن تستعمل الكوماند ده عشان تـenumerate الـ users وتشوف إذا كان فيه Edge artefacts:
ls C:\Users\ | foreach {ls "C:\Users\$_\AppData\Local\Microsoft\Edge\User Data\Default" 2>$null | findstr Directory}
Using ChromeCacheView
الـ tool دي أصلاً بتفتح Google Chrome cache by default، بس إحنا ممكن نحدد لها فولدر Microsoft Edge cache عشان نشوف الـ cached files.
من الـ cache هتقدر تطلع شوية معلومات مهمة زي:
Last Accessed → إمتى الـ cached data اتفتحت.
URL → اللينك بتاع الـ file.
Web Site → الموقع اللي حمل الـ cached file.
Content Type → نوع الملف (css, javascript, image...).
بس خد بالك: الـ cache لوحده مش كفاية كـ evidence، ده مجرد info مساعد. محتاج تربطه بالـ history, cookies, downloads ... إلخ.
Using Hindsight
Tool جامدة في الـ forensic investigation للـ browsers.
هتفتحلك واجهة على
http://localhost:8080/
اختار الـ Edge profile directory، واضغط Run from here.

Parsing with SQLite
Hindsight بيطلعلك نتائج في شكل SQLite DB. تقدر تشتغل عليها بـ DB Browser for SQLite أو من الـ browser interface.
Queries مفيدة:
URLs visited:
SELECT timestamp,url,title,visit_duration,visit_count,typed_count
FROM 'timeline'
WHERE type = 'url'
LIMIT 0,30;

Downloads:
SELECT timestamp,url,title,value
FROM timeline
WHERE type = 'download'
LIMIT 0,30;

Cookies:
SELECT type,origin,key,value
FROM 'storage'
LIMIT 0,30;

وطبعًا الأفضل تحفظ النتائج كلها في SQLite DB file عشان تقدر تشتغل queries براحتك وتربط الداتا مع بعضها.
Microsoft Office Forensics
Where to Look?
كل برنامج في الـ Office Suite بيـسيب وراه artifacts مهمة:
Word / Excel / PowerPoint
Recent Files:
NTUSER.DAT\Software\Microsoft\Office\<version>\Word\File MRU NTUSER.DAT\Software\Microsoft\Office\<version>\Excel\File MRU NTUSER.DAT\Software\Microsoft\Office\<version>\PowerPoint\File MRU
هنا بتلاقي الـ last opened files.
AutoRecover Files:
C:\Users\<username>\AppData\Roaming\Microsoft\<AppName>\
بتحتوي غالباً على unsaved work.
Temporary Files: بيكون ليها امتداد زي:
~$filename.docx
~$filename.xlsx
Temporary files دي بتدل إن الملف كان مفتوح.
Outlook (Emails)
ملفات البريد بتتخزن في:
C:\Users\<username>\AppData\Local\Microsoft\Outlook\*.ost C:\Users\<username>\Documents\Outlook Files\*.pst
PST/OST files ممكن تتحلل بـ tools زي Kernel PST Viewer أو pffexport (من libpff).
مهم جداً في الـ investigations الخاصة بالـ phishing.
OneNote
Notebooks في:
C:\Users\<username>\Documents\OneNote Notebooks\
بيكشف أي notes أو scripts مستخدم كتبها.
Tools for Parsing
Eric Zimmerman Tools → Registry Explorer & others.
MFTECmd → for file system artifacts related to Office files.
pffexport / Kernel PST Viewer → لقراءة PST/OST بتوع Outlook.
PowerShell Analysis Example
script بسيط يطلع كل recent documents للـ Office apps من الـ registry.
$officeVersions = "16.0","15.0","14.0" # Office 2016, 2013, 2010
$apps = "Word","Excel","PowerPoint"
foreach ($ver in $officeVersions) {
foreach ($app in $apps) {
$regPath = "HKCU:\Software\Microsoft\Office\$ver\$app\File MRU"
if (Test-Path $regPath) {
Write-Host "`n[+] Recent files for $app (Office $ver)"
Get-ItemProperty $regPath | ForEach-Object {
$_.PSObject.Properties | Where-Object { $_.Name -like "Item*" } | ForEach-Object {
Write-Host $_.Value
}
}
}
}
}
الـ script ده يطبعلك كل الـ recent files اللي اتفتحت في Word, Excel, PowerPoint.
----
Microsoft Outlook
ليه Outlook مهم في الـ Forensics؟
Outlook هو أكتر email client مستخدم في الـ organizations اللي شغالة بـ Microsoft 365. وده معناه إن أي investigator لازم يبص على الـ artefacts بتاعته عشان يعرف إذا كان فيه phishing, malicious attachments, أو links اتبعتت للـ user.
Locating Outlook Data
كل يوزر عنده فولدر في:
C:\Users\<username>\AppData\Local\Microsoft\Outlook\
جوه الفولدر ده، هتلاقي .ost file بالشكل:
user_email@domain.com.ost
الـ OST = local copy من الـ mailbox → بيـsync مع السيرفر أول ما الـ user يتصل بالنت.
Tool هنستعملها: XstReader → بتفتح وتعرض محتويات الـ OST file.
Investigating Mailbox Contents
لما تفتح الـ OST، هتلاقي الـ mailbox structured كده:
Root - Mailbox > IPM_SUBTREE > Inbox / Sent Items / Deleted Items / Junk
Scenario: Phishing Emails
a) Emails with Attachments
دور على أي إيميل فيه paperclip (📎) → ده معناه إن فيه attachment.
ممكن يكون:
.zip / .7z
(encrypted archive)..doc / .xls
(macro malware)..html / .htm
(phishing pages).
لو الملف malicious → ممكن تلاقيه متخزن كـ cache هنا:
C:\Users\<username>\AppData\Local\Microsoft\Windows\INetCache\Content.Outlook\
لو الملف موجود → يبقى اليوزر فعلاً فتحه من جوه Outlook.
b) Emails with Links
بعض ال attackers بيبعتوا URLs بدل attachments.
لازم تشيك لو الـ link text = actual hyperlink (مثلاً بيكتب "microsoft.com" لكن اللينك الحقيقي "ph1shing.biz").
بعد كده، تربط ده مع browser artefacts (history/cookies) عشان تعرف لو اليوزر فعلاً ضغط على اللينك.
c) Email Headers Analysis
من XstReader، دوس Properties → تلاقي headers زي:
From / Date → هل الإيميل legit؟
Received → الـ path من الـ sender للـ recipient.
X-Mailer → الـ email client المستخدم.
Extracting Emails with PowerShell
لو عايز تعمل quick parsing للـ PST/OST files، PowerShell + Redemption COM Library أو استخدام tools جاهزة زي pffexport
.
مثال بسيط بالـ PowerShell (باستخدام Outlook Application Object):
# Load Outlook COM Object
$outlook = New-Object -ComObject Outlook.Application
$namespace = $outlook.GetNamespace("MAPI")
# Access Inbox
$inbox = $namespace.GetDefaultFolder(6) # 6 = Inbox
$messages = $inbox.Items
foreach ($mail in $messages) {
Write-Host "Sender: $($mail.SenderName) <$($mail.SenderEmailAddress)>"
Write-Host "Subject: $($mail.Subject)"
Write-Host "Received: $($mail.ReceivedTime)"
Write-Host "Has Attachments: $($mail.Attachments.Count -gt 0)"
if ($mail.Attachments.Count -gt 0) {
foreach ($att in $mail.Attachments) {
Write-Host " -> Attachment: $($att.FileName)"
}
}
Write-Host "---------------------------"
}
ده يطبعلك كل الإيميلات اللي في Inbox مع الـ attachments.
Microsoft Teams Analysis
Microsoft Teams basically هو الـ chat platform اللي بيستخدموه الموظفين عشان يتكلموا ويشاركوا فايلات. From a forensics perspective، أهم artifacts هنا هتكون:
Chat messages (المحادثات).
File attachments (الملفات اللي اتبعتت).
Where to look?
Teams بيخزن الـ metadata بتاعه في الـ path ده:
C:\Users\<username>\AppData\Roaming\Microsoft\Teams
جواها هتلاقي IndexedDB folder. ده أهم فولدر بالنسبة لنا، لإنه بيخزن history للمحادثات والفائلات.
Parsing Teams Data
الـ raw files جوه .leveldb
و .blob
مش readable عادي. عشان كده بنستخدم tool زي:
Forensics.im (ms_teams_parser.exe)
Command example:
C:\Tools\ms_teams_parser.exe -f C:\Users\mike.myers\AppData\Roaming\Microsoft\Teams\IndexedDB\https_teams.microsoft.com_0.indexeddb.leveldb\ -o output.json
الـ output هنا بيكون JSON file، وده اللي هنبدأ نحلله.
Important Fields
لما تفتح الـ JSON هتلاقي records بأنواع مختلفة:
Contacts
displayName
→ اسم اليوزر.email
→ ايميله.mri
→ unique ID للـ contact.userPrincipalName
→ غالباً بيبقى نفس الإيميل.
Messages
conversationId
→ ID لكل محادثة.createdTime
→ timestamp بتاع الرسالة.content
→ نص الرسالة.creator
→ الـ sender (ممكن نربطه بالـ contacts table).properties
→ لو فيه attachments أو edits.
Automating with PowerShell
Instead of opening the JSON manually (وجع دماغ )، ممكن نستخدم PowerShell scripts:
Extract contacts into a lookup table.
Group messages by conversationId.
Print كل محادثة messages بالترتيب.
وده بيسهّل تتبع محادثة كاملة بدل ما نقعد ندوّر record by record.Parsing
Load JSON
$teams_metadata = Get-Content .\output.json | ConvertFrom-Json
Extract Users
$users = @{}
foreach ($data in $teams_metadata) {
if ($data.record_type -eq "contact") {
$users[$data.mri] = $data.userPrincipalName
}
}
Group Conversations
$messages = @{}
foreach ($data in $teams_metadata) {
if ($data.record_type -eq "message") {
if (-not $messages.ContainsKey($data.conversationId)) {
$messages[$data.conversationId] = @()
}
$messages[$data.conversationId] += $data
}
}
Print Messages
foreach ($conv in $messages.Keys) {
Write-Host "Conversation ID: $conv"
$conversation = $messages[$conv] | Sort-Object createdTime
foreach ($msg in $conversation) {
$sender = $users[$msg.creator]
$direction = if ($msg.isFromMe) { "Outbound" } else { "Inbound" }
Write-Host "[$($msg.createdTime)] $sender ($direction): $($msg.content)"
}
Write-Host "-----------------------------`n"
}
Attachments Investigation
لو عايزين نشوف لو فيه files attached:
foreach ($msg in $teams_metadata) {
if ($msg.record_type -eq "message" -and $msg.properties.files) {
foreach ($file in $msg.properties.files) {
Write-Host "Attachment: $($file.fileName)"
Write-Host "Type: $($file.fileType)"
Write-Host "Location: $($file.fileInfo.fileUrl)"
}
}
}
Microsoft OneDrive
Microsoft OneDrive بيستخدم للتخزين السحابي (Cloud Storage)، وكتير attackers بيستغلوا الـ sync feature علشان ينقلوا أو يخبوا data. علشان كده الـ artefacts بتاعته مهمة جدًا في التحقيقات.
Storage Locations
الـ data بتاعة OneDrive بتتسجل في أماكن كتير على الجهاز:
AppData Logs
C:\Users\<username>\AppData\Local\Microsoft\OneDrive\logs\
هنا بتلاقي logs عن عمليات الـ sync (upload/download).
Inside this folder, you’ll typically find:
Business* → for enterprise accounts.
Personal → for personal Microsoft accounts.
In enterprise environments, the Business folder is the most relevant.
Configuration
C:\Users\<username>\AppData\Local\Microsoft\OneDrive\settings\
فيه config files، زي GUIDs، machine ID، linked account.
Database (File Sync Info)
C:\Users\<username>\AppData\Local\Microsoft\OneDrive\settings\Business1\*.dat
بيسجل أيه اللي اتعمله sync.
Registry Keys
HKCU\Software\Microsoft\OneDrive
HKCU\Software\SyncEngines\Providers\OneDrive
هنا هنلاقي account info + device association.
Key Artefact Files
From the Business folder, two files are particularly important:
SyncEngine.odl
Contains all sync operations.
Logs file info + actions taken (upload, download, delete, move).
.odlgz
= compressed versions of the.odl
file.
SyncDiagnostics.log
Text-based log file.
Contains diagnostic sync info:
Upload/download progress.
Bytes transferred.
Number of files processed.
Parsing ODL Files
Unlike SyncDiagnostics.log
(which is plain text), the SyncEngine.odl files need parsing.
For this, we use:
OneDriveExplorer
Must be run as Administrator since it enumerates all users’ OneDrive directories.
..
Windows Network Analysis
Named-Pipes
الـ Named-Pipes دي وسيلة الويندوز بيستخدمها عشان البرامج تكلم بعض.
ممكن يبقى local → برنامجين ع نفس الجهاز.
أو network-based → برنامج بيكلم برنامج على جهاز تاني.
في الـ forensics: لو لقيت Named-Pipes network-based، ده ممكن يبقى دليل على:
رفع ملفات.
File share.
أو حتى Malware بيحاول يعمل lateral movement.
SRUM (System Resource Usage Monitor)
SRUM ده بيسجللك آخر 30–60 يوم من:
الـ applications اللي اشتغلت.
الشبكة (packets مبعوتة/مستقبلة).
نشاط الـ user (برامج أو services اتفتحت).
مكانه:
C:\Windows\System32\sru\SRUDB.dat
خلي بالك:
الملف ده locked وإنت شغال live.
فلازم تسحبه ببرنامج زي FTK Imager أو KAPE.
استخدام KAPE
مثال:
.\kape.exe --tsource C:\Windows\System32\sru --tdest C:\Users\<user>\Desktop\SRUM --tflush --mdest C:\Users\<user>\Desktop\MODULE --mflush --module SRUMDump --target SRUM
ده بيشغل processor اسمه srum_dump_csv.exe
ويطلعلك النتائج في CSV.
تحليل الـ SRUDB.dat
فيه tool اسمه srum-dump.
بتديها:
مكان الـ
SRUDB.dat
.التمبليت بتاعها (Excel).
مكان الـ output.
بعد شوية بيطلعلك Excel report.
Last updated