¿Cómo puedo asegurarme de que mi instalación de Bash ya no sea vulnerable al error ShellShock después de las actualizaciones?
¿Cómo puedo asegurarme de que mi instalación de Bash ya no sea vulnerable al error ShellShock después de las actualizaciones?
Respuestas:
Para verificar la vulnerabilidad CVE-2014-6271
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
NO debe hacer eco de la palabra vulnerable.
/tmp/echo
que puede eliminar después y que debe eliminar antes de volver a probar)
cd /tmp; env X='() { (a)=>\' bash -c "echo date"; cat echo
debería decir la palabra fecha y luego quejarse con un mensaje como cat: echo: No such file or directory
. Si, en cambio, le dice cuál es la fecha y hora actual, entonces su sistema es vulnerable.
bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186 vulnerable, redir_stack"
NO debería devolver el texto CVE-2014-7186 vulnerable, redir_stack
.
(for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; do echo done ; done) | bash || echo "CVE-2014-7187 vulnerable, word_lineno"
NO debería devolver el texto CVE-2014-7187 vulnerable, word_lineno
.
env HTTP_COOKIE="() { x() { _; }; x() { _; } <<`perl -e '{print "A"x1000}'`; }" bash -c "echo testing CVE-2014-6277"
Un resultado aprobado en este caso es que SÓLO repite el texto testing CVE-2014-6277
. Si ejecuta perl o si se queja de que perl no está instalado, definitivamente es un error. No estoy seguro de ninguna otra característica de falla ya que ya no tengo ningún sistema sin parchear.
env HTTP_COOKIE='() { _; } >_[$($())] { echo hi mom; id; }' bash -c "echo testing CVE-2014-6278"
Un paso para esta prueba es que SOLO debería hacer eco del texto testing CVE-2014-6278
. Si el tuyo hace eco en hi mom
cualquier lugar, eso definitivamente es un fracaso.
foo='() { echo not patched; }' bash -c foo
a esto? Hasta que las exportaciones de funciones se coloquen en un espacio de nombres separado, no dejaremos de correr de un error del analizador al siguiente.
Exporte una variable de entorno especialmente diseñada que las versiones vulnerables de Bash evaluarán automáticamente:
$ export testbug='() { :;}; echo VULNERABLE'
Ahora ejecute un eco simple para ver si Bash evaluará el código en $ testbug aunque no haya utilizado esa variable usted mismo:
$ bash -c "echo Hello"
VULNERABLE
Hello
Si muestra la cadena "VULNERABLE", la respuesta es obvia. De lo contrario, no necesita preocuparse y su versión parcheada de Bash está bien.
Tenga en cuenta que las principales distribuciones de Linux han lanzado varios parches y, a veces, no corrigen la vulnerabilidad por completo. Siga revisando los avisos de seguridad y la entrada CVE para este error.
export
):env testbug='() { :;}; echo VULNERABLE' bash -c "echo Hello"
ShellShock es prácticamente una conjunción de más de una vulnerabilidad de bash , y en este momento también hay malware que explota esta vulnerabilidad , por lo que ShellShock puede ser un problema que todavía está abierto, hay un hilo con actualizaciones de RedHat sobre estos problemas .
Redhat recomienda lo siguiente:
Ejecutar comando:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
Si la salida es:
$ 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
No tienes ninguna solución.
Si la salida es:
$ 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
tienes CVE-2014-6271
arreglo
Si su salida es:
$ 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
No eres vulnerable.
La otra parte de la comprobación de ShellShock es la comprobación de vulnerabilidad CVE-2014-7169 que garantiza que el sistema esté protegido contra el problema de creación de archivos. Para probar si su versión de Bash es vulnerable a CVE-2014-7169, ejecute el siguiente comando:
$ 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 su sistema es vulnerable, se mostrarán la hora y la fecha y se creará / tmp / echo.
Si su sistema no es vulnerable, verá resultados similares a:
$ 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
Escribí una utilidad CLI llamada ShellShocker para probar su servidor web en busca de vulnerabilidades en los scripts CGI. Para probar su sitio, debe ejecutar:
python shellshocker.py <your-server-address>/<cgi-script-path>
es decir
python shellshocker.py http://example.com/cgi-bin/possibly-vulnerable-script.cgi
EDITAR: esta utilidad ha sido retirada, lo siento: '(
Puede enviar su URL CGI a esta prueba en línea:
escriba env x = '() {:;}; echo vulnerable 'bash -c "echo esto es una prueba" y si esto devuelve vulnerable y esta es una prueba significa que su máquina OSX / Linux está afectada. El remedio es actualizar a la última versión de bash.