
Искате ли да научите какви типове криминалистически артефакти на WhatsApp съществуват в различни операционни системи и къде точно могат да бъдат открити — тогава сте на правилното място. В тази статия специалист от Лабораторията по компютърна криминалистика Group-IB Игор Михайлов открива серия публикации по криминалистичното изследване на WhatsApp и каква информация може да бъде получена при анализ на устройството.
Нека веднага да подчертаем, че в различните операционни системи се съхраняват различни типове артефакти на WhatsApp и ако от едно устройство изследователят може да извлече определени типове данни на WhatsApp, това не означава, че подобни типове данни могат да бъдат извлечени от друго устройство. Например, ако се извлекат данни от системен блок, работещ с ОС Windows, вероятно на неговите дискове няма да бъдат открити чатове на WhatsApp (изключение правят резервни копия на устройства с iOS, които могат да бъдат открити на тези същите носители). При изземване на лаптопи и мобилни устройства ще има свои особености. Нека поговорим за това по-подробно.
Артефакти на WhatsApp в устройство с Android
За да извлече артефакти на WhatsApp от устройство, работещо с ОС Android, изследователят трябва да има права на суперпотребител ('root') на изследваното устройство или да има възможност по друг начин да извлече физически дамп на паметта на устройството или неговата файлова система (например, използвайки софтуерни уязвимости на конкретно мобилно устройство).
Файловете на приложението се намират в паметта на телефона в дяла, където се съхраняват данните на потребителя. Обикновено този дял носи името 'userdata'. Подкаталозите и файловете на програмата се намират по пътя: '/data/data/com.whatsapp/'.

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

Най-интенивните таблици в базата данни 'wa.db' за изследователя са:
- 'wa_contacts'
Таблицата съдържа информация за контактите: ID на контакта в WhatsApp, информация за статуса, показвано име на потребителя, времеви отметки и др.Външен вид на таблицата:

Структура на таблицатаИме на полето Стойност _id редов номер на записа (в SQL таблицата) jid WhatsApp 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/' и има следната структура:

Най-интересните таблици в файла 'msgstore.db' за изследователя са:
- 'sqlite_sequence'
Таблицата съдържа обща информация за тази база данни, например, общ брой на съхранените съобщения, общ брой на чатовете и др.Външен вид на таблицата:

- 'message_fts_content'
Съдържа текста на изпратените съобщения.Външен вид на таблицата:

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

Структура на таблицатаИме на полето Стойност _id редов номер на записа (в SQL таблицата) key_remote_jid WhatsApp 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_type MIME тип на предавания файл (когато параметърът ‘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_recource ID на подателя (само за групови чатове) 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 на мобилно устройство с 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/’.
Съдържанието на файла
- файл ‘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:

Фрагмент от журнала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’, където могат да бъдат намерени следните артефакти на тази програма:

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

- Директория ‘Медиа’ (‘/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’:

Най-информативни в базата данни ‘ChatStorage.sqlite’ са таблиците ‘ZWAMESSAGE’ и ‘ZWAMEDIAITEM’.
Външен вид на таблицата ‘ZWAMESSAGE’:

Структура на таблицата '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 |
| ZFROMJID | WhatsApp ID на изпращача |
| ZMEDIASECTIONID | съдържа годината и месеца на изпращане на медийния файл |
| ZPHASH | неизвестно, не се използва |
| ZPUSHPAME | име на контакта, изпратил медийния файл в формат UTF-8 |
| ZSTANZID | уникален идентификатор на съобщението |
| ZTEXT | текст на съобщението |
| ZTOJID | WhatsApp ID на получателя |
| OFFSET | смещение |
Външен вид на таблицата ‘ZWAMEDIAITEM’:

Структура на таблицата '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 | име на файла (с указание на пътя) в файловата система на устройството |
| ZMEDIAURL | URL адрес, по който е бил медийния файлов. Ако файлът е предаван от един абонат на друг, той е бил криптиран, а разширението му ще бъде посочено като разширение на предавания файл — .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’
Също така е важно да се обърне внимание на следните директории:
- Директория ‘/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’ се намират няколко подкаталога:
файл ‘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’
Също файла ‘data_3’ може да съдържа графични файлове.
файл ‘data_2’ съдържа аватари на контактите (могат да бъдат възстановени чрез търсене по заглавията на файловете).
Аватарите, съдържащи се във файла ‘data_2’:

Така че, в паметта на компютъра не могат да бъдат намерени самите чатове, но може да се намери:
- мултимедийни файлове;
- документи, предавани чрез 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'
В този каталог има няколко подкаталога:
В каталога '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.
Източници
- Съдебно разследване на WhatsApp Messenger на Android смартфони, от Косимо Англано, 2014.
- Whatsapp Forensics: Изследване на файловата система и базите данни в приложенията за Android и iOS от Ахмад Пратама, 2014.
В следващите статии от тази серия:
Дешифриране на криптирани бази на WhatsAppСтатия, в която ще бъде изложена информация за начина, по който се генерира ключът за криптиране на WhatsApp, и ще бъдат предоставени практически примери, показващи как да се извърши дешифриране на криптирани бази на това приложение.
Извличане на данни от WhatsApp от облачни хранилищаСтатия, в която ще разкажем какви данни WhatsApp се съхраняват в облака и ще опишем методите за извличане на тези данни от облачни хранилища.
Извличане на данни от WhatsApp: практически примериСтатия, в която стъпка по стъпка ще бъдат описани програмите и начина на извличане на данни от WhatsApp от различни устройства.
Източник: habr.com








