Enumeramos puertos: 22 (SSH) y 8080 (un servidor Django "en construcción"). Forzando un directorio inexistente, Django revela la ruta /mercuryfacts/, que muestra datos sobre el planeta y cuya estructura es vulnerable a SQL Injection.
Con sqlmap extraemos la tabla de usuarios SSH, entre ellos webmaster con su contraseña. Iniciamos sesión por SSH y obtenemos la primera flag. En la carpeta del proyecto web hay un notas.txt con usuarios y contraseñas en base64; al decodificarlo obtenemos la contraseña de linuxmaster.
Como linuxmaster, revisamos sudo -l:
User linuxmaster may run the following commands on mercury:
(root : root) SETENV: /usr/bin/check_syslog.shEl script usa tail sin ruta absoluta:
#!/bin/bash
tail -n 10 /var/log/syslogComo podemos conservar el PATH (SETENV), hacemos PATH Hijacking: creamos un tail falso que es un enlace a vim y anteponemos el directorio actual al PATH:
linuxmaster@mercury:~$ ln -s /bin/vim tail
linuxmaster@mercury:~$ export PATH=.:$PATH
linuxmaster@mercury:~$ sudo --preserve-env=PATH /usr/bin/check_syslog.shSe abre vim como root; escapamos a una shell:
:!/bin/bashObtenemos acceso root y la flag.
Fin.