
¿Quieres saber qué tipos de artefactos forenses de WhatsApp existen en diferentes sistemas operativos y dónde pueden ser encontrados? Entonces, este es el lugar para ti. En este artículo, un especialista del Laboratorio de Informática Forense Group-IB Igor Mikhailov inicia una serie de publicaciones sobre la investigación forense de WhatsApp y sobre qué información se puede obtener al analizar un dispositivo.
Cabe destacar que en diferentes sistemas operativos se almacenan distintos tipos de artefactos de WhatsApp, y si de un dispositivo el investigador puede extraer ciertos tipos de datos de WhatsApp, esto no significa que tipos similares de datos se puedan extraer de otro dispositivo. Por ejemplo, si se extrae una unidad de sistema que opera con Windows, probablemente en sus discos no se encontrarán los chats de WhatsApp (las copias de seguridad de dispositivos iOS que pueden encontrarse en estos mismos discos son una excepción). En el caso de laptops y dispositivos móviles, habrá características propias. Hablaremos de esto con más detalle.
Artefactos de WhatsApp en dispositivos Android
Para extraer artefactos de WhatsApp de un dispositivo que opera con Android, el investigador debe tener derechos de superusuario (‘root’) en el dispositivo en cuestión, o tener la capacidad de extraer de alguna otra manera una imagen física de la memoria del dispositivo o su sistema de archivos (por ejemplo, utilizando vulnerabilidades de software específicas del dispositivo móvil).
Los archivos de la aplicación se encuentran en la memoria del teléfono en la partición donde se almacenan los datos del usuario. Por lo general, esta partición se llama ‘userdata’. Los subdirectorios y archivos del programa se localizan en la ruta: ‘/data/data/com.whatsapp/’.

Los archivos principales que contienen los artefactos forenses de WhatsApp en Android son las bases de datos ‘wa.db’ y ‘msgstore.db’.
La base de datos ‘wa.db’ contiene la lista completa de contactos de WhatsApp del usuario, incluidos el número de teléfono, el nombre que se muestra, las marcas de tiempo y cualquier otra información proporcionada al registrarse en WhatsApp. El archivo ‘wa.db’ se encuentra en la ruta: ‘/data/data/com.whatsapp/databases/’ y tiene la siguiente estructura:

Las tablas más interesantes en la base de datos ‘wa.db’ para el investigador son:
- ‘wa_contacts’
Esta tabla contiene información sobre los contactos: id de contacto en WhatsApp, información sobre el estado, nombre de usuario mostrado, marcas de tiempo, etc.Apariencia de la tabla:

Estructura de la tablaNombre del campo Valor _id número secuencial de registro (en la tabla SQL) jid ID de WhatsApp del contacto, se registra en el formato @s.whatsapp.net is_whatsapp_user contiene ‘1’ si el contacto es un usuario real de WhatsApp, ‘0’ en caso contrario status contiene el texto mostrado en el estado del contacto status_timestamp contiene la marca de tiempo en formato Unix Epoch Time (ms) number número de teléfono asociado al contacto raw_contact_id número secuencial del contacto display_name nombre mostrado del contacto phone_type tipo de teléfono phone_label etiqueta asociada con el número del contacto unseen_msg_count número de mensajes enviados por el contacto que no han sido leídos por el receptor photo_ts contiene una marca de tiempo en formato Unix Epoch Time thumb_ts contiene una marca de tiempo en formato Unix Epoch Time photo_id_timestamp contiene la marca de tiempo en formato Unix Epoch Time (ms) given_name el valor del campo coincide con ‘display_name’ para cada contacto wa_name nombre del contacto en WhatsApp (nombre mostrado, especificado en el perfil del contacto) sort_name nombre del contacto utilizado en operaciones de ordenamiento nickname apodo del contacto en WhatsApp (aparece el apodo especificado en el perfil del contacto) company empresa (se muestra la empresa indicada en el perfil del contacto) title trato (señora/señor; se muestra el trato configurado en el perfil del contacto) offset desplazamiento - ‘sqlite_sequence’
Esta tabla contiene información sobre el número de contactos; - ‘android_metadata’
Esta tabla contiene información sobre la localización lingüística de WhatsApp.
La base de datos ‘msgstore.db’ contiene información sobre los mensajes enviados, como el número del contacto, el texto del mensaje, el estado del mensaje, marcas de tiempo, detalles de los archivos enviados incluidos en los mensajes, etc. El archivo ‘msgstore.db’ se encuentra en la ruta: ‘/data/data/com.whatsapp/databases/’ y tiene la siguiente estructura:

Las tablas más interesantes en el archivo ‘msgstore.db’ para el investigador son:
- ‘sqlite_sequence’
Esta tabla contiene información general sobre esta base de datos, como el número total de mensajes almacenados, el número total de chats, etc.Apariencia de la tabla:

- ‘message_fts_content’
Contiene el texto de los mensajes enviados.Apariencia de la tabla:

- ‘messages’
Esta tabla contiene información como el número de contacto, el texto del mensaje, el estado del mensaje, marcas de tiempo, detalles de los archivos enviados incluidos en los mensajes.Apariencia de la tabla:

Estructura de la tablaNombre del campo Valor _id número secuencial de registro (en la tabla SQL) key_remote_jid ID de WhatsApp del socio de comunicación key_from_me dirección del mensaje: ‘0’ – entrante, ‘1’ — saliente key_id identificador único del mensaje status estado del mensaje: '0' - entregado, '4' - en espera de servidor, '5' - recibido en el destino, '6' - mensaje de control, '13' - mensaje abierto por el destinatario (leído) need_push tiene un valor de '2' si es un mensaje de difusión, de lo contrario contiene '0' data texto del mensaje (cuando el parámetro 'media_wa_type' es '0') timestamp contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma de la hora del dispositivo media_url contiene la URL del archivo enviado (cuando el parámetro 'media_wa_type' es '1', '2', '3') media_mime_type tipo MIME del archivo enviado (cuando el parámetro 'media_wa_type' es '1', '2', '3') media_wa_type tipo de mensaje: '0' - texto, '1' - archivo gráfico, '2' - archivo de audio, '3' - archivo de video, '4' - tarjeta de contacto, '5' - datos geográficos media_size tamaño del archivo enviado (cuando el parámetro 'media_wa_type' es '1', '2', '3') media_name nombre del archivo enviado (cuando el parámetro 'media_wa_type' es '1', '2', '3') media_caption Contiene las palabras 'audio', 'video' para los valores correspondientes del parámetro 'media_wa_type' (cuando el parámetro 'media_wa_type' es '1', '3') media_hash hash del archivo enviado codificado en formato base64, calculado usando el algoritmo HAS-256 (cuando el parámetro 'media_wa_type' es '1', '2', '3') media_duration duración en segundos del archivo multimedia (cuando el parámetro 'media_wa_type' es '1', '2', '3') origen tiene un valor de '2' si es un mensaje de difusión, de lo contrario contiene '0' latitud datos geográficos: latitud (cuando el parámetro 'media_wa_type' es '5') longitud datos geográficos: longitud (cuando el parámetro 'media_wa_type' es '5') thumb_image información del servicio remote_recource ID del remitente (solo para chats grupales) received_timestamp tiempo de recepción, contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma de la hora del dispositivo (cuando el parámetro 'key_from_me' tiene '0', '-1' u otro valor) send_timestamp no utilizado, generalmente tiene el valor '-1' receipt_server_timestamp tiempo de recepción por el servidor central, contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma de la hora del dispositivo (cuando el parámetro 'key_from_me' tiene '1', '-1' u otro valor) el servidorreceipt_device_timestamp tiempo de recepción del mensaje por otro abonado, contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma de la hora del dispositivo (cuando el parámetro 'key_from_me' tiene '1', '-1' u otro valor) read_device_timestamp read_device_timestamp hora de apertura (lectura) del mensaje, contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma del reloj del dispositivo played_device_timestamp hora de reproducción del mensaje, contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma del reloj del dispositivo raw_data miniatura del archivo transmitido (cuando el parámetro ‘media_wa_type’ es igual a ‘1’ o ‘3’) recipient_count número de destinatarios (para mensajes de difusión) participant_hash se utiliza al enviar mensajes con datos geográficos starred no utilizado quoted_row_id desconocido, generalmente contiene el valor ‘0’ mentioned_jids no utilizado multicast_id no utilizado offset desplazamiento Esta lista de campos no es exhaustiva. Para diferentes versiones de WhatsApp, algunos campos pueden estar presentes o ausentes. Además, pueden existir campos ‘media_enc_hash’, ‘edit_version’, ‘payment_transaction_id’ etc.
- ‘messages_thumbnails’
Esta tabla contiene información sobre las imágenes transmitidas y las marcas de tiempo. En la columna ‘timestamp’ el tiempo se indica en formato Unix Epoch Time (ms). - ‘chat_list’
Esta tabla contiene información sobre los chats.Apariencia de la tabla:

Además, al investigar WhatsApp en un dispositivo móvil con sistema Android, se debe prestar atención a los siguientes archivos:
- Archivo ‘msgstore.db.cryptXX’ (donde XX es uno o dos dígitos del 0 al 12, por ejemplo, msgstore.db.crypt12). Contiene una copia de seguridad cifrada de los mensajes de WhatsApp (copia de seguridad del archivo msgstore.db). El archivo (o archivos) ‘msgstore.db.cryptXX’ se encuentra en la ruta: ‘/data/media/0/WhatsApp/Databases/’ (tarjeta SD virtual), ‘/mnt/sdcard/WhatsApp/Databases/’ (tarjeta SD física).
- Archivo ‘key’. Contiene la clave criptográfica. Se encuentra en la ruta: ‘/data/data/com.whatsapp/files/’. Se utiliza para descifrar las copias de seguridad cifradas de WhatsApp.
- Archivo ‘com.whatsapp_preferences.xml’. Contiene información sobre el perfil de la cuenta de WhatsApp. El archivo se encuentra en la ruta: ‘/data/data/com.whatsapp/shared_prefs/’.
fragmento del contenido del archivo
… 9123456789 (número de teléfono asociado con la cuenta de WhatsApp) … 2.17.395 (versión de WhatsApp) … ¡Hola! Estoy usando WhatsApp. (mensaje que se muestra en el estado de la cuenta) … Alex (nombre del propietario de la cuenta) … - Archivo ‘registration.RegisterPhone.xml’. Contiene información sobre el número de teléfono asociado con la cuenta de WhatsApp. El archivo se encuentra en la ruta: ‘/data/data/com.whatsapp/shared_prefs/’.
El contenido del archivo
- Archivo 'axolotl.db'. Contiene claves criptográficas y otros datos necesarios para identificar al propietario de la cuenta. Se encuentra en la ruta: ‘/data/data/com.whatsapp/databases/’.
- Archivo 'chatsettings.db'. Contiene información sobre la configuración de la aplicación.
- Archivo ‘wa.db’. Contiene detalles de los contactos. Es una base de datos muy interesante (desde un aspecto forense) e informativa. Aquí se puede encontrar información detallada sobre los contactos eliminados.
También hay que prestar atención a los siguientes directorios:
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Contiene archivos gráficos enviados.
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Contiene mensajes de voz en archivos de formato .OPUS.
- Directorio '/data/data/com.whatsapp/cache/Profile Pictures/'. Contiene archivos gráficos - imágenes de contactos.
- Directorio '/data/data/com.whatsapp/files/Avatars/'. Contiene archivos gráficos - miniaturas de imágenes de contactos. Estos archivos tienen la extensión '.j', pero son archivos gráficos en formato JPEG (JPG).
- Directorio '/data/data/com.whatsapp/files/Avatars/'. Contiene archivos gráficos - la imagen y la miniatura de la imagen establecida como avatar por el propietario de la cuenta.
- Directorio '/data/data/com.whatsapp/files/Logs/'. Contiene el registro de trabajo del programa (archivo 'whatsapp.log') y copias de seguridad de los registros de trabajo del programa (archivos con nombres en formato whatsapp-aaaa-mm-dd.1.log.gz).
Archivos de registro de WhatsApp:

Fragmento de registro2017-01-10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] missedcallnotification/init count:0 timestamp:0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] missedcallnotification/update cancel true
2017-01-10 09:37:09.768 LL_I D [1:main] app-init/load-me
2017-01-10 09:37:09.772 LL_I D [1:main] archivo de contraseña faltante o ilegible
2017-01-10 09:37:09.782 LL_I D [1:main] estadísticas Mensajes de Texto: 59 enviados, 82 recibidos / Mensajes Multimedia: 1 enviado (0 bytes), 0 recibidos (9850158 bytes) / Mensajes Fuera de Línea: 81 recibidos (19522 msec de retraso promedio) / Servicio de Mensajes: 116075 bytes enviados, 211729 bytes recibidos / Llamadas Voip: 1 llamada saliente, 0 llamadas entrantes, 2492 bytes enviados, 1530 bytes recibidos / Google Drive: 0 bytes enviados, 0 bytes recibidos / Roaming: 1524 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:main] media-state-manager/refresh-media-state/writable-media
2017-01-10 09:37:09.806 LL_I D [1:main] app-init/initialize/timer/stop: 24
2017-01-10 09:37:09.811 LL_I D [1:main] msgstore/checkhealth
2017-01-10 09:37:09.817 LL_I D [1:main] msgstore/checkhealth/journal/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkhealth/back/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkdb/data/data/com.whatsapp/databases/msgstore.db
2017-01-10 09:37:09.819 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager-journal 21032 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list axolotl.db 184320 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-wal 436752 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-shm 32768 drw=011
2017-01-10 09:37:09.822 LL_I D [1:main] msgstore/checkdb/list msgstore.db 540672 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-wal 0 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-shm 32768 drw=011
2017-01-10 09:37:09.824 LL_I D [1:main] msgstore/checkdb/list wa.db 69632 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-wal 428512 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-shm 32768 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db 4096 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-wal 70072 drw=011
2017-01-10 09:37:09.827 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-shm 32768 drw=011
2017-01-10 09:37:09.838 LL_I D [1:main] msgstore/checkdb/version 1
2017-01-10 09:37:09.839 LL_I D [1:main] msgstore/canquery
2017-01-10 09:37:09.846 LL_I D [1:main] msgstore/canquery/count 1
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery/timer/stop: 8
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery 517 | time spent:8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] media-state-manager/refresh-media-state/internal-storage available:1,345,622,016 total:5,687,922,688
- Directorio ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/’. Contiene archivos de audio recibidos.
- Directorio ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/’. Contiene archivos de audio enviados.
- Directorio '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Contiene archivos gráficos recibidos.
- Directorio ‘/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/’. Contiene archivos gráficos enviados.
- Directorio ‘/data/media/0/WhatsApp/Media/WhatsApp Video/’. Contiene archivos de video recibidos.
- Directorio ‘/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/’. Contiene archivos de video enviados.
- Directorio ‘/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/’. Contiene archivos gráficos asociados con el propietario de la cuenta de WhatsApp.
- Para ahorrar espacio en la memoria del smartphone Android, parte de los datos de WhatsApp pueden almacenarse en la tarjeta SD. En la tarjeta SD, en el directorio raíz, se encuentra el directorio ‘WhatsApp’, donde se pueden encontrar los siguientes artefactos de este programa:

- Directorio ‘.Share’ (‘/mnt/sdcard/WhatsApp/.Share/’). Contiene copias de archivos que han sido enviados a otros usuarios de WhatsApp.
- Directorio ‘.trash’ (‘/mnt/sdcard/WhatsApp/.trash/’). Contiene archivos eliminados.
- Directorio ‘Databases’ (‘/mnt/sdcard/WhatsApp/Databases/’). Contiene copias de seguridad encriptadas. Pueden ser desencriptadas si se tiene el archivo ‘key’, extraído de la memoria del dispositivo analizado.
Archivos que se encuentran en el subdirectorio ‘Databases’:

- Directorio ‘Media’ (‘/mnt/sdcard/WhatsApp/Media/’). Contiene subdirectorios ‘WallPaper’, ‘WhatsApp Audio’, ‘WhatsApp Images’, ‘WhatsApp Profile Photos’, ‘WhatsApp Video’, ‘WhatsApp Voice Notes’, en los que se encuentran los archivos multimedia recibidos y enviados (archivos gráficos, archivos de vídeo, mensajes de voz, fotos, asociados al perfil del propietario de la cuenta de WhatsApp, fondos de pantalla).
- Directorio ‘Profile Pictures’ (‘/mnt/sdcard/WhatsApp/Profile Pictures/’). Contiene archivos gráficos, asociados al perfil del propietario de la cuenta de WhatsApp.
- A veces, en la tarjeta SD puede haber un directorio ‘files’ (‘/mnt/sdcard/WhatsApp/Files/’). En este directorio se encuentran archivos que contienen la configuración del programa y las preferencias del usuario.
Características del almacenamiento de datos en algunos modelos de dispositivos móviles
En algunos modelos de dispositivos móviles que funcionan con el sistema operativo Android, es posible almacenar artefactos de WhatsApp en otro lugar. Esto se debe a cambios en el espacio de almacenamiento de datos de las aplicaciones por el software del sistema del dispositivo móvil. Por ejemplo, en dispositivos móviles de Xiaomi existe la función de crear un segundo espacio de trabajo (‘SecondSpace’). Al activar esta función, se cambia la ubicación de los datos. Así, si en un dispositivo móvil normal que funciona con Android, los datos del usuario se almacenan en el directorio ‘/data/user/0/’ (que es un enlace a los habituales ‘/data/data/’), en el segundo espacio de trabajo, los datos de las aplicaciones se almacenan en el directorio ‘/data/user/10/’. Es decir, tomando como ejemplo la ubicación del archivo ‘wa.db’:
- en un smartphone normal que funciona con Android: /data/user/0/com.whatsapp/databases/wa.db’ (que equivale a ‘/data/data/com.whatsapp/databases/wa.db’);
- en el segundo espacio de trabajo del smartphone Xiaomi: ‘/data/user/10/com.whatsapp/databases/wa.db’.
Artefactos de WhatsApp en dispositivos iOS
A diferencia del sistema operativo Android, en iOS los datos de la aplicación WhatsApp se transmiten a una copia de seguridad (iTunes backup). Por lo tanto, la extracción de datos de esta aplicación no requiere extraer el sistema de archivos ni crear un volcado físico de la memoria del dispositivo en cuestión. La mayor parte de la información significativa se encuentra en la base de datos ‘ChatStorage.sqlite’, que se localiza en la ruta: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/’ (en algunos programas, esta ruta se muestra como ‘AppDomainGroup-group.net.whatsapp.WhatsApp.shared’).
Estructura ‘ChatStorage.sqlite’:

Las tablas más informativas en la base de datos ‘ChatStorage.sqlite’ son ‘ZWAMESSAGE’ y ‘ZWAMEDIAITEM’.
Apariencia de la tabla ‘ZWAMESSAGE’:

Estructura de la tabla ‘ZWAMESSAGE’
| Nombre del campo | Valor |
|---|---|
| Z_PK | número secuencial de registro (en la tabla SQL) |
| Z_ENT | identificador de la tabla, tiene un valor de ‘9’ |
| Z_OPT | desconocido, generalmente contiene valores de ‘1’ a ‘6’ |
| ZCHILDMESSAGESDELIVEREDCOUNT | desconocido, generalmente contiene el valor ‘0’ |
| ZCHILDMESSAGESPLAYEDCOUNT | desconocido, generalmente contiene el valor ‘0’ |
| ZCHILDMESSAGESREADCOUNT | desconocido, generalmente contiene el valor ‘0’ |
| ZDATAITEMVERSION | desconocido, generalmente contiene el valor ‘3’, probablemente es un indicador del mensaje de texto |
| ZDOCID | desconocido |
| ZENCRETRYCOUNT | desconocido, generalmente contiene el valor ‘0’ |
| ZFILTEREDRECIPIENTCOUNT | desconocido, generalmente contiene valores ‘0’, ‘2’, ‘256’ |
| ZISFROMME | dirección del mensaje: ‘0’ – entrante, ‘1’ — saliente |
| ZMESSAGEERRORSTATUS | estado de envío del mensaje. Si el mensaje ha sido enviado/recibido, tiene un valor de ‘0’ |
| ZMESSAGETYPE | tipo de mensaje enviado |
| ZSORT | desconocido |
| ZSPOTLIGHSTATUS | desconocido |
| ZSTARRED | desconocido, no se utiliza |
| ZCHATSESSION | desconocido |
| ZGROUPMEMBER | desconocido, no se utiliza |
| ZLASTSESSION | desconocido |
| ZMEDIAITEM | desconocido |
| ZMESSAGEINFO | desconocido |
| ZPARENTMESSAGE | desconocido, no se utiliza |
| ZMESSAGEDATE | marca temporal en formato OS X Epoch Time |
| ZSENTDATE | hora de envío del mensaje en formato OS X Epoch Time |
| ZFROMJID | ID de WhatsApp del remitente |
| ZMEDIASECTIONID | contiene el año y mes de envío del archivo multimedia |
| ZPHASH | desconocido, no se utiliza |
| ZPUSHPAME | nombre del contacto que envió el archivo multimedia en formato UTF-8 |
| ZSTANZID | identificador único del mensaje |
| ZTEXT | texto del mensaje |
| ZTOJID | ID de WhatsApp del destinatario |
| OFFSET | desplazamiento |
Apariencia de la tabla ‘ZWAMEDIAITEM’:

Estructura de la tabla ‘ZWAMEDIAITEM’
| Nombre del campo | Valor |
|---|---|
| Z_PK | número secuencial de registro (en la tabla SQL) |
| Z_ENT | identificador de la tabla, tiene un valor de ‘8’ |
| Z_OPT | desconocido, generalmente contiene valores de ‘1’ a ‘3’ |
| ZCLOUDSTATUS | contiene el valor ‘4’ si el archivo está cargado. |
| ZFILESIZE | contiene la longitud del archivo (en bytes) para archivos cargados |
| ZMEDIAORIGIN | desconocido, generalmente tiene un valor de ‘0’ |
| ZMOVIEDURATION | duración del archivo multimedia, para archivos pdf puede contener el número de páginas del documento |
| ZMESSAGE | contiene el número de serie (diferente del que se indica en la columna ‘Z_PK’) |
| ZASPECTRATIO | relación de aspecto, no se utiliza, generalmente tiene un valor de ‘0’ |
| ZHACCURACY | desconocido, generalmente tiene un valor de ‘0’ |
| ZLATTITUDE | ancho en píxeles |
| ZLONGTITUDE | altura en píxeles |
| ZMEDIAURLDATE | marca temporal en formato OS X Epoch Time |
| ZAUTHORNAME | autor (para documentos, puede contener el nombre del archivo) |
| ZCOLLECTIONNAME | no utilizado |
| ZMEDIALOCALPATH | nombre del archivo (con la ruta) en el sistema de archivos del dispositivo |
| ZMEDIAURL | URL donde se encontraba el archivo multimedia. Si el archivo fue transferido de un abonado a otro, fue cifrado, y su extensión se indicará como la extensión del archivo transferido — .enc |
| ZTHUMBNAILLOCALPATH | ruta a la miniatura del archivo en el sistema de archivos del dispositivo |
| ZTITLE | título del archivo |
| ZVCARDNAME | hash del archivo multimedia, al transferir el archivo a un grupo puede contener el identificador del remitente |
| ZVCARDSTRING | contiene información sobre el tipo de archivo transferido (por ejemplo, image/jpeg), al transferir el archivo a un grupo puede contener el identificador del destinatario |
| ZXMPPTHUMBPATH | ruta a la miniatura del archivo en el sistema de archivos del dispositivo |
| ZMEDIAKEY | Desconocido, probablemente contiene la clave para descifrar el archivo cifrado. |
| ZMETADATA | metadatos del mensaje transmitido |
| Desplazamiento | desplazamiento |
Otras tablas interesantes de la base de datos ‘ChatStorage.sqlite’ son:
- ‘ZWAPROFILEPUSHNAME’. Relaciona el ID de WhatsApp con el nombre del contacto;
- ‘ZWAPROFILEPICTUREITEM’. Relaciona el ID de WhatsApp con la imagen de perfil del contacto;
- ‘Z_PRIMARYKEY’. La tabla contiene información general sobre esta base de datos, como el número total de mensajes almacenados, el número total de chats, etc.
También al investigar WhatsApp en un dispositivo móvil con iOS se debe prestar atención a los siguientes archivos:
- Archivo ‘BackedUpKeyValue.sqlite’. Contiene claves criptográficas y otros datos necesarios para identificar al propietario de la cuenta. Se encuentra en la ruta: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Archivo ‘ContactsV2.sqlite’. Contiene información sobre los contactos del usuario, como nombre completo, número de teléfono, estado del contacto (en forma de texto), ID de WhatsApp, etc. Se encuentra en la ruta: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Archivo ‘consumer_version’. Contiene el número de versión de la aplicación WhatsApp instalada. Se encuentra en la ruta: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Archivo ‘current_wallpaper.jpg’. Contiene el fondo actual de la aplicación WhatsApp. Se encuentra en la ruta: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. En versiones anteriores de la aplicación se utiliza el archivo ‘wallpaper’, que se encuentra en la ruta: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’.
- Archivo ‘blockedcontacts.dat’. Contiene información sobre contactos bloqueados. Se encuentra en la ruta: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
- Archivo ‘pw.dat’. Contiene la contraseña cifrada. Se encuentra en la ruta: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/’.
- Archivo ‘net.whatsapp.WhatsApp.plist’ (o el archivo ‘group.net.whatsapp.WhatsApp.shared.plist’). Contiene información sobre el perfil de la cuenta de WhatsApp. El archivo se encuentra en la ruta: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/’.
El contenido del archivo ‘group.net.whatsapp.WhatsApp.shared.plist’
También hay que prestar atención a los siguientes directorios:
- Directorio ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/’. Contiene miniaturas de contactos, grupos (archivos con la extensión .thumb), avatares de contactos, avatar del propietario de la cuenta de WhatsApp (archivo ‘Photo.jpg’).
- Directorio ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/’. Contiene archivos multimedia y sus miniaturas
- Directorio ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’. Contiene el registro de actividad de la aplicación (archivo ‘calls.log’) y copias de seguridad de los registros de actividad de la aplicación (archivo ‘calls.backup.log’).
- Directorio ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/’. Contiene stickers (archivos en formato ‘.webp’).
- Directorio ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/’. Contiene los registros de actividad de la aplicación.
Artefactos de WhatsApp en Windows
Los artefactos de WhatsApp en Windows se pueden encontrar en varios lugares. Primero, son los directorios que contienen los archivos ejecutables y auxiliares de la aplicación (para Windows 8/10):
- ‘C:Program Files (x86)WhatsApp’
- ‘C:Users%User profile% AppDataLocalWhatsApp’
- ‘C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp’
En el directorio ‘C:Users%User profile% AppDataLocalWhatsApp’ se encuentra el archivo de registro ‘SquirrelSetup.log’, que contiene información sobre la verificación de actualizaciones e instalación del programa.
En el directorio ‘C:Users%User profile% AppDataRoamingWhatsApp’ hay varios subdirectorios:
Archivo ‘main-process.log’ contiene información sobre el funcionamiento del programa WhatsApp.
Subdirectorio ‘databases’ contiene el archivo ‘Databases.db’, pero este archivo no contiene ninguna información sobre chats o contactos.
Los archivos más interesantes desde el punto de vista forense son los ubicados en el directorio ‘Cache’. Principalmente son archivos con nombres ‘f_*******’ (donde * es un número del 0 al 9), que contienen archivos multimedia y documentos cifrados, pero entre ellos también se encuentran archivos sin cifrar. Los archivos ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’, que se encuentran en este mismo subdirectorio. Los archivos ‘data_0’, ‘data_1’, ‘data_3’ contienen enlaces externos a archivos multimedia y documentos cifrados transmitidos.
Ejemplo de información contenida en el archivo ‘data_1’
Además, el archivo ‘data_3’ puede contener archivos gráficos.
Archivo ‘data_2’ contiene los avatares de los contactos (se pueden recuperar buscando por los nombres de los archivos).
Los avatares contenidos en el archivo ‘data_2’:

Así, en la memoria del ordenador no se pueden encontrar los propios chats, pero se pueden encontrar:
- archivos multimedia;
- documentos enviados a través de WhatsApp;
- información sobre los contactos del propietario de la cuenta.
Artefactos de WhatsApp en MacOS
En MacOS se pueden encontrar tipos de artefactos de WhatsApp similares a los que existen en Windows.
Los archivos del programa se encuentran en los directorios:
- ‘C:ApplicationsWhatsApp.app’
- ‘C:Applications._WhatsApp.app’
- ‘C:Users%User profile%LibraryPreferences’
- ‘C:Users%User profile%LibraryLogsWhatsApp’
- ‘C:Users%User profile%LibrarySaved Application StateWhatsApp.savedState’
- ‘C:Users%User profile%LibraryApplication Scripts’
- ‘C:Users%User profile%LibraryApplication SupportCloudDocs’
- ‘C:Users%User profile%LibraryApplication SupportWhatsApp.ShipIt’
- ‘C:Users%User profile%LibraryContainerscom.rockysandstudio.app-for-whatsapp’
- ‘C:Users%User profile% Library Mobile Documents WhatsApp Accounts’
En este directorio hay subdirectorios cuyos nombres son números de teléfono asociados con el propietario de la cuenta de WhatsApp. - ‘C:Users%User profile%LibraryCachesWhatsApp.ShipIt’
En este directorio se contiene información sobre la instalación del programa. - ‘C:Users%User profile%PicturesBiblioteca de fotos de iPhoto.photolibraryMasters’, ‘C:Users%User profile%PicturesBiblioteca de fotos de iPhoto.photolibraryThumbnails’
En estos directorios se encuentran archivos de sistema del programa, incluidos fotos y miniaturas de contactos de WhatsApp. - ‘C:Users%User profile%LibraryCachesWhatsApp’
En este directorio hay varias bases de datos SQLite que se utilizan para almacenar en caché datos. - ‘C:Users%User profile%LibraryApplication SupportWhatsApp’
En este directorio se encuentran varios subdirectorios:
En el directorio ‘C:Users%User profile%LibraryApplication SupportWhatsAppCache’ se encuentran archivos ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’ y archivos con nombres ‘f_*******’ (donde * es un número del 0 al 9). La información sobre qué datos contienen estos archivos se describe en la sección 'Artefactos de WhatsApp en Windows'.En el directorio ‘C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB’ pueden contener archivos multimedia (los archivos no tienen extensiones).
Archivo ‘main-process.log’ contiene información sobre el funcionamiento del programa WhatsApp.
Fuentes
- Análisis forense de WhatsApp Messenger en smartphones Android, por Cosimo Anglano, 2014.
- Forensia de WhatsApp: Exploración del sistema de archivos y bases de datos en aplicaciones Android e iOS por Ahmad Pratama, 2014.
En los siguientes artículos de esta serie:
Descifrado de bases de datos encriptadas de WhatsAppArtículo que proporcionará información sobre cómo se genera la clave de cifrado de WhatsApp y ejemplos prácticos que muestran cómo descifrar las bases de datos encriptadas de esta aplicación.
Extracción de datos de WhatsApp de almacenes en la nubeArtículo en el que hablaremos sobre qué datos de WhatsApp se almacenan en la nube y describiremos métodos para la extracción de estos datos de almacenes en la nube.
Extracción de datos de WhatsApp: ejemplos prácticosArtículo que describirá paso a paso qué programas utilizar y cómo realizar la extracción de datos de WhatsApp de diversos dispositivos.
Fuente: habr.com








