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: 3.842 ]

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

A camada de enlace de dados

Sudo 1.8.12 - Parte I - Manual

Block Hosts: Bloqueando ataques de força-bruta (brute force) em FTP, SSH e outros

PLC no Linux alguém já pensou nisso?

LogBook: Documentação de implementação e manutenção

Leitura recomendada

Postfix + AD (Active Directory)

Zimbra 8.0 no CentOS 6.3

Postfix com autenticação em base LDAP no Slackware

Qmail Auditor, auditoria no servidor Qmail

Solução completa de serviço de correio baseado em software livre (Debian GNU/Linux)

  
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