CyberHUBBlue Team Level 1
Linux Investigations

Linux Artifacts: User Files

Extracted from Digital Forensics(4).pdf - source PDF page(s) 102-113.

Linux Artifacts: User Files - source page 102
Source illustration - PDF page 102

Cette leçon va se concentrer sur les informations d'intérêt médico-légal concernant les fichiers utilisateur d'un Linux système. Il existe d'excellents endroits où nous pouvons nous tourner pour collecter des informations et éventuellement identifier des preuves numériques. Certains de ces sites peuvent également être parfaits pour utiliser les compétences en criminalistique numérique lors de la réponse aux incidents. Nous examinerons :

  • .bash_history
  • Fichiers et répertoires cachés
  • Effacer les fichiers et les répertoires (bureau, corbeille, documents, téléchargements)
  • Stéganographie

Histoire de Bash

Lieu

Le fichier .bash_history se trouve dans le fichier personnel de l'utilisateur. Tu peux le voir ?

Linux Artifacts: User Files - source page 103
Source illustration - PDF page 103
Non, vous ne pouvez pas, et c'est parce que c'est caché. En quelque sorte. Si nous utilisons la commande ls -a au lieu de la commande ls habituelle, nous voyons que nous avons identifié des fichiers cachés supplémentaires.
Linux Artifacts: User Files - source page 104
Source illustration - PDF page 104
Les fichiers ou répertoires commençant par «. » ne sont pas affichés à l'aide de la commande ls classique ou dans le navigateur graphique. Ceci est utilisé par les fichiers système, mais peut également être utilisé par des individus pour masquer des fichiers (plus d'informations à ce sujet dans la section suivante).

Pourquoi est-ce intéressant ?

Ce fichier contient la liste des commandes qui ont été exécutées par l'utilisateur concerné. Nous avons fait deux choses dans la capture d'écran ci-dessous :

  • La partie GAUCHE du terminal est le résultat de l'impression du contenu de .bash_history sur le terminal.
  • La partie DROITE du terminal est celle où nous utilisons la commande history dans le terminal.
Linux Artifacts: User Files - source page 104
Source illustration - PDF page 104

Elles sont identiques, car le terminal écrit toutes les commandes dans le fichier .bash.history. Quel est donc l'intérêt de lire le fichier historique si nous pouvons simplement utiliser la commande history ?

Parce que les utilisateurs peuvent exécuter la commande history -c, qui a supprimé tout l'historique du terminal. Sur la droite, lorsque nous exécutons à nouveau la commande history, tout a disparu.

Linux Artifacts: User Files - source page 105
Source illustration - PDF page 105
Linux Artifacts: User Files - source page 105
Source illustration - PDF page 105
Mais lorsque nous revenons en arrière et que nous lisons le fichier historique en utilisant cat.bash_history, nous pouvons voir que nous avons toujours un enregistrement des commandes qui ont été exécutées !
Linux Artifacts: User Files - source page 106
Source illustration - PDF page 106

En regardant l'historique des commandes ci-dessus, nous pouvons voir que cet utilisateur a lancé des scans nmap et a également lu les fichiers /etc/passwd et /etc/shadow, dont nous avons parlé précédemment. Une remarque importante, comme vous l'avez peut-être vu dans les captures d'écran ci-dessus, est que certaines commandes sont manquantes. Cela est dû au fait que le terminal dans lequel les commandes ont été saisies doit être fermé avant que les commandes puissent être écrites dans le fichier historique !

Fichiers cachés

Comme indiqué ci-dessus, le fichier bash_history commence par un point «. », ce qui, dans les Linux systèmes, fait que le fichier est masqué de la vue immédiate. Bien qu'il ne s'agisse pas d'une méthode infaillible pour masquer des fichiers ou des répertoires, elle peut facilement être oubliée car elle est cachée à la vue de tous. Dans la capture d'écran ci-dessous, nous pouvons voir que ce répertoire apparemment vide contient en fait des fichiers cachés et d'autres répertoires.

Linux Artifacts: User Files - source page 107
Source illustration - PDF page 107
Alors, quelle est la différence entre ls et ls -a ?
  • ls = liste le contenu du répertoire
  • ls -a = liste le contenu du répertoire et n'ignore pas les entrées commençant par.
Assurez-vous donc de toujours utiliser ls -a le cas échéant pour vous assurer de ne manquer aucun fichier masqué à l'aide de cette technique très simple.

Effacer les fichiers

Commençons par définir ce que nous entendons par « fichiers effacés ». Il s'agit de tous les fichiers

accessibles par des moyens standard, tels que le terminal ou le navigateur graphique. Cela inclut des domaines tels que :

  • Le bureau d'un utilisateur
  • Répertoires par défaut d'un utilisateur, notamment : téléchargements, musique, images, publics, modèles, vidéos
  • La poubelle

Ces zones peuvent simplement être consultées normalement à l'aide d'un terminal ou d'un navigateur de fichiers et peuvent contenir des fichiers utiles si le suspect n'a pas pris la peine de les cacher. Cependant, des fichiers apparemment innocents peuvent contenir des données cachées, que nous aborderons ci-dessous.

Stéganographie

« La pratique consistant à dissimuler des messages ou des informations dans d'autres textes ou données non secrets. » Un exemple serait d'avoir un fichier texte contenant des informations secrètes, où le fichier texte est en fait caché dans un fichier image innocent. Si ce fichier image était envoyé sous forme de pièce jointe à un e-mail, le destinataire recevrait un fichier image normal. Cependant, en utilisant les bons outils, vous pouvez récupérer le fichier caché. Vous pouvez également insérer des messages masqués sous forme de chaînes de texte dans les métadonnées d'un fichier. Nous vous suggérons de lire le court article suivant qui explique ce qu'est la stéganographie, écrit par TechTarget. La stéganographie a été décrite comme une technique contre-légale, car elle permet de rendre les données plus difficiles à trouver en les cachant à la vue de tous.

Masquer des fichiers ZIP dans des images

Prenons un exemple où nous voulons masquer un fichier ZIP dans un fichier image. Sur notre bureau, nous avons un fichier texte secretmessage.txt, le même fichier texte mais dans un conteneur ZIP secretmessage.zip, et une image d'un chien Dog.jpg.

Linux Artifacts: User Files - source page 109
Source illustration - PDF page 109
À l'aide de la commande cat Dog.jpg secretmessage.zip > Dog2.jpg, nous pouvons insérer le fichier ZIP dans l'image d'un chien, en créant un nouveau fichier nommé Dog2.jpg !
Linux Artifacts: User Files - source page 109
Source illustration - PDF page 109

Sans aucune connaissance technique, vous supposeriez simplement que cette image est légitime et qu'elle peut toujours être ouverte comme un fichier image normal. Toutefois, si nous utilisons la commande unzip sur le fichier image, nous récupérerons les fichiers qui se trouvaient dans le fichier ZIP masqué.

Linux Artifacts: User Files - source page 110
Source illustration - PDF page 110
Linux Artifacts: User Files - source page 110
Source illustration - PDF page 110

Utiliser Steghide pour masquer et récupérer des fichiers

De la même manière que ce que nous avons réalisé avec la commande cat, nous pouvons faire de même avec Steghide, mais cette fois, nous pouvons protéger par mot de passe le fichier dans lequel nous cachons des données, connu sous le nom de fichier de couverture. Nous allons masquer le message secret (.txt) dans Dog.jpg à l'aide de cet outil. La commande que nous voulons utiliser est steghide embed -cf Dog.jpg -ef secretmessage.
  • steghide — invoque l'outil que nous voulons utiliser
  • embed — sélectionne l'opération que nous voulons utiliser, dans ce cas intégrer un fichier dans un autre
  • -cf Dog.jpg — le drapeau « fichier de couverture » est l'endroit où nous indiquons le fichier qui contiendra le fichier caché
  • -ef secretmessage — l'indicateur « intégrer le fichier » est l'endroit où nous indiquons le fichier que nous voulons cacher dans le fichier de couverture

Une fois que nous aurons saisi cette commande, nous serons invités à entrer un mot de passe. Nous allons appuyer deux fois sur [Enter] pour ne pas utiliser de mot de passe.

Linux Artifacts: User Files - source page 111
Source illustration - PDF page 111

Super, ça a marché ! Supprimons maintenant le message secret et essayons de récupérer la copie que nous avons cachée dans Dog.jpg. Nous voulons utiliser la commande steghide extract -sf Dog.jpg.

  • steghide — invoque l'outil
  • extraction : sélectionne l'opération d'extraction
  • -sf Dog.jpg : l'indicateur « fichier de stéganographie » est utilisé pour indiquer à steghide quel fichier contient selon nous des données masquées par stéganographie, qui est notre fichier de couverture vu ci-dessus.
Linux Artifacts: User Files - source page 111
Source illustration - PDF page 111

De toute évidence, le fait de masquer des fichiers par cette méthode à l'aide de mots de passe complique la tâche des enquêteurs judiciaires, car ils auront besoin de connaître ou de récupérer un mot de passe valide pour récupérer le fichier. Mais il existe des outils qui permettent de forcer brutalement les mots de passe pour récupérer des fichiers cachés, tels que https://github.com/Paradoxis/StegCracker.

Masquage de chaînes dans les métadonnées

Un autre moyen de masquer des informations consiste à insérer des chaînes de texte dans les métadonnées d'un fichier. Nous pouvons intégrer et extraire des chaînes à l'aide d'un outil appelé ExifTool. Exécutez la commande exiftool sur votre système Kali. Si elle n'est pas trouvée, utilisez la commande suivante pour l'installer : sudo apt-get install exiftool. Nous allons intégrer la phrase « Super Sneaky ! » dans les métadonnées du fichier Dog.jpg à l'aide de la commande exiftool - Comment="Super Sneaky ! » Dog.jpg. Ci-dessous, vous pouvez voir qu'une fois la commande terminée, elle générera un nouveau fichier en utilisant le nom du fichier d'origine et en remplaçant l'original par <.extension<+_original>. Dans notre cas, le fichier d'origine est renommé DOG.JPG_ORIGINAL. <filename>

Linux Artifacts: User Files - source page 112
Source illustration - PDF page 112

Maintenant, si nous utilisons exiftool sur le nouveau fichier, Dog.jpg, nous pouvons voir toutes les métadonnées de ce fichier, y compris le nouveau commentaire que nous venons d'ajouter.

Linux Artifacts: User Files - source page 113
Source illustration - PDF page 113

Pour ajouter quelques secondes supplémentaires à la journée d'un enquêteur, cette chaîne de texte peut être encodée dans des formats tels que Base64 ou hexadécimal afin de la rendre moins évidente.