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…
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...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:
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:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
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: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
[]‘s
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…
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...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"
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:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
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: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
[]‘s