| name | forensics-disk |
| description | 磁盘取证分析技术,涵盖 NTFS/FAT/ext 文件系统解析、文件恢复、时间线分析、日志挖掘等实战技能。 |
| tags | ["ntfs","fat","ext4","file-recovery","timeline","windows-event"] |
磁盘取证分析方法论
整体分析流程
- 镜像挂载:使用
mount -o loop,ro 只读挂载镜像,或用 FTK Imager / Autopsy 加载
- 文件系统识别:
fsstat 或 file -s 确认文件系统类型和参数
- 目录浏览:
fls -r 递归列出所有文件(含已删除),istat 查看 inode/MFT 详情
- 关键文件提取:
icat 按 inode/MFT 编号提取文件内容
- 时间线构建:
mactime 从 MAC 时间戳生成完整活动时间线
NTFS 文件系统
MFT (Master File Table)
$LogFile 与 $UsnJrnl
$LogFile:NTFS 事务日志,记录元数据变更,可恢复近期修改
$UsnJrnl:USN 变更日志,记录文件创建/删除/重命名等操作
- 提取工具:
MFTECmd、NTFS Log Tracker
Alternate Data Streams (ADS)
时间戳 (MACB)
- M (Modified):文件内容最后修改时间
- A (Accessed):文件最后访问时间
- C (Created/MFT Changed):MFT 记录最后变更时间
- B (Born):文件创建时间(仅 $STANDARD_INFORMATION 有)
$FILE_NAME 和 $STANDARD_INFORMATION 可能有不同的时间戳,注意对比
FAT 文件系统
关键结构
- FAT 表:记录簇链,
0x0FFFFFFF 标记文件结束
- 目录项:32 字节,含文件名、起始簇、大小、时间
- 长文件名 (LFN):连续多个 32 字节目录项存储 Unicode 文件名
已删除文件恢复
ext4 文件系统
关键概念
- inode:存储文件元数据(权限、时间、块指针)
- 块组:文件系统划分为多个块组,每组有自己的超级块备份
- 日志 (Journal):JBD2 日志记录元数据操作,
journalctl 或直接解析
已删除文件恢复
时间戳分析
Windows 事件日志
常见日志位置
- 系统事件:
C:\Windows\System32\winevt\Logs\System.evtx
- 安全事件:
C:\Windows\System32\winevt\Logs\Security.evtx
- 应用事件:
C:\Windows\System32\winevt\Logs\Application.evtx
- PowerShell 日志:
Microsoft-Windows-PowerShell%4Operational.evtx
- RDP 登录:
Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx
关键事件 ID
| ID | 来源 | 含义 |
|---|
| 4624 | Security | 登录成功 |
| 4625 | Security | 登录失败 |
| 4634 | Security | 注销 |
| 4688 | Security | 新进程创建 |
| 4720 | Security | 账户创建 |
| 7045 | System | 服务安装 |
| 1102 | Security | 日志清除 |
解析工具
python3 -c "
import Evtx.Evtx as evtx
with evtx.Evtx('Security.evtx') as log:
for record in log.records():
print(record.xml())
"
wevtx_dump Security.evtx
chainsaw hunt Security.evtx --mapping sigma
浏览器痕迹
Chrome/Edge (Chromium)
- 历史记录:
%LOCALAPPDATA%\Google\Chrome\User Data\Default\History(SQLite)
- 下载记录:同上文件的
downloads 表
- Cookie:
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cookies
- 缓存:
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\
Firefox
- 历史记录:
%APPDATA%\Mozilla\Firefox\Profiles\<profile>\places.sqlite
- 下载记录:
downloads.sqlite(旧版)或 places.sqlite
- Cookie:
cookies.sqlite
查询示例
SELECT datetime(last_visit_time/1000000-11644473600,'unixepoch','localtime'),
url, title, visit_count
FROM urls ORDER BY last_visit_time DESC;
SELECT datetime(start_time/1000000-11644473600,'unixepoch','localtime'),
target_path, total_bytes, state
FROM downloads ORDER BY start_time DESC;
常用工具速查
fls -r -m / image.dd
mactime -b body.txt -d
tsk_recover image.dd output/
blkstat -f ntfs image.dd <簇号>
mmstat image.dd
reglookup NTUSER.DAT
regripper -r NTUSER.DAT -f ntuser