web-dev-qa-db-fra.com

Comment tester si mon serveur est vulnérable au bogue Shellshock?

Comment puis-je m'assurer que mon installation Bash n'est plus vulnérable au bogue Shellshock après les mises à jour?

80
Giovanni Tirloni

Exportez une variable d'environnement spécialement conçue qui sera évaluée automatiquement par les versions vulnérables de Bash:

$ export testbug='() { :;}; echo VULNERABLE'

Exécutez maintenant un écho simple pour voir si Bash évaluera le code dans $ testbug même si vous n'avez pas utilisé cette variable vous-même:

$ bash -c "echo Hello"
VULNERABLE
Hello

S'il affiche la chaîne "VULNERABLE", la réponse est évidente. Sinon, vous n'avez pas à vous inquiéter et votre version corrigée de Bash est OK.

Veuillez noter que plusieurs correctifs ont été publiés par les principales distributions Linux et parfois ils ne corrigent pas complètement la vulnérabilité. Continuez à vérifier les avis de sécurité et le entrée CVE pour ce bogue.

32
Giovanni Tirloni

Shellshock est pratiquement ne conjonction de plusieurs vulnérabilités de bash , et en ce moment il y a aussi des mal conscients qui exploitent cette vulnérabilité , donc Shellshock peut être un problème qui est toujours ouvert , il y a un fil avec des mises à jour de RedHat sur ces problèmes .

Redhat recommande ce qui suit:

Exécuter la commande:

$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"

Si la sortie est:

$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
bash: error importing function definition for `BASH_FUNC_x'
test

vous n'avez aucune solution.

Si la sortie est:

$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash: error importing function definition for `BASH_FUNC_x()'
test

tu as CVE-2014-6271 réparer

Si votre sortie est:

$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x'
test

vous n'êtes pas vulnérable.

L'autre partie de la vérification Shellshock est la vérification de vulnérabilité CVE-2014-7169 qui garantit que le système est protégé contre le problème de création de fichier. Pour tester si votre version de Bash est vulnérable à CVE-2014-7169, exécutez la commande suivante:

$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
bash: x: line 1: syntax error near unexpected token `='
bash: x: line 1: `'
bash: error importing function definition for `x'
Fri Sep 26 11:49:58 GMT 2014

Si votre système est vulnérable, l'heure et la date s'afficheront et/tmp/echo sera créé.

Si votre système n'est pas vulnérable, vous verrez une sortie similaire à:

$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
date
cat: /tmp/echo: No such file or directory
2
Eduard Florinescu

J'ai écrit un utilitaire CLI appelé ShellShocker pour tester votre serveur Web pour les vulnérabilités sur les scripts CGI. Pour tester votre site, vous devez exécuter:

python shellshocker.py <your-server-address>/<cgi-script-path>

c'est à dire

python shellshocker.py http://example.com/cgi-bin/possibly-vulnerable-script.cgi

EDIT: cet utilitaire a été supprimé, désolé: '(

2
Liam Marshall

Vous pouvez soumettre votre URL CGI à ce test en ligne:

http://Shellshock.iecra.org

1
user245089