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主体 \ "用户访问管理员" |