Explotando shellshock

1

Al realizar algunas investigaciones sobre la vulnerabilidad de Shell Shock, descubrí que ser capaz de ejecutar el exploit a través de una ubicación remota depende de si el atacante conoce realmente el script cgi exacto que usa a bash como intérprete en el sistema vulnerable. ¿Tengo razón en este entendimiento y esto realmente limita el alcance de esta vulnerabilidad? Además, ¿el atacante tiene que enumerar páginas en el sistema vulnerable para llegar a un script cgi vulnerable o hay otros métodos conocidos?

    
pregunta DaTaBomB 05.10.2014 - 00:00
fuente

1 respuesta

2
  

el script cgi exacto que usa bash como intérprete

"Usar a bash como intérprete" no es una condición previa para la explotación de la familia de vulnerabilidades de bash llamadas "shellshock" (las muchas vulnerabilidades de análisis distintas basado en una variable de entorno con cualquier nombre que comience exactamente con los bytes () { ).

Todo lo que necesita para explotar uno de "shellshock" vuln es ejecutar el programa bash con un valor controlado por el usuario de una variable de entorno; una secuencia de comandos de shell con bash como intérprete de shell ( #!/bin/bash o #!/bin/sh donde /bin/sh es un enlace a bash ) es una forma obvia de ejecutar bash, pero existen muchas otras cuando /bin/sh es bash: muchas funciones las llamadas que ejecutan un programa externo toman un comando de cadena (no una ruta y una matriz de argumentos); notablemente system y popen (a diferencia de la familia de funciones exec* ). Estas funciones que toman una cadena usan el shell predeterminado ( /bin/sh ) para analizar la cadena del comando, por lo que el uso de estas funciones hace que el programa sea vulnerable a las vulnerabilidades de bash, a menos que el entorno se haya eliminado de cualquier entrada del usuario.

Por lo tanto, cualquier programa de C que use estas funciones es potencialmente vulnerable. Y programas escritos en otros lenguajes de programación con funciones similares.

Esto es mucho más programas que solo /bin/bash scripts.

Por supuesto, un programa en C puede exec un archivo ejecutable que sea un script de shell con un intérprete de% co_de, también.

  

script cgi exacto que usa bash

Tenga en cuenta que un "cgi script " puede ser en realidad cualquier programa con la interfaz CGI ; no es necesario que sea un "script" como en shell script . A menudo, los "scripts" CGI se escriben en lenguajes compilados, como C.

  

También, ¿el atacante tiene que enumerar páginas en los vulnerables   sistema

Muchos scripts CGI se encuentran en ubicaciones bien conocidas y fijas, en la mayoría de las instalaciones.

    
respondido por el curiousguy 05.10.2014 - 00:25
fuente

Lea otras preguntas en las etiquetas