WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?

WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?

Se vuoi sapere quali tipi di artefatti forensi di WhatsApp esistono sui diversi sistemi operativi e dove possono essere trovati esattamente, allora questo è il posto che fa per te. Questo articolo è di uno specialista del Laboratorio di Computer Forensics del Gruppo-IB Igor Mikhailov dà il via a una serie di post sull'analisi forense di WhatsApp e su quali informazioni possono essere raccolte dall'analisi del dispositivo.

Notiamo subito che diversi sistemi operativi memorizzano diversi tipi di artefatti WhatsApp, e se un ricercatore può estrarre determinati tipi di dati WhatsApp da un dispositivo, ciò non significa che tipi simili di dati possano essere estratti da un altro dispositivo. Ad esempio, se un'unità di sistema con sistema operativo Windows viene rimossa, probabilmente le chat di WhatsApp non verranno trovate sui suoi dischi (ad eccezione delle copie di backup dei dispositivi iOS, che possono essere trovate sulle stesse unità). Il sequestro di laptop e dispositivi mobili avrà le sue caratteristiche. Parliamo di questo in modo più dettagliato.

Artefatti di WhatsApp nel dispositivo Android

Per estrarre gli artefatti WhatsApp da un dispositivo Android, il ricercatore deve disporre dei diritti di superutente ('radice') sul dispositivo in esame o essere in grado di estrarre in altro modo un dump fisico della memoria del dispositivo o del suo file system (ad esempio, utilizzando le vulnerabilità del software di uno specifico dispositivo mobile).

I file dell'applicazione si trovano nella memoria del telefono nella sezione in cui vengono salvati i dati dell'utente. Di norma, questa sezione è denominata 'dati utente'. Le sottodirectory e i file di programma si trovano lungo il percorso: '/dati/dati/com.whatsapp/'.

WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
I file principali che contengono artefatti forensi di WhatsApp nel sistema operativo Android sono database 'wa.db' и 'msgstore.db'.

Nella banca dati 'wa.db' contiene l'elenco completo dei contatti di un utente WhatsApp, incluso numero di telefono, nome visualizzato, timestamp e qualsiasi altra informazione fornita durante la registrazione a WhatsApp. File 'wa.db' situato lungo il percorso: '/data/data/com.whatsapp/databases/' ed ha la seguente struttura:

WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
Le tabelle più interessanti del database 'wa.db' per il ricercatore sono:

  • 'wa_contatti'
    Questa tabella contiene le informazioni di contatto: ID contatto WhatsApp, informazioni sullo stato, nome visualizzato dell'utente, timestamp, ecc.

    Aspetto della tabella:

    WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
    Struttura della tabella

    Nome del campo Valore
    _ID numero di sequenza del record (nella tabella SQL)
    yiddish ID contatto WhatsApp, scritto nel formato <numero di telefono>@s.whatsapp.net
    è_utente_whatsapp contiene '1' se il contatto corrisponde a un vero utente WhatsApp, '0' altrimenti
    status contiene il testo visualizzato nello stato del contatto
    status_timestamp contiene un timestamp nel formato Unix Epoch Time (ms).
    numero numero di telefono associato al contatto
    raw_contact_id contattare il numero di serie
    display_name nome visualizzato del contatto
    tipo_telefono tipo di telefono
    etichetta_telefono etichetta associata al numero di contatto
    conteggio_msg_invisibile numero di messaggi inviati da un contatto ma non letti dal destinatario
    foto_ts contiene un timestamp nel formato Unix Epoch Time
    pollice_ts contiene un timestamp nel formato Unix Epoch Time
    photo_id_timestamp contiene un timestamp nel formato Unix Epoch Time (ms).
    nome di battesimo il valore del campo corrisponde a "display_name" per ogni contatto
    wa_nome Nome del contatto WhatsApp (viene visualizzato il nome specificato nel profilo del contatto)
    nome_ordinamento nome del contatto utilizzato nelle operazioni di ordinamento
    soprannome nickname del contatto in WhatsApp (viene visualizzato il nickname specificato nel profilo del contatto)
    azienda azienda (viene visualizzata l'azienda specificata nel profilo del contatto)
    titolo titolo (Sig.ra/Sig.; viene visualizzato il titolo configurato nel profilo del contatto)
    offset spostamento
  • 'sqlite_sequenza'
    Questa tabella contiene informazioni sul numero di contatti;
  • 'android_metadata'
    Questa tabella contiene informazioni sulla localizzazione della lingua di WhatsApp.

Nella banca dati 'msgstore.db' contiene informazioni sui messaggi inviati, come numero di contatto, testo del messaggio, stato del messaggio, timestamp, dettagli dei file trasferiti inclusi nei messaggi, ecc. File 'msgstore.db' situato lungo il percorso: '/data/data/com.whatsapp/databases/' ed ha la seguente struttura:

WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
Le tabelle più interessanti del file 'msgstore.db' per il ricercatore sono:

  • 'sqlite_sequenza'
    Questa tabella contiene informazioni generali su questo database, come il numero totale di messaggi archiviati, il numero totale di chat, ecc.

    Aspetto della tabella:

    WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?

  • 'messaggio_fts_content'
    Contiene il testo dei messaggi inviati.

    Aspetto della tabella:

    WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?

  • 'messaggi'
    Questa tabella contiene informazioni quali numero di contatto, testo del messaggio, stato del messaggio, timestamp, informazioni sui file trasferiti inclusi nei messaggi.

    Aspetto della tabella:

    WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
    Struttura della tabella

    Nome del campo Valore
    _ID numero di sequenza del record (nella tabella SQL)
    key_remote_jid ID WhatsApp del partner di comunicazione
    chiave_da_me direzione del messaggio: '0' – in entrata, '1' – in uscita
    key_id key identificatore univoco del messaggio
    status stato del messaggio: '0' – consegnato, '4' – in attesa sul server, '5' – ricevuto a destinazione, '6' – messaggio di controllo, '13' – messaggio aperto dal destinatario (letto)
    bisogno_spingere ha valore '2' se è un messaggio broadcast, altrimenti contiene '0'
    dati testo del messaggio (quando il parametro 'media_wa_type' è '0')
    timestamp contiene un timestamp in formato Unix Epoch Time (ms), il valore viene preso dall'orologio del dispositivo
    media_url contiene l'URL del file trasferito (quando il parametro 'media_wa_type' è '1', '2', '3')
    media_mime_type Tipo MIME del file trasferito (quando il parametro 'media_wa_type' è uguale a '1', '2', '3')
    media_wa_type tipo di messaggio: '0' - testo, '1' - file grafico, '2' - file audio, '3' - file video, '4' - scheda contatto, '5' - dati geografici
    dimensione_media dimensione del file trasferito (quando il parametro 'media_wa_type' è '1', '2', '3')
    nome_media nome del file trasferito (quando il parametro 'media_wa_type' è '1', '2', '3')
    media_caption Contiene le parole 'audio', 'video' per i valori corrispondenti del parametro 'media_wa_type' (quando il parametro 'media_wa_type' è '1', '3')
    media_hash Hash codificato base64 del file trasmesso, calcolato utilizzando l'algoritmo HAS-256 (quando il parametro 'media_wa_type' è uguale a '1', '2', '3')
    media_duration durata in secondi per il file multimediale (quando 'media_wa_type' è '1', '2', '3')
    origine ha valore '2' se è un messaggio broadcast, altrimenti contiene '0'
    latitudine geodati: latitudine (quando il parametro 'media_wa_type' è '5')
    longitudine geodati: longitudine (quando il parametro 'media_wa_type' è '5')
    pollice_immagine informazioni sul servizio
    risorsa_remota ID mittente (solo per chat di gruppo)
    ricevuto_timestamp ora di ricezione, contiene un timestamp in formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo (quando il parametro 'key_from_me' ha '0', '-1' o altro valore)
    send_timestamp non utilizzato, di solito ha il valore '-1'
    ricevuta_server_timestamp ora ricevuta dal server centrale, contiene un timestamp in formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo (quando il parametro 'key_from_me' ha '1', '-1' o altro valore
    ricevuta_dispositivo_timestamp ora in cui il messaggio è stato ricevuto da un altro abbonato, contiene un timestamp nel formato Unix Epoch Time (ms), il valore viene preso dall'orologio del dispositivo (quando il parametro 'key_from_me' ha '1', '-1' o un altro valore
    read_device_timestamp ora di apertura (lettura) del messaggio, contiene un timestamp in formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo
    play_device_timestamp ora di riproduzione del messaggio, contiene un timestamp in formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo
    dati_grezzi miniatura del file trasferito (quando il parametro 'media_wa_type' è '1' o '3')
    conteggio_destinatario numero di destinatari (per messaggi broadcast)
    hash_partecipante utilizzato durante la trasmissione di messaggi con geodati
    recitato non usato
    quoted_row_id sconosciuto, solitamente contiene il valore '0'
    menzionato_jid non usato
    multicast_id non usato
    offset spostamento

    Questo elenco di campi non è esaustivo. Per le diverse versioni di WhatsApp alcuni campi potrebbero essere presenti o assenti. Inoltre, potrebbero essere presenti dei campi 'media_enc_hash', 'modifica_versione', 'id_transazione_pagamento' eccetera

  • 'messaggi_miniature'
    Questa tabella contiene informazioni sulle immagini trasferite e sui timestamp. Nella colonna 'timestamp', l'ora è indicata nel formato Unix Epoch Time (ms).
  • 'elenco_chat'
    Questa tabella contiene informazioni sulle chat.

    Aspetto della tabella:

    WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?

Inoltre, quando esamini WhatsApp su un dispositivo mobile con Android, dovresti prestare attenzione ai seguenti file:

  • file 'msgstore.db.cryptXX' (dove XX è una o due cifre da 0 a 12, ad esempio msgstore.db.crypt12). Contiene un backup crittografato dei messaggi WhatsApp (file di backup msgstore.db). File) 'msgstore.db.cryptXX' situato lungo il percorso: '/data/media/0/WhatsApp/Database/' (scheda SD virtuale), '/mnt/sdcard/WhatsApp/Database/ (scheda SD fisica)'.
  • file 'chiave'. Contiene una chiave crittografica. Situato lungo il percorso: '/dati/dati/com.whatsapp/files/'. Utilizzato per decrittografare i backup crittografati di WhatsApp.
  • file 'com.whatsapp_preferences.xml'. Contiene informazioni sul profilo del tuo account WhatsApp. Il file si trova lungo il percorso: '/data/data/com.whatsapp/shared_prefs/'.

    Frammento di contenuto del file

    <?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> (имя владельца аккаунта)
    … 
  • file 'registrazione.RegisterPhone.xml'. Contiene informazioni sul numero di telefono associato all'account WhatsApp. Il file si trova lungo il percorso: '/data/data/com.whatsapp/shared_prefs/'.

    Contenuto del file

    <?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>
  • file 'axolotl.db'. Contiene chiavi crittografiche e altri dati necessari per identificare il proprietario dell'account. Situato lungo il percorso: '/data/data/com.whatsapp/databases/'.
  • file 'chatsettings.db'. Contiene informazioni sulla configurazione dell'applicazione.
  • file 'wa.db'. Contiene i dettagli di contatto. Un database molto interessante (da un aspetto forense) e informativo. Può contenere informazioni dettagliate sui contatti eliminati.

È inoltre necessario prestare attenzione alle seguenti directory:

  • elenco '/data/media/0/WhatsApp/Media/Immagini WhatsApp/'. Contiene i file grafici trasferiti.
  • elenco '/data/media/0/WhatsApp/Media/Note vocali di WhatsApp/'. Contiene messaggi vocali in file in formato .OPUS.
  • elenco '/data/data/com.whatsapp/cache/Immagini del profilo/'. Contiene file grafici: immagini dei contatti.
  • elenco '/data/data/com.whatsapp/files/Avatar/'. Contiene file grafici: immagini in miniatura dei contatti. Questi file hanno l'estensione ".j" ma sono comunque file immagine JPEG (JPG).
  • elenco '/data/data/com.whatsapp/files/Avatar/'. Contiene file grafici: un'immagine e una miniatura dell'immagine impostata come avatar dal proprietario dell'account.
  • elenco '/data/data/com.whatsapp/files/Logs/'. Contiene il registro delle operazioni del programma (file 'whatsapp.log') e le copie di backup dei registri delle operazioni del programma (file con nomi nel formato whatsapp-aaaa-mm-gg.1.log.gz).

File di registro di WhatsApp:

WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
Frammento di diario2017-01-10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] notifica chiamate perse/conteggio init: 0 timestamp: 0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] notifica chiamata persa/aggiornamento annulla vero
2017-01-10 09:37:09.768 LL_I D [1:main] app-init/load-me
2017-01-10 09:37:09.772 LL_I D [1:main] file password mancante o illeggibile
2017-01-10 09:37:09.782 LL_I D [1:main] statistiche Messaggi di testo: 59 inviati, 82 ricevuti / Messaggi multimediali: 1 inviato (0 byte), 0 ricevuti (9850158 byte) / Messaggi offline: 81 ricevuti ( 19522 msec di ritardo medio) / Servizio Messaggi: 116075 byte inviati, 211729 byte ricevuti / Chiamate Voip: 1 chiamate in uscita, 0 chiamate in entrata, 2492 byte inviati, 1530 byte ricevuti / Google Drive: 0 byte inviati, 0 byte ricevuti / Roaming: 1524 byte inviati, 1826 byte ricevuti / Dati totali: 118567 byte inviati, 10063417 byte ricevuti
2017-01-10 09:37:09.785 LL_I D [1:main] media-state-manager/refresh-media-state/writable-media
2017-01-10 09:37:09.806 LL_I D [1:main] app-init/inizializza/timer/stop: 24
2017-01-10 09:37:09.811 LL_I D [1:main] msgstore/checkhealth
2017-01-10 09:37:09.817 LL_I D [1:main] msgstore/checkhealth/journal/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkhealth/back/delete false
2017-01-10 09:37:09.818 LL_I D [1:principale] msgstore/checkdb/data/data/com.whatsapp/databases/msgstore.db
2017-01-10 09:37:09.819 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager-journal 21032 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list axolotl.db 184320 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-wal 436752 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-shm 32768 drw=011
2017-01-10 09:37:09.822 LL_I D [1:main] msgstore/checkdb/list msgstore.db 540672 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-wal 0 drw=011
2017-01-10 09:37:09.823 LL_I D [1:principale] msgstore/checkdb/list msgstore.db-shm 32768 drw=011
2017-01-10 09:37:09.824 LL_I D [1:principale] msgstore/checkdb/list wa.db 69632 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-wal 428512 drw=011
2017-01-10 09:37:09.825 LL_I D [1:principale] msgstore/checkdb/list wa.db-shm 32768 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db 4096 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-wal 70072 drw=011
2017-01-10 09:37:09.827 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-shm 32768 drw=011
2017-01-10 09:37:09.838 LL_I D [1:main] msgstore/checkdb/versione 1
2017-01-10 09:37:09.839 LL_I D [1:principale] msgstore/canquery
2017-01-10 09:37:09.846 LL_I D [1:principale] msgstore/canquery/count 1
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery/timer/stop: 8
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery 517 | tempo impiegato:8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] media-state-manager/refresh-media-state/internal-storage available:1,345,622,016 totale:5,687,922,688

  • elenco '/data/media/0/WhatsApp/Media/WhatsApp Audio/'. Contiene i file audio ricevuti.
  • elenco '/data/media/0/WhatsApp/Media/WhatsApp Audio/Inviato/'. Contiene i file audio inviati.
  • elenco '/data/media/0/WhatsApp/Media/Immagini WhatsApp/'. Contiene i file grafici risultanti.
  • elenco '/data/media/0/WhatsApp/Media/Immagini WhatsApp/Inviate/'. Contiene i file grafici inviati.
  • elenco '/data/media/0/WhatsApp/Media/Video WhatsApp/'. Contiene i file video ricevuti.
  • elenco '/data/media/0/WhatsApp/Media/Video WhatsApp/Inviato/'. Contiene i file video inviati.
  • elenco '/data/media/0/WhatsApp/Media/Foto profilo WhatsApp/'. Contiene file grafici associati al proprietario dell'account WhatsApp.
  • Per risparmiare spazio di memoria sul tuo smartphone Android, alcuni dati di WhatsApp possono essere archiviati su una scheda SD. Sulla scheda SD, nella directory principale, c'è una directory 'WhatsApp', dove è possibile trovare i seguenti elementi di questo programma:

    WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?

  • elenco '.Condividere' ('/mnt/sdcard/WhatsApp/.Share/'). Contiene copie di file che sono stati condivisi con altri utenti WhatsApp.
  • elenco '.spazzatura' ('/mnt/sdcard/WhatsApp/.trash/'). Contiene file eliminati.
  • elenco 'Banche dati' ('/mnt/sdcard/WhatsApp/Database/'). Contiene backup crittografati. Possono essere decrittografati se il file è presente 'chiave', estratto dalla memoria del dispositivo analizzato.

    File situati in una sottodirectory 'Banche dati':

    WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?

  • elenco 'Media' ('/mnt/sdcard/WhatsApp/Media/'). Contiene sottodirectory 'Sfondo', "Audio WhatsApp", "Immagini WhatsApp", "Foto del profilo WhatsApp", "Video WhatsApp", "Note vocali di WhatsApp", che contengono file multimediali ricevuti e trasmessi (file grafici, file video, messaggi vocali, foto associate al profilo del titolare dell'account WhatsApp, sfondi).
  • elenco 'Foto del profilo' ('/mnt/sdcard/WhatsApp/Immagini del profilo/'). Contiene file grafici associati al profilo del proprietario dell'account WhatsApp.
  • A volte potrebbe essere presente una directory sulla scheda SD 'File' ('/mnt/sdcard/WhatsApp/File/'). Questa directory contiene file che memorizzano le impostazioni del programma e le preferenze dell'utente.

Funzionalità di archiviazione dei dati in alcuni modelli di dispositivi mobili

Alcuni modelli di dispositivi mobili con sistema operativo Android potrebbero archiviare gli artefatti di WhatsApp in una posizione diversa. Ciò è dovuto alle modifiche nello spazio di archiviazione dei dati dell'applicazione da parte del software di sistema del dispositivo mobile. Ad esempio, i dispositivi mobili Xiaomi dispongono di una funzione per creare un secondo spazio di lavoro (“SecondSpace”). Quando questa funzione è attivata, la posizione dei dati cambia. Pertanto, se in un normale dispositivo mobile con sistema operativo Android, i dati utente vengono archiviati nella directory '/dati/utente/0/' (che è un riferimento al solito '/dati/dati/'), quindi nella seconda area di lavoro i dati dell'applicazione vengono archiviati nella directory '/dati/utente/10/'. Cioè, usando l'esempio del percorso del file 'wa.db':

  • in un normale smartphone con sistema operativo Android: /data/utente/0/com.whatsapp/databases/wa.db' (che è equivalente '/data/data/com.whatsapp/databases/wa.db');
  • nella seconda area di lavoro dello smartphone Xiaomi: '/data/utente/10/com.whatsapp/databases/wa.db'.

Artefatti di WhatsApp nel dispositivo iOS

A differenza del sistema operativo Android, in iOS i dati dell'applicazione WhatsApp vengono trasferiti su una copia di backup (backup di iTunes). Pertanto, l'estrazione dei dati da questa applicazione non richiede l'estrazione del file system o la creazione di un dump della memoria fisica del dispositivo analizzato. La maggior parte delle informazioni rilevanti sono contenute nel database 'ChatStorage.sqlite', che si trova lungo il sentiero: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/' (in alcuni programmi questo percorso appare come 'AppDomainGroup-group.net.whatsapp.WhatsApp.shared').

Struttura 'ChatStorage.sqlite':

WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
Le tabelle più informative nel database "ChatStorage.sqlite" sono 'ZWAMESSAGGIO' и 'ZWAMEDIAITEM'.

Aspetto della tabella 'ZWAMESSAGGIO':

WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
Struttura della tabella 'ZWAMESSAGE'

Nome del campo Valore
Z_PK numero di sequenza del record (nella tabella SQL)
Z_ENT identificatore della tabella, ha il valore '9'
Z_OPT sconosciuto, solitamente contiene valori da '1' a '6'
ZCHILDMESSAGESDELIVEREDCOUNT sconosciuto, solitamente contiene il valore '0'
ZCHILDMESSAGES PLAYEDCOUNT sconosciuto, solitamente contiene il valore '0'
ZCHILDMESSAGESREADCOUNT sconosciuto, solitamente contiene il valore '0'
ZDATAITEMVERSION sconosciuto, solitamente contiene il valore '3', probabilmente un indicatore di messaggio di testo
ZDOCID sconosciuto
ZENCRETRYCOUNT sconosciuto, solitamente contiene il valore '0'
ZFILTEREDRECIPIENTCOUNT sconosciuto, solitamente contiene i valori '0', '2', '256'
ZISFROMME direzione del messaggio: '0' – in entrata, '1' – in uscita
ZMESSAGEERRORSTATUS stato di trasmissione del messaggio. Se il messaggio viene inviato/ricevuto, allora ha il valore '0'
TIPOMESSAGGIOZ tipo di messaggio trasmesso
ZORD sconosciuto
STATO ZSPOTLIGHT sconosciuto
ZSTARRED sconosciuto, non utilizzato
ZCHATSESSION sconosciuto
MEMBRO DEL GRUPPO Z sconosciuto, non utilizzato
ZLASTSESSION sconosciuto
ZMEDIAITEM sconosciuto
ZMESSAGGIOINFO sconosciuto
ZPARENTMESSAGE sconosciuto, non utilizzato
ZMESSAGEDATE timestamp nel formato OS X Epoch Time
ZSENTDATE l'ora in cui il messaggio è stato inviato nel formato OS X Epoch Time
ZFROMJID ID mittente WhatsApp
ZMEDIASECTIONID contiene l'anno e il mese in cui è stato inviato il file multimediale
ZPHASH sconosciuto, non utilizzato
ZPUSHPAME nome del contatto che ha inviato il file multimediale in formato UTF-8
ZSTANZID identificatore univoco del messaggio
TESTOZ Messaggio di testo
ZTOJID ID WhatsApp del destinatario
COMPENSARE spostamento

Aspetto della tabella 'ZWAMEDIAITEM':

WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
Struttura della tabella 'ZWAMEDIAITEM'

Nome del campo Valore
Z_PK numero di sequenza del record (nella tabella SQL)
Z_ENT identificatore della tabella, ha il valore '8'
Z_OPT sconosciuto, solitamente contiene valori da '1' a '3'.
STATO ZCLOUD contiene il valore '4' se il file è caricato.
ZFILESIZE contiene la lunghezza del file (in byte) per i file scaricati
ZMEDIAORIGINE sconosciuto, solitamente ha il valore '0'
DURATA DEL FILMATO durata del file multimediale, per i file pdf può contenere il numero di pagine del documento
ZMESSAGGIO contiene un numero di serie (il numero è diverso da quello indicato nella colonna 'Z_PK')
ZASPETRAZIONE proporzioni, non utilizzato, solitamente impostato su '0'
PRECISIONE sconosciuto, solitamente ha il valore '0'
ZLATTITUDINE larghezza in pixel
ZLONTITUDINE altezza in pixel
ZMEDIAURLDATE timestamp nel formato OS X Epoch Time
ZAUTORNOME autore (per i documenti può contenere il nome del file)
ZNOMECOLLEZIONE non usato
ZMEDIALOCALPATH nome del file (compreso il percorso) nel file system del dispositivo
ZMEDIAURL L'URL in cui si trovava il file multimediale. Se un file veniva trasferito da un abbonato a un altro, veniva crittografato e la sua estensione verrà indicata come estensione del file trasferito - .enc
ZTHUMBNAILLOCALPATH percorso della miniatura del file nel file system del dispositivo
ZTITOLO intestazione del file
NOMECARTAZVC hash del file multimediale; quando si trasferisce il file a un gruppo, può contenere l'identificatore del mittente
ZVCARDSTRING contiene informazioni sul tipo di file da trasferire (ad esempio, immagine/jpeg); quando si trasferisce un file a un gruppo, può contenere l'identificatore del destinatario
ZXMPPTUMBPATH percorso della miniatura del file nel file system del dispositivo
ZMEDIAKEY sconosciuto, probabilmente contiene la chiave per decrittografare il file crittografato.
ZMETADATI metadati del messaggio trasmesso
Offset spostamento

Altre tabelle di database interessanti 'ChatStorage.sqlite' sono:

  • 'ZWAPROFILEPUSHNAME'. Abbina l'ID WhatsApp al nome del contatto;
  • 'ZWAPROFILEPICTUREITEM'. Abbina l'ID WhatsApp all'avatar del contatto;
  • 'Z_PRIMARYKEY'. La tabella contiene informazioni generali su questo database, come il numero totale di messaggi archiviati, il numero totale di chat, ecc.

Inoltre, quando esamini WhatsApp su un dispositivo mobile con iOS, dovresti prestare attenzione ai seguenti file:

  • file 'BackedUpKeyValue.sqlite'. Contiene chiavi crittografiche e altri dati necessari per identificare il proprietario dell'account. Situato lungo il percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • file 'ContattiV2.sqlite'. Contiene informazioni sui contatti dell'utente, come nome completo, numero di telefono, stato del contatto (in formato testo), ID WhatsApp, ecc. Situato lungo il percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • file 'versione_consumatore'. Contiene il numero di versione dell'applicazione WhatsApp installata. Situato lungo il percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • file 'current_wallpaper.jpg'. Contiene l'attuale sfondo di WhatsApp. Situato lungo il percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Le versioni precedenti dell'applicazione utilizzano il file 'sfondo', che si trova lungo il sentiero: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'.
  • file 'contattibloccati.dat'. Contiene informazioni sui contatti bloccati. Situato lungo il percorso: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • file 'pw.dat'. Contiene una password crittografata. Situato lungo il percorso: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/'.
  • file 'net.whatsapp.WhatsApp.plist' (o file 'group.net.whatsapp.WhatsApp.shared.plist'). Contiene informazioni sul profilo del tuo account WhatsApp. Il file si trova lungo il percorso: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/'.

Contenuto del file 'group.net.whatsapp.WhatsApp.shared.plist' WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
È inoltre necessario prestare attenzione alle seguenti directory:

  • elenco '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/'. Contiene miniature di contatti, gruppi (file con estensione .pollice), avatar di contatto, avatar del proprietario dell'account WhatsApp (file 'Foto.jpg').
  • elenco '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/'. Contiene file multimediali e le relative miniature
  • elenco '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'. Contiene il registro delle operazioni del programma (file 'chiamate.log') e copie di backup dei registri delle operazioni del programma (file 'chiamate.backup.log').
  • elenco '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/'. Contiene adesivi (file nel formato '.webp').
  • elenco '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/'. Contiene i registri delle operazioni del programma.

Artefatti di WhatsApp su Windows

Gli artefatti di WhatsApp su Windows possono essere trovati in diversi posti. Innanzitutto si tratta di directory contenenti file di programmi eseguibili e ausiliari (per Windows 8/10):

  • "C:Programmi (x86)WhatsApp"
  • 'C:Utenti%Profilo utente%AppDataLocalWhatsApp'
  • "File di programma C:Users%Profilo utente% AppDataLocalVirtualStore (x86)WhatsApp"

Nel catalogo 'C:Utenti%Profilo utente%AppDataLocalWhatsApp' si trova il file di registro 'SquirrelSetup.log', che contiene informazioni sulla verifica degli aggiornamenti e sull'installazione del programma.

Nel catalogo 'C:Utenti%Profilo utente%AppDataRoamingWhatsApp' Sono presenti diverse sottodirectory:

WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
file 'processo-principale.log' contiene informazioni sul funzionamento del programma WhatsApp.

Sottodirectory 'banche dati' contiene un file 'Database.db', ma questo file non contiene alcuna informazione su chat o contatti.

I più interessanti dal punto di vista forense sono i file che si trovano nella directory 'Cassa'. Questi sono fondamentalmente file denominati 'F_*******' (dove * è un numero da 0 a 9) contenente file e documenti multimediali crittografati, ma tra questi sono presenti anche file non crittografati. Di particolare interesse sono i file 'dati_0', 'dati_1', 'dati_2', 'dati_3', situato nella stessa sottodirectory. File 'dati_0', 'dati_1', 'dati_3' contenere collegamenti esterni a file e documenti multimediali crittografati trasmessi.

Esempio di informazioni contenute nel file 'data_1'WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
Anche file 'dati_3' può contenere file grafici.

file 'dati_2' contiene avatar di contatto (può essere ripristinato effettuando una ricerca per intestazioni di file).

Avatar contenuti nel file 'dati_2':

WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
Pertanto, le chat stesse non possono essere trovate nella memoria del computer, ma puoi trovare:

  • file multimediali;
  • documenti trasmessi tramite WhatsApp;
  • informazioni sui contatti del proprietario dell'account.

Artefatti di WhatsApp su MacOS

In MacOS puoi trovare tipi di artefatti WhatsApp simili a quelli presenti nel sistema operativo Windows.

I file del programma si trovano nelle seguenti directory:

  • 'C:ApplicazioniWhatsApp.app'
  • "C:Applicazioni._WhatsApp.app"
  • 'C:Utenti%Profilo utente%Preferenze libreria'
  • 'C:Utenti%Profilo utente%LibreriaLogsWhatsApp'
  • 'C:Users%Profilo utente%LibrarySaved Application StateWhatsApp.savedState'
  • 'C:Utenti%Profilo utente%Script applicazione libreria'
  • 'C:Utenti%Profilo utente%LibraryApplication SupportCloudDocs'
  • 'C:Utenti%Profilo utente%LibraryApplication SupportWhatsApp.ShipIt'
  • 'C:Utenti%Profilo utente%LibraryContainerscom.rockysandstudio.app-for-whatsapp'
  • "C:Utenti%Profilo utente% Libreria Documenti mobili <variabile testo> Account WhatsApp"
    Questa directory contiene sottodirectory i cui nomi sono numeri di telefono associati al proprietario dell'account WhatsApp.
  • 'C:Utenti%Profilo utente%LibraryCachesWhatsApp.ShipIt'
    Questa directory contiene informazioni sull'installazione del programma.
  • 'C:Utenti%Profilo utente%ImmaginiFototeca.photolibraryMasters', 'C:Utenti%Profilo utente%ImmaginiLibreria fotografica.photolibraryThumbnails'
    Queste directory contengono file di servizio del programma, comprese foto e miniature dei contatti WhatsApp.
  • 'C:Utenti%Profilo utente%LibreriaCachesWhatsApp'
    Questa directory contiene diversi database SQLite utilizzati per la memorizzazione nella cache dei dati.
  • 'C:Utenti%Profilo utente%LibreriaApplicazioneSupportoWhatsApp'
    Questa directory contiene diverse sottodirectory:

    WhatsApp nel palmo della tua mano: dove e come trovare reperti forensi?
    Nel catalogo 'C:Utenti%Profilo utente%LibreriaSupporto applicazioniWhatsAppCache' ci sono file 'dati_0', 'dati_1', 'dati_2', 'dati_3' e file con nomi 'F_*******' (dove * è un numero da 0 a 9). Per informazioni sulle informazioni contenute in questi file, consulta Artifacts di WhatsApp su Windows.

    Nel catalogo 'C:Utenti%Profilo utente%LibraryApplication SupportWhatsAppIndexedDB' può contenere file multimediali (i file non hanno estensioni).

    file 'processo-principale.log' contiene informazioni sul funzionamento del programma WhatsApp.

fonti

  1. Analisi forense di WhatsApp Messenger su smartphone Android, a cura di Cosimo Anglano, 2014.
  2. Whatsapp Forensics: Esplora il sistema e i dati base delle applicazioni Android e iOS di Ahmad Pratama, 2014.

Nei seguenti articoli di questa serie:

Decrittografia dei database WhatsApp crittografatiUn articolo che fornirà informazioni su come viene generata la chiave di crittografia di WhatsApp ed esempi pratici che mostrano come decrittografare i database crittografati di questa applicazione.
Estrazione dei dati di WhatsApp dall'archivio cloudUn articolo in cui ti diremo quali dati di WhatsApp sono archiviati nei cloud e descriveremo i metodi per recuperare questi dati dagli archivi cloud.
Estrazione dati WhatsApp: esempi praticiUn articolo che descriverà passo passo quali programmi e come estrarre i dati WhatsApp dai vari dispositivi.

Fonte: habr.com

Aggiungi un commento