Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: nullx100 en 29 Abril 2022, 22:19 pm



Título: Deshabilitar proceccion de buffer overflow con gcc
Publicado por: nullx100 en 29 Abril 2022, 22:19 pm
Hola.

Estoy usando lo siguiente:

Ubuntu 32 bits version ubuntu1~16.04.12
GCC 5.4.0.

Estoy tratanto de simular un stack overflow a mi propio programa para sobreescribir la memoria con un payload y abrir una shell.

El caso es que creo que consigo hacerlo pero parece que gcc me compila con proteccion de stack activada.

Buscando por internet he encontrado lo siguiente:

Código:
gcc -fno-stack-protector <file> -o <output-file> 

Lo he usado pero sigue sin deshabilitarme la proteccion.

Sabes alguna otra forma?

El resultado de la ejecucion es:

Código:
*** stack smashing detected ***: ./bufferOverflow terminated
Aborted (core dumped)



Título: Re: Deshabilitar proceccion de buffer overflow con gcc
Publicado por: MCKSys Argentina en 30 Abril 2022, 00:00 am
Sacado de aquí: https://stackoverflow.com/questions/2340259/how-to-turn-off-gcc-compiler-optimization-to-enable-buffer-overflow (https://stackoverflow.com/questions/2340259/how-to-turn-off-gcc-compiler-optimization-to-enable-buffer-overflow)

Citar
Modern Linux distros configure GCC to build PIE executables by default (https://stackoverflow.com/questions/43367427/32-bit-absolute-addresses-no-longer-allowed-in-x86-64-linux), @RobertLarsen (and future readers). You can use gcc overflow.c -fno-stack-protector -fno-pie -no-pie to make tradition ELF executables, not shared objects. (Then you don't have to disable ASLR for non-stack segments either system-wide or for this executable, which BTW is something GDB does. No need to disable system-wide at all.)

Saludos!