คลัง
playbooks

Volatility Playbook

Playbook สำหรับ Volatility — framework วิเคราะห์ memory dump แบ่งตามระดับ Beginner/Intermediate/Advanced พร้อม workflow, decision tree (เจอ dump แบบไหนใช้อะไร), cheatsheet และตัวอย่างโจทย์จริง (เนื้อหาเพื่อฝึกในงาน forensics ที่ได้รับอนุญาต/CTF)

BeginnerIntermediateAdvanced#volatility#memory#forensics#playbook#vol3#vol2#ctf

1. Beginner — เริ่มต้นใช้งาน

Volatility อ่าน memory dump (RAM) เพื่อดึงสิ่งที่ disk ไม่มี: process ที่รัน, network, command history, malware fileless ขั้นแรกระบุ OS/profile ก่อนเสมอ — Vol3 ตรวจอัตโนมัติ, Vol2 ต้องหา profile เอง

เนื้อหานี้เพื่อฝึกในงาน forensics ที่ถูกต้อง (CTF, lab) เท่านั้น
ขั้นแรกเสมอ — ระบุ OS
# Vol3 (ตรวจอัตโนมัติ)
vol -f dump.raw windows.info       # ยืนยัน Windows + build
vol -f dump.raw banners.Banners    # Linux: หา kernel banner

# Vol2 (ต้องหา profile)
volatility -f dump.raw imageinfo   # → ได้ profile เช่น Win7SP1x64
ทุกคำสั่งถัดไปต้องอ้างอิง OS/profile นี้

2. Intermediate — plugin หลักที่ใช้บ่อย

process + network + cmdline (Vol3)
# process
vol -f dump.raw windows.pslist
vol -f dump.raw windows.pstree     # parent-child (หา process แปลก)
vol -f dump.raw windows.psscan     # เจอ process ที่ซ่อน/ตาย

# command line (มักมีใบ้/flag)
vol -f dump.raw windows.cmdline

# network
vol -f dump.raw windows.netscan

# Linux
vol -f dump.raw linux.pslist
vol -f dump.raw linux.bash         # bash history!
pstree หา process ที่ parent ผิด; cmdline เห็นคำสั่งที่รัน; linux.bash = history
ต้องการVol3 pluginVol2 plugin
process listwindows.pslistpslist
process treewindows.pstreepstree
process ซ่อนwindows.psscanpsscan
command linewindows.cmdlinecmdline / cmdscan
networkwindows.netscannetscan
injected codewindows.malfindmalfind
NTLM hashwindows.hashdumphashdump
bash historylinux.bashlinux_bash

3. Advanced — malware, dump, registry

malware hunting + ดึงไฟล์ + registry
# injected code (malware fileless)
vol -f dump.raw windows.malfind

# DLL ของ process น่าสงสัย
vol -f dump.raw windows.dlllist --pid 1234

# ดึงไฟล์ออกจาก memory
vol -f dump.raw windows.filescan | grep -i suspicious
vol -f dump.raw windows.dumpfiles --virtaddr 0x...

# credential
vol -f dump.raw windows.hashdump    # NTLM hashes
vol -f dump.raw windows.lsadump

# registry
vol -f dump.raw windows.registry.hivelist
vol -f dump.raw windows.registry.printkey --key "Software\Microsoft\..."

# Vol2 เด่น: clipboard, consoles (มักมี flag)
volatility -f dump.raw --profile=X clipboard
volatility -f dump.raw --profile=X consoles
malfind = หัวใจ malware analysis; dumpfiles ดึงไฟล์; Vol2 clipboard/consoles มักมี flag ใน CTF

4. Decision Tree — เจอ dump แล้วทำอะไร

วิเคราะห์ memory dump
ได้ memory dump (.raw/.mem/.vmem/.dmp)
ระบุ OS/profile
windows.info / banners.Banners / imageinfo
OS อะไร?
Windowswindows.* plugins
Linuxlinux.* plugins
pslist/pstree → หา process น่าสงสัย
ชื่อแปลก, parent ผิด, path ผิด
cmdline ของ process นั้น
เห็นคำสั่ง/argument (มักมีใบ้)
โจทย์ถามอะไร?
malwaremalfind → dumpfiles
network/C2netscan
credentialhashdump / lsadump
user activitycmdline / consoles / clipboard
เจอ flag / หลักฐาน

5. Workflow แนะนำ

  1. 1ระบุ OS/profile (windows.info / imageinfo) — ขั้นแรกเสมอ
  2. 2pslist + pstree หา process น่าสงสัย (ชื่อ/parent/path ผิด)
  3. 3cmdline / cmdscan ดูคำสั่งที่รัน
  4. 4netscan ดูการเชื่อมต่อ (C2)
  5. 5malfind หา injected code → dumpfiles ดึงไฟล์
  6. 6ตามโจทย์: hashdump / clipboard / registry printkey

6. Cheatsheet

  • ระบุ OS: vol -f dump windows.info (Vol3) / imageinfo (Vol2)
  • process: windows.pstree + windows.psscan (ซ่อน)
  • คำสั่ง: windows.cmdline / Vol2 cmdscan + consoles
  • network: windows.netscan
  • malware: windows.malfinddumpfiles --virtaddr
  • creds: windows.hashdump / lsadump
  • Linux: linux.bash (history), linux.pslist
  • CTF เด่น: Vol2 clipboard + consoles (มักมี flag)

7. ตัวอย่างโจทย์

โจทย์: หา process ที่เป็น malware — รัน pstree เห็น process ชื่อใกล้เคียงของจริง (เช่น svch0st.exe) parent ผิดปกติ → cmdline เห็นว่ารันจาก temp + argument น่าสงสัย → malfind ยืนยัน injected code → dumpfiles ดึง binary ออกมาวิเคราะห์ต่อ

โจทย์: flag อยู่ใน RAM — ลอง consoles/cmdscan (Vol2) ดูสิ่งที่ผู้ใช้พิมพ์, clipboard ดูสิ่งที่ copy, หรือ filescan | grep flag แล้ว dumpfiles ไฟล์นั้น

🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ

สมมติได้ memory dump มาจากโจทย์ forensics (.raw/.mem/.vmem) มีแค่ Kali เปล่าๆ ทำตามนี้ทีละขั้นเพื่อหาหลักฐาน/flag

  1. 1เช็คว่ามี Volatility ไหม: `vol -h` (vol3) หรือ `volatility -h` (vol2) — Kali มีมาให้แล้ว ถ้าไม่มี `pipx install volatility3`
  2. 2เช็คไฟล์ dump ก่อน: `file dump.raw` ดูว่าไฟล์ไม่เสีย/ขนาดสมเหตุสมผล
  3. 3ระบุ OS ก่อนเสมอ: Vol3 `vol -f dump.raw windows.info` หรือถ้าเป็น Linux `vol -f dump.raw banners.Banners`
  4. 4ถ้าใช้ Vol2 ต้องหา profile เอง: `volatility -f dump.raw imageinfo` แล้วจดค่า profile ที่ได้ (เช่น Win7SP1x64) มาใช้ต่อทุกคำสั่ง
  5. 5ดู process list หา process แปลกๆ: `vol -f dump.raw windows.pstree` (ดู parent-child ที่ผิดปกติ)
  6. 6สงสัย process ไหน → ดูคำสั่งที่รัน: `vol -f dump.raw windows.cmdline`
  7. 7ไม่เจอ process แปลก → ลอง `windows.psscan` (เจอ process ที่ถูกซ่อน/ตายไปแล้ว)
  8. 8โจทย์เกี่ยวกับ network/C2 → `vol -f dump.raw windows.netscan`
  9. 9โจทย์เกี่ยวกับ malware → `vol -f dump.raw windows.malfind` แล้วดึงไฟล์ด้วย `windows.dumpfiles --virtaddr `
  10. 10โจทย์เกี่ยวกับ credential → `vol -f dump.raw windows.hashdump`
  11. 11หา flag ตรงๆ ไม่เจอ → ลอง Vol2 เฉพาะทาง clipboard และ consoles (มักมี flag ซ่อนอยู่)
จับมือวิเคราะห์ memory dump
เช็ค volatility พร้อมใช้ไหม
vol -h / volatility -h
✅ ใช้ได้→ เช็คไฟล์ dump
❌ ไม่มี→ pipx install volatility3
ระบุ OS/profile
windows.info / banners.Banners / imageinfo (vol2)
✅ ระบุได้ชัด→ ไปดู process
❌ ระบุไม่ได้/dump เสีย→ เช็คไฟล์ dump.raw ครบไหม หรือลอง vol2/vol3 สลับกัน
pstree/psscan หา process น่าสงสัย
เจอ process แปลกไหม?
✅ เจอ (ชื่อ/parent ผิดปกติ)→ ดู cmdline + malfind
❌ ดูปกติหมด→ ดู netscan/hashdump ตามโจทย์ถาม
โจทย์ถามอะไร?
✅ malware→ malfind → dumpfiles
✅ network/C2→ netscan
✅ credential→ hashdump/lsadump
❌ ไม่รู้จะดูอะไรต่อ→ ลอง vol2 clipboard/consoles (มักมี flag)
เจอ flag/หลักฐาน
ขั้นตอน/งานเครื่องมือใน Kaliติดตั้งเพิ่ม (ถ้าไม่มี)เครื่องมือออนไลน์
วิเคราะห์ memory dumpvolatility3 (vol), volatility2pipx install volatility3-
ระบุ OS/profilewindows.info, imageinfo--
ดู processwindows.pstree, psscan--
ดู network connectionwindows.netscan--
หา malware injectedwindows.malfind, dumpfiles--
dump credentialwindows.hashdump, lsadump-crackstation.net (crack hash ที่ได้)
วิเคราะห์ต่อแบบ timeline-plaso/log2timeline-
🚑 ถ้าตันสนิท ลองท่าถัดไป: (1) เจอ process/ไฟล์ที่ดึงออกมาแล้วต้อง reverse ต่อ → ไป Ghidra Playbook (2) ต้องเรียงลำดับเหตุการณ์ทั้งระบบไม่ใช่แค่ RAM → ไป Timeline Analysis (3) มี disk image ให้ด้วยไม่ใช่แค่ memory → ไป Disk Analysis (4) plugin ทั้งหมดไม่มีอะไรตรงโจทย์ → ลองเช็คว่าเป็น Linux/Mac memory แทน Windows (banners.Banners) เพราะ plugin ชุดจะต่างกันทั้งหมด

โน้ตของฉัน

ยังไม่มีโน้ตสำหรับหัวข้อนี้