fish-not-phish/open-vbrowser

GitHub: fish-not-phish/open-vbrowser

vBrowser 是一个容器化的隐蔽浏览器平台,为网络安全专业人员提供安全的隔离环境来开展深网和暗网调查,确保调查过程不暴露身份和系统环境。

Stars: 24 | Forks: 2

# 打开 vBrowser - OvB

vBrowser Logo

[![Stars](https://img.shields.io/github/stars/fish-not-phish/open-vbrowser?style=social)](https://github.com/fish-not-phish/open-vbrowser/stargazers) [![Forks](https://img.shields.io/github/forks/fish-not-phish/open-vbrowser?style=social)](https://github.com/fish-not-phish/open-vbrowser/network/members) [![License](https://img.shields.io/github/license/fish-not-phish/open-vbrowser?color=green)](LICENSE) ![Status](https://img.shields.io/badge/status-Alpha-red) 请访问 https://docs.vbrowser.io/ 获取官方及深入文档。 ## 演示 [![观看会话启动过程](https://img.youtube.com/vi/Dh_dyxh2Eo8/maxresdefault.jpg)](https://youtu.be/Dh_dyxh2Eo8) vBrowser 最初由 **Joseph Fisher**(一名网络威胁情报经理)创建,旨在协助进行深网和暗网调查,同时不暴露身份并保持隐蔽。vBrowser 团队意识到,许多 SOC 缺乏进行适当调查所需的工具或沙箱环境。vBrowser 以极低的价格为企业和个人提供访问此基础设施的权限,降低了那些无法负担带有付费墙功能的昂贵订阅服务的人的门槛。我们的最终目标是回馈社区——加强网络调查并帮助保护人们的安全。 ## 目录 - [支持的架构和平台](#supported-architecture-and-platforms) - [前置条件](#prerequisites) - [安装 Terraform (Linux)](#installing-terraform-linux) - [AWS 凭证设置](#aws-credentials-setup) - [Cloudflare 设置](#cloudflare-setup) - [快速入门](#getting-started) - [1. 克隆仓库](#1-clone-the-repository) - [2. 导出 AWS 凭证](#2-export-aws-credentials) - [3. 运行设置脚本](#3-run-the-setup-script) - [`setup.sh` 的作用](#what-setupsh-does) - [反向代理选项](#reverse-proxy-options) - [重新部署代码更改](#redeploying-code-changes) - [销毁部署](#destroying-the-deployment) - [支持的浏览器和操作系统镜像](#supported-browsers--os-images) - [许可证](#license) ## 支持的架构和平台 | 架构 | 平台 | 是否支持 | 备注 | |--------------|----------|-----------|----------------------------------| | `amd64` | Linux | 是 | 经过全面测试和支持 | | `amd64` | Windows | 很可能 | 未测试,但预期可以正常工作 | | `aarch64` | Linux | 很可能 | 未测试,但预期可以正常工作 | | `arm64` | Linux | 很可能 | 未测试,但预期可以正常工作 | ## 前置条件 ### 安装 Terraform (Linux) 要运行 OvB 的基础设施组件,您需要 [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)。以下是如何在基于 Debian 的 Linux 系统(例如 Ubuntu)上安装它的步骤: **1. 更新并安装前置条件** ``` sudo apt-get update -y && sudo apt-get install -y gnupg software-properties-common ``` **2. 安装 HashiCorp GPG 密钥** ``` wget -O- https://apt.releases.hashicorp.com/gpg | \ gpg --dearmor | \ sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg > /dev/null ``` **3. 添加官方 HashiCorp 仓库** ``` echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \ https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | \ sudo tee /etc/apt/sources.list.d/hashicorp.list ``` **4. 下载包信息并安装** ``` sudo apt update -y && sudo apt-get install -y terraform ``` ### AWS 凭证设置 Terraform 需要 AWS 凭证来预置 ECS、ECR、VPC 和 IAM 资源。 **1. 登录 AWS** 前往 [https://aws.amazon.com/console/](https://aws.amazon.com/console/)。建议使用具有所需权限的 IAM 用户(而不是 root 用户)。 **2. 创建 Access Key** 1. 导航到 **IAM** → **用户** → 您的用户 → **安全凭证**。 2. 点击 **创建 access key** 并复制: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` **3. 导出凭证** ``` export AWS_ACCESS_KEY_ID="your-access-key-id" export AWS_SECRET_ACCESS_KEY="your-secret-access-key" ``` ### Cloudflare 设置 OvB 使用 Cloudflare 为每个浏览器会话动态创建 DNS A 记录。 **1. 创建 Cloudflare 账户**:前往 [https://dash.cloudflare.com/sign-up](https://dash.cloudflare.com/sign-up)(免费版即可)。 **2. 添加您的域名**到 Cloudflare,并将您注册商的 nameservers 更新为 Cloudflare 提供的地址。 **3. 复制您的 Zone ID**:在 Cloudflare 仪表板的域名“概览”页面(右下角)获取。 **4. 创建 API Token** 1. 访问 [https://dash.cloudflare.com/profile/api-tokens](https://dash.cloudflare.com/profile/api-tokens) 2. 点击 **创建 Token** → 使用 **Edit zone DNS** 模板 3. 设置权限:`Zone.DNS: Edit`,范围限定为您特定的 zone 4. 复制 token —— 您只能看到它一次 ## 快速入门 ### 1. 克隆仓库 ``` git clone https://github.com/fish-not-phish/open-vbrowser.git cd open-vbrowser ``` ### 2. 导出 AWS 凭证 ``` export AWS_ACCESS_KEY_ID="your-access-key-id" export AWS_SECRET_ACCESS_KEY="your-secret-access-key" ``` ### 3. 运行设置脚本 ``` cd terraform ./setup.sh ``` `setup.sh` 会以交互方式提示您输入其他所有信息——您的域名、Cloudflare Zone ID 和 API token、AWS 区域、数据库凭证以及 Django 管理员凭证。有关详细分解,请参阅 [`setup.sh` 的作用](#what-setupsh-does)。 ## `setup.sh` 的作用 1. 提示您选择要安装哪些浏览器/操作系统镜像(或全部安装)。 2. 使用您选择的镜像列表更新 `terraform.tfvars`。 3. 以交互方式提示输入所有必需的配置——域名、数据库凭证、Redis URL、Cloudflare Zone ID 和 API token、AWS 区域以及 Django 超级用户邮箱/密码——然后将所有内容写入 `docker/.env`。同时会匹配您的输入以设置 `terraform.tfvars` 中的 `aws_region`。 4. 运行 `terraform init` 和 `terraform apply -auto-approve` 来预置所有 AWS 基础设施(VPC、子网、安全组、ECR 仓库、ECS 集群、IAM 角色和用户、CloudWatch 日志组、ECS 任务定义)。然后 Terraform 会将 `ECR_REGISTRY`、`SUBNET_ID`、`SECURITY_GROUP_ID`、`AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY` 追加到 `docker/.env` 中。 5. 通过 `build_browsers.sh` 仅构建您选择的浏览器/操作系统镜像并将其推送到 ECR(在构建时将 Cloudflare 和域名值注入到每个镜像中)。 6. 使用 `docker/docker-compose.yml` 运行 `docker compose build --no-cache` 来构建后端和前端镜像。 7. 使用 `docker compose up -d` 启动所有服务。 ## 反向代理选项 提供了三个 compose 文件。请根据您的设置选择合适的一个: | 文件 | 反向代理 | TLS | |------|--------------|-----| | `docker-compose.traefik.yml` | Traefik | 通过 Cloudflare DNS challenge 自动获取 | | `docker-compose.nginx.yml` | Nginx + Certbot | Let's Encrypt HTTP challenge | | `docker-compose.caddy.yml` | Caddy | 自动 Let's Encrypt HTTP challenge | `setup.sh` 使用 `docker-compose.yml`(无反向代理)进行初始预置。 ### Nginx 设置 1. 编辑 `docker/nginx/nginx.conf` —— 将每次出现的 `OVB_DOMAIN` 替换为您的域名。 2. 将 `CERTBOT_EMAIL` 添加到 `docker/.env` 中。 3. 启动 stack(仅限 HTTP —— 在证书存在之前,HTTPS 块是被注释掉的): ``` cd docker docker compose -f docker-compose.nginx.yml up -d ``` 4. 运行 Certbot 获取初始证书: ``` docker compose -f docker-compose.nginx.yml run --rm ovb_certbot ``` 5. 取消注释 `docker/nginx/nginx.conf` 中的 HTTPS `server { }` 块,然后重新加载: ``` docker compose -f docker-compose.nginx.yml exec ovb_nginx nginx -s reload ``` 稍后如需续订证书: ``` docker compose -f docker-compose.nginx.yml run --rm ovb_certbot renew docker compose -f docker-compose.nginx.yml exec ovb_nginx nginx -s reload ``` ### Caddy 设置 1. 编辑 `docker/Caddyfile` 并将 `example.com` 替换为您的域名。 2. 启动 stack —— Caddy 会自动处理证书颁发和续订: ``` cd docker docker compose -f docker-compose.caddy.yml up -d ``` ### Traefik 设置 Traefik 使用 Cloudflare DNS challenge。确保在 `docker/.env` 中设置了 `CF_Zone_ID` 和 `CF_Token`,然后: ``` cd docker docker compose -f docker-compose.traefik.yml up -d ``` ## 重新部署代码更改 修改后端或前端代码后,使用您正在运行的 compose 文件重新构建并重启: ``` cd docker docker compose -f docker-compose.traefik.yml build --no-cache docker compose -f docker-compose.traefik.yml up -d --force-recreate ``` ## 销毁部署 要彻底清理并销毁所有内容——包括所有 AWS 资源和本地容器: ``` cd terraform ./destroy.sh ``` 这将销毁所有由 Terraform 管理的 AWS 基础设施(ECS、ECR、VPC、IAM 等)并停止所有 Docker 容器。要从头重新部署,请再次运行 `./setup.sh`。 ## 支持的浏览器和操作系统镜像 | 浏览器 / 操作系统 | 选择名称 | |------------------|----------------| | Brave | `brave` | | Chrome | `chrome` | | Microsoft Edge | `edge` | | Firefox | `firefox` | | Floorp | `floorp` | | Kali Linux | `kali` | | LibreWolf | `librewolf` | | Mullvad Browser | `mullvad` | | Pale Moon | `palemoon` | | Pulse Secure | `pulse` | | Telegram | `telegram` | | Tor Browser | `tor` | | Vivaldi | `vivaldi` | | Waterfox | `waterfox` | | Zen Browser | `zen` | 镜像在 `terraform/terraform.tfvars` 中的 `docker_images` 下进行配置。只有列出的镜像会创建 ECS 任务定义,并由 `build_browsers.sh` 构建/推送。 ## 许可证 本项目基于自定义的**非商业许可证**授权。 您可以**仅出于个人和教育目的**使用、修改和分发本软件。 **未经作者明确书面许可,严禁商业使用和转售**。
标签:威胁情报, 安全调查, 容器化浏览器, 开发者工具, 搜索引擎查询, 暗网分析, 沙箱环境, 版权保护, 网络安全, 自动化攻击, 请求拦截, 隐私保护