สถานที่เกิดเหตุทิ้งร่องรอยเสมอ

ทีม ECOP DFIR Lab จึงจำลองเคสบนเครื่อง lab ของตัวเอง (ชื่อ host = `satosec`) เพื่อ **(1)** ทดสอบ methodology RDP Bitmap Cache Forensic ของ Ronald Craft บน Windows 10 22H2 รุ่นล่าสุด **(2)** สร้าง playbook ที่ทีม blue team ในไทยเอาไปใช้ได้จริง และ **(3)** กระจาย artifact ที่หลาย SOC ในไทยยังไม่รู้จักออกสู่วงกว้าง
- **เข้าใจว่า RDP Bitmap Cache คืออะไร** — artifact ที่ทรงพลังแต่ไม่มีใครพูดถึงในไทย
- **เห็น case study ครบขั้นตอน** — ตั้งแต่เก็บไฟล์ → OCR → reconstruct → ตีความ
- **ได้ GPO setting พร้อมใช้** — ปิด attack surface นี้ในองค์กรของคุณภายใน 5 นาที
- **ได้ playbook 5 ขั้น** — COLLECT → EXTRACT → OCR → PIVOT → RECONSTRUCT ที่ blue team เอาไป hunt ของจริงได้
RDP Bitmap Cache คืออะไร — ทำไมต้องสนใจ
ทุกครั้งที่คุณเปิด Remote Desktop (mstsc.exe) แล้ว login ไปยังเครื่องปลายทาง Windows จะทำสิ่งหนึ่งโดยที่คุณไม่รู้ตัว — มัน **แอบเก็บภาพหน้าจอที่ Server ส่งมาให้ลงบนเครื่อง client ของคุณ** เพื่อใช้ optimize bandwidth ครั้งหน้า ไม่ต้องโหลดข้อมูลซ้ำ
ไฟล์ที่ Windows ใช้เก็บคือ `Cache0000.bin` (รุ่นเก่า) กับ `bcache*.bmc` (Windows 8.1 ขึ้นไป) เก็บอยู่ที่ path `%LOCALAPPDATA%MicrosoftTerminal Server ClientCache` ข้างในเป็น tile ภาพขนาด 64×64 pixels นับพันชิ้น แต่ละ tile คือชิ้นส่วนของหน้าจอที่เคยปรากฏใน RDP session
ที่ทำให้ artifact นี้น่าสนใจสำหรับ DFIR มีอยู่ 3 ข้อหลัก:
- **Windows ไม่บอกผู้ใช้** ว่ามีการบันทึก — เก็บโดย default ของ mstsc.exe
- **ไม่ลบทิ้งเมื่อจบ session** — logout แล้วก็ยังอยู่ พร้อมให้กู้กลับ
- **เก็บเป็นภาพ ไม่ใช่ log** — ผู้โจมตีที่เก่งลบ Event Log ก็มักลืมไฟล์นี้
ผลลัพธ์คือ DFIR team มี "พยานเงียบ" ที่ฝ่ายโจมตีไม่ได้ทำลาย และยังบอกได้ละเอียดถึงระดับ "ผู้ใช้เห็นอะไรบนจอ"
เคส satosec — เราจำลองอะไรไว้
ใน lab ของ ECOP DFIR เราตั้ง scenario ง่าย ๆ แต่สมจริง: มี workstation ชื่อ `satosec` ที่ user RDP ไปยัง Windows 10 22H2 ในวง lab (IP `192.168.131.132`, DNS suffix `localdomain` — VMware) ผู้โจมตีสมมติได้ access บัญชี satosec แล้วทำกิจกรรมทั่วไปอย่าง recon เครือข่าย เปิดไฟล์ลับ และวาง malware ไว้บน Desktop
จากนั้นทีมเราเข้าทำตัวเป็น blue team ที่เพิ่งได้รับ alert ภารกิจคือ **ใช้ RDP Bitmap Cache อย่างเดียวสร้าง timeline ของเหตุการณ์ขึ้นมาให้ได้** เริ่มจากเก็บไฟล์ `Cache0000.bin` (1,767 tiles) และ `bcache24.bmc` (418 tiles) รวม **2,185 tiles** ขนาด 64×64 px ต่อชิ้น แล้วประกอบเป็นภาพใหญ่ + OCR สิ่งที่ทีมพบหลังจากนั้นทำให้เห็นภาพชัดว่า RDP cache สามารถ reconstruct สิ่งที่ผู้ใช้เห็นบนจอได้จริง — รวมถึง timestamp `5/21/2026 09:03 AM` ที่ปรากฏใน taskbar ของภาพ
กระบวนการตรวจสอบ 5 ขั้น — จาก cache สู่หลักฐาน
ทีม DFIR ใช้กระบวนการ 5 ขั้นที่ใครก็เลียนแบบได้ด้วย open source tool เริ่มจาก
(1) COLLECT** เก็บไฟล์ cache จาก path มาตรฐาน
(2) EXTRACT** ใช้เครื่องมือ `bmc-tools` ที่พัฒนาโดย ANSSI (หน่วยงานความมั่นคงไซเบอร์ของฝรั่งเศส) แยกไฟล์ออกเป็น tile 64×64 px ทีละชิ้น แล้วต่อรวมเป็นภาพใหญ่ภาพเดียว
(3) OCR** ส่งภาพรวมเข้า Tesseract OCR engine โดยใช้ trained data ทั้งภาษาไทยและภาษาอังกฤษ (tha+eng) เพื่อสกัดข้อความที่อ่านได้ พร้อมพิกัดของคำที่พบในภาพ
(4) PIVOT** ค้นหา keyword สำคัญในผลลัพธ์ OCR เช่น `ipconfig`, `password`, `.exe`, IP address หรือชื่อ tool ที่น่าสงสัย แล้วใช้พิกัดเพื่อย้อนกลับไปดู tile รอบ ๆ คำที่เจอ
(5) RECONSTRUCT** ประกอบ tile ที่มีตัวอักษรขนาดใหญ่ (font 48 pt หรือใหญ่กว่า) เพื่ออ่านเนื้อหาในไฟล์ที่ผู้ใช้เปิดบนจอ
กระบวนการนี้ใช้เครื่องมือเพียง 3 อย่าง คือ `bmc-tools` (ANSSI), Tesseract OCR และ Python — ทั้งหมดเป็น open source ทุกคนเข้าถึงได้
3 Evidence ที่พบจาก cache — พร้อมข้อจำกัด
Evidence #1 — Network Reconnaissance
Cache แสดง tile ของ Command Prompt บนเครื่องปลายทาง prompt `C:Userssatosec>` ตามด้วยคำสั่ง `ipconfig` (เห็นบางส่วน `ipco…`) และ output ที่แสดง IPv4 `192.168.131.132`, DNS Suffix `localdomain`, Subnet Mask `255.255.255.0` ครบ การตีความเบื้องต้นคือเป็น network discovery เพื่อรวบรวมข้อมูลโครงสร้างเครือข่าย ซึ่งมัก map ไปยัง MITRE ATT&CK technique T1016 (System Network Configuration Discovery)
Evidence #2 — Malware on Desktop
Cache แสดง tile ของ desktop wallpaper พบ icon ขนาดเล็ก พร้อม label สีขาว `satosec` อยู่ใต้ icon เนื่องจาก Windows ซ่อนนามสกุล `.exe` เป็นค่า default ทำให้สิ่งที่ผู้ใช้เห็นเป็นเพียงคำว่า "satosec" ตรงกับชื่อ `satosec.exe` ที่ log SOC ระบุว่าเป็น malware รอบ ๆ icon ยังเห็น taskbar พร้อม timestamp 09:03 AM 5/21/2026 ยืนยันว่าเหตุการณ์เกิดในช่วงเวลาที่ทีมสอบสวน
Evidence #3 — Credential Disclosure
ผู้ใช้เปิดไฟล์ชื่อ `password` ใน Notepad โดยตั้ง font เป็น **Consolas ขนาด 48 pt** (ใหญ่ผิดปกติ น่าจะตั้งใจให้อ่านง่ายเพื่อนำเสนอ) Tesseract อ่านเศษตัวอักษรได้บางส่วน fragmentary เช่น `Iseatos[ec]`, `ord`, `ser`, `at`, `bYw` ประกอบกับชื่อไฟล์ `password` ประเมินเบื้องต้นว่าอาจเป็นข้อความรูปแบบ `password is satosec` หรือคล้ายกัน
**ข้อจำกัดสำคัญที่ต้องเข้าใจ:** cache เก็บเป็นเศษ tile 64×64 px เรียงตาม index ไม่ใช่ลำดับบนหน้าจอจริง อีกทั้ง Font dialog เปิดบังบางส่วนตอน cache บันทึก ทำให้ไม่สามารถ reconstruct เป็นข้อความเต็มได้ 100% confidence จึงอยู่ในระดับปานกลาง การยืนยันต้องเปิดไฟล์ต้นทางบน Server โดยตรง
4 บทเรียนสำคัญจากเคสนี้
**บทที่ 1 — RDP cache เป็นพยานเงียบ:** ทุกครั้งที่เปิด mstsc.exe เครื่อง client จะเก็บภาพหน้าจอเป็นร่องรอย ลงไฟล์ `.bin`/`.bmc` โดยไม่บอกผู้ใช้ artifact นี้กลายเป็นหลักฐานชั้นดีของฝ่าย IR ที่ฝ่ายโจมตีมักไม่รู้
**บทที่ 2 — ภาพหน้าจอบอกสิ่งที่ทำ ไม่บอกใครทำ:** cache เก็บแค่ pixel ไม่มี username/timestamp ละเอียดในตัว ต้อง correlate กับ Event Log Security 4624 และ TerminalServices-RDPClient เพื่อ attribute ให้แน่ใจ
**บทที่ 3 — เปิดอะไรบน RDP เท่ากับถูกถ่ายภาพไว้:** ทุกครั้งที่เปิดไฟล์ password, config หรือรูปลับผ่าน RDP ข้อมูลจะถูกถ่ายเป็นภาพเก็บลงเครื่อง client ทันที ใครได้ cache ไปก็เหมือนนั่งดูจอพร้อมเรา
**บทที่ 4 — ปิดได้ผ่าน GPO:** วิธีลด attack surface ของ artifact นี้ทำได้ทันทีผ่าน Group Policy:
```
Computer Configuration → Administrative Templates →
Windows Components → Remote Desktop Services →
Remote Desktop Connection Client →
Turn off persistent bitmap caching → Enabled
```
หลัง push GPO นี้แล้ว Windows จะไม่บันทึก cache ลงดิสก์อีก เก็บใน RAM เท่านั้น และล้างเมื่อจบ session ลด artifact ที่ผู้โจมตีอาจเข้าถึงได้อย่างมีนัยสำคัญ
ทรัพยากรเพิ่มเติมจากเคสนี้ — เอาไปใช้ต่อได้เลย
นอกจากบทความนี้ ECOP ทำชุดเอกสารเสริม 3 ชิ้นสำหรับทีมที่อยากนำ methodology ไปใช้จริง:
**(1) Forensic Investigation Report (PDF 16 หน้า)** — เคส satosec ฉบับเต็ม MITRE ATT&CK mapping, timeline, 5 findings พร้อม caveats, Priority Matrix และ Splunk SPL Hunt 4 query ใช้ hunt ของจริงได้
**(2) IOC Bundle (STIX 2.1 + CSV)** — import เข้า MISP / OpenCTI / TIP ของคุณได้ทันที ครอบคลุม atomic indicators และ behavioral patterns ทั้งหมดจากเคส
**(3) Carousel slides 6 EP** — ออกแบบสำหรับใช้สอน junior หรือเปิด tabletop ในทีม สื่อสารกับ audience ที่ไม่ใช่ DFIR ก็เข้าใจ
ติดต่อ ECOP DFIR Team เพื่อขอ bundle ที่ **info@bcg-ecop.net**
เครดิตและบทความต้นทาง
วิธีการทั้งหมดในบทความนี้ ECOP DFIR Team ประยุกต์มาจากบทความ **"Blind Forensics with the RDP Bitmap Cache"** ของ Ronald Craft ที่เผยแพร่ใน Medium ซึ่งเป็น primary methodology source ที่ทำให้เคสนี้สำเร็จได้ เราขอขอบคุณ Ronald Craft สำหรับงานเขียนที่ช่วยยกระดับ DFIR practice ของวงการ และเป็น case study ที่แสดงให้เห็นว่า DFIR knowledge เมื่อถูกแบ่งปันอย่างเปิดเผย สามารถส่งต่อจาก community หนึ่งไปยังอีก community ในประเทศที่ต่างกันได้
**อ่านบทความต้นฉบับของ Ronald Craft:**
https://medium.com/@ronald.craft/blind-forensics-with-the-rdp-bitmap-cache-16e0c202f91c
เกี่ยวกับ ECOP DFIR
ECOP Thailand เป็นผู้ให้บริการ Cyber Threat Intelligence และ Digital Forensics & Incident Response สำหรับองค์กรไทย ทีม DFIR ของเราเชี่ยวชาญในการวิเคราะห์ artifact ระดับลึกที่ทีม SOC ทั่วไปไม่ได้ครอบคลุม รวมถึง memory forensics, malware reverse engineering, threat hunting ระยะยาว และ executive incident reporting
หากองค์กรของท่านต้องการความช่วยเหลือเรื่อง forensic investigation, IR retainer, tabletop exercise หรือ DFIR training สำหรับทีม security สามารถติดต่อเราได้ที่ **info@bcg-ecop.net** หรือเยี่ยมชม **ecop.co.th** เพื่อดูบริการเพิ่มเติม
*บทความฉบับนี้เป็น TLP:GREEN เผยแพร่เพื่อยกระดับ DFIR awareness ในวงการ cybersecurity ไทย ข้อมูลในเคส satosec ได้ผ่านการ sanitize เพื่อปกป้องข้อมูลของทีม ห้ามใช้ข้อมูลในบทความเพื่อโจมตีระบบใด ๆ หากใช้ขอให้ใช้เพื่อการเรียนรู้และการป้องกันเท่านั้น*


