pyth0n3 Posted March 21, 2011 Report Posted March 21, 2011 ASLR - Address space layout randomization este o tehnica de securitate care implica aranjarea în mod cazual a adreselor de memorie folosite de un anumit task In acest tutorial nu voi intra în multe am?nunte în leg?tura cu ASLR ,voi explica doar lucrurile de baza ASLR aduce cîteva beneficii Spre exemplu în cazul în care vine executat un atac ?i este nevoie sa secunoasc? anumite adrese cum ar adresa actuala a unui stack pointer acestea vortrebui ghicite înainte deoarece vin generate în mod cazual Majoritatea sistemelor Unix/Linux/Windows folosesc ASLR Pt a verifica dac? ASLR este activat de default se poate folosi urm?torul exemplu de cod: #include <stdio.h>unsigned int stackp(){ __asm__("movl %esp, %eax");}int main(){ printf("0x%x\n", stackp());}Executand codul vom avea adresa de baza (esp) a unui stack pointerIn cazul în care ASLR este activat adresa va fi diversa de fiecare datacînd codul vine executatExemplu:pyth0n3@mc:~/work$ gcc -o getesp getesp.cpyth0n3@mc:~/work$ ./getesp0xbff69388pyth0n3@mc:~/work$ ./getesp0xbfcd5898pyth0n3@mc:~/work$ ./getesp0xbfaaf138pyth0n3@mc:~/work$ ./getesp0xbfd78ea8pyth0n3@mc:~/work$ ./getesp0xbff4f288In cazul meu este activat Majoritatea sistemelor Linux il au activat de default începînd cu versiunea2.6.12 de kernelCum se poate dezactiva ASLR in linux ?O simpla metoda ar fi modificarea parametrilor în /proc/sys/kernel/Depinde de distribu?ia care vine folosita deoarece pot fi diverse tipuri defi?iererandomize_va_spaceexec-shieldexec-shield-randomizeecho "0" > /proc/sys/kernel/randomize_va_spaceIn acest caz ASLR vine dezactivat Un exemplu pt a dovedi acest lucru:pyth0n3@mc:~/work$ ./getesp0xbffff568pyth0n3@mc:~/work$ ./getesp0xbffff568pyth0n3@mc:~/work$ ./getesp0xbffff568pyth0n3@mc:~/work$ ./getesp0xbffff568pyth0n3@mc:~/work$ ./getesp0xbffff568Vom vedea în detaliu cum vine modificat fi?ierul randomize_va_spacesysctl - vine folosit pentru a modifica diver?i parametri de kernel în timpul rul?rii a acestuiaFiecare parametru disponibil care poate fi modificat vine enumerat în /proc/sysrandomize_va_space este un fi?ier care se afla în /proc/sys/kernel/ ?i poatefi modificat folosind sysctlPt a modifica fi?ierul randomize_va_space pot fi folosite diverse op?iuniIn baza a acestor op?iuni (valori) ASLR poate fi activat sau dezactivatExemplu:sysctl -w kernel.randomize_va_space=0Vine chemat sysctl cu parametrul -w care va permite sa fie modificate diverse op?iuni , în acest caz vom ad?uga valoarea o in fisierul randomize_va_spaceDiverse atribu?ii pt fiecare valoare0 -Va dezactiva ASLR In cazul sistemelor care nu suporta ASLR fi?ierul va avea valoarea 0 de default1 -Va activa ASLR , adresa (esp) a unui stack pointer va fi generataîn mod cazual 2 -Va activa ASLR iar în plus va permite randomizare în heap Pt avea mai multe informatii despre ASLR http://pax.grsecurity.net/docs/aslr.txtShellcode pt a dezactiva ASLR in sistemele Linux X86-64 Linux/x86-64 - Disable ASLR Security - 143 bytesBypassing PaX ASLR protection.:: Phrack Magazine ::.Download paper:wget http://sprunge.us/dfbc -O aslr.txt Quote