Hacking ético

O termo “hacker” está associado ao ato de modificar ou inventar algo para realizar funcionalidades diferentes das originais. Na computação, hacker tornou-se o indivíduo que se dedica, com intensidade incomum, a conhecer e modificar os aspectos mais internos de dispositivos, programas e redes de computadores. No entanto, muitos usam esse conhecimento para levar vantagem sobre outras pessoas, cometendo crimes digitais – usualmente conhecidos como “crackers”.

hacker image
Figura estigmatizada pelo senso comum de um hacker. Fonte: inkmedia

Com o crescimento da informatização e comunicação através da internet, a segurança da informação é uma questão cada vez mais importante para ser estudada. Alguns aspectos dessa área, como ferramentas para busca de informações, Google Hacking, ataques de engenharia social e gatilhos mentais, podem ser vistos no post Segurança da informação.

Basicamente, os sistemas devem garantir a confidencialidade da informação e a disponibilidade para quem é de direito, assim como a integridade dos dados. As vulnerabilidades são as fraquezas que podem fornecer uma porta de entrada para essas informações. Uma ameaça relaciona-se a uma ação que se aproveita dessa vulnerabilidade para realizar um ataque. O risco é uma relação entre a chance e o impacto da ameaça acontecer.

Preparação de ambiente

Uma das melhores formas de se proteger contra ataques de hackers é estudar e conhecer melhor como eles atuam, quais são as ferramentas utilizadas, etc. Para ter um ambiente para testes (“pentest”, do inglês “penetration test”) e aprendizagem, pode-se instalar o Kali Linux, usando VirtualBox para criar uma máquina virtual.

Se você já estiver usando Linux Debian, pode instalar o VirtualBox usando esses procedimentos. Nele, crie uma VM Kali Linux (mínimo 4GB de memória, 4 núcleos e 50 GB de espaço, placa de rede em modo Bridge) e aponte o disco virtual da ISO do novo sistema em “Configurações, armazenamento, Controladora IDE”.

Kali Linux é uma distribuição GNU/Linux baseada no Debian, com vários softwares pré-instalados e configurações voltadas para facilitar o uso de ferramentas para hacking. Para isso, baixe a imagem ISO Kali Linux 64-Bit Installer e aponte na VM recém-criada. Ao iniciá-la, siga os passos para instalação do sistema, escolhendo XFCE como interface gráfica e ferramentas padrão.

Docker é outra ferramenta interessante em virtualização. Ele entrega software em pacotes chamados contêineres, que são isolados uns dos outros e agrupam seus próprios softwares, bibliotecas e arquivos de configuração. Você pode instalar através do repositório com os seguintes comandos:

# install dependencies 4 cert
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
# add Docker repo gpg key
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
# install Docker
sudo apt-get install docker-ce

Você pode testar rodando uma imagem “Hello world” através do comando “sudo docker run hello-world”. O docker pode servir para executar o Bodgelt, um aplicativo web vulnerável destinado ao pentest.

Possíveis ações de hackers

Existem vários programas para pentest, sendo que uma boa parte já vem instalado no Kali Linux. Outros são módulos do python, que podem ser instalados conforme o uso. Dentre alguns procedimentos que podem ser realizados por um hacker, estão:

  • Coleta de informações do alvo (como enumeração de DNS com coleta de informações públicas disponíveis) – ex: “dnsenum –enum teste.com.br” ou “dmitry -wnspb teste.com.br”
  • Crawlers (varredura de internet) e Spiders (download completo um site)
  • Phishing (duplicação da página de login de um site para que um usuário acesse o site falso e coloque suas credenciais de acesso, sendo capturadas pelo hacker, e posterior redirecionamento para o site verdadeiro)
  • Avaliação/Exploração de vulnerabilidades (ex.: nikto, shodan)
  • Fingerprinting (usar informações que permitem detectar um serviço de rede ou software para desenvolver um cenário de ataque, explorando vulnerabilidades)
  • Denial of Service (DoS, negação de serviço partindo de uma única fonte, ou DDoS, ataques de negação de serviço distribuído)
  • Wireless Penetration (pentest em redes sem fio)
  • SQL Injection (uso de instruções em SQL dentro de uma consulta, “SQL query”, através da entradas de dados de uma aplicação, como formulários ou URL de uma aplicação, em um banco de dados)
  • Crack Passwords (descobrir senhas)
  • Man in the Middle Attacks (desvio de tráfego para um terceiro não autorizado)
  • Ataques ao cliente e engenharia social
  • Invasão de sites
  • Enganar sistemas de proteção
  • Monitoramento de rede (tcdump, wireshark) e captura de pacotes (mesmo com dados criptografados, com o SSLsplit por exemplo)

Com a detecção de vulnerabilidades, um hacker pode fazer uso de códigos para usar essa falha para causar um comportamento imprevisto, no sentido de acesso não autorizado ou ataques de negação de serviço. Esses códigos podem ser trechos de softwares, pedaços de dados ou uma sequência de comandos, sendo conhecido como exploit (em português explorar, significando “usar algo para sua própria vantagem”). Alguns comandos de rede no Linux podem ser vistos no post do link, como um dos mais poderosos, o Nmap (“Network Mapper”).

Um dos mais conhecidos é o Metasploit (MSFConsole). Através do BeEF (Browser Exploitation Framework), é possível fazer ataques diretamente através do navegador, cuja navegação é aberta. Ou seja, só de acessar um site comprometido, você já pode sofrer uma invasão, principalmente se seu computador estiver vulnerável.

Também existem sites que permitem escrever e enviar e-mails (inclusive com arquivo em anexo) personalizando nome e e-mail de envio. É possível criar arquivos executáveis em Windows que criem uma conexão reversa de modo que o computador da vítima se conecte automaticamente ao computador do invasor. Até arquivos de backup temporário (terminados com til) em PHP disponíveis na web podem ser abertos no navegador sem processar o código (ou seja, em texto puro), revelando informações sensíveis.

Existem arquivos disponíveis na internet com vários gigas ou terabytes de senhas gravadas de invasões já realizadas no mundo todo, conhecidos como “wordlists” – para criação de wordlists mais personalizadas, com usuário e senha, existe o programa Hydra. Esse arquivos alimentam o sistema de tentativa de acesso a uma área restrita, processo esse conhecido como “brute force”.

Esse procedimento pode ser realizado para descobrir uma senha de wi-fi. Como as tentativas não podem ser feitas online, já que o roteador limita o número de tentativas, o invasor pode descobrir informações sobre algum dispositivo já conectado para então desconectá-lo. Ao se reconectar, o dispositivo realiza um “handshake” com o roteador, que é capturado pelo invasor para então seguir com as tentativas de quebra de senha. Programas como airmon-ng, airodump-ng e aircrack-ng são usados para esses fins.

Geralmente as tentativas de invasão são feitas através de scripts, que automatizam o procedimento. Por isso qualquer um está sujeito a invasões. Veja dicas de segurança no uso da internet, golpes e alguns termos técnicos geralmente utilizados no post Segurança na internet.

Fontes

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.