Español | English
rss facebook linkedin Twitter

Analizando Javascript ofuscado

Durante el transcurso de los análisis de los exploits generalmente de navegadores, nos encontramos que el código Javascript donde se encuentra el exploit está ofuscado, principalmente para dificultar el trabajo de las personas que nos dedicamos a analizar con detalle qué es lo que se esconde detrás de ese pequeño código.
Un ejemplo es el siguiente:

$sOut="document.write(unescape('%0A%3C%73%63%72%69%70%74%3E%66%75%6E%63%74%69%6F%6E%20%64%46%28%73%29%7B%76%61%72%20%73%31%3D%75%6E%65%73%63%61%70%65%28%73%2E%73%75%62%73%74%72%28%30%2C%73%2E%6C%65%6E%67%74%68%2D%31%29%29%3B%20%76%61%72%20%74%3D%27%27%3B%66%6F%72%28%69%3D%30%3B%69%3C%73%31%2E%6C%65%6E%67%74%68%3B%69%2B%2B%29%74%2B%3D%53%74%72%69%6E%67%2E%66%72%6F%6D%43%68%61%72%43%6F%64%65%28%73%31%2E%63%68%61%72%43%6F%64%65%41%74%28%69%29%2D%73%2E%73%75%62%73%74%72%28%73%2E%6C%65%6E%67%74%68%2D%31%2C%31%29%29%3B%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%75%6E%65%73%63%61%70%65%28%74%29%29%3B%7D%3C%2F%73%63%72%69%70%74%3E')); dF('".encodezTxt($SPL)."');";

Como se puede observar, la interpretación del código es bastante complicada (aunque si participa en el Concurso Internacional de Código C ofuscado seguro que enseguida adivina su función). ¿Qué podemos hacer en estos casos? Tenemos varias opciones:
  1. La que hemos hecho todos la primera vez: sustituir los document.write por alert, pero generalmente se ofusca varias veces seguidas y al final se convierte en un trabajo manual interminable.
  2. Utilizar el intérprete de javascript SpiderMonkey: una solución más elegante pero que require un trabajo anterior. Nuestros compañeros de websense hicieron un par de scripts bastante útiles que pueden ayudarnos a la hora de hacer los nuestros.
  3. Otra opción interesante es hookear la llamada document.write, aunque podemos volver a tener los problemas de tener que realizar luego manualmente un montón de cambios. Un ejemplo de está técnica la podemos encontrar aquí.
Al final, como en todo, no hay ninguna técnica 100% eficaz, e intentamos aunar las ventajas de cada una de ellas para crearnos nuestra propia herramienta, pero que se parece más a la segunda opción que a las otras (aunque todas son parecidas).

2 comentarios:

Anónimo dijo...

Hola, tengo algunos sitios de mis clientes con éste mismo problema, tenes idea cuál es el problema y cómo solucionarlo? Es mi pc? tengo un virus? hay un virus en mi servidor?

Espero tu respuesta,

Atte.
Santiago

S21sec labs dijo...

Hola Santiago,
tiene toda la pinta de que alguién ha entrado en los servidores de tus clientes y les ha inyectado código HTML en su página principal, pero todo es en el servidor, no hay nada malo en tu PC.
Echa un vistazo a nuestro Servicio WebMalware que te puede ser de utilidad.


(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login