Ir al contenido

Internship

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:

  1. Reconocimiento – Identificación de servicios activos, rutas accesibles y posibles vectores de ataque.
  2. Explotación – Aprovechamiento de vulnerabilidades detectadas para obtener acceso inicial al sistema.
  3. Escalada de privilegios – Obtención de control total del sistema a nivel de administrador.
  • Nombre: Internship
  • Autor: s1egfr1ed
  • Dificultad: Fácil
  • Fecha de creación: 13/02/2025
  • Plataforma: DockerLabs
  1. Descargamos la máquina desde el portal de DockerLabs.

  2. Descomprimimos el paquete:

    Ventana de terminal
    unzip Internship.zip
  3. 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.

Al iniciar el contenedor, la dirección IP asignada se muestra en la consola de despliegue.

IP asignada

Creamos un entorno de trabajo estructurado para organizar la información:

Ventana de terminal
mkdir Internship
cd Internship
mkt # Crea carpetas: content, exploits, nmap, scripts

Ejecutamos un escaneo completo con Nmap para identificar todos los puertos TCP abiertos:

Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts

Posteriormente, extraemos los puertos detectados con el script extractPorts:

Ventana de terminal
extractPorts allPorts

Puertos abiertos

Procedemos con Gobuster para descubrir directorios y archivos ocultos en el servidor web:

Ventana de terminal
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

Gobuster

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.

dns-prefetch

Para que la aplicación funcione correctamente, debemos registrar este dominio en el archivo /etc/hosts:

Ventana de terminal
echo "172.17.0.2 gatekeeperhr.com" | sudo tee -a /etc/hosts

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.

sqli Test

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

dashboard

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

Pista

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.

comentario 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.

rot13 decode

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

ssh conect

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.

proceso

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

reverseshell

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

ls -a

A simple vista parecía una broma.

trool face

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

steghide

Este archivo contenía una posible contraseña:

secret.txt

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

Root

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.