– root@injetionsec:~#

Buffer Overflow, o que e isso?

16.01.2014 (9:29 pm) – Filed under: Hacking ::

Buffer Overflow : são áreas de memória criadas pelos programas para armazenar dados que estão sendo processados de maneira análoga,podemos referenciar buffer como pilha,e cada pilha tem um determinado tamanho que depende do tipo de dados que ele irá armazenar,se o programa não for adequadamente escrito este esses dados podem acabar sendo armazenado ocorrendo assim travando do programa e a execução de código remoto, escalação de previlégios.

buffer overflow consiste em estourar o buffer e ao sobrescrever parte da pilha altera os valores das variáveis locais, parâmetros e/ou o endereço de retorno (return address). Ao alterar esse  endereço de retorno ele faz com que o endereço aponte para uma área em que o código encontra-se armazenado,normalmente o novo endereço apontado é um código malicioso dentro do próprio buffer estourado. Com isso a uma execução de códigos arbitrários com os privilégios do usuário que executa o programa vulnerável,os alvos são serviços de sistema ou aplicações que executam com privilégios de superusuário no mesmo,veja a figura abaixo

0hnjb

 

Na Figura é possível verificar a existência de dois registradores utilizados para controle de uma pilha,que são: EBP e ESP, o primeiro EBP – base pointer é utilizado para indicar a base de uma pilha. Já o segundo, o registrador ESP – stack pointer é
utilizado para indicar o topo de uma pilha. Uma pilha pode conter além do endereço de retorno, algumas variáveis, parâmetros e outros dados para controle da pilha, como os registradores acima citados,toda essa estrutura uma vez que é possível alterar o valor do endereço de retorno do programa e redirecioná-lo para um código malicioso.Assim, os ponteiros de instruções como do processo ESP, que é o registrador que guarda o topo da lista, passam a ser controlados pelo atacante que pode fazer chamadas a
funções disponíveis no sistema. Devido ao fato da alteração do endereço de retorno poder ser feita pelo “estouro” de uma variável local alocada na pilha é que originou o nome buffer overflow.