Se queres saber que tipos de artefactos forenses de WhatsApp existen en diferentes sistemas operativos e onde se poden atopar exactamente, este é o lugar para ti. Este artigo é dun especialista do Laboratorio de Informática Forense do Grupo-IB Igor Mikhailov inicia unha serie de publicacións sobre a investigación forense de WhatsApp e que información se pode obter ao analizar o dispositivo.
Teñamos en conta inmediatamente que os distintos sistemas operativos almacenan diferentes tipos de artefactos de WhatsApp, e se un investigador pode extraer certos tipos de datos de WhatsApp dun dispositivo, isto non significa que se poidan extraer tipos similares de datos doutro dispositivo. Por exemplo, se se elimina unha unidade do sistema que executa o sistema operativo Windows, probablemente non se atopen nos seus discos os chats de WhatsApp (a excepción das copias de seguridade dos dispositivos iOS, que se poden atopar nas mesmas unidades). A incautación de ordenadores portátiles e dispositivos móbiles terá características propias. Imos falar sobre isto con máis detalle.
Artefactos de WhatsApp no dispositivo Android
Para extraer artefactos de WhatsApp dun dispositivo Android, o investigador debe ter dereitos de superusuario ("raíz") no dispositivo investigado ou poder extraer doutro xeito un volcado da memoria física do dispositivo ou do seu sistema de ficheiros (por exemplo, utilizando vulnerabilidades de software dun dispositivo móbil específico).
Os ficheiros das aplicacións sitúanse na memoria do teléfono na sección na que se gardan os datos do usuario. Por regra xeral, esta sección recibe o nome 'datos de usuario'. Os subdirectorios e ficheiros de programas están situados ao longo da ruta: '/data/data/com.whatsapp/'.
Os principais ficheiros que conteñen artefactos forenses de WhatsApp no sistema operativo Android son bases de datos 'wa.db' и 'msgstore.db'.
Na base de datos 'wa.db' contén a lista de contactos completa dun usuario de WhatsApp, incluíndo o número de teléfono, o nome para mostrar, as marcas de tempo e calquera outra información proporcionada ao rexistrarse en WhatsApp. Arquivo 'wa.db' situado ao longo do camiño: '/data/data/com.whatsapp/databases/' e ten a seguinte estrutura:
As táboas máis interesantes da base de datos 'wa.db' para o investigador son:
- 'wa_contactos'
Esta táboa contén información de contacto: ID de contacto de WhatsApp, información de estado, nome de visualización do usuario, marcas de tempo, etc.Aspecto da mesa:
Estrutura da táboaNome do campo Valor _id número de secuencia de rexistro (na táboa SQL) jid ID de contacto de WhatsApp, escrito no formato <número de teléfono>@s.whatsapp.net é_usuario_de_whatsapp contén "1" se o contacto corresponde a un usuario real de WhatsApp, "0" en caso contrario Estado contén o texto que aparece no estado do contacto status_timestamp contén unha marca de tempo en formato Unix Epoch Time (ms). número número de teléfono asociado co contacto raw_contact_id número de serie de contacto nome_mostrar nome de visualización do contacto tipo_teléfono tipo de teléfono phone_label etiqueta asociada ao número de contacto unseen_msg_count número de mensaxes enviadas por un contacto pero que non foron lidas polo destinatario fotografías contén unha marca de tempo en formato Unix Epoch Time polgar_ts contén unha marca de tempo en formato Unix Epoch Time foto_id_timestamp contén unha marca de tempo en formato Unix Epoch Time (ms). nome_denominado o valor do campo coincide con 'display_name' para cada contacto wa_nome Nome do contacto de WhatsApp (mostrase o nome especificado no perfil do contacto) nome_ordenar nome de contacto usado nas operacións de clasificación apelido alcume do contacto en WhatsApp (móstrase o alcume especificado no perfil do contacto) compañía empresa (móstrase a empresa especificada no perfil do contacto) título título (Ms./Mr.; móstrase o título configurado no perfil de contacto) compensar parcialidade - 'secuencia_sqlite'
Esta táboa contén información sobre o número de contactos; - 'android_metadata'
Esta táboa contén información sobre a localización do idioma de WhatsApp.
Na base de datos 'msgstore.db' contén información sobre as mensaxes enviadas, como o número de contacto, o texto da mensaxe, o estado da mensaxe, as marcas de tempo, os detalles dos ficheiros transferidos incluídos nas mensaxes, etc. Arquivo 'msgstore.db' situado ao longo do camiño: '/data/data/com.whatsapp/databases/' e ten a seguinte estrutura:
As táboas máis interesantes do ficheiro 'msgstore.db' para o investigador son:
- 'secuencia_sqlite'
Esta táboa contén información xeral sobre esta base de datos, como o número total de mensaxes almacenadas, o número total de chats, etc.Aspecto da mesa:
- 'contido_mensaxe_fts'
Contén o texto das mensaxes enviadas.Aspecto da mesa:
- 'mensaxes'
Esta táboa contén información como número de contacto, texto da mensaxe, estado da mensaxe, marcas de tempo e información sobre os ficheiros transferidos incluídos nas mensaxes.Aspecto da mesa:
Estrutura da táboaNome do campo Valor _id número de secuencia de rexistro (na táboa SQL) key_remote_jid ID de WhatsApp do socio de comunicación chave_de_min dirección da mensaxe: '0' - entrante, '1' - saínte ID_chave identificador único da mensaxe Estado estado da mensaxe: '0' - entregada, '4' - esperando no servidor, '5' - recibida no destino, '6' - mensaxe de control, '13' - mensaxe aberta polo destinatario (ler) necesidade_empurrar ten o valor '2' se é unha mensaxe de difusión, se non, contén '0' datos texto da mensaxe (cando o parámetro 'media_wa_type' é '0') marca de tempo contén unha marca de tempo en formato Unix Epoch Time (ms), o valor tómase do reloxo do dispositivo media_url contén o URL do ficheiro transferido (cando o parámetro 'media_wa_type' é '1', '2', '3') media_mime_type Tipo MIME do ficheiro transferido (cando o parámetro 'media_wa_type' é igual a '1', '2', '3') media_wa_type tipo de mensaxe: "0" - texto, "1" - ficheiro gráfico, "2" - ficheiro de audio, "3" - ficheiro de vídeo, "4" - tarxeta de contacto, "5" - xeodatos media_size tamaño do ficheiro transferido (cando o parámetro 'media_wa_type' é '1', '2', '3') nome_medio nome do ficheiro transferido (cando o parámetro 'media_wa_type' é '1', '2', '3') subtítulo_media Contén as palabras 'audio', 'video' para os valores correspondentes do parámetro 'media_wa_type' (cando o parámetro 'media_wa_type' é '1', '3') media_hash Hash codificado en base64 do ficheiro transmitido, calculado mediante o algoritmo HAS-256 (cando o parámetro 'media_wa_type' é igual a '1', '2', '3') media_duración duración en segundos para o ficheiro multimedia (cando 'media_wa_type' é '1', '2', '3') orixe ten o valor '2' se é unha mensaxe de difusión, se non, contén '0' latitud xeodatos: latitude (cando o parámetro 'media_wa_type' é '5') lonxitude xeodatos: lonxitude (cando o parámetro 'media_wa_type' é '5') imaxe_polgar información do servizo recurso_remoto ID do remitente (só para chats de grupo) marca de tempo_recibida hora de recepción, contén unha marca de tempo en formato Unix Epoch Time (ms), o valor tómase do reloxo do dispositivo (cando o parámetro 'key_from_me' ten '0', '-1' ou outro valor) send_timestamp non se usa, normalmente ten o valor '-1' marca de hora do servidor_de_recibo hora recibida polo servidor central, contén unha marca de tempo en formato Unix Epoch Time (ms), o valor tómase do reloxo do dispositivo (cando o parámetro 'key_from_me' ten '1', '-1' ou outro valor marca de tempo_dispositivo_de_recibo vez que a mensaxe foi recibida por outro subscritor, contén unha marca de tempo en formato Unix Epoch Time (ms), o valor tómase do reloxo do dispositivo (cando o parámetro 'key_from_me' ten '1', '-1' ou outro valor read_device_timestamp hora de abrir (ler) a mensaxe, contén unha marca de tempo en formato Unix Epoch Time (ms), o valor tómase do reloxo do dispositivo marca de tempo_dispositivo_reproducido tempo de reprodución da mensaxe, contén unha marca de tempo en formato Unix Epoch Time (ms), o valor tómase do reloxo do dispositivo datos_en bruto miniatura do ficheiro transferido (cando o parámetro 'media_wa_type' é '1' ou '3') recipient_count número de destinatarios (para mensaxes de difusión) participant_hash usado cando se transmiten mensaxes con xeodatos protagonizado non utilizados id_fila_comitada descoñecido, normalmente contén o valor '0' mencionados_jids non utilizados multicast_id non utilizados compensar parcialidade Esta lista de campos non é exhaustiva. Para as diferentes versións de WhatsApp, algúns campos poden estar presentes ou ausentes. Ademais, poden estar presentes campos 'media_enc_hash', 'editar_versión', 'id_transacción_pago' etc
- 'mensaxes_miniaturas'
Esta táboa contén información sobre as imaxes transferidas e as marcas de tempo. Na columna "sello de tempo", a hora indícase en formato Unix Epoch Time (ms). - 'lista_chat'
Esta táboa contén información sobre os chats.Aspecto da mesa:
Ademais, ao examinar WhatsApp nun dispositivo móbil con Android, debes prestar atención aos seguintes ficheiros:
- arquivo 'msgstore.db.cryptXX' (onde XX é un ou dous díxitos de 0 a 12, por exemplo, msgstore.db.crypt12). Contén unha copia de seguranza cifrada das mensaxes de WhatsApp (ficheiro de copia de seguranza msgstore.db). Arquivos) 'msgstore.db.cryptXX' situado ao longo do camiño: '/data/media/0/WhatsApp/Databases/' (tarxeta SD virtual), '/mnt/sdcard/WhatsApp/Bases de datos/ (tarxeta SD física)'.
- arquivo 'chave'. Contén unha clave criptográfica. Situado ao longo do camiño: '/data/data/com.whatsapp/files/'. Úsase para descifrar copias de seguridade de WhatsApp cifradas.
- arquivo 'com.whatsapp_preferences.xml'. Contén información sobre o perfil da túa conta de WhatsApp. O ficheiro está situado ao longo da ruta: '/data/data/com.whatsapp/shared_prefs/'.
Fragmento de contido do ficheiro
<?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 'registration.RegisterPhone.xml'. Contén información sobre o número de teléfono asociado á conta de WhatsApp. O ficheiro está situado ao longo da ruta: '/data/data/com.whatsapp/shared_prefs/'.
Contidos do ficheiro
<?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én claves criptográficas e outros datos necesarios para identificar o propietario da conta. Situado ao longo do camiño: '/data/data/com.whatsapp/databases/'.
- arquivo 'chatsettings.db'. Contén información de configuración da aplicación.
- arquivo 'wa.db'. Contén datos de contacto. Unha base de datos moi interesante (desde o aspecto forense) e informativa. Pode conter información detallada sobre os contactos eliminados.
Tamén cómpre prestar atención aos seguintes directorios:
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Contén ficheiros gráficos transferidos.
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Contén mensaxes de voz en ficheiros de formato .OPUS.
- Directorio '/data/data/com.whatsapp/cache/Profile Pictures/'. Contén ficheiros gráficos: imaxes de contactos.
- Directorio '/data/data/com.whatsapp/files/Avatars/'. Contén ficheiros gráficos: imaxes en miniatura dos contactos. Estes ficheiros teñen unha extensión '.j', pero son ficheiros de imaxe JPEG (JPG).
- Directorio '/data/data/com.whatsapp/files/Avatars/'. Contén ficheiros gráficos: unha imaxe e unha miniatura da imaxe definida como avatar polo propietario da conta.
- Directorio '/data/data/com.whatsapp/files/Logs/'. Contén o rexistro de operacións do programa (ficheiro 'whatsapp.log') e copias de seguridade dos rexistros de operacións do programa (arquivos con nomes no formato whatsapp-aaaa-mm-dd.1.log.gz).
Ficheiros de rexistro de WhatsApp:
Fragmento de diario2017-01-10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] notificación de chamadas perdidas/reconto inicial: 0 timestamp:0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] notificación/actualización de chamada perdida cancelar verdadeiro
2017-01-10 09:37:09.768 LL_I D [1:main] app-init/load-me
2017-01-10 09:37:09.772 Falta o ficheiro de contrasinal LL_I D [1:main] ou non se pode lexir
2017-01-10 09:37:09.782 LL_I D [1:principal] estatísticas Mensaxes de texto: 59 enviadas, 82 recibidas / Mensaxes multimedia: 1 enviada (0 bytes), 0 recibidas (9850158 bytes) / Mensaxes sen conexión: 81 recibidas ( 19522 mseg de atraso medio) / Servizo de mensaxes: 116075 bytes enviados, 211729 bytes recibidos / Chamadas Voip: 1 chamadas saíntes, 0 chamadas entrantes, 2492 bytes enviados, 1530 bytes recibidos / Google Drive: 0 bytes enviados, 0 bytes recibidos / Itinerancia: 1524 bytes bytes enviados, 1826 bytes recibidos / Total de datos: 118567 bytes enviados, 10063417 bytes recibidos
2017-01-10 09:37:09.785 LL_I D [1:principal] media-state-xestor/refresh-media-state/writable-media
2017-01-10 09:37:09.806 LL_I D [1:principal] 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: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: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/versión 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 | tempo empregado: 8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker n.º 3] xestor-estatal de medios/estado-de-actualización-media/almacenamento-interno dispoñible: 1,345,622,016 total: 5,687,922,688
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Audio/'. Contén os ficheiros de audio recibidos.
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/'. Contén ficheiros de audio enviados.
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Contén os ficheiros gráficos resultantes.
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/'. Contén ficheiros gráficos enviados.
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Video/'. Contén ficheiros de vídeo recibidos.
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/'. Contén ficheiros de vídeo enviados.
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/'. Contén ficheiros gráficos asociados ao propietario da conta de WhatsApp.
- Para aforrar espazo de memoria no teu teléfono intelixente Android, algúns datos de WhatsApp pódense almacenar nunha tarxeta SD. Na tarxeta SD, no directorio raíz, hai un directorio 'Whatsapp', onde se poden atopar os seguintes artefactos deste programa:
- Directorio '.Compartir' ('/mnt/sdcard/WhatsApp/.Share/'). Contén copias de ficheiros que se compartiron con outros usuarios de WhatsApp.
- Directorio '.lixo' ('/mnt/sdcard/WhatsApp/.trash/'). Contén ficheiros eliminados.
- Directorio 'Bases de datos' ('/mnt/sdcard/WhatsApp/Bases de datos/'). Contén copias de seguranza cifradas. Pódense descifrar se o ficheiro está presente 'chave', extraído da memoria do dispositivo analizado.
Ficheiros situados nun subdirectorio 'Bases de datos':
- Directorio 'Mede' ('/mnt/sdcard/WhatsApp/Media/'). Contén subdirectorios "Fondo de pantalla", "Audio de WhatsApp", "Imaxes de WhatsApp", "Fotos do perfil de WhatsApp", "Vídeo de WhatsApp", "Notas de voz de WhatsApp", que conteñen ficheiros multimedia recibidos e transmitidos (arquivos gráficos, ficheiros de vídeo, mensaxes de voz, fotos asociadas ao perfil do propietario da conta de WhatsApp, fondos de pantalla).
- Directorio "Imaxes de perfil" ('/mnt/sdcard/WhatsApp/Imaxes de perfil/'). Contén ficheiros gráficos asociados ao perfil do propietario da conta de WhatsApp.
- Ás veces pode haber un directorio presente na tarxeta SD 'arquivos' ('/mnt/sdcard/WhatsApp/Files/'). Este directorio contén ficheiros que almacenan a configuración do programa e as preferencias do usuario.
Características do almacenamento de datos nalgúns modelos de dispositivos móbiles
Algúns modelos de dispositivos móbiles con sistema operativo Android poden almacenar artefactos de WhatsApp nun lugar diferente. Isto débese aos cambios no espazo de almacenamento dos datos da aplicación polo software do sistema do dispositivo móbil. Por exemplo, os dispositivos móbiles Xiaomi teñen unha función para crear un segundo espazo de traballo ("SecondSpace"). Cando esta función está activada, a localización dos datos cambia. Entón, se nun dispositivo móbil normal que executa Android OS datos do usuario almacénanse no directorio '/data/user/0/' (que é unha referencia ao habitual '/data/data/'), a continuación, no segundo espazo de traballo os datos da aplicación almacénanse no directorio '/data/user/10/'. É dicir, usando o exemplo da localización do ficheiro 'wa.db':
- nun teléfono intelixente normal con sistema operativo Android: /data/user/0/com.whatsapp/databases/wa.db' (que é o equivalente '/data/data/com.whatsapp/databases/wa.db');
- no segundo espazo de traballo do teléfono intelixente Xiaomi: '/data/user/10/com.whatsapp/databases/wa.db'.
Artefactos de WhatsApp no dispositivo iOS
A diferenza do sistema operativo Android, en iOS os datos da aplicación WhatsApp transfírense a unha copia de seguridade (backup de iTunes). Polo tanto, para extraer datos desta aplicación non é necesario extraer o sistema de ficheiros nin crear un volcado de memoria física do dispositivo investigado. A maior parte da información relevante está contida na base de datos 'ChatStorage.sqlite', que se atopa ao longo do camiño: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/' (nalgúns programas este camiño aparece como "AppDomainGroup-group.net.whatsapp.WhatsApp.shared").
Estrutura 'ChatStorage.sqlite':
As táboas máis informativas da base de datos 'ChatStorage.sqlite' son 'ZWAMESSAGE' и 'ZWAMEDIAITEM'.
Aspecto da mesa 'ZWAMESSAGE':
Estrutura da táboa "ZWAMESSAGE"
Nome do campo | Valor |
---|---|
Z_PK | número de secuencia de rexistro (na táboa SQL) |
Z_ENT | identificador da táboa, ten o valor '9' |
Z_OPT | descoñecido, normalmente contén valores de '1' a '6' |
ZMENSAXE INFANTIL ENVIADA CONTA | descoñecido, normalmente contén o valor '0' |
ZCHILDMESSAGEXOXEDCOUNT | descoñecido, normalmente contén o valor '0' |
Z MENSAXESNENOS READCOUNT | descoñecido, normalmente contén o valor '0' |
ZDATAITEMVERSION | descoñecido, normalmente contén o valor "3", probablemente un indicador de mensaxe de texto |
ZDOCID | é descoñecido |
ZENCRETRYCOUNT | descoñecido, normalmente contén o valor '0' |
ZFILTEREDRECIPIENTCOUNT | descoñecido, normalmente contén os valores '0', '2', '256' |
ZISFROMME | dirección da mensaxe: '0' - entrante, '1' - saínte |
ZMESSAGEERRORSTATUS | estado de transmisión da mensaxe. Se a mensaxe é enviada/recibida, entón ten o valor '0' |
TIPO DE MENSAXE Z | tipo de mensaxe que se transmite |
ZSORT | é descoñecido |
ZSPOTLIGHSTATUS | é descoñecido |
ZSTARRED | descoñecido, non usado |
SESIÓN ZCHAT | é descoñecido |
MEMBRO DE GRUPO Z | descoñecido, non usado |
ÚLTIMA SESIÓN | é descoñecido |
ZMEDIAITEM | é descoñecido |
INFORMACIÓN DA MESSAXE | é descoñecido |
ZMENSAXE PARA PAIS | descoñecido, non usado |
ZMESSAGEDATE | marca de tempo en formato OS X Epoch Time |
ZSENTDATE | momento en que se enviou a mensaxe en formato OS X Epoch Time |
ZFROMJID | ID do remitente de WhatsApp |
ZMEDIASECTIONID | contén o ano e o mes no que se enviou o ficheiro multimedia |
ZPHASH | descoñecido, non usado |
ZPUSHPAME | nome do contacto que enviou o ficheiro multimedia en formato UTF-8 |
ZSTANZID | identificador único da mensaxe |
ZTEXT | Texto da mensaxe |
ZTOJID | ID de WhatsApp do destinatario |
COMPENSACIÓN | parcialidade |
Aspecto da mesa 'ZWAMEDIAITEM':
Estrutura da táboa 'ZWAMEDIAITEM'
Nome do campo | Valor |
---|---|
Z_PK | número de secuencia de rexistro (na táboa SQL) |
Z_ENT | identificador da táboa, ten o valor '8' |
Z_OPT | descoñecido, normalmente contén valores de "1" a "3". |
ZCLOUDSTATUS | contén o valor "4" se o ficheiro está cargado. |
ZFILESIZE | contén a lonxitude do ficheiro (en bytes) dos ficheiros descargados |
ZMEDIAORIXE | descoñecido, normalmente ten o valor '0' |
ZMOVIEDURACIÓN | duración do ficheiro multimedia, para os ficheiros pdf pode conter o número de páxinas do documento |
MENSAXE Z | contén un número de serie (o número é diferente do indicado na columna 'Z_PK') |
ZASPECTRACION | relación de aspecto, non usada, normalmente establecida en '0' |
PRECISIÓN | descoñecido, normalmente ten o valor '0' |
ZLATTITUDE | ancho en píxeles |
ZLONXITUDE | altura en píxeles |
ZMEDIAURLDATE | marca de tempo en formato OS X Epoch Time |
ZAUTHORNAME | autor (para documentos, pode conter o nome do ficheiro) |
ZCOLLECTIONNAME | non utilizados |
ZMEDIALOCALPATH | nome do ficheiro (incluíndo o camiño) no sistema de ficheiros do dispositivo |
ZMEDIAURL | O URL onde se atopaba o ficheiro multimedia. Se un ficheiro foi transferido dun subscritor a outro, foi cifrado e a súa extensión indicarase como a extensión do ficheiro transferido - .enc |
ZTHUMBNAILLOCALPATH | ruta á miniatura do ficheiro no sistema de ficheiros do dispositivo |
ZTÍTULO | cabeceira do ficheiro |
ZVCARDNAME | hash do ficheiro multimedia; ao transferir o ficheiro a un grupo, pode conter o identificador do remitente |
ZVCARDSTRING | contén información sobre o tipo de ficheiro que se está a transferir (por exemplo, imaxe/jpeg); ao transferir un ficheiro a un grupo, pode conter o identificador do destinatario |
ZXMPPTHUMBPATH | ruta á miniatura do ficheiro no sistema de ficheiros do dispositivo |
ZMEDIAKEY | descoñecido, probablemente contén a clave para descifrar o ficheiro cifrado. |
ZMETADATOS | metadatos da mensaxe transmitida |
Compensar | parcialidade |
Outras táboas de bases de datos interesantes 'ChatStorage.sqlite' son:
- "ZWAPROFILEPUSHNAME". Coincide o ID de WhatsApp co nome do contacto;
- "ZWAPROFILEPICTUREITEM". Coincide a ID de WhatsApp co avatar de contacto;
- "Z_PRIMARYKEY". A táboa contén información xeral sobre esta base de datos, como o número total de mensaxes almacenadas, o número total de chats, etc.
Ademais, ao examinar WhatsApp nun dispositivo móbil con iOS, debes prestar atención aos seguintes ficheiros:
- arquivo 'BackedUpKeyValue.sqlite'. Contén claves criptográficas e outros datos necesarios para identificar o propietario da conta. Situado ao longo do camiño: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- arquivo 'ContactsV2.sqlite'. Contén información sobre os contactos do usuario, como nome completo, número de teléfono, estado do contacto (en forma de texto), ID de WhatsApp, etc. Situado ao longo do camiño: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- arquivo 'versión_consumidor'. Contén o número de versión da aplicación WhatsApp instalada. Situado ao longo do camiño: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- arquivo 'current_wallpaper.jpg'. Contén o fondo de pantalla actual de WhatsApp. Situado ao longo do camiño: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. As versións máis antigas da aplicación usan o ficheiro 'fondo de pantalla', que se atopa ao longo do camiño: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'.
- arquivo 'blockedcontacts.dat'. Contén información sobre contactos bloqueados. Situado ao longo do camiño: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
- arquivo 'pw.dat'. Contén un contrasinal cifrado. Situado ao longo do camiño: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/'.
- arquivo 'net.whatsapp.WhatsApp.plist' (ou arquivo 'group.net.whatsapp.WhatsApp.shared.plist'). Contén información sobre o perfil da túa conta de WhatsApp. O ficheiro está situado ao longo da ruta: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/'.
Contido do ficheiro 'group.net.whatsapp.WhatsApp.shared.plist'
Tamén cómpre prestar atención aos seguintes directorios:
- Directorio '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/'. Contén miniaturas de contactos, grupos (arquivos coa extensión .polgar), avatares de contacto, avatar do propietario da conta de WhatsApp (arquivo "Foto.jpg").
- Directorio '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/'. Contén ficheiros multimedia e as súas miniaturas
- Directorio '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'. Contén o rexistro de operacións do programa (ficheiro 'calls.log') e copias de seguridade dos rexistros de operacións do programa (ficheiro 'chamadas.backup.log').
- Directorio '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/'. Contén adhesivos (arquivos no formato '.webp').
- Directorio '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/'. Contén rexistros de operacións do programa.
Artefactos de WhatsApp en Windows
Os artefactos de WhatsApp en Windows pódense atopar en varios lugares. En primeiro lugar, estes son directorios que conteñen ficheiros executables e auxiliares do programa (para Windows 8/10):
- 'C:Arquivos de programa (x86)WhatsApp'
- 'C:Users%User profile% AppDataLocalWhatsApp'
- 'C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp'
En catálogo 'C:Users%User profile% AppDataLocalWhatsApp' localízase o ficheiro de rexistro 'SquirrelSetup.log', que contén información sobre como buscar actualizacións e instalar o programa.
En catálogo "C:Usuarios%Perfil de usuario% AppDataRoamingWhatsApp" Hai varios subdirectorios:
arquivo 'main-process.log' contén información sobre o funcionamento do programa WhatsApp.
Subdirectorio 'bases de datos' contén un ficheiro 'Databases.db', pero este ficheiro non contén ningunha información sobre chats ou contactos.
O máis interesante dende o punto de vista forense son os ficheiros situados no directorio 'Caché'. Estes son basicamente ficheiros con nome 'f_********' (onde * é un número de 0 a 9) que contén ficheiros e documentos multimedia cifrados, pero tamén hai ficheiros sen cifrar entre eles. De especial interese son os arquivos 'datos_0', 'datos_1', 'datos_2', 'datos_3', situado no mesmo subdirectorio. Arquivos 'datos_0', 'datos_1', 'datos_3' conteñen ligazóns externas a ficheiros e documentos multimedia cifrados transmitidos.
Exemplo de información contida no ficheiro 'data_1'
Tamén arquivo 'datos_3' pode conter ficheiros gráficos.
arquivo 'datos_2' contén avatares de contacto (pódese restaurar buscando por cabeceiras de ficheiros).
Avatares contidos no ficheiro 'datos_2':
Así, os chats en si non se poden atopar na memoria do ordenador, pero podes atopar:
- arquivos multimedia;
- documentos transmitidos por WhatsApp;
- información sobre os contactos do propietario da conta.
Artefactos de WhatsApp en MacOS
En MacOS podes atopar tipos de artefactos de WhatsApp similares aos que se atopan no sistema operativo Windows.
Os ficheiros do programa atópanse nos seguintes directorios:
- 'C:ApplicationsWhatsApp.app'
- 'C:Applications._WhatsApp.app'
- 'C:Usuarios%Perfil de usuario%LibraryPreferences'
- "C:Usuarios%Perfil de usuario%LibraryLogsWhatsApp"
- 'C:Users%User profile%LibrarySaved Application StateWhatsApp.savedState'
- 'C:Usuarios%Perfil de usuario%LibraryApplication Scripts'
- "C:Usuarios%Perfil de usuario%LibraryApplication SupportCloudDocs"
- 'C:Usuarios%Perfil de usuario%LibraryApplication SupportWhatsApp.ShipIt'
- 'C:Users%User profile%LibraryContainerscom.rockysandstudio.app-for-whatsapp'
- "C:Usuarios%Perfil de usuario% Biblioteca Documentos móbiles <variable de texto> Contas de WhatsApp"
Este directorio contén subdirectorios cuxos nomes son números de teléfono asociados ao propietario da conta de WhatsApp. - 'C:Usuarios%Perfil de usuario%LibraryCachesWhatsApp.ShipIt'
Este directorio contén información sobre a instalación do programa. - "C:Users%User profile%PicturesiPhoto Library.photolibraryMasters", "C:Users%User profile%PicturesiPhoto Library.photolibraryThumbnails"
Estes directorios conteñen ficheiros de servizo do programa, incluíndo fotos e miniaturas dos contactos de WhatsApp. - 'C:Usuarios%Perfil de usuario%LibraryCachesWhatsApp'
Este directorio contén varias bases de datos SQLite que se usan para almacenar datos na caché. - 'C:Usuarios%Perfil de usuario%LibraryApplication SupportWhatsApp'
Este directorio contén varios subdirectorios:
En catálogo 'C:Usuarios%Perfil de usuario%LibraryApplication SupportWhatsAppCache' hai arquivos 'datos_0', 'datos_1', 'datos_2', 'datos_3' e ficheiros con nomes 'f_********' (onde * é un número de 0 a 9). Para obter información sobre a información que conteñen estes ficheiros, consulta Artefactos de WhatsApp en Windows.En catálogo 'C:Usuarios%Perfil de usuario%LibraryApplication SupportWhatsAppIndexedDB' pode conter ficheiros multimedia (os ficheiros non teñen extensións).
arquivo 'main-process.log' contén información sobre o funcionamento do programa WhatsApp.
Fontes
- Análise forense de WhatsApp Messenger en teléfonos intelixentes Android, por Cosimo Anglano, 2014.
- Whatsapp Forensics: Exploración de sistemas e datos básicos para a aplicación de Android e iOS por Ahmad Pratama, 2014.
Nos seguintes artigos desta serie:
Descifrado de bases de datos de WhatsApp cifradasUn artigo que ofrecerá información sobre como se xera a clave de cifrado de WhatsApp e exemplos prácticos que mostrarán como descifrar as bases de datos cifradas desta aplicación.
Extraer datos de WhatsApp do almacenamento na nubeUn artigo no que vos contaremos que datos de WhatsApp se almacenan nas nubes e describiremos os métodos para recuperar estes datos dos almacenamentos na nube.
Extracción de datos de WhatsApp: exemplos prácticosUn artigo que describirá paso a paso que programas e como extraer datos de WhatsApp de varios dispositivos.
Fonte: www.habr.com