Des chercheurs en sécurité de DefenseCode viennent de publier un papier très intéressant pour qui s'intéresse un peu au hacking et au système Unix (Linux, OSX...etc.). Dans ce document, Leon de DefenseCode passe en revue quelques techniques fourbes qui exploitent le symbole '*' (wildcards) combiné à certaines commandes, pour injecter des arguments dans les commandes shells.
Par exemple, si un vilain pirate dépose sur votre serveur un fichier qu'il nomme "-rf'", celui-ci peut être passé en argument à la commande "rm" provoquant pas mal de dégâts. Démonstration :
On voit là un répertoire avec quelques sous-répertoires et fichiers. Le fichier -rf appartient à l'utilisateur nobody. Imaginons maintenant que l'utilisateur root lance maintenant la commande "rm *"
Tout le répertoire a été vidé, y compris les sous-répertoires. En réalité, la commande rm couplée à l'étoile passe en revue chaque fichier et sous répertoire comme ceci :
Vous l'aurez compris, le fichier -rf est alors pris comme un argument, provoquant la suppression des répertoires sans aucun avertissement.
Autre exemple, avec un changement de droits fait à l'insue de l'utilisateur root... Pour cela, l'attaquant a déposé un fichier ".drf.php" et un fichier "--reference=.drf.php" sur le serveur.
Comme vous pouvez le voir, seuls ces 2 fichiers appartiennent à l'attaquant "leon". Maintenant, imaginons sur l'utilisateur root fasse quelques petits changements de droits sur les fichiers en utilisant la fameuse étoile. Il souhaite les attribuer à l'utilisateur "nobody".
Voici le résultat :
Tous les fichiers ont changé de propriétaire... Et ce n'est pas nobody mais leon qui est devenu le proprio de tous les fichiers PHP. Mais quelle est cette sorcellerie ?
Et bien, grâce aux 2 fichiers envoyés, quand la commande chown est passée, elle a pris comme argument "--reference=.drf.php", ce qui veut dire en langage clair : "Utilise le propriétaire du fichier .drf.php comme référence". Cela surcharge le paramètre nobody:nobody spécifié dans la commande lancée en root et fait de leon le propriétaire de tous les autres fichiers php.
Mortel !
Il s'agit là d'un aperçu pour vous montrer un peu ce principe connu depuis les années 80 et toujours possible. Ce document donne d'autres exemples qui sont tout aussi intéressants.
Maintenant vous savez que c'est possible, alors pensez-y la prochaine fois que vous utiliserez l'étoile dans une de vos commandes.
Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :
Aucun commentaire:
Enregistrer un commentaire