Andrea Bruschi, Cyber Security Analyst

Domain enumeration, parte 2

Published by Andy

Prosegue l'enumerazione di Active Directory, di seguito una lista di comandi utili. Negli articoli successivi vedremo come implementare e legare logicamente questi comandi, alle fasi di privilege escalation e lateral movement.

Lista dei computer nel dominio

PowerView
PS C:\> Get-NetComputer
PS C:\> Get-NetComputer -OperatingSystem "*Server 2016*"
PS C:\> Get-NetComputer -Ping
PS C:\> Get-NetComputer -Fulldata
PS C:\> Get-NetComputer -Fulldata | select operatingsystem

ActiveDirectory module
PS C:\> Get-ADComputer -Filter * | select Name  
PS C:\> Get-ADComputer -Filter * 'OperatingSystem -like "*Server 2016*"' -Properties OperatingSystem | select Name, OperatingSystem
PS C:\> Get-ADComputer -Filter * -Properties DNSHostName | %{Test-Connection -Count 1 -ComputerName $ .DNSHostName}
PS C:\> Get-ADComputer -Filter * -Properties *

Gruppi nel dominio corrente

PowerView
PS C:\> Get-NetGroup
PS C:\> Get-NetGroup -Domain <targetdomain>
PS C:\> Get-NetGroup -FullData
PS C:\> Get-NetGroup 'Domain Admins' -FullData
PS C:\> Get-NetGroup -GroupName *admin*
PS C:\> Get-NetGroup -GroupName *admin*  -Domain domain.local

ActiveDirectory module
PS C:\> Get-ADGroup -Filter *
PS C:\> Get-ADGroup -Filter * | select name (to select name property)
PS C:\> Get-ADGroup -Filter 'Name -line "*admin*"' | select Name

Tutti i membri del gruppo admin all'interno del dominio

PowerView
PS C:\> Get-NetGroupMember -GroupName "Domain Admins" -FullData
PS C:\> Get-NetGroupMember -GroupName "Enterprise Admins"  -Domain domain.local -FullData (solo su Forest root)
PS C:\> Get-NetGroupMember -GroupName "Domain Admins" -Recurse

ActiveDirectory module
PS C:\> Get-ADGroupMember -Identity "Domain Admins" -Recursive

Gruppo di un utente

PowerView
PS C:\> Get-NetGroup -UserName "user1"

ActiveDirectory module
PS C:\> Get-ADPrincipalGroupMembership -Identity user1

L'oggetto Get-NetGroupMember ha una proprietà isGroup, se impostata a True si tratta di un gruppo e non di un utente. Utilizzando l'opzione -Recurse, è possibile vedere gli utenti appartenenti ai "sottogruppi"

Gruppi sulla macchina locale

PowerView
PS C:\> Get-NetLocalGroup -ComputerName computer.name.local -ListGroups

Membri di tutti i gruppi locali su una macchina

PowerView, richiede privilegi di amministratore su una macchina non-dc.
PS C:\> Get-NetLocalGroup -ComputerName computer.name.local -Recurse

Utenti attivamente loggati su una macchina

PowerView, richiede privilegi di amministratore sul target
PS C:\> Get-NetLoggedon -ComputerName <servername>

Utenti localmente loggati localmente su un domain controller

PowerView, richiede registro remoto sul target - avviato di default sul server OS
PS C:\> Get-LoggedonLocal -ComputerName computer.name.local

Ultimo utente loggato su un computer

PowerView, richiede privilegi di amministratore sul target
PS C:\> Get-LastLoggedOn-ComputerName <servername> 

Trova shares in un host

PowerView
PS C:\> Invoke-ShareFinder -Verbose
PS C:\> Invoke-ShareFinder -Verbose -ExpludeStandard -ExcludePrint -ExcludeIPC

Trova file sensibili in un computer nel dominio

PowerView
PS C:\> Invoke-FileFinder -Verbose

Trova tutti i fileservers del dominio

PowerView
PS C:\> Get-NetFileServer
This article is my 3rd oldest. It is 422 words long