WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?

WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?

Chcesz dowiedzieć się, jakie typy artefaktów kryminalistycznych WhatsApp istnieją w różnych systemach operacyjnych i gdzie można je znaleźć — w takim razie dobrze trafiłeś. W tym artykule specjalista z Laboratorium Kryminalistyki Komputerowej Group-IB Igor Michajłow otwiera cykl publikacji dotyczących kryminalistycznych badań WhatsApp i informacji, które można uzyskać podczas analizy urządzenia.

Od razu zaznaczamy, że w różnych systemach operacyjnych przechowywane są różne typy artefaktów WhatsApp, a to, że badacz może wydobyć określone typy danych WhatsApp z jednego urządzenia, nie oznacza, że podobne dane można również wydobyć z innego urządzenia. Na przykład, jeśli jest zabezpieczona jednostka centralna działająca na systemie operacyjnym Windows, to na jej dyskach prawdopodobnie nie znajdą się czaty WhatsApp (wyjątkiem są kopie zapasowe urządzeń iOS, które mogą być odkryte na tych samych nośnikach). Przy konfiskacie laptopów i urządzeń mobilnych będą swoje szczególne cechy. O tym porozmawiajmy bardziej szczegółowo.

Artefakty WhatsApp w urządzeniu z systemem Android

Aby wydobyć artefakty WhatsApp z urządzenia działającego na systemie Android, badacz musi mieć prawa superużytkownika (‘root’) na badanym urządzeniu lub mieć możliwość w inny sposób wydobyć fizyczny zrzut pamięci urządzenia lub jego systemu plików (na przykład przy użyciu luk w oprogramowaniu konkretnego urządzenia mobilnego).

Pliki aplikacji znajdują się w pamięci telefonu w sekcji, w której przechowywane są dane użytkownika. Zazwyczaj ta sekcja nosi nazwę ‘userdata’. Podkatalogi i pliki programu znajdują się pod ścieżką: ‘/data/data/com.whatsapp/’.

WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
Główne pliki, które zawierają kryminalistyczne artefakty WhatsApp w systemie Android to bazy danych ‘wa.db’ i ‘msgstore.db’.

W bazie danych ‘wa.db’ znajduje się pełna lista kontaktów użytkownika WhatsApp, w tym numer telefonu, imię wyświetlane, znaczniki czasowe i wszelkie inne informacje podane przy rejestracji w WhatsApp. Plik ‘wa.db’ znajduje się pod ścieżką: ‘/data/data/com.whatsapp/databases/’ i ma następującą strukturę:

WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
Najciekawszymi tabelami w bazie danych ‘wa.db’ dla badacza są:

  • ‘wa_contacts’
    Ta tabela zawiera informacje o kontaktach: identyfikator kontaktu w WhatsApp, informacje o statusie, wyświetlana nazwa użytkownika, znaczniki czasu itp.

    Wygląd tabeli:

    WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
    Struktura tabeli

    Nazwa polaWartość
    _idnumer porządkowy rekordu (w tabeli SQL)
    jidWhatsApp ID kontaktu, zapisywany w formacie @s.whatsapp.net
    is_whatsapp_userzawiera ‘1’ jeśli kontakt to rzeczywisty użytkownik WhatsApp, ‘0’ w przeciwnym razie
    statuszawiera tekst wyświetlany w statusie kontaktu
    status_timestampzawiera znacznik czasu w formacie Unix Epoch Time (ms)
    numbernumer telefonu powiązany z kontaktem
    raw_contact_idnumer porządkowy kontaktu
    display_namewyświetlana nazwa kontaktu
    phone_typetyp telefonu
    phone_labeletykieta powiązana z numerem kontaktu
    unseen_msg_countliczba wiadomości wysłanych do kontaktu, które nie zostały przeczytane przez odbiorcę
    photo_tszawiera znacznik czasu w formacie Unix Epoch Time
    thumb_tszawiera znacznik czasu w formacie Unix Epoch Time
    photo_id_timestampzawiera znacznik czasu w formacie Unix Epoch Time (ms)
    given_namewartość pola odpowiada ‘display_name’ dla każdego kontaktu
    wa_namenazwa kontaktu w WhatsApp (wyświetlana nazwa z profilu kontaktu)
    sort_namenazwa kontaktu używana w operacjach sortowania
    nicknamepseudonim kontaktu w WhatsApp (wyświetlany pseudonim z profilu kontaktu)
    companyfirma (wyświetlana firma z profilu kontaktu)
    titlezalecenie (pan/pani; wyświetlane zalecenie z profilu kontaktu)
    offsetoffset
  • 'sqlite_sequence'
    Ta tabela zawiera informacje o liczbie kontaktów;
  • 'android_metadata'
    Ta tabela zawiera informacje o lokalizacji językowej WhatsApp.

W bazie danych ‘msgstore.db’ zawiera informacje o przesyłanych wiadomościach, takie jak numer kontaktu, tekst wiadomości, status wiadomości, znaczniki czasu, szczegóły przesyłanych plików dołączonych do wiadomości itp. Plik ‘msgstore.db’ znajduje się pod ścieżką: ‘/data/data/com.whatsapp/databases/’ i ma następującą strukturę:

WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
Najciekawszymi tabelami w pliku ‘msgstore.db’ dla badacza są:

  • 'sqlite_sequence'
    Ta tabela zawiera ogólne informacje o tej bazie danych, takie jak całkowita liczba przechowywanych wiadomości, całkowita liczba czatów itp.

    Wygląd tabeli:

    WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?

  • 'message_fts_content'
    Zawiera tekst przesyłanych wiadomości.

    Wygląd tabeli:

    WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?

  • 'messages'
    Ta tabela zawiera takie informacje jak numer kontaktu, tekst wiadomości, status wiadomości, znaczniki czasu, szczegóły przesyłanych plików dołączonych do wiadomości.

    Wygląd tabeli:

    WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
    Struktura tabeli

    Nazwa polaWartość
    _idnumer porządkowy rekordu (w tabeli SQL)
    key_remote_jidWhatsApp ID partnera komunikacyjnego
    key_from_mekierunek wiadomości: ‘0’ – przychodząca, ‘1’ – wychodząca
    key_idunikalny identyfikator wiadomości
    statusstatus wiadomości: ‘0’ – dostarczono, ‘4’ – oczekuje na serwerze, ‘5’ – dostarczono na miejsce, ‘6’ – wiadomość kontrolna, ‘13’ – wiadomość otworzona przez odbiorcę (przeczytana)
    need_pushma wartość ‘2’, jeśli jest to wiadomość rozsyłana, w przeciwnym razie zawiera ‘0’
    datatreść wiadomości (gdy parametr ‘media_wa_type’ ma wartość ‘0’)
    timestampzawiera znacznik czasu w formacie Unix Epoch Time (ms), wartość pobierana jest z zegara urządzenia
    media_urlzawiera URL przesyłanego pliku (gdy parametr ‘media_wa_type’ ma wartość ‘1’, ‘2’, ‘3’)
    media_mime_typetyp MIME przesyłanego pliku (gdy parametr ‘media_wa_type’ ma wartość ‘1’, ‘2’, ‘3’)
    media_wa_typetyp wiadomości: ‘0’ – tekst, ‘1’ – plik graficzny, ‘2’ – plik audio, ‘3’ – plik wideo, ‘4’ – karta kontaktowa, ‘5’ – dane geograficzne
    media_sizerozmiar przesyłanego pliku (gdy parametr ‘media_wa_type’ ma wartość ‘1’, ‘2’, ‘3’)
    media_namenazwa przesyłanego pliku (gdy parametr ‘media_wa_type’ ma wartość ‘1’, ‘2’, ‘3’)
    media_captionZawiera słowa ‘audio’, ‘video’ dla odpowiednich wartości parametru ‘media_wa_type’ (gdy parametr ‘media_wa_type’ ma wartość ‘1’, ‘3’)
    media_hashzakodowany w formacie base64 hasz przesyłanego pliku, wyliczony według algorytmu HAS-256 (gdy parametr ‘media_wa_type’ ma wartość ‘1’, ‘2’, ‘3’)
    media_durationczas trwania w sekundach dla pliku multimedialnego (gdy parametr ‘media_wa_type’ ma wartość ‘1’, ‘2’, ‘3’)
    originma wartość ‘2’, jeśli jest to wiadomość rozsyłana, w przeciwnym razie zawiera ‘0’
    latitudedane geograficzne: szerokość (gdy parametr ‘media_wa_type’ ma wartość ‘5’)
    longitudedane geograficzne: długość (gdy parametr ‘media_wa_type’ ma wartość ‘5’)
    thumb_imageinformacje pomocnicze
    remote_recourceID nadawcy (tylko dla czatów grupowych)
    received_timestampczas odbioru, zawiera znacznik czasu w formacie Unix Epoch Time (ms), wartość pobierana jest z zegara urządzenia (gdy parametr ‘key_from_me’ ma wartość ‘0’, ‘-1’ lub inną wartość)
    send_timestampnieużywane, zazwyczaj ma wartość ‘-1’
    receipt_server_timestampczas odbioru przez centralny serwerem, zawiera znacznik czasu w formacie Unix Epoch Time (ms), wartość pobierana jest z zegara urządzenia (gdy parametr ‘key_from_me’ ma wartość ‘1’, ‘-1’ lub inną wartość
    receipt_device_timestampczas odbioru wiadomości przez innego abonenta, zawiera znacznik czasu w formacie Unix Epoch Time (ms), wartość pobierana jest z zegara urządzenia (gdy parametr ‘key_from_me’ ma wartość ‘1’, ‘-1’ lub inną wartość
    read_device_timestampczas otwarcia (odczytu) wiadomości, zawiera znacznik czasu w formacie Unix Epoch Time (ms), wartość pobierana jest z zegara urządzenia
    played_device_timestampczas odtwarzania wiadomości, zawiera znacznik czasu w formacie Unix Epoch Time (ms), wartość pobierana jest z zegara urządzenia
    raw_dataminiatura przesyłanego pliku (gdy parametr 'media_wa_type' wynosi '1' lub '3')
    recipient_countliczba odbiorców (dla wiadomości masowych)
    participant_hashużywane podczas przesyłania wiadomości z danymi geograficznymi
    starrednie używane
    quoted_row_idnieznane, zazwyczaj zawiera wartość '0'
    mentioned_jidsnie używane
    multicast_idnie używane
    offsetoffset

    Niniejsza lista pól nie jest wyczerpująca. Dla różnych wersji WhatsApp część pól może być obecna lub nieobecna. Dodatkowo mogą występować pola 'media_enc_hash', 'edit_version', 'payment_transaction_id' itd.

  • 'messages_thumbnails'
    Ta tabela zawiera informacje o przesłanych obrazach i znacznikach czasu. W kolumnie 'timestamp' czas podany jest w formacie Unix Epoch Time (ms).
  • 'chat_list'
    Ta tabela zawiera informacje o czatach.

    Wygląd tabeli:

    WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?

Podczas badania WhatsApp na urządzeniu mobilnym z systemem Android należy również zwrócić uwagę na następujące pliki:

  • Plik 'msgstore.db.cryptXX' (gdzie XX to jedna lub dwie cyfry od 0 do 12, np. msgstore.db.crypt12). Zawiera zaszyfrowaną kopię zapasową wiadomości WhatsApp (kopię zapasową pliku msgstore.db). Plik (lub pliki) 'msgstore.db.cryptXX' znajduje się pod ścieżką: '/data/media/0/WhatsApp/Databases/' (wirtualna karta SD), '/mnt/sdcard/WhatsApp/Databases/' (fizyczna karta SD)'.
  • Plik 'key'. Zawiera klucz kryptograficzny. Znajduje się pod ścieżką: '/data/data/com.whatsapp/files/'. Używany do deszyfrowania zaszyfrowanych kopii zapasowych WhatsApp.
  • Plik 'com.whatsapp_preferences.xml'. Zawiera informacje o profilu konta WhatsApp. Plik znajduje się pod ścieżką: '/data/data/com.whatsapp/shared_prefs/'.

    Fragment zawartości pliku

    …
    9123456789 (numer telefonu, powiązany z kontem WhatsApp)
    …
    2.17.395 (wersja WhatsApp)
    …
    Cześć! Używam WhatsApp. (wiadomość wyświetlana w statusie konta)
    …
    Alex (imię właściciela konta)
    … 
  • Plik 'registration.RegisterPhone.xml'. Zawiera informacje o numerze telefonu, powiązanym z kontem WhatsApp. Plik znajduje się pod ścieżką: '/data/data/com.whatsapp/shared_prefs/'.

    Zawartość pliku

    
    9123456789
    
    
    912 345-67-89
    
    7
    7
    
  • Plik ‘axolotl.db’. Zawiera klucze kryptograficzne oraz inne dane niezbędne do identyfikacji właściciela konta. Znajduje się pod ścieżką: ‘/data/data/com.whatsapp/databases/’.
  • Plik ‘chatsettings.db’. Zawiera informacje o konfiguracji aplikacji.
  • Plik ‘wa.db’. Zawiera szczegóły kontaktów. Jest to bardzo interesująca baza danych (z punktu widzenia kryminalistyki) i informacyjna. Można w niej znaleźć szczegółowe informacje o usuniętych kontaktach.

Należy również zwrócić uwagę na następujące katalogi:

  • Katalog '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Zawiera przekazywane pliki graficzne.
  • Katalog '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Zawiera wiadomości głosowe w plikach formatu .OPUS.
  • Katalog '/data/data/com.whatsapp/cache/Profile Pictures/'. Zawiera pliki graficzne – obrazy kontaktów.
  • Katalog '/data/data/com.whatsapp/files/Avatars/'. Zawiera pliki graficzne – miniatury obrazów kontaktów. Pliki te mają rozszerzenie ‘.j’, ale w rzeczywistości są plikami graficznymi formatu JPEG (JPG).
  • Katalog '/data/data/com.whatsapp/files/Avatars/'. Zawiera pliki graficzne – obraz i miniaturę obrazu ustalonego jako awatar przez właściciela konta.
  • Katalog '/data/data/com.whatsapp/files/Logs/'. Zawiera dzienniki działania programu (plik ‘whatsapp.log’) oraz kopie zapasowe dzienników (plików o nazwach z formatem whatsapp-gggg-mm-dd.1.log.gz).

Pliki dzienników WhatsApp:

WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
Fragment dziennika2017-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] plik hasła brak lub nieczytelny
2017-01-10 09:37:09.782 LL_I D [1:main] statystyki Wiadomości tekstowe: 59 wysłanych, 82 odebranych / Wiadomości multimedialne: 1 wysłana (0 bajtów), 0 odebranych (9850158 bajtów) / Wiadomości offline: 81 odebranych (19522 ms średnie opóźnienie) / Usługa wiadomości: 116075 bajtów wysłanych, 211729 bajtów odebranych / Połączenia VoIP: 1 połączenie wychodzące, 0 przychodzących, 2492 bajtów wysłanych, 1530 bajtów odebranych / Google Drive: 0 bajtów wysłanych, 0 bajtów odebranych / Roaming: 1524 bajty wysłane, 1826 odebrane / Całkowite dane: 118567 bajtów wysłanych, 10063417 odebranych
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

  • Katalog '/data/media/0/WhatsApp/Media/WhatsApp Audio/'. Zawiera odebrane pliki dźwiękowe.
  • Katalog '/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/'. Zawiera wysłane pliki dźwiękowe.
  • Katalog '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Zawiera odebrane pliki graficzne.
  • Katalog '/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/'. Zawiera wysłane pliki graficzne.
  • Katalog '/data/media/0/WhatsApp/Media/WhatsApp Video/'. Zawiera odebrane pliki wideo.
  • Katalog '/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/'. Zawiera wysłane pliki wideo.
  • Katalog '/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/'. Zawiera pliki graficzne powiązane z właścicielem konta WhatsApp.
  • Aby zaoszczędzić miejsce na pamięci smartfona z Androidem, część danych WhatsApp może być przechowywana na karcie SD. Na karcie SD, w katalogu głównym, znajduje się katalog 'WhatsApp', w którym można znaleźć następujące artefakty tego programu:

    WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?

  • Katalog '.Share' ('/mnt/sdcard/WhatsApp/.Share/'). Zawiera kopie plików, które zostały przesłane innym użytkownikom WhatsApp.
  • Katalog '.trash' ('/mnt/sdcard/WhatsApp/.trash/'). Zawiera usunięte pliki.
  • Katalog 'Databases' ('/mnt/sdcard/WhatsApp/Databases/'). Zawiera zaszyfrowane kopie zapasowe. Mogą być odszyfrowane przy użyciu pliku 'key', wyodrębnionego z pamięci analizowanego urządzenia.

    Pliki znajdujące się w podkatalogu 'Databases':

    WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?

  • Katalog ‘Media’ (‘/mnt/sdcard/WhatsApp/Media/’). Zawiera podkatalogi ‘WallPaper’, ‘WhatsApp Audio’, ‘WhatsApp Images’, ‘WhatsApp Profile Photos’, ‘WhatsApp Video’, ‘WhatsApp Voice Notes’, w których znajdują się odebrane i wysłane pliki multimedialne (pliki graficzne, wideo, wiadomości głosowe, zdjęcia powiązane z profilem właściciela konta WhatsApp, tapety).
  • Katalog ‘Profile Pictures’ (‘/mnt/sdcard/WhatsApp/Profile Pictures/’). Zawiera pliki graficzne powiązane z profilem właściciela konta WhatsApp.
  • Czasami na karcie SD może znajdować się katalog ‘files’ (‘/mnt/sdcard/WhatsApp/Files/’). W tym katalogu znajdują się pliki, w których przechowywane są ustawienia programu i preferencje użytkownika.

Cechy przechowywania danych w niektórych modelach urządzeń mobilnych

W niektórych modelach urządzeń mobilnych działających na systemie Android możliwe jest przechowywanie artefaktów WhatsApp w innym miejscu. Jest to spowodowane zmianą przestrzeni przechowywania danych aplikacji przez systemowe oprogramowanie urządzenia mobilnego. Na przykład, w urządzeniach mobilnych Xiaomi dostępna jest funkcja tworzenia drugiej przestrzeni roboczej („SecondSpace”). Aktywacja tej funkcji zmienia lokalizację danych. Tak więc, w standardowym urządzeniu mobilnym działającym na systemie Android dane użytkownika przechowywane są w katalogu ‘/data/user/0/’ (co jest odniesieniem do zwykłych ‘/data/data/’), w drugiej przestrzeni roboczej dane aplikacji przechowywane są w katalogu ‘/data/user/10/’. To znaczy, na przykładzie lokalizacji pliku ‘wa.db’:

  • w standardowym smartfonie działającym na systemie Android: /data/user/0/com.whatsapp/databases/wa.db’ (co odpowiada ‘/data/data/com.whatsapp/databases/wa.db’);
  • w drugiej przestrzeni roboczej smartfona Xiaomi: ‘/data/user/10/com.whatsapp/databases/wa.db’.

Artefakty WhatsApp w urządzeniu iOS

W przeciwieństwie do systemu Android, w iOS dane aplikacji WhatsApp są przesyłane do kopii zapasowej (backupu iTunes). Dlatego wydobycie danych tej aplikacji nie wymaga pobierania systemu plików ani tworzenia fizycznej kopii pamięci badającego urządzenia. Większość istotnych informacji znajduje się w bazie danych ‘ChatStorage.sqlite’, która znajduje się pod ścieżką: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/’ (w niektórych programach ta ścieżka jest wyświetlana jako ‘AppDomainGroup-group.net.whatsapp.WhatsApp.shared’).

Struktura ‘ChatStorage.sqlite’:

WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
Najbardziej informacyjne w bazie danych ‘ChatStorage.sqlite’ są tabele ‘ZWAMESSAGE’ i ‘ZWAMEDIAITEM’.

Wygląd tabeli ‘ZWAMESSAGE’:

WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
Struktura tabeli 'ZWAMESSAGE'

Nazwa polaWartość
Z_PKnumer porządkowy rekordu (w tabeli SQL)
Z_ENTidentyfikator tabeli, ma wartość '9'
Z_OPTnieznane, zazwyczaj zawiera wartości od '1' do '6'
ZCHILDMESSAGESDELIVEREDCOUNTnieznane, zazwyczaj zawiera wartość '0'
ZCHILDMESSAGESPLAYEDCOUNTnieznane, zazwyczaj zawiera wartość '0'
ZCHILDMESSAGESREADCOUNTnieznane, zazwyczaj zawiera wartość '0'
ZDATAITEMVERSIONnieznane, zazwyczaj zawiera wartość '3', prawdopodobnie wskazuje na treść wiadomości
ZDOCIDnieznane
ZENCRETRYCOUNTnieznane, zazwyczaj zawiera wartość '0'
ZFILTEREDRECIPIENTCOUNTnieznane, zazwyczaj zawiera wartości '0', '2', '256'
ZISFROMMEkierunek wiadomości: ‘0’ – przychodząca, ‘1’ – wychodząca
ZMESSAGEERRORSTATUSstatus przesyłania wiadomości. Jeśli wiadomość została wysłana/odebrana, ma wartość '0'
ZMESSAGETYPEtyp przesyłanej wiadomości
ZSORTnieznane
ZSPOTLIGHSTATUSnieznane
ZSTARREDnieznane, nieużywane
ZCHATSESSIONnieznane
ZGROUPMEMBERnieznane, nieużywane
ZLASTSESSIONnieznane
ZMEDIAITEMnieznane
ZMESSAGEINFOnieznane
ZPARENTMESSAGEnieznane, nieużywane
ZMESSAGEDATEznacznik czasu w formacie OS X Epoch Time
ZSENTDATEczas wysłania wiadomości w formacie OS X Epoch Time
ZFROMJIDWhatsApp ID nadawcy
ZMEDIASECTIONIDzawiera rok i miesiąc wysłania pliku multimedialnego
ZPHASHnieznane, nieużywane
ZPUSHPAMEnazwa kontaktu nadawcy pliku multimedialnego w formacie UTF-8
ZSTANZIDunikalny identyfikator wiadomości
ZTEXTtreść wiadomości
ZTOJIDWhatsApp ID odbiorcy
OFFSEToffset

Wygląd tabeli ‘ZWAMEDIAITEM’:

WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
Struktura tabeli 'ZWAMEDIAITEM'

Nazwa polaWartość
Z_PKnumer porządkowy rekordu (w tabeli SQL)
Z_ENTidentyfikator tabeli, ma wartość '8'
Z_OPTnieznane, zazwyczaj zawiera wartości od '1' do '3'.
ZCLOUDSTATUSzawiera wartość '4' jeśli plik został przesłany.
ZFILESIZEzawiera długość pliku (w bajtach) dla przesyłanych plików
ZMEDIAORIGINnieznane, zazwyczaj ma wartość '0'
ZMOVIEDURATIONczas trwania pliku multimedialnego, dla plików pdf może zawierać liczbę stron dokumentu
ZMESSAGEzawiera numer porządkowy (numer różni się od tego, który jest podany w kolumnie 'Z_PK')
ZASPECTRATIOproporcje, nieużywane, zazwyczaj ma wartość '0'
ZHACCURACYnieznane, zazwyczaj ma wartość '0'
ZLATTITUDEszerokość w pikselach
ZLONGTITUDEwysokość w pikselach
ZMEDIAURLDATEznacznik czasu w formacie OS X Epoch Time
ZAUTHORNAMEautor (dla dokumentów, może zawierać nazwę pliku)
ZCOLLECTIONNAMEnie używane
ZMEDIALOCALPATHnazwisko pliku (z podaniem ścieżki) w systemie plików urządzenia
ZMEDIAURLURL, pod którym znajdował się plik multimedialny. Jeśli plik był przesyłany między abonentami, został zaszyfrowany, a jego rozszerzenie będzie wskazywać na rozszerzenie przesyłanego pliku — .enc
ZTHUMBNAILLOCALPATHścieżka do miniatury pliku w systemie plików urządzenia
ZTITLEtytuł pliku
ZVCARDNAMEhash pliku multimedialnego, przy przesyłaniu pliku do grupy może zawierać identyfikator nadawcy
ZVCARDSTRINGzawiera informacje o typie przesyłanego pliku (na przykład, image/jpeg), przy przesyłaniu pliku do grupy może zawierać identyfikator odbiorcy
ZXMPPTHUMBPATHścieżka do miniatury pliku w systemie plików urządzenia
ZMEDIAKEYnieznane, prawdopodobnie zawiera klucz do odszyfrowania zaszyfrowanego pliku.
ZMETADATAmetadane przesyłanej wiadomości
Offsetoffset

Inne interesujące tabele bazy danych ‘ChatStorage.sqlite’ to:

  • ‘ZWAPROFILEPUSHNAME’. Łączy ID WhatsApp z nazwą kontaktu;
  • ‘ZWAPROFILEPICTUREITEM’. Łączy ID WhatsApp z awatarem kontaktu;
  • ‘Z_PRIMARYKEY’. Tabela zawiera ogólne informacje o tej bazie danych, takie jak całkowita liczba przechowywanych wiadomości, całkowita liczba czatów itp.

Podczas badania WhatsApp w urządzeniu mobilnym działającym na iOS należy zwrócić uwagę na następujące pliki:

  • Plik ‘BackedUpKeyValue.sqlite’. Zawiera klucze kryptograficzne oraz inne dane niezbędne do identyfikacji właściciela konta. Znajduje się pod ścieżką: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Plik ‘ContactsV2.sqlite’. Zawiera informacje o kontaktach użytkownika, takie jak imię i nazwisko, numer telefonu, status kontaktu (w formie tekstu), ID WhatsApp itp. Znajduje się w ścieżce: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Plik ‘consumer_version’. Zawiera numer wersji zainstalowanej aplikacji WhatsApp. Znajduje się w ścieżce: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Plik ‘current_wallpaper.jpg’. Zawiera aktualne tło aplikacji WhatsApp. Znajduje się w ścieżce: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. W starszych wersjach aplikacji używany jest plik ‘wallpaper’, który znajduje się w ścieżce: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’.
  • Plik ‘blockedcontacts.dat’. Zawiera informacje o zablokowanych kontaktach. Znajduje się w ścieżce: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • Plik ‘pw.dat’. Zawiera zaszyfrowane hasło. Znajduje się w ścieżce: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/’.
  • Plik ‘net.whatsapp.WhatsApp.plist’ (lub plik ‘group.net.whatsapp.WhatsApp.shared.plist’). Zawiera informacje o profilu konta WhatsApp. Plik znajduje się w ścieżce: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/’.

Zawartość pliku ‘group.net.whatsapp.WhatsApp.shared.plist’ WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
Należy również zwrócić uwagę na następujące katalogi:

  • Katalog ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/’. Zawiera miniatury kontaktów, grup (pliki z rozszerzeniem .thumb), awatary kontaktów, awatar właściciela konta WhatsApp (plik ‘Photo.jpg’).
  • Katalog ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/’. Zawiera pliki multimedialne i ich miniatury
  • Katalog ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’. Zawiera dziennik pracy programu (plik ‘calls.log’) oraz kopie zapasowe dzienników pracy programu (plik ‘calls.backup.log’).
  • Katalog ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/’. Zawiera naklejki (pliki w formacie ‘.webp’).
  • Katalog ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/’. Zawiera dzienniki pracy programu.

Artefakty WhatsApp w systemie Windows

Artefakty WhatsApp w systemie Windows można znaleźć w kilku miejscach. Przede wszystkim są to katalogi zawierające pliki wykonywalne i pomocnicze programu (dla Windows 8/10):

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

W katalogu ‘C:Users%User profile% AppDataLocalWhatsApp’ znajduje się plik dziennika ‘SquirrelSetup.log’, w którym zawarte są informacje o sprawdzaniu dostępności aktualizacji i instalacji programu.

W katalogu ‘C:Users%User profile% AppDataRoamingWhatsApp’ znajduje się kilka podkatalogów:

WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
Plik ‘main-process.log’ zawiera informacje o działaniu programu WhatsApp.

Podkatalog ‘databases’ zawiera plik ‘Databases.db’, ale ten plik nie zawiera żadnych informacji o czatach ani kontaktach.

Najciekawsze z kryminalistycznego punktu widzenia są pliki znajdujące się w katalogu ‘Cache’. W głównej mierze są to pliki o nazwach ‘f_*******’ (gdzie * — liczba od 0 do 9), zawierające zaszyfrowane pliki multimedialne i dokumenty, ale wśród nich znajdują się też pliki niezabezpieczone. Szczególne zainteresowanie budzą pliki ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’, znajdujące się w tym samym podkatalogu. Pliki ‘data_0’, ‘data_1’, ‘data_3’ zawierają zewnętrzne linki do przesyłanych zaszyfrowanych plików multimedialnych i dokumentów.

Przykład informacji zawartej w pliku ‘data_1’WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
Może również zawierać pliki graficzne. ‘data_3’ zawiera awatary kontaktów (można je przywrócić poprzez przeszukiwanie nagłówków plików).

Plik ‘data_2’ Awatary zawarte w pliku

W ten sposób, w pamięci komputera nie można znaleźć samych czatów, ale można znaleźć: ‘data_2’:

WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
pliki multimedialne;

  • dokumenty przesyłane za pomocą WhatsApp;
  • informacje o kontaktach właściciela konta.
  • Artefakty WhatsApp w MacOS

W MacOS można znaleźć rodzaje artefaktów WhatsApp podobne do tych, które istnieją w systemie Windows.

Pliki programu znajdują się w katalogach:

‘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 <text variable> WhatsApp Accounts’
  • W tym katalogu znajdują się podkatalogi, których nazwy stanowią numery telefonów powiązane z właścicielem konta WhatsApp.
    ‘C:Users%User profile%LibraryCachesWhatsApp.ShipIt’
  • W tym katalogu znajdują się informacje o instalacji programu.
    ‘C:Users%User profile%PicturesBiblioteka zdjęć iPhoto.photolibraryMasters’
  • ‘C:Users%User profile%PicturesBiblioteka zdjęć iPhoto.photolibraryThumbnails’, 'C:Users%User profile%PicturesMediateka iPhoto.photolibraryThumbnails'
    W tych katalogach znajdują się pliki systemowe programu, w tym zdjęcia i miniatury kontaktów WhatsApp.
  • ‘C:Users%User profile%LibraryCachesWhatsApp’
    W tym katalogu znajdują się różne bazy SQLite, które są używane do buforowania danych.
  • ‘C:Users%User profile%LibraryApplication SupportWhatsApp’
    W tym katalogu znajduje się kilka podkatalogów:

    WhatsApp na wyciągnięcie ręki: gdzie i jak można wykryć artefakty kryminalistyczne?
    W katalogu ‘C:Users%User profile%LibraryApplication SupportWhatsAppCache’ znajdują się pliki ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’ i pliki z nazwami ‘f_*******’ (gdzie * to liczba od 0 do 9). Informacje dotyczące zawartości tych plików opisano w sekcji „Artykuły WhatsApp w Windows”.

    W katalogu ‘C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB’ mogą zawierać pliki multimedialne (pliki nie mają rozszerzeń).

    Plik ‘main-process.log’ zawiera informacje o działaniu programu WhatsApp.

Źródła

  1. Analiza kryptograficzna WhatsApp Messenger na smartfonach z systemem Android, Cosimo Anglano, 2014.
  2. Kryminalistyka WhatsApp: Eksploracja systemu plików i baz danych w aplikacji na Android i iOS autorstwa Ahmad Pratama, 2014.

W kolejnych artykułach tej serii:

Deszyfrowanie zaszyfrowanych baz WhatsAppArtykuł, w którym przedstawimy informacje na temat generowania klucza szyfrowania WhatsApp oraz praktyczne przykłady pokazujące, jak przeprowadzić deszyfrowanie zaszyfrowanych baz tego programu.
Ekstrakcja danych WhatsApp z chmurArtykuł, w którym wyjaśnimy, jakie dane WhatsApp są przechowywane w chmurach, oraz opiszemy metody ich ekstrakcji z chmur.
Ekstrakcja danych WhatsApp: przykłady praktyczneArtykuł, w którym krok po kroku opisujemy, jakimi programami i jak przeprowadzić ekstrakcję danych WhatsApp z różnych urządzeń.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster