Hey hoy martes y como se esta haciendo costumbre en el blog andamos iniciando la semana y esta oportunidad vengo a compartir una solucion realizada por @met3or el cual en su blog realizo el reto de PwnLAB Boot2Root que fue realizado por @Cla0r desde el grupo de Capsulas SI les dejo con la solución y felicitar por el resultado y el paso a paso realizado.
Buenas lectores, hace unos días estaba aburrido acababa de leerme el
último apartado de un PDF y no tenia nada que hacer, de pronto me dieron
ganas de completar algún reto, así que me dirigí a la página de Snifer (Retos SniferL4bs),
donde sabía que iba a encontrar un divertido e interactivo reto,
después de unos minutos navegando por la página me encontré con el CTF
PwnLAB Boot2Root en el cuál se requeria la descarga de una maquina
virtual para posteriormente conseguir privilegios root y así finalmente
conseguir el ansiado "flag.txt". Sin más preámbulos comenzaré a
describir como conseguí llegar a dicho archivo.
Primero de todo reconocimiento, tenia que saber a que me estaba
enfrentando, así que escanee toda mi red en busca de hosts vivos.

example1.php?page=php://filter/convert.base64-encode/resource=
Bingo!! Encontramos las credenciales de la bases de datos ahora podriamos proceder a conectarnos mediante la terminal.

Ahora a probar a entrar en el login de la página, al acceder al login solo nos quedaba un objetivo para poder llegar a tener una sesión en la máquina subir una shell mediante el "Upload" que teniamos con acceso restringido solo a los usuarios logeados, lo primero que hice fue insertar código de una shell en una imagen mediante la herramienta msfvenom

De esta forma logré bypassear el uploader y subir la shell, aquí estaba el primer dilema solamente accediendo a la url no podiamos obtener una sesión meterpreter ya que el directorio no ejecutaba codigo PHP, después de buscar entre directorios con el filtro en php que usamos antes para sacar el config.php me di cuenta de una función en index.php
Comparando el código extraido de index.php con un LFI, vemos que sí la cookie esta puesta, da paso a un source code vulnerable a otro LFI medainte la variable lang, eso quiere decir que si capturamos cabeceras y seteamos detrás de la cookie la variable ·"lang=" seguido del directorio que queremos ver, podria llegar a ejecutar código PHP y entonces podriamos llegar a obtener nuestra ansiada shell con el host<?php “include/”.include($_GET['filename'].“.php”); ?>
Ya tenemos sesión meterpreter ahora toca llegar escalar privilegios para tener root y así poder obtener la flag, lo primero sera hacer su a las cuentas para conocer a cuál podemos entrar y a cuál no utilizaremos el siguiente script en python para obtener una TTY porque con una conexión reversa de meterpreter no nos deja hacer uso de la funcionalidad (su).
python -c ‘import pty; pty.spawn(“/bin/sh”)’
Ahora me aparecia un nuevo archivo pero con el bit SUID también activado, así que le hice un "strings" para ver que estaba haciendo
Lo que pasaría es que podriamos cortar el string con un ";" y detrás poder poner una orden para que se pueda ejecutar/bin/echo %s >> /root/messages.txt
Y ahora que tenemos privilegios le podemos hacer un cat a la flag.txt para estar seguros que Snifer no nos ha troleado esta vez como cuando troleo a medio twitter con los PDF's de 0xWORD xD
El primer CTF tuyo y ya me hicistes tener migraña nada más empezar con la página web, por lo demás fue muy divertido y espero unos cuantos más para la colección.
Blog del autor de la solución. Meteor Labs
Regards,
Snifer
0 comentarios
Publicar un comentario