martes, 29 de diciembre de 2009

Deshabilitando protección "STACK" (Pila).

Cuando tratamos de descubril alguna vulnerabilidad o forma de explotarla, hay dos obstaculos que nos no permiten hacerlo. En linux existen algunos tipos de protcciones una de ellas es: "exec-shield" o "Virtual Addres Space Randomization".

esta a su vez lo que hace es crear memorias virtuales en proceso de ejecución de un programa u aplicación aleatorio/a. Para que vallan cambiando en cada ejecución su dirección de retorno y todo exploit para dicha vurnerabilidad quede obsoleto.

Pero aquí voy a explicar un metodo para deshabilitar esta protección.



#include


unsigned long esp(void){
__asm__("movl %esp, %eax");
}

int main(int argc, char *argv[]){
printf("0x%08x\n",esp());
return 0;
}


Probemos este código a ver que nos dise, primero compillamos "gcc -o vuln vuln.c"

Luego ejecutamos "./vuln"

Aver que nos dice "0x9aee9600"

Otra vez "0x1f59dcb0"
Otra vez "0x180e1800".

Si se fijan hay está la protección contra el Stack Överflow, porque nos cambia la dirección en cada ejecución del programa osea vería la dirección.

Para poder obtener direcciones constantes o sea que no varíen tenemos que deshabilitar la protección, para esto hacemos lo siguiente: "echo 0 > /proc/sys/kernel/randomize_va_space". Probemos a ver que nos dice "cat echo > /proc/sys/kernel/randomize_va_space". Vemos que nos da "0", antes nos daba "1", porque se controla mediante 1 true & 0 false.

Ahora como ya hemos deshabilitado la protección, entonces nos queda probar a ver, como ya saben en la primera prueba varíaban las direcciones en cada ejecución del programa, ahora veremos que pasa.

Ejecutemos el programa a ver: "./vuln"
Nos pasa lo siguiente "0xffffe710
root@F1R3544:/home/no/Escritorio# ./esp
0xffffe710
root@F1R3544:/home/no/Escritorio# ./esp
0xffffe710.

Como ven aquí no nos varía la dirección, pero esto es porque hemos deshabilitado la protección.

Amigo esto es todo bye hasta luego.

2 comentarios:

  1. Interesante... A medida que los informáticos van implementando la seguridad en las aplicaciones se van sacando nuevas técnicas para evadirlas. Al fin y al cabo siempre va a existir una forma de vulnerar un sistema ya que todos los ordenadores conectados al internet son vulnerables a ataques informáticos.

    Sigue ampliando el contenido de este blog "F1r3544" que te esta quedando muy bien.

    Atentamente, Socket_0x03.

    ResponderEliminar
  2. Pienso de forma muy similar al usuario que posteo la primera respuesta, creo que algunos sistemas basan su seguridad en otro cito una frase de la pelicula Matrox:

    "El sistema de seguridad del edificio es casi perfecto pero tiene una debilidad, esta basado en el sistema de luz electrica"

    Aqui lo que yo veo esque primero para modificar el valor de 1 a 0 se necesita ser root del sistema no? pero si rooteamos ya la tenemos hecha xD

    salu2

    ResponderEliminar