WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?

WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?

Doriți să știți ce tipuri de artefacte criminalistice WhatsApp există în diferite sisteme de operare și unde anume pot fi găsite — atunci acest articol este pentru dumneavoastră. În această lucrare, specialistul laboratorului de criminalistică Group-IB Igor Mihailov deschide o serie de publicații despre examinarea criminalistică a WhatsApp și despre ce informații pot fi obținute în urma analizei dispozitivului.

Să subliniem de la început că în diferite sisteme de operare sunt stocate diferite tipuri de artefacte WhatsApp, iar faptul că dintr-un dispozitiv investigatorul poate extrage anumite tipuri de date WhatsApp, nu înseamnă că aceste tipuri de date pot fi extrase și din alt dispozitiv. De exemplu, dacă se extrage un unitate centrală care funcționează pe sistemul de operare Windows, atunci este probabil ca pe aceste discuri să nu fie găsite chat-urile WhatsApp (excepția o constituie copiile de rezervă ale dispozitivelor iOS, care pot fi găsite pe aceste stocări). În cazul extragerii laptopurilor și a dispozitivelor mobile, vor exista caracteristici proprii. Să discutăm despre aceasta în detaliu.

Artefactele WhatsApp pe dispozitivele Android

Pentru a extrage artefactele WhatsApp dintr-un dispozitiv care rulează sistemul de operare Android, investigatorul trebuie să aibă drepturi de superutilizator ('root') pe dispozitivul examinat sau să aibă capacitatea de a extrage în alt mod un dump fizic al memoriei dispozitivului sau a sistemului său de fișiere (de exemplu, utilizând vulnerabilitățile software ale unui dispozitiv mobil specific).

Fișierele aplicației sunt amplasate în memoria telefonului într-o secțiune în care se păstrează datele utilizatorului. De regulă, această secțiune poartă numele 'userdata'. Subdirectoarele și fișierele aplicației sunt amplasate la calea: '/data/data/com.whatsapp/'.

WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
Fișierele principale care conțin artefacte criminalistice WhatsApp în sistemul de operare Android sunt bazele de date 'wa.db' și 'msgstore.db'.

În baza de date 'wa.db' se află lista completă a contactelor utilizatorului WhatsApp, inclusiv numărul de telefon, numele afișat, timpii și orice alte informații furnizate în timpul înregistrării în WhatsApp. Fișierul 'wa.db' se află la calea: '/data/data/com.whatsapp/databases/' și are următoarea structură:

WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
Cele mai interesante tabele din baza de date 'wa.db' pentru investigator sunt:

  • 'wa_contacts'
    Această tabelă conține informații despre contacte: ID-ul contactului în WhatsApp, informații despre status, numele de utilizator afișat, marcajele temporale etc.

    Aspectul tabelului:

    WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
    Structura tabelului

    Numele câmpuluiValoare
    _idnumărul secvențial al înregistrării (în tabela SQL)
    jidWhatsApp ID al contactului, înregistrat în formatul @s.whatsapp.net
    is_whatsapp_userconține '1' dacă contactul corespunde unui utilizator real WhatsApp, '0' în caz contrar
    statusconține textul afișat în statusul contactului
    status_timestampconține un marcaj temporal în format Unix Epoch Time (ms)
    numbernumărul de telefon asociat cu contactul
    raw_contact_idnumărul secvențial al contactului
    display_namenumele afișat al contactului
    phone_typetipul de telefon
    phone_labeletichetă asociată cu numărul de contact
    unseen_msg_countnumărul mesajelor trimise de contact dar ne citite de către receptor
    photo_tsconține un marcaj temporal în format Unix Epoch Time
    thumb_tsconține un marcaj temporal în format Unix Epoch Time
    photo_id_timestampconține un marcaj temporal în format Unix Epoch Time (ms)
    given_namevaloarea câmpului coincide cu 'display_name' pentru fiecare contact
    wa_namenumele contactului în WhatsApp (numele afișat în profilul contactului)
    sort_namenumele contactului folosit în operațiunile de sortare
    nicknamepseudosubiectul contactului în WhatsApp (numele de utilizator din profilul contactului)
    companycompania (numele firmei afișat în profilul contactului)
    titlulștire (doamnă/domn; știrea setată în profilul contactului)
    offsetoffset
  • 'sqlite_sequence'
    Această tabelă conține informații despre numărul de contacte;
  • 'android_metadata'
    Această tabelă conține informații despre localizarea lingvistică a WhatsApp.

În baza de date 'msgstore.db' conține informații despre mesajele transmise, cum ar fi numărul de contact, textul mesajului, statusul mesajului, marcajele temporale, detalii despre fișierele trimise incluse în mesaje etc. Fișierul 'msgstore.db' se află la calea: '/data/data/com.whatsapp/databases/' și are următoarea structură:

WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
Cele mai interesante tabele din fișier 'msgstore.db' pentru investigator sunt:

  • 'sqlite_sequence'
    Această tabelă conține informații generale despre această bază de date, cum ar fi numărul total de mesaje stocate, numărul total de conversații etc.

    Aspectul tabelului:

    WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?

  • 'message_fts_content'
    Conține textul mesajelor transmise.

    Aspectul tabelului:

    WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?

  • 'messages'
    Această tabelă conține informații precum numărul de contact, textul mesajului, statusul mesajului, marcajele temporale, detalii despre fișierele trimise incluse în mesaje.

    Aspectul tabelului:

    WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
    Structura tabelului

    Numele câmpuluiValoare
    _idnumărul secvențial al înregistrării (în tabela SQL)
    key_remote_jidWhatsApp ID al partenerului de comunicare
    key_from_medirecția mesajului: '0' – venitor, '1' — extern
    key_ididentificator unic al mesajului
    statusstarea mesajului: ‘0’ – livrat, ‘4’ – în așteptare server, ‘5’ – primit la destinație, ‘6’ – mesaj de confirmare, ‘13’ – mesaj deschis de către destinatar (citit)
    need_pushare valoarea ‘2’, dacă este un mesaj de tip broadcast, altfel conține ‘0’
    datatextul mesajului (când parametrul ‘media_wa_type’ este ‘0’)
    timestampconține un timestamp în format Unix Epoch Time (ms), valoarea este preluată de pe ceasul dispozitivului
    media_urlconține URL-ul fișierului transmis (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’)
    media_mime_typetipul MIME al fișierului transmis (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’)
    media_wa_typetipul mesajului: ‘0’ – text, ‘1’ – fișier grafic, ‘2’ – fișier audio, ‘3’ – fișier video, ‘4’ – carte de contact, ‘5’ – date geografice
    media_sizedimensiunea fișierului transmis (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’)
    media_namenumele fișierului transmis (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’)
    media_captionConține cuvintele ‘audio’, ‘video’ pentru valorile corespunzătoare ale parametrului ‘media_wa_type’ (când parametrul ‘media_wa_type’ este ‘1’, ‘3’)
    media_hashhash-ul fișierului transmis, codificat în baza64, calculat conform algoritmului HAS-256 (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’)
    media_durationdurata în secunde pentru fișierul media (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’)
    originare valoarea ‘2’, dacă este un mesaj de tip broadcast, altfel conține ‘0’
    latitudedate geografice: latitudine (când parametrul ‘media_wa_type’ este ‘5’)
    longitudedate geografice: longitudine (când parametrul ‘media_wa_type’ este ‘5’)
    thumb_imageinformații de serviciu
    remote_recourceID-ul expeditorului (doar pentru chat-uri de grup)
    received_timestamptimpul de primire, conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată de pe ceasul dispozitivului (când parametrul ‘key_from_me’ are valori ‘0’, ‘-1’ sau altceva)
    send_timestampnu este utilizat, de obicei are valoarea ‘-1’
    receipt_server_timestamptimpul de primire de către serverul central serverul, conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată de pe ceasul dispozitivului (când parametrul ‘key_from_me’ are valori ‘1’, ‘-1’ sau altceva
    receipt_device_timestamptimpul de primire a mesajului de către alt abonat, conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată de pe ceasul dispozitivului (când parametrul ‘key_from_me’ are valori ‘1’, ‘-1’ sau altceva
    read_device_timestamptimpul de deschidere (citire) a mesajului, conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată din ceasul dispozitivului
    played_device_timestamptimpul de redare a mesajului, conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată din ceasul dispozitivului
    raw_dataminiatura fișierului transmis (când parametrul ‘media_wa_type’ este ‘1’ sau ‘3’)
    recipient_countnumărul de destinatari (pentru mesaje de difuzare)
    participant_hashfolosit la transmiterea mesajelor cu date geografice
    starrednu este utilizat
    quoted_row_idnecunoscut, de obicei conține valoarea ‘0’
    mentioned_jidsnu este utilizat
    multicast_idnu este utilizat
    offsetoffset

    Această listă de câmpuri nu este exhaustivă. Pentru diferite versiuni WhatsApp, unele câmpuri pot fi prezente sau absente. De asemenea, pot fi prezente câmpuri suplimentare ‘media_enc_hash’, ‘edit_version’, ‘payment_transaction_id’ etc.

  • ‘messages_thumbnails’
    Această tabelă conține informații despre imaginile transmise și timestamp-urile. În coloana ‘timestamp’ timpul este specificat în format Unix Epoch Time (ms).
  • ‘chat_list’
    Această tabelă conține informații despre chaturi.

    Aspectul tabelului:

    WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?

De asemenea, în timpul analizei WhatsApp pe un dispozitiv mobil Android, trebuie să se acorde atenție următoarelor fișiere:

  • Fișier ‘msgstore.db.cryptXX’ (unde XX este o sau două cifre de la 0 la 12, de exemplu, msgstore.db.crypt12). Conține o copie de rezervă criptată a mesajelor WhatsApp (rezerva fișierului msgstore.db). Fișierul (sau fișierele) ‘msgstore.db.cryptXX’ se află la calea: ‘/data/media/0/WhatsApp/Databases/’ (card SD virtual), ‘/mnt/sdcard/WhatsApp/Databases/ (card SD fizic)’.
  • Fișier ‘key’. Conține cheia criptografică. Se află la calea: ‘/data/data/com.whatsapp/files/’. Este folosit pentru decriptarea copiilor de rezervă criptate WhatsApp.
  • Fișier ‘com.whatsapp_preferences.xml’. Conține informații despre profilul contului WhatsApp. Fișierul se află la calea: ‘/data/data/com.whatsapp/shared_prefs/’.

    Fragmentul conținutului fișierului

    …
    9123456789 (numărul de telefon asociat cu contul WhatsApp)
    …
    2.17.395 (versiunea WhatsApp)
    …
    Hey there! I am using WhatsApp. (mesajul afișat în statusul contului)
    …
    Alex (numele proprietarului contului)
    … 
  • Fișier ‘registration.RegisterPhone.xml’. Conține informații despre numărul de telefon asociat cu contul WhatsApp. Fișierul se află la calea: ‘/data/data/com.whatsapp/shared_prefs/’.

    Conținutul fișierului

    
    9123456789
    
    
    912 345-67-89
    
    7
    7
    
  • Fișier 'axolotl.db'. Conține chei criptografice și alte date necesare pentru identificarea proprietarului contului. Se află la calea: '/data/data/com.whatsapp/databases/'.
  • Fișier 'chatsettings.db'. Conține informații despre configurația aplicației.
  • Fișier 'wa.db'. Conține detaliile contactelor. O bază de date foarte interesantă (din perspectiva criminalistică) și informativă. Aici pot fi găsite informații detaliate despre contactele șterse.

De asemenea, trebuie să avem în vedere următoarele directoare:

  • Folderul '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Conține fișiere grafice transferate.
  • Folderul '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Conține mesaje vocale în fișiere de format .OPUS.
  • Folderul '/data/data/com.whatsapp/cache/Profile Pictures/'. Conține fișiere grafice – imagini de profil.
  • Folderul '/data/data/com.whatsapp/files/Avatars/'. Conține fișiere grafice – miniaturi ale imaginilor de profil. Aceste fișiere au extensia '.j', însă, sunt fișiere grafice de format JPEG (JPG).
  • Folderul '/data/data/com.whatsapp/files/Avatars/'. Conține fișiere grafice – imaginea și miniatura imaginii stabilite ca avatar de către proprietarul contului.
  • Folderul '/data/data/com.whatsapp/files/Logs/'. Conține jurnalul de funcționare al programului (fișierul 'whatsapp.log') și copii de rezervă ale jurnalei de funcționare (fișiere cu nume de format whatsapp-gggg-ll-zz.1.log.gz).

Fișierele jurnalelor WhatsApp:

WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
Fragment de jurnal2017-01-10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] missedcallnotification/init count:0 timestamp:0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] missedcallnotification/update cancel true
2017-01-10 09:37:09.768 LL_I D [1:main] app-init/load-me
2017-01-10 09:37:09.772 LL_I D [1:main] password file missing or unreadable
2017-01-10 09:37:09.782 LL_I D [1:main] statistics Text Messages: 59 sent, 82 received / Media Messages: 1 sent (0 bytes), 0 received (9850158 bytes) / Offline Messages: 81 received (19522 msec average delay) / Message Service: 116075 bytes sent, 211729 bytes received / Voip Calls: 1 outgoing calls, 0 incoming calls, 2492 bytes sent, 1530 bytes received / Google Drive: 0 bytes sent, 0 bytes received / Roaming: 1524 bytes sent, 1826 bytes received / Total Data: 118567 bytes sent, 10063417 bytes received
2017-01-10 09:37:09.785 LL_I D [1:main] media-state-manager/refresh-media-state/writable-media
2017-01-10 09:37:09.806 LL_I D [1:main] app-init/initialize/timer/stop: 24
2017-01-10 09:37:09.811 LL_I D [1:main] msgstore/checkhealth
2017-01-10 09:37:09.817 LL_I D [1:main] msgstore/checkhealth/journal/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkhealth/back/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkdb/data/data/com.whatsapp/databases/msgstore.db
2017-01-10 09:37:09.819 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager-journal 21032 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list axolotl.db 184320 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-wal 436752 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-shm 32768 drw=011
2017-01-10 09:37:09.822 LL_I D [1:main] msgstore/checkdb/list msgstore.db 540672 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-wal 0 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-shm 32768 drw=011
2017-01-10 09:37:09.824 LL_I D [1:main] msgstore/checkdb/list wa.db 69632 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-wal 428512 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-shm 32768 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db 4096 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-wal 70072 drw=011
2017-01-10 09:37:09.827 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-shm 32768 drw=011
2017-01-10 09:37:09.838 LL_I D [1:main] msgstore/checkdb/version 1
2017-01-10 09:37:09.839 LL_I D [1:main] msgstore/canquery
2017-01-10 09:37:09.846 LL_I D [1:main] msgstore/canquery/count 1
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery/timer/stop: 8
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery 517 | time spent:8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] media-state-manager/refresh-media-state/internal-storage available:1,345,622,016 total:5,687,922,688

  • Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/’. Conține fișiere audio primite.
  • Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/’. Conține fișiere audio trimise.
  • Folderul '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Conține fișiere grafice primite.
  • Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/’. Conține fișiere grafice trimise.
  • Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Video/’. Conține fișiere video primite.
  • Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/’. Conține fișiere video trimise.
  • Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/’. Conține fișiere grafice asociate cu proprietarul contului WhatsApp.
  • Pentru economisirea spațiului pe smartphone-ul Android, o parte din datele WhatsApp pot fi stocate pe cardul SD. Pe cardul SD, în directorul principal, se află directorul ‘WhatsApp’, unde pot fi găsite următoarele artefacte ale programului:

    WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?

  • Folderul ‘.Share’ (‘/mnt/sdcard/WhatsApp/.Share/’). Conține copii ale fișierelor care au fost trimise altor utilizatori WhatsApp.
  • Folderul ‘.trash’ (‘/mnt/sdcard/WhatsApp/.trash/’). Conține fișiere șterse.
  • Folderul ‘Databases’ (‘/mnt/sdcard/WhatsApp/Databases/’). Conține copii de rezervă criptate. Acestea pot fi decriptate în prezența fișierului ‘key’, extras din memoria dispozitivului analizat.

    Fișierele aflate în subdirector ‘Databases’:

    WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?

  • Folderul ‘Media’ (‘/mnt/sdcard/WhatsApp/Media/’). Conține subdirectoare ‘WallPaper’, ‘WhatsApp Audio’, ‘WhatsApp Images’, ‘WhatsApp Profile Photos’, ‘WhatsApp Video’, ‘WhatsApp Voice Notes’, în care se află fișierele multimedia primite și transmise (fișiere grafice, fișiere video, mesaje vocale, fotografii asociate cu profilul proprietarului contului WhatsApp, fundaluri).
  • Folderul ‘Profile Pictures’ (‘/mnt/sdcard/WhatsApp/Profile Pictures/’). Conține fișiere grafice asociate cu profilul proprietarului contului WhatsApp.
  • Uneori, pe SD-card poate exista un director ‘files’ (‘/mnt/sdcard/WhatsApp/Files/’). În acest director se află fișiere în care sunt stocate setările aplicației și preferințele utilizatorului.

Particularitățile stocării datelor în unele modele de dispozitive mobile

În unele modele de dispozitive mobile cu sistem de operare Android, artefactele WhatsApp pot fi stocate în alt loc. Aceasta se datorează modificării spațiului de stocare a datelor aplicațiilor de către software-ul sistemic al dispozitivului mobil. De exemplu, pe dispozitivele mobile Xiaomi există o funcție de creare a unui al doilea spațiu de lucru („SecondSpace”). Activarea acestei funcții modifică locația datelor. Așadar, dacă într-un dispozitiv mobil obișnuit cu sistem de operare Android datele utilizatorului sunt stocate în directorul ‘/data/user/0/’ (ce reprezintă o legătură către obişnuitele ‘/data/data/’), atunci în al doilea spațiu de lucru datele aplicațiilor sunt stocate în directorul ‘/data/user/10/’. Adică, de exemplu, locația fișierului 'wa.db':

  • într-un smartphone obișnuit cu sistem de operare Android: /data/user/0/com.whatsapp/databases/wa.db’ (ce este echivalent cu ‘/data/data/com.whatsapp/databases/wa.db’);
  • în al doilea spațiu de lucru al smartphone-ului Xiaomi: ‘/data/user/10/com.whatsapp/databases/wa.db’.

Artefactele WhatsApp pe un dispozitiv iOS

Spre deosebire de sistemul de operare Android, în iOS datele aplicației WhatsApp sunt transmise în backup (backup iTunes). Prin urmare, extragerea datelor acestei aplicații nu necesită extragerea sistemului de fișiere sau crearea unui dump fizic al memoriei dispozitivului studiat. Cea mai mare parte a informațiilor semnificative se află în baza de date ‘ChatStorage.sqlite’, care se află pe calea: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/’ (în unele programe, acest drum este afișat ca ‘AppDomainGroup-group.net.whatsapp.WhatsApp.shared’).

Structura ‘ChatStorage.sqlite’:

WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
Cele mai informative în baza de date ‘ChatStorage.sqlite’ sunt tabelele ‘ZWAMESSAGE’ și ‘ZWAMEDIAITEM’.

Aspectul tabelului ‘ZWAMESSAGE’:

WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
Structura tabelului 'ZWAMESSAGE'

Numele câmpuluiValoare
Z_PKnumărul secvențial al înregistrării (în tabela SQL)
Z_ENTidentificatorul tabelului, are valoarea '9'
Z_OPTnecunoscut, de obicei conține valori între '1' și '6'
ZCHILDMESSAGESDELIVEREDCOUNTnecunoscut, de obicei conține valoarea ‘0’
ZCHILDMESSAGESPLAYEDCOUNTnecunoscut, de obicei conține valoarea ‘0’
ZCHILDMESSAGESREADCOUNTnecunoscut, de obicei conține valoarea ‘0’
ZDATAITEMVERSIONnecunoscut, de obicei conține valoarea '3', probabil că este un indicator al mesajului text
ZDOCIDnecunoscut
ZENCRETRYCOUNTnecunoscut, de obicei conține valoarea ‘0’
ZFILTEREDRECIPIENTCOUNTnecunoscut, de obicei conține valorile '0', '2', '256'
ZISFROMMEdirecția mesajului: '0' – venitor, '1' — extern
ZMESSAGEERRORSTATUSstarea transmiterii mesajului. Dacă mesajul a fost trimis / primit, are valoarea '0'
ZMESSAGETYPEtipul mesajului transmis
ZSORTnecunoscut
ZSPOTLIGHSTATUSnecunoscut
ZSTARREDnecunoscut, nu este utilizat
ZCHATSESSIONnecunoscut
ZGROUPMEMBERnecunoscut, nu este utilizat
ZLASTSESSIONnecunoscut
ZMEDIAITEMnecunoscut
ZMESSAGEINFOnecunoscut
ZPARENTMESSAGEnecunoscut, nu este utilizat
ZMESSAGEDATEtimpul în format OS X Epoch Time
ZSENTDATEtimpul trimiterii mesajului în format OS X Epoch Time
ZFROMJIDWhatsApp ID al expeditorului
ZMEDIASECTIONIDconține anul și luna trimiterii fișierului media
ZPHASHnecunoscut, nu este utilizat
ZPUSHPAMEnumele contactului care a trimis fișierul media în format UTF-8
ZSTANZIDidentificator unic al mesajului
ZTEXTtextul mesajului
ZTOJIDWhatsApp ID al destinatarului
OFFSEToffset

Aspectul tabelului ‘ZWAMEDIAITEM’:

WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
Structura tabelului 'ZWAMEDIAITEM'

Numele câmpuluiValoare
Z_PKnumărul secvențial al înregistrării (în tabela SQL)
Z_ENTidentificatorul tabelului, are valoarea '8'
Z_OPTnecunoscut, de obicei conține valorile între '1' și '3'.
ZCLOUDSTATUSconține valoarea '4' dacă fișierul a fost încărcat.
ZFILESIZEconține dimensiunea fișierului (în octeți) pentru fișierele încărcate
ZMEDIAORIGINnecunoscut, de obicei are valoarea '0'
ZMOVIEDURATIONdurata fișierului media, pentru fișiere pdf poate conține numărul de pagini ale documentului
ZMESSAGEconține un număr de ordine (numărul este diferit de cel specificat în coloana 'Z_PK')
ZASPECTRATIOraportul de aspect, nu este utilizat, de obicei are valoarea '0'
ZHACCURACYnecunoscut, de obicei are valoarea '0'
ZLATTITUDElățimea în pixeli
ZLONGTITUDEînălțimea în pixeli
ZMEDIAURLDATEtimpul în format OS X Epoch Time
ZAUTHORNAMEautor (pentru documente, poate conține numele fișierului)
ZCOLLECTIONNAMEnu este utilizat
ZMEDIALOCALPATHnumele fișierului (cu calea) în sistemul de fișiere al dispozitivului
ZMEDIAURLURL-ul la care se afla fișierul media. Dacă fișierul a fost trimis de la un abonat la altul, a fost criptat, iar extensia sa va fi indicată ca extensia fișierului transmis — .enc
ZTHUMBNAILLOCALPATHcalea către miniatura fișierului în sistemul de fișiere al dispozitivului
ZTITLEtitlul fișierului
ZVCARDNAMEhash-ul fișierului media, la trimiterea fișierului în grup poate conține identificatorul expeditorului
ZVCARDSTRINGconține informații despre tipul fișierului transmis (de exemplu, image/jpeg), la trimiterea fișierului în grup poate conține identificatorul destinatarului
ZXMPPTHUMBPATHcalea către miniatura fișierului în sistemul de fișiere al dispozitivului
ZMEDIAKEYnecunoscut, probabil conține cheia pentru decriptarea fișierului criptat.
ZMETADATAmetadatele mesajului transmis
Offsetoffset

Alte tabele interesante ale bazei de date ‘ChatStorage.sqlite’ sunt:

  • ‘ZWAPROFILEPUSHNAME’. Corelează ID-ul WhatsApp cu numele contactului;
  • ‘ZWAPROFILEPICTUREITEM’. Corelează ID-ul WhatsApp cu avatarul contactului;
  • ‘Z_PRIMARYKEY’. Tabelul conține informații generale despre această bază de date, cum ar fi numărul total de mesaje stocate, numărul total de chat-uri etc.

De asemenea, atunci când se investighează WhatsApp pe un dispozitiv mobil cu iOS, trebuie să se acorde atenție următoarelor fișiere:

  • Fișier ‘BackedUpKeyValue.sqlite’. Conține chei criptografice și alte date necesare pentru identificarea proprietarului contului. Se află la calea: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Fișier ‘ContactsV2.sqlite’. Conține informații despre contactele utilizatorului, cum ar fi numele complet, numărul de telefon, statutul contactului (sub formă de text), ID-ul WhatsApp etc. Se află la calea: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Fișier ‘consumer_version’. Conține numărul versiunii aplicației WhatsApp instalate. Se află la calea: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Fișier ‘current_wallpaper.jpg’. Conține wallpaper-ul de fundal curent al aplicației WhatsApp. Se află la calea: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. În versiunile anterioare ale aplicației se folosește fișierul ‘wallpaper’, care se află la calea: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’.
  • Fișier ‘blockedcontacts.dat’. Conține informații despre contactele blocate. Se află la calea: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • Fișier ‘pw.dat’. Conține parola criptată. Se află la calea: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/’.
  • Fișier ‘net.whatsapp.WhatsApp.plist’ (sau fișierul ‘group.net.whatsapp.WhatsApp.shared.plist’). Conține informații despre profilul contului WhatsApp. Fișierul se află la calea: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/’.

Conținutul fișierului ‘group.net.whatsapp.WhatsApp.shared.plist’ WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
De asemenea, trebuie să avem în vedere următoarele directoare:

  • Folderul ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/’. Conține miniaturi ale contactelor, grupurilor (fișiere cu extensia .thumb), avataruri ale contactelor, avatarul proprietarului contului WhatsApp (fișier ‘Photo.jpg’).
  • Folderul ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ Message/Media/’. Conține fișiere multimedia și miniaturile acestora
  • Folderul ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’. Conține jurnalul de activitate al aplicației (fișier ‘calls.log’) și copiile de rezervă ale jurnalelor de activitate (fișier ‘calls.backup.log’).
  • Folderul ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/’. Conține stickere (fișiere în format ‘.webp’).
  • Folderul ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/’. Conține jurnale de activitate ale aplicației.

Artefacte WhatsApp pe Windows

Artefactele WhatsApp pe Windows pot fi găsite în mai multe locuri. În special, sunt directoare care conțin fișierele executabile și auxiliare ale aplicației (pentru Windows 8/10):

  • ‘C:Program Files (x86)WhatsApp’
  • ‘C:Users%User profile% AppDataLocalWhatsApp’
  • ‘C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp’

În directorul ‘C:Users%User profile% AppDataLocalWhatsApp’ se află jurnalul de activitate ‘SquirrelSetup.log’, în care se găsește informația despre verificarea actualizărilor și instalarea programului.

În directorul ‘C:Users%User profile% AppDataRoamingWhatsApp’ există mai multe subfoldere:

WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
Fișier ‘main-process.log’ conține informații despre funcționarea programului WhatsApp.

Subfolder ‘databases’ conține fișierul ‘Databases.db’, dar acest fișier nu conține nicio informație despre conversații sau contacte.

Cele mai interesante din punct de vedere criminalistic sunt fișierele aflate în directorul ‘Cache’. În principal, acestea sunt fișiere cu nume ‘f_*******’ (unde * este un număr de la 0 la 9), conținând fișiere multimedia și documente criptate, dar printre ele pot fi întâlnite și fișiere necriptate. Deosebit de interesante sunt fișierele ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’, aflate în același subfolder. Fișierele ‘data_0’, ‘data_1’, ‘data_3’ conțin linkuri externe către fișierele multimedia criptate și documentele transmise.

Exemplu de informație conținută în fișierul ‘data_1’WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
De asemenea, fișierul ‘data_3’ poate conține fișiere grafice.

Fișier ‘data_2’ conține avatarurile contactelor (pot fi recuperate căutând după denumirile fișierelor).

Avatarurile conținute în fișierul ‘data_2’:

WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
Astfel, în memoria computerului nu pot fi găsite conversațiile în sine, dar se pot găsi:

  • fișiere multimedia;
  • documente transmise prin WhatsApp;
  • informații despre contacte ale proprietarului contului.

Artefacte WhatsApp în MacOS

În MacOS se pot găsi tipuri de artefacte WhatsApp similare cu cele existente în sistemul de operare Windows.

Fișierele programului se află în folderele:

  • ‘C:ApplicationsWhatsApp.app’
  • ‘C:Applications._WhatsApp.app’
  • ‘C:Users%User profile%LibraryPreferences’
  • ‘C:Users%User profile%LibraryLogsWhatsApp’
  • ‘C:Users%User profile%LibrarySaved Application StateWhatsApp.savedState’
  • ‘C:Users%User profile%LibraryApplication Scripts’
  • ‘C:Users%User profile%LibraryApplication SupportCloudDocs’
  • ‘C:Users%User profile%LibraryApplication SupportWhatsApp.ShipIt’
  • ‘C:Users%User profile%LibraryContainerscom.rockysandstudio.app-for-whatsapp’
  • ‘C:Users%User profile%Library Mobile Documents WhatsApp Accounts’
    În acest director se află subfoldere a căror denumire reprezintă numerele de telefon asociate proprietarului contului WhatsApp.
  • ‘C:Users%User profile%LibraryCachesWhatsApp.ShipIt’
    În acest director se găsește informația despre instalarea programului.
  • ‘C:Users%User profile%PicturesBiblioteca Media iPhoto.photolibraryMasters’, ‘C:Users%User profile%PicturesBiblioteca Media iPhoto.photolibraryThumbnails’
    Aceste directoare conțin fișierele de sistem ale aplicației și, printre altele, fotografiile și miniaturile contactelor WhatsApp.
  • ‘C:Users%User profile%LibraryCachesWhatsApp’
    În acest director se află câteva baze de date SQLite, care sunt utilizate pentru caching-ul datelor.
  • ‘C:Users%User profile%LibraryApplication SupportWhatsApp’
    În acest director se află mai multe subdirectoare:

    WhatsApp în palmă: unde și cum pot fi descoperite artefactele criminalistice?
    În directorul ‘C:Users%User profile%LibraryApplication SupportWhatsAppCache’ se află fișiere ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’ și fișiere cu nume ‘f_*******’ (unde * — un număr de la 0 la 9). Informațiile despre ce date conțin aceste fișiere sunt descrise în secțiunea „Artefactele WhatsApp în Windows”.

    În directorul ‘C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB’ pot conține fișiere multimedia (fișiere fără extensii).

    Fișier ‘main-process.log’ conține informații despre funcționarea programului WhatsApp.

Surse

  1. Analiza forensic a WhatsApp Messenger pe smartphone-uri Android, de Cosimo Anglano, 2014.
  2. Whatsapp Forensics: Explorarea sistemului de fișiere și bazei de date asupra aplicațiilor Android și iOS de Ahmad Pratama, 2014.

În articolele următoare din această serie:

Decriptarea bazelor de date criptate WhatsAppUn articol în care vor fi prezentate informații despre cum se generează cheia de criptare WhatsApp și exemple practice care ilustrează cum se poate realiza decriptarea bazelor criptate ale acestei aplicații.
Extracția datelor WhatsApp din stocările cloudUn articol în care vom explica ce date WhatsApp sunt stocate în cloud și vom descrie metodele de extracție a acestor date din stocările cloud.
Extracția datelor WhatsApp: exemple practiceUn articol în care vom descrie pas cu pas cu ce programe și cum se poate realiza extracția datelor WhatsApp din diferite dispozitive.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster