Integrar John the Ripper com Outras Ferramentas

Kali LinuxBeginner
Pratique Agora

Introdução

John the Ripper (JtR) é uma ferramenta poderosa e popular de código aberto para quebra de senhas. Embora seja altamente eficaz por si só, seu verdadeiro potencial é desbloqueado quando integrado a um fluxo de trabalho de teste de segurança mais amplo com outras ferramentas. A automação por meio de scripts pode aumentar ainda mais sua eficiência, permitindo tarefas de auditoria e recuperação de senhas simplificadas e repetíveis.

Neste laboratório, você explorará como o John the Ripper pode ser integrado a outras ferramentas de segurança comuns. Cobriremos os fluxos de trabalho conceituais para usar o JtR com Hashcat, Metasploit e Aircrack-ng. Em seguida, você terá experiência prática escrevendo um script bash simples para automatizar uma sessão de cracking do JtR.

Usar John the Ripper com Hashcat (Conceitual)

Nesta etapa, discutiremos a integração conceitual do John the Ripper e do Hashcat. Ambos são ferramentas líderes em quebra de senhas, mas possuem pontos fortes diferentes. O John the Ripper é renomado por seu desempenho de cracking baseado em CPU e sua capacidade de detectar automaticamente muitos tipos de hash. O Hashcat, por outro lado, é o cracker de senhas mais rápido do mundo, destacando-se em ataques baseados em GPU.

Embora sejam frequentemente vistos como alternativas, eles podem ser usados juntos em um fluxo de trabalho. Por exemplo, você pode usar utilitários do John the Ripper, como unshadow, para extrair e combinar arquivos de senha e shadow de um sistema Linux.

Fluxo de Trabalho de Exemplo:

  1. Obtenha os arquivos /etc/passwd e /etc/shadow de um sistema Linux alvo.
  2. Use o utilitário unshadow do JtR para combiná-los em um único arquivo contendo nomes de usuário e hashes: unshadow passwd shadow > hashes_for_cracking.txt.
  3. Alimente o arquivo resultante hashes_for_cracking.txt para o Hashcat para alavancar suas poderosas capacidades de cracking por GPU.

Esta etapa é puramente conceitual para ajudá-lo a entender as sinergias potenciais. Não há comandos para executar aqui. A principal conclusão é que utilitários de uma ferramenta podem ser usados para preparar dados para outra.

Integrar John the Ripper com Metasploit (Conceitual)

Nesta etapa, exploraremos a integração conceitual do John the Ripper com o Metasploit Framework. O Metasploit é um poderoso framework de teste de penetração usado para descobrir, explorar e validar vulnerabilidades. Uma tarefa comum de pós-exploração é extrair hashes de senha de um sistema comprometido. É aqui que o JtR se torna uma parte crucial do fluxo de trabalho.

Fluxo de Trabalho de Exemplo:

  1. Um atacante obtém acesso inicial a um sistema usando um exploit do Metasploit.
  2. Usando um módulo de pós-exploração dentro de uma sessão Meterpreter, como run post/windows/gather/hashdump, o atacante extrai os hashes de senha (por exemplo, hashes NTLM do banco de dados SAM do Windows).
  3. O atacante salva esses hashes em um arquivo em sua máquina local.
  4. O John the Ripper é então usado offline para quebrar esses hashes, utilizando várias técnicas como ataques de lista de palavras (wordlist attacks) ou força bruta (brute-force).
  5. Uma vez que uma senha é quebrada, ela pode ser usada para escalar privilégios ou pivotar para outros sistemas na rede, potencialmente usando outros módulos do Metasploit como psexec.

Esta integração demonstra um ciclo de vida de ataque típico onde o Metasploit é usado para acesso e o JtR é usado para cracking de credenciais offline. Esta etapa é conceitual e nenhum comando precisa ser executado.

Usar John the Ripper com Aircrack-ng (Conceitual)

Nesta etapa, discutiremos como o John the Ripper pode ser usado com o conjunto de ferramentas Aircrack-ng para quebrar senhas de Wi-Fi. O Aircrack-ng é um conjunto de ferramentas para auditar redes sem fio. Uma parte fundamental de uma auditoria WPA/WPA2 é capturar o handshake de 4 vias (4-way handshake), que ocorre quando um cliente se conecta a um ponto de acesso. Este handshake contém um hash que pode ser quebrado para revelar a chave pré-compartilhada (PSK) da rede.

Fluxo de Trabalho de Exemplo:

  1. Use ferramentas do conjunto Aircrack-ng, como airodump-ng, para monitorar o tráfego sem fio e capturar o handshake WPA/WPA2. Isso é tipicamente salvo como um arquivo .cap.
  2. O arquivo .cap em si não é um hash. Ele deve ser convertido para um formato que um cracker de senhas possa entender. Você pode usar aircrack-ng ou outras ferramentas como hcxpcaptool para essa conversão.
  3. Por exemplo, você pode usar aircrack-ng com a opção -J para criar um arquivo compatível com Hashcat (.hccapx), que o John the Ripper também pode processar. O comando seria algo como: aircrack-ng your_capture.cap -J output_hash_file.
  4. Finalmente, você usa o John the Ripper para quebrar o arquivo de hash usando uma lista de palavras (wordlist): john --wordlist=passwords.txt output_hash_file.hccapx.

Este fluxo de trabalho mostra como uma ferramenta especializada para um domínio (Wi-Fi) pode fornecer o material bruto para uma ferramenta de propósito geral como o JtR processar. Esta etapa é conceitual e nenhum comando é necessário.

Script John the Ripper para Automação

Nesta etapa, passaremos da teoria para a prática. A maneira mais comum de "integrar" o John the Ripper é encapsulando sua interface de linha de comando em scripts. Isso permite automatizar tarefas repetitivas e integrá-lo em cadeias de ferramentas maiores. Criaremos um script bash simples para executar um ataque de lista de palavras e, em seguida, mostraremos os resultados.

Primeiro, vamos criar o script de automação. Use o editor nano para criar um novo arquivo chamado crack.sh em seu diretório atual, ~/project.

nano crack.sh

Agora, adicione o seguinte conteúdo ao arquivo. Este script receberá um arquivo de hash e uma lista de palavras como entrada, executará o John e exibirá quaisquer senhas quebradas.

#!/bin/bash

if [ "$#" -ne 2 ]; then
  echo "Usage: $0 <hash_file> <wordlist_file>"
  exit 1
fi

HASH_FILE=$1
WORDLIST=$2

echo "[-] Starting John the Ripper..."
john --wordlist="$WORDLIST" "$HASH_FILE" > /dev/null 2>&1

echo "[+] Cracking attempt finished."
echo "[+] Showing cracked passwords:"
john --show "$HASH_FILE"

Salve o arquivo e saia do nano pressionando Ctrl+X, depois Y e, em seguida, Enter.

Em seguida, precisamos tornar o script executável.

chmod +x crack.sh

Agora, vamos criar um arquivo de lista de palavras simples para o nosso teste. O script de configuração para este laboratório já criou um arquivo chamado hashes.txt contendo um hash de exemplo. A senha para este hash é password123.

echo "password123" > wordlist.txt

Finalmente, execute seu script de automação. Forneça a ele o arquivo hashes.txt e seu novo wordlist.txt.

./crack.sh hashes.txt wordlist.txt

Você deverá ver a seguinte saída, indicando que o script executou o John com sucesso e encontrou a senha.

[-] Starting John the Ripper...
[+] Cracking attempt finished.
[+] Showing cracked passwords:
user1:password123

1 password hash cracked, 0 left

Agora você criou com sucesso um script simples para automatizar o John the Ripper!

Compreender a API do John the Ripper (se aplicável)

Nesta etapa final, esclareceremos o conceito de uma "API do John the Ripper". Quando os desenvolvedores falam sobre APIs (Application Programming Interfaces), eles geralmente se referem a uma API REST para serviços web ou a uma biblioteca bem documentada para uma linguagem de programação específica.

O John the Ripper não possui uma API pública formal e estável nesse sentido. Sua interface principal é a linha de comando (CLI), que é poderosa, flexível e projetada para interação e scripting, como você demonstrou na etapa anterior.

A funcionalidade principal do JtR está contida em uma biblioteca, às vezes referida como libjohn. É tecnicamente possível para programadores C avançados vincular-se a esta biblioteca para construir aplicações personalizadas. No entanto, esta é uma tarefa complexa, não um caso de uso típico, e não é suportada como uma API pública.

Portanto, para a grande maioria dos usuários e integrações, "usar a API do JtR" significa:

  • Chamar o executável do JtR a partir de um script (por exemplo, Bash, Python, Perl).
  • Analisar a saída da linha de comando da ferramenta.
  • Interagir com seus arquivos, como o arquivo de hash de entrada e o arquivo john.pot, onde as senhas quebradas são armazenadas.

A principal conclusão é que a integração e a automação com o John the Ripper são alcançadas através de scripting CLI, e não de uma biblioteca de programação tradicional ou API web.

Resumo

Neste laboratório, você explorou como aprimorar as capacidades do John the Ripper integrando-o com outras ferramentas e automatizando sua execução.

Você aprendeu os fluxos de trabalho conceituais para combinar o JtR com outras ferramentas de segurança importantes:

  • Usando as utilidades do JtR para preparar hashes para a quebra baseada em GPU do Hashcat.
  • Usando o JtR para quebrar hashes obtidos durante a pós-exploração com o Metasploit Framework.
  • Usando o JtR para quebrar handshakes de Wi-Fi capturados pelo conjunto Aircrack-ng.

Em seguida, você colocou a teoria em prática escrevendo e executando um script bash para automatizar uma sessão de quebra de senha, que é o principal método para integrar o JtR em fluxos de trabalho maiores. Finalmente, você esclareceu que a "API" do JtR é sua poderosa interface de linha de comando, que é a chave para sua flexibilidade e potencial de integração.