Hackthebox — Writeup PopCorn No/MSF
Como siempre en la enumeración esta la clave, para identificar los directorios necesarios, el acceso inicial se debe a una vulnerabilidad que permite subir código php como si fuera una imagen, se creó una web shell en la cual se agrego los primeros bytes del header de una imagen, la escalada de privilegio fue sencilla, un exploit local a nivel de kernel ;)
Identificación de puertos y servicios
Primero es necesario identificar los puertos y servicios
nmap -sC -sV --open -p22,80 -oA popcorn.services 10.10.10.6
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.1p1 Debian 6ubuntu2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 3e:c8:1b:15:21:15:50:ec:6e:63:bc:c5:6b:80:7b:38 (DSA)
|_ 2048 aa:1f:79:21:b8:42:f4:8a:38:bd:b8:05:ef:1a:07:4d (RSA)
80/tcp open http Apache httpd 2.2.12 ((Ubuntu))
|_http-server-header: Apache/2.2.12 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelService detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue Oct 13 14:26:38 2020 -- 1 IP address (1 host up) scanned in 14.76 seconds
Enumeración
Ahora comenzamos enumerando directorios
gobuster dir --url http://10.10.10.6 -w /usr/share/wordlists/dirb/common.txt
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url: http://10.10.10.6
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirb/common.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.0.1
[+] Timeout: 10s
===============================================================
2020/10/31 15:02:26 Starting gobuster
===============================================================
/.hta (Status: 403)
/.htaccess (Status: 403)
/.htpasswd (Status: 403)
/cgi-bin/ (Status: 403)
/index (Status: 200)
/index.html (Status: 200)
/test (Status: 200)
/torrent (Status: 301)
===============================================================
2020/10/31 15:04:10 Finished
Aqui encontramos un agujero de conejo
El famoso y utilizado phpinfo()
En el directorio torrent, ya nos encontramos con este manager
Nos creamos una cuenta y accedemos al gestor
Se identificó que se podia “bypassear” la subida de archivos jpg, para esto primero fue necesario subir un torrent y al torrent se modificó la imagen del torrent y en este campo permitió subir un archivo php con los primeros bytes del header de un jpg. ;)
Saltando la restricción de solo archivo de imagenes
Acceso Inicial
Ahora que subimos el archivo, lo identificamos y ya tenemos la webshell
Con este usuario, ya tenemos acceso al user.txt
Escalada de Privilegios
Como siempre intento con sudo, luego con SUID, servicios, archivos modificables y al final exploit local ,por este ultimo punto funcionó con el siguiente exploit
Ahora revisando el kernel ;)
Fue necesario descargarlo desde nuestro equipo y compilarlo
Iniciamos sesión con el usuario creado y la contraseña que pasamos como parámetro cuando se ejecutó el binario compilado
y listo !
Conclusión
A nivel del kernel, es necesario actualizar la versión para evitar la ejecución de exploit local para escalar privilegios, respecto al acceso inicial, es necesario actualizar la versión del manager del torrent