Si desea saber qué tipos de artefactos forenses de WhatsApp existen en diferentes sistemas operativos y dónde se pueden encontrar exactamente, este es el lugar para usted. Este artículo es de un especialista del Laboratorio de Informática Forense del Grupo-IB. Igor Mikhailov Comienza una serie de posts sobre la ciencia forense de WhatsApp y qué información se puede obtener analizando el dispositivo.
Observemos de inmediato que diferentes sistemas operativos almacenan diferentes tipos de artefactos de WhatsApp, y si un investigador puede extraer ciertos tipos de datos de WhatsApp de un dispositivo, esto no significa que se puedan extraer tipos similares de datos de otro dispositivo. Por ejemplo, si se elimina una unidad del sistema que ejecuta el sistema operativo Windows, los chats de WhatsApp probablemente no se encontrarán en sus discos (con la excepción de las copias de seguridad de los dispositivos iOS, que se pueden encontrar en las mismas unidades). La incautación de ordenadores portátiles y dispositivos móviles tendrá sus propias características. Hablemos de esto con más detalle.
Artefactos de WhatsApp en dispositivo Android
Para extraer artefactos de WhatsApp desde un dispositivo Android, el investigador debe tener derechos de superusuario ('raíz') en el dispositivo bajo investigación o poder extraer de otro modo un volcado de memoria física del dispositivo o su sistema de archivos (por ejemplo, utilizando vulnerabilidades de software de un dispositivo móvil específico).
Los archivos de la aplicación se encuentran en la memoria del teléfono en la sección en la que se guardan los datos del usuario. Como regla general, esta sección se llama 'datos del usuario'. Los subdirectorios y archivos de programa se encuentran a lo largo de la ruta: '/datos/datos/com.whatsapp/'.
Los principales archivos que contienen artefactos forenses de WhatsApp en el sistema operativo Android son bases de datos 'wa.db' и 'msgstore.db'.
En la base de datos 'wa.db' contiene la lista completa de contactos de un usuario de WhatsApp, incluido el número de teléfono, el nombre para mostrar, las marcas de tiempo y cualquier otra información proporcionada al registrarse en WhatsApp. Archivo 'wa.db' situado a lo largo del camino: '/datos/datos/com.whatsapp/bases de datos/' y tiene la siguiente estructura:
Las tablas más interesantes de la base de datos. 'wa.db' para el investigador son:
- 'wa_contactos'
Esta tabla contiene información de contacto: identificación de contacto de WhatsApp, información de estado, nombre para mostrar del usuario, marcas de tiempo, etc.Aspecto de la mesa:
Estructura de la mesaNombre del campo Valor _id número de secuencia de registro (en la tabla SQL) jid ID de contacto de WhatsApp, escrito en el formato <número de teléfono>@s.whatsapp.net is_whatsapp_user contiene '1' si el contacto corresponde a un usuario real de WhatsApp, '0' en caso contrario estado contiene el texto que se muestra en el estado del contacto marca_hora_estado contiene una marca de tiempo en formato Unix Epoch Time (ms) número número de teléfono asociado al contacto raw_contact_id número de serie de contacto display_name nombre para mostrar del contacto tipo de telefono tipo de telefono etiqueta_teléfono etiqueta asociada al número de contacto cuenta_msg_invisible Número de mensajes que fueron enviados por un contacto pero que no fueron leídos por el destinatario. fotos_ts contiene una marca de tiempo en formato Unix Epoch Time pulgares contiene una marca de tiempo en formato Unix Epoch Time foto_id_marca de tiempo contiene una marca de tiempo en formato Unix Epoch Time (ms) nombre de pila el valor del campo coincide con 'display_name' para cada contacto nombre_wa Nombre del contacto de WhatsApp (se muestra el nombre especificado en el perfil del contacto) nombre_clasificación nombre de contacto utilizado en operaciones de clasificación apodo apodo del contacto en WhatsApp (se muestra el apodo especificado en el perfil del contacto) compañía empresa (se muestra la empresa especificada en el perfil del contacto) título título (Sra./Sr.; se muestra el título configurado en el perfil de contacto) compensar desplazamiento - 'sqlite_sequence'
Esta tabla contiene información sobre la cantidad de contactos; - 'android_metadatos'
Esta tabla contiene información sobre la localización del idioma de WhatsApp.
En la base de datos 'msgstore.db' contiene información sobre los mensajes enviados, como número de contacto, texto del mensaje, estado del mensaje, marcas de tiempo, detalles de los archivos transferidos incluidos en los mensajes, etc. Archivo 'msgstore.db' situado a lo largo del camino: '/datos/datos/com.whatsapp/bases de datos/' y tiene la siguiente estructura:
Las tablas más interesantes del 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.Aspecto de la mesa:
- 'mensaje_fts_content'
Contiene el texto de los mensajes enviados.Aspecto de la mesa:
- 'mensajes'
Esta tabla contiene información como número de contacto, texto del mensaje, estado del mensaje, marcas de tiempo e información sobre los archivos transferidos incluidos en los mensajes.Aspecto de la mesa:
Estructura de la mesaNombre del campo Valor _id número de secuencia de registro (en la tabla SQL) clave_remota_jid ID de WhatsApp del interlocutor clave_de_mi Dirección del mensaje: '0' – entrante, '1' – saliente id_clave identificador de mensaje único estado estado del mensaje: '0' – entregado, '4' – esperando en el servidor, '5' – recibido en destino, '6' – mensaje de control, '13' – mensaje abierto por el destinatario (leído) necesita_push tiene el valor '2' si es un mensaje de difusión, de lo contrario contiene '0' datos texto del mensaje (cuando el parámetro 'media_wa_type' es '0') fecha y hora contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma del reloj del dispositivo media_url contiene la URL del archivo transferido (cuando el parámetro 'media_wa_type' es '1', '2', '3') tipo_mime_media Tipo MIME del archivo transferido (cuando el parámetro 'media_wa_type' es igual a '1', '2', '3') tipo_wa_media tipo de mensaje: '0' - texto, '1' - archivo gráfico, '2' - archivo de audio, '3' - archivo de video, '4' - tarjeta de contacto, '5' - geodatos tamaño_media tamaño del archivo transferido (cuando el parámetro 'media_wa_type' es '1', '2', '3') nombre_medios nombre del archivo transferido (cuando el parámetro 'media_wa_type' es '1', '2', '3') subtítulo_media 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 codificado en base64 del archivo transmitido, calculado utilizando el algoritmo HAS-256 (cuando el parámetro 'media_wa_type' es igual a '1', '2', '3') duración_media duración en segundos para el archivo multimedia (cuando 'media_wa_type' es '1', '2', '3') natural tiene el valor '2' si es un mensaje de difusión, de lo contrario contiene '0' latitud geodatos: latitud (cuando el parámetro 'media_wa_type' es '5') longitud geodatos: longitud (cuando el parámetro 'media_wa_type' es '5') imagen_pulgar servicio de información recurso_remoto ID del remitente (solo para chats grupales) marca_hora_recibida hora de recepción, contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma del reloj del dispositivo (cuando el parámetro 'key_from_me' tiene '0', '-1' u otro valor) enviar_marca de tiempo no se utiliza, normalmente tiene el valor '-1' marca_hora_del_servidor_recibo hora recibida por el servidor central, contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma del reloj del dispositivo (cuando el parámetro 'key_from_me' tiene '1', '-1' u otro valor recibo_dispositivo_marca de tiempo hora en que otro suscriptor recibió el mensaje, contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma del reloj del dispositivo (cuando el parámetro 'key_from_me' tiene '1', '-1' u otro valor marca_hora_del_dispositivo_lectura 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 marca de tiempo_dispositivo_reproducido tiempo de reproducción del mensaje, contiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma del reloj del dispositivo datos_brutos miniatura del archivo transferido (cuando el parámetro 'media_wa_type' es '1' o '3') recuento_recibidor número de destinatarios (para mensajes de difusión) participante_hash utilizado al transmitir mensajes con geodatos protagonizó no utilizado quoted_row_id desconocido, normalmente contiene el valor '0' mencionado_jids no utilizado id_multidifusión no utilizado compensar desplazamiento Esta lista de campos no es exhaustiva. Para diferentes versiones de WhatsApp, algunos campos pueden estar presentes o no. Además, pueden estar presentes campos 'media_enc_hash', 'editar_versión', 'id_transacción_pago' etcétera
- 'mensajes_miniaturas'
Esta tabla contiene información sobre imágenes transferidas y marcas de tiempo. En la columna 'marca de tiempo', la hora se indica en formato Unix Epoch Time (ms). - 'lista_chat'
Esta tabla contiene información sobre los chats.Aspecto de la mesa:
Además, al examinar WhatsApp en un dispositivo móvil con Android, debes prestar atención a los siguientes archivos:
- Expediente '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 (archivo de copia de seguridad msgstore.db). Archivo(s) 'msgstore.db.cryptXX' situado a lo largo del camino: '/datos/media/0/WhatsApp/Bases de datos/' (tarjeta SD virtual), '/mnt/sdcard/WhatsApp/Bases de datos/ (tarjeta SD física)'.
- Expediente 'llave'. Contiene una clave criptográfica. Situado a lo largo del camino: '/datos/datos/com.whatsapp/files/'. Se utiliza para descifrar copias de seguridad cifradas de WhatsApp.
- Expediente 'com.whatsapp_preferences.xml'. Contiene información sobre el perfil de su cuenta de WhatsApp. El archivo se encuentra en la ruta: '/data/data/com.whatsapp/shared_prefs/'.
Fragmento de contenido del archivo
<?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> (имя владельца аккаунта) …
- Expediente 'registro.RegisterPhone.xml'. Contiene información sobre el número de teléfono asociado a la cuenta de WhatsApp. El archivo se encuentra en la ruta: '/data/data/com.whatsapp/shared_prefs/'.
Contenido del archivo
<?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>
- Expediente 'ajolote.db'. Contiene claves criptográficas y otros datos necesarios para identificar al propietario de la cuenta. Situado a lo largo del camino: '/datos/datos/com.whatsapp/bases de datos/'.
- Expediente 'configuración de chat.db'. Contiene información de configuración de la aplicación.
- Expediente 'wa.db'. Contiene datos de contacto. Una base de datos muy interesante (desde un aspecto forense) e informativa. Puede contener información detallada sobre los contactos eliminados.
También debes prestar atención a los siguientes directorios:
- directorio '/data/media/0/WhatsApp/Media/Imágenes de WhatsApp/'. Contiene archivos gráficos transferidos.
- directorio '/data/media/0/WhatsApp/Media/Notas de voz de WhatsApp/'. Contiene mensajes de voz en archivos de formato .OPUS.
- directorio '/data/data/com.whatsapp/cache/Imágenes de perfil/'. Contiene archivos gráficos – imágenes de contactos.
- directorio '/data/data/com.whatsapp/files/Avatars/'. Contiene archivos gráficos: imágenes en miniatura de contactos. Estos archivos tienen una extensión '.j' pero no dejan de ser archivos de imágenes JPEG (JPG).
- directorio '/data/data/com.whatsapp/files/Avatars/'. Contiene archivos gráficos: una imagen y una miniatura de la imagen configurada como avatar por el propietario de la cuenta.
- directorio '/data/data/com.whatsapp/files/Logs/'. Contiene el registro de funcionamiento del programa (archivo 'whatsapp.log') y copias de seguridad de los registros de funcionamiento del programa (archivos con nombres en el formato whatsapp-aaaa-mm-dd.1.log.gz).
Archivos de registro de WhatsApp:
Fragmento de diario2017-01-10 09:37:09.757 LL_I D [524: Trabajador de WhatsApp #1] notificación de llamada perdida/recuento de inicio: 0 marca de tiempo: 0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] notificación de llamada perdida/actualización cancelar verdadero
2017-01-10 09:37:09.768 LL_I D [1:principal] inicio de aplicación/cargarme
2017-01-10 09:37:09.772 LL_I D [1:main] falta el archivo de contraseña o es 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 sin conexión: 81 recibidos ( 19522 mseg 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 / Datos totales: 118567 bytes enviados, 10063417 bytes recibidos
2017-01-10 09:37:09.785 LL_I D [1:principal] administrador-de-estado-de-medios/actualizar-estado-de-medios/medios-escribibles
2017-01-10 09:37:09.806 LL_I D [1:principal] inicio de aplicación/inicialización/temporizador/detención: 24
2017-01-10 09:37:09.811 LL_I D [1:principal] msgstore/checkhealth
2017-01-10 09:37:09.817 LL_I D [1:principal] msgstore/checkhealth/journal/delete false
2017-01-10 09:37:09.818 LL_I D [1:principal] msgstore/checkhealth/back/delete false
2017-01-10 09:37:09.818 LL_I D [1:principal] msgstore/checkdb/data/data/com.whatsapp/databases/msgstore.db
2017-01-10 09:37:09.819 LL_I D [1:principal] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017-01-10 09:37:09.820 LL_I D [1:principal] msgstore/checkdb/list _jobqueue-WhatsAppJobManager-journal 21032 drw=011
2017-01-10 09:37:09.820 LL_I D [1:principal] msgstore/checkdb/list axolotl.db 184320 drw=011
2017-01-10 09:37:09.821 LL_I D [1:principal] msgstore/checkdb/list axolotl.db-wal 436752 drw=011
2017-01-10 09:37:09.821 LL_I D [1:principal] msgstore/checkdb/list axolotl.db-shm 32768 drw=011
2017-01-10 09:37:09.822 LL_I D [1:principal] msgstore/checkdb/list msgstore.db 540672 drw=011
2017-01-10 09:37:09.823 LL_I D [1:principal] msgstore/checkdb/list msgstore.db-wal 0 drw=011
2017-01-10 09:37:09.823 LL_I D [1:principal] msgstore/checkdb/list msgstore.db-shm 32768 drw=011
2017-01-10 09:37:09.824 LL_I D [1:principal] msgstore/checkdb/list wa.db 69632 drw=011
2017-01-10 09:37:09.825 LL_I D [1:principal] msgstore/checkdb/list wa.db-wal 428512 drw=011
2017-01-10 09:37:09.825 LL_I D [1:principal] msgstore/checkdb/list wa.db-shm 32768 drw=011
2017-01-10 09:37:09.826 LL_I D [1:principal] msgstore/checkdb/list chatsettings.db 4096 drw=011
2017-01-10 09:37:09.826 LL_I D [1:principal] msgstore/checkdb/list chatsettings.db-wal 70072 drw=011
2017-01-10 09:37:09.827 LL_I D [1:principal] msgstore/checkdb/list chatsettings.db-shm 32768 drw=011
2017-01-10 09:37:09.838 LL_I D [1:principal] msgstore/checkdb/versión 1
2017-01-10 09:37:09.839 LL_I D [1: principal] msgstore/canquery
2017-01-10 09:37:09.846 LL_I D [1:principal] msgstore/canquery/count 1
2017-01-10 09:37:09.847 LL_I D [1:principal] msgstore/canquery/timer/stop: 8
2017-01-10 09:37:09.847 LL_I D [1: principal] msgstore/canquery 517 | tiempo invertido:8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] administrador de estado de medios/actualizar estado de medios/almacenamiento interno disponible:1,345,622,016 total:5,687,922,688
- directorio '/datos/media/0/WhatsApp/Media/WhatsApp Audio/'. Contiene los archivos de audio recibidos.
- directorio '/data/media/0/WhatsApp/Media/WhatsApp Audio/Enviado/'. Contiene archivos de audio enviados.
- directorio '/data/media/0/WhatsApp/Media/Imágenes de WhatsApp/'. Contiene los archivos gráficos resultantes.
- directorio '/data/media/0/WhatsApp/Media/Imágenes de WhatsApp/Enviadas/'. Contiene archivos gráficos enviados.
- directorio '/datos/media/0/WhatsApp/Media/Video de WhatsApp/'. Contiene archivos de vídeo recibidos.
- directorio '/data/media/0/WhatsApp/Media/WhatsApp Video/Enviado/'. Contiene archivos de vídeo enviados.
- directorio '/data/media/0/WhatsApp/Media/Fotos de perfil de WhatsApp/'. Contiene archivos gráficos asociados al propietario de la cuenta de WhatsApp.
- Para ahorrar espacio en la memoria de su teléfono inteligente Android, algunos datos de WhatsApp se pueden almacenar en una tarjeta SD. En la tarjeta SD, en el directorio raíz, hay un directorio 'WhatsApp', donde se pueden encontrar los siguientes artefactos de este programa:
- directorio '.Compartir' ('/mnt/sdcard/WhatsApp/.Share/'). Contiene copias de archivos que se han compartido con otros usuarios de WhatsApp.
- directorio '.basura' ('/mnt/sdcard/WhatsApp/.trash/'). Contiene archivos eliminados.
- directorio 'Bases de datos' ('/mnt/sdcard/WhatsApp/Bases de datos/'). Contiene copias de seguridad cifradas. Se pueden descifrar si el archivo está presente. 'llave', extraído de la memoria del dispositivo analizado.
Archivos ubicados en un subdirectorio. 'Bases de datos':
- directorio 'Medios de comunicación' ('/mnt/tarjetasd/WhatsApp/Media/'). Contiene subdirectorios 'Fondo de pantalla', 'Audio WhatsApp', 'Imágenes de WhatsApp', 'Fotos de perfil de WhatsApp', 'Vídeo WhatsApp', 'Notas de voz de WhatsApp', que contienen archivos multimedia recibidos y transmitidos (archivos gráficos, archivos de video, mensajes de voz, fotos asociadas al perfil del propietario de la cuenta de WhatsApp, fondos de pantalla).
- directorio 'Fotos de perfil' ('/mnt/sdcard/WhatsApp/Imágenes de perfil/'). Contiene archivos gráficos asociados al perfil del propietario de la cuenta de WhatsApp.
- A veces puede haber un directorio presente en la tarjeta SD. 'archivos' ('/mnt/tarjetasd/WhatsApp/Archivos/'). Este directorio contiene archivos que almacenan la configuración del programa y las preferencias del usuario.
Características del almacenamiento de datos en algunos modelos de dispositivos móviles.
Algunos modelos de dispositivos móviles con sistema operativo Android pueden almacenar artefactos de WhatsApp en una ubicación diferente. Esto se debe a cambios en el espacio de almacenamiento de los datos de la aplicación por parte del software del sistema del dispositivo móvil. Por ejemplo, los dispositivos móviles Xiaomi tienen una función para crear un segundo espacio de trabajo (“SecondSpace”). Cuando se activa esta función, la ubicación de los datos cambia. Entonces, si en un dispositivo móvil normal con sistema operativo Android, los datos del usuario se almacenan en el directorio '/datos/usuario/0/' (que es una referencia a lo habitual '/datos/datos/'), luego, en el segundo espacio de trabajo, los datos de la aplicación se almacenan en el directorio '/datos/usuario/10/'. Es decir, usando el ejemplo de la ubicación del archivo. 'wa.db':
- en un teléfono inteligente normal con sistema operativo Android: /data/user/0/com.whatsapp/databases/wa.db' (que es equivalente '/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 dispositivo iOS
A diferencia del sistema operativo Android, en iOS los datos de la aplicación WhatsApp se transfieren a una copia de seguridad (copia de seguridad de iTunes). Por lo tanto, extraer datos de esta aplicación no requiere extraer el sistema de archivos ni crear un volcado de memoria física del dispositivo bajo investigación. La mayor parte de la información relevante está contenida en la base de datos. 'ChatStorage.sqlite', que se encuentra a lo largo del camino: '/privado/var/mobile/Aplicaciones/group.net.whatsapp.WhatsApp.shared/' (en algunos programas esta ruta aparece como 'AppDomainGroup-grupo.net.whatsapp.WhatsApp.compartido').
Estructura 'ChatStorage.sqlite':
Las tablas más informativas en la base de datos 'ChatStorage.sqlite' son 'MENSAJE ZW' и 'ZWAMEDIAITEM'.
Aspecto de la mesa 'MENSAJE ZW':
Estructura de la mesa 'ZWAMESSAGE'
Nombre del campo | Valor |
---|---|
Z_PK | número de secuencia de registro (en la tabla SQL) |
Z_ENT | identificador de tabla, tiene el valor '9' |
Z_OPT | desconocido, normalmente contiene valores del '1' al '6' |
ZCONTADOR DE MENSAJESNIÑOS ENTREGADOS | desconocido, normalmente contiene el valor '0' |
ZMENSAJESNIÑOSREPRODUCIDONCUENTO | desconocido, normalmente contiene el valor '0' |
ZMENSAJESNIÑOSREADCOUNT | desconocido, normalmente contiene el valor '0' |
VERSIÓN DEL ARTÍCULO DE DATOS Z | desconocido, normalmente contiene el valor '3', probablemente un indicador de mensaje de texto |
ZDOCID | desconocido |
ZENCRETRYCOUNT | desconocido, normalmente contiene el valor '0' |
ZFILTEREDRECIPIENTCOUNT | desconocido, normalmente contiene los valores '0', '2', '256' |
ZISFROMME | Dirección del mensaje: '0' – entrante, '1' – saliente |
ZMENSAJEERRORSTATUS | estado de transmisión del mensaje. Si el mensaje se envía/recibe, entonces tiene el valor '0' |
TIPO DE MENSAJE Z | tipo de mensaje que se transmite |
ORDENAR | desconocido |
ZSPOTLIGHTSTATUS | desconocido |
ZSTARRED | desconocido, no usado |
SESIÓN DE CHAT | desconocido |
MIEMBRO DEL GRUPO Z | desconocido, no usado |
ZÚLTIMA SESIÓN | desconocido |
ZMEDIAITEM | desconocido |
ZMENSAJEINFO | desconocido |
ZMENSAJE DE PADRES | desconocido, no usado |
ZMENSAJEFECHA | marca de tiempo en formato OS X Epoch Time |
ZSENTDATE | hora en que se envió el mensaje en formato OS X Epoch Time |
ZDESDEJID | ID del remitente de WhatsApp |
ZMEDIASECTIONID | contiene el año y mes en que se envió el archivo multimedia |
ZPHASH | desconocido, no usado |
ZPUSHAME | nombre del contacto que envió el archivo multimedia en formato UTF-8 |
ZSTANZID | identificador de mensaje único |
ZTEXTO | Mensaje de texto |
ZTOJID | ID de WhatsApp del destinatario |
OFFSET | desplazamiento |
Aspecto de la mesa 'ZWAMEDIAITEM':
Estructura de la tabla 'ZWAMEDIAITEM'
Nombre del campo | Valor |
---|---|
Z_PK | número de secuencia de registro (en la tabla SQL) |
Z_ENT | identificador de tabla, tiene el valor '8' |
Z_OPT | desconocido, normalmente contiene valores del '1' al '3'. |
ESTADO DE LA NUBE | contiene el valor '4' si el archivo está cargado. |
TAMAÑO DE ARCHIVO Z | contiene la longitud del archivo (en bytes) para los archivos descargados |
ZMEDIAORIGIN | desconocido, normalmente tiene el valor '0' |
ZMOVIEDURACIÓN | duración del archivo multimedia, para archivos pdf puede contener el número de páginas del documento |
ZMENSAJE | contiene un número de serie (el número es diferente al indicado en la columna 'Z_PK') |
ZASPECTRACIÓN | relación de aspecto, no utilizada, generalmente configurada en '0' |
ZHACTITUD | desconocido, normalmente tiene el valor '0' |
ZLATTITUD | ancho en píxeles |
ZLONGTITUD | altura en píxeles |
ZMEDIAURLDATE | marca de tiempo en formato OS X Epoch Time |
ZAUTHORNOMBRE | autor (para documentos, puede contener el nombre del archivo) |
ZNOMBRE DE COLECCIÓN | no utilizado |
ZMEDIALOCAPATH | nombre de archivo (incluida la ruta) en el sistema de archivos del dispositivo |
ZMEDIAURL | La URL donde se encontraba el archivo multimedia. Si un archivo se transfirió de un suscriptor a otro, se cifró 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 |
ZTÍTULO | encabezado de archivo |
NOMBRE DE TARJETA ZVC | 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 que se transfiere (por ejemplo, imagen/jpeg); al transferir un archivo a un grupo, puede contener el identificador del destinatario |
ZXMPPTHUMPATH | ruta a la miniatura del archivo en el sistema de archivos del dispositivo |
ZMEDIAKEY | desconocido, probablemente contenga la clave para descifrar el archivo cifrado. |
ZMETADATA | metadatos del mensaje transmitido |
Compensación | desplazamiento |
Otras tablas de bases de datos interesantes 'ChatStorage.sqlite' son:
- 'ZWAPROFILEPUSHNAME'. Coincide con el ID de WhatsApp con el nombre del contacto;
- 'ZWAPROFILEPICTUREITEM'. Coincide con el ID de WhatsApp con el avatar de 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.
Además, al examinar WhatsApp en un dispositivo móvil con iOS, debes prestar atención a los siguientes archivos:
- Expediente 'BackedUpKeyValue.sqlite'. Contiene claves criptográficas y otros datos necesarios para identificar al propietario de la cuenta. Situado a lo largo del camino: /privado/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Expediente 'ContactosV2.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. Situado a lo largo del camino: /privado/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Expediente 'versión_consumidor'. Contiene el número de versión de la aplicación WhatsApp instalada. Situado a lo largo del camino: /privado/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Expediente 'wallpaper_actual.jpg'. Contiene el fondo de pantalla actual de WhatsApp. Situado a lo largo del camino: /privado/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Las versiones anteriores de la aplicación utilizan el archivo 'fondo de pantalla', que se encuentra a lo largo del camino: '/privado/var/mobile/Aplicaciones/net.whatsapp.WhatsApp/Documentos/'.
- Expediente 'contactos bloqueados.dat'. Contiene información sobre contactos bloqueados. Situado a lo largo del camino: /privado/var/mobile/Applications/net.whatsapp.WhatsApp/Documentos/.
- Expediente 'pw.dat'. Contiene una contraseña cifrada. Situado a lo largo del camino: '/privado/var/mobile/Aplicaciones/net.whatsapp.WhatsApp/Library/'.
- Expediente 'net.whatsapp.WhatsApp.plist' (o archivo 'grupo.net.whatsapp.WhatsApp.shared.plist'). Contiene información sobre el perfil de su cuenta de WhatsApp. El archivo se encuentra en la ruta: '/privado/var/mobile/Aplicaciones/group.net.whatsapp.WhatsApp.shared/Library/Preferences/'.
Contenido del archivo 'group.net.whatsapp.WhatsApp.shared.plist'
También debes prestar atención a los siguientes directorios:
- directorio '/privado/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/'. Contiene miniaturas de contactos, grupos (archivos con la extensión .pulgar), avatares de contacto, avatar del propietario de la cuenta de WhatsApp (archivo 'Foto.jpg').
- directorio '/privado/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/'. Contiene archivos multimedia y sus miniaturas.
- directorio '/privado/var/mobile/Aplicaciones/net.whatsapp.WhatsApp/Documentos/'. Contiene el registro de funcionamiento del programa (archivo 'llamadas.registro') y copias de seguridad de los registros de operación del programa (archivo 'llamadas.backup.log').
- directorio '/privado/var/mobile/Aplicaciones/group.net.whatsapp.WhatsApp.shared/stickers/'. Contiene stickers (archivos en el formato '.webp').
- directorio '/privado/var/mobile/Aplicaciones/net.whatsapp.WhatsApp/Library/Logs/'. Contiene registros de operación del programa.
Artefactos de WhatsApp en Windows
Los artefactos de WhatsApp en Windows se pueden encontrar en varios lugares. En primer lugar, estos son directorios que contienen archivos de programas auxiliares y ejecutables (para Windows 8/10):
- 'C:Archivos de programa (x86)WhatsApp'
- 'C:Usuarios%Perfil de usuario%AppDataLocalWhatsApp'
- 'C:Usuarios%Perfil de usuario% AppDataLocalVirtualStore Archivos de programa (x86)WhatsApp'
En el catálogo 'C:Usuarios%Perfil de usuario%AppDataLocalWhatsApp' el archivo de registro se encuentra 'SquirrelSetup.log', que contiene información sobre cómo buscar actualizaciones e instalar el programa.
En el catálogo 'C:Usuarios%Perfil de usuario%AppDataRoamingWhatsApp' Hay varios subdirectorios:
Expediente 'proceso-principal.log' contiene información sobre el funcionamiento del programa WhatsApp.
Subdirectorio 'bases de datos' contiene un archivo 'Bases de datos.db', pero este archivo no contiene ninguna información sobre chats o contactos.
Los más interesantes desde un punto de vista forense son los archivos ubicados en el directorio 'Cache'. Estos son básicamente archivos llamados 'F_*******' (donde * es un número del 0 al 9) que contiene archivos y documentos multimedia cifrados, pero también hay archivos no cifrados entre ellos. De particular interés son los archivos 'datos_0', 'datos_1', 'datos_2', 'datos_3', ubicado en el mismo subdirectorio. Archivos 'datos_0', 'datos_1', 'datos_3' contienen enlaces externos a archivos y documentos multimedia cifrados transmitidos.
Ejemplo de información contenida en el archivo 'data_1'
también archivo 'datos_3' puede contener archivos gráficos.
Expediente 'datos_2' contiene avatares de contactos (se pueden restaurar buscando por encabezados de archivos).
Avatares contenidos en el archivo 'datos_2':
Así, los chats en sí no se pueden encontrar en la memoria del ordenador, pero sí se pueden encontrar:
- archivos multimedia;
- documentos transmitidos vía WhatsApp;
- información sobre los contactos del propietario de la cuenta.
Artefactos de WhatsApp en MacOS
En MacOS puedes encontrar tipos de artefactos de WhatsApp similares a los que se encuentran en el sistema operativo Windows.
Los archivos del programa se encuentran en los siguientes directorios:
- 'C:AplicacionesWhatsApp.app'
- 'C:Aplicaciones._WhatsApp.app'
- 'C:Usuarios%Perfil de usuario%Preferencias de biblioteca'
- 'C:Usuarios%Perfil de usuario%LibraryLogsWhatsApp'
- 'C:Usuarios%Perfil de usuario%BibliotecaEstado de la aplicación guardadaWhatsApp.savedState'
- 'C:Usuarios%Perfil de usuario%Secuencias de comandos de aplicación de biblioteca'
- 'C:Usuarios%Perfil de usuario%BibliotecaAplicación SupportCloudDocs'
- 'C:Usuarios%Perfil de usuario%BibliotecaApplication SupportWhatsApp.ShipIt'
- 'C:Usuarios%Perfil de usuario%LibraryContainerscom.rockysandstudio.app-for-whatsapp'
- 'C:Usuarios%Perfil de usuario% Biblioteca Documentos móviles <variable de texto> Cuentas de WhatsApp'
Este directorio contiene subdirectorios cuyos nombres son números de teléfono asociados al propietario de la cuenta de WhatsApp. - 'C:Usuarios%Perfil de usuario%LibraryCachesWhatsApp.ShipIt'
Este directorio contiene información sobre la instalación del programa. - 'C:Usuarios%Perfil de usuario%PicturesiPhoto Library.photolibraryMasters', 'C:Usuarios%Perfil de usuario%PicturesiPhoto Library.photolibraryThumbnails'
Estos directorios contienen archivos de servicios del programa, incluidas fotos y miniaturas de los contactos de WhatsApp. - 'C:Usuarios%Perfil de usuario%BibliotecaCachesWhatsApp'
Este directorio contiene varias bases de datos SQLite que se utilizan para el almacenamiento en caché de datos. - 'C:Usuarios%Perfil de usuario%BibliotecaAplicación SoporteWhatsApp'
Este directorio contiene varios subdirectorios:
En el catálogo 'C:Usuarios%Perfil de usuario%BibliotecaApplication SupportWhatsAppCache' hay archivos 'datos_0', 'datos_1', 'datos_2', 'datos_3' y archivos con nombres 'F_*******' (donde * es un número del 0 al 9). Para obtener información sobre qué información contienen estos archivos, consulte Artefactos de WhatsApp en Windows.En el catálogo 'C:Usuarios%Perfil de usuario%BibliotecaApplication SupportWhatsAppIndexedDB' puede contener archivos multimedia (los archivos no tienen extensiones).
Expediente 'proceso-principal.log' contiene información sobre el funcionamiento del programa WhatsApp.
fuentes
- Análisis forense de WhatsApp Messenger en smartphones Android, por Cosimo Anglano, 2014.
- Análisis forense de Whatsapp: sistemas de exploración detallados y datos basados en aplicaciones de Android e iOS por Ahmad Pratama, 2014.
En los siguientes artículos de esta serie:
Descifrado de bases de datos cifradas de WhatsAppUn artículo que brindará 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 cifradas de esta aplicación.
Extraer datos de WhatsApp del almacenamiento en la nubeUn artículo en el que le diremos qué datos de WhatsApp se almacenan en las nubes y describiremos métodos para recuperar estos datos de los almacenamientos en la nube.
Extracción de datos de WhatsApp: ejemplos prácticosUn artículo que describirá paso a paso qué programas y cómo extraer datos de WhatsApp de varios dispositivos.
Fuente: habr.com