Quebrar Senha de Banco de Dados KeePass KDBX

Kali LinuxBeginner
Pratique Agora

Introdução

KeePass é um popular gerenciador de senhas de código aberto que ajuda você a gerenciar suas senhas de forma segura. Ele armazena senhas em um arquivo de banco de dados criptografado, geralmente com a extensão .kdbx. Embora altamente seguro, a força da proteção do banco de dados depende muito da senha mestra escolhida pelo usuário.

Neste laboratório, você assumirá o papel de um analista de segurança para testar a força da senha de um banco de dados KeePass. Você aprenderá o processo fundamental de quebra de senhas para fins éticos e educacionais. Usaremos o keepass2john, uma ferramenta do conjunto John the Ripper, para extrair o hash da senha de um arquivo .kdbx de amostra e, em seguida, usaremos o hashcat, uma poderosa ferramenta de recuperação de senhas, para quebrá-lo usando um ataque de dicionário.

Esta experiência prática demonstrará como os atacantes podem explorar senhas fracas e enfatizará a importância de usar senhas mestras fortes e complexas.

Criar um Banco de Dados KeePass de Amostra com uma Senha Simples

Nesta etapa, criaremos um banco de dados KeePass alvo. Para realizar um teste de quebra de senha, primeiro precisamos de um arquivo .kdbx para trabalhar. Usaremos o aplicativo KeePass para criar um novo banco de dados e protegê-lo com uma senha simples e fácil de adivinhar para fins de demonstração.

Primeiro, inicie o aplicativo KeePass digitando seu nome no terminal.

keepass2

Isso abrirá a interface gráfica do usuário do KeePass. Agora, siga estas etapas para criar o banco de dados:

  1. Na janela do KeePass, vá ao menu e clique em Arquivo -> Novo....
  2. Uma janela "Criar Novo Banco de Dados de Senhas" aparecerá. Clique em OK para prosseguir.
  3. Você será solicitado a salvar o novo arquivo de banco de dados. Navegue até o diretório /home/labex/project, nomeie o arquivo como MySecrets.kdbx e clique em Salvar.
  4. Em seguida, a janela "Novo Banco de Dados de Senhas - Etapa 2" aparecerá. É aqui que você define a senha mestra para o banco de dados. Para este laboratório, insira password123 no campo "Senha mestra" e repita-a no campo "Repetir senha". Clique em OK.
  5. A janela "Novo Banco de Dados de Senhas - Etapa 2" aparecerá. Você pode manter as configurações padrão. Clique em OK.
  6. Seu novo banco de dados vazio agora está criado e aberto. Você pode adicionar opcionalmente uma entrada de amostra, mas não é necessário para este laboratório.
  7. Finalmente, feche o aplicativo KeePass clicando em Arquivo -> Sair.

Você agora deve ter um arquivo chamado MySecrets.kdbx em seu diretório ~/project. Você pode verificar sua existência com o comando ls.

ls -l ~/project

Você deverá ver MySecrets.kdbx listado na saída.

Usar keepass2john para Extrair o Hash

Nesta etapa, extrairemos o hash da senha do arquivo MySecrets.kdbx. Ferramentas de quebra de senha como o hashcat não funcionam diretamente no arquivo do banco de dados em si. Em vez disso, elas operam em um "hash", que é uma representação criptográfica da senha mestra.

Usaremos o keepass2john, um utilitário incluído no conjunto de quebra de senhas John the Ripper, para converter as informações da chave do banco de dados KeePass em um formato que o hashcat possa entender.

Abra seu terminal e execute o seguinte comando. Este comando lê o arquivo MySecrets.kdbx e gera o hash correspondente, que redirecionamos e salvamos em um novo arquivo chamado keepass.hash.

keepass2john ~/project/MySecrets.kdbx > ~/project/keepass.hash

Este comando não produzirá nenhuma saída visível no terminal porque a saída foi redirecionada para o arquivo keepass.hash. Para ver o conteúdo do arquivo de hash recém-criado, use o comando cat:

cat ~/project/keepass.hash

A saída será uma única linha longa de texto que se parece com algo assim:

MySecrets:$keepass$*2*6000*0*b1b5b8a8a5b8a8a5b8a8a5b8a8a5b8a8*...*...

Esta string é o hash. Ela contém todas as informações necessárias para o hashcat tentar quebrar a senha, incluindo o algoritmo de criptografia, o salt e a chave mestra criptografada.

Identificar o Modo Correto do Hashcat para KeePass

Nesta etapa, determinaremos o modo correto que o hashcat deve usar ao quebrar nosso hash do KeePass. O hashcat é uma ferramenta extremamente versátil que suporta centenas de tipos diferentes de hashes, desde senhas de sistemas operacionais até formatos específicos de aplicativos.

Para funcionar corretamente, devemos dizer explicitamente ao hashcat qual tipo de hash estamos fornecendo. Isso é feito especificando um modo numérico usando o sinalizador -m. Para encontrar o número do modo para KeePass, podemos pesquisar na documentação de ajuda do hashcat.

Execute o seguinte comando em seu terminal. Ele canaliza a saída completa de ajuda do hashcat para o grep, que então filtra as linhas que contêm a palavra "keepass".

hashcat --help | grep -i keepass

O sinalizador -i no grep torna a pesquisa insensível a maiúsculas e minúsculas. A saída mostrará os modos relevantes:

13400 | KeePass 1 (AES/Twofish) / KeePass 2 (AES)             | Password Managers

A partir desta saída, podemos ver que o modo para bancos de dados KeePass 1 e 2 é 13400. Este é o número que precisaremos na etapa final para iniciar nosso ataque.

Preparar uma Wordlist para o Ataque

Nesta etapa, prepararemos uma wordlist para o nosso ataque de dicionário. Um ataque de dicionário (ou ataque de wordlist) é um método onde a ferramenta de quebra tenta cada palavra de uma lista pré-compilada como uma senha potencial. O sucesso deste ataque depende inteiramente se a senha correta está incluída na lista.

Em cenários do mundo real, atacantes usam wordlists massivas contendo milhões ou até bilhões de senhas comuns. Para este laboratório, criaremos uma wordlist personalizada muito pequena para garantir que o processo de quebra seja rápido e bem-sucedido. Mais importante, incluiremos a senha correta, password123, em nossa lista.

Use o editor de texto nano para criar um novo arquivo chamado wordlist.txt.

nano ~/project/wordlist.txt

Assim que o nano abrir, digite as seguintes senhas no editor, cada uma em uma nova linha:

password
123456
password123
qwerty
labex

Após digitar as palavras, salve o arquivo e saia do nano pressionando Ctrl+X, depois Y para confirmar e, finalmente, Enter.

Agora temos nossa wordlist pronta para ser usada pelo hashcat.

Lançar o Ataque e Recuperar a Senha Mestra

Nesta etapa final, reuniremos tudo e lançaremos o ataque de quebra de senha com o hashcat. Temos o arquivo de hash (keepass.hash), o modo de hash correto (13400) e nossa wordlist personalizada (wordlist.txt).

Agora, execute o seguinte comando em seu terminal para iniciar o ataque:

hashcat -m 13400 -a 0 ~/project/keepass.hash ~/project/wordlist.txt

Vamos detalhar este comando:

  • hashcat: O programa que estamos executando.
  • -m 13400: Especifica o modo de hash para KeePass 2, que identificamos em uma etapa anterior.
  • -a 0: Especifica o modo de ataque. O modo 0 é um ataque "Straight" ou de dicionário.
  • ~/project/keepass.hash: O caminho para o nosso arquivo contendo o hash alvo.
  • ~/project/wordlist.txt: O caminho para a nossa wordlist.

O hashcat inicializará e começará a testar as senhas da sua wordlist. Como nossa lista é muito curta e contém a senha correta, o processo será muito rápido. Você verá atualizações de status e, em breve, o processo será concluído.

Assim que o ataque for concluído, o hashcat armazenará as senhas encontradas em um arquivo chamado "potfile". Para visualizar a senha quebrada, você pode executar o mesmo comando novamente com o sinalizador --show.

hashcat -m 13400 -a 0 ~/project/keepass.hash ~/project/wordlist.txt --show

Este comando exibirá instantaneamente o hash quebrado e sua senha correspondente:

MySecrets:$keepass$*2*6000*0*...:password123

A saída mostra claramente o hash original seguido por dois pontos e a senha recuperada: password123. Parabéns, você quebrou com sucesso a senha do banco de dados KeePass!

Resumo

Neste laboratório, você realizou com sucesso um ataque de dicionário para recuperar a senha mestra de um banco de dados KeePass KDBX.

Você aprendeu um fluxo de trabalho completo e prático para auditoria de senhas, que incluiu:

  1. Criação de um banco de dados KeePass de exemplo com uma senha fraca.
  2. Uso do keepass2john para extrair o hash da senha em um formato adequado para quebra.
  3. Identificação do modo de hash correto (13400) no hashcat para bancos de dados KeePass.
  4. Preparação de uma wordlist personalizada contendo senhas potenciais.
  5. Lançamento do ataque com hashcat e recuperação bem-sucedida da senha.

Este exercício destaca um princípio de segurança crítico: a segurança de um banco de dados de senhas inteiro é tão forte quanto sua senha mestra. O uso de senhas simples, comuns ou fáceis de adivinhar as torna vulneráveis a ataques de dicionário, mesmo quando protegidas por criptografia forte. Sempre use senhas mestras longas, complexas e exclusivas para seus gerenciadores de senhas.