LinuxPrivChecker está diseñado para identificar áreas potenciales para investigar más a fondo, no para proporcionar explotación directa. Es ideal para aprender cómo funcionan las escaladas de privilegios y para su uso en:
Busca automáticamente: archivos SUID/SGID, configuraciones erróneas de sudoers, scripts de servicio escribibles, contraseñas en texto plano, versiones de kernel con CVEs conocidos y variables de entorno manipulables.
sudo apt install pipx -ypipx ensurepath — añade el directorio de ejecutables de pipx (~/.local/bin) al $PATH. Cierra y reabre la terminal para aplicar los cambios.pipx install linuxprivchecker — pipx gestiona el entorno virtual automáticamente.source ~/.bashrc — carga los cambios del PATH sin reiniciar el terminal.linuxprivchecker (usuario actual) o sudo $HOME/.local/bin/linuxprivchecker (con root)# Paso 1: Instalar pipx
sudo apt update
sudo apt install pipx -y
# Paso 2: Asegurar que ~/.local/bin está en el PATH
pipx ensurepath
# → Cierra y reabre la terminal tras este paso
# Paso 3: Instalar la herramienta
pipx install linuxprivchecker
# Paso 4: Si el PATH no se actualizó, recargar el shell
source ~/.bashrc
# Paso 5: Ejecutar (como usuario o como root)
linuxprivchecker
sudo $HOME/.local/bin/linuxprivchecker
# Descargar el script todo-en-uno
wget https://raw.githubusercontent.com/sleventyeleven/linuxprivchecker/master/linuxprivchecker.py
# Ejecutar con output al log
python linuxprivchecker.py -w -o linuxprivchecker.log
sudo linuxprivchecker — el PATH de root no incluye el directorio de pipx del usuario.sudo linuxprivchecker falla porque sudo usa el PATH de root, que no incluye ~/.local/bin (donde pipx instala los ejecutables del usuario). Aunque pipx ensurepath funciona para tu usuario, el entorno de sudo es diferente./home/feval/.local/bin/ — solo en el PATH del usuario
source ~/.bashrc añade la ruta → linuxprivchecker funciona sin sudo
Solución: usar la ruta completa
# ✅ Solución 1: dar la ruta absoluta a sudo (recomendado)
sudo $HOME/.local/bin/linuxprivchecker
# ✅ Solución 2: ruta explícita con usuario real
sudo /home/ATU/.local/bin/linuxprivchecker
# ✅ Solución 3: guardar en archivo desde root
sudo /home/ATU/.local/bin/linuxprivchecker > /tmp/reporte.txt
# ✅ Ejecutar sin sudo (solo información accesible por el usuario)
linuxprivchecker
sudo| Comando | Descripción |
|---|---|
| sudo linuxprivchecker | Uso estándar. Escaneo completo en modo interactivo con salida en terminal. Accede a archivos protegidos. |
| linuxprivchecker | Escaneo con permisos del usuario actual. Simula un atacante sin privilegios — útil para ver qué se expone sin root. |
| linuxprivchecker -h | Muestra ayuda y resumen de opciones disponibles. |
| linuxprivchecker > /tmp/reporte.txt | Crucial: Redirige el informe completo a un archivo para análisis posterior y documentación forense. |
| sudo python3 linuxprivchecker.py | Ejecución directa del .py clonado (Python 2: python linuxprivchecker.py -w -o log). Útil si pipx da problemas. |
# Escaneo completo guardando el informe
sudo /home/ATU/.local/bin/linuxprivchecker > /tmp/reporte.txt
# Leer el informe
cat /tmp/reporte.txt
sudo cat /tmp/reporte.txt
# Buscar secciones específicas en el reporte
grep -i "suid" /tmp/reporte.txt
grep -i "password\|passwd" /tmp/reporte.txt
Busca: Versión del kernel (uname -a), distribución y arquitectura.
Significado: Si detecta un kernel antiguo o vulnerable, mostrará automáticamente el CVE correspondiente, sugiriendo un exploit de kernel conocido. La versión de kernel es el primer dato que un atacante aprovecharía para buscar exploits públicos.
Busca: Usuarios con UID 0 (root), miembros del grupo sudo o wheel, configuraciones débiles en /etc/sudoers.
Significado: Revela qué usuarios tienen más poder y qué comandos pueden ejecutar sin contraseña. La herramienta destaca especialmente líneas en sudoers que permiten ejecutar comandos peligrosos como find, vim o nmap con sudo — todos explotables fácilmente para obtener shell de root.
Busca: Procesos ejecutándose con privilegios de root (ps aux), servicios inusuales y archivos de configuración sensibles.
Significado: Un proceso ejecutándose como root que tiene una versión vulnerable o una configuración incorrecta es un objetivo directo para la explotación.
La sección más importante para la escalada. Analiza tres vectores clave:
- SUID/SGID: Binarios con el bit SUID permiten ejecutarlos con permisos del dueño (si dueño = root → ¡usuario se convierte en root!).
- Archivos escribibles: Scripts de servicio o cron que el usuario puede modificar para añadir código malicioso.
- Contraseñas almacenadas: Archivos de configuración con contraseñas en texto plano o codificadas.
Busca: Variables de entorno sensibles como LD_PRELOAD y paths débiles.
Significado: Algunas vulnerabilidades de escalada se basan en manipular las librerías que carga un programa o las rutas de búsqueda para inyectar código malicioso. Si un script root llama a un binario sin ruta absoluta, un atacante puede colocar un binario malicioso con el mismo nombre antes en el PATH.
| Vector | Archivos a revisar | Potencial de escalada |
|---|---|---|
| SUID / SGID | Binarios con bit SUID/SGID: /usr/bin/find, /usr/bin/nmap, etc. |
Un binario con SUID permite ejecutarlo con los permisos del dueño. Si el dueño es root → el usuario se convierte en root. Hay una lista de binarios SUID conocidamente peligrosos en GTFOBins. |
| Archivos escribibles | Scripts de servicio (/etc/init.d/), archivos de cron modificables por el usuario. |
Si puedes modificar un script que se ejecuta como root (al reiniciar un servicio), puedes añadir código malicioso para obtener shell de root. |
| Contraseñas en texto plano | Archivos de configuración, scripts con credenciales hardcodeadas, .bash_history. |
Permite saltarse la autenticación o acceder a otros servicios con las credenciales del administrador. |
# Buscar binarios con bit SUID (ejecutan como propietario)
find / -perm -4000 -type f 2>/dev/null
# Buscar directorios con permisos 777 (escribibles por todos)
find / -type d -perm 777 2>/dev/null
sudo find / -type d -perm 777 2>/dev/null
sudo. Esto significa que ya hay control de root a través de este mecanismo — no hace falta nada más sofisticado..bash_history revela instalación de MySQL, Apache y WordPress. El archivo wp-config.php a menudo contiene credenciales de base de datos en texto plano. Comandos visibles: sudo mysql_secure_installation, sudo nano wp-config.php, sudo chown -R www-data:www-data /var/www/wordpress..bashrc añade /home/atu/.local/bin al PATH. Si un script root llama a un binario sin ruta absoluta, un atacante con escritura en ese directorio podría colocar un ejecutable malicioso con el mismo nombre.sudo apt update && sudo apt upgrade — actualiza el sistema operativo inmediatamente.sudo chmod u-s /usr/bin/find. Revisa la lista con find / -perm -4000 -type f 2>/dev/null y compara contra GTFOBins.sudo chmod 600 <archivo>. Aplica a /etc/passwd, scripts de cron y archivos de configuración de servicios./etc/sudoers con sudo visudo. Evita la directiva NOPASSWD y limita los comandos permitidos. Nunca permitas ALL=(ALL) NOPASSWD: ALL.