Open Vulnyx (Easy - Linux)
Escaneo de puertos
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>nmap -sCV -p<PORTS> <IP>Info:
Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-23 04:46 EDT
Nmap scan report for 192.168.5.88
Host is up (0.0076s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u7 (protocol 2.0)
| ssh-hostkey:
| 256 a9:a8:52:f3:cd:ec:0d:5b:5f:f3:af:5b:3c:db:76:b6 (ECDSA)
|_ 256 73:f5:8e:44:0c:b9:0a:e0:e7:31:0c:04:ac:7e:ff:fd (ED25519)
80/tcp open http Apache httpd 2.4.62 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.62 (Debian)
7681/tcp open http ttyd 1.7.7-40e79c7 (libwebsockets 4.3.3-unknown)
|_http-server-header: ttyd/1.7.7-40e79c7 (libwebsockets/4.3.3-unknown)
|_http-title: Site doesn't have a title.
| http-auth:
| HTTP/1.1 401 Unauthorized\x0D
|_ Basic realm=ttyd
8080/tcp open http Werkzeug httpd 2.3.7 (Python 3.11.2)
|_http-server-header: Werkzeug/2.3.7 Python/3.11.2
| http-title: Site doesn't have a title (text/html; charset=utf-8).
|_Requested resource was /login
MAC Address: 08:00:27:75:AD:41 (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 22.26 secondsVeremos varios puertos interesantes, pero entre ellos veremos el puerto 80 y el puerto 8080, vamos a ver que alojan cada uno de ellos.
Si entramos en el puerto 80 veremos un apache2 normal sin nada interesantes, pero si entramos al puerto 8080 veremos un login de un software llamado openplc vamos a buscar algun exploit asociado con el.
URL = Exploit openplc
Veremos que hay uno asociado, no sabemos si la version es la correcta, pero si vemos en el codigo fuente como funciona por dentro veremos que por defecto prueba las credenciales por defecto de dicho software.
Escalate user tirex
Si las probamos directamente veremos que funcionan y estaremos dentro del panel de administrador, si ejecutamos el exploit no veremos que funcione, por lo que vamos a investigar un poco por el panel a ver que vemos.
Si nos vamos a usuarios veremos varios interesantes los cuales vamos a realizar una lista:
users.txt
Pero por SSH no veremos nada interesante, por lo que vamos a probar en el login del puerto 7681, si entramos dentro veremos que es un login de http-get, por lo que vamos a realizar lo siguiente:
Hydra
Info:
Veremos que hemos encontrados las credenciales del usuario tirex, si entramos dentro...
Veremos que tenemos una shell en el servidor atraves de una web como el usuario tirex:
Por lo que vamos a enviarnos una reverse shell para poder tener una mejor shell.
Antes de enviarlo nos pondremos a la escucha de esta forma:
Ahora si enviamos lo anterior y volvemos a donde tenemos la escucha, veremos lo siguiente:
Veremos que ha funcionado, por lo que vamos a sanitizar la shell.
Sanitización de shell (TTY)
Echo esto vamos a leer la flag del usuario.
user.txt
Escalate Privileges
Acordemonos de que antes vimos a un usuario en la web llamado root, puede ser que la web contenga las credenciales del propio root tambien a nivel de sistema, por lo que si nos vamos a donde se almacena OpenPLC que es donde se almacenan las contraseñas:
Veremos lo siguiente:
De todo esto lo que nos interesa es la llamada openplc.db vemos que esta como el usuario que tenemos ahora a nivel de permisos, por lo que podremos utilizar sqlite3 para inspeccionar dicho .db de esta forma:
Info:
Vamos a volcar la informacion de Users a ver que vemos:
Info:
Veremos que la contraseña de root en la pagina al igual que la de tirex es Th3_r00t_is_G0d por lo que vamos a probarla a nivel de sistema a ver si funciona.
Metemos como contraseña Th3_r00t_is_G0d...
Veremos que con esto seremos root, por lo que leeremos la flag de root.
root.txt
Last updated