Hack The Box Inject Writeup
Ú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.
Bueno vamos a observar la pagina web que esta por el puerto 8080. Tenemos un parametro upload una subida de archivos.
Vamos al campo upload y subimos un archivo de imagen.
Si le damos al view your image y observamos que nos sale la imagen que subimos, si prestas atencion a la url vemos que se presta para un LFI vamos a pasar la peticion por BurpSuite.
BurpSuite
Interceptamos la peticion y la enviamos al Repeater.
Haciendo pruebas de un LFI, observamos que podemos ver el /etc/passwd y observamos dos usuarios el usuario frank, phil.
Ahora como punto uno si nos vamos a la ruta /var/www, observamos en el punto dos que tenemos dos archivos html y webApp.
Ahora como punto uno nos vamos a la ruta /var/www/webApp, en el punto dos observamos archivos que estan bajo esta ruta actual
Como punto uno en la ruta /var/www/webApp/pom.xml, observamos que si vamos a este archivo de configuracion .xml, observamos el nombre del framework el cual es Spring Framework. Lo que procede es buscar una vulnerabilidad para este framework.
Exploit CVE-2022-22963
Como punto uno ejecutamos el exploit escribiendo la direccion IP de la maquina y bajo el puerto donde se sirve.
En el punto dos nos pide Attacker Ip, en este punto ponemos nuestra direccion IP la de atacante la que se nos da cuando nos conectamos a la VPN, vemos que si hagi un whoami soy el usuario frank.
El exploit que use lo tienes Exploit CVE-2022-22963
Ahora viene lo tipico despues de comprometer, el tratamiento de la TTY
Ahora en el punto uno bajo el usuario fran si nos vamos a su directorio de trabajo si hacemos un ls -lah hay varios archivos ocultos, entramos al .m2
Y ahora en el punto dos le hariamos un cat al archivo que encontramos, y en la estructura .xml encontramos la contraseña para el usuario phil.
Escalada de privilegios lateral
Ahora en el punto numero uno y ya con la contraseña del usuario phil nos vamos al directorio de los usuarios, y como punto nuemero dos hacemos un su phil estamos diciendo que queremos migrar al usuario phil, se nos pide la contraseña que ya la tenemos y migramos.
Vemos que si hago un whoami, ahora soy phil y no frank.
Bajo el usuario phil encontramos la primera flag ya que casi siempre son dos la del usuario y la de root, ahora tratamos de encontrar la forma de escalar privilegios a root.
Buscando una forma de escalar privilegios ah root si nos vamos a la ruta /opt/automation/tasks, encontramos un archivo en estructura .yml, en el cual solo tenemos permiso de lectura, solo el propietario tiene permisos de escritura y nosotros somos otros no el propietario.
Vamos a buscar soluciones ya que el archivo se presta para hacer cositas porque observamos en la estructura que se esta trabajando en algo en local dentro de la maquina.
Como punto numero uno buscamos si python esta instalado en la maquina victima y observamos que si entonces desde la maquina victima nos compartimos un server con pyhton.
En el punto dos y ya con el server compartido desde la maquina victima, ahora desde mi maquina atacante y usando wget hacemos una solicitud a la maquina victima para descargarnos el archivo que tiene estructura .yml, ya que el local podemos cambiarle los permisos y asi editarlo a nuestra manera para una posible escalada de privilegios.
Como punto numero uno observamos que ya tenemos el archivo en local
Como numero dos le cambiamos los permisos con el comando chmod 777, para que el archivo tenga maximos privilegios
Y ahora en el punto tres editamos el archivo con nano o lo que tengas, estamos en local puedes jugar como quieras y lo editas tal como se ve, el comando importante es chmod u+s /bin/bash, lo que le estas diciendo es que si se ejecuta el archivo, se le agreguen permisos SUID a la bash, la cual nos permitiria escalar nuestros privilegios.
Y bueno ya por ultimo quedaria devolver el archivo a la maquina victima porque por ahora lo tenemos en nuestra maquina aca no sirve de mucho, ahora ya con los permisos cambiados y las ordenes dadas le cambiamos el nombre para que no haya conflicto cuando lo enviemos a la maquina victima y no haya conflictos con el original.
Ahora hay que devolver el archivo a donde pertenece.
Ahora es al reves, como punto numero uno nos compartimos un servidor con python desde nuestra maquina atacante para asi poder descargar el archivo desde la maquina victima el editado.
Ahora como punto numero dos desde la maquina victima usando wget nos descargamos el archivo que se esta compartiendo recuerde que le cambiamos el nombre ah root.yml, nos lo descarga satisfactoriamente.
Ahora como punto numero tres hacemos un bash -p, este comando es para decir que se nos eleven nuestros privilegios y se nos elevan, porque el archivo que descargamos ahora mismo el root.yml, recuerde que lo editamos justo para eso cuando instruimos la orde chmod u+s /bin/bash.
Ahora nos dirigimos al directorio donde se guarda la flag de root y la leemos y maquina resuelta.