My-CMSMS
Write-up de la máquina My-CMSMS de Proving Grounds #writeup #walkthrough
Last updated
Write-up de la máquina My-CMSMS de Proving Grounds #writeup #walkthrough
Last updated
Comenzamos enumerando los servicios abiertos en la máquina objetivo.
4 puertos abiertos. El siguiente paso será el escaneo profundo de estos servicios.
Servicios abiertos:
Puerto 22 -> SSH -> OpenSSH 7.9
Puerto 80 -> HTTP -> Apache httpd 2.4.38
Puerto 3306 -> MySQL -> MySQL 8.0.19
Puerto 33060 -> MySQL ?
La máquina objetivo está ejecutando un servicio Web en el puerto 80. Vamos a ver su contenido y a enumerar archivos y directorios que esten presentes y que puedan ser interesantes.
Para la enumeración de directorios vamos a utilizar FeroxBuster.
El resultado más interesante es un formulario de inicio de sesión para el cual no tenemos credenciales.
Vamos a tratar de acceso a la base de datos que se está ejecutando en el puerto 3306. Vamos a determinar credenciales utilizando credenciales básicas y por defecto. Tras varias pruebas determinamos que las credenciales de MySQL son root:root
mysql -h 192.168.196.74 -uroot -p
Comenzamos enumerando las bases de datos:
show databases;
La base de datos cmsms_db parece interesante. Vamos a enumerarla.
Seleccionamos la tabla relacionada con usuarios.
select * from cms_users;
Esto revela un hash de contraseña MD5 para la cuenta de administrador. Sin embargo, no pudimos descifrarlo utilizando varias listas de palabras. Dado que somos la cuenta root en MySQL, podemos optar por cambiar la contraseña a algo que conozcamos y utilizar esto para iniciar sesión en CMSMS.
Una vez cambiada la contraseña por una que conocemos, vamos a tratar de iniciar sesión utilizando el formulario de login que encontramos en la enumeración.
Con estas credenciales podemos iniciar sesión de el Panel de Administración del cms.
Navegando por el Panel de Administración encontramos la versión de CMS ejecutada.
Vamos a descargarlo y ejecutarlo. Al mismo tiempo, ponemos a la escucha un oyente nc en el puerto 80.
Tenemos acceso a la máquina víctima. El siguiente paso será buscar la flag local.txt
Encontramos la flag en el directorio /var/www. Seguimos enumerando dentro de ese directorio donde encontramos un directorio /html. Dentro de ese directorio encontramos un directorio con un nombre sospechoso llamado /admin. Veamos su contenido.
Hay un archivo .htpasswd. Veamos su contenido.
Vemos un texto cifrado, posiblemente en Base64. Vamos a tratar de descifrarlo.
Pero devuelve otro texto cifrado, posiblemente Base32. Vamos a descifrarlo.
De resultado tenemos unas credenciales: armour:Shield@123
armour es un usuario del sistema. Vamos a tratar de iniciar sesión con este usuario.
Vamos a comprobar que puede ejecutar este usuario como sudo sin cntraseña. Para ello, ejecutamos sudo -l
Podemos ejecutar el siguiente comando que nos devuelva una Shell, posiblemente como usuario root.
sudo /usr/bin/python -c 'import pty;pty.spawn("/bin/bash")'
Solo quedará buscar la flag proof.txt
Después de investigar un poco, encontramos una manera de cambiar esa
Con la información recabada, vamos a tratar de vulnerar la máquina objetivo. Vamos a buscar si existe algún exploit disponible para la versión de CMS ejecutada. Navegando por Google encontramos este