Linux Privilege Escalation

Antoine LECLERC (krishenk)

1. Introduction
2. Horizontale vs Verticale
3. Comment faire ?
4. Puis après ?
1. Introduction
Élévation de privilège c'est quoi ?
Une élévation des privilèges est, en informatique, un mécanisme permettant à un utilisateur d'obtenir des privilèges supérieurs à ceux qu'il a normalement.
Wikipedia
1. Arborescence
Pourquoi ?
Les privilèges élevés peuvent servir à :
- Altérer les fichiers du systèmes
- Récupérer des fichiers privées
- Installer les logiciels malveillants
- Avoir le contrôle totale de la machine
- Permettre de créer un accès permanant
- ...

1. Arborescence
Quand ?

2. Horizontale vs Verticale
Horizontal (HPE)

Attaquant essais d'accéder à des ressources d'autres utilisateurs
2. Horizontale vs Verticale
Verticale (VPE)

Attaquant essaie de changer ses privilèges vers un compte avec plus d'accès (courant)
2. Horizontale vs Verticale
Résumé

Kernel exploit
3. Comment faire ?
Programmes qui joue avec les vulnérabilités kernel pour exécuter du code avec des permissions élevés
- Trouver une faille pour exécuter du code dans le kernel
- Manipuler les données du kernel
- Lancer un shell avec les nouveaux privilèges (root)
Workflow générique d'un exploit de kernel
Kernel exploit
3. Comment faire ?
- Autant d'exploit que de kernel et d'OS différent
- DirtyCow (CVE-2016-5195)
- https://github.com/xairy/linux-kernel-exploitation

Exploiter les services root
- Aucun service ne doit être lancé avec les privilèges admin sauf si nécessaire
- TMUX (Session hijacking)
ps aux
ps aux | grep tmux3. Comment faire ?
Exploiter les applications SUID
find / -perm -u=s -type f 2>/dev/null3. Comment faire ?
- SUID exécute le fichier avec les ID du propriétaires
- Certaines commande peuvent faire spawn un shell
- GTFOBins
Exploiter sudo
sudo permet d'exécuter une commande avec les identités de quelqu'un d'autre (souvent root)
## User privilege specification
root ALL=(ALL:ALL) ALL
user1 host1=(root) /usr/sbin/shutdown
user3 ALL=(user4,user5) /bin/kill,/bin/pkill3. Comment faire ?
Exploiter crontab
Les cron jobs permettent d'exécuter une commande tous les X temps
crontab -l
ls -al /etc/cron* /etc/at*
cat /etc/cron* /etc/at* /etc/anacrontab /var/spool/cron/crontabs/root 2>/dev/null | grep -v "^#"3. Comment faire ?
- Mauvaise configuration
- Généralement exécuter avec les privilèges root
Exploiter crontab
PATH=/home/user:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * root overwrite.sh3. Comment faire ?
- Le système va regarder les exécutables à partir du PATH spécifié dans le
/etc/crontab - Si le PATH indiqué est vulnérable = root
Exploiter PKexec
3. Comment faire ?
- pkexec permet à un utilisateur de lancer des commandes en tant qu’un autre utilisateur.
- CVE-2021-4034 alias PwnKit
- https://github.com/ly4k/PwnKit

Outils
3. Comment faire ?
4. Puis après ?
La suite

- Maintenir l'accès
- Créer des backdoors
- Effacer les traces
- Privesc sur Windows
Maintenant à vous de
jouer !
docker run -it krishenk/privesc-linuxPose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie.
Albert Einstein
Thanks :)
Privilege escalation Linux
By KrishenK
Privilege escalation Linux
- 92