⚪ Maquina: «Jangow1» (Vulnhub)
⚪ Dificultad: Fácil
⚪ OS: Linux
⚪ Skills: Enumeración HTTP, Explotación VSFTPD, Command Injection
Reconocimiento
Herramientas: nmap
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/
- comenzamos la enumeración con whatweb para identificar más a fondo que hay detrás

No hay mucho que mirar en este analisis, no hay más que versiones del Sistema Operativo y Apache.
- enumeremos manualmente el sitio, entramos a la dirección en el navegador 192.168.0.8


- Vamos a examinar la pagina web a nivel de código fuente, para eso damos CTRL + U para poder verla en modo view-source

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.
- Encontré un archivo php que expone un parámetro que realiza una búsqueda hacía el servidor.

¡ 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.

- Ingresar usuarios y contraseña
- verificar en que ruta estamos actualmente (/var/www) para saber si es un directorio con permiso de escritura, pero no es asi.
- 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.
- utilizarmos el comando mput para poder subir el archivo desde nuestra maquina atacante a a victima.
- 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
- compilar el exploit, para eso utilizaremos gcc
gcc jangowprivesc.c -o jangow -pthread
2. ejecutar el exploit
./jangow

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.


