Introducción
En este write up, veremos temas cómo vulnerabilidades SQL, crackear hashes y escalar privilegios via yum.
Reconocimiento
Utilizaremos la herramienta Nmap para este cometido con el comando sudo nmap -sS -sV -n --script=http-enum IP
(mas info del script http-enum) también podríamos utilizar el script vuln de Nmap.
Podemos observar que hay tres puertos abiertos, pero el script de http-enum nos muestra ciertos directorios localizados en el puerto 80, de igual forma nos muestra una versión del CMS (Joomla 3.7.0) que va a ser muy importante saberlo para los siguientes pasos.
Si ingresamos a la web, nos muestra que Spiderman robó un banco y a la derecha podemos ver un login.
Si recordamos la versión del CMS, podemos buscar si existen vulnerabilidades utilizando la herramienta Searchsploit y efectivamente tenemos una vulnerabilidad de tipo SQL que podemos explotar de dos formas, con SQLmap o con un script hecho en Python para vulnerar esta falla específica en este servicio y versión.
Yo utilizaré el script anteriormente nombrado, lo voy a descargar a mi máquina local con wget.
Una vez descargado, nos dirigimos al login de la página. para copiar la URL.
Ejecutamos el script en conjunto con la URL copiada, y podemos observar el usuario “jonah” y una contraseña en forma de hash que tenemos que desencriptar para el usuario especificado.
Si usamos la herramienta hashid para identificar que tipo de hash se está utilizando, nos da tres alternativas la cual podemos decir que es bcrypt gracias al manual de hashcat.
Vamos a utilizar John para crackear el hash, especificando el archivo y el tipo de encriptación al cual vamos a aplicar los parámetros.
Observamos que el resultado que nos arroja Jhon, es la contraseña del usuario “Jonah”.
Ahora nos dirigimos al directorio el cuál Nmap nos dió en el anterior escaneo.
Ingresamos el usuario y contraseña.
Subiendo la shell
Ya que estamos dentro del panel, necesitamos obtener una conexión reversa.
Para ello nos dirigimos a templates (protostar).
Podemos editar el index.php para poner nuestra reverse shell.
La editamos acorde a nuestra IP y puerto, en la terminal derecha se ve mi ip de la VPN (tun0) y a la izquierda está la reverse shell la cuál estoy editando, acá les dejo la reverse shell que yo utilizo.
Luego de configurar la shell, la pegamos en index.php reemplazando el existente.
Antes de guardarlo y subirlo, nos pondremos a la escucha con Netcat.
Ahora si podemos guardarlo.
Si todo salió bien, tendríamos una conexión hacia la máquina.
Escalando privilegios
En esta ocasión, utilizaremos un script de Github llamado Linpeas para identificar los vectores débiles que podríamos tener dentro del sistema, para copiar el script a la máquina tendremos que iniciar un servidor local con python python -m SimpleHttpServer
, luego en la máquina remota(THM) nos vamos al directorio /dev/shm, y con wget descargamos el archivo dentro del directorio, le aplicamos los permisos necesarios chmod +x linpeas.sh
y ejecutamos.
El script nos da un resultado muy interesante, encontró una contraseña al interior de unos archivos de configuración de PHP.
Si vamos al directorio home, hay un usuario llamado jjameson.
Si intentamos loguearnos a la cuenta jjameson con la contraseña anteriormente encontrada, vamos a poder acceder a tal cuenta
Vamos a probar distintos métodos de escalación de privilegios, si hacemos un “sudo -l” podemos ver que el usuario jjameson tiene permiso para ejecutar yum con privilegios de sudo.
Ahora nos dirigimos a GTFOBins para poder spawnear una shell con root interactiva cargando un plugin personalizado.
Seguimos las instrucciones de GTFOBins y ahora somos r00t ;)