Default Cypher queries for the JamfHound extension
The following custom Cypher queries can be imported into BloodHound to enhance visibility.
Each query is defined in a JSON file located in the Queries directory of the JamfHound repository.
This file is automatically generated from the JSON query files
that are bundled with the JamfHound collector.
Filter to view access of a Jamf Account named or starting with ‘LC’ - increase the maximum edges to see more relationships (i.e. change 5 to 6 to see 1 more)
Copy
Ask AI
MATCH p=(s:jamf_Account)-[*1..5]->(t)WHERE s.name STARTS WITH 'LC'RETURN pLIMIT 1000
Display Jamf Accounts with Attack-Paths impacting other Jamf Accounts - increase the maximum edges to see more relationships (i.e. change 5 to 6 to see 1 more)
Copy
Ask AI
MATCH p=(s:jamf_Account)-[*1..5]->(t:jamf_Account)RETURN pLIMIT 1000
An example of chained targeted filtering with multiple conditions in series that creates multiple proprety filters such as restricting to nodes with specific strings in their name, kinds of nodes, and types of edge relationships existing between the nodes
Copy
Ask AI
MATCH p=(s)-[r]->(t)WHERE s.name STARTS WITH 'TENANT_ADMIN'AND (t.name STARTS WITH 'UPDATE' OR t.name STARTS WITH 'SOL' OR t.name STARTS WITH 'JVM')AND (type(r) = 'jamf_UpdateAccounts' OR type(r) = 'jamf_CreateAccounts' OR type(r) = 'jamf_CreatePolicies' OR type(r) = 'jamf_AdminTo')ORs.primarykind = 'jamf_Account' AND (s.name IN ['EXAMPLE', 'REG', 'LCAIN'])AND type(r) = 'jamf_AdminTo'ORt.primarykind STARTS WITH 'jamf_Computer' AND s.primarykind = 'jamf_Account'AND s.name STARTS WITH 'AZURE'ORs.primarykind = 'jamf_Tenant'AND type(r) = 'jamf_Contains'AND (t.primarykind = 'jamf_Site' OR t.primarykind = 'jamf_Computer')OR(s.primarykind = 'jamf_Site' AND t.primarykind = 'jamf_Computer')RETURN pLIMIT 1000
Targeted Filtering that limits results to starting jamf_Group nodes starting with ‘TENANT’ in the name and only show edges/relationships specified by r that are one of the three specified edges
Copy
Ask AI
MATCH p=(s)-[r]->(t)WHERE s.name STARTS WITH 'TENANT'AND s.primarykind = 'jamf_Group'AND (t.name STARTS WITH 'UPDATE' OR t.name STARTS WITH 'SOL')AND (type(r) = 'jamf_UpdateAccounts' OR type(r) = 'jamf_CreateAccounts' OR type(r) = 'jamf_AdminTo')RETURN pLIMIT 1000
Targeted Filtering Query, display nodes with edges between ‘GROUP_ADMINISTRATORS’ and ‘UPDATE’ or ‘GROUP_ADMINISTRATORS’ and other nodes that start with ‘SOL’
Copy
Ask AI
MATCH p=(s)-[]->(t)WHERE s.name STARTS WITH 'GROUP_ADMINISTRATORS' AND t.name STARTS WITH 'UPDATE' OR s.name STARTS WITH 'GROUP_ADMINISTRATORS' AND t.name STARTS WITH 'SOL'RETURN pLIMIT 1000