WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?

WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?

Jeśli chcesz wiedzieć, jakie rodzaje artefaktów kryminalistycznych WhatsApp istnieją w różnych systemach operacyjnych i gdzie dokładnie można je znaleźć, to jest to miejsce dla Ciebie. Ten artykuł pochodzi od specjalisty z Laboratorium Informatyki Śledczej Group-IB Igor Michajłow rozpoczyna serię postów na temat kryminalistyki WhatsApp i tego, jakie informacje można uzyskać analizując urządzenie.

Od razu zauważmy, że różne systemy operacyjne przechowują różne typy artefaktów WhatsApp, a jeśli badacz może wyodrębnić określone typy danych WhatsApp z jednego urządzenia, nie oznacza to, że podobne typy danych można wyodrębnić z innego urządzenia. Na przykład, jeśli zostanie usunięta jednostka systemowa z systemem operacyjnym Windows, czaty WhatsApp prawdopodobnie nie zostaną znalezione na jej dyskach (z wyjątkiem kopii zapasowych urządzeń iOS, które można znaleźć na tych samych dyskach). Zajmowanie laptopów i urządzeń mobilnych będzie miało swój własny charakter. Porozmawiajmy o tym bardziej szczegółowo.

Artefakty WhatsApp na urządzeniu z Androidem

Aby wyodrębnić artefakty WhatsApp z urządzenia z systemem Android, badacz musi mieć uprawnienia administratora ('korzeń') na badanym urządzeniu lub w inny sposób wyodrębnić zrzut pamięci fizycznej urządzenia lub jego systemu plików (na przykład wykorzystując luki w oprogramowaniu określonego urządzenia mobilnego).

Pliki aplikacji znajdują się w pamięci telefonu w sekcji, w której zapisywane są dane użytkownika. Z reguły ta sekcja nosi nazwę 'dane użytkownika'. Podkatalogi i pliki programów znajdują się wzdłuż ścieżki: „/data/data/com.whatsapp/”.

WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
Głównymi plikami zawierającymi artefakty kryminalistyczne WhatsApp w systemie operacyjnym Android są bazy danych „wa.db” и „msgstore.db”.

W bazie danych „wa.db” zawiera pełną listę kontaktów użytkownika WhatsApp, w tym numer telefonu, nazwę wyświetlaną, znaczniki czasu i wszelkie inne informacje podane podczas rejestracji w WhatsApp. Plik „wa.db” położony wzdłuż ścieżki: „/data/data/com.whatsapp/databases/” i ma następującą strukturę:

WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
Najciekawsze tabele w bazie danych „wa.db” dla badacza są:

  • „wa_kontakty”
    Ta tabela zawiera informacje kontaktowe: identyfikator kontaktu WhatsApp, informacje o statusie, wyświetlaną nazwę użytkownika, znaczniki czasu itp.

    Wygląd stołu:

    WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
    Struktura tabeli

    Nazwa pola Wartość
    _ID rekordowy numer kolejny (w tabeli SQL)
    dżid Identyfikator kontaktu WhatsApp zapisany w formacie <numer telefonu>@s.whatsapp.net
    is_whatsapp_user zawiera „1”, jeśli kontakt dotyczy rzeczywistego użytkownika WhatsApp, „0” w przeciwnym razie
    status zawiera tekst wyświetlany w statusie kontaktu
    status_znacznik czasu zawiera znacznik czasu w formacie czasu epoki uniksowej (ms).
    numer numer telefonu powiązany z kontaktem
    raw_contact_id kontaktowy numer seryjny
    DISPLAY_NAME wyświetlana nazwa kontaktu
    rodzaj telefonu rodzaj telefonu
    etykieta_telefonu etykieta powiązana z numerem kontaktowym
    unseen_msg_count liczba wiadomości wysłanych przez kontakt, ale nie przeczytanych przez odbiorcę
    zdjęcia_ts zawiera znacznik czasu w formacie czasu epoki uniksowej
    kciuk_ts zawiera znacznik czasu w formacie czasu epoki uniksowej
    zdjęcie_id_znacznik czasu zawiera znacznik czasu w formacie czasu epoki uniksowej (ms).
    nadane imię Wartość pola odpowiada wartości „display_name” dla każdego kontaktu
    wa_name Nazwa kontaktu WhatsApp (wyświetlana jest nazwa podana w profilu kontaktu)
    nazwa_sortowania nazwa kontaktu używana w operacjach sortowania
    przezwisko pseudonim kontaktu w WhatsApp (wyświetlany jest pseudonim podany w profilu kontaktu)
    sukcesy firma firma (wyświetlana jest firma podana w profilu kontaktu)
    tytuł tytuł (Pani/Pan; wyświetlany jest tytuł skonfigurowany w profilu kontaktu)
    offset stronniczość
  • „sekwencja_sqlite”
    Ta tabela zawiera informacje o liczbie kontaktów;
  • „metadane_Androida”
    Ta tabela zawiera informacje o lokalizacji języka WhatsApp.

W bazie danych „msgstore.db” zawiera informacje o wysłanych wiadomościach, takie jak numer kontaktowy, treść wiadomości, status wiadomości, znaczniki czasu, szczegóły przesłanych plików zawarte w wiadomościach itp. Plik „msgstore.db” położony wzdłuż ścieżki: „/data/data/com.whatsapp/databases/” i ma następującą strukturę:

WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
Najciekawsze tabele w pliku „msgstore.db” dla badacza są:

  • „sekwencja_sqlite”
    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 stołu:

    WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?

  • „wiadomość_fts_treść”
    Zawiera tekst wysłanych wiadomości.

    Wygląd stołu:

    WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?

  • „wiadomości”
    Tabela ta zawiera informacje takie jak numer kontaktowy, treść wiadomości, status wiadomości, znaczniki czasu, informacje o przesłanych plikach zawarte w wiadomościach.

    Wygląd stołu:

    WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
    Struktura tabeli

    Nazwa pola Wartość
    _ID rekordowy numer kolejny (w tabeli SQL)
    klucz_zdalny_jid Identyfikator WhatsApp partnera komunikacyjnego
    klucz_od_mnie kierunek wiadomości: '0' – przychodząca, '1' – wychodząca
    klucz_id unikalny identyfikator wiadomości
    status status wiadomości: „0” – dostarczona, „4” – oczekuje na serwerze, „5” – odebrana w miejscu docelowym, „6” – wiadomość kontrolna, „13” – wiadomość otwarta przez odbiorcę (przeczytana)
    potrzeba_pchnięcia ma wartość „2”, jeśli jest to wiadomość rozgłoszeniowa, w przeciwnym razie zawiera „0”
    dane tekst wiadomości (gdy parametr „media_wa_type” ma wartość „0”)
    znak czasu zawiera znacznik czasu w formacie Unix Epoch Time (ms), wartość jest pobierana z zegara urządzenia
    adres_medialny zawiera adres URL przesyłanego pliku (gdy parametr „media_wa_type” ma wartość „1”, „2”, „3”)
    typ_mimu_medialnego Typ MIME przesyłanego pliku (gdy parametr „media_wa_type” jest równy „1”, „2”, „3”)
    typ_medialny typ wiadomości: '0' - tekst, '1' - plik graficzny, '2' - plik audio, '3' - plik wideo, '4' - wizytówka, '5' - geodane
    rozmiar_mediau rozmiar przesyłanego pliku (gdy parametr „media_wa_type” ma wartość „1”, „2”, „3”)
    nazwa_mediau nazwa przesyłanego pliku (gdy parametr „media_wa_type” ma wartość „1”, „2”, „3”)
    podpis_medialny Zawiera słowa „audio”, „video” dla odpowiednich wartości parametru „media_wa_type” (gdy parametr „media_wa_type” ma wartość „1”, „3”)
    media_hash Hash przesyłanego pliku zakodowany w base64, obliczony przy użyciu algorytmu HAS-256 (gdy parametr „media_wa_type” jest równy „1”, „2”, „3”)
    czas trwania_mediau czas trwania pliku multimedialnego w sekundach (gdy „media_wa_type” to „1”, „2”, „3”)
    pochodzenie ma wartość „2”, jeśli jest to wiadomość rozgłoszeniowa, w przeciwnym razie zawiera „0”
    szerokość geodane: szerokość geograficzna (gdy parametr „media_wa_type” ma wartość „5”)
    długość geograficzna geodata: długość geograficzna (gdy parametr „media_wa_type” ma wartość „5”)
    obraz_kciuka informacje serwisowe
    zdalny_zasób Identyfikator nadawcy (tylko dla czatów grupowych)
    otrzymany_znacznik czasu czas otrzymania, 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_timestamp nie używany, zwykle ma wartość „-1”
    znacznik czasu_serwera_potwierdzeń czas odebrany przez serwer centralny, 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ść
    paragon_urządzenie_znacznik czasu czas odebrania 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_timestamp czas otwarcia (odczytania) wiadomości, zawiera znacznik czasu w formacie Unix Epoch Time (ms), wartość pobierana jest z zegara urządzenia
    odtwarzane_urządzenie_znacznik czasu czas odtwarzania wiadomości, zawiera znacznik czasu w formacie Unix Epoch Time (ms), wartość pobierana jest z zegara urządzenia
    surowe_dane miniatura przesyłanego pliku (gdy parametr „media_wa_type” ma wartość „1” lub „3”)
    liczba_odbiorców liczba odbiorców (dla wiadomości rozgłoszeniowych)
    uczestnik_hash używany podczas przesyłania wiadomości z geodanymi
    zagrał nieużywany
    cytowany_row_id nieznany, zwykle zawiera wartość „0”
    wspomniany_jids nieużywany
    identyfikator_multicastu nieużywany
    offset stronniczość

    Ta lista pól nie jest wyczerpująca. W przypadku różnych wersji WhatsApp niektóre pola mogą być obecne lub nieobecne. Dodatkowo mogą występować pola „media_enc_hash”, „edycja_wersji”, „identyfikator_transakcji_płatności” itd.

  • „miniatury_wiadomości”
    Ta tabela zawiera informacje o przesłanych obrazach i znacznikach czasu. W kolumnie „znacznik czasu” czas jest podany w formacie czasu epoki uniksowej (ms).
  • „lista_czatów”
    Ta tabela zawiera informacje o czatach.

    Wygląd stołu:

    WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?

Ponadto, przeglądając WhatsApp na urządzeniu mobilnym z systemem Android, należy zwrócić uwagę na następujące pliki:

  • plik „msgstore.db.cryptXX” (gdzie XX to jedna lub dwie cyfry od 0 do 12, na przykład msgstore.db.crypt12). Zawiera zaszyfrowaną kopię zapasową wiadomości WhatsApp (plik kopii zapasowej msgstore.db). Akta) „msgstore.db.cryptXX” położony wzdłuż ścieżki: „/data/media/0/WhatsApp/Bazy danych/” (wirtualna karta SD), '/mnt/sdcard/WhatsApp/bazy danych/ (fizyczna karta SD)”.
  • plik 'klucz'. Zawiera klucz kryptograficzny. Znajduje się przy ścieżce: „/data/data/com.whatsapp/files/”. Służy do odszyfrowywania zaszyfrowanych kopii zapasowych WhatsApp.
  • plik „com.whatsapp_preferences.xml”. Zawiera informacje o profilu Twojego konta WhatsApp. Plik znajduje się wzdłuż ścieżki: „/data/data/com.whatsapp/shared_prefs/”.

    Fragment zawartości pliku

    <?xml version="1.0" encoding="ISO-8859-1"?>
    …
    <string name="ph">9123456789</string> (номер телефона, ассоциированный с аккаунтом WhatsApp)
    …
    <string name="version">2.17.395</string> (версия WhatsApp)
    …
    <string name="my_current_status">Hey there! I am using WhatsApp.</string> (сообщение, отображаемое в статусе аккаунта)
    …
    <string name="push_name">Alex</string> (имя владельца аккаунта)
    … 
  • plik 'rejestracja.ZarejestrujTelefon.xml'. Zawiera informacje o numerze telefonu powiązanym z kontem WhatsApp. Plik znajduje się wzdłuż ścieżki: „/data/data/com.whatsapp/shared_prefs/”.

    Zawartość pliku

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <map>
    <string name="com.whatsapp.registration.RegisterPhone.phone_number">9123456789</string>
    <int name="com.whatsapp.registration.RegisterPhone.verification_state" value="0"/>
    <int name="com.whatsapp.registration.RegisterPhone.country_code_position" value="-1"/>
    <string name="com.whatsapp.registration.RegisterPhone.input_phone_number">912 345-67-89</string>
    <int name="com.whatsapp.registration.RegisterPhone.phone_number_position" value="10"/>
    <string name="com.whatsapp.registration.RegisterPhone.input_country_code">7</string>
    <string name="com.whatsapp.registration.RegisterPhone.country_code">7</string>
    </map>
  • plik „aksolotl.db”. Zawiera klucze kryptograficzne i inne dane niezbędne do identyfikacji właściciela konta. Znajduje się przy ścieżce: „/data/data/com.whatsapp/databases/”.
  • plik „ustawienia czatu.db”. Zawiera informacje o konfiguracji aplikacji.
  • plik „wa.db”. Zawiera dane kontaktowe. Bardzo ciekawa (z punktu widzenia kryminalistycznego) i pouczająca baza danych. Może zawierać 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/Obrazy WhatsApp/”. Zawiera przesłane pliki graficzne.
  • katalog „/data/media/0/WhatsApp/Media/Notatki głosowe WhatsApp/”. Zawiera wiadomości głosowe w plikach w formacie .OPUS.
  • katalog „/data/data/com.whatsapp/cache/Zdjęcia profilowe/”. Zawiera pliki graficzne – obrazy kontaktów.
  • katalog „/data/data/com.whatsapp/files/Avatary/”. Zawiera pliki graficzne – miniatury kontaktów. Pliki te mają rozszerzenie „.j”, ale mimo to są plikami obrazów JPEG (JPG).
  • katalog „/data/data/com.whatsapp/files/Avatary/”. Zawiera pliki graficzne - obraz i miniaturę obrazu ustawionego jako awatar przez właściciela konta.
  • katalog „/data/data/com.whatsapp/files/Logs/”. Zawiera log działania programu (plik „whatsapp.log”) oraz kopie zapasowe logów działania programu (pliki z nazwami w formacie whatsapp-rrrr-mm-dd.1.log.gz).

Pliki dziennika WhatsApp:

WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
Fragment dziennika2017-01-10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] powiadomienie o nieodebranym połączeniu/liczba inicjacji:0 sygnatura czasowa:0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] powiadomienie o nieodebranym połączeniu/aktualizacja anuluj 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] Brak pliku haseł lub jest on 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łane (0 bajtów), 0 odebranych (9850158 bajtów) / Wiadomości offline: 81 odebranych ( średnie opóźnienie 19522 ms) / Usługa wiadomości: 116075 bajtów wysłanych, 211729 bajtów odebranych / Połączenia VoIP: 1 połączenia wychodzące, 0 połączeń przychodzących, 2492 bajty wysłane, 1530 bajtów odebranych / Dysk Google: 0 wysłanych bajtów, 0 odebranych bajtów / Roaming: 1524 wysłanych bajtów, 1826 bajtów odebranych / Łącznie dane: 118567 wysłanych bajtów, 10063417 odebranych bajtów
2017-01-10 09:37:09.785 LL_I D [1:main] menedżer-stanu-mediów/odśwież-stan-mediau/nośnik-zapisowy
2017-01-10 09:37:09.806 LL_I D [1:main] aplikacja-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/wstecz/usuń fałsz
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/wersja 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 | spędzony czas: 8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] menedżer stanu multimediów/odśwież stan mediów/pamięć wewnętrzna dostępna: 1,345,622,016 5,687,922,688 XNUMX XNUMX łącznie: XNUMX XNUMX XNUMX XNUMX

  • katalog „/data/media/0/WhatsApp/Media/WhatsApp Audio/”. Zawiera odebrane pliki audio.
  • katalog „/data/media/0/WhatsApp/Media/WhatsApp Audio/Wysłane/”. Zawiera przesłane pliki audio.
  • katalog „/data/media/0/WhatsApp/Media/Obrazy WhatsApp/”. Zawiera wynikowe pliki graficzne.
  • katalog „/data/media/0/WhatsApp/Media/Obrazy WhatsApp/Wysłane/”. Zawiera przesłane pliki graficzne.
  • katalog „/data/media/0/WhatsApp/Media/Wideo WhatsApp/”. Zawiera odebrane pliki wideo.
  • katalog „/data/media/0/WhatsApp/Media/WhatsApp Video/Wysłane/”. Zawiera przesłane pliki wideo.
  • katalog „/data/media/0/WhatsApp/Media/Zdjęcia profilowe WhatsApp/”. Zawiera pliki graficzne powiązane z właścicielem konta WhatsApp.
  • Aby zaoszczędzić miejsce w pamięci smartfona z systemem Android, niektóre dane WhatsApp można przechowywać na karcie SD. Na karcie SD w katalogu głównym znajduje się katalog „WhatsApp”, gdzie można znaleźć następujące artefakty tego programu:

    WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?

  • katalog '.Udział' („/mnt/sdcard/WhatsApp/.Share/”). Zawiera kopie plików udostępnionych innym użytkownikom WhatsApp.
  • katalog '.śmieci' („/mnt/sdcard/WhatsApp/.trash/”). Zawiera usunięte pliki.
  • katalog „bazy danych” („/mnt/sdcard/WhatsApp/Bazy danych/”). Zawiera zaszyfrowane kopie zapasowe. Można je odszyfrować, jeśli plik jest obecny 'klucz', wyodrębniony z pamięci analizowanego urządzenia.

    Pliki znajdujące się w podkatalogu „bazy danych”:

    WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?

  • katalog 'Połowa' („/mnt/sdcard/WhatsApp/Media/”). Zawiera podkatalogi 'Tapeta', „Dźwięk WhatsApp”, „Obrazy WhatsApp”, „Zdjęcia profilowe WhatsApp”, „Wideo WhatsApp”, „Notatki głosowe WhatsApp”, które zawierają odebrane i przesłane pliki multimedialne (pliki graficzne, pliki wideo, wiadomości głosowe, zdjęcia powiązane z profilem właściciela konta WhatsApp, tapety).
  • katalog 'Zdjęcia profilowe' („/mnt/sdcard/WhatsApp/Zdjęcia profilowe/”). Zawiera pliki graficzne powiązane z profilem właściciela konta WhatsApp.
  • Czasami na karcie SD może znajdować się katalog 'akta' („/mnt/sdcard/WhatsApp/Files/”). Katalog ten zawiera pliki przechowujące ustawienia programu i preferencje użytkownika.

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

Niektóre modele urządzeń mobilnych z systemem operacyjnym Android mogą przechowywać artefakty WhatsApp w innej lokalizacji. Dzieje się tak na skutek zmian w przestrzeni przechowywania danych aplikacji przez oprogramowanie systemowe urządzenia mobilnego. Przykładowo urządzenia mobilne Xiaomi posiadają funkcję tworzenia drugiej przestrzeni roboczej („SecondSpace”). Po włączeniu tej funkcji zmienia się lokalizacja danych. Tak więc, jeśli na zwykłym urządzeniu mobilnym z systemem operacyjnym Android dane użytkownika są przechowywane w katalogu '/dane/użytkownik/0/' (co jest odniesieniem do zwykłego '/dane/dane/'), to w drugim obszarze roboczym dane aplikacji zapisywane są w katalogu '/dane/użytkownik/10/'. To znaczy na przykładzie lokalizacji pliku „wa.db”:

  • w zwykłym smartfonie z systemem operacyjnym Android: /data/user/0/com.whatsapp/databases/wa.db” (co jest równoważne „/data/data/com.whatsapp/databases/wa.db”);
  • w drugim obszarze roboczym smartfona Xiaomi: „/data/user/10/com.whatsapp/databases/wa.db”.

Artefakty WhatsApp na urządzeniu z systemem iOS

W przeciwieństwie do systemu operacyjnego Android, w aplikacji iOS WhatsApp dane są przesyłane do kopii zapasowej (kopia zapasowa iTunes). Dlatego wyodrębnienie danych z tej aplikacji nie wymaga wyodrębniania systemu plików ani tworzenia zrzutu pamięci fizycznej badanego urządzenia. Większość istotnych informacji znajduje się w bazie danych „ChatStorage.sqlite”, który znajduje się wzdłuż ścieżki: „/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/” (w niektórych programach ta ścieżka pojawia się jako „AppDomainGroup-group.net.whatsapp.WhatsApp.shared”).

Struktura „ChatStorage.sqlite”:

WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
Najbardziej pouczające tabele w bazie danych „ChatStorage.sqlite” to „WIADOMOŚĆ ZWAM” и „ZWAMEDIAITEM”.

Wygląd stołu „WIADOMOŚĆ ZWAM”:

WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
Struktura tabeli „ZWAMESSAGE”

Nazwa pola Wartość
Z_PK rekordowy numer kolejny (w tabeli SQL)
Z_ENT identyfikator tabeli, ma wartość '9'
Z_OPT nieznany, zwykle zawiera wartości od „1” do „6”
ZWIADOMOŚCI DOSTARCZONE LICZBA nieznany, zwykle zawiera wartość „0”
ZCHILDMESSAGESPLAYEDCOUNT nieznany, zwykle zawiera wartość „0”
ZCHILDMESSAGESREADCOUNT nieznany, zwykle zawiera wartość „0”
WERSJA ZDANYCH nieznany, zwykle zawiera wartość „3”, prawdopodobnie oznaczającą wiadomość tekstową
ZDOCYD nieznany
ZENCRETRYCOUNT nieznany, zwykle zawiera wartość „0”
ZFILTROWANA LICZBA ODBIORNIKÓW nieznany, zwykle zawiera wartości „0”, „2”, „256”
ZISFROMME kierunek wiadomości: '0' – przychodząca, '1' – wychodząca
ZMESSAGEERRORSTATUS stan transmisji wiadomości. Jeżeli wiadomość została wysłana/odebrana to ma wartość '0'
TYP WIADOMOŚCI rodzaj przesyłanej wiadomości
ZSORT nieznany
STATUS ZSPOTLIGHT nieznany
Z GWIAZDĄ nieznany, nie używany
ZCHATSESJA nieznany
CZŁONEK ZGRUPY nieznany, nie używany
ZLASTSESJA nieznany
ZMEDIAITEM nieznany
INFORMACJE O WIADOMOŚCI nieznany
WIADOMOŚĆ DLA RODZICÓW nieznany, nie używany
DATA WIADOMOŚCI znacznik czasu w formacie czasu epoki OS X
ZSENTDATA godzina wysłania wiadomości w formacie OS X Epoch Time
ZFROMJID Identyfikator nadawcy WhatsApp
ZMEDIASECTIONID zawiera rok i miesiąc wysłania pliku multimedialnego
ZPHASZ nieznany, nie używany
ZPUSHPAME nazwa kontaktu, który wysłał plik multimedialny w formacie UTF-8
ZSTANZID unikalny identyfikator wiadomości
ZTEKST Wiadomość tekstowa
ZTOJID Identyfikator WhatsApp odbiorcy
OFFSET stronniczość

Wygląd stołu „ZWAMEDIAITEM”:

WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
Struktura tabeli „ZWAMEDIAITEM”

Nazwa pola Wartość
Z_PK rekordowy numer kolejny (w tabeli SQL)
Z_ENT identyfikator tabeli, ma wartość '8'
Z_OPT nieznany, zwykle zawiera wartości od „1” do „3”.
STATUS ZCHMURY zawiera wartość „4”, jeśli plik jest ładowany.
ZFILESIZE zawiera długość pliku (w bajtach) pobranych plików
ZMEDIAORIGIN nieznany, zwykle ma wartość „0”
ZFILMUTRACJA czas trwania pliku multimedialnego, w przypadku plików pdf może zawierać liczbę stron dokumentu
Z WIADOMOŚĆ zawiera numer seryjny (numer jest inny niż wskazany w kolumnie „Z_PK”)
ZASPEKTRACJA współczynnik proporcji, nieużywany, zwykle ustawiony na „0”
DOKŁADNOŚĆ nieznany, zwykle ma wartość „0”
ZLATNOŚĆ szerokość w pikselach
ZLONGTITUDE wysokość w pikselach
ZMEDIAURLDATE znacznik czasu w formacie czasu epoki OS X
ZAUTHORNAME autor (w przypadku dokumentów może zawierać nazwę pliku)
ZNAZWA KOLEKCJI nieużywany
ZMEDIALOCALPATH nazwa pliku (wraz ze ścieżką) w systemie plików urządzenia
ZMEDIAURL Adres URL, pod którym znajdował się plik multimedialny. Jeżeli plik był przesyłany od jednego abonenta do drugiego, został on zaszyfrowany, a jego rozszerzenie będzie wskazane jako rozszerzenie przesyłanego pliku - .enc
ZTHUMBNAILLOCALPATH ścieżka do miniatury pliku w systemie plików urządzenia
TYTUŁ nagłówek pliku
NAZWA KARTY ZVC skrót pliku multimedialnego; przesyłając plik do grupy, może zawierać identyfikator nadawcy
ZVCARDSTRING zawiera informację o typie przesyłanego pliku (np. image/jpeg); w przypadku przesyłania pliku do grupy może zawierać identyfikator odbiorcy
ZXMPPPTHUMBPATH ścieżka do miniatury pliku w systemie plików urządzenia
ZMEDIAKEY nieznany, prawdopodobnie zawiera klucz do odszyfrowania zaszyfrowanego pliku.
ZMETADANE metadane przesyłanej wiadomości
Offset stronniczość

Inne ciekawe tabele bazy danych „ChatStorage.sqlite” są:

  • „ZWAPROFILEPUSHNAZWA”. Dopasowuje identyfikator WhatsApp do nazwy kontaktu;
  • „ZWAPROFILEPICTUREITEM”. Dopasowuje identyfikator WhatsApp do awatara 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.

Ponadto, przeglądając WhatsApp na urządzeniu mobilnym z systemem iOS, należy zwrócić uwagę na następujące pliki:

  • plik „BackedUpKeyValue.sqlite”. Zawiera klucze kryptograficzne i inne dane niezbędne do identyfikacji właściciela konta. Znajduje się przy ścieżce: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • plik „Kontakty V2.sqlite”. Zawiera informacje o kontaktach użytkownika, takie jak imię i nazwisko, numer telefonu, status kontaktu (w formie tekstowej), identyfikator WhatsApp itp. Znajduje się przy ścieżce: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • plik „wersja_konsumencka”. Zawiera numer wersji zainstalowanej aplikacji WhatsApp. Znajduje się przy ścieżce: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • plik „bieżąca_tapeta.jpg”. Zawiera aktualną tapetę tła WhatsApp. Znajduje się przy ścieżce: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Starsze wersje aplikacji korzystają z pliku 'Tapeta', który znajduje się wzdłuż ścieżki: „/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/”.
  • plik „zablokowane kontakty.dat”. Zawiera informacje o zablokowanych kontaktach. Znajduje się przy ścieżce: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • plik „pw.dat”. Zawiera zaszyfrowane hasło. Znajduje się przy ś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 Twojego konta WhatsApp. Plik znajduje się wzdłuż ścieżki: „/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 znaleźć 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 .kciuk), awatary kontaktów, awatar właściciela konta WhatsApp (plik „Zdjęcie.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 działania programu (plik „połączenia.log”) oraz kopie zapasowe logów działania programu (plik „połączenia.kopia zapasowa.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 działania 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: Pliki programów (x86)WhatsApp”
  • „C:Użytkownicy%Profil użytkownika% AppDataLocalWhatsApp”
  • „C:Użytkownicy%Profil użytkownika% AppDataLocalVirtualStore Pliki programów (x86)WhatsApp”

W katalogu „C:Użytkownicy%Profil użytkownika% AppDataLocalWhatsApp” znajduje się plik dziennika „SquirrelSetup.log”, który zawiera informacje na temat sprawdzania dostępności aktualizacji i instalowania programu.

W katalogu „C:Użytkownicy%Profil użytkownika% AppDataRoamingWhatsApp” Istnieje kilka podkatalogów:

WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
plik „główny proces.log” zawiera informacje o działaniu programu WhatsApp.

Podkatalog „bazy danych” zawiera plik „Bazy danych.db”, ale ten plik nie zawiera żadnych informacji o czatach ani kontaktach.

Najciekawsze z kryminalistycznego punktu widzenia są pliki znajdujące się w katalogu 'Pamięć podręczna'. Są to w zasadzie pliki o nazwach 'F_*******' (gdzie * to liczba od 0 do 9) zawierające zaszyfrowane pliki multimedialne i dokumenty, ale zdarzają się wśród nich także pliki niezaszyfrowane. Szczególnie interesujące są pliki „dane_0”, „dane_1”, „dane_2”, „dane_3”, znajdujący się w tym samym podkatalogu. Akta „dane_0”, „dane_1”, „dane_3” zawierają zewnętrzne łącza do przesyłanych zaszyfrowanych plików multimedialnych i dokumentów.

Przykład informacji zawartych w pliku 'data_1'WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
Również plik „dane_3” może zawierać pliki graficzne.

plik „dane_2” zawiera awatary kontaktów (można je przywrócić, przeszukując nagłówki plików).

Avatary zawarte w pliku „dane_2”:

WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
Zatem samych czatów nie można znaleźć w pamięci komputera, ale można znaleźć:

  • pliki multimedialne;
  • dokumenty przesyłane za pośrednictwem WhatsApp;
  • informacje o kontaktach właściciela konta.

Artefakty WhatsApp na MacOS

W systemie MacOS można znaleźć rodzaje artefaktów WhatsApp podobnych do tych występujących w systemie operacyjnym Windows.

Pliki programu znajdują się w następujących katalogach:

  • „C:AplikacjeWhatsApp.app”
  • „C:Aplikacje._WhatsApp.app”
  • „C:Użytkownicy%Profil użytkownika%BibliotekiPreferencje”
  • „C:Użytkownicy%Profil użytkownika%LibraryLogsWhatsApp”
  • „C:Użytkownicy%Profil użytkownika%BibliotekaZapisany stan aplikacjiWhatsApp.savedState”
  • „C:Użytkownicy%Profil użytkownika%Skrypty aplikacji Biblioteki”
  • „C:Użytkownicy%Profil użytkownika%LibraryApplication SupportCloudDocs”
  • „C:Użytkownicy%Profil użytkownika%LibraryApplication SupportWhatsApp.ShipIt”
  • „C:Users%Profil użytkownika%LibraryContainerscom.rockysandstudio.app-for-whatsapp”
  • „C:Użytkownicy%Profil użytkownika% Biblioteka Dokumenty mobilne <zmienna tekstowa> Konta WhatsApp”
    Ten katalog zawiera podkatalogi, których nazwy są numerami telefonów powiązanymi z właścicielem konta WhatsApp.
  • „C:Użytkownicy%Profil użytkownika%LibraryCachesWhatsApp.ShipIt”
    Katalog ten zawiera informacje dotyczące instalacji programu.
  • „C:Użytkownicy%Profil użytkownika%PicturesiPhoto Library.photolibraryMasters”, „C:Użytkownicy%Profil użytkownika%PicturesiPhoto Library.photolibraryThumbnails”
    Katalogi te zawierają pliki usług programu, w tym zdjęcia i miniatury kontaktów WhatsApp.
  • „C:Użytkownicy%Profil użytkownika%LibraryCachesWhatsApp”
    Katalog ten zawiera kilka baz danych SQLite używanych do buforowania danych.
  • „C:Użytkownicy%Profil użytkownika%LibraryApplication SupportWhatsApp”
    Katalog ten zawiera kilka podkatalogów:

    WhatsApp na wyciągnięcie ręki: gdzie i jak znaleźć artefakty kryminalistyczne?
    W katalogu „C:Użytkownicy%Profil użytkownika%LibraryApplication SupportWhatsAppCache” są pliki „dane_0”, „dane_1”, „dane_2”, „dane_3” i pliki z nazwami 'F_*******' (gdzie * jest liczbą od 0 do 9). Aby uzyskać informacje o tym, jakie informacje zawierają te pliki, zobacz Artefakty WhatsApp w systemie Windows.

    W katalogu „C:Użytkownicy%Profil użytkownika%LibraryApplication SupportWhatsAppIndexedDB” może zawierać pliki multimedialne (pliki nie mają rozszerzeń).

    plik „główny proces.log” zawiera informacje o działaniu programu WhatsApp.

Źródła informacji

  1. Analiza kryminalistyczna komunikatora WhatsApp na smartfonach z systemem Android, przeprowadzona przez Cosimo Anglano, 2014.
  2. Whatsapp Forensics: Eksplorasi system berkas i podstawowe dane w aplikacji na Androida i iOS, autor: Ahmad Pratama, 2014.

W następujących artykułach z tej serii:

Odszyfrowanie zaszyfrowanych baz danych WhatsAppArtykuł, który dostarczy informacji na temat sposobu generowania klucza szyfrującego WhatsApp oraz praktycznych przykładów pokazujących, jak odszyfrować zaszyfrowane bazy danych tej aplikacji.
Wyodrębnianie danych WhatsApp z magazynu w chmurzeArtykuł, w którym opowiemy, jakie dane WhatsApp są przechowywane w chmurach i opiszemy metody odzyskiwania tych danych z magazynów w chmurze.
Ekstrakcja danych WhatsApp: praktyczne przykładyArtykuł, który opisze krok po kroku jakie programy i jak wyodrębnić dane WhatsApp z różnych urządzeń.

Źródło: www.habr.com

Dodaj komentarz