Hacemos una revisión completa cada posts en nuestro espacio con el objetivo de enseñarte siempre información veraz y certera.
Solución:
De acuerdo con un artículo ¿Qué tan efectivo es ASLR en sistemas Linux?, puede configurar ASLR en Linux usando el /proc/sys/kernel/randomize_va_space
interfaz.
Se admiten los siguientes valores:
- 0 – Sin aleatorización. Todo es static.
- 1 – Aleatorización conservadora. Bibliotecas compartidas, pila,
mmap()
VDSO y montón son aleatorios.- 2 – Aleatorización completa. Además de los elementos enumerados en el punto anterior, la memoria gestionada a través de
brk()
también es aleatorio.
Entonces, para deshabilitarlo, ejecute
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
y para habilitarlo de nuevo, ejecute
echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
Esto no sobrevivirá a un reinicio, por lo que tendrá que configurarlo en sysctl
. Agregar un archivo /etc/sysctl.d/01-disable-aslr.conf
que contiene:
kernel.randomize_va_space = 0
debería deshabilitar esto permanentemente.
los /proc/sys/kernel/randomize_va_space
la interfaz controla el sistema ASLR en todo el sistema.
Si no desea un cambio en todo el sistema, use ADDR_NO_RANDOMIZE
indicador de personalidad para deshabilitar temporalmente ASLR. El control de esta bandera se puede hacer con setarch
y es -R
opción, como
setarch `uname -m` -R /bin/bash
Esto abrirá un nuevo shell Bash para usted con ASLR deshabilitado, incluidos todos los procesos secundarios que se ejecutan desde este shell. Sólo exit
la cáscara una vez que haya terminado.
Por cierto, en i386, ulimit -s unlimited
puede “deshabilitar” efectivamente ASLR.
EDITAR (abril de 2016): El ulimit -s unlimited
fue corregido y asignado CVE-2016-3672.
Las formas más permanentes de deshabilitar ASLR deben mantenerse en una VM por razones obvias.
para probar la capacidad de sobrescribir direcciones de retorno de marcos de pila, etcétera, deberá compilar sin apilar canarios -fno-stack-protector
mientras que para permitirle ejecutar código en la pila necesita compilar con -z execstack
haciendo
$ gcc -fno-stack-protector -z execstack -o my_code.c
Aquí tienes las comentarios y valoraciones
Recuerda que puedes mostrar este ensayo si lograste el éxito.