Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: Balanegra en 8 Febrero 2017, 16:57 pm



Título: Codigo malicioso dentro de una imagen
Publicado por: Balanegra en 8 Febrero 2017, 16:57 pm
Tengo la sospecha que han intentado entrar en mi ordenador a traves de un codigo incrustrado en una image. Es la primera vez que me enfrento a estas cosas y quisiera saber:
¿Con que programa puedo ver el codigo de una imagen ?
¿Como puedo sacar el codigo incrustrado de la imagen?
¿Como puedo obtener un descompilador para esto?
¿Con que software actual puedo ver el codigo en hexadecimal  y su traducción al lado?, antes, en la prehstoria de la informatica usaba pctools 4.1 y podia modificar el codigo hex de las aplicaciones en DOS, creo que ha llovido mucho.


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: engel lex en 8 Febrero 2017, 23:29 pm
no creo que haan podido incrustar un virus en una imagen porque las imagenes no son ejecutables, simplemente son archivos que se leen y se muestran

para ver el codigo, tendrías que saber bien la estructura interna del binario de la imaen y verlo con un editor hexadecimal...

a ese nivel no hay "descompilador" hay el lenguaje ensamblador y entender el opcode

que editor, no se, depende del OS


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: Borito30 en 9 Febrero 2017, 15:07 pm
no creo que haan podido incrustar un virus en una imagen porque las imagenes no son ejecutables, simplemente son archivos que se leen y se muestran

para ver el codigo, tendrías que saber bien la estructura interna del binario de la imaen y verlo con un editor hexadecimal...

a ese nivel no hay "descompilador" hay el lenguaje ensamblador y entender el opcode

que editor, no se, depende del OS
en los jpeg es posible :
http://thehackernews.com/2016/10/openjpeg-exploit-hack.html

Por medio de un exploit se puede embeber codigo malicioso pero suele ser errores puntuales no generalizado aunque es cierto que el formato jpeg es más inseguro que jpg.

Lo que si he visto muy a menudo que hay usuarios que pueden meter en hosting de imagenes un php y cuando tu ejecutas el php pensando que es una imagen es codiglo malicioso q estas ejcutando por lo que al final tendr el control de tu ordenador. o incluso si puedes incluir contenido javascript al dominio etc puede intentar tener algo de control por ejemplo sacando informacion o haciendo una peticion al usuario...

si la imagen jpg tiene metadatos  se puede incluir codigo malicioso tambien busca en google y veras.. pero el dilema es como ejecutaras los datos? desde el servidor pero el que se baje la imagen dudo que ejecuten esos datos.

Que me corrija alguien si me equivoco.


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: .:UND3R:. en 9 Febrero 2017, 22:39 pm
en los jpeg es posible :
http://thehackernews.com/2016/10/openjpeg-exploit-hack.html

Por medio de un exploit se puede embeber codigo malicioso pero suele ser errores puntuales no generalizado aunque es cierto que el formato jpeg es más inseguro que jpg.

Lo que si he visto muy a menudo que hay usuarios que pueden meter en hosting de imagenes un php y cuando tu ejecutas el php pensando que es una imagen es codiglo malicioso q estas ejcutando por lo que al final tendr el control de tu ordenador. o incluso si puedes incluir contenido javascript al dominio etc puede intentar tener algo de control por ejemplo sacando informacion o haciendo una peticion al usuario...

si la imagen jpg tiene metadatos  se puede incluir codigo malicioso tambien busca en google y veras.. pero el dilema es como ejecutaras los datos? desde el servidor pero el que se baje la imagen dudo que ejecuten esos datos.

Que me corrija alguien si me equivoco.

En base a lo que has posteado intentaré explicarte la descripción técnica del ataque más menos, en base a este link:

http://www.talosintelligence.com/reports/TALOS-2016-0193/

Existe un formato de lectura de imágenes llamado:

jpeg2000

Este formato es implementado en una librería llamada "OpenJpeg library",
el vector de ataque consiste en la ejecución de la imagen con tal formato, el cual es utilizado en varios lectores PDF (en varios lectores/reader de PDF utilizan la librería OpenJpeg, la cual reitero posee una estructura vulnerable).

Algunos de los lectores PDF afectados son:
- Poppler
- MuPDF
- Pdfium

¿En donde se encuentra el error?
En la función opj_j2k_read_mcc_record, la cual se encuentra en src/lib/openjp2/j2k.c .

Código:
l_mcc_record = l_tcp->m_mcc_records;

    for(i=0;i<l_tcp->m_nb_mcc_records;++i) {
            if (l_mcc_record->m_index == l_indix) {
                    break;
            }
            ++l_mcc_record;
    }

Debo marcharme pero es ahí donde se produce un error en el índice del registro record si es que este no se logra encontrar, logrando generar un desbordamiento del HEAP, el cual conlleva a la ejecución de código arbitrario (reverse shell, troyanos, etc.).

Saludos

EDIT: En resumen el "hackeo" no se produce puntualmente con la imagen, si no la estructura de la imagen, la cual es utilizada por una librería, la cual es utilizada en programas lectores de PDF.


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: integeroverflow en 24 Febrero 2017, 07:10 am
en los jpeg es posible :
http://thehackernews.com/2016/10/openjpeg-exploit-hack.html

Por medio de un exploit se puede embeber codigo malicioso pero suele ser errores puntuales no generalizado aunque es cierto que el formato jpeg es más inseguro que jpg.

Lo que si he visto muy a menudo que hay usuarios que pueden meter en hosting de imagenes un php y cuando tu ejecutas el php pensando que es una imagen es codiglo malicioso q estas ejcutando por lo que al final tendr el control de tu ordenador. o incluso si puedes incluir contenido javascript al dominio etc puede intentar tener algo de control por ejemplo sacando informacion o haciendo una peticion al usuario...

si la imagen jpg tiene metadatos  se puede incluir codigo malicioso tambien busca en google y veras.. pero el dilema es como ejecutaras los datos? desde el servidor pero el que se baje la imagen dudo que ejecuten esos datos.

Que me corrija alguien si me equivoco.

eso no tiene sentido, php se ejecuta del lado del servidor. en todo caso se obtendria acceso al servidor que aloja las imagenes, no a tu pc.



Título: Re: Codigo malicioso dentro de una imagen
Publicado por: Borito30 en 24 Febrero 2017, 20:31 pm
eso no tiene sentido, php se ejecuta del lado del servidor. en todo caso se obtendria acceso al servidor que aloja las imagenes, no a tu pc.


eso no tiene sentido, php se ejecuta del lado del servidor. en todo caso se obtendria acceso al servidor que aloja las imagenes, no a tu pc.


si solo afecta al servidor pero primero el tema va sobre el formato jpeg e intentando darle una respuesta argumente que hay un técnica que es utilizar un php o un javascript para que hacer que se baje algo(obviamente la respuesta apropiada es la que dio under) o instale algo(como pasa actualmente con los pop-ups en android que te sale una alerta de que tienes un virus y te lo bajas(a parte te lo instala lo cual desconozco el método)). Muchos hosting con poca seguridad te permiten insertar codigo php lo que hace que el usuario vea una imagen y luego a lo mejor le salga una alerta como que se tiene que descargar. Cuando decía eso me refería a que existe código malicioso en paginas para que te descargues ficheros y los instales. Imaginate que yo te mando un enlace de una foto tu ves la foto y te sale un pop para que te descargues un fichero y te pongo petardas y tu estas de morbo al final te lo descargas y ejecutas el fichero con el formato que sea alguien caerá digo yo.

(https://i.imgsafe.org/08e7ff0105.png)
Aqui se explica detenidamente otra manera usando stegosploit imagenes codificadas pero al final tiene que ver con un error en el navegador:
https://www.endgame.com/blog/stop-saying-stegosploit-exploit (https://www.endgame.com/blog/stop-saying-stegosploit-exploit)
http://www.welivesecurity.com/la-es/2015/06/02/stegosploit-imagenes-ejecutar-codigo/ (http://www.welivesecurity.com/la-es/2015/06/02/stegosploit-imagenes-ejecutar-codigo/)

Bueno pero decir que jpeg es seguro no estaría tan seguro hace mucho tiempo vale no ahora se descubrió un exploit en la manera en que procesaba las imagenes:
https://technet.microsoft.com/en-us/library/security/ms04-028.aspx

Seguro del todo no lo es. Pero under explico correctamente que no se tratá el error que mencione sobre un error de la imagen en sí sino de un error en una librería que incluye este formato y que utiliza los lectores de pdf y que al abrirlo con uno de esos lectores pues puedes cargar tu payload.

Que jpeg es seguro pues si dice under que si pues vale pero habrá que analizarlo detenidamente, de momento sí lo es. Pero jpg es tremendamente más seguro. Al final los hackers menos experimentados buscan vectores de ataque es decir colartela por otra parte navegador, otros programas , etc.

Y por supuesto es super dificil que con una imagen vayas a poder meter algo y ejecutes algo ya que son datos, como no sea un error gordo como el de 2004.


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: Balanegra en 24 Febrero 2017, 20:41 pm
Respondo a mi petición despues de haber buscado, aunque me falta mucho por averiguar, espero no decir alguna barbaridad. A un jpg, pdf o doc le puedes ofuscar codigo, generalmente javascript , por lo que no suele ser visible cuando editas el fichero y no lo detectan los antivirus. Normalmente cuando lo abres usando el navegador o el corro ya está el codigo insertado funcionando.

Actualmente estoy buscando programas para desofuscar codigo de esa forma puedo intentar leer si hay algún codigo malicioso insertado en un fichero.
He aqui algunas pero busco más:
http://www.hackplayers.com/2016/07/13-herramientas-para-desofuscar-codigo.html

De todas formas, hacer se hace.


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: integeroverflow en 24 Febrero 2017, 22:36 pm
si solo afecta al servidor pero primero el tema va sobre el formato jpeg e intentando darle una respuesta argumente que hay un técnica que es utilizar un php o un javascript para que hacer que se baje algo(obviamente la respuesta apropiada es la que dio under) o instale algo(como pasa actualmente con los pop-ups en android que te sale una alerta de que tienes un virus y te lo bajas(a parte te lo instala lo cual desconozco el método)). Muchos hosting con poca seguridad te permiten insertar codigo php lo que hace que el usuario vea una imagen y luego a lo mejor le salga una alerta como que se tiene que descargar. Cuando decía eso me refería a que existe código malicioso en paginas para que te descargues ficheros y los instales. Imaginate que yo te mando un enlace de una foto tu ves la foto y te sale un pop para que te descargues un fichero y te pongo petardas y tu estas de morbo al final te lo descargas y ejecutas el fichero con el formato que sea alguien caerá digo yo.

(https://i.imgsafe.org/08e7ff0105.png)
Aqui se explica detenidamente otra manera usando stegosploit imagenes codificadas pero al final tiene que ver con un error en el navegador:
https://www.endgame.com/blog/stop-saying-stegosploit-exploit (https://www.endgame.com/blog/stop-saying-stegosploit-exploit)
http://www.welivesecurity.com/la-es/2015/06/02/stegosploit-imagenes-ejecutar-codigo/ (http://www.welivesecurity.com/la-es/2015/06/02/stegosploit-imagenes-ejecutar-codigo/)

Bueno pero decir que jpeg es seguro no estaría tan seguro hace mucho tiempo vale no ahora se descubrió un exploit en la manera en que procesaba las imagenes:
https://technet.microsoft.com/en-us/library/security/ms04-028.aspx

Seguro del todo no lo es. Pero under explico correctamente que no se tratá el error que mencione sobre un error de la imagen en sí sino de un error en una librería que incluye este formato y que utiliza los lectores de pdf y que al abrirlo con uno de esos lectores pues puedes cargar tu payload.

Que jpeg es seguro pues si dice under que si pues vale pero habrá que analizarlo detenidamente, de momento sí lo es. Pero jpg es tremendamente más seguro. Al final los hackers menos experimentados buscan vectores de ataque es decir colartela por otra parte navegador, otros programas , etc.

Y por supuesto es super dificil que con una imagen vayas a poder meter algo y ejecutes algo ya que son datos, como no sea un error gordo como el de 2004.

en ese caso seria pura ingenieria social no? engañar al usuario para que descargue la "imagen" y la ejecute.

sobre lo otro, segun tengo entendido se deberia explotar alguna vulnerabilidad del navegador para poder descargar y ejecutar archivos con js, o de algun otro programa como el ejemplo que diste del pdf.

"Pero under explico correctamente que no se tratá el error que mencione sobre un error de la imagen en sí sino de un error en una librería que incluye este formato y que utiliza los lectores de pdf y que al abrirlo con uno de esos lectores pues puedes cargar tu payload."

me gustaria obtener mas informacion sobre eso, algun link o algo?


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: Borito30 en 24 Febrero 2017, 22:58 pm
Respondo a mi petición despues de haber buscado, aunque me falta mucho por averiguar, espero no decir alguna barbaridad. A un jpg, pdf o doc le puedes ofuscar codigo, generalmente javascript , por lo que no suele ser visible cuando editas el fichero y no lo detectan los antivirus. Normalmente cuando lo abres usando el navegador o el corro ya está el codigo insertado funcionando.

Actualmente estoy buscando programas para desofuscar codigo de esa forma puedo intentar leer si hay algún codigo malicioso insertado en un fichero.
He aqui algunas pero busco más:
http://www.hackplayers.com/2016/07/13-herramientas-para-desofuscar-codigo.html

De todas formas, hacer se hace.
La estanografía no es para nada dañina o peligrosa en el sentido de que puedas insertar código y ejecutarlo más bien se trata de como el navegador controle la ejecución de javascript. En stegosploit que usa la estenografia basicamente ejecuta el codigo por medio de un javascript y un fallo en tu navegador, simplemente codificando no vas a ejecutar nada. No te fies de lo que te encuentres por internet ni mucho menos en youtube ya que hay mucha estafa y nigerianos intentando estafar a gente incredula.


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: XKC en 24 Febrero 2017, 23:43 pm
Lo que si he visto muy a menudo que hay usuarios que pueden meter en hosting de imagenes un php y cuando tu ejecutas el php pensando que es una imagen es codiglo malicioso q estas ejcutando por lo que al final tendr el control de tu ordenador. o incluso si puedes incluir contenido javascript al dominio etc puede intentar tener algo de control por ejemplo sacando informacion o haciendo una peticion al usuario...
Lo que si que se puede hacer es que en servidores que por ejemplo controlan el tipo de ficheros que subes y solo permiten ciertas extensiones(gif, jpg), es teniendo en cuenta la cabecera del formato que quiere subir crear el arcivo, insertar la cabecera y si tienes suerte y el servidor esta mal configurado y solo comprueba la extension o la extension y la cabecera añadir esta y debajo el payload.
Por ejemplo para atacer un server que admita formato gif:
  • Vas a la estructura de GIF http://www.onicos.com/staff/iz/formats/gif.html (http://www.onicos.com/staff/iz/formats/gif.html)
  • Despues desde bash:
  • # echo "GIF87a" > evil.gif
  • # cat meterpreter.php >> evil.gif
  • Subes evil.gif al server
  • Ahora la cosa es indagar por los directorios a ver donde esta tu imagen y si tienes acceso a ella
  • Suponiendo que este en www.dominio.es/uploads/evil.gif
  • # curl www.dominio.es/uploads/evil.gif
  • Se supone que si todo ha ido correcto se ha ejecutado meterpreter.php o lo que hayas subido

La verdad es que todavia no consigo comprender del todo el funcionamiento de este tipo de ataque, si alguien sabe el "por que ejecuta un archivo gif o jpeg o lo que sea" que me lo explique por favor.
Aunque si se que funciona.
Saludos.


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: Borito30 en 25 Febrero 2017, 17:34 pm
Lo que si que se puede hacer es que en servidores que por ejemplo controlan el tipo de ficheros que subes y solo permiten ciertas extensiones(gif, jpg), es teniendo en cuenta la cabecera del formato que quiere subir crear el arcivo, insertar la cabecera y si tienes suerte y el servidor esta mal configurado y solo comprueba la extension o la extension y la cabecera añadir esta y debajo el payload.
Por ejemplo para atacer un server que admita formato gif:
  • Vas a la estructura de GIF http://www.onicos.com/staff/iz/formats/gif.html (http://www.onicos.com/staff/iz/formats/gif.html)
  • Despues desde bash:
  • # echo "GIF87a" > evil.gif
  • # cat meterpreter.php >> evil.gif
  • Subes evil.gif al server
  • Ahora la cosa es indagar por los directorios a ver donde esta tu imagen y si tienes acceso a ella
  • Suponiendo que este en www.dominio.es/uploads/evil.gif
  • # curl www.dominio.es/uploads/evil.gif
  • Se supone que si todo ha ido correcto se ha ejecutado meterpreter.php o lo que hayas subido

La verdad es que todavia no consigo comprender del todo el funcionamiento de este tipo de ataque, si alguien sabe el "por que ejecuta un archivo gif o jpeg o lo que sea" que me lo explique por favor.
Aunque si se que funciona.
Saludos.

aqui se explica más sobre lo que comentastes: https://noob2root.files.wordpress.com/2016/08/pwnlab-ctf.pdf (https://noob2root.files.wordpress.com/2016/08/pwnlab-ctf.pdf)

Pero tu no vas a ser infectado por abrir la imagen tu cargas tu payload en el gif y luego ejecutarlo por medio de una vulnerabilidad en tu navegador.

Si te fijas dice:
 
Citar
The pentester assessed that he may be able to use local file inclusion to execute
the code. After a period with no measurable progress, the pentester decided to review the contents of index.php using the previously discovered LFI vulnerability.
he pentester assessed that a LFI vulnerability may be present in the cookie field. To test this
theory, the pentester enabled the Firefox addon, “TamperData”, which intercepts and modifies
HTTP requests. The pentester navigated to http://ip/ in his browser with
TamperData enabled, and modified the HTTP request
The pentester then received a dump of the /etc/passwd file.
Nice! The pentester had all he needed to receive a remote shell. The pentester entered
metasploit and configured a multi handler to catch the reverse shell.



Aqui se explica sobre el ataque que utiliza el pentester:
https://es.wikipedia.org/wiki/Remote_File_Inclusion (https://es.wikipedia.org/wiki/Remote_File_Inclusion)

De todos modos tu lo que vas a conseguir es tomar el control sobre la pagina web no sobre el cliente, el cliente tiene que ejecutar el código insertado en la imagen.

video sobre el método que mencionastes:
https://www.youtube.com/watch?v=qG9uvGB11cc

Tambien hay que tener en cuenta que el navegador en principio las extensiones si les haces un spoof no las desenmascara por ejemplo(solo el visor de windows y el navegador al descargarlo):
(https://i.imgsafe.org/1b50fbbcaa.png)

Si encontraras un fallo en el navegador para que se ejecutara o en el visor de windows o otro vector de ataque se ejecutaria con exito. O mismamente que tu navegador no controle javascript que es un lenguaje de cliente lo ejecutaras.


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: Borito30 en 26 Febrero 2017, 02:14 am
En definitiva con una imagen poco vas a hacer puedes utilizar algo de ingeniería inversa para que ejecute el código pero dado que los navegadores implementan métodos muchos más seguros es practicamente dificil por no decir imposible.


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: XKC en 26 Febrero 2017, 18:56 pm
Pero tu no vas a ser infectado por abrir la imagen tu cargas tu payload en el gif y luego ejecutarlo por medio de una vulnerabilidad en tu navegador.
Claro, claro, tu lo que haces es ejecutar un codigo php que infecta el servidor y con lo cual ataca a este.
Si quisiseras atacar al cliente yo haria un XSS con BeeF incluyendo este en el index de la web, asi todos los clientes que naveguen seran infectados.
Tambien se podria probar a dejar algun exploit tipo aurora o demas(por si tienes suerte y pillas algun IExplorer).
Saludos.


Título: Re: Codigo malicioso dentro de una imagen
Publicado por: Borito30 en 27 Febrero 2017, 02:20 am
Claro, claro, tu lo que haces es ejecutar un codigo php que infecta el servidor y con lo cual ataca a este.
Si quisiseras atacar al cliente yo haria un XSS con BeeF incluyendo este en el index de la web, asi todos los clientes que naveguen seran infectados.
Tambien se podria probar a dejar algun exploit tipo aurora o demas(por si tienes suerte y pillas algun IExplorer).
Saludos.

puedes meter codigo php en una imagen del siguiente modo:
http://php.net/manual/es/image.examples-png.php (http://php.net/manual/es/image.examples-png.php)

y el php se ejecutará al lado del servidor , con php también puedes hacer un ataque al navegador por medio de un ataque XSS se trata de que el navegador tenga una vulnerabilidad al final el usuario verá perfectamente un .png o .jpeg o .jpeg en el navegador solo que tu ejecutaras el script dentro de esta foto y harás el ataque xss si es vulnerable podrás tomar el control. en cuanto a lo de aurora claro lo suyo es un exploit a tu navegador.

Puedes crear archivos .png que funcionen al lado del cliente usando javascript pero esto te funcionará con explorer con los demás dudo que puedas controlar su maquina con un simple javascript.
http://www.xarg.org/2010/03/generate-client-side-png-files-using-javascript/ (http://www.xarg.org/2010/03/generate-client-side-png-files-using-javascript/)