WRITE UP | CTF “ACEITUNO” Hoy traigo el writeup de una de mis máquinas favoritas de THL, “ACEITUNO”. Bien vamos con su resolución. Aclarar que la primera mitad fue resuelta en KALI, por problemas técnicos y la otra mitad en parrot, con el mismo entorno pero nuevo. Vamos a empezar con un escaneo nmap para buscar puertos abiertos. Vemos 4 puertos abiertos, el 22,80, 443 y 3306... Vamos a realizar un segundo escaneo para determinar el servicio y versión misma. Bien, vemos 2 puertos enfocados a http donde normalmente el puerto 433 es para https pero bueno vemos que no es el caso. Vamos a ver de primeras el puerto 80, donde vemos que corre un WordPress en la versión 6.5.2 . Vamos a buscar la página. Vemos que falla en la carga cuando esto ocurre seguramente tenga un dominio configurado, si vemos en el codigo fuente podemos ver lo siguiente: Así que vamos a asignarlo en /etc/hosts . Esto es un binario que permite asignar nombres de dominio a direcciones IP. Y ponemos la IP de la máquina 192.168.91.131 y el dominio aceituno.thl ➢ 192.168.91.131 aceituno.thl Vale ahora empleamos el dominio en el navegador para ver si carga la página web: Efectivamente nos carga la página, no encontré mucho dentro de la página muchos blogs de el usuario aceituno pero si vas a wp-admin me di cuenta que podías comprobar si existía un usuario. Por ejemplo si entro y pongo wvverez y una contraseña cualquiera. Ya nos dice que el nombre “wvverez” no está registrado en este sitio, con lo cual ya sabemos que no existe en la base de datos, pero sin embargo si probamos con el usuario aceituno que sabemos que existe ya que publico ciertos blogs Ahora solo nos dice que es la contraseña, ves la diferencia. Siguiendo indagando por la web en el código fuente encontré algo que delato la página y fue que tenia asociado el plugin wp discuz 7.0.4 Podiamos también haberlo sacado con wpscan aunque en este caso no fue necesario. Vemos que el plugin wpdiscuz en la versión 7.0.4 donde nos comentan que la última versión del plugin es 7.6.33, vamos a buscar algún posible CVE. Y lo encontré, vi que habia un CVE reportando cuyo fallo de seguridad nos permitía un RCE en git conseguí el siguiente exploit EXPLOIT Vamos a explotarlo: Vamos a ejecutarlo para ver los parámetros que necesite En este caso nos piden de: ➢ - u → la URL donde se encuentra ➢ -p → la página donde se usa el plugin wpDiscuz Vamos a acceder a la webshell que nos generó para ver si se subío y funciona. GUAY!!! Probaremos algunos simples comandos para ver si funciona Efectivamente, todo funciona a la perfección, tenemos acceso a RCE, Bien ahora nos subiremos una revshell en bash interactiva en este caso use el puerto 4444, es importante que la revshell vaya URLencodeada para que el navegador la aceptara. Aquí tenemos nuestra revshell bien nos vamos a poner en escucha en el puerto 4444 y al subir la revshell deberíamos poder acceder como el usuario www-data. Vamos a comprobar. Bien!, ya estaríamos como el usuario www-data, indagando en los archivos y carpetas que tenía el usuario llegue a uno que se llamaba wp-config.php , acabe encontrando la contraseña a la base de datos y el usuario con lo cual lo siguiente que haremos será acceder a la DB. Accedemos a la DB de mySQL y vamos a indagar un poco sobre las DB existentes. Vale, bien! Vamos a encontrar tablas ahora muchas de ellas eran las predeterminadas había una que era importante y la otra no tenía nada que ver por su extraño nombre. Nos fijamos en wp_users y pelopicopata. Si accedemos a la tabla wp_users encontramos la contraseña del usuario aceituno que podemos cambiar y acceder a WP desde navegador y podrías hacer lo que quisieras, podrías dumpear el sitio ya. Y cambiando a pelopicopata para ver lo que contenía el otro, podemos fijarnos en las columnas que vemos que ya es usuario y contraseña Hay un carácter que no se ha filtrado aunque por un poco de coherencia podemos suponer que sería una Ñ, probé con ambas sin nada y con Ñ y efectivamente era con Ñ Accedí ya por ssh, y ya estaríamos como el usuario aceituno. Al principio vimos que había un servicio ssh corriendo por el puerto 22, al hacer ➢ sudo -l Podemos ver que se utiliza el binario most, que nos permite ver ciertos archivos sin precisar ser root. Lo que hicimos ahora fue buscar id_rsa gracias al puerto ssh del puerto 22 que habia abierto. Haciendo: ➢ sudo -u root /usr/bin/most /root/.ssh/id_rsa Al hacerlo conseguimos el id_rsa, el cual nos vamos a copiar al clipboard de momento. Lo pasé a un fichero id_rsa. Claro podemos acceder como root por ssh gracias al id_rsa pero al intentarlo nos pedía contraseña. Con lo cual tenemos que crackearlo. Al intentar acceder por ssh nos pide la contraseña Le di permisos de lectura y escritura para root es decir chmod 600 id_rsa y con ssh2john lo paso a hash_idRsa, lo listamos y se ejecuta correctamente. Vale bien me descomprimí el diccionario de rokcyou.txt y vamos a crackear este hash con johntheripper. Bien esperamos con paciencia y john nos crackea el hash vemos que podemos acceder como root con la contraseña “blessed1” Salud ^^