unix-privesc-check
Script shell qui vérifie les mauvaises configurations courantes de privilege escalation sur Unix/Linux. Couvre les binaires SUID, les règles sudo, les tâches cron, les chemins accessibles en écriture et les configurations de services. Shell script that checks for common Unix/Linux privilege escalation misconfigurations. Covers SUID binaries, sudo rules, cron jobs, writable paths, and service configurations.
↗ https://pentestmonkey.net/tools/unix-privesc-checkOverview
unix-privesc-check is a shell script (works on any Unix with /bin/sh) that audits a system for common privilege escalation misconfigurations. It’s a lightweight alternative to linpeas when you need something that works on minimal systems without curl or wget.
Basic Usage
# Download
wget https://pentestmonkey.net/tools/unix-privesc-check/unix-privesc-check-1.4.tar.gz
tar -xzf unix-privesc-check-1.4.tar.gz
Standard mode (less verbose)
./unix-privesc-check standard
Detailed mode (full output)
./unix-privesc-check detailed
Save output
./unix-privesc-check standard 2>&1 | tee output.txt
What It Checks
SUID/SGID Binaries:
- Writable SUID binaries (immediate exploit)
- SUID binaries in unusual locations
- SGID writable binaries
Sudo Configuration:
- NOPASSWD sudo rules
- Sudo rules for shells or dangerous commands
- World-readable sudoers file
Cron Jobs:
- Root cron jobs with writable scripts
- Cron scripts in world-writable directories
- Cron PATH manipulation opportunities
File Permissions:
- World-writable sensitive files (/etc/passwd, /etc/shadow)
- World-readable /etc/shadow
- Writable /etc/cron.* directories
Service Configurations:
- NFS exports with no_root_squash
- Writable config files for running services
- Weak MySQL credentials
- Writable PHP configuration
Network:
- Open ports on localhost
- Services running as root
Reading the Output
Look for “WARNING” lines — these are exploitable findings
./unix-privesc-check standard 2>&1 | grep -i "WARNING"
# Example warnings:
# WARNING: /usr/local/sbin/backup is SUID and writable by group admin
# WARNING: /etc/cron.daily/cleanup is writable by non-root
# WARNING: sudo NOPASSWD for /usr/bin/vim
# "OK" means the check passed (not a finding)
# "WARNING" means a potential vulnerability
Comparison with linpeas
unix-privesc-check:
+ Works on minimal systems (pure shell)
+ Very portable — runs anywhere with /bin/sh
+ Clear WARNING/OK output
- Less comprehensive than linpeas
- No color output
linpeas:
+ Much more comprehensive
+ Color-coded by severity
+ Regularly updated
- Requires more resources
- Can trigger AV/EDR
Tips
- Use when you can’t transfer linpeas — this works on almost any Unix system
- The “detailed” mode shows everything; “standard” shows only problems
- Combine with linpeas for comprehensive coverage on modern systems
- Focus on SUID+writable and sudo NOPASSWD findings first — these are directly exploitable
Help / Man page
unix-privesc-check <mode>
mode:
standard Less verbose, shows only warnings and some info
detailed Full verbose output of all checks
Output:
OK Check passed (no vulnerability)
WARNING Potential privilege escalation vulnerability found
INFO Informational finding (may or may not be relevant)
Vue d’ensemble
unix-privesc-check est un script shell (fonctionne sur tout Unix disposant de /bin/sh) qui audite un système à la recherche de mauvaises configurations courantes de privilege escalation. C’est une alternative légère à linpeas quand vous avez besoin de quelque chose qui fonctionne sur des systèmes minimalistes sans curl ni wget.
Utilisation de base
# Télécharger
wget https://pentestmonkey.net/tools/unix-privesc-check/unix-privesc-check-1.4.tar.gz
tar -xzf unix-privesc-check-1.4.tar.gz
# Mode standard (moins verbeux)
./unix-privesc-check standard
# Mode détaillé (sortie complète)
./unix-privesc-check detailed
# Sauvegarder la sortie
./unix-privesc-check standard 2>&1 | tee output.txt
Ce qu’il vérifie
SUID/SGID Binaries:
- Writable SUID binaries (immediate exploit)
- SUID binaries in unusual locations
- SGID writable binaries
Sudo Configuration:
- NOPASSWD sudo rules
- Sudo rules for shells or dangerous commands
- World-readable sudoers file
Cron Jobs:
- Root cron jobs with writable scripts
- Cron scripts in world-writable directories
- Cron PATH manipulation opportunities
File Permissions:
- World-writable sensitive files (/etc/passwd, /etc/shadow)
- World-readable /etc/shadow
- Writable /etc/cron.* directories
Service Configurations:
- NFS exports with no_root_squash
- Writable config files for running services
- Weak MySQL credentials
- Writable PHP configuration
Network:
- Open ports on localhost
- Services running as root
Lecture de la sortie
Chercher les lignes “WARNING” : ce sont les findings exploitables
./unix-privesc-check standard 2>&1 | grep -i "WARNING"
# Exemples de warnings :
# WARNING: /usr/local/sbin/backup is SUID and writable by group admin
# WARNING: /etc/cron.daily/cleanup is writable by non-root
# WARNING: sudo NOPASSWD for /usr/bin/vim
# "OK" signifie que la vérification est passée (pas de finding)
# "WARNING" signifie une vulnérabilité potentielle
Comparaison avec linpeas
unix-privesc-check:
+ Fonctionne sur des systèmes minimalistes (shell pur)
+ Très portable : fonctionne partout où /bin/sh est disponible
+ Sortie WARNING/OK claire
- Moins complet que linpeas
- Pas de sortie en couleur
linpeas:
+ Beaucoup plus complet
+ Codé par couleur selon la sévérité
+ Régulièrement mis à jour
- Nécessite plus de ressources
- Peut déclencher AV/EDR
Conseils
- À utiliser quand vous ne pouvez pas transférer linpeas : celui-ci fonctionne sur presque tout système Unix
- Le mode “detailed” affiche tout ; “standard” ne montre que les problèmes
- Combiner avec linpeas pour une couverture complète sur les systèmes modernes
- Se concentrer d’abord sur les findings SUID+writable et sudo NOPASSWD : ils sont directement exploitables
Aide / Page de manuel
unix-privesc-check <mode>
mode:
standard Less verbose, shows only warnings and some info
detailed Full verbose output of all checks
Output:
OK Check passed (no vulnerability)
WARNING Potential privilege escalation vulnerability found
INFO Informational finding (may or may not be relevant)