Logo UFPR Logo Licenciatura em Computação

CÓDIGO DA DISCIPLINA: DEE345

SEGURANÇA DIGITAL - Aula 14

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 14: Testes de Invasão, Hacking Ético e Quebra de Senhas

Objetivos de Aprendizagem

Ferramentas para Testes de Aplicações Web

Armitage: GUI for Metasploit

O que é: Armitage é uma interface gráfica (GUI) para o Metasploit Framework, que ajuda na descoberta de hosts, exploração de vulnerabilidades, pós-exploit e geração de relatórios, tudo de maneira visual e colaborativa.

  • Instalação rápida:
    > sudo apt install armitage
  • Iniciar Metasploit e Armitage:
    > sudo systemctl start postgresql
    > msfdb init
    > armitage

    Armitage vai abrir em https://127.0.0.1:55553 ou em janela própria, conectando-se ao banco PostgreSQL usado pelo Metasploit.

  • Scan de Rede:
    Na interface, clique em Hosts → Nmap Scan, escolha um range (ex: 192.168.1.0/24) e execute para descobrir máquinas ativas.
  • Exploração automática:
    Selecione um host descoberto, clique em Attacks → Find Attacks, e o Armitage lista exploits recomendados conforme serviços detectados.
  • Pós-exploit e relatórios:
    Após abrir um Meterpreter, use botões de “Interact” para navegar o sistema, capturar screenshots, gravar keylogs ou criar sessões pass-the-hash. Gere relatórios em Reporting → HTML Report.

Por que usar: Ideal para quem está aprendendo Metasploit, pois visualiza o fluxo de pentest, facilita treinamentos em equipe e acelera a prototipagem de cenários de ataque.

Por que Pentest e Quebra de Senhas são Essenciais?

Em 2023, 80% das violações envolviam credenciais comprometidas (Verizon DBIR). Esta aula combina:

1. Hacking Ético e Pentest

Pentests simulam ataques autorizados para identificar vulnerabilidades, gerando relatórios com riscos e recomendações. O hacking ético exige autorização, confidencialidade e responsabilidade.

Responsabilidades e Ética

Exemplo prático: Um pentester descobre uma vulnerabilidade SQLi, mas só a explora até o ponto permitido no contrato, evitando acesso a dados sensíveis fora do escopo.

2. Metodologias de Pentest

3. Processo de Pentest

  1. Planejamento: Definir escopo, assinar contrato/NDA. Exemplo de contrato (JSON):
    {
      "scope": ["webapp.exemplo.com", "api.exemplo.com"],
      "excluded": ["vpn.exemplo.com"],
      "time_window": "2025-07-01T08:00/2025-07-01T18:00",
      "contacts": ["admin@exemplo.com", "sec@exemplo.com"]
    }
  2. Reconhecimento: Coleta passiva (OSINT, WHOIS) e ativa (Nmap, Gobuster).
    gobuster dir -u http://alvo.com -w /usr/share/wordlists/dirb/common.txt

    Explicação: Enumera diretórios web escondidos.

  3. Enumeração e Exploração: Testes de vulnerabilidades (SQLi, XSS, força bruta).
    sqlmap -u "http://alvo.com?id=1" --dbs

    Explicação: Lista bancos de dados via SQL Injection.

  4. Análise e Relatório: Quantificar riscos com CVSS, sugerir mitigações.
    cvsscalc --base 8.3 --temporal 7.5

    Explicação: Calcula pontuação CVSS para vulnerabilidades.

  5. Entrega: Relatório entregue ao cliente, com Q&A e destruição de dados de teste.

Nota: Relatórios devem incluir data/hora, duração, analistas, escopo, resultados, margens de erro e anomalias.

Fluxo do Pentest

graph TD A[Planejamento] --> B[Reconhecimento] B --> C[Enumeração] C --> D[Exploração] D --> E[Pós-Exploração] E --> F[Relatório]

4. Tipos de Teste

5. Quebra de Senhas

5.1 Força Bruta e Dicionário

Força Bruta: Testa todas as combinações possíveis. Dicionário: Usa wordlists (ex.: rockyou.txt).

# Gerar wordlist numérica (5-8 dígitos)
crunch 5 8 0123456789 -o /tmp/numlist.txt

# John the Ripper
unshadow /etc/passwd /etc/shadow > pwdhashes.txt
john --wordlist=/tmp/numlist.txt pwdhashes.txt
john --show pwdhashes.txt

Explicação: Combina passwd/shadow e quebra hashes com wordlist.

5.2 Ferramentas

5.3 Contramedidas

6. Criptoanálise

Criptoanálise busca fraquezas em sistemas criptográficos sem a chave.

7. CTFs e Prática

Desafio Prático: Quebre esta Senha

Tente decifrar o hash SHA-1: 7c4a8d09ca3762af61e59520943dc26494f8941b

Dica

Está na lista RockYou.txt

Solução
echo "7c4a8d09ca3762af61e59520943dc26494f8941b" > hash.txt
hashcat -m 100 hash.txt /usr/share/wordlists/rockyou.txt
# Resultado: 123456

8. Ferramentas e Técnicas Avançadas

9. Gráfico de Exemplo

Visualização de vulnerabilidades encontradas por tipo:

⚠️ Alerta Legal

Testes sem autorização são crime no Brasil (Art. 154-A do Código Penal). Sempre obtenha:

Quiz de Avaliação – Aula 14

1. Qual comando gera uma wordlist numérica de 5 a 8 dígitos usando crunch?

2. Para um brute force SSH com Hydra, qual sintaxe está correta?

3. Qual parâmetro do pam_faillock bloqueia contas após 5 tentativas falhas em 15 minutos?

4. Qual comando inicia o serviço auditd e habilita no boot?

5. Em Splunk ou Elastic SIEM, qual componente coleta logs de arquivos via forwarder?

6. Qual ferramenta permite capturar e analisar pacotes ARP para detectar spoofing?

7. Qual comando lsof lista processos que escutam em portas TCP?

8. Qual ferramenta e comando iniciam um honeypot SSH com Cowrie?