Máquina THM Vulnversity
Vulnversity Walkthrough
Sudo openvpn (archivo).ovpn
Reconocimiento
Utilizaremos la herramienta nmap, al ser un laboratorio controlado, y sin miedo a ruido, podemos elevar la velocidad con un --min-rate 5000 o un -T5
nmap -p- -sS -n -Pn -O -vvv --min-rate 5000 (IP_objetivo)
Obtendremos la siguiente salida:
Ahora realizaremos un escaneo en mayor profundidad:
nmap -p21,22,139,445,3128,3333 -sCV (IP_objetivo)
de esta manera tendremos información un poco mas detallada, gracias a los Scrips de reconocimiento y las versiones de los servicios de los puertos.
Observamos que en el puerto 3333 se esta corriendo el siguiente servidor web con Apache.
Damos un pequeño vistazo a la web especificando la IP y el puerto:
Y usamos Wappalyzer, para ver que librerías usa y obtener más información.
Ahora realizaremos con GoBuster mediante diccionario una enumeración de directorios y archivos que pudieran haber en la página.
gobuster dir -u http://10.10.40.240:3333/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Podemos ver un directorio interesante llamado /internal/ donde podemos observar que se pueden subir archivos, así que usaremos BurpSuite para saber con que extensión deja subir archivos y sabiéndolo intentaremos ejecutar una reverse-shell en la maquina victima.
Creamos un .txt con las extensiones posibles, lo subinos y antes de dar a enviar, activamos la escucha con Burp.
Una vez capturado el trafico, lo pasamos al Intruder con el Ctrl+I, limpiamos las selecciones pulsando Clear y donde vemos phpext.txt, seleccionamos .txt y le damos a Add$.
Acudimos a la sección de Payloads, y en payloads Options [Simple List] cargamos el txt con las extensiones, y hacemos clic en Start attack, así veremos que tipo de extensión esta permitida por la aplicación.
Acudimos a la sección de Payloads, y en payloads Options [Simple List] cargamos el txt con las extensiones, y hacemos clic en Start attack, así veremos que tipo de extensión esta permitida por la aplicación.
Vemos que la extensión permitida es phtml:
Ahora nos descargaremos el siguiente Script del siguiente repositorio para obtener una reverse-shell:
https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
y cambiamos los parámetros de IP y port, y después de guardar cambiamos la extensión a .phtml
En una segunda terminal nos ponemos a la escucha con nc:
nc -nvlp 1234
subimos el archivo a la web, mientras esperamos la reverse-shell en la segunda terminal.
Una vez subido, vamos a (http://10.10.25.202:3333/internal/uploads/ ), ejecutamos el Scrip, y ya estaremos dentro!!!
de momento estamos como www-data, nos situaremos en el directorio /home para ver que usuarios hay.
Observamos que hay un usuario llamado bill, vamos a su directorio y podremos ver la primera flag.
Ahora usaremos el siguiente comando para buscar si tenemos algún permiso SUID:
find \-perm -4000 2>/dev/null
Vemos que tenemos el pkexec, pero como esa vulnerabilidad ya la vimos en el blog, usaremos el binario /bin/systemctl.
Y después de navegar por la web damos con este enlace que te explica como explotar systemctl.
https://gist.github.com/A1vinSmith/78786df7899a840ec43c5ddecb6a4740
Navegamos al directorio /tmp para tener permisos de escritura, y ponemos el comando en la consola.
Podemos Tratar antes la TTY:
script /dev/null -c bash
Ctrl +Z
stty raw -echo; fg
reset
xterm
export TERM=xterm
export SHELL=bash
y ya podremos pegar el script en nano y modificarlo donde pone KaliIP.
Ahora lo que nos queda es activar el servicio mientras escuchamos para obtener la shell inversa con permisos de root.
systemctl enable root.service
systemctl start root.service
Navegamos al directorio root, y con un cat vemos el contenido para ver la flag de root.

Comentarios
Publicar un comentario