Demonstração do Exploit CVE-2023-32784
Visão Geral do Projeto
Este repositório fornece uma demonstração do CVE-2023-32784, uma vulnerabilidade crítica encontrada no KeePay versões anteriores a 2.54. O exploit permite a recuperação da senha mestra através de dumps de memória, expondo credenciais armazenadas. Esta documentação descreve um guia passo a passo para configurar o ambiente de exploit, executar a ferramenta PoC e entender as estratégias de mitigação.
Detalhes da Vulnerabilidade
Descrição
CVE-2023-32784 é uma vulnerabilidade de vazamento de memória no KeePay versões 2.0 a 2.53, decorrente do tratamento inadequado de strings no componente Secure Textbox EX do KeePay. Cada caractere digitado da senha mestra deixa rastros na memória, tornando-a recuperável através de dumps de memória.
Principais Características:
- Gravidade: Alta
- Explorabilidade: É necessário acesso físico ou local a dumps de memória; não envolve execução remota de código.
- Impacto: A extração da senha mestra (excluindo o primeiro caractere) da memória permite acesso não autorizado às credenciais armazenadas.
Detalhes do Exploit
Ferramentas e Técnicas
O exploit utiliza a ferramenta KeePay Master Password Dumper, que emprega reconhecimento de padrões de memória para extrair caracteres de dumps de memória.
- Limitações: O primeiro caractere da senha não é recuperado, mas isso não é um obstáculo significativo, pois o restante da senha pode ser facilmente reconstruído ou adivinhado.
- Modelo de Ameaça: Esta vulnerabilidade destaca riscos em sistemas compartilhados ou não supervisionados, onde o acesso a dumps de memória (por exemplo,
pagefile.sys ou hiberfil.sys) é possível.
Plano de Exploração
Pré-requisitos
Para executar este exploit com sucesso, são necessários o seguinte ambiente e ferramentas:
- Software de Virtualização: VMware ou ferramenta equivalente para isolar o ambiente de teste.
- ISO do Windows 10: O sistema operacional para a instalação vulnerável do KeePay.
- KeePay 2.x: Uma versão anterior à 2.54.
- .NET 7 Runtime: Necessário para executar a ferramenta PoC.
- Ferramenta PoC: KeePay Password Dumper, disponível no GitHub.
1. Configuração do Ambiente
- Por que uma VM?
Máquinas virtuais oferecem um ambiente seguro e controlado para testar vulnerabilidades sem arriscar sistemas de produção.
- Passos:
- Instale o VMware e crie uma nova instância de VM com Windows 10.
- Instale o KeePay 2.x (ex.: versão 2.53) e defina uma senha mestra.
- Exemplo de Senha Mestra:
user.
2. Instalar Dependências
- Por que .NET 7?
A ferramenta PoC é construída no framework .NET 7. Usar o runtime correto garante compatibilidade.
- Passos:
- Baixe e instale o
.NET 7 do site oficial da Microsoft.
- Confirme a instalação usando:
3. Criação do Dump de Memória
- Por que fazer o dump da memória do processo KeePay?
A vulnerabilidade está no gerenciamento de memória do KeePay. Capturar um dump permite analisar a pegada de memória, onde os rastros da senha residem.
- Passos:
- Abra o KeePay e desbloqueie o banco de dados usando a senha mestra.
- Use o Gerenciador de Tarefas para criar um arquivo
.DMP para o processo do KeePay:
- Localize o KeePay no Gerenciador de Tarefas.
- Clique com o botão direito e selecione Criar Arquivo de Despejo.
- Anote a localização do arquivo
.DMP (normalmente no diretório %TEMP%).
4. Executar a Ferramenta PoC
- Por que copiar o dump para o diretório da PoC?
A ferramenta PoC processa arquivos de dump dentro do seu diretório de trabalho. Este passo garante que o arquivo correto seja analisado.
- Passos:
- Mova o arquivo
.DMP para a pasta extraída da PoC.
- Renomeie o arquivo para
KeePay.DMP para consistência.
- Abra um terminal, navegue até o diretório da PoC e execute a ferramenta:
cd Downloads/keepass-password-dumper-main
dotnet run KeePay.DMP
- Resultado Esperado:
A ferramenta exibirá os caracteres da senha, exceto o primeiro.
Exemplo de Sequência de Comandos
cd Downloads/keepass-password-dumper-main
dir
dotnet run KeePay.DMP
Estratégias de Mitigação
Correções Recomendadas
-
Atualizar o KeePay:
A atualização para KeePay 2.54 corrige a vulnerabilidade ao introduzir as seguintes melhorias:
- Gerenciamento de memória aprimorado para dados sensíveis.
- Inserções de strings aleatórias para reduzir a previsibilidade na memória.
-
Proteger Dumps de Memória:
- Limpe ou sobrescreva regularmente arquivos sensíveis como
pagefile.sys e hiberfil.sys.
- Reinicie os sistemas periodicamente para liberar dados sensíveis da memória.
-
Praticar Gerenciamento Seguro de Memória:
Desenvolvedores devem adotar melhores práticas para manipulação de strings sensíveis, como usar estruturas de dados mutáveis ou limpar buffers de memória após o uso.
Notas Importantes
- Uso Apenas para Demonstração:
Este exploit destina-se a fins educacionais em um ambiente controlado. Não use estas informações de forma maliciosa.
- Conscientização sobre o Impacto:
As organizações devem avaliar as implicações desta vulnerabilidade em sistemas compartilhados ou multiusuário e implementar mitigações adequadas.
VEJA MEU VÍDEO NO YOUTUBE PARA EXPLORAÇÃO AO VIVO DO CVE
https://youtu.be/o855F0RvI30?si=WXOtPu-jgtC31O-5
Referências
Autor
Bhargav Raj Dutta
Bacharel em Tecnologia da Informação em Segurança Cibernética e Perícia Digital (Universidade Murdoch)
Para qualquer dúvida ou consulta de colaboração, sinta-se à vontade para conectar no [LinkedIn www.linkedin.com/in/bhargav-raj-dutta-80251a1b4)