ITSEC-Research/bron-vault

GitHub: ITSEC-Research/bron-vault

一款开源的窃密日志解析与可视化仪表板,帮助安全团队结构化分析日志数据,替代手动脚本实现凭据检索、设备画像和资产发现。

Stars: 75 | Forks: 18

# Broń Vault Broń Vault 是一个开源的 Stealer Log(窃密日志)仪表板,旨在简化窃密日志数据的分析过程。 告别复杂的临时脚本。使用 Broń Vault,您只需将 `.zip` 日志文件拖放到 Web 界面中。应用程序会自动解析数据并以结构化格式呈现,随时可供检查。 我们的目标是通过提供一种实用的替代方案,来满足一线安全团队的日常需求,替代通常用于窃密日志分析的手动脚本或过于复杂的平台。该项目体现了我们普及安全的使命,使基础分析能力人人皆可访问,让分析师能够专注于关键决策而非手动日志解析。 ![alt text](images/Bron-Vault-Dashboard.png "Bron Vault Dashboard") ## 主要功能 * **文件上传与处理**:上传包含常见窃密日志格式的 `.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}` 跟踪异步作业。 ![alt text](images/Bron-Vault-Search-1.png "Bron Vault Search 1") ![alt text](images/Bron-Vault-Search-2.png "Bron Vault Search 2") ![alt text](images/Bron-Vault-Search-3.png "Bron Vault Search 3") ![alt text](images/Bron-Vault-Search-4.png "Bron Vault Search 4") ![alt text](images/Bron-Vault-Host-Information.png "Bron Vault Host Information") ![alt text](images/Bron-Vault-Device-Overview.png "Bron Vault Device Overview") ![alt text](images/Bron-Vault-Domain-Keyword-Search.png "Bron Vault Device Overview") ## 重要提示 - 该工具的构建重点在于功能性,而非经过加固的安全。**请勿**在生产环境中部署或将其暴露在公共网络中。请仅在安全的、**隔离的**环境中使用它。 - 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, 仪表盘, 信息窃取日志, 凭证分析, 威胁情报, 安全运营, 开发者工具, 恶意样本开发, 扫描框架, 拖放上传, 数据聚合, 日志解析器, 网络安全, 自动化攻击, 自动化攻击, 被盗数据, 请求拦截, 隐私保护