¿Cómo inyectar código malicioso ejecutable en PDF, JPEG, MP3, etc.?

44
  1. Quería saber si generalmente es posible inyectar código ejecutable en archivos como archivos PDF o JPEG, etc., o ¿debe haber algún tipo de agujero de seguridad en la aplicación?

  2. Y si es así, ¿cómo se haría eso?

A menudo escucho que las personas se infectan abriendo archivos PDF que contienen códigos maliciosos, por eso pregunto.

    
pregunta JohnnyFromBF 13.10.2011 - 20:59
fuente

4 respuestas

31

Debe haber algún agujero de seguridad en la aplicación.

Piense como cualquier archivo .txt muy simple y común: si lo abre con un visor hexadecimal o con un editor de teclado de texto bien diseñado, solo debería mostrar el contenido del archivo, y está bien.

Luego piense en procesar el archivo, de alguna manera, en lugar de solo mostrar los contenidos. Por ejemplo, leer el archivo e interpretar sus valores. Si no se hace correctamente, esto podría llevar a la ejecución de los bytes que están dentro del archivo.

Por ejemplo: si ha diseñado su aplicación para cargar todo el archivo y mostrarlo, pero de alguna manera tiene una variable dentro de su programa que solo tiene 256 bytes. Esto podría hacer que lea (y escriba en la memoria) más bytes de los que esperaba su aplicación. Y, imagínese, dentro de su aplicación habría cualquier comando para saltar a la posición NNNN en la memoria y ejecutar lo que hay , pero como esa posición de memoria se escribió con datos que su programa no esperaba, entonces usted Ejecutaré un código que no debería estar allí, y se cargó desde su archivo ...

Eso fue un desbordamiento de búfer ataque.

Lo mismo podría suceder con pdf, jpg, mp3, etc., si la aplicación no cargó los datos correctamente.

Otra posibilidad: por cualquier otro motivo, la aplicación (o alguna DLL que carga para leer sus datos) ejecuta alguna parte de los datos, en lugar de leerlos. Si sabe cuál sería el comando (o los datos) que provocaría este comportamiento, coloque esos comandos dentro del archivo de datos (como el archivo pdf) para que la aplicación lo ejecute.

Virus PDF : lea este sitio: enlace para saber un poco acerca de un virus que se propaga utilizando archivos PDF.

    
respondido por el woliveirajr 13.10.2011 - 21:33
fuente
16

Hay dos formas de ejecutar un fragmento de código: intencionalmente y sin intención.

La ejecución intencional es cuando una aplicación lee un archivo y la aplicación hace algo en función de lo que diga el archivo. La lectura del archivo se denomina análisis del archivo.

La ejecución no intencional es cuando el analizador lee algo que no debería, y en lugar de interrumpir, continúa ejecutándose. Esta ejecución involuntaria es una vulnerabilidad porque si puedo hacer que el analizador ejecute algo, es probable que pueda ejecutar algo malicioso.

Para responder a sus preguntas:

  1. ¿Es generalmente posible? Todo depende del formato de archivo y la aplicación que lo lea. Algunos archivos están diseñados para permitir cosas ejecutables, otros no. Algunas aplicaciones permiten que el código se ejecute, otras no. Si la aplicación no lo admite, debe haber una vulnerabilidad presente para ejecutarse.

  2. Todo depende del formato del archivo, pero generalmente encuentra un error en la lógica del analizador de archivos.

respondido por el Steve 13.10.2011 - 21:32
fuente
8

El problema clave con pdf's, documentos de Word, etc. es que los estándares actuales permiten macros y código ejecutable. (En mi opinión, este es un error fatal, pero luego me gusta que los correos electrónicos sean solo de texto ...)

Es la etapa de ejecución de macros que suele ser el objetivo del ataque, ya que proporciona una forma de ejecutar el código. El atacante solo necesita descubrir cómo superar los controles presentes, que pueden ser un desbordamiento de búfer u otro mecanismo de ataque.

    
respondido por el Rory Alsop 13.10.2011 - 22:36
fuente
3

No estoy de acuerdo con la respuesta " Debe haber algún agujero de seguridad en la aplicación "

Generalmente es incorrecto. La mayoría de las violaciones surgen al acceder a archivos (no solo proporcionarlos / tenerlos) y aludir a las personas a creer que acceden a algo diferente de lo que realmente son, por ejemplo, una imagen más grande mientras es un código ejecutable o un enlace con uno (conocido y confiable). ) descripción del sitio mientras se enlaza con otro, con intenciones maliciosas, etc.

Recomendaría leer:

respondido por el Gennady Vanin Геннадий Ванин 02.11.2011 - 08:45
fuente

Lea otras preguntas en las etiquetas