lefayjey/BloodHoundAnalyzer
GitHub: lefayjey/BloodHoundAnalyzer
BloodHound CE 自动化部署与分析一站式工具,将容器管理、数据导入和多种 AD 安全分析工具整合为统一的命令行工作流。
Stars: 21 | Forks: 3
# BloodHoundAnalyzer
## 概述
BloodHoundAnalyzer 是一个 bash 脚本,旨在自动化 BloodHound CE(社区版)的部署、数据导入和分析。BloodHound CE 是一款 Active Directory (AD) 安全工具。该脚本简化了 BloodHound CE 容器的设置与管理、数据导入以及对收集数据的各种分析工具的运行。
## 功能特性
- **数据收集**:包含用于 AD 数据收集的 bloodhound-ce-python
- **多域支持**:为不同的域部署独立的 BloodHound CE 实例
- **自动化容器管理**:通过自定义命名启动、停止和清理 BloodHound CE 容器
- **自定义端口配置**:为 Neo4j 和 BloodHound Web 界面配置自定义端口
- **自动密码管理**:自动将 admin 密码重置为标准密码
- **多种数据导入格式**:导入 .zip 文件、.json 文件或包含 JSON 文件的文件夹
- **集成分析工具**:运行 AD-miner、GoodHound、Ransomulator、PlumHound、ad-recon 和 BloodHound QuickWin
- **项目列表**:查看所有已部署的 BloodHound 项目及其状态
## 前置条件
在使用 BloodHoundAnalyzer 之前,请确保已安装以下内容:
- 带有 venv 支持的 **Python 3**
- **Linux 环境**(在 Ubuntu/Debian 上测试过)或 Windows 上的 WSL2
运行 `install.sh` 脚本以安装所需的工具:
- **bloodhound-ce-python**:基于 Python 的 BloodHound CE AD 数据收集器
- **bloodhound-cli**:BloodHound CE 命令行界面
- **AD-miner**:生成全面的 AD 安全报告
- **GoodHound**:识别高价值攻击路径
- **Ransomulator**:模拟勒索软件攻击路径
- **BloodHound QuickWin**:快速分析脚本
- **PlumHound**:基于任务的分析工具
- **ad-recon**:AD 路径和传递权限分析
```
# 安装 BloodHoundAnalyzer
git clone https://github.com/lefayjey/BloodHoundAnalyzer
cd BloodHoundAnalyzer
chmod +x ./install.sh
./install.sh
```
## 使用方法
按照以下详细说明运行带有一个或多个模块的脚本:
```
chmod +x ./BloodHoundAnalyzer.sh
./BloodHoundAnalyzer.sh [OPTIONS]
```
### 选项
- `-d, --domain DOMAIN`
指定要分析的 AD 域(大多数操作必需)。
容器将被命名为:`-graph-db-1`、`-app-db-1`、`-bloodhound-1`
- `-o, --output OUTPUT_DIR`
指定保存分析结果的目录。
默认:`/opt/BA_output`
- `-D, --data DATA_PATH`
指定 BloodHound 数据的路径:
- `.zip` 文件(SharpHound 收集)
- `.json` 文件(单个收集文件)
- 包含 `.json` 文件的文件夹
- `-M, --modules MODULES`
要执行的逗号分隔模块:
- **list**:列出所有已部署的 BloodHound 项目及其状态
- **start**:启动指定域的 BloodHound CE 容器
- **import**:导入 BloodHound 数据(如果需要,自动启动容器)
- **analyze**:运行分析工具(AD-miner、GoodHound、Ransomulator、BloodHound QuickWin)
- **stop**:停止 BloodHound CE 容器(保留数据卷)
- **clean**:移除 BloodHound CE 容器、卷和项目数据
- `--bolt-port PORT`
指定 Neo4j Bolt 端口(默认:7687)
- `--neo4j-port PORT`
指定 Neo4j HTTP 端口(默认:7474)
- `--web-port PORT`
指定 BloodHound Web 界面端口(默认:7080)
- `-h, --help`
显示帮助信息
## 示例
### 列出所有已部署的项目
```
./BloodHoundAnalyzer.sh -M list
```
### 为某个域部署 BloodHound CE
```
./BloodHoundAnalyzer.sh -M start -d contoso.local
```
访问地址:`http://127.0.0.1:7080/ui/login`
- 用户名:`admin`
- 密码:`BloodHound2025!@`(自动设置)
### 使用自定义端口部署
```
./BloodHoundAnalyzer.sh -M start -d contoso.local --bolt-port 7688 --neo4j-port 7475 --web-port 7081
```
### 导入 BloodHound 数据
导入 ZIP 文件:
```
./BloodHoundAnalyzer.sh -M import -d contoso.local -D /path/to/bloodhound_data.zip
```
从文件夹中导入 JSON 文件:
```
./BloodHoundAnalyzer.sh -M import -d contoso.local -D /path/to/json_folder/
```
### 运行分析工具
```
./BloodHoundAnalyzer.sh -M analyze -d contoso.local -o /opt/reports
```
这将生成:
- 位于 `ADMinerReport_contoso.local/` 的 AD-miner HTML 报告
- 位于 `GoodHound_contoso.local/` 的 GoodHound 分析
- 位于 `bhqc_contoso.local.txt` 的 BloodHound QuickWin 输出
- 位于 `ransomulator_contoso.local.txt` 的 Ransomulator 结果
- 位于 `PlumHound_contoso.local/` 的 PlumHound 报告
- 位于 `ad-recon_contoso.local/` 的 ad-recon 分析
### 完整工作流(导入 + 分析)
```
./BloodHoundAnalyzer.sh -M import,analyze -d contoso.local -D /path/to/data.zip -o /opt/reports
```
### 停止 BloodHound CE 容器
```
./BloodHoundAnalyzer.sh -M stop -d contoso.local
```
注意:卷将被保留以便重启
### 清理部署
```
./BloodHoundAnalyzer.sh -M clean -d contoso.local
```
警告:这将永久删除容器、卷和项目数据!
### 多域(隔离实例)
同时部署和管理多个域:
```
# 部署第一个域
./BloodHoundAnalyzer.sh -M start -d corp.local --web-port 7080
# 使用不同端口部署第二个域
./BloodHoundAnalyzer.sh -M start -d dev.local --web-port 7081 --bolt-port 7688 --neo4j-port 7475
# 列出所有项目
./BloodHoundAnalyzer.sh -M list
```
## 目录结构
```
/opt/BA_tools/
├── bloodhound-cli # BloodHound CE CLI
├── .venv/ # Python virtual environment
├── bhqc.py # BloodHound QuickWin script
├── ransomulator.py # Ransomulator script
└── projects/
├── contoso.local/ # Project directory per domain
│ ├── docker-compose.yml
│ └── .env
└── corp.local/
├── docker-compose.yml
└── .env
/opt/BA_output/ # Analysis output directory
├── contoso.local/
│ ├── ADMinerReport_contoso.local/
│ ├── ad-recon_contoso.local/
│ ├── GoodHound_contoso.local/
│ ├── PlumHound_contoso.local/
│ ├── bhqc_contoso.local.txt
│ └── ransomulator_contoso.local.csv
└── corp.local/
└── ...
```
## 默认凭据
- **BloodHound CE Web 界面**:
- URL:`http://127.0.0.1:7080/ui/login`
- 用户名:`admin`
- 密码:`BloodHound2025!@`(自动配置)
- **Neo4j 数据库**(用于分析工具):
- Bolt:`bolt://127.0.0.1:7687`
- 用户名:`neo4j`
- 密码:`bloodhoundcommunityedition`
### 容器无法启动
```
# 检查 Docker 是否正在运行
docker ps
# 检查容器日志
docker logs -bloodhound-1
# 清理并重启
./BloodHoundAnalyzer.sh -M clean -d domain.local
./BloodHoundAnalyzer.sh -M start -d domain.local
```
### 导入失败
```
# 检查 API 可访问性
curl http://127.0.0.1:7080/api/version
# 检查容器日志
docker logs -bloodhound-1
# 验证数据文件格式(应为 .zip 或 .json)
```
## 致谢
BloodHoundAnalyzer 使用了以下工具:
- [BloodHound CE](https://github.com/SpecterOps/BloodHound) - Active Directory 安全工具
- [AD_Miner](https://github.com/Mazars-Tech/AD_Miner) - AD 安全分析和报告
- [GoodHound](https://github.com/idnahacks/GoodHound) - 攻击路径分析
- [Ransomulator](https://github.com/zeronetworks/BloodHound-Tools/tree/main/Ransomulator) - 勒索软件模拟
- [BloodHound QuickWin](https://github.com/kaluche/bloodhound-quickwin) - 快速分析脚本
- [PlumHound](https://github.com/PlumHound/PlumHound) - 基于任务的报告
- [ad-recon](https://github.com/tid35/ad-recon) - AD 路径和传递权限分析
## 作者
**lefayjey** - [GitHub](https://github.com/lefayjey/BloodHoundAnalyzer)
标签:Active Directory, AD-miner, AD安全, BloodHound, Docker容器, GoodHound, Neo4j, Plaso, PlumHound, Python, Ransomulator, WSL2, 勒索软件模拟, 协议分析, 命令控制, 域渗透, 多域支持, 应用安全, 攻击路径分析, 攻击面发现, 数据导入, 数据采集, 无后门, 权限提升, 电子数据取证, 网络安全, 自动化分析, 请求拦截, 跨站脚本, 逆向工具, 防御 evasion, 隐私保护