Jump to content
pyth0n3

Despre ASLR - Address space layout randomization

Recommended Posts

Posted

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 se

cunoasc? anumite adrese cum ar adresa actuala a unui stack pointer acestea vor

trebui 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 pointer

In cazul în care ASLR este activat adresa va fi diversa de fiecare data

cînd codul vine executat

Exemplu:


pyth0n3@mc:~/work$ gcc -o getesp getesp.c
pyth0n3@mc:~/work$ ./getesp
0xbff69388
pyth0n3@mc:~/work$ ./getesp
0xbfcd5898
pyth0n3@mc:~/work$ ./getesp
0xbfaaf138
pyth0n3@mc:~/work$ ./getesp
0xbfd78ea8
pyth0n3@mc:~/work$ ./getesp
0xbff4f288

In cazul meu este activat

Majoritatea sistemelor Linux il au activat de default începînd cu versiunea

2.6.12 de kernel

Cum 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 de

fi?iere

randomize_va_space

exec-shield

exec-shield-randomize

echo "0" > /proc/sys/kernel/randomize_va_space

In acest caz ASLR vine dezactivat

Un exemplu pt a dovedi acest lucru:

pyth0n3@mc:~/work$ ./getesp
0xbffff568
pyth0n3@mc:~/work$ ./getesp
0xbffff568
pyth0n3@mc:~/work$ ./getesp
0xbffff568
pyth0n3@mc:~/work$ ./getesp
0xbffff568
pyth0n3@mc:~/work$ ./getesp
0xbffff568

Vom vedea în detaliu cum vine modificat fi?ierul randomize_va_space

sysctl - vine folosit pentru a modifica diver?i parametri de kernel în timpul

rul?rii a acestuia

Fiecare parametru disponibil care poate fi modificat vine enumerat în /proc/sys

randomize_va_space este un fi?ier care se afla în /proc/sys/kernel/ ?i poate

fi modificat folosind sysctl

Pt a modifica fi?ierul randomize_va_space pot fi folosite diverse op?iuni

In baza a acestor op?iuni (valori) ASLR poate fi activat sau dezactivat

Exemplu:


sysctl -w kernel.randomize_va_space=0

Vine 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_space

Diverse atribu?ii pt fiecare valoare

0 -Va dezactiva ASLR

In cazul sistemelor care nu suporta ASLR fi?ierul va avea valoarea 0 de default

1 -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.txt

Shellcode pt a dezactiva ASLR in sistemele Linux X86-64

Linux/x86-64 - Disable ASLR Security - 143 bytes

Bypassing PaX ASLR protection

.:: Phrack Magazine ::.

Download paper:

wget http://sprunge.us/dfbc -O aslr.txt

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...