Introdução
No primeiro post da série, montamos o ambiente necessário para debugging e explorar a vulnerabilidade e no segundo, acionamos a vulnerabilidade com o código em C. Agora, neste post, vamos entender melhor a vulnerabilidade e evoluir o código para realizar a escalação de privilégio com sucesso.
Nosso objetivo nessa terceira parte é explorar a vulnerabilidade usando uma técnica conhecida como ret2usr, que apesar de não ser mais interessante hoje em dia devido às mitigações modernas, permite ao leitor ter uma introdução à exploração de vulnerabilidades em kernel. Na próxima parte, vamos explorar a vulnerabilidade com algumas mitigações habilitadas, utilizando Return Oriented Programming (ROP) no kernel do Linux.
Além de explorar a vulnerabilidade com sucesso, obter acesso a uma shell de root, também queremos manter o sistema estável e funcionando corretamente, mesmo após a exploração. Diversos estados instáveis podem acontecer após a exploração de uma vulnerabilidade. E, como o kernel é peça central do sistema, é nosso papel investigar, entender o que aconteceu e lidar com a situação para resolver o problema.

