Ir al contenido

Psycho

En este artículo explico cómo resolví el CTF de la máquina virtual Psycho, creada por Luisillo_o. A continuación, detallo paso a paso las herramientas y técnicas utilizadas para identificar y explotar las vulnerabilidades de la máquina.

  • Nombre: Psycho
  • Autor: Luisillo_o
  • Nivel de Dificultad: Fácil
  • Fecha de creación: 10/08/2024
  1. Descargamos la máquina desde DockerLabs.

  2. Descomprimimos el archivo .zip:

    Ventana de terminal
    unzip Psycho.zip
  3. Ejecutamos el script de despliegue:

    Ventana de terminal
    sudo bash auto_deplo.sh Psycho.tar

Al iniciar la máquina, se muestra su dirección IP directamente. Por lo tanto, no es necesario realizar un escaneo ARP.

IP image

Creamos una estructura de carpetas para organizar el entorno:

Ventana de terminal
mkdir Psycho
cd Psycho
mkt # Crea: content, exploits, nmap, scripts

Realizamos un escaneo completo:

Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts

Extraemos los puertos abiertos:

Ventana de terminal
extractPorts allPorts

Puertos abiertos

Analizamos los puertos detectados (22 y 80):

Ventana de terminal
nmap -sCV -p22,80 172.17.0.2 -oN targeted

Servicios

Enumeramos directorios visibles en el servicio HTTP:

Ventana de terminal
gobuster dir -u http://172.17.0.2/ \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \
-x php,html,txt,js -t 200

Resultado Gobuster

Se detectan dos rutas:

  • index.php: contiene una interfaz simple.
  • assets/: solo contiene la imagen de fondo.

index assets

Observamos un posible fallo en index.php, al no recibir el parámetro adecuado. Usamos ffuf para descubrirlo:

fuff

Descubrimos el parámetro secret. Probamos un path traversal:

http://172.17.0.2/index.php?secret=/etc/passwd

Path traversal

Identificamos dos usuarios: luisillo y vaxei. Navegando por sus archivos encontramos una llave RSA, útil para acceder por SSH.

rsa

Usamos la clave privada RSA para conectarnos como vaxei vía SSH:

Ventana de terminal
ssh vaxei@172.17.0.2 -i id_rsa

vaxei acceso

Ya dentro del sistema, ejecutamos:

Ventana de terminal
sudo -l

Esto nos indica que podemos cambiar a luisillo mediante sudo.

sudo -l

Ahora como luisillo, volvemos a ejecutar:

Ventana de terminal
sudo -l

sudo -l info

Se nos permite ejecutar un script sin necesidad de contraseña, pero al hacerlo da error. No tenemos permiso de escritura, sin embargo, al eliminarlo y recrearlo con un payload controlado, logramos acceso como root.

Root access

La máquina Psycho cumple con el nivel de dificultad anunciado. Resultó útil para practicar:

  • Enumeración web.
  • Explotación por path traversal.
  • Uso de claves SSH.
  • Escalada de privilegios mediante binarios mal configurados en sudo.