Resolución de la maquina Rutas | DockerLaps.es | WriteUp

 

Rutas



Que tal lord & lady


El día de hoy traigo para ustedes una nueva resolución de maquina de la plataforma de https://dockerlabs.es, la maquina Rutas.

Esta maquina es creada por firstatack, tiene una dificultad medial y es la maquina elegida para hackear y romper el día de hoy.


Requisitos previos:

- Tener configurado al menos una virtual como Kali o Parrot (link aquí)


Write Up maquina Rutas #dockerlabs.es

Reconocimiento

Ping


Enumeración

Quick scan



Servicios y versiones


Tenemos 3 puertos:


[Opcional]

Buscando vulnerabilidades con nmap

No encontramos nada...

Continuemos...

Puerto 21 - vsftpd 3.0.5

¿Que podemos intentar? podríamos intentar ingresar con usuario anonymous:


Vaya vaya! 

Vamos a traernos a nuestra maquina los archivos que tenemos a nuestra disposición:

Vamos a ver que nos trajimos:


tenemos un zip que nos pide password, vamos a ver si lo podemos romper con John The Ripper:


Excelente!

Tenemos una contraseña, vamos a unzipear:


Parece ser que tenemos un reto, vamos a ver cuanto nos toma resolver lo...



Puerto 22 - OpenSSH 7.7p1


Puerto 80 - Apache httpd 2.4.58

Mientras estaba revisando el sitio, me puse a la tarea de hacer algo de enumeración del puerto 80:

Whatweb:


Vale, parece ser que aquí no hay mucho ...


Sitio + Wappalizer:


Nop, definitivamente no se ve mucho ...

Algo que podemos hacer es Fuzzing para ver si encontramos recursos interesantes:

Fuzzing:


De primera instancia tenemos 2 recursos, vamos a ver cada uno:

Código

Vale revisando un poco el código me llamó un poco la atención los enlaces, además de que cerro mal un <li> XD


Pero vi el nombre trackedvuln.dl, asi que decidí agregar este virtual hosting al archivo /etc/hosts, 


y ...


Pero hasta el momento, no contamos con usuarios ni contraseñas, pudiéramos intentar los típicos de admin admin...

...

Creo que regresaré al reto de buscar la imagen crackpass.jpg en el repositorio ...

...

Después de buscar un rato, por fin di con ella...

Vamos a descargarla:


Como puedes observar, me gusta siempre usar un strings a una imagen, ya que a veces podemos ver cositas... aquí no es el caso.

Vamos a revisar metadatos:


Mmm pues no, no se ve mucho por aquí...

Vamos a utilizar una herramienta de esteganografía, steghide...


Interesante

Sin pasarle una contraseña vemos que tiene embebido un archivo, passwd.zip


Existe una herramienta en github llamada stegseek la cual permite hacer fuerza bruta a una imagen que precisamente tiene información embebida y que han usado programas como steghide para poder agregar información a una imagen...


Vale, la frase era "" (vacío, vaya genio que soy XD)

Vamos aponer estas credenciales en el sitio (ya que intente usarla en ssh y en ftp y no funcionó)


Parecen los mismos recursos...

Espera...

Parecían los mismos recursos hasta que vi el código...


Vale, lo que voy a intentar hacer es sacar los headers de autorización del sitio con BurpSuite 


Posteriormente haré un fuzzing con estos headers ahora con el sitio trackervuln.dl:


Por cierto

Si tienes la curiosidad, la autenticación esta en base64:


Después de hacer una gran movida utilizando gobuster para buscar subdominios:



Después de usar diferentes listas, quemar casi mi paciencia...

Se me ocurrió pasar un parámetro con wfuzz de la siguiente manera:

Vamos a ver si nos vale algún parámetro...

Ya obtuvimos un resultado diferente, eso es bueno...

Hay una "pista" de que usemos tmp... bien


Explotación

Por andar jugando, se me ocurrió lanzar un servidor http server con python 

y adivinen que:


Quiero hacer una prueba...


y ahora en el navegador...

Vale, parece ser que si interpreta, pudiéramos entablarnos una conexión:

Maquina atacante:


Navegador:

Recargamos:

Y ahora en nuestra maquina atacante:


Estamos dentro


Post-Explotación

Ya vi que es necesario obtener una full stty, te dejo los pasos aqui.

Ahora si, vamos a ver como escalamos privilegios:


SUDO

Todo parece indicar que podemos usar sudo para ejecutar como "norberto" el binario /usr/bin/baner

Vamos a ver que hace este binario:

Bien

Parece que usa el comando head 2 veces, una con una ruta absoluta y otra con una ruta relativa.

Esto me da a pensar que tal ves no podemos hacer nada con la ruta absoluta, pero, si podemos hacer algo con la ruta relativa.

Algo que se me ocurre hacer, si es que esta haciendo uso del binario "head" del sistema, puedo hacer un archivo en bash que me permita obtener una bash del usuario norberto para así poder obtener un movimiento lateral:

Despues de jugar un poco, lo hemos conseguido, somos norberto:

Algo que no había hecho es saber cuantos usuarios tenemos:

Además de root y norberto esta maria y ubuntu.

Vamos a ver si podemos ser root o hacer movimiento lateral de usuario...


SUDO

Pues de momento no tenemos las credenciales de norberto, vamos a ver que mas encontramos

...

Enumerando un poco los archivos que puede ver el usuario norberto, hay uno de los tantos que llaman la atención:


...

Vamos a ver que tiene ese archivo:


Okay... no se que es eso...


Lo pegue en Google (bendito Google) y parece que se puede traducir...

Creo que ya lo conseguí, voy a ver por ejemplo a usar esta contraseña en ssh:

Ya estamos dentro!

Vale, pude entrar a la carpeta de maria y ojito...

Vamos a intentar por ssh.


Somos maria

Vamos a ver que podemos hacer aqui


SUDO

Parece que por aquí no va el rollo


Buscando archivos que puede operar maria, me encontre con uno algo ... curioso!


...


Mmmm si ponemos atención, ese mensaje ya nos habia salido cuando nos loggeamos como maria:


Me pregunto si,  podemos ejecutar algo a nuestro antojo...

Ingresamos nuevamente por ssh con el usuario maria:


Boom!

Somos root!


Dado a que estamos atrapados en una terminal limitada euid vamos a obtener una uid para poder tener ademas de una terminal ilimitada, persistencia:

Creamos una id_rsa en nuestra maquina de kali e iniciamos un servidor web:

En nuestra maquina victima con usuario root ejecutamos:


NOTA: no se por que pero tuve que renombrar el archivo id_rsa.pub como authorized_keys y volver a colocarle los permisos 600, no se si fue error del wget pero me descargo como si fueron 2 archivos diferentes.

Si todo ha ido bien, deberíamos poder entrar sin contraseña a la maquina ya comprometida por ssh:



Conclusión

Realmente disfrute mucho realizando esta maquina, es retadora, divertida, muy creativo al jugar con un reto de buscar en un sitio una imagen, además el movimiento lateral se me hizo muy bueno ya que usualmente los usuarios en todos lados dejan algún archivo con sus credenciales, así que, punto para esta grandiosa maquina.


Espero que te haya gustado la resolución de esta maquina.

Yo te leo en un siguiente post!

Hasta la próxima.



Comentarios