新版本发布:
一套简单的工具:
本工具已在以下博客文章中发布,并附有截图和使用案例:Max 发布、更新与基元 和 DPAT
在我研究期间,本工具新增了一种潜在的攻击原语,详情请参见 add-spns 部分。
理想情况下,安装应该很简单,不过我还是附带了一个 requirements.txt 文件以备不时之需。已在 Kali Linux 和 Windows 10 上测试,所有功能在 Linux 和 Windows 操作系统上均能正常工作。
pip3 install -r requirements.txt
Neo4j 凭据可以硬编码在脚本开头,可以作为 CLI 参数提供,也可以存储为环境变量。如果某个参数留空,程序会提示输入用户名/密码。使用环境变量时,最简单的方法是在 ~/.bashrc 或 ~/.zshrc 中添加一行(例如 export NEO4J_USERNAME='neo4j')来存储用户名,因为它并不敏感。数据库密码可以在运行 Max 之前通过 shell 标签页设置。在 export 命令前添加空格可以防止其出现在历史记录中。
export NEO4J_PASSWORD='bloodhound' # Notice whitespace before 'export'
python3 max.py {module} {args}
python3 max.py -u neo4j -p neo4j {module} {args}
python3 max.py {module} {args}
Neo4j Username: neo4j
Neo4j Password:
获取常规帮助以及模块特定帮助
python3 max.py -h
python3 max.py {module} -h
将已控制对象导入 BH
python3 max.py mark-owned -f owned.txt
python3 max.py mark-owned -f owned.txt --add-note "Owned by repeated local admin"
获取用户列表
python3 max.py get-info --users
python3 max.py get-info --users --enabled
[email protected]
[email protected]
...
获取目标组中的对象列表
python3 max.py get-info --group-members "domain [email protected]"
获取用户拥有管理权限的计算机列表
python3 max.py get-info --adminto [email protected]
获取已控制对象列表及其备注
python3 max.py get-info --owned --get-note
运行查询 - 返回所有与域管理员存在路径的用户列表
python3 max.py query -q "MATCH (n:User),(m:Group {name:'DOMAIN [email protected]'}) MATCH (n)-[*1..]->(m) RETURN DISTINCT(n.name)"
从数据库中删除一条边
python3 max.py del-edge CanRDP
使用 BloodHound 中存储的信息或 GetUserSPNs impacket 文件添加 HasSPNConfigured 关系
python3 max.py add-spns -b
python3 max.py add-spns -i getuserspns-raw-output.txt
DPAT
python3 max.py dpat -n ~/client/ntds.dit -c ~/.hashcat/hashcat.potfile -o ouputdir --html --sanitize
宠物 Max
python3 max.py pet-max
文件中的对象必须包含 FQDN,大小写不敏感。当提供 CLI 用户名/计算机名时同样适用。
[email protected] <- 将被添加 / 正确的 CLI 输入
[email protected] <- 将被添加 / 正确的 CLI 输入
computer01.domain.local <- 将被添加 / 正确的 CLI 输入
ComPutEr01.doMAIn.LOcaL <- 将被添加 / 正确的 CLI 输入
user02 <- 不会被添加 / 错误的 CLI 输入
computer02 <- 不会被添加 / 错误的 CLI 输入
我希望加入一个 analyze 功能,以提供类似 PlumHound/Cypheroth 的某些功能。最后,考虑为在 Windows 上运行 Neo4j 的用户创建一个 PowerShell 版本,但我的 PowerShell 水平很差,所以待定。
欢迎任何其他功能和改进,请在 BloodHoundGang Slack 频道和 Twitter 上找我 @knavesec
特别感谢以下人员为本工具的开发和改进付出的时间: