Key Findings
Durante el análisis de seguridad de la máquina Blocky se identificaron las siguientes
vulnerabilidades críticas:
- Archivos Java archive sensibles accesibles vía directorio web
- Credenciales de base de datos hardcodeadas en la aplicación BlockyCore.jar
- Servicio SSH vulnerable a enumeración de nombres de usuario (OpenSSH 7.2)
- Privilegios sudo sin restricciones para cuenta de usuario comprometida
Key Learning Objectives
Los objetivos de aprendizaje clave en esta máquina incluyen:
- ✅ Port Scanning & Service Enumeration
- ✅ WordPress Content Management System Analysis
- ✅ Web Directory Fuzzing & Discovery
- ✅ Java Archive Reverse Engineering
- ✅ SSH Username Enumeration Techniques
- ✅ Credential Extraction from Java Applications
- ✅ Privilege Escalation via Sudo Misconfiguration
Reconnaissance & Enumeration
El reconocimiento inicial se realizó utilizando nmap para identificar puertos abiertos y servicios en
ejecución.
❯ sudo nmap --top-ports=100 --open -n -Pn -vvv -oG ports 10.10.10.37
❯ sudo nmap -p 21,22,80 -sCV -oN services 10.10.10.37
Resultados:
- Puerto 21/tcp: Servicio FTP
- Puerto 22/tcp: Servicio SSH (OpenSSH 7.2)
- Puerto 80/tcp: Servidor Apache HTTP
Web Application Assessment
El examen del navegador reveló un sistema de gestión de contenido WordPress con entradas
de blog activas.
El análisis de las publicaciones del blog identificó un nombre de usuario potencial
notch asociado con el contenido publicado.
SSH Username Enumeration
Utilizando el módulo de enumeración de nombres de usuario SSH de Metasploit, se confirmó
la validez del usuario notch. Guardaremos este
usuario para más adelante. Esta técnica es efectiva contra OpenSSH versión 7.2 pero no tendría éxito contra
implementaciones SSH modernas.
Directory Discovery & Fuzzing
Se realizó la enumeración de directorios web para identificar rutas accesibles y
contenido oculto.
❯ gobuster dir -u http://blocky.htb -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 50 --no-error
Se descubrió el directorio /plugins y se encontró que contenía archivos Java
archive descargables.
Se identificaron y descargaron dos archivos JAR para análisis adicional.
Java Application Reverse Engineering
Se realizó ingeniería inversa del archivo BlockyCore.jar utilizando el decompilador
JD-GUI.
❯ jd-gui BlockyCore.jar &
El análisis reveló credenciales de base de datos hardcodeadas dentro del código fuente
de la aplicación.
Credential Validation & User Access
Las credenciales extraídas fueron probadas contra el servicio SSH utilizando el nombre
de usuario previamente identificado notch. La
autenticación fue exitosa, estableciendo acceso inicial al sistema.
Privilege Escalation Assessment
La investigación de privilegios sudo reveló acceso administrativo sin restricciones para
la cuenta de usuario comprometida.
Administrative Access Achievement
La ejecución de una shell bash con privilegios sudo resultó en el compromiso completo
del sistema y acceso root.
Recommendations
Immediate Actions
1. Secure Web Directory Access
- Eliminar o restringir el acceso al directorio
/plugins
- Implementar controles de acceso apropiados para archivos de aplicación sensibles
- Prevenir la descarga directa de archivos Java archive
2. Application Security
- Eliminar credenciales hardcodeadas del código fuente de la aplicación
- Implementar prácticas seguras de gestión de credenciales
- Realizar revisión de código para vulnerabilidades de seguridad adicionales
3. SSH Service Hardening
- Actualizar OpenSSH a la última versión para prevenir enumeración de usuarios
- Implementar autenticación basada en claves SSH
- Deshabilitar autenticación por contraseña donde sea posible
4. Privilege Management
- Revisar y restringir privilegios sudo basados en el principio de mínimo privilegio
- Eliminar acceso sudo sin restricciones para cuentas de usuario estándar
- Implementar controles de acceso basados en roles
Long-term Security Improvements
1. Access Controls
- Implementar permisos de sistema de archivos comprehensivos
- Auditoría regular de privilegios de usuario y derechos de acceso
- Desplegar segmentación de red y restricciones de acceso
2. Application Security
- Establecer prácticas de ciclo de vida de desarrollo seguro
- Implementar pruebas de seguridad automatizadas en el pipeline de desarrollo
- Evaluaciones de seguridad regulares de aplicaciones personalizadas
3. Monitoring & Detection
- Desplegar soluciones de monitoreo y análisis de logs
- Implementar sistemas de detección de intrusos
- Establecer alertas para intentos de escalada de privilegios
4. Credential Management
- Implementar sistema centralizado de gestión de credenciales
- Aplicar políticas de contraseñas fuertes en todos los servicios
- Rotación regular de contraseñas y requisitos de unicidad