Sublarge

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

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

BloodHound是一款用于分析Active Directory权限关系的渗透测试工具,本文详细介绍了在Kali Linux中安装Legacy版(v4.3.1)的步骤,包括: 通过GitHub下载并配置BloodHound Legacy; 安装bloodhound-python数据收集工具; 配置Neo4j数据库(密码修改与启动); 使用bloodhound-python收集AD数据并导入Neo4j; 启动BloodHound Web界面分析权限路径。 Legacy版相比CE版更轻量,适合渗透测试。

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
    bash2 行
  2. 解压文件:

    unzip BloodHound*.zip -d /opt
    mv /opt/BloodHound-linux-x64 /opt/BloodHound
    bash2 行
  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
    bash2 行

1.2 安装 BloodHound-Python

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

安装命令:

sudo apt update
sudo apt install -y bloodhound-python
bash2 行

1.3 安装 Neo4j 数据库

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

安装命令:

sudo apt install -y neo4j
bash1 行

2. 配置 Neo4j

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

2.1 启动 Neo4j 服务

sudo systemctl enable neo4j
sudo systemctl start neo4j
bash2 行

在这里插入图片描述

2.2 设置 Neo4j 密码

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

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

    http://127.0.0.1:7474
    text1 行
  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
bash1 行
  • -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
bash1 行
  1. 配置 dnschef
dnschef --fakeip <Kali_IP> --domain sfsaf.htb
bash1 行

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


三、启动并使用 BloodHound

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

1. 启动 BloodHound Web 界面

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

bloodhound
bash1 行

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

http://127.0.0.1:7687
bash1 行

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