Hackthebox — Writeup PopCorn No/MSF

Israel Aráoz Severiche
4 min readOct 31, 2020

--

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_kernel
Service 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

--

--

Israel Aráoz Severiche
Israel Aráoz Severiche

Written by Israel Aráoz Severiche

{💀Cybersecurity Engineer​​🐞 } / { 🥋​ Purple Belt Brazilian Jiu Jitsu } / {🌐​https://twitter.com/iara0z}

No responses yet