TryHackMe Vulnversity
Última actualización
Última actualización
Ahora hacemos un reconocimiento con nmap para detectar que puertos estan abiertos en el host.
Ahora lanzamos una nmap para ver que versiones y servicios corren para estos puertos que encontramos abiertos.
Primeramente vamos a la pagina web ya que los demas puertos no hay mucho que hacer y vemos una pagina web simple.
WFUZZ
Usando wfuzz vamos a enumerar directorios dentro de la pagina web y vemos que encontramos varias pero vamos a ver que hay en Internal
Nos vamos a /internal, vemos que tenemos una subida de archivos.
Nos creamos un archivo php de prueba para ver si lo podemos subir a la web y asi subir un archivo malicioso que nos envie una rever shell.
Intentamos subir el archivo de prueba.php pero no lo podemos subir, vemos que nos dice Extension not alloweb. Vamos a interceptar esta peticion con BurpSuite para observar que tipo de extension acepta.
Interceptamos la peticion la enviamos al intruder y le decimos que el payload lo queremos dentro de la palabra prueba.php.
En el punto uno nos vamos ah payload, luego en el punto dos escribimos varias extensiones que queremos probar y observar cual le gusta.
En el punto uno vemos todas las extensiones probadas y observamos que la extension .phtml tiene una longitud diferente 723 diferente a las demas lo que hace pensar que la web acepta subida de archivos .phtml.
En el punto dos y observando la respuesta que obtenemos, vemos que en la respuesta obtenemos un Success, lo cual confirma que podemos subir archivos con la extension .phtml.
Nos copiamos una rever shell que el parrot ya trae que esta bajo esa ruta que se observa en la imagen.
REVERSHELL
Y ahora con nano vamos a editar el archivo, hacemos los cambios que debemos hacer la direccion IP que se fue asignada cuando te conectas a la VPN y por ultimo el puerto por donde te quieres poner en escucha.
Guardado el archivo y con los cambios ya hechos, vamos a cambiarle el nombre a la extension que la pagina acepta, y lo pasamos de .php a .phtml. Ahora ya podriamos subir archivos a la pagina
Ahora observamos que si podemos subir archivos y que ah subido correctamente nuestro archivo malicioso el cual nos dara una shell a nuestra maquina atacante.
Nos vamos a la ruta /uploads que normalmente en las subidas de archivo es esa o esta /upload, no necesitas usar ni Gobuster,Wfuzz o otra vaina.
NETCAT NC
Ahora ya con el archivo malicioso subido, vamos pa dentro
En el punto uno nos podemos en escucha con netcat por el puerto 443.
Ahora en el punto dos con curl hacemos una peticion a la ruta donde se encuentra subido el archivo .phtml, vemos por la parte de arriba que ganamos acceso y que si hacemos un whoami somos www-data.
Ahora hacemos un tratamiento de la TTY si no sabes como hacerlo pincha TTY
Nos vamos al /home/bill y vemos que tenemos la primera flag la del user.txt, ahora solo falta la de root.
ESCALADA DE PRIVILEGIOS
Ahora nos dirigimos a la raiz y buscamos binarios SUID para tratar de pasar de ser www-data a root y vemos que systemctl tiene permisos SUID lo cual es de ayuda.
QUE ES SYSTEMCTL
Systemctl es un comando en los sistemas operativos basados en Linux que se utiliza para controlar y administrar el servicio del sistema, también conocido como el init system. Es parte del proyecto systemd, que es un sistema de inicio y administración de servicios ampliamente utilizado en distribuciones de Linux modernas.
Algunos comandos comunes de systemctl incluyen:
systemctl start : Inicia un servicio específico.
systemctl stop : Detiene un servicio específico.
systemctl restart : Reinicia un servicio específico.
systemctl enable : Configura un servicio para que se inicie automáticamente en el arranque del sistema.
systemctl disable : Desactiva la ejecución automática de un servicio en el arranque del sistema.
systemctl status : Muestra el estado actual de un servicio, incluyendo si está en ejecución o detenido.
Esto nos quiere decir que si podemos reiniciar el servicio podemos incluir nuestras propias ordenes.
Nos vamos al directorio /dev/shm y creamos un archivo llamado root.service y escribimos lo siguiente, tiene el enlace al EXPLOIT.
Ahora como punto numero uno hacemos un systemctl enable a la ruta donde creamos nuestro root.service recuerde lo que hace este comando es Configura un servicio para que se inicie automáticamente en el arranque del sistema.
En el punto dos hacemos un systemctl start y le pasamos el archivo que queremos que en este caso es root.service. recuerde lo que hace el comando systemctl start Inicia un servicio específico.
Ahora en el punto tres en la parte de abajo nos ponemos en escuha por Netcat por el puerto 9999 y vemos que si hacemos un whoami somos root y no www-data
Ahora como cuarto punto nos vamos /root para ver la ultima flag que es la de root y asi completar la maquina, le hacemos un cat al archivo root.txt y listo maquina resuelta.
Maquina resuelta.