Objetivo

O objetivo desse desafio é explorar o programa vulnerável para executar algum comando no computador

Execução

Analisando o código da aplicação, podemos ver que o programa tem um código bem simples

Como já sabemos que o programa está vulnerável a Buffer Overflow, vou direto descobrir quantos bytes são necessários para sobreescrever o endereço de retorno

Para isso, vou utilizar o Buffer Overflow Pattern Generation para criar um Pattern contendo 600 caracteres que serão enviados para a aplicação

Enviando esse conteúdo para o programa, ele retorna um erro e é possível ver o valor presente em EIP no momento em que isso acontece

Com o valor presente em EIP, foi possível descobrir que é necessário enviar 512 bytes para atingir o endereço de retorno

Agora que já é possível controlar o endereço de retorno da aplicação, é preciso criar o payload contendo o comando que será executado no sistema

Para isso, vou utilizar o msfvenom e criar um shellcode que, ao ser executado, abra a calculadora do windows

Com o shellcode pronto, juntei todas as informações descobertas até agora e criei um “exploit” usando o python para explorar a aplicação

Por fim, executando o exploit e enviando a saída dele para o programa vulnerável, o sistema abre a calculadora