imightbeakira/history-stealer
GitHub: imightbeakira/history-stealer
一个伪装成 VPN 的恶意浏览器扩展 PoC,演示流氓扩展如何静默窃取并渗出用户浏览历史。
Stars: 3 | Forks: 1
# 恶意 VPN 扩展 – 概念验证
## 目的
本仓库演示了一个看似无害的浏览器扩展(一个“VPN”弹窗)如何在后台静默收集敏感用户数据。其目的在于:
- 教育开发者和用户了解流氓浏览器扩展的风险
- 为安全研究人员测试检测工具(IDS、EDR、浏览器安全扫描器)提供示例
- 阐述常见的恶意软件技术:数据渗出、持久化后台脚本、利用虚假 UI 进行社会工程学攻击
## 此扩展的实际行为
| 功能 | 描述 |
|--------|-------------|
| **虚假界面** | 一个精美的弹窗,外观如同高级 VPN:连接/断开开关、服务器列表、虚假计数器(已节省 MB、已拦截威胁数)。 |
| **后台数据窃取** | 每隔 30 秒,后台脚本会抓取过去 24 小时的浏览历史(URL、标题、访问时间、访问次数)。 |
| **受害者指纹识别** | 生成一个唯一的 `victim_id`(UUID v4)并存储在 `chrome.storage.local` 中,以跟踪每次安装。 |
| **数据渗出** | 通过 HTTP POST(JSON)将成批的窃取历史记录发送到硬编码的远程服务器。批处理系统可确保在服务器暂时无法访问时不会丢失数据。 |
| **虚假 VPN 功能** | “连接”完全是为了美观。拨动开关只会改变 UI,没有任何真实的网络效应。显示的 IP 地址是硬编码的,并非由任何实际 VPN 分配。 |
所有敏感操作都在后台 Service Worker 中进行,只要扩展处于安装状态,对用户就完全不可见。
## 文件概览
- **`popup.html`** – 具有欺骗性的 UI,其样式看起来像一个专业的 VPN 面板。
- **`popup.js`** – 驱动虚假连接动画、服务器切换和增量计数器的脚本。
- **`background.js`** – 恶意核心:设置定时器,抓取历史记录,管理本地待处理队列,并将数据渗出到远程端点。
- **`manifest.json`** –(您应该单独添加此文件)授予 `history`、`storage`、`alarms` 等权限,以及渗出获取数据所需的 `host_permissions`。
## 如何安全地进行测试(用于研究)
1. **克隆此仓库并彻底检查代码。**
2. **替换 `background.js` 中的渗出端点**:
3. 在受控环境中加载扩展:
启用“开发者模式”并加载已解压的扩展程序。
## 伦理与法律
本项目严格仅用于教育和防御性安全研究。
请勿在未经他人明确同意的情况下,使用此工具实际窃取其数据。
未经授权访问计算机系统在大多数国家/地区属于违法行为。
如果您在夺旗赛(CTF)、实验室或培训环境中使用此工具,请确保所有参与者了解其性质。
## 免责声明
本代码按“原样”提供,不提供任何形式的担保。作者对因误用造成的任何损害或法律问题不承担任何责任。使用风险自负,且仅限在您拥有或被授权测试的环境中使用。
## 目的
本仓库演示了一个看似无害的浏览器扩展(一个“VPN”弹窗)如何在后台静默收集敏感用户数据。其目的在于:
- 教育开发者和用户了解流氓浏览器扩展的风险
- 为安全研究人员测试检测工具(IDS、EDR、浏览器安全扫描器)提供示例
- 阐述常见的恶意软件技术:数据渗出、持久化后台脚本、利用虚假 UI 进行社会工程学攻击
## 此扩展的实际行为
| 功能 | 描述 |
|--------|-------------|
| **虚假界面** | 一个精美的弹窗,外观如同高级 VPN:连接/断开开关、服务器列表、虚假计数器(已节省 MB、已拦截威胁数)。 |
| **后台数据窃取** | 每隔 30 秒,后台脚本会抓取过去 24 小时的浏览历史(URL、标题、访问时间、访问次数)。 |
| **受害者指纹识别** | 生成一个唯一的 `victim_id`(UUID v4)并存储在 `chrome.storage.local` 中,以跟踪每次安装。 |
| **数据渗出** | 通过 HTTP POST(JSON)将成批的窃取历史记录发送到硬编码的远程服务器。批处理系统可确保在服务器暂时无法访问时不会丢失数据。 |
| **虚假 VPN 功能** | “连接”完全是为了美观。拨动开关只会改变 UI,没有任何真实的网络效应。显示的 IP 地址是硬编码的,并非由任何实际 VPN 分配。 |
所有敏感操作都在后台 Service Worker 中进行,只要扩展处于安装状态,对用户就完全不可见。
## 文件概览
- **`popup.html`** – 具有欺骗性的 UI,其样式看起来像一个专业的 VPN 面板。
- **`popup.js`** – 驱动虚假连接动画、服务器切换和增量计数器的脚本。
- **`background.js`** – 恶意核心:设置定时器,抓取历史记录,管理本地待处理队列,并将数据渗出到远程端点。
- **`manifest.json`** –(您应该单独添加此文件)授予 `history`、`storage`、`alarms` 等权限,以及渗出获取数据所需的 `host_permissions`。
## 如何安全地进行测试(用于研究)
1. **克隆此仓库并彻底检查代码。**
2. **替换 `background.js` 中的渗出端点**:
标签:DAST, EDR测试, ESC8, IDS测试, IP 地址批量处理, Object Callbacks, 前端伪装, 后台静默运行, 后端开发, 恶意VPN插件, 恶意软件分析, 搜索语句(dork), 数据可视化, 数据外发, 数据窃取, 概念验证, 浏览历史采集, 浏览器扩展安全, 用户指纹追踪, 社会工程学, 网络钓鱼, 调试辅助, 隐私泄露