githubEditar

🟨HTB - Hospital

https://app.hackthebox.com/machines/Hospital

InformaciΓ³n General

  • Nombre de la MΓ‘quina: Hospital

  • IP de la MΓ‘quina: 10.10.11.241

  • Sistema Operativo: Windows

  • Dificultad: Medium

  • Fecha de PublicaciΓ³n: 18-11-2023


Enumeration

Ping para obtener ruta de retorno

Realizamos un ping a la mΓ‘quina objetivo para verificar la conectividad y obtener informaciΓ³n sobre la ruta utilizando la opciΓ³n -R para incluir la ruta de retorno:

El valor de TTL (Time To Live) igual a 127 puede ser indicativo de que el sistema operativo de la mΓ‘quina objetivo es Windows. El TTL es un valor en el campo de los paquetes IP que indica la duraciΓ³n que un paquete puede estar en una red antes de ser descartado. Windows establece por defecto el valor de TTL de sus paquetes IP en 128, que al pasar por un salto en la red se decrementa a 127.

Escaneo de puertos con Nmap

Luego, realizamos un escaneo de puertos utilizando Nmap para identificar los puertos abiertos en la mΓ‘quina objetivo. Utilizamos las opciones -p- para escanear todos los puertos, --open para mostrar solo los puertos abiertos, -sS para un escaneo de tipo TCP SYN, --min-rate 5000 para establecer la velocidad mΓ­nima de paquetes y -vvv para un nivel de verbosidad alto. AdemΓ‘s, utilizamos -n para desactivar la resoluciΓ³n de DNS, -Pn para no realizar el escaneo de ping, y -oG allPorts para guardar la salida en un archivo con formato Greppable para luego utilizar nuestra funciΓ³n extractPorts:

Escaneo detallado con Nmap

Posteriormente, realizamos un escaneo mΓ‘s detallado de los puertos identificados utilizando la opciΓ³n -sCV para detecciΓ³n de versiones y scripts de enumeraciΓ³n de servicios. EspecΓ­ficamente, indicamos los puertos a escanear con -p __PORTS__ (reemplazando __PORTS__ con los puertos identificados en el paso anterior) y guardamos la salida en un archivo de texto con el nombre targeted:

Hacemos un anΓ‘lisis de nuestro targeted. En mi caso utilizo ChatGPT para que no se me pase nada, subo un resumen de lo que me pareciΓ³ interesante:

Modificando /etc/hosts

Para aΓ±adir la entrada "10.10.11.241 hospital.htb" al archivo /etc/hosts, puedes usar el siguiente comando en la terminal:

Este comando aΓ±ade la direcciΓ³n IP 10.10.11.241 asociada al nombre de host dc.hospital.htb al archivo /etc/hosts de tu sistema.

ExploraciΓ³n de puerto 8080

En el proceso de exploraciΓ³n y anΓ‘lisis de seguridad de nuestro objetivo, tras efectuar un escaneo detallado con nmap, se identificΓ³ una aplicaciΓ³n web en ejecuciΓ³n en el puerto 8080. El detalle crucial que llamΓ³ nuestra atenciΓ³n fue la menciΓ³n de "resource login.php" en los resultados del escaneo, lo que sugiere una posible superficie de ataque a travΓ©s de esta pΓ‘gina web.

ProcedΓ­ a crear mi propio usuario para profundizar en la funcionalidad de la pΓ‘gina. Una vez dentro, descubrΓ­ una funcionalidad particularmente interesante: un uploader de imΓ‘genes. Este descubrimiento abre una nueva vΓ­a de investigaciΓ³n, ya que los uploaders de archivos son notorios por ser puntos de entrada para varios vectores de ataque si no estΓ‘n adecuadamente asegurados.

ExplotaciΓ³n

El prΓ³ximo paso en mi investigaciΓ³n serΓ‘ intentar burlar los filtros implementados en el uploader de imΓ‘genes. El objetivo serΓ‘ intentar subir un archivo PHP, lo cual, si tiene Γ©xito, podrΓ­a permitirme ejecutar cΓ³digo arbitrario en el servidor.

Primero creamos nuestra imagen para luego subirla con el uploader al sitio, usamos Repeater de Burpsuite para modificar el contenido de la imagen.

Despues de muchas pruebas me doy cuenta que la extension .phar permite ejecuciΓ³n de cΓ³digo php. Por lo que modifico el formato de uploader.jpg a uploader.phar. De esa forma podemos subir nuestro uploader.php, les dejo el cΓ³digo fuente de este uploader. (Una joyita antigua).

Por lo que intentarΓ© subir una shell para luego hacer un reverse shell πŸ‘Ώ. Asi que entre tantas escojo a yaps.php (https://github.com/tennc/webshell/tree/master/php/YAPSarrow-up-right).

Recuerda configurar la shell apuntando a tu maquina y a tu a puerto. Con YAPS me deja "estabilizar la shell"...

Al buscar sobre Linux webserver 5.19.0-35 (puedes revisar haciendo uname -a) Podemos encontrar que es vulnerable al siguiente CVE: https://github.com/g1vi/CVE-2023-2640-CVE-2023-32629arrow-up-right

Por alguna extraΓ±a razon, pero creo que es porque varios usuarios estabamos tratando de pwnear la mΓ‘quina, habian varios exploits en algunos directorios. Cuando intentΓ© ejecutar el CVE me daba error ya que intentaba crear la carpeta /var/tmp/bash y decΓ­a que estaba "busy". AsΓ­ que modifiquΓ© el exploit cambiando el nombre de la carpeta a otro y funcionΓ³ el exploit:

Hacemos un cat /etc/shadow/ Para encontrar el hash de drwilliams y luego crackeamos el hash con john.

En la etapa de enumeraciΓ³n encontramos un webmail en dc.hospital.htb, intentamos ingresar las credenciales de drwilliams en el webmail, ingresando con Γ©xito.

Correo de drbrown

Entonces empiezo a ver los correos y en el correo de drbrown comenan el uso de archivos *.eps y que son visualizados con GhostScript. De inmediato busco en Google sobre alguna vulnerabilidad y me encuentro con CVE-2023-36664-Ghostscript-command-injectionarrow-up-right. Vale la pena intentarlo asΓ­ que estudio el exploit. Lo primero que nos gustarΓ­a hacer es que cuando la victima abra el archivo *.eps se descargue en su mΓ‘quina nc.exe desde nuestro servidor, para luego enviarle otro *.eps con un reverse shell.

A la vez dejamos montado todo (nuestro servidor compartiendo el archivo nc.exe).

Y con Γ©xito podemos ver que la maquina a descargado nuestro nc.exe.

Decido generar otro payload pero ahora utilizando el archivo nc.exe que descargamos y conectandonos a nuestra mΓ‘quina. Nuevamente debo enviarle un correo a la victima con nuestro nc a la escucha en el puerto 6666.

Enviando correo a drbrown.

Pero al parecer la shell no tiene suficiene fuerza, asΓ­ que intentarΓ© de otra forma con metasploit. Primero genero mi expl.exe, luego genero otro curl.eps pero que descargue el archivo expl.exe. Para luego

Ya teniendo descargado el archivo expl.exe, creamos un expl.eps que ejecute el expl.exe. De esta forma logramos conectarnos.

Obtenemos nuestra primera flag, user.txt 😎

Escalada de Privilegios

En la carpeta /Documents/ encuentro un ghostbuster.bat el cual contiene:

Intentamos usar las credenciales para hacer una consulta en el rpcclient

Al parecer el Administrador con la cuenta Guest comparten permisos por lo que nos vamos a C:\xampps\htdocs y subimos nuestro up.php.

Con mi up.php subo nuevamente yaps.php y de esta forma obtengo mi segunda flag root.txt

PWNED!

Última actualización