🟢Bashed
Write-up de la máquina Bashed de HackTheBox #writeup #walkthrough
Last updated
Write-up de la máquina Bashed de HackTheBox #writeup #walkthrough
Last updated
Comenzamos la resolución de la máquina Bashed, realizando la enumeración rápida de los servicios que está ejecutando.
Un único puerto abierto. Veamos que se está ejecutando detrás de este puerto.
VERSIONES
Puerto 80 -> HTTP -> Apache httpd 2.4.18
En la máquina objetivo, se está ejecutando un servidor Web en el puerto 80. Veamos su contenido.
Enumeramos los archivos y directorios del sitio Web.
Encontramos varios directorios interesantes: /php, /dev y uploads. Veamos su contenido.
En el directorio /php, encontramos el archivo sendMail.php que no nos aporta ninguna utilidad. El siguiente directorio que enumeraremos será /dev.
Encontramos lo que parece una terminal de comandos dentro de la máquina objetivo. Vamos a tratar de utilizar este vector para acceder al sistema.
En la fase de enumeración, encontramos que dentro de un directorio del sitio Web podíamos acceder a una terminal de comandos con acceso al sistema objetivo. Veamos como la podemos aprovechar. Como el sitio Web está desarrollado en .php y existe un directorio /uploads, vamos a tratar de crear un archivo malicioso .php y a enviarlo al sistema objetivo utilizando un servidor HTTP Python.
El siguiente paso será por un lado configurar un oyente en el puerto 1234 y por otro lado, ejecutar el archivo reverse.php desde el navegador.
Ya tendremos acceso a la máquina objetivo. Configuramos una terminal interactiva y buscamos la flag user.txt
Enumerando el directorio actual, encontramos el siguiente directorio interesante.
Pero al cual no tenemos privilegios para acceder.
Comenzamos enumerando los binarios que el usuario actual puede ejecutar con privilegios elevados sin necesidad de contraseña.
Sabiendo esto, vamos a tratar de crear una nueva shell como usuario scriptmanager.
Y volvemos a comprobar si podemos acceder al directorio /scripts.
Una vez hemos pivotado de www-data a scriptmanager, ya podremos ver el contenido del directorio /scripts. Dentro encontramos dos archivos: test.py y text.txt. Veamos el contenido de ambos archivos.
Parece que al ejecuta test.py, genera el archivo test.txt y su contenido. También debemos observar el detalle de que el archivo test.txt es propiedad de root. Si ejecutamos test.py, test.txt simplemente será propiedad de scriptmanager, ya que es con quién se ejecuta. La forma de entender esto es que sea ejecutado por root. Si observamos la hora en que se crea test.txt, se actualiza cada minuto. Probablemente, sea un trabajo cron, propiedad de root, que ejecuta test.py cada minuto. Creamos el siguiente archivo test.py
Y lo transferimos a la máquina objetivo, al directorio /scripts.
Ahora configuramos un oyente nc en nuestra máquina de ataque. Después de 1 minuto deberíamos conseguir shell con privilegios elevados dentro del sistema objetivo.
Solo quedará buscar la flag root.txt para completar la máquina Bashed
Video resolución en Twitch: