22 Marzo, 2017 a las 0:14

Hace pocos días vimos un completo post sobre técnicas de pivoting con Metasploit, en el que además de explicar las técnicas en sí, vimos qué es el pivoting y el por qué es necesario en nuestras auditorías. Si aún no lo habéis leído este es el momento de hacerlo. Continuando con el tema de pivoting hoy os explicaré una forma curiosa de pivoting utilizando SSH para utilizarlo como un proxy SOCKS5.

En primer lugar establezcamos un escenario: Tenemos un servidor SSH accesible desde Internet y que ha sido vulnerado, en su misma red local hay uno o varios equipos los cuales no están expuestos a Internet por lo que no podemos auditarlos, como viene siendo costumbre no instalaremos ningún tipo de software en el servidor vulnerado para evitar ser detectados y nos ayudaremos de las técnicas de pivoting para conseguir llegar a esta segunda víctima.

Como vemos, la IP pública del servidor es la 11.11.11.146 y las IP privadas (y no accesibles) son la 10.10.10.136 (servidor SSH) y 10.10.10.129 (nueva victima)

A continuación, desde el equipo atacante estableceremos una conexión contra el servidor SSH y haremos un port-forwarding para usar dicha conexión SSH como proxy. Para esto nos ayudaremos del comando ssh y el modificador -D. El comando es simple y no tiene ningún misterio:

Mediante el modificador D indicaremos que queremos hacer el portforwarding al puerto 1080, el parametro F sirve para dejar en segundo plano la conexión ssh cuando se establezca totalmente.

Ahora, al igual que hicimos en la entrada anterior sobre pivoting editaremos el fichero /etc/proxychains.conf para configurar nuestro servidor proxy, dejando en la sección [ProxyList] únicamente el proxy que acabamos de crear:

Obviamente la IP que hemos establecido es 127.0.0.1 por que el servidor proxy está montado sobre nuestro propio equipo.

Una vez hecho únicamente tenemos que encapsular nuestros comandos precediendolos de “proxychains” o configurándoles un proxy. Por ejemplo para lanzar nmap usando este proxy deberíamos poner “proxychains nmap parametros_de_nmap”.

Aunque ya lo expliqué anteriormente este tipo de proxys no permite las conexiones SYN/ACK, por lo que al lanzar un escaner de puertos tenemos que indicarle que lo haga mediante connect() con el modificador -sT.

Aquí podemos ver una captura en la que conectamos al servicio de escritorio remoto de la máquina 10.10.10.129 (en teoría inaccesible) usando proxychains y el tunel recién creado


Acerca de Miguel Díaz

Informático, enamorado de la programación, diseño Web y el deporte.
Categorías: Pentesting, Seguridad, Servidores. Etiquetas: , , , , , , , .

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *