浏览器取证分析
浏览器取证分析
浏览器是用户访问互联网的主要入口,其中存储了大量的用户行为数据。浏览器取证能够揭示用户的上网习惯、访问记录、下载内容甚至登录凭据,是数字取证中极具价值的信息源。
一、浏览器数据存储概述
1.1 主流浏览器数据存储位置
Chrome(Windows)
%UserProfile%\AppData\Local\Google\Chrome\User Data\Default\Firefox(Windows)
%UserProfile%\AppData\Roaming\Mozilla\Firefox\Profiles\<profile>\Edge(Windows)
%UserProfile%\AppData\Local\Microsoft\Edge\User Data\Default\1.2 核心数据文件
| 数据类型 | Chrome文件 | Firefox文件 |
|---|---|---|
| 历史记录 | History | places.sqlite |
| 书签 | Bookmarks | places.sqlite |
| Cookie | Cookies | cookies.sqlite |
| 下载记录 | History | downloads.sqlite |
| 表单数据 | "Web Data" | formhistory.sqlite |
| 密码 | "Login Data" | key4.db + logins.json |
| 会话 | "Current Session" | sessionstore.jsonlz4 |
二、历史记录分析
2.1 Chrome历史记录
Chrome的History文件是一个SQLite数据库,包含以下关键表:
- urls:存储访问的URL、标题和访问次数
- visits:存储每次访问的时间戳和来源
- segments:存储访问分类信息
关键字段分析:
-- 查询访问记录,按时间排序
SELECT urls.url, urls.title, urls.visit_count,
datetime(visits.visit_time/1000000 - 11644473600, 'unixepoch') as visit_time
FROM urls JOIN visits ON urls.id = visits.url
ORDER BY visits.visit_time DESC;2.2 时间戳格式
- Chrome使用WebKit时间戳:从1601年1月1日起的微秒数
- Firefox使用Unix时间戳:从1970年1月1日起的秒数
- 转换公式:Unix时间 = WebKit时间 / 1000000 - 11644473600
2.3 隐身模式分析
Chrome隐身模式不会将浏览记录写入History数据库,但以下痕迹仍可能存在:
- DNS缓存:系统级别的DNS查询记录
- 网络设备日志:代理服务器、防火墙日志
- 内存数据:运行中的隐身窗口数据
- 预取文件:Windows Prefetch可能记录浏览器启动信息
三、Cookie分析
3.1 Cookie类型
- Session Cookie:临时Cookie,浏览器关闭后删除
- Persistent Cookie:持久Cookie,包含过期时间
- Secure Cookie:仅通过HTTPS传输
- HttpOnly Cookie:JavaScript无法访问
3.2 Cookie取证价值
- 确认用户是否访问过特定网站
- 提取会话令牌进行会话重放
- 追踪用户的网站登录状态
- 分析广告追踪和用户画像
3.3 Cookie数据提取
-- Chrome Cookie查询
SELECT host_key, name, value,
datetime(expires_utc/1000000 - 11644473600, 'unixepoch') as expires,
is_secure, is_httponly
FROM cookies
WHERE host_key LIKE '%example%';四、下载记录分析
4.1 下载记录信息
浏览器下载记录包含:
- 下载文件的URL和本地保存路径
- 下载开始和结束时间
- 下载文件大小
- 下载来源页面(referrer)
4.2 重要取证场景
- 确认是否下载了恶意文件
- 追踪恶意软件的来源URL
- 确认用户下载了敏感数据
- 分析下载时间和文件路径
-- Chrome下载记录查询
SELECT target_path, tab_url, datetime(start_time/1000000 - 11644473600, 'unixepoch') as download_time,
total_bytes, danger_type, interrupt_reason
FROM downloads
ORDER BY start_time DESC;五、表单与密码分析
5.1 自动填充数据
Chrome的Web Data数据库包含用户保存的自动填充信息:
- 地址信息(姓名、电话、邮箱、地址)
- 信用卡信息(部分加密)
5.2 保存的密码
- Chrome使用DPAPI加密存储密码
- Firefox使用NSS库加密存储密码
- 密码恢复需要特定的解密工具和环境
六、浏览器取证工具
6.1 常用工具
| 工具名称 | 特点 | 适用场景 |
|---|---|---|
| Hindsight | Google浏览器专用,免费 | Chrome/Edge分析 |
| NirSoft工具集 | 多款小工具,便携式 | 快速提取 |
| Browser Forensics | 商业工具 | 全面分析 |
| Autopsy | 开源取证平台 | 综合分析 |
| Elcomsoft工具 | 商业工具 | 密码恢复 |
6.2 Hindsight使用
Hindsight是Google浏览器历史的专业分析工具:
# 分析Chrome历史
python hindsight.py -i "C:\Users\user\AppData\Local\Google\Chrome\User Data" -o output
# 生成报告
python hindsight.py -i <Chrome数据目录> -o <输出目录> -f timeline七、浏览器取证注意事项
- 时间线重建:将浏览器活动与其他系统事件关联分析
- 多浏览器检查:系统上可能安装了多个浏览器
- 同步数据:云同步可能导致不同设备间的数据一致
- 数据恢复:SQLite数据库可能存在可恢复的已删除记录
- 缓存分析:浏览器缓存中保留了访问页面的快照
八、总结
浏览器取证分析能够揭示丰富的用户行为信息。通过系统化地分析浏览历史、Cookie、下载记录等数据,蓝队调查人员可以重建用户的上网活动,识别与安全事件相关的可疑行为。