PowerView is the Swiss Army knife of Active Directory enumeration. Written by @harmj0y as part of PowerSploit, it provides PowerShell cmdlets for everything from finding Domain Admins to discovering attack paths. If BloodHound is your map, PowerView is your magnifying glass.
Think of it as a translator between you and Active Directory. Instead of writing complex LDAP queries, you use simple commands like "Get-DomainUser" and PowerView handles the messy details.
PowerView Versions
PowerView has evolved through multiple versions. The most current is in PowerSploit's dev branch. Some functions have been renamed (Get-NetUser → Get-DomainUser). We'll cover the current naming.
Loading PowerView
Detection
PowerView is heavily signatured. Modern EDR will likely detect it. Consider obfuscation or alternative tools in red team scenarios.
Domain Enumeration
User Enumeration
Description Field Gold
Always check the description field. Admins frequently put temporary passwords, hints, or sensitive info there. "temp pass: Summer2024!"
Group Enumeration
Computer Enumeration
Share Enumeration
GPO Enumeration
GPO Attack Paths
If you can edit a GPO, you can push malicious scripts/settings to all computers/users it applies to. Always check GPO permissions!
ACL Enumeration
Session Enumeration
Session Hunting
Finding where admins are logged in reveals targets for credential theft. If DA is logged into workstation01 and you can get admin there, you can steal their credentials.
Finding Attack Paths
PowerView Cheatsheet
PowerView Methodology
Systematic Enumeration
1
Domain InfoGet-Domain, Get-DomainTrust, Get-DomainController
2
High-Value UsersDomain Admins, AdminCount users, SPNs
3
Attack TargetsKerberoastable, AS-REP roastable, delegations
4
Session HuntingFind where admins are logged in
5
ACL AbuseFind writable objects for privilege escalation
6
SharesSearch for credentials in accessible shares
Knowledge Check
Challenges
Key Takeaways
- PowerView simplifies AD enumeration with PowerShell cmdlets
- Get-DomainUser -SPN finds Kerberoastable accounts
- Get-DomainUser -PreauthNotRequired finds AS-REP roastable accounts
- Find-DomainUserLocation reveals where admins are logged in
- Always check description fields for credentials
- Find-InterestingDomainAcl discovers privilege escalation paths