Page 1 sur 1

[Shellshock] Faille dans Bash - Besoin de préciser (Résolu)

Publié : sam. 27 sept. 2014, 19:23
par waitnsea
Bonsoir,
Tout le monde a appris la faille de bash, et testé différentes commandes :

Code : Tout sélectionner

env x="() {:;} echo shellshock" / bin / sh-c "echo terminé"
qui renvoie un refus de permission

01net.com propose :

Code : Tout sélectionner

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
qui ne retourne pas le "vulnérable" signant la vulnérabilité

Voilà QuebecOS qui apporte sa touche :

Code : Tout sélectionner

    env x=’() { :;}; echo vulnerable’ bash -c « echo this is a test »
Le système est vulnérable si le résultat est:
    vulnerable / this is a test.
Sous zsh, j'obtiens :

Code : Tout sélectionner

asus% env x=’() { :;}; echo vulnerable’ bash -c « echo this is a test »
vulnerable’ bash -c « echo this is a test »
Indice de vulnérabilité ? Bizarre...
Si je passe en bash :

Code : Tout sélectionner

asus% bash
[waitnsea@asus ~]$ env x=’() { :;}; echo vulnerable’ bash -c « echo this is a test »
bash: erreur de syntaxe près du symbole inattendu « ( »
Q_OS s'emmêle ?

Re: [Shellshock] Faille dans Bash - Besoin de préciser

Publié : sam. 27 sept. 2014, 19:38
par benjarobin
Il y a 2 tests à réaliser :

Code : Tout sélectionner

env X='() { (a)=>\' `which bash` -c "echo date"; cat echo; rm -f echo
env X="() { :;} ; echo shellshock" `which bash` -c "echo completed"
Si le premier affiche la date, c'est qu'il y a une faille dans bash
Si le second test affiche le texte shellshock, c'est qu'il y a une faille dans bash

Pour information zsh n'est pas vulnérable aux 2 failles, mais comme bash est utilisé pour tous les scripts cela ne change rien
Pour tester zsh :

Code : Tout sélectionner

env X='() { (a)=>\' `which zsh` -c "echo date"; cat echo; rm -f echo
env X="() { :;} ; echo shellshock" `which zsh` -c "echo completed"

Re: [Shellshock] Faille dans Bash - Besoin de préciser

Publié : sam. 27 sept. 2014, 20:17
par waitnsea
Merci benjarobin,
Précis et définitif... :bravo:

Re: [Shellshock] Faille dans Bash - Besoin de préciser

Publié : dim. 05 oct. 2014, 18:46
par waitnsea
benjarobin a écrit :Pour information zsh n'est pas vulnérable aux 2 failles, mais comme bash est utilisé pour tous les scripts cela ne change rien
Je remonte ce post: QuebecOS signale que Fedora remplacera le shell par défaut par dash voir ceci

ZSH offre bien plus de fonctionnalités, mais pour l'éxécution des scripts, ce shell léger et rapide semble très approprié.

Un moyen simple (lien ?) de configurer le système vers lui plutôt que bash ?

Re: [Shellshock] Faille dans Bash - Besoin de préciser (Réso

Publié : dim. 05 oct. 2014, 18:53
par benjarobin
Au début de tes script tu as ceci :

Code : Tout sélectionner

#!/bin/bash
ou

Code : Tout sélectionner

#!/bin/sh
Ce qui indique quel exécutable va être utilisé pour interpréter la suite du fichier. Donc l'exécutable /bin/bash ou /bin/sh (qui est un lien vers /bin/bash) est lancé.

L'astuce est de créer un paquet ayant comme dépendance dash et fournissant comme dépendance bash (et qui remplace donc bash, ce dernier ne sera donc plus installé sur le système)
Dans le paquet créé il faut ajouter 2 liens symbolique (en faites ce sera son seul contenu) : /bin/bash et /bin/sh qui pointent vers /bin/dash
Donc oui c'est techniquement possible, mais je n'ai aucune idée des conséquences.

Re: [Shellshock] Faille dans Bash - Besoin de préciser (Réso

Publié : dim. 05 oct. 2014, 20:04
par waitnsea
Merci,

Code : Tout sélectionner

asus% sudo mv bash bkpbash
asus% sudo ln -s /usr/bin/dash /usr/bin/bash
Bien sûr, dash est installé...
Je lance une installation par Octopi (fenêtre du shell /bin/sh) tout se passe parfaitement.
À tester plus longuement.


EDIT hélas :

Code : Tout sélectionner

packer -Syu
renvoie

Code : Tout sélectionner

asus% packer -Syu
/usr/bin/packer: 16: /usr/bin/packer: [[: not found
/usr/bin/packer: 30: /usr/bin/packer: [[: not found
/usr/bin/packer: 96: /usr/bin/packer: Syntax error: redirection unexpected
alors que :

Code : Tout sélectionner

asus% locate packer
/usr/bin/packer
Machine arrière, un gros boulot à faire, rien de simple apparemment.