Linux Exploit Suggester

Suggère des exploits d'escalade de privilèges locale en fonction de la version du noyau Linux et des paquets installés. Couvre les CVE de la dernière décennie avec des liens directs vers les exploits. Suggests local privilege escalation exploits based on Linux kernel version and installed packages. Covers CVEs from the last decade with direct exploit links.

↗ https://github.com/The-Z-Labs/linux-exploit-suggester

Overview

Linux Exploit Suggester (LES) checks the current Linux kernel version and installed packages against a database of known privilege escalation vulnerabilities. It suggests applicable CVEs with links to exploits and PoCs, accelerating local privesc research.

Basic Usage

# Download and run on target
wget https://raw.githubusercontent.com/The-Z-Labs/linux-exploit-suggester/master/linux-exploit-suggester.sh
chmod +x linux-exploit-suggester.sh

Run on current system

./linux-exploit-suggester.sh

Specify kernel version manually

./linux-exploit-suggester.sh --kernel 4.15.0

Check only for highly probable exploits

./linux-exploit-suggester.sh --checksec

Full output with CVE details

./linux-exploit-suggester.sh --full

Output as JSON

./linux-exploit-suggester.sh --json

Options

Skip package checks (faster)

./linux-exploit-suggester.sh --skip-more-checks

Check specific CVE

./linux-exploit-suggester.sh --cve CVE-2021-4034

Set kernel uname output manually

./linux-exploit-suggester.sh --uname "Linux host 5.4.0-42-generic #46-Ubuntu SMP"

Output Interpretation

[+] [CVE-2021-4034] PwnKit
    Details: https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt
    Exposure: probable
    Tags: [ debian=10 ],ubuntu=10|11|12|13|14|15|16|17|18|19|20|21,fedora,manjaro
    Download URL: https://codeload.github.com/berdav/CVE-2021-4034/zip/main
    ext-url: https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.c

Exposure levels:

  • highly probable — kernel version matches, high confidence
  • probable — version matches but may need specific conditions
  • less probable — version is in range but many factors affect exploitability

Common Linux Privesc CVEs

CVENameTarget
CVE-2021-4034PwnKitpkexec on most Linux distros
CVE-2021-3493OverlayFSUbuntu kernel
CVE-2022-0847Dirty PipeLinux 5.8-5.16
CVE-2021-22555Heap out-of-boundsLinux 2.6.19-5.12
CVE-2017-16995eBPF UaFLinux 4.4-4.14
CVE-2016-5195Dirty COWLinux 2.6.22-4.8.3
CVE-2015-1328OverlayFSUbuntu 12.04-15.10
CVE-2010-3904RDSLinux 2.6.30-2.6.36

Combining with Other Tools

# After LES identifies candidates, download and compile:
gcc -o exploit exploit.c
./exploit

# Or use precompiled from exploit-db:
searchsploit -m CVE-2021-4034
./exploit

Check with linpeas first for context

./linpeas.sh | grep -A5 "CVE"

Tips

  • Run both LES and linpeas.sh — they complement each other
  • Always test exploits in a lab environment before a real engagement
  • probable doesn’t mean it will work — kernel patch level matters
  • For package-based privesc (sudo misconfigs, SUID binaries), prefer linpeas
Alternative tools
linux-exploit-suggester-2   # Similar but different CVE database
linpeas.sh                  # Broader enumeration, includes kernel CVEs
BeRoot                      # Python-based privesc checker
unix-privesc-check          # Another Unix privesc checker

# Run multiple for best coverage:
./linux-exploit-suggester.sh
./linpeas.sh | tee linpeas_output.txt
./unix-privesc-check detailed

Vue d’ensemble

Linux Exploit Suggester (LES) vérifie la version du noyau Linux courant et les paquets installés par rapport à une base de données de vulnérabilités d’escalade de privilèges connues. Il suggère les CVE applicables avec des liens vers des exploits et des PoC, accélérant la recherche de privesc local.

Utilisation de base

# Télécharger et lancer sur la cible
wget https://raw.githubusercontent.com/The-Z-Labs/linux-exploit-suggester/master/linux-exploit-suggester.sh
chmod +x linux-exploit-suggester.sh

# Lancer sur le système courant
./linux-exploit-suggester.sh

# Spécifier manuellement la version du noyau
./linux-exploit-suggester.sh --kernel 4.15.0

# Vérifier uniquement les exploits hautement probables
./linux-exploit-suggester.sh --checksec

# Sortie complète avec détails des CVE
./linux-exploit-suggester.sh --full

# Sortie en JSON
./linux-exploit-suggester.sh --json

Options

# Ignorer les vérifications de paquets (plus rapide)
./linux-exploit-suggester.sh --skip-more-checks

# Vérifier une CVE spécifique
./linux-exploit-suggester.sh --cve CVE-2021-4034

# Définir manuellement la sortie uname du noyau
./linux-exploit-suggester.sh --uname "Linux host 5.4.0-42-generic #46-Ubuntu SMP"

Interprétation de la sortie

[+] [CVE-2021-4034] PwnKit
    Details: https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt
    Exposure: probable
    Tags: [ debian=10 ],ubuntu=10|11|12|13|14|15|16|17|18|19|20|21,fedora,manjaro
    Download URL: https://codeload.github.com/berdav/CVE-2021-4034/zip/main
    ext-url: https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.c

Niveaux d’exposition :

  • highly probable : la version du noyau correspond, confiance élevée
  • probable : la version correspond mais des conditions spécifiques peuvent être nécessaires
  • less probable : la version est dans la plage mais de nombreux facteurs affectent l’exploitabilité

CVE de privesc Linux courantes

CVENomCible
CVE-2021-4034PwnKitpkexec sur la plupart des distributions Linux
CVE-2021-3493OverlayFSNoyau Ubuntu
CVE-2022-0847Dirty PipeLinux 5.8-5.16
CVE-2021-22555Heap out-of-boundsLinux 2.6.19-5.12
CVE-2017-16995eBPF UaFLinux 4.4-4.14
CVE-2016-5195Dirty COWLinux 2.6.22-4.8.3
CVE-2015-1328OverlayFSUbuntu 12.04-15.10
CVE-2010-3904RDSLinux 2.6.30-2.6.36

Combinaison avec d’autres outils

# Une fois que LES a identifié des candidats, télécharger et compiler :
gcc -o exploit exploit.c
./exploit

# Ou utiliser une version précompilée depuis exploit-db :
searchsploit -m CVE-2021-4034
./exploit

# Vérifier d'abord avec linpeas pour le contexte
./linpeas.sh | grep -A5 "CVE"

Conseils

  • Lancer à la fois LES et linpeas.sh : ils se complètent
  • Toujours tester les exploits dans un environnement de lab avant un vrai audit
  • probable ne signifie pas que ça va fonctionner : le niveau de patch du noyau compte
  • Pour le privesc basé sur les paquets (mauvaises configs sudo, binaires SUID), préférer linpeas
Outils alternatifs
linux-exploit-suggester-2   # Similar but different CVE database
linpeas.sh                  # Broader enumeration, includes kernel CVEs
BeRoot                      # Python-based privesc checker
unix-privesc-check          # Another Unix privesc checker

# Run multiple for best coverage:
./linux-exploit-suggester.sh
./linpeas.sh | tee linpeas_output.txt
./unix-privesc-check detailed