اعرف اللي قصادك. احمي أرضك.
الفرق الزرقاء — الدفاع

Memory Forensics — Volatility بيفضح كل حاجة

Memory capture و Vol3 plugins و rootkit hunting و injection

المستوى
خبير
المدة
100m
الترتيب
الدرس 64 من 85
ForensicsVolatilityMemoryRootkitDFIR

ليه الذاكرة أصعب وأهم من الـ Disk؟

تشبيه يقرّب الفكرة
انت محقق في جريمة في فندق. تبدأ منين؟ تفتح دفتر تسجيل النزلاء؟ ده الـ Disk — بيقولك مين حجز ومين خرج. بس مش هيقولك مين كان في الردهة لحظة الجريمة. الذاكرة (RAM) هي الردهة نفسها لحظة الحادثة: مين كان بيتكلم، أنهي عمليات شغّالة، أنهي اتصالات شبكة مفتوحة. ده اللي المالوير ما يقدرش يخبّيه عن الذاكرة. - طب يا حضرتك ما الـ EDR بياخد كل ده؟؟ يا نجم الجيل.. الـ EDR بيشوف ظاهر الكلام بس. الـ rootkit الجاد بيلعب مع الـ kernel نفسه فبيعمي عين الـ EDR. اللي بيكشفه؟ snapshot للذاكرة بيتقرأ offline. بس.

في 2025، أكتر من 70% من الـ malware المتطوّر بقى fileless — ما بيكتبش على الـ Disk خالص، عايش كله في الذاكرة. Cobalt Strike beacons، Sliver implants، PowerShell Empire، Meterpreter — كلهم في RAM بس. لو انت بتبصّ على الـ Disk بس، انت بتتفرّج على نص الفيلم.

الدرس ده عن Volatility 3، الإطار المعياري لتحليل dump الذاكرة على Windows / Linux / macOS. مش لأنه "الأحدث" — لأنه شغل Aaron Walters و13 سنة من البحث. مفيش بديل.

التقاط الذاكرة (Acquisition)

1
Windows
powershell
# WinPmem (مفتوح المصدر، Velociraptor الآن)
.\winpmem.exe -o C:\evidence\memory.raw

# Magnet RAM Capture (تجاري، GUI، صفر آثار)
# DumpIt — أبسط، single command

# Hyper-V / VMware: snapshot ثم vmss → vmem
# vmss2core أو vol3 يقرأ vmem مباشرة
2
Linux
bash
# AVML — Microsoft، يعمل بدون kernel module
sudo ./avml memory.lime

# LiME (Linux Memory Extractor)
sudo insmod lime.ko "path=/evidence/mem.lime format=lime"

# /proc/kcore — حذر: قد يكون متاحاً للقراءة، يحتاج dwarf للقراءة
3
السلسلة الجنائية (Chain of Custody)
SHA256 فوراً بعد الالتقاط. وقّع رقمياً. سجّل من، متى، وأي أداة. الذاكرة لا يمكن إعادة التقاطها — اللحظة فات.

Volatility 3 — الـ plugins الأساسية

bash
# تحديد البروفايل (Vol3 يفعل ذلك تلقائياً غالباً)
vol -f mem.raw windows.info

# 1. العمليات الجارية
vol -f mem.raw windows.pslist
vol -f mem.raw windows.pstree    # هرمي
vol -f mem.raw windows.psscan    # يكشف العمليات المخفية

# 2. الاتصالات الشبكية (مفتاح اكتشاف C2)
vol -f mem.raw windows.netscan
vol -f mem.raw windows.netstat

# 3. مكتبات DLL لكل عملية
vol -f mem.raw windows.dlllist --pid 1234

# 4. خيوط (Threads) و callstacks
vol -f mem.raw windows.threads --pid 1234

# 5. Registry hive scan
vol -f mem.raw windows.registry.hivelist
vol -f mem.raw windows.registry.printkey --key "Software\Microsoft\Windows\CurrentVersion\Run"

اكتشاف Process Injection

الـ injection (T1055) هو حقن code في عملية شرعية لإخفاء النشاط. Volatility يكشفه عبر تحليل memory regions.

1
malfind — السلاح الأول
bash
vol -f mem.raw windows.malfind
# يكشف صفحات RWX غير مرتبطة بملف على القرص — عَلَم أحمر
$ vol -f compromise.raw windows.malfind
Process: explorer.exe PID: 4532 VAD: 0x7ff5d0000000-0x7ff5d000ffff Protection: PAGE_EXECUTE_READWRITE Notes: Hexdump shows MZ header — DLL injected without LoadLibrary [!] Injection detected
2
hollowfind
يكشف Process Hollowing (إفراغ عملية شرعية وملؤها بـ payload).
bash
vol -f mem.raw windows.hollowfind
3
استخرج الـ payload
bash
vol -f mem.raw windows.dumpfiles --pid 4532 --virtaddr 0x7ff5d0000000
# تستطيع تحليله بـ binwalk / ghidra لاحقاً

استخراج الاعتمادات

bash
# hashes من LSASS dump
vol -f mem.raw windows.hashdump
vol -f mem.raw windows.lsadump
vol -f mem.raw windows.cachedump

# Mimikatz inside memory analysis
vol -f mem.raw windows.mimikatz

حالة عملية: تحليل rootkit

1
مؤشر أولي
EDR رصد عملية باسم svchost.exe لكن من user context غير اعتيادي. dump الذاكرة فوراً.
2
فحص psscan vs pslist
bash
vol -f mem.raw windows.pslist > pslist.txt
vol -f mem.raw windows.psscan > psscan.txt
diff pslist.txt psscan.txt
# عمليات في psscan وليست في pslist = مخفية بـ DKOM rootkit
3
فحص ssdt و callbacks
bash
vol -f mem.raw windows.ssdt        # System Service Descriptor Table — kernel hooks
vol -f mem.raw windows.callbacks   # kernel callbacks — مكان شائع لـ rootkits
vol -f mem.raw windows.modules     # المكتبات النواة المحمّلة
vol -f mem.raw windows.modscan     # عبر pool tag scan — يكشف modules مخفية

مصادر

  • Volatility 3 documentation — volatility3.readthedocs.io
  • The Art of Memory Forensics — Ligh, Case, Levy, Walters
  • SANS FOR508 — Advanced Incident Response, Threat Hunting
  • 13Cubed YouTube — Volatility walkthroughs
خلّصت الدرس؟

علّمه علشان تفضل عارف انت فين على السكة.