🟢ToolBox
Write-up de la máquina ToolBox de HackTheBox #writeup #walkthrough
Last updated
Write-up de la máquina ToolBox de HackTheBox #writeup #walkthrough
Last updated
Toolbox es una máquina de dificultad fácil que podemos encontrar en la plataforma de HackTheBox. Es una instancia de Windows que ejecuta un Docker Toolbox. Antes de que Windows pudiera admitir contenedores, esto usaba VirtualBox para ejecutar un sistema operativo Linux personalizado y liviano optimizado para ejecutar Docker. Obtendré una retención mediante inyección de SQL que se convierte en RCE con SQLMap. Luego, usaré las credenciales predeterminadas para pasar a la VM, donde encuentro una clave SSH que otorga acceso de administrador al sistema Host.
Comenzamos realizando un escaneo rápido de los puertos que tiene abiertos la máquina víctima.
Tenemos 14 puertos abiertos en el Host víctima. Vamos a realizar un escaneo más profundo para determinar versiones de los servicios disponibles.
Después de finalizar el escaneo con NMAP, vemos que tenemos los servicios FTP, SSH, RPC NetBIOS, HTTPS y SMB disponibles. También, que el inicio de sesión en el servicio FTP es anónimo.
Anteriormente, vimos que podemos iniciar sesión en el servidor FTP de manera anónima. Vamos a iniciar sesión y ver si hay información que nos pueda ser de utilidad.
Podemos ver un binario llamado "docker-toolbox.exe". Esto nos puede dar una idea de que el sistema está basado en Docker. De momento, no podemos hacer mucho más con la información encontrada.
Al realizar el escaneo de servicios, vimos el nombre de un dominio. Vamos a registrarlo en nuestro archivo /etc/hosts.
Ahora vamos a ver su contenido en el navegador web.
Tenemos un formulario de inicio de sesión. Vamos a comprobar si es vulnerable a inyecciones SQL. Para ello, realizamos la inyección de varios paylaods para comprobar si da error.
Después de realizar la inyección de varios payloads, el siguiente provoca un error y nos permite iniciar sesión como admin.
Después de examinar todos los posibles accesos y puntos que pudiesen ser vulnerables, no encotramos nada que nos pueda ser útil. El siguiente paso será enumerar la BBDD y probar si podemos realizar inyección de comandos aprovechando la vulnerabilidad SQLi.
Un formulario de inicio de sesión no muestra datos de la base de datos en la página, por lo que es un Blind SQL. Guardaré una solicitud POST capturando la petición del formulario con Burp.
Ejecutaré -r login.txt
para darle el archivo desde el que trabajar --force-ssl
(ya que es un sitio con certificado HTTPS) y --batch
para aceptar los valores predeterminados en las indicaciones. Con el comando --dbs
enumeraremos las bases de datos disponibles.
Ahora con el archivo login.txt creado, utilizamos SQLMap para enumerar la base de datos.
De las tres bases de datos disponibles, la que parece más interesante es "public". A continuación, vamos a enumerar las tablas de esta base de datos.
Finalmente, vamos a volcar el contenido de la tabla "users".
Obtenemos el hash de contraseña para el usuario admin, pero no podemos descifrarlo utilizando diversas herramientas. Tenemos que probar otra forma de acceso a la máquina objetivo. Vamos a utilizar los parámetros --os-cmd y --os-shell para intentar conectar con la máquina víctima aprovechando la vuln SQLi.
Y podemos conectarnos a la máquina víctima mediante shell.
Y buscamos la flag user.txt
Con el comando ifconfig podemos ver que no estamos en la máquina Host. La IP 172.17.0.2 indica que estamos en un Docker y que el Host es 172.17.0.1.
Recordemos que el Host principal es un SO Windows pero Docker no se puede instalar directamente sobre SO Windows. También, vamos a recordar el binario que encontramos en el servidor FTP "docker-toolbox.exe".
Detalles que debemos conocer sobre Docker-Toolbox. Docker Toolbox instala VirtualBox y crea una máquina virtual que ejecuta la distribución de Linux boot2docker. Boot2Docker es una distribución ligera de Linux creada específicamente para ejecutar contenedores Docker en distribuciones Windows y Mac OS.
Esta distribución tiene unas credenciales por defecto que son usuario docker y la contraseña tcuser.
Intentaremos saltar mediante SSH desde la terminal "postgres"
*Hay que inicar una terminal interactiva ('script /dev/null -c bash')
Ya somos usuarios Docker. Vamos a comprobar los privilegios de este usuario.
Este usuario puede utilizar sudo sin contraseña.
Enumeramos los directorios disponibles para el usuario Docker.
Entre todos los directorios encontrados, hay uno cuyo nombre no es común, "c". Vamos a ver su contenido.
Dentro del directorio "c" hay otro llamado "Users". Dentro de este directorio hay un subdirectorio llamado "Administrator", que contiene varias carpetas entre ellas, ".ssh".
Vamos a ver el contenido de .ssh.
Dentro de este directorio tenemos unas claves "id_rsa". Vamos a copiar la clave privada a nuestra máquina para intentar la conexión a la máquina víctima como usuario Administrator mediante SSH.
Y le damos privilegios para poder utilizarla en conexiones SSH.
Intentamos la conexión SSH con la clave "id_rsa" encontrada desde nuestra terminal.
Ya estamos conectados a la máquina víctima como usuario Administrator. Solo queda buscar la flag root.txt.
Y ya estaría acabada la máquina ToolBox.