Saturday, February 13, 2010

Circumventing Antivirus Javascript Detection

Some browser-based exploits using javascript are detected by antivirus engines as they often use special strings that are easy to identify, e.g. ActiveX CLSIDs or "unescape('%u0c0c%u0c0c')".

Quite often, very advanced techniques like changing
already help to get past AV detection.

More general techniques include randomly named variables, xor-encoded strings and so on. They all have in common that they are detectable if the javascript emulation engine is just good enough, as everything needed for detection is still contained in the examined code.

Some time ago, I implemented a new approach which was integrated into the metasploit framework in combination with the msvidctl_mpeg2 exploit. The detection on dropped to zero. Seven months later, it is still undetected. The used encryption was now integrated into the ie_aurora exploit and again the detection dropped to zero.
As zero detection on does not mean that no AV product will catch the exploit in a live environment (the scanners on virustotal will perform mostly static analysis), I tested the aurora exploit against two installed AV products (I'll better not name them) - with encryption, the exploit worked and was not detected anymore.

How it works
As said before, AV detection relies on the fact that the inspected javascript contains everything needed for the exploit. The new implementation also uses an xor-encryption, yet the key is not contained within the script.
The key used by the script is transferred as part of the URL, e.g.
Whereas the javascript executed within the browser can access this part of the url without any problems, many AV products just access the html file stored as temporary file on the disk and therefore cannot access the key - leading to unencryptable javascript code (with the techniques currently used).

Javascript encoder module and integration into the msvidctl_mpeg2 module: 

The patch for the ie_aurora exploit module can be found here:


  1. a similar method is being used with increasing frequency in various 'drive-by download' kits.

    apart from a key in the URL, these often make use of other components outside the reach of an AV product. for example, document.title, or even things like the screen resolution on the host PC.

  2. Interesting method. I didn't use it but i read about it few days ago on There was detailed article about all this things and now i should try it. Thank you for good information.

  3. Surf the Web Safely: With McAfee's unique Site Advisor rates proprietary web sites and alerts you if you are on a site that is high risk.

  4. A few clients trust that why a programmer would hurt them, after they don't appear to be some individual United Nations organization incorporates an appallingly prestigious position inside the Technical exchange. Antivrus

  5. As a side note, you can help your PCs execution also by altering your framework's start-up document by utilizing the 'msconfig' utility to incapacitate any pointless auto begin applications when your PC begins up. norton coupon code


  6. Wow, amazing blog structure! How long have you been running a blog for?
    you make running a blog look easy. The total look of your website is wonderful, as smartly as the content! simply couldn’t leave your
    web site before suggesting that I actually loved the standard information an individual provides to
    your guests? I am gonna be frequenting in order to
    check out new posts.

    Feel free to visit my web blog;

  7. If you need to download a movie from a server that has a great many other users simultaneously requesting large files, even the fastest connections available may make little or no difference. The server needs to divide its available transmission capacity and download management time among that load of connections, thus the speed drops way off. Check Download Speed Test.

  8. we have 8 years experienced team who can fulfil your desire nursing essay help uk requirement.