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, 隐私保护