Loading
December 13, 2025By Harry Ha

Windows Forensics với Hiberfil.sys (chế độ ngủ đông Hibernate)

Trong quá trình điều tra số (Digital Forensics & Incident Response – DFIR), chúng ta thường tập trung vào Live-RAM dump, pagefile.sys, registry, event logs hay disk artifacts. Tuy nhiên, có một “kho bằng chứng” rất hay bị bỏ quên nhưng lại cực kỳ giá trị: “hiberfil.sys”

Đây là một tệp hệ thống ẩn của Windows nằm ở “C:\hiberfil.sys” dùng để lưu trữ trạng thái hiện tại khi máy tính vào chế độ ngủ đông (Hibernate aka gập máy tính lại), cho phép bạn tiếp tục làm việc nhanh chóng sau khi “thức dậy”.

File này chiếm dung lượng lớn trên ổ cài đặt Windows, khoảng 75% dung lượng RAM. Chúng ta không thể xóa trực tiếp mà phải tắt tính năng Hibernate bằng lệnh “powercfg -h off” với quyền quản trị.

Vì sao “hiberfil.sys” cực kỳ giá trị trong DFIR?

Trong rất nhiều tình huống điều tra thực tế:

  • Máy đã shutdown nên không thể có live memory acquisition
  • Không có memory dump được thu thập kịp thời
  • Malware chỉ tồn tại in-memory, không ghi ra disk

Những loại bằng chứng có thể tìm thấy trong “hiberfil.sys”

Được coi như RAM Snapshot hay Memory Dump, nên trong file này sẽ chứa rất nhiều bằng chứng hữu ích phục vụ việc điều tra

  • Các bằng chứng về các tiến trình bao gồm tiến trình đang chạy, các command-line của process, relationship giữa các process (parent – child), DLL/module được load, timestamp
  • Các bằng chứng về Credential & Secret. Ttrong file này, bao gồm các thông tin như NTLM Hashes, Plaintext credential, Kerberos ticket, DPAPI Tickets, hoặc các Token truy cập
  • Các bằng chứng về Network cũng có thể được khôi phục bao gồm các socket đang mở, TCP/UDP connection, DNS Cache, IP/Port kết nối hoặc thậm chí là Token, Session và Cookie cho Services (Google Workspace, Microsoft 365, Slack…) hoặc Web, API, VPN Configuration. Điều này sẽ giúp chúng ta xác định các C2 Communication đang tồn tại trong Memory
  • Các bằng chứng liên quan tới file như file handles, file path, nội dung tài liệu Word, PDF bị cached, recent cached, hoặc nội dung của file mã hóa đã được giải mã…
  • Các bằng chứng liên quan tới hoạt động của người dùng như tin nhắn chat được lưu trong RAM, URLs History, Clipboard contents, các tabs trình duyệt được mở gần đây, Shell History (CMD, Powershell)

File này sẽ bị ghi đè sau mỗi lần thực hiện hibernate. Do đó, các dữ liệu trong file này chỉ có ý nghĩa tại một thời điểm. Nó không phải là logs hoặc nhật ký truy cập nên nó không có ý nghĩa về phân tích timeline.

Sự khác nhau giữa “hiberfil.sys” và “pagefile.sys”

Khi nhắc tới RAM, ngoài các thông tin nằm trên bộ nhớ vật lý. Ngoài “hiberfil.sys” như đã đề cập ở trên, chúng ta còn có bộ nhớ ảo “pagefile.sys” và Crash Dump.

Khi hệ thống gặp lỗi nghiêm trọng (BSOD), Windows tạo crash dump (file .DMP) chứa Registry, RAM, tiến trình, tình trạng kernel lúc đó. Nó phục vụ chủ yếu trong công việc Debug lại quá trình xảy ra lỗi, tuy nhiên một số nhà điều tra số vẫn có thể sử dụng nó để thực hiện phân tích.

Nhưng ở mục này, chúng ta sẽ đi so sánh sự khác nhau chủ yếu giữa hai loại file còn lại. “pagefile.sys” là file bộ nhớ ảo (Virtual Memory / Paging File) của Windows, dùng để mở rộng RAM bằng ổ đĩa, giúp hệ điều hành tiếp tục hoạt động khi RAM vật lý không đủ. File này nằm mặc định ở “C:\pagefile.sys”

Khi RAM vật lý sắp đầy, Windows sẽ đẩy (page out) các memory page ít dùng xuống “pagefile.sys” Khi cần sẽ thực hiện việc nạp lại (page in) vào RAM. Đây chính là cơ chế Virtual Memory thường thấy trong Windows.

Đặc điểmhiberfil.syspagefile.sys
Mục đíchHibernateVirtual memory
Nội dungMemory snapshotMemory pages
Thời điểmKhi HibernateLuôn hoạt động
Giá trị forensicRất cao (stateful)Cao nhưng phân mảnh

Các thách thức khi làm việc với “hiberfil.sys”

Nếu máy tính của người dùng thực hiện việc shutdown theo cách thông thường (không phải chế độ hibernate) thì sẽ không có “hiberfil.sys” để mình lấy.

Một điều nữa, Khi máy tính đang chạy, File này sẽ bị khóa việc tác động nên sẽ không thể copy một cách dễ dàng trừ khi bạn sử dụng các kỹ thuật đặc biệt. Vậy thì tốt nhất, nếu phải thu thập thông tin ở máy tính đang chạy thì tốt nhất nên thu thập live-memory.

Trước khi ghi dữ liệu Memory vào trong “hiberfil.sys” , Windows sẽ thực hiện nén các Memory Pages trước khi ghi vào để tiết kiệm không gian và khả năng I/O của hệ thống. Nói cách khác, trong đó là dữ liệu nén mà muốn sử dụng thì cần giải nén ra. Thuật toán nén và giải nén sẽ khác nhau theo từng phiên bản Windows, do đó cần chú ý xác định phiên bản của Windows trước khi thực hiện parse dữ liệu này.

Thực sự mà nói, nó cũng chỉ là một dạng binary file có cấu trúc rõ ràng (header, metadata, page map..). Nên chỉ cần một phần của file bị hỏng trong quá trình copy hoặc hành vi của người dùng, cũng dẫn tới việc giải nén thất bại. Điều này sẽ là một thách thức cần quan tâm tới trong quá trình điều tra và thu thập chứng cứ.

Bản thân file này không bị áp dụng cơ chế mã hóa đặc biệt nào cả. Nhưng nếu nó nằm trên một ổ đĩa được mã hóa bằng BitLocker/FDE thì file sẽ bị mã hóa cùng volume giống như các file bình thường khác. Trước khi phân tích phải thực hiện giải mã Bitlocker/FDE.

À, một số dòng malware/APT cao cấp hiểu rất rõ Windows Memory Lifecycle, nó có thể hook vào các Power Management API để Anti-Forensic. Nhiệm vụ của nó là phát hiện máy tính có đang ở trạng thái ngủ đông không. Và thực hiện xóa sạch dấu vết trước khi Windows ghi vào Hiberfil.

Các công cụ phân tích Hiberfil.sys

Để phân tích file này thì có rất nhiều công cụ. Phổ biến và nổi tiếng thì phải kể tới Volatility Framework. Tuy nhiên file này không phải Raw Memory, nên trước khi phân tích phải thực hiện convert sang raw memory image mà vol.py hiểu được. Một số chuyên gia ghi chép lại rằng, việc convert bằng tính năng imagecopy ở trong vol.py lại không ổn định với Windows 10 và 11. Lỗi này chủ yếu do thuật toán nén XPRESS/LZNT1 mới hoặc chức năng Fast Startup (partial hibernation) được bật. Benchmark chi tiết hơn thì có thể xem và đọc thêm ở đây https://www.forensicxlab.com/blog/hibernation

Tiếp tục tìm kiếm, thì thấy Rekall Framework (https://github.com/google/rekall) hỗ trợ parsing hiberfil.sys tốt hơn Volatility. Ít phụ thuộc vào Profile OS hơn. Tuy nhiên, dự án này đã bị Google cho vào kho, ngưng phát triển từ năm 2020 rồi. Sầu!

Một công cụ khác khá nổi tiếng trong bộ Windows Internals, là HiberParse – Matt Suiche. Nó tập trung vào việc Parse Windows Hiberations Blocks, và giúp bạn hiểu rõ hơn về Layout Memory Snapshot.

Còn nếu có tiền thì dùng Magnet AXIOM!

Kết luận

Live memory acquisition vẫn là một trong những phương pháp tốt nhất để lấy volatile evidence, cung cấp cái nhìn đầy đủ về process, dữ liệu đã giải mã và trạng thái hệ thống. Tuy nhiên, khi live RAM không thể thu được:

  • do máy đã tắt,
  • do remote constraints,
  • hoặc điều tra không thể tiếp cận tình trạng chạy,

thì “hiberfil.sys” trở thành một artifact giá trị cao và phức tạp có thể lưu giữ những phần quan trọng của state volatile này

References

Harry Ha

Whitehat hacker, Founder at Cookie Hân Hoan, Co-founder at CyRadar, Senior Penetration Tester, OSCP, CPENT, LPT, Pentest+

svg

What do you think?

It is nice to know your opinion. Leave a comment.

Leave a reply

  • 01

    Windows Forensics với Hiberfil.sys (chế độ ngủ đông Hibernate)

Quick Navigation