Aujourd'hui on s'attaque au challenge "Shellshock" de pwnable.kr.

Oui c'est un classique, mais il faut bien le maîtriser.

ShellShock c'est quoi ?

Une vulnérabilité présente dans le Bash. Rendue publique le 24 Septembre 2014 (CVE-2014-6271).
Qui permet avec une simple ligne de Bash d'exécuter n'importe quelle commande.

Mais quel intérêt ?

En ayant accès au bash, on peut faire dévier l'exécution du script vers des commandes qui nous intéressent (c'est le principe de ce challenge).

Dans un script accessible depuis internet on peut modifier l'exécution du dit script, pour exécuter n'importe quelle commande sur le serveur...

Pour ce défi, nous devons exploiter le programme shellshock pour ouvrir le fichier flag.

Exploration de l’environnement

Qu'est-ce qu'on a notre disposition ?

  • Un binaire bash (surement vulnérable à shellshock)
  • Un flag (le fichier qu'on va tenter de lire en ayant le role shellshock_pwn)
  • Un binaire shellshock avec un SUID byte qui permet d'avoir le role shellshock_pwn
  • Une version non compilée du binaire shellshock
Ce code exécute bien la version de bash que l'on suppose faillible à la vulnérabilité ShellShock

Exploitation de ShellShock

Pour exploiter la faille Shellshock on va d'abord exporter une variable d'environnement qui contiendra de quoi déclencher la faille, suivit de la commande qui nous intéresse.
A l'exécution le programme bash va lire toutes les variables d'environnement et exécuter le code contenu dans la variable d’environnement qu'on vient de mettre en place.

Social et Media

Comme toujours je suis disponible sur Twitter et cie, si vous avez des questions, des remarques, des suggestions etc. N’hésitez pas !

Twitter: @GhostAgs

Discord: hackraw