Če želite izvedeti, kakšne vrste forenzičnih artefaktov WhatsApp obstajajo v različnih operacijskih sistemih in kje natančno jih je mogoče najti, potem je to mesto za vas. Ta članek je napisal strokovnjak iz Laboratorija za računalniško forenziko Group-IB Igor Mihajlov začne serijo objav o forenziki WhatsApp in o tem, katere informacije je mogoče pridobiti z analizo naprave.
Naj takoj opozorimo, da različni operacijski sistemi shranjujejo različne vrste artefaktov WhatsApp in če lahko raziskovalec izvleče določene vrste podatkov WhatsApp iz ene naprave, to ne pomeni, da je podobne vrste podatkov mogoče izvleči iz druge naprave. Če na primer odstranite sistemsko enoto z operacijskim sistemom Windows, klepetov WhatsApp verjetno ne bo mogoče najti na njenih diskih (z izjemo varnostnih kopij naprav iOS, ki jih najdete na istih diskih). Zaseg prenosnih računalnikov in mobilnih naprav bo imel svoje značilnosti. Pogovorimo se o tem podrobneje.
Artefakti WhatsApp v napravi Android
Za pridobivanje artefaktov WhatsApp iz naprave Android mora imeti raziskovalec pravice superuporabnika ('root') v napravi, ki je predmet preiskave, ali lahko kako drugače ekstrahirate izpis fizičnega pomnilnika naprave ali njenega datotečnega sistema (na primer z uporabo ranljivosti programske opreme določene mobilne naprave).
Datoteke aplikacij se nahajajo v pomnilniku telefona v razdelku, kjer so shranjeni uporabniški podatki. Praviloma je ta razdelek poimenovan 'uporabniški podatki'. Podimeniki in programske datoteke se nahajajo vzdolž poti: '/data/data/com.whatsapp/'.
Glavne datoteke, ki vsebujejo forenzične artefakte WhatsApp v operacijskem sistemu Android, so zbirke podatkov 'wa.db' и 'msgstore.db'.
V zbirki podatkov 'wa.db' vsebuje celoten seznam stikov uporabnika WhatsApp, vključno s telefonsko številko, prikaznim imenom, časovnimi žigi in vsemi drugimi informacijami, ki ste jih posredovali med registracijo za WhatsApp. mapa 'wa.db' ki se nahaja ob poti: '/data/data/com.whatsapp/databases/' in ima naslednjo strukturo:
Najbolj zanimive tabele v bazi 'wa.db' za raziskovalca so:
- 'wa_contacts'
Ta tabela vsebuje kontaktne podatke: ID stika WhatsApp, informacije o statusu, uporabniško prikazno ime, časovne žige itd.Videz tabele:
Struktura tabeleIme polja Vrednost _id zaporedno številko zapisa (v tabeli SQL) jid ID stika WhatsApp, napisan v obliki <telefonska številka>@s.whatsapp.net is_whatsapp_user vsebuje '1', če stik ustreza dejanskemu uporabniku WhatsApp, v nasprotnem primeru '0' Status vsebuje besedilo, prikazano v statusu stika status_časovni žig vsebuje časovni žig v formatu Unix Epoch Time (ms). Številka telefonsko številko, povezano s kontaktom raw_contact_id kontaktno serijsko številko DISPLAY_NAME prikazno ime stika phone_type tip telefona telefonska oznaka oznako, povezano s kontaktno številko unseen_msg_count število sporočil, ki jih je poslal stik, vendar jih prejemnik ni prebral photo_ts vsebuje časovni žig v formatu Unix Epoch Time thumb_ts vsebuje časovni žig v formatu Unix Epoch Time photo_id_timestamp vsebuje časovni žig v formatu Unix Epoch Time (ms). dano_ime vrednost polja se ujema z 'display_name' za vsak stik wa_name Ime stika WhatsApp (prikaže se ime, navedeno v profilu stika) sort_name ime stika, ki se uporablja pri operacijah razvrščanja vzdevek vzdevek stika v WhatsApp (prikaže se vzdevek, naveden v profilu stika) podjetje podjetje (prikaže se podjetje, navedeno v profilu kontakta) Naslov naziv (gospa/gospod; prikazan je naziv, konfiguriran v kontaktnem profilu) odmik pristranskost - 'sqlite_sequence'
Ta tabela vsebuje podatke o številu stikov; - 'android_metapodatki'
Ta tabela vsebuje informacije o jezikovni lokalizaciji WhatsApp.
V zbirki podatkov 'msgstore.db' vsebuje informacije o poslanih sporočilih, kot so kontaktna številka, besedilo sporočila, stanje sporočila, časovni žigi, podrobnosti o prenesenih datotekah, vključenih v sporočila, itd. mapa 'msgstore.db' ki se nahaja ob poti: '/data/data/com.whatsapp/databases/' in ima naslednjo strukturo:
Najbolj zanimive tabele v datoteki 'msgstore.db' za raziskovalca so:
- 'sqlite_sequence'
Ta tabela vsebuje splošne informacije o tej bazi podatkov, na primer skupno število shranjenih sporočil, skupno število klepetov itd.Videz tabele:
- 'message_fts_content'
Vsebuje besedilo poslanih sporočil.Videz tabele:
- 'sporočila'
Ta tabela vsebuje informacije, kot so kontaktna številka, besedilo sporočila, stanje sporočila, časovni žigi, informacije o prenesenih datotekah, vključenih v sporočila.Videz tabele:
Struktura tabeleIme polja Vrednost _id zaporedno številko zapisa (v tabeli SQL) key_remote_jid WhatsApp ID komunikacijskega partnerja ključ_od_mene smer sporočila: '0' – dohodno, '1' – odhodno key_id edinstven identifikator sporočila Status status sporočila: '0' – dostavljeno, '4' – čaka na strežniku, '5' – prejeto na cilj, '6' – kontrolno sporočilo, '13' – sporočilo, ki ga je odprl prejemnik (branje) need_push ima vrednost '2', če gre za oddajno sporočilo, sicer vsebuje '0' datum besedilo sporočila (ko je parameter 'media_wa_type' '0') Časovni žig vsebuje časovni žig v formatu Unix Epoch Time (ms), vrednost je vzeta iz ure naprave media_url vsebuje URL prenesene datoteke (če je parameter 'media_wa_type' '1', '2', '3') media_mime_type Vrsta MIME prenesene datoteke (če je parameter 'media_wa_type' enak '1', '2', '3') media_wa_type vrsta sporočila: '0' - besedilo, '1' - grafična datoteka, '2' - zvočna datoteka, '3' - video datoteka, '4' - kontaktna kartica, '5' - geopodatki velikost_medija velikost prenesene datoteke (če je parameter 'media_wa_type' '1', '2', '3') ime_medija ime prenesene datoteke (če je parameter 'media_wa_type' '1', '2', '3') media_caption Vsebuje besedi 'audio', 'video' za ustrezne vrednosti parametra 'media_wa_type' (če je parameter 'media_wa_type' '1', '3') media_hash base64 kodirana zgoščena vrednost poslane datoteke, izračunana z algoritmom HAS-256 (če je parameter 'media_wa_type' enak '1', '2', '3') media_duration trajanje predstavnostne datoteke v sekundah (ko je 'media_wa_type' '1', '2', '3') poreklo ima vrednost '2', če gre za oddajno sporočilo, sicer vsebuje '0' zemljepisna širina geopodatki: zemljepisna širina (če je parameter 'media_wa_type' '5') zemljepisne dolžine geopodatki: zemljepisna dolžina (ko je parameter 'media_wa_type' '5') thumb_image servisne informacije oddaljeni_vir ID pošiljatelja (samo za skupinske klepete) prejeti_časovni žig čas prejema, vsebuje časovni žig v formatu Unix Epoch Time (ms), vrednost je vzeta iz ure naprave (ko ima parameter 'key_from_me' '0', '-1' ali drugo vrednost) pošlji časovni žig se ne uporablja, običajno ima vrednost '-1' časovni žig_strežnika prejemov čas, ki ga prejme osrednji strežnik, vsebuje časovni žig v formatu Unix Epoch Time (ms), vrednost je vzeta iz ure naprave (ko ima parameter 'key_from_me' '1', '-1' ali drugo vrednost časovni žig_prejemne_naprave čas, ko je sporočilo prejel drug naročnik, vsebuje časovni žig v formatu Unix Epoch Time (ms), vrednost je vzeta iz ure naprave (če ima parameter 'key_from_me' '1', '-1' ali drugo vrednost read_device_timestamp čas odpiranja (branja) sporočila, vsebuje časovni žig v formatu Unix Epoch Time (ms), vrednost je vzeta iz ure naprave predvajana_naprava_časovni žig čas predvajanja sporočila, vsebuje časovni žig v formatu Unix Epoch Time (ms), vrednost je vzeta iz ure naprave surovi podatki sličica prenesene datoteke (če je parameter 'media_wa_type' '1' ali '3') število_prejemnikov število prejemnikov (za oddajna sporočila) udeleženec_hash uporablja se pri prenosu sporočil z geopodatki zvezdico se ne uporablja id_citirane_vrstice neznano, običajno vsebuje vrednost '0' omenjeni_jids se ne uporablja multicast_id se ne uporablja odmik pristranskost Ta seznam polj ni izčrpen. Za različne različice WhatsApp so lahko nekatera polja prisotna ali odsotna. Poleg tega so lahko prisotna polja 'media_enc_hash', 'edit_version', 'payment_transaction_id' itd
- 'messages_thumbnails'
Ta tabela vsebuje informacije o prenesenih slikah in časovnih žigih. V stolpcu 'časovni žig' je čas naveden v obliki Unix Epoch Time (ms). - 'chat_list'
Ta tabela vsebuje informacije o klepetih.Videz tabele:
Ko pregledujete WhatsApp v mobilni napravi s sistemom Android, bodite pozorni tudi na naslednje datoteke:
- datoteka 'msgstore.db.cryptXX' (kjer je XX ena ali dve števki od 0 do 12, na primer msgstore.db.crypt12). Vsebuje šifrirano varnostno kopijo sporočil WhatsApp (datoteka varnostne kopije msgstore.db). Datoteke 'msgstore.db.cryptXX' ki se nahaja ob poti: '/data/media/0/WhatsApp/Databases/' (virtualna SD kartica), '/mnt/sdcard/WhatsApp/Databases/ (fizična kartica SD)'.
- datoteka 'ključ'. Vsebuje kriptografski ključ. Nahaja se ob poti: '/data/data/com.whatsapp/files/'. Uporablja se za dešifriranje šifriranih varnostnih kopij WhatsApp.
- datoteka 'com.whatsapp_preferences.xml'. Vsebuje informacije o vašem profilu računa WhatsApp. Datoteka se nahaja na poti: '/data/data/com.whatsapp/shared_prefs/'.
Delček vsebine datoteke
<?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> (имя владельца аккаунта) …
- datoteka 'registration.RegisterPhone.xml'. Vsebuje podatke o telefonski številki, povezani z računom WhatsApp. Datoteka se nahaja na poti: '/data/data/com.whatsapp/shared_prefs/'.
Vsebina datoteke
<?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>
- datoteka 'axolotl.db'. Vsebuje kriptografske ključe in druge podatke, ki so potrebni za identifikacijo lastnika računa. Nahaja se ob poti: '/data/data/com.whatsapp/databases/'.
- datoteka 'chatsettings.db'. Vsebuje informacije o konfiguraciji aplikacije.
- datoteka 'wa.db'. Vsebuje kontaktne podatke. Zelo zanimiva (s forenzičnega vidika) in informativna baza podatkov. Vsebuje lahko podrobne informacije o izbrisanih stikih.
Prav tako morate biti pozorni na naslednje imenike:
- Imenik '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Vsebuje prenesene grafične datoteke.
- Imenik '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Vsebuje glasovna sporočila v datotekah formata .OPUS.
- Imenik '/data/data/com.whatsapp/cache/Profile Pictures/'. Vsebuje grafične datoteke – slike stikov.
- Imenik '/data/data/com.whatsapp/files/Avatars/'. Vsebuje grafične datoteke – sličice stikov. Te datoteke imajo pripono '.j', vendar so kljub temu slikovne datoteke JPEG (JPG).
- Imenik '/data/data/com.whatsapp/files/Avatars/'. Vsebuje grafične datoteke - sliko in sličico slike, ki jo je lastnik računa nastavil kot avatar.
- Imenik '/data/data/com.whatsapp/files/Logs/'. Vsebuje dnevnik delovanja programa (datoteka 'whatsapp.log') in varnostne kopije dnevnikov delovanja programa (datoteke z imeni v formatu whatsapp-llll-mm-dd.1.log.gz).
Dnevniške datoteke WhatsApp:
Delček dnevnika2017-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] datoteka z geslom manjka ali ni berljiva
2017-01-10 09:37:09.782 LL_I D [1:main] statistika Besedilna sporočila: 59 poslanih, 82 prejetih / Medijska sporočila: 1 poslano (0 bajtov), 0 prejetih (9850158 bajtov) / Sporočila brez povezave: 81 prejetih ( 19522 msec povprečna zakasnitev) / Storitev sporočil: 116075 poslanih bajtov, 211729 prejetih bajtov / Voip klici: 1 odhodni klic, 0 dohodnih klicev, 2492 poslanih bajtov, 1530 prejetih bajtov / Google Drive: 0 poslanih bajtov, 0 prejetih bajtov / Gostovanje: 1524 bajtov poslano, 1826 bajtov prejetih / Skupaj podatkov: 118567 bajtov poslanih, 10063417 bajtov prejetih
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/različica 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 | porabljen čas: 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
- Imenik '/data/media/0/WhatsApp/Media/WhatsApp Audio/'. Vsebuje prejete zvočne datoteke.
- Imenik '/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/'. Vsebuje poslane zvočne datoteke.
- Imenik '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Vsebuje nastale grafične datoteke.
- Imenik '/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/'. Vsebuje poslane grafične datoteke.
- Imenik '/data/media/0/WhatsApp/Media/WhatsApp Video/'. Vsebuje prejete video datoteke.
- Imenik '/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/'. Vsebuje poslane video datoteke.
- Imenik '/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/'. Vsebuje grafične datoteke, povezane z lastnikom računa WhatsApp.
- Če želite prihraniti pomnilniški prostor na pametnem telefonu Android, lahko nekatere podatke WhatsApp shranite na kartico SD. Na kartici SD je v korenskem imeniku imenik 'WhatsApp', kjer je mogoče najti naslednje artefakte tega programa:
- Imenik '.Deliti' ('/mnt/sdcard/WhatsApp/.Share/'). Vsebuje kopije datotek, ki so bile v skupni rabi z drugimi uporabniki WhatsApp.
- Imenik '.trash' ('/mnt/sdcard/WhatsApp/.trash/'). Vsebuje izbrisane datoteke.
- Imenik 'baze podatkov' ('/mnt/sdcard/WhatsApp/Databases/'). Vsebuje šifrirane varnostne kopije. Če je datoteka prisotna, jih je mogoče dešifrirati 'ključ', izvlečen iz pomnilnika analizirane naprave.
Datoteke v podimeniku 'baze podatkov':
- Imenik 'Polovica' ('/mnt/sdcard/WhatsApp/Media/'). Vsebuje podimenike 'Tapeta', 'WhatsApp Audio', 'Slike WhatsApp', 'Fotografije profila WhatsApp', 'WhatsApp Video', »Glasovni zapiski WhatsApp«, ki vsebujejo prejete in poslane multimedijske datoteke (grafične datoteke, video datoteke, glasovna sporočila, fotografije, povezane s profilom lastnika računa WhatsApp, ozadja).
- Imenik 'Slike profila' ('/mnt/sdcard/WhatsApp/Profilne slike/'). Vsebuje grafične datoteke, povezane s profilom lastnika računa WhatsApp.
- Včasih je na kartici SD morda prisoten imenik 'datoteke' ('/mnt/sdcard/WhatsApp/Files/'). Ta imenik vsebuje datoteke, ki shranjujejo nastavitve programa in uporabniške nastavitve.
Funkcije shranjevanja podatkov v nekaterih modelih mobilnih naprav
Nekateri modeli mobilnih naprav z operacijskim sistemom Android lahko shranjujejo artefakte WhatsApp na drugem mestu. To je posledica sprememb v prostoru za shranjevanje aplikacijskih podatkov s strani sistemske programske opreme mobilne naprave. Na primer, mobilne naprave Xiaomi imajo funkcijo za ustvarjanje drugega delovnega prostora (»SecondSpace«). Ko je ta funkcija aktivirana, se lokacija podatkov spremeni. Torej, če so v navadni mobilni napravi z operacijskim sistemom Android v imeniku shranjeni uporabniški podatki '/data/user/0/' (kar je sklicevanje na običajno '/podatki/podatki/'), potem se v drugem delovnem prostoru podatki aplikacije shranijo v imenik '/data/user/10/'. To je na primeru lokacije datoteke 'wa.db':
- v običajnem pametnem telefonu z operacijskim sistemom Android: /data/user/0/com.whatsapp/databases/wa.db' (kar je enakovredno '/data/data/com.whatsapp/databases/wa.db');
- v drugem delovnem prostoru pametnega telefona Xiaomi: '/data/user/10/com.whatsapp/databases/wa.db'.
Artefakti WhatsApp v napravi iOS
Za razliko od operacijskega sistema Android se v iOS aplikaciji WhatsApp podatki prenesejo v varnostno kopijo (iTunes backup). Zato ekstrahiranje podatkov iz te aplikacije ne zahteva ekstrahiranja datotečnega sistema ali ustvarjanja izpisa fizičnega pomnilnika preiskovane naprave. Večina ustreznih informacij je v bazi podatkov 'ChatStorage.sqlite', ki se nahaja ob poti: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/' (v nekaterih programih je ta pot prikazana kot 'AppDomainGroup-group.net.whatsapp.WhatsApp.shared').
Struktura 'ChatStorage.sqlite':
Najbolj informativne tabele v bazi 'ChatStorage.sqlite' so 'ZWAMESSAGE' и 'ZWAMEDIAITEM'.
Videz mize 'ZWAMESSAGE':
Struktura tabele 'ZWAMESSAGE'
Ime polja | Vrednost |
---|---|
Z_PK | zaporedno številko zapisa (v tabeli SQL) |
Z_ENT | identifikator tabele ima vrednost '9' |
Z_OPT | neznano, običajno vsebuje vrednosti od '1' do '6' |
ZCHILDMESSAGESDELIVEREDCOUNT | neznano, običajno vsebuje vrednost '0' |
ZCHILDMESSAGESPLAYEDCOUNT | neznano, običajno vsebuje vrednost '0' |
ZCHILDMESSAGESREADCOUNT | neznano, običajno vsebuje vrednost '0' |
ZDATAITEMVERSION | neznano, običajno vsebuje vrednost '3', verjetno indikator besedilnega sporočila |
ZDOCID | ni znano |
ZENCRETRYCOUNT | neznano, običajno vsebuje vrednost '0' |
ZFILTEREDRECIPIENTCOUNT | neznano, običajno vsebuje vrednosti '0', '2', '256' |
ZISFROMME | smer sporočila: '0' – dohodno, '1' – odhodno |
ZMESSAGEERRORSTATUS | stanje prenosa sporočila. Če je sporočilo poslano/prejeto, ima vrednost '0' |
ZMESSAGETYPE | vrsta sporočila, ki se prenaša |
ZSORT | ni znano |
ZSPOTLIGHSTATUS | ni znano |
ZZVEZDICA | neznano, neuporabljeno |
ZCHATSESSION | ni znano |
ZGROUPMEMBER | neznano, neuporabljeno |
ZLASTSESSION | ni znano |
ZMEDIAITEM | ni znano |
ZMESSAGEINFO | ni znano |
ZPARENTMESSAGE | neznano, neuporabljeno |
ZMESSAGEDATE | časovni žig v formatu Epoch Time OS X |
ZSENTDATE | čas, ko je bilo sporočilo poslano v formatu Epoch Time OS X |
ZFROMJID | ID pošiljatelja WhatsApp |
ZMEDIASECTIONID | vsebuje leto in mesec poslane medijske datoteke |
ZPHASH | neznano, neuporabljeno |
ZPUSHPAME | ime stika, ki je poslal medijsko datoteko v formatu UTF-8 |
ZSTANZID | edinstven identifikator sporočila |
ZTEKST | Besedilo sporočila |
ZTOJID | ID prejemnika WhatsApp |
OFFSET | pristranskost |
Videz mize 'ZWAMEDIAITEM':
Struktura tabele 'ZWAMEDIAITEM'
Ime polja | Vrednost |
---|---|
Z_PK | zaporedno številko zapisa (v tabeli SQL) |
Z_ENT | identifikator tabele ima vrednost '8' |
Z_OPT | neznano, običajno vsebuje vrednosti od '1' do '3'. |
ZCLOUDSTATUS | vsebuje vrednost '4', če je datoteka naložena. |
ZFILESIZE | vsebuje dolžino datoteke (v bajtih) za prenesene datoteke |
ZMEDIAORIGIN | neznano, običajno ima vrednost '0' |
ZMOVIEDURATION | trajanje medijske datoteke, pri datotekah pdf lahko vsebuje število strani dokumenta |
ZMESSAGE | vsebuje serijsko številko (številka se razlikuje od tiste, ki je navedena v stolpcu 'Z_PK') |
ZASPECTRATIO | razmerje stranic, se ne uporablja, običajno nastavljeno na '0' |
TOČNOST | neznano, običajno ima vrednost '0' |
ZLATTITUDE | širina v slikovnih pikah |
ZLONGTITUDE | višina v slikovnih pikah |
ZMEDIAURLDATE | časovni žig v formatu Epoch Time OS X |
ZAUTHORNAME | avtor (pri dokumentih lahko vsebuje ime datoteke) |
ZCOLLECTIONNAME | se ne uporablja |
ZMEDIALOCALPATH | ime datoteke (vključno s potjo) v datotečnem sistemu naprave |
ZMEDIAURL | URL, kjer je bila medijska datoteka. Če je bila datoteka prenesena od enega naročnika k drugemu, je bila šifrirana in bo njena končnica navedena kot končnica prenesene datoteke - .enc |
ZTHUMBNAILLLOCALPATH | pot do sličice datoteke v datotečnem sistemu naprave |
ZNASLOV | glava datoteke |
ZVCARDNAME | hash medijske datoteke; pri prenosu datoteke v skupino lahko vsebuje identifikator pošiljatelja |
ZVCARDSTRING | vsebuje podatke o vrsti datoteke, ki se prenaša (na primer slika/jpeg); pri prenosu datoteke v skupino lahko vsebuje identifikator prejemnika |
ZXMPPTHUMBPATH | pot do sličice datoteke v datotečnem sistemu naprave |
ZMEDIAKEY | neznano, verjetno vsebuje ključ za dešifriranje šifrirane datoteke. |
ZMETADATA | metapodatki poslanega sporočila |
Odmik | pristranskost |
Druge zanimive tabele baze podatkov 'ChatStorage.sqlite' so:
- 'ZWAPROFILEPUSHNAME'. Ujema ID WhatsApp z imenom stika;
- 'ZWAPROFILEPICTUREITEM'. Ujema WhatsApp ID z avatarjem stika;
- 'Z_PRIMARYKEY'. Tabela vsebuje splošne informacije o tej bazi podatkov, kot je skupno število shranjenih sporočil, skupno število klepetov itd.
Ko pregledujete WhatsApp na mobilni napravi z operacijskim sistemom iOS, bodite pozorni tudi na naslednje datoteke:
- datoteka 'BackedUpKeyValue.sqlite'. Vsebuje kriptografske ključe in druge podatke, ki so potrebni za identifikacijo lastnika računa. Nahaja se ob poti: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- datoteka 'ContactsV2.sqlite'. Vsebuje informacije o uporabnikovih stikih, kot so polno ime, telefonska številka, status stika (v besedilni obliki), WhatsApp ID itd. Nahaja se ob poti: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- datoteka 'consumer_version'. Vsebuje številko različice nameščene aplikacije WhatsApp. Nahaja se ob poti: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- datoteka 'current_wallpaper.jpg'. Vsebuje trenutno ozadje za ozadje WhatsApp. Nahaja se ob poti: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Starejše različice aplikacije uporabljajo datoteko 'tapeta', ki se nahaja ob poti: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'.
- datoteka 'blockedcontacts.dat'. Vsebuje informacije o blokiranih stikih. Nahaja se ob poti: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
- datoteka 'pw.dat'. Vsebuje šifrirano geslo. Nahaja se ob poti: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/'.
- datoteka 'net.whatsapp.WhatsApp.plist' (ali datoteka 'group.net.whatsapp.WhatsApp.shared.plist'). Vsebuje informacije o vašem profilu računa WhatsApp. Datoteka se nahaja na poti: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/'.
Vsebina datoteke 'group.net.whatsapp.WhatsApp.shared.plist'
Prav tako morate biti pozorni na naslednje imenike:
- Imenik '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/'. Vsebuje sličice stikov, skupin (datoteke s pripono .palec), avatarji stikov, avatar lastnika računa WhatsApp (datoteka 'Photo.jpg').
- Imenik '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/'. Vsebuje večpredstavnostne datoteke in njihove sličice
- Imenik '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'. Vsebuje dnevnik delovanja programa (datoteka 'calls.log') in varnostne kopije dnevnikov delovanja programa (datoteka 'calls.backup.log').
- Imenik '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/'. Vsebuje nalepke (datoteke v obliki '.webp').
- Imenik '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/'. Vsebuje dnevnike delovanja programa.
Artefakti WhatsApp v sistemu Windows
Artefakte WhatsApp v sistemu Windows je mogoče najti na več mestih. Najprej so to imeniki, ki vsebujejo izvedljive in pomožne programske datoteke (za Windows 8/10):
- 'C:Program Files (x86)WhatsApp'
- 'C:Users%User profile% AppDataLocalWhatsApp'
- 'C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp'
V katalogu 'C:Users%User profile% AppDataLocalWhatsApp' dnevniška datoteka se nahaja 'SquirrelSetup.log', ki vsebuje informacije o preverjanju posodobitev in namestitvi programa.
V katalogu 'C:Users%User profile% AppDataRoamingWhatsApp' Obstaja več podimenikov:
datoteka 'main-process.log' vsebuje informacije o delovanju programa WhatsApp.
Podimenik 'baze podatkov' vsebuje datoteko 'Databases.db', vendar ta datoteka ne vsebuje nobenih informacij o klepetih ali stikih.
S forenzičnega vidika so najbolj zanimive datoteke, ki se nahajajo v imeniku 'Predpomnilnik'. To so v bistvu poimenovane datoteke 'j********' (kjer je * številka od 0 do 9), ki vsebujejo šifrirane multimedijske datoteke in dokumente, vendar so med njimi tudi nešifrirane datoteke. Posebno zanimive so datoteke 'podatki_0', 'podatki_1', 'podatki_2', 'podatki_3', ki se nahaja v istem podimeniku. Datoteke 'podatki_0', 'podatki_1', 'podatki_3' vsebujejo zunanje povezave do poslanih šifriranih večpredstavnostnih datotek in dokumentov.
Primer informacij v datoteki 'data_1'
Tudi datoteka 'podatki_3' lahko vsebuje grafične datoteke.
datoteka 'podatki_2' vsebuje kontaktne avatarje (lahko jih obnovite z iskanjem po glavah datotek).
Avatarji v datoteki 'podatki_2':
Tako samih klepetov ni mogoče najti v pomnilniku računalnika, lahko pa najdete:
- multimedijske datoteke;
- dokumenti, poslani prek WhatsAppa;
- informacije o kontaktih lastnika računa.
Artefakti WhatsApp v sistemu MacOS
V MacOS lahko najdete vrste artefaktov WhatsApp, podobne tistim v operacijskem sistemu Windows.
Programske datoteke se nahajajo v naslednjih imenikih:
- 'C:ApplicationsWhatsApp.app'
- 'C:Applications._WhatsApp.app'
- 'C:Users%User profile%LibraryPreferences'
- 'C:Uporabniki%Uporabniški profil%LibraryLogsWhatsApp'
- 'C:Users%User profile%LibrarySaved Application StateWhatsApp.savedState'
- 'C:Uporabniki%Uporabniški profil%LibraryApplication Scripts'
- 'C:Users%User profile%LibraryApplication SupportCloudDocs'
- 'C:Uporabniki%Uporabniški profil%LibraryApplication SupportWhatsApp.ShipIt'
- 'C:Uporabniki%Uporabniški profil%LibraryContainerscom.rockysandstudio.app-for-whatsapp'
- 'C:Users%User profile% Library Mobile Documents <text variable> WhatsApp Accounts'
Ta imenik vsebuje podimenike, katerih imena so telefonske številke, povezane z lastnikom računa WhatsApp. - 'C:Uporabniki%Uporabniški profil%LibraryCachesWhatsApp.ShipIt'
Ta imenik vsebuje informacije o namestitvi programa. - 'C:Users%User profile%PicturesiPhoto Library.photolibraryMasters', 'C:Users%User profile%PicturesiPhoto Library.photolibraryThumbnails'
Ti imeniki vsebujejo storitvene datoteke programa, vključno s fotografijami in sličicami stikov WhatsApp. - 'C:Users%User profile%LibraryCachesWhatsApp'
Ta imenik vsebuje več baz podatkov SQLite, ki se uporabljajo za predpomnjenje podatkov. - 'C:Uporabniki%Uporabniški profil%LibraryApplication SupportWhatsApp'
Ta imenik vsebuje več podimenikov:
V katalogu 'C:Uporabniki%Uporabniški profil%LibraryApplication SupportWhatsAppCache' obstajajo datoteke 'podatki_0', 'podatki_1', 'podatki_2', 'podatki_3' in datoteke z imeni 'j********' (kjer je * število od 0 do 9). Za informacije o tem, katere informacije vsebujejo te datoteke, glejte Artefakti WhatsApp v sistemu Windows.V katalogu 'C:Uporabniki%Uporabniški profil%LibraryApplication SupportWhatsAppIndexedDB' lahko vsebuje multimedijske datoteke (datoteke nimajo končnic).
datoteka 'main-process.log' vsebuje informacije o delovanju programa WhatsApp.
viri
- Forenzična analiza WhatsApp Messengerja na pametnih telefonih Android, Cosimo Anglano, 2014.
- Forenzika Whatsapp: Raziskovalni sistem berkas in osnovni podatki v aplikacijah za Android in iOS avtor Ahmad Pratama, 2014.
V naslednjih člankih v tej seriji:
Dešifriranje šifriranih baz podatkov WhatsAppČlanek, ki bo zagotovil informacije o tem, kako se ustvari šifrirni ključ WhatsApp, in praktične primere, ki prikazujejo, kako dešifrirati šifrirane baze podatkov te aplikacije.
Pridobivanje podatkov WhatsApp iz shrambe v oblakuČlanek, v katerem vam bomo povedali, kateri podatki WhatsApp so shranjeni v oblakih, in opisali metode za pridobivanje teh podatkov iz shramb v oblaku.
Pridobivanje podatkov WhatsApp: Praktični primeriČlanek, ki bo korak za korakom opisal, kateri programi in kako ekstrahirati podatke WhatsApp iz različnih naprav.
Vir: www.habr.com