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/'.
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:
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:
Estrutura da tabelaNome 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:
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:
- 'mensagem_fts_content'
Contém o texto das mensagens enviadas.Aparência da mesa:
- '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:
Estrutura da tabelaNome 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:
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:
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:
- Каталог '.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':
- Каталог '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':
As tabelas mais informativas no banco de dados 'ChatStorage.sqlite' são 'ZWAMESSAGE' и 'ZWAMEDIAITEM'.
Aparência da mesa 'ZWAMESSAGE':
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':
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'
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:
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’
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':
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:
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
- Análise forense do WhatsApp Messenger em smartphones Android, por Cosimo Anglano, 2014.
- 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