Pivoting
Reconocimiento
Cuando queremos realizar pivoting es por qué tenemos acceso a una máquina victima la cuál nos hemos encontrado otra red interna dentro, primero tendremos que saber a que nos estamos enfrentando, así que empecemos.
Linux
Descubrir hosts en redes internas
Una vez hayamos encontrado los hosts internos podemos hacer 2 cosas:
Subir un binario portable de nmap
Crear un script de bash para encontrar puertos abiertos de la nueva IP.
Descubrir puertos
Windows
Descubrir hosts
Descubrir puertos
Chisel
Ahora para aplicar reconocimiento de que hay instalado en cada puerto vamos a usar chisel con una conexión de tipo socks5.
Nos descargamos el linux_amd64 y en caso de que sea para windows, pues windows_amd64.
Y lo pasamos a la máquina victima para hacer de cliente y nosotros otro que haremos de servidor.
Servidor
Cliente
Hay varias maneras de hacerlo, una traer solamente un puerto que sería así:
O traernos mediante socks5 traernos todos los puertos.
Se nos habrá abierto la conexión en el puerto local de nuestra máquina por el 1080
Para que esto surja efecto, tenemos que ir al archivo /etc/proxychains.conf
y modificarlo poniendo el siguiente el comando al final del archivo --> socks5 127.0.0.1 1080
Ahora el túnel surge efecto ya que ahora mediante proxychains podremos realizar el reconocimiento y scripts que le podemos mandar con nmap desde nuestra máquina local.
Si intentásemos ejecutar el siguiente comando no nos daría ningún resultado
Añadiéndole el comando proxychains estaría surgiendo efecto el túnel que hemos hecho con chisel y socks5 y nos dará un resultado
Comando final -->
Todo perfecto ya que podemos acceder, pero solamente desde consola, si queremos acceder por ejemplo al puerto 80 mediante el navegador, no podemos acceder, para poder tener acceso hacer lo siguiente -->
Abrir el FoxyProxy --> Add
Ponemos nombre, y cambiamos estos valores
ProxyType --> SOCKS5
Proxy IP --> 127.0.0.1
Port --> 1080
Accedemos al puerto 80
Doble Pivoting
A veces por ejemplo si ya hemos hecho 1 túnel que le hemos asignado el puerto 1234 en chisel como servidor, y en la máquina que hemos encontrado de la siguiente red hemos encontrado otro segmento de red la cuál queremos saltar y tener acceso, podemos utilizar ya el túnel que tenemos creado en el puerto 1234. Aquí explico cómo se debe realizar.
El esquema de cómo sería el laboratorio visualmente -->
Máquina local
Tendríamos un comando ejecutado tal que así:
Entonces, utilizaremos este túnel para que con otro puerto que no sea el 1080 nos sirva para poder acceder a ese segmento que actualmente no podemos acceder desde nuestra máquina local.
Y en la máquina comprometida uno tendriamos el chisel client que nos completaría el túnel, una vez explicado todo vamos a ver que comandos hay que ejecutar en las máquinas 1 y 2.
Máquina comprometida 1
En la máquina comprometida 1 (segmento 10.10.0.0) tenemos el túnel tenía otro segmento de red que hemos podido acceder gracias al 1er túnel, entonces comprometiendo la siguiente red, hemos encontrado otro segmento nuevo que es la 172.17.0.0.
Ahora queremos utilizar el primer túnel para establecer otra conexión para poder trabarla desde nuestra máquina.
Primero tenemos que decirle con socat que todo lo que reciba desde la máquina comprometida 1 por el puerto 4447 lo mande a mi máquina local por el túnel ya creado.
Máquina comprometida 2
En está máquina que es la que tiene el nuevo segmento de red 172.17.0.0 que es el que queremos tener acceso, tenemos que pasarle un chisel y ejecutar el siguiente comando:
Este chisel está diciendo que como cliente envié esta petición socks a la máquina comprometida 1 (10.10.0.130) por el puerto 4447 que es él puerto por el que está escuchando el socat y haga un Dynamic Port Forwading de tipo socks (todos los puertos) por el puerto 8888.
Una vez ejecutado el chisel, en el Chisel Server que teníamos anteriormente debería haber aparecido una nueva conexión -->
Ahora debemos poner en el proxychains.conf la nueva línea como anteriormente hemos hecho con la 1234.
*IMPORTANTE*
Si hemos hecho doble pivoting es decir que hemos llegar a una 3era red y cuando hemos realizado el túnel no funciona el escaneo, prueba de cambiar en el proxychains el dynamic_chain por strict_chain o al revés.
Socat
Para que el tráfico que envié a la máquina actual lo mande a la 192.168.146.128.
Fuzzing con proxychains
Netsh
Sirve para hacer Port Forwading en para Windows. (Para poder utilizar netsh tenemos que haber conseguido ser Administradores del Sistema, ya que es una función que solo está disponible para los administradores.)
listenport
El puerto que escucha la máquina Windows
listenaddress
La IP que estará esperando la petición por el "listenport"
connectport
El puerto por el que estará esperando la petición la IP la cual queremos llegar
connectaddress
La IP por la cúal queremos llegar
Netsh guarda la configuración de Port Forwading en el registro --> HKLM:\SYSTEM\CurrentControlSet\Services\PortProxy\v4tov4\tcp
Referencia
Reverse Shell
Si hemos comprometido la máquina la cuál hemos llegado gracias al netsh y queremos tener una shell debemos utilizar los siguientes comandos para obtenerla
Eso quiere decir que el connectaddress
tenemos que poner nuestra máquina local para recibir la shell, el netsh está como intermediario para enviar la shell al listener que estará escuchando también por el puerto 4545.
Pivoting con Metasploit
Hay que conocer todas las maneras de hacer pivoting y metasploit es una de ellas, así que no os limitéis a hacerlo solo con chisel.
Autoroute
Añadir una nueva red interna descubierta en la máquina comprometida
Ping
Nmap
Después para poder hacerle nmap necesitamos hacer los siguientes pasos
Portforwading
Doble pivoting con Metasploit
Y entonces hacemos como antes pero haciendo un segundo túnel por otro puerto
Recursos adicionales
Last updated