Internship
Introducción
Sección titulada «Introducción»En este artículo se documenta la resolución completa de la máquina virtual Internship, desarrollada por s1egfr1ed y catalogada con un nivel de dificultad fácil en la plataforma DockerLabs.
El proceso se divide en tres fases principales:
- Reconocimiento – Identificación de servicios activos, rutas accesibles y posibles vectores de ataque.
- Explotación – Aprovechamiento de vulnerabilidades detectadas para obtener acceso inicial al sistema.
- Escalada de privilegios – Obtención de control total del sistema a nivel de administrador.
Información General
Sección titulada «Información General»- Nombre: Internship
- Autor: s1egfr1ed
- Dificultad: Fácil
- Fecha de creación: 13/02/2025
- Plataforma: DockerLabs
Paso 0: Instalación y Despliegue
Sección titulada «Paso 0: Instalación y Despliegue»-
Descargamos la máquina desde el portal de DockerLabs.
-
Descomprimimos el paquete:
Ventana de terminal unzip Internship.zip -
Ejecutamos el script de despliegue:
Ventana de terminal sudo bash auto_deploy.sh Internship.tar
Este procedimiento monta la máquina en un contenedor Docker y la deja corriendo en segundo plano, lista para su análisis.
Paso 1: Reconocimiento
Sección titulada «Paso 1: Reconocimiento»1.1 Identificación de la IP
Sección titulada «1.1 Identificación de la IP»Al iniciar el contenedor, la dirección IP asignada se muestra en la consola de despliegue.

Creamos un entorno de trabajo estructurado para organizar la información:
mkdir Internshipcd Internshipmkt # Crea carpetas: content, exploits, nmap, scripts1.2 Escaneo de Puertos
Sección titulada «1.2 Escaneo de Puertos»Ejecutamos un escaneo completo con Nmap para identificar todos los puertos TCP abiertos:
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPortsPosteriormente, extraemos los puertos detectados con el script extractPorts:
extractPorts allPorts
1.3 Enumeración Web
Sección titulada «1.3 Enumeración Web»Procedemos con Gobuster para descubrir directorios y archivos ocultos en el servidor web:
gobuster dir -u http://172.17.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \ -x php,html,txt,js -t 200
El escaneo inicial no arrojó resultados relevantes. Al revisar el código fuente de la página principal, se encontró una referencia al dominio gatekeeperhr.com mediante una etiqueta dns-prefetch.

Para que la aplicación funcione correctamente, debemos registrar este dominio en el archivo /etc/hosts:
echo "172.17.0.2 gatekeeperhr.com" | sudo tee -a /etc/hostsPaso 2: Explotación
Sección titulada «Paso 2: Explotación»Con la web funcionando bajo su dominio real, nos dirigimos al formulario de login, donde probamos inyecciones SQL básicas.
Una prueba inicial con '1 evidenció que el sistema no filtra correctamente la entrada de usuario.

Probando una inyección más elaborada ' or 1=1-- -, conseguimos evadir la autenticación y acceder al panel de control.

Dentro del código del panel encontramos comentarios que sugieren la existencia de otros usuarios y rutas ocultas.

Durante la enumeración se detectó un directorio aparentemente vacío. Sin embargo, al inspeccionar su código fuente encontramos un comentario cifrado en ROT13.

El cifrado ROT13 sustituye cada letra por otra 13 posiciones más adelante en el alfabeto. Al decodificarlo, obtuvimos una pista relacionada con dos usuarios: Valentina y Pedro.

Probamos conexiones SSH con ambos usuarios y descubrimos que Pedro tiene acceso válido:

Paso 3: Escalada de Privilegios
Sección titulada «Paso 3: Escalada de Privilegios»Tras el acceso inicial, intentamos las técnicas habituales de escalada de privilegios (sudo -l, búsqueda de binarios SUID, etc.), sin éxito.
Al revisar los procesos activos con ps aux, observamos un binario que se ejecuta periódicamente como el usuario Valentina.

El archivo tenía permisos de escritura, por lo que insertamos una reverse shell apuntando a nuestra máquina atacante.

Una vez dentro como Valentina, inspeccionamos su directorio personal y encontramos una imagen sospechosa.

A simple vista parecía una broma.

Sin embargo, al analizarla con Steghide, detectamos un archivo oculto llamado secret.txt.

Este archivo contenía una posible contraseña:

Con esta credencial intentamos acceder al usuario root mediante sudo su, obteniendo finalmente privilegios administrativos.

Conclusión
Sección titulada «Conclusión»La máquina Internship combina de forma progresiva varias técnicas clásicas:
- Inyección SQL para obtener acceso inicial.
- Ingeniería de enumeración a través de comentarios y cifrados simples.
- Persistencia y escalada de privilegios mediante manipulación de procesos con permisos inadecuados.
- Análisis forense de archivos (esteganografía) para descubrir credenciales ocultas.
Aunque se clasifica como fácil, resulta una excelente práctica para reforzar fundamentos de explotación web y post-explotación en entornos Linux.