Статья Форензика мессенджеров. WhatsApp.

Приветствую гостей и постояльцев Codeby.net!
Совсем недавно, коллега @Sunnych вдохновил на создание такой статьи.

1534179754198.png


Она послужит неплохим дополнением, этому материалу, и возможно позже выльется в отдельную, категорию «Форензика мессенджеров» но об этом чуть позже, вернемся к основной теме.
Я буду использовать инструмент Whapa на операционной системе Kali Rolling 2018.3.

1534179867841.png


Whapa - это набор инструментов для анализа приложения WhatsApp для Android. Все они написаны на Python 2.X.
Whapa - состоит из трех приложений:
  • Whapa (Whatsapp Parser)
  • Whademe (Whatsapp Decrypter and Merger)
  • Whagodri (Whataspp Google Drive Extractor)
Whapa - является парсером базы данных Android WhatsApp, который автоматизирует процесс и представляет данные, обрабатываемые базой данных Sqlite, таким образом, чтобы это было понятно аналитику.

Программное обеспечение разделено на четыре режима:
  • Message Mode: анализирует все сообщения в базе данных, применяя различные фильтры. Он извлекает экскизы, если они доступны. «./Media» - это каталог, в котором пишутся эскизы. Строки сортируются по метке времени, а не по id.
  • Decryption Mode: расшифровывает базы данных crypto12, если в наличии есть ключ.
  • Info Mode: отображает различную информацию о статусах, списке отправлений и группах.
  • Extract Mode: извлекает все эскизы из базы данных
Если вы скопируете базу данных «wa.db» в тот же каталог, что и скрипт, номер телефона будет отображаться вместе с именем.

Установка:

Код:
git clone https://github.com/B16f00t/whapa.git

1534179916357.png


Код:
pip install -r ./doc/requirements.txt

1534179938943.png


После успешной установки посмотрим поддерживаемые опции запуска приложения:

1534179954089.png


Теперь, переходим к самому интересному, допустим, к нам в руки попал телефон злодея, он на Android OS, и мы хотим почитать его переписку WhatsApp.
Для начала нам необходимо получить root-права на устройстве, здесь я не буду описывать, как это сделать, но это нужно делать аккуратно.
Первое, что нужно сделать, это извлечь из устройства файл базы данных с расширением - .crypt12.
Для этого, перейдите в папку на карте памяти вашего устройства, в которой WhatsApp сохраняет резервные копии чатов пользователя.

Код:
/sdcard/WhatsApp/Databases

Если перейти в эту папку вы увидите в ней один файл с названием msgstore.db.crypt12, и ещё несколько файлов с названиями, как msgstore-20**-**-**.1.db.crypt12.
  • msgstore.db.crypt12 – это файл с последней резервной копией чатов WhatsApp. Именно из данного файла происходит автоматическое восстановление чатов и контактов после переустановки WhatsApp.
  • msgstore-20**-**-**.1.db.crypt12 – это резервная копия чатов приложения на конкретную дату, которая указана в названии файла. В нашем случае – это резервная копия чатов на ** - ** 20** г.
Поэтому, если необходимо восстановить чаты по состоянию на определённую дату, найдите файл, в названии которого указана эта дата и переименуйте его в msgstore.db.crypt12.
Затем, из системной папки в корневой директории Android, необходимо извлечь файл key, он пригодится для формирования расшифрованной базы данных, с последующим анализом.
Итак, поле того, как оба файла извлечены, копируем их в папку с Whapa:

1534180100458.png


Генерируем базу данных, для последующего анализа на основе key:

Код:
python whapa.py msgstore.db.crypt12 -k key

1534180134366.png


Начинаем работать с файлом msgstore.db, смотрим историю сообщений:

Код:
python whapa.py –m

1534180172936.png


Результат меня устроил, но утилита содержит множество опций, с помощью которых вы можете фильтровать вывод, как Вам удобно, так как whapa - изначально парсер.
Формирование отчетов:
Для создания отчетов первое, что нам нужно сделать, это отредактировать файл «./cfg/settings.cfg».

Например:

Код:
[report]
logo =./cfg/logo.png
company = Foo S.L
record = 1337
unit = Research group
examiner = Vander
notes = Chat maintained between the murderer and the murderer

Здесь мы должны поставить логотип нашей компании, название компании или подразделения, а также присвоенный регистрационный номер, единицу или группу, в которой мы принадлежим, кто является аудитором, и мы также можем указать примечания к отчету.
Чтобы сгенерировать отчет, мы должны указать флаг «-r» или «-r EN», если мы хотим, чтобы отчет на английском языке, а также «-r ES», если мы хотим, чтобы отчет на испанском языке.
Пример использования:

Код:
python2 whapa.py -m -r -u 34XXX230775 (Создает отчет о разговоре с пользователем 34XXX230775)

Обратите внимание, что для создания отчета, который имеет смысл для читателя, вы всегда должны указывать пользователя с флагом «-u» или группой с флагом «-g». (Чтобы узнать номер группы, которую мы хотим использовать в нашем отчете, мы можем сначала использовать команду «python whapa.py -i», а затем скопировать и вставить ее в команду «python -m -r -g PASTE-HERE-GROUPNUMBER @ g.us ") или флаг« -a », который создает отчет обо всех разговорах (медленный вариант).
Если вы скопируете базу данных «wa.db» в тот же каталог, что и скрипт, номер телефона будет отображаться вместе с именем.
Для отчета, содержащего изображения, видео, документы вы должны скопировать папку «WhatsApp / Media» вашего телефона в каталог whapa.
Если вы хотите распечатать документ или создать отчет в формате pdf, я рекомендую в опции печати -> масштабировать представление <= 70%, иначе отчет будет отображаться слишком большим.

С информацией о работе модулей Whademe и Whagodri, вы можете ознакомиться на странице разработчика на Github.

На этом можно закончить, спасибо за внимание.
Специально для Codeby.net
Обязательно к прочтению: Android. Ищем интересности.
 
Последнее редактирование:

u7u

Green Team
13.09.2017
77
32
BIT
0
Доброго. Спасибоза инфу. Решил поиграться и вот:

pip install -r ./doc/requirements.txt
Collecting pycryptodome (from -r ./doc/requirements.txt (line 1))
Using cached
Requirement already satisfied: colorama in /root/anaconda3/lib/python3.6/site-packages (from -r ./doc/requirements.txt (line 2)) (0.3.9)
Collecting BeautifulSoup (from -r ./doc/requirements.txt (line 3))
Using cached
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-kwcgulqz/BeautifulSoup/setup.py", line 22
print "Unit tests have failed!"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Unit tests have failed!")?

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-kwcgulqz/BeautifulSoup/


Доброго. Спасибоза инфу. Решил поиграться и вот:
Так решил python2 whapa.py -h
python -m -r -u 34XXX230775 (Создает отчет о разговоре с пользователем 34XXX230775)

Должно быть:
python2 whapa.py -m -r -u 34XXX230775 (Создает отчет о разговоре с пользователем 34XXX230775)
В Android-устройствах ключ находится в каталоге data/data/сom.whatsapp/files
 
  • Нравится
Реакции: Ix0, Vodoleya и Sunnych

Sunnych

Mod. Forensics
Gold Team
01.06.2018
277
1 454
BIT
41
В Android-устройствах ключ находится в каталоге data/data/сom.whatsapp/files <- да вот тут находится key
про данные, где что Android. Ищем интересности.
вот с путями все Форензика Android, расшифровать сообщения баз данных crypt в WhatsApp

Vander плюсую статья познавательная! Что аналоговое для Telegram если можно. Благодарю!
Способ изъятия сообщений из базы данных Telegram

Я так понимаю что это будет работать и на винде?
Все таки Python и у нас есть полностью под windows Форензика Android, расшифровать сообщения баз данных crypt в WhatsApp
 

Air7771

Green Team
22.02.2017
100
65
BIT
1
Приветствую гостей и постояльцев Codeby.net!
Совсем недавно, коллега @Sunnych вдохновил на создание такой статьи.

Посмотреть вложение 21296

Она послужит неплохим дополнением, этому материалу, и возможно позже выльется в отдельную, категорию «Форензика мессенджеров» но об этом чуть позже, вернемся к основной теме.
Я буду использовать инструмент Whapa на операционной системе Kali Rolling 2018.3.

Посмотреть вложение 21297

Whapa - это набор инструментов для анализа приложения WhatsApp для Android. Все они написаны на Python 2.X.
Whapa - состоит из трех приложений:
  • Whapa (Whatsapp Parser)
  • Whademe (Whatsapp Decrypter and Merger)
  • Whagodri (Whataspp Google Drive Extractor)
Whapa - является парсером базы данных Android WhatsApp, который автоматизирует процесс и представляет данные, обрабатываемые базой данных Sqlite, таким образом, чтобы это было понятно аналитику.

Программное обеспечение разделено на четыре режима:
  • Message Mode: анализирует все сообщения в базе данных, применяя различные фильтры. Он извлекает экскизы, если они доступны. «./Media» - это каталог, в котором пишутся эскизы. Строки сортируются по метке времени, а не по id.
  • Decryption Mode: расшифровывает базы данных crypto12, если в наличии есть ключ.
  • Info Mode: отображает различную информацию о статусах, списке отправлений и группах.
  • Extract Mode: извлекает все эскизы из базы данных
Если вы скопируете базу данных «wa.db» в тот же каталог, что и скрипт, номер телефона будет отображаться вместе с именем.

Установка:

Код:
git clone https://github.com/B16f00t/whapa.git

Посмотреть вложение 21298

Код:
pip install -r ./doc/requirements.txt

Посмотреть вложение 21299

После успешной установки посмотрим поддерживаемые опции запуска приложения:

Посмотреть вложение 21300

Теперь, переходим к самому интересному, допустим, к нам в руки попал телефон злодея, он на Android OS, и мы хотим почитать его переписку WhatsApp.
Для начала нам необходимо получить root-права на устройстве, здесь я не буду описывать, как это сделать, но это нужно делать аккуратно.
Первое, что нужно сделать, это извлечь из устройства файл базы данных с расширением - .crypt12.
Для этого, перейдите в папку на карте памяти вашего устройства, в которой WhatsApp сохраняет резервные копии чатов пользователя.

Код:
/sdcard/WhatsApp/Databases

Если перейти в эту папку вы увидите в ней один файл с названием msgstore.db.crypt12, и ещё несколько файлов с названиями, как msgstore-20**-**-**.1.db.crypt12.
  • msgstore.db.crypt12 – это файл с последней резервной копией чатов WhatsApp. Именно из данного файла происходит автоматическое восстановление чатов и контактов после переустановки WhatsApp.
  • msgstore-20**-**-**.1.db.crypt12 – это резервная копия чатов приложения на конкретную дату, которая указана в названии файла. В нашем случае – это резервная копия чатов на ** - ** 20** г.
Поэтому, если необходимо восстановить чаты по состоянию на определённую дату, найдите файл, в названии которого указана эта дата и переименуйте его в msgstore.db.crypt12.
Затем, из системной папки в корневой директории Android, необходимо извлечь файл key, он пригодится для формирования расшифрованной базы данных, с последующим анализом.
Итак, поле того, как оба файла извлечены, копируем их в папку с Whapa:

Посмотреть вложение 21301

Генерируем базу данных, для последующего анализа на основе key:

Код:
python whapa.py msgstore.db.crypt12 -k key

Посмотреть вложение 21302

Начинаем работать с файлом msgstore.db, смотрим историю сообщений:

Код:
python whapa.py –m

Посмотреть вложение 21303

Результат меня устроил, но утилита содержит множество опций, с помощью которых вы можете фильтровать вывод, как Вам удобно, так как whapa - изначально парсер.
Формирование отчетов:
Для создания отчетов первое, что нам нужно сделать, это отредактировать файл «./cfg/settings.cfg».

Например:

Код:
[report]
logo =./cfg/logo.png
company = Foo S.L
record = 1337
unit = Research group
examiner = Vander
notes = Chat maintained between the murderer and the murderer

Здесь мы должны поставить логотип нашей компании, название компании или подразделения, а также присвоенный регистрационный номер, единицу или группу, в которой мы принадлежим, кто является аудитором, и мы также можем указать примечания к отчету.
Чтобы сгенерировать отчет, мы должны указать флаг «-r» или «-r EN», если мы хотим, чтобы отчет на английском языке, а также «-r ES», если мы хотим, чтобы отчет на испанском языке.
Пример использования:

Код:
python2 whapa.py -m -r -u 34XXX230775 (Создает отчет о разговоре с пользователем 34XXX230775)

Обратите внимание, что для создания отчета, который имеет смысл для читателя, вы всегда должны указывать пользователя с флагом «-u» или группой с флагом «-g». (Чтобы узнать номер группы, которую мы хотим использовать в нашем отчете, мы можем сначала использовать команду «python whapa.py -i», а затем скопировать и вставить ее в команду «python -m -r -g PASTE-HERE-GROUPNUMBER @ g.us ") или флаг« -a », который создает отчет обо всех разговорах (медленный вариант).
Если вы скопируете базу данных «wa.db» в тот же каталог, что и скрипт, номер телефона будет отображаться вместе с именем.
Для отчета, содержащего изображения, видео, документы вы должны скопировать папку «WhatsApp / Media» вашего телефона в каталог whapa.
Если вы хотите распечатать документ или создать отчет в формате pdf, я рекомендую в опции печати -> масштабировать представление <= 70%, иначе отчет будет отображаться слишком большим.

С информацией о работе модулей Whademe и Whagodri, вы можете ознакомиться на странице разработчика на Github.

На этом можно закончить, спасибо за внимание.
Специально для Codeby.net
Обязательно к прочтению: Android. Ищем интересности.

Vander плюсую статья познавательная! Что аналоговое для Telegram если можно. Благодарю!
 
Г

Гость

В папке data/com.whatsapp есть только папка cash, как найти этот ключ?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!