Windows forensics Random Notes

نوتس عشوائية

Windows Registry

ما هو الـ Windows Registry؟

الـ Registry هو قاعدة بيانات مركزية في Windows بتحتوي على:

  • بيانات تكوين النظام (System Configuration)

  • معلومات الهاردوير والبرامج

  • إعدادات وتفضيلات المستخدمين

  • أنشطة المستخدم (مثل الملفات اللي اتفتحت مؤخرًا أو الأجهزة المتصلة)

بالنسبة لـ Forensics → يعتبر مصدر غني بالأدلة لأنه يحتفظ بآثار استخدام الجهاز حتى بعد حذف الملفات أو البرامج.


مكونات الـ Registry

  1. Registry Keys → أشبه بالـ Folders (مفاتيح رئيسية وفرعية).

  2. Registry Values → البيانات اللي موجودة جوة كل Key.

  3. Registry Hive → ملف فيزيائي على القرص يحتوي على Keys + Subkeys + Values.

مثال:

  • NTUSER.DAT → بيخزن إعدادات مستخدم معين.

  • SOFTWARE → بيخزن إعدادات البرامج المثبتة.


الـ Root Keys الرئيسية

Windows بيوفر 5 Root Keys أساسية بتظهر في regedit.exe:

Root Key
الوصف
الاختصار

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

  1. اضغط Windows + R

  2. اكتب:

    regedit.exe
  3. هتفتح نافذة 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
Hive File
Mounted Key
الوصف

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>\
Hive File
Mounted Key
المسار
ملاحظات

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}\####
  • القيم (####) اللي بتدي التوقيتات:

    • 0064First Connection Time (أول مرة اتوصل).

    • 0066Last Connection Time (آخر مرة اتوصل).

    • 0067Last 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 ده بالظبط.


إزاي نربط الصورة الكاملة؟

  1. من USBSTOR → نجيب Vendor, Product, Serial.

  2. من Properties (83da6326…) → نحدد أول وآخر مرة اتوصل واتشال.

  3. من Portable Devices → نربط الـ GUID بالـ Volume Label (الاسم اللي شافه المستخدم).

  4. نقدر كمان نكمل من:

    • 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):

Hive File
Mapped Key Path
Purpose

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:

Hive File
Mapped Key Path
Purpose

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)

Hive Name
Description

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

ليه ده مهم جدًا في التحقيق؟

  1. Recover Deleted/Modified Evidence

    • ممكن تلاقي آثار في الـ Transaction Logs لعمليات Registry اتغيرت أو اتمسحت بعدين.

    • مثلًا: إضافة Tool في RunOnce Key وبعدين اتمسح → تفضل آثار في Log.

  2. تحديد الـ Timeline بدقة

    • الـ Logs بتبين تسلسل الأحداث وقت وقوع Crash أو Restart.

  3. كشف محاولات 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؟

  1. Folder Paths → كل فولدر اتفتح من Explorer (حتى لو اتشال بعد كده).

  2. Folder View Settings → إزاي كان متشاف (list, details, icons … إلخ).

  3. Timestamps → وقت أول مرة اتفتح، آخر مرة، تعديل.

  4. User Preferences → حجم النافذة، ترتيب الأيقونات، sort order.

  5. Deleted Folders → آثار فولدرات حتى بعد ما تم مسحها.

  6. Network / External Drives → فولدرات على shares أو USBs اتفتحت.

  7. 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 غني جدًا:

Evidence من LNK
قيمته في التحقيق

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

  1. افتح CMD كـ Admin.

  2. روح لمكان الأداة:

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

  1. هتلاقي:

    • كل 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 أو مستخدم عادي).

كيفية تحديد الأنشطة المشبوهة:

  1. Command → إذا بيشغّل exe من Temp أو AppData = مريب.

  2. User Context → هل مستخدم عادي عنده صلاحية يعمل Scheduled Task؟ مش منطقي.

  3. Execution Interval → مهام كل 3 ساعات أو عند تسجيل الدخول غير معتادة.

  4. 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.

كيفية تحديد الأنشطة المشبوهة:

  1. Service binary → لازم يكون ملف Service Legitimate. لو ملف عشوائي في System32 أو Temp → suspicious.

  2. User Context → عادةً بس الـ Admins يقدروا يضيفوا خدمات. لو مستخدم عادي عمل كده → malicious.

  3. Comparison to baseline → قارن مع الأجهزة الأخرى. لو الخدمة مش موجودة غير على جهاز واحد → suspicious.


أدوات

Event Viewer (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:

  1. روح للـ path ده: C:\Users\<User>\AppData\Local\Google\Chrome\User Data\Default\Extensions

  2. هتلاقي folders with random IDs → كل واحد بيمثل extension.

  3. افتح ملف 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.

  1. هتفتحلك واجهة على http://localhost:8080/

  2. اختار الـ 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 مهمة:

  1. 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 دي بتدل إن الملف كان مفتوح.


  1. 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.


  1. 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 بأنواع مختلفة:

  1. Contacts

    • displayName → اسم اليوزر.

    • email → ايميله.

    • mri → unique ID للـ contact.

    • userPrincipalName → غالباً بيبقى نفس الإيميل.

  2. Messages

    • conversationId → ID لكل محادثة.

    • createdTime → timestamp بتاع الرسالة.

    • content → نص الرسالة.

    • creator → الـ sender (ممكن نربطه بالـ contacts table).

    • properties → لو فيه attachments أو edits.


Automating with PowerShell

Instead of opening the JSON manually (وجع دماغ )، ممكن نستخدم PowerShell scripts:

  1. Extract contacts into a lookup table.

  2. Group messages by conversationId.

  3. 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
  }
}
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