Mobile Forensics & Network Analysis - PTS Project
Dates des modifications : | Intervenants : | Modifications apportées : |
---|---|---|
- | Matthieu BILLAUX @_euzebius |
Nhammmber One Mentor ! |
Dimanche 13 Novembre 2022 | Mudsor MASOOD mudpak |
Mise à jour vers le blog (v1.0.1) |
Samedi 1er Octobre 2022 | mudpak | Finalisation du document (v1.0.0) |
Dimanche 18 Sepembre 2022 | Olivier MATHIEU Frog |
Aide Technique (v0.0.10) |
Mardi 16 Août 2022 | mudpak | Analyse Forensique (v0.0.9) |
Lundi 15 Août 2022 | mudpak | Analyse Forensique (v0.0.8) |
Dimanche 14 Août 2022 | mudpak | Analyse Forensique (v0.0.7) |
Samedi 13 Août 2022 | mudpak | Analyse Forensique (v0.0.6) |
Mercredi 10 Août 2022 | mudpak | Analyse des flux réseaux (v0.0.5) |
Mardi 9 Août 2022 | mudpak | Analyse des flux réseaux (v0.0.4) |
Lundi 8 Août 2022 | mudpak | Analyse des flux réseaux (v0.0.3) |
Dimanche 7 Août 2022 | mudpak | Mise en place du Lab (v0.0.2) |
Dimanche 7 Août 2022 | mudpak | Création du document (v0.0.1) |
0. Avant-propos
Cet article a pour but de guider l’utilisateur dans :
- La mise en place
- Découverte
- Utilisation
De PTS – PiRogue Tool Suite.
Il y a deux grandes phases dans ce projet qui vont consister à :
- Mettre en place et utiliser PiRogue
- Effectuer une investigation sur l’appareil via MVT - Mobile Verification Toolkit développé par Amnesty International
Informations :
Il est important de noter que PTS Project et MVT sont deux projets distincts réalisés par deux entités distinctes.
Certaines sections de l'article ne sont pas complètes et seulement des captures d'écrans sont insérées car j'ai de moins en moins de temps à y consacrer, donc j'ai préféré publier ce qui a été réalisé pour ne pas laisser ce travail et en faire profiter aux autres.
Disclaimer légal :
Il est formellement interdit de conduire des actions de surveillance, d’investigations ou toutes opérations sans le consentement du propriétaire de l’appareil.
1. Définitions
Un certain nombre de termes et sigles sont utilisés dans le document, voici leur signification dans le contexte du projet.
1.1 Forensics
Champ du monde Blue Team permettant de réaliser des investigations numériques en vue de retracer le parcours d’un attaquant et ainsi récupérer les preuves d’une intrusion / acte malveillant.
1.2 Mobile Forensics
Disciple du monde Blue Team, qui consiste à effectuer des analyses / investigations dans le but de détecter ou attester de la compromission d’un système d’information.
1.3 Network Analysis
Investigations des flux réseaux.
1.4 MVT – Mobile Verification Toolkit
C’est un outil d’inforensique mobile (Android et IOS), maintenu par les équipes de Amnesty International.
1.5 APK
C’est un format de fichier pour les appareils sous Android, tout comme les « exe » pour Windows, un APK permet d’installer une application sur l’appareil.
2. Prérequis
Pour mettre en place l’infrastructure, il faut répondre à certains critères matériels et logiciels pour pouvoir l’utiliser dans les meilleures conditions.
2.1 Matériel
Voici le matériel nécessaire et mes choix.
2.1.1 Raspberry Pi
Il est essentiel d’utiliser une carte Raspberry Pi parmi les modèles suivants :
- Raspberry Pi 4 Model B - 2GB
- Raspberry Pi 4 Model B - 4GB
- Raspberry Pi 4 Model B - 8GB
Nous allons utiliser le modèle suivant : Raspberry Pi 4 Model B - 8GB
Au vu du contexte actuel, si vous n’arrivez pas à trouver une carte chez votre marchand habituel, vous pouvez vérifier les stocks chez d’autres marchands via ce site :
1 |
|
Depuis cette page nous avons un certain nombre d’informations :
1) Vendors : liste des vendeurs de matériel
2) Regions : listes des pays
3) Devices : différents modèles de Raspberry Pi mais aussi d’autres types de cartes
4) Filter. . . : filtrer les résultats sur un critère supplémentaire
5) Auto-refresh listings : permet de mettre à jour automatiquement la liste
6) Alert Sound : permet d’émettre un son
7) SKU : modèle de carte
8) Description : informations plus « lisibles » pour un humain
9) Link : lien vers le site du vendeur
10) Update Status : est-ce que le site reçoit des mises à jour
11) Vendor : noms des vendeurs
12) In Stock : est-ce que le modèle est en stock chez le vendeur
13) Last Stock : date de dernier approvisionnement
14) Price : prix en différentes monnaies
2.1.2 Alimentation
Il est recommandé d’utiliser l’alimentation officielle du Raspberry Pi.
2.1.3 Carte Micro-SD
Selon le cas il est recommandé de prendre une carte ayant une capacité de :
- 32GB : pour une utilisation « classique »
- 64GB : pour une utilisation plus poussée, analyse de différents appareils en parallèle
Remarque :
Par défaut l’historique réseaux des 5 jours est enregistré, donc il faut penser à prendre en compte ce paramètre lors du choix de la capacité de la carte.
2.1.4 Lecteur de cartes micro-SD
Il existe différents types de lecteurs de carte pour micro-SD, le plus simple c’est d’utiliser un lecteur USB comme ci-dessous :
2.1.5 Câble Ethernet
Il est recommandé d’utiliser un câble Ethernet de catégorie 5 au minimum.
2.1.6 Boitier
Nous allons utiliser un boitier transparent de la marque Aukru, il est facilement trouvable sur Amazon. L’avantage comme vous pouvez le constater, il est fourni également avec un refroidissement passif, cela a ses avantages et ses inconvénients mais dans notre cas cela n’aura pas de conséquences négatives sur le projet.
Vous pouvez également créer votre boitier en suivants les consignes sur les pages suivantes :
1 |
|
1 |
|
2.1.7 Refroidisseurs
Il est possible d’utiliser des refroidisseurs de deux types :
- Ventilateurs
- Radiateurs
Comme vu précédemment nous avons opté pour la seconde solution.
2.1.8 Écran
Vous pouvez installer un écran pour avoir des informations sur l’appareil, voici un exemple d’aperçu qu’il sera possible d’obtenir :
Pour mettre en place cette solution vous pouvez suivre les étapes sur les pages suivantes :
1 |
|
1 |
|
2.2 Logiciel
Du point de vue logiciel tous les éléments ci-dessous ne sont pas nécessaires, mais rendent les opérations plus faciles.
2.2.1 PiRogue OS
L’image du système à utiliser, elle est disponible sur le site du projet.
2.2.2 7-zip
Pour extraire l’archive que nous allons télécharger.
2.2.3 balenaEtcher
Pour écrire l’image PiRogue OS sur la carte Micro-SD.
2.2.4 Advanced IP Scanner
Pour trouver l’adresse IP de notre Raspberry Pi.
2.2.5 TeamViewer – version Portable
Pour prendre le contrôle du téléphone depuis notre ordinateur.
2.2.6 TeamViewer – QuickSupport
Sur le téléphone, pour autoriser le contrôle à distance via TeamViewer depuis le pc.
2.2.7 Windows Terminal
Sur le poste Windows pour se connecteur en SSH sur le Raspberry Pi.
3. PiRogue OS
Le site officiel de PTS Project est disponible à l’adresse suivante :
1 |
|
3.1 Présentation
Avant d’entrer dans le vif du sujet, parlons de PiRogue OS et plus généralement du PTS – PiRogue Tool Suite.
Comme son nom l’indique c’est un ensemble d’outils qui permettent :
- D’effectuer des analyses du trafic d’un appareil mobile
- De mener des investigations forensics
Pour réaliser des analyses du trafic, l’appareil mobile viens se connecter au point d’accès wifi crée par la plateforme ce qui lui permet d’agir comme un routeur et ainsi intercepter les flux.
Pour mener des investigations PTS utilise l’outil MVT – Mobile Verification Toolkit de Amnesty International.
Nous allons donc dans un premier temps analyser les flux via les dashboards et ensuite effectuer des analyses forensics.
Remarque :
Dans cet article nous nous concentrons aux appareils mobiles, plus précisément à un appareil Android, les fonctionnalités de PTS vont au-delà car il permet également d’analyser les flux et mener des investigations sur tous les appareils utilisant des connexions wifi.
Pour découvrir toutes les fonctionnalités de PTS je vous invite à lire la page suivante :
1 |
|
3.2 Téléchargement
Pour télécharger la version la plus récente du système, se rendre à l’adresse suivante :
1 |
|
Une redirection est effectuée vers la page de la version la plus récente du moment, dans notre cas nous arrivons à la page suivante :
Cliquer sur l’archive contenant l’image, dans notre cas elle se nomme « image_2022-06-12-PiRogueOS-lite.img.xz » :
Le téléchargement commence, il peut prendre un certain temps selon la vitesse de votre connexion :
3.3 7-zip
Vous pouvez télécharger et installer 7-zip depuis le site officiel :
1 |
|
3.3.1 Afficher dans le dossier
Lorsque le téléchargement est terminé, cliquer sur le logo représentant un dossier :
3.3.2 Archive téléchargée
L’explorateur de fichiers s’ouvre en sélectionnant l’archive :
3.3.3 Extraire vers
Effectuer un clique-droit, cliquer sur
- 7-zip
- Extraire vers « . . . »
3.3.4 Extraction en cours
L’extraction de l’archive est relativement rapide :
3.3.5 Dossier contenant l’image
Lorsque l’extraction est terminée, un dossier du même nom que l’archive est créée, effectuer une double clique sur le dossier :
3.3.6 Image PiRogue OS au format IMG
L’image PiRogue OS est présente au format « .img », à ce stade il est important de noter le chemin du dossier pour indiquer à balenaEtcher où se trouve l’image à écrire sur la carte micro-SD.
3.4 balenaEtcher
Vous pouvez télécharger et installer balenaEtcher depuis le site officiel :
1 |
|
3.4.1 Insertion de la carte et identification du lecteur
Insérer la carte dans le pc et une notification comme ci-dessous devrait vous informer.
Par ailleurs nous pouvons identifier le lecteur de notre carte qui porte la lettre « D », cette information est importante pour la suite du processus car il faudra en informer Etcher.
3.4.2 Recherche
Effectuer une recherche depuis le menu démarrer et cliquer sur
- Ouvrir
3.4.3 Flash from file
Cliquer sur
- Flash from file
L’explorateur de fichiers s’ouvre, sélectionner l’image et cliquer sur
- Ouvrir
3.4.4 Select target
En survolant le choix du périphérique, nous avons des informations détaillées, c’est le moment de s’assurer que la carte est bien sélectionnée :
3.4.5 Flash !
Cliquer sur
- Flash!
Remarque :
Le contrôle du compte utilisateur peut demander une confirmation pour l’opération, cliquer sur « Oui ».
3.4.6 Starting
Le logiciel prépare à effacer les données de la carte :
Remarque :
Il est très probable que la carte apparaisse dans l’explorateur de fichiers mais ne soit plus accessible comme ci-dessous, c’est tout à fait normal.
3.4.7 Flashing
L’écriture des données commence, elle peut prendre un certain temps :
3.4.8 Validating
Une vérification de l’écriture des données est réalisée pour être certain qu’il n’y a pas eu d’erreurs :
3.4.9 Flash Complete !
Lorsque toutes les opérations sont terminées, un message s’affiche comme ci-dessous :
Remarque :
La carte est automatiquement éjectée de l’ordinateur.
Une notification s’affiché également dans la zone de notifications :
3.5 TeamViewer – Portable
Avant de passer à l’étape suivante, je vous invite à télécharger la version portable de TeamViewer en se rendant à l’adresse suivante :
1 |
|
Une archive sera téléchargée :
Extraire l’archive et cliquer sur
- TeamViewer.exe
Cocher la case :
- J’accepte le CLUF et le DPA
Cliquer sur
- Continuer
Nous allons par la suite nous intéresser à la zone :
- Contrôler un ordinateur distant
3.6 TeamViewer – QuickSupport
Depuis votre appareil Android, aller dans le Play Store et rechercher « TeamViewer QuickSupport », cliquer sur
- Installer
Remarque :
Selon la marque de votre téléphone il faudra également installer une extension supplémentaire, en voici un extrait dans la zone (3).
4. Raspberry PI 4
4.1 Mise sous tension
Insérer la carte dans le Raspberry Pi, connecter le câble Ethernet et enfin mettre sous tension la carte.
4.2 Advanced IP Scanner
Vous pouvez télécharger Advanced IP Scanner depuis l’adresse suivante :
1 |
|
4.2.1 Télécharger Gratuitement
Cliquer sur
- Télécharger Gratuitement
4.2.2 Téléchargement Terminé
Un exécutable est téléchargé, cliquer dessus :
4.2.3 Langue de l’assistant d’installation
Sélectionner la langue souhaitée, cliquer sur
- OK
4.2.4 Bienvenue dans l’assistant d’installation de Advanced IP Scanner 2.5.1
Il est possible soit d’installer, soit simplement d’exécuter le logiciel sans l’installer, c’est ce que nous allons faire, cocher la case :
- Exécuter
Cliquer sur
- Suivant >
4.2.5 Accord de licence
Cocher la case :
- « Je comprends et j’accepte les termes du contrat de licence »
Cliquer sur
- Exécuter
4.2.6 Installation en cours
L’extraction des fichiers est en cours :
4.2.7 Lancement du scan
Lorsque l’installation est terminée, la fenêtre du logiciel s’affiche avec :
1) L’adresse de votre réseau local - Elle peut être différente de celle affichée sur la capture
2) Pour lancer le scan
4.2.8 Affichage des résultats
Lorsque le scan est terminé les résultats s'affichent :
1) Statut : est-ce que le poste est actif ou non ? 2) Nom : nom de la machine ou adresse IP 3) IP : adresse IP de la machine 4) Fabricant : fabricant de la carte réseau 5) Adresse MAC : adresse de la carte réseau
4.2.9 Corrélation avec un routeur
En parallèle aux informations fournies par le scanner IP, il est possible de corréler les informations via votre routeur internet, ici dans la partie DHCP nous pouvons voir que notre Raspberry Pi à l’adresse IP « 172.16.1.239 » ainsi que les autres informations sur sa configuration réseau :
Remarque :
Comme nous le verrons plus-tard, il ne faut pas oublier que le Raspberry Pi diffuse un réseau sans fil sur lequel va se connecter l’appareil que nous allons analyser.
Les informations de ce réseau sont les suivantes :
- SSID : PiRogue1
- Mot de passe : superlongkey
4.3 Windows Terminal
Vous pouvez télécharger et installer Windows Terminal depuis l’adresse suivante ou directement depuis le Store Microsoft :
1 |
|
4.3.1 Obtenir dans l’appli du Store
Cliquer sur
- Obtenir dans l’appli du Store
4.3.2 Microsoft Store
Le Store Microsoft s’ouvre :
4.3.3 Ouvrir
Lorsque le téléchargement et installation sont terminés, cliquer sur
- Ouvrir
4.3.4 Windows PowerShell
Le terminal Windows s’ouvre :
4.3.5 Connexion via SSH
Saisir la commande suivante :
1 |
|
Détails de la commande :
1 2 3 4 5 6 |
|
Puisque c’est la première fois que nous nous connectons à cette machine, une confirmation et vérification de clés est affichée, saisir
- yes
Et appuyer sur la touche
- Entrée
Saisir le mot de passe du compte pi et appuyer sur la touche entrée.
Remarque :
Le mot de passe par défaut est « raspberry » et c’est tout à fait normal que vous ne voyez pas les critères lors de la saisie.
Nous sommes bien connectés au PiRogue et un message d’avertissement s’affiche car nous utilisons le mot de passe par défaut :
4.4 raspi-config
Nous allons effectuer quelques modifications avant d’utiliser la plateforme, saisir la commande suivante :
1 |
|
Détails de la commande :
1 2 |
|
4.4.1 Changement du mot de passe utilisateur
4.4.1.1 1 – System Options
Comme nous avons été informés précédemment, pour des raisons de sécurité il est recommandé de changer de mot de passe pour le compte « pi », sélectionner :
- 1 System Options
4.4.1.2 S3 – Password
Sélectionner :
- S3 Password
Un message nous informe que nous allons devons saisir un nouveau mot de passe pour le compte « pi » :
4.4.1.3 New password
Il faut saisir le nouveau mot de passe, le confirmer et lorsqu’il correspond aux exigences de sécurité un message nous informe qu’il a bien été changé :
4.4.1.4 Password changed successfully
Un autre message vient nous informer du bon déroulement de l’opération, appuyer sur
- Ok
4.4.2 Activation SSH
Sous certaines distributions pour Raspberry Pi le protocole SSH est activé uniquement au premier démarrage, pour le garder activer en permanence nous allons le préciser.
4.4.2.1 3 – Interface Options
Sélectionner
- 3 Interface Options
4.4.2.2 I2 – SSH
Sélectionner
- I2 SSH
Sélectionner
- <Yes>
Sélectionner
- <Ok>
4.4.3 Mise à jour des informations locales
Nous allons dans un premier temps configurer les paramètres de langue et dans un second temps configurer le fuseau horaire à utiliser.
4.4.3.1 5 – Localisation Options
Sélectionner
- 5 Localisation Options
4.4.3.2 L1 – Locale
Sélectionner
- L1 Locale
4.4.3.3 Locales to be generated
Une longue liste s’affiche, descendre et sélectionner :
- fr_FR.UTF-8 UTF-8
- <Ok>
4.4.3.4 Default locale for the system environment
Sélectionner
- fr_FR.UTF-8
- <Ok>
4.4.3.5 5 – Localisation Options
Sélectionner
- 5 Localisation Options
4.4.3.6 L2 – Timezone
Sélectionner
- L2 Timezone
4.4.3.7 Geographic area
Sélectionner
- Europe
4.4.3.8 Time zone
Sélectionner
- Paris
4.4.3.9 Finish
Sélectionner
- <Finish>
En parallèle nous pouvons observer :
1) la commande « date » affichait l’heure avec le fuseau horaire BST
2) la mise à jour des paramètres régionaux
3) la mise à jour du fuseau horaire
4.5 Services PiRogue
Il nous reste quelques dernières étapes à réaliser avant de connecter l’appareil au réseau de l’outil.
4.5.1 Vérification de l’état
Pour vérifier l’état des services, saisir la commande suivante :
1 |
|
Nous pouvons constater que les services sont actifs et démarrés, sauf celui qui gère la maintenance :
4.5.2 Redémarrage
Pour relancer tous les services, saisir la commande suivante :
1 |
|
5. PiRogue Tool Suite – Découverte de l’outil
Avant de connecter notre appareil mobile au réseau du PiRogue, nous allons faire un tour des différents menus.
Une fois que l’appareil sera connecté et des données seront présentes nous irons voir certaines options plus en détails.
5.1 Accès à l’interface web
Via un navigateur web, se rendre à l’adresse suivante :
1 |
|
Détails :
1 2 3 4 |
|
Remarque :
Vous pouvez également y accéder via ce lien avec la résolution DNS « http://raspberrypi.local:3000/ ».
5.2 Welcome to Grafana
Un formulaire s’affiche :
5.3 Log in
Remplir les champs
- Email or username : par « admin »
- Password : par « PiRogue
Cliquer sur
- Log in
Dans la zone inférieure de la page, nous pouvons voir des liens vers différentes sources ainsi que la version actuelle :
5.4 General / Home
Par défaut nous arrivons à la page ci-dessous qui contient différents éléments :
1) General / Home : le nom de la page où nous nous trouvons
2) Devices : le nombre d’appareils connectés au réseau crée par le PiRogue
3) Aerts : le nombre d’alertes générées par Suricata
4) I/O : Inputs/Outputs = données entrantes et sortantes exprimées en taille (Mo, Go. . .)
5) Flows : représentation des flux entrants et sortants
6) Domains : noms de domaines
7) I/O : représentation des données entrantes et sortantes en forme de graphe
8) Servers location : localisation géographique des serveurs avec lesquels l’appareil a échangé des données / flux
9) Flows per country : nombre de connexions par pays
10) Alert timeline : représentation des alertes à travers le temps
11) Flows : aperçu des flux entrants et sortants de l’appareil
12) Suricata alerts : aperçu des alertes générées par Suricata
5.4.1 Add panel
Dans la zone supérieure droite de la fenêtre se trouvent plusieurs options.
Pour ajouter un nouvel élément sur le dashboard existant, cliquer sur
- Add panel
5.4.2 Save dashboard
Il est possible d’enregistrer l’état du dashboard avec la configuration, par exemple après avoir ajusté la taille des différents éléments en cliquant sur
- Save dashbaord
5.4.3 Dashboard settings
Il est possible de modifier les différents paramètres du bashboard en cliquant sur
- Dashboard settings
5.4.4 Last 3 hours
Par défaut seulement les éléments des trois dernières heures sont affichés :
5.4.5 Relative time ranges
Il est possible d’afficher des éléments sur des périodes prédéfinies ou ajuster les dates et heures de début et de fin pour avoir des informations selon nos critères :
5.4.6 Time range zoom out
Il est possible de faire des « sauts » entre des slots de temps en cliquant sur la loupe au lieu d’ajuster manuellement :
5.4.7 Refresh dashboard
Par défaut le tableau de bord se rafraîchit à un intervalle prédéfini, mais il est tout à fait possible de forcer cette actualisation en cliquant sur
- Refresh dashboard
5.4.8 10s
L’intervalle d’actualisation par défaut du tableau de bord est de 10secondes, vous pouvez choisir un autre paramètre en 5secondes à 1journée :
5.4.9 Cycle view mode
Il est possible de basculer entre les différents modes d’affichage pour plus de lisibilité, pour faire cela cliquer sur
- Cycle view mode
Remarque :
Pour changer de mode il faut cliquer à nouveau sur ce bouton.
5.4.10 Exit Kiosk mode
Pour quitter le mode Kiosk, il faut appuyer sur la touche
- Échap
5.5 Search Dashboards
Il est possible d’avoir plusieurs tableaux de bord, pour les explorer cliquer sur
- Search dashboards
Nous pouvons voir les éléments suivants :
1) Search dashboards by name : une zone de recherche permet de trouver notre dashboard
2) General : la liste des différents dashboards est affichée
5.6 Create
Nous pouvons créer différents types d’éléments, cliquer sur
- Create
5.6.1 New dashboard
Nous pouvons voir les éléments suivants :
1) New dashboard : nous sommes dans la partie des tableaux de bords
2) paramètres que nous avons vu précédemment qui permettent de personnaliser le dashboard
5.6.2 Folder
Cliquer sur
- Create
- Folder
5.6.2.1 Manage
5.6.2.2 Playlists
5.6.2.3 Snapshots
5.6.2.4 Library panels
5.6.3 Import
5.7 Dashboards
Ce menu permet de retrouver les éléments que nous avons vu précédemment :
5.8 Explore
5.8.1 Run query
5.8.2 InfluxDB
5.9 Alerting
5.9.1 Alert rules
5.9.2 Notification channels
5.10 Configuration
5.10.1 Data sources
5.10.2 Users
5.10.3 Teams
5.10.4 Plugins
5.10.5 Preferences
5.10.6 API keys
5.11 Server Admin
5.11.1 Users
5.11.2 Orgs
5.11.3 Settings
5.11.4 Stats
5.11.5 Upgrade
5.12 Admin
5.12.1 Preferences
5.12.2 Change password
5.13 Help
6. PiRogue Tool Suite – Analyse du trafic
6.1 Connexion de l’appareil au réseau
Nous allons utiliser un smartphone « Xiaomi Redmi 5 Plus » comme cobaye.
Pour le connecter au réseau, cliquer sur
- Paramètres
Cliquer sur
- Wi-Fi
Le nom par défaut du point d’accès est « PiRogue1 », cliquer dessus pour se connecter :
Le mot de passe est « superlongkey », ci-dessous nous pouvons voir que l’appareil est bien connecté au réseau :
6.2 Récoltes des données
Les données ont été récoltées durant environ 24heures.
6.3 Analyse des résultats
6.3.1 Relative time ranges
Nous allons préciser au dashboard de nous afficher les données des 24 dernières heures uniquement, c’est la durée pendant laquelle la récolte s’est effectuée :
Par ailleurs nous allons aussi préciser que nous ne souhaitons plus actualiser les tableaux de bords car en laissant le rafraichissement actif nos filtres seront réinitialisés :
6.3.2 Opérations
Avant d’exploiter les données, il faut savoir que nous pouvons faire différentes opérations sur chaque tableau, en voici un aperçu des fonctionnalités.
Il faut survoler le titre d’un tableau pour voir apparaitre un symbole pour et cliquer dessus pour faire défiler les options :
6.3.2.1 View
Pour voir le tableau sur tout l’écran, cliquer sur
- View
Ici le tableau s’affiche complètement ce qui permet d’avoir une meilleure lisibilité :
6.3.2.2 Edit
Puisque tous ces tableaux de bords sont déjà configurés, nous pouvons également les modifier pour les adapter à nos besoins, cliquer sur
- Edit
Un certain nombre de zones nous permettent d’effectuer les actions souhaitées :
1) Device : sélectionner le périphérique d’où proviennent les données, ici nous n’avons qu’un seul donc ce n’est pas problématique d’avoir « All »
2) des paramètres pour modifier le type d’affichage, les ranges de données et le type de tableau (graphe, courbe . . .)
3) pour sauvegarder et appliquer les changements
4) le résultat du tableau, ici une carte du monde qui représente les flux
5) paramètres pour personnaliser le tableau
6) zone pour effectuer des requêtes, ici nous avons la requête qui est appliquée pour obtenir le résultat
6.3.2.3 Share
Nous pouvons partager le tableau, cliquer sur
- Share
6.3.2.3.1 Link
Les paramètres de partage via un lien sont les suivants :
1) ici nous partageons le tableau via un lien
2) pour prédéfinir les paramètres d’horodatage sur le tableau à partager ainsi que le thème d’affichage
3) le lien complet pour accéder au tableau partagé
Il est également possible de générer un lien « court » en cliquant sur
- Shorten URL
6.3.2.3.2 Snapshot
Il est possible de partager le tableau dans un état donné avec les informations d’un instant précis, cliquer sur
- Snapshot
Voici les paramètres de personnalisation :
1) nom du tableau de bord, date d’expiration et délai d’attente de chargement
2) pour prendre le snapshot et partager publiquement
6.3.2.3.3 Embed
Il est possible de partager un lien qui peut être intégré sur une page existante, cliquer sur
- Embed
Voici les paramètres de personnalisation :
1) horodatage et thème d’affichage
2) le lien qu’il faudra renseigner sur la page web
6.3.2.3.4 Library panel
La dernière option de partage permet sur le serveur lui-même de partager dans un dossier ou librairie locale, cliquer sur
- Library panel
6.3.2.4 Explore
Pour voir les données et effectuer des requêtes, cliquer sur
- Explore
Plusieurs zones permettent à la fois d’effectuer des requêtes et d’avoir un visuel sur les résultats :
1) paramètres généraux et pour lancer la requête
2) zone dédiée aux requêtes, ici nous avons un exemple de requête déjà écrite
3) l’affichage des résultats sous forme de graphe, puisqu’il s’agit des données géographiques nous avons les latitudes et longitudes
4) les mêmes informations représentées en forme de tableau
6.3.2.5 Inspect
Pour avoir un aperçu différent des résultats et exporter les données, cliquer sur
- Inspect
6.3.2.5.1 Data
Dans la section « Data » il est possible d’exporter les données en format CSV :
Il est également possible de choisir d’autres paramètres avant export :
La section « Stats » permet d’avoir les informations en termes de temps de réponse par exemple :
6.3.2.5.2 Query
La section « Query » permet d’afficher la requête qui a été appliquée pour obtenir les données :
6.3.2.5.3 Panel JSON
La section JSON permet d’afficher au format JSON la requête :
Nous pouvons également choisir d’autres formats de requêtes :
6.3.2.6 More. . .
Cliquer sur
- More. . .
6.3.2.6.1 Duplicate
Ce paramètre permet de créer une copie instantanée de la carte :
1) le tableau original
2) la copie
6.3.2.6.2 Copy
Ce paramètre permet également de créer une copie, cependant il faut réaliser quelques étapes supplémentaires.
Cliquer sur
- Add panel
Cliquer sur
- Paste panel from clipboard
Nous pouvons observer que la copie a bien été réalisée :
1) le tableau original
2) la copie
Maintenant nous pouvons passer à l’analyse des résultats et voir jusqu’à quel niveau les informations présentes dans chaque section peuvent nous aider dans nos investigations.
6.4 Devices
Au niveau des appareils il n’y en a qu’un seul et c’est normal :
6.5 Alerts
Il y a eu 7 alertes qui ont été générées, nous les verrons en détails plus loin :
6.6 I/O
Il y a eu près de 2GB de données consommées, nous voyons un pic d’activité au début de la récolte.
Cette information est intéressante car sans connaissance du contexte nous pouvons déjà nous demander si un tél pic est normal ou non et pourquoi le reste du temps il n’y a eu quasiment aucune activité.
6.7 Flows
Il y a eu 7 147 connexions tout au long de la récolte, l’activité s’est intensifiée du milieu vers la fin :
6.8 Domains
De nombreux noms de domaines ont été contactés, dans notre cas 421 :
6.9 I/O – graphe
Il y a eu de forts pics d’activités au début de la récolte comme nous avons vu grâce au tableau « I/O » :
Nous pouvons voir différentes informations intéressantes ici :
1) le débit en abscisses
2) l’heure en ordonnée
Il y a des pics de différents couleurs en fonction du débit qui a été atteint :
- Vert
- Jaune / Orange
- Rouge
Dans le cas des pics en rouge, cela signifie qu’il y a eu une forte activité, nous pouvons aller à l’intersection des abscisses et ordonnées et voir la date et heure exacte de l’évènement :
Des lignes en pontillées de couleur violette apparaissent 7 fois sur le graphe elles correspondent aux alertes suricata :
De par la disposition par défaut des résultats, il n’est pas pratique de les observer comme ci-dessous où de nombreux pics sont rassemblés.
Pour mieux visualiser ces données il est possible de créer un effet de zoom en sélectionnant une plage de début et de fin comme c’est représenté ici par la zone grisée :
Il est également possible d’ajouter des annotations pour pouvoir revenir plus tard et se servir de repère, cliquer sur
- Add annotation
Voici les différents éléments :
1) Description : champ réservé aux informations que nous souhaitons indiquer
2) Tags : si vous souhaitez ajouter des tags, par défaut il n’en existe pas
3) Save pour enregistrer les changements
6.10 Servers location
Ce tableau de par son visuel permet d’avoir un aperçu rapide et clair des flux qui ont été réalisés entre l’appareil et les serveurs dans le monde.
Dans le cas présent nous pouvons observer qu’il y a trois grandes zones qui ont été contactées :
- USA
- Europe
- Chine
Si nous effectuons un zoom sur la carte il y a différents niveaux de couleurs pour montrer les niveaux d’interactions :
- Rouge : élevées
- Vert : moyenne
- Bleu cyan : faible
6.11 Flows per country
Le tableau précédent permet d’avoir un visuel clair et rapide mais ne permet pas de quantifier le nombre de connexions contrairement au tableau ci-dessous.
Ainsi comme nous avons vu une tendance ici elle se confirme que la quasi-totalité des connexions se font dans les trois zones suivantes :
- USA
- Europe (France, UK, NL)
- Chine
6.12 Flows – aperçu
Les tableaux précédents ont permis d’avoir des visuels et le nombre de connexions toujours pas suffisamment de détails, pour pallier cela le tableau ci-dessous va nous être très utile.
Nous pouvons observer différentes colonnes et il est impératif de noter que nous pouvons appliquer un filtre sur chacune d’elle grâce à l’entonnoir présent.
Voici les informations obtenues dans chaque colonne :
1) Time : Année-Mois-Jour Heures :Minutes :Secondes.MillièmeDeSeconde, permet d’avoir un horodatage très précis du début d’une connexion
2) Category : le type de trafic selon NFSteam
3) Application : type de connexion ou protocole
4) Domain : nom de domaine du serveur qui a été contacté
5) Source IP : l’hôte qui a initié le flux
6) Destination IP : l’hôte qui va recevoir le flux
7) Country : nom de code du pays vers qui le flux est envoyé
8) I/O : la quantité de données en entrée et sortie associée à ce flux
9) Community_id_b64 : identifiant en base64 qui permet d’identifier le flux de manière unique
Par la suite nous allons voir quelques cas pratiques d’informations que nous pouvons obtenir.
6.12.1 Cas 1 – Chine
Nous allons filtrer le trafic par pays et n’afficher que les flux avec la Chine, sélectionner la colonne
- Country
Cliquer sur l’entonnoir, dans la liste déroulante sélectionner
- CN
Cliquer sur
- Ol
Parmi les différentes connexions qui ont eu lieu, nous allons nous intéresser aux trois flux encadrés ci-dessous :
Pour avoir plus d’informations sur un flux, il faut aller dans la colonne
- Time
Survoler le flux en question et cliquer sur
- Details
Nous obtenons de nombreuses informations :
1) Community ID : identifiant en base64
2) Flows : le nombre de flux
3) I/O bytes : la taille du paquet
4) Duration : la durée de la connexion
5) Alerts : nombre d’alertes suricata
6) Localisation du serveur distant
7) Alerts : Détails sur l’alerte
8) Time : horodatage du début de la connexion
9) Category : type de connexion
10) Application : type de protocole
11) Source IP : l’adresse IP de notre appareil ou du PiRogue qui forward la requête
12) Destination port : le port local
13) Destination IP : l’adresse du serveur
14) Destination port : le port du serveur
Domain : le nom de domaine qui a été contacté
Sur la carte lorsque nous survolons le point il est possible d’obtenir les coordonnées géographiques exactes du lieu :
En plus de la simple visualisation et corrélation du flux il est possible de réaliser des analyses plus avancées notamment via :
- Vérification IP
- Vérification DNS
Pour être certain que l’IP ou le DNS ne soient pas signalés comme étant malveillants / blacklistés.
6.12.2 Cas 2 – France
Nous appliquons le filtre pour afficher les flux vers des serveurs localisés en France.
6.12.2.1 Facebook
Ci-dessous nous pouvons observer un certain nombre de requêtes vers le réseau social Facebook, à priori rien n’anormal mais n’ayant pas installé l’application sur le portable il est étrange de le voir initier des connexions vers les serveurs de cette plateforme.
6.12.2.2 Graph Facebook
Le sous-domaine « Graph » de Facebook est également sollicité, la seule explication rationnelle qui est existe c’est le fait que Instagram soit installé et puisque c’est une application appartenant à Meta / Facebook alors les données leur sont également envoyées.
6.12.2.3 Flux divers
Nous pouvons observer un certain nombre de flux vers des domaines très reconnaissables :
6.12.3 Cas 3 – USA
Nous allons appliquer le filtre pour afficher les flux allant vers les USA.
Ici il est intéressant de noter que :
1) les flux de Tinder vont vers ce pays ce qui est normal puisque l’application est Américaine
2) les flux de Doctolib vont vers les USA, en d’autres termes des données de santé de la population française sont hébergées dans ce pays
3) il en est de même pour des serveurs appartenant au gouvernement et ici utilisés pour l’application « MonCompteFormation » (CPF)
6.13 Alert timeline
Ce graphe permet d’avoir un visuel sur les alertes générés par Suricata :
Les intersections représentées ici avec des flèches correspondent aux alertes de sévérite 1, c’est-à-dire des alertes critiques :
Les alertes de niveau 3 correspondent à un niveau de criticité faible :
Ce graphe ne permet en revanche pas de connaitre des détails sur les alertes, c’est pourquoi le tableau ci-dessous existe.
6.14 Suricata alerts
Nous avons des informations supplémentaires sur les alertes générées :
1) Time
2) Severity : le niveau de criticité de l’alerte, il y a 4 niveaux
3) Category : type de menace détectée
4) Rule : le nom de la règle qui a générée l’alerte
5) Source IP
6) Destination IP
7) Community_id_b64
Dans notre cas il y a eu deux règles qui ont générées des alertes :
1) ET INFO Android Device Connectivity Check
2) ET POLICY possible Xiaomi phone data leakage DNS
6.14.1 ET INFO Android Device Connectivity Check
6.14.2 ET POLICY possible Xiaomi phone data leakage DNS
7. MVT – Mobile Verification Tool
7.1 Présentation de l’outil
Mobile Verification Toolkit (MVT) est un outil pour faciliter l'analyse forensic consensuelle des appareils Android et iOS, dans le but d'identifier les traces de compromission.
En d’autres termes contrairement à d’autres outils, MVT permet avec l’autorisation du propriétaire de l’appareil d’effectuer des analyses sur son appareil.
Cet outil a été créée et est maintenu par Amnesty International, bien qu’il soit installé sur le PiRogue, il n’est cependant pas maintenu par l'équipe PTS.
MVT Permet d’effectuer des analyses forensics sur des appareils :
- Android
- Apple
Dans notre cas nous allons simplement l’utiliser sur un appareil Android.
7.2 Méthodologie de Forensics Andoid
Voici les éléments qui seront à vérifier dans le cadre d’une analyse forensic sur un appareil Android via MVT :
- Les applications installées
- Processus en cours
- Applications exécutées avec les droits root
- Sauvegardes SMS
7.3 Mise à jour de MVT
Se connecter en SSH sur le PiRogue.
7.3.1 Affichage de la version actuelle
Pour afficher la version actuelle de l’outil saisir la commande suivante :
1 |
|
Détails de la commande :
1 2 |
|
Nous pouvons voir que la version actuelle est « 1.5.4 » et une nouvelle version est disponible « 2.1.3 » :
7.3.2 Mise à jour vers la dernière version
Pour mettre à jour, saisir la commande suivante :
1 |
|
Détails de la commande :
1 2 3 4 |
|
7.3.3 Téléchargement de nouveaux paquets
Différentes étapes se succèdent, ici les nouveaux paquets sont téléchargés :
7.3.4 Prérequis déjà satisfaits
Les paquets nécessaires déjà présents sont listés :
7.3.5 Listes de nouveaux paquets installés
Les nouveaux paquets installés sont affichés :
7.3.6 Vérification de la version après mise à jour
Lorsque les différentes étapes sont terminées nous pouvons à nouveau saisir la commande pour vérifier la version.
Non seulement nous disposons de la dernière version de l’outil mais en plus nous sommes invités à télécharger les IOC.
7.4 Récupération des Indicateurs de compromission (IOC)
7.4.1 Téléchargement des IOC
Pour télécharger la dernière version des IOC, saisir la commande suivante :
1 |
|
Détails de la commande :
1 2 |
|
7.4.2 Réception des nouveaux IOC
Nous pouvons voir que les IOC qui sont téléchargés, ici parmi les trois groupes nous avons ceux de NSO Group (=Projet Pegasus).
7.4.3 Vérification de l’emplacement
Lorsque le téléchargement est terminé nous pouvons vérifier la présence des IOC dans le répertoire précédemment cité par l’outil :
7.4.4 Format des IOC
Nous pouvons voir que les IOC sont présents en différents formats :
Maintenant que notre outil est à jour et les IOC ont été téléchargés, nous pouvons brancher l’appareil au PiRogue et commencer les investigations.
7.5 Connexion de l’appareil au Raspberry Pi
Connecter l’appareil au PiRogue via un câble USB et le dévrouiller.
7.5.1 Système Android
Dans la zone de notifications devrait apparaitre un message comme ci-dessous vous informant que l’appareil a été connecté à une prise USB, appuyer sur la notification :
7.5.2 Utiliser la connexion USB pour
Sélectionner
- Transférer des fichiers
7.5.3 Transférer des fichiers
Une fois que vous avez sélectionné ce paramètre il devrait changer de couleur comme ci-dessous :
Maintenant que l’échange de fichiers est actif via USB, nous allons par la suite activer le mode débogage via USB.
7.6 Activation du mode Android Debug Bridge (ADB)
7.6.1 Activation du mode développeur
7.6.1.1 Paramètres
Pour activer le mode ADB, il faut dans un premier temps activer le mode développeur.
Aller dans les paramètres du téléphone :
7.6.1.2 A propos du téléphone
Appuyer sur
- A propos du téléphone
7.6.1.3 Toutes les spécifications
Appuyer sur
- Toutes les spécifications
7.6.1.4 Version MIUI
Appuyer plusieurs fois d’afficher sur
- Version MIUI
7.6.1.5 Nombre d’étapes restantes avant activation du mode développeur
Il faut normalement appuyer plusieurs fois, et vous devriez voir une notification vous informant de combien de tentatives il reste avant d’activer le mode « développeur » :
7.6.1.6 Vous êtes désormais un développeur !
Lorsque le mode développeur est activé un message comme ci-dessous s’affiche :
Appuyer sur la flèche retour pour revenir au menu précédent :
7.6.2 Activation du débogage USB
7.6.2.1 Paramètres supplémentaires
Appuyer sur
- Paramètres supplémentaires
7.6.2.2 Options développeur
Appuyer sur
- Options développeur
7.6.2.3 Débogage USB
Par défaut le mode débogage USB est désactivé, appuyer dessus pour l’activer :
7.6.2.4 Autoriser le débogage USB
Pour confirmer l’activation du mode, appuyer sur
- OK
Puisque le téléphone est connecté via USB avec le PiRogue (=Raspberry Pi) une vérification est faite via la clé RSA pour être certain d’être connecté au bon appareil, appuyer sur
- OK
7.6.2.5 Zone de notifications
Dans la zone de notifications, il est désormais possible de voir :
- USB pour le transfert de fichiers
- Débogage USB activé
7.6.3 Vérification de la connectivité de l’appareil
Pour s’assurer que le PiRogue détecte bien l’appareil, saisir la commande suivante :
1 |
|
Ici nous pouvons voir qu’un appareil a bien été détecté, nous pouvons donc passer aux étapes suivantes.
7.7 mvt-android --help
MVT-Android propose différentes options, pour les afficher saisir la commande suivante :
1 |
|
Nous pouvons voir les différentes commandes qu’il est possible d’exécuter :
Nous allons voir certaines des commandes en détails par la suite.
7.8 mvt-android check-adb
Ce module permet de vérifier l’appareil via ADB, et permet d’effectuer des vérifications de la présence d’IOC par exemple en utilisant différents modes et modules.
7.8.1 list-modules
Pour afficher la liste des modules, saisir la commande suivante :
1 |
|
Voici la liste des modules qui peuvent être utilisés, si nous souhaitons utiliser un spécifique il faudra le signaler à l’outil via le paramètre « m » :
7.8.2 check-adb
Nous allons lancer une analyse sans spécifier de module, saisir la commande suivante :
1 |
|
Détails de la commande :
1 2 3 4 |
|
7.8.2.1 Chargement des IOC
Les différents IOC sont extraits et chargés :
7.8.2.2 Activation des modules
Dans la suite de l’analyse nous avons plusieurs éléments intéressants :
1) la vérification via ADB commence
2) le module « ChromeHistory » est exécuté
3) le module « ChromeHistory » n’a produit aucune détection
4) une demande de savegarde est faite, il faut l’accepter sur le téléphone sinon les messages ne seront pas analysés
5) le module « Whatapp » commence son analyse
7.8.2.3 Applications gérants les appels entrants
Des applications qui sont autorisées à utiliser l’application téléphone sont listées, dans le cas présent elles sont légitimes :
7.8.2.4 Applications interceptants les SMS
Dans le cas de l’interception des SMS, autant les premières applications sont légitimes mais si on ignore que la dernière application est en lien avec « Signal » cela peut être un indicateur d’application malveillante :
7.8.2.5 Nombre de permissions accordées
Au niveau des permissions des applications nous avons le nombre de permissions pour chacune d’elles :
7.8.2.6 Scan via VirusTotal
Il est possible d’envoyer les éléments pour analyse sur VirusTotal, auquel cas il faudra renseigner la clé API, ce qui n’est pas notre cas.
7.8.2.7 Récapitulatif du scan
Lorsque le scan est terminé un récapitulatif est affiché et dans notre cas il n’y a pas de présence d’IOC parmi ceux que nous avons utilisés :
7.8.3 Fichiers générés
A la fin de l’analyse un certain nombre de fichiers sont générées et enregistrés dans le répertoire que nous avons défini dans la commande précédente :
7.8.3.1 command.log
Ce fichier enregistre toutes les étapes qui ont été réalisées à l’issue de la commande :
7.8.3.2 dumpsys_activities.json
Ce fichier contient la liste des « activités », dans le contexte Android une activité c’est une action qui est réalisée très souvent avec interaction avec l’utilisateur.
Source :
1 |
|
7.8.3.3 dumpsys_battery_daily.json
Ce fichier contient l’historique de la batterie :
Source :
1 |
|
7.8.3.4 dumpsys_battery_history.json
7.8.3.5 dumpsys_dbinfo.json
7.8.3.6 dumpsys_receivers.json
7.8.3.7 dumpsys.txt
Ce fichier contient la liste des services en cours d’exécution :
Source :
1 |
|
7.8.3.8 files.json
Ce fichier liste tous les fichiers et dossier présents sur l’appareil, dans l’extrait ci-dessous nous pouvons voir que les éléments présents dans la carte SD ont été listés :
7.8.3.9 getprop.json
Ce fichier contient les détails sur les spécifications de l’appareil :
7.8.3.10 info.json
Ce fichier contient les informations sur les IOC qui ont été utilisés pour l’analyse :
7.8.3.11 logcat_last.txt
Ce fichier est censé contenir les journaux d’évènements systèmes avant le dernier redémarrage, mais dans le cas présent la récupération n’a pas pu être effectuée :
Source :
1 |
|
7.8.3.12 logcat.txt
Ce fichier contient les journaux d’évènements de l’appareil :
7.8.3.13 packages.json
Ce fichier contient la liste de toutes les applications installées ainsi que des informations sur celles-ci telles que :
- package_name : le nom complet du paquet
- file_name : l’emplacement du fichier APK
- system : est-ce que c’est une application intégrée à l’appareil ?
- third_party : est-ce que c’est une application tièrce ?
- files : informations sur l’emplacement et Hash du fichier APK
- version_name : la version
- requested_permissions : les permissions accordées
7.8.3.14 processes.json
Ce fichier contient la liste des processus en cours d’exécution sur l’appareil :
- user : le compte qui est utilisé
- name : le nom du processus
Nous pouvons constater que sur les 565 processus en cours, il y a 420 qui sont exécutés avec le compte root !
7.8.3.15 selinux_status.json
Ce fichier permet de connaitre le statut du paramètre SELinux :
7.8.3.16 settings.json
Ce fichier contient la liste de tous les paramètres de l’appareil, voici quelques informations que nous pouvons trouver :
- webview_provider : le navigateur par défaut
- wifi_country_code : les fréquences de quel pays sont utilisés pour la Wi-Fi
- wifi_p2p_device_name : le nom de l’appareil affiché lors de la connexion « Wi-Fi Direct »
Source :
1 |
|
7.8.3.17 timeline.csv
Ce fichier contient la liste des applications avec quelques informations telles que :
- package_install :
- package_first_install :
- package_last_update :
7.8.4 Calcul des Hash
Pour des raisons légales et d’intégrité des données, lors des investigations il est cruciale de calculer les empreintes des éléments récoltés.
7.8.4.1 MD5
Nous allons calculer l’empreinte MD5 des fichiers qui ont été générés par l’outil, saisir la commande suivante :
1 |
|
Détails de la commande :
1 2 |
|
Ici nous avons bien l’empreinte MD5 et en face le nom de chaque fichier.
7.8.4.2 SHA256
Bien que MD5 soit encore très utilisé, il y a des risques de collisions (=plusieurs éléments peuvent avoir la même empreinte), c’est pourquoi il est recommandé d’utiliser un algorithme plus puissant tel que le SHA256.
Pour calculer l’empreinte, saisir la commande suivante :
1 |
|
Nous obtenons les empreintes en face des fichiers, ici la longueur du hash est plus longue du au fait que l’algorithme ne soit pas le même :
7.9 mvt-android download-apks
Nous allons télécharger les fichiers APKs présents sur l’appareil, cette action permet d’analyser un APK suspect par la suite.
7.9.1 download-apks
Saisir la commande suivante :
1 |
|
Détails de la commande :
1 2 3 |
|
7.9.2 Retrieving list of installed packages
Avant le téléchargement différentes étapes se succèdent :
- Récupération de la liste des paquets installés
- Avertissement sur des autorisations accordées aux applications et qui potentiellement dangereuses
7.9.3 Listes des applications et dates d’installations
La liste des applications est affichée ainsi que leur date d’installation :
7.9.4 Extraction de la liste des applications et téléchargement
D’autres phases se succèdent :
1) affichage de la liste des applications systèmes et non système
2) dossier dans lequel est APK seront extrais
3) nombre de paquets non-système
4) début du téléchargement
5) exemple de téléchargement d’une application, ici AmazonShop
7.9.5 Exemple de téléchargement
L’état de l’avancement du téléchargement est consultable en temps réel :
7.9.6 Finalisation du processus
Lorsque les téléchargements sont terminés l’outil nous en informe :
7.9.7 Fichiers générés
A la fin du processus nous obtenons :
- apks
- apks.json
7.9.8 Répertoire contenant les APK
Voici un extrait du dossier qui contient les fichiers APK :
7.9.9 Fichier apks.json
Voici un extrait du fichier « apks.json », il contient pour chaque application téléchargée :
1) des informations générales, notamment l’emplacement sur l’appareil
2) des empreintes pour vérifier l’intégrité de l’APK
3) les permissions accordées à l’application
7.10 adb backup
Nous allons effectuer une sauvegarde des SMS/MMS pour les analyser par la suite.
7.10.1 Sauvegarde des SMS/MMS
Saisir la commande suivante :
1 |
|
Détails de la commande :
1 2 3 |
|
Une intervention manuelle sur l’appareil est requise pour la suite du processus :
7.10.2 Sauvegarde complète
Il est possible de définir un mot de passe pour la sauvegarde et dans le cas présent nous pouvons également voir les éléments qui seront sauvegardés :
7.11 mvt-android check-backup
Lorsque la sauvegarde est terminée nous pouvons l’analyser.
7.11.1 check-backup
Saisir la commande suivante :
1 |
|
Détails de la commande :
1 2 3 4 |
|
7.11.2 Checking Android backup
Le programme initie la vérification :
7.11.3 Analyse des messages
Les messages sont analysés :
7.11.4 Résultats de l’analyse
A la fin du processus nous pouvons voir le nombre de messages qui ont été analysés et le résultat :
7.11.5 Fichiers générés
Lors de l’analyse un certain nombre de fichiers ont été créés :
- command.json : historique des actions qui ont été réalisées lors de l’analyse
- info.json : informations sur les IOC testés
7.11.6 Fichier sms.json
Le fichier « sms.json » contient tous les SMS / MMS, voici quelques champs qui sont présents :
- body : le message
- date : la date au format Epoch (= nombre de secondes depuis le 1er Janvier 1970)
- isodate : date au format international
Source :
1 |
|
8. Conclusion
Nous avons vu à travers cet article comment mettre en place PTS et utiliser ses différents outils pour :
- Analyser les flux réseaux
- Chercher des IOC sur un appareil mobile
Bien que nous n’ayons pas vu les fonctionnalités avancées des outils, nous avons déjà un aperçu des possibilités offertes et l’utilité dans un contexte CSIRT / CERT.
9. Erreurs courantes
9.1 PiRogue OS
Problème :
La carte « Servers location » ne s’affiche plus :
Solutions :
Si vous venez de mettre sous tension le Raspberry Pi il faut attendre environ 5 minutes le temps que l’infrastructure et les services soient fonctionnels
Si vous avez attendu au-delà de 5 minutes, il faut rafraichir la page ou appuyer sur (F5)
9.2 Raspberry Pi
Problème :
Le nom du point d’accès (PiRogue) par défaut ne me plait pas, comment le changer ?
Solution :
Il faut modifier le fichier de configuration « /etc/hostapd/hostapd.conf »et remplacer PiRogue par le nom que vous souhaitez insérer :
9.3 MVT – Mobile Verification Toolkit
9.3.1 Erreur à la récupération des IOC
Problème :
Il est impossible de récupérer la liste des IOC :
Solution :
Il faut mettre à jour MVT, saisir la commande suivante : « pip3 install --upgrade mvt ».
9.3.2 Erreur lors du lancement des commandes
Problème :
Lors de la saisie d’une commande aucun module ne se lance pourtant l’appareil mobile est bien connecté :
Solution :
Saisir la commande « adb kill-server » pour résoudre le problème.
10. Sources
10.1 PiRogue tool suite
Site officiel :
1 |
|
Get Started :
1 |
|
Build a PiRogue :
1 |
|
Operate a PiRogue :
1 |
|
10.2 Rpilocator
Site officiel :
1 |
|
10.3 MVT – Mobile Verification Toolkit
Documentation :
1 |
|
MVT 2.1.3 :
1 |
|
10.4 PIP3
Python PIP usage :
1 |
|
10.5 Xiaomi
Activation du mode deboguage :
1 |
|