En este writeup vamos a ver cómo resolver la máquina Tenet de la plataforma de Hack the Box.
Conexión
Conectar nuestra máquina de ataque a la VPN:
$ openvpn gorkamu-htb.ovpn
Enumeración
Si realizamos un escaneo básico con nmap vemos lo siguiente:
$ sudo nmap -sS -sC -sV -Pn -n --min-rate 5000 -p22,80 -v 10.10.10.223
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 cc:ca:43:d4:4c:e7:4e:bf:26:f4:27:ea:b8:75:a8:f8 (RSA)
| 256 85:f3:ac:ba:1a:6a:03:59:e2:7e:86:47:e7:3e:3c:00 (ECDSA)
|_ 256 e7:e9:9a:dd:c3:4a:2f:7a:e1:e0:5d:a2:b0:ca:44:a8 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Si hacemos un whatweb por el puerto 80 veremos lo siguiente:
$ whatweb http://10.10.10.223
http://10.10.10.223 [200 OK] Apache[2.4.29], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.29 (Ubuntu)], IP[10.10.10.223], Title[Apache2 Ubuntu Default Page: It works]
Lanzando un script de enumeración de nmap sobre el puerto 80 encontramos lo siguiente:
$ nmap --script http-enum -p80 10.10.10.223 -v -oN nmap_http_enum.txt
PORT STATE SERVICE
80/tcp open http
| http-enum:
|_ /wordpress/wp-login.php: Wordpress login page.
El entrar con el navegador a http://10.10.10.223 veremos una página sin estilos y cuyos enlaces apuntan a “tenet.htb” así que modificamos nuestro fichero /etc/hosts para hacer que la IP apunte a ese dominio y al entrar al dominio veremos que se nos carga correctamente.
Pasar un dirbuster sobre el dominio nos devuelve una estructura de carpetas típicas de Wordpress.
Si vamos al slug /wp-links-opml.php veremos que se trata de la versión 5.6 de Wordpress.
Vamos a pasar wpscan en busca de plugins y temas vulnerables, backups de bases de datos, ficheros de configuración y usuarios.
$ wpscan --url http://tenet.htb -v -o wpscan.txt -t 200 -e vp, vt, cb, dbe, u
No se encuentra mucho salvo el wp-cron.php y que tiene accesible el directorio uploads, pero está vacío y los usuarios del sistema.
Vamos a crearnos un diccionario de la web por si lo necesitamos para bruteforce
$ cewl -v -w dictionary.txt http://tenet.htb
Con hidra lo podemos ejecutar así:
$ hydra -l neil -P /usr/share/wordlists/rockyou.txt 10.10.10.223 -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'
Volvamos al comentario en el que se menciona el fichero sator php
Si apuntamos el subdominio sator.tenet.htb a la misma IP y entramos en /sator.php veremos lo siguiente:
Recordamos que habla de una backup por lo que:
$ wget http://sator.tenet.htb/sator.php.bak
Y se nos descargará un fichero php en el que vemos lo siguiente:
Si pasamos un querystring con un comando bajo el parámetro arepo podemos conseguir que se nos ejecute con la función “unserialize”.
Para explotar esta vulnerabilidad: https://fmash16.github.io/content/writeups/hackthebox/htb-Tenet.html