Utilizar a Opção --rules com Regras Personalizadas
Nesta etapa, você explorará a opção --rules, que permite ao John the Ripper aplicar um conjunto de regras predefinidas ou personalizadas a palavras de uma lista de palavras (wordlist). Regras são transformações poderosas que podem ser aplicadas a palavras, como anexar números, alterar maiúsculas/minúsculas ou duplicar caracteres, aumentando significativamente as chances de quebrar senhas que são variações de palavras comuns.
O John vem com vários conjuntos de regras integrados, como Wordlist (padrão), Single e Jumbo. Você pode listar os conjuntos de regras disponíveis usando:
john --list=rules
Este comando exibirá uma lista de conjuntos de regras.
Agora, vamos usar um arquivo de regras personalizado. Criamos um arquivo de regras personalizado simples chamado custom_rules.txt na configuração, que contém regras como :$[0-9] (anexar um dígito) e Az (capitalizar a primeira letra).
Vamos tentar quebrar user1 novamente, mas desta vez usando nossas regras personalizadas. Suponha que a senha de user1 fosse Password123 (P maiúsculo, depois 123). Nossa lista de palavras (wordlist) contém apenas password. A regra Az capitalizará a primeira letra e :$[0-9] anexará um dígito.
john --wordlist=/home/labex/project/wordlist.txt --rules=/home/labex/project/custom_rules.txt /home/labex/project/passwords.txt --format=sha512crypt
Este comando aplicará as regras de custom_rules.txt a cada palavra em wordlist.txt antes de tentar combiná-las com os hashes. Por exemplo, password pode se tornar Password, password0, password1, etc., e então Password0, Password1, etc.
Você também pode combinar regras com a opção --stdout (que abordaremos na próxima etapa) para ver quais palavras são geradas por suas regras:
john --wordlist=/home/labex/project/wordlist.txt --rules=/home/labex/project/custom_rules.txt --stdout
Este comando imprimirá todas as palavras geradas pela aplicação de custom_rules.txt a wordlist.txt em seu terminal. Isso é útil para depurar seus conjuntos de regras.
A opção --rules é um recurso poderoso para estender a eficácia dos ataques de lista de palavras (wordlist attacks) gerando variações comuns de senhas.