转载来自此博客
一、工具简介
BloodHound是一款免费的工具。一方面,BloodHound 通过图与线的形式,将域内用户、计算机、组、会话、ACL,以及域内所有的相关用户、组、计算机、登录信息、访问控制策略之间的关系,直观地展现在红队成员面前,为他们更便捷地分析域内情况、更快速地在域内提升权限提供条件。另一方面,BloodHound可以帮助蓝队成员更好地对己方网络系统进行安全检查,以及保证域的安全性。BloodHound使用图形理论,在活动目录环境中自动理清大部分人员之间的关系和细节。使用BloodHound,可以快速、深人地了解活动目录中用户之间的关系,获取哪些用户具有管理员权限、哪些用户对所有的计算机都具有管理员权限、哪些用户是有效的用户组成员等信息。
BloodHound可以在域内导出相关信息,将采集的数据导人本地Neo4j数据库,并进行展示和分析。Neo4j是一款NoSQL图形数据库,它将结构化数据存储在网络内而不是表中。BloodHound正是利用Neo4j的这种特性,通过合理的分析,直观地以节点空间的形式表达相关数据的。Neo4j和MySQL及其他数据库一样,拥有自己的查询语言Cypher Query Language。 因为Neo4j是-款非关系型数据库,所以,要想在其中进行查询,同样需要使用其特有的语法。
二、配置环境
kali安装bloodhound比较方便,本实验使用kali安装bloodhound
sudo apt-get install bloodhound
sudo neo4j console
启动成功后访问
http://localhost:7474/browser/
- User默认 neo4j
- Password默认 neo4j
连接成功后就会提示创建新密码
接下来在终端输入bloodhound
会启动bloodhound的图形化页面,然后输入neo4j的账号密码即可
三、数据采集
在使用BloodHound进行分析时,需要调用来自活动目录的三条信息,具体如下
- 哪些用户登录了哪些机器?
- 哪些用户拥有管理员权限?
- 哪些用户和组属于哪些组?
BloodHound需要的这三条信息依赖于PowerView.ps1脚本的BloodHound。BloodHound 分为两部分,一是PowerShell采集器脚本( 有两个版本,旧版本叫作BloodHound_ Old.ps1, 新版本叫作SharpHound.ps1 ),二是可执行文件SharpHound.exe。在大多数情况下,收集此信息不需要系统管理员权限。
下载地址:https://github.com/BloodHoundAD/BloodHound/tree/master/Collectors
这次使用SharpHound.exe提取域内信息
将SharpHound.exe复制到目标系统中,打开cmd输入
# 二进制采集工具命令:
SharpHound.exe -c all
# powershell采集工具命令:
powershell -exec bypass -command "Import-Module ./AzureHound.ps1; Invoke-BloodHound -c all"