
Искате ли да разберете какви типове криминалистични артефакти на 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_timestamp съдържа времева отметка в формат Unix Epoch Time (ms) number номер на телефона, асоцииран с контакта 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 уникален идентификатор на съобщението статус статус на съобщението: ‘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 хеш на предавания файл, изчислен с алгоритъма HAS-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] файл с пароли липсва или е нечетим
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 Аудио’, ‘WhatsApp Снимки’, ‘WhatsApp Профилни Снимки’, ‘WhatsApp Видеа’, ‘WhatsApp Гласови съобщения’, в които се намират получените и изпратени мултимедийни файлове (графични файлове, видеофайлове, гласови съобщения, снимки, асоциирани с профила на собственика на WhatsApp акаунта, тапети).
- Директория ‘Профилни Снимки’ (‘/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 на получателя |
| CHECKSUM_AGG | изместване |
Външен вид на таблицата ‘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: Изследване на файловата система и базите данни на приложенията Android и iOS от Ахмад Пратама, 2014.
В следващите статии от тази серия:
Дешифриране на криптирани бази на WhatsAppСтатия, в която ще бъде представена информация за начина на генериране на ключа за криптиране на WhatsApp и ще бъдат дадени практически примери, показващи как да се извърши дешифрирането на криптираните бази на това приложение.
Извличане на данни от WhatsApp от облачни хранилищаСтатия, в която ще разкажем какви данни на WhatsApp се съхраняват в облака и ще опишем методите за извличане на тези данни от облачните хранилища.
Извличане на данни от WhatsApp: практически примериСтатия, в която ще бъде описано стъпка по стъпка какви програми и как да извлечете данните от WhatsApp от различни устройства.
Източник: habr.com








