2009-02-09 8 views
5

Como parte de una asignación de curso, necesito escribir un código de explotación para causar un desbordamiento del búfer y ejecutar el código que está presente en la pila.protección y aleatorización de la ejecución de la pila en ubuntu

He apagado el randomiztion pila mediante el siguiente comando: sysctl -w kernel.randomize_va_space = 0 Sin embargo, soy incapaz de encontrar una manera de desactivar la protección ejecución de la pila. No estoy seguro de si hay alguna protección de exec en Ubuntu o no ... así que mi primera pregunta es si hay algo así como exec-shield de red hat en ubuntu 8.10 y si lo hay, ¿cómo podemos apagarlo?

He intentado causar un desbordamiento del búfer y ejecutar instrucciones desde la pila, pero cada vez que intento hacerlo, me da un fallo seg.

i ubuntu ubuntu 8.10 64 bit, SIN EMBARGO, la depuración del programa im se compila en una máquina i386 con protección de pila desactivada.

+0

* lol * la guerra contra las galletas está parando nuestros blancos sombreros para aprender el oficio. ¿Quizás los delincuentes desaparecerán cuando no sepamos cómo lo hacen? ;) –

+0

¿Ayudaría [este enlace] (http://pwet.fr/man/linux/administration_systeme/execstack)? – jpalecek

Respuesta

5

es probable que desee para compilar con la bandera -z execstack en su compilación de GCC, junto con -fno-stack-protector (para desactivar SSP/protección pila ProPolice de GCC), es decir:

gcc -fno-stack-protector -z execstack -o vuln vuln.c 

Todo probablemente debería resultar Jake después de esto. Tenga en cuenta que sysctl -w kernel.randomize_va_space=0 es solo asignación al azar del espacio de direcciones, y no protección de la pila, per-se; que puede ser brutalmente forzado en contra de usar una variedad de técnicas.

Cuestiones relacionadas