Pular para o conteúdo principal

Whatsapp 47 988618255

Compartilhe

RT : Anatomia do phishing: Como identificar um e-mail falso

Anatomia do phishing: Como identificar um e-mail falso Por  Jaqueline Sousa  • Editado por  Jones Oliveira  |  07/12/2025 às 18:00 Compartilhe: Seu resumo inteligente do mundo tech! Assine a newsletter do Canaltech e receba notícias e reviews sobre tecnologia em primeira mão. E-mail inscreva-se Confirmo que li, aceito e concordo com os  Termos de Uso e Política de Privacidade do Canaltech. Reprodução/Crypto ID A arte de enganar usuários para coletar dados sensíveis, como senhas e informações bancárias, tem um nome para chamar de seu:  phishing . O que é phishing e como se proteger? Smishing e Vishing: o phishing que chega por SMS e ligação de voz Identificado originalmente na época da internet discada, lá nos anos 1990, esse tipo de ataque digital se fortaleceu ao longo das últimas décadas graças aos  avanços tecnológicos , como a popularidade de ferramentas de inteligência artificial (IA), por exemplo, mas sua essência sempre permaneceu a mesma. ...

Recuperar mensagens apagadas do WhatsApp

 

Recuperar mensagens apagadas do WhatsApp usando o incremento Msgstore

Recentemente, ao analisar um smartphone Android , foi necessário recuperar mensagens apagadas pertencentes a um chat excluído do aplicativo WhatsApp . Até recentemente, mesmo realizando uma análise usando softwares profissionais como Cellebrite UFED, Oxygen Forensic Detective e Magnet Axiom, não era possível recuperar esse chat porque ele foi excluído antes de ser inserido no backup periódico local clássico do banco de dados “msgstore.db” e, portanto, não era visível com métodos padrão de recuperação de dados.

Recentemente, foi adicionada aos softwares de perícia forense móvel a funcionalidade de recuperar chats não presentes em backups periódicos, mas acreditamos ser útil ilustrar em detalhes como era possível, mesmo antes da adição, – e ainda é – proceder manualmente à inspeção dos arquivos relacionados ao aplicativo WhatsApp e recuperar chats excluídos.

Especificamente, ilustraremos como recuperar uma parte do chat – não presente no BD ou em backups tradicionais – graças à análise de outro arquivo de backup, incremental e não completo: o “ msgstore-increment.db “.

O que é msgstore-increment.db e para que ele é usado?

O aplicativo WhatsApp, quando instalado em dispositivos Android, faz backups periódicos do banco de dados principal “msgstore.db” , que contém todas as informações relacionadas à conta do WhatsApp, incluindo mensagens.

Infelizmente, criar backups e gerenciá-los, em alguns casos, pode ser difícil para o aplicativo, especialmente em situações em que os dados gerenciados têm centenas de MB, se não GB. Por isso, para minimizar a perda de dados e otimizar o gerenciamento de memória do aparelho, o WhatsApp realiza backups incrementais entre cada backup completo, nos quais são salvas apenas as alterações ocorridas no aplicativo : por exemplo, se cem mensagens forem enviadas no dia seguinte ao backup completo, elas serão incluídas no backup incremental realizado naquele dia.

Isso significa que se cem mensagens forem enviadas após o backup completo ter sido criado e depois excluídas, elas poderão ser recuperadas do backup incremental, desde que não tenham sido excluídas antes de sua criação.

Atualmente, softwares profissionais como o Cellebrite UFED ou o Oxygen Forensics oferecem suporte à análise do backup incremental msgstore-increment, mas até alguns meses atrás esse provavelmente era um recurso em andamento, pois apareceu recentemente. Consequentemente, antigamente, para tentar recuperar mensagens apagadas, era necessário entender a lógica por trás desse tipo de dado e criar um script capaz de automatizar a extração de quaisquer mensagens apagadas, mas ainda presentes no incremento , enquanto hoje, quem tem um software profissional disponível pode realizar a recuperação diretamente pelas funções internas.

Como funciona e como extraio dados do arquivo msgstore-increment.db ?

O primeiro passo foi nos aprofundar em como o backup incremental funciona, tendo primeiro replicado um cenário em que esse recurso gerava incrementos. Ao analisar os dados gerados pelo aplicativo WhatsApp, foram identificados e analisados ​​diversos arquivos denominados “msgstore-increment.db.crypt14”, que são arquivos compactados e criptografados. Esses arquivos foram descriptografados utilizando a ferramenta “wa-crypt-tools” ( https://github.com/ElDavoo/wa-crypt-tools ) e, posteriormente, descompactados, obtendo-se arquivos estruturados em formato JSON e um arquivo binário denominado “messages.bin”.

arquivo-descriptografado-incremento

Conteúdo do arquivo msgstore-increment.db.crypt14, backup incremental

Entre os arquivos JSON, há um chamado “header.json” que contém informações úteis relacionadas aos outros arquivos na pasta, incluindo “messages.bin”. Além disso, a partir da análise realizada no arquivo binário, foi possível determinar o formato utilizado para codificação dos dados, ou seja, o protocolo protobuf.

Protobuf é um formato de serialização de dados desenvolvido pelo Google e é frequentemente usado na transmissão de informações entre aplicativos ou para armazenar dados em formato binário porque é mais leve e tem melhor desempenho que JSON ou XML.

O funcionamento é relativamente simples, é necessário definir a estrutura dos dados criando um arquivo “.proto” e utilizar um compilador para criar um script capaz de codificar os dados com base no protocolo definido. Abaixo está um exemplo de uma definição de protocolo:

Exemplo de definição para protobuf

Exemplo de definição para protobuf

Neste caso, um script baseado nesta definição será capaz de criar um arquivo binário contendo os dados de “nome” e “idade” informados no arquivo protobuf.

O mesmo acontece no aplicativo WhatsApp: o arquivo binário “messages.bin” é criado a partir de um trecho de código contido no aplicativo e tem como base um arquivo “proto” dentro do qual é definida a estrutura das mensagens e conversas.

Além disso, o arquivo binário “messages.bin” é estruturado com uma ou mais porções de dados binários codificados em protobuf, tais porções também são chamadas de segmentos ou “delimitados por comprimento” ( https://protobuf.dev/programming-guides/encoding/#length-types ). Portanto, para ler o conteúdo do arquivo é necessário primeiro separar os vários segmentos e depois prosseguir com a leitura.

Representação de segmentos contidos no arquivo messages.bin

Representação de segmentos contidos no arquivo messages.bin

Para separar cada segmento individual presente no arquivo “messages.bin” criamos um script python, que disponibilizamos em nosso repositório GitHub ( https://github.com/Forenser-lab/wa-increment-decoder/blob/main/splitter.py ), capaz de ler o arquivo “messages.bin” e criar diferentes arquivos binários, cada um contendo os dados protobuf (segmento) a serem lidos.

Em seguida, para ler cada arquivo individual, usamos a ferramenta “protobuf inspector” ( https://github.com/mildsunrise/protobuf-inspector ), um script capaz de ler um arquivo binário codificado com protobuf:

Saída da ferramenta protobuf_inspector

Saída da ferramenta protobuf_inspector

Embora tenha sido possível extrair as diversas mensagens contidas nos segmentos, elas acabaram sendo uma agregação de dados “anônimos”. Embora alguns dos dados obtidos na extração do bate-papo contivessem campos com significado intuitivo, como o texto da mensagem ou o registro de data e hora, outros eram desconhecidos, dificultando a determinação de seu significado real. Isso acontece porque não temos a definição do protocolo “proto” utilizado pelo Meta e capaz de ler corretamente os dados contidos no arquivo binário.

No entanto, existem vários projetos de engenharia reversa online que visam definir o protocolo usado no WhatsApp, incluindo o do repositório Wa-Proto GitHub ( https://github.com/wppconnect-team/wa-proto ) realizado na versão web do software. Posteriormente, tentando adaptar sua definição ao nosso propósito, conseguimos decodificar corretamente todo o conteúdo do arquivo binário “messages.bin” obtendo todos os dados em texto simples com seu significado relativo.

Neste ponto, era simples criar um script que pudesse gerar um arquivo CSV contendo todas as mensagens no binário , indicando se uma mensagem havia sido excluída. Observe que foram realizados alguns testes que também consideraram mídias (imagens, vídeos, etc.) e em alguns casos na pasta descriptografada e descompactada relacionada ao incremento há a pasta “messages.bin” contendo miniaturas de imagens excluídas (as atualizações subsequentes terão como objetivo verificar até que ponto é possível recuperar mídias ou vestígios delas).

Prova de conceito de descriptografia e análise de msgstore-increment.db

Primeiro, o cenário foi reproduzido: inicializamos um novo chat, o utilizamos por alguns dias e então finalmente o excluímos, evitando que ele ficasse armazenado no backup “msgstore.db”. Graças a essa reprodução, embora as mensagens de bate-papo não tenham sido incluídas no backup semanal, elas ainda foram incluídas no backup incremental diário.

A imagem a seguir mostra uma ilustração do cenário reproduzido. Especificamente, você pode ver como o backup principal é criado às 02:00 da manhã do dia 01/10 e, às 01:35 da tarde do mesmo dia, uma conversa com o ID 123 é criada, a qual será incluída no backup incremental às 02:00 da manhã do dia 01/11. Por fim, às 16:00 do dia 01/11 o chat com ID 123 é deletado (mas ainda está presente no backup incremental criado anteriormente):

Cronograma do cenário de referência

Cronograma do cenário de referência

Posteriormente, os backups incrementais foram extraídos do dispositivo Android, geralmente contidos no diretório “/data/media/0/Android/media/com.whatsapp/WhatsApp/Databases/” e devidamente descriptografados utilizando a chave de criptografia apropriada, obtendo-se assim os seguintes arquivos:

  • msgstore-incremento-1-2025-01-16.1.db;
  • msgstore-incremento-2-2025-01-16.1.db;
  • msgstore-incremento-3-2025-01-16.1.db;
  • msgstore-incremento-4-2025-01-16.1.db.

Os vários backups foram todos inseridos na mesma pasta e então o script que criamos para recuperar as mensagens foi executado, o que gerou um arquivo CSV contendo a lista de todas as mensagens extraídas:

Gerar arquivo CSV contendo mensagens recuperadas

Gerar arquivo CSV contendo mensagens recuperadas

Conclusões

Graças a uma análise aprofundada do gerenciamento de backup no aplicativo WhatsApp para dispositivos Android, conseguimos entender como eles são estruturados por meio do conceito de backups incrementais . A análise nos levou a criar uma pequena ferramenta, escrita em python, capaz de extrair mensagens do backup incremental “ msgstore-increment.db ” de forma estruturada e eficiente, com detalhes relevantes como o timestamp e sem a necessidade de utilizar outras ferramentas.

O recurso de backup incremental permite a recuperação de mensagens excluídas entre a criação de um backup local completo, “msgstore.db.crypt14” e outro, portanto não recuperáveis ​​por meio de técnicas tradicionais de análise forense e não excluídas do banco de dados sqlite ou de backups.

Para quem quiser experimentar ou tentar a extração dessas mensagens, deixamos abaixo o link do script para download no nosso repositório no GitHub ( https://github.com/Forenser-lab/wa-increment-decoder ).


Para informações ou orçamentos, entre em contato com o Studio Forenser Srl através da página de contato ou preenchendo o formulário abaixo.

    Nome ou Nome da Empresa *

    E-mail *

    Telefone

    Mensagem *

    Li as informações sobre o processamento de dados *
    Dou o meu consentimento para o processamento de dados *


    Comentários

    Como usar um Agente OSINT IA

    Pericia Digital

    Ebook

    OSINT NEWS NO X

    Postagens mais visitadas