
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/'.

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Ä:

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:

Structura tabeluluiNumele cĆ¢mpului Valoare _id numÄrul secvenČial al Ć®nregistrÄrii (Ć®n tabela SQL) jid WhatsApp ID al contactului, Ć®nregistrat Ć®n formatul @s.whatsapp.net is_whatsapp_user conČine '1' dacÄ contactul corespunde unui utilizator real WhatsApp, '0' Ć®n caz contrar status conČine textul afiČat Ć®n statusul contactului status_timestamp conČine un marcaj temporal Ć®n format Unix Epoch Time (ms) number numÄrul de telefon asociat cu contactul raw_contact_id numÄrul secvenČial al contactului display_name numele afiČat al contactului phone_type tipul de telefon phone_label etichetÄ asociatÄ cu numÄrul de contact unseen_msg_count numÄrul mesajelor trimise de contact dar ne citite de cÄtre receptor photo_ts conČine un marcaj temporal Ć®n format Unix Epoch Time thumb_ts conČine un marcaj temporal Ć®n format Unix Epoch Time photo_id_timestamp conČine un marcaj temporal Ć®n format Unix Epoch Time (ms) given_name valoarea cĆ¢mpului coincide cu 'display_name' pentru fiecare contact wa_name numele contactului Ć®n WhatsApp (numele afiČat Ć®n profilul contactului) sort_name numele contactului folosit Ć®n operaČiunile de sortare nickname pseudosubiectul contactului Ć®n WhatsApp (numele de utilizator din profilul contactului) company compania (numele firmei afiČat Ć®n profilul contactului) titlul Čtire (doamnÄ/domn; Čtirea setatÄ Ć®n profilul contactului) offset offset - '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Ä:

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:

- 'message_fts_content'
ConČine textul mesajelor transmise.Aspectul tabelului:

- '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:

Structura tabeluluiNumele cĆ¢mpului Valoare _id numÄrul secvenČial al Ć®nregistrÄrii (Ć®n tabela SQL) key_remote_jid WhatsApp ID al partenerului de comunicare key_from_me direcČia mesajului: '0' ā venitor, '1' ā extern key_id identificator unic al mesajului status starea 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_push are valoarea ā2ā, dacÄ este un mesaj de tip broadcast, altfel conČine ā0ā data textul mesajului (cĆ¢nd parametrul āmedia_wa_typeā este ā0ā) timestamp conČine un timestamp Ć®n format Unix Epoch Time (ms), valoarea este preluatÄ de pe ceasul dispozitivului media_url conČine URL-ul fiČierului transmis (cĆ¢nd parametrul āmedia_wa_typeā este ā1ā, ā2ā, ā3ā) media_mime_type tipul MIME al fiČierului transmis (cĆ¢nd parametrul āmedia_wa_typeā este ā1ā, ā2ā, ā3ā) media_wa_type tipul mesajului: ā0ā ā text, ā1ā ā fiČier grafic, ā2ā ā fiČier audio, ā3ā ā fiČier video, ā4ā ā carte de contact, ā5ā ā date geografice media_size dimensiunea fiČierului transmis (cĆ¢nd parametrul āmedia_wa_typeā este ā1ā, ā2ā, ā3ā) media_name numele fiČierului transmis (cĆ¢nd parametrul āmedia_wa_typeā este ā1ā, ā2ā, ā3ā) media_caption ConČine cuvintele āaudioā, āvideoā pentru valorile corespunzÄtoare ale parametrului āmedia_wa_typeā (cĆ¢nd parametrul āmedia_wa_typeā este ā1ā, ā3ā) media_hash hash-ul fiČierului transmis, codificat Ć®n baza64, calculat conform algoritmului HAS-256 (cĆ¢nd parametrul āmedia_wa_typeā este ā1ā, ā2ā, ā3ā) media_duration durata Ć®n secunde pentru fiČierul media (cĆ¢nd parametrul āmedia_wa_typeā este ā1ā, ā2ā, ā3ā) origin are valoarea ā2ā, dacÄ este un mesaj de tip broadcast, altfel conČine ā0ā latitude date geografice: latitudine (cĆ¢nd parametrul āmedia_wa_typeā este ā5ā) longitude date geografice: longitudine (cĆ¢nd parametrul āmedia_wa_typeā este ā5ā) thumb_image informaČii de serviciu remote_recource ID-ul expeditorului (doar pentru chat-uri de grup) received_timestamp timpul 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_timestamp nu este utilizat, de obicei are valoarea ā-1ā receipt_server_timestamp timpul 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_timestamp timpul 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_timestamp timpul de deschidere (citire) a mesajului, conČine un timestamp Ć®n format Unix Epoch Time (ms), valoarea este preluatÄ din ceasul dispozitivului played_device_timestamp timpul de redare a mesajului, conČine un timestamp Ć®n format Unix Epoch Time (ms), valoarea este preluatÄ din ceasul dispozitivului raw_data miniatura fiČierului transmis (cĆ¢nd parametrul āmedia_wa_typeā este ā1ā sau ā3ā) recipient_count numÄrul de destinatari (pentru mesaje de difuzare) participant_hash folosit la transmiterea mesajelor cu date geografice starred nu este utilizat quoted_row_id necunoscut, de obicei conČine valoarea ā0ā mentioned_jids nu este utilizat multicast_id nu este utilizat offset offset 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:

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
- 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:

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:

- 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ā:

- 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ā:

Cele mai informative Ć®n baza de date āChatStorage.sqliteā sunt tabelele āZWAMESSAGEā Či āZWAMEDIAITEMā.
Aspectul tabelului āZWAMESSAGEā:

Structura tabelului 'ZWAMESSAGE'
| Numele câmpului | Valoare |
|---|---|
| Z_PK | numÄrul secvenČial al Ć®nregistrÄrii (Ć®n tabela SQL) |
| Z_ENT | identificatorul tabelului, are valoarea '9' |
| Z_OPT | necunoscut, de obicei conČine valori Ć®ntre '1' Či '6' |
| ZCHILDMESSAGESDELIVEREDCOUNT | necunoscut, de obicei conČine valoarea ā0ā |
| ZCHILDMESSAGESPLAYEDCOUNT | necunoscut, de obicei conČine valoarea ā0ā |
| ZCHILDMESSAGESREADCOUNT | necunoscut, de obicei conČine valoarea ā0ā |
| ZDATAITEMVERSION | necunoscut, de obicei conČine valoarea '3', probabil cÄ este un indicator al mesajului text |
| ZDOCID | necunoscut |
| ZENCRETRYCOUNT | necunoscut, de obicei conČine valoarea ā0ā |
| ZFILTEREDRECIPIENTCOUNT | necunoscut, de obicei conČine valorile '0', '2', '256' |
| ZISFROMME | direcČia mesajului: '0' ā venitor, '1' ā extern |
| ZMESSAGEERRORSTATUS | starea transmiterii mesajului. DacÄ mesajul a fost trimis / primit, are valoarea '0' |
| ZMESSAGETYPE | tipul mesajului transmis |
| ZSORT | necunoscut |
| ZSPOTLIGHSTATUS | necunoscut |
| ZSTARRED | necunoscut, nu este utilizat |
| ZCHATSESSION | necunoscut |
| ZGROUPMEMBER | necunoscut, nu este utilizat |
| ZLASTSESSION | necunoscut |
| ZMEDIAITEM | necunoscut |
| ZMESSAGEINFO | necunoscut |
| ZPARENTMESSAGE | necunoscut, nu este utilizat |
| ZMESSAGEDATE | timpul Ʈn format OS X Epoch Time |
| ZSENTDATE | timpul trimiterii mesajului Ʈn format OS X Epoch Time |
| ZFROMJID | WhatsApp ID al expeditorului |
| ZMEDIASECTIONID | conČine anul Či luna trimiterii fiČierului media |
| ZPHASH | necunoscut, nu este utilizat |
| ZPUSHPAME | numele contactului care a trimis fiČierul media Ć®n format UTF-8 |
| ZSTANZID | identificator unic al mesajului |
| ZTEXT | textul mesajului |
| ZTOJID | WhatsApp ID al destinatarului |
| OFFSET | offset |
Aspectul tabelului āZWAMEDIAITEMā:

Structura tabelului 'ZWAMEDIAITEM'
| Numele câmpului | Valoare |
|---|---|
| Z_PK | numÄrul secvenČial al Ć®nregistrÄrii (Ć®n tabela SQL) |
| Z_ENT | identificatorul tabelului, are valoarea '8' |
| Z_OPT | necunoscut, de obicei conČine valorile Ć®ntre '1' Či '3'. |
| ZCLOUDSTATUS | conČine valoarea '4' dacÄ fiČierul a fost Ć®ncÄrcat. |
| ZFILESIZE | conČine dimensiunea fiČierului (Ć®n octeČi) pentru fiČierele Ć®ncÄrcate |
| ZMEDIAORIGIN | necunoscut, de obicei are valoarea '0' |
| ZMOVIEDURATION | durata fiČierului media, pentru fiČiere pdf poate conČine numÄrul de pagini ale documentului |
| ZMESSAGE | conČine un numÄr de ordine (numÄrul este diferit de cel specificat Ć®n coloana 'Z_PK') |
| ZASPECTRATIO | raportul de aspect, nu este utilizat, de obicei are valoarea '0' |
| ZHACCURACY | necunoscut, de obicei are valoarea '0' |
| ZLATTITUDE | lÄČimea Ć®n pixeli |
| ZLONGTITUDE | Ć®nÄlČimea Ć®n pixeli |
| ZMEDIAURLDATE | timpul Ʈn format OS X Epoch Time |
| ZAUTHORNAME | autor (pentru documente, poate conČine numele fiČierului) |
| ZCOLLECTIONNAME | nu este utilizat |
| ZMEDIALOCALPATH | numele fiČierului (cu calea) Ć®n sistemul de fiČiere al dispozitivului |
| ZMEDIAURL | URL-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 |
| ZTHUMBNAILLOCALPATH | calea cÄtre miniatura fiČierului Ć®n sistemul de fiČiere al dispozitivului |
| ZTITLE | titlul fiČierului |
| ZVCARDNAME | hash-ul fiČierului media, la trimiterea fiČierului Ć®n grup poate conČine identificatorul expeditorului |
| ZVCARDSTRING | conČine informaČii despre tipul fiČierului transmis (de exemplu, image/jpeg), la trimiterea fiČierului Ć®n grup poate conČine identificatorul destinatarului |
| ZXMPPTHUMBPATH | calea cÄtre miniatura fiČierului Ć®n sistemul de fiČiere al dispozitivului |
| ZMEDIAKEY | necunoscut, probabil conČine cheia pentru decriptarea fiČierului criptat. |
| ZMETADATA | metadatele mesajului transmis |
| Offset | offset |
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ā
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:
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ā
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ā:

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:
Ć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
- Analiza forensic a WhatsApp Messenger pe smartphone-uri Android, de Cosimo Anglano, 2014.
- 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








