Enumeración local de SAM

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

Get-NetLocalGroupMember -GroupName Administradores | Select-Object MemberName, IsGroup, IsDomain

Info:

MemberName         IsGroup IsDomain
----------         ------- --------
WS01\Administrador   False    False
WS01\santiago        False    False
CORP\Domain Admins    True     True

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 script PowerView estuviera siendo detectado por el Windows Defender o por otro tipo de herramienta de seguridad, podremos enumerar de forma manual de la siguiente forma:

Get-LocalGroup | Select Name, Objectclass, Principalsource, sid

Info:

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

Last updated