felipe's blog

Explorando usando format-string

Olá, neste post iremos tratar de uma velha e vulnerabilidade conhecida como format-string, que é explorada por meio de formatadores (%x, %n etc) na ausência de respectivo parâmetro. Focaremos neste post a possibilidade de escrita em um endereço arbitrário.

Syscall hijacking usando Assembly x64

Dando sequência ao post anterior onde vimos uma introdução à LKM usando Assembly x64, agora vamos partir para alterar uma entrada na tabela de syscalls no Linux (kernel 2.6.*).
A técnica usada neste post é baseada no post do memset's blog [1].

Introdução a Linux Kernel Module em Assembly x64

Aproveitando para me familiarizar com assembly para x86_64, resolvi por em prática uma ideia antiga de fazer um LKM qualquer em Assembly. Enquanto não vem uma ideia de um módulo útil, mostrarei como é simples fazer puramente em assembly, usando a sintaxe AT&T e o GAS (GNU Assembler).

Sobreescrevendo a GOT via buffer overflow

Seguindo a ideia proposta no post anterior, veremos neste post uma outra possibilidade de escrever na GOT via um programa vulnerável a buffer overflow.

Sobreescrevendo a GOT via LD_PRELOAD

Para quem não conhece, a GOT (Global Offset Table) é um seção de leitura/escrita no segmento de dados que é usado por um objeto para localizar símbolos em outros objetos.

Usando a mesma idéia de post anterior, onde usamos LD_PRELOAD para interceptar a chamada da função puts(), faremos agora alterando o endereço na GOT para apontar diretamente para uma função.