Articles

0: Base knowledge

Posted on

explore Development is hard, learning how to do it is going to require a lot of study, practice and a good understanding of a fairly wide range of associated subjects. A boa notícia é que você não precisa aprender tudo de uma vez, ou da noite para o dia, e que há muitas pessoas que fizeram ou estão na mesma jornada dolorosa – algumas das quais escrevem blogs como corelan security ou fuzzy security.

a abordagem geralmente recomendada para um principiante é começar no início, o buffer simples baseado em pilha do final dos anos 90 é popularizado por Aleph One’s “Smashing the stack for fun and profit”, e, em seguida, trabalhar gradualmente na introdução e derrotar mitigações progressivamente mais modernas, novos vetores de exploração e arquiteturas. Como você faz isso e praticar contra o mundo real explorações de você começar a pegar alguns dos auxiliares de conhecimento a partir de sua própria pesquisa, e não se esqueça de fazer anotações, você pode encontrar ajuda para manter um blog, ou postar o passo a passo de suas façanhas aqui

Exatamente qual o nível de habilidade que você precisa ser antes de começar a aprender sobre o binário de exploração é sempre vai ser algo que faz com que algumas pessoas preocupações. Já estás pronto? A resposta é geralmente sim e não, você aprende mais começando hoje e falhando do que qualquer quantidade de procrastinação, mas ao mesmo tempo cada vez que você aprende algo novo você descobre duas coisas que você não entende. Hacking é terrível para isso, quanto mais eu aprendo, mais me sinto como um novato completo. A única coisa para ele é tentar; o pior caso é que você descobre que você precisa aprender algumas outras coisas primeiro, e nunca faz mal ler um livro.

recursos:

uma variedade de livros

:

Uma compreensão de C / C++

Memória e CPU de conceitos como o de endereçamento de memória, registradores e pilhas

Uma linguagem de script como Python, Perl, Ruby ou Bash

Fluência na escolhidos OS, e pelo menos um conhecimento básico de qualquer depurador que você está usando

A questão de plataformas para usar como suas vítimas é mais uma escolha pessoal, algumas pessoas gostam de aprender o Windows exploração de primeiro e, em seguida, mover para Linux, considerando que alguns (como eu) preferem iniciar com Linux exploração antes de se mudar para o Windows. Na minha opinião, há mais e melhores recursos para aprender o básico no Linux, mas a escolha é realmente sua.

Recursos:

Esmagamento de Pilha para Diversão e Lucro

Explorar Exercícios Protostar: Pilha níveis de 0-5

Alguns dos conceitos envolvidos na aprendizagem de como fazer este tipo de exploração vai ser muito estranho para um iniciante, mas com o tempo passou as mãos com um depurador, você deve começar a ter uma compreensão de algumas das coisas que você vai precisar ler sobre

2: Cadeia de caracteres de Formato Vulnerabilidades

Recursos:

Introdução a Cadeia de caracteres de Formato Explora

Explorar Exercícios Protostar: Formato de níveis de 0-4

cadeia de caracteres de Formato exploits são um bom próximo passo após a simples estouros de buffer, porque eles compartilham muitas semelhanças, mas também dar-lhe uma oportunidade de jogar ao redor com memória arbitrárias manipulações. Format strings também mostra algumas das estranhezas que podem resultar em situações exploráveis

3: retorno a pilhas não executáveis Derrotadoras da LibC (aka DEP, W^X, NX)

recursos:

(Exploit Exercises Protostar: Nível de pilha 6](https://exploit.education/protostar/stack-six/)

ret2libc é o primeiro simples desvio de um exploit de mitigação e serve como uma introdução aos conceitos que formam a base da poderosa retorno de programação orientada a técnica, existem algumas variantes desta técnica, tais como ret2plt ou ret2text

4: o Retorno de Programação Orientada (ROP)

Recursos:

Explorar Exercícios de proto-estrela: Nível de pilha 7

/u/d4mianwayne ‘s ROP Introdução

ROP é uma técnica chave para a moderna exploração que pode ser usado para derrotar DEP bem como ASLR, e uma forma interessante de aprender sobre assembler e realmente começam a ficar em profundidade com chamadas de sistema, registros e outras de baixo nível fundamentos.

5: derrotar as Canárias de pilha

as Canárias de pilha são uma mitigação de exploração que procura evitar façanhas, adicionando uma pequena verificação ao fim das funções para os fluxos de buffer. Eles vêm em uma variedade de formas e estilos, tais como canários exterminadores e canários aleatórios. Aprender algumas técnicas para derrotá-los ou contorná-los é muito essencial.

Recursos:

Corelan notas sobre este

Nota: recursos para isso parecem limitadas – quaisquer sugestões ou posts sobre o assunto, bem-vindo

6: Pilha de Exploração Básico

Mais moderno exploração concentra-se em torno da pilha em vez de pilha, em parte devido à melhoria do estado de atenuações de pilha com exploits, em parte porque os padrões de codificação foram melhorados e há menos oportunidades para simples stack smashing.

Deixe uma resposta

O seu endereço de email não será publicado.