[Forensic] Linux - Artefacts
Introduction
De nombreux artefacts sont consultables sur les systèmes Linux pour effectuer une analyse forensique.
Artefacts
Liste d'artefacts
connectés /var/lib/networkmanager/timestamps Enregistre les baux DHCP /var/lib/dpkg/status Journaux d'évènements du gestionnaire de paquets DPKG (Debian / Ubuntu) /var/lib/dpkg/status Journaux d'évènements du gestionnaire de paquets RPM (Redhat) /var/lib/pacman/local Journaux d'évènements du gestionnaire de paquets PACMAN (Arch Linux) /var/log/apt/history.log Journaux d'évènements de ce qui a été installé avec le gestionnaire de paquets APT (Debian / Ubuntu) /var/log/apt/term.log Enregistre les sorties de terminal des commandes d'installations avec APT (Debian / Ubuntu)
/var/log/yum.log* Contient les dates d'installation des paquets (Redhat) /var/log/dnf.log* Contient les dates d'installation des paquets dans un format difficile à lire (Redhat) /var/log/dpkg.log* Journaux d'évènements pour les paquets installés manuellement avec le gestionnaire de paquets DPKG (Debian / Ubuntu) /var/log/auth.log Connexions utilisateurs. /var/log/btmp Connexions échouées des utilisateurs. /var/log/faillog Connexions échouées des utilisateurs. /var/log/dmesg Périphériques matériels détectés par le kernel au démarrage. /var/log/journal/* Logs systèmes et services (remplaçant de syslog) /var/log/lastlog Dernières connexions pour chaque utilisateur. /var/log/syslog Logs systèmes et services. /var/log/wtmp | /var/log/utmp Connexions réussies des utilisateurs.
Date d'installation du système
La méthode la plus sûre est de chercher la date de création du système de fichiers, en utilisant la commande suivante pour EXT4 :
tune2fs –l /dev/sdb2 | grep -i "created"
Et la commande suivante pour BTRFS :
btrfs subvol show /mnt/evidence/| grep -i "creation time"
Dernières extinctions
last -f /var/log/wtmp | grep shutdown
$PATH
Le $PATH contient les chemins vers tous les binaires exécutables. Vous pouvez afficher les chemins (chroot requis) :
echo $PATH
Vous pouvez aussi récupérer tous les binaires (applications), avec la commande suivante (chroot requis) :
for i in $(echo $PATH | tr -s ":" "\n"); do find $i/ -type f; done > apps.txt
Démarrages automatiques
Systemd
Vous pouvez consulter tous les fichiers .service ou .target ou .socket contenus dans les répertoires suivants :
Vous pouvez consulter les logs systemd dans le fichier /var/log/syslog .
Init
Sur les vieux systèmes, init était utilisé à la place de systemd. Les scripts exécutés au démarrage avec init sont situés dans /etc/init.d .
Cron
Les tâches crontab peuvent être vérifiées dans les répertoires suivants :
De plus, les tâches propres aux utilisateurs peuvent être consultées avec la commande suivante (chroot requis) :
crontab -l
Profils shells
Ces fichiers de profil sont en réalité des scripts bash qui s'exécutent au démarrage de la session de l'utilisateur, ils sont exécutés dans l'ordre suivant :
GUI Startup Manager
Sur les environnements de bureau traditionnels (Gnome, KDE, XFCE), il est possible de configurer des applications de démarrage :
Vous pouvez les retrouver à l'emplacement ~/.config/autostart/ .
Logrotate
La configuration de Logrotate est disponible via le fichier /etc/logrotate.conf ou dans le dossier /etc/logrotate.d/ . Voici la configuration par défaut :
Voici un schéma explicatif du fonctionnement de Logrotate :

Une tâche cron exécute quotidiennement logrotate, celle-ci est disponible à cet emplacement /etc/cron.daily/logrotate .
Les status et horodatages des rotations sont disponible à cet emplacement /var/lib/logrotate/status .
Journaux d'évènements
Les logs au format texte sont en train d'être remplacés par des fichiers de base de données sur les systèmes Linux, ce qui les rend plus difficile à consulter.
Vous pouvez afficher les logins réussis avec l'horodatage pour les utilisateurs du système avec la commande suivante :
lastlog |pr -2 -t -s | column -t
Vous pouvez afficher les dernières connexions de l'utilisateur courant avec la commande suivante :
last -F
Vous pouvez consulter les logs d'un système distant avec journalctl :
journalctl --directory=/mnt/evidence/var/log/journal
Voici quelques options pour journalctl :
Affichage de l'horodatage au format ANSI
[ex: Wed 2022-08-03 02:43:12]
journalctl -o short-isoAffichage de l'horodatage au format ISO
[ex:2022-08-03T02:43:12-0700]
journalctl -o short-unixAffichage de l'horodatage au format Integer
[ex: 1659519792.935000]
journalctl -o verbose Affiche le détail complets des champs journalctl --no-hostname Enlève le champ du nom d'hôte pour améliorer la lisibilité journalctl -a Affiche l'ensemble des champs des journaux journalctl -r Affiche les logs en sens inverse journalctl --list-boots Liste les démarrages journalctl -u <SERVICE>.service Information sur un service journalctl _UID=<UID> Informations sur l'utilisateur (avec son id) journalctl -k | grep -i USB Informations kernel sur les périphériques USB
