Express

Máquina Express de DockerLabs

Autor: d1se0

Dificultad: Medio

Express

Reconocimiento

Comenzaremos con un escaneo de nmap:

Tenemos 2 puertos abiertos:

Puerto 22: OpenSSH 9.6p1 Ubuntu

Puerto 80: Apache httpd 2.4.58

Puerto 80

Al entrar en la web no veo nada interesante por lo que paso directamente a hacer fuzzing con feroxbuster:

luego de esperar un rato, pruebo en poner el dominio "express.dl" en el /etc/hosts y encuentro una página distinta.

Al realizar fuzzing, encuentro una carpeta llamada "binary", la cual contiene un binario llamado "game", este me lo descargo y veo que es un ejecutable de 64 bites.

Ingeniería inversa

En esta parte, decido depurar el binario usando ghidra, y veo que en la función main hace 100 preguntas sobre un numero aleatorio, y a este lo genera usando una semilla basada en tiempo. En este punto podriamos hacer 2 cosas:

en mi caso hice las 2 xD pero solo voy a mostrar la 2, ya que es lo mas sencillo.

Cuando estemos en la función hidden_key, veremos lo siguiente:

Key

como vemos en "local_28", "local_20", etc. Estas variables contienen la contraseña al inverso, por lo que luego de extraer el texto de todas, me encuentro con la siguiente contraseña:

Intrusión

Ahora solo nos quedaría usar hydra para intentar adivinar el usuario:

User

ya tenemos credenciales.

Escalada De Privilegios

Admin

Si ejecutamos sudo -l, veremos que podemos ejecutar como cualquier usuario (incluyendo root) un script de python, el cual no tiene una función muy interesante pero importa varias cosas, por lo que por ahi podríamos intentar escalar. Luego de revisar cada uno:

veo que "pytest.py" tenemos permisos de escritura, ya que estamos en su grupo, por lo lo editaremos con nano poniendo el siguiente contenido:

luego ejecutamos el script

y ya seremos root.

Root

Root

Gracias por leer ;)

Última actualización