Desactivar la prevención de ejecución de datos (DEP / Data Execution Prevention)
Windows XP
Panel de control -> Sistema -> Avanzado -> Inicio y Recuperación -> Configuración -> Editar
Reemplazar OptIn por AlwaysOff.
Windows 7
bcdedit.exe /set <current> nx AlwaysOff
Reiniciar el sistema operativo y posteriormente comprobar en: Mi PC -> clic derecho -> Propiedades -> Avanzando -> Rendimiento -> Configuración -> Data Execution Prevention.
Procedimiento
0) Pre-inicio
Identificar dirección IP y puerto donde se ejecuta el binario, y cual campo es vulnerable a buffer overflow.
1) Fuzzing
Realizar fuzzing para encontrar con cuantos bytes se desborda el búfer y se sobrescribe el registro EIP (Extended Instruction Pointer).
Sincronizar (Ctrl + F1) y ejecutar (F9) el proceso en Immunity Debugger.
# Configuración de carpeta de trabajo en Mona
!mona config -set workingfolder c:\mona\%p
# Generación de badchars
!mona bytearray
# Comparación de badchars con contenido de la pila
!mona compare -f C:\mona\<binary-name>\bytearray.bin -a ESP
# Generación eliminando badchars encontrado
!mona bytearray -cpb "\x00"
# Comparación de badchars con contenido de la pila
!mona compare -f C:\mona\<binary-name>\bytearray.bin -a ESP
# Generación eliminando badchars encontrados
!mona bytearray -cpb "\x00\x0a"
5) Encontrar "JMP ESP"
Verificación de badchars.
!mona bytearray -cpb "<badchars>"
!mona compare -f C:\mona\<binary-name>\bytearray.bin -a ESP