CyberHUBBlue Team Level 1
Linux Investigations

Linux Artifacts: /Var/Lib and /Var/Log

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

Linux Artifacts: /Var/Lib and /Var/Log - source page 98
Source illustration - PDF page 98

Dans cette leçon, nous allons aborder deux emplacements susceptibles d'intéresser les enquêteurs judiciaires, à savoir /var/lib et /var/log.

var/lib

Logiciels et packages installés

Sur les systèmes basés sur Debian, nous pouvons trouver un fichier très utile à l'emplacement suivant : /var/lib/dpkg/status. Ce fichier contient une liste de tous les packages logiciels installés et peut être une mine d'or si vous souhaitez voir quels programmes l'utilisateur a installés sur le système. Prenons une copie de ce fichier et déplaçons-le sur notre bureau, puis ouvrons-le dans un éditeur de texte et voyons quelles applications installées nous pouvons trouver !

Linux Artifacts: /Var/Lib and /Var/Log - source page 99
Source illustration - PDF page 99

Dans le fichier GIF ci-dessous, vous pouvez voir que nous avons ouvert le fichier « status » et que nous avons recherché différents programmes. Nous verrons que les éléments suivants sont installés sur ce système :

  • steghide
  • outil EXIF
  • nikto

Si les enquêteurs judiciaires ou les intervenants en cas d'incident recherchaient des packages spécifiques, ils pouvaient utiliser la fonctionnalité de recherche (CTRL+F) pour rechercher ce dont ils ont besoin.

Linux Artifacts: /Var/Lib and /Var/Log - source page 100
Source illustration - PDF page 100

Nous pouvons également ouvrir le fichier dans un terminal, prendre chaque ligne contenant « Package » (car nous savons que cela contient le nom du package) et l'enregistrer dans un fichier texte afin de pouvoir l'examiner sans le bruit de tous les détails supplémentaires du package. La commande pour cela serait :

cat status | Package grep > packages.txt
  • cat status va lire le fichier.
  • grep Package recherchera toutes les lignes contenant « Package »
  • > packages.txt affichera les résultats dans un fichier texte appelé packages.txt

var/log

Les fichiers journaux présents dans ce répertoire dépendent parfois du système d'exploitation Linux utilisé. Il est donc possible que vous ne les voyiez pas tous dans la liste ci-dessous. Nous nous concentrons sur les principaux qui nous concernent en tant que professionnels de la cybersécurité et qui nous fournissent des informations et des artefacts utiles, mais il en existe bien d'autres.

Journaux du système d'exploitation

1. /var/log/auth.log : contient les informations d'authentification du système, y compris les

connexions des utilisateurs.

Linux Artifacts: /Var/Lib and /Var/Log - source page 101
Source illustration - PDF page 101

2. /var/log/dpkg.log — Contient des informations enregistrées lorsqu'un package est installé ou

supprimé à l'aide de la commande « dpkg ». Cette commande est similaire à la commande packages de la section var/lib ci-dessus.

Linux Artifacts: /Var/Lib and /Var/Log - source page 101
Source illustration - PDF page 101

3. /var/log/btmp — Ce fichier contient des informations sur les tentatives de connexion

infructueuses.

4. /var/log/cron — Chaque fois que le démon cron lance une tâche cron, il enregistre les

informations relatives à cette tâche dans ce fichier. Cela est utile car les tâches cron peuvent être utilisées à mauvais escient à des fins de persistance sur un système.

5. /var/log/secure : contient des informations relatives aux privilèges d'authentification et

d'autorisation. Par exemple, sshd (le démon utilisé pour le service SSH) enregistre tous les messages ici, y compris les tentatives de connexion infructueuses.

6. /var/log/faillog — Contient les tentatives de connexion infructueuses de l'utilisateur.

Journaux du serveur Web

Linux les systèmes basés sont souvent utilisés pour exécuter des frameworks de serveurs Web, tels qu'Apache et Nginx. En nous concentrant sur Apache, nous pouvons trouver un journal extrêmement utile dans « var/log/apache2/access ». log' qui nous fournit des informations sur les demandes adressées au serveur Web, y compris des valeurs telles que :

  • Adresse IP du client à l'origine de la demande
  • La ressource à laquelle ils essaient d'accéder
  • La méthode HTTP, qui sera le plus souvent GET (pour obtenir une ressource, telle que des images dans une page Web)
  • L'agent utilisateur utilisé par l'adresse IP du client (il doit généralement s'agir d'un agent utilisateur du navigateur, tel que Chrome, Firefox, etc.)
  • et l'horodatage de la demande

Regardons un exemple.

52.50.100.106 - SBT Utilisateur [27/Jul/ 2020:15:30:00 -0600] « GET /logo.png HTTP/1.1" 200 379

1. 52.50.100.106 - L'adresse IP du client qui fait la demande au serveur Web

2. SBT Utilisateur : l'identifiant du compte à l'origine de la demande (s'il est connecté et si le site

Web utilise des comptes)

3. [27/Jul/ 2020:15:30:00 -0600] - L'horodatage de la demande

4. « GET /logo.png HTTP/1.1 » - La ressource à laquelle vous accédez, dans ce cas, l'adresse IP

récupère le fichier image du logo afin qu'il puisse être affiché sur une page

5. 200 - Le code de réponse HTTP. Dans ce cas, c'est 200 OK (accès réussi). Dans d'autres cas, il

peut s'agir de 404 si la ressource n'est pas trouvée.

6. 379 - La taille du fichier envoyé au client (dans ce cas, la taille du fichier logo.png)

Nous pouvons analyser ces journaux d'accès pour identifier des activités telles que l'analyse des vulnérabilités, l'exploitation, etc.

Dans la capture d'écran ci-dessous, vous pouvez voir quelques exemples réels d'entrées du journal d'accès Apache.

Linux Artifacts: /Var/Lib and /Var/Log - source page 102
Source illustration - PDF page 102