
Hindsight 浏览器取证 API 参考用 Hindsight 解析 Chromium 数据库提取上网行为证据【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills本文是一份围绕 Hindsight 浏览器取证工具的实战技术指南基于本仓库中 analyzing-browser-forensics-with-hindsight 技能的 API 参考文档 展开。它系统讲解 Hindsight CLI 的调用语法、浏览器类型与输出工件、Chrome 三大 SQLite 数据库History、Cookies、Web Data的取证查询、Chrome 时间戳换算、各平台浏览器配置文件路径以及访问过渡类型Transition Types的语义。读者读完可以独立完成一次完整的浏览器取证分析从定位配置文件、运行 Hindsight、解读输出时间线到用仓库自带的 process.py 与 agent.py 脚本直接解析取证镜像中的 Chrome 数据库并将浏览器行为与系统时间线关联。Hindsight 是什么面向 Chromium 的统一时间线提取器Hindsight 是一款开源浏览器取证工具专门解析 Google Chrome 及其他基于 Chromium 内核的浏览器Microsoft Edge、Brave、Opera、Vivaldi产生的工件。它并非只读取单个数据库而是从多个浏览器数据库文件中抽取并相互关联数据最终生成一份统一的上网活动时间线unified timeline。根据技能元数据Hindsight 可解析的工件范围包括URL 访问历史、下载历史、缓存记录、书签、自动填充记录、保存的密码、浏览器偏好Preferences、浏览器扩展、HTTP Cookie、Local StorageHTML5 存储、登录数据Login Data以及会话/标签页信息。输出格式支持 XLSX、JSON、SQLite供调查人员在事件响应、内部威胁调查与刑事案件中重建用户的完整网络活动。从本仓库技能映射看该技能对应 NIST CSF 的 RS.AN-03、DE.AE-02、RS.MA-01以及 MITRE ATTCK 的 T1217浏览器信息发现、T1539窃取 Web 会话 Cookie、T1555.003来自 Web 浏览器的凭证、T1185浏览器会话劫持可用于验证安全监控覆盖范围。使用前提与运行环境在运行 Hindsight 之前需要满足以下前提来自 SKILL.mdPython 3.8并已安装 Hindsightpip install pyhindsight能访问取证镜像中的浏览器配置文件目录Profile Directory浏览器配置文件数据未被操作系统级加密否则需先解密或配合 DPAPI 相关技能用于结果分析的工具Timeline Explorer 或任意电子表格应用打开 XLSX。浏览器配置文件位置Chrome 及各 Chromium 浏览器在各平台上的默认配置文件路径如下浏览器Windows 配置文件路径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\Chrome (macOS)~/Library/Application Support/Google/Chrome/Default/Chrome (Linux)~/.config/google-chrome/Default/其中 Windows 与 Linux 路径在仓库的 agent.py 中也有对应实现——find_browser_profiles()会依次探测 Windows 的 Chrome/Edge/Brave 路径与 Linux 的google-chrome、chromium、microsoft-edge路径并返回真实存在的配置目录可作为自动化定位配置文件的参考实现。Hindsight CLI 完整参考命令语法本 API 参考给出了 Hindsight 的命令行核心用法hindsight.py -i profile_path # 分析 Chrome 配置文件 hindsight.py -i path -o output_dir # 保存结果 hindsight.py -i path -f xlsx # 导出为 Excel hindsight.py -i path -f sqlite # 导出为 SQLite hindsight.py -i path -b browser_type # 指定浏览器类型支持的浏览器类型-b 参数标志浏览器ChromeGoogle ChromeEdgeMicrosoft Edge (Chromium)BraveBrave BrowserOperaOpera (Chromium)结合 SKILL.md 中的实战命令示例完整用法还包括# 基本分析指定取证镜像中的 Chrome 配置文件并输出结果目录 hindsight.exe -i C:\Evidence\Users\suspect\AppData\Local\Google\Chrome\User Data\Default -o C:\Output\chrome_analysis # 显式指定浏览器类型 hindsight.exe -i /path/to/profile -o /output/analysis -b Chrome # 输出 JSONL 格式 hindsight.exe -i C:\Evidence\Chrome\Default -o C:\Output\chrome --format jsonl # 启用缓存解析更慢但更完整 hindsight.exe -i C:\Evidence\Chrome\Default -o C:\Output\chrome --cache参数要点说明-i指向的是浏览器配置文件目录Default目录而非单个数据库文件Hindsight 会识别该目录下的History、Cookies、Web Data、Login Data、Bookmarks、Preferences等工件文件-o指定报告输出目录-f/--format控制输出格式常用xlsx、sqlite、jsonl--cache启用缓存解析会显著增加耗时但在需要恢复被删或未写入历史记录的缓存内容时不可或缺。输出工件Output ArtifactsHindsight 的输出时间线中包含以下关键表表描述urls带访问计数的浏览历史downloads带来源 URL 的文件下载记录cookiesCookie 值、所属域名、过期时间autofill表单自动填充条目bookmarks已保存书签preferences浏览器配置local_storage站点本地存储数据login_data已保存凭证的元数据extensions已安装扩展及其权限这些表与 SKILL.md 中的关键工件文件清单一一对应文件内容HistoryURL 访问、下载、关键词搜索Cookies含域名、过期时间、值的 HTTP CookieWeb Data自动填充条目、已保存的信用卡Login Data已保存的用户名/密码加密BookmarksJSON 书签树Preferences浏览器配置与扩展Local Storage/按域区分的 HTML5 Local StorageSession Storage/按域区分的会话存储Network Action Predictor之前输入过的 URLShortcutsOmnibox 快捷方式与预测Top Sites高频访问站点Chrome SQLite 数据库取证查询浏览器取证的核心是对 SQLite 数据库的直接查询。下面给出本 API 参考中的三类核心数据库查询可用于验证 Hindsight 输出或手动重建证据。History 数据库访问历史与下载-- 浏览历史 SELECT u.url, u.title, v.visit_time, v.transition FROM visits v JOIN urls u ON v.url u.id ORDER BY v.visit_time DESC; -- 下载记录 SELECT target_path, tab_url, total_bytes, start_time, danger_type, mime_type FROM downloads ORDER BY start_time DESC;补充表结构说明来自 SKILL.mdurls表关键列id, url, title, visit_count, typed_count, last_visit_timevisits表关键列id, url, visit_time, from_visit, transition, segment_iddownloads表关键列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。transition字段低 8 位transition 0xFF即访问过渡类型详见下文 Transition Types 一节danger_type大于 0 表示下载被浏览器标记为危险是排查恶意下载的重要线索。Cookies 数据库SELECT host_key, name, value, creation_utc, expires_utc, is_secure, is_httponly FROM cookies ORDER BY creation_utc DESC;Cookies 表扩展列encrypted_value加密后的值、path、last_access_utc、has_expires、is_persistent、priority、samesite。需要强调的是现代 Chrome 中 Cookie 的value列通常为空实际值在encrypted_value中需借助 Hindsight 或 DPAPI 解密能力才能还原会话令牌。Web Data 数据库自动填充SELECT name, value, count, date_created, date_last_used FROM autofill ORDER BY date_last_used DESC;注意Web Data 中自动填充条目的date_created与date_last_used字段在较新版本 Chrome 中可能以秒为单位存储与 History/Cookies 的微秒 FILETIME 不同仓库 agent.py 的parse_autofill()在转换时对这两个字段乘以1000000再走标准时间戳换算正是对这一差异的处理可直接参考。Chrome 时间戳转换Chrome/WebKit 时间格式时间格式Chrome 数据库中的时间戳visit_time、creation_utc、expires_utc等采用Windows FILETIME 基准自 1601 年 1 月 1 日以来的微秒数microseconds since January 1, 1601。Python 转换代码import datetime def chrome_to_datetime(chrome_time): epoch datetime.datetime(1601, 1, 1) return epoch datetime.timedelta(microsecondschrome_time)SQL 转换写法若直接用 SQLite 查询可转换为 Unix 时间戳秒-- Chrome/WebKit 时间戳转可读时间 datetime((visit_time/1000000)-11644473600, unixepoch)其中11644473600是 1601-01-01 到 1970-01-01 之间的秒数差。仓库中 process.py 与 agent.py 的chrome_time_to_datetime()实现则额外处理了两种边界情况值得在取证脚本中沿用def chrome_time_to_datetime(chrome_time): Convert Chrome timestamp (microseconds since 1601-01-01) to datetime. if not chrome_time or chrome_time 0: return None # 0 值时间戳视为无时间 try: epoch datetime.datetime(1601, 1, 1) delta datetime.timedelta(microsecondschrome_time) return (epoch delta).isoformat() Z except (OverflowError, OSError): return None # 溢出或无效值安全返回不同浏览器的时间戳格式对照来自 standards.md浏览器时间戳格式Chrome/WebKit自 1601-01-01 UTC 起的微秒数Firefox/Mozilla自 Unix 纪元起的微秒数Safari/Mac自 2001-01-01 UTC 起的秒数跨浏览器取证时必须分别换算混用会导致时间线错位数百年。访问过渡类型Transition Typesvisits表中的transition字段记录了本次访问的成因是区分用户主动访问与程序自动导航的关键证据。通过visit_transition 0xFF取低 8 位核心类型值类型描述0LINK点击链接进入1TYPED在地址栏手动输入 URL2AUTO_BOOKMARK通过书签进入3AUTO_SUBFRAME子框架导航5GENERATED生成的访问例如搜索结果页7FORM_SUBMIT表单提交8RELOAD页面刷新取证解读示例TYPED (1)表示用户直接在地址栏输入多为主动访问目标站点而LINK (0)多为从某页面跳转AUTO_SUBFRAME (3)通常由页面内嵌资源加载产生对判断用户是否真的访问过某内容意义有限FORM_SUBMIT (7)对应登录/搜索等表单提交动作可与凭证窃取类攻击T1555.003关联。仓库 agent.py 的parse_history()在查询中直接使用transition 0xFF提取核心类型并输出到结果字典可在自动化脚本中复刻。用仓库脚本快速复现分析除了 Hindsight 本身本仓库提供了两个可独立运行的 Python 分析脚本可以直接对取证镜像中的 Chrome 配置文件执行解析用于快速复现和交叉验证。process.py最小化历史/下载提取process.py 是精简版分析器仅解析History数据库中的访问记录与下载记录输出 JSON 报告python skills/analyzing-browser-forensics-with-hindsight/scripts/process.py chrome_profile output其核心特点以只读方式打开数据库sqlite3.connect(ffile:{history_db}?modero, uriTrue)避免污染证据访问记录取最近 2000 条下载记录取最近 500 条输出browser_forensics.json包含visits、downloads数量统计与明细。agent.py覆盖历史/下载/Cookie/自动填充/扩展的完整分析agent.py 是更完整的取证分析代理覆盖五类工件解析python skills/analyzing-browser-forensics-with-hindsight/scripts/agent.py profile_path # 例python agent.py ~/AppData/Local/Google/Chrome/User\ Data/Default各解析函数及对应数据库函数解析内容数据源parse_history()访问历史URL、标题、时间、过渡类型、访问计数Historyparse_downloads()下载记录目标路径、来源 URL、大小、起止时间、danger_type、MIMEHistoryparse_cookies()Cookie域名、名称、路径、创建/过期时间、Secure/HttpOnly/SameSiteCookies或Network/Cookiesparse_autofill()自动填充条目字段名、值、使用次数、创建/最后使用时间Web Dataparse_extensions()已安装扩展ID、名称、版本、权限清单Extensions/*/manifest.json两个值得注意的实现细节Cookie 路径兼容较新版本 Chrome 将 Cookies 数据库移入Network/子目录parse_cookies()会先尝试根目录再回退到Network/Cookies自动填充时间戳换算parse_autofill()对date_created/date_last_used乘以1000000再换算秒 → 微秒与 History/Cookies 保持同一时间基准。可疑活动自动标记agent.py 的detect_suspicious_activity()给出了自动化 IOC 命中逻辑可直接借鉴用于调查可疑域名黑名单pastebin.com、ngrok.io、raw.githubusercontent.com、transfer.sh、file.io、temp.sh、anonfiles.com——命中即输出suspicious_url发现危险 MIME 类型application/x-msdownload、application/x-msdos-program、application/x-executable、application/vnd.ms-excel.sheet.macroEnabled——命中即输出suspicious_mime危险下载标记downloads.danger_type 0时输出dangerous_download与 Chrome 的安全浏览标记直接对应。运行后终端会打印各工件数量与前若干条记录以及可疑活动发现列表适合在 SOC 场景下快速形成初步判断。取证工作流与报告输出标准分析流程结合 workflows.md一次完整的 Chrome 配置文件分析遵循如下步骤定位浏览器配置文件目录 | 对配置文件路径运行 Hindsight | 审阅生成的时间线XLSX/JSON | 分析 URL 历史中的可疑站点 | 检查下载中的恶意软件/被外泄数据 | 审阅 Cookie 中的会话劫持证据 | 检查自动填充与已保存凭证 | 将浏览器活动与系统时间线关联其中最后一步与系统时间线关联最为关键浏览器历史中的某个下载动作应能与系统日志中的文件创建时间、进程执行时间互相印证形成完整证据链。报告模板仓库提供了可直接套用的 浏览器取证报告模板包含案件信息案件编号、浏览器、配置文件路径活动汇总URL 访问数、下载数、已保存密码数、Cookie 数值得关注的 URL 表时间戳、URL、标题下载表时间戳、文件、来源 URL、大小。典型输出解读以下是一个典型分析输出片段来自 SKILL.md 的示例输出展示如何从时间线中识别可疑行为模式[] Parsing History database... URL records: 12,456 Download records: 234 Search terms: 567 [] Parsing Cookies database... Cookie records: 8,923 Encrypted cookies: 6,712 [] Parsing Web Data (Autofill)... Autofill entries: 1,234 Credit card entries: 2 (encrypted) [] Parsing Login Data... Saved credentials: 45 (encrypted)时间线中值得警惕的组合模式短时间内先后访问mega.nz、pastebin.com、transfer.sh等文件分享/匿名站点配合可疑下载如update_client.exe指向数据外泄Exfiltration行为直接访问https://192.168.1.50:8443/admin之类的内网管理面板结合TYPED过渡类型可推断用户主动访问会话 Cookie 出现在非预期域名如SESSION_ID对应.corporate.com需结合 T1539窃取 Web 会话 Cookie评估会话劫持风险。--- Downloads (Suspicious) --- 2024-01-15 14:33:15.000 Q4_Financial_Report.xlsm https://phish-domain.com/docs/report 245 KB 2024-01-15 14:34:02.000 update_client.exe https://cdn.evil-updates.com/client.exe 1.2 MB辅助工具与兼容性提示根据 standards.md浏览器取证生态中常与 Hindsight 搭配使用的工具包括Hindsight主分析工具产出统一时间线DB Browser for SQLite直接检查 Chrome 各 SQLite 数据库结构History、Cookies、Web Data、Login DataChromeCacheViewNirSoft缓存分析配合 Hindsight 的--cache参数可交叉验证缓存中恢复的内容。使用限制说明本技能面向Chromium 系浏览器Chrome、Edge、Brave、Opera、VivaldiFirefox 使用不同的时间戳基准Unix 微秒与数据库结构需用其他工具处理若浏览器配置文件受操作系统级加密保护如 Windows 上使用 DPAPI 加密的登录数据与 CookieHindsight 解析出的加密字段需配合 DPAPI 解密技能才能还原明文这一点在 SKILL.md 的前置条件中已明确列出读取取证镜像中的数据库时务必使用只读模式modero仓库两个脚本均遵循这一证据保全要求。小结围绕 api-reference.md 这份核心参考本文完整覆盖了 Hindsight CLI 语法与输出工件、Chrome 三大取证数据库的 SQL 查询、Chrome 微秒时间戳的双路转换Python 与 SQL、各平台配置文件路径、访问过渡类型语义并引入仓库中的 process.py 与 agent.py 展示了从零实现浏览器取证解析的可行路径。无论是事件响应中重建攻击者行为、内部威胁调查中的违规取证还是刑事案件中的上网行为还原这套CLI 工具 SQLite 查询 时间戳换算 自动化标记的组合都能形成可落地、可复现、可交叉验证的取证方法。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考