Writeup es una maquina de HackTheBox. Encontramos una vulnerabilidad de SQL Injection en CMS Made Simple donde encontramos credenciales para acceder por SSH. Modificamos un script utilizado por un CronJob para escalar privilegios.
Informacion de la Maquina
Nombre | Writeup |
---|---|
OS | Linux |
Puntos | 20 |
Dificultad | Facil |
IP | 10.10.10.138 |
Maker | |
|
MASSCAN & NMAP
Escaneo de puertos TCP/UDP.
|
|
HTTP - Puerto 80
Al visitar el puerto 80 en http nos muestra una pagina con un mensaje en el cual nos indica que la pagina tiene un script anti ddos.
Robots.txt
Intentamos utilizar gobuster, dirb y wfuzz para busqueda de directorios y archivos pero por el script que nos indica en la pagina principal no pudimos realizar dicha busqueda por lo que visitamos el archivo robots.txt de la pagina principal y nos muestra que esta “oculto” /writeup/
, al visitar esta pagina nos muestra una serie de writeups de maquinas que ya fueron retiradas de hackthebox.
CMS Made Simple
Utilizamos la extension para firefox Wappalyzer
la cual nos ayuda a identificar el tipo de CMS, Web Server, Programming Language y Operating Ssytem de una pagina web. Al utilizar esta extension en la pagina nos muestra lo mencionado anteriormente.
Sabiendo esto buscamos exploits que puedan afectar a este CMS con Searchsploit.
Encontramos varios exploits que afectan a este CMS cada uno de ellos en distintas versiones y tipos de vulnerabilidad, para esta version utilizamos CMS Made Simple < 2.2.10 - SQL Injection
(CVE-2019-9053).
CMS Made Simple - SQLI
Utilizamos el exploit contra la pagina y nos muestra las credenciales del usuario jkr el salto de la contraseña y la contraseña.
|
|
Hashcat
Para obtener la contraseña en texto plano utilizamos Hashcat, escribimos el hash y el salto de la contraseña en un archivo para utilizarlo con hashcat y un diccionario.
Contraseña:salto
62def4866937f08cc13bab43bb14e6f7:5a599ef579066807
Comando hashcat:
|
|
Contraseña crackeada:
62def4866937f08cc13bab43bb14e6f7:5a599ef579066807:raykayjay9
SSH - User
Cuando obtuvimos nuestra usuario y contraseña con el exploit la probamos en el panel de administracion del CMS que esta corriendo en el puerto 80 pero no tuvimos suerte de acceder por ese lado, por lo que utilizamos las credenciales en el servicio SSH y nos logeamos satisfactoriamente.
Flag user.txt:
PRIVILEGE ESCALATION
Utilizamos pspy para observar los procesos que se ejecutan, encontramos que un proceso se ejecuta a cada vez que se inicia sesion en el servicio de SSH.
Vemos que este proceso env donde se le pasa la variable $PATH
del usuario root, luego de eso ejecuta un comando:
|
|
Buscamos en que carpeta se encuentra run-parts:
Revisamos la variable PATH
del usuario root y las carpetas donde tenemos permisos de escritura:
|
|
Carpetas donde tenemos permisos de escritura:
find / -writable -type d 2>/dev/null
Encontramos una carpeta que el usuario root utiliza en su variable PATH (/usr/local/sbin/
), esta direccion es la primera que se utiliza para poder “encontrar” los programas/scripts/etc que se escriban en la terminal de comandos, en este caso la primera direccion donde el usuario root va a buscar run-parts es /usr/local/sbin/
.
Sabiendo esto, podemos escribir un comando/reverse shell dentro de /usr/local/sbin/run-parts
el cual va ser ejecutado por el usuario root. Vamos hacer una prueba con un ping hacia nuestra maquina:
echo "/bin/ping -c 2 10.10.15.122" > /usr/local/sbin/run-parts && chmod +x /usr/local/sbin/run-parts
La respuesta la vemos reflejada con tcpdump:
Ahora que tuvimos una respuesta de la maquina vamos a agregar nuestra shell inversa al archivo y vamos a poner a la escucha netcat localmente:
|
|
Obtenemos nuestra shell inversa como usuario root y nuestra flag root.txt: