Resumen ejecutivo
Se llevó a cabo un análisis de seguridad en la máquina Monkey (Debian 10). Se identificaron varias vulnerabilidades, comenzando con un servicio FTP mal configurado que permitía el inicio de sesión anónimo, lo que facilitó el acceso a información crítica, como credenciales y un hash de contraseña. A través de fuerza bruta en los directorios web y un ataque de subida de archivos no restringido, se consiguió hacer una conexión no autorizada al servidor. Posteriormente, se escaló el acceso a usuario administrador, modificando un script en bash que se ejecutaba con privilegios elevados.
Esto permitió obtener control total del servidor y acceder a información confidencial. Se detectaron múltiples problemas de configuración y control de acceso que deben ser corregidos para mejorar la seguridad de la máquina y sus servicios.
Reconocimiento
Se realizó un escaneo de red utilizando la herramienta nmap para identificar puertos y servicios abiertos en la máquina.

Resultado del reconocimiento
Sistema Operativo | Dirección IP | Puertos Abiertos |
---|---|---|
Debian 10 | 192.168.138.128 | 21 (FTP), 22 (SSH), 80 (HTTP) |
Explotación
El escaneo de nmap mostró que el servicio FTP en el puerto 21 permitía un inicio de sesión anónimo, por lo que se realizó la prueba.

La conexión a FTP se encontró abierta para el usuario anonymous, lo que permitió acceder a una nota dejada en el servidor.

Se pudo observar que el desarrollador dejó una nota en el servidor FTP, en donde se mencionó que tuvo que recurrir a usar una sentencia SQL para la creación de un nuevo usuario para el sitio web de la academia. El valor en el campo password
es un hash MD5, se procedió a crackear el hash en hashcat.


El crackeo del hash fue exitoso, y se determinó que la contraseña del usuario HackerMentor
es junior01
. Para proceder, se empezó a analizar el puerto 80 abierto que sugería que había una página web sirviendo contenido desde la máquina.

Se encontró la página web por defecto de Apache, lo que nos confirma que esta máquina está alojando un servicio web. Se procedió a hacer fuerza bruta en los directorios web.

Se descubrieron los directorios web, uno de /phpmyadmin
y un directorio /monkey
.

Se utilizaron las credenciales descubiertas anteriormente, y se consiguió iniciar sesión dentro del portal de Monkey. Se procedió a revisar detenidamente esta página web y se encontró un apartado de inscripción de estudiantes, el cual permitía hacer subida de imágenes. Se probó un ataque llamado subida de archivos no restringida para de esta manera intentar ejecutar código PHP en el servidor web y conseguir un reverse shell.

Se subió este archivo .php al servidor y como previamente se hizo una prueba subiendo un archivo de imagen, se descubrió que la ruta donde quedan alojadas las imágenes es http://192.168.138.128/monkey/studentphoto/imagen.jpg
. Una vez subida la imagen se ejecutó el código y se abrió una conexión con netcat en el puerto 1234.

El exploit funcionó correctamente y se consiguió acceso al servidor a través del usuario www-data, para hacer escalación de privilegios, se utilizó el script LINpeas.sh. Para realizar la transferencia del archivo hacia el servidor, se creó un servidor HTTP básico con Python con el comando python3 -m http.server 80 para descargar el archivo desde el servidor. Se ejecutó el script para descubrir vías para escalación de permisos y se hicieron los siguientes hallazgos.

Una vez encontrada la contraseña se intentó usar en conjunto con el usuario ya conocido dentro del portal web de la academia para conectarse a ese usuario mediante SSH.

Se encontró una bandera y un script en bash llamado backup.sh que hace un respaldo a los archivos del sitio web de la academia. Se usó el comando ls -l
y se nota que esta script se ejecuta a través del usuario administrador, revisando con crontab
y systemd
no se pudo determinar si este script se encuentra automatizado, para confirmación se utilizó el programa pspy, que sirve para monitorear procesos en Linux sin permisos root.

Se pudo observar que el script está siendo ejecutado como usuario root. Debido a que el usuario hackermentor
tiene permisos para editar este archivo, se pudo modificar este script para hacer que se ejecute un reverse shell, y ya que este script se ejecuta como usuario root, se obtuvo conexión a la máquina como usuario administrador.


Herramientas utilizadas
Herramienta | Descripción |
---|---|
Nmap | Utilizada para el escaneo de red y detección de puertos y servicios abiertos en la máquina objetivo. |
hashcat | Utilizada para crackear el hash MD5 obtenido del servidor FTP. |
wfuzz | Usada para realizar fuerza bruta en los directorios web, descubriendo rutas sensibles. |
pspy | Programa utilizado para monitorear procesos en Linux sin necesidad de permisos root. |
LinPEAS | Script utilizado para identificar potenciales vías de escalación de privilegios en el servidor. |
Conclusión
Durante este análisis de seguridad, se descubrieron varias vulnerabilidades críticas en la máquina Monkey. El acceso inicial se logró a través de un servicio FTP mal configurado que permitía inicios de sesión anónimos, lo que facilitó el acceso a archivos sensibles. A partir de ahí, se descubrieron credenciales de usuario que, junto con otros ataques, posibilitaron el acceso a la web y la posterior ejecución de código remoto en el servidor. La falta de restricciones en la subida de archivos y la presencia de un script ejecutado con permisos elevados sin las debidas protecciones permitió escalación de privilegios hasta obtener acceso como root. La combinación de una mala gestión de permisos, configuraciones inseguras y la falta de controles robustos de autenticación permitió que se comprometa completamente el sistema.
Recomendaciones
Para mitigar las vulnerabilidades identificadas, se debe deshabilitar el inicio de sesión anónimo en el servicio FTP y restringir el acceso solo a usuarios autenticados. Asegurar que las contraseñas nunca sean almacenadas en texto plano y que los hashes utilicen algoritmos más robustos.
En cuanto a la escalación de privilegios, es necesario revisar y restringir los permisos de usuarios sobre scripts críticos como backup.sh
, evitando que usuarios no privilegiados puedan modificarlos. También es recomendable realizar un monitoreo continuo del sistema con herramientas como pspy para detectar actividades anómalas en los procesos.