Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
KeeFarceReborn — Uma DLL autônoma que exporta bancos de dados em texto claro uma vez injetada no processo do KeePass. | Kitploit
Ferramentas/GitHubGitHub/d3lb3/keefarcereborn
Ataques de SenhaGeração de PayloadsExfiltração de DadosPós-ExploraçãoRed TeamingGeração de Shellcode
GitHubd3lb3/keefarcereborn

KeeFarceReborn

Uma DLL autônoma que exporta bancos de dados em texto claro uma vez injetada no processo do KeePass.

Ver Repositório
2993523há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

KeeFarce Reborn

Uma DLL autônoma que exporta bancos de dados em texto claro uma vez injetada no processo do KeePass.

Fortemente inspirada pelos grandes projetos KeeFarce, KeeThief e KeePassHax.

Mais uma ferramenta de extração do KeePass, por quê?

Há alguns anos, @denandz lançou o KeeFarce, a primeira ferramenta ofensiva projetada para extrair bancos de dados do KeePass em texto claro. Ela funciona injetando uma DLL no processo em execução e, em seguida, percorre o heap usando ClrMD para encontrar os objetos necessários e invocar o método de exportação nativo do KeePass via reflexão. Sua única desvantagem na época era que vários arquivos precisavam ser gravados no alvo (a DLL de extração + a DLL do ClrMD + o injetor + uma DLL de bootstrap).

Um ano depois, @tifkin_ e @harmj0y lançaram uma revisão aprofundada das técnicas ofensivas direcionadas ao KeePass (embora não esteja mais disponível no blog do harmj0y, os artigos podem ser encontrados na Wayback Machine: parte 1, parte 2). Isso resultou no lançamento do KeeThief, uma ferramenta capaz de descriptografar a chave-mestre do KeePass (inclusive quando métodos alternativos de autenticação são usados). Funcionou tão bem que os desenvolvedores do KeePass adicionaram um parâmetro para mitigar essa técnica (ela pode ser desativada editando o arquivo de configuração do KeePass se o usuário tiver direitos suficientes, o que é bastante comum).

Essas ferramentas rapidamente se tornaram minhas preferidas durante testes de penetração, mas logo se tornaram obsoletas, pois suas técnicas de injeção (ou seja, o famoso grupo de APIs Win32 VirtualAllocEx, WriteProcessMemory, CreateRemoteThread, WriteProcessMemory, etc.) agora disparam detecção imediatamente. @snovvcrash abordou esse problema fazendo um fork do KeeThief (agora em um repositório privado, mas ainda acessível aqui) para melhorar o mecanismo de injeção com D/Invoke, escrevendo um ótimo artigo detalhando o processo que seguiu. Embora tenha demonstrado a viabilidade de manter o KeeThief, acho difícil implementar regularmente novas técnicas de injeção, pois o código do KeeThief está fortemente ligado ao seu injetor.

@holly-cracker também lançou o KeePassHax, que vem como uma única DLL e usa apenas reflexão para descriptografar a chave-mestre do KeePass. Inspirado por esse trabalho, decidi fazer o mesmo com o KeeFarce e escrever minha própria ferramenta de extração do KeePass com as seguintes características:

  • Autossuficiente ⇒ nenhuma interação com o código do injetor é necessária para funcionar.
  • Usa apenas bibliotecas .NET nativas (sem ClrMD) ⇒ melhor compatibilidade + uma DLL de arquivo único torna o processo de injeção mais fácil.
  • Exporta o banco de dados (como o KeeFarce) ⇒ não há necessidade de recuperar o .kdbx nem de usar uma compilação personalizada do KeePass para inserir a chave-mestre recuperada.

O KeeFarce Reborn também fornece uma DLL de plugin do KeePass para fazer o KeePass se injetar sem se preocupar com injetores!

Compilação

Como o código depende apenas do .NET Framework, sem dependências externas, ele deve compilar facilmente no Visual Studio 2015 ou superior.

Exemplo de Uso

O KeeFarce Reborn não inclui um injetor para carregar a DLL no processo do KeePass. Isso é deliberado; como os injetores se tornam obsoletos a cada poucos meses, você terá que usar o seu. As partes a seguir demonstram duas maneiras típicas de realizar a injeção.

Fazer o KeePass injetar o KeeFarce Reborn como um plugin

Pré-requisito: acesso de escrita ao diretório de plugins do KeePass.

O KeePass possui um framework de plugins para fornecer funcionalidades adicionais aos usuários. Ele funciona carregando uma DLL no processo do KeePass, permitindo que desenvolvedores de plugins executem ações dentro do domínio de aplicação do KeePass.

Como resultado, podemos abusar dessa funcionalidade para carregar o KeeFarce Reborn como um plugin, sem precisar usar um injetor externo! Basta compilar o projeto KeeFarceRebornPlugin e copiar a DLL para o diretório de plugins (localizado na raiz do KeePass, ou seja, "C:\Program Files\KeePass Password Safe 2\Plugins" para uma instalação global).

Para que o projeto seja compilado corretamente, você precisará copiar a versão do assembly do KeePass.exe alvo para o diretório KeeFarceRebornPlugin, ou usar o PLGX se quiser que o plugin resultante seja compatível com qualquer versão do KeePass.

Na próxima vez que o KeePass for iniciado e um banco de dados for desbloqueado, a DLL será carregada e a injeção será realizada. Se o KeePass já estiver em execução, você precisará aguardar a próxima reinicialização para que a injeção ocorra (ou forçar a reinicialização você mesmo).

⚠️ Assim que um plugin é carregado, o arquivo DLL fica protegido contra gravação até que o KeePass seja fechado. Tenha isso em mente para garantir que você não deixe plugins maliciosos para trás durante as avaliações.

Se você não tiver acesso de escrita ao diretório de plugins do KeePass, pode dar uma olhada no artigo do Quarkslab, que demonstra como carregar plugins com menos privilégios por meio do cache de plugins.

Realizar injeção de shellcode

Pré-requisito: o KeePass está em execução + um banco de dados desbloqueado pelo usuário + você tem direitos suficientes para injetar no processo do KeePass.

Como eu pessoalmente acho mais fácil injetar shellcode de forma furtiva do que DLL em um processo remoto, a primeira coisa que normalmente faço é gerar um shellcode independente de posição a partir da nossa DLL. Aparentemente, o projeto donut de @odzhan e @TheWover atende perfeitamente às nossas necessidades!

Compilamos o donut a partir de um commit no branch dev, pois ele corrige uma issue no gerenciamento de domínios de aplicação que nos impediria de realizar reflexão no domínio padrão.

git clone https://github.com/TheWover/donut/
cd donut
git checkout 9d781d8da571eb1499122fc0e2d6e89e5a43603c

Podemos compilar facilmente a partir do x64 Native Tools Command Prompt do Visual Studio usando o utilitário nmake:

nmake -f Makefile.msvc

Gerar o shellcode é tão simples quanto:

.\donut.exe "C:\KeeFarceReborn\KeePassReborn\bin\Release\KeeFarceReborn.dll" -c KeeFarceReborn.Program -m Main -e 1

  [ Donut shellcode generator v0.9.3
  [ Copyright (c) 2019 TheWover, Odzhan

  [ Instance type : Embedded
  [ Module file   : "C:\KeeFarceReborn\KeePassReborn\bin\Release\KeeFarceReborn.dll"
  [ Entropy       : None
  [ File type     : .NET DLL
  [ Class         : KeeFarceReborn.Program
  [ Method        : Main
  [ Target CPU    : x86+amd64
  [ AMSI/WDLP     : continue
  [ Shellcode     : "loader.bin"
Baixar ferramenta