1.查找并列出所有隶属于“全局管理员”角色的Azure用户

在bloodhound界面中的Raw Query模块中输入如下查询语句可检索并列出所有隶属于“全局管理员”角色的Azure用户,执行结果如图1-1所示。

MATCH p =(n)-[r:AZGlobalAdmin*1..]->(m) RETURN 


图1-1 查找并列出所有隶属于“全局管理员”角色的Azure用户

2.获取并列出所有Azure用户及其所在的所有组信息

在bloodhound界面中的Raw Query模块中输入如下查询语句可检索并列出所有Azure用户及其所在的所有组信息,执行结果如图1-2所示。

MATCH p=(m:AZUser)-[r:AZMemberOf*1..]->(n) WHERE NOT m.objectid CONTAINS 'S-1-5' RETURN p


图1-2所示

3.获取并列出所有Azure用户及其所拥有的管理员角色。

在bloodhound界面中的Raw Query模块中输入如下查询语句可获取并列出所有Azure用户及其所拥有的管理员角色,执行结果如图1-3所示。

MATCH p=(n)-[:AZHasRole|AZMemberOf*1..]->(:AZRole) RETURN p


图1-3 获取并列出所有Azure用户及其所拥有的管理员角色

4.检索并列出所有具有特权的Azure服务主体。

在bloodhound界面中的Raw Query模块中输入如下查询语句可检索并列出所有具有特权的Azure服务主体,执行结果如图1-4所示。

MATCH p = (g:AZServicePrincipal)-[r]->(n) RETURN p


图1-4所示

5.查找并列出所有Azure应用程序的所有者信息

在bloodhound界面中的Raw Query模块中输入如下查询语句可查找并列出所有Azure应用程序的所有者信息,执行结果如图1-5所示。

MATCH p = (n)-[r:AZOwns]->(g:AZApp) RETURN p


图1-5所示

更多使用BloodHound查询分析“Azure常规信息”的进阶查询语法及其功能描述如下表所示,读者可自行参考。

查询语法

功能描述

MATCH (n:AZUser WHERE n.onpremisesyncenabled = true) RETURN n

获取并列出所有通过Microsoft Entra Connect工具从本地Active Directory同步至Azure Active Directory的所有用户信息

MATCH p =(n)-[r:AZGlobalAdmin*1..]->(m) RETURN p

返回“全局管理员”角色的所有成员

MATCH p=(n)-[:AZHasRole|AZMemberOf*1..2]->(r:AZRole) WHERE r.displayname =~ '(?i)Global Administrator|User Administrator|Cloud Application Administrator|Authentication Policy Administrator|Exchange Administrator|Helpdesk Administrator|PRIVILEGED AUTHENTICATION ADMINISTRATOR|Domain Name Administrator|Hybrid Identity Administrator|External Identity Provider Administrator|Privileged Role Administrator|Partner Tier2 Support|Application Administrator|Directory Synchronization Accounts' RETURN p

返回高特权角色的所有成员

MATCH p=(n WHERE n.onpremisesyncenabled = true)-[:AZHasRole|AZMemberOf*1..2]->(r:AZRole WHERE r.displayname =~ '(?i)Global Administrator|User Administrator|Cloud Application Administrator|Authentication Policy Administrator|Exchange Administrator|Helpdesk Administrator|PRIVILEGED AUTHENTICATION ADMINISTRATOR') RETURN p

返回从OnPrem AD同步的高特权角色的所有成员

MATCH (g:AZGroup {onpremsyncenabled: True}) RETURN g

返回从OnPrem AD同步的所有Azure组

MATCH p = (n)-[r:AZOwns]->(g:AZApp) RETURN p

返回Azure应用程序的所有所有者

MATCH (n:AZSubscription) RETURN n

返回所有Azure订阅

MATCH p = (n)-[r:AZOwns|AZUserAccessAdministrator]->(g:AZSubscription) RETURN p

返回所有Azure订阅及其直接控制器

MATCH p = (u)-[r:AZUserAccessAdministrator]->(n:AZSubscription) RETURN p

针对订阅返回具有UserAccessAdministrator角色的所有主体

MATCH p = (u)-[r:AZUserAccessAdministrator]->(n) RETURN p

返回所有具有UserAccessAdministrator角色的主体(prinicpal

MATCH (u:AZUser) WHERE NOT EXISTS((u)-[:AZMemberOf|AZHasRole*1..]->(:AZRole)) AND EXISTS((u)-[:AZUserAccessAdministrator]->()) RETURN u

返回不具有Azure角色但具有RBAC角色的所有Azure用户 \ "用户访问管理员"

MATCH (u) WHERE NOT EXISTS((u)-[:AZMemberOf|AZHasRole*1..]->(:AZRole)) AND EXISTS((u)-[:AZUserAccessAdministrator]->()) RETURN u

返回不具有Azure角色但具有RBAC角色的所有Azure主体 \ "用户访问管理员"