WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?

WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?

¿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/’.

WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
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:

WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
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:

    WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
    Estructura de la tabla

    Nombre del campoValor
    _idnúmero secuencial de registro (en la tabla SQL)
    jidID de WhatsApp del contacto, se registra en el formato @s.whatsapp.net
    is_whatsapp_usercontiene ‘1’ si el contacto es un usuario real de WhatsApp, ‘0’ en caso contrario
    statuscontiene el texto mostrado en el estado del contacto
    status_timestampcontiene la marca de tiempo en formato Unix Epoch Time (ms)
    numbernúmero de teléfono asociado al contacto
    raw_contact_idnúmero secuencial del contacto
    display_namenombre mostrado del contacto
    phone_typetipo de teléfono
    phone_labeletiqueta asociada con el número del contacto
    unseen_msg_countnúmero de mensajes enviados por el contacto que no han sido leídos por el receptor
    photo_tscontiene una marca de tiempo en formato Unix Epoch Time
    thumb_tscontiene una marca de tiempo en formato Unix Epoch Time
    photo_id_timestampcontiene la marca de tiempo en formato Unix Epoch Time (ms)
    given_nameel valor del campo coincide con ‘display_name’ para cada contacto
    wa_namenombre del contacto en WhatsApp (nombre mostrado, especificado en el perfil del contacto)
    sort_namenombre del contacto utilizado en operaciones de ordenamiento
    nicknameapodo del contacto en WhatsApp (aparece el apodo especificado en el perfil del contacto)
    companyempresa (se muestra la empresa indicada en el perfil del contacto)
    titletrato (señora/señor; se muestra el trato configurado en el perfil del contacto)
    offsetdesplazamiento
  • ‘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:

WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
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:

    WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?

  • ‘message_fts_content’
    Contiene el texto de los mensajes enviados.

    Apariencia de la tabla:

    WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?

  • ‘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:

    WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
    Estructura de la tabla

    Nombre del campoValor
    _idnúmero secuencial de registro (en la tabla SQL)
    key_remote_jidID de WhatsApp del socio de comunicación
    key_from_medirección del mensaje: ‘0’ – entrante, ‘1’ — saliente
    key_ididentificador único del mensaje
    statusestado 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_pushtiene un valor de '2' si es un mensaje de difusión, de lo contrario contiene '0'
    datatexto del mensaje (cuando el parámetro 'media_wa_type' es '0')
    timestampcontiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma de la hora del dispositivo
    media_urlcontiene la URL del archivo enviado (cuando el parámetro 'media_wa_type' es '1', '2', '3')
    media_mime_typetipo MIME del archivo enviado (cuando el parámetro 'media_wa_type' es '1', '2', '3')
    media_wa_typetipo 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_sizetamaño del archivo enviado (cuando el parámetro 'media_wa_type' es '1', '2', '3')
    media_namenombre del archivo enviado (cuando el parámetro 'media_wa_type' es '1', '2', '3')
    media_captionContiene 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_hashhash 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_durationduración en segundos del archivo multimedia (cuando el parámetro 'media_wa_type' es '1', '2', '3')
    origentiene un valor de '2' si es un mensaje de difusión, de lo contrario contiene '0'
    latituddatos geográficos: latitud (cuando el parámetro 'media_wa_type' es '5')
    longituddatos geográficos: longitud (cuando el parámetro 'media_wa_type' es '5')
    thumb_imageinformación del servicio
    remote_recourceID del remitente (solo para chats grupales)
    received_timestamptiempo 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_timestampno utilizado, generalmente tiene el valor '-1'
    receipt_server_timestamptiempo 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_timestamphora 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_timestamphora 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_dataminiatura del archivo transmitido (cuando el parámetro ‘media_wa_type’ es igual a ‘1’ o ‘3’)
    recipient_countnúmero de destinatarios (para mensajes de difusión)
    participant_hashse utiliza al enviar mensajes con datos geográficos
    starredno utilizado
    quoted_row_iddesconocido, generalmente contiene el valor ‘0’
    mentioned_jidsno utilizado
    multicast_idno utilizado
    offsetdesplazamiento

    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:

    WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?

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

    
    9123456789
    
    
    912 345-67-89
    
    7
    7
    
  • 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:

WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
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:

    WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?

  • 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’:

    WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?

  • 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’:

WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
Las tablas más informativas en la base de datos ‘ChatStorage.sqlite’ son ‘ZWAMESSAGE’ y ‘ZWAMEDIAITEM’.

Apariencia de la tabla ‘ZWAMESSAGE’:

WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
Estructura de la tabla ‘ZWAMESSAGE’

Nombre del campoValor
Z_PKnúmero secuencial de registro (en la tabla SQL)
Z_ENTidentificador de la tabla, tiene un valor de ‘9’
Z_OPTdesconocido, generalmente contiene valores de ‘1’ a ‘6’
ZCHILDMESSAGESDELIVEREDCOUNTdesconocido, generalmente contiene el valor ‘0’
ZCHILDMESSAGESPLAYEDCOUNTdesconocido, generalmente contiene el valor ‘0’
ZCHILDMESSAGESREADCOUNTdesconocido, generalmente contiene el valor ‘0’
ZDATAITEMVERSIONdesconocido, generalmente contiene el valor ‘3’, probablemente es un indicador del mensaje de texto
ZDOCIDdesconocido
ZENCRETRYCOUNTdesconocido, generalmente contiene el valor ‘0’
ZFILTEREDRECIPIENTCOUNTdesconocido, generalmente contiene valores ‘0’, ‘2’, ‘256’
ZISFROMMEdirección del mensaje: ‘0’ – entrante, ‘1’ — saliente
ZMESSAGEERRORSTATUSestado de envío del mensaje. Si el mensaje ha sido enviado/recibido, tiene un valor de ‘0’
ZMESSAGETYPEtipo de mensaje enviado
ZSORTdesconocido
ZSPOTLIGHSTATUSdesconocido
ZSTARREDdesconocido, no se utiliza
ZCHATSESSIONdesconocido
ZGROUPMEMBERdesconocido, no se utiliza
ZLASTSESSIONdesconocido
ZMEDIAITEMdesconocido
ZMESSAGEINFOdesconocido
ZPARENTMESSAGEdesconocido, no se utiliza
ZMESSAGEDATEmarca temporal en formato OS X Epoch Time
ZSENTDATEhora de envío del mensaje en formato OS X Epoch Time
ZFROMJIDID de WhatsApp del remitente
ZMEDIASECTIONIDcontiene el año y mes de envío del archivo multimedia
ZPHASHdesconocido, no se utiliza
ZPUSHPAMEnombre del contacto que envió el archivo multimedia en formato UTF-8
ZSTANZIDidentificador único del mensaje
ZTEXTtexto del mensaje
ZTOJIDID de WhatsApp del destinatario
OFFSETdesplazamiento

Apariencia de la tabla ‘ZWAMEDIAITEM’:

WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
Estructura de la tabla ‘ZWAMEDIAITEM’

Nombre del campoValor
Z_PKnúmero secuencial de registro (en la tabla SQL)
Z_ENTidentificador de la tabla, tiene un valor de ‘8’
Z_OPTdesconocido, generalmente contiene valores de ‘1’ a ‘3’
ZCLOUDSTATUScontiene el valor ‘4’ si el archivo está cargado.
ZFILESIZEcontiene la longitud del archivo (en bytes) para archivos cargados
ZMEDIAORIGINdesconocido, generalmente tiene un valor de ‘0’
ZMOVIEDURATIONduración del archivo multimedia, para archivos pdf puede contener el número de páginas del documento
ZMESSAGEcontiene el número de serie (diferente del que se indica en la columna ‘Z_PK’)
ZASPECTRATIOrelación de aspecto, no se utiliza, generalmente tiene un valor de ‘0’
ZHACCURACYdesconocido, generalmente tiene un valor de ‘0’
ZLATTITUDEancho en píxeles
ZLONGTITUDEaltura en píxeles
ZMEDIAURLDATEmarca temporal en formato OS X Epoch Time
ZAUTHORNAMEautor (para documentos, puede contener el nombre del archivo)
ZCOLLECTIONNAMEno utilizado
ZMEDIALOCALPATHnombre del archivo (con la ruta) en el sistema de archivos del dispositivo
ZMEDIAURLURL 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
ZTHUMBNAILLOCALPATHruta a la miniatura del archivo en el sistema de archivos del dispositivo
ZTITLEtítulo del archivo
ZVCARDNAMEhash del archivo multimedia, al transferir el archivo a un grupo puede contener el identificador del remitente
ZVCARDSTRINGcontiene 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
ZXMPPTHUMBPATHruta a la miniatura del archivo en el sistema de archivos del dispositivo
ZMEDIAKEYDesconocido, probablemente contiene la clave para descifrar el archivo cifrado.
ZMETADATAmetadatos del mensaje transmitido
Desplazamientodesplazamiento

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’ WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
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:

WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
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’WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
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’:

WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
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:

    WhatsApp al alcance de la mano: ¿dónde y cómo se pueden descubrir artefactos forenses?
    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

  1. Análisis forense de WhatsApp Messenger en smartphones Android, por Cosimo Anglano, 2014.
  2. 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

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster