PowerView & SharpView
Listado de Cmdlets utiles de las herramientas PowerView y SharpView para realizar operaciones y enumeración básica en Active Directory.
Usuarios
Cantidad de usuarios
(Get-DomainUser).countNombre de usuario al SID correspondiente
.\SharpView.exe ConvertTo-SID -Name joe.doeConvertir SID a un nombre de usuario
.\SharpView.exe Convert-ADName -ObjectName S-1-5-21-2974783224-3764228556-2640795941-1724Lista de usuarios
.\SharpView.exe Get-DomainUser -Domain hacklab.localUsuarios vulnerables a ASREPRoast.
.\SharpView.exe Get-DomainUser -KerberosPreauthNotRequired -Properties samaccountname,useraccountcontrol,memberofGet-DomainUser -KerberosPreauthNotRequired -Properties *Usuarios con delegación restringida de Kerberos.
.\SharpView.exe Get-DomainUser -TrustedToAuth -Properties samaccountname,useraccountcontrol,memberofUsuarios que permitan una delegación sin restricciones.
.\SharpView.exe Get-DomainUser -LDAPFilter "(userAccountControl:1.2.840.113556.1.4.803:=524288)"Usuarios de dominio con datos confidenciales.
Get-DomainUser -Properties samaccountname,description | Where {$_.description -ne $null}Usuarios vulnerables a Kerberoasting.
.\SharpView.exe Get-DomainUser -SPN -Properties samaccountname,memberof,serviceprincipalnameFinalmente, podemos enumerar cualquier usuario de otros dominios (extranjeros) con membresía en grupos dentro de cualquier grupo en nuestro dominio actual.
Find-ForeignGroupFecha de último cambio de contraseña
Get-DomainUser -Properties samaccountname,pwdlastset,lastlogon -Domain hacklab.local | select samaccountname, pwdlastset, lastlogon | Sort-Object -Property pwdlastsetMostrar las contraseñas establecidas antes de una fecha determinada:
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
Get-DomainGroup -Properties NameListar los miembros de un grupo específico.
.\SharpView.exe Get-DomainGroupMember -Identity "Help Desk" | Select-Object MemberNameGet-DomainGroupMember -Identity "Help Desk" | Select MemberNameBuscar todos los grupos AD con el AdminCount atributo establecido en 1, lo que significa que se trata de un grupo protegido.
.\SharpView.exe Get-DomainGroup -AdminCountGrupos locales
Get-NetLocalGroup -ComputerName HACKLAB | Select-Object GroupNameEnumerar los miembros del grupo local en cualquier host determinado usando el Get-NetLocalGroupMember función.
.\SharpView.exe Get-NetLocalGroupMember -ComputerName HACKLABComputadoras
.\SharpView.exe Get-DomainComputer -Properties dnshostname,operatingsystem,lastlogontimestamp,useraccountcontrolPodemos guardar estos datos en un CSV para nuestros registros usando PowerView.
Get-DomainComputer -Properties dnshostname,operatingsystem,lastlogontimestamp,useraccountcontrol | Export-Csv .\inlanefreight_computers.csv -NoTypeInformationACLs (Access Control Lists)
Get-DomainObjectAcl -Identity joe.doe -Domain inlanefreight.local -ResolveGUIDsGPO (Group Policy Object)
Listando las GPO
Get-DomainGPO | select displaynameTambién podemos comprobar qué GPO se aplican a una computadora específica.
Get-DomainGPO -ComputerName WS01 | select displaynameÚltima actualización