WhatsApp na palma da mão: onde e como descobrir artefatos forenses?

WhatsApp na palma da mão: onde e como descobrir artefatos forenses?

Deseja saber quais tipos de artefatos forenses do WhatsApp existem em diferentes sistemas operacionais e onde exatamente podem ser encontrados? Então, você está no lugar certo. Este artigo da equipe de especialistas do Laboratório de Computação Forense da Group-IB Igor Mikhailov inicia uma série de publicações sobre a investigação forense do WhatsApp e sobre quais informações podem ser obtidas ao analisar um dispositivo.

Vamos esclarecer que diferentes tipos de artefatos do WhatsApp são armazenados em diferentes sistemas operacionais, e se um pesquisador consegue extrair determinados tipos de dados do WhatsApp de um dispositivo, isso não significa que tipos semelhantes de dados possam ser extraídos de outro dispositivo. Por exemplo, ao se extrair uma unidade de sistema executando o Windows, provavelmente não serão encontrados chats do WhatsApp em seus discos (a exceção são os backups de dispositivos iOS, que podem ser encontrados nesses mesmos armazenamentos). Ao se tratar de laptops e dispositivos móveis, haverá suas particularidades. Vamos discutir isso em mais detalhes.

Artefatos do WhatsApp em dispositivos Android

Para extrair artefatos do WhatsApp de um dispositivo Android, o pesquisador deve ter direitos de superusuário ('root') no dispositivo em questão ou ter a capacidade de extrair de outra forma um dump físico da memória do dispositivo ou seu sistema de arquivos (por exemplo, utilizando vulnerabilidades de software específicas do dispositivo móvel).

Os arquivos do aplicativo estão localizados na memória do telefone na seção onde os dados do usuário são armazenados. Geralmente, essa seção é chamada 'userdata'. Os subdiretórios e arquivos do programa estão localizados no caminho: '/data/data/com.whatsapp/'.

WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
Os principais arquivos que contêm artefatos forenses do WhatsApp em Android são os bancos de dados 'wa.db' e 'msgstore.db'.

O banco de dados 'wa.db' contém a lista completa de contatos do usuário do WhatsApp, incluindo número de telefone, nome exibido, timestamps e qualquer outra informação fornecida durante o cadastro no WhatsApp. O arquivo 'wa.db' está localizado no caminho: '/data/data/com.whatsapp/databases/' e tem a seguinte estrutura:

WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
As tabelas mais interessantes no banco de dados 'wa.db' para o pesquisador são:

  • 'wa_contacts'
    Esta tabela contém informações de contato: id de contato no WhatsApp, informações de status, nome de exibição do usuário, carimbos de data/hora, etc.

    Aparência da tabela:

    WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
    Estrutura da tabela

    Nome do campoO valor
    _idnúmero sequencial do registro (na tabela SQL)
    jidWhatsApp ID do contato, registrado no formato @s.whatsapp.net
    is_whatsapp_usercontém ‘1’ se o contato corresponder a um usuário real do WhatsApp, ‘0’ caso contrário
    statuscontém o texto exibido no status do contato
    status_timestampcontém um carimbo de data/hora no formato Unix Epoch Time (ms)
    numbernúmero de telefone associado ao contato
    raw_contact_idnúmero sequencial do contato
    display_namenome exibido do contato
    phone_typetipo de telefone
    phone_labeletiqueta associada ao número de contato
    unseen_msg_countnúmero de mensagens enviadas pelo contato que não foram lidas pelo destinatário
    photo_tscontém um carimbo de data/hora no formato Unix Epoch Time
    thumb_tscontém um carimbo de data/hora no formato Unix Epoch Time
    photo_id_timestampcontém um carimbo de data/hora no formato Unix Epoch Time (ms)
    given_nameo valor do campo corresponde a ‘display_name’ para cada contato
    wa_namenome do contato no WhatsApp (exibe o nome indicado no perfil do contato)
    sort_namenome do contato usado em operações de ordenação
    nicknameapelido do contato no WhatsApp (exibe o apelido indicado no perfil do contato)
    companyempresa (exibe a empresa indicada no perfil do contato)
    o títuloendereçamento (senhor/senhora; exibe o endereçamento configurado no perfil do contato)
    offsetdeslocamento
  • ‘sqlite_sequence’
    Esta tabela contém informações sobre a quantidade de contatos;
  • ‘android_metadata’
    Esta tabela contém informações sobre a localização linguística do WhatsApp.

O banco de dados 'msgstore.db' contém informações sobre mensagens enviadas, como o número do contato, texto da mensagem, status da mensagem, carimbos de data/hora, informações sobre arquivos enviados incluídos nas mensagens, etc. Arquivo 'msgstore.db' está localizado no caminho: '/data/data/com.whatsapp/databases/' e tem a seguinte estrutura:

WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
As tabelas mais interessantes no arquivo 'msgstore.db' para o pesquisador são:

  • ‘sqlite_sequence’
    Esta tabela contém informações gerais sobre este banco de dados, como o número total de mensagens armazenadas, o número total de chats, etc.

    Aparência da tabela:

    WhatsApp na palma da mão: onde e como descobrir artefatos forenses?

  • ‘message_fts_content’
    Contém o texto das mensagens enviadas.

    Aparência da tabela:

    WhatsApp na palma da mão: onde e como descobrir artefatos forenses?

  • ‘messages’
    Esta tabela contém informações como o número do contato, texto da mensagem, status da mensagem, carimbos de data/hora, informações sobre arquivos enviados incluídos nas mensagens.

    Aparência da tabela:

    WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
    Estrutura da tabela

    Nome do campoO valor
    _idnúmero sequencial do registro (na tabela SQL)
    key_remote_jidWhatsApp ID do parceiro de comunicação
    key_from_medireção da mensagem: ‘0’ – entrada, ‘1’ — saída
    key_ididentificador único da mensagem
    statusstatus da mensagem: ‘0’ – entregue, ‘4’ – aguardando servidor, ‘5’ – recebido no destino, ‘6’ – mensagem de controle, ‘13’ – mensagem aberta pelo destinatário (lida)
    need_pushtem valor ‘2’ se for uma mensagem de broadcast, caso contrário contém ‘0’
    datatexto da mensagem (quando o parâmetro ‘media_wa_type’ é igual a ‘0’)
    timestampcontém um timestamp no formato Unix Epoch Time (ms), valor obtido a partir do relógio do dispositivo
    media_urlcontém a URL do arquivo transmitido (quando o parâmetro ‘media_wa_type’ é igual a ‘1’, ‘2’, ‘3’)
    media_mime_typeTipo MIME do arquivo transmitido (quando o parâmetro ‘media_wa_type’ é igual a ‘1’, ‘2’, ‘3’)
    media_wa_typetipo de mensagem: ‘0’ – texto, ‘1’ – arquivo gráfico, ‘2’ – arquivo de áudio, ‘3’ – arquivo de vídeo, ‘4’ – cartão de contato, ‘5’ – dados geográficos
    media_sizetamanho do arquivo transmitido (quando o parâmetro ‘media_wa_type’ é igual a ‘1’, ‘2’, ‘3’)
    media_namenome do arquivo transmitido (quando o parâmetro ‘media_wa_type’ é igual a ‘1’, ‘2’, ‘3’)
    media_captionContém as palavras ‘audio’, ‘video’ para os valores correspondentes do parâmetro ‘media_wa_type’ (quando o parâmetro ‘media_wa_type’ é igual a ‘1’, ‘3’)
    media_hashhash do arquivo transmitido codificado em base64, calculado pelo algoritmo HAS-256 (quando o parâmetro ‘media_wa_type’ é igual a ‘1’, ‘2’, ‘3’)
    media_durationduração em segundos do arquivo de mídia (quando o parâmetro ‘media_wa_type’ é igual a ‘1’, ‘2’, ‘3’)
    origintem valor ‘2’ se for uma mensagem de broadcast, caso contrário contém ‘0’
    latitudedados geográficos: latitude (quando o parâmetro ‘media_wa_type’ é igual a ‘5’)
    longitudedados geográficos: longitude (quando o parâmetro ‘media_wa_type’ é igual a ‘5’)
    thumb_imageinformação de serviço
    remote_recourceID do remetente (apenas para chats em grupo)
    received_timestamphora de recebimento, contém um timestamp no formato Unix Epoch Time (ms), valor obtido a partir do relógio do dispositivo (quando o parâmetro ‘key_from_me’ possui ‘0’, ‘-1’ ou outro valor)
    send_timestampnão utilizado, geralmente tem valor ‘-1’
    receipt_server_timestamphora de recebimento central servidor, contém um timestamp no formato Unix Epoch Time (ms), valor obtido a partir do relógio do dispositivo (quando o parâmetro ‘key_from_me’ possui ‘1’, ‘-1’ ou outro valor)
    receipt_device_timestamphora de recebimento da mensagem por outro assinante, contém um timestamp no formato Unix Epoch Time (ms), valor obtido a partir do relógio do dispositivo (quando o parâmetro ‘key_from_me’ possui ‘1’, ‘-1’ ou outro valor)
    read_device_timestampo tempo de abertura (leitura) da mensagem, contém um timestamp no formato Unix Epoch Time (ms), o valor é obtido do relógio do dispositivo
    played_device_timestampo tempo de reprodução da mensagem, contém um timestamp no formato Unix Epoch Time (ms), o valor é obtido do relógio do dispositivo
    raw_dataminiatura do arquivo transmitido (quando o parâmetro ‘media_wa_type’ é igual a ‘1’ ou ‘3’)
    recipient_countnúmero de destinatários (para mensagens de broadcast)
    participant_hashusado ao transmitir mensagens com geodata
    starrednão utilizado
    quoted_row_iddesconhecido, geralmente contém o valor ‘0’
    mentioned_jidsnão utilizado
    multicast_idnão utilizado
    offsetdeslocamento

    Esta lista de campos não é exaustiva. Para diferentes versões do WhatsApp, alguns campos podem estar presentes ou ausentes. Pode haver campos adicionais ‘media_enc_hash’, ‘edit_version’, ‘payment_transaction_id’ etc.

  • ‘messages_thumbnails’
    Esta tabela contém informações sobre as imagens transmitidas e timestamps. Na coluna ‘timestamp’ o tempo é indicado no formato Unix Epoch Time (ms).
  • ‘chat_list’
    Esta tabela contém informações sobre os chats.

    Aparência da tabela:

    WhatsApp na palma da mão: onde e como descobrir artefatos forenses?

Além disso, ao investigar o WhatsApp em um dispositivo móvel com Android, deve-se prestar atenção aos seguintes arquivos:

  • Arquivo ‘msgstore.db.cryptXX’ (onde XX é um ou dois dígitos de 0 a 12, por exemplo, msgstore.db.crypt12). Contém um backup criptografado das mensagens do WhatsApp (arquivo de backup msgstore.db). O arquivo (ou arquivos) ‘msgstore.db.cryptXX’ está localizado no caminho: ‘/data/media/0/WhatsApp/Databases/’ (cartão SD virtual), ‘/mnt/sdcard/WhatsApp/Databases/’ (cartão SD físico).
  • Arquivo ‘key’. Contém a chave criptográfica. Localiza-se no caminho: ‘/data/data/com.whatsapp/files/’. Usado para descriptografar backups criptografados do WhatsApp.
  • Arquivo ‘com.whatsapp_preferences.xml’. Contém informações sobre o perfil da conta do WhatsApp. O arquivo localiza-se no caminho: ‘/data/data/com.whatsapp/shared_prefs/’.

    Fragmento do conteúdo do arquivo

    …
    9123456789 (número de telefone associado à conta do WhatsApp)
    …
    2.17.395 (versão do WhatsApp)
    …
    Hey there! I am using WhatsApp. (mensagem exibida no status da conta)
    …
    Alex (nome do proprietário da conta)
    … 
  • Arquivo ‘registration.RegisterPhone.xml’. Contém informações sobre o número de telefone associado à conta do WhatsApp. O arquivo localiza-se no caminho: ‘/data/data/com.whatsapp/shared_prefs/’.

    Conteúdo do arquivo

    
    9123456789
    
    
    912 345-67-89
    
    7
    7
    
  • Arquivo ‘axolotl.db’. Contém chaves criptográficas e outros dados necessários para a identificação do proprietário da conta. Localiza-se no caminho: '/data/data/com.whatsapp/databases/'.
  • Arquivo ‘chatsettings.db’. Contém informações sobre a configuração do aplicativo.
  • Arquivo 'wa.db'. Contém detalhes dos contatos. Uma base de dados muito interessante (do ponto de vista forense) e informativa. Pode conter informações detalhadas sobre contatos apagados.

Também é necessário prestar atenção nos seguintes diretórios:

  • Diretório ‘/data/media/0/WhatsApp/Media/WhatsApp Images/’. Contém arquivos gráficos transferidos.
  • Diretório ‘/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/’. Contém mensagens de voz em arquivos no formato .OPUS.
  • Diretório ‘/data/data/com.whatsapp/cache/Profile Pictures/’. Contém arquivos gráficos – imagens de contatos.
  • Diretório ‘/data/data/com.whatsapp/files/Avatars/’. Contém arquivos gráficos – miniaturas de imagens de contatos. Esses arquivos têm a extensão ‘.j’, mas, no entanto, são arquivos gráficos no formato JPEG (JPG).
  • Diretório ‘/data/data/com.whatsapp/files/Avatars/’. Contém arquivos gráficos – a imagem e a miniatura da imagem estabelecida como avatar pelo proprietário da conta.
  • Diretório ‘/data/data/com.whatsapp/files/Logs/’. Contém o log de funcionamento do programa (arquivo ‘whatsapp.log’) e backups dos logs de funcionamento do programa (arquivos com nomes no formato whatsapp-aaaa-mm-dd.1.log.gz).

Arquivos de log do WhatsApp:

WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
Fragmento do log2017-01-10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] missedcallnotification/init count:0 timestamp:0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] missedcallnotification/update cancel true
2017-01-10 09:37:09.768 LL_I D [1:main] app-init/load-me
2017-01-10 09:37:09.772 LL_I D [1:main] password file missing or unreadable
2017-01-10 09:37:09.782 LL_I D [1:main] statistics Text Messages: 59 enviadas, 82 recebidas / Mensagens de Mídia: 1 enviada (0 bytes), 0 recebidas (9850158 bytes) / Mensagens Offline: 81 recebidas (19522 msec de atraso médio) / Serviço de Mensagens: 116075 bytes enviados, 211729 bytes recebidos / Chamadas Voip: 1 chamada de saída, 0 chamadas de entrada, 2492 bytes enviados, 1530 bytes recebidos / Google Drive: 0 bytes enviados, 0 bytes recebidos / Roaming: 1524 bytes enviados, 1826 bytes recebidos / Dados Totais: 118567 bytes enviados, 10063417 bytes recebidos
2017-01-10 09:37:09.785 LL_I D [1:main] media-state-manager/refresh-media-state/writable-media
2017-01-10 09:37:09.806 LL_I D [1:main] app-init/initialize/timer/stop: 24
2017-01-10 09:37:09.811 LL_I D [1:main] msgstore/checkhealth
2017-01-10 09:37:09.817 LL_I D [1:main] msgstore/checkhealth/journal/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkhealth/back/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkdb/data/data/com.whatsapp/databases/msgstore.db
2017-01-10 09:37:09.819 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager-journal 21032 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list axolotl.db 184320 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-wal 436752 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-shm 32768 drw=011
2017-01-10 09:37:09.822 LL_I D [1:main] msgstore/checkdb/list msgstore.db 540672 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-wal 0 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-shm 32768 drw=011
2017-01-10 09:37:09.824 LL_I D [1:main] msgstore/checkdb/list wa.db 69632 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-wal 428512 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-shm 32768 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db 4096 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-wal 70072 drw=011
2017-01-10 09:37:09.827 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-shm 32768 drw=011
2017-01-10 09:37:09.838 LL_I D [1:main] msgstore/checkdb/version 1
2017-01-10 09:37:09.839 LL_I D [1:main] msgstore/canquery
2017-01-10 09:37:09.846 LL_I D [1:main] msgstore/canquery/count 1
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery/timer/stop: 8
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery 517 | time spent:8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] media-state-manager/refresh-media-state/internal-storage available:1,345,622,016 total:5,687,922,688

  • Diretório ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/’. Contém arquivos de áudio recebidos.
  • Diretório ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/’. Contém arquivos de áudio enviados.
  • Diretório ‘/data/media/0/WhatsApp/Media/WhatsApp Images/’. Contém arquivos gráficos recebidos.
  • Diretório ‘/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/’. Contém arquivos gráficos enviados.
  • Diretório ‘/data/media/0/WhatsApp/Media/WhatsApp Video/’. Contém arquivos de vídeo recebidos.
  • Diretório ‘/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/’. Contém arquivos de vídeo enviados.
  • Diretório ‘/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/’. Contém arquivos gráficos associados ao proprietário da conta WhatsApp.
  • Para economizar espaço em memória do smartphone Android, alguns dados do WhatsApp podem ser armazenados no cartão SD. No cartão SD, na pasta raiz, está a pasta ‘WhatsApp’, onde podem ser encontrados os seguintes artefatos deste programa:

    WhatsApp na palma da mão: onde e como descobrir artefatos forenses?

  • Diretório ‘.Share’ (‘/mnt/sdcard/WhatsApp/.Share/’). Contém cópias de arquivos que foram enviados para outros usuários do WhatsApp.
  • Diretório ‘.trash’ (‘/mnt/sdcard/WhatsApp/.trash/’). Contém arquivos excluídos.
  • Diretório ‘Databases’ (‘/mnt/sdcard/WhatsApp/Databases/’). Contém backups criptografados. Eles podem ser descriptografados se o arquivo ‘key’, extraído da memória do dispositivo analisado.

    Os arquivos localizados na subpasta ‘Databases’:

    WhatsApp na palma da mão: onde e como descobrir artefatos forenses?

  • Diretório ‘Mídia’ (‘/mnt/sdcard/WhatsApp/Mídia/’). Contém subpastas ‘WallPaper’, ‘Áudio do WhatsApp’, ‘Imagens do WhatsApp’, ‘Fotos de Perfil do WhatsApp’, ‘Vídeo do WhatsApp’, ‘Notas de Voz do WhatsApp’, nas quais estão os arquivos multimídia recebidos e enviados (arquivos gráficos, vídeos, mensagens de voz, fotos, associadas ao perfil do proprietário da conta do WhatsApp, papéis de parede).
  • Diretório ‘Imagens de Perfil’ (‘/mnt/sdcard/WhatsApp/Imagens de Perfil/’). Contém arquivos gráficos, associados ao perfil do proprietário da conta do WhatsApp.
  • Às vezes, no cartão SD pode haver um diretório ‘files’ (‘/mnt/sdcard/WhatsApp/Files/’). Neste diretório estão os arquivos que armazenam as configurações do programa e preferências do usuário.

Características do armazenamento de dados em alguns modelos de dispositivos móveis

Em alguns modelos de dispositivos móveis com sistema Android, é possível armazenar artefatos do WhatsApp em outro lugar. Isso se deve a alterações nos dados de armazenamento dos aplicativos pelo software do sistema do dispositivo móvel. Por exemplo, em dispositivos móveis da Xiaomi, há uma função que cria um segundo espaço de trabalho (‘SecondSpace’). Ao ativar essa função, a localização dos dados muda. Assim, se em um dispositivo móvel padrão sob Android os dados do usuário estão armazenados no diretório ‘/data/user/0/’ (que é um link para o habitual ‘/data/data/’), então no segundo espaço de trabalho os dados dos aplicativos estão armazenados no diretório ‘/data/user/10/’. Ou seja, pelo exemplo da localização do arquivo 'wa.db':

  • em um smartphone comum com sistema Android: /data/user/0/com.whatsapp/databases/wa.db’ (que é equivalente a ‘/data/data/com.whatsapp/databases/wa.db’);
  • no segundo espaço de trabalho do smartphone Xiaomi: ‘/data/user/10/com.whatsapp/databases/wa.db’.

Artefatos do WhatsApp em um dispositivo iOS

Diferente do sistema Android, no iOS os dados do aplicativo WhatsApp são enviados para um backup (backup do iTunes). Portanto, a extração dos dados deste aplicativo não requer a extração do sistema de arquivos ou a criação de um dump de memória físico do dispositivo em questão. A maior parte das informações significativas está contida no banco de dados ‘ChatStorage.sqlite’, que se encontra no caminho: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/’ (em alguns programas, esse caminho aparece como ‘AppDomainGroup-group.net.whatsapp.WhatsApp.shared’).

Estrutura ‘ChatStorage.sqlite’:

WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
Os dados mais informativos no banco de dados ‘ChatStorage.sqlite’ são as tabelas ‘ZWAMESSAGE’ e ‘ZWAMEDIAITEM’.

A aparência da tabela ‘ZWAMESSAGE’:

WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
Estrutura da tabela 'ZWAMESSAGE'

Nome do campoO valor
Z_PKnúmero sequencial do registro (na tabela SQL)
Z_ENTidentificador da tabela, possui o valor '9'
Z_OPTdesconhecido, geralmente contém valores de '1' a '6'
ZCHILDMESSAGESDELIVEREDCOUNTdesconhecido, geralmente contém o valor ‘0’
ZCHILDMESSAGESPLAYEDCOUNTdesconhecido, geralmente contém o valor ‘0’
ZCHILDMESSAGESREADCOUNTdesconhecido, geralmente contém o valor ‘0’
ZDATAITEMVERSIONdesconhecido, geralmente contém o valor '3', provavelmente é um indicador de mensagem de texto
ZDOCIDdesconhecido
ZENCRETRYCOUNTdesconhecido, geralmente contém o valor ‘0’
ZFILTEREDRECIPIENTCOUNTdesconhecido, geralmente contém os valores '0', '2', '256'
ZISFROMMEdireção da mensagem: ‘0’ – entrada, ‘1’ — saída
ZMESSAGEERRORSTATUSstatus de entrega da mensagem. Se a mensagem foi enviada/recebida, terá o valor '0'
ZMESSAGETYPEtipo da mensagem transmitida
ZSORTdesconhecido
ZSPOTLIGHSTATUSdesconhecido
ZSTARREDdesconhecido, não utilizado
ZCHATSESSIONdesconhecido
ZGROUPMEMBERdesconhecido, não utilizado
ZLASTSESSIONdesconhecido
ZMEDIAITEMdesconhecido
ZMESSAGEINFOdesconhecido
ZPARENTMESSAGEdesconhecido, não utilizado
ZMESSAGEDATEtimestamp no formato OS X Epoch Time
ZSENTDATEhora de envio da mensagem no formato OS X Epoch Time
ZFROMJIDWhatsApp ID do remetente
ZMEDIASECTIONIDcontém o ano e o mês de envio do arquivo de mídia
ZPHASHdesconhecido, não utilizado
ZPUSHPAMEnome do contato que enviou o arquivo de mídia no formato UTF-8
ZSTANZIDidentificador único da mensagem
ZTEXTtexto da mensagem
ZTOJIDWhatsApp ID do destinatário
OFFSETdeslocamento

A aparência da tabela ‘ZWAMEDIAITEM’:

WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
Estrutura da tabela 'ZWAMEDIAITEM'

Nome do campoO valor
Z_PKnúmero sequencial do registro (na tabela SQL)
Z_ENTidentificador da tabela, possui o valor '8'
Z_OPTdesconhecido, geralmente contém valores de '1' a '3'.
ZCLOUDSTATUScontém o valor '4' se o arquivo foi carregado.
ZFILESIZEcontém o tamanho do arquivo (em bytes) para os arquivos carregados
ZMEDIAORIGINdesconhecido, geralmente possui o valor '0'
ZMOVIEDURATIONduração do arquivo de mídia, para arquivos PDF pode conter o número de páginas do documento
ZMESSAGEcontém o número sequencial (número diferente do que está na coluna 'Z_PK')
ZASPECTRATIOrelação de aspecto, não utilizado, geralmente possui o valor '0'
ZHACCURACYdesconhecido, geralmente possui o valor '0'
ZLATTITUDElargura em pixels
ZLONGTITUDEaltura em pixels
ZMEDIAURLDATEtimestamp no formato OS X Epoch Time
ZAUTHORNAMEautor (para documentos, pode conter o nome do arquivo)
ZCOLLECTIONNAMEnão utilizado
ZMEDIALOCALPATHnome do arquivo (com o caminho) no sistema de arquivos do dispositivo
ZMEDIAURLURL onde o arquivo de mídia estava localizado. Se o arquivo foi transmitido de um assinante para outro, ele foi criptografado, e sua extensão será indicativa do arquivo transmitido — .enc
ZTHUMBNAILLOCALPATHcaminho para a miniatura do arquivo no sistema de arquivos do dispositivo
ZTITLEtítulo do arquivo
ZVCARDNAMEhash do arquivo de mídia, ao transmitir um arquivo para um grupo pode conter o identificador do remetente
ZVCARDSTRINGcontém informações sobre o tipo de arquivo transmitido (por exemplo, image/jpeg), ao transmitir um arquivo para um grupo pode conter o identificador do destinatário
ZXMPPTHUMBPATHcaminho para a miniatura do arquivo no sistema de arquivos do dispositivo
ZMEDIAKEYdesconhecido, provavelmente contém uma chave para decifrar o arquivo criptografado.
ZMETADATAmetadados da mensagem transmitida
Deslocamentodeslocamento

Outras tabelas de banco de dados interessantes ‘ChatStorage.sqlite’ são:

  • ‘ZWAPROFILEPUSHNAME’. Relaciona o ID do WhatsApp com o nome do contato;
  • ‘ZWAPROFILEPICTUREITEM’. Relaciona o ID do WhatsApp com a foto de perfil do contato;
  • ‘Z_PRIMARYKEY’. A tabela contém informações gerais sobre este banco de dados, como o número total de mensagens armazenadas, o número total de chats etc.

Além disso, ao investigar o WhatsApp em um dispositivo móvel com iOS, é importante prestar atenção nos seguintes arquivos:

  • Arquivo ‘BackedUpKeyValue.sqlite’. Contém chaves criptográficas e outros dados necessários para a identificação do proprietário da conta. Localiza-se no caminho: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Arquivo ‘ContactsV2.sqlite’. Contém informações sobre os contatos do usuário, como nome completo, número de telefone, status do contato (em formato de texto), ID do WhatsApp etc. Localizado no caminho: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Arquivo ‘consumer_version’. Contém o número da versão do aplicativo WhatsApp instalado. Localizado no caminho: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Arquivo ‘current_wallpaper.jpg’. Contém o papel de parede atual do aplicativo WhatsApp. Localizado no caminho: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Em versões antigas do aplicativo, é utilizado o arquivo ‘wallpaper’, que está localizado no caminho: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’.
  • Arquivo ‘blockedcontacts.dat’. Contém informações sobre os contatos bloqueados. Localizado no caminho: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • Arquivo ‘pw.dat’. Contém a senha criptografada. Localizado no caminho: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/’.
  • Arquivo ‘net.whatsapp.WhatsApp.plist’ (ou o arquivo ‘group.net.whatsapp.WhatsApp.shared.plist’). Contém informações sobre o perfil da conta do WhatsApp. O arquivo está localizado no caminho: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/’.

O conteúdo do arquivo ‘group.net.whatsapp.WhatsApp.shared.plist’ WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
Também é necessário prestar atenção nos seguintes diretórios:

  • Diretório ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/’. Contém miniaturas de contatos, grupos (arquivos com extensão .thumb), avatares de contatos, avatar do proprietário da conta do WhatsApp (arquivo ‘Photo.jpg’).
  • Diretório ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/’. Contém arquivos de mídia e suas miniaturas
  • Diretório ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’. Contém o log de funcionamento do aplicativo (arquivo ‘calls.log’) e backups dos logs de funcionamento do aplicativo (arquivo ‘calls.backup.log’).
  • Diretório ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/’. Contém figurinhas (arquivos no formato ‘.webp’).
  • Diretório ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/’. Contém os logs de funcionamento do aplicativo.

Artefatos do WhatsApp no Windows

Os artefatos do WhatsApp no Windows podem ser encontrados em vários locais. Antes de tudo, são diretórios que contêm arquivos executáveis e auxiliares do aplicativo (para Windows 8/10):

  • ‘C:Program Files (x86)WhatsApp’
  • ‘C:Users%User profile% AppDataLocalWhatsApp’
  • ‘C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp’

No diretório ‘C:Users%User profile% AppDataLocalWhatsApp’ o arquivo de log está localizado ‘SquirrelSetup.log’, onde estão as informações sobre a verificação de atualizações e instalação do programa.

No diretório ‘C:Users%User profile% AppDataRoamingWhatsApp’ existem várias subpastas:

WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
Arquivo ‘main-process.log’ contém informações sobre o funcionamento do programa WhatsApp.

Subpasta ‘databases’ contém o arquivo ‘Databases.db’, mas este arquivo não contém nenhuma informação sobre chats ou contatos.

Os arquivos mais interessantes do ponto de vista forense estão localizados no diretório ‘Cache’. Principalmente são arquivos com nomes ‘f_*******’ (onde * é um número de 0 a 9), contendo arquivos e documentos multimídia criptografados, mas entre eles também há arquivos não criptografados. Arquivos ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’, localizados nesta mesma subpasta, são de especial interesse. Os arquivos ‘data_0’, ‘data_1’, ‘data_3’ contêm links externos para arquivos multimídia criptografados e documentos transmitidos.

Exemplo de informações contidas no arquivo ‘data_1’WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
Além disso, o arquivo ‘data_3’ pode conter arquivos gráficos.

Arquivo ‘data_2’ contém avatares dos contatos (podem ser recuperados através da pesquisa pelos nomes dos arquivos).

Os avatares contidos no arquivo ‘data_2’:

WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
Desta forma, não é possível encontrar os chats diretamente na memória do computador, mas é possível encontrar:

  • arquivos multimídia;
  • documentos transmitidos via WhatsApp;
  • informações sobre os contatos do proprietário da conta.

Artefatos do WhatsApp no MacOS

No MacOS, é possível encontrar tipos de artefatos do WhatsApp semelhantes aos que estão no sistema Windows.

Os arquivos do programa estão localizados nos diretórios:

  • ‘C:ApplicationsWhatsApp.app’
  • ‘C:Applications._WhatsApp.app’
  • ‘C:Users%User profile%LibraryPreferences’
  • ‘C:Users%User profile%LibraryLogsWhatsApp’
  • ‘C:Users%User profile%LibrarySaved Application StateWhatsApp.savedState’
  • ‘C:Users%User profile%LibraryApplication Scripts’
  • ‘C:Users%User profile%LibraryApplication SupportCloudDocs’
  • ‘C:Users%User profile%LibraryApplication SupportWhatsApp.ShipIt’
  • ‘C:Users%User profile%LibraryContainerscom.rockysandstudio.app-for-whatsapp’
  • ‘C:Users%User profile% Library Mobile Documents WhatsApp Accounts’
    Neste diretório existem subpastas cujos nomes são números de telefone associados ao proprietário da conta do WhatsApp.
  • ‘C:Users%User profile%LibraryCachesWhatsApp.ShipIt’
    Neste diretório, encontram-se informações sobre a instalação do programa.
  • ‘C:Users%User profile%PicturesBiblioteca de Mídia iPhoto.photolibraryMasters’, ‘C:Users%User profile%PicturesBiblioteca de Mídia iPhoto.photolibraryThumbnails’
    Estas pastas contêm arquivos de sistema do programa, incluindo fotos e miniaturas de contatos do WhatsApp.
  • ‘C:Usuários%Perfil do usuário%BibliotecaCachesWhatsApp’
    Nesta pasta, existem vários bancos de dados SQLite que são usados para o cache de dados.
  • ‘C:Usuários%Perfil do usuário%BibliotecaSuporte à AplicaçãoWhatsApp’
    Nesta pasta, existem várias subpastas:

    WhatsApp na palma da mão: onde e como descobrir artefatos forenses?
    No diretório ‘C:Usuários%Perfil do usuário%BibliotecaSuporte à AplicaçãoWhatsAppCache’ contêm arquivos ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’ e arquivos com nomes ‘f_*******’ (onde * é um número de 0 a 9). As informações sobre quais dados esses arquivos contêm estão descritas na seção 'Artefatos do WhatsApp no Windows'.

    No diretório ‘C:Usuários%Perfil do usuário%BibliotecaSuporte à AplicaçãoWhatsAppIndexedDB’ podem conter arquivos multimídia (os arquivos não têm extensões).

    Arquivo ‘main-process.log’ contém informações sobre o funcionamento do programa WhatsApp.

Fontes

  1. Análise forense do WhatsApp Messenger em smartphones Android, por Cosimo Anglano, 2014.
  2. WhatsApp Forensics: Exploração de sistemas de arquivos e bancos de dados no aplicativo Android e iOS por Ahmad Pratama, 2014.

Nos próximos artigos desta série:

Decodificação de bancos de dados criptografados do WhatsAppArtigo que fornecerá informações sobre como a geração da chave de criptografia do WhatsApp ocorre e exemplos práticos mostrando como decifrar os bancos de dados criptografados deste aplicativo.
Extração de dados do WhatsApp de armazenamento em nuvemArtigo que descreverá quais dados do WhatsApp são armazenados em nuvens e explicará os métodos de extração desses dados de serviços de armazenamento em nuvem.
Extração de dados do WhatsApp: exemplos práticosArtigo que descreverá passo a passo quais programas utilizar e como extrair dados do WhatsApp de diferentes dispositivos.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster