🐶Bloodhound
If SID is displayed it is a local account. BloodHound uses this representation of a principal when the domain identifier of the SID is from a local machine
Use Collection Loops to not miss information
Bloodhound ingestor
bloodhound.py -u 'forend' -p 'Klmcargo2' -ns 172.16.5.5 -d inlanefreight.local -c all --zipcan also use -dns-tcp
dnschef --fakeip 10.10.225.134 bloodhound.py -u 'rsmith' -p 'IHateEric2' -d lab.trusted.vl -dc labdc.lab.trusted.vl -c all -ns 127.0.0.1(NODES)-[:RELATIONSHIP]->(NODES)All computers in domain:
MATCH (m:Computer) RETURN mAll Users in domain:
MATCH (m:User) RETURN mTo get active sessions:
MATCH p = (c:Computer)-[:HasSession]->(m:User) RETURN pSharpHound.exe -c All--Loop --LoopDuration 00:10:00 to loop
cat 20240302180235_users.json | jq '.data[].Properties | .samaccountname + ":" + .description' -rMATCH p1=shortestPath((u1:User)-[r1:MemberOf*1..]->(g1:Group)) MATCH p2=(u1)-[:SQLAdmin*1..]->(c:Computer) RETURN p2MATCH p1=shortestPath((u1:User)-[r1:MemberOf*1..]->(g1:Group)) MATCH p2=(u1)-[:CanPSRemote*1..]->(c:Computer) RETURN p2To check users who can RDP
MATCH p1=shortestPath((u1:User)-[r1:MemberOf*1..]->(g1:Group)) MATCH p2=(u1)-[:CanPSRemote*1..]->(c:Computer) RETURN p2Check for SQLAdmin User:
MATCH p1=shortestPath((u1:User)-[r1:MemberOf*1..]->(g1:Group)) MATCH p2=(u1)-[:SQLAdmin*1..]->(c:Computer) RETURN p2If found:
Import-Module .\PowerUpSQL.ps1
Get-SQLInstanceDomainThen use mssqlclient:
mssqlclient.py <domain>/<user>@<ip> -windows-authLast updated
Was this helpful?