自动化与脚本
从 Chromium 浏览器取证镜像中重建用户上网时间线(历…
当需要从 Chrome/Edge/Brave/Opera/Vivaldi 的浏览器配置目录中提取并关联浏览历史、下载、Cookie、缓存、自动填充、保存的密码和扩展,以还原用户网络活动时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
从 Chromium 浏览器取证镜像中重通用
解决思路
- 安装 Hindsight:使用 `pip install pyhindsight`(需 Python 3.8+),并确保能访问取证镜像中的浏览器配置目录。
- 定位浏览器配置目录:Chrome 为 `%LOCALAPPDATA%\Google\Chrome\User Data\Default\`,Edge 为 `%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\`,Brave 为 `%LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\`,Opera 为 `%APPDATA%\Opera Software\Opera Stable\`,Vivaldi 为 `%LOCALAPPDATA%\Vivaldi\User Data\Default\`;macOS 上 Chrome 为 `~/Library/Application Support/Google/Chrome/Default/`,Linux 上为 `~/.config/google-chrome/Default/`。
- 运行命令行分析:`hindsight.exe -i "C:\Evidence\Users\suspect\AppData\Local\Google\Chrome\User Data\Default" -o C:\Output\chrome_analysis`,用 `-b Chrome` 指定浏览器类型,用 `--format jsonl` 输出 JSON,用 `--cache` 启用缓存解析(更慢但更完整)。
- 或使用 Web UI:运行 `hindsight_gui.exe`,访问 http://localhost:8080,上传或指向浏览器配置目录,配置输出格式与分析选项,生成并下载报告。
- 解析关键取证文件:History(URL 访问、下载、关键词搜索)、Cookies(HTTP Cookie 的域、过期时间、值)、Web Data(自动填充条目、保存的信用卡)、Login Data(保存的用户名/密码,加密)、Bookmarks(JSON 书签树)、Preferences(浏览器配置与扩展)、Local Storage/(按域的 HTML5 本地存储)、Session Storage/(按域的会话存储)、Network Action Predictor(曾输入的 URL)、Shortcuts(地址栏快捷方式与预测)、Top Sites(常访问站点)。
- 理解 Chrome History 数据库结构:`urls` 表含 id、url、title、visit_count、typed_count、last_visit_time;`visits` 表含 id、url、visit_time、from_visit、transition、segment_id;`downloads` 表含 id、current_path、target_path、start_time、end_time、received_bytes、total_bytes、state、danger_type、interrupt_reason、url、referrer、tab_url、mime_type、original_mime_type;`cookies` 表含 creation_utc、host_key、name、value、encrypted_value、path、expires_utc、is_secure、is_httponly、last_access_utc、has_expires、is_persistent、priority、samesite。
- 转换 Chrome/WebKit 时间戳:其为自 1601-01-01 起的微秒数,SQL 中用 `datetime((visit_time/1000000)-11644473600, 'unixepoch')` 转换,Python 中用 `CHROME_EPOCH = datetime(1601, 1, 1)` 加 `timedelta(microseconds=chrome_ts)`。
- 用 Python 脚本以只读方式打开数据库并提取证据:`sqlite3.connect(f"file:{history_db}?mode=ro", uri=True)`,查询 visits 与 urls 关联(含 transition 类型)、downloads、keyword_search_terms 与 urls 关联,将结果写入 JSON 报告。
- 将输出整理为统一时间线(XLSX、JSON 或 SQLite),用 Timeline Explorer 或电子表格按时间排序,关联浏览、下载、Cookie 会话令牌等事件,识别可疑行为(如访问云存储上传、pastebin、代理/VPN、恶意下载域名)。
适用边界 · 注意事项
- 浏览器配置数据被操作系统级加密且无法解密时(如受 DPAPI 保护且无用户凭据)。
- 没有取证镜像或无法访问浏览器配置目录时。
- 仅需查看单个书签或简单历史、无需跨多个数据库关联时间线时,直接读 SQLite 更轻量。