WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?

WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?

Искате ли да научите какви типове криминалистически артефакти на WhatsApp съществуват в различни операционни системи и къде точно могат да бъдат открити — тогава сте на правилното място. В тази статия специалист от Лабораторията по компютърна криминалистика Group-IB Игор Михайлов открива серия публикации по криминалистичното изследване на WhatsApp и каква информация може да бъде получена при анализ на устройството.

Нека веднага да подчертаем, че в различните операционни системи се съхраняват различни типове артефакти на WhatsApp и ако от едно устройство изследователят може да извлече определени типове данни на WhatsApp, това не означава, че подобни типове данни могат да бъдат извлечени от друго устройство. Например, ако се извлекат данни от системен блок, работещ с ОС Windows, вероятно на неговите дискове няма да бъдат открити чатове на WhatsApp (изключение правят резервни копия на устройства с iOS, които могат да бъдат открити на тези същите носители). При изземване на лаптопи и мобилни устройства ще има свои особености. Нека поговорим за това по-подробно.

Артефакти на WhatsApp в устройство с Android

За да извлече артефакти на WhatsApp от устройство, работещо с ОС Android, изследователят трябва да има права на суперпотребител ('root') на изследваното устройство или да има възможност по друг начин да извлече физически дамп на паметта на устройството или неговата файлова система (например, използвайки софтуерни уязвимости на конкретно мобилно устройство).

Файловете на приложението се намират в паметта на телефона в дяла, където се съхраняват данните на потребителя. Обикновено този дял носи името 'userdata'. Подкаталозите и файловете на програмата се намират по пътя: '/data/data/com.whatsapp/'.

WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
Основните файлове, които съдържат криминалистически артефакти на WhatsApp в ОС Android, са бази данни 'wa.db' и 'msgstore.db'.

В базата данни 'wa.db' се съдържа пълен списък на контактите на потребителя на WhatsApp, включително телефонния номер, показваното име, времевите марки и всяка друга информация, посочена при регистрацията в WhatsApp. Файлът 'wa.db' се намира по пътя: '/data/data/com.whatsapp/databases/' и има следната структура:

WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
Най-интенивните таблици в базата данни 'wa.db' за изследователя са:

  • 'wa_contacts'
    Таблицата съдържа информация за контактите: ID на контакта в WhatsApp, информация за статуса, показвано име на потребителя, времеви отметки и др.

    Външен вид на таблицата:

    WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
    Структура на таблицата

    Име на полетоСтойност
    _idредов номер на записа (в SQL таблицата)
    jidWhatsApp ID на контакта, записва се във формата @s.whatsapp.net
    is_whatsapp_userсъдържа '1', ако контактуващият е действителен потребител на WhatsApp, '0' в противен случай
    statusсъдържа текста, показван в статуса на контакта
    status_timestampсъдържа времева отметка във формат Unix Epoch Time (ms)
    номерномер на телефона, асоцииран с контакта
    raw_contact_idредов номер на контакта
    display_nameпоказвано име на контакта
    phone_typeтип на телефона
    phone_labelетикет, асоцииран с телефона на контакта
    unseen_msg_countброй на съобщенията, изпратени от контакта, но неперегледани от получателя
    photo_tsсъдържа времева отметка във формат Unix Epoch Time
    thumb_tsсъдържа времева отметка във формат Unix Epoch Time
    photo_id_timestampсъдържа времева отметка във формат Unix Epoch Time (ms)
    given_nameстойността на полето съвпада с 'display_name' за всеки контакт
    wa_nameиме на контакта в WhatsApp (показва се името, зададено в профила на контакта)
    sort_nameиме на контакта, използвано в операции по сортиране
    nicknameник на контакта в WhatsApp (показва се никът, зададен в профила на контакта)
    companyкомпания (показва се компанията, зададена в профила на контакта)
    titleобращение (госпожа/господин; показва се настроеното обращение в профила на контакта)
    offsetсмещение
  • 'sqlite_sequence'
    Таблицата съдържа информация за броя на контактите;
  • 'android_metadata'
    Таблицата съдържа информация за езиковата локализация на WhatsApp.

В базата данни 'msgstore.db' съдържа информация за изпратените съобщения, като номер на контакта, текст на съобщението, статус на съобщението, времеви отметки, данни за изпратените файлове, включени в съобщенията и др. Файл 'msgstore.db' се намира по пътя: '/data/data/com.whatsapp/databases/' и има следната структура:

WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
Най-интересните таблици в файла 'msgstore.db' за изследователя са:

  • 'sqlite_sequence'
    Таблицата съдържа обща информация за тази база данни, например, общ брой на съхранените съобщения, общ брой на чатовете и др.

    Външен вид на таблицата:

    WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?

  • 'message_fts_content'
    Съдържа текста на изпратените съобщения.

    Външен вид на таблицата:

    WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?

  • 'messages'
    Таблицата съдържа информация като номер на контакта, текст на съобщението, статус на съобщението, времеви отметки, данни за изпратените файлове, включени в съобщенията.

    Външен вид на таблицата:

    WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
    Структура на таблицата

    Име на полетоСтойност
    _idредов номер на записа (в SQL таблицата)
    key_remote_jidWhatsApp ID на партньора за комуникация
    key_from_meнаправление на съобщението: '0' – входящо, '1' — изходящо
    key_idуникален идентификатор на съобщението
    statusстатус на съобщението: ‘0’ – доставено, ‘4’ – в очакване на сървър, ‘5’ – получено на местоназначението, ‘6’ – контролно съобщение, ‘13’ – съобщението е отворено от получателя (прочетено)
    need_pushима стойност ‘2’, ако това е широковещателно съобщение, в противен случай съдържа ‘0’
    dataтекст на съобщението (когато параметърът ‘media_wa_type’ е равен на ‘0’)
    timestampсъдържа времеви маркер във формат Unix Epoch Time (ms), стойността се взема от часовника на устройството
    media_urlсъдържа URL на предавания файл (когато параметърът ‘media_wa_type’ е равен на ‘1’, ‘2’, ‘3’)
    media_mime_typeMIME тип на предавания файл (когато параметърът ‘media_wa_type’ е равен на ‘1’, ‘2’, ‘3’)
    media_wa_typeтип на съобщението: ‘0’ – текст, ‘1’ – графичен файл, ‘2’- аудио файл, ‘3’ – видео файл, ‘4’ – карта с контакти, ‘5’ — геоданни
    media_sizeразмер на предавания файл (когато параметърът ‘media_wa_type’ е равен на ‘1’, ‘2’, ‘3’)
    media_nameиме на предавания файл (когато параметърът ‘media_wa_type’ е равен на ‘1’, ‘2’, ‘3’)
    media_captionСъдържа думите ‘audio’, ‘video’ за съответните стойности на параметъра ‘media_wa_type’ (когато параметърът ‘media_wa_type’ е равен на ‘1’, ‘3’)
    media_hashкодирано в base64 хеш на предавания файл, изчислен с алгоритъм HASH-256 (когато параметърът ‘media_wa_type’ е равен на ‘1’, ‘2’, ‘3’)
    media_durationпродължителност в секунди на медийните файлове (когато параметърът ‘media_wa_type’ е равен на ‘1’, ‘2’, ‘3’)
    originима стойност ‘2’, ако това е широковещателно съобщение, в противен случай съдържа ‘0’
    latitudeгеоданни: ширина (когато параметърът ‘media_wa_type’ е равен на ‘5’)
    longitudeгеоданни: дължина (когато параметърът ‘media_wa_type’ е равен на ‘5’)
    thumb_imageслужебна информация
    remote_recourceID на подателя (само за групови чатове)
    received_timestampвреме на получаване, съдържа времеви маркер във формат Unix Epoch Time (ms), стойността се взема от часовника на устройството (когато параметърът ‘key_from_me’ има стойност ‘0’, ‘-1’ или друга стойност)
    send_timestampне се използва, обикновено има стойност ‘-1’
    receipt_server_timestampвреме на получаване от централния сървър, съдържа времеви маркер във формат Unix Epoch Time (ms), стойността се взема от часовника на устройството (когато параметърът ‘key_from_me’ има стойност ‘1’, ‘-1’ или друга стойност
    receipt_device_timestampвремето на получаване на съобщението от друг абонат, съдържа времеви маркер във формат Unix Epoch Time (ms), стойността се взема от часовника на устройството (когато параметърът ‘key_from_me’ има стойност ‘1’, ‘-1’ или друга стойност
    read_device_timestampвреме на отваряне (прочитане) на съобщение, съдържа времеви печат във формат Unix Epoch Time (ms), стойността се взема от часовника на устройството
    played_device_timestampвреме на възпроизвеждане на съобщение, съдържа времеви печат във формат Unix Epoch Time (ms), стойността се взема от часовника на устройството
    raw_dataминиатюра на предавания файл (когато параметърът ‘media_wa_type’ е равен на ‘1’ или ‘3’)
    recipient_countброй получатели (за широковещателни съобщения)
    participant_hashизползва се при предаване на съобщения с геоданни
    starredне се използва
    quoted_row_idнеизвестно, обикновено съдържа стойност ‘0’
    mentioned_jidsне се използва
    multicast_idне се използва
    offsetсмещение

    Този списък с полета не е изчерпателен. За различни версии на WhatsApp част от полетата може да присъстват или липсват. Допълнително могат да присъстват полета ‘media_enc_hash’, ‘edit_version’, ‘payment_transaction_id’ и т.н.

  • ‘messages_thumbnails’
    Тази таблица съдържа информация за предадените изображения и времеви печати. В колоната ‘timestamp’ времето е посочено в формат Unix Epoch Time (ms).
  • ‘chat_list’
    Тази таблица съдържа информация за разговорите.

    Външен вид на таблицата:

    WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?

Също така при изследването на WhatsApp на мобилно устройство с Android е необходимо да се обърне внимание на следните файлове:

  • файл ‘msgstore.db.cryptXX’ (където XX – една или две цифри от 0 до 12, например, msgstore.db.crypt12). Съдържа криптирана резервна копие на съобщенията на WhatsApp (резервна копия на файла msgstore.db). Файл (или файлове) ‘msgstore.db.cryptXX’ се намира по пътя: ‘/data/media/0/WhatsApp/Databases/’ (виртуална SD-карта), ‘/mnt/sdcard/WhatsApp/Databases/‘ (физическа SD-карта)’.
  • файл ‘key’. Съдържа криптографски ключ. Разполага се по пътя: ‘/data/data/com.whatsapp/files/’. Използва се за декриптиране на криптирани резервни копия на WhatsApp.
  • файл ‘com.whatsapp_preferences.xml’. Съдържа информация за профила на WhatsApp. Файлът се разполага по пътя: ‘/data/data/com.whatsapp/shared_prefs/’.

    Фрагмент от съдържанието на файла

    …
    9123456789 (номер на телефона, асоцииран с акаунта на WhatsApp)
    …
    2.17.395 (версия на WhatsApp)
    …
    Hey there! I am using WhatsApp. (съобщение, показвано в статус на акаунта)
    …
    Alex (името на собственика на акаунта)
    … 
  • файл ‘registration.RegisterPhone.xml’. Съдържа информация за телефонния номер, асоцииран с акаунта на WhatsApp. Файлът се разполага по пътя: ‘/data/data/com.whatsapp/shared_prefs/’.

    Съдържанието на файла

    
    9123456789
    
    
    912 345-67-89
    
    7
    7
    
  • файл ‘axolotl.db’. Съдържа криптографски ключове и друга информация, необходима за идентификация на собственика на акаунта. Намира се на пътя: '/data/data/com.whatsapp/databases/'.
  • файл ‘chatsettings.db’. Съдържа информация за конфигурацията на приложението.
  • файл 'wa.db'. Съдържа детайли за контактите. Много интересна (от криминалистична гледна точка) и информативна база данни. В нея може да се намери подробна информация за изтритите контакти.

Също така е важно да се обърне внимание на следните директории:

  • Директория ‘/data/media/0/WhatsApp/Media/WhatsApp Images/’. Съдържа предадени графични файлове.
  • Директория ‘/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/’. Съдържа гласови съобщения в .OPUS файлове.
  • Директория ‘/data/data/com.whatsapp/cache/Profile Pictures/’. Съдържа графични файлове – изображения на контактите.
  • Директория ‘/data/data/com.whatsapp/files/Avatars/’. Съдържа графични файлове – миниатюри на изображенията на контактите. Тези файлове имат разширение ‘.j’, но въпреки това са графични файлове с формат JPEG (JPG).
  • Директория ‘/data/data/com.whatsapp/files/Avatars/’. Съдържа графични файлове – изображение и миниатюра на изображението, зададено като аватар от собственика на акаунта.
  • Директория ‘/data/data/com.whatsapp/files/Logs/’. Съдържа журнал на работата на програмата (файл ‘whatsapp.log’) и резервни копия на журналите на работа на програмата (файлове с имена форматирани като whatsapp-гггг-мм-дд.1.log.gz).

Файлове на журналите на WhatsApp:

WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
Фрагмент от журнала2017-01-10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] missedcallnotification/init count:0 timestamp:0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] missedcallnotification/update cancel true
2017-01-10 09:37:09.768 LL_I D [1:main] app-init/load-me
2017-01-10 09:37:09.772 LL_I D [1:main] password файл липсва или е непригоден
2017-01-10 09:37:09.782 LL_I D [1:main] статистика Текстови съобщения: 59 изпратени, 82 получени / Медийни съобщения: 1 изпратено (0 байта), 0 получени (9850158 байта) / Офлайн съобщения: 81 получени (19522 мс средно забавяне) / Съобщителни услуги: 116075 байта изпратени, 211729 байта получени / Voip повиквания: 1 изходящо повикване, 0 входящи повиквания, 2492 байта изпратени, 1530 байта получени / Google Drive: 0 байта изпратени, 0 байта получени / Роуминг: 1524 байта изпратени, 1826 байта получени / Общо данни: 118567 байта изпратени, 10063417 байта получени
2017-01-10 09:37:09.785 LL_I D [1:main] media-state-manager/refresh-media-state/writable-media
2017-01-10 09:37:09.806 LL_I D [1:main] app-init/initialize/timer/stop: 24
2017-01-10 09:37:09.811 LL_I D [1:main] msgstore/checkhealth
2017-01-10 09:37:09.817 LL_I D [1:main] msgstore/checkhealth/journal/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkhealth/back/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkdb/data/data/com.whatsapp/databases/msgstore.db
2017-01-10 09:37:09.819 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager-journal 21032 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list axolotl.db 184320 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-wal 436752 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-shm 32768 drw=011
2017-01-10 09:37:09.822 LL_I D [1:main] msgstore/checkdb/list msgstore.db 540672 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-wal 0 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-shm 32768 drw=011
2017-01-10 09:37:09.824 LL_I D [1:main] msgstore/checkdb/list wa.db 69632 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-wal 428512 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-shm 32768 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db 4096 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-wal 70072 drw=011
2017-01-10 09:37:09.827 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-shm 32768 drw=011
2017-01-10 09:37:09.838 LL_I D [1:main] msgstore/checkdb/version 1
2017-01-10 09:37:09.839 LL_I D [1:main] msgstore/canquery
2017-01-10 09:37:09.846 LL_I D [1:main] msgstore/canquery/count 1
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery/timer/stop: 8
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery 517 | time spent:8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] media-state-manager/refresh-media-state/internal-storage available:1,345,622,016 total:5,687,922,688

  • Директория ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/’. Съдържа получените аудиофайлове.
  • Директория ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/’. Съдържа изпратените аудиофайлове.
  • Директория ‘/data/media/0/WhatsApp/Media/WhatsApp Images/’. Съдържа получените графични файлове.
  • Директория ‘/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/’. Съдържа изпратените графични файлове.
  • Директория ‘/data/media/0/WhatsApp/Media/WhatsApp Video/’. Съдържа получените видеофайлове.
  • Директория ‘/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/’. Съдържа изпратените видеофайлове.
  • Директория ‘/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/’. Съдържа графични файлове, асоциирани с притежателя на акаунта WhatsApp.
  • За икономия на място в паметта на Android смартфона част от данните на WhatsApp може да се съхраняват на SD карта. На SD картата, в коренната директория, е разположена директория ‘WhatsApp’, където могат да бъдат намерени следните артефакти на тази програма:

    WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?

  • Директория ‘.Share’ (‘/mnt/sdcard/WhatsApp/.Share/’). Съдържа копия на файлове, които са били прехвърлени на други потребители на WhatsApp.
  • Директория ‘.trash’ (‘/mnt/sdcard/WhatsApp/.trash/’). Съдържа изтритите файлове.
  • Директория ‘Databases’ (‘/mnt/sdcard/WhatsApp/Databases/’). Съдържа криптирани резервни копия. Те могат да бъдат декриптирани при наличие на файл ‘key’, извлечен от паметта на анализираното устройство.

    Файловете, намиращи се в подкаталога ‘Databases’:

    WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?

  • Директория ‘Медиа’ (‘/mnt/sdcard/WhatsApp/Media/’). Съдържа подкаталози ‘WallPaper’, ‘WhatsApp Audio’, ‘WhatsApp Images’, ‘WhatsApp Profile Photos’, ‘WhatsApp Video’, ‘WhatsApp Voice Notes’, в които се намират получените и предадени медийни файлове (графични файлове, видеофайлове, гласови съобщения, снимки, асоциирани с профила на собственника на WhatsApp, тапети).
  • Директория ‘Profile Pictures’ (‘/mnt/sdcard/WhatsApp/Profile Pictures/’). Съдържа графични файлове, асоциирани с профила на собственника на WhatsApp.
  • Понякога на SD картата може да присъства каталог ‘files’ (‘/mnt/sdcard/WhatsApp/Files/’). В този каталог се съдържат файлове, в които се съхраняват конфигурации на програмата и предпочитания на потребителя.

Характеристики на съхранението на данни в някои модели мобилни устройства

В някои модели мобилни устройства с операционна система Android е възможно съхранение на артефакти на WhatsApp на друго място. Това се дължи на промяна в пространството за съхранение на данни на приложенията от системния софтуер на мобилното устройство. Например, в мобилни устройства Xiaomi има функция за създаване на второ работно пространство («SecondSpace»). При активиране на тази функция настъпва промяна в местоположението на данните. Например, ако в обикновено мобилно устройство с Android данните на потребителя се съхраняват в каталога ‘/data/user/0/’ (което е връзка към познатите ‘/data/data/’), то във второто работно пространство данните на приложенията се съхраняват в каталога ‘/data/user/10/’. Тоест, като пример за местоположението на файла 'wa.db':

  • в обикновен смартфон с Android: /data/user/0/com.whatsapp/databases/wa.db’ (което е еквивалентно на ‘/data/data/com.whatsapp/databases/wa.db’);
  • второто работно пространство на смартфона Xiaomi: ‘/data/user/10/com.whatsapp/databases/wa.db’.

Артефакти на WhatsApp в устройство с iOS

В отличие от Android, в iOS данните на приложение WhatsApp се прехвърлят в резервно копие (iTunes backup). Следователно, извличането на данни от това приложение не изисква извличане на файловата система или създаване на физически дамп на паметта на изследваното устройство. Значителна част от важната информация се съдържа в базата данни ‘ChatStorage.sqlite’, която се намира по пътя: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/’ (в някои програми този път се показва като ‘AppDomainGroup-group.net.whatsapp.WhatsApp.shared’).

Структура ‘ChatStorage.sqlite’:

WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
Най-информативни в базата данни ‘ChatStorage.sqlite’ са таблиците ‘ZWAMESSAGE’ и ‘ZWAMEDIAITEM’.

Външен вид на таблицата ‘ZWAMESSAGE’:

WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
Структура на таблицата 'ZWAMESSAGE'

Име на полетоСтойност
Z_PKредов номер на записа (в SQL таблицата)
Z_ENTидентификатор на таблицата, има стойност '9'
Z_OPTнеизвестно, обикновено съдържа стойности от '1' до '6'
ZCHILDMESSAGESDELIVEREDCOUNTнеизвестно, обикновено съдържа стойност ‘0’
ZCHILDMESSAGESPLAYEDCOUNTнеизвестно, обикновено съдържа стойност ‘0’
ZCHILDMESSAGESREADCOUNTнеизвестно, обикновено съдържа стойност ‘0’
ZDATAITEMVERSIONнеизвестно, обикновено съдържа стойност '3', вероятно е указател към текстово съобщение
ZDOCIDнеизвестно
ZENCRETRYCOUNTнеизвестно, обикновено съдържа стойност ‘0’
ZFILTEREDRECIPIENTCOUNTнеизвестно, обикновено съдържа стойности '0', '2', '256'
ZISFROMMEнаправление на съобщението: '0' – входящо, '1' — изходящо
ZMESSAGEERRORSTATUSстатус на предаване на съобщението. Ако съобщението е изпратено/получено, то има стойност '0'
ZMESSAGETYPEтип на предаваното съобщение
ZSORTнеизвестно
ZSPOTLIGHSTATUSнеизвестно
ZSTARREDнеизвестно, не се използва
ZCHATSESSIONнеизвестно
ZGROUPMEMBERнеизвестно, не се използва
ZLASTSESSIONнеизвестно
ZMEDIAITEMнеизвестно
ZMESSAGEINFOнеизвестно
ZPARENTMESSAGEнеизвестно, не се използва
ZMESSAGEDATEвременен знак в формат OS X Epoch Time
ZSENTDATEвремето на изпращане на съобщение в формат OS X Epoch Time
ZFROMJIDWhatsApp ID на изпращача
ZMEDIASECTIONIDсъдържа годината и месеца на изпращане на медийния файл
ZPHASHнеизвестно, не се използва
ZPUSHPAMEиме на контакта, изпратил медийния файл в формат UTF-8
ZSTANZIDуникален идентификатор на съобщението
ZTEXTтекст на съобщението
ZTOJIDWhatsApp ID на получателя
OFFSETсмещение

Външен вид на таблицата ‘ZWAMEDIAITEM’:

WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
Структура на таблицата 'ZWAMEDIAITEM'

Име на полетоСтойност
Z_PKредов номер на записа (в SQL таблицата)
Z_ENTидентификатор на таблицата, има стойност '8'
Z_OPTнеизвестно, обикновено съдържа стойности от '1' до '3'
ZCLOUDSTATUSсъдържа стойност '4', ако файлът е качен.
ZFILESIZEсъдържа дължината на файла (в байтове) за качени файлове
ZMEDIAORIGINнеизвестно, обикновено има стойност '0'
ZMOVIEDURATIONпродължителност на медийния файл, за PDF файлове може да съдържа брой страницы на документа
ZMESSAGEсъдържа последователен номер (номерът е различен от този, посочен в колоната 'Z_PK')
ZASPECTRATIOсъотношение на страните, не се използва, обикновено има стойност '0'
ZHACCURACYнеизвестно, обикновено има стойност '0'
ZLATTITUDEширина в пиксели
ZLONGTITUDEвисочина в пиксели
ZMEDIAURLDATEвременен знак в формат OS X Epoch Time
ZAUTHORNAMEавтор (за документи, може да съдържа заглавие на файла)
ZCOLLECTIONNAMEне се използва
ZMEDIALOCALPATHиме на файла (с указание на пътя) в файловата система на устройството
ZMEDIAURLURL адрес, по който е бил медийния файлов. Ако файлът е предаван от един абонат на друг, той е бил криптиран, а разширението му ще бъде посочено като разширение на предавания файл — .enc
ZTHUMBNAILLOCALPATHпът до миниатюрата на файла в файловата система на устройството
ZTITLEзаглавие на файла
ZVCARDNAMEхеш на медийния файл, при предаване на файл в група може да съдържа идентификатор на изпращача
ZVCARDSTRINGсъдържа информация за типа на предавания файл (например, image/jpeg), при предаване на файл в група може да съдържа идентификатор на получателя
ZXMPPTHUMBPATHпът до миниатюрата на файла в файловата система на устройството
ZMEDIAKEYнеизвестно, вероятно, съдържа ключ за декодиране на криптирания файл.
ZMETADATAметаданни на предаваното съобщение
Offsetсмещение

Други интересни таблици на базата данни ‘ChatStorage.sqlite’ са:

  • ‘ZWAPROFILEPUSHNAME’. Свързва WhatsApp ID с името на контакта;
  • ‘ZWAPROFILEPICTUREITEM’. Свързва WhatsApp ID с аватарката на контакта;
  • ‘Z_PRIMARYKEY’. Таблицата съдържа обща информация за тази база данни, като общия брой на съхраняваните съобщения, общия брой на чатове и т.н.

Също така, при изследването на WhatsApp на мобилно устройство, работещо с iOS, е важно да се обърне внимание на следните файлове:

  • файл ‘BackedUpKeyValue.sqlite’. Съдържа криптографски ключове и друга информация, необходима за идентификация на собственика на акаунта. Намира се на пътя: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • файл ‘ContactsV2.sqlite’. Съдържа информация за контактите на потребителя, като име, телефонен номер, статус на контакта (в текстов вид), WhatsApp ID и т.н. Намира се на пътя: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • файл ‘consumer_version’. Съдържа номера на версията на инсталираното приложение WhatsApp. Намира се на пътя: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • файл ‘current_wallpaper.jpg’. Съдържа текущите тапети на приложението WhatsApp. Намира се на пътя: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. В по-старите версии на приложението се използва файл ‘wallpaper’, който се намира на пътя: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’.
  • файл ‘blockedcontacts.dat’. Съдържа информация за блокираните контакти. Намира се на пътя: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • файл ‘pw.dat’. Съдържа криптирана парола. Намира се на пътя: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/’.
  • файл ‘net.whatsapp.WhatsApp.plist’ (или файл ‘group.net.whatsapp.WhatsApp.shared.plist’). Съдържа информация за профила на WhatsApp акаунта. Файлът се намира на пътя: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/’.

Съдържанието на файла ‘group.net.whatsapp.WhatsApp.shared.plist’ WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
Също така е важно да се обърне внимание на следните директории:

  • Директория ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/’. Съдържа миниатюри на контакти, групи (файлове с разширение .thumb), аватари на контакти, аватар на собственика на WhatsApp акаунта (файл ‘Photo.jpg’).
  • Директория ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ Message/Media/’. Съдържа мултимедийни файлове и техните миниатюри
  • Директория ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’. Съдържа журнал на работата на приложението (файл ‘calls.log’) и резервни копия на журналите на работата на приложението (файл ‘calls.backup.log’).
  • Директория ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/’. Съдържа стикери (файлове в формат ‘.webp’).
  • Директория ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/’. Съдържа журнали на работа на приложението.

Артефакти на WhatsApp в Windows

Артефактите на WhatsApp в Windows могат да бъдат намерени на различни места. Първо, това са каталогите, съдържащи изпълними и помощни файлове на приложението (за Windows 8/10):

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

В каталога ‘C:Users%User profile% AppDataLocalWhatsApp’ се намира лог файл ‘SquirrelSetup.log’, в който е информация за проверка за актуализации и инсталиране на програмата.

В каталога ‘C:Users%User profile% AppDataRoamingWhatsApp’ се намират няколко подкаталога:

WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
файл ‘main-process.log’ съдържа информация за работата на програмата WhatsApp.

Подкаталог ‘databases’ съдържа файл ‘Databases.db’, но този файл не съдържа никаква информация за чатове или контакти.

Най-интересни от криминалистична гледна точка са файловете, намиращи се в каталога ‘Cache’. Основно това са файлове с имена ‘f_*******’ (където * — число от 0 до 9), съдържащи криптирани мултимедийни файлове и документи, но сред тях понякога се срещат и некриптирани файлове. Особен интерес представляват файловете ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’, намиращи се в този същия подкаталог. Файловете ‘data_0’, ‘data_1’, ‘data_3’ съдържат външни връзки към предаваните криптирани мултимедийни файлове и документи.

Примерна информация, съдържаща се във файла ‘data_1’WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
Също файла ‘data_3’ може да съдържа графични файлове.

файл ‘data_2’ съдържа аватари на контактите (могат да бъдат възстановени чрез търсене по заглавията на файловете).

Аватарите, съдържащи се във файла ‘data_2’:

WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
Така че, в паметта на компютъра не могат да бъдат намерени самите чатове, но може да се намери:

  • мултимедийни файлове;
  • документи, предавани чрез WhatsApp;
  • информация за контактите на собственика на акаунта.

Артефакти WhatsApp в MacOS

В MacOS може да се намерят типове артефакти WhatsApp, подобни на тези, които има в ОС Windows.

Файловете на програмата се намират в каталозите:

  • ‘C:ApplicationsWhatsApp.app’
  • ‘C:Applications._WhatsApp.app’
  • ‘C:Users%User profile%LibraryPreferences’
  • ‘C:Users%User profile%LibraryLogsWhatsApp’
  • ‘C:Users%User profile%LibrarySaved Application StateWhatsApp.savedState’
  • ‘C:Users%User profile%LibraryApplication Scripts’
  • ‘C:Users%User profile%LibraryApplication SupportCloudDocs’
  • ‘C:Users%User profile%LibraryApplication SupportWhatsApp.ShipIt’
  • ‘C:Users%User profile%LibraryContainerscom.rockysandstudio.app-for-whatsapp’
  • ‘C:Users%User profile%Library Mobile Documents WhatsApp Accounts’
    В този каталог се намират подкаталози, чиито имена представляват телефонни номера, асоциирани с владельца на акаунта WhatsApp.
  • ‘C:Users%User profile%LibraryCachesWhatsApp.ShipIt’
    В този каталог се съдържа информация за инсталирането на програмата.
  • ‘C:Users%User profile%PicturesМедиатека iPhoto.photolibraryMasters’, ‘C:Users%User profile%PicturesМедиатека iPhoto.photolibraryThumbnails’
    В тези каталози се намират служебни файлове на програмата и, в частност, снимки и миниатюри на контактите в WhatsApp.
  • 'C:Users%User profile%LibraryCachesWhatsApp'
    В този каталог се намират няколко SQLite бази, които се използват за кеширане на данни.
  • 'C:Users%User profile%LibraryApplication SupportWhatsApp'
    В този каталог има няколко подкаталога:

    WhatsApp на дланта: къде и как могат да се открият криминалистически артефакти?
    В каталога 'C:Users%User profile%LibraryApplication SupportWhatsAppCache' съдържат файлове ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’ и файлове с имена ‘f_*******’ (където * — число от 0 до 9). Информация за съдържанието на тези файлове е описана в раздела „Артефакти на WhatsApp в Windows“.

    В каталога 'C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB' могат да съдържат мултимедийни файлове (файловете нямат разширения).

    файл ‘main-process.log’ съдържа информация за работата на програмата WhatsApp.

Източници

  1. Съдебно разследване на WhatsApp Messenger на Android смартфони, от Косимо Англано, 2014.
  2. Whatsapp Forensics: Изследване на файловата система и базите данни в приложенията за Android и iOS от Ахмад Пратама, 2014.

В следващите статии от тази серия:

Дешифриране на криптирани бази на WhatsAppСтатия, в която ще бъде изложена информация за начина, по който се генерира ключът за криптиране на WhatsApp, и ще бъдат предоставени практически примери, показващи как да се извърши дешифриране на криптирани бази на това приложение.
Извличане на данни от WhatsApp от облачни хранилищаСтатия, в която ще разкажем какви данни WhatsApp се съхраняват в облака и ще опишем методите за извличане на тези данни от облачни хранилища.
Извличане на данни от WhatsApp: практически примериСтатия, в която стъпка по стъпка ще бъдат описани програмите и начина на извличане на данни от WhatsApp от различни устройства.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster