WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?

WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?

Jika anda ingin mengetahui jenis artifak forensik WhatsApp yang wujud pada sistem pengendalian yang berbeza dan di mana sebenarnya ia boleh ditemui, maka ini adalah tempat untuk anda. Artikel ini adalah daripada pakar di Makmal Forensik Komputer Kumpulan-IB Igor Mikhailov memulakan satu siri siaran tentang forensik WhatsApp dan maklumat yang boleh diperoleh daripada menganalisis peranti.

Mari segera ambil perhatian bahawa sistem pengendalian yang berbeza menyimpan jenis artifak WhatsApp yang berbeza, dan jika penyelidik boleh mengekstrak jenis data WhatsApp tertentu daripada satu peranti, ini tidak bermakna jenis data yang serupa boleh diekstrak daripada peranti lain. Contohnya, jika unit sistem yang menjalankan OS Windows dialih keluar, sembang WhatsApp mungkin tidak akan ditemui pada cakeranya (kecuali salinan sandaran peranti iOS, yang boleh ditemui pada pemacu yang sama). Rampasan komputer riba dan peranti mudah alih akan mempunyai ciri-ciri tersendiri. Mari kita bercakap tentang ini dengan lebih terperinci.

Artifak WhatsApp dalam peranti Android

Untuk mengekstrak artifak WhatsApp daripada peranti Android, penyelidik mesti mempunyai hak pengguna super ('akar') pada peranti yang sedang disiasat atau boleh mengekstrak longgokan memori fizikal peranti, atau sistem failnya (contohnya, menggunakan kelemahan perisian peranti mudah alih tertentu).

Fail aplikasi terletak dalam memori telefon dalam bahagian di mana data pengguna disimpan. Sebagai peraturan, bahagian ini dinamakan 'Data pengguna'. Subdirektori dan fail program terletak di sepanjang laluan: '/data/data/com.whatsapp/'.

WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
Fail utama yang mengandungi artifak forensik WhatsApp dalam OS Android ialah pangkalan data 'wa.db' ΠΈ 'msgstore.db'.

Dalam pangkalan data 'wa.db' mengandungi senarai kenalan lengkap pengguna WhatsApp, termasuk nombor telefon, nama paparan, cap masa dan sebarang maklumat lain yang diberikan semasa mendaftar untuk WhatsApp. Fail 'wa.db' terletak di sepanjang laluan: '/data/data/com.whatsapp/databases/' dan mempunyai struktur berikut:

WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
Jadual paling menarik dalam pangkalan data 'wa.db' bagi pengkaji ialah:

  • 'wa_contacts'
    Jadual ini mengandungi maklumat hubungan: id kenalan WhatsApp, maklumat status, nama paparan pengguna, cap masa, dsb.

    Penampilan meja:

    WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
    Struktur jadual

    Nama medan Nilai
    _ID rekod nombor urutan (dalam jadual SQL)
    jid ID kenalan WhatsApp, ditulis dalam format <nombor telefon>@s.whatsapp.net
    is_whatsapp_user mengandungi '1' jika kenalan sepadan dengan pengguna WhatsApp sebenar, '0' sebaliknya
    terkini mengandungi teks yang dipaparkan dalam status kenalan
    status_cap masa mengandungi cap masa dalam format Unix Epoch Time (ms).
    nombor nombor telefon yang dikaitkan dengan kenalan
    raw_contact_id nombor siri hubungi
    DISPLAY_NAME nama paparan kenalan
    phone_type jenis telefon
    label_telefon label yang dikaitkan dengan nombor hubungan
    unseen_msg_count bilangan mesej yang dihantar oleh kenalan tetapi tidak dibaca oleh penerima
    photo_ts mengandungi cap masa dalam format Unix Epoch Time
    thumb_ts mengandungi cap masa dalam format Unix Epoch Time
    photo_id_timestamp mengandungi cap masa dalam format Unix Epoch Time (ms).
    nama diberi nilai medan sepadan dengan 'display_name' untuk setiap kenalan
    nama_wa Nama kenalan WhatsApp (nama yang dinyatakan dalam profil kenalan dipaparkan)
    sort_name nama kenalan yang digunakan dalam operasi isihan
    nama samaran nama panggilan kenalan dalam WhatsApp (nama panggilan yang dinyatakan dalam profil kenalan dipaparkan)
    syarikat syarikat (syarikat yang dinyatakan dalam profil kenalan dipaparkan)
    tajuk tajuk (Cik/Encik; tajuk yang dikonfigurasikan dalam profil kenalan dipaparkan)
    mengimbangi berat sebelah
  • 'sqlite_sequence'
    Jadual ini mengandungi maklumat tentang bilangan kenalan;
  • 'android_metadata'
    Jadual ini mengandungi maklumat tentang penyetempatan bahasa WhatsApp.

Dalam pangkalan data 'msgstore.db' mengandungi maklumat tentang mesej yang dihantar, seperti nombor hubungan, teks mesej, status mesej, cap masa, butiran fail yang dipindahkan termasuk dalam mesej, dsb. Fail 'msgstore.db' terletak di sepanjang laluan: '/data/data/com.whatsapp/databases/' dan mempunyai struktur berikut:

WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
Jadual paling menarik dalam fail 'msgstore.db' bagi pengkaji ialah:

  • 'sqlite_sequence'
    Jadual ini mengandungi maklumat umum tentang pangkalan data ini, seperti jumlah bilangan mesej yang disimpan, jumlah bilangan sembang, dsb.

    Penampilan meja:

    WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?

  • 'message_fts_content'
    Mengandungi teks mesej yang dihantar.

    Penampilan meja:

    WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?

  • 'mesej'
    Jadual ini mengandungi maklumat seperti nombor hubungan, teks mesej, status mesej, cap masa, maklumat mengenai fail yang dipindahkan termasuk dalam mesej.

    Penampilan meja:

    WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
    Struktur jadual

    Nama medan Nilai
    _ID rekod nombor urutan (dalam jadual SQL)
    key_remote_jid ID WhatsApp rakan kongsi komunikasi
    kunci_daripada_saya arah mesej: '0' – masuk, '1' – keluar
    key_id pengecam mesej unik
    terkini status mesej: '0' – dihantar, '4' – menunggu di pelayan, '5' – diterima di destinasi, '6' – mesej kawalan, '13' – mesej dibuka oleh penerima (baca)
    perlu_tolak mempunyai nilai '2' jika ia adalah mesej siaran, jika tidak mengandungi '0'
    data teks mesej (apabila parameter 'media_wa_type' ialah '0')
    cap masa mengandungi cap masa dalam format Unix Epoch Time (ms), nilai diambil daripada jam peranti
    url_media mengandungi URL fail yang dipindahkan (apabila parameter 'media_wa_type' ialah '1', '2', '3')
    media_mime_type Jenis MIME fail yang dipindahkan (apabila parameter 'media_wa_type' adalah sama dengan '1', '2', '3')
    media_wa_type jenis mesej: '0' - teks, '1' - fail grafik, '2' - fail audio, '3' - fail video, '4' - kad kenalan, '5' - geodata
    saiz_media saiz fail yang dipindahkan (apabila parameter 'media_wa_type' ialah '1', '2', '3')
    nama_media nama fail yang dipindahkan (apabila parameter 'media_wa_type' ialah '1', '2', '3')
    kapsyen_media Mengandungi perkataan 'audio', 'video' untuk nilai sepadan parameter 'media_wa_type' (apabila parameter 'media_wa_type' ialah '1', '3')
    media_hash cincangan yang dikodkan base64 bagi fail yang dihantar, dikira menggunakan algoritma HAS-256 (apabila parameter 'media_wa_type' adalah sama dengan '1', '2', '3')
    tempoh_media tempoh dalam beberapa saat untuk fail media (apabila 'media_wa_type' ialah '1', '2', '3')
    asal mempunyai nilai '2' jika ia adalah mesej siaran, jika tidak mengandungi '0'
    latitud geodata: latitud (apabila parameter 'media_wa_type' ialah '5')
    longitud geodata: longitud (apabila parameter 'media_wa_type' ialah '5')
    thumb_image maklumat perkhidmatan
    remote_resource ID Pengirim (untuk sembang kumpulan sahaja)
    received_timestamp masa penerimaan, mengandungi cap masa dalam format Unix Epoch Time (ms), nilai diambil daripada jam peranti (apabila parameter 'key_from_me' mempunyai '0', '-1' atau nilai lain)
    send_timestamp tidak digunakan, biasanya mempunyai nilai '-1'
    resit_pelayan_cap masa masa yang diterima oleh pelayan pusat, mengandungi cap waktu dalam format Unix Epoch Time (ms), nilai diambil daripada jam peranti (apabila parameter 'key_from_me' mempunyai '1', '-1' atau nilai lain
    resit_device_timestamp masa mesej diterima oleh pelanggan lain, mengandungi cap masa dalam format Unix Epoch Time (ms), nilai diambil daripada jam peranti (apabila parameter 'key_from_me' mempunyai '1', '-1' atau nilai lain
    baca_device_timestamp masa membuka (membaca) mesej, mengandungi cap waktu dalam format Unix Epoch Time (ms), nilai diambil daripada jam peranti
    playing_device_timestamp masa main balik mesej, mengandungi cap masa dalam format Unix Epoch Time (ms), nilai diambil daripada jam peranti
    raw_data lakaran kecil fail yang dipindahkan (apabila parameter 'media_wa_type' ialah '1' atau '3')
    bilangan_penerima bilangan penerima (untuk mesej siaran)
    cincang_peserta digunakan semasa menghantar mesej dengan geodata
    membintangi tidak digunakan
    quoted_row_id tidak diketahui, biasanya mengandungi nilai '0'
    mention_jids tidak digunakan
    multicast_id tidak digunakan
    mengimbangi berat sebelah

    Senarai medan ini tidak lengkap. Untuk versi WhatsApp yang berbeza, beberapa medan mungkin ada atau tiada. Selain itu, medan mungkin ada 'media_enc_hash', 'edit_version', 'id_transaksi_pembayaran' dan lain-lain

  • 'message_thumbnails'
    Jadual ini mengandungi maklumat tentang imej yang dipindahkan dan cap masa. Dalam lajur 'cap masa', masa ditunjukkan dalam format Unix Epoch Time (ms).
  • 'senarai_sembang'
    Jadual ini mengandungi maklumat tentang sembang.

    Penampilan meja:

    WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?

Selain itu, apabila memeriksa WhatsApp pada peranti mudah alih yang menjalankan Android, anda harus memberi perhatian kepada fail berikut:

  • fail 'msgstore.db.cryptXX' (dengan XX ialah satu atau dua digit dari 0 hingga 12, contohnya, msgstore.db.crypt12). Mengandungi sandaran mesej WhatsApp yang disulitkan (fail sandaran msgstore.db). Fail 'msgstore.db.cryptXX' terletak di sepanjang laluan: '/data/media/0/WhatsApp/Pangkalan Data/' (kad SD maya), '/mnt/sdcard/WhatsApp/Pangkalan Data/ (kad SD fizikal)'.
  • fail 'kunci'. Mengandungi kunci kriptografi. Terletak di sepanjang laluan: '/data/data/com.whatsapp/files/'. Digunakan untuk menyahsulit sandaran WhatsApp yang disulitkan.
  • fail 'com.whatsapp_preferences.xml'. Mengandungi maklumat tentang profil akaun WhatsApp anda. Fail terletak di sepanjang laluan: '/data/data/com.whatsapp/shared_prefs/'.

    Serpihan kandungan fail

    <?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> (имя Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°)
    … 
  • fail 'registration.RegisterPhone.xml'. Mengandungi maklumat tentang nombor telefon yang dikaitkan dengan akaun WhatsApp. Fail terletak di sepanjang laluan: '/data/data/com.whatsapp/shared_prefs/'.

    Kandungan fail

    <?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>
  • fail 'axolotl.db'. Mengandungi kunci kriptografi dan data lain yang diperlukan untuk mengenal pasti pemilik akaun. Terletak di sepanjang laluan: '/data/data/com.whatsapp/databases/'.
  • fail 'chatsettings.db'. Mengandungi maklumat konfigurasi aplikasi.
  • fail 'wa.db'. Mengandungi butiran hubungan. Pangkalan data yang sangat menarik (dari aspek forensik) dan bermaklumat. Ia boleh mengandungi maklumat terperinci tentang kenalan yang dipadamkan.

Anda juga perlu memberi perhatian kepada direktori berikut:

  • Direktori '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Mengandungi fail grafik yang dipindahkan.
  • Direktori '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Mengandungi mesej suara dalam fail format .OPUS.
  • Direktori '/data/data/com.whatsapp/cache/Gambar Profil/'. Mengandungi fail grafik – imej kenalan.
  • Direktori '/data/data/com.whatsapp/files/Avatars/'. Mengandungi fail grafik – imej kecil kenalan. Fail ini mempunyai sambungan '.j' tetapi tetap merupakan fail imej JPEG (JPG).
  • Direktori '/data/data/com.whatsapp/files/Avatars/'. Mengandungi fail grafik - imej dan lakaran kecil imej ditetapkan sebagai avatar oleh pemilik akaun.
  • Direktori '/data/data/com.whatsapp/files/Logs/'. Mengandungi log operasi program (fail 'whatsapp.log') dan salinan sandaran log operasi program (fail dengan nama dalam format whatsapp-yyyy-mm-dd.1.log.gz).

Fail Log WhatsApp:

WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
Serpihan jurnal2017-01-10 09:37:09.757 LL_I D [524:Pekerja WhatsApp #1] missedcallnotification/init count:0 timestamp:0
2017-01-10 09:37:09.758 LL_I D [524:Pekerja WhatsApp #1] pemberitahuan/kemas kini terlepas panggilan batal benar
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] fail kata laluan tiada atau tidak boleh dibaca
2017-01-10 09:37:09.782 LL_I D [1:utama] statistik Mesej Teks: 59 dihantar, 82 diterima / Mesej Media: 1 dihantar (0 bait), 0 diterima (9850158 bait) / Mesej Luar Talian: 81 diterima ( kelewatan purata 19522 msec) / Perkhidmatan Mesej: 116075 bait dihantar, 211729 bait diterima / Panggilan Voip: 1 panggilan keluar, 0 panggilan masuk, 2492 bait dihantar, 1530 bait diterima / Google Drive: 0 bait dihantar, 0 bait 1524: bait dihantar, 1826 bait diterima / Jumlah Data: 118567 bait dihantar, 10063417 bait diterima
2017-01-10 09:37:09.785 LL_I D [1:utama] media-negeri-pengurus/refresh-media-state/media-boleh tulis
2017-01-10 09:37:09.806 LL_I D [1:utama] app-init/initialize/timer/stop: 24
2017-01-10 09:37:09.811 LL_I D [1:utama] msgstore/checkhealth
2017-01-10 09:37:09.817 LL_I D [1:utama] msgstore/checkhealth/journal/delete false
2017-01-10 09:37:09.818 LL_I D [1:utama] msgstore/checkhealth/back/delete false
2017-01-10 09:37:09.818 LL_I D [1:utama] msgstore/checkdb/data/data/com.whatsapp/databases/msgstore.db
2017-01-10 09:37:09.819 LL_I D [1:utama] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017-01-10 09:37:09.820 LL_I D [1:utama] msgstore/checkdb/list _jobqueue-WhatsAppJobManager-journal 21032 drw=011
2017-01-10 09:37:09.820 LL_I D [1:utama] msgstore/checkdb/list axolotl.db 184320 drw=011
2017-01-10 09:37:09.821 LL_I D [1:utama] msgstore/checkdb/list axolotl.db-wal 436752 drw=011
2017-01-10 09:37:09.821 LL_I D [1:utama] msgstore/checkdb/list axolotl.db-shm 32768 drw=011
2017-01-10 09:37:09.822 LL_I D [1:utama] msgstore/checkdb/list msgstore.db 540672 drw=011
2017-01-10 09:37:09.823 LL_I D [1:utama] msgstore/checkdb/list msgstore.db-wal 0 drw=011
2017-01-10 09:37:09.823 LL_I D [1:utama] msgstore/checkdb/list msgstore.db-shm 32768 drw=011
2017-01-10 09:37:09.824 LL_I D [1:utama] msgstore/checkdb/list wa.db 69632 drw=011
2017-01-10 09:37:09.825 LL_I D [1:utama] msgstore/checkdb/list wa.db-wal 428512 drw=011
2017-01-10 09:37:09.825 LL_I D [1:utama] msgstore/checkdb/list wa.db-shm 32768 drw=011
2017-01-10 09:37:09.826 LL_I D [1:utama] msgstore/checkdb/list chatsettings.db 4096 drw=011
2017-01-10 09:37:09.826 LL_I D [1:utama] msgstore/checkdb/list chatsettings.db-wal 70072 drw=011
2017-01-10 09:37:09.827 LL_I D [1:utama] msgstore/checkdb/list chatsettings.db-shm 32768 drw=011
2017-01-10 09:37:09.838 LL_I D [1:utama] msgstore/checkdb/versi 1
2017-01-10 09:37:09.839 LL_I D [1:utama] msgstore/canquery
2017-01-10 09:37:09.846 LL_I D [1:utama] msgstore/canquery/count 1
2017-01-10 09:37:09.847 LL_I D [1:utama] msgstore/canquery/timer/stop: 8
2017-01-10 09:37:09.847 LL_I D [1:utama] msgstore/canquery 517 | masa yang dihabiskan:8
2017-01-10 09:37:09.848 LL_I D [529:Pekerja WhatsApp #3] pengurus keadaan media/keadaan-segar-media/storan dalaman tersedia:1,345,622,016 jumlah:5,687,922,688

  • Direktori '/data/media/0/WhatsApp/Media/WhatsApp Audio/'. Mengandungi fail audio yang diterima.
  • Direktori '/data/media/0/WhatsApp/Media/WhatsApp Audio/Hantar/'. Mengandungi fail audio yang dihantar.
  • Direktori '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Mengandungi fail grafik yang terhasil.
  • Direktori '/data/media/0/WhatsApp/Media/WhatsApp Images/Hantar/'. Mengandungi fail grafik yang dihantar.
  • Direktori '/data/media/0/WhatsApp/Media/WhatsApp Video/'. Mengandungi fail video yang diterima.
  • Direktori '/data/media/0/WhatsApp/Media/WhatsApp Video/Hantar/'. Mengandungi fail video yang dihantar.
  • Direktori '/data/media/0/WhatsApp/Media/Foto Profil WhatsApp/'. Mengandungi fail grafik yang dikaitkan dengan pemilik akaun WhatsApp.
  • Untuk menjimatkan ruang memori pada telefon pintar Android anda, beberapa data WhatsApp boleh disimpan pada kad SD. Pada kad SD, dalam direktori akar, terdapat direktori 'WhatsApp', di mana artifak berikut bagi program ini boleh didapati:

    WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?

  • Direktori '.Kongsi' ('/mnt/sdcard/WhatsApp/.Share/'). Mengandungi salinan fail yang telah dikongsi dengan pengguna WhatsApp lain.
  • Direktori '.sampah' ('/mnt/sdcard/WhatsApp/.trash/'). Mengandungi fail yang dipadam.
  • Direktori 'Pangkalan data' ('/mnt/sdcard/WhatsApp/Pangkalan Data/'). Mengandungi sandaran yang disulitkan. Mereka boleh dinyahsulit jika fail itu ada 'kunci', diekstrak daripada memori peranti yang dianalisis.

    Fail yang terletak dalam subdirektori 'Pangkalan data':

    WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?

  • Direktori 'Separuh' ('/mnt/sdcard/WhatsApp/Media/'). Mengandungi subdirektori 'Kertas Dinding', 'Audio WhatsApp', 'Imej WhatsApp', 'Foto Profil WhatsApp', 'Video WhatsApp', 'Nota Suara WhatsApp', yang mengandungi fail multimedia yang diterima dan dihantar (fail grafik, fail video, mesej suara, foto yang dikaitkan dengan profil pemilik akaun WhatsApp, kertas dinding).
  • Direktori 'Gambar profil' ('/mnt/sdcard/WhatsApp/Gambar Profil/'). Mengandungi fail grafik yang dikaitkan dengan profil pemilik akaun WhatsApp.
  • Kadangkala mungkin terdapat direktori pada kad SD 'fail' ('/mnt/sdcard/WhatsApp/Files/'). Direktori ini mengandungi fail yang menyimpan tetapan program dan pilihan pengguna.

Ciri storan data dalam beberapa model peranti mudah alih

Sesetengah model peranti mudah alih yang menjalankan OS Android mungkin menyimpan artifak WhatsApp di lokasi yang berbeza. Ini disebabkan oleh perubahan dalam ruang penyimpanan data aplikasi oleh perisian sistem peranti mudah alih. Sebagai contoh, peranti mudah alih Xiaomi mempunyai fungsi untuk mencipta ruang kerja kedua ("Ruang Kedua"). Apabila fungsi ini diaktifkan, lokasi data berubah. Jadi, jika dalam peranti mudah alih biasa yang menjalankan Android OS data pengguna disimpan dalam direktori '/data/pengguna/0/' (yang merujuk kepada yang biasa '/data/data/'), kemudian dalam data aplikasi ruang kerja kedua disimpan dalam direktori '/data/pengguna/10/'. Iaitu, menggunakan contoh lokasi fail 'wa.db':

  • dalam telefon pintar biasa yang menjalankan OS Android: /data/user/0/com.whatsapp/databases/wa.db' (yang setara '/data/data/com.whatsapp/databases/wa.db');
  • dalam ruang kerja kedua telefon pintar Xiaomi: '/data/user/10/com.whatsapp/databases/wa.db'.

Artifak WhatsApp dalam peranti iOS

Tidak seperti OS Android, dalam iOS data aplikasi WhatsApp dipindahkan ke salinan sandaran (sandaran iTunes). Oleh itu, mengekstrak data daripada aplikasi ini tidak memerlukan pengekstrakan sistem fail atau mencipta pembuangan memori fizikal peranti yang sedang disiasat. Kebanyakan maklumat yang berkaitan terkandung dalam pangkalan data 'ChatStorage.sqlite', yang terletak di sepanjang laluan: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/' (dalam beberapa program laluan ini muncul sebagai 'AppDomainGroup-group.net.whatsapp.WhatsApp.shared').

Struktur 'ChatStorage.sqlite':

WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
Jadual yang paling bermaklumat dalam pangkalan data 'ChatStorage.sqlite' ialah 'ZWAMESSAGE' ΠΈ 'ZWAMEDIAIITEM'.

Penampilan meja 'ZWAMESSAGE':

WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
Struktur jadual 'ZWAMESSAGE'

Nama medan Nilai
Z_PK rekod nombor urutan (dalam jadual SQL)
Z_ENT pengecam jadual, mempunyai nilai '9'
Z_OPT tidak diketahui, biasanya mengandungi nilai dari '1' hingga '6'
ZCHILDMAGESDELIVEREDCOUNT tidak diketahui, biasanya mengandungi nilai '0'
ZCHILDMAGESPLAYEDCOUNT tidak diketahui, biasanya mengandungi nilai '0'
ZCHILDMESSAGESREADCOUNT tidak diketahui, biasanya mengandungi nilai '0'
ZDATAITEMVERSION tidak diketahui, biasanya mengandungi nilai '3', mungkin penunjuk mesej teks
ZDOCID tidak diketahui
ZENCRETRYCOUNT tidak diketahui, biasanya mengandungi nilai '0'
ZFILTEREDRECIPIENTCOUNT tidak diketahui, biasanya mengandungi nilai '0', '2', '256'
ZISFROMME arah mesej: '0' – masuk, '1' – keluar
ZMESSAGEERRORSTATUS status penghantaran mesej. Jika mesej dihantar/diterima, maka ia mempunyai nilai '0'
ZMESSAGETYPE jenis mesej yang dihantar
ZSORT tidak diketahui
ZSPOTLIGHSTATUS tidak diketahui
ZSTARRED tidak diketahui, tidak digunakan
ZCHATSESSION tidak diketahui
ZGROUPMEMBER tidak diketahui, tidak digunakan
ZLASTSESSION tidak diketahui
ZMEDIAIITEM tidak diketahui
ZMESSAGEINFO tidak diketahui
ZPARENTMESSAGE tidak diketahui, tidak digunakan
ZMESSAGEDATE cap masa dalam format Masa Epoch OS X
ZSENTDATE masa mesej dihantar dalam format Masa Epoch OS X
ZFROMJID ID Pengirim WhatsApp
ZMEDIASECTIONID mengandungi tahun dan bulan fail media dihantar
ZPHASH tidak diketahui, tidak digunakan
ZPUSHPAME nama kenalan yang menghantar fail media dalam format UTF-8
ZSTANZID pengecam mesej unik
ZTEXT Teks mesej
ZTOJID ID WhatsApp penerima
OFFSET berat sebelah

Penampilan meja 'ZWAMEDIAIITEM':

WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
Struktur jadual 'ZWAMEDIAITEM'

Nama medan Nilai
Z_PK rekod nombor urutan (dalam jadual SQL)
Z_ENT pengecam jadual, mempunyai nilai '8'
Z_OPT tidak diketahui, biasanya mengandungi nilai dari '1' hingga '3'.
ZCLOUDSTATUS mengandungi nilai '4' jika fail dimuatkan.
ZFILESIZE mengandungi panjang fail (dalam bait) untuk fail yang dimuat turun
ZMEDIAORIGIN tidak diketahui, biasanya mempunyai nilai '0'
ZMOVIEDURATION tempoh fail media, untuk fail pdf mungkin mengandungi bilangan halaman dokumen
ZMESSAGE mengandungi nombor siri (nombor itu berbeza daripada yang ditunjukkan dalam lajur 'Z_PK')
ZASPECTRATIO nisbah aspek, tidak digunakan, biasanya ditetapkan kepada '0'
ZHACCURACY tidak diketahui, biasanya mempunyai nilai '0'
ZLATTITUDE lebar dalam piksel
ZLONGTITUDE ketinggian dalam piksel
ZMEDIAURLDATE cap masa dalam format Masa Epoch OS X
ZAUTHORNAME pengarang (untuk dokumen, mungkin mengandungi nama fail)
ZCOLLECTIONNAME tidak digunakan
ZMEDIALOCALPATH nama fail (termasuk laluan) dalam sistem fail peranti
ZMEDIAURL URL tempat fail media berada. Jika fail telah dipindahkan daripada satu pelanggan kepada pelanggan lain, ia telah disulitkan dan sambungannya akan ditunjukkan sebagai lanjutan fail yang dipindahkan - .enc
ZTHUMBNAILLOCALPATH laluan ke lakaran kenit fail dalam sistem fail peranti
ZTITLE pengepala fail
ZVCARDNAME cincang fail media; apabila memindahkan fail ke kumpulan, ia mungkin mengandungi pengecam penghantar
ZVCARDSTRING mengandungi maklumat tentang jenis fail yang dipindahkan (contohnya, imej/jpeg); apabila memindahkan fail ke kumpulan, ia mungkin mengandungi pengecam penerima
ZXMPPTHUMBPATH laluan ke lakaran kenit fail dalam sistem fail peranti
ZMEDIAKEY tidak diketahui, mungkin mengandungi kunci untuk menyahsulit fail yang disulitkan.
ZMEDATA metadata mesej yang dihantar
Offset berat sebelah

Jadual pangkalan data lain yang menarik 'ChatStorage.sqlite' adalah seperti berikut:

  • 'ZWAPROFILEPUSHNAME'. Memadankan ID WhatsApp dengan nama kenalan;
  • 'ZWAPROFILEPICTUREITEM'. Memadankan ID WhatsApp dengan avatar kenalan;
  • 'Z_PRIMARYKEY'. Jadual mengandungi maklumat umum tentang pangkalan data ini, seperti jumlah bilangan mesej yang disimpan, jumlah bilangan sembang, dsb.

Selain itu, apabila memeriksa WhatsApp pada peranti mudah alih yang menjalankan iOS, anda harus memberi perhatian kepada fail berikut:

  • fail 'BackedUpKeyValue.sqlite'. Mengandungi kunci kriptografi dan data lain yang diperlukan untuk mengenal pasti pemilik akaun. Terletak di sepanjang laluan: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • fail 'ContactsV2.sqlite'. Mengandungi maklumat tentang kenalan pengguna, seperti nama penuh, nombor telefon, status hubungan (dalam bentuk teks), ID WhatsApp, dsb. Terletak di sepanjang laluan: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • fail 'versi_pengguna'. Mengandungi nombor versi aplikasi WhatsApp yang dipasang. Terletak di sepanjang laluan: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • fail 'current_wallpaper.jpg'. Mengandungi kertas dinding latar belakang WhatsApp semasa. Terletak di sepanjang laluan: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Versi lama aplikasi menggunakan fail 'kertas dinding', yang terletak di sepanjang laluan: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'.
  • fail 'blockedcontacts.dat'. Mengandungi maklumat tentang kenalan yang disekat. Terletak di sepanjang laluan: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • fail 'pw.dat'. Mengandungi kata laluan yang disulitkan. Terletak di sepanjang laluan: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/'.
  • fail 'net.whatsapp.WhatsApp.plist' (atau fail 'group.net.whatsapp.WhatsApp.shared.plist'). Mengandungi maklumat tentang profil akaun WhatsApp anda. Fail terletak di sepanjang laluan: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/'.

Kandungan fail 'group.net.whatsapp.WhatsApp.shared.plist' WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
Anda juga perlu memberi perhatian kepada direktori berikut:

  • Direktori '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/'. Mengandungi lakaran kenit kenalan, kumpulan (fail dengan sambungan .badan), avatar kenalan, avatar pemilik akaun WhatsApp (fail 'Photo.jpg').
  • Direktori '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/'. Mengandungi fail multimedia dan lakaran kecilnya
  • Direktori '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'. Mengandungi log operasi program (fail 'calls.log') dan salinan sandaran log operasi program (file 'calls.backup.log').
  • Direktori '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/'. Mengandungi pelekat (fail dalam format '.webp').
  • Direktori '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/'. Mengandungi log operasi program.

Artifak WhatsApp pada Windows

Artifak WhatsApp pada Windows boleh didapati di beberapa tempat. Pertama sekali, ini adalah direktori yang mengandungi fail program boleh laku dan tambahan (untuk Windows 8/10):

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

Dalam katalog 'C:Users%User profile% AppDataLocalWhatsApp' fail log terletak 'SquirrelSetup.log', yang mengandungi maklumat tentang menyemak kemas kini dan memasang program.

Dalam katalog 'C:Users%User profile% AppDataRoamingWhatsApp' Terdapat beberapa subdirektori:

WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
fail 'main-process.log' mengandungi maklumat tentang pengendalian program WhatsApp.

Subdirektori 'pangkalan data' mengandungi fail 'Pangkalan data.db', tetapi fail ini tidak mengandungi sebarang maklumat tentang sembang atau kenalan.

Yang paling menarik dari sudut pandangan forensik ialah fail yang terletak di dalam direktori 'Cache'. Ini pada dasarnya adalah fail bernama 'f_*******' (di mana * ialah nombor dari 0 hingga 9) yang mengandungi fail dan dokumen multimedia yang disulitkan, tetapi terdapat juga fail yang tidak disulitkan di antaranya. Kepentingan khusus ialah fail 'data_0', 'data_1', 'data_2', 'data_3', terletak dalam subdirektori yang sama. Fail 'data_0', 'data_1', 'data_3' mengandungi pautan luaran ke fail dan dokumen multimedia yang disulitkan yang dihantar.

Contoh maklumat yang terkandung dalam fail 'data_1'WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
Juga fail 'data_3' mungkin mengandungi fail grafik.

fail 'data_2' mengandungi avatar kenalan (boleh dipulihkan dengan mencari mengikut pengepala fail).

Avatar yang terkandung dalam fail 'data_2':

WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
Oleh itu, sembang itu sendiri tidak boleh ditemui dalam ingatan komputer, tetapi anda boleh menemui:

  • fail multimedia;
  • dokumen yang dihantar melalui WhatsApp;
  • maklumat tentang kenalan pemilik akaun.

Artifak WhatsApp pada MacOS

Dalam MacOS anda boleh menemui jenis artifak WhatsApp yang serupa dengan yang terdapat dalam Windows OS.

Fail program terletak dalam direktori berikut:

  • 'C:ApplicationsWhatsApp.app'
  • 'C:Applications._WhatsApp.app'
  • 'C:Users%User profile%LibraryPreferences'
  • 'C:Users%User profile%LibraryLogsWhatsApp'
  • 'C:Users%User profile%LibrarySaved Application StateWhatsApp.savedState'
  • 'C:Users%User profile%LibraryApplication Skrip'
  • '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 Dokumen Mudah Alih <text variable> WhatsApp Accounts'
    Direktori ini mengandungi subdirektori yang namanya adalah nombor telefon yang dikaitkan dengan pemilik akaun WhatsApp.
  • 'C:Users%User profile%LibraryCachesWhatsApp.ShipIt'
    Direktori ini mengandungi maklumat tentang memasang program.
  • 'C:Users%User profile%PicturesiPhoto Library.photolibraryMasters', 'C:Users%User profile%PicturesiPhoto Library.photolibraryThumbnails'
    Direktori ini mengandungi fail perkhidmatan program, termasuk foto dan lakaran kecil kenalan WhatsApp.
  • 'C:Users%User profile%LibraryCachesWhatsApp'
    Direktori ini mengandungi beberapa pangkalan data SQLite yang digunakan untuk caching data.
  • 'C:Users%User profile%LibraryApplication SupportWhatsApp'
    Direktori ini mengandungi beberapa subdirektori:

    WhatsApp di tapak tangan anda: di mana dan bagaimana anda boleh mencari artifak forensik?
    Dalam katalog 'C:Users%User profile%LibraryApplication SupportWhatsAppCache' terdapat fail 'data_0', 'data_1', 'data_2', 'data_3' dan fail dengan nama 'f_*******' (di mana * ialah nombor dari 0 hingga 9). Untuk mendapatkan maklumat tentang maklumat yang terkandung dalam fail ini, lihat Artifak WhatsApp pada Windows.

    Dalam katalog 'C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB' mungkin mengandungi fail multimedia (fail tidak mempunyai sambungan).

    fail 'main-process.log' mengandungi maklumat tentang pengendalian program WhatsApp.

sumber

  1. Analisis forensik WhatsApp Messenger pada telefon pintar Android, oleh Cosimo Anglano, 2014.
  2. Forensik Whatsapp: Eksplorasi sistem berkas dan data asas pada aplikasi Android dan iOS oleh Ahmad Pratama, 2014.

Dalam artikel berikut dalam siri ini:

Penyahsulitan pangkalan data WhatsApp yang disulitkanArtikel yang akan memberikan maklumat tentang cara kunci penyulitan WhatsApp dijana dan contoh praktikal yang menunjukkan cara menyahsulit pangkalan data yang disulitkan bagi aplikasi ini.
Mengekstrak data WhatsApp daripada storan awanArtikel di mana kami akan memberitahu anda data WhatsApp yang disimpan di awan dan menerangkan kaedah untuk mendapatkan semula data ini daripada storan awan.
Pengekstrakan Data WhatsApp: Contoh PraktikalArtikel yang akan menerangkan langkah demi langkah program dan cara mengekstrak data WhatsApp daripada pelbagai peranti.

Sumber: www.habr.com

Tambah komen