ข้ามไปที่เนื้อหา

การเมานต์อิมเมจดิสก์

juntei mount ทำให้ไฟล์ภายในอิมเมจดิสก์ VHDX / E01 / Ex01 อ่านได้ผ่านไดเรกทอรีแบบอ่านอย่างเดียวขณะคำสั่งทำงาน เครื่องมืออย่าง Hayabusa และ Juntei สามารถตรวจสอบได้โดยไม่ต้องแยกไฟล์หรือใช้สิทธิ์ root ฟังก์ชันนี้ใช้ FUSE และทำงานบน Linux ตัวอ่านและไลบรารีการเมานต์ได้รับการดูแลใน ys-vhdx-parser

mkdir /mnt/host1
juntei mount host1-triage.vhdx /mnt/host1

ในเทอร์มินัลอื่น:

hayabusa dfir-timeline -d /mnt/host1 -o host1-hayabusa.csv
juntei auto-parse -d /mnt/host1 -o host1-juntei

กด Ctrl+C ในเทอร์มินัลแรกเพื่อยกเลิกการเมานต์ หรือเรียกใช้ fusermount3 -u /mnt/host1

สิ่งที่การเมานต์แสดง

  • ไฟล์ของวอลุ่ม NTFS จะปรากฏที่จุดเมานต์ อิมเมจที่รวบรวมอาจมีไดเรกทอรีเช่น C และ LongFileNames พร้อมเมทาดาทาวอลุ่มเช่น $MFT หากมีหลายวอลุ่ม NTFS จะแสดงเป็น Volume1, Volume2 เป็นต้น
  • ทุกไฟล์เป็นแบบอ่านอย่างเดียวและเป็นของเจ้าของจุดเมานต์ เวลาของไฟล์คือเวลาใน $STANDARD_INFORMATION ของ NTFS
  • ชื่อจะแสดงตามที่ NTFS จัดเก็บไว้ และการค้นหาชื่อต้องตรงกันทุกตัวอักษร ไม่แสดงชื่อ DOS 8.3 และ alternate data stream
  • ไฟล์ที่ถูกบีบอัดจะถูกคลายการบีบอัด (สูงสุดไฟล์ละ 1 GiB) ไม่สามารถอ่านไฟล์ที่เข้ารหัสด้วย EFS ได้

หลักฐานจะไม่ถูกเปลี่ยนแปลง

อิมเมจถูกเปิดแบบอ่านอย่างเดียวและการเมานต์ปฏิเสธการเขียน หาก VHDX ไม่ได้ปิดอย่างสมบูรณ์ log ที่ค้างอยู่จะถูกนำมาใช้ในหน่วยความจำโดยไม่เขียนกลับลงอิมเมจ ตัวเขียน DiscUtils บางตัวปล่อยคำสั่งกระโดดและลายเซ็น 55 AA ในบูตเซกเตอร์ NTFS เป็นศูนย์ Juntei อ่านวอลุ่มเหล่านี้ได้ตามสภาพเดิม

การใช้งาน

Version: 1.1.0 (CODE BLUE Release)
Yamato Security (https://github.com/Yamato-Security/juntei - @SecurityYamato)

Usage:
  juntei mount <IMAGE> <MOUNTPOINT> [OPTIONS]

Input:
  <IMAGE>       The disk image (VHDX or E01; a split E01 image from its first segment)
  <MOUNTPOINT>  An existing directory to mount its NTFS volumes at, read-only, until Ctrl+C

General Options:
  -h, --help  Show the help menu

Display Settings:
  -K, --no-color  Disable color output
  -q, --quiet     Quiet mode: do not display the launch banner

การวิเคราะห์อิมเมจแบบเนทีฟ

เมื่อใช้ --vhdx คำสั่ง auto-parse อ่าน VHDX แบบเนทีฟบน Linux, macOS และ Windows ผ่าน ys-vhdx-parser โดยไม่ต้องเมานต์ OS ใช้ FUSE หรือมีสิทธิ์ผู้ดูแลระบบ

# A directory of images, searched recursively
juntei auto-parse -d /cases/vhdx --vhdx -o parsed
# One image
juntei auto-parse -d host1.vhdx --vhdx -o parsed -j timeline.jsonl

พาร์เซอร์ต้องใช้พาธ Juntei จึงคัดลอกไฟล์ที่พาร์เซอร์อ่านไปยังพื้นที่ชั่วคราวส่วนตัวด้วยบัฟเฟอร์จำกัด ได้แก่ ไฮฟ์รีจิสทรีและล็อกธุรกรรม ไฟล์เมทาดาทา NTFS ฐานข้อมูล ไฟล์ Prefetch ช็อตคัต Jump List ไฟล์ Outlook และโฟลเดอร์กักกันของ Defender ไฟล์อื่นทั้งหมดจะเป็นไฟล์แทนที่ว่างที่คงเวลาแก้ไขเดิมไว้ ไดเรกทอรีและพาธจึงดูเหมือนบนดิสก์ persistence-hunter จะอ่านเนื้อหาของไฟล์แทนที่จากอิมเมจเฉพาะเมื่อจำเป็น เช่น ไฟล์ปฏิบัติการที่รายการ persistence อ้างถึง ต้องมีพื้นที่สำหรับไฟล์ที่คัดลอก นอกเหนือจากผลลัพธ์ หากรองรับจะเขียนพื้นที่ศูนย์เป็นพื้นที่ sparse โดยรักษาชื่อ โครงสร้าง ฮาร์ดลิงก์ และเวลาแก้ไข เวลาแหล่งข้อมูล LNK และ Jump List มาจากสแนปช็อตเมทาดาทา NTFS เดิม ไม่ใช่สำเนาชั่วคราว เมื่อจบตามปกติรวมถึงกรณีพาร์เซอร์ผิดพลาดจะลบสำเนา แต่การบังคับหยุดอาจทิ้งไฟล์ไว้ ต้นฉบับอ่านอย่างเดียวและใช้ล็อก VHDX ที่ค้างในหน่วยความจำเท่านั้น

การค้นหาโฮสต์ CSV/JSON/JSONL และ -j ใช้ขั้นตอนปกติ Image ใน manifest.json ระบุอิมเมจต้นฉบับ ส่วน EvidenceRoot ระบุพาธสัมพัทธ์ภายใน ข้อผิดพลาดการอ่านและชื่อไม่ปลอดภัยอยู่ใน ImageErrors และแถวล้มเหลวของ manifest.csv จะเก็บผลที่อ่านได้และคืนรหัส 1 หากอินพุตไม่สมบูรณ์ ไม่เปลี่ยนชื่ออันตรายหรือกำกวม และไม่แยกสตรีม NTFS ที่มีชื่อเป็นไฟล์เพิ่มเติม อาร์ติแฟกต์ที่รวบรวมเป็นไฟล์ปกติยังใช้ได้

คำสั่ง mount แยกต่างหาก เปิดระบบไฟล์ให้โปรแกรมอื่นและยังต้องใช้ Linux FUSE โดย auto-parse --vhdx ไม่ได้เรียกใช้คำสั่งนี้

พื้นที่เตรียมข้อมูลใช้ไดเรกทอรีส่วนตัวบนระบบไฟล์ของผลลัพธ์เป็นค่าเริ่มต้น ใช้ --temp-dir เพื่อเลือกไดเรกทอรีที่มีอยู่บนดิสก์อื่น เมทาดาทาต้นฉบับเก็บแยกบนระบบไฟล์ผลลัพธ์ จึงยังแยกวิเคราะห์ไฟล์ที่อ่านได้แล้วเมื่อดิสก์เตรียมข้อมูลเต็ม ควรสำรองพื้นที่สำหรับทั้งสำเนาและผลลัพธ์ หากวอลุ่มผลลัพธ์เต็มจะบันทึกผลไม่ได้ Ctrl+C หยุดโปรเซสตัวแยกวิเคราะห์ ล้างพื้นที่ส่วนตัว และออกด้วยรหัส 130 แต่ SIGKILL หรือไฟดับยังอาจทิ้งสำเนาไว้ การค้นหาอิมเมจจะข้ามไดเรกทอรีย่อยที่อ่านไม่ได้ แต่รากอินพุตที่อ่านไม่ได้ยังเป็นข้อผิดพลาด

ไดเรกทอรีเตรียมข้อมูลต้องอยู่นอกไดเรกทอรีผลลัพธ์ บน Linux และ macOS สัญญาณ SIGTERM และ SIGHUP จะหยุดโปรเซสตัวแยกวิเคราะห์และล้างพื้นที่ทำงานด้วย

juntei auto-parse --vhdx -d evidence.vhdx -o parsed --temp-dir /large-disk/work

อิมเมจดิสก์ E01 และ Ex01

--e01 อ่านอิมเมจแบบกายภาพ EWF1 (.E01) และ EWF2 (.Ex01) แบบเนทีฟบน Linux, macOS และ Windows โดยไม่ต้องใช้ FUSE การเมานต์ของ OS หรือสิทธิ์ผู้ดูแลระบบ ใช้ ys-e01-parser และกระบวนการแยกวิเคราะห์ NTFS เดียวกับที่อธิบายไว้ข้างต้น

สำหรับอิมเมจที่แบ่งส่วน ให้ระบุส่วนแรก เก็บไฟล์ประกอบทั้งหมดรวมถึง .E02 ไว้ข้างกันด้วยชื่อเดิม รองรับทั้งดิสก์เต็ม (MBR/GPT) และวอลุ่ม NTFS เดี่ยว ใช้ --vhdx --e01 สำหรับไดเรกทอรีที่มีทั้งสองรูปแบบ

ข้อกำหนดพื้นที่ชั่วคราวและเมทาดาทาต้นฉบับเหมือนกัน อิมเมจ E01 มักเก็บทั้งดิสก์ และอิมเมจทั้งหมดจะถูกเตรียมข้อมูลก่อนเริ่มแยกวิเคราะห์ แต่จะคัดลอกเฉพาะไฟล์ที่พาร์เซอร์อ่าน ซึ่งมักเป็นส่วนเล็ก ๆ ของพื้นที่ที่ใช้งาน อิมเมจเปิดแบบอ่านอย่างเดียว ช่องว่างจากการเก็บข้อมูลและความเสียหายที่พบขณะเปิดหรืออ่านจะแสดงใน ImageErrors และ manifest.csv โดยเก็บผลลัพธ์ที่อ่านได้และจบด้วยรหัส 1 ตรวจเฉพาะข้อมูลที่เข้าถึง ไม่ใช่ทุกชังก์หรือแฮชของสื่อทั้งหมด ปฏิเสธไฟล์เชิงตรรกะ .L01 และ .Lx01 และไม่มีตัวเลือกรหัสผ่าน

คำสั่ง mount ที่แยกต่างหากยังต้องใช้ Linux FUSE แต่การแยกวิเคราะห์อัตโนมัติแบบเนทีฟไม่ต้องใช้

juntei auto-parse --e01 -d evidence -o parsed
juntei auto-parse --e01 -d disk.E01 -o parsed
juntei auto-parse --vhdx --e01 -d evidence -o parsed -j timeline.jsonl

ข้อกำหนดสำหรับการเมานต์ที่ OS มองเห็น

juntei mount ต้องใช้ Linux FUSE 3 (fusermount3) และเข้าถึง /dev/fuse ได้ บน Windows และ macOS ให้ใช้การวิเคราะห์แบบเนทีฟด้านบน