For the complete documentation index, see llms.txt. This page is also available as Markdown.

SharpView PowerView

Great for domain enumeration and replacement of net commands / other windows built-ins.

SharpView is a replacement for powerview due to alot of increased awareness and logging that occurs in modern power shell versions.

Cannot use | select with SharpView due to it returning strings instead of power shell objects

Getting help with SharpView.exe is easy

.\SharpView.exe Get-DomainUser -Help

PowerView and Opsec

PowerView can leverage token impersonation. Instead of creating a new process, you can run commands as another user by using the -Credential flag. This will generate a logon event on the host.

Sid Name Conversion

ConvertTo-SID -name m.jones
Convert-ADName -ObjectName S-1-5-21-2974783224-3764228556-2640795941-1724
.\SharpView.exe ConvertTo-SID -name m.jones
.\SharpView.exe Convert-ADName -ObjectName S-1-5-21-2974783224-3764228556-2640795941-1724

Domain Policy

Get general domain information

Get-DomainPolicy
Get-Domain
.\SharpView.exe Get-DomainPolicy
.\SharpView.exe Get-Domain

Get all the Organizational Units, helps to map the domain structure

GPO Enumeration

Its helpful to figure out which GPO applies to which host

Enumerate Users

Get important values for all users, export to csv for offline processing

When enumerating UAC values, they are displayed as non human-readable. Convert them with powerview, ones that apply to the user have + after them

Kerberoasting

Check for users with SPNs in another domain allowing kerberoasting across trusts

AS-REPRoast

Constrained Delegation

Unconstrained Delegation

Passwords in the Description

Active Sessions

Find domain machines that users are logged into

Find log on events for specified user

Enumerate Computers

Test Local Admin Access

Enumerate Shares

Domain Trusts

Returns all domain trusts for the current domain or specified domain

Returns all forest trusts for the current forest or specified forest

Enumerate users who are in groups outside of the users domain

Enumerate groups with users outside of the groups domain and return each foreign member

Enumerate all trusts for the current domain and then enumerate all trusts for each domain it finds

Find any user from foreign domain with group membership with any groups in our current domain. You will get back MemberName use Convert-SidToName to turn it into username

Password Set Times

Likely to get caught if you spray across an entire domain. Get the password set time, look for clusters of passwords being reset close to eachother. They were likely reset by the help desk to the default password of the organization.

For the ones that are the same you can do selective guessing. i.e. for one account spray Password2026 for another spray Freight2024! etc. This allows you to effectively try many more than just four passwords if the lockout policy is in effect.

Pay attention to set times. If a password was set in August 2025, attempting Winter2026 likely makes no sense.

If you see old passwords set > 2 years ago, likely weak passwords. Try to guess those first.

Admins typically have sperate Admin accounts from their user accounts. If you see that their normal and admin account passwords were set at the same time, they are likely using the same password for both!

Passwords set longer than 90 days ago

Last updated