L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

extracting-browser-history-artifacts

extracting-browser-history-artifacts

从 Chrome、Firefox 和 Edge 中提取并分析浏览器历史记录、Cookie、缓存、下载记录和书签,以获取用户网络活动的取证证据。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: extracting-browser-history-artifacts description: 从 Chrome、Firefox 和 Edge 中提取并分析浏览器历史记录、Cookie、缓存、下载记录和书签,以获取用户网络活动的取证证据。 domain: cybersecurity subdomain: digital-forensics tags: [forensics, browser-forensics, chrome, firefox, edge, web-history, artifact-extraction] version: "1.0" author: mahipal license: Apache-2.0

提取浏览器历史制品

适用场景

  • 在取证检查中调查用户网络活动时
  • 在内部威胁调查中建立数据外泄模式时
  • 追踪用户访问恶意或违反策略的网站时
  • 将浏览器活动与其他取证制品和时间线相关联时
  • 在钓鱼攻击调查中识别点击了哪些链接时

前置条件

  • 取证镜像或用户配置文件目录的访问权限
  • SQLite3 用于查询浏览器数据库
  • Hindsight、BrowsingHistoryView 或 DB Browser for SQLite
  • 了解各操作系统中浏览器制品文件的位置
  • 安装 sqlite3 模块的 Python 3,用于自动化提取
  • 了解 Chrome、Firefox 和 Edge 的存储格式

工作流程

步骤 1:定位浏览器制品文件

# 挂载取证镜像
mount -o ro,loop,offset=$((2048*512)) /cases/case-2024-001/images/evidence.dd /mnt/evidence

# Chrome 制品位置(Windows)
CHROME_WIN="/mnt/evidence/Users/suspect/AppData/Local/Google/Chrome/User Data/Default"
# 关键文件:History、Cookies、Login Data、Web Data、Bookmarks、Preferences

# Firefox 制品位置(Windows)
FIREFOX_WIN="/mnt/evidence/Users/suspect/AppData/Roaming/Mozilla/Firefox/Profiles/*.default-release"
# 关键文件:places.sqlite、cookies.sqlite、formhistory.sqlite、logins.json

# Edge(Chromium)制品位置(Windows)
EDGE_WIN="/mnt/evidence/Users/suspect/AppData/Local/Microsoft/Edge/User Data/Default"

# 复制制品到工作目录
mkdir -p /cases/case-2024-001/browser/{chrome,firefox,edge}
cp -r "$CHROME_WIN"/{History,Cookies,Downloads,"Login Data","Web Data",Bookmarks} \
   /cases/case-2024-001/browser/chrome/ 2>/dev/null

# 对制品进行哈希验证以确保完整性
find /cases/case-2024-001/browser/ -type f -exec sha256sum {} \; \
   > /cases/case-2024-001/browser/artifact_hashes.txt

步骤 2:提取 Chrome 浏览历史和下载记录

# 查询 Chrome History 数据库
sqlite3 /cases/case-2024-001/browser/chrome/History << 'SQL'
.headers on
.mode csv
.output /cases/case-2024-001/analysis/chrome_history.csv

SELECT
    urls.url,
    urls.title,
    datetime(urls.last_visit_time/1000000-11644473600, 'unixepoch') AS last_visit,
    urls.visit_count,
    urls.typed_count,
    visits.transition & 0xFF AS transition_type
FROM urls
LEFT JOIN visits ON urls.id = visits.url
ORDER BY urls.last_visit_time DESC;
SQL

# 提取 Chrome 下载记录
sqlite3 /cases/case-2024-001/browser/chrome/History << 'SQL'
.headers on
.mode csv
.output /cases/case-2024-001/analysis/chrome_downloads.csv

SELECT
    current_path,
    tab_url AS source_url,
    total_bytes,
    datetime(start_time/1000000-11644473600, 'unixepoch') AS start_time,
    datetime(end_time/1000000-11644473600, 'unixepoch') AS end_time,
    state,
    danger_type,
    mime_type
FROM downloads
ORDER BY start_time DESC;
SQL

步骤 3:提取 Firefox 浏览历史

# 从 Firefox places.sqlite 查询历史记录
sqlite3 /cases/case-2024-001/browser/firefox/places.sqlite << 'SQL'
.headers on
.mode csv
.output /cases/case-2024-001/analysis/firefox_history.csv

SELECT
    moz_places.url,
    moz_places.title,
    datetime(moz_historyvisits.visit_date/1000000, 'unixepoch') AS visit_date,
    moz_places.visit_count,
    moz_historyvisits.visit_type
FROM moz_places
JOIN moz_historyvisits ON moz_places.id = moz_historyvisits.place_id
ORDER BY moz_historyvisits.visit_date DESC;
SQL

步骤 4:提取 Cookie 和存储的凭据

# 提取 Chrome Cookie
sqlite3 /cases/case-2024-001/browser/chrome/Cookies << 'SQL'
.headers on
.mode csv
.output /cases/case-2024-001/analysis/chrome_cookies.csv

SELECT host_key, name, path,
    datetime(creation_utc/1000000-11644473600, 'unixepoch') AS created,
    datetime(last_access_utc/1000000-11644473600, 'unixepoch') AS last_access,
    is_secure, is_httponly
FROM cookies ORDER BY last_access_utc DESC;
SQL

# 注意:Chrome Login Data 使用 DPAPI(Windows)或密钥链(Mac)加密
# 提取存储的登录 URL(密码已加密)
sqlite3 /cases/case-2024-001/browser/chrome/"Login Data" << 'SQL'
.headers on
.mode csv
.output /cases/case-2024-001/analysis/chrome_logins.csv

SELECT origin_url, action_url, username_value,
    datetime(date_created/1000000-11644473600, 'unixepoch') AS date_created,
    times_used
FROM logins ORDER BY date_last_used DESC;
SQL

步骤 5:使用 Hindsight 进行全面的 Chrome 分析

# 安装 Hindsight
pip install pyhindsight

# 对 Chrome 配置文件运行 Hindsight
hindsight -i "/cases/case-2024-001/browser/chrome/" \
   -o /cases/case-2024-001/analysis/hindsight_report \
   -f xlsx

# Hindsight 自动提取:
# - 带时间戳的浏览历史
# - 含来源 URL 的下载记录
# - Cookie(尽可能解密)
# - 缓存记录、Local Storage 条目、自动填充数据
# - 已保存密码(加密状态)、会话/标签恢复数据

关键概念

概念描述
Chrome 时间戳自 1601 年 1 月 1 日起的微秒数(WebKit/Chrome 纪元)
Firefox 时间戳自 1970 年 1 月 1 日起的微秒数(Unix 纪元,微秒级)
跳转类型(Transition types)URL 的访问方式:直接输入(1)、链接(0)、重定向(5/6)
DPAPI 加密Windows 数据保护 API,用于加密存储的密码和 Cookie
places.sqliteFirefox 合并的历史记录和书签数据库
SQLite WAL预写日志,可能包含最近删除的浏览器记录

工具与系统

工具用途
Hindsight全面的 Chrome/Chromium 取证分析工具
sqlite3SQLite 数据库命令行查询工具
DB Browser for SQLite用于浏览 SQLite 数据库的 GUI 工具
BrowsingHistoryViewNirSoft 跨浏览器历史记录查看工具
KAPE包含浏览器数据的自动化制品收集工具
Autopsy带有浏览器制品摄取模块的完整取证平台

常见场景

场景 1:钓鱼调查 提取报告的钓鱼事件时间段附近的浏览器历史,识别被访问的钓鱼 URL,检查恶意附件的下载记录,检查可能已被盗取的会话令牌 Cookie。

场景 2:通过云服务进行数据外泄 搜索云存储 URL(Dropbox、Google Drive、OneDrive、Mega),检查下载和上传记录,查看调查期间活跃的云服务会话 Cookie。

场景 3:违规行为调查 提取调查期间的完整浏览历史,对访问的网站进行分类,记录时间戳和访问时长,与网络代理日志相关联进行验证。

场景 4:恶意软件投递向量分析 追踪导致偷渡式下载的重定向链,检查下载数据库中的恶意软件负载,检查漏洞利用工具包落地页的缓存。

Skills enregistrées