Domain Enumerations
Using Powerview.ps and the AD Module
Checking for Domain Connections
[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
net user /domain
net user atlante.phillis /domain
net group /domain
net group "IT Admins" /domain
Current Domain
Get-NetDomain
Get-ADDomain
Another Domain:
Get-NetDomain -Domain name
Get-ADDomain -Identity name
Domain SID:
Get-DomainSID
Domain Policy
get-domainpolicy
Domain controler
get-netdomaincontroller
get-netdomaincontroller -Domain name
get-addomaincontroler
User Enumeration
Get-NetUser
Get-NetUser -Username name
Get-NetUser | select * (any property)
get-aduser -Filter * -property *
get-aduser -identity name -property *
Get-userproperty #not working
Get-userProperty -Properties
get-aduser -filter -properties * | select * | select -first 1 | getmember -membertype * prperty |select name
very Importtant
Find-UserField -SearchField Description -SearchTerm "built"
get-aduser -Filter 'Description -like "*bulid"' -Properties Description | select name,Description
Computer Enum:
get-netComputer
get-netcomputer -operatingsystem "*Server 2016*"
get-netcomputer -Ping
get-netComputer -FullData
get-adcomputer -Filter * | Select name
get-adcomputer -Filter 'operatingSystem -like "*server 2016*"' - properties operatingsystem | select name,operating,system
get-adcomputer -filter * - properties DNSHostName | %{Test-Connection -count 1 -computername $_.DNSHostName}
get-adcomputer -Filter * -Properties
group Enum
get-netgroup
get-netgroup -domain <target>
get-netgroup -Fulldata
get-netgroup *admin*
get-netgroupmember -GroupName "domain Admins" - Recurse
get-netgroup -username "student1"
get-adgroup -filter * | select name
get-adgroup -filter * -Properties
get-adGroup -Filter 'Nmae -like "*admin*"' |select Name
get-adgroupmember -identity "Domain admins" -recursive
get-adprincipalgroupmembership -dentity student1
for local groups
get-netlocalgroup -computername {} -listgroup
get-netlocalgroup -computername {} -recurse
logon check
get-netloggedon -computername <severname>
get-loggedonlocal -computername <severname>
get-lastloggedon -computername
Share enum important files
Find-DomainShare -CheckShareAccess
invoke-sharefinder -verbose
invoke-filefinder -verbose
get-netfileserver
GPO Enumerations
get-netGPO
get-netGPO -Computername
get-netGPOGroup
gpresult /R
find-gpocomputeradmin -computername
find-gpolocation -usernmae <> -verbose
OU Enums
get-netou -fulldata
get-netgop -gponame
ACL enumeration
get-objectAcl -SamAccountname <> -ResolveGUIDS
getObjectAcl -ADSprefix 'CN=Administrator,CN=Users' -verbose
get-ObjectACL -ADSpath "LDAP://CN=Domain Admins,CN=Users,DC=Dollarcorp,DC=moneycorp,DC=local" -ResolveGUIDs -Verbose
invoke-ACLScanner -ResolveGUIDs <- searchs for intersting ACL
get-pathAcl -Path "\\dcorp-dc.doolarcorp.moneycorp.local\sysvol"
Convert-SidToName
Domain Trust Enumeration
one way trust
Two Way trust
get-netdomaintrust
get-netdomaintrust -Domain
get-adtrust
get-adtrust -Identity
Forest Enumeration
get-netForest
get-netforest -Forest
get-ADforest
get-ADforest -identity
# all domain in current forest
get-netforestdomain
get-netforestdomain -Forest
Forest trust
get-netforestcatalog
get-netforestcatalog -forest
get-adforest | select -Expandproperty GlobalCatalog
get-netforesttrust
get-netforesttrust -forest
get-adtrust -filter 'msDS-TrustforestTrustInfo -ne "$null"'
User Hunting
The permissions required to enumerate sessions with NetSessionEnum are defined in the SrvsvcSessionInfo registry key, which is located in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\DefaultSecurity
#PowerView
Find-LocaladminAccess -verbose
Get-NetComputer -> IMPT
Get-NetSession -> command uses the NetWkstaUserEnum and NetSessionEnum APIs under the hood
Invoke-CheckLocalAdminAccess
#use FIND-wmiLocalAdminAccess.ps1
Invoke-EnumarateLocalAdmin -Vervose // uses Get-NetLocalGroup
#Important
Invoke-UserHunter
Invoke-UserHunter -Stealth
Invoke-UserHunter -GroupName "RDPUsers"
//Uses Get-NetGroupMember
#Confirm admin access
Invoke-UserHunter -CheckAccess
Last updated