// 红队渗透 · 2025-02-06

BloodHound legacy(经典版)快速安装与使用指南

BloodHound 是一款强大的工具,用于分析和提升 Active Directory (AD) 环境中的权限关系。它通过图形化界面展示用户、组、权限等之间的关系,帮助渗透测试人员快速发现潜在的攻击路径。本指南详细介绍如何在 Kali Linux 中安装和使用 BloodHound Legacy 版本,并提供清晰的操作步骤和说明。选择 Legacy 版本的原因是它相比 Community Edition (CE) 更轻量,资源占用较低,适合渗透测试场景。


一、安装与配置

1. 安装 BloodHound 和 BloodHound-Python

1.1 安装 BloodHound Legacy

Kali Linux 的 apt 包管理器默认安装的是 BloodHound CE 版本,资源占用较高且功能复杂。因此,我们推荐手动安装 BloodHound Legacy v4.3.1。

步骤:

  1. 下载 BloodHound Legacy:

    cd /opt
    wget https://github.com/SpecterOps/BloodHound-Legacy/releases/download/v4.3.1/BloodHound-linux-x64.zip
  2. 解压文件:

    unzip BloodHound*.zip -d /opt
    mv /opt/BloodHound-linux-x64 /opt/BloodHound
  3. 创建启动脚本以便于运行:

    echo -e '#!/bin/bash\nexec /opt/BloodHound/BloodHound --no-sandbox "$@" >/dev/null 2>&1'> /usr/local/bin/bloodhound
    chmod +x /usr/local/bin/bloodhound

1.2 安装 BloodHound-Python

BloodHound-Python 是用于远程收集 AD 信息的工具,与 Legacy 版本兼容。

安装命令:

sudo apt update
sudo apt install -y bloodhound-python

1.3 安装 Neo4j 数据库

BloodHound 需要 Neo4j 图形数据库来存储和分析数据。

安装命令:

sudo apt install -y neo4j

2. 配置 Neo4j

安装 Neo4j 后,需要进行基本配置以确保与 BloodHound 正常协作。

2.1 启动 Neo4j 服务

sudo systemctl enable neo4j
sudo systemctl start neo4j

在这里插入图片描述

2.2 设置 Neo4j 密码

Neo4j 默认使用用户名 neo4j 和密码 neo4j。首次登录需要更改密码。

  1. 打开浏览器,访问 Neo4j Web 控制台:

    http://127.0.0.1:7474
  2. 使用默认凭据登录(用户名:neo4j,密码:neo4j)。

  3. 根据提示设置新密码,并记录下来,供 BloodHound 使用。


二、使用 BloodHound 进行信息收集

在安装和配置完成后,接下来可以使用 bloodhound-python 来进行信息收集,并将数据导入 Neo4j 数据库。

1. 配置并运行 BloodHound-Python

使用 bloodhound-python 进行信息收集时,需要指定目标域、域控制器等信息。

例如,假设你的目标域名是 sfsaf.htb,域控制器是 dc01,并且你希望将数据导出为 zip 文件。你可以运行以下命令:

bloodhound-python -c All -u <用户名> -p '<密码>' -ns 127.0.0.1 -d sfsaf.htb -dc dc01 --zip
  • -c All:启用所有的信息收集模块。
  • -u <用户名>:指定目标系统的用户名。
  • -p <密码>:指定目标系统的密码。
  • -ns 127.0.0.1:设置 DNS 服务器。
  • -d sfsaf.htb:指定目标域名。
  • -dc dc01:设置域控制器。
  • --zip:将收集到的数据导出为 zip 文件,方便后续导入。

这一过程中可能需要搭建一个伪造的 DNS 服务器。可以使用 dnschef 来实现这一功能:

  1. 安装 dnschef
sudo apt-get install dnschef
  1. 配置 dnschef
dnschef --fakeip <Kali_IP> --domain sfsaf.htb

此时,所有对 sfsaf.htb 域的 DNS 请求都会被解析为 <Kali_IP>。


三、启动并使用 BloodHound

当你完成数据收集后,可以通过 BloodHound 的 Web 界面来查看和分析 Active Directory 环境中的权限关系。

1. 启动 BloodHound Web 界面

启动 BloodHound Web 界面非常简单。只需在终端输入以下命令:

bloodhound

成功启动后,访问 Web 界面,默认端口为 7687,地址如下:

http://127.0.0.1:7687

2. 登录 Web 界面

在 Web 界面中,使用你在 Neo4j 中设置的用户名和密码进行登录。

3. 导入数据

bloodhound-python 收集的数据可以直接导入到 Neo4j 数据库中。你可以将 bloodhound-python 生成的 zip 文件 上传并导入到 BloodHound 中进行后续分析。 演示图片

导入后,Web 界面将会显示 “Database Info” 区域,提供有关数据库当前状态的基本信息,包括用户、计算机、组和关系(或边)的数量。

4. 分析图形数据

导入数据后,BloodHound 会通过图形化的方式呈现出 Active Directory 环境中的权限关系,帮助用户识别潜在的攻击路径和权限提升机会。你可以查看与每个节点(如用户、计算机、组等)相关联的权限和关系。

BloodHound 整体页面功能如下: 在这里插入图片描述

BloodHound 功能介绍

BloodHound 提供了丰富的功能来帮助渗透测试人员分析 AD 环境中的权限模型。以下是主要功能介绍:

  1. 菜单与搜索栏
    BloodHound 的主界面包括一个菜单和搜索栏,用户可以通过搜索特定的节点或查询权限路径来进行分析。关键部分包括:

    • Database Info:显示当前数据库的信息,包括用户、计算机、组和关系的数量。
    • Node Info:点击任何一个节点,查看该节点的详细信息,包括用户、计算机、组、权限等。
    • Analysis:BloodHound 预置了多种分析查询功能,帮助用户快速识别权限提升路径或横向渗透通道。
  2. 节点和关系信息
    BloodHound 使用图形化的方式展示节点之间的关系,帮助用户识别从普通用户到域管理员的攻击路径。

BloodHound 图标说明

在图形绘制区域中,BloodHound 使用不同的图标来表示不同的节点和状态,帮助用户快速理解环境中的权限关系。

  • 节点类型:

    1. Users(用户):表示 Active Directory 中的用户账户。
    2. Groups(组):表示用户组,包含多个用户。
    3. Computers(计算机):表示域内的计算机。
    4. Domain(域):表示整个 Active Directory 域。
    5. GPOs(组策略对象):表示组策略对象。
    6. OUs(组织单位):表示组织单位。 在这里插入图片描述
  • 图标标记:
    每个节点还会有不同的图标标记,表示其特定的状态或权限:

    • 蓝色位置图标:表示开始节点,通常是权限提升的起始点。
    • 白色骷髅头:表示已拥有节点,表明该节点已经被渗透。
    • 红色靶子图标:表示目标节点,是攻击者的主要目标。
    • 钻石图标:表示高价值目标,攻击者通常会优先获取这些节点。 在这里插入图片描述

BloodHound 关系说明

节点之间的关系(也称为 Edges)表示不同的权限或行动路径。BloodHound 使用多种关系类型来描述这些权限。以下是常见关系类型及其含义:

  • HasSession:表示用户与计算机建立会话,凭据保留在内存中,攻击者可以通过 LSASS 注入或凭据转储获取用户凭据。

  • MemberOf:表示用户是某个组的成员,这样的关系帮助攻击者识别哪些用户具有更高的权限。

  • AdminTo:表示本地管理员权限,攻击者可以通过这一关系获取对目标计算机的本地管理员权限。

  • ACL Edges:描述特殊权限,如:

    • GenericAll:完全控制目标对象。
    • ForceChangePassword:允许重置目标用户密码。
    • WriteDacl:修改目标计算机的 DACL 权限。
  • 特殊 Edges:

    • CanRDP:表示用户具有通过远程桌面协议(RDP)连接目标计算机的权限。
    • SQLAdmin:表示用户是目标计算机的 MSSQL 管理员。
    • AllowedToAct:表示节点可以使用 S4U2self / S4U2proxy 进程将任何域用户模拟到目标计算机系统。

通过分析这些关系和权限路径,渗透测试人员能够发现潜在的权限提升路径,模拟攻击者的行为,寻找横向渗透和权限升级的机会。

四、参考资源

原文 https://blog.csdn.net/2301_79518550/article/details/145442316