Published on

Hacking - Por onde começar?

Authors

O hacking, engloba diversas áreas, entre elas, programação, redes, sistemas operacionais, etc. O que pode deixar um iniciante completamente perdido, sem saber por onde começar. Então, decidi escrever este artigo, para ajudá-lo em sua trajetória.

Table of Contents

Qual caminho devo seguir?

Eu, sinceramente, não sigo nenhum roadmap, estudo o que eu estiver achando mais interesante no momento, o que me mantém mais consistente. Mas seguir um caminho predefinido, vai com certeza facilitar as coisas. Por isso, criei este roadmap para te ajudar em sua trajetória.

Vamos lá!

  1. Lógica de Programação

É recomendado começar por lógica de programação, pois pode facilitar muito o seu aprendizado, porém não é uma regra, você pode seguir diretamente para programação e aprender na prática.

  1. Programação

A programação é essencial para entender como os sistemas funcionam por debaixo dos panos, e desenvolver scripts e ferramentas que você usará no dia a dia.

As mais recomendadas são:

  • C
    • Linguagem compilada
    • Gera arquivos executáveis pequenos
    • É rápida
    • Mais díficil
    • Source code maior
    • Algumas coisas só são possíveis em C (ex: criar drivers)
  • Python
    • Linguagem interpretada
    • Para gerar arquivos executáveis é preciso usar algumas bibliotecas de terceiros, o que gera arquivos executáveis grandes
    • É um pouco mais lenta comparada ao C
    • Mais fácil
    • Source code menor

Minha primeira linguagem foi Python, e ainda é minha preferida, principalmente pelo número de bibliotecas, documentação clara, e por gerar um código menor.

  1. Redes

É importantíssimo entender como funcionam as conexões, endereços IPs, portas e servidores, para você ser capaz de realizar um bom reconhecimento, parte fundamental de um pentest. Você também pode mesclar seus estudos de programação e redes, treinando com sockets, criando seus próprios servidores, port scanners, etc.

  1. Sistemas Operacionais

Também é essencial aprender como funcionam os sistemas, aprenda como funciona o CMD e o Powershell do Windows, o terminal do Linux, as permissões do Linux, os principais comandos, etc.

  1. Bancos de Dados

Outra coisa de extrema importância, é aprender SQL, linguagem usada pelos principais bancos de dados. Para praticar você pode instalar um servidor qualquer (ex: XAMPP), um cliente SQL, e ir estudando pelo W3Schools.

  1. Linguagem Backend

É interessante também aprender alguma linguagem backend, como por exemplo PHP, pois o mais importante, é que você consiga entender como as vulnerabilidades acontecem no servidor, para não ficar limitado ao uso ferramentas.

  1. Vulnerabilidades WEB

Quando você tiver aprendido todo o resto, já conseguirá começar a se aprofundar em vulnerabilidades WEB, focando sempre em aprender como ela acontece no lado do servidor, sem depender de ferramentas e scans automáticos. E para isso, a Web Security Academy da PortSwigger, tem vários guias e laboratórios para você aprender como funcionam as vulnerabilidades na prática.

Onde posso praticar?

É importante frisar, que procurar vulnerabilidades em sites aleátorios, mesmo que seja apenas para treinar, é CRIME, pratique apenas em ambientes controlados!

E quando se fala em praticar técnicas de hacking, os CTFs (Capture the Flag) são sem dúvida, os melhores. Eles simulam um servidor completo, com vários níveis de dificuldades e falhas propositais para você treinar suas habilidades, tendo como objetivo invadir o sistema e capturar a bandeira.

Os meus preferidos são:

Obrigado!

Obrigado por ler até aqui, espero que tenha gostado. Em caso de dúvidas, estou à disposição em minhas redes sociais!