ITSEC-Research/bron-vault
GitHub: ITSEC-Research/bron-vault
一款开源的窃密日志解析与可视化仪表板,帮助安全团队结构化分析日志数据,替代手动脚本实现凭据检索、设备画像和资产发现。
Stars: 75 | Forks: 18
# Broń Vault
Broń Vault 是一个开源的 Stealer Log(窃密日志)仪表板,旨在简化窃密日志数据的分析过程。
告别复杂的临时脚本。使用 Broń Vault,您只需将 `.zip` 日志文件拖放到 Web 界面中。应用程序会自动解析数据并以结构化格式呈现,随时可供检查。
我们的目标是通过提供一种实用的替代方案,来满足一线安全团队的日常需求,替代通常用于窃密日志分析的手动脚本或过于复杂的平台。该项目体现了我们普及安全的使命,使基础分析能力人人皆可访问,让分析师能够专注于关键决策而非手动日志解析。

## 主要功能
* **文件上传与处理**:上传包含常见窃密日志格式的 `.zip` 文件,支持实时上传进度跟踪和详细日志记录。
* **高级搜索**:即时查找凭据并深入违规的完整上下文。
- 在所有日志中按特定电子邮件地址或整个域名进行搜索。
- 使用 **OR** (`,`)、**AND** (`+`) 或 **NOT** (`-`) 组合词条以进行更精确的查询。
- 匹配成功后,将显示一个“Supporting Files(相关文件)”标签页,其中包含来自同一设备的所有数据。
- 一键无缝探索相关的 Cookie、浏览器历史记录和系统文件。
* **设备详情视图**:探索包含全面细节的单个设备信息。
- **概览标签页**:通过引人入胜的可视化图表获取一目了然的摘要,包括:
- 显示凭据、软件和文件总数的摘要卡片
- 包含关键系统信息(OS、CPU、GPU、RAM 等)的设备概览
- 常用密码可视化(极区图)
- 热门域名分布(水平条形图)
- 文件大小分布分析
- **主机信息标签页**:查看从多个窃密软件家族日志中提取的详细系统信息。
- **用户凭据标签页**:浏览与设备关联的所有凭据。
- **已安装软件标签页**:查看设备上检测到的所有已安装软件。
- **文件标签页**:通过树状查看器探索完整的文件结构。
* **资产发现**:在所有上传的日志中搜索任何域名的子域名、路径和相关凭据。
- 输入 `domain`(域名)或 `keyword`(关键词)以发现所有相关的子域名、路径和暴露的凭据。
- **概览标签页**:
- 时间线可视化,显示凭据被窃密软件记录的时间(log-date 追踪)。
- 针对查询域名或关键词观察到的 10 个最常用密码。
- 按凭据数量排名的前 10 个子域名(水平条形图)。
- 按凭据数量排名的前 10 个路径(水平条形图)。
- 摘要统计信息,显示子域名、路径、凭据和受影响设备的总数。
- **子域名标签页**:浏览所有发现的子域名及其相关路径和凭据计数。包含去重功能,可聚合子域名以获得更清晰的洞察,当同一子域名存在多个路径时自动汇总凭据计数。
- **凭据标签页**:查看与该域名关联的所有凭据,包括 URL、用户名、密码、日志日期以及指向相关设备的直接链接。
* **统计仪表板**:通过清晰的可视化获取数据的战略概览,包括:
- 域名和 URL 总数(包括 IP)
- 凭据总数
- 提取的文件总数
- 前 5 个最常见的密码
- 前 10 个 TLD(顶级域名)
- 前 10 个受影响最大的浏览器
- 前 10 个最常用的软件
- **国家热力图**:按国家/地区显示受损设备的世界地图,便于一目了然地了解地理分布。
* **域名监控**:监控感兴趣的域名,并在新上传包含匹配的凭据或 URL 时收到通知。
- 定义包含一个或多个域名的监控器,并按凭据(电子邮件/用户名)、URL 或两者进行匹配。
- 将 webhook 端点(例如 Slack、自定义 API)附加到每个监控器,以接收包含设备和匹配详情的警报。
- 在域名监控 UI 中查看警报历史和 webhook 交付状态。
* **兼容 S3 的对象存储**:将上传的文件存储在对象存储中,而不是本地文件系统。
- 支持 **AWS S3**、**MinIO** 和任何兼容 S3 的服务;Docker 设置中包含可选的 MinIO 服务。
- 在 Settings → Storage 中配置端点、存储桶和凭据;可选择一次性将现有本地文件迁移到 S3。
* **Debug-Zip 实用程序**:对 `.zip` 文件执行快速检查,分析其内部结构,确保它们符合支持的格式,并标记缺少密码文件的目录。
* **角色**:两种用于访问控制的内置角色。
- **Admin**:完全访问权限 —— 上传数据、管理设置、用户、域名监控器和 webhook、审计日志以及 API 密钥。
- **Analyst**:读取和搜索权限 —— 仪表板、搜索、设备和域名发现;无法上传、更改设置或管理用户/监控器。
* **API (v1)**:带有 API 密钥认证的 REST API,用于搜索、查询和上传。
- 在 API Keys 页面创建和管理 API 密钥;每个密钥都有一个角色(admin 或 analyst)以及可选的速率限制和到期时间。
- **Search**:`GET /api/v1/search/credentials` 和 `GET /api/v1/search/domain` 用于凭据和域名/关键词搜索。
- **Upload**:`POST /api/v1/upload`(仅限 admin 密钥)并通过 `GET /api/v1/upload/status/{jobId}` 跟踪异步作业。







## 重要提示
- 该工具的构建重点在于功能性,而非经过加固的安全。**请勿**在生产环境中部署或将其暴露在公共网络中。请仅在安全的、**隔离的**环境中使用它。
- Broń Vault 由 [Tomi Ashari](https://github.com/mastomii) 和 [YoKo Kho](https://github.com/yokokho) 在 [ITSEC Asia](https://itsec.asia/) 研发部门的支持下,作为副业项目开发,并借助了 AI 辅助工具。它并不代表我们的商业 [IntelliBroń Threat Intelligence](https://intellibron.io/) 平台,尽管它反映了类似的能力。
## 入门指南
### 架构与性能
Broń Vault 现已集成 **ClickHouse**,以显著加速分析查询和域名搜索。借助 ClickHouse 的列式存储和 MaterializedMySQL 复制功能,以前需要数秒的复杂查询现在可以快得多,从而实现对大型数据集的实时探索。
**自动数据同步:** ClickHouse 通过 MaterializedMySQL 自动从 MySQL 复制数据。配置完成后,MySQL 中的每一次更改都会实时同步到 ClickHouse(无需手动步骤)。您可以专注于分析,而系统会在后台处理所有同步工作。
按照以下步骤在本地启动并运行 Broń Vault。
### 前置条件
* 已安装并运行 **Docker** 和 **Docker Compose v2**
* Docker Desktop:[在此下载](https://www.docker.com/products/docker-desktop)
* Linux (Ubuntu):使用 `./install_docker.sh` 或安装:`docker-ce` + `docker-compose-plugin`
* Git(用于克隆仓库)
### 经过测试的环境
此应用程序已在以下操作系统上成功测试:
* Ubuntu 24.04 LTS(桌面版和服务器版)
* Kali Linux 2025.3
* macOS Sequoia
### 安装与运行
#### 快速开始(推荐)
1. **克隆此仓库:**
```bash
git clone https://github.com/ITSEC-Research/bron-vault
cd bron-vault
```
2. **配置环境:**
```bash
# 复制示例环境文件
cp .env.example .env
# 使用安全密码编辑 .env
# 重要:出于安全考虑,请更改所有默认密码!
```
3. **启动所有服务:**
**适用于 Linux/macOS:**
根据 Docker 设置,使用或不使用提升的权限运行脚本:
```bash
bash docker-start.sh
```
注意,此脚本将:
- 构建 Docker 镜像(仅在第一次运行时)
- 启动 MySQL、ClickHouse 和 Next.js 应用程序
- 运行设置脚本以配置 MaterializedMySQL 复制
- 显示服务状态和访问 URL
4. **访问应用程序:**
打开浏览器并导航至:
`http://localhost:3000`
#### 默认登录凭据
首次启动后,您可以使用以下凭据登录:
- **邮箱:** `admin@bronvault.local`
- **密码:** `admin`
#### 服务 URL
所有服务运行后,您可以访问:
- **Bron Vault 应用:** http://localhost:3000
- **ClickHouse Play:** http://localhost:8123/play
- **MySQL:** localhost:3306
- **ClickHouse HTTP API:** http://localhost:8123
#### 实用命令
**检查服务状态:**
```
# Linux/macOS
./docker-status.sh
# 查看 logs
docker compose logs -f
```
**停止所有服务:**
```
docker compose down
```
**重启服务:**
```
docker compose restart
```
### 初始设置
首次启动服务时:
1. 设置脚本将自动:
- 为 ClickHouse 同步创建 MySQL 复制用户
- 在 ClickHouse 中配置 MaterializedMySQL 数据库
- 初始化所有数据库表和索引
2. 等待所有服务准备就绪(通常约 60 秒)
3. 在 `http://localhost:3000` 访问应用程序,并使用上述默认凭据登录
4. **重要:** 首次登录后立即更改默认密码
您现在已准备好开始使用 Broń Vault!
只需上传窃密日志,它就会自动解析它们。
### 使用热重载进行开发
如果您希望代码更改立即生效而无需重建 Docker(就像 `npm run dev` 一样),请仅在 Docker 中运行基础设施,而在您的机器上运行 Next.js 应用:
1. **仅启动 MySQL、ClickHouse、MinIO 和设置**(无应用容器):
```bash
npm run docker:infra
```
或者:`bash docker-start-infra.sh`
2. **配置本地环境**,以便应用程序可以在 localhost 上访问容器:
```bash
cp env.local.example .env.local
```
* 编辑 `.env.local`:设置 `DATABASE_URL` 并确保 `MYSQL_HOST=127.0.0.1`、`CLICKHOUSE_HOST=http://127.0.0.1:8123`。
* 使用与您的 `.env` 中相同的 `MYSQL_USER`、`MYSQL_PASSWORD`、`MYSQL_DATABASE` 和其他值。
3. **安装依赖**(如果尚未安装):
```bash
npm install
```
4. **本地运行应用**(热重载):
```bash
npm run dev
```
打开 http://localhost:3000。MySQL (3306)、ClickHouse (8123) 和 MinIO(S3 API 9001,控制台 9002)保留在 Docker 中;只有应用在本地运行,因此更改会立即生效。
## 贡献
如果您想改进该项目,无论是通过贡献代码还是报告问题和安全发现,**我们随时欢迎您的反馈**。
标签:Broń Vault, Red Teaming, THA, 仪表盘, 信息窃取日志, 凭证分析, 威胁情报, 安全运营, 开发者工具, 恶意样本开发, 扫描框架, 拖放上传, 数据聚合, 日志解析器, 网络安全, 自动化攻击, 自动化攻击, 被盗数据, 请求拦截, 隐私保护