Ir al contenido

Fileception

Este documento presenta la resolución completa de la máquina Fileception, desarrollada por danielPRZ para la plataforma DockerLabs, clasificada con una dificultad Media.

El objetivo del laboratorio es comprometer el sistema mediante la enumeración de servicios expuestos, el abuso de configuraciones inseguras en FTP, el uso de esteganografía para la obtención de credenciales y una cadena de reutilización de contraseñas, culminando con una escalada de privilegios a root debido a una mala configuración de sudo.

La metodología seguida se estructura en las siguientes fases:

  1. Reconocimiento: identificación de servicios accesibles y recopilación de pistas.
  2. Explotación: obtención de acceso inicial mediante esteganografía y credenciales expuestas.
  3. Escalada de privilegios: abuso de permisos incorrectos en sudo para obtener acceso administrativo.

El entorno fue desplegado localmente mediante DockerLabs, garantizando un escenario controlado y reproducible con fines educativos.


AtributoValor
NombreFileception
AutordanielPRZ
DificultadMedio
Fecha12/05/2024
PlataformaDockerLabs
IP Objetivo172.17.0.2

Se descomprime el archivo de la máquina y se despliega utilizando el script proporcionado:

Ventana de terminal
unzip Fileception.zip
sudo bash auto_deploy.sh Fileception.tar

IP asignada

Figura 1: Dirección IP asignada al contenedor


Se crea una estructura de directorios para organizar escaneos, exploits y evidencias recopiladas durante el laboratorio:

Ventana de terminal
mkdir -p Fileception/{content,exploits,nmap,scripts}
cd Fileception

Se ejecuta un escaneo TCP SYN para identificar los puertos abiertos en la máquina objetivo:

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

Puertos identificados:

  • 21/tcp — FTP
  • 22/tcp — SSH
  • 80/tcp — HTTP

Puertos abiertos

Figura 2: Puertos identificados como abiertos


Se realiza un escaneo de directorios y archivos web utilizando feroxbuster:

Ventana de terminal
feroxbuster -u http://172.17.0.2/ \
-w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-big.txt \
-x php,html,txt,js -t 100 -C 404

Hallazgos relevantes

  • /index — Página por defecto de Apache que contiene un comentario con información sensible.

content of comment

El comentario revela dos pistas importantes:

  • El nombre de usuario peter
  • Una cadena codificada, junto con la referencia explícita al uso de esteganografía

Al analizar la cadena con CyberChef, se identifica que está codificada en Base85, obteniendo una posible contraseña que se guarda para uso posterior.


Se realiza un escaneo más detallado del servicio FTP para identificar configuraciones inseguras:

Ventana de terminal
nmap -sCV -p21 172.17.0.2

result of scan

El escaneo revela que el servicio FTP permite acceso anónimo y contiene el archivo hello_peter.jpg, el cual se descarga para su análisis:

Ventana de terminal
ftp 172.17.0.2

Dado que se mencionó explícitamente el uso de esteganografía, se analiza la imagen descargada utilizando steghide:

Ventana de terminal
steghide info hello_peter.jpg

steghide info

A continuación, se extrae la información oculta:

Ventana de terminal
steghide extract -sf hello_peter.jpg

El archivo extraído es you_find_me.txt:

content of youFindMe

El contenido corresponde a un texto en lenguaje Oak, el cual, tras ser traducido, revela una contraseña válida. Con estas credenciales se obtiene acceso al sistema mediante SSH:

Ventana de terminal
ssh peter@172.17.0.2

ssh access


Al revisar el directorio personal del usuario peter, se encuentra el archivo nota_importante.txt:

content of nota

El mensaje indica revisar el directorio /tmp, donde se identifican los archivos:

  • recuerdos_del_sysadmin.txt
  • importante_octopus.odt

Se comienza leyendo el archivo de texto:

content of important

La pista sugiere cambiar la extensión de un archivo. Se descarga el archivo .odt:

Ventana de terminal
scp peter@172.17.0.2:/tmp/importante_octopus.odt ./importante_octopus.odt

Al identificar el tipo de archivo, se observa que realmente es un ZIP, por lo que se renombra y se descomprime. Entre los archivos XML extraídos, destaca leeme.xml:

content of leeme

Este archivo revela el usuario octopus y una contraseña codificada en Base64, la cual se decodifica para obtener las credenciales reales. Con ellas se cambia de usuario:

Ventana de terminal
su octopus

su octopus


Se revisan los permisos sudo del usuario:

Ventana de terminal
sudo -l

sudo -l result

El usuario octopus tiene permisos completos en sudo, por lo que basta ejecutar:

Ventana de terminal
sudo su

Obteniendo acceso como root:

id root


VulnerabilidadSeveridadImpacto
FTP con acceso anónimoAltaExposición de archivos sensibles
Uso de esteganografía para ocultar credencialesMediaFiltración indirecta de contraseñas
Almacenamiento inseguro de credencialesAltaAcceso no autorizado a cuentas del sistema
Reutilización de contraseñasAltaMovimiento lateral entre usuarios
Configuración insegura de sudoCríticaEscalada directa de privilegios a root

  • Deshabilitar acceso FTP anónimo y restringir el uso del servicio solo a usuarios autenticados.
  • Evitar ocultar información sensible mediante esteganografía como mecanismo de “seguridad”.
  • Almacenar credenciales de forma segura, utilizando hashes robustos y evitando texto plano o codificaciones triviales.
  • No reutilizar contraseñas entre distintos usuarios y servicios.
  • Restringir permisos de sudo, aplicando el principio de mínimo privilegio.
  • Auditar periódicamente archivos temporales y directorios compartidos como /tmp.