Aller au contenu

Analyse d'Artefact : Éditeurs de Texte Linux (.viminfo, nano, less)

Vim est l’éditeur standard omniprésent sur les systèmes de type Unix. Son fichier d’historique, .viminfo, est incroyablement verbeux et agit comme un registre détaillé de l’interaction de l’utilisateur avec le système de fichiers.

  • Emplacements de l’artefact : /home/<user>/.viminfo et /root/.viminfo
  • Format : un fichier texte brut, soigneusement divisé en sections opérationnelles spécifiques.

Lors de l’analyse d’une image forensique montée (ex: dans /mnt/analyse/), les analystes DFIR doivent traquer les sections spécifiques suivantes au sein du fichier .viminfo :

# Command Line History (:)

enregistre les commandes tapées dans le mode commande de Vim. Les analystes y verront des commandes de routine comme :wq (sauvegarder et quitter) ou :set paste. Alerte rouge : recherchez les échappées vers le shell (shell escapes) comme :!/bin/bash ou :!curl. Les attaquants utilisent fréquemment Vim pour générer des shells root interactifs (une technique classique de GTFOBins) afin de contourner les environnements restreints.

# Search String History (/)

enregistre les termes que l’utilisateur a recherchés dans les documents. Alerte rouge : trouver des termes comme /password, /DB_HOST ou /PRIVATE_KEY prouve que l’intention immédiate de l’attaquant était la collecte d’identifiants au sein des fichiers de configuration.

# File marks

une liste des fichiers qui ont été ouverts avec Vim, consignant le chemin absolu exact et le numéro de la ligne où le curseur a été placé pour la dernière fois. Valeur forensique : même si l’attaquant a effacé son .bash_history, la présence de '/etc/ssh/sshd_config ici prouve définitivement qu’il a accédé à la configuration SSH.

# Registers (Presse-papiers)

Vim stocke le texte supprimé (x ou d) ou copié (y) dans des registres. Valeur forensique : si un attaquant supprime un mot de passe d’un fichier de configuration pour cacher ses traces, ou colle une charge utile de reverse shell malveillant dans un script, le texte brut peut être parfaitement préservé ici.

Bien que Vim soit le standard, les acteurs de la menace (en particulier les moins expérimentés) peuvent s’appuyer sur des outils plus simples qui maintiennent leurs propres historiques cachés.

Nano est un éditeur de texte direct. Bien qu’il n’enregistre pas les chemins de fichiers comme Vim, il conserve un historique de recherche.

  • Emplacement : ~/.nano_history (ou parfois dans ~/.local/share/nano/).
  • Valeur forensique : enregistre principalement les termes de recherche. Cela prouve que l’éditeur a été utilisé et révèle les mots-clés ciblés par l’attaquant.

less est la commande standard de visionnage utilisée pour lire des fichiers (ex: lire des logs ou de grandes configurations).

  • Emplacement : ~/.lesshst
  • Valeur forensique : tout comme Vim, less prend en charge l’historique de recherche et, de manière plus dangereuse, les échappées vers le shell. Si un attaquant lit /var/www/html/config.php puis tape !sh à l’intérieur de less pour générer un shell, les termes de recherche ("db_password") et la commande d’échappée shell sont tous deux consignés ici.

Lorsqu’un fichier est ouvert dans Vim, l’éditeur crée un fichier d’échange (swap) temporaire caché dans le même répertoire que le fichier cible. Si Vim plante, ou si la session SSH de l’attaquant s’interrompt brusquement (une occurrence fréquente avec des infrastructures C2 instables), le fichier swap est laissé sur place.

  • L’indicateur : en listant un répertoire (ls -la), vous observez un fichier nommé .sshd_config.swp.
  • L’implication : quelqu’un était en train d’éditer sshd_config et la session s’est terminée de manière anormale.
  • Action DFIR : le fichier swap contient les frappes et les modifications non validées et non sauvegardées effectuées par l’attaquant. Les analystes peuvent récupérer ces brouillons en utilisant la commande de récupération : vim -r .sshd_config.swp.
  1. Cibler les comptes web : ne limitez pas la recherche à root. Les comptes comme www-data ou apache sont très susceptibles d’être utilisés pour modifier des pages web ou déposer des webshells.
  2. Corréler avec les MAC Times : si /etc/ssh/sshd_config a été modifié à 14h00, et que le fichier .viminfo de l’utilisateur root a été mis à jour à 14h01 en contenant une marque de fichier (file mark) pour ce fichier de configuration exact, vous avez attribué de manière positive la modification du fichier à cette session utilisateur spécifique.
  3. Automatiser la chasse : utilisez des scripts bash pour analyser rapidement ces artefacts sur l’ensemble de l’image forensique hors ligne.
audit_editor_artifacts.sh
#!/bin/bash
TARGET_DIR="/mnt/analyse"
echo "[+] Chasse aux fichiers .viminfo pour tous les utilisateurs..."
find $TARGET_DIR/home $TARGET_DIR/root -type f -name ".viminfo" -exec echo -e "\n=== {} ===" \; -exec cat {} \;
echo "[+] Chasse aux fichiers .lesshst et échappées shell..."
find $TARGET_DIR/home $TARGET_DIR/root -type f -name ".lesshst" -exec echo -e "\n=== {} ===" \; -exec cat {} \;
echo "[+] Recherche de fichiers swap Vim orphelins (.swp) dans les répertoires critiques..."
find $TARGET_DIR/etc $TARGET_DIR/var/www -type f -name ".*.swp" -ls