Este tipo de tecnicas tambien se le llama SAM Enumeration.
Pongamos como dijimos antes que nos han prestado este equipo llamado empleado1 que es un usuario de dominio, pero sin privilegios de administrador, por lo que mediante este equipo vamos a recopilar toda la informacion que podamos.
Abriremos una PowerShell y empezaremos el reconocimiento.
Ver que usuario somos
$env:UserName
Info:
empleado1
Ver que dominio tiene dicho equipo
$env:UserDomain
Info:
CORP
Ver el nombre del equipo
$env:ComputerName
Info:
WS01
Enumerar grupos locales
Con esta informacion podremos saber como escalar privilegios o que grupos nos interesan mas para poder tener un vector de entrada mas facil, etc...
Vamos a cargar el script de nuevo para utilizarlo ahora.
. .\new_powerview.ps1
Get-NetLocalGroup
Info:
ComputerName GroupName Comment
------------ --------- -------
WS01 Administradores Los administradores tienen acceso completo y sin restricc...
WS01 Administradores de Hyper-V Los miembros de este grupo tienen acceso completo y sin r...
WS01 Duplicadores Pueden replicar archivos en un dominio
WS01 IIS_IUSRS Grupo integrado usado por Internet Information Services.
WS01 Invitados De forma predeterminada, los invitados tienen el mismo ac...
WS01 Lectores del registro de eventos Los miembros de este grupo pueden leer registros de event...
WS01 Operadores criptográficos Los miembros tienen autorización para realizar operacione...
WS01 Operadores de asistencia de control de acceso Los miembros de este grupo pueden consultar de forma remo...
WS01 Operadores de configuración de red Los miembros en este equipo pueden tener algunos privileg...
WS01 Operadores de copia de seguridad Los operadores de copia de seguridad pueden invalidar res...
WS01 Propietarios del dispositivo Los miembros de este grupo pueden cambiar la configuració...
WS01 System Managed Accounts Group Los miembros de este grupo los administra el sistema.
WS01 Usuarios Los usuarios no pueden hacer cambios accidentales o inten...
WS01 Usuarios avanzados Los usuarios avanzados se incluyen para la compatibilidad...
WS01 Usuarios COM distribuidos Los miembros pueden iniciar, activar y usar objetos de CO...
WS01 Usuarios de administración remota Los miembros de este grupo pueden acceder a los recursos ...
WS01 Usuarios de escritorio remoto A los miembros de este grupo se les concede el derecho de...
WS01 Usuarios del monitor de sistema Los miembros de este grupo tienen acceso a los datos del ...
WS01 Usuarios del registro de rendimiento Los miembros de este grupo pueden programar contadores de...
Con esto simplemente vemos los grupos que hay actualmente en el dominio, pero si queremos saber a que grupos tenemos nosotros privilegios, lo podremos hacer de la siguiente forma:
Ver los grupos en los que esta nuestro usuario
Get-NetGroup -UserName "empleado1" | select name
Info:
name
----
Domain Users
Todo esto que estamos utilizando son funciones de PowerView, en este caso vemos que este usuario desgraciadamente no esta en ningun grupo mas interesante en el que podamos escalar privilegios, ya que el grupo en el que esta es el que viene por defecto y esta muy limitado, pero lo que si podemos hacer es ver los usuarios que estan dentro del grupo administrador.
Ver los usuarios que estan en los grupos administradores
Por lo que vemos el usuario local tiene privilegios de administrador, vemos tambien que hay una cuenta Administrador a demas del usuario administrador del dominio, pero si nosotros consiguieramos sacar la contraseña al Administrador local del equipo, puede ser que este este en mas equipos conectados a nivel local y con suerte que tengan la misma contraseña, por lo que podriamos pivotar hasta llegar al DC y hacernos con el control total, pero esto sera mas adelante.
Hacerlo de forma manual sin PowerView enumeración
En tal caso de que el scriptPowerView estuviera siendo detectado por el Windows Defender o por otro tipo de herramienta de seguridad, podremos enumerar de forma manual de la siguiente forma:
Name ObjectClass PrincipalSource SID
---- ----------- --------------- ---
Administradores Grupo Local S-1-5-32-544
Administradores de Hyper-V Grupo Local S-1-5-32-578
Duplicadores Grupo Local S-1-5-32-552
IIS_IUSRS Grupo Local S-1-5-32-568
Invitados Grupo Local S-1-5-32-546
Lectores del registro de eventos Grupo Local S-1-5-32-573
Operadores criptográficos Grupo Local S-1-5-32-569
Operadores de asistencia de control de acceso Grupo Local S-1-5-32-579
Operadores de configuración de red Grupo Local S-1-5-32-556
Operadores de copia de seguridad Grupo Local S-1-5-32-551
Propietarios del dispositivo Grupo Local S-1-5-32-583
System Managed Accounts Group Grupo Local S-1-5-32-581
Usuarios Grupo Local S-1-5-32-545
Usuarios avanzados Grupo Local S-1-5-32-547
Usuarios COM distribuidos Grupo Local S-1-5-32-562
Usuarios de administración remota Grupo Local S-1-5-32-580
Usuarios de escritorio remoto Grupo Local S-1-5-32-555
Usuarios del monitor de sistema Grupo Local S-1-5-32-558
Usuarios del registro de rendimiento Grupo Local S-1-5-32-559
Este comando hace la misma funcion que este Get-NetGroup -UserName "empleado1" | select name.
Si queremos ver los usuarios que pertenecen al grupo administrador como lo haciamos con este comando Get-NetLocalGroupMember -GroupName Administradores | Select-Object MemberName, IsGroup, IsDomain, de forma manual se podra hacer de la siguiente forma:
Get-LocalGroupMember -Group Administradores
Info:
ObjectClass Name PrincipalSource
----------- ---- ---------------
Grupo CORP\Domain Admins ActiveDirectory
Usuario WS02\Administrador Local
Usuario WS02\santiago2 Local