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

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

Se você deseja saber quais tipos de artefatos forenses do WhatsApp existem em diferentes sistemas operacionais e onde exatamente eles podem ser encontrados, então este é o lugar para você. Este artigo é de um especialista do Laboratório de Computação Forense do Grupo-IB Igor Mikhailov inicia uma série de postagens sobre a perícia forense do WhatsApp e quais informações podem ser obtidas na análise do aparelho.

Observemos imediatamente que diferentes sistemas operacionais armazenam diferentes tipos de artefatos do WhatsApp, e se um pesquisador pode extrair certos 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, se uma unidade de sistema com sistema operacional Windows for removida, os bate-papos do WhatsApp provavelmente não serão encontrados em seus discos (com exceção de cópias de backup de dispositivos iOS, que podem ser encontradas nas mesmas unidades). A apreensão de laptops e dispositivos móveis terá características próprias. Vamos falar sobre isso com mais detalhes.

Artefatos do WhatsApp em dispositivo Android

Para extrair artefatos do WhatsApp de um dispositivo Android, o pesquisador deve ter direitos de superusuário ('raiz') no dispositivo sob investigação ou ser capaz de extrair de outra forma um despejo de memória física do dispositivo ou de seu sistema de arquivos (por exemplo, usando vulnerabilidades de software de um dispositivo móvel específico).

Os arquivos do aplicativo estão localizados na memória do telefone, na seção onde os dados do usuário são salvos. Via de regra, esta seção é denominada 'dados do usuário'. Subdiretórios e arquivos de programa estão localizados ao longo do caminho: '/data/data/com.whatsapp/'.

WhatsApp na palma da sua mão: onde e como encontrar artefatos forenses?
Os principais arquivos que contêm artefatos forenses do WhatsApp no ​​sistema operacional Android são bancos de dados 'wa.db' и 'msgstore.db'.

No banco de dados 'wa.db' contém a lista completa de contatos de um usuário do WhatsApp, incluindo número de telefone, nome de exibição, carimbos de data/hora e qualquer outra informação fornecida durante o registro no WhatsApp. Arquivo 'wa.db' localizado ao longo do caminho: '/data/data/com.whatsapp/databases/' e tem a seguinte estrutura:

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

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

    Aparência da mesa:

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

    Nome do campo Valor
    _id número de sequência de registro (na tabela SQL)
    jid ID de contato do WhatsApp, escrito no formato <número de telefone>@s.whatsapp.net
    is_whatsapp_user contém '1' se o contato corresponder a um usuário real do WhatsApp, '0' caso contrário
    estado contém o texto exibido no status do contato
    status_timestamp contém um carimbo de data/hora no formato Unix Epoch Time (ms)
    número número de telefone associado ao contato
    raw_contact_id entre em contato com o número de série
    display_name nome de exibição do contato
    tipo de telefone tipo de telefone
    etiqueta_telefone rótulo associado ao número de contato
    contagem_de_msg_invisíveis número de mensagens que foram enviadas por um contato, mas não foram lidas pelo destinatário
    foto_ts contém um carimbo de data/hora no formato Unix Epoch Time
    polegar_ts contém um carimbo de data/hora no formato Unix Epoch Time
    foto_id_timestamp contém um carimbo de data/hora no formato Unix Epoch Time (ms)
    nome dado o valor do campo corresponde a 'display_name' para cada contato
    wa_name Nome do contato do WhatsApp (o nome especificado no perfil do contato é exibido)
    nome_classificação nome do contato usado em operações de classificação
    apelido apelido do contato no WhatsApp (o apelido especificado no perfil do contato é exibido)
    Empresa empresa (é exibida a empresa especificada no perfil do contato)
    título título (Sra./Sr.; é exibido o título configurado no perfil do contato)
    compensar deslocamento
  • 'sqlite_sequence'
    Esta tabela contém informações sobre o número de contatos;
  • 'android_metadados'
    Esta tabela contém informações sobre a localização do idioma do WhatsApp.

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

WhatsApp na palma da sua mão: onde e como encontrar artefatos forenses?
As tabelas mais interessantes do 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 mesa:

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

  • 'mensagem_fts_content'
    Contém o texto das mensagens enviadas.

    Aparência da mesa:

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

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

    Aparência da mesa:

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

    Nome do campo Valor
    _id número de sequência de registro (na tabela SQL)
    key_remote_jid ID do WhatsApp do parceiro de comunicação
    chave_de_me direção da mensagem: '0' – entrada, '1' – saída
    chave_id identificador exclusivo de mensagem
    estado status da mensagem: '0' – entregue, '4' – aguardando no servidor, '5' – recebida no destino, '6' – mensagem de controle, '13' – mensagem aberta pelo destinatário (lida)
    precisa_push tem o valor '2' se for uma mensagem de difusão, caso contrário contém '0'
    dados, texto da mensagem (quando o parâmetro 'media_wa_type' é '0')
    timestamp contém um carimbo de data/hora no formato Unix Epoch Time (ms), o valor é obtido do relógio do dispositivo
    media_url contém a URL do arquivo transferido (quando o parâmetro 'media_wa_type' é '1', '2', '3')
    media_mime_type Tipo MIME do arquivo transferido (quando o parâmetro 'media_wa_type' é igual a '1', '2', '3')
    mídia_wa_type tipo de mensagem: '0' - texto, '1' - arquivo gráfico, '2' - arquivo de áudio, '3' - arquivo de vídeo, '4' - cartão de contato, '5' - geodados
    tamanho_mídia tamanho do arquivo transferido (quando o parâmetro 'media_wa_type' é '1', '2', '3')
    nome_da_mídia nome do arquivo transferido (quando o parâmetro 'media_wa_type' for '1', '2', '3')
    mídia_caption Contém as palavras 'audio', 'video' para os valores correspondentes do parâmetro 'media_wa_type' (quando o parâmetro 'media_wa_type' é '1', '3')
    mídia_hash Hash codificado em base64 do arquivo transmitido, calculado usando o algoritmo HAS-256 (quando o parâmetro 'media_wa_type' é igual a '1', '2', '3')
    duração_mídia duração em segundos para o arquivo de mídia (quando 'media_wa_type' é '1', '2', '3')
    origem tem o valor '2' se for uma mensagem de difusão, caso contrário contém '0'
    latitude geodata: latitude (quando o parâmetro 'media_wa_type' é '5')
    longitude geodata: longitude (quando o parâmetro 'media_wa_type' é '5')
    imagem_do polegar Serviço de informação
    recurso_remoto ID do remetente (somente para bate-papos em grupo)
    carimbo_de_hora_recebido hora do recebimento, contém um carimbo de data e hora no formato Unix Epoch Time (ms), o valor é obtido do relógio do dispositivo (quando o parâmetro 'key_from_me' possui '0', '-1' ou outro valor)
    envio_timestamp não usado, geralmente tem o valor '-1'
    recibo_servidor_timestamp hora recebida pelo servidor central, contém um timestamp no formato Unix Epoch Time (ms), o valor é retirado do relógio do dispositivo (quando o parâmetro 'key_from_me' tem '1', '-1' ou outro valor
    recibo_device_timestamp horário em que a mensagem foi recebida por outro assinante, contém um carimbo de data e hora no formato Unix Epoch Time (ms), o valor é obtido do relógio do dispositivo (quando o parâmetro 'key_from_me' possui '1', '-1' ou outro valor
    read_device_timestamp hora de abertura (leitura) da mensagem, contém um carimbo de data/hora no formato Unix Epoch Time (ms), o valor é retirado do relógio do dispositivo
    jogado_device_timestamp tempo de reprodução da mensagem, contém um carimbo de data/hora no formato Unix Epoch Time (ms), o valor é obtido do relógio do dispositivo
    dados não tratados miniatura do arquivo transferido (quando o parâmetro 'media_wa_type' for '1' ou '3')
    recipiente_conta número de destinatários (para mensagens de difusão)
    participante_hash usado ao transmitir mensagens com geodados
    estrelado não usado
    quoted_row_id desconhecido, geralmente contém o valor '0'
    mencionado_jids não usado
    multicast_id não usado
    compensar deslocamento

    Esta lista de campos não é exaustiva. Para diferentes versões do WhatsApp, alguns campos podem estar presentes ou ausentes. Além disso, campos podem estar presentes 'media_enc_hash', 'editar_versão', 'pagamento_transação_id' и т.д.

  • 'mensagens_thumbnails'
    Esta tabela contém informações sobre imagens transferidas e carimbos de data/hora. Na coluna 'timestamp', a hora é indicada no formato Unix Epoch Time (ms).
  • 'lista_de_chat'
    Esta tabela contém informações sobre bate-papos.

    Aparência da mesa:

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

Além disso, ao examinar o WhatsApp em um dispositivo móvel com Android, você deve 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 de mensagens do WhatsApp (arquivo de backup msgstore.db). Arquivos) 'msgstore.db.cryptXX' localizado ao longo do caminho: '/dados/mídia/0/WhatsApp/Bancos de dados/' (cartão SD virtual), '/mnt/sdcard/WhatsApp/Bancos de dados/ (cartão SD físico)'.
  • arquivo 'chave'. Contém uma chave criptográfica. Localizado ao longo do 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 sua conta do WhatsApp. O arquivo está localizado ao longo do caminho: '/data/data/com.whatsapp/shared_prefs/'.

    Fragmento de conteúdo do arquivo

    <?xml version="1.0" encoding="ISO-8859-1"?>
    …
    <string name="ph">9123456789</string> (номер телефона, ассоциированный с аккаунтом WhatsApp)
    …
    <string name="version">2.17.395</string> (версия WhatsApp)
    …
    <string name="my_current_status">Hey there! I am using WhatsApp.</string> (сообщение, отображаемое в статусе аккаунта)
    …
    <string name="push_name">Alex</string> (имя владельца аккаунта)
    … 
  • arquivo 'registro.RegisterPhone.xml'. Contém informações sobre o número de telefone associado à conta do WhatsApp. O arquivo está localizado ao longo do caminho: '/data/data/com.whatsapp/shared_prefs/'.

    Conteúdo do arquivo

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <map>
    <string name="com.whatsapp.registration.RegisterPhone.phone_number">9123456789</string>
    <int name="com.whatsapp.registration.RegisterPhone.verification_state" value="0"/>
    <int name="com.whatsapp.registration.RegisterPhone.country_code_position" value="-1"/>
    <string name="com.whatsapp.registration.RegisterPhone.input_phone_number">912 345-67-89</string>
    <int name="com.whatsapp.registration.RegisterPhone.phone_number_position" value="10"/>
    <string name="com.whatsapp.registration.RegisterPhone.input_country_code">7</string>
    <string name="com.whatsapp.registration.RegisterPhone.country_code">7</string>
    </map>
  • arquivo 'axolotl.db'. Contém chaves criptográficas e outros dados necessários para identificar o proprietário da conta. Localizado ao longo do caminho: '/data/data/com.whatsapp/databases/'.
  • arquivo 'chatsettings.db'. Contém informações de configuração do aplicativo.
  • arquivo 'wa.db'. Contém detalhes de contato. Uma base de dados muito interessante (do ponto de vista forense) e informativa. Pode conter informações detalhadas sobre contatos excluídos.

Você também precisa prestar atenção aos seguintes diretórios:

  • Каталог '/dados/mídia/0/WhatsApp/Mídia/Imagens do WhatsApp/'. Contém arquivos gráficos transferidos.
  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Contém mensagens de voz em arquivos no formato .OPUS.
  • Каталог '/data/data/com.whatsapp/cache/Fotos de perfil/'. Contém arquivos gráficos – imagens de contatos.
  • Каталог '/data/data/com.whatsapp/files/Avatars/'. Contém arquivos gráficos – imagens em miniatura de contatos. Esses arquivos têm uma extensão '.j', mas ainda assim são arquivos de imagem JPEG (JPG).
  • Каталог '/data/data/com.whatsapp/files/Avatars/'. Contém arquivos gráficos - uma imagem e uma miniatura da imagem definida como avatar pelo proprietário da conta.
  • Каталог '/data/data/com.whatsapp/files/Logs/'. Contém o log de operação do programa (arquivo 'whatsapp.log') e cópias de segurança dos logs de operação do programa (arquivos com nomes no formato whatsapp-yyyy-mm-dd.1.log.gz).

Arquivos de registro do WhatsApp:

WhatsApp na palma da sua mão: onde e como encontrar artefatos forenses?
Fragmento de diário2017/01/10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] notificação de chamada perdida/contagem de inicialização:0 carimbo de data/hora:0
2017/01/10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] notificação de chamada perdida/atualização cancelada verdadeira
2017/01/10 09:37:09.768 LL_I D [1:principal] app-init/carrega-me
2017-01-10 09:37:09.772 LL_I D [1:main] arquivo de senha ausente ou ilegível
2017-01-10 09:37:09.782 LL_I D [1:main] estatísticas Mensagens de texto: 59 enviadas, 82 recebidas / Mensagens de mídia: 1 enviada (0 bytes), 0 recebidas (9850158 bytes) / Mensagens offline: 81 recebidas ( 19522 ms de atraso médio) / Serviço de mensagens: 116075 bytes enviados, 211729 bytes recebidos / Chamadas Voip: 1 chamada efetuada, 0 chamada recebida, 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:principal] gerenciador de estado de mídia/estado de atualização de mídia/mídia gravável
2017/01/10 09:37:09.806 LL_I D [1:principal] inicialização/inicialização/temporizador/parada do aplicativo: 24
2017/01/10 09:37:09.811 LL_I D [1:principal] msgstore/checkhealth
2017/01/10 09:37:09.817 LL_I D [1:principal] msgstore/checkhealth/diário/excluir falso
2017/01/10 09:37:09.818 LL_I D [1:principal] msgstore/checkhealth/voltar/excluir falso
2017/01/10 09:37:09.818 LL_I D [1:principal] msgstore/checkdb/data/data/com.whatsapp/databases/msgstore.db
2017/01/10 09:37:09.819 LL_I D [1:principal] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017/01/10 09:37:09.820 LL_I D [1:principal] msgstore/checkdb/list _jobqueue-WhatsAppJobManager-journal 21032 drw=011
2017/01/10 09:37:09.820 LL_I D [1:principal] msgstore/checkdb/list axolotl.db 184320 drw=011
2017/01/10 09:37:09.821 LL_I D [1:principal] msgstore/checkdb/list axolotl.db-wal 436752 drw=011
2017/01/10 09:37:09.821 LL_I D [1:principal] msgstore/checkdb/list axolotl.db-shm 32768 drw=011
2017/01/10 09:37:09.822 LL_I D [1:principal] msgstore/checkdb/list msgstore.db 540672 drw=011
2017/01/10 09:37:09.823 LL_I D [1:principal] msgstore/checkdb/list msgstore.db-wal 0 drw=011
2017/01/10 09:37:09.823 LL_I D [1:principal] msgstore/checkdb/list msgstore.db-shm 32768 drw=011
2017/01/10 09:37:09.824 LL_I D [1:principal] msgstore/checkdb/list wa.db 69632 drw=011
2017/01/10 09:37:09.825 LL_I D [1:principal] msgstore/checkdb/list wa.db-wal 428512 drw=011
2017/01/10 09:37:09.825 LL_I D [1:principal] msgstore/checkdb/list wa.db-shm 32768 drw=011
2017/01/10 09:37:09.826 LL_I D [1:principal] msgstore/checkdb/list chatsettings.db 4096 drw=011
2017/01/10 09:37:09.826 LL_I D [1:principal] msgstore/checkdb/list chatsettings.db-wal 70072 drw=011
2017/01/10 09:37:09.827 LL_I D [1:principal] msgstore/checkdb/list chatsettings.db-shm 32768 drw=011
2017/01/10 09:37:09.838 LL_I D [1:principal] msgstore/checkdb/versão 1
2017/01/10 09:37:09.839 LL_I D [1:principal] msgstore/canquery
2017/01/10 09:37:09.846 LL_I D [1:principal] msgstore/canquery/contagem 1
2017/01/10 09:37:09.847 LL_I D [1:principal] msgstore/canquery/timer/stop: 8
2017/01/10 09:37:09.847 LL_I D [1:principal] msgstore/canquery 517 | tempo gasto:8
2017/01/10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] gerenciador de estado de mídia/estado de atualização de mídia/armazenamento interno disponível: 1,345,622,016 total: 5,687,922,688

  • Каталог '/dados/mídia/0/WhatsApp/Mídia/WhatsApp Áudio/'. Contém os arquivos de áudio recebidos.
  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Áudio/Enviado/'. Contém arquivos de áudio enviados.
  • Каталог '/dados/mídia/0/WhatsApp/Mídia/Imagens do WhatsApp/'. Contém os arquivos gráficos resultantes.
  • Каталог '/dados/media/0/WhatsApp/Media/Imagens do WhatsApp/Enviadas/'. Contém arquivos gráficos enviados.
  • Каталог '/dados/mídia/0/WhatsApp/Mídia/WhatsApp Vídeo/'. Contém arquivos de vídeo recebidos.
  • Каталог '/dados/media/0/WhatsApp/Media/WhatsApp Video/Enviado/'. Contém arquivos de vídeo enviados.
  • Каталог '/data/media/0/WhatsApp/Media/Fotos de perfil do WhatsApp/'. Contém arquivos gráficos associados ao proprietário da conta do WhatsApp.
  • Para economizar espaço de memória no seu smartphone Android, alguns dados do WhatsApp podem ser armazenados em um cartão SD. No cartão SD, no diretório raiz, existe um diretório 'Whatsapp', onde os seguintes artefatos deste programa podem ser encontrados:

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

  • Каталог '.Compartilhar' ('/mnt/sdcard/WhatsApp/.Share/'). Contém cópias de arquivos que foram compartilhados com outros usuários do WhatsApp.
  • Каталог '.lixo' ('/mnt/sdcard/WhatsApp/.trash/'). Contém arquivos excluídos.
  • Каталог 'bancos de dados' ('/mnt/sdcard/WhatsApp/Bancos de dados/'). Contém backups criptografados. Eles podem ser descriptografados se o arquivo estiver presente 'chave', extraído da memória do dispositivo analisado.

    Arquivos localizados em um subdiretório 'bancos de dados':

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

  • Каталог 'Meios de comunicação' ('/mnt/sdcard/WhatsApp/Mídia/'). Contém subdiretórios 'Papel de parede', 'Áudio do WhatsApp', ‘Imagens do WhatsApp’, ‘Fotos de perfil do WhatsApp’, 'Vídeo do WhatsApp', 'Notas de voz do WhatsApp', que contém arquivos multimídia recebidos e transmitidos (arquivos gráficos, arquivos de vídeo, mensagens de voz, fotos associadas ao perfil do titular da conta do WhatsApp, papéis de parede).
  • Каталог 'Fotos de perfil' ('/mnt/sdcard/WhatsApp/Fotos de perfil/'). Contém arquivos gráficos associados ao perfil do proprietário da conta do WhatsApp.
  • Às vezes pode haver um diretório presente no cartão SD 'arquivos' ('/mnt/sdcard/WhatsApp/Arquivos/'). Este diretório contém arquivos que armazenam configurações do programa e preferências do usuário.

Recursos de armazenamento de dados em alguns modelos de dispositivos móveis

Alguns modelos de dispositivos móveis com sistema operacional Android podem armazenar artefatos do WhatsApp em um local diferente. Isso se deve a alterações no espaço de armazenamento dos dados do aplicativo pelo software do sistema do dispositivo móvel. Por exemplo, os dispositivos móveis Xiaomi têm uma função para criar um segundo espaço de trabalho (“SecondSpace”). Quando esta função é ativada, a localização dos dados muda. Portanto, se em um dispositivo móvel normal executando o sistema operacional Android, os dados do usuário são armazenados no diretório '/dados/usuário/0/' (que é uma referência ao habitual '/dados/dados/'), então, no segundo espaço de trabalho, os dados do aplicativo são armazenados no diretório '/dados/usuário/10/'. Ou seja, usando o exemplo da localização do arquivo 'wa.db':

  • em um smartphone normal com sistema operacional Android: /data/user/0/com.whatsapp/databases/wa.db' (que é equivalente '/data/data/com.whatsapp/databases/wa.db');
  • na segunda área de trabalho do smartphone Xiaomi: '/data/user/10/com.whatsapp/databases/wa.db'.

Artefatos do WhatsApp em dispositivos iOS

Ao contrário do sistema operacional Android, no iOS os dados do aplicativo WhatsApp são transferidos para uma cópia de backup (backup do iTunes). Portanto, a extração de dados deste aplicativo não requer a extração do sistema de arquivos ou a criação de um despejo de memória física do dispositivo sob investigação. A maior parte das informações relevantes está contida no banco de dados 'ChatStorage.sqlite', que está localizado ao longo do caminho: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/' (em alguns programas este caminho aparece como 'AppDomainGroup-group.net.whatsapp.WhatsApp.shared').

Estrutura 'ChatStorage.sqlite':

WhatsApp na palma da sua mão: onde e como encontrar artefatos forenses?
As tabelas mais informativas no banco de dados 'ChatStorage.sqlite' são 'ZWAMESSAGE' и 'ZWAMEDIAITEM'.

Aparência da mesa 'ZWAMESSAGE':

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

Nome do campo Valor
Z_PK número de sequência de registro (na tabela SQL)
Z_ENT identificador da tabela, tem o valor '9'
Z_OPT desconhecido, geralmente contém valores de '1' a '6'
ZCHILDMESSAGESDELIVEREDCOUNT desconhecido, geralmente contém o valor '0'
ZCHILDMESSAGESPLAYEDCOUNT desconhecido, geralmente contém o valor '0'
ZCHILDMESSAGESREADCOUNT desconhecido, geralmente contém o valor '0'
ZDATAITEMVERSION desconhecido, geralmente contém o valor '3', provavelmente um indicador de mensagem de texto
ZDOCID desconhecido
ZENCRETRICOUNT desconhecido, geralmente contém o valor '0'
ZFILTEREDRECIPIENTCOUNT desconhecido, geralmente contém os valores '0', '2', '256'
ZISFROMME direção da mensagem: '0' – entrada, '1' – saída
ZMESSAGEERRORSTATUS status de transmissão de mensagens. Se a mensagem for enviada/recebida, ela terá o valor '0'
ZMESSAGETYPE tipo de mensagem sendo transmitida
ZSORT desconhecido
ZSPOTLIGHSTATUS desconhecido
ZSTARRED desconhecido, não usado
ZCHATSESSION desconhecido
ZGROUPMEMBRO desconhecido, não usado
ZLASTSESSION desconhecido
ZMEDIAITEM desconhecido
ZMESSAGEINFO desconhecido
ZPARENTMESSAGE desconhecido, não usado
ZMESSAGEDATA carimbo de data/hora no formato OS X Epoch Time
ZSENTDATA hora em que a mensagem foi enviada no formato OS X Epoch Time
ZFROMJID ID do remetente do WhatsApp
ZMEDIASECTIONID contém o ano e mês em que o arquivo de mídia foi enviado
ZPHASH desconhecido, não usado
ZPUSHPAME nome do contato que enviou o arquivo de mídia no formato UTF-8
ZSTANZID identificador exclusivo de mensagem
ZTEXTO Mensagem de texto
ZTOJID ID do WhatsApp do destinatário
DESVIO deslocamento

Aparência da mesa 'ZWAMEDIAITEM':

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

Nome do campo Valor
Z_PK número de sequência de registro (na tabela SQL)
Z_ENT identificador da tabela, tem o valor '8'
Z_OPT desconhecido, geralmente contém valores de '1' a '3'.
ZCLOUDSTATUS contém o valor '4' se o arquivo for carregado.
ZFILESIZE contém o comprimento do arquivo (em bytes) para arquivos baixados
ZMEDIAORIGEM desconhecido, geralmente tem o valor '0'
ZMOVIEDURAÇÃO duração do arquivo de mídia, pois arquivos PDF podem conter o número de páginas do documento
MENSAGEM Z contém um número de série (o número é diferente daquele indicado na coluna 'Z_PK')
ZASPECTRAÇÃO proporção de aspecto, não usada, geralmente definida como '0'
PRECISÃO desconhecido, geralmente tem o valor '0'
ZLATITUDE largura em pixels
ZLONGTITUDE altura em pixels
ZMEDIAURLDATE carimbo de data/hora no formato OS X Epoch Time
ZAUTHORNAME autor (para documentos, pode conter o nome do arquivo)
ZCOLLECTIONNAME não usado
ZMEDIALOCALPATH nome do arquivo (incluindo caminho) no sistema de arquivos do dispositivo
ZMEDIAURL A URL onde o arquivo de mídia estava localizado. Se um arquivo foi transferido de um assinante para outro, ele foi criptografado e sua extensão será indicada como extensão do arquivo transferido - .enc
ZTHUMBNAILLOCALPATH caminho para a miniatura do arquivo no sistema de arquivos do dispositivo
ZTÍTULO cabeçalho do arquivo
ZVCARDNAME hash do arquivo de mídia; ao transferir o arquivo para um grupo, ele pode conter o identificador do remetente
ZVCARDSTRING contém informações sobre o tipo de arquivo que está sendo transferido (por exemplo, imagem/jpeg); ao transferir um arquivo para um grupo, pode conter o identificador do destinatário
ZXMPPTHUMBPATH caminho para a miniatura do arquivo no sistema de arquivos do dispositivo
ZMEDIAKEY desconhecido, provavelmente contém a chave para descriptografar o arquivo criptografado.
ZMETADATA metadados da mensagem transmitida
Compensar deslocamento

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

  • 'ZWAPROFILEPUSHNAME'. Corresponde o ID do WhatsApp ao nome do contato;
  • 'ZWAPROFILEPICTUREITEM'. Corresponde o ID do WhatsApp ao avatar 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 examinar o WhatsApp em um dispositivo móvel com iOS, você deve prestar atenção aos seguintes arquivos:

  • arquivo 'BackedUpKeyValue.sqlite'. Contém chaves criptográficas e outros dados necessários para identificar o proprietário da conta. Localizado ao longo do caminho: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • arquivo 'ContatosV2.sqlite'. Contém informações sobre os contatos do usuário, como nome completo, telefone, status do contato (em formato de texto), ID do WhatsApp, etc. Localizado ao longo do caminho: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • arquivo 'versão_consumidor'. Contém o número da versão do aplicativo WhatsApp instalado. Localizado ao longo do caminho: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • arquivo 'papel de parede_atual.jpg'. Contém o papel de parede de fundo atual do WhatsApp. Localizado ao longo do caminho: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Versões mais antigas do aplicativo usam o arquivo 'papel de parede', que está localizado ao longo do caminho: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'.
  • arquivo 'contatos bloqueados.dat'. Contém informações sobre contatos bloqueados. Localizado ao longo do caminho: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • arquivo 'pw.dat'. Contém uma senha criptografada. Localizado ao longo do caminho: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/'.
  • arquivo 'net.whatsapp.WhatsApp.plist' (ou arquivo 'group.net.whatsapp.WhatsApp.shared.plist'). Contém informações sobre o perfil da sua conta do WhatsApp. O arquivo está localizado ao longo do caminho: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/'.

Conteúdo do arquivo 'group.net.whatsapp.WhatsApp.shared.plist' WhatsApp na palma da sua mão: onde e como encontrar artefatos forenses?
Você também precisa prestar atenção aos seguintes diretórios:

  • Каталог '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/'. Contém miniaturas de contatos, grupos (arquivos com extensão .polegar), avatares de contato, avatar do proprietário da conta do WhatsApp (arquivo 'Foto.jpg').
  • Каталог '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/'. Contém arquivos multimídia e suas miniaturas
  • Каталог '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'. Contém o log de operação do programa (arquivo 'chamadas.log') e cópias de backup dos logs de operação do programa (arquivo 'chamadas.backup.log').
  • Каталог '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/'. Contém adesivos (arquivos no formato '.webp').
  • Каталог '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/'. Contém logs de operação do programa.

Artefatos do WhatsApp no ​​Windows

Os artefatos do WhatsApp no ​​Windows podem ser encontrados em vários lugares. Em primeiro lugar, são diretórios que contêm arquivos de programas executáveis ​​​​e auxiliares (para Windows 8/10):

  • 'C:Arquivos de Programas (x86)WhatsApp'
  • 'C:Usuários%Perfil de usuário% AppDataLocalWhatsApp'
  • 'C: Usuários% Perfil do usuário% Arquivos de programas AppDataLocalVirtualStore (x86)WhatsApp'

No catálogo 'C:Usuários%Perfil de usuário% AppDataLocalWhatsApp' o arquivo de log está localizado 'SquirrelSetup.log', que contém informações sobre como verificar atualizações e instalar o programa.

No catálogo 'C: Usuários% Perfil de usuário% AppDataRoamingWhatsApp' Existem vários subdiretórios:

WhatsApp na palma da sua mão: onde e como encontrar artefatos forenses?
arquivo 'processo principal.log' contém informações sobre o funcionamento do programa WhatsApp.

Subdiretório 'bancos de dados' contém um arquivo 'Bancos de dados.db', mas este arquivo não contém nenhuma informação sobre chats ou contatos.

O mais interessante do ponto de vista forense são os arquivos localizados no diretório 'Cache'. Estes são basicamente arquivos nomeados 'Foda-se' (onde * é um número de 0 a 9) contendo arquivos multimídia e documentos criptografados, mas também há arquivos não criptografados entre eles. De particular interesse são os arquivos 'dados_0', 'dados_1', 'dados_2', 'dados_3', localizado no mesmo subdiretório. arquivos 'dados_0', 'dados_1', 'dados_3' contêm links externos para arquivos e documentos multimídia criptografados transmitidos.

Exemplo de informações contidas no arquivo ‘data_1’WhatsApp na palma da sua mão: onde e como encontrar artefatos forenses?
Também arquivar 'dados_3' pode conter arquivos gráficos.

arquivo 'dados_2' contém avatares de contato (podem ser restaurados pesquisando pelos cabeçalhos dos arquivos).

Avatares contidos no arquivo 'dados_2':

WhatsApp na palma da sua mão: onde e como encontrar artefatos forenses?
Assim, os chats em si não podem ser encontrados na memória do computador, mas você pode 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 você pode encontrar tipos de artefatos do WhatsApp semelhantes aos encontrados no sistema operacional Windows.

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

  • 'C:AplicativosWhatsApp.app'
  • 'C:Aplicativos._WhatsApp.app'
  • 'C:Usuários%Perfil de usuário%LibraryPreferences'
  • 'C:Usuários%Perfil de usuário%LibraryLogsWhatsApp'
  • 'C:Usuários%Perfil do usuário%LibrarySaved Application StateWhatsApp.savedState'
  • 'C:Usuários%Perfil de usuário%Scripts de aplicativos de biblioteca'
  • 'C:Usuários%Perfil de usuário%LibraryApplication SupportCloudDocs'
  • 'C:Usuários%Perfil do usuário%LibraryApplication SupportWhatsApp.ShipIt'
  • 'C:Usuários%Perfil de usuário%LibraryContainerscom.rockysandstudio.app-for-whatsapp'
  • 'C:Usuários%Perfil de usuário% Biblioteca de documentos móveis <variável de texto> Contas do WhatsApp'
    Este diretório contém subdiretórios cujos nomes são números de telefone associados ao proprietário da conta do WhatsApp.
  • 'C:Usuários%Perfil do usuário%LibraryCachesWhatsApp.ShipIt'
    Este diretório contém informações sobre a instalação do programa.
  • 'C:Usuários%Perfil do usuário%PicturesiPhoto Library.photolibraryMasters', 'C:Usuários%Perfil do usuário%PicturesiPhoto Library.photolibraryThumbnails'
    Esses diretórios contêm arquivos de serviço do programa, incluindo fotos e miniaturas de contatos do WhatsApp.
  • 'C:Usuários%Perfil de usuário%LibraryCachesWhatsApp'
    Este diretório contém vários bancos de dados SQLite que são usados ​​para armazenamento em cache de dados.
  • 'C:Usuários%Perfil do usuário%LibraryApplication SupportWhatsApp'
    Este diretório contém vários subdiretórios:

    WhatsApp na palma da sua mão: onde e como encontrar artefatos forenses?
    No catálogo 'C:Usuários%Perfil de usuário%LibraryApplication SupportWhatsAppCache' existem arquivos 'dados_0', 'dados_1', 'dados_2', 'dados_3' e arquivos com nomes 'Foda-se' (onde * é um número de 0 a 9). Para obter informações sobre quais informações esses arquivos contêm, consulte Artefatos do WhatsApp no ​​Windows.

    No catálogo 'C:Usuários%Perfil do usuário%LibraryApplication SupportWhatsAppIndexedDB' pode conter arquivos multimídia (os arquivos não têm extensões).

    arquivo 'processo principal.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 do sistema de dados e base de dados no aplicativo Android e iOS por Ahmad Pratama, 2014.

Nos seguintes artigos desta série:

Descriptografia de bancos de dados criptografados do WhatsAppUm artigo que trará informações sobre como é gerada a chave de criptografia do WhatsApp e exemplos práticos mostrando como descriptografar os bancos de dados criptografados deste aplicativo.
Extraindo dados do WhatsApp do armazenamento em nuvemUm artigo no qual diremos quais dados do WhatsApp estão armazenados nas nuvens e descreveremos métodos para recuperar esses dados do armazenamento em nuvem.
Extração de dados do WhatsApp: exemplos práticosUm artigo que descreverá passo a passo quais programas e como extrair dados do WhatsApp de vários dispositivos.

Fonte: habr.com

Adicionar um comentário