CÓDIGO DA DISCIPLINA: DEE345
Departamento de Engenharias e Exatas - UFPR/Palotina
Docente de Segurança da Informação
O footprint é a fase inicial de um teste de intrusão, na qual o pentester coleta o máximo de informações públicas sobre o alvo antes de iniciar qualquer interação direta.
intitle:"Currículo" "CPF"
(encontrar currículos com CPFs visíveis).site:gov.br ext:sql
(arquivos .sql expostos em sites governamentais).intitle:"VNC Viewer for Java"
(painéis de administração VNC públicos).inurl:8080 "Active Webcam Page"
(webcams ativas expostas).site:*.gov.br inurl:login
(encontra páginas de login expostas).filetype:pdf site:exemplo.com confidential
(busca PDFs com informações sensíveis).Nota: O uso não autorizado de Google Dorks para acessar dados sensíveis pode violar a Lei Carolina Dieckmann (pena: 3 meses a 1 ano).
Prática: Pesquisar exemplos de Google Dorks e listar três tipos de dados que podem vazar de websites públicos.
product:"nginx"
(encontrar servidores NGINX expostos).admin+1234 city:"São Paulo"
(credenciais padrão em dispositivos na cidade especificada).os:"Windows XP"
(dispositivos rodando Windows XP).port:80 tag:"DVR"
(DVRs expostos na porta 80).port:3389 os:"Windows Server"
(encontra servidores RDP vulneráveis).hostname:*.ufpr.br
(mapeia subdomínios de uma instituição).recon-ng -m recon/domains-hosts/hackertarget -o SOURCE=exemplo.com
enumera subdomínios). github.com/lanmaster53/recon-ng
Nota: Em 2023, subdomínios expostos do Tribunal de Justiça de SP, identificáveis por Recon-ng, facilitaram ataques de phishing.
amass enum -d ufpr.br -o subdominios.txt
). github.com/OWASP/Amass
Nota:
exiftool documento.pdf
para extrair metadados como autor e data de criação.Nota: .
Prática: Criar conta gratuita no Shodan, buscar por product:"nginx"
e observar os metadados exibidos.
Prática: Usar Wappalyzer para descobrir o servidor web e o framework de uma página governamental (ex.: gov.br).
theHarvester -d exemplo.com -b all
).Prática: Executar theHarvester -d ufpr.br -b google
para listar subdomínios expostos e avaliar riscos de exposição.
exiftool
no Linux (`sudo apt install libimage-exiftool-perl`).exiftool foto.jpg
para exibir metadados como GPS, data, modelo da câmera.Prática: Baixar uma imagem pública (ex.: de conferência) e usar exiftool
para inspecionar se há coordenadas GPS embutidas.
sudo apt install lanmap2
.lanmap2
e brincar adicionando hosts manualmente para entender visualmente a estrutura.Prática: Em laboratório, criar uma rede fictícia com três VMs e usar lanmap2
para desenhar a topologia.
recon-ng -m recon/domains-hosts/hackertarget -o SOURCE=exemplo.com
enumera subdomínios). github.com/lanmaster53/recon-ng
Nota: Em 2023, subdomínios expostos do Tribunal de Justiça de SP, identificáveis por Recon-ng, facilitaram ataques de phishing.
amass enum -d ufpr.br -o subdominios.txt
). github.com/OWASP/Amass
Nota: O vazamento do Serpro (2022) expôs subdomínios que poderiam ter sido mapeados por Amass, reforçando a necessidade de proteção.
exiftool documento.pdf
para extrair metadados como autor e data de criação.Nota: Em 2024, documentos públicos de uma prefeitura brasileira vazaram coordenadas GPS via metadados, detectáveis por exiftool.
Prática: Em um laboratório, use Recon-ng e Amass para mapear subdomínios de um domínio fictício (ex.: site-teste.com). Compare resultados com dnsdumpster e discuta riscos de exposição.
whois exemplo.com
Informações: registrante, datas, contatos, DNS. whois -h whois.registro.br ufpr.br
para obter registrante e datas de um domínio .br.dig exemplo.com any
nslookup -type=mx exemplo.com
Obtém IPs, servidores de e-mail, subdomínios.Prática: Executar whois ufpr.br
, dig ufpr.br any
e nslookup -type=mx ufpr.br
. dig +short exemplo.com A
para listar IPs associados rapidamente. Quais informações podem ajudar um atacante?
nslookup -type=soa exemplo.com
para obter registros SOA (autoridade do domínio).
Prática: Execute whois ufpr.br
e dig +short ufpr.br MX
. Analise como essas informações podem ser usadas em ataques de engenharia social.
nmap -F -O 192.168.1.10
Explicação: o parâmetro -O
tenta identificar o sistema operacional; -F
faz scan rápido de portas comuns. nmap -sV --script=vuln 192.168.1.10
para detectar serviços, versões e vulnerabilidades conhecidas.
traceroute exemplo.com
para analisar TTL e inferir saltos na rede.
sysctl -w net.ipv4.ip_default_ttl=65
.Prática: Executar ping -c 3 8.8.8.8
e observar o TTL retornado. Depois pingar uma máquina Linux local e analisar diferença de TTL.
Prática: Em um laboratório, use nmap -O -sV 192.168.1.0/24
para mapear sistemas e identificar SOs. Combine com ping
para verificar TTL.
Google Hacking / Google Dorks: Técnica que utiliza operadores avançados de busca do Google para encontrar informações sensíveis expostas inadvertidamente na web. Através de comandos específicos como site:
, filetype:
, inurl:
e intitle:
, é possível localizar arquivos confidenciais, páginas de login, configurações de servidores e outros dados que não deveriam estar públicos.
Shodan: Motor de busca especializado em dispositivos conectados à internet (IoT). Diferente do Google que indexa páginas web, o Shodan mapeia servidores, câmeras, roteadores, sistemas industriais e outros equipamentos conectados. É amplamente usado para pesquisa de segurança, identificação de vulnerabilidades e monitoramento de infraestrutura.
Censys: Plataforma de pesquisa que oferece visibilidade completa da internet através de varreduras regulares. Fornece informações detalhadas sobre hosts, certificados SSL/TLS, protocolos e serviços em execução. É utilizado para descoberta de ativos, análise de superfície de ataque e pesquisa de segurança cibernética.
WHOIS: Protocolo e base de dados que fornece informações sobre propriedade e registro de domínios e endereços IP. Através de consultas WHOIS é possível obter dados como registrante, contatos administrativos, servidores DNS, datas de criação e expiração do domínio, além de informações sobre blocos de IP e suas organizações responsáveis.
TTL (Time To Live): Valor que determina por quanto tempo uma informação DNS deve ser mantida em cache antes de ser consultada novamente no servidor autoritativo. TTLs baixos permitem mudanças mais rápidas mas geram mais tráfego DNS, enquanto TTLs altos reduzem consultas mas tornam propagação de mudanças mais lenta. É também usado em protocolos de rede para limitar o tempo de vida de pacotes.
Recon-ng: Framework modular de reconhecimento escrito em Python que automatiza coleta de informações OSINT (Open Source Intelligence). Possui módulos para enumerar domínios, subdomínios, emails, redes sociais e outras fontes públicas, organizando os dados coletados em base de dados local para análise posterior.
DNSdumpster: Ferramenta online gratuita para descoberta de DNS que mapeia subdomínios, registros MX, TXT e outros tipos de registro DNS. Oferece visualização gráfica da infraestrutura DNS do domínio alvo, facilitando o reconhecimento da superfície de ataque de uma organização.
ExifTool: Biblioteca e aplicação multiplataforma para leitura, escrita e edição de metadados em arquivos de imagem, áudio e vídeo. Extrai informações como localização GPS, data/hora de criação, modelo de câmera, software utilizado e outros dados EXIF que podem revelar informações sensíveis sobre o criador do arquivo.
Nslookup: Ferramenta de linha de comando para consulta de registros DNS. Permite verificar resolução de nomes, registros A, AAAA, MX, NS, TXT e outros tipos de registro DNS. Útil para diagnóstico de problemas de DNS e verificação de configurações de domínio.
Lanmap: Ferramenta de mapeamento de rede local que utiliza técnicas passivas e ativas para descobrir hosts, serviços e topologia de redes LAN. Gera mapas visuais da infraestrutura de rede identificando dispositivos conectados, suas funcionalidades e relacionamentos.
Nota: Estas ferramentas devem ser utilizadas apenas para fins legítimos de pesquisa, auditoria de segurança autorizada e proteção de infraestruturas próprias.
Senhas fortes reduzem drasticamente a probabilidade de sucesso em ataques de força bruta e dicionário. Fatores críticos:
Senhas fortes são cruciais para resistir a ataques. A entropia pode ser estimada com ferramentas como zxcvbn
(ex.: python -m zxcvbn "P@ssw0rd"
avalia força).
Utilização de listas de senhas e combinações comuns para tentar descascar hashes:
crunch
: criar dicionários personalizados:
crunch 8 12 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@# -o wordlist.txt
Explicação: gera palavras de comprimento de 8 a 12 usando conjuntos especificados.hashcat -m 0 -a 0 hash.txt wordlist.txt
para quebrar hashes MD5 com uma wordlist.
Nota: Em 2023, o vazamento do Banco Pan expôs hashes MD5 de senhas, quebráveis por Hashcat devido à falta de salting.
john --wordlist=wordlist.txt hashes.txt
“hashes.txt” deve conter a lista de hashes a serem testados. Use apenas em ambiente controlado e com permissões.john --format=sha512crypt --wordlist=wordlist.txt hashes.txt
para hashes SHA512.
echo -n "senha@123abc" | openssl dgst -sha256 -salt "randomsalt"
Explicação: aumenta a resistência contra rainbow tables e ataques de dicionário pré-computados.Prática: Usar John the Ripper para quebrar um pequeno conjunto de hashes MD5 gerados em aula, utilizando uma wordlist de 10 palavras comuns.
Prática: Em um laboratório, gere hashes MD5 com echo -n "senha123" | md5sum
e use Hashcat para quebrá-los com uma wordlist pequena.
Ferramenta para testes de autenticação em serviços de rede:
dvwa.local
) com uma wordlist (https://medium.com/@abdelrahman.usama.au/exploiting-and-analyzing-vulnerabilities-in-dvwa-on-metasploitable-2-a-comprehensive-write-up-8153edd5189f).
Nota: O ataque à Claro (2024) usou ransomware.
hydra -l usuario_test -P wordlist.txt ftp://192.168.1.20
Explicação: tenta combinar “usuario_test” com cada senha em “wordlist.txt” contra serviço FTP em 192.168.1.20.hydra -l admin -P wordlist.txt http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect" 192.168.1.20
para brute-force em formulários HTTP.
curl -s --socks5-hostname 127.0.0.1:9050 http://pwndb2am4tzkvold.onion -d "email=exemplo@ufpr.br"
). pwndb.onion
Prática: Em uma VM de teste com servidor FTP, executar o comando Hydra acima para verificar senhas simples (não use em sistemas de produção).
Prática: Configure Damn Vulnerable Web Application - DVWA em uma VM e use Burp Suite para testar brute-force em um formulário de login. Verifique credenciais vazadas com pwndb em um ambiente controlado.
zxcvbn: Biblioteca de análise de força de senhas desenvolvida pelo Dropbox que avalia a segurança de senhas considerando padrões comuns, dicionários, teclados e sequências. Diferente de medidores tradicionais baseados apenas em caracteres, o zxcvbn estima o tempo real necessário para quebrar uma senha através de ataques automatizados.
Crunch: Gerador de wordlists customizáveis que cria listas de senhas baseadas em critérios específicos como comprimento, conjunto de caracteres e padrões. Permite gerar combinações sistemáticas de caracteres para uso em testes de força bruta, sendo amplamente utilizado em auditorias de segurança.
Hashcat: Ferramenta avançada de recuperação de senhas que utiliza processamento em GPU para quebrar hashes criptográficos. Suporta mais de 300 algoritmos de hash diferentes e múltiplos modos de ataque incluindo dicionário, força bruta, híbrido e baseado em regras, sendo considerada uma das mais rápidas do mercado.
John the Ripper: Cracker de senhas multiplataforma que detecta automaticamente tipos de hash e aplica diferentes técnicas de ataque. Inclui modos de dicionário, força bruta incremental e ataques baseados em regras, sendo especialmente eficaz contra senhas de sistemas Unix e Windows.
Burp Suite: Plataforma integrada para testes de segurança em aplicações web que inclui proxy interceptador, spider, scanner automatizado, intruder para ataques customizados, repeater para manipulação de requisições e outras ferramentas especializadas em análise de vulnerabilidades web.
THC-Hydra: Ferramenta de ataque de força bruta paralela que suporta mais de 50 protocolos incluindo HTTP, HTTPS, FTP, SSH, Telnet, SMTP, POP3 e muitos outros. Permite ataques rápidos e eficientes contra serviços de rede utilizando listas de usuários e senhas.
pwndb: Base de dados de credenciais comprometidas obtidas de vazamentos públicos. Permite verificar se emails e senhas foram expostos em breaches de segurança conhecidos, sendo útil para verificação de comprometimento de contas e conscientização sobre reutilização de senhas.
Salted Hashes: Técnica de segurança que adiciona dados aleatórios (salt) às senhas antes do processo de hash. O salt torna cada hash único mesmo para senhas idênticas, impedindo ataques de rainbow table e dificultando significativamente ataques de força bruta pré-computados. É considerado uma prática essencial na proteção de senhas armazenadas.
Rainbow Tables: Tabelas pré-computadas que contêm hashes de senhas comuns junto com seus valores originais, permitindo reversão rápida de hashes através de lookup ao invés de cálculo em tempo real. Embora eficazes contra hashes simples, são ineficazes contra senhas com salt adequado devido ao espaço de armazenamento proibitivo necessário.
DVWA (Damn Vulnerable Web Application): Aplicação web intencionalmente vulnerável desenvolvida para treinamento e prática de testes de segurança. Inclui vulnerabilidades como SQL Injection, XSS, CSRF, Command Injection e outras falhas do OWASP Top 10 (https://owasp.org/Top10/pt_BR/). Pode ser configurada localmente via XAMPP, Docker ou máquinas virtuais, oferecendo diferentes níveis de dificuldade (baixo, médio, alto) para aprendizado progressivo de técnicas de exploração e correção de vulnerabilidades.
Aviso: Estas ferramentas devem ser utilizadas exclusivamente para testes de segurança autorizados, auditorias éticas e proteção de sistemas próprios. O uso não autorizado pode constituir crime.
Gerenciar senhas de usuários com ferramentas de administração Linux:
sudo chage -d 0 usuario_test
Explicação: força o usuário a trocar a senha no próximo login.sudo usermod -e 2025-12-31 usuario_test
Explicação: define data de expiração da conta para 31/12/2025./etc/security/pwquality.conf
(ex.: minlen=12
exige senhas de 12 caracteres).
fail2ban-client set sshd banip 192.168.1.100
bloqueia IPs suspeitos).
Prática: Criar usuário “aluno1” e usar chage -d 0 aluno1
para forçar troca de senha no login, depois configurar expiração com usermod -e
.
Prática: Configure Fail2ban em uma VM Linux para bloquear tentativas de login SSH após 3 falhas. Teste com hydra
em um ambiente ético.
Hardening: Processo de fortalecimento da segurança de sistemas computacionais através da redução da superfície de ataque. Envolve desabilitação de serviços desnecessários, aplicação de patches de segurança, configuração adequada de permissões, implementação de políticas de senha robustas, configuração de firewalls e outras medidas preventivas para minimizar vulnerabilidades e riscos de comprometimento.
PAM (Pluggable Authentication Modules): Framework de autenticação modular utilizado em sistemas Unix/Linux que permite configurar diferentes métodos de autenticação de forma flexível. Através de módulos plugáveis, o PAM pode implementar autenticação por senha, certificados, biometria, tokens, além de controles de acesso, políticas de senha e logging de tentativas de autenticação.
chage: Comando Linux para gerenciamento de informações de expiração de senhas de usuários. Permite configurar prazo de validade da senha, período de aviso antes da expiração, dias de inatividade permitidos após expiração, data de expiração da conta e outras políticas temporais relacionadas à autenticação de usuários do sistema.
usermod: Ferramenta de linha de comando para modificação de contas de usuário em sistemas Unix/Linux. Permite alterar informações como grupo primário, grupos secundários, diretório home, shell padrão, UID, bloqueio/desbloqueio de conta, data de expiração e outras propriedades da conta sem necessidade de recriação do usuário.
fail2ban: Sistema de prevenção contra intrusão que monitora arquivos de log em busca de padrões suspeitos e executa ações automatizadas de bloqueio. Detecta tentativas de força bruta, ataques de dicionário e outros comportamentos maliciosos em serviços como SSH, HTTP, FTP e email, bloqueando temporariamente IPs atacantes através de regras de firewall.
Nota: Estas ferramentas são fundamentais para manutenção da segurança de sistemas em produção e devem ser configuradas adequadamente conforme as necessidades específicas de cada ambiente.
Adicionar camada extra de segurança além da senha:
Prática: Cada aluno deve ativar 2FA em uma conta pessoal e documentar o processo (captura de tela do QR Code, primeiros códigos gerados) para apresentar em aula.
pam_google_authenticator.so
em /etc/pam.d/sshd
.
Nota: A ausência de 2FA no ataque ao Siafi (2024) permitiu desvios de R$ 10 milhões, evitáveis com autenticação robusta.
Prática: Configure 2FA em uma VM Linux com Google Authenticator e teste o login SSH com um código One-Time Password - OTP.
OTP (One-Time Password): Senha de uso único gerada automaticamente que expira após um curto período de tempo e só pode ser utilizada uma vez. Consiste em um código numérico ou alfanumérico que adiciona uma camada extra de segurança ao processo de autenticação, sendo fundamental na implementação de Autenticação de Dois Fatores (2FA). Combina algo que o usuário sabe (senha tradicional) com algo que possui (dispositivo receptor do OTP).
Métodos de Entrega: SMS, aplicativos autenticadores (Google Authenticator, Authy), tokens físicos (YubiKey), e-mail. Cada método oferece diferentes níveis de segurança e conveniência, sendo os aplicativos autenticadores e tokens físicos considerados mais seguros que SMS devido à resistência contra ataques de SIM swapping e interceptação.
Aplicação: Amplamente utilizado em sistemas bancários, redes sociais, serviços corporativos e qualquer aplicação que requeira autenticação robusta para proteção contra acesso não autorizado.
Hardening: Processo de fortalecimento da segurança de sistemas computacionais através da redução da superfície de ataque. Envolve desabilitação de serviços desnecessários, aplicação de patches de segurança, configuração adequada de permissões, implementação de políticas de senha robustas, configuração de firewalls e outras medidas preventivas para minimizar vulnerabilidades e riscos de comprometimento.
PAM (Pluggable Authentication Modules): Framework de autenticação modular utilizado em sistemas Unix/Linux que permite configurar diferentes métodos de autenticação de forma flexível. Através de módulos plugáveis, o PAM pode implementar autenticação por senha, certificados, biometria, tokens, além de controles de acesso, políticas de senha e logging de tentativas de autenticação.
chage: Comando Linux para gerenciamento de informações de expiração de senhas de usuários. Permite configurar prazo de validade da senha, período de aviso antes da expiração, dias de inatividade permitidos após expiração, data de expiração da conta e outras políticas temporais relacionadas à autenticação de usuários do sistema.
usermod: Ferramenta de linha de comando para modificação de contas de usuário em sistemas Unix/Linux. Permite alterar informações como grupo primário, grupos secundários, diretório home, shell padrão, UID, bloqueio/desbloqueio de conta, data de expiração e outras propriedades da conta sem necessidade de recriação do usuário.
fail2ban: Sistema de prevenção contra intrusão que monitora arquivos de log em busca de padrões suspeitos e executa ações automatizadas de bloqueio. Detecta tentativas de força bruta, ataques de dicionário e outros comportamentos maliciosos em serviços como SSH, HTTP, FTP e email, bloqueando temporariamente IPs atacantes através de regras de firewall.
Nota: Estas ferramentas são fundamentais para manutenção da segurança de sistemas em produção e devem ser configuradas adequadamente conforme as necessidades específicas de cada ambiente.
haveibeenpwned.com: Serviço gratuito criado por Troy Hunt que permite verificar se endereços de e-mail ou senhas foram comprometidos em vazamentos de dados conhecidos. Mantém uma base de dados com bilhões de credenciais expostas em breaches públicos, permitindo que usuários verifiquem se suas informações foram comprometidas. Inclui API para integração com outros sistemas e notificações automáticas sobre novos vazamentos.
howsecureismypassword.net: Ferramenta online que estima o tempo necessário para quebrar uma senha através de ataques de força bruta. Analisa fatores como comprimento, complexidade e uso de caracteres especiais para calcular o tempo aproximado que um computador levaria para descobrir a senha. Fornece feedback educativo sobre práticas de criação de senhas seguras.
passwordmeter.com: Medidor de força de senhas que avalia múltiplos critérios incluindo comprimento, uso de maiúsculas e minúsculas, números, símbolos, sequências e repetições. Fornece pontuação detalhada e sugestões específicas para melhorar a segurança da senha, explicando os pontos fortes e fracos identificados na análise.
Precaução: Embora estas ferramentas sejam úteis para educação e verificação, evite inserir senhas reais em uso em ferramentas online. Para senhas ativas, prefira verificadores offline ou gerencie através de gerenciadores de senhas confiáveis.
“Elo Mais Fraco”: A segurança de um sistema depende de seu elemento mais vulnerável, frequentemente o usuário, cuja senha fraca ou engenharia social podem levar a invasões que resultam em vazamentos.
Muitos vazamentos são consequência da exploração de falhas em aplicações web (já estudadas em Aula 4):
sqlmap -u "https://site.com?id=1" --dbs
para testar injeções SQL.
Nota: O vazamento da Netshoes (2023) foi causado por SQL Injection, explorável por sqlmap, resultando em multa de R$ 5 milhões pela LGPD.
nuclei -u https://site.com -t owasp-top10/
para identificar falhas do OWASP Top 10.
A Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018) impõe responsabilidades e penalidades:
openssl enc -aes-256-cbc
para proteger dados).Leitura Recomendada: Resumo da LGPD com ênfase em artigos sobre comunicação de incidentes de segurança.
Prática: Use sqlmap em um ambiente DVWA para simular uma injeção SQL. Analise o impacto de um vazamento com base na LGPD.
site:gov.br ext:sql
busca arquivos .sql em domínios governamentais.
site:gov.br ext:sql
.
nmap -F -O 192.168.1.10
faz fingerprint de SO em portas rápidas.
nmap -F -O
, não apenas -sS
, -A
ou -sU
.
crunch
gera wordlists personalizadas, definindo tamanho mínimo e máximo.
crunch
, enquanto Hydra e John quebram senhas, e Nmap faz varredura.
sudo chage -d 0 aluno1
faz o sistema solicitar nova senha no próximo login.
chage -d 0
, não passwd -l
, useradd -e
ou usermod -e
.