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.

Ejecucion-NMAP
Figura 1: Execução da ferramenta NMAP

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.

Interfaz-grafica
Figura 2: Ferramenta NESSUS em sua versão de interface gráfica

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.

Consola-Metasploit
Figura 3: Console do Metasploit, com informações sobre a exploração CVE-2019-1663

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.

Menu-aplicaciones-Kali-Linux
Figura 4: menu de aplicativos do Kali Linux, por categoria

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.