HackTheBox

CodePartTwo



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.

❯ ssh marco@10.10.11.82

Se obtuvo la flag de usuario:

❯ cat user.txt


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