Linux Privilege Escalation

Antoine LECLERC (krishenk)

Cybersecurity student at ESAIP

CTF Player for Rattat'hack

@krishenk0

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

  1.  Trouver une faille pour exécuter du code dans le kernel
  2. Manipuler les données du kernel
  3. Lancer un shell avec les nouveaux privilèges (root)

Workflow générique d'un exploit de kernel

Kernel exploit

3. Comment faire ?

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 tmux

3. Comment faire ?

Exploiter les applications SUID

find / -perm -u=s -type f 2>/dev/null

3. 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/pkill

3. 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.sh

3. 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-linux

Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie.

Albert Einstein

Thanks :)

Made with Slides.com