Hackthebox — Writeup Swagshop No /MSF
En el acceso inicial, se ejecutó en dos pasos, primer paso , crear un usuario atreves de un exploit que explota un SQLi, en el segundo paso se utilizó un exploit, que condiciona a una autenticación (1er paso), para la escalada de privilegio, el método utilizado fue a traves de sudo
Recolección de información
Es necesario recopilar información, sobre los puertos abiertos
nmap --min-rate 4500 -n -v -p- -oA swagshop 10.10.10.140
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Ahora la versión de los servicios
nmap -sC -sV -p22,80 -oA swagshop.service 10.10.10.140
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 b6:55:2b:d2:4e:8f:a3:81:72:61:37:9a:12:f6:24:ec (RSA)
| 256 2e:30:00:7a:92:f0:89:30:59:c1:77:56:ad:51:c0:ba (ECDSA)
|_ 256 4c:50:d5:f2:70:c5:fd:c4:b2:f0:bc:42:20:32:64:34 (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Home page
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Particularmente creo, que solo hay un camino, HTTP, vamos por el, al ingresar, se nos presenta “Magento”
Ahora que sabemos, que esta magento, es necesario seguir “chusmeando”, los directorios ocultos, “for if the fly”, como diria mi amigo Tevez.
gobuster dir --url http://10.10.10.140 -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -t 100
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url: http://10.10.10.140
[+] Threads: 100
[+] Wordlist: /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.0.1
[+] Timeout: 10s
===============================================================
2020/10/03 09:29:24 Starting gobuster
===============================================================
/includes (Status: 301)
/media (Status: 301)
/lib (Status: 301)
/app (Status: 301)
/js (Status: 301)
/shell (Status: 301)
/skin (Status: 301)
/var (Status: 301)
/errors (Status: 301)
/mage (Status: 200)
===============================================================
2020/10/03 09:32:38 Finished
Se identificó un exploit
En el código del exploit, es necesario cambiar la dirección del target, y si es necesario cambiar user/password puede hacerlo cambiando username=”forme” y password=”forme”
Este exploit explotó una vulnerabilidad de sqli, permitiendo agregar un usuario a magento.
Con ese usuario ya ingresamos al panel de administración
Acceso Inicial
Ahora que ya tenemos acceso (autenticado), es necesario determinar la versión para buscar si existe algún exploit
Y si, existe uno incluso la condición de estar autenticado para que funcione
al ejecutar el exploit, presento un par de problemas, que fueron solucionados
es necesario, revisar el exploit, ya que el creador, comenta que ciertas variables deben ser “seteadas” manualmente o en todo caso actualizadas
la primer variable que se cambió (actualizó) fue install_date
El exploit presentó varios errores, se realizaron cambios primero, en la variable install_date, en el exploit se puede apreciar, que dice que debe ser la misma exacto del local.xml
Luego un error en la variable tunnel, lo que se hizo fue cambiar parámetros de 7d (7 dias) a y1, no funciono, devolvía el objeto vacío, se cambió el parámetro a y2, ya el objeto no estaba vacío
ahora si ya se podía ejecutar código remoto, pero están autenticado
Ahora que el exploit funcionó ejecutamos una shell reversa
Como se puede observar, tenemos acceso al famoso user.txt
Escalada de Privilegio
Como siempre comienzo, por el famoso sudo -l:
Se puede observar que se puede ejecutar /usr/bin/vi /var/www/html/* como usuario root.
Con base en lo establecido en GTGOBins, se escaló privilegios
Ahora ya como root, podemos acceder al archivo root.txt
Conclusión
Es necesario parchar las aplicaciones vulnerables, sobre todo para evitar el acceso inicial, en el caso de la elevación de privilegios, se debe tener cuidado con los binarios que se habilitan para ser ejecutados con privilegios de root, por cualquier usuario.