Giới thiệu về Forensics

Các khái niệm cơ bản trong Windows Forensics

NTFS

NTFS (New Techonology File System) là hệ thống file được phát triển độc quyền bởi Windows, được thiết kế để khắc phục một số hạn chế của FAT (tiền thân của nó). Một số thành phần quan trọng của NTFS được sử dụng trong digital forensics.

File Metadata

NTFS lưu trữ metadata cho mỗi file trong hệ thống, bao gồm creation time, modification time, access time, và thông tin thuộc tính (như read-only, hidden, hoặc system file attributes).

MFT Entries

Master File Table (MFT) là thành phần lưu trữ metadata của mọi file/thư mục trong một volume bao gồm các thông tin liên quan đến tên file, kích thước, thời gian và vị trí lưu trữ dữ liệu trên bộ nhớ. Khi một file bị xoá, MFT entry của nó vẫn được giữ lại và được đánh dấu là available (sẵn sàng để ghi đè).

File Slack and Unallocated Space

Chứa tàn tích của dữ liệu bị xoá nhưng chưa được ghi đè.

File slack refers to the unused portion of a cluster that may contain data from a previous file.

File Signatures

Hữu ích trong việc xác định loại tệp ngay cả khi phần mở rộng tệp đã bị thay đổi hoặc bị che khuất. Thông tin này rất quan trọng để tái tạo các loại tệp hiện có trên hệ thống.

USN Journal

Một nhật ký được NTFS duy trì để ghi lại các thay đổi được thực hiện trên tệp và thư mục. Các nhà điều tra pháp y có thể phân tích nó để theo dõi các sửa đổi, xóa và đổi tên tệp.

LNK Files

Bằng chứng gián tiếp cho thấy file nào đã được truy cập / mở trên hệ thống, ngay cả khi file thật đã bị xóa

Prefetch Files

(đuôi .pf) là tệp hệ thống được Windows tự động tạo ra để tăng tốc độ khởi chạy ứng dụng.

Registry Hives

Mặc dù không liên quan trực tiếp đến hệ thống tệp, nhưng Windows Registry Hives chứa thông tin cấu hình và hệ thống quan trọng. Các hoạt động độc hại hoặc thay đổi trái phép có thể để lại dấu vết trong sổ đăng ký, mà các nhà điều tra pháp y sẽ phân tích để hiểu các sửa đổi hệ thống.

Shellbags

Shellbags là các entry trong Registry mà Windows dùng để lưu thông tin về cách người dùng (hoặc hệ thống) xem/hiển thị một thư mục trong File Explorer (ví dụ: view type, size, vị trí cuộn, vị trí icon, v.v.). Vì vậy chúng thường cho biết folder nào đã từng được truy cập — ngay cả khi folder/file đó đã bị xóa hoặc là device/USB đã rút.

Shellbags được lưu rải rác trong hai user registry hive chính:

Thumbnail Cache

Thumbnail cache là bằng chứng gián tiếp cho thấy một file từng tồn tại hoặc được xem trên hệ thống. Ví dụ:

Recycle Bin

Chứa các file đã bị xoá.

Alternate Data Streams (ADS)

là tính năng của hệ thống tệp NTFS, cho phép một file hoặc folder có nhiều “luồng dữ liệu” (data streams) gắn kèm với nó — ngoài luồng dữ liệu chính (main stream). Ví dụ:

Tạo ADS thủ công bằng dòng lệnh:

# Ghi dữ liệu vào ADS 
echo "Dữ liệu bí mật" > normal.txt:hidden  

# Kiểm tra bằng notepad 
notepad normal.txt:hidden 

Lúc này:

Windows sử dụng ADS để: Lưu metadata của file tải về từ Internet (Zone.Identifier stream). Ví dụ:

Attacker có thể ẩn mã độc hoặc dữ liệu trong ADS:

Volume Shadow Copies (VSS)

là tính năng của Windows cho phép tạo bản sao snapshot của ổ đĩa (volume) ở một thời điểm cụ thể.

Cơ chế hoạt động

# Liệt kê VSS
vssadmin list shadows

# Mount một snapshot (dùng mklink hoặc vshadow)
mklink /D C:\ShadowCopy5 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy5\

Khi bạn mount một shadow copy, bạn có thể thu thập:

Loại dữ liệu Ví dụ
Registry Hives SYSTEM, SOFTWARE, SAM, NTUSER.DAT
Event Logs *.evtx trong C:\Windows\System32\winevt\Logs\
User Artifacts LNK, Prefetch, Browser History
Malware Files File độc hại đã bị xóa sau đó
File System State MFT, USNJRNL, SRUM, Shimcache, ...

Security Descriptors and ACLs

Security Descriptor (SD)cấu trúc dữ liệu trong Windows lưu thông tin bảo mật của một đối tượng (object) trong hệ thống.

Mọi đối tượng trong Windows (file, folder, process, registry key, service, printer, v.v.) đều có Security Descriptor đi kèm.

Nó xác định:

  1. Ai sở hữu (Owner)
  2. Ai được phép truy cập (Permissions)
  3. Ai bị từ chối truy cập (Denials)
  4. Audit log nào được ghi lại (Auditing)

Cấu trúc của một Security Descriptor

Một Security Descriptor gồm 4 phần chính:

Thành phần Viết tắt Mô tả
Owner SID (Owner) Người dùng / nhóm sở hữu đối tượng.
Primary Group SID (Group) Nhóm chính (ít dùng trong Windows hiện đại).
Discretionary Access Control List DACL Quy định ai có quyền gì với object.
System Access Control List SACL Xác định ai bị audit (ghi log) khi truy cập.

ACL (Access Control List) là danh sách các quyền gắn với một đối tượng. Mỗi ACL bao gồm nhiều ACE (Access Control Entry).

Có hai loại ACL:

# Xem ACL
Get-Acl "C:\Secret.txt" | Format-List

# Xuất SID, Owner, và DACL chi tiết
(Get-Acl "C:\Secret.txt").Access

# Thêm quyền cho user
icacls "C:\Secret.txt" /grant "User1:(R,W)"

Execution Artifacts

Artifact Location/Registry Key Mô tả
Prefetch Files C:\Windows\Prefetch Xem lại phần Giới thiệu về Forensics#Prefetch Files
Shimcache HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Control\Session Manager\AppCompatCache
Shimcache (viết tắt của Application Compatibility Cache, hay AppCompatCache) là một phần của Windows Application Compatibility subsystem —
chức năng này giúp Windows theo dõi các chương trình đã được thực thi để tối ưu tương thích và hiệu suất khi chạy lại.

Vì ngay cả khi:
- File thực thi (.exe) đã bị xóa
- Không còn Prefetch / Event Logs
- Malware chỉ chạy 1 lần rồi xóa dấu vết

→ Thì Shimcache vẫn có thể lưu lại tên file, đường dẫn, và thời điểm truy cập!
Amcache C:\Windows\AppCompat\Programs\
Amcache.hve (Binary Registry Hive)
Amcache.hve là một file Registry đặc biệt, được Windows dùng để lưu metadata về các chương trình đã được cài đặt hoặc chạy trên hệ thống. Các thông tin bao gồm FilePath, FileSize, Hash, Publisher, lần cuối thay đổi/thực thi, ngày cài đặt, ổ đĩa chứa file gốc (USB),…

Ngay cả khi:

- File gốc bị xóa

- Shimcache bị ghi đè

- Event Logs bị xóa
→ Amcache vẫn còn lưu lại thông tin của file đó!
UserAssist
HKEY_CURRENT_USER\Software\
Microsoft\Windows\CurrentVersion\
Explorer\UserAssist
UserAssist là một Windows Registry artifact quan trọng,
cho phép điều tra viên xác định ứng dụng nào người dùng đã mở, bao nhiêu lần, và khi nào,
ngay cả khi các file thực thi đã bị xóa.

Mỗi giá trị (Value) trong key Count đại diện cho một ứng dụng hoặc shortcut mà user đã mở,
nhưng tên của value bị mã hóa bằng ROT13.
RunMRU Lists HKEY_CURRENT_USER\Software\
Microsoft\Windows\CurrentVersion\
Explorer\RunMRU



RunMRU Lists là một Windows Registry artifact nhẹ nhưng mạnh, ghi lại các lệnh mà người dùng đã tự gõ trong hộp “Run”.

Nó đặc biệt hữu ích để chứng minh người dùng thủ công khởi chạy công cụ, script, hoặc file đáng ngờ ngay cả khi các log hoặc file khác đã bị xóa.

Dễ bị xóa và ghi đè
Jump Lists

Recent Items
User-specific folders (e.g., %AppData%\Microsoft\Windows\
Recent)
Chúng giúp điều tra viên xác định:

- File nào đã được mở, bởi ai, và khi nào

- Ứng dụng nào được dùng để mở file đó

- Dấu vết còn tồn tại ngay cả khi file gốc đã bị xóa


→ Cực kỳ hữu ích để chứng minh hành vi người dùng và xây dựng timeline forensics chính xác.
Windows Event Logs C:\Windows\System32\winevt\Logs

Windows Persistence Artifacts

Windows Persistence là tập hợp các kỹ thuật giúp kẻ tấn công đảm bảo được việc truy cập trái phép vào hệ thống một cách bền vững và khó bị phát hiện, chẳng hạn như tạo service/scheduled task mới, chỉnh sửa registry, thêm startup program (các process tự động thực thi khi khởi động máy).

Registry

Ví dụ về Autoruns registry key:

Schtasks

Các scheduled task có file cấu hình XML nằm trong thư mục C:\Windows\System32\Tasks. Tệp này nêu chi tiết người tạo, thời gian hoặc trình kích hoạt tác vụ, và đường dẫn đến lệnh hoặc chương trình được thiết lập để chạy.

Services

Là một tiến trình liên tục chạy dưới nền OS, thông tin cấu hình nằm tại HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

Web Browser Forensics

Các dấu vết có thể thu thập thông qua Web Browser bao gồm:

SRUM (System Resource Usage Monitor)

SRUM (System Resource Usage Monitor) là hệ thống giám sát tài nguyên được Microsoft giới thiệu từ Windows 8 trở đi. Mục tiêu ban đầu là giúp Windows theo dõi mức tiêu thụ tài nguyên của ứng dụng (CPU, RAM, mạng, pin,...) để tối ưu hiệu năng và tiết kiệm điện. Nhưng đối với forensics, SRUM là “mỏ vàng” vì nó ghi lại lịch sử chi tiết về hành vi hệ thống và ứng dụng trong khoảng 30–60 ngày gần nhất.

Tất cả dữ liệu SRUM được lưu trong cơ sở dữ liệu ESE (Extensible Storage Engine): C:\Windows\System32\sru\SRUDB.dat

Cấu trúc SRUDB.dat

SRUDB.datESE (Extensible Storage Engine Database) chứa nhiều bảng (tables), ví dụ:

Table Mô tả
Application Resource Usage (CPU, RAM, Disk)
Network Usage (app ↔ IP, bytes sent/received)
User information
Application Energy Usage
Session Duration / Connectivity
Background task resource use

Dữ liệu forensic quan trọng có trong SRUM

Dữ liệu Ý nghĩa forensic
App name / Path Ứng dụng hoặc tiến trình nào đã chạy
User SID User nào chạy ứng dụng đó
Timestamp (UTC) Khi ứng dụng sử dụng tài nguyên (theo giờ / 1h block)
CPU time, I/O, RAM usage Mức sử dụng tài nguyên
Network sent / received bytes Lượng dữ liệu gửi/nhận qua mạng
Interface type (Ethernet, Wi-Fi, 4G) Loại kết nối
Remote IP / Domain Địa chỉ mạng mà ứng dụng kết nối tới
SessionID Liên kết đến logon session cụ thể
Energy impact Ảnh hưởng năng lượng / pin của tiến trình

Ví dụ output tạo bởi ChatGPT (sau khi parse SRUM)

Time (UTC) User Application Path Sent

(KB)
Recv

(KB)
Interface IP Address
2025-11-07 14:00 Admin Chrome.exe C:\Program Files
\Google
\Chrome\
Application
\chrome.exe
3,210 22,800 Wi-Fi 142.250

.190.78
2025-11-07 15:00 Admin mimikatz.exe C:\Users\
Admin\
Downloads
\mimikatz.exe
1 0 Local
2025-11-07 16:00 SYSTEM svchost.exe C:\Windows\
System32
\svchost.exe
52 80 Ethernet 192.168.1.1

Lưu ý quan trọng

Lưu ý Giải thích
Chỉ lưu ~30–60 ngày Dữ liệu SRUM cũ sẽ bị Windows tự ghi đè
Cần quyền SYSTEM Không thể mở khi Windows đang chạy trừ khi copy offline
Dữ liệu bị nén và mã GUID khó hiểu Nên dùng tool chuyên dụng
Có thể bị xóa thủ công Attacker đôi khi dọn SRUM để ẩn dấu
Không lưu path đầy đủ mọi lúc Một số entry chỉ có AppID hoặc package name (đặc biệt app Store)

So sánh với các artifact khác

Artifact Ghi gì Thời gian Ưu điểm
Prefetch Ứng dụng chạy + lần gần nhất 1–10 lần Xác nhận thực thi
Shimcache File từng tồn tại/chạy Lâu dài Nằm trong SYSTEM hive
Amcache App cài đặt/chạy + hash Lâu dài Có SHA1, metadata
SRUM App, CPU, RAM, Network usage 30–60 ngày Có timestamp & user cụ thể

Các kỹ thuật và công cụ sử dụng để thu thập bằng chứng

Thu thập bằng chứng là một giai đoạn quan trọng trong digital forensics, bao gồm việc thu thập các artifact và dữ liệu số từ nhiều nguồn khác nhau để bảo quản bằng chứng tiềm năng cho việc phân tích. Quá trình này đòi hỏi các công cụ và kỹ thuật chuyên biệt để đảm bảo tính toàn vẹn, xác thực và khả năng chấp nhận của bằng chứng thu thập được.

Dưới đây là tổng quan về các kỹ thuật thu thập bằng chứng thường được sử dụng trong pháp y số:

Forensic Imaging

Một quy trình cơ bản trong pháp y kỹ thuật số, bao gồm việc tạo ra một bản sao chính xác, từng bit một của phương tiện lưu trữ kỹ thuật số, chẳng hạn như ổ cứng, ổ cứng thể rắn, ổ USB và thẻ nhớ.

Một số công cụ được sử dụng:

Extracting Host-based Evidence & Rapid Triage

Memory Capture Tools

Một số giải pháp thu thập bộ nhớ bao gồm:

Tip

Đối với máy chủ ảo hoá, sau khi suspend host, file .vmem là ảnh chụp memory của máy ảo

Rapid Triage - KAPE

Một trong những giải pháp phân tích và trích xuất bằng chứng nhanh chóng, nếu không muốn nói là tốt nhất, chính là KAPE (Kroll Artifact Parser and Extractor). Được phát triển và bảo trì bởi Kroll (trước đây gọi là Magnet Forensics), KAPE nổi tiếng với các tính năng thu thập toàn diện, khả năng thích ứng và giao diện trực quan

Link tài liệu: https://ericzimmerman.github.io/KapeDocs/#!index.md

20260105153238.png

20260105153546.png

KAPE hoạt động dựa trên Targets và Modules.

Targets: là thành phần định nghĩa dữ liệu nào sẽ được thu thập và trích xuất (nguồn dữ liệu). File cấu hình có phần mở rộng .tkape nằm trong thư mục <path to kape>\KAPE\Targets (ví dụ: RegistryHivesSystem.tkape - thu thập thông tin của file có dạng SAM.LOG*)

20260105153601.png

Ví dụ: sử dụng gkape.exe → GUI

20260105153613.png

Thư mục đầu ra của KAPE khi sử dụng target collection là !SANS_Triage:

20260105153623.png

Velociraptor - open-source EDR

Đây là công cụ EDR mã nguồn mở rất thú vị.

20260105153646.png

20260105153655.png

Forensics

Memory Forensics

Volatility là công cụ nổi tiếng dùng để phân tích memory

Một số module thường xuyên sử dụng:

Module Mô tả
pslist Lists the running processes.
cmdline Displays process command-line arguments
netscan Scans for network connections and open ports.
malfind Scans for potentially malicious code injected into processes.
handles Scans for open handles
svcscan Lists Windows services.
dlllist Lists loaded DLLs (Dynamic-link Libraries) in a process.
hivelist Lists the registry hives in memory.

Ví dụ:

vol.py -f /home/htb-student/MemoryDumps/Win7-2515534d.vmem imageinfo             
vol.py -f /home/htb-student/MemoryDumps/Win7-2515534d.vmem --profile=Win7SP1x64 pslist
Ghi chú

Một process không trực tiếp tương tác với các object khác trong hệ thống mà cần thông qua OS, process tạo một handle qua OS, OS kiểm tra xem process có quyền tương ứng với yêu cầu truy cập/xoá/sửa object đó không, rồi mới cho phép thực hiện.

vol.py -f Win7-2515534d.vmem --profile=Win7SP1x64 handles -p 1512 --object-type=Key
vol.py -f Win7-2515534d.vmem --profile=Win7SP1x64 handles -p 1512 --object-type=File
vol.py -f Win7-2515534d.vmem --profile=Win7SP1x64 handles -p 1512 --object-type=Process

Ngoài ra, có thể sử dụng strings để phân tích:

strings Win7-2515534d.vmem | grep -E "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"
strings Win7-2515534d.vmem | grep -oE "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b"
strings Win7-2515534d.vmem | grep -E "(cmd|powershell|bash)[^\s]+"

Disk Forensics

Autopsy là một nền tảng pháp y thân thiện với người dùng được xây dựng trên bộ công cụ Sleuth Kit mã nguồn mở. Nó sở hữu nhiều tính năng tương tự như các phiên bản thương mại: đánh giá dòng thời gian, tìm kiếm từ khóa, truy xuất hiện vật trên web và email, và khả năng sàng lọc kết quả dựa trên các hàm băm tệp độc hại đã biết.

Một số công cụ khác

Eric Zimmerman's tools

Là một bộ công cụ được thiết kế và biên soạn bởi Eric Zimmerman, có thể tải từng công cụ hoặc chạy script sau để cài toàn bộ:

.\Get-ZimmermanTools.ps1
Link xem thêm

Một số use case như:

Công cụ truy vấn EQL

Link xem thêm

eqllib-master là một công cụ command line khá hữu ích, thay vì phải upload lên SIEM và truy vấn thì nay sử dụng công cụ này để tăng tốc phản ứng.

pip install eql
C:\Users\johndoe\Desktop\eqllib-master\utils> import-module .\scrape-events.ps1

Parsing file .evtx trực tiếp với Get-EventProps được import từ file scrape-events.ps1

PS C:\Users\johndoe\Desktop\eqllib-master\utils> Get-WinEvent -Path C:\Users\johndoe\Desktop\forensic_data\kape_output\D\Windows\System32\winevt\logs\Microsoft-Windows-Sysmon%4Operational.evtx -Oldest | Get-EventProps | ConvertTo-Json | Out-File -Encoding ASCII -FilePath C:\Users\johndoe\Desktop\forensic_data\event_logs\eql_format_json\eql-sysmon-data-kape.json

Query với KAPE output

eql query -f C:\Users\johndoe\Desktop\forensic_data\event_logs\eql_format_json\eql-sysmon-data-kape.json "EventId=1 and (Image='*net.exe' and (wildcard(CommandLine, '* user*', '*localgroup *', '*group *')))"

RegRipper

Là một công cụ command line cho phép export registry file (output của Kape) thành csv cho dễ phân tích:

PS C:\Users\johndoe\Desktop\RegRipper3.0-master> .\rip.exe -h
Rip v.3.0 - CLI RegRipper tool
Rip [-r Reg hive file] [-f profile] [-p plugin] [options]
Parse Windows Registry files, using either a single module, or a profile.

NOTE: This tool does NOT automatically process Registry transaction logs! The tool
does check to see if the hive is dirty, but does not automatically process the
transaction logs.  If you need to incorporate transaction logs, please consider
using yarp + registryFlush.py, or rla.exe from Eric Zimmerman.

  -r [hive] .........Registry hive file to parse
  -d ................Check to see if the hive is dirty
  -g ................Guess the hive file type
  -a ................Automatically run hive-specific plugins
  -aT ...............Automatically run hive-specific TLN plugins
  -f [profile].......use the profile
  -p [plugin]........use the plugin
  -l ................list all plugins
  -c ................Output plugin list in CSV format (use with -l)
  -s systemname......system name (TLN support)
  -u username........User name (TLN support)
  -uP ...............Update default profiles
  -h.................Help (print this information)

Ex: C:\>rip -r c:\case\system -f system
    C:\>rip -r c:\case\ntuser.dat -p userassist
    C:\>rip -r c:\case\ntuser.dat -a
    C:\>rip -l -c

All output goes to STDOUT; use redirection (ie, > or >>) to output to a file.

copyright 2020 Quantum Analytics Research, LLC

Để có trải nghiệm liền mạch với RegRipper, điều cần thiết là phải làm quen với các plugin của nó. Để liệt kê tất cả các plugin khả dụng và lập danh mục chúng trong tệp CSV (ví dụ: rip_plugins.csv), hãy sử dụng lệnh bên dưới.

PS C:\Users\johndoe\Desktop\RegRipper3.0-master> .\rip.exe -l -c > rip_plugins.csv

20260105155952.png

Các use case sử dụng:

.\rip.exe -r "C:\Users\johndoe\Desktop\forensic_data\kape_output\D\Users\John Doe\NTUSER.DAT" -p run