La interfaz está localizada; las descripciones y documentos de las Skills se traducen automáticamente con IA a su idioma. El código, los comandos, rutas y términos técnicos se mantienen en el original, y prevalece el documento del autor.
Explorar Skills
Productividad · SKILL.md

extracting-browser-history-artifacts

extracting-browser-history-artifacts

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

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentación 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 guardadas