John the Ripper (JtR) é uma das ferramentas de hacking que a equipe de RI da Varonis usou em sua primeira demonstração de ataque cibernético ao vivo e um dos programas de quebra de senhas mais populares que existem. Neste artigo, vamos dar uma olhada em John the Ripper, mostrar como ele funciona e explicar por que é importante.
Notas sobre hacking: hacking é uma busca por informações sobre sistemas, projetos e humanos. Neste caso, estamos fazendo referência a softwares e sistemas operacionais.
Hackear não é necessariamente um ato criminoso, embora possa ser uma ferramenta usada com intenções perigosas. Defendemos o hacking ético. Permaneça no lado luminoso da Força.
O JtR é compatível com várias tecnologias de criptografia comuns e prontas para uso para sistemas baseados em UNIX e Windows (por exemplo, os computadores Mac são baseados em UNIX). O JtR detecta automaticamente a criptografia nos dados com hash e a compara com um grande arquivo de texto simples que contém senhas populares, criptografando cada senha e interrompendo quando encontra uma correspondência. Simples.
Em nossa incrível demonstração de ataque cibernético ao vivo, a equipe de RI da Varonis demonstra como roubar uma senha com hash, usar o JtR para encontrar a senha verdadeira e usá-la para fazer login em uma conta administrativa. Esse é um caso de uso muito comum para o JtR.
Além disso, o JtR inclui listas de senhas comuns em mais de 20 idiomas. Essas listas fornecem ao JtR milhares de senhas possíveis para gerar valores de hash correspondentes para adivinhar com precisão a senha de destino. Como a maioria das pessoas escolhe senhas fáceis de lembrar, o JtR é costuma ser muito eficaz, mesmo com suas listas de senhas prontas para uso.
O JtR está incluído nas versões de pentesting do Kali Linux.
O JtR é principalmente um cracker de senhas usado durante exercícios de pentesting que pode ajudar as equipes de TI a identificar senhas fracas e políticas de senha ruins.
Aqui está uma lista de tecnologias de criptografia disponíveis no JtR:
Essa é a lista “oficial”. O JtR é open source, portanto, se a criptografia escolhida não estiver na lista, continue procurando. Alguém pode já ter escrito uma extensão para ele.
O JtR é um projeto de código aberto, então você pode decidir se quer baixar e compilar o código-fonte por conta própria, baixar os binários executáveis ou encontrá-lo como parte de um pacote de pentesting.
O site oficial do John the Ripper está no Openwall, onde você pode encontrar o código-fonte e os binários e entrar no GitHub para contribuir com o projeto.
O JtR está disponível no Kali Linux como parte de seus metapacotes de quebra de senha.
Vamos examinar vários comandos básicos que você precisa saber para começar a usar o John the Ripper. Para começar, tudo o que você precisa é de um arquivo que contenha um valor de hash para descriptografar.
Para ver uma lista de comandos no JtR, execute este comando:
.\john.exe
Os principais modos de quebra de senhas do John the Ripper são o modo Quebra simples, o modo Dicionário e o modo Incremental. O modo Quebra simples é a maneira mais rápida e eficiente se você tiver um arquivo de senha completo para quebrar. O modo Dicionário compara hashes a uma lista conhecida de possíveis correspondências de senha. O modo Incremental é o mais poderoso e possivelmente não será concluído. É a abordagem clássica de força bruta que tenta todas as combinações de caracteres até que um resultado possível seja encontrado.
A melhor maneira de tentar quebrar uma senha é permitir que o JtR tente vários modos comuns de quebra. O comando abaixo diz ao JtR para tentar o modo “simples”, depois mudar para as listas de palavras-padrão contendo senhas prováveis e, em seguida, tentar o modo “incremental”.
.\john.exe passwordfile
Você também pode baixar diferentes listas de palavras da internet e criar suas próprias para executar o JtR com o parâmetro –wordlist.
.\john.exe passwordfile –wordlist=”wordlist.txt”
Para especificar um modo de cracking, use o parâmetro exato para o modo.
.\john.exe --single passwordfile .\john.exe --incremental passwordfile
Mangling é um pré-processador no JtR que otimiza a lista de palavras para acelerar o processo de cracking. Use o parâmetro –rules para definir as regras de mangling.
.\john.exe --wordlist=”wordlist.txt” --rules --passwordfile
Para ver a lista de senhas quebradas, use o parâmetro –show.
.\john.exe –show passwordfile
Se a lista de senhas quebradas for longa, você poderá filtrá-la com parâmetros adicionais. Você também pode redirecionar o output usando o redirecionamento básico no shell. Por exemplo, para ver se você quebrou algum usuário root (UID=0), use o parâmetro –users.
.\john.exe --show --users=0 passwordfile
Como alternativa, para mostrar usuários de grupos privilegiados, use –groups.
.\john.exe –-show –-groups=0,1 passwordfile
Abaixo está o comando do JtR do nosso webinar de ataque cibernético ao vivo. Nesse cenário, nosso hacker usou o kerberoast para roubar um Tíquete de concessão de tíquete (TGT) Kerberos, contendo o hash a ser quebrado, que foi salvo em um arquivo chamado ticket.txt. No nosso caso, a lista de palavras usada é o clássico arquivo de senha rockyou do Kali Linux, e o comando foi definido para destacar o progresso a cada três segundos.
.\john.exe "--format=krb5tgs" "ticket.txt" "--wordlist=”rockyou.txt" "--progress-every=3"
Para ver algumas táticas de defesa e pentesting com a Varonis, confira os webinars de ataque cibernético ao vivo. Escolha o horário de sua preferência!