WriteUP | Jangow01 | Vulnhub

Reconocimiento

Vamos a comenzar el escaneo de red para poder identificar puertos abiertos y servicios en escucha de la maquina victima.

nmap -sS -p- --open -n --min-rate 10000 -Pn 192.168.0.8 -oN jangow1

Los puertos encontrados fueron el 21 FTP y 80 HTTP.

nmap -sCV -n -Pn 192.168.0.8 -oN jangow1Ports

Enumeración

Ahora si, ya tenemos 2 puertos expuestos a la escucha, por lo cual los vamos a enumerar manualmente, vamos primeramente por el puerto 80 que es el que me llamó la atención por un directorio que expuso el escaneo, site/

No hay mucho que mirar en este analisis, no hay más que versiones del Sistema Operativo y Apache.

Nota: importante revisar bien el código fuente, ya que los desarrolladores llegan a cometer errores y exponen rutas o parámetros que van hacía su backend y comprometen la seguridad del mismo.

¡ Y si !, es posible ejecutar comandos de linux, así mismo nos encontramos ante un RCE (Remote Command Execution)

Explotación

Para poder explotar la vulnerabilidad tuve que realizar varias pruebas ya que tambien pudo derivarse un RFI o LFI, pero no tuve suerte y pude ejecutar comandos sin problema.

Se me ocurrió enumerar el archivo /etc/passwd para ver que usuarios utilizan una /bin/bash y asi poder determinar cuales son aquellos que predominan en el sistema:

Entonces encontré 2 usuarios, principalmente root y por consiguiente el usuario jangow01

Entonces seguí enumerando y me encontré con un directorio dentro de site/ llamado wordpress/ asi que decidí indagar más en ese directorio, en el cual encontré 1 archivo sensible.

Dentro del directorio existe un archivo de configuración el cual contiene normalmente conexión a la Base de Datos y se encuentra en texto plano.

Ahora que tenemos estas credenciales, podemos utilizarlas directamente en la maquina.

Listo, aquí la primera flag, la flag del usuario:

Escalación de privilegios

Vamos a enumerar los posibles vectores de escalación de privilegios

find / -perm 4000 2>/dev/null
sudo -l
cat /etc/os-release
uname -r

Al parecer tenemos un exploit a nivel de kernel, el cual nos ayudará a escalar privilegios

Necesitamos copiar el exploit a nuestra maquina victima y asi poder ejecutarlo. vamos primero a copiar todo el código que se muestra en la pagina de exploit database y lo pegamos en un archivo, de igual manera lo guardamos con la extensión .c , en mi caso lo guarde como jangowprivesc.c , ahora para pasarlo de mi maquina atacante a la victima lo haré por medio del servicio ftp.

  1. Ingresar usuarios y contraseña
  2. verificar en que ruta estamos actualmente (/var/www) para saber si es un directorio con permiso de escritura, pero no es asi.
  3. cambiar al directorio /tmp es uno de los que por defecto tiene permisos de escritura y es el que nos va a permitir poder pasar el exploit sin problema.
  4. utilizarmos el comando mput para poder subir el archivo desde nuestra maquina atacante a a victima.
  5. Nos preguntará que si permitimos subir el archivo, tecleamos la opción a de all para que nos permita la subida de archivos sin restricciones.

Listo, ahi ya tendriamos el exploit en el directorio /tmp listo para ejecutarlo desde la maquina.

En la maquina victima, vamos a compilar primero el exploit para después ejecutarlo

  1. compilar el exploit, para eso utilizaremos gcc

2. ejecutar el exploit

Listo, asi es como comprometí el root de esta maquina.

Conclusión

En este write-up, analizamos la explotación de la máquina Jangow01 de VulnHub, destacando cada fase del ataque exitoso. Comenzamos con un proceso de enumeración exhaustivo, que nos permitió identificar puntos potenciales de acceso. Posteriormente, encontramos una vulnerabilidad de ejecución remota de comandos (RCE), lo que nos otorgó una sesión inicial en la máquina.

A partir de esta posición, descubrimos archivos sensibles que contenían credenciales, facilitando una escalada dentro del sistema. Finalmente, logramos la escalación de privilegios explotando una vulnerabilidad conocida en el kernel, lo que nos otorgó acceso como usuario root.

Es aqui la importancia de la buenas practicas de seguridad y el aseguramiento correcto de los endpoints, espero que puedas aprender algo de este mismo y lo lleves a la practica.