O curso
O curso tem grande foco em BOF (Buffer Overflow) na arquitetura x86-64, mas as aulas também mostram diferentes abordagens para a arquitetura x86 (de 32-bits). São cobertos também os bypasses das principais proteções anti-exploração como randomização de memória e prevenção de execução.
O que é exploração de binários?
Basicamente, é encontrar falhas em programas (compilados, neste caso) e conseguir explorá-las, a fim de executar código arbitrário (à sua escolha). Se isso é possível, dizemos que o software em questão possui uma falha (um bug) e, mais que isso, uma falha explorável.
Como funciona?
Muitos programas trabalham com dados de entrada que são controlados pelo usuário. Por exemplo, num software visualizador de imagens, as imagens (.png, .jpg, etc) que o usuário pede para o software abrir são a entrada que o usuário passa para o programa. Caso este não trate esta entrada de forma segura, pode apresentar uma falha dependendo da entrada passada e talvez ser explorado (executar código arbitrário, contido na imagem passada, que foi adicionado propositalmente pelo profissional tentando buscar as falhas). A este código adicional, damos o nome de payload.
Sobre o instrutor
@masterek (Fernando Fresteiro) é pentester e pesquisador.
Pré-requisitos
Para um melhor aproveitamento, recomendamos assistir o CERO, que cobre o básico de Assembly na arquitetura x86.
Aulas publicadas
Todas as aulas estão publicadas em nosso canal no YouTube. Segue a lista:
Aula 00 - Introdução
Aula 01 - Overview assembly / stack / stack frame
Aula 02 - Simples Buffer Overflow (Parte 1)
Aula 03 - Simples Buffer Overflow (Parte 2)
Aula 04 - Corrigindo problemas de alinhamento na stack
Aula 05 - Restrição de Endereco de Retorno
Aula 06 - Review e Pattern Create
Aula 07 - Introdução ao NX
Aula 08 - Bypass NX (Parte 1)
Aula 09 - Bypass NX (Parte 2)
Aula 10 - Bypass NX (Parte 3)
Aula 11 - Introdução aos Gadgets
Aula 12 - Entendendo Gadgets
Aula 13 - Bypass de NX em arquitetura 64 bits (Parte 1)
Aula 14 - Bypass de NX em arquitetura 64 bits (Parte 2)
Aula 15 - Introdução ao Canary
Aula 16 - Uma pausa para PwnTools
Aula 17 - Bypass de Canary através de format string (Parte 1)
Aula 18 - Bypass de Canary através de format string (Parte 2)
Aula 19 - Bypass de Canary com força bruta
Aula 20 - Bypass de ASLR 32-bits
Aula 21 - Bypass de ASLR 64-bits (Parte 1)
Aula 22 - Bypass de ASLR 64-bits (Parte 2)
Aula 23 (Final) - Remote Exploit