Skip to content

Find

This content is not available in your language yet.

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:

  1. Reconocimiento: Enumeración de servicios y descubrimiento de información oculta en archivos.
  2. Explotación: Análisis forense digital, decodificación de Malbolge y ataque de fuerza bruta.
  3. 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.


AtributoValor
NombreFind
Autorpowerful
DificultadPrincipiante
Fecha17/05/2022
PlataformaHackMyVM
FormatoImagen OVA
IP Objetivo192.168.100.13

Descargamos la máquina desde HackMyVM y la desplegamos en VirtualBox como una imagen OVA.

Una vez iniciada la máquina, obtenemos la dirección IP asignada:

Dirección IP objetivo: 192.168.100.13

Creamos una estructura organizada para documentar el proceso:

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

Ejecutamos un escaneo TCP SYN para identificar servicios expuestos:

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

Resultados:

  • 22/tcp — SSH (Secure Shell)
  • 80/tcp — HTTP (Web Server)

Puertos abiertos

Figura 1: Servicios expuestos en la máquina

Realizamos un escaneo exhaustivo de directorios:

Ventana de terminal
gobuster dir -u http://192.168.100.13 -w WORDLIST -x html,php,txt -t 50 -k -r

Resultado del escaneo

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

Descargamos y analizamos los recursos encontrados:

Ventana de terminal
wget http://192.168.100.13/cat.jpg

Analizamos la imagen cat.jpg con diversas herramientas, pero no encontramos resultados interesantes en análisis convencionales. Al examinar el contenido directamente:

Ventana de terminal
cat cat.jpg

Contenido adicional en imagen

Figura 3: Datos adicionales al final del archivo JPEG

El contenido adicional corresponde a código en Malbolge, un lenguaje de programación esotérico diseñado para ser extremadamente difícil.

Utilizamos herramientas especializadas para interpretar el código:

Resultado de decodificación

Figura 4: Nombre de usuario obtenido de Malbolge

Nombre de usuario descubierto: missyred

Con el nombre de usuario descubierto, realizamos un ataque de fuerza bruta:

Ventana de terminal
hydra -l missyred -P rockyou.txt ssh://192.168.100.13 -I

Resultado de Hydra

Figura 5: Contraseña SSH comprometida

Credenciales obtenidas:

  • Usuario: missyred
  • Contraseña: mypasswordis123

Nos conectamos al sistema mediante SSH:

Ventana de terminal
ssh missyred@192.168.100.13

Conexión SSH exitosa

Figura 6: Acceso SSH como usuario missyred


Comenzamos la enumeración post-explotación:

Ventana de terminal
sudo -l

Privilegios sudo de missyred

Figura 7: Permisos sudo que permiten ejecutar Perl como kings

Hallazgo: (kings) NOPASSWD: /usr/bin/perl

Utilizamos Perl para obtener una shell como kings:

Ventana de terminal
sudo -u kings perl -e 'exec "/bin/bash";'

Shell como kings

Figura 8: Acceso como usuario kings obtenido

Ventana de terminal
sudo -l

Privilegios sudo de kings

Figura 9: Permisos sudo que permiten ejecutar script específico

Hallazgo: (root) NOPASSWD: /opt/boom/boom.sh

El script no existe, así que lo creamos:

Ventana de terminal
mkdir /opt/boom
cd /opt/boom
nano /opt/boom/boom.sh
# Contenido del script:
#!/bin/bash
/bin/bash

4.3.3 Configuración de Permisos y Ejecución

Sección titulada «4.3.3 Configuración de Permisos y Ejecución»
Ventana de terminal
chmod +x /opt/boom/boom.sh
sudo /opt/boom/boom.sh

Shell como root

Figura 10: Acceso root obtenido exitosamente

Ventana de terminal
id
whoami

VulnerabilidadSeveridadImpactoCWE/Referencia
Información sensible en archivos públicosMediaExposición de nombres de usuarioCWE-200
Contenido oculto en imágenes sin protecciónBajaOcultamiento de información críticaCWE-312
Contraseñas SSH débiles y predeciblesAltaAcceso inicial comprometidoCWE-521
Configuración insegura de sudo (perl)AltaEscalada horizontal de privilegiosCWE-269
Permisos sudo para scripts en rutas escribiblesCríticaEscalada vertical a rootCWE-732
  1. 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
  2. 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
  3. 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
  4. 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
  5. 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