Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite

 
CONTINUER À LIRE
Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite
Rendez-vous 4n6s
Le jeu du Snapchat et de la souris
22 Décembre 2020

Jean-Philippe Noat, Senior Director of Intl training chez Cellebrite
Johann Polewczyk, Responsable de recherche à l’Université de Lausanne
David Raulin, Cellebrite certified senior instructor et expert de justice CA Rouen
Matthieu Regnery, Dirigeant XperyLab et expert de justice CA Versailles
Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite
Format des rendez-vous

• Votre rendez-vous d’échange
• Proposer les sujets qui vous intéressent
• Poser des questions techniques, si toutes ne
  peuvent être répondues elles le seront lors du
  prochain rendez-vous.
• Faites vous plaisir et échangez
• Mettre l’humain au coeur de la technique
• N’hésitez pas à présenter un sujet si vous le
  souhaitez
Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite
Que faire en cas de pépin ?

En cas de perturbation technique :

mon portable +33 6 08 98 08 94

Pour toute question sur le thème (et les thèmes à venir)
jean-philippe.noat@cellebrite.com
david.raulin@cellebrite.com

johann@polewczyk.fr

                                                           3
Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite
RÉINITIALISATION D’UN
  TÉLÉPHONE, WIPE,
DONNÉES DU CLOUD, QUI
       CROIRE ?

                         4
Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite
METHODES PROPOSEES

 Aller dans le « Timeline » et noter les événéments / nombre entendu
 Regarder le nombre de traces retrouvées
 Examiner les dates de création des contacts

                                                                       5
Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite
METHODES PROPOSEES

 Rechercher le fichier « .obliterated » dans /root/private/var/root/.olbiterated

                                                                                   6
Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite
METHODES PROPOSEES

 Rechercher le fichier « containermanagerd.log » dans Root/library/Logs (ou log1/
 log2 etc…)

 Rechercher le fichier « mobileactivationd.log» dans Root/library/Logs

                                                                                    7
Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite
METHODES PROPOSEES

 Rechercher le fichier « com.apple.purplebuddy.plist » dans
 Root/private/var/mobile/Library/Preferences

                                                              8
Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite
METHODES PROPOSEES

 Date de création des bases de données
 Si dispo

                                         9
Rendez-vous 4n6s Le jeu du Snapchat et de la souris - Cellebrite
Exemple pratique

Téléphone avec fichier .oblitarated…

Tous les artifacts sont ouverts

Réinitialisation / réinstallation par le Cloud

                                                 10
CONCLUSION SUR LA DATE EFFACEMENT

 Si le fichier « .obliterated » est présent la date de création / modification (tout
 dépend de la version d’iOS) indique un effacement complet du téléphone et la
 date de l’effacement.
 Les autres dates sont à prendre avec précaution (on peut attendre 3 semaines
 avant de rallumer le téléphone).
 La date de réinstallation la plus fiable se trouve dans le fichier
 containermanagerd.logx (plus x est grand plus le fichier est ancien). On recherche
 l’écriture « this is an erase install » mais suivant le temps ce fichier peut être
 écrasé. Mobileactivationd peut être aussi une solution. Les dates de création des
 bdd sont un ultime espoir mais pas forcément fiable.

                                                                                       11
PRÉSENTATION DE
L’APPLICATION SNAPCHAT

                         12
PRÉSENTATION DE SNAPCHAT

 Snapchat est une application gratuite de partage de photos et de vidéos.
 • Application très populaire chez les jeunes avec l’application de filtres
 • Autres fonctionnalités :
    •   Création d’une Story (juxtaposition de plusieurs photos et/ou vidéos)
    •   Envoi de messages instantanés
    •   Possibilité de passer des appels audio et vidéo
    •   Carte : visualisation de snaps en fonction de leur localisation
    •   Etc…

 Tous les snaps expirent après avoir été consultés par son destinataire (possibilité
 de sauvegarde par une capture d’écran)

                                                                                       13
14
STRUCTURE DE L’APPLICATION
                                                                                     /private/var/mobile/Containers/Shared/AppGroup/GUID/

/private/var/containers/Bundle/Application/GUID/
    BundleMetadata.plist
    iTunesMetadata.plist
    Snapchat.app

                                                                                             group.snapchat.picaboo.plist

     /private/var/mobile/Containers/Data/Application/GUID/          Plus d’une centaine de                      Plus d’une trentaine de
                                                                    fichiers plist                              bases SQLite
                                                             chatConversationStore.plist              aroyo.db
                                                             group.snapchat.picaboo.plist             preferences.sqlite
                                                             user.plist                               scdb-27.sqlite3
                                                             friendsForAsyncDecode.plist              primary.docobjects
                                                                                                      userinfo_coreuserdata

                                                                                                                                      15
STRUCTURE DE L’APPLICATION
  /private/var/containers/Bundle/Application/GUID/iTunesMetadata.plist

                                                                         16
EXTRACTIONS DES
   DONNÉES

                  17
PRESENTATION DES DIFFÉRENTES MÉTHODES
D’EXTRACTION

 • Backup

 • Backup chiffré

 • Before First Unlock (BFU)

 • Full File System (AFU)

                                        18
DONNÉES OBTENUES
BACKUP
 /private/var/containers/Bundle/Application/GUID/
 /private/var/mobile/Containers/Shared/AppGroup/group.snapchat.picaboo/
    → Library/Preferences/group.snapchat.picaboo.plist
          - Informations sur le compte de l’utilisateur
          - Date de dernière utilisation de l’application
          - Amis
 Nom du fichier dans le backup :
           d439563dbb19d39300fdc91e75b95599d4dd9d14

                                                                          19
DONNÉES OBTENUES
BACKUP
 Nom du fichier dans le backup : d439563dbb19d39300fdc91e75b95599d4dd9d14

                                                                            20
DONNÉES OBTENUES
BACKUP
 /private/var/containers/Bundle/Application/GUID/
 /private/var/mobile/Containers/Shared/AppGroup/group.snapchat.picaboo/
 /private/var/mobile/Containers/Data/Application/com.toyopagroup.picaboo/
    → Libray/Preferences/com.toyopagroup.picaboo.plist
          - Informations sur la création du compte utilisateur

 Nom du fichier dans le backup :
      736eed74563910488dadd3bc26151245d4709336

                                                                            21
DONNÉES OBTENUES
BACKUP
 Nom du fichier dans le backup : 736eed74563910488dadd3bc26151245d4709336
   - Nom du dernier compte utilisateur connecté

   - Ajout d’amis

   - Date de dernier lancement de l’application

   - Si création du compte utilisateur :

                                                                            22
DONNÉES OBTENUES
BACKUP CHIFFRÉ
 On obtient en plus les appels audio et vidéos passés avec Snapchat
    - Données de l’application native Téléphone
       → /priv ate/var/mobile/Library/CallHistoryDB/CallHistory.storedata

 Nom du fichier dans le backup : 5a4935c78a5255723f707230a451d79c540d2741

                                                                            23
DONNÉES OBTENUES
EXTRACTION BFU
 /private/var/containers/Bundle/Application/GUID/
 /private/var/mobile/Containers/Shared/AppGroup/GUID/ (aucune donnée)
 /private/var/mobile/Containers/Data/Application/GUID/
     → Documents/user_scoped/GUID/arroyo/arroyo.db (messages)
          > Table ‘conversation_message’ (donnée au format BLOB protobuff)
    → Documents/user_scoped/GUID/DocObjects/primary.docobjects
          > Table ‘userinfo_coreuserdata’ (informations sur le compte utilisateur)
    → Documents/global_scoped/global-scoped-preferences/preferences.sqlite
          > Informations sur l’application et le device
    → Documents/gallery_data_object/1/GUID/scdb-27.sqlite3          (snaps)
           > SELECT   ZSNAPID, ZSERVLETMEDIAFORMAT, ZCREATETIMEUTC, ZMEDIAREDIRECTURI FROM ZGALLERYSNAP

                                                                                                          24
SNAPCHAT SOUS IOS EN FFS

                           25
INTRODUCTION

 Les bases de données liées à cette application ne sont accessibles qu’avec une
 extraction de type FFS avec Keychain déchiffrée .
 Un keychain est un container chiffré pour sauvegarder les données sensibles
 (mdp)
 Ufed4PC propose ce type d’extraction tout comme d’autres soft également
 performant dans ce domaine notamment ElcomSoft.
 L’analyse de cette application nécessite régulièrement une utilisation avancée de
 nos logiciels forensic et plus encore du temps et un œil critique.

                                                                                     26
Keychain

Chaque Soft proposant un FFS exporte
dans un format Xml ou Plist contenant le
Keychain déchiffré mais les clés des
applications sont encodés en base64.
Si l’extraction est réalisé avec UFED
alors le Keychain est nativement décodé
et importé sans manipulation
supplémentaire.

Si l’extraction est importé dans d’autres
Soft alors il sera nécessaire d'encoder la
clé base64 en Hexa.
Puis de l’importer manuellement
(Axiom) = Stories

                                             27
Situation opérationnelle

Le juge d’instruction ou l’OPJ n’ont aucun élément pouvant relier le mise en
cause et la victime d’agression sexuelle (mineurs).

Monsieur VERT habitant IXEVILLE nie avoir été en contact avec le mineur via
Snapchat ou via un autre moyen de communication.

La victime maintien que M VERT a pris contact avec lui via Snapchat.
Le directeur d’enquête vous demande si une conversation ou un élément pouvant
démontrer un contact avec le pseudo de la victime « DaddyKayyyy » via son
compte Snapchat « m.kayyy1224 » est possible.

L’extraction a été faite par le service d’enquête mais suite à un malencontreux
oublie… (téléphone maintenu connecté au réseau) l’appareil est totalement
réinitialisé.

Vous procédez donc au décodage et à l’analyse de l’extraction.

                                                                                  28
Ouverture du DUMP
EXTRACTION EFFECTUEE AVEC UN OUTILS TIERS

                                            29
LES CONTACTS

  On peut constater lors du décodage
  que PA à décodé l’application
  Snapchat et ne semble pas avoir
  rencontré d’erreur.

                                       30
Physical Analyzer

2 contacts réels sont décodés par PA.

Provenant de deux sources différentes
Disposant de plusieurs autres Soft vous
tentez votre chance avec ceux-ci.

                                          31
Magnet Axiom

               Résultat identique

                                    32
Oxygen Forensic Detective

                            33
AppGenie

           34
61 contacts   Les PLISTS sont
décodés par   souvent utilisés pour
AppGenie      stocker une petite
              quantité de données
              telles que des
              données de
Provenant     configuration ou une
de            petite liste de
              contacts

                                      35
Oui mais
qu’en est-
il de notre
Daddy…

              36
Vérification des Contacts SnapGenie

                                      37
Plist

        38
Geolocalisation
 • Documents/gallery_encrypted_db///gallery.encrypteddb
 Une fois déchiffrée, cette base contient :
          • Une table snap_location_table
          • Une table snap_key_iv

SNAPID            KEY           IV

 SNAPID         LAT     LONG

                                                                      39
Médias Memories        SNAPID     KEY          IV

 • Documents/gallery
                        SNAPID   LAT    LONG

                                                    40
Comparaisons outils

   • UFED PA 7.41.0.8                          Snapchat v1.27 sur
      • Contacts                                iPhone 7 iOS 14.0
   • Axiom 4.8
      •   Contacts – pas de lien avec pseudo
      •   Traces de conversations (26)
      •   Memories (6)
      •   Geolocalisation (5)
      •   My Eyes Only (1)

                                                                    41
AUTRES TRACES DE SNAPCHAT
    GÉNÉRÉES PAR IOS

                            42
BASES SQLITE D’IOS

 • Utilisation de l’application (BFU / AFU)
    • /private/var/mobile/Library/AggregateDictionary/ADDataStore.sqlitedb

    SELECT value FROM Scalars
    WHERE key = 'appLaunchCount.com.toyopagroup.picaboo’ OR
    WHERE key = 'appActivationCount.com.toyopagroup.picaboo’ OR
    WHERE key = 'appActiveTime.com.toyopagroup.picaboo’ OR
    WHERE key =
    'appBackgroundActiveTime.com.toyopagroup.picaboo’

                                                                             43
BASES SQLITE D’IOS

 • Autorisations (BFU / AFU)
    • /private/var/mobile/Library/TCC/TCC.db

    SELECT datetime(last_modified, 'unixepoch'), service,
    CASE allowed WHEN 1 THEN 'Autorisé' ELSE 'Non autorisé'
    END AS 'Autorisation'
    FROM access
    WHERE client = 'com.toyopagroup.picaboo'

                                                              44
BASES SQLITE D’IOS

 • Activité (AFU)
    • /private/var/mobile/Library/CoreDuet/Knowledge/knowledgeC.db

    SELECT
    datetime(ZOBJECT.ZCREATIONDATE + 978307200,'UNIXEPOCH’) AS 'Création',
    datetime(ZOBJECT.ZSTARTDATE + 978307200,'UNIXEPOCH') AS 'Début',
    datetime(ZOBJECT.ZENDDATE + 978307200,'UNIXEPOCH') AS 'Fin',
    ZOBJECT.ZSTREAMNAME AS 'Activité'
    FROM ZOBJECT
    WHERE ZVALUESTRING = 'com.toyopagroup.picaboo'

                                                                         45
BASES SQLITE D’IOS

 • Activité de la caméra (AFU)
    • /private/var/containers/Shared/SystemGroup/GUID/
       • Library/BatteryLife/CurrentPowerlog.PLSQL
       • Library/BatteryLife/Archives/powerlog*.PLSQL

    SELECT datetime(timestamp, 'unixepoch’),
    CASE CameraType WHEN 2 THEN 'Avant' ELSE 'Arrière' END AS
    'Caméra',
    FROM PLCameraAgent_EventForward_Camera
    WHERE bundleId = 'com.toyopagroup.picaboo'

                                                                46
BASES SQLITE D’IOS

 • Appels
    • /private/var/mobile/Library/CoreDuet/People/interactionC.db

    SELECT Z_PK, ZDIRECTION, ZISRESPONSE,
    datetime(ZCREATIONDATE + 978307200, 'unixepoch'),
    datetime(ZSTARTDATE + 978307200, 'unixepoch'),
    datetime(ZENDDATE + 978307200, 'unixepoch'), ZGROUPNAME
    FROM ZINTERACTIONS
    WHERE ZBUNDLEID = 'com.toyopagroup.picaboo'

                                                                    47
Le webinar est enregistré

Info importante : le service CAS est
disponible en France dès Janvier 2021.

Joyeux Noël à tous
Vous pouvez aussi lire