Jump to content

Troyano Prestashop 1.7


Presta_Fede

Recommended Posts

Buenas a todos.

Gestiono un ecommerce en Prestashop 1.7.

De la noche a la mañana apareció un método de pago inyectado por javascript que es imposible de localizar. Hemos buscado todo el equipo con todo lo que hemos podido y se nos ha ocurrido para averiguar dónde se encuentra el fragmento de código que lo muestra o donde se haya el script que lo inyecta. También hemos revisado posibles agujeros de seguridad en módulos y temas, pero nada. Hemos buscado las cadenas del código que vemos en la consola en todos los archivos del sitio, por SSH, en la DB, rebuscado en todos los módulos por carpetas phpUnit, cambiado permisos y contraseñas y hasta hemos actualizado de la V1.7.6 a la V1.7.8 pero nada... Hemos conseguido mitigar el impacto reemplazando las carpetas "controllers" y "classes" por las de una instalación original y desaparece, pero a los 3-4 días vuelve a aparecer y aunque en que lo hace podemos volver a reemplazar dichas carpetas y desaparece, no es una opción viable de mantenimiento...

Hemos revisado los logs de Prestashop, los del servidor de peticiones http, SSH e incluso de la DB, pero no ha habido suerte y ya llevamos mas de 3 meses así. Además que el atacante ya habrá dejado la semilla hace mas de 6 meses para que las copias de seguridad contengan el nicho.

Agradecería ayuda e ideas que no sean: Instalación nueva e importación de datos

Gracias de antemano! Adjunto captura donde se ve como es y como sale en consola el código js

 

 

troyano-prestashop.png

Link to comment
Share on other sites

10 hours ago, Nickz said:

La forma más segura es rehacer la tienda.

Si quieres sacarlo la entrada del torjano esta abierto todavia. Checquee el access log para saber de donde viene.

Gracias por la info. El access log ya está mas que chequeado y no se ve nada sospechoso. Se han revisado todos los accesos y no hay movimientos, por lo tanto es un código que se dispara mediante una cookie con un contador parece ser por lo que hemos visto en el codigo js. Además queremos evitar rehacer la tienda de nuevo puesto que el cliente la tiene en producción y se usa bastante. Es una fuente real de ingresos, no es un ecommerce mas.

Link to comment
Share on other sites

1 hour ago, ComGrafPL said:

Muchas gracias por la respuesta. Este hilo que comentas y varios mas similares son los que ya hemos mirado con anterioridad y gracias a uno de ellos averiguamos lo de las carpetas "classes" y "controllers", pero el hack vuelve a aparecer al tiempo... No hay mas soluciones en estos hilos que hayamos visto hasta la fecha.

Link to comment
Share on other sites

13 hours ago, Presta_Fede said:

Buenas a todos.

Gestiono un ecommerce en Prestashop 1.7.

De la noche a la mañana apareció un método de pago inyectado por javascript que es imposible de localizar. Hemos buscado todo el equipo con todo lo que hemos podido y se nos ha ocurrido para averiguar dónde se encuentra el fragmento de código que lo muestra o donde se haya el script que lo inyecta. También hemos revisado posibles agujeros de seguridad en módulos y temas, pero nada. Hemos buscado las cadenas del código que vemos en la consola en todos los archivos del sitio, por SSH, en la DB, rebuscado en todos los módulos por carpetas phpUnit, cambiado permisos y contraseñas y hasta hemos actualizado de la V1.7.6 a la V1.7.8 pero nada... Hemos conseguido mitigar el impacto reemplazando las carpetas "controllers" y "classes" por las de una instalación original y desaparece, pero a los 3-4 días vuelve a aparecer y aunque en que lo hace podemos volver a reemplazar dichas carpetas y desaparece, no es una opción viable de mantenimiento...

Hemos revisado los logs de Prestashop, los del servidor de peticiones http, SSH e incluso de la DB, pero no ha habido suerte y ya llevamos mas de 3 meses así. Además que el atacante ya habrá dejado la semilla hace mas de 6 meses para que las copias de seguridad contengan el nicho.

Agradecería ayuda e ideas que no sean: Instalación nueva e importación de datos

Gracias de antemano! Adjunto captura donde se ve como es y como sale en consola el código js

 

 

troyano-prestashop.png

Olá Presta

A mi me pasó lo mismo en otras plataformas.

el archivo infectado es:

vendor/composer/auto_real.php

normalmente es pequeño....2.200 kb....quando é infectado obviamente es mas grande.

Tienes que eliminar el código cifrado al principio...o carregar o file original!..

 

pero encontré otro archivo shipping_default  cargado dentro de un módulo.

 

espero que lo soluciones

sorry for my bad Spanish!!

Fabrizio

 

 

 

Link to comment
Share on other sites

4 hours ago, Presta_Fede said:

No hay mas soluciones en estos hilos que hayamos visto hasta la fecha.

Aca esta tu solución: Rehacer la tienda.

14 hours ago, Nickz said:

La forma más segura es rehacer la tienda.

Si quieres sacarlo la entrada del torjano esta abierto todavia. Chequee el access log para saber de donde viene.

 

Link to comment
Share on other sites

8 hours ago, ExpertoPrestaShop said:

Ya lleva un tiempo saliendo recurrentemente este ataque en varias tiendas. Aquí tienes una guia de qué se debe revisar y como hacerlo. Suerte.

 

 

Muchas gracias! Veo que es lo mismo que nos pasa exactamente a nosotros, pero la diferencia es que como hemos restaurado versiones varias veces nos es imposible detectar el archivo infectado actualmente... Sabrías como solucionarlo o donde suele estar este mismo hack? Es decir, si lo enseñas en el vídeo es que lo has debido de limpiar ya, no? De donde viene? Agradeceríamos mucho tu ayuda.

Link to comment
Share on other sites

10 hours ago, Fabry said:

Olá Presta

A mi me pasó lo mismo en otras plataformas.

el archivo infectado es:

vendor/composer/auto_real.php

normalmente es pequeño....2.200 kb....quando é infectado obviamente es mas grande.

Tienes que eliminar el código cifrado al principio...o carregar o file original!..

 

pero encontré otro archivo shipping_default  cargado dentro de un módulo.

 

espero que lo soluciones

sorry for my bad Spanish!!

Fabrizio

 

 

 

Muchas gracias, pero en nuestro caso este archivo que comentas está correcto como en una instalación limpia. Lo hemos comprobado ya y no hay scripts ni nada raro en el.

Link to comment
Share on other sites

4 minutes ago, Presta_Fede said:

Muchas gracias! Veo que es lo mismo que nos pasa exactamente a nosotros, pero la diferencia es que como hemos restaurado versiones varias veces nos es imposible detectar el archivo infectado actualmente... Sabrías como solucionarlo o donde suele estar este mismo hack? Es decir, si lo enseñas en el vídeo es que lo has debido de limpiar ya, no? De donde viene? Agradeceríamos mucho tu ayuda.

Uno de los archivos infestados es el FrontController.php pero haciendo lo que se explica en el video puedes ver todos los archivos del core que han sido modificados, incluido ese que te comento. También afecta otros archivos como el AdminController.php y de ahí se roban todas las contraseñas de los empleados que acceden al backoffice.

Link to comment
Share on other sites

hace 9 horas, Presta_Fede dijo:

Probado y nada, sigue ahí.

Mirando las imagenes que has puesto veo que no tienes el modulo de onepage, habia una versión vieja vulnerable....

Por lo que dices la infección modifica los ficheros de controllers y classes, podrias mirar cuales son, verificando tamaños .

He visto en alguna web que el fichero infectado era una imagen, un jpg en la carpeta de /img/ dentro tenia codigo javascript incrustado.

Yo buscaria en imagenes

Link to comment
Share on other sites

Hola @Presta_Fede

Además de todo lo ya aconsejado por los expertos del foro, te cuento lo que yo haría. Aunque depende mucho de la capacidad que tengas para modificar el sistema. En mi caso uso linux y tengo acceso de superusuario.

Lo primero es descargarte a local una copia de la tienda infectada.

Después, eliminar el código malicioso copiando como haces las carpetas de classes y controllers.

Hecho esto, cambiaría el propietario de esos ficheros a root (chown root. *.php)y pondría los permisos de solo lectura para todos los demás usuarios (chmod 644 ) de forma que nadie pueda reescribirlos (porque si aun así pueden tu problema es mucho mas grave de lo que parece). Comprobaría entonces si la infección no reaparece.

Finalmente en local, usando una herramienta de comprobación de diferencias (yo en mi caso en windows utilizo winmerge https://winmerge.org/  que os permite hacer control de diferencias de arboles de carpetas enteros) compararía con la versión de prestashop original para así localizar los posibles ficheros infectados.

Me pregunto si también podrías escribir directamente a los desarrolladores de Prestashop exponiendo tu caso y adjuntando los archivos infectados que encuentres para que puedan investigar y, si es una vulnerabilidad del producto, parchearla.

Para comprobar si tienes código en algún archivo de imagen puedes usar el comando file. Por ejemplo, si lo ejecuto en la carpeta img de mi tienda me sale:

#file *.gif 
404.gif:              GIF image data, version 87a, 125 x 125
loader.gif:           GIF image data, version 89a, 24 x 24
loadingAnimation.gif: GIF image data, version 89a, 208 x 13
...

Si el fichero es un php te lo va a mostrar:

#file index.php
index.php: PHP script, ASCII text

da igual la extensión

# cp index.php index.gif
# file index.gif
index.gif: PHP script, ASCII text

Espero que te ayude.

Suerte.

 

 

Link to comment
Share on other sites

  • 1 month later...

Hasta el momento sigue el problema...

No hay manera de solucionarlo mas que con el reemplazo de las carpetas "controllers" y "classes" pero a los pocos días de hacerlo vuelve a aparecer d enuevo.

El cliente ha aceptado rehacer la página en la última versión de Prestashop, con lo cual esto se resolverá, pero siempre me quedará la espinita de como narices solucionar esto... Si alguien quiere aportar algo mas o en este tiempo ha descubierto algo, agradecería su ayuda por si en un futuro esto volviera a pasar o por si alguien tiene el mismo problema y pudiera consultar aquí la solución.

He probado todo lo que habéis dicho hasta la fecha y nada de nada....

Link to comment
Share on other sites

hace 9 horas, Presta_Fede dijo:

Hasta el momento sigue el problema...

No hay manera de solucionarlo mas que con el reemplazo de las carpetas "controllers" y "classes" pero a los pocos días de hacerlo vuelve a aparecer d enuevo.

El cliente ha aceptado rehacer la página en la última versión de Prestashop, con lo cual esto se resolverá, pero siempre me quedará la espinita de como narices solucionar esto... Si alguien quiere aportar algo mas o en este tiempo ha descubierto algo, agradecería su ayuda por si en un futuro esto volviera a pasar o por si alguien tiene el mismo problema y pudiera consultar aquí la solución.

He probado todo lo que habéis dicho hasta la fecha y nada de nada....

No solo hay que reemplazar esas carpetas, tambien mirar si la infección esta en las imagenes, lo he visto un jpg infectado

Que versión tienes ahora?

Link to comment
Share on other sites

13 hours ago, Presta_Fede said:

He probado todo lo que habéis dicho hasta la fecha y nada de nada....

¿Cuántos productos tienes? 
Haga una tienda nueva, es lo más seguro.

Saca los archivos todos de la Tienda como respaldo, Base de datos.
Imágenes de los productos, aprovecha y ponles nuevas.

Una vez tienes la nueva y se re-afecta es posible que tu hosting te infecte? Hay hosting que tienen una seguridad interna bastante insolída. 

Link to comment
Share on other sites

  • 1 month later...

Hola @Presta_Fede,

Realizan ataques XSS para incluir los archivos y sus modificaciones. Eso se debe a campos que no limpian correctamente.

Para localizar el archivo responsable en los controllers que os modifican se soluciona al restablecer porque hay una línea donde llaman literalmente el archivo que inyecta el método de pago. Suelen ser archivos .png alojados en la carpeta img u ocasionalmente lo he encontrado en carpetas de jquery. Tienen nombres autogenerados como este: 5GGGz_.png. El archivo infectado se encuentra ofuscado en base_encode64. Suelen modificar más cosas en los controllers que afectan a la privacidad e incluso he llegado a encontrar que permiten la recolección de información que se manda a tres direcciones ip de china, también "ofuscado". El archivo suele pesar 449,9kb y solo contiene la parte incrustada en el método de pago.

O Bien leéis bien cuando recibáis el ataque en los controllers para encontrar el nombre del archivo o también podéis buscar por este string: PHNjcmlwdD52YXIgXzB4NWFhNT1bIlx4NjJceDZFXHg3MFx4NkRceDY1XHg3Mlx4NjNceDYxXHg2RVx4NjVceDc0XHg2M1x4NzdceDVGXHg

Es un fragmento de lo que encontrarás al abrirlo. En cuyo caso no va a detener que lo reviséis manualmente.

Un saludo

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...