felipe's blog

picoCTF 2013 - write-up ROP4 + Overflow5

Salve! Neste post irei explicar como resolvi duas tasks do picoCTF [1], que foi bem interessante para por em prática conceitos básicos de ROP, mesmo sendo em um ambiente sem muita proteção.

ELF Auxiliary Vector

Auxiliary vector, também conhecido por auxv, nada mais é que um vector auxiliar com informações pertinentes ao sistema e ao processo, que é colocada na imagem do processo para que possa ser utilizada pelo interpretador do ELF (ld), bem como pelo processo.

Podemos ver a montagem do vetor no source do kernel no link [1]. O objetivo do post é demonstrar como podemos acessar tal informação, que é acessível de várias formas.

Lendo e escrevendo na stack de um processo usando ptrace

Olá pessoal! Depois de um longo tempo, resolvi postar mais alguma coisa interessante com o uso do ptrace. Desta vez irei demonstrar como podemos simular um breakpoint em um processo e até printar e modificar o valor de uma variável local.

Para quem não leu o primeiro post [1], vale a pena dar uma lida para compreender o que veremos a seguir.

CVE-2011-1485: polkitd/pkexec vulnerability

Olá, neste post a missão será explicar a vulnerabilidade identificada pelo CVE-id 2011-1485, trata-se de um caso de race condition, onde se confiou no procfs /proc/<pid> para obter o UID do processo pai, o que acaba deixando executarmos qualquer programa localmente como root.

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).