Last updated
Last updated
Info:
Veremos que hay un puerto 80
en el que si entramos veremos una pagina web alojada que contiene un panel de register
probablemente para registrar un usuario, vamos a probar a registrar un usuario a ver que pasa.
Veremos que pone esto:
Pero no pasa nada mas, vamos abrir BurpSuite
y capturar la peticion del registro a ver que esta pasando por dentro, pero si inspeccionamos el codigo antes confirmamos esto:
Vemos que esta llamando a una funcion que tiene que ver con XML
por lo que tiene toda la pinta de que podremos realizar un XXE
, vamos a capturar la peticion.
Veremos que efectivamente esta utilizando XML
por lo que vamos a probar a realizar un XXE
a ver si se ejecuta codigo de forma remota para realizar un RCE
.
Probaremos esta estructura tipica de un XXE
.
Vemos que esta funcionando y estaremos leyendo el passwd
de la maquina victima, por lo que vamos a probar a leer la id_rsa
del usuario david
que es el unico que vemos que esta registrado.
Info:
id_rsa
Veremos que ha funcionado, por lo que vamos a guardarlo en un archivo id_rsa
y establecerle los permisos necesarios.
Ahora vamos a probar a conectarnos por SSH
.
Si probamos esto veremos que no nos deja ya que no esta habilitado autenticarte mediante la clave privada
por lo que vamos a realizar un poco de fuzzing
en la home
del usuario david
a ver que entontramos.
Info:
Veremos que encontramos un archivo bastante interesantes llamado .viminfo
vamos a ver que es y que contiene.
Si vemos que contiene veremos lo siguiente:
Vemos que en la ruta /usr/local/etc/mypass.txt
hay algo de una password
en este caso creemos que puede ser del usuario david
por lo que vamos a comprobarlo.
Si lo leemos veremos esto:
Vamos a conectarnos por SSH
a ver si funciona.
Metemos como contraseña h4ck3rd4v!d
y veremos que estaremos dentro, por lo que leeremos la flag
del usuario.
user.txt
Si listamos la carpeta /opt
veremos lo siguiente:
Vemos que hay un archivo .py
vamos a ver que contiene:
Vemos varias cosas interesantes, por lo vemos hay una opcion en la que si detecta el programa que existe un archivo llamado suid.txt
en la carpeta /tmp
se establecen permisos de SUID
a la bash
de lo contrario no hace nada.
Pero aunque lo creemos el archivo no pasara nada, tambien podemos creer que se esta ejecutando un crontab
ya que esto tiene pinta de que se esta ejecutando cada x
tiempo.
Vamos a pasarnos el script pspy64
a la maquina victima mediante un servidor de python3
y en la maquina victima con wget
.
Ahora en la maquina victima:
Una vez que nos lo hayamos pasado estableceremos permisos de ejecucion.
Ahora ejecutaremos dicho script.
Info:
Veremos que efectivamente se esta ejecutando por root
una tarea programada de dicho archivo con python3.9
por lo que vamos a descargarnos linpeas.sh
de esta forma para enumerar el sistema.
Info:
Veremos esta parte de aqui, en esta seccion vemos esta fila:
Vamos a listar dicha libreria de python
.
Info:
Veremos que podemos sobreescribir el archivo y vimos anteriormente que el script que esta ejecutando root
tiene importada dicha libreria, por lo que vamos hacer lo siguiente:
Ese fragmento de codigo lo meteremos la final del archivo de os.py
, ahora solo tendremos que esperar a que se ejecute, esperado un rato vamos a listar la bash
a ver si funciono.
Info:
Veremos que si ha funcionado, por lo que haremos lo siguiente.
Info:
Con esto veremos que ya seremos root
por lo que leeremos la flag
de root
.
root.txt