Bashed

Bashed es una máquina bastante sencilla que se centra principalmente en realizar pruebas de fuzzing y localizar archivos importantes. Como el acceso básico al crontab está restringido,


Reconnaissance

Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Bashed. Este resultado lo almacenaremos en un archivo llamado allPorts.

A través de la herramienta de extractPorts, la utilizaremos para extraer los puertos del archivo que nos generó el primer escaneo a través de Nmap. Esta herramienta nos copiará en la clipboard los puertos encontrados.

Lanzaremos scripts de reconocimiento sobre los puertos encontrados y lo exportaremos en formato oN y oX para posteriormente trabajar con ellos. En el resultado, comprobamos que se encuentran abierta una página web de Apache.

Transformaremos el archivo generado targetedXML para transformar el XML en un archivo HTML para posteriormente montar un servidor web y visualizarlo.

Accederemos a http://localhost y verificaremos el resultado en un formato más cómodo para su análisis.

Web Enumeration

Realizaremos una comprobación de las tecnologías que son utilizadas en el sitio web.

Accederemos a http://10.10.10.68 y verificaremos el siguiente contenido. Verificamos que hay un apartado en donde mencionan algo de phpbash.

Initial Access

Abusing phpbash interactive shell on the website

Al acceder al apartado en donde mencionaban phpbash, comprobamos que se trata de la herramienta phpbash.

phpbash es una herramienta creada para facilitar la ejecución de comandos en servidores web vulnerables. Básicamente, es una web shell interactiva escrita en PHP que simula una interfaz de terminal directamente en el navegador. Es como tener un acceso remoto (tipo bash) al servidor a través de una página web.

Realizaremos fuzzing en busca de directorios en el sitio web. Nos encontramos con un directorio algo inusual. Revisaremos el directorio llamado /dev/.

Accediendo a este nuevo directorio encontrado, podemos observar que hay dos archivos PHP. Accederemos al archivo nombrado phpbash.php.

Al acceder al archivo, verificamos que se trata de la herramienta de phpbash y podemos ejecutar comandos en el equipo víctima.

Por lo tanto, nos otorgaremos una Reverse Shell para tener una consola más interactiva. Para ello, nos pondremos en escucha para recibir la conexión.

Desde la herramienta de phpbash enviaremos la Reverse Shell hacía nuestro equipo atacante.

Verificaremos que hemos logrado obtener acceso al equipo y podemos visualizar la flag de user.txt.

Privilege Escalation

Lateral Movement to Scriptmanager via sudo NOPASSWD

Revisando los permisos que dispone el usuario www-data, nos encontramos que puede ejecutar como sudo cualquier comando como usuario scriptmanager.

Abuse of Python Script in Scheduled Task

Revisando los directorios de la raíz / nos encontamos que a través de este usuario actual somos los propietarios de un directorio llamado scripts.

Accediendo al directorio, nos encontramos con un archivo llamado test.py que abre el archivo llamado test.txt y escribe en él el texto testing 123!.

También comprobamos que el propietario del archivo test.py es el usuario que disponemos actualmente, y el archivo que genera el script es el usuarioroot.

Por lo cual, podemos deducir que debe existir una tarea programada (cron) que ejecute el usuario root sobre el script mencionado. Por lo tanto, teniendo permisos de editar este archivo, podríamos modificarlo para que realizara las acciones que deseemos.

Revisaremos primeramente que el binario de /bin/bash no se encuentre con permisos de SUID.

Editaremos el archivo mencionado y le indicaremos que ejecute las siguientes instrucciones. Lo que realizará es dar permisos de SUIDal binario.

Revisaremos que se han asignado correctamente los permisos indicados.

Abusaremos de estos permisos y nos convertiremos en el propietario del binario y comprobamos que somos actualmente el usuario root. Visualizamos la flag de root.txt.

Última actualización

¿Te fue útil?