HTB Popcorn
Esta es una máquina de nivel medio, el cual está centrado en explotación web
Table of contents
Reconocimiento
primero debemos comprobar si tenemos conexión con nuestro objetivo, el cual es 10.10.10.6
.
Realizaremos un ping a la dirección IP y podemos comprobar que tenemos conexión, así también observar según el ttl que nos encontramos con un Linux.
Enumeración
Haciendo uso de Nmap podemos observar que tenemos los siguientes puertos abiertos
Realizamos un análisis más profundo con estos puertos 22,80
.
Ingresamos a la dirección y podemos observar que no está configurado como dice
Necesitamos más información, por ello procedemos a realizar un escaneo con Gobuster, al ejecutarlo podemos observar que tenemos varios directorios que son interesantes.
En el directorio de test podemos ver que se trata de la sección de PHPinfo, revisando esta sección podemos ver que tiene habilitado el subir archivos el cual nos puede ser útil.
También se observa en rename donde se nos muestra una línea que parece ser una descripción de la sintaxis de una API de Renamer.
Por último, en Torrent podemos ver algo mucho más interesante, el cual es un servicio don de se puede compartir torrents.
Revisando podemos observar que en la sección de browse hay un solo archivo que es un Kali-linux.
Si ingresamos al archivo podemos ver que para descargar necesitamos estar registrados, probamos credenciales comunes, pero ninguna es válida, procedemos a crear una cuenta y nos registramos.
Al estar registrados vamos a descargar el archivo Kali y podemos ver que tiene una sección que indica, screenshots. Si hacemos hovering sobre esa sección con la imagen se observa que hay una dirección donde se guardan estos archivos http://10.10.10.6/torrent/upload/
.
Trataremos de subir nuestro propio archivo Torrent y podemos ver que si es posible
Una vez subido vamos a la ubicación y podemos observar que tenemos la capacidad de editar el Torrent.
Al hacer clic en edit this Torrent
, podemos ver que tenemos la capacidad de subir un screenshot para ese archivo.
Explotación
Procedemos a realizar la subida de un reverse shell, pero notemos que solo permite formatos de imagen, por ello modificamos nuestro shell y agregamos png.php, así también antes debemos iniciar, Foxy Proxy y Burp Suite para modificar otras cosas durante la transmisión, luego de ello enviamos la supuesta imagen.
Al enviar el archivo podemos observar en Burp Suite, el Content-Type el cual debemos cambiar y antes del comienzo del archivo PHP agregar el formato de lo que cambiamos.
Los cambios deben verse de la siguiente manera. Cuando tengamos esos cambios procedemos a enviar el archivo.
Al enviar en la página podremos observar una respuesta que se subió con éxito.
Revisamos la dirección donde se suben los screenshots y podemos ver un nuevo archivo, antes de abrir el archivo PHP debemos iniciar nuestro NC para que al abrirlo se establezca la conexión.
Una vez habilitado nuestro nc, hacemos clic en el archivo PHP y podremos observar en nuestra terminal que ya tenemos conexión con el servicio, así también si vamos a la carpeta del usuario ya podremos leer el flag que demuestra que tuvimos acceso a nivel de usuario.
Para la escala de privilegios primero vemos permisos SUID y Capabilities, pero no hay una que nos sea útil de primera.
Como no tenemos algo que de primera nos dé información útil, usaremos linpeas.sh por ello habilitamos un servicio HTTP con Python desde nuestra máquina y descargamos en /tmp
de nuestra máquina víctima.
Una vez descargado le damos permisos de ejecución, con chmod +x linpeas.sh
una vez hecho ello lo ejecutamos y esperamos a que termine.
Cuando termina de ejecutarse, revisamos lo que encontró y podemos observar en System Information que se trata de la versión de kernel 2.6.31.
Si seguimos revisando podemos ver que presenta vulnerabilidades por dicha versión
Como podemos observar el nombre dirtycow, buscamos con searchsploit y vemos que hay varios exploits.
Como lo que estamos buscando es escalar privilegio este nos puede servir
por ello lo copiamos y luego lo descargamos en la máquina víctima, en caso de que haya cerrado el servidor en Python debe volver a levantarlo.
Una vez descargado el archivo debemos compilarlo. En este caso está con el nombre de exploit, luego debemos darle permisos de ejecución.
Al momento de ejecutar nos pedirá que ingresemos un password, se estará usando el password test.
Luego de ejecutar esto tardara un momento y cuando tememos que nos dice el usuario y el password que tiene, en nuestro caso firefart=test
.
Nos registramos con las credenciales y podemos observar que tenemos permisos de root, así que podemos acceder a la carpeta de root y leer el flag que demuestra que llegamos a ser root.
.