Recuperando senhas de e-mails esquecidas usadas no Claws-Mail

Este artigo mostrará como recuperar senhas de e-mails esquecidas, usadas no cliente Claws-Mail. Se você usa Claws-Mail e por algum motivo esqueceu-se da senha digitada e precisa dela, este artigo é para você.

[ Hits: 4.188 ]

Por: Perfil removido em 23/06/2017


Explicação do projeto e preparação do programa versão C



Introdução

Claws-Mail é um cliente de e-mail que está ganhando popularidade, em relação aos famosos clientes Thunderbird, Evolution e KMail (usei muito este). Sua interface usa GTK+, é altamente configurável e podem ser usados diversos plugins.

Se por acaso, algum cabeça-de-bagre (como este que vos escreve) esquecer-se da senha usada na configuração de uma das contas de e-mail (ou de todas, o que não foi o caso, felizmente) usadas e por algum motivo a recuperação for problemática, então, calma! Há solução.

Claws-Mail possui um extenso arquivo de configuração em ~/.claws-mail/accountrc, cujo tamanho depende mais é do número de contas de e-mails configuradas pelo usuário do sistema no momento.

Pode-se visualizar apenas os passwords de recebimento de e-mails (POP3) através do comando:

grep ^password ~/.claws-mail/accountrc

E ainda, pode-se visualizar apenas os passwords de envio de e-mails (SMTP) através do comando:

grep ^smtp_password ~/.claws-mail/accountrc

Tudo muito simples, por meio de texto, no melhor estilo Unix-Like. Pena que a segurança das senhas seja questionável.

Continuando, existe hospedado no excelente GitHub, o projeto Clawsmail Password Decrypter, cuja finalidade é descriptografar senhas do arquivo de configuração de contas do Claws-Mail.

Preparando a versão em C

Lá no projeto, existem três arquivos principais, que são:
  • Makefile;
  • clawsmail-passdecrypt.c;
  • clawsmail-passdecrypt.py.

Pelo "Makefile", descobre-se alguma coisa da compilação do "clawsmail-passdecrypt.c", como a necessidade da Glib e da Libcrypt, presente no pacote da Libc. No caso do arquivo "clawsmail-passdecrypt.py", irá depender de módulos do Python 2.

Para compilação do programa em C, deve-se ter em Debian (o sistema em que testei agora) a biblioteca Glib, mais precisamente o pacote "libglib2.0-dev", onde consta header glib.h. Verifique abaixo headers e, se possivelmente, será necessário instalar mais algo:

Headers usados em "clawsmail-passdecrypt.c":
  • string.h
  • stdio.h
  • glib.h

Headers usados em "passcrypt.c" (será apresentado mais adiante):
  • sys/types.h
  • stdio.h
  • memory.h
  • ctype.h
  • stdlib.h
  • unistd.h

Headers usados em passcrypt.h (será apresentado mais adiante):
  • glib.h

No Debian (e em breve Devuan, se der certo), instale os itens de compilação com os comandos (como root):

# apt-get install build-essential
# apt-get install libglib2.0-dev

Preste atenção nos nomes dos pacotes adicionais que estes comandos baixam. Pode ser útil algum dia.

Ainda há mais uma dependência, o código-fonte do Claws-Mail. Está em:
Ou, se quiser usar recursos Debian, faça assim também (do jeito mais difícil), vá até seu arquivo /etc/apt/sources.list e garanta que exista uma linha que seja do repositório de fontes. Ficará assim:

deb http://sft.if.usp.br/debian/ jessie contrib non-free main
deb-src http://sft.if.usp.br/debian/ jessie contrib non-free main

A primeira linha do exemplo (podem haver mais), que começa com "deb", é uma linha comum de repositório. Ela baixa pacotes normalmente. A segunda linha, que é quase uma cópia da primeira, baixa arquivos de código-fonte, ou tarballs, de onde se criaram os pacotes ".deb". Isto pode incluir repositórios contrib e non-free. Caso não exista uma linha que comece com "deb-src", copie a linha de um repositório corrente e mude o começo para "deb-src".

Agora vem o comando (novamente como root):

# apt-get source claws-mail

Isto baixará os arquivos:
  • claws-mail_3.11.1-3+deb8u1.debian.tar.xz
  • claws-mail_3.11.1-3+deb8u1.dsc
  • claws-mail_3.11.1.orig.tar.xz

E descompactará o com "orig" no nome (o outro tarball é o fonte com modificações feitas pelo projeto Debian e o último, é um arquivo-texto com toda a espécie de informações, desde dependências até assinatura PGP do GnuPG), criando o diretório "claws-mail-3.11.1".

Agora, é só baixar o arquivo do projeto de descriptografia no link master.zip e descompactar com o comando:

unzip master.zip

Criando o diretório clawsmail-password-decrypter-master no mesmo local e dentro dele os arquivos:

clawsmail-passdecrypt.c Makefile clawsmail-passdecrypt.py README.md

Eu copiaria o diretório de fontes do Claws-Mail para /usr/src e acertaria as permissões, o que parece-me o mais natural.

O arquivo "clawsmail-passdecrypt.c" possui cento e trinta e oito linhas, tornando não tão complicada sua análise (coragem!). Já o Makefile possui quarenta e uma linhas, bem simples também.

Agora, para a compilação, falta mais um passo: dois arquivos que constam nos fontes do Claws-Mail. Podem ser copiados dos fontes ou ser usado um parâmetro no Makefile para a localização deles. Em caso de se copiar, precisam ser localizados os arquivos "passcrypt.c" e "passcrypt.h" (use: /caminho/para/os/fontes/do/claws-mail, se a localização for diferente, obviamente):

find /usr/src/claws-mail-3.11.1/ -iname "pass*"

Que retornará:

/usr/src/claws-mail-3.11.1/src/plugins/pgpcore/passphrase.c
/usr/src/claws-mail-3.11.1/src/plugins/pgpcore/passphrase.h
/usr/src/claws-mail-3.11.1/src/common/passcrypt.h
/usr/src/claws-mail-3.11.1/src/common/passcrypt.c
/usr/src/claws-mail-3.11.1/src/common/passcrypt.h.in


Copia-se para o diretório o necessário:

cp -v /usr/src/claws-mail-3.11.1/src/common/passcrypt.? clawsmail-password-decrypter-master

Ou, copia-se de onde seus fontes estão. Estes dois arquivos juntos não somam mais de duzentas linhas.

E com isto, já é possível compilar. Execute o comando make. Não precisa ser root. Se der erro, reporte-os nos comentários. Pode ser falta de algum pacote ou outra coisa a ser resolvida. O legal de fazer cópia dos fontes, é que fica mais fácil de apreciar o conjunto e fuçar mais no código, sem o risco de se perder no resto dos fontes. Evite dispersão.

Já para o simples uso sem ficar copiando, adicione o seguinte parâmetro na linha do make:

make CLAWSMAIL_SRC=/caminho/para/os/fontes/do/claws-mail

Ou, como fiz aqui:

make CLAWSMAIL_SRC=/usr/src/claws-mail-3.11.1/src/

Segundo a recomendação do site, há ainda mais uma observação: caso seja usada a versão FreeBSD do Claws-Mail, deve-se acrescentar ainda o seguinte parâmetro ao make:

make CFLAGS='-DNEED_DES_ECB'

E combine os dois parâmetros, se for o caso.

A versão FreeBSD usa outro método de criptografia. Usa-se DES-ECB em FreeBSD, ao invés de DES-CFB usado pelo Linux. DES-ECB não permite criptografia em blocos múltiplos de 8. Claws-Mail não verifica como foi feita a criptografia, sendo que a criptografia falhará sem suspeitas no FreeBSD, se o comprimento da senha em bytes for não-múltiplo de 8, dando problema na coisa toda. É mais técnica a coisa e ainda não estou inteirado do tema.

Se tudo der certo, deverá surgir o arquivo "clawsmail-passdecrypt" que, quando executado, resultará na seguinte mensagem:

Usage: ./clawsmail-passdecrypt [ENCRYPTED_PASS1...|FILE...]
Se quiser, você poderá dar strip no binário, removendo algumas informações talvez desnecessárias no momento. Isto reduz o tamanho, apesar deste já ser pequeno, pouco mais de vinte e um mil bytes aqui. Depois de dar strip, o tamanho cai quase para 1/3. A operação é feita com o comando:

strip -s clawsmail-passdecrypt

*Lembrando de que não é obrigatório.

Agora, seguirá sobre a versão em Python. A explicação do uso será posterior a esta.

    Próxima página

Páginas do artigo
   1. Explicação do projeto e preparação do programa versão C
   2. Preparando a versão Python do programa e usando ambas
   3. Referências
Outros artigos deste autor

5 fatores (subjetivos) que tornam o software proprietário insustentável para as micro, pequenas e médio empresas

Introduzindo prazerosamente aos poucos... o shell script

antiX: uma distro versátil

Clonezilla - Servidor de imagens (Parte II)

Introdução à ponteiros em C

Leitura recomendada

Sendmail sem complicações

Configuração do DKIM no Debian com Postfix e Múltiplos Domínios

Acessando contas do Hotmail pelo Mozilla Mail

Servidor de e-mail com anti-vírus: MailScanner + Exim + Clamav + Cpanel/WHM

Instalação do Postfix e OpenWebmail no Slackware

  
Comentários
[1] Comentário enviado por removido em 23/06/2017 - 14:22h

Pessoal, o claws-mail sofreu uma atualização e o accountrc mudou um pouquinho. Por isso é necessário acrescentar alguma informações sobre a quebra de senhas. Farei isto logo mais.

[2] Comentário enviado por lordestark em 23/06/2017 - 17:47h

Daooooooora, FreeBSD é mais tecnico kkkk


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts