windowsHospital



Escaneo inicial:


Grepeamos por http para ver que serviciso de web tenemos corriendo:

Viendo una web:

Investigando de que trata esta aplicacion encontramos lo siguiente:

Roundcube

Roundcube es un cliente de correo para ver los mensajes de correo a través de una página web, pudiendo acceder desde cualquier navegador con acceso a internet. Desde él es posible realizar todas las operaciones necesarias para gestionar los correos e incluso usarlo como agenda de contactos y calendario.


  • Por el puerto 8080 que es otra web entramos a ver que contiene:

  • Creamos una cuenta:

Al ingresar nos pide que subamos un archivo pero no sabemos que extensiones son validas para ello usamos Burp Suite:

Burp Suite - File Upload - Extensiones

Cuando intentamos subir cualquier archivo a una aplicación web usando Burp Suite, podemos notar que algunos archivos no son aceptados debido a las restricciones de la aplicación. A continuación, exploraremos cómo manejar los archivos de carga en Burp Suite, enfocándonos en las extensiones de archivo y cómo podemos determinar cuáles son válidas o no.

Paso 1: Subida de Archivos y Redirección al Error

Al intentar subir un archivo con la extensión .php, la aplicación no lo acepta y redirige al siguiente enlace de error:

  • Al tener una externsion .php no lo acepta y nos redirige a LOCATION: failed.php

  • para ver que estension son validas lo mandairesmoa al intrider agreando las extensiones y despues

grep extract le damos al add para q nos interesa una columna donde no srespoerende el failed.php el cmapo location q nos vale si ese campo es susces o failes por ahi filtraremsos


paso 2: Análisis de Respuestas con grep y extract

Una vez que tenemos las respuestas de los intentos de carga, utilizamos grep para filtrar las respuestas y extraer la información relevante. Nos interesa específicamente el campo Location en las cabeceras HTTP, que nos indicará si la carga fue exitosa o fallida:

  • Si la respuesta es "failed.php", significa que la carga del archivo ha fallado.

  • Si la respuesta no es "failed.php", significa que la carga fue exitosa.

El payload
GREP-EXTRACT
  • Como resultado:


  • Primero, al ejecutar el comando con feroxbuster, estás buscando rutas o directorios potenciales donde podrías intentar subir archivos. Esto es útil para identificar directorios o scripts que podrían permitirte cargar archivos.

  • Probaremos si podemos subirle un archivo de prueba con phps:

Pero no se puede con esa extension por mas no salga sucesfull!

Subida de archivos .phar:

  • Crea un archivo PHP (por ejemplo, neuvo.phar) que contenga el código deseado:

REFLEJA EL CODIGO

RCE FOR PHP

  • Configuramos el codigo para un RCE:

Uso de shell_exec():

Uso de system():

Configuración actual de PHP en el servidor:


Al probar estas vulnerabilidades de RCE, ejecutaremos el script phpinfo() para obtener información del sistema, ya que los comandos system() y shell_exec() no están funcionando. Es probable que estas funciones estén deshabilitadas en la configuración del servidor para evitar la ejecución remota de comandos.

  • Lo ejecutamos:

En resumen, el comando phpinfo() proporciona una valiosa información para un pentester al realizar un reconocimiento del entorno de PHP, lo que les permite identificar vulnerabilidades y configuraciones inseguras que podrían ser explotadas.

RCE - EXPLOIT

Resultado:

Podemos ejecutar comandos con la funcionalidad de popen:

Y funcionó señores:


Bash Shell


Tenemos ejecución remota de comandos como www-data:


Técnica de eliminación

Una vez adentro en uploads eliminamos el archivo definitivamente para que ni con técnicas forenses se pueda recuperar:


  • Miraremos los archivos de configuración:

Credenciales de BD

MySQL - Config

Conexión a la base de datos utilizando las credenciales obtenidas:

  • Se encontró un hash de admin:

  • Crackeando el hash de admin:

Pero no se obtuvo nada al respecto.


Versión del Kernel 5.19.0-35-generic


  • Exploit Encontrado para las Vulnerabilidades CVE-2023-2640 y CVE-2023-32629

  • Subimos nuestros privilegios:


  • En el /etc/shadow se encontraron hashes:

  • Intentamos crakearlos: el $6$ es un SHA-512 modo 1800:

  • Con esa contraseña podemos ingresar por ssh pero es lo mismo que estuvismos en antes asi que buscamos en otro lado:

Como miramos en el escaneo se observo otro puerto http por el puerto 443

  • Podemos ingresar con el usuario de drwilliams y contraseña qwe123!@#


Validaremos si el usuario es valido con netexec :

VALIDO

Enumeramos usuarios por rpcclient :

DOS USUARIOS

AS-REP Roasting - Con credenciales


  • impacket-GetUserSPNs: Es una herramienta de la suite Impacket, que permite interactuar con Active Directory (AD) y obtener información, como los SPNs.

  • hospital.htb: El nombre del dominio o de la red que se está atacando.

  • drwilliams:qwe123!@#: Especifica el usuario drwilliams y la contraseña qwe123!@# para autenticarse en el dominio.


Sigamos según la pagina web:

  • Debemos crear un archivo en formato .eps de manera que, al ser abierto por otra persona, ejecute un código. En este caso, crearemos una reverse shell incrustando un código malicioso que nos permitirá interactuar con la máquina de forma remota

  • Ejecutaremos el siguiente script:

Nos pide un payload lo cual le bridamos el nuestro:

Le enviamos por mensaje:

  • Lo cual recibimos la conexión:


SUBIR PRIVILEGIOS


Usuarios tiene permisos de lectura, ejecución y escritura sobre la carpeta htdocs. Este es un riesgo si alguien obtiene acceso a la cuenta de usuario estándar en el sistema, ya que podrían modificar archivos web importantes.


Creamos nuestro archivo para ejecutar comandos:

Y al pasarlo a la maquina victima se vio lo siguiente:

En este punto ya podemos ejecutar comandos:

netcat - nc.exe

WHOAMI


Last updated