Key Findings
Durante el análisis de seguridad de la máquina CodePartTwo se identificaron las
siguientes vulnerabilidades críticas:
- Plataforma de ejecución de JavaScript en puerto 8000
- Vulnerabilidad en js2py (CVE-2024-28397) - Sandbox Escape
- Divulgación de código fuente vía funcionalidad de descarga
- Base de datos SQLite conteniendo credenciales hasheadas en MD5
- Binario SUID
/usr/bin/npbackup-cli para
escalada de privilegios
- Manipulación de archivo de configuración para ejecución de comandos
Key Learning Objectives
Los objetivos de aprendizaje clave en esta máquina incluyen:
- ✅ Port Scanning & Service Enumeration
- ✅ Web Application Analysis & Source Code Review
- ✅ JavaScript Sandbox Escape - CVE-2024-28397
- ✅ SQLite Database Analysis
- ✅ Hash Cracking Techniques
- ✅ SSH Access & User Pivoting
- ✅ SUID Binary Exploitation
- ✅ Configuration File Manipulation for Privilege Escalation
Reconnaissance & Enumeration
El reconocimiento inicial se realizó utilizando Nmap para identificar puertos abiertos y
servicios en ejecución.
❯ sudo nmap -p- --open -n -Pn -vvv -oG ports 10.10.11.82
❯ sudo nmap -p 22,8000 -sCV -oN services 10.10.11.82
Resultados:
- Puerto 22/tcp: Servicio SSH
- Puerto 8000/tcp: Servidor HTTP
Web Application Assessment
La aplicación web ejecutándose en el puerto 8000 es una plataforma para ejecutar código
JavaScript en línea.
Después de registrarse e iniciar sesión en la plataforma, exploré su funcionalidad.
Source Code Analysis
El código fuente puede descargarse haciendo clic en Download App. La interfaz del dashboard muestra varias
funcionalidades disponibles.
Después de hacer clic en Download App, se descargó un archivo .zip y se extrajo
para análisis.
El archivo .db parece estar vacío en el paquete descargado.
Technology Stack Identification
Se identificaron las versiones de las tecnologías ejecutándose detrás de la aplicación
web.
Vulnerability Identification & Exploitation
La investigación reveló una vulnerabilidad en la versión de js2py: CVE-2024-28397 -
Sandbox Escape
Referencia: https://github.com/Marven11/CVE-2024-28397-js2py-Sandbox-Escape
El payload fue modificado para enviar una reverse shell. Después de hacer clic en Run Code mientras se escuchaba en el puerto
especificado, se recibió exitosamente una reverse shell.
Database Analysis & Credential Extraction
Una vez dentro de la máquina, se recuperó información que estaba vacía en el archivo
.zip del servidor. Se encontró una contraseña hasheada en MD5 para el usuario marco.
La contraseña fue crackeada usando crackstation.net.
User Pivoting
Dado que el servicio SSH está activo, se intentó la conexión usando las credenciales de
marco.
Se obtuvo la flag de usuario:
Privilege Escalation Analysis
Se examinaron los permisos SUID y se reveló que npbackup-cli puede ejecutarse como root. Esta es una
herramienta de backup en línea de comandos.
En el mismo directorio, se encontró un archivo .conf propiedad de root.
Configuration File Exploitation
El examen del archivo de configuración reveló una característica interesante: los
comandos pueden ejecutarse antes de realizar el backup.
Dado que el archivo no era propiedad del usuario actual, se copió para permitir la
modificación y adición de código para establecer una reverse shell.
Root Access Achievement
En el puerto de escucha, se recibió la shell como root y se leyó exitosamente la flag de
root.
Recommendations
Immediate Actions
1. JavaScript Execution Platform Security
- Actualizar js2py a la última versión
- Aplicar parches de seguridad para CVE-2024-28397
- Implementar sandboxing apropiado para ejecución de código
- Restringir acceso al sistema de archivos para código ejecutado
2. Application Security
- Eliminar funcionalidad de descarga de código fuente
- Encriptar contenidos sensibles de la base de datos
- Implementar controles de acceso apropiados para archivos de base de datos
3. System Hardening
- Eliminar o restringir permisos SUID en
/usr/bin/npbackup-cli
- Implementar controles de acceso apropiados para archivos de configuración
- Revisar y restringir capacidades de ejecución de comandos en herramientas de backup
Long-term Security Improvements
1. Access Controls
- Implementar el principio de mínimo privilegio para todos los binarios del sistema
- Auditoría regular de binarios SUID/SGID
- Permisos de archivo apropiados para archivos de configuración
2. Code Execution Environment
- Implementar entorno de ejecución contenedorizado
- Usar jaulas chroot apropiadas o mecanismos de aislamiento similares
- Evaluaciones de seguridad regulares de plataformas de ejecución de código
3. Monitoring & Detection
- Implementar logging para operaciones de backup
- Monitorear modificaciones de archivos de configuración
- Desplegar sistemas de detección de intrusos
- Evaluaciones de vulnerabilidades y pruebas de penetración regulares