O teste de penetração é um processo complexo que envolve diferentes tipos de tarefas que identificam, em uma infraestrutura-alvo, as vulnerabilidades que podem ser exploradas e os danos que podem ser causados por um invasor. Em outras palavras, um processo de hacking ético é realizado para identificar quais incidentes podem ocorrer antes que eles aconteçam e, posteriormente, reparar ou melhorar o sistema para evitar esses ataques.
Para realizar um teste de penetração de forma profissional, é necessário acrescentar ao conhecimento de hacking ético outros aspectos fundamentais, como: programação, metodologias, documentação, entre outros. No entanto, essas habilidades geralmente vêm depois que você sabe como usar muitas ferramentas que fazem parte do processo de pentesting.
A seguir, listaremos 5 ferramentas que não só permitirão que você entre no mundo dos testes de penetração, mas também são amplamente utilizadas no mundo do hacking ético.
NMAP
O Nmap é uma ferramenta de código aberto usada para fazer varreduras em redes e sistemas de computador para obter informações sobre o que há neles. É uma ferramenta essencial, pois identifica possíveis vulnerabilidades que poderiam ser usadas como pontos de entrada pelos invasores.
Mais precisamente, ao executar o NMAP em um alvo específico, podemos observar os dispositivos, servidores, serviços, firewalls e outros, relacionados ao primeiro. Para fazer isso, a ferramenta envia diferentes tipos de pacotes (ping, echo e porta direcionada) para sondar um IP ou um intervalo de IPs.
Essa ferramenta geralmente é executada via terminal de comando (embora existam adaptações de GUI) no formato "nmap <Flags> <Objetivo>".
Há inúmeros sinalizadores que indicam configurações específicas para a execução. Entre as mais comumente usadas estão:
- --sn, para determinar se um alvo está disponível.
- -sT, para determinar quais portas estão abertas em um alvo usando TCP.
- -O, para identificar o sistema operacional e a versão do software em execução em um alvo.
- A, para varredura completa do alvo.
A execução sem parâmetros executa uma varredura simples nas 1.000 portas mais comuns, realizando previamente um ping para verificar se o computador está ativo (se o computador não responder ao ping, o teste da porta não será realizado).
NESSUS
Depois de identificar os serviços que está executando, você pode começar a usar ferramentas para identificar vulnerabilidades nos serviços. Nesse campo, a melhor ferramenta para entrar nesse mundo é o Nessus, outro aplicativo gratuito que, devido ao seu banco de dados e facilidade de uso, é o preferido nesse aspecto.
O Nessus usa um conjunto de plug-ins para realizar as varreduras. Cada plug-in se concentra em um tipo específico de vulnerabilidade. Por exemplo, um plug-in pode procurar vulnerabilidades em software de servidor da Web, enquanto outro plug-in pode procurar vulnerabilidades em software de e-mail.
O Nessus tem um extenso banco de dados de vulnerabilidades conhecidas em diferentes serviços e, para cada uma delas, tem plug-ins que são executados para identificar se a vulnerabilidade existe (ou não) em uma determinada máquina-alvo. Em resumo, a execução do Nessus sem parâmetros específicos testará milhares de vulnerabilidades e resultará em uma lista de vulnerabilidades identificadas.
A lógica do Nessus é semelhante à do Nmap: você precisa indicar o alvo, nesse caso o(s) endereço(s) IP, e os parâmetros. Isso permite limitar o campo de pesquisa, especialmente se os serviços foram identificados em um estágio anterior: não faz sentido pesquisar vulnerabilidades conhecidas no Linux em um computador com o Windows instalado.
A ferramenta tem, além da execução em console, uma interface gráfica amigável para aqueles que estão dando os primeiros passos no mundo do pentesting.
Metasploit
O Metasploit é uma estrutura de teste de penetração usada para realizar uma ampla gama de ataques contra sistemas e aplicativos. É uma ferramenta avançada que pode ser usada por pentesters experientes, mas também é relativamente fácil de aprender a usar para iniciantes.
O Metasploit é baseado em um banco de dados de explorações, que são programas que exploram vulnerabilidades conhecidas em sistemas e aplicativos. A estrutura oferece uma interface fácil de usar para pesquisar e selecionar exploits, bem como executá-los.
Depois que o comando para iniciar a ferramenta for executado, teremos acesso a um terminal de comando na ferramenta. Aqui, podemos escolher entre os exploits já carregados para a exploração e selecionar um deles. Em seguida, devemos configurar os parâmetros do exploit que escolhemos, como, por exemplo, o IP ou as portas de destino, os servidores de escuta HTTP e outros. Por fim, podemos começar a executar o exploit.
DVL - DVLWA
Para testar as três ferramentas acima, é necessário definir um sistema de destino, um sistema no qual os testes serão realizados. Um péssimo hábito de quem começa nesse campo é dar os primeiros passos e fazer os primeiros testes em sistemas públicos da Internet, em um ambiente real. Isso pode levar a problemas legais e não é a maneira correta (ou ética) de fazer isso. Para aprender a usar essas ferramentas, deve-se usar um ambiente de teste, ou seja, um cenário de pesquisa em que se possa chegar perto o suficiente sem o risco de afetar um ambiente de produção.
Para isso, existem duas ferramentas excelentes: Damn Vulnerable Linuxy (DVL) e Damn Vulnerable Web Application (DVWA). Embora a primeira tenha sido descontinuada, ela ainda está disponível na Internet para as primeiras etapas e testes. Trata-se de um sistema operacional e de um aplicativo da Web com todos os tipos de vulnerabilidades, de modo que a pessoa que os utiliza pode tentar explorá-los e fazer experiências.
Também é possível "construir" seu próprio sistema de teste: basta instalar qualquer sistema operacional (desativar as atualizações ou instalar uma versão antiga) e começar a instalar serviços nele em versões anteriores à mais recente. Dessa forma, você terá seu próprio sistema vulnerável para testes. Esse é o ambiente certo para dar seus primeiros passos no teste de penetração.
Kali Linux
Embora não seja uma ferramenta, mas um sistema operacional, não poderíamos deixar de fora o Kali, uma distribuição Linux projetada exclusivamente para testes de penetração. As ferramentas descritas acima (Nmap, Nessus, Metasploit) estão disponíveis e, além disso, há também muitas outras ferramentas para prática adicional.
O Kali Linux pode ser baixado como uma imagem ISO ou diretamente para o VMWare. Depois de iniciar um sistema Kali Linux, você verá um menu muito extenso com mais de 300 ferramentas para pentesters. O Nmap e o Metasploit Framework estão incluídos nessa lista, entre muitos outros.
Para uma melhor compreensão, as ferramentas são apresentadas em diferentes categorias, e aqui estão algumas das mais importantes:
- Coleta de informações: ferramentas de coleta de dados que fornecem informações sobre os alvos da análise, especialmente ferramentas de DNS, domínios e endereços IP. O Nmap está nessa categoria.
- Aplicativos da Web: Ferramentas projetadas para realizar análises em sites no nível do servidor.
- Ataques de senhas: ferramentas para quebra de senhas, como ataques de força bruta ou de dicionário para encontrar as senhas corretas para acessar um formulário ou sistema.
- Ataques sem fio: quando um invasor está conectado a uma rede sem fio, ele pode executar alguns ataques, especialmente ao tentar interceptar informações que estão sendo transmitidas por essa rede sem fio. Essas ferramentas permitem analisar a rede e diagnosticar sua segurança.
- Ferramentas de exploração: a estrutura Metasploit é a chave para esta seção, entre outras ferramentas que permitem explorar vulnerabilidades.
- Sniffing/Spoofing: o Wireshark e o Ettercap são as ferramentas mais recomendadas. Com elas, é possível ver o tráfego de rede que pode permitir o acesso a informações confidenciais, entre outros ataques.
- Engenharia reversa: o Ollydbg é um dos melhores depuradores que podem ajudar a entender quais ações um arquivo executa no sistema por meio de um processo de engenharia reversa.
- Forense: há também várias ferramentas para realizar análises forenses em um sistema, ou seja, o estado de um sistema no momento em que um determinado incidente ocorreu pode ser analisado; além disso, ações passadas ou arquivos ocultos podem ser identificados, entre outros.
Conclusões
Há uma concepção equivocada de que um teste de penetração é a execução de uma série de ferramentas em uma determinada ordem. A escolha das ferramentas, a execução de tarefas manuais e o uso de uma metodologia são apenas algumas das variáveis para se tornar um profissional de pentesting. No entanto, um fator comum em todo o processo é o fato de termos de pensar. Há dois tipos de hacker ético: aquele que apenas lê e usa o que as ferramentas dizem e aquele que interpreta e usa sua inteligência para fornecer um relatório que realmente agregue valor ao seu cliente, à empresa ou organização que precisa saber como melhorar a proteção das informações e de sua infraestrutura.
Os invasores não executam apenas ferramentas, eles pensam em como atacar. Ao realizar um Pentest, é essencial não perder de vista a nossa principal ferramenta: o pensamento. Independentemente das ferramentas de software que usamos, pensar constantemente como um invasor é a principal chave para um pentesting bem-sucedido.