$npx -y skills add killvxk/cybersecurity-skills-zh --skill analyzing-disk-image-with-autopsy使用 Autopsy 对磁盘镜像进行全面取证分析,恢复文件、检查痕迹并构建调查时间线。
| 1 | # 使用 Autopsy 分析磁盘镜像 |
| 2 | |
| 3 | ## 适用场景 |
| 4 | - 当您有取证磁盘镜像并需要对其内容进行结构化分析时 |
| 5 | - 调查需要文件恢复、关键词搜索和时间线分析时 |
| 6 | - 当非技术利益相关方需要从取证证据中获取可视化报告时 |
| 7 | - 检查文件系统元数据、已删除文件和嵌入的痕迹时 |
| 8 | - 从多个磁盘镜像构建全面案件时 |
| 9 | |
| 10 | ## 前置条件 |
| 11 | - 已安装 Autopsy 4.x(Windows)或带 The Sleuth Kit 的 Autopsy 4.x(Linux) |
| 12 | - raw(dd)、E01(EnCase)或 AFF 格式的取证磁盘镜像 |
| 13 | - 最低 8GB RAM(大型镜像建议 16GB) |
| 14 | - Autopsy 所需的 Java 运行时环境(JRE)8+ |
| 15 | - 足够的磁盘空间用于 Autopsy 案件数据库(镜像大小的 2-3 倍) |
| 16 | - 用于文件识别的哈希数据库(NSRL、已知恶意哈希) |
| 17 | |
| 18 | ## 工作流程 |
| 19 | |
| 20 | ### 步骤 1:安装 Autopsy 并配置环境 |
| 21 | |
| 22 | ```bash |
| 23 | # 在 Linux 上安装 Sleuth Kit 和 Autopsy |
| 24 | sudo apt-get install autopsy sleuthkit |
| 25 | |
| 26 | # 从官方来源下载 Autopsy 4.x(GUI 版本) |
| 27 | wget https://github.com/sleuthkit/autopsy/releases/download/autopsy-4.21.0/autopsy-4.21.0.zip |
| 28 | unzip autopsy-4.21.0.zip -d /opt/autopsy |
| 29 | |
| 30 | # 在 Windows 上,从 sleuthkit.org 运行 MSI 安装程序 |
| 31 | # 启动 Autopsy |
| 32 | /opt/autopsy/bin/autopsy --nosplash |
| 33 | |
| 34 | # 同时安装 Sleuth Kit 命令行工具配合 Autopsy 使用 |
| 35 | sudo apt-get install sleuthkit |
| 36 | ``` |
| 37 | |
| 38 | ### 步骤 2:创建新案件并添加磁盘镜像 |
| 39 | |
| 40 | ``` |
| 41 | 1. 启动 Autopsy > "New Case"(新建案件) |
| 42 | 2. 输入案件名称: "CASE-2024-001-Workstation" |
| 43 | 3. 设置基本目录: /cases/case-2024-001/autopsy/ |
| 44 | 4. 输入案件编号、检验员姓名 |
| 45 | 5. 点击 "Add Data Source"(添加数据源) |
| 46 | 6. 选择 "Disk Image or VM File"(磁盘镜像或虚拟机文件) |
| 47 | 7. 浏览至: /cases/case-2024-001/images/evidence.dd |
| 48 | 8. 选择原始系统的时区 |
| 49 | 9. 配置摄取模块(见步骤 3) |
| 50 | ``` |
| 51 | |
| 52 | ```bash |
| 53 | # 也可以先用 Sleuth Kit CLI 验证镜像 |
| 54 | img_stat /cases/case-2024-001/images/evidence.dd |
| 55 | |
| 56 | # 列出镜像中的分区 |
| 57 | mmls /cases/case-2024-001/images/evidence.dd |
| 58 | |
| 59 | # 输出示例: |
| 60 | # DOS Partition Table |
| 61 | # Offset Sector: 0 |
| 62 | # Units are in 512-byte sectors |
| 63 | # Slot Start End Length Description |
| 64 | # 00: ----- 0000000000 0000002047 0000002048 Primary Table (#0) |
| 65 | # 01: 00:00 0000002048 0001026047 0001024000 NTFS (0x07) |
| 66 | # 02: 00:01 0001026048 0976771071 0975745024 NTFS (0x07) |
| 67 | |
| 68 | # 列出分区中的文件(偏移量 2048 扇区) |
| 69 | fls -o 2048 /cases/case-2024-001/images/evidence.dd |
| 70 | ``` |
| 71 | |
| 72 | ### 步骤 3:配置并运行摄取模块 |
| 73 | |
| 74 | ``` |
| 75 | 启用以下 Autopsy 摄取模块: |
| 76 | - Recent Activity(最近活动): 提取浏览器历史、下载记录、Cookie、书签 |
| 77 | - Hash Lookup(哈希查找): 对照 NSRL 和已知恶意哈希集比对文件 |
| 78 | - File Type Identification(文件类型识别): 通过特征而非扩展名识别文件 |
| 79 | - Keyword Search(关键词搜索): 对内容建立全文搜索索引 |
| 80 | - Email Parser(邮件解析器): 从 PST、MBOX、EML 文件中提取邮件 |
| 81 | - Extension Mismatch Detector(扩展名不匹配检测器): 查找扩展名错误的文件 |
| 82 | - Exif Parser(Exif 解析器): 从图像中提取元数据(GPS、相机、时间戳) |
| 83 | - Encryption Detection(加密检测): 识别加密文件和容器 |
| 84 | - Interesting Files Identifier(有趣文件识别器): 标记匹配自定义规则集的文件 |
| 85 | - Embedded File Extractor(嵌入文件提取器): 从 ZIP、Office 文档、PDF 中提取文件 |
| 86 | - Picture Analyzer(图片分析器): 使用 PhotoDNA 或哈希匹配分类图像 |
| 87 | - Data Source Integrity(数据源完整性): 在摄取期间验证镜像哈希 |
| 88 | ``` |
| 89 | |
| 90 | ```bash |
| 91 | # 配置 NSRL 哈希集用于已知良性文件过滤 |
| 92 | # 从 https://www.nist.gov/itl/ssd/software-quality-group/national-software-reference-library-nsrl 下载 NSRL |
| 93 | wget https://s3.amazonaws.com/rds.nsrl.nist.gov/RDS/current/rds_modernm.zip |
| 94 | unzip rds_modernm.zip -d /opt/autopsy/hashsets/ |
| 95 | |
| 96 | # 在 Autopsy 中导入: |
| 97 | # 工具 > 选项 > 哈希集 > 导入 > 选择 NSRLFile.txt |
| 98 | # 标记为 "Known"(已知)以过滤已知良性文件 |
| 99 | ``` |
| 100 | |
| 101 | ### 步骤 4:分析文件系统并恢复已删除文件 |
| 102 | |
| 103 | ```bash |
| 104 | # 在 Autopsy GUI 中: 浏览树形结构 |
| 105 | # - 数据源 > evidence.dd > vol2 (NTFS) |
| 106 | # - 检查目录树,注意已删除文件(标有 X) |
| 107 | |
| 108 | # 使用 Sleuth Kit CLI 进行针对性恢复 |
| 109 | # 列出已删除文件 |
| 110 | fls -rd -o 2048 /cases/case-2024-001/images/evidence.dd |
| 111 | |
| 112 | # 通过 inode 恢复特定已删除文件 |
| 113 | icat -o 2048 /cases/case-2024-001/images/evidence.dd 14523 > /cases/case-2024-001/recovered/deleted_document.docx |
| 114 | |
| 115 | # 从目录中提取所有文件 |
| 116 | tsk_recover -o 2048 -d /Users/suspect/Documents \ |
| 117 | /cases/case-2024-001/images/evidence.dd \ |
| 118 | /cases/case-2024-001/recovered/documents/ |
| 119 | |
| 120 | # 获取详细文件元数据 |
| 121 | istat -o 2048 /cases/case-2024-001/images/evidence.dd 14523 |
| 122 | # 显示: 创建、修改、访问、MFT 变更时间戳、大小、数据运行 |
| 123 | ``` |
| 124 | |
| 125 | ### 步骤 5:执行关键词搜索并标记证据 |
| 126 | |
| 127 | ``` |
| 128 | 在 Autopsy 中: |
| 129 | 1. 关键词搜索面板 > "Ad Hoc Keyword Search"(即席关键词搜索) |
| 130 | 2. 搜索词: 信用卡模式、SSN 正则表达式、电子邮件地址 |
| 131 | 3. 信用卡正则示例: \b(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14})\b |
| 132 | 4. SSN 正则示例: \b\d{3}-\d{2}-\d{4}\b |
| 133 | 5. 查看结果 > 右键点击条目 > "Add Tag"(添加标签) |
| 134 | 6. 创建标签: "Evidence-Critical"、"Evidence-Supporting"、"Requires-Review" |
| 135 | 7. 为已标记条目添加注释,记录相关性 |
| 136 | ``` |
| 137 | |
| 138 | ```bash |
| 139 | # 使用 Sleuth Kit 进行 CLI 关键词搜索 |
| 140 | srch_strings -a -o 2048 /cases/case-2024-001/images/evidence.dd | \ |
| 141 | grep -iE '(password|secret|confidential)' > /cases/case-2024-001/keyword_hits.txt |
| 142 | |
| 143 | # 搜索特定文件特征 |
| 144 | sigfind -o 2048 /cases/case-2024-001/images/evidence.dd 25504446 |
| 145 | # 25504446 = %PDF 头部特征 |
| 146 | ``` |
| 147 | |
| 148 | ### 步骤 6:构建时间线并生成报告 |
| 149 | |
| 150 | ``` |
| 151 | 在 Autopsy 中: |
| 152 | 1. 时间线查看器: 工具 > 时间线 |
| 153 | 2. 选择关注的日期范围(事件窗口) |
| 154 | 3. 按事件类型过滤: 文件创建、修改、访问、网络活动 |
| 155 | 4. 放大可疑时间段 |
| 156 | 5. 将时间线事件导出为 CSV 用于外部分析 |
| 157 | |
| 158 | 生成报告: |
| 159 | 1. 生成报告 > HTML 报告 |
| 160 | 2. 选择要包含的已标记条目和数据源 |
| 161 | 3. 配置报告章节: 文件列表、关键词命中、时间线 |
| 162 | 4. 导出到 /cases/case-2024-001/reports/ |
| 163 | ``` |
| 164 | |
| 165 | ```bash |
| 166 | # 使用 Sleuth Kit mactime 进行 CLI 时间线分析 |
| 167 | fls -r -m "/" -o 2048 /cases/case-2024-001/images/evidence.dd > /cases/case-2024-001/bodyfile.txt |
| 168 | |
| 169 | # 从 bodyfile 生成时间线 |
| 170 | mactime -b /cases/case-2024-001/bodyfile.txt -d > /cases/case-2024-001/timeline.csv |
| 171 | |
| 172 | # 过滤时间线到特定日期范围 |
| 173 | mactime -b /cases/case-2024-001/bodyfile.txt \ |
| 174 | -d 2024-01-15..2024-01-20 > /cases/case-2024-001/incident_timeline.csv |
| 175 | ``` |
| 176 | |
| 177 | ## 核心概念 |
| 178 | |
| 179 | | 概念 | 定义 | |
| 180 | |------|------| |
| 181 | | 摄取模块(Ingest Modules) | 在导入时自动处理数据源的分析插件 | |
| 182 | | MFT(主文件表) | 记录所有 |