Usuarios
Cantidad de usuarios
Copiar (Get-DomainUser).count
Nombre de usuario al correspondiente
Copiar .\SharpView.exe ConvertTo-SID -Name joe.doe
Convertir SID a un nombre de usuario
Copiar .\SharpView.exe Convert-ADName -ObjectName S-1-5-21-2974783224-3764228556-2640795941-1724
Lista de usuarios
Copiar .\SharpView.exe Get-DomainUser -Domain hacklab.local
Usuarios vulnerables a ASREPRoast.
Copiar .\SharpView.exe Get-DomainUser -KerberosPreauthNotRequired -Properties samaccountname,useraccountcontrol,memberof
Copiar Get-DomainUser -KerberosPreauthNotRequired -Properties *
Usuarios con delegación restringida de Kerberos.
Copiar .\SharpView.exe Get-DomainUser -TrustedToAuth -Properties samaccountname,useraccountcontrol,memberof
Usuarios que permitan una delegación sin restricciones.
Copiar .\SharpView.exe Get-DomainUser -LDAPFilter "(userAccountControl:1.2.840.113556.1.4.803:=524288)"
Usuarios de dominio con datos confidenciales.
Copiar Get-DomainUser -Properties samaccountname,description | Where {$_.description -ne $null}
Usuarios vulnerables a Kerberoasting.
Copiar .\SharpView.exe Get-DomainUser -SPN -Properties samaccountname,memberof,serviceprincipalname
Finalmente, podemos enumerar cualquier usuario de otros dominios (extranjeros) con membresía en grupos dentro de cualquier grupo en nuestro dominio actual.
Fecha de último cambio de contraseña
Copiar Get-DomainUser -Properties samaccountname,pwdlastset,lastlogon -Domain hacklab.local | select samaccountname, pwdlastset, lastlogon | Sort-Object -Property pwdlastset
Mostrar las contraseñas establecidas antes de una fecha determinada:
Copiar Get-DomainUser -Properties samaccountname,pwdlastset,lastlogon -Domain hacklab.local | select samaccountname, pwdlastset, lastlogon | where { $_.pwdlastset -lt (Get-Date).addDays(-90) }
Grupos
Obtener todos los grupos
Copiar Get-DomainGroup -Properties Name
Listar los miembros de un grupo específico.
Copiar .\SharpView.exe Get-DomainGroupMember -Identity "Help Desk" | Select-Object MemberName
Copiar Get-DomainGroupMember -Identity "Help Desk" | Select MemberName
Buscar todos los grupos AD con el AdminCount
atributo establecido en 1, lo que significa que se trata de un grupo protegido.
Copiar .\SharpView.exe Get-DomainGroup -AdminCount
Grupos locales
Copiar Get-NetLocalGroup -ComputerName HACKLAB | Select-Object GroupName
Enumerar los miembros del grupo local en cualquier host determinado usando el Get-NetLocalGroupMember
función.
Copiar .\SharpView.exe Get-NetLocalGroupMember -ComputerName HACKLAB
Computadoras
Copiar .\SharpView.exe Get-DomainComputer -Properties dnshostname,operatingsystem,lastlogontimestamp,useraccountcontrol
Podemos guardar estos datos en un CSV para nuestros registros usando PowerView
.
Copiar Get-DomainComputer -Properties dnshostname,operatingsystem,lastlogontimestamp,useraccountcontrol | Export-Csv .\inlanefreight_computers.csv -NoTypeInformation
ACLs (Access Control Lists)
Copiar Get-DomainObjectAcl -Identity joe.doe -Domain inlanefreight.local -ResolveGUIDs
GPO (Group Policy Object)
Listando las GPO
Copiar Get-DomainGPO | select displayname
También podemos comprobar qué GPO se aplican a una computadora específica.
Copiar Get-DomainGPO -ComputerName WS01 | select displayname