Road to HackMex: Dia 5 - exhibit
Writeup: exhibit - echoCTF
Información General

Descripción de la máquina
We present to you exhibit VI, what you'll do with it is up to you.
Enumeración
Escaneo Inicial
El nmap nos marca servicio SSH y HTTP. En HTTP nos da el indicio de que tenemos un TinyWebGallery.

Análisis de Servicios
Dentro de TinyWebGallery la vemos recien configurada, no hay descripciones cambiadas. Su versión es 2.6

Encontramos también un panel de login al cual le tiro las defaults más poderosas que me sé pero no cede, tons le dejo de insistir x ahí.
Explotación
Busqueda de vulnerabilidades
Si buscamos un exploit nos da uno para 2.5, podríamos probarlo a ver si jala
TinyWebGallery v2.5 - Remote Code Execution (RCE) - PHP webapps Exploit
Pero necesitamos credenciales de admin. Ya de paso veo en la explicación del exploit que el panel que encontramos en el paso anterior no era el necesario, el que necesitamos está en /admin jjj
Explotación
Default Admin Password : TWG Admin
Según este sitio, las credenciales vienen en un readme.txt o en la guía de instalación de la herramienta. Como somos huevones, vamos a ver si de pura casualidad tenemos el readme.txt expuesto, que debería de estar en /admin/readme.txt

Y efectivamente, encontramos el archivo disponible para lectura y ahí podemos encontrar las credenciales por default, las cuales son:
admin:twg_admin
Una vez dentro, intentamos seguir el exploit y subimos nuestra payload .phar, la cual en este caso la hice que directamente abriera el netcat hacia mi IP; porque eventualmente uno se cansa de las web shells y quiere empezar directamente en los putazos jajaj.

El payload se encontrará en la raíz; ponemos nuestro netcat a la escucha y lo ejecutamos. We are in. Y como tenemos prisa, directamente upgradeamos shell y canjeamos la bandera de /etc/passwd.

También de una vez podemos sacar la bandera de env
Escalación de Privilegios
Análisis
Una vez dentro, corremos sudo -l por fuerza de hábito para ver qué podemos hacer y vemos que podemos correr /usr/bin/vi vimit con permisos de sudo sin contraseña, pero también con la bandera NOEXEC. Mucho ojo a este ultimo dato cuate.

Si buscamos en GTFOBins qué podemos hacer con esto, nos daremos cuenta de que esta flag NOEXEC nos pone el pie para poder usar cualquier cosa de ahí, porque nos impide spawnear un shell desde adentro, que es la sugerencia que nos da GTFOBins
Pero, en mi experiencia, tener vi o emacs con derechos de sudo es como tener un sudo libre por el mundo, porque ambos editores son bastante poderosos y tienen tantas funciones ocultas que tal vez ni sus creadores conocen, así que tal vez si buscamos en su documentación podemos encontrar algo útil.
Y pues después de googlear un rato me encontré con esto, que no está en la documentación de vi, está en la de vim, pero equis.
La cual nos dice que con el comando :e {file} podemos cambiar de archivo una vez dentro de vi. Con esto ya tenemos carta libre, pues ahora tenemos forma de ver y modificar cualquier archivo de texto en la máquina. Esto nos abre muchas puertas tal como:
- Meter nuestra llave publica en /root/.ssh/authorized_keys
- Quitarle la contraseña a root con /etc/passwd
- Volcar de una vez las banderas que queramos, sin escalar privilegios (?
Explotación
Y yo intenté la tercera porque pues las prisas. Con la flag en /etc/shadow no hubo problema, pues es accesible directamente. Pero para la bandera de /root/ETSTCTF_REDACTED me encontré con el problema obvio de que la bandera no se encuentra dentro de un archivo conocido, el nombre del archivo es la bandera en sí.
Entonces, para las prisas, lo que se me ocurrió fue agregar la siguiente entrada a /etc/sudoers
www-data ALL=(ALL:ALL) NOPASSWD:ALL
Con esta, podré temporalmente correr cualquier comando como sudo. En este caso y para terminar, un rico y poderoso:
sudo ls -la /root

headshot