我需要一个支持 Kerberos 的 BloodHound,并找到了这条评论。事实证明,一直都有一个支持 Kerberos 认证的分支!我冒昧地将这个分支合并到了 master,以获得那些给力的 BloodHound 4.2+ 导出功能。所有功劳都归于真正编写这些代码的人:)
正如 Dirkjan 先生本人所说,这"还需要更多工作和测试"。它可能无法在所有情况下正常工作,因此如果你遇到任何问题,请报告,我们可以尝试修复。也许有一天我们可以将其作为 PR 提交到主仓库。
$ python3 /opt/BloodHound.py/bloodhound.py -u redacted -k -d absolute.htb -dc dc.absolute.htb -ns 10.129.202.227 --dns-tcp --zip -no-pass -c All
INFO: Found AD domain: absolute.htb
INFO: Using TGT from cache
INFO: Found TGT with correct principal in ccache file.
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 18 users
INFO: Found 55 groups
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: dc.absolute.htb
INFO: Ignoring host dc.absolute.htb since its reported name does not match
INFO: Done in 00M 02S
INFO: Compressing output into 20220926135518_bloodhound.zip
如果你遇到 DNS 错误,可以尝试在运行 dnschef 时将 DNS 指向本机 -ns 127.0.0.1:
python3 dnschef.py --fakeip <dc ip> --fakedomains <domain> -q
BloodHound.py 是一个基于 Python 的 BloodHound 数据收集器,基于 Impacket 构建。
此版本的 BloodHound.py 仅兼容 BloodHound 4.2 或更高版本。对于 3.x 系列,请通过 pypi 使用 1.1.1 版本。从 1.3 版本开始,BloodHound.py 仅支持 Python 3,Python 2 不再进行测试,将来可能会无法使用。
BloodHound.py 目前存在以下限制:
你可以通过 pip 使用 pip install bloodhound 安装该收集器,也可以克隆此仓库并运行 python setup.py install,或者使用 pip install .。
BloodHound.py 的正常运行需要 impacket、ldap3 和 dnspython。
安装会将命令行工具 bloodhound-python 添加到你的 PATH 中。
要使用该收集器,你至少需要所登录域的有效凭据。
你需要使用 -u 选项指定该域中的用户名(对于受信任域中的用户,则为 username@domain)。如果你的 DNS 配置正确,并且 AD 域在你的 DNS 搜索列表中,BloodHound.py 会自动为你检测域。如果没有,你必须使用 -d 选项手动指定。
默认情况下,BloodHound.py 会查询 LDAP 以及域内的各台计算机,以枚举用户、计算机、组、信任、会话和本地管理员。
如果你想限制收集范围,请指定 --collectionmethod 参数,该参数支持以下选项(与 SharpHound 类似):
多个收集方法之间应用逗号分隔,例如:-c Group,LocalAdmin
你可以覆盖部分自动检测选项,例如通过 -dc 指定主域控制器的主机名以使用不同的域控制器,或者通过 -gc 指定你自己的全局编录。
docker build -t bloodhound .docker run -v ${PWD}:/bloodhound-data -it bloodhoundbloodhound-python,所有数据都将存储在你启动容器的路径中。