WhatsApp dans la paume de votre main: où et comment pouvez-vous détecter les artefacts médico-légaux?



Si vous voulez savoir quels types d'artefacts médico-légaux WhatsApp existent dans divers systèmes d'exploitation et où exactement ils peuvent être détectés, alors vous êtes ici. Avec cet article, Igor Mikhailov, spécialiste du laboratoire de médecine légale du groupe IB, ouvre une série de publications sur l'enquête médico-légale WhatsApp et les informations qui peuvent être obtenues en analysant l'appareil.

Notez simplement que différents types d'artefacts WhatsApp sont stockés dans différents systèmes d'exploitation, et si un chercheur peut extraire certains types de données WhatsApp d'un appareil, cela ne signifie pas que ces types de données peuvent être extraits d'un autre appareil. Par exemple, si une unité système exécutant Windows est saisie, les discussions WhatsApp ne seront probablement pas trouvées sur ses disques (à l'exception des copies de sauvegarde des appareils iOS qui peuvent être détectées sur les mêmes lecteurs). Lors du retrait des ordinateurs portables et des appareils mobiles auront leurs propres caractéristiques. Parlons de cela plus en détail.

Artefacts WhatsApp sur un appareil Android


Afin d'extraire les artefacts WhatsApp d'un appareil exécutant Android, le chercheur doit disposer des privilèges de superutilisateur ( `` racine '' ) sur l'appareil étudié ou être en mesure d'extraire autrement le vidage physique de la mémoire de l'appareil ou de son système de fichiers (par exemple, en utilisant les vulnérabilités logicielles d'un mobile spécifique appareils).

Les fichiers d'application se trouvent dans la mémoire du téléphone dans la section où les données utilisateur sont enregistrées. En règle générale, cette section est nommée «données utilisateur» . Les sous-répertoires et les fichiers de programme sont situés le long du chemin: '/data/data/com.whatsapp/' .

image alt

Les principaux fichiers contenant des artefacts médico-légaux WhatsApp dans le système d'exploitation Android sont les bases de données «wa.db» et «msgstore.db» .

La base de données 'wa.db' contient une liste complète des contacts des utilisateurs de WhatsApp, y compris le numéro de téléphone, le nom d'affichage, les horodatages et toute autre information spécifiée lors de l'inscription à WhatsApp. Le fichier 'wa.db' est situé le long du chemin: '/data/data/com.whatsapp/databases/' et a la structure suivante:

image alt

Les tableaux les plus intéressants de la base de données 'wa.db' pour le chercheur sont:

  • 'wa_contacts'
    Ce tableau contient les informations de contact: identifiant de contact dans WhatsApp, informations d'état, nom d'utilisateur affiché, horodatages, etc.

    Apparence du tableau:

    image alt

    Structure de la table
    Nom du champValeur
    _idenregistrer le numéro de série (dans le tableau SQL)
    jidID de contact WhatsApp, écrit au format <numéro de téléphone> @ s.whatsapp.net
    is_whatsapp_usercontient «1» si l'utilisateur réel de WhatsApp correspond au contact, «0» sinon
    statutcontient du texte affiché dans l'état du contact
    status_timestampcontient un horodatage au format Unix Epoch Time (ms)
    nombrenuméro de téléphone associé au contact
    raw_contact_idcontacter le numéro de série
    nom_affichagenom d'affichage du contact
    phone_typetype de téléphone
    étiquette_téléphoneétiquette associée au numéro de contact
    unseen_msg_countle nombre de messages envoyés par le contact mais non lus par le destinataire
    photo_tscontient un horodatage au format Unix Epoch Time
    thumb_tscontient un horodatage au format Unix Epoch Time
    photo_id_timestampcontient un horodatage au format Unix Epoch Time (ms)
    given_namela valeur du champ correspond à 'display_name' pour chaque contact
    wa_nameNom du contact WhatsApp (affiche le nom spécifié dans le profil du contact)
    nom_trinom du contact utilisé dans les opérations de tri
    surnomSurnom de contact WhatsApp (affiche le surnom spécifié dans le profil de contact)
    entreprisesociété (la société indiquée dans le profil de contact est affichée)
    titreappel (maîtresse / gentleman; l'adresse configurée dans le profil de contact est affichée)
    décalagedéplacement
  • 'sqlite_sequence'
    Ce tableau contient des informations sur le nombre de contacts;
  • 'android_metadata'
    Ce tableau contient des informations de localisation de la langue WhatsApp.

La base de données 'msgstore.db' contient des informations sur les messages transmis, tels que le numéro de contact, le texte du message, l'état du message, les horodatages, des informations sur les fichiers transférés inclus dans les messages, etc. Le fichier 'msgstore.db' est situé le long du chemin: '/data/data/com.whatsapp/databases/' et a la structure suivante:

image alt

Les tableaux les plus intéressants du fichier 'msgstore.db' pour le chercheur sont:

  • 'sqlite_sequence'
    Ce tableau contient des informations générales sur cette base de données, par exemple, le nombre total de messages stockés, le nombre total de chats, etc.

    Apparence du tableau:

    image alt
  • 'message_fts_content'
    Contient le texte des messages transmis.

    Apparence du tableau:

    image alt
  • «messages»
    Ce tableau contient des informations telles que le numéro de contact, le texte du message, l'état du message, les horodatages, des informations sur les fichiers transférés inclus dans les messages.

    Apparence du tableau:

    image alt

    Structure de la table
    Nom du champValeur
    _idenregistrer le numéro de série (dans le tableau SQL)
    key_remote_jidID de partenaire de communication WhatsApp
    key_from_mesens du message: «0» - entrant, «1» - sortant
    key_ididentifiant unique du message
    statutétat du message: «0» - remis, «4» - en attente sur le serveur, «5» - reçu à destination, «6» - message de contrôle, «13» - message ouvert par le destinataire (lire)
    need_pusha la valeur '2' s'il s'agit d'un message diffusé, sinon il contient '0'
    les donnéestexte du message (lorsque le paramètre 'media_wa_type' est '0')
    horodatagecontient un horodatage au format Unix Epoch Time (ms), la valeur est extraite de l'horloge de l'appareil
    media_urlcontient l'URL du fichier transmis (lorsque le paramètre 'media_wa_type' est '1', '2', '3')
    media_mime_typeType MIME du fichier transféré (lorsque le paramètre 'media_wa_type' est égal à '1', '2', '3')
    media_wa_typetype de message: «0» - texte, «1» - fichier image, «2» - fichier audio, «3» - fichier vidéo, «4» - carte de contact, «5» - géodonnées
    media_sizetaille de transfert de fichier (lorsque le paramètre «media_wa_type» est «1», «2», «3»)
    nom_médianom du fichier transféré (lorsque le paramètre 'media_wa_type' est '1', '2', '3')
    media_captionContient les mots «audio», «vidéo» pour les valeurs correspondantes du paramètre «media_wa_type» (lorsque le paramètre «media_wa_type» est égal à «1», «3»)
    media_hashHachage codé en base64 du fichier transmis, calculé selon l'algorithme HAS-256 (lorsque le paramètre 'media_wa_type' est '1', '2', '3')
    media_durationdurée en secondes pour le fichier multimédia (lorsque le paramètre 'media_wa_type' est '1', '2', '3')
    originea la valeur '2' s'il s'agit d'un message diffusé, sinon il contient '0'
    latitudegéodonnées: latitude (lorsque le paramètre 'media_wa_type' est '5')
    longitudegéodonnées: longitude (lorsque le paramètre 'media_wa_type' est '5')
    thumb_imageinformations de service
    remote_recourceID de l'expéditeur (discussion de groupe uniquement)
    reçu_horodatagerecevoir l'heure, contient un horodatage au format Unix Epoch Time (ms), la valeur est extraite de l'horloge de l'appareil (lorsque le paramètre 'key_from_me' a '0', '-1' ou une autre valeur)
    send_timestampnon utilisé, a généralement une valeur de «-1»
    reçu_serveur_horodatageheure reçue par le serveur central, contient un horodatage au format Unix Epoch Time (ms), la valeur est extraite de l'horloge de l'appareil (lorsque le paramètre 'key_from_me' a '1', '-1' ou une autre valeur
    reçu_appareil_horodatagel'heure à laquelle le message a été reçu par un autre abonné, contient un horodatage au format Unix Epoch Time (ms), la valeur est extraite de l'horloge de l'appareil (lorsque le paramètre 'key_from_me' a '1', '-1' ou une autre valeur
    read_device_timestampheure d'ouverture (lecture) du message, contient un horodatage au format Unix Epoch Time (ms), la valeur est extraite de l'horloge de l'appareil
    joué_appareil_timestamptemps de lecture du message, contient un horodatage au format Unix Epoch Time (ms), la valeur est extraite de l'horloge de l'appareil
    raw_dataminiature du fichier transmis (lorsque le paramètre 'media_wa_type' est égal à '1' ou '3')
    recipient_countnombre de destinataires (pour les messages diffusés)
    participant_hashutilisé lors de l'envoi de messages avec des géodonnées
    étoilénon utilisé
    quoted_row_idinconnu, contient généralement la valeur «0»
    mention_jidsnon utilisé
    multicast_idnon utilisé
    décalagedéplacement

    Cette liste de champs n'est pas exhaustive. Pour différentes versions de WhatsApp, certains champs peuvent ou non être présents. De plus, les champs 'media_enc_hash' , 'edit_version' , 'payment_transaction_id' , etc. peuvent être présents.
  • 'messages_thumbnails'
    Ce tableau contient des informations sur les images transférées et les horodatages. Dans la colonne 'timestamp', l'heure est au format Unix Epoch Time (ms).
  • 'chat_list'
    Ce tableau contient des informations sur le chat.

    Apparence du tableau:

    image alt

De plus, lorsque vous recherchez WhatsApp sur un appareil mobile exécutant Android, vous devez faire attention aux fichiers suivants:

  • Fichier 'msgstore.db.cryptXX' (où XX est un ou deux chiffres de 0 à 12, par exemple, msgstore.db.crypt12). Contient une sauvegarde cryptée des messages WhatsApp (sauvegarde du fichier msgstore.db ). Le ou les fichiers 'msgstore.db.cryptXX' se trouvent sur le chemin: '/ data / media / 0 / WhatsApp / Databases /' (carte SD virtuelle), '/ mnt / sdcard / WhatsApp / Databases / ( SD physique- carte) ».
  • Le fichier est «clé» . Contient une clé cryptographique. Il est situé le long du chemin: '/data/data/com.whatsapp/files/' . Utilisé pour décrypter les sauvegardes WhatsApp cryptées.
  • Fichier 'com.whatsapp_preferences.xml' . Contient des informations sur le profil de compte WhatsApp. Le fichier se trouve sur le chemin: '/data/data/com.whatsapp/shared_prefs/' .

    Extrait de contenu de fichier
    <?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> (  ) … 
  • Fichier 'registration.RegisterPhone.xml' . Contient des informations de numéro de téléphone associées à un compte WhatsApp. Le fichier se trouve sur le chemin: '/data/data/com.whatsapp/shared_prefs/' .

    Contenu du fichier
     <?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> 
  • Fichier 'axolotl.db' . Contient des clés cryptographiques et d'autres données nécessaires pour identifier le propriétaire du compte. Il se trouve le long du chemin: '/data/data/com.whatsapp/databases/' .
  • Fichier «chatsettings.db» . Contient des informations de configuration d'application.
  • Le fichier 'wa.db' . Contient les coordonnées. Une base de données très intéressante (sous l'aspect médico-légal) et informative. Vous y trouverez des informations détaillées sur les contacts supprimés.

Vous devez également faire attention aux répertoires suivants:

  • Répertoire '/ data / media / 0 / WhatsApp / Media / WhatsApp Images /' . Contient les fichiers d'images transférés.
  • Répertoire '/ data / media / 0 / WhatsApp / Media / WhatsApp Voice Notes /' . Contient des messages vocaux dans des fichiers au format .OPUS.
  • Répertoire '/data/data/com.whatsapp/cache/Profile Pictures /' . Contient des fichiers graphiques - images de contacts.
  • Répertoire '/data/data/com.whatsapp/files/Avatars/' . Contient des fichiers d'images - des miniatures d'images de contact. Ces fichiers ont l'extension «.j», mais sont néanmoins des fichiers image au format JPEG (JPG).
  • Répertoire '/data/data/com.whatsapp/files/Avatars/' . Contient des fichiers image - image et miniature de l'image installée comme avatar par le propriétaire du compte.
  • Répertoire '/data/data/com.whatsapp/files/Logs/' . Il contient le journal des opérations du programme (fichier 'whatsapp.log') et des copies de sauvegarde des journaux des opérations du programme (fichiers avec les noms de format whatsapp-yyyy-mm-dd.1.log.gz).

Fichiers journaux WhatsApp:

image alt

Fragment de magazine
2017-01-10 09: 37: 09.757 LL_I D [524: WhatsApp Worker # 1] nombre d'appels manqués / nombre d'initiations: 0 horodatage: 0
2017-01-10 09: 37: 09.758 LL_I D [524: WhatsApp Worker # 1] raté notification d'appel / mise à jour annuler vrai
10/01/2017 09: 37: 09.768 LL_I D [1: main] app-init / load-me
2017-01-10 09: 37: 09.772 LL_I D [1: principal] fichier de mot de passe manquant ou illisible
2017-01-10 09: 37: 09.782 LL_I D [1: principal] statistiques Messages texte: 59 envoyés, 82 reçus / Messages multimédias: 1 envoyé (0 octet), 0 reçu (9850158 octets) / Messages hors ligne: 81 reçus ( 19522 msec délai moyen) / Service de messagerie: 116075 octets envoyés, 211729 octets reçus / Appels VoIP: 1 appels sortants, 0 appels entrants, 2492 octets envoyés, 1530 octets reçus / Google Drive: 0 octets envoyés, 0 octets reçus / Itinérance: 1524 octets envoyés, 1826 octets reçus / Données totales: 118567 octets envoyés, 10063417 octets reçus
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
10/01/2017 09: 37: 09.811 LL_I D [1: main] msgstore / checkhealth
10/01/2017 09: 37: 09.817 LL_I D [1: main] msgstore / checkhealth / journal / delete false
10/01/2017 09: 37: 09.818 LL_I D [1: main] msgstore / checkhealth / back / delete false
10/01/2017 09: 37: 09.818 LL_I D [1: main] msgstore / checkdb / data / data / com.whatsapp / databases / msgstore.db
10/01/2017 09: 37: 09.819 LL_I D [1: main] msgstore / checkdb / list _jobqueue-WhatsAppJobManager 16384 drw = 011
10/01/2017 09: 37: 09.820 LL_I D [1: main] msgstore / checkdb / list _jobqueue-WhatsAppJobManager-journal 21032 drw = 011
10/01/2017 09: 37: 09.820 LL_I D [1: main] msgstore / checkdb / list axolotl.db 184320 drw = 011
10/01/2017 09: 37: 09.821 LL_I D [1: main] msgstore / checkdb / list axolotl.db-wal 436752 drw = 011
10/01/2017 09: 37: 09.821 LL_I D [1: main] msgstore / checkdb / list axolotl.db-shm 32768 drw = 011
10/01/2017 09: 37: 09.822 LL_I D [1: main] msgstore / checkdb / list msgstore.db 540672 drw = 011
10/01/2017 09: 37: 09.823 LL_I D [1: main] msgstore / checkdb / list msgstore.db-wal 0 drw = 011
10/01/2017 09: 37: 09.823 LL_I D [1: main] msgstore / checkdb / list msgstore.db-shm 32768 drw = 011
10/01/2017 09: 37: 09.824 LL_I D [1: main] msgstore / checkdb / list wa.db 69632 drw = 011
10/01/2017 09: 37: 09.825 LL_I D [1: main] msgstore / checkdb / list wa.db-wal 428512 drw = 011
10/01/2017 09: 37: 09.825 LL_I D [1: main] msgstore / checkdb / list wa.db-shm 32768 drw = 011
10/01/2017 09: 37: 09.826 LL_I D [1: main] msgstore / checkdb / list chatsettings.db 4096 drw = 011
10/01/2017 09: 37: 09.826 LL_I D [1: main] msgstore / checkdb / list chatsettings.db-wal 70072 drw = 011
10/01/2017 09: 37: 09.827 LL_I D [1: main] msgstore / checkdb / list chatsettings.db-shm 32768 drw = 011
10/01/2017 09: 37: 09.838 LL_I D [1: main] msgstore / checkdb / version 1
10/01/2017 09: 37: 09.839 LL_I D [1: main] msgstore / canquery
10/01/2017 09: 37: 09.846 LL_I D [1: main] msgstore / canquery / count 1
10/01/2017 09: 37: 09.847 LL_I D [1: principal] msgstore / canquery / timer / stop: 8
10/01/2017 09: 37: 09.847 LL_I D [1: main] msgstore / canquery 517 | temps passé: 8
10/01/2017 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

  • Répertoire '/ data / media / 0 / WhatsApp / Media / WhatsApp Audio /' . Contient des fichiers audio reçus.
  • Répertoire '/ data / media / 0 / WhatsApp / Media / WhatsApp Audio / Sent /' . Contient des fichiers audio envoyés.
  • Répertoire '/ data / media / 0 / WhatsApp / Media / WhatsApp Images /' . Contient des fichiers d'images reçus.
  • Répertoire '/ data / media / 0 / WhatsApp / Media / WhatsApp Images / Sent /' . Contient des fichiers d'images envoyés.
  • Répertoire '/ data / media / 0 / WhatsApp / Media / WhatsApp Video /' . Contient des fichiers vidéo reçus.
  • Répertoire '/ data / media / 0 / WhatsApp / Media / WhatsApp Video / Sent /' . Contient des fichiers vidéo téléchargés.
  • Répertoire '/ data / media / 0 / WhatsApp / Media / Photos de profil WhatsApp /' . Contient des fichiers image associés au propriétaire du compte WhatsApp.
  • Pour économiser de l'espace dans la mémoire du smartphone Android, certaines données WhatsApp peuvent être stockées sur la carte SD. Sur la carte SD, dans le répertoire racine, il y a un répertoire 'WhatsApp' où les artefacts suivants de ce programme peuvent être trouvés:

    image alt
  • Répertoire '.Share' ( '/mnt/sdcard/WhatsApp/.Share/' ). Contient des copies des fichiers qui ont été transférés à d'autres utilisateurs de WhatsApp.
  • Répertoire '.trash' ( '/mnt/sdcard/WhatsApp/.trash/' ). Contient des fichiers supprimés.
  • Répertoire 'Bases de données' ( '/ mnt / sdcard / WhatsApp / Bases de données /' ). Contient des sauvegardes chiffrées. Ils peuvent être décryptés en présence du fichier «clé» , extrait de la mémoire de l'appareil analysé.

    Fichiers du sous-répertoire 'Bases de données' :

    image alt
  • Répertoire 'Media' ( '/ mnt / sdcard / WhatsApp / Media /' ). Contient les sous-répertoires 'WallPaper' , 'WhatsApp Audio' , 'WhatsApp Images' , 'WhatsApp Profile Photos' , 'WhatsApp Video' , 'WhatsApp Voice Notes' , dans lesquels les fichiers multimédias reçus et transmis (fichiers image, fichiers vidéo, messages vocaux, photos associées au profil du titulaire du compte WhatsApp, fond d'écran).
  • Répertoire 'Profile Pictures' ( '/ mnt / sdcard / WhatsApp / Profile Pictures /' ). Contient des fichiers image associés au profil du titulaire de compte WhatsApp.
  • Parfois, le répertoire 'files' ( '/ mnt / sdcard / WhatsApp / Files /' ) peut être présent sur la carte SD. Ce répertoire contient des fichiers qui stockent les paramètres du programme et les préférences de l'utilisateur.

Caractéristiques du stockage de données dans certains modèles d'appareils mobiles


Sur certains appareils mobiles Android, les artefacts WhatsApp peuvent être stockés ailleurs. Cela est dû à une modification de l'espace de stockage des données d'application par le logiciel système de l'appareil mobile. Ainsi, par exemple, les appareils mobiles Xiaomi ont pour fonction de créer un deuxième espace de travail («SecondSpace»). Lorsque cette fonction est activée, l'emplacement des données change. Donc, si dans un appareil mobile ordinaire exécutant Android OS, les données utilisateur sont stockées dans le répertoire '/ data / user / 0 /' (qui est un lien vers l'habituel '/ data / data /' ), alors dans le deuxième espace de travail, les données d'application sont stockées dans le répertoire '/ data / user / 10 /' . C'est, par exemple, l'emplacement du fichier 'wa.db' :

  • dans un smartphone Android classique : /data/user/0/com.whatsapp/databases/wa.db ' (ce qui équivaut à ' /data/data/com.whatsapp/databases/wa.db ') ;
  • dans le deuxième espace de travail du smartphone Xiaomi: '/data/user/10/com.whatsapp/databases/wa.db' .

Artefacts WhatsApp sur un appareil iOS


Contrairement à Android OS, dans iOS, les données de l'application WhatsApp sont transférées vers une copie de sauvegarde (sauvegarde iTunes). Par conséquent, l'extraction des données de cette application ne nécessite pas d'extraire le système de fichiers ou de créer un vidage de mémoire physique du périphérique sous enquête. La plupart des informations pertinentes sont contenues dans la base de données 'ChatStorage.sqlite' , qui se trouve le long du chemin: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/' (dans certains programmes, ce chemin est affiché comme 'AppDomainGroup -group.net.whatsapp.WhatsApp.shared ' ).

La structure de 'ChatStorage.sqlite' :

image alt

Les tables les plus informatives de la base de données ChatStorage.sqlite sont les tables ZWAMESSAGE et ZWAMEDIAITEM .

Apparence du tableau 'ZWAMESSAGE' :

image alt

Structure de la table 'ZWAMESSAGE'
Nom du champValeur
Z_PKenregistrer le numéro de série (dans le tableau SQL)
Z_ENTidentifiant de table, valeur '9'
Z_OPTinconnu, contient généralement des valeurs de «1» à «6»
ZCHILDMESSAGESDELIVEREDCOUNTinconnu, contient généralement la valeur «0»
ZCHILDMESSAGESPLAYEDCOUNTinconnu, contient généralement la valeur «0»
ZCHILDMESSAGESREADCOUNTinconnu, contient généralement la valeur «0»
ZDATAITEMVERSIONinconnu, contient généralement la valeur «3», probablement un pointeur de message texte
ZDOCIDest inconnu
ZENCRETRYCOUNTinconnu, contient généralement la valeur «0»
ZFILTEREDRECIPIENTCOUNTinconnu, contient généralement les valeurs «0», «2», «256»
Zisfrommesens du message: «0» - entrant, «1» - sortant
ZMESSAGEERRORSTATUSétat de transfert des messages. Si le message est envoyé / reçu, il a une valeur de '0'
ZMESSAGETYPEtype de message
Zsortest inconnu
ZSPOTLIGHSTATUSest inconnu
ZSTARREDinconnu non utilisé
Zchatsessionest inconnu
ZGROUPMEMBERinconnu non utilisé
ZLASTSESSIONest inconnu
ZMEDIAITEMest inconnu
ZMESSAGEINFOest inconnu
ZPARENTMESSAGEinconnu non utilisé
ZMESSAGEDATEHorodatage d'époque OS X
ZSENTDATEHeure d'envoi du message OS X Epoch Time
ZFROMJIDID de l'expéditeur WhatsApp
ZMEDIASECTIONIDcontient l'année et le mois d'envoi du fichier multimédia
Zphashinconnu non utilisé
ZPUSHPAMEnom du contact qui a envoyé le fichier multimédia UTF-8
ZSTANZIDidentifiant unique du message
ZTEXTtexte du message
ZTOJIDDestinataire de l'ID Whatsapp
OFFSETdéplacement

Apparence du tableau «ZWAMEDIAITEM» :

image alt

Structure de la table 'ZWAMEDIAITEM'
Nom du champValeur
Z_PKenregistrer le numéro de série (dans le tableau SQL)
Z_ENTidentifiant de table, valeur '8'
Z_OPTinconnu, contient généralement des valeurs de «1» à «3».
ZCLOUDSTATUScontient la valeur «4» si le fichier est téléchargé.
ZFILESIZEcontient la longueur du fichier (en octets) pour les fichiers téléchargés
ZMEDIAORIGINinconnu, généralement «0»
ZMOVIEDURATIONla durée du fichier multimédia, pour les fichiers pdf peuvent contenir le nombre de pages du document
ZMESSAGEcontient un numéro de série (le numéro diffère de celui indiqué dans la colonne 'Z_PK')
ZASPECTRATIOrapport d'aspect, non utilisé, généralement défini sur «0»
ZHACCURACYinconnu, généralement «0»
ZLATTITUDElargeur en pixels
ZLONGTITUDEhauteur en pixels
ZMEDIAURLDATEHorodatage d'époque OS X
ZAUTHORNAMEauteur (pour les documents, peut contenir le nom du fichier)
ZCOLLECTIONNAMEnon utilisé
ZMEDIALOCALPATHnom de fichier (avec chemin) dans le système de fichiers du périphérique
ZMEDIAURLURL où se trouvait le fichier multimédia. Si le fichier a été transféré d'un abonné à un autre, il a été chiffré et son extension sera indiquée comme l'extension du fichier transféré - .enc
ZTHUMBNAILLOCALPATHchemin d'accès à la miniature du fichier dans le système de fichiers du périphérique
ZTITLEen-tête de fichier
ZVCARDNAMEhachage de fichier multimédia; lors du transfert d'un fichier vers un groupe, il peut contenir l'ID de l'expéditeur
ZVCARDSTRINGcontient des informations sur le type de fichier transféré (par exemple, image / jpeg); lors du transfert d'un fichier vers un groupe, il peut contenir l'identifiant du destinataire
ZXMPPTHUMBPATHchemin d'accès à la miniature du fichier dans le système de fichiers du périphérique
ZMEDIAKEYinconnu, contient probablement la clé pour décrypter le fichier crypté.
ZMETADATAmétadonnées de message
Décalagedéplacement

D'autres tables de base de données intéressantes 'ChatStorage.sqlite' sont:

  • «ZWAPROFILEPUSHNAME» . Correspond à l'ID WhatsApp avec le nom du contact;
  • «ZWAPROFILEPICTUREITEM» . Corrèle l'ID WhatsApp avec l'avatar de contact;
  • «Z_PRIMARYKEY» . Le tableau contient des informations générales sur cette base de données, telles que le nombre total de messages stockés, le nombre total de chats, etc.

De plus, lorsque vous recherchez WhatsApp sur un appareil mobile exécutant iOS, vous devez faire attention aux fichiers suivants:

  • Fichier «BackedUpKeyValue.sqlite» . Contient des clés cryptographiques et d'autres données nécessaires pour identifier le propriétaire du compte. Il se trouve le long du chemin: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ .
  • Fichier 'ContactsV2.sqlite' . Il contient des informations sur les contacts de l'utilisateur, telles que le nom complet, le numéro de téléphone, l'état du contact (sous forme de texte), l'ID WhatsApp, etc. Il se trouve le long du chemin: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ .
  • Fichier 'version_consommateur' . Contient le numéro de version de l'application WhatsApp installée. Il se trouve le long du chemin: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ .
  • Fichier 'current_wallpaper.jpg' . Contient le fond d'écran actuel de WhatsApp. Il se trouve le long du chemin: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ . Dans les anciennes versions de l'application, le fichier 'wallpaper' est utilisé , qui se trouve le long du chemin: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/' .
  • Fichier 'blockcontacts.dat' . Contient des informations sur les contacts bloqués. Il se trouve le long du chemin: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/ .
  • Fichier 'pw.dat' . Contient un mot de passe crypté. Il se trouve en cours de route: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/' .
  • Fichier 'net.whatsapp.WhatsApp.plist' (ou fichier 'group.net.whatsapp.WhatsApp.shared.plist' ). Contient des informations sur le profil de compte WhatsApp. Le fichier se trouve sur le chemin: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/' .

Le contenu du fichier 'group.net.whatsapp.WhatsApp.shared.plist'
image alt

Vous devez également faire attention aux répertoires suivants:

  • Répertoire '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/' . Il contient des miniatures de contacts, des groupes (fichiers avec l'extension .thumb ), des avatars de contacts, un avatar du propriétaire du compte WhatsApp (fichier 'Photo.jpg' ).
  • Répertoire '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ Message / Media /' . Contient des fichiers multimédias et leurs vignettes
  • Répertoire '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/' . Il contient le journal du programme (fichier 'calls.log' ) et des copies de sauvegarde des journaux du programme (fichier 'calls.backup.log' ).
  • Catalogue '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/' . Contient des autocollants (fichiers au format '.webp' ).
  • Le répertoire '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/' . Contient des journaux du programme.

Artefacts WhatsApp sous Windows


Artefacts WhatsApp sous Windows peut être trouvé à plusieurs endroits. Tout d'abord, ce sont des répertoires contenant les fichiers exécutables et auxiliaires du programme (pour Windows 8/10):
  • 'C: \ Program Files (x86) \ WhatsApp \'
  • 'C: \ Users \% Profil utilisateur% \ AppData \ Local \ WhatsApp \'
  • 'C: \ Users \% Profil utilisateur% \ AppData \ Local \ VirtualStore \ Program Files (x86) \ WhatsApp \'

Dans le répertoire 'C: \ Users \% User profile% \ AppData \ Local \ WhatsApp \' se trouve le fichier journal 'SquirrelSetup.log' , qui contient des informations sur la vérification des mises à jour et l'installation du programme.

Dans le répertoire 'C: \ Users \% User profile% \ AppData \ Roaming \ WhatsApp \' il y a plusieurs sous-répertoires:

image alt

Le fichier «main-process.log» contient des informations sur le fonctionnement du programme WhatsApp.

Le sous-répertoire 'databases' contient le fichier 'Databases.db' , mais ce fichier ne contient aucune information sur les chats ou les contacts.

Les plus intéressants du point de vue médico-légal sont les fichiers situés dans le répertoire «Cache» . Fondamentalement, ce sont des fichiers avec les noms 'f _ *******' (où * est un nombre de 0 à 9) contenant des fichiers et des documents multimédias cryptés, mais parmi eux il y a aussi des fichiers non cryptés. Les fichiers 'data_0' , 'data_1' , 'data_2' , 'data_3' situés dans le même sous-répertoire sont particulièrement intéressants. Les fichiers 'data_0' , 'data_1' , 'data_3' contiennent des liens externes vers des fichiers et documents multimédias cryptés transmis.

Exemple d'informations contenues dans le fichier 'data_1'
image alt

De plus, le fichier 'data_3' peut contenir des fichiers image.

Le fichier 'data_2' contient des avatars de contact (peut être restauré en recherchant les en-têtes de fichier).

Avatars contenus dans le fichier 'data_2' :

image alt

Ainsi, les chats eux-mêmes ne peuvent pas être trouvés dans la mémoire de l'ordinateur, mais vous pouvez trouver:

  • fichiers multimédias;
  • Documents transmis via WhatsApp
  • Informations sur les contacts du titulaire du compte.

Artefacts WhatsApp sur MacOS


Sur MacOS, vous pouvez trouver des types d'artefact WhatsApp similaires à ceux trouvés sur Windows.

Les fichiers du programme sont situés dans des répertoires:

  • «C: \ Applications \ WhatsApp.app \»
  • 'C: \ Applications \ ._ WhatsApp.app \'
  • 'C: \ Users \% Profil utilisateur% \ Library \ Preferences \'
  • 'C: \ Users \% Profil utilisateur% \ Library \ Logs \ WhatsApp \'
  • 'C: \ Users \% Profil utilisateur% \ Library \ Saved Application State \ WhatsApp.savedState \'
  • 'C: \ Users \% Profil utilisateur% \ Library \ Application Scripts \'
  • 'C: \ Users \% Profil utilisateur% \ Library \ Application Support \ CloudDocs \'
  • 'C: \ Users \% Profil utilisateur% \ Library \ Application Support \ WhatsApp.ShipIt \'
  • 'C: \ Users \% Profil utilisateur% \ Library \ Containers \ com.rockysandstudio.app-for-whatsapp \'
  • 'C: \ Utilisateurs \% Profil utilisateur% \ Bibliothèque \ Documents mobiles \ <variable de texte> WhatsApp \ Comptes'
    Ce répertoire contient des sous-répertoires dont les noms sont des numéros de téléphone associés au propriétaire du compte WhatsApp.
  • 'C: \ Users \% Profil utilisateur% \ Library \ Caches \ WhatsApp.ShipIt \'
    Ce répertoire contient des informations sur l'installation du programme.
  • 'C: \ Users \% User profile% \ Pictures \ iPhoto.photolibrary Library \ Masters \' , 'C: \ Users \% User profile% \ Pictures \ iPhoto.photolibrary Library \ Photo \ Thumbnails \'
    Ces répertoires contiennent des fichiers utilitaires pour le programme, y compris des photos et des miniatures des contacts WhatsApp.
  • 'C: \ Users \% Profil utilisateur% \ Library \ Caches \ WhatsApp \'
    Ce répertoire contient plusieurs bases de données SQLite utilisées pour mettre en cache les données.
  • 'C: \ Users \% Profil utilisateur% \ Library \ Application Support \ WhatsApp \'
    Ce répertoire contient plusieurs sous-répertoires:

    image alt

    Le répertoire 'C: \ Users \% User profile% \ Library \ Application Support \ WhatsApp \ Cache \' contient les fichiers 'data_0' , 'data_1' , 'data_2' , 'data_3' et les fichiers avec les noms 'f _ **** *** ' (où * est un nombre de 0 à 9). Les informations sur les informations contenues dans ces fichiers sont décrites dans la section «Objets WhatsApp Windows».

    Le répertoire 'C: \ Users \% Profil utilisateur% \ Library \ Application Support \ WhatsApp \ IndexedDB \' peut contenir des fichiers multimédias (les fichiers n'ont pas d'extensions).

    Le fichier «main-process.log» contient des informations sur le fonctionnement du programme WhatsApp.

Les sources
  1. Analyse médico-légale de WhatsApp Messenger sur les smartphones Android, par Cosimo Anglano, 2014.
  2. Whatsapp Forensics: Eksplorasi sistem berkas dan base data pada aplikasi Android dan iOS by Ahmad Pratama, 2014.



Les articles suivants de cette série:

Déchiffrement des bases de données WhatsApp chiffrées
Un article qui fournira des informations sur la façon dont la clé de chiffrement WhatsApp est générée, et des exemples pratiques sont donnés qui montrent comment déchiffrer les bases de données chiffrées de cette application.

Extraire les données WhatsApp du stockage cloud
Un article dans lequel nous décrivons quelles données WhatsApp sont stockées dans les nuages ​​et décrivons les méthodes d'extraction de ces données du stockage dans le cloud.

Extraction de données WhatsApp: études de cas
Un article qui décrit étape par étape quels programmes et comment extraire les données WhatsApp de divers appareils.


Group-IB sait tout sur la cybercriminalité, mais raconte les choses les plus intéressantes.

La chaîne Telegram pleine d'action (https://t.me/Group_IB) sur la sécurité de l'information, les pirates et les cyberattaques, les hacktivistes et les pirates Internet. Enquêtes sur la cybercriminalité sensationnelle par étapes, cas pratiques utilisant les technologies du Groupe IB et, bien sûr, recommandations sur la façon d'éviter de devenir une victime sur Internet.

Groupe de chaînes YouTube -IB
Photowire Group-IB sur Instagram www.instagram.com/group_ib
Nouvelles brèves Twitter twitter.com/GroupIB

Group-IB est l'un des principaux développeurs de solutions pour détecter et prévenir les cyberattaques, détecter les fraudes et protéger la propriété intellectuelle dans un réseau dont le siège est à Singapour.

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


All Articles