
PoC de Extração da Senha Mestra do KeePass para Linux
Agradecimentos a vdohney por encontrar esta vulnerabilidade e reportá-la responsavelmente, e a Dominik Reichl pelo excelente software de código aberto e rápido reconhecimento/correção do problema.
Provavelmente não. Este exploit requer acesso ao sistema de arquivos virtual /proc. Especificamente, proc/[pid]/mem. De acordo com o manual do proc, o acesso a este arquivo é regido por um modo de acesso ptrace, PTRACE_MODE_ATTACH_FSCREDS, que é limitado ao usuário root na maioria dos sistemas.
Se um agente malicioso já tem acesso a esses arquivos, você deveria ter preocupações maiores.
Por favor, atualize para o KeePass 2.54 assim que for lançado (~Julho de 2023), pois irá mitigar um pouco este problema. (Fórum)
Primeiro, começa despejando a memória do processo do KeePass.
O comportamento padrão será escanear todos os arquivos /proc/<pid>/cmdline e armazenar os pid daqueles que contêm a palavra-chave KeePass em seu argumento de linha de comando.
Em seguida, adquirirá os endereços dos mapas de memória em /proc/<pid>/maps que não estão diretamente associados a uma biblioteca, ou seja, que têm um caminho de arquivo vazio.
Então armazenará a memória de todos esses mapas em um buffer aproveitando /proc/<pid>/mem. Este seria um comportamento primitivo para despejar a memória de qualquer processo no Linux.
Ele analisará a memória para tentar encontrar strings residuais do momento em que o usuário digitou sua senha mestra, strings que se parecem com •a, ••s, •••s, em sequência. A primeira letra estará faltando. Você pode encontrar outras funcionalidades olhando o código.
gcc dump_pwd.c -o dump e você está pronto para usar.
