
Расшифровывайте зашифрованные медиафайлы WhatsApp (изображения, видео, аудио, документы) с помощью ключей медиа, извлеченных из баз данных iOS ChatStorage.sqlite или Android msgstore.db.
В недавнем резонансном криминалистическом расследовании сообщалось, что «из-за сквозного шифрования, используемого WhatsApp, практически невозможно расшифровать содержимое загруженного [.enc файла], чтобы определить, содержал ли он какой-либо вредоносный код в дополнение к доставленному видео».
Этот проект демонстрирует, как расшифровать зашифрованные медиафайлы, загруженные из WhatsApp.
$ go get github.com/ddz/whatsapp-media-decrypt
Usage: ./whatsapp-media-decrypt -o FILE -t TYPE ENCFILE HEXMEDIAKEY
Options:
-o FILE
записать расшифрованный вывод в FILE
-t TYPE
тип медиа (1 = изображение, 2 = видео, 3 = аудио, 4 = документ)
Ключ медиа хранится внутри protobuf-сообщения, которое хранится
в шестнадцатеричном кодировании в столбце ZMEDIAKEY.
$ sqlite ChatStorage.sqlite
SQLite version 3.27.2 2019-03-09 15:45:46
Enter ".help" for usage hints.
sqlite> select ZMEDIAURL,ZVCARDSTRING,hex(ZMEDIAKEY) from ZWAMEDIAITEM where Z_PK = 1795;
https://mmg-fna.whatsapp.net/d/f/Atzc5Drr8l7ngis8GmUTMI6vMQNjOU9zGQ2SYRkjwq44.enc|video/mp4|0A2069A349914734B9359DA0CD8923E6DFDE06F1E2BCE23222C738C521570BA8242A1220A1F5AEB2E620F73007FA853200559B2669455BB5818F619397C638042D8F7F2A18B984A5F1052000
sqlite> .quit
Ключ медиа хранится в шестнадцатеричном кодировании в столбце media_key.
$ sqlite msgstore.db
SQLite version 3.27.2 2019-03-09 15:45:46
Enter ".help" for usage hints.
sqlite> select message_url,mime_type,hex(media_key) from message_media where message_row_id = 1337;
https://mmg-fna.whatsapp.net/d/f/AnUpYQ390rgUBOQRhuwCyNqo_9KGATdmLUq-ghYEx-D9.enc|video/mp4|14F9C1B3BB5E66D9A593999A5E0ED3D03ABFECA84320D17763C2B44205E91C17
sqlite> .quit
$ curl -O https://mmg-fna.whatsapp.net/d/f/Atzc5Drr8l7ngis8GmUTMI6vMQNjOU9zGQ2SYRkjwq44.enc
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 389k 100 389k 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 1956k
$ whatapp-media-decrypt -o Atzc5Drr8l7ngis8GmUTMI6vMQNjOU9zGQ2SYRkjwq44.mp4 -t 2 ./Atzc5Drr8l7ngis8GmUTMI6vMQNjOU9zGQ2SYRkjwq44.enc 0A2069A349914734B9359DA0CD8923E6DFDE06F1E2BCE23222C738C521570BA8242A1220A1F5AEB2E620F73007FA853200559B2669455BB5818F619397C638042D8F7F2A18B984A5F1052000
Нет. Шифрование WhatsApp является сквозным, что гарантирует, что только отправитель и получатель могут прочитать сообщение, и особенно не серверы (или атакующие!) между ними. Для расшифровки вложенного медиа используется криптографический ключ, хранящийся на одной из конечных точек, точно так же, как это делает приложение WhatsApp для отображения на экране.
Нет. WhatsApp использует iOS Data
Protection
для шифрования файлов пользовательских данных (включая ChatStorage.sqlite)
с помощью аппаратного UID-ключа устройства, который невозможно восстановить,
а также ключа, производного от кода доступа пользователя. Их невозможно
расшифровать без физического доступа к конкретному устройству iOS,
на котором был создан файл, а также знания кода доступа пользователя.
Нет.
Engelke, Lucas. go-whatsapp
Graham, Robert. How to decrypt WhatsApp end-to-end media files
Marczak, Bill. "Some Directions for Further Investigation in the Bezos Hack Case"
Sigalor. WhatsApp Web Reverse Engineered
WhatsApp. WhatsApp Encryption Overview