INNER CODE UNIT · Python

cost

idnahacks/GoodHound · goodhound/neodb.py:54

def cost(graph):
    cost=["MATCH (n)-[r:MemberOf]->(m:Group) SET r.cost = 0",
    "MATCH (n)-[r:HasSession]->(m) SET r.cost = 3",
    "MATCH (n)-[r:CanRDP|Contains|GpLink]->(m) SET r.cost = 0",
    "MATCH (n)-[r:AdminTo|ForceChangePassword|AllowedToDelegate|AllowedToAct|AddAllowedToAct|ReadLAPSPassword|ReadGMSAPassword|HasSidHistory]->(m) SET r.cost = 1",
    "MATCH (n)-[r:CanPSRemote|ExecuteDCOM|SQLAdmin ]->(m) SET r.cost = 1",
    "MATCH (n)-[r:AllExtendedRights|AddMember|AddMembers|GenericAll|WriteDacl|WriteOwner|Owns|GenericWrite|AddSelf]->(m:Group) SET r.cost = 1",
    "MATCH (n)-[r:AllExtendedRights|GenericAll|WriteDacl|WriteOwner|Owns|GenericWrite|WriteSPN]->(m:User) SET r.cost = 1",
    "MATCH (n)-[r:AllExtendedRights|GenericAll|WriteDacl|WriteOwner|Owns|GenericWrite]->(m:Computer) SET r.cost = 1",
    "MATCH (n)-[r:GetChanges|GetChangesAll|AllExtendedRights|GenericAll|WriteDacl|WriteOwner|Owns]->(m:Domain) SET r.cost = 2",
    "MATCH (n)-[r:GenericAll|WriteDacl|WriteOwner|Owns|GenericWrite]->(m:GPO) SET r.cost = 1",
    "MATCH (n)-[r:GenericAll|WriteDacl|WriteOwner|Owns|GenericWrite ]->(m:OU) SET r.cost = 1",
    "MATCH (n)-[r:AddKeyCredentialLink]->(m) set r.cost = 2"]
    logging.info("Setting cost.")
    try:
        for c in cost:
            graph.run(c)
        return()

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…