But task of digging through all of the results will be extremely time-consuming and likely inaccurate.
We can targeted enumeration to make PowerView more efficient. Let’s focus on user wley for this part. Assuming we have a control over this user.
CheatSheet
Import Powerview and set starting node. User we are in control of:
Search for to which object that user has what rights over:
Check if there’s any nested group. Help Desk level 1 is under IT group here:
PowerView
Let’s import PowerView and get the SID of our target user to search more effectively:
Targeted Search
Now let’s use Get-DomainObjectACL to perform target search on wley:
Above, we are using Get-DomainObjectACL to find all domain objects that our user has rights over.
Note that since we searched without the flag ResolveGUIDs, ExtendedRight doesn’t give us a clear picture of what ACE entry the user wley has over dmundsen. This is because the ObjectAceType property is returning a GUID value that is not human readable.
GUID value here is 00299570-246d-11d0-a768-00aa006e0529 and searching for this GUID reveals that the user has the right to force change the other’s password.
Reverse Search
Without searching online, we could do a reverse search using PowerShell to map the right name back to GUID value:
We can see that GUID is User-Force-Change-Password.
However, this method is very inefficient and we can use ResolveGUIDs flag to do this job for us.
ResolveGUIDs Flag
Using ResolveGUIDs flag, PowerView automatically resolved GUID to User-Force-Change-Password:
We can confirm that user wley has forcechangepassword right over user dana amundsen.
Enumeration on damundsen
Now let’s use PowerView to where having control over damundsen account can take us:
We can see that damundsen has GenericWrite privilege over Help Desk Level 1 group.
This means, we can add any user to this group and inherit any rights that this group has applied to it.
Help Desk Level 1 Group Enumeration
enumerating on Help Desk Level 1 group, we can see that it is nested into Information Technology group, meaning we can obtain any rights that IT group has.
So far we have:
Control over wley using Responder & Hashcat →wley got forcechangepassword over damundsen→damundsen got GenericWrite over Help Desk Level 1 group →Help Desk Level 1 group is nested into Information Technology group.
Information Technology Group Enumeration
Now let’s see if members of IT group can do anything interesting:
We can see that Information Technology group have GenericAll rights over user adunn.
We can:
Modify group membership
Force change a password
Targeted Kerberoasting attack
adunn user Enumeration
Finally, let’s see if the adunn user got any interesting access:
adunn user got DS-Replication-Get-Changes and DS-Replication-Get-Changes-In-Filtered-Set rights over the domain object.
This means this user can do DCSync attack.
So far we have:
Control over wley using Responder & Hashcat →wley got forcechangepassword over damundsen→damundsen got GenericWrite over Help Desk Level 1 group →Help Desk Level 1 group is nested into Information Technology group. →IT Group got GenericAll over user adunn→adunn got DCSync ability on Domain object.
Default Cmdlets
Sometimes using PowerView could be not allowed.
Cmdlets such as Get-Acl and Get-ADUser could a available to us on client system. Let’s learn how to perform these searched without using a tool such as PowerView.
Be aware that this commands can take a long time to run.
List of Domain Users
Let’s first made a list of all domain users:
foreach Loop
Now, let’s use a foreach loop and Get-Acl cmdlet to retrieve ACL information for each domain user from the list.
We will filter through only Access property which provides us with access rights.
We will also set the IdentityReference property to the user we are in control of, wley.
Notice above GUIDs are not in human readable format. Search up online to change it to human readable.
After successfull decode, we should be able to tell that user wley got forchangepassword right over user Dana Amundsen.