Gabriel Tello

Máquina Academy

Fecha de publicación: | 1200 palabras | 6 mins

Esta es una guía paso a paso presentada en formato de reporte profesional sobre una prueba de penetración realizada en una máquina Debian 10 llamada Academy, que en este caso cambió el nombre de la máquina a Monkey.

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 nmap

Figura 1: Resultado nmap

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.

inicio sesion ftp

Figura 2: Inicio de sesión FTP como usuario anónimo

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

nota desarrollador

Figura 3: Nota del desarrollador

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.

resultado hashcat 1 resultado hashcat 2

Figura 4: Resultado 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.

apache web server

Figura 5: Servicio de Apache Web Server

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.

wfuzz

Figura 6: Fuerza bruta en directorios web con wfuzz

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

portal de academy

Figura 7: Portal de inicio de sesión de Academy

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.

código php

Figura 8: Código para reverse shell en PHP

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.

conexión reverse shell

Figura 9: Conexión de tipo reverse shell establecida

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.

contraseña mysql

Figura 10: Contraseña en texto plano de base de datos MySQL

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.

ssh session

Figura 11: Conexión por SSH al usuario hackermentor

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.

monitoreo de procesos

Figura 12: Monitoreo de procesos con pspy mostrando la ejecución del script

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.

backup.sh modificado

Figura 13: backup.sh modificado

conexión a root

Figura 14: Conexión a usuario root

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.

#Linux   #FTP   #Hash Cracking   #Reverse-Shell   #Persistence   #Pentesting   #Red Team   #Writeup  

Responder a este post por correo ↪