Burlando a ASLR no Kernel do Windows

kernel

Hi.

A ASLR (Address Space Layout Randomization) foi uma medida de segurança implementada para conter alguns overflows por aí.
Basicamente, a técnica consiste em randomizar o endereço de memória para a stack, heap, etc. Deste modo, um atacante fica impossibilitado de pular para um endereço exato na memória para assim executar o seu payload.

No Linux, a ASLR randomiza os endereços a cada inicialização do programa. Vamos ver um pouco na prática…

Demonstração da ASLR

O código de exemplo mostrará o endereço atual do registrador ESP.
Como a ASLR veio ativada por default na minha distro, o endereço de memória variava a cada execução do programa. Depois que eu a desativei, o endereço era fixo:

Código:
$ :~ sudo bash -c "echo 0 > /proc/sys/kernel/randomize_va_space"

No Windows, a implementação da ASLR no kernel funciona de modo um pouco diferente.
A idéia é a mesma, porém, os endereços de memória só randomizam a cada nova sessão. Além de que a ASLR deve ser ativada manualmente no compilador (somente arquivos do sistema utilizam por default).

Mas calma que tudo tem um jeitinho. Segue um paper sobre o bypass do ASLR em Windows escrito por LE BERRE:
Clique aqui para visualizar

O paper está muito bem ilustrado e formatado, o que torna uma leitura agradável.
Obs: Abraços pro meu amigo R0dr1g0! Where is your god now? :-)

Referência: http://unsecurity.com.br/burlando-a-aslr-no-windows/

[]‘s

Autor: Fvox



Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>