Lendo dados de syscall via ptrace
Salve, salve! Dessa vez, começo minha aventura pelos mares do ptrace! Vejo como uma boa área para adquirir algum aprendizado no que diz respeito a alteração/extração de informação de um processo em execução, entre outros tipos de utilidade. Tentarei reportar de forma didática o que eu descobrir sobre o assunto, e especificamente, com exemplos usando arquitetura x86_64 (o que é raro de ver por ai).
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.
