WhatsApp en la palma de tu mano: ¿dónde y cómo puedes detectar artefactos forenses?



Si desea saber qué tipos de artefactos forenses de WhatsApp existen en varios sistemas operativos y dónde se pueden detectar exactamente, entonces aquí está. Con este artículo, Igor Mikhailov, especialista en el laboratorio de informática forense del Grupo IB, abre una serie de publicaciones sobre la investigación forense de WhatsApp y qué información se puede obtener analizando el dispositivo.

Solo tenga en cuenta que los diferentes tipos de artefactos de WhatsApp se almacenan en diferentes sistemas operativos, y si un investigador puede extraer ciertos tipos de datos de WhatsApp de un dispositivo, esto no significa que dichos tipos de datos puedan extraerse de otro dispositivo. Por ejemplo, si se incauta una unidad del sistema que ejecuta Windows, los chats de WhatsApp probablemente no se encontrarán en sus discos (la excepción son las copias de seguridad de los dispositivos iOS que se pueden encontrar en las mismas unidades). Al retirar las computadoras portátiles y los dispositivos móviles tendrán sus propias características. Hablemos de esto con más detalle.

Artefactos de WhatsApp en un dispositivo Android


Para extraer artefactos de WhatsApp de un dispositivo con Android, el investigador debe tener privilegios de superusuario ( 'root' ) en el dispositivo en estudio o ser capaz de extraer el volcado físico de la memoria del dispositivo o su sistema de archivos (por ejemplo, utilizando vulnerabilidades de software de un móvil específico dispositivos).

Los archivos de la aplicación se encuentran en la memoria del teléfono en la sección donde se guardan los datos del usuario. Por lo general, esta sección se llama 'userdata' . Los subdirectorios y los archivos de programa se encuentran a lo largo de la ruta: '/data/data/com.whatsapp/' .

imagen alt

Los archivos principales que contienen artefactos forenses de WhatsApp en el sistema operativo Android son las bases de datos 'wa.db' y 'msgstore.db' .

La base de datos 'wa.db' contiene una lista completa de contactos de usuarios de WhatsApp, incluido el número de teléfono, el nombre para mostrar, las marcas de tiempo y cualquier otra información especificada durante el registro en WhatsApp. El archivo 'wa.db' se encuentra a lo largo de la ruta: '/data/data/com.whatsapp/databases/' y tiene la siguiente estructura:

imagen alt

Las tablas más interesantes en la base de datos 'wa.db' para el investigador son:

  • 'wa_contacts'
    Esta tabla contiene información de contacto: identificación de contacto en WhatsApp, información de estado, nombre de usuario que se muestra, marcas de tiempo, etc.

    Apariencia de la mesa:

    imagen alt

    Estructura de la mesa
    Nombre del campoValor
    _idregistrar el número de serie (en la tabla SQL)
    jidIdentificación de contacto de WhatsApp, escrita en el formato <número de teléfono> @ s.whatsapp.net
    is_whatsapp_usercontiene '1' si el usuario real de WhatsApp coincide con el contacto, '0' de lo contrario
    estadocontiene el texto que se muestra en el estado del contacto
    status_timestampcontiene una marca de tiempo en formato Unix Epoch Time (ms)
    numeronúmero de teléfono asociado con el contacto
    raw_contact_idnúmero de serie de contacto
    display_namenombre para mostrar del contacto
    phone_typetipo de teléfono
    etiqueta_de_teléfonoetiqueta asociada con el número de contacto
    unseen_msg_countla cantidad de mensajes que envió el contacto pero que el destinatario no leyó
    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 una marca de tiempo en formato Unix Epoch Time (ms)
    nombre_ dadoel valor del campo coincide con 'display_name' para cada contacto
    wa_nameNombre de contacto de WhatsApp (muestra el nombre especificado en el perfil de contacto)
    sort_namenombre de contacto utilizado en operaciones de clasificación
    apodoApodo de contacto de WhatsApp (muestra el apodo especificado en el perfil de contacto)
    compañiaempresa (se muestra la empresa indicada en el perfil de contacto)
    tituloapelación (amante / caballero; se muestra la dirección configurada en el perfil de contacto)
    compensacióndesplazamiento
  • 'sqlite_sequence'
    Esta tabla contiene información sobre la cantidad de contactos;
  • 'android_metadata'
    Esta tabla contiene información de localización del idioma de WhatsApp.

La base de datos 'msgstore.db' contiene información sobre los mensajes transmitidos, como el número de contacto, el texto del mensaje, el estado del mensaje, las marcas de tiempo, la información sobre los archivos transferidos incluidos en los mensajes, etc. El archivo 'msgstore.db' se encuentra a lo largo de la ruta: '/data/data/com.whatsapp/databases/' y tiene la siguiente estructura:

imagen alt

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, por ejemplo, el número total de mensajes almacenados, el número total de chats, etc.

    Apariencia de la mesa:

    imagen alt
  • 'message_fts_content'
    Contiene el texto de los mensajes transmitidos.

    Apariencia de la mesa:

    imagen alt
  • 'mensajes'
    Esta tabla contiene información como número de contacto, texto del mensaje, estado del mensaje, marcas de tiempo, información sobre los archivos transferidos incluidos en los mensajes.

    Apariencia de la mesa:

    imagen alt

    Estructura de la mesa
    Nombre del campoValor
    _idregistrar el número de serie (en la tabla SQL)
    key_remote_jidID de socio de comunicación de WhatsApp
    key_from_medirección del mensaje: '0' - entrante, '1' - saliente
    key_ididentificador único del mensaje
    estadoestado del mensaje: '0' - entregado, '4' - esperando en el servidor, '5' - recibido en el destino, '6' - mensaje de control, '13' - mensaje abierto por el destinatario (leído)
    need_pushtiene el valor '2' si es un mensaje de difusión, de lo contrario contiene '0'
    datostexto del mensaje (cuando el parámetro 'media_wa_type' es '0')
    marca de tiempocontiene una marca de tiempo en formato Unix Epoch Time (ms), el valor se toma del reloj del dispositivo
    media_urlcontiene la URL del archivo transmitido (cuando el parámetro 'media_wa_type' es '1', '2', '3')
    media_mime_typeTipo MIME del archivo transferido (cuando el parámetro 'media_wa_type' es igual a '1', '2', '3')
    media_wa_typetipo de mensaje: '0' - texto, '1' - archivo de imagen, '2' - archivo de audio, '3' - archivo de video, '4' - tarjeta de contacto, '5' - geodatos
    tamaño_mediostamaño de transferencia de archivo (cuando el parámetro 'media_wa_type' es '1', '2', '3')
    nombre_mediosnombre del archivo transferido (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 igual a '1', '3')
    media_hashhash codificado en base64 del archivo transmitido, calculado de acuerdo con el algoritmo HAS-256 (cuando el parámetro 'media_wa_type' es '1', '2', '3')
    media_durationduración en segundos para el archivo multimedia (cuando el parámetro 'media_wa_type' es '1', '2', '3')
    origentiene el valor '2' si es un mensaje de difusión, de lo contrario contiene '0'
    latitudgeodata: latitud (cuando el parámetro 'media_wa_type' es '5')
    longitudgeodata: longitud (cuando el parámetro 'media_wa_type' es '5')
    thumb_imageinformación de servicio
    remote_recourceID del remitente (solo chat grupal)
    recibida_mpresatiempo 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)
    send_timestampno utilizado, generalmente tiene un valor de '-1'
    ticket_server_timestamphora 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
    ticket_device_timestampla 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
    read_device_timestamphora de apertura (lectura) del mensaje, contiene una marca de tiempo en formato de hora de la época de Unix (ms), el valor se toma del reloj del dispositivo
    playing_device_timestamptiempo de reproducción del mensaje, contiene una marca de tiempo en formato de hora de la época de Unix (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')
    recipiente_cuentacantidad de destinatarios (para mensajes de difusión)
    participante_hashutilizado al enviar mensajes con geodatos
    protagonizadono usado
    quoted_row_iddesconocido, generalmente contiene el valor '0'
    mencionados_jidsno utilizado
    multicast_idno utilizado
    compensacióndesplazamiento

    Esta lista de campos no es exhaustiva. Para diferentes versiones de WhatsApp, algunos de los campos pueden o no estar presentes. Además, los campos 'media_enc_hash' , 'edit_version' , 'payment_transaction_id' , etc. pueden estar presentes.
  • 'messages_thumbnails'
    Esta tabla contiene información sobre imágenes transferidas y marcas de tiempo. En la columna 'marca de tiempo', la hora está en formato de hora de época Unix (ms).
  • 'chat_list'
    Esta tabla contiene información de chat.

    Apariencia de la mesa:

    imagen alt

Además, al investigar WhatsApp en un dispositivo móvil con Android, debe prestar atención a los siguientes archivos:

  • Archivo 'msgstore.db.cryptXX' (donde XX tiene 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 a lo largo de la ruta: '/ data / media / 0 / WhatsApp / Databases /' (tarjeta SD virtual), '/ mnt / sdcard / WhatsApp / Databases / (física SD- tarjeta) ".
  • El archivo es 'clave' . Contiene una clave criptográfica. Se encuentra a lo largo de 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 de contenido de 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> (  ) … 
  • Archivo 'registro.RegistroPhone.xml' . Contiene información del número de teléfono asociado con una 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> 
  • Archivo 'axolotl.db' . Contiene claves criptográficas y otros datos necesarios para identificar al propietario de la cuenta. Se encuentra a lo largo de la ruta: '/data/data/com.whatsapp/databases/' .
  • Archivo 'chatsettings.db' . Contiene información de configuración de la aplicación.
  • El archivo 'wa.db' . Contiene datos de contacto. Una base de datos muy interesante (en el aspecto forense) e informativa. En él, se puede encontrar información detallada sobre los contactos eliminados.

También debe prestar atención a los siguientes directorios:

  • Directorio '/ data / media / 0 / WhatsApp / Media / WhatsApp Images /' . Contiene los archivos de imagen transferidos.
  • Directorio '/ data / media / 0 / WhatsApp / Media / WhatsApp Voice Notes /' . Contiene mensajes de voz en archivos con 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 de imagen: miniaturas de imágenes de contacto. Estos archivos tienen la extensión '.j', pero, sin embargo, son archivos de imagen en formato JPEG (JPG).
  • Directorio '/data/data/com.whatsapp/files/Avatars/' . Contiene archivos de imagen: imagen y miniatura de la imagen instalada como avatar por el propietario de la cuenta.
  • Directorio '/data/data/com.whatsapp/files/Logs/' . Contiene el registro de operación del programa (archivo 'whatsapp.log') y copias de seguridad de los registros de operación del programa (archivos con los nombres de formato whatsapp-aaaa-mm-dd.1.log.gz).

Archivos de registro de WhatsApp:

imagen alt

Fragmento de revista
2017-01-10 09: 37: 09.757 LL_I D [524: WhatsApp Worker # 1] notificación de llamadas perdidas / recuento de inicio: 0 marca de tiempo: 0
2017-01-10 09: 37: 09.758 LL_I D [524: WhatsApp Worker # 1] no se pudo realizar la notificación de llamada / actualización cancelar true
2017-01-10 09: 37: 09.768 LL_I D [1: principal] app-init / load-me
2017-01-10 09: 37: 09.772 LL_I D [1: principal] falta el archivo de contraseña o no se puede leer
2017-01-10 09: 37: 09.782 LL_I D [1: main] estadísticas Mensajes de texto: 59 enviados, 82 recibidos / Mensajes de medios: 1 enviado (0 bytes), 0 recibidos (9850158 bytes) / Mensajes sin conexión: 81 recibidos ( 19522 ms de retraso promedio) / Servicio de mensajes: 116075 bytes enviados, 211729 bytes recibidos / Llamadas VoIP: 1 llamadas salientes, 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] media-state-manager / refresh-media-state / writable-media
2017-01-10 09: 37: 09.806 LL_I D [1: principal] app-init / initialize / timer / stop: 24
2017-01-10 09: 37: 09.811 LL_I D [1: 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 / bases de datos / 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 empleado: 8
2017-01-10 09: 37: 09.848 LL_I D [529: WhatsApp Worker # 3] media-state-manager / refresh-media-state / internal-storage disponible: 1,345,622,016 total: 5,687,922,688

  • Directorio '/ data / media / 0 / WhatsApp / Media / WhatsApp Audio /' . Contiene los archivos de audio recibidos.
  • Directorio '/ data / media / 0 / WhatsApp / Media / WhatsApp Audio / Sent /' . Contiene los archivos de audio enviados.
  • Directorio '/ data / media / 0 / WhatsApp / Media / WhatsApp Images /' . Contiene los archivos de imagen recibidos.
  • Directorio '/ data / media / 0 / WhatsApp / Media / WhatsApp Images / Sent /' . Contiene archivos de imagen enviados.
  • Directorio '/ data / media / 0 / WhatsApp / Media / WhatsApp Video /' . Contiene los archivos de video recibidos.
  • Directorio '/ data / media / 0 / WhatsApp / Media / WhatsApp Video / Sent /' . Contiene archivos de video cargados.
  • Directorio '/ data / media / 0 / WhatsApp / Media / WhatsApp Profile Photos /' . Contiene archivos de imagen asociados con el propietario de la cuenta de WhatsApp.
  • Para ahorrar espacio en la memoria del teléfono inteligente Android, algunos de los datos de WhatsApp se pueden almacenar en la 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:

    imagen alt
  • Directorio '.Share' ( '/mnt/sdcard/WhatsApp/.Share/' ). Contiene copias de archivos que se han transferido a otros usuarios de WhatsApp.
  • Directorio '.trash' ( '/mnt/sdcard/WhatsApp/.trash/' ). Contiene archivos borrados.
  • Directorio 'Bases de datos' ( '/ mnt / sdcard / WhatsApp / Databases /' ). Contiene copias de seguridad cifradas. Se pueden descifrar en presencia del archivo 'clave' , extraído de la memoria del dispositivo analizado.

    Archivos en el subdirectorio 'Bases de datos' :

    imagen alt
  • Directorio 'Media' ( '/ mnt / sdcard / WhatsApp / Media /' ). Contiene los subdirectorios 'WallPaper' , 'WhatsApp Audio' , 'WhatsApp Images' , 'WhatsApp Profile Photos' , 'WhatsApp Video' , 'WhatsApp Voice Notes' , en el que los archivos multimedia recibidos y transmitidos (archivos de imagen, archivos de video, mensajes de voz, fotos asociadas con el perfil del titular de la cuenta de WhatsApp, el fondo de pantalla).
  • Directorio 'Imágenes de perfil' ( '/ mnt / sdcard / WhatsApp / Profile Pictures /' ). Contiene archivos de imagen asociados con el perfil del titular de la cuenta de WhatsApp.
  • A veces, el directorio 'archivos' ( '/ mnt / sdcard / WhatsApp / Files /' ) puede estar presente en la tarjeta SD. 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.


En algunos dispositivos móviles Android, los artefactos de WhatsApp pueden almacenarse en otro lugar. Esto se debe a un cambio en el espacio de almacenamiento de datos de la aplicación por parte del software del sistema del dispositivo móvil. Entonces, por ejemplo, los dispositivos móviles Xiaomi tienen la función de crear un segundo espacio de trabajo ("SecondSpace"). Cuando esta función está activada, la ubicación de los datos cambia. Por lo tanto, si en un dispositivo móvil normal que ejecuta Android OS, los datos de usuario se almacenan en el directorio '/ data / user / 0 /' (que es un enlace al habitual '/ data / data /' ), entonces en el segundo espacio de trabajo los datos de la aplicación se almacenan en '/ data / user / 10 /' . Esa es, por ejemplo, la ubicación del archivo 'wa.db' :

  • en un teléfono inteligente Android normal: /data/user/0/com.whatsapp/databases/wa.db ' (que es equivalente a ' /data/data/com.whatsapp/databases/wa.db ') ;
  • en el segundo espacio de trabajo del teléfono inteligente 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 o 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 de 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 ' ).

La estructura de 'ChatStorage.sqlite' :

imagen alt

Las más informativas en la base de datos ChatStorage.sqlite son las tablas ZWAMESSAGE y ZWAMEDIAITEM .

Apariencia de la tabla 'ZWAMESSAGE' :

imagen alt

Estructura de tabla 'ZWAMESSAGE'
Nombre del campoValor
Z_PKregistrar el número de serie (en la tabla SQL)
Z_ENTidentificador de tabla, valor '9'
Z_OPTdesconocido, generalmente contiene valores de '1' a '6'
ZCHILDMESSAGESDELIVERED COUNTdesconocido, generalmente contiene el valor '0'
ZCHILDMESSAGESPLAYEDCOUNTdesconocido, generalmente contiene el valor '0'
ZCHILDMESSAGESREADCOUNTdesconocido, generalmente contiene el valor '0'
ZDATAITEMVERSIONdesconocido, generalmente contiene el valor '3', probablemente un puntero de mensaje de texto
ZDOCIDes desconocido
ZENCRETRYCOUNTdesconocido, generalmente contiene el valor '0'
CUENTA RECEPTORA ZFILTRADAdesconocido, generalmente contiene valores '0', '2', '256'
Zisfrommedirección del mensaje: '0' - entrante, '1' - saliente
ZMESSAGEERRORSTATUSestado de transferencia de mensajes. Si el mensaje se envía / recibe, tiene un valor de '0'
ZMESSAGETYPEtipo de mensaje
Zsortes desconocido
ZSPOTLIGHSTATUSes desconocido
ZSTARREDdesconocido no utilizado
Zchatsessiones desconocido
ZGROUPMEMBERdesconocido no utilizado
ZLASTSESSIONes desconocido
ZMEDIAITEMes desconocido
ZMESSAGEINFOes desconocido
ZPARENTMESSAGEdesconocido no utilizado
ZMESSAGEDATEIndicación de fecha y hora de la época de OS X
ZSENTDATEOS X Epoch Time tiempo de envío de mensajes
ZFROMJIDIdentificación del remitente de WhatsApp
ZMEDIASECTIONIDcontiene el año y el mes de envío del archivo multimedia
Zphashdesconocido no utilizado
ZPUSHPAMEnombre del contacto que envió el archivo multimedia UTF-8
ZSTANZIDidentificador único del mensaje
ZTEXTmensaje de texto
ZTOJIDDestinatario de Whatsapp ID
DESPLAZAMIENTOdesplazamiento

Aspecto de la tabla 'ZWAMEDIAITEM' :

imagen alt

Estructura de tabla 'ZWAMEDIAITEM'
Nombre del campoValor
Z_PKregistrar el número de serie (en la tabla SQL)
Z_ENTidentificador de tabla, valor '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 los archivos descargados
ZMEDIAORIGINdesconocido, generalmente '0'
ZMOVIEDURACIÓNla duración del archivo multimedia, para archivos pdf puede contener el número de páginas del documento
MENSAJEcontiene un número de serie (el número difiere del indicado en la columna 'Z_PK')
ZASPECTRATIOrelación de aspecto, no utilizada, generalmente establecida en '0'
ZHACCURACYdesconocido, generalmente '0'
ZLATTITUDEancho en píxeles
ZLONGTITUDEaltura en píxeles
ZMEDIAURLDATEIndicación de fecha y hora de la época de OS X
ZAUTHORNAMEautor (para documentos, puede contener el nombre del archivo)
ZCOLLECTIONNAMEno usado
ZMEDIALOCALPATHnombre de archivo (con ruta) en el sistema de archivos del dispositivo
ZMEDIAURLLa URL donde se encontraba el archivo multimedia. Si el archivo se transfirió de un suscriptor a otro, se cifró 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
TITULOencabezado de archivo
ZVCARDNAMEhash de archivo multimedia; al transferir un archivo a un grupo, puede contener la ID del remitente
ZVCARDSTRINGcontiene 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
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
Offsetdesplazamiento

Otras tablas interesantes de la base de datos 'ChatStorage.sqlite' son:

  • 'ZWAPROFILEPUSHNAME' . Corresponde a la identificación de WhatsApp con el nombre del contacto;
  • «ZWAPROFILEPICTUREITEM» . Correlaciona la identificación 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 investigar WhatsApp en un dispositivo móvil con iOS, 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 a lo largo de 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 de contacto (en forma de texto), ID de WhatsApp, etc. Se encuentra a lo largo de 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 a lo largo de la ruta: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ .
  • Archivo 'current_wallpaper.jpg' . Contiene el fondo de pantalla actual de WhatsApp. Se encuentra a lo largo de la ruta: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ . En versiones anteriores de la aplicación, se usa el archivo 'fondo de pantalla' , que se encuentra a lo largo de la ruta: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/' .
  • Archivo 'blockcontacts.dat' . Contiene información sobre contactos bloqueados. Se encuentra a lo largo de la ruta: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/ .
  • Archivo 'pw.dat' . Contiene una contraseña encriptada. Se encuentra en el camino: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/' .
  • Archivo 'net.whatsapp.WhatsApp.plist' (o 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'
imagen alt

También debe 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, un 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 operación del programa (archivo 'calls.log' ) y copias de seguridad de los registros de operación del programa (archivo 'calls.backup.log' ).
  • Catálogo '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/' . Contiene stickers (archivos en formato '.webp' ).
  • El directorio '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/' . Contiene registros del programa.

Artefactos de WhatsApp en Windows


Artefactos de WhatsApp en Windows Se puede encontrar en varios lugares. En primer lugar, estos son directorios que contienen archivos ejecutables y auxiliares del programa (para Windows 8/10):
  • 'C: \ Archivos de programa (x86) \ WhatsApp \'
  • 'C: \ Usuarios \% Perfil de usuario% \ AppData \ Local \ WhatsApp \'
  • 'C: \ Usuarios \% Perfil de usuario% \ AppData \ Local \ VirtualStore \ Archivos de programa (x86) \ WhatsApp \'

En el directorio 'C: \ Users \% User profile% \ AppData \ Local \ WhatsApp \' se encuentra el archivo de registro 'SquirrelSetup.log' , que contiene información sobre cómo verificar actualizaciones e instalar el programa.

En el directorio 'C: \ Users \% User profile% \ AppData \ Roaming \ WhatsApp \' hay varios subdirectorios:

imagen alt

El archivo 'main-process.log' contiene información sobre el funcionamiento del programa WhatsApp.

El subdirectorio 'bases de datos' contiene el archivo 'Bases de datos.db' , pero este archivo no contiene ninguna información sobre chats o contactos.

Lo más interesante desde el punto de vista forense son los archivos ubicados en el directorio 'Caché' . Básicamente, estos son archivos con los nombres 'f _ *******' (donde * es un número del 0 al 9) que contienen archivos y documentos multimedia encriptados, pero entre ellos también hay archivos sin encriptar. De particular interés son los archivos 'data_0' , 'data_1' , 'data_2' , 'data_3' ubicados en el mismo subdirectorio. Los archivos 'data_0' , 'data_1' , 'data_3' contienen enlaces externos a archivos y documentos multimedia encriptados transmitidos.

Ejemplo de información contenida en el archivo 'data_1'
imagen alt

Además, el archivo 'data_3' puede contener archivos de imagen.

El archivo 'data_2' contiene avatares de contacto (puede restaurarse buscando en los encabezados del archivo).

Avatares contenidos en el archivo 'data_2' :

imagen alt

Por lo tanto, los chats en sí no se pueden encontrar en la memoria de la computadora, pero puede encontrar:

  • archivos multimedia;
  • Documentos transmitidos usando WhatsApp
  • Información sobre los contactos del titular de la cuenta.

Artefactos de WhatsApp en MacOS


En MacOS, puede encontrar tipos de artefactos de WhatsApp similares a los que se encuentran en Windows.

Los archivos de programa se encuentran en directorios:

  • 'C: \ Aplicaciones \ WhatsApp.app \'
  • 'C: \ Aplicaciones \ ._ WhatsApp.app \'
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Preferencias \'
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Registros \ WhatsApp \'
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Estado de la aplicación guardada \ WhatsApp.savedState \'
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Scripts de aplicación \'
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Soporte de aplicaciones \ CloudDocs \'
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Soporte de aplicaciones \ WhatsApp.ShipIt \'
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Contenedores \ com.rockysandstudio.app-for-whatsapp \'
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Documentos móviles \ <variable de texto> WhatsApp \ Cuentas'
    Este directorio contiene subdirectorios cuyos nombres son números de teléfono asociados con el propietario de la cuenta de WhatsApp.
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Caches \ WhatsApp.ShipIt \'
    Este directorio contiene información sobre la instalación del programa.
  • 'C: \ Users \% User profile% \ Pictures \ iPhoto.photolibrary Library \ Masters \' , 'C: \ Users \% User profile% \ Pictures \ iPhoto.photolibrary Library \ Photo \ Thumbnails \'
    Estos directorios contienen archivos de utilidad para el programa, incluidas fotos y miniaturas de contactos de WhatsApp.
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Caches \ WhatsApp \'
    Este directorio contiene varias bases de datos SQLite que se usan para almacenar en caché los datos.
  • 'C: \ Usuarios \% Perfil de usuario% \ Biblioteca \ Soporte de aplicaciones \ WhatsApp \'
    Este directorio contiene varios subdirectorios:

    imagen alt

    El directorio 'C: \ Users \% User profile% \ Library \ Application Support \ WhatsApp \ Cache \' contiene los archivos 'data_0' , 'data_1' , 'data_2' , 'data_3' y archivos con los nombres 'f _ **** *** ' (donde * es un número del 0 al 9). La información sobre qué información contienen estos archivos se describe en la sección "Artefactos de Windows de WhatsApp".

    El directorio 'C: \ Users \% User profile% \ Library \ Application Support \ WhatsApp \ IndexedDB \' puede contener archivos multimedia (los archivos no tienen extensiones).

    El archivo 'main-process.log' contiene información sobre el funcionamiento del programa WhatsApp.

Fuentes
  1. Análisis forense de WhatsApp Messenger en teléfonos inteligentes Android, por Cosimo Anglano, 2014.
  2. Análisis forense de Whatsapp: Eksplorasi sistem berkas dan base data pada aplikasi Android dan iOS by Ahmad Pratama, 2014.



Los siguientes artículos de esta serie:

Descifrado de bases de datos cifradas de WhatsApp
Un artículo que proporcionará información sobre cómo se genera la clave de cifrado de WhatsApp, y se dan 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 nube
Un artículo en el que describimos qué datos de WhatsApp se almacenan en las nubes y los métodos para extraer estos datos del almacenamiento en la nube.

Extracción de datos de WhatsApp: estudios de caso
Un artículo que describirá paso a paso qué programas y cómo extraer datos de WhatsApp de varios dispositivos.


Group-IB sabe todo sobre el cibercrimen, pero cuenta las cosas más interesantes.

El canal Telegram lleno de acción (https://t.me/Group_IB) sobre seguridad de la información, piratas informáticos y ataques cibernéticos, piratas informáticos y piratas de Internet. Investigaciones del cibercrimen sensacional por pasos, casos prácticos utilizando tecnologías del Grupo IB y, por supuesto, recomendaciones sobre cómo evitar convertirse en una víctima en Internet.

Grupo de canales de YouTube -IB
Grupo-IB Photowire en Instagram www.instagram.com/group_ib
Noticias breves de Twitter twitter.com/GroupIB

Group-IB es uno de los desarrolladores líderes de soluciones para detectar y prevenir ataques cibernéticos, detectar fraudes y proteger la propiedad intelectual en una red con sede en Singapur.

Source: https://habr.com/ru/post/447592/


All Articles