Hackthebox — Writeup Poison No/MSF
Se identificó una contraseña que fue codificada 13 veces mediante base64, con esto se obtuvo acceso inicial, la escalada de privilegio fue gracias a un archivo utilizado como método de autenticación, previa identificación de un servicio que corría localmente y una reutilización de contraseñas.
Identificación de puertos y servicios
Como siempre, es necesario identificar los posibles caminos para acceder al equipo
nmap -sC -sV -p22,80 --min-rate=4500 10.10.10.84 -oA poison.services
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2 (FreeBSD 20161230; protocol 2.0)
| ssh-hostkey:
| 2048 e3:3b:7d:3c:8f:4b:8c:f9:cd:7f:d2:3a:ce:2d:ff:bb (RSA)
| 256 4c:e8:c6:02:bd:fc:83:ff:c9:80:01:54:7d:22:81:72 (ECDSA)
|_ 256 0b:8f:d5:71:85:90:13:85:61:8b:eb:34:13:5f:94:3b (ED25519)
80/tcp open http Apache httpd 2.4.29 ((FreeBSD) PHP/5.6.32)
|_http-server-header: Apache/2.4.29 (FreeBSD) PHP/5.6.32
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
Service Info: OS: FreeBSD; CPE: cpe:/o:freebsd:freebsd
Bueno tenemos solo dos puertos, 22 y el 80, el 22 lo dejamos para luego, vamos por el 80, a enumerar carpetas o recursos que nos guíen hacia a luz
Enumeración
Se identifico un formulario que ejecuta al parecer archivos script.
Al listar un archivo llamado listfiles.php, se identifica un archivo que no estaba enumerado pwdbackup.txt
Al acceder al archivo nos deja una nota clara, 13 veces con base64
Se identifica un LFI y esto permite enumerar usuarios que pueden iniciar sesión mediante ssh, toca unir los puntos
Acceso Inicial
Después de ejecutar un script se obtuvo Charix!2#4%6&8(0 , mas el usuario identificado ya solo fue cuestión de iniciar por ssh ;)
Con este usuario tenemos acceso al famoso user.txt, existe un archivo secret.zip, intentamos descomprimir pero por algún motivo no se pudo, fue necesaria la transferencia.
Transferimos el archivo
Reutilizamos la contraseña para descomprimir
Escalada de Privilegio
Se identificó un servicio xVNC, este servicio solo estaba habilitado de forma interna.
Hacemos túnel ssh para llegar al servicio, que se encuentra publicado internamente
Una vez se inicia sesión mediante el túnel ssh, podemos iniciar sesión al puerto 4444 y nuestro localhost que redirige al puerto 5901 en el equipo Poison.
Al intentar iniciar sesion, solicita una contraseña, por lo general se puede iniciar con un archivo utilizado como password.
y listo somos root
Conclusión
Ya se viene repitiendo el escenario de almacenar usuarios/contraseñas o archivos que son utilizados para la autenticación y autorización, no es recomendable almacenar contraseñas o creer que archivos protegidos por contraseñas son seguros, otra debilidad identifica es la reutilización de contraseñas, y esto permitió tener acceso a nivel de root.