As jo wolle witte hokker soarten WhatsApp forensyske artefakten besteane op ferskate bestjoeringssystemen en wêr't se krekt te finen binne, dan is dit it plak foar jo. Dit artikel is fan in spesjalist by it Group-IB Computer Forensics Laboratory Igor Mikhailov begjint in searje berjochten oer WhatsApp-forensika en hokker ynformaasje kin wurde krigen fan it analysearjen fan it apparaat.
Litte wy fuortendaliks opmerke dat ferskate bestjoeringssystemen ferskate soarten WhatsApp-artefakten opslaan, en as in ûndersiker bepaalde soarten WhatsApp-gegevens fan ien apparaat kin ekstrahearje, betsjuttet dit net dat ferlykbere soarten gegevens kinne wurde ekstrahearre fan in oar apparaat. As bygelyks in systeemienheid mei Windows OS wurdt fuortsmiten, sille WhatsApp-petearen wierskynlik net op har skiven fûn wurde (mei útsûndering fan reservekopyen fan iOS-apparaten, dy't te finen binne op deselde skiven). It beslach fan laptops en mobile apparaten sil har eigen skaaimerken hawwe. Lit ús prate oer dit yn mear detail.
WhatsApp-artefakten op Android-apparaat
Om WhatsApp-artefakten fan in Android-apparaat te ekstrahearjen, moat de ûndersiker superuserrjochten hawwe ('woartel') op it ûndersochte apparaat of kinne oars in fysyk ûnthâld dump fan it apparaat, of syn bestânsysteem ekstrahearje (bygelyks mei software-kwetsberheden fan in spesifyk mobyl apparaat).
Applikaasjebestannen lizze yn it ûnthâld fan 'e tillefoan yn' e seksje wêryn brûkersgegevens wurde opslein. As regel wurdt dizze seksje neamd 'brûkersgegevens'. Submappen en programmabestannen lizze lâns it paad: '/data/data/com.whatsapp/'.
De wichtichste bestannen dy't WhatsApp forensyske artefakten befetsje yn it Android OS binne databases 'wa.db' и 'msgstore.db'.
Yn de databank 'wa.db' befettet de folsleine kontaktlist fan in WhatsApp-brûker, ynklusyf telefoannûmer, werjeftenamme, tiidstempels, en alle oare ynformaasje levere by registrearjen foar WhatsApp. Map 'wa.db' leit lâns it paad: '/data/data/com.whatsapp/databases/' en hat de folgjende struktuer:
De meast nijsgjirrige tabellen yn 'e databank 'wa.db' foar de ûndersiker binne:
- 'wa_contacts'
Dizze tabel befettet kontaktynformaasje: WhatsApp-kontakt-id, statusynformaasje, brûkersnamme, tiidstempels, ensfh.Tafel uterlik:
Tabel struktuerFjildnamme wearde _id rekord folchoarder nûmer (yn SQL tabel) jid WhatsApp kontakt ID, skreaun yn it formaat <tillefoannûmer>@s.whatsapp.net is_whatsapp_brûker befettet '1' as it kontakt oerienkomt mei in werklike WhatsApp-brûker, '0' oars status befettet de tekst werjûn yn de kontaktstatus status_timestamp befettet in tiidstempel yn Unix Epoch Time (ms) opmaak nûmer telefoannûmer ferbûn mei it kontakt raw_contact_id kontakt serial number display_name kontakt display namme phone_type telefoan type phone_label label ferbûn mei it kontaktnûmer unseen_msg_count oantal berjochten dy't stjoerd binne troch in kontakt, mar net lêzen binne troch de ûntfanger foto_ts befettet in tiidstempel yn Unix Epoch Time-formaat thumb_ts befettet in tiidstempel yn Unix Epoch Time-formaat photo_id_timestamp befettet in tiidstempel yn Unix Epoch Time (ms) opmaak jûne namme fjildwearde komt oerien mei 'display_name' foar elk kontakt wa_name WhatsApp-kontaktnamme (de namme opjûn yn it profyl fan it kontakt wurdt werjûn) sort_name kontakt namme brûkt yn sortearring operaasjes nickname de bynamme fan kontakt yn WhatsApp (de bynamme opjûn yn it profyl fan it kontakt wurdt werjûn) bedriuw bedriuw (it bedriuw opjûn yn it profyl fan it kontakt wurdt werjûn) titel titel (Ms./Mr.; titel konfigureare yn it kontaktprofyl wurdt werjûn) offset bias - 'sqlite_sequence'
Dizze tabel befettet ynformaasje oer it oantal kontakten; - 'android_metadata'
Dizze tabel befettet ynformaasje oer WhatsApp-taallokalisaasje.
Yn de databank 'msgstore.db' befettet ynformaasje oer ferstjoerde berjochten, lykas kontaktnûmer, berjochttekst, berjochtstatus, tiidstempels, details fan oerdroegen bestannen opnommen yn berjochten, ensfh. Map 'msgstore.db' leit lâns it paad: '/data/data/com.whatsapp/databases/' en hat de folgjende struktuer:
De meast nijsgjirrige tabellen yn de triem 'msgstore.db' foar de ûndersiker binne:
- 'sqlite_sequence'
Dizze tabel befettet algemiene ynformaasje oer dizze databank, lykas it totale oantal opsleine berjochten, it totale oantal petearen, ensfh.Tafel uterlik:
- 'message_fts_content'
Befettet de tekst fan ferstjoerde berjochten.Tafel uterlik:
- 'berjochten'
Dizze tabel befettet ynformaasje lykas kontaktnûmer, berjochttekst, berjochtstatus, tiidstempels, ynformaasje oer oerdroegen bestannen opnommen yn berjochten.Tafel uterlik:
Tabel struktuerFjildnamme wearde _id rekord folchoarder nûmer (yn SQL tabel) key_remote_jid WhatsApp ID fan kommunikaasjepartner key_from_me berjochtrjochting: '0' - ynkommende, '1' - útgeande key_id unike berjochtidentifikaasje status berjochtstatus: '0' - levere, '4' - wachtsje op de tsjinner, '5' - ûntfongen op bestimming, '6' - kontrôleberjocht, '13' - berjocht iepene troch de ûntfanger (lêzen) need_push hat de wearde '2' as it in útstjoeringsberjocht is, oars befettet '0' data berjochttekst (as 'media_wa_type' parameter '0' is) tiidstempel befettet in tiidstempel yn Unix Epoch Time (ms) formaat, de wearde wurdt nommen fan 'e apparaatklok media_url befettet de URL fan it oerdroegen bestân (as de parameter 'media_wa_type' '1', '2', '3' is) media_mime_type MIME-type fan it oerdroegen bestân (as de parameter 'media_wa_type' lyk is oan '1', '2', '3') media_wa_type berjochttype: '0' - tekst, '1' - grafysk bestân, '2' - audiotriem, '3' - fideobestân, '4' - kontaktkaart, '5' - geodata media_grutte grutte fan it oerdroegen bestân (as de parameter 'media_wa_type' '1', '2', '3' is) media_name namme fan it oerdroegen bestân (as de parameter 'media_wa_type' '1', '2', '3' is) media_caption Befettet de wurden 'audio', 'fideo' foar de oerienkommende wearden fan 'e parameter 'media_wa_type' (as de 'media_wa_type' parameter '1', '3' is) media_hash base64 kodearre hash fan it ferstjoerde bestân, berekkene mei it HAS-256-algoritme (as de parameter 'media_wa_type' gelyk is oan '1', '2', '3') media_duration doer yn sekonden foar it mediabestân (as 'media_wa_type' '1', '2', '3' is) oarsprong hat de wearde '2' as it in útstjoeringsberjocht is, oars befettet '0' breedte geodata: breedtegraad (as 'media_wa_type' parameter '5' is) lingtegraad geodata: longitude (as 'media_wa_type' parameter '5' is) thumb_image tsjinst ynformaasje remote_resource Sender ID (allinich foar groepchats) ûntfongen_timestamp tiid fan ûntfangst, befettet in tiidstempel yn Unix Epoch Time (ms) formaat, de wearde wurdt nommen fan 'e apparaatklok (as de 'key_from_me' parameter '0', '-1' of oare wearde hat) send_timestamp net brûkt, hat normaal de wearde '-1' receipt_server_timestamp tiid ûntfongen troch de sintrale tsjinner, befettet in tiidstempel yn Unix Epoch Time (ms) formaat, de wearde wurdt nommen fan 'e apparaatklok (as de 'key_from_me' parameter '1', '-1' of oare wearde hat receipt_device_timestamp tiid dat it berjocht troch in oare abonnee ûntfongen is, in tiidstempel befettet yn Unix Epoch Time (ms) formaat, wurdt de wearde nommen fan 'e apparaatklok (as de parameter 'key_from_me' '1', '-1' of in oare wearde hat read_device_timestamp tiid fan it iepenjen (lêzen) fan it berjocht, befettet in tiidstempel yn Unix Epoch Time (ms) formaat, de wearde wurdt nommen fan 'e apparaatklok spile_device_timestamp berjochtôfspieltiid, befettet in tiidstempel yn Unix Epoch Time (ms) formaat, de wearde wurdt nommen fan 'e apparaatklok Net bewurke gegevens thumbnail fan it oerdroegen bestân (as de parameter 'media_wa_type' '1' of '3' is) ûntfanger_count oantal ûntfangers (foar útstjoeringsberjochten) participant_hash brûkt by it ferstjoeren fan berjochten mei geodata starred net brûkt quoted_row_id ûnbekend, befettet normaal de wearde '0' neamd_jids net brûkt multicast_id net brûkt offset bias Dizze list mei fjilden is net útputtend. Foar ferskate ferzjes fan WhatsApp kinne guon fjilden oanwêzich of ôfwêzich wêze. Derneist kinne fjilden oanwêzich wêze 'media_enc_hash', 'bewurkje_ferzje', 'payment_transaction_id' en sa fierder.
- 'messages_thumbnails'
Dizze tabel befettet ynformaasje oer oerdroegen ôfbyldings en tiidstempels. Yn de kolom 'timestamp' wurdt de tiid oanjûn yn Unix Epoch Time (ms) formaat. - 'chatlist'
Dizze tabel befettet ynformaasje oer petearen.Tafel uterlik:
Ek as jo WhatsApp ûndersykje op in mobyl apparaat mei Android, moatte jo omtinken jaan oan de folgjende bestannen:
- file 'msgstore.db.cryptXX' (wêr't XX ien of twa sifers is fan 0 oant 12, bygelyks, msgstore.db.crypt12). Befettet in fersifere reservekopy fan WhatsApp-berjochten (reservekopybestân msgstore.db). Triem(en) 'msgstore.db.cryptXX' leit lâns it paad: '/data/media/0/WhatsApp/Databases/' (firtuele SD-kaart), '/mnt/sdcard/WhatsApp/Databases/ (fysike SD-kaart)'.
- file 'kaai'. Befettet in kryptografyske kaai. Lizzend lâns it paad: '/data/data/com.whatsapp/files/'. Wurdt brûkt om fersifere WhatsApp-backups te ûntsiferjen.
- file 'com.whatsapp_preferences.xml'. Befettet ynformaasje oer jo WhatsApp-akkountprofyl. De triem leit lâns it paad: '/data/data/com.whatsapp/shared_prefs/'.
File ynhâld fragmint
<?xml version="1.0" encoding="ISO-8859-1"?> … <string name="ph">9123456789</string> (номер телефона, ассоциированный с аккаунтом WhatsApp) … <string name="version">2.17.395</string> (версия WhatsApp) … <string name="my_current_status">Hey there! I am using WhatsApp.</string> (сообщение, отображаемое в статусе аккаунта) … <string name="push_name">Alex</string> (имя владельца аккаунта) …
- file 'registration.RegisterPhone.xml'. Befettet ynformaasje oer it telefoannûmer ferbûn mei it WhatsApp-akkount. De triem leit lâns it paad: '/data/data/com.whatsapp/shared_prefs/'.
Triem ynhâld
<?xml version="1.0" encoding="ISO-8859-1"?> <map> <string name="com.whatsapp.registration.RegisterPhone.phone_number">9123456789</string> <int name="com.whatsapp.registration.RegisterPhone.verification_state" value="0"/> <int name="com.whatsapp.registration.RegisterPhone.country_code_position" value="-1"/> <string name="com.whatsapp.registration.RegisterPhone.input_phone_number">912 345-67-89</string> <int name="com.whatsapp.registration.RegisterPhone.phone_number_position" value="10"/> <string name="com.whatsapp.registration.RegisterPhone.input_country_code">7</string> <string name="com.whatsapp.registration.RegisterPhone.country_code">7</string> </map>
- file 'axolotl.db'. Befettet kryptografyske kaaien en oare gegevens dy't nedich binne om de akkounteigner te identifisearjen. Lizzend lâns it paad: '/data/data/com.whatsapp/databases/'.
- file 'chatsettings.db'. Befettet ynformaasje oer applikaasjekonfiguraasje.
- file 'wa.db'. Befettet kontaktgegevens. In heul ynteressante (fanút in forensysk aspekt) en ynformative databank. It kin detaillearre ynformaasje befetsje oer wiske kontakten.
Jo moatte ek omtinken jaan oan de folgjende mappen:
- directory '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Befettet oerdroegen grafyske bestannen.
- directory '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Befettet stimberjochten yn bestannen yn .OPUS-formaat.
- directory '/data/data/com.whatsapp/cache/Profile Pictures/'. Befettet grafyske bestannen - ôfbyldings fan kontakten.
- directory '/data/data/com.whatsapp/files/Avatars/'. Befettet grafyske bestannen - thumbnailôfbyldings fan kontakten. Dizze triemmen hawwe in '.j' tafoeging mar binne dochs JPEG (JPG) ôfbyldingsbestannen.
- directory '/data/data/com.whatsapp/files/Avatars/'. Befettet grafyske bestannen - in ôfbylding en in thumbnail fan 'e ôfbylding ynsteld as in avatar troch de akkounteigner.
- directory '/data/data/com.whatsapp/files/Logs/'. Befettet it programma-operaasje-log (bestân 'whatsapp.log') en reservekopyen fan programma-operaasje-logs (bestannen mei nammen yn it formaat whatsapp-yyyy-mm-dd.1.log.gz).
WhatsApp-logbestannen:
Journal fragmint2017-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 annulearje wier
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] wachtwurdbestân ûntbrekt of net te lêzen
2017-01-10 09:37:09.782 LL_I D [1:main] statistics Tekstberjochten: 59 ferstjoerd, 82 ûntfongen / Mediaberjochten: 1 ferstjoerd (0 bytes), 0 ûntfongen (9850158 bytes) / Offline berjochten: 81 ûntfongen ( 19522 msec gemiddelde fertraging) / Berjochttsjinst: 116075 bytes ferstjoerd, 211729 bytes ûntfongen / Voip-oproppen: 1 útgeande petearen, 0 ynkommende petearen, 2492 bytes ferstjoerd, 1530 bytes ûntfongen / Google Drive: 0 bytes ferstjoerd, 0 bytes ûntfongen / 1524 roaming: bytes ferstjoerd, 1826 bytes ûntfongen / Totaal gegevens: 118567 bytes ferstjoerd, 10063417 bytes ûntfongen
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 | tiid:8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] media-state-manager/refresh-media-state/interne-storage beskikber:1,345,622,016 totaal:5,687,922,688
- directory '/data/media/0/WhatsApp/Media/WhatsApp Audio/'. Befettet de ûntfongen audiobestannen.
- directory '/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/'. Befettet ferstjoerde audiobestannen.
- directory '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Befettet de resultearjende grafyske bestannen.
- directory '/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/'. Befettet ferstjoerde grafyske bestannen.
- directory '/data/media/0/WhatsApp/Media/WhatsApp Video/'. Befettet ûntfongen fideobestannen.
- directory '/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/'. Befettet ferstjoerde fideobestannen.
- directory '/data/media/0/WhatsApp/Media/WhatsApp profylfoto's/'. Befettet grafyske bestannen ferbûn mei de eigner fan it WhatsApp-akkount.
- Om ûnthâldromte op jo Android-smartphone te besparjen, kinne guon WhatsApp-gegevens wurde opslein op in SD-kaart. Op de SD-kaart, yn 'e root-map, is in map 'WhatsApp', wêr't de folgjende artefakten fan dit programma te finen binne:
- directory '.Diele' ('/mnt/sdcard/WhatsApp/.Share/'). Befettet kopyen fan bestannen dy't binne dield mei oare WhatsApp-brûkers.
- directory '.Rommel' ('/mnt/sdcard/WhatsApp/.trash/'). Befettet wiske triemmen.
- directory 'Databanken' ('/mnt/sdcard/WhatsApp/Databases/'). Befettet fersifere backups. Se kinne wurde ûntsifere as it bestân oanwêzich is 'kaai', helle út it ûnthâld fan it analysearre apparaat.
Triemmen lizze yn in submap 'Databanken':
- directory 'Heal' ('/mnt/sdcard/WhatsApp/Media/'). Befettet submappen 'WallPaper', 'WhatsApp Audio', 'WhatsApp-ôfbyldings', 'WhatsApp profylfoto's', 'WhatsApp-fideo', 'WhatsApp Voice Notes'.
- directory 'Profylfoto's' ('/mnt/sdcard/WhatsApp/Profile Pictures/'). Befettet grafyske bestannen assosjearre mei it profyl fan de eigner fan 'e WhatsApp-akkount.
- Soms kin der in map oanwêzich wêze op 'e SD-kaart 'bestannen' ('/mnt/sdcard/WhatsApp/Files/'). Dizze map befettet bestannen dy't programma-ynstellingen en brûkersfoarkarren bewarje.
Funksjes fan gegevens opslach yn guon modellen fan mobile apparaten
Guon modellen fan mobile apparaten mei Android OS kinne WhatsApp-artefakten op in oare lokaasje opslaan. Dit komt troch feroaringen yn 'e opslachromte fan applikaasjegegevens troch de systeemsoftware fan it mobyl apparaat. Bygelyks, Xiaomi mobile apparaten hawwe in funksje foar it meitsjen fan in twadde wurkromte ("SecondSpace"). As dizze funksje is aktivearre, feroaret de lokaasje fan de gegevens. Dus, as yn in gewoan mobyl apparaat mei Android OS brûkersgegevens wurde opslein yn 'e map '/data/brûker/0/' (wat is in ferwizing nei it gewoane '/data/data/'), dan wurde yn 'e twadde wurkromte applikaasje gegevens opslein yn' e map '/data/brûker/10/'. Dat is, mei help fan it foarbyld fan de triem lokaasje 'wa.db':
- yn in gewoane smartphone mei Android OS: /data/user/0/com.whatsapp/databases/wa.db' (wat lykweardich is '/data/data/com.whatsapp/databases/wa.db');
- yn 'e twadde wurkromte fan' e Xiaomi-smartphone: '/data/user/10/com.whatsapp/databases/wa.db'.
WhatsApp-artefakten op iOS-apparaat
Oars as Android OS, yn iOS WhatsApp applikaasje gegevens wurde oerdroegen oan in reservekopy (iTunes backup). Dêrom is it ekstrahearjen fan gegevens út dizze applikaasje net nedich om it bestânsysteem te ekstrahearjen of in fysike ûnthâlddump te meitsjen fan it ûndersochte apparaat. De measte relevante ynformaasje is befette yn 'e databank 'ChatStorage.sqlite', dat lâns it paad leit: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/' (yn guon programma's ferskynt dit paad as 'AppDomainGroup-group.net.whatsapp.WhatsApp.shared').
struktuer 'ChatStorage.sqlite':
De meast ynformative tabellen yn 'e 'ChatStorage.sqlite' databank binne 'ZWAMESSAGE' и 'ZWAMEDIAITEM'.
Tafel uterlik 'ZWAMESSAGE':
Struktuer fan tabel 'ZWAMESSAGE'
Fjildnamme | wearde |
---|---|
Z_PK | rekord folchoarder nûmer (yn SQL tabel) |
Z_ENT | tabel identifier, hat de wearde '9' |
Z_OPT | ûnbekend, befettet normaal wearden fan '1' oant '6' |
ZCHILDMESSAGESDELIVEREDCOUNT | ûnbekend, befettet normaal de wearde '0' |
ZCHILDMESSAGESPLAYEDCOUNT | ûnbekend, befettet normaal de wearde '0' |
ZCHILDMESSAGESREADCOUNT | ûnbekend, befettet normaal de wearde '0' |
ZDATAITEMVERSION | ûnbekend, meastal befettet de wearde '3', wierskynlik in tekst berjocht yndikator |
ZDOCID | is net bekend |
ZENCRETRYCOUNT | ûnbekend, befettet normaal de wearde '0' |
ZFILTEREDRECIPIENTCOUNT | ûnbekend, befettet normaal de wearden '0', '2', '256' |
ZISFROMME | berjochtrjochting: '0' - ynkommende, '1' - útgeande |
ZMESSAGEERRORSTATUS | berjocht oerdracht status. As it berjocht ferstjoerd/ûntfongen is, dan hat it de wearde '0' |
ZMESSAGETYPE | type berjocht dat wurdt ferstjoerd |
ZSORT | is net bekend |
ZSPOTLIGHSTATUS | is net bekend |
ZSTARRED | ûnbekend, net brûkt |
ZCHATSESSION | is net bekend |
ZGROUPLID | ûnbekend, net brûkt |
ZLASTSESSION | is net bekend |
ZMEDIAITEM | is net bekend |
ZMESSAGEINFO | is net bekend |
ZPARENTMESSAGE | ûnbekend, net brûkt |
ZMESSAGEDATE | tiidstempel yn OS X Epoch Time-formaat |
ZSENTDATE | tiid dat it berjocht ferstjoerd waard yn OS X Epoch Time-formaat |
ZFROMJID | WhatsApp Sender ID |
ZMEDIASECTIONID | befettet it jier en de moanne dat it mediabestân ferstjoerd is |
ZPHASH | ûnbekend, net brûkt |
ZPUSHPAME | namme fan de kontaktpersoan dy't it mediabestân yn UTF-8-formaat stjoerde |
ZSTANZID | unike berjochtidentifikaasje |
ZTEXT | Berjocht tekst |
ZTOJID | De WhatsApp ID fan de ûntfanger |
OFFSET | bias |
Tafel uterlik 'ZWAMEDIAITEM':
Struktuer fan tabel 'ZWAMEDIAITEM'
Fjildnamme | wearde |
---|---|
Z_PK | rekord folchoarder nûmer (yn SQL tabel) |
Z_ENT | tabel identifier, hat de wearde '8' |
Z_OPT | ûnbekend, befettet normaal wearden fan '1' oant '3'. |
ZCLOUDSTATUS | befettet de wearde '4' as de triem is laden. |
ZFILESIZE | befettet de triem lingte (yn bytes) foar ynladen triemmen |
ZMEDIAORIGIN | ûnbekend, hat normaal de wearde '0' |
ZMOVIEDURATION | doer fan it mediabestân, foar pdf-bestannen kinne it oantal siden fan it dokumint befetsje |
ZMESSAGE | befettet in searjenûmer (it nûmer is oars as dat oanjûn is yn 'e 'Z_PK' kolom) |
ZASPECTRATIO | aspect ratio, net brûkt, meastal ynsteld op '0' |
ZHACCURACY | ûnbekend, hat normaal de wearde '0' |
ZLATTITUDE | breedte yn piksels |
ZLONGTITUDE | hichte yn piksels |
ZMEDIAURLDATE | tiidstempel yn OS X Epoch Time-formaat |
ZAUTHORNAME | auteur (foar dokuminten, kin de triemnamme befetsje) |
ZCOLLECTIONNAME | net brûkt |
ZMEDIALOCALPATH | triemnamme (ynklusyf paad) yn it apparaatbestânsysteem |
ZMEDIAURL | De URL wêr't it mediabestân siet. As in bestân is oerbrocht fan de iene abonnee nei de oare, is it fersifere en de tafoeging sil oanjûn wurde as de útwreiding fan it oerdroegen bestân - .enc |
ZTHUMBNAILLOCALPATH | paad nei de triemminiatuer yn it apparaatbestânsysteem |
ZTITLE | triem header |
ZVCARDNAME | hash fan it mediabestân; by it oerbringen fan it bestân nei in groep kin it de stjoerder-identifikaasje befetsje |
ZVCARDSTRING | befettet ynformaasje oer it type triem dat wurdt oerdroegen (bygelyks ôfbylding/jpeg); by it oerbringen fan in bestân nei in groep kin it de identifier fan de ûntfanger befetsje |
ZXMPPTHUMBPATH | paad nei de triemminiatuer yn it apparaatbestânsysteem |
ZMEDIAKEY | ûnbekend, befettet wierskynlik de kaai om it fersifere bestân te ûntsiferjen. |
ZMETADATA | metadata fan it ferstjoerde berjocht |
Offset | bias |
Oare nijsgjirrige database tabellen 'ChatStorage.sqlite' binne:
- 'ZWAPROFILEPUSHNAME'. Komt oerien mei WhatsApp ID mei kontaktnamme;
- 'ZWAPROFILEPICTUREITEM'. Komt oerien mei WhatsApp ID mei kontaktavatar;
- 'Z_PRIMARYKEY'. De tabel befettet algemiene ynformaasje oer dizze databank, lykas it totale oantal opsleine berjochten, it totale oantal petearen, ensfh.
Ek as jo WhatsApp ûndersykje op in mobyl apparaat mei iOS, moatte jo omtinken jaan oan de folgjende bestannen:
- file 'BackedUpKeyValue.sqlite'. Befettet kryptografyske kaaien en oare gegevens dy't nedich binne om de akkounteigner te identifisearjen. Lizzend lâns it paad: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- file 'ContactsV2.sqlite'. Befettet ynformaasje oer de kontakten fan 'e brûker, lykas folsleine namme, telefoannûmer, kontaktstatus (yn tekstfoarm), WhatsApp ID, ensfh. Lizzend lâns it paad: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- file 'consumer_version'. Befettet it ferzjenûmer fan 'e ynstalleare WhatsApp-applikaasje. Lizzend lâns it paad: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- file 'current_wallpaper.jpg'. Befettet de hjoeddeistige WhatsApp eftergrûn wallpaper. Lizzend lâns it paad: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Aldere ferzjes fan 'e applikaasje brûke it bestân 'wallpaper', dat lâns it paad leit: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'.
- file 'blockedcontacts.dat'. Befettet ynformaasje oer blokkearre kontakten. Lizzend lâns it paad: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
- file 'pw.dat'. Befettet in fersifere wachtwurd. Lizzend lâns it paad: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/'.
- file 'net.whatsapp.WhatsApp.plist' (of triem 'group.net.whatsapp.WhatsApp.shared.plist'). Befettet ynformaasje oer jo WhatsApp-akkountprofyl. De triem leit lâns it paad: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/'.
Ynhâld fan it bestân 'group.net.whatsapp.WhatsApp.shared.plist'
Jo moatte ek omtinken jaan oan de folgjende mappen:
- directory '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/'. Befettet thumbnails fan kontakten, groepen (bestannen mei de tafoeging .tomme), kontakt avatars, avatar fan eigner fan WhatsApp-akkount (bestân 'Photo.jpg').
- directory '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/'. Befettet multymediale bestannen en har thumbnails
- directory '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'. Befettet it programma operaasje log (bestân 'calls.log') en reservekopyen fan programma operaasje logs (bestân 'calls.backup.log').
- directory '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/'. Befettet stickers (bestannen yn it formaat '.webp').
- directory '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/'. Befettet programma operaasje logs.
WhatsApp artefakten op Windows
WhatsApp-artefakten op Windows kinne op ferskate plakken fûn wurde. Alderearst binne dit mappen mei útfierbere en helpprogramma-bestannen (foar Windows 8/10):
- 'C:Program Files (x86)WhatsApp'
- 'C:Users%User profile% AppDataLocalWhatsApp'
- 'C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp'
Yn katalogus 'C:Users%User profile% AppDataLocalWhatsApp' it logtriem is te finen 'SquirrelSetup.log', dy't ynformaasje befettet oer it kontrolearjen op updates en it ynstallearjen fan it programma.
Yn katalogus 'C:Users%User profile% AppDataRoamingWhatsApp' D'r binne ferskate submappen:
file 'main-process.log' befettet ynformaasje oer de wurking fan it WhatsApp-programma.
Subdirectory 'databases' befettet in triem 'Databases.db', mar dit bestân befettet gjin ynformaasje oer petearen of kontakten.
De meast nijsgjirrige út in forensysk eachpunt binne de bestannen yn 'e map 'Cache'. Dit binne yn prinsipe bestannen neamd 'f*******' (wêr't * in nûmer fan 0 oant 9 is) mei fersifere multymediale bestannen en dokuminten, mar d'r binne ek net-fersifere bestannen ûnder. Fan bysûnder belang binne de triemmen 'data_0', 'data_1', 'data_2', 'data_3', leit yn deselde submap. Bestannen 'data_0', 'data_1', 'data_3' befetsje eksterne keppelings nei fersifere fersifere multimediabestannen en dokuminten.
Foarbyld fan ynformaasje befette yn triem 'data_1'
Ek triem 'data_3' kin grafyske triemmen befetsje.
file 'data_2' befettet kontaktavatars (kinne wurde hersteld troch te sykjen troch triemkoppen).
Avatars befette yn de triem 'data_2':
Sa kinne de petearen sels net fûn wurde yn it ûnthâld fan 'e kompjûter, mar jo kinne fine:
- multimedia triemmen;
- dokuminten oerdroegen fia WhatsApp;
- ynformaasje oer de kontakten fan de akkount eigner.
WhatsApp artefakten op MacOS
Yn MacOS kinne jo soarten WhatsApp-artefakten fine lykas dy fûn yn Windows OS.
De programmabestannen binne te finen yn 'e folgjende mappen:
- 'C:ApplikaasjesWhatsApp.app'
- 'C:Applications._WhatsApp.app'
- 'C:Users%Brûkersprofyl%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 <text variable> WhatsApp Accounts'
Dizze map befettet submappen wêrfan de nammen telefoannûmers binne ferbûn mei de eigner fan it WhatsApp-akkount. - 'C:Users%User profile%LibraryCachesWhatsApp.ShipIt'
Dizze map befettet ynformaasje oer it ynstallearjen fan it programma. - 'C:Users%User profile%PicturesiPhoto Library.photolibraryMasters', 'C:Users%User profile%PicturesiPhoto Library.photolibraryThumbnails'
Dizze mappen befetsje tsjinstbestannen fan it programma, ynklusyf foto's en thumbnails fan WhatsApp-kontakten. - 'C:Users%User profile%LibraryCachesWhatsApp'
Dizze map befettet ferskate SQLite-databases dy't wurde brûkt foar gegevenscaching. - 'C:Users%User profile%LibraryApplication SupportWhatsApp'
Dizze map befettet ferskate submappen:
Yn katalogus 'C:Users%User profile%LibraryApplication SupportWhatsAppCache' der binne triemmen 'data_0', 'data_1', 'data_2', 'data_3' en triemmen mei nammen 'f*******' (wêr't * in nûmer fan 0 oant 9 is). Foar ynformaasje oer hokker ynformaasje dizze bestannen befetsje, sjoch WhatsApp Artifacts op Windows.Yn katalogus 'C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB' kin multimediabestannen befetsje (bestannen hawwe gjin tafoegings).
file 'main-process.log' befettet ynformaasje oer de wurking fan it WhatsApp-programma.
Boarnen
- Forensyske analyze fan WhatsApp Messenger op Android-smartphones, troch Cosimo Anglano, 2014.
- Whatsapp Forensics: Eksploraasjesysteem basearre op basisgegevens mei Android en iOS troch Ahmad Pratama, 2014.
Yn de folgjende artikels yn dizze searje:
Dekodearring fan fersifere WhatsApp-databasesIn artikel dat ynformaasje sil leverje oer hoe't de WhatsApp-kodearringskaai wurdt generearre en praktyske foarbylden dy't sjen litte hoe't jo de fersifere databases fan dizze applikaasje kinne ûntsiferje.
WhatsApp-gegevens ekstrahearje fan wolkopslachIn artikel wêryn wy jo sille fertelle hokker WhatsApp-gegevens yn 'e wolken wurde opslein en metoaden beskriuwe foar it opheljen fan dizze gegevens út wolkopslaggen.
WhatsApp-gegevensekstraksje: praktyske foarbyldenIn artikel dat stap foar stap sil beskriuwe hokker programma's en hoe't jo WhatsApp-gegevens kinne ekstrahearje fan ferskate apparaten.
Boarne: www.habr.com