LittlePivoting - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Medio | ElPinguinoDeMario |
Reconocimiento
Vemos el puerto 80 y el puerto 22 abiertos
Hacemos un reconocimiento con gobuster
Entontramos un directorio /shop vamos a ingresar
Vemos que tenemos una pista que añadiendo el parámetro archivo, podemos vulnerar a un LFI
Encontramos 2 posibles usuarios
Hacemos un ataque de fuerza bruta y encontramos que manchi tiene la contraseña “lovely”
Nos descargamos algún script para poder hacer fuerza bruta en local ya que hay dos usuarios para ver si encontramos la contraseña de seller
Encontramos que la contraseña de seller es “qwerty”
Escalamos al usuario seller y hacemos un sudo -l, vemos que tenemos permisos para ejecutar php como cualquier usuario
Ahora vamos a enumerar IPs que haya en dicho PC con un script en bash
#!/bin/bash
for i in {1..255}; do
timeout 1 bash -c "ping -c 1 20.20.20.$i" >/dev/null
if [ $? -eq 0 ]; then
echo "El host 20.20.20.$i está activo"
fi
done
Perfecto, entonces ahora vamos a hacer portforwarding con chisel para traernos los puertos de la máquina 20.20.20.3 a nuestra IP
En la máquina atacante desplegamos el chisel para que haga de servidor
Y en la máquina víctima lo iniciamos de la siguiente forma
Esto nos ha creado un túnel entre las dos máquinas
Ahora hacemos un escaneo con nmap para ver los puertos abiertos
proxychains nmap -sT --top-ports 100 20.20.20.3 -Pn -oN nmap_20.20.20.3
Ahora vamos a configurar el proxy en foxyproxy para podernos conectar a la web
Una vez hecho esto, ya podemos ver la web alojada en la máquina 2
Procedemos a hacer un análisis de directorios con gobuster con el parámetro –proxy y le especificamos el socks5 y la IP más el puerto
Encontramos un secret.php
Vamos a ver qué hay
Encontramos un posible usuario mario, vamos a hacer fuerza bruta con hydra
Encontramos el usuario mario con la contraseña “chocolate”
Vamos a conectarnos a la máquina con esas credenciales
Ya estamos dentro de la máquina, vamos a escalar privilegios
Podemos ejecutar vim como cualquier usuario, vamos a buscarlo en gtfobins
Ejecutamos el comando sudo -u root /usr/bin/vim -c ‘:!/bin/sh’
Ya somos root de la segunda máquina
Ejecutamos un hostname -I para ver las interfaces de red y vemos que tiene dos
Esta máquina no tiene ping instalado, así que vamos a aprovecharnos del /dev/tcp para hacer un escaneo
Nos muestra que la IP 30.30.30.3 está habilitada
Ahora vamos a compartir por el puerto 8080 de la máquina 20.20.20.2 el chisel a la máquina 20.20.20.3
Para que la conexión sea posible, tendremos que hacer que desde esta máquina llegue a nuestra máquina, sin embargo, no tenemos conectividad desde la 30.30.30.0/24 a la 10.10.10.0/24 pero, sí que tiene conectividad con nosotros la red 20.20.20.0/24. Por ello, haremos uso de la herramienta socat ya que nos permitirá que, nosotros desde la máquina 30.30.30.2, nos conectemos con chisel a la máquina 20.20.20.2 y la máquina 20.20.20.2 redirija esa conexión a la 10.10.10.1 que somos nosotros.
Nos descargamos socat de GitHub y lo subimos a la máquina 20.20.20.2
Iniciamos socat haciendo que todas las peticiones que pasen por socat las mande al PC atacante por el mismo puerto que tiene chisel
En la máquina hacemos que todo el tráfico lo redirija a la máquina 20.20.20.2 por el mismo puerto que hemos configurado socat
Ahora vamos a hacer un escaneo de los 100 puertos de la máquina 30.30.30.3
Encontramos el puerto 80 abierto
Vamos a configurar el foxyproxy
Accedemos al puerto 80
Vamos a hacer un reconocimiento con gobuster
Vemos un directorio uploads, entonces vamos a subir un archivo para mandarnos una reverse shell
Ya tenemos subida la reverse shell, ahora vamos a configurar que la reverse shell nos llegue a nuestra máquina con socat
En la máquina 20.20.20.2 montamos un socat que redirija todo lo que haya en el 442 a la IP 10.10.10.1 al 441
Y en la máquina 30.30.30.2 montamos otro socat que redirija todo lo que venga del 443 a la IP 20.20.20.2 al 442
Si ahora en la máquina atacante creamos un nc por el puerto 441 le damos click encima del php-reverse-shell.php y nos debería llegar la reverse shell
Ahora vamos a escalar privilegios
Si hacemos un sudo -l
Vemos que podemos ejecutar env como root, vamos a ver cómo se hace con gtfobins
¡Ya hemos llegado al final!