精武杯计算机取证
一句话结论:这是一份以磁盘镜像为对象的电子取证复盘,几十个填空题几乎全靠「先自动化扫描、再手工交叉验证」这条主线拿下。它的价值不在答案本身,而在一整条方法链:系统设备证据看注册表与通知、登录口令走 SAM 里的 NTLM 哈希离线爆破、WSL 与大模型栈靠虚拟磁盘二次挂载翻配置、邮箱与凭据翻专用文件、加密容器靠挂载解密、隐写照常规做文件头修复与载体提取。本文只提炼工具选择与取证思路,不复述任何具体答案值、口令、密钥、助记词或个人信息。
排版说明:正文按证据来源分域组织;引号统一用直角引号;工具名与文件标识(火眼、hashcat、WSL、NTLM、SAM、ollama、MetaMask、OpenCode、Account.rec0、config.json)按原样书写、不含转义符;凡原题的具体取值一律以「需爆破得到」「记录在配置里」这类方法描述替代,不落地成明文。
一、总体方法:一份镜像,两条腿走路
整个案例的分析对象是一台个人计算机的磁盘镜像。几乎所有题都能归到两种手段的组合:一是丢给自动化取证分析工具(本案用的是火眼)做全景扫描,让它把系统信息、外设历史、网络记录、浏览器与邮箱痕迹、文件索引一次性摊开;二是对扫描不出、或扫出来但不确定的项,做手工定位与交叉验证。真正拉分的是第二条腿——很多答案不是「工具直接给」,而是「工具给线索、再顺藤摸到源头」。这套「先扫后挖、凡有多个来源就互相印证」的纪律,是磁盘取证的底层方法。
二、系统与设备证据
硬件与配置类信息(如 CPU 型号)通常自动化扫描直接就给出,无需深挖。外设接入史要两段证据合看:注册表里的 USB 设备记录能证明「接过一块移动硬盘」,但「它当时被分配成哪个盘符」光看设备记录不唯一,要再结合 Windows 的通知或 shell 记录去锚定那一次插入对应的盘符名称——单一来源不足以定论时,用第二类时间线证据补全因果。远程桌面连过哪个地址属于可被自动解析出来的连接史。开机登录口令则是一条标准离线口令攻击链:登录口令不以明文存在,只以 NTLM 哈希形式保存在 SAM 蜂巢里,取证做法是提取该哈希、再用 hashcat 离线爆破还原——本文不记录爆破结果,只记「哈希在哪、怎么提、用什么破」这条链。
三、WSL 与本地大模型栈
这台机器跑了 WSL,里面部署了一整套大模型推理栈,相关题几乎全靠「挂载—翻配置—找痕迹」三板斧。WSL 本身是版本可直接读;它的数据落在一个虚拟磁盘里,取证时要把这个磁盘当作镜像再次挂载进去,才能在文件系统里翻到里面的推理引擎与版本——版本这类信息就写在 config 配置文件里。模型参数(如某模型的上下文长度上限)不一定要挖配置,命令行历史里往往留有启动命令、直接就能读到。运行库版本(如 CUDA)到其安装目录的 lib 下去看即可。数量类问题(比如部署了几个语音识别模型)有个反直觉的经验:全局搜索很吃资源、可能搜不出或搜得很慢,改用系统资源管理器按 config.json 这类特征文件去定位反而清晰。服务地址与端口这类运行参数,回到上一题翻到的配置文件里就能找到,不必重新扫。
四、浏览器与邮箱痕迹
浏览器历史与下载记录是一条被反复用到的「路径索引」:要找某个曾被下载或测试过的文件,先翻下载记录,它常顺带记着该文件的实际存储路径,省掉全盘搜索。邮箱账号可被自动扫描直接读出;而邮箱客户端的授权码不在扫描的显眼处,要去翻客户端存储账户信息的那个专用文件(本案是 Account.rec0 一类)跳转定位。凡「账号有、凭据没有」的情况,思路都是:账号在通用痕迹里,凭据在应用自己的存储结构里,后者要手工挖。
五、加密容器与隐写
这是本案技术含量最高的一域。加密盘常是一个虚拟磁盘文件(如以 vhd 结尾的容器),做法是挂载后用已知口令解密,再看里面的内容——「AI 生成图片有几张」这类数量题,解密后直接数即可。判断某张图由哪个大模型生成,可在容器内按模型标识全局搜索来定位对应文件。图片隐写走标准载体分析:先用邮件里的提示确认「某图藏了东西」,再把它拖进隐写分析工具查看数据层,隐藏内容常落在文件尾部或附加数据里。另一类隐写更绕:一个压缩包解出来的文件把头改坏了,把它丢进语音识别系统去「听」,才还原出被藏进去的信息——隐写不止在图像,音频/识别通道也是载体。所有「修文件头」的操作都基于同一常识:文件被截取或篡改后头部魔数缺失,按格式补回魔数,工具才能重新识别它。
六、钱包与凭据链
加密货币钱包的取证重点是「凭据来自哪、地址在哪留了痕」。以太坊钱包可由浏览器扩展记录确认其名称;助记词的来源不一定在主磁盘,可能落在手机截图里,可把相关镜像导出后仿真、或结合手机模拟器交叉确认;公开地址则靠导出后全局搜账户关键字定位。还有一条通用口令链:机器里可能存着一份被加密的「日后给其他项目用的密码字典」,取证时找出口令提示、提取哈希、再用 hashcat 离线爆破——与登录口令同属「哈希在本地、靠爆破还原」的模式。凡此种种,落地的都是方法,具体口令、助记词、地址都不应外传。
七、AI 工具的留痕取证
这台机器部署了多个大模型应用,它们的配置与日志本身就是一手证据。某个大模型编排工具(dsh 一类)不用逆向软件组成,直接运行它的界面就能读出工作区名称;而 API Key 这类不在界面直接展示的,要去翻它的配置文件。历史提问可通过界面定位到某一轮对话的调用标识,进一步能看到该轮的输出规模(如推理 token 数)。另一个编码助手类工具(OpenCode 一类)的取证套路相似:版本可直接由仿真输出、连接了几个模型看配置、用户手动加的自定义 Skill 进 skill 目录导出即可读到名称;而这个 Skill 被用来分析过哪个站点,翻 Skill 生成的记录文档就能看到实际目标。有一道时间题提醒了一个易错点:问「截至使用某工具时该域名注册了多少天」,要按相对时间算——以取证时间点回推,而不是域名当前的绝对注册时长。
八、APK 与文档
移动应用与文档证据同样靠「挂载 + 特征识别」。一个被传输的敏感 APK 可能藏在某个容器里、且没有扩展名,要先把对应容器挂上、在文件系统里认出那个 APK,再用取证工具直接读出它的包名。文档类证据常卡在「只读」与「密码」两道:人员名单一类文件可搜索定位,但要先关闭只读、从工作目录复制出来才能进一步处理,仿真打开后拿到目标 PDF、修好文件头、再用一个「纯小写字母」的约定口令解开,才看得到里面的住址等信息——本题涉及个人信息,只保留「搜索定位、去只读、修文件头、按口令约定解密」这条链,不落任何具体住址。
九、方法论沉淀
把几十个散题收拢,能提炼出几条可复用的取证纪律。一,先自动扫描铺全景、再手工挖细节,凡是关键结论都要有第二来源印证(USB 设备与通知合看、账号与专用凭据文件合看)。二,「挂载—再挂载」是处理嵌套容器的通用钥匙:虚拟磁盘当镜像挂、加密盘解密后再挂、无扩展名的文件靠挂容器才被看见。三,哈希在本地就等于口令可离线还原:登录口令、密码字典都走「定位哈希、提取、爆破」三步。四,隐写照常规做两件事——修文件头恢复可识别性、按载体(图像数据层、音频通道)提取被藏内容。五,配置文件是版本、路径、端口、密钥这类「运行参数」的第一现场,翻配置往往比逆向程序更省力。六,时间类结论分清绝对时间与相对时间,按取证的「截至时刻」回推。把这些串起来,一份磁盘镜像里的系统、外设、浏览器、邮箱、容器、隐写、钱包、AI 工具留痕,就能用同一套「扫描铺面、交叉印证、挂载解密、哈希还原」的手艺系统性地撬开。