WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?

WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?

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

WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
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:

WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
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:

    WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
    Tabel struktuer

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

WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
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:

    WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?

  • 'message_fts_content'
    Befettet de tekst fan ferstjoerde berjochten.

    Tafel uterlik:

    WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?

  • 'berjochten'
    Dizze tabel befettet ynformaasje lykas kontaktnûmer, berjochttekst, berjochtstatus, tiidstempels, ynformaasje oer oerdroegen bestannen opnommen yn berjochten.

    Tafel uterlik:

    WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
    Tabel struktuer

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

    WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?

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:

WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
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:

    WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?

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

    WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?

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

WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
De meast ynformative tabellen yn 'e 'ChatStorage.sqlite' databank binne 'ZWAMESSAGE' и 'ZWAMEDIAITEM'.

Tafel uterlik 'ZWAMESSAGE':

WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
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':

WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
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' WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
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:

WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
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'WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
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':

WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
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:

    WhatsApp yn 'e palm fan jo hân: wêr en hoe kinne jo forensyske artefakten fine?
    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

  1. Forensyske analyze fan WhatsApp Messenger op Android-smartphones, troch Cosimo Anglano, 2014.
  2. 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

Add a comment