Volatility Playbook
Playbook สำหรับ Volatility — framework วิเคราะห์ memory dump แบ่งตามระดับ Beginner/Intermediate/Advanced พร้อม workflow, decision tree (เจอ dump แบบไหนใช้อะไร), cheatsheet และตัวอย่างโจทย์จริง (เนื้อหาเพื่อฝึกในงาน forensics ที่ได้รับอนุญาต/CTF)
1. Beginner — เริ่มต้นใช้งาน
Volatility อ่าน memory dump (RAM) เพื่อดึงสิ่งที่ disk ไม่มี: process ที่รัน, network, command history, malware fileless ขั้นแรกระบุ OS/profile ก่อนเสมอ — Vol3 ตรวจอัตโนมัติ, Vol2 ต้องหา profile เอง
# 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 เช่น Win7SP1x642. Intermediate — plugin หลักที่ใช้บ่อย
# 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!| ต้องการ | Vol3 plugin | Vol2 plugin |
|---|---|---|
| process list | windows.pslist | pslist |
| process tree | windows.pstree | pstree |
| process ซ่อน | windows.psscan | psscan |
| command line | windows.cmdline | cmdline / cmdscan |
| network | windows.netscan | netscan |
| injected code | windows.malfind | malfind |
| NTLM hash | windows.hashdump | hashdump |
| bash history | linux.bash | linux_bash |
3. Advanced — malware, dump, 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 consoles4. Decision Tree — เจอ dump แล้วทำอะไร
5. Workflow แนะนำ
- 1ระบุ OS/profile (windows.info / imageinfo) — ขั้นแรกเสมอ
- 2pslist + pstree หา process น่าสงสัย (ชื่อ/parent/path ผิด)
- 3cmdline / cmdscan ดูคำสั่งที่รัน
- 4netscan ดูการเชื่อมต่อ (C2)
- 5malfind หา injected code → dumpfiles ดึงไฟล์
- 6ตามโจทย์: hashdump / clipboard / registry printkey
6. Cheatsheet
- ระบุ OS:
vol -f dump windows.info(Vol3) /imageinfo(Vol2) - process:
windows.pstree+windows.psscan(ซ่อน) - คำสั่ง:
windows.cmdline/ Vol2cmdscan+consoles - network:
windows.netscan - malware:
windows.malfind→dumpfiles --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เช็คว่ามี Volatility ไหม: `vol -h` (vol3) หรือ `volatility -h` (vol2) — Kali มีมาให้แล้ว ถ้าไม่มี `pipx install volatility3`
- 2เช็คไฟล์ dump ก่อน: `file dump.raw` ดูว่าไฟล์ไม่เสีย/ขนาดสมเหตุสมผล
- 3ระบุ OS ก่อนเสมอ: Vol3 `vol -f dump.raw windows.info` หรือถ้าเป็น Linux `vol -f dump.raw banners.Banners`
- 4ถ้าใช้ Vol2 ต้องหา profile เอง: `volatility -f dump.raw imageinfo` แล้วจดค่า profile ที่ได้ (เช่น Win7SP1x64) มาใช้ต่อทุกคำสั่ง
- 5ดู process list หา process แปลกๆ: `vol -f dump.raw windows.pstree` (ดู parent-child ที่ผิดปกติ)
- 6สงสัย process ไหน → ดูคำสั่งที่รัน: `vol -f dump.raw windows.cmdline`
- 7ไม่เจอ process แปลก → ลอง `windows.psscan` (เจอ process ที่ถูกซ่อน/ตายไปแล้ว)
- 8โจทย์เกี่ยวกับ network/C2 → `vol -f dump.raw windows.netscan`
- 9โจทย์เกี่ยวกับ malware → `vol -f dump.raw windows.malfind` แล้วดึงไฟล์ด้วย `windows.dumpfiles --virtaddr
` - 10โจทย์เกี่ยวกับ credential → `vol -f dump.raw windows.hashdump`
- 11หา flag ตรงๆ ไม่เจอ → ลอง Vol2 เฉพาะทาง clipboard และ consoles (มักมี flag ซ่อนอยู่)
| ขั้นตอน/งาน | เครื่องมือใน Kali | ติดตั้งเพิ่ม (ถ้าไม่มี) | เครื่องมือออนไลน์ |
|---|---|---|---|
| วิเคราะห์ memory dump | volatility3 (vol), volatility2 | pipx install volatility3 | - |
| ระบุ OS/profile | windows.info, imageinfo | - | - |
| ดู process | windows.pstree, psscan | - | - |
| ดู network connection | windows.netscan | - | - |
| หา malware injected | windows.malfind, dumpfiles | - | - |
| dump credential | windows.hashdump, lsadump | - | crackstation.net (crack hash ที่ได้) |
| วิเคราะห์ต่อแบบ timeline | - | plaso/log2timeline | - |
หัวข้อที่เชื่อมโยง
โน้ตของฉัน
ยังไม่มีโน้ตสำหรับหัวข้อนี้