January 14, 2015

Happy Nucl(y)ear - Evolution of an Exploit Kit

Abel Toro Security Researcher

This blog post discusses how Nuclear Pack, one of the most popular exploit kits, has evolved, and highlights the constant, ongoing arms race between attackers and defenders.

While Nuclear Pack is not the most sophisticated exploit kit--that dubious distinction going to Angler, which we will write about in an upcoming post--it is highly effective. It has been used in such high-impact campaigns as the AskMen compromise, and used by the APT group behind Operation Windigo. Nuclear Pack has a wide range of attacks in its repertoire, including Flash, Silverlight, PDF, and Internet Explorer exploits, and it is capable of dropping any malware. Furthermore, Nuclear Pack is constantly being improved by its creators to avoid detection and achieve higher infection rates.

Exploit kits are a main source of compromises today; they are one of the primary vehicles for both 0-day and widely effective, known vulnerabilities, offering a free pass to drop active malicious content (such as the banking trojan, Zeus) that embeds on the system giving cyberciminals a way into internal networks and ultimately leads to data exfiltration. Last year Websense has detected and blocked more than 66 million threats specifically with exploit kits, plus over 1 billion catches of later-stages, such as dropper file, C&C traffic (Call Home stage) that are commonly attributable to new exploit kit activity. In essence, exploit kits are complete, off-the-shelf solutions that cybercriminals can buy to compromise systems by exploiting various software vulnerabilities on the victim's system. In addition, these kits are equipped to defeat IDS and Anti-Virus solutions in order to avoid detection, the main technique they use to achieve this is through using code obfuscation, which is used to hide the true nature of the malicious code. Exploit kits constantly change and improve in order to keep up with various security solutions and the new version of NuclearPack is the next stage of exploit kit evolution.


Nuclear Pack affects virtually all industries, as it is very often used in high-volume compromises. In addition, the number of exploit attempts varies highly based on the traffic volume of the compromised website, as shown in the charts below.

Affected Industries:


Nuclear Pack trend activity over time:

Nuclear Pack

High Level Overview of Nuclear Pack infections

Nuclear Pack follows the traditional kill chain and maps directly to the 7 Stages of Advanced Threats. Websense customers are protected from this threat with ACE, our Advanced Classification Engine, at the following stages:

  • Stage 2 (Lure) - ACE has detection for the compromised websites.
  • Stage 3 (Redirect) - ACE has detection for the injected code that redirects the user to the exploit page.
  • Stage 4 (Exploit Kit) - ACE has detection for the malicious code that attempts to execute this cyber attack.
  • Stage 5 (Dropper Files) - ACE has detection for the binary files associated with this attack.

The picture below shows all stages, from the first HTTP transaction with the compromised website. It is worth noting that the original version of Nuclear Pack was seen to use predictable URL patterns. In the new version of Nuclear Pack, the redirect URLs and methods are highly random, making the redirect stage much more difficult to detect.

Nuclear Pack infection chain:

Nuclear Pack


As with other exploit kits, Nuclear Pack uses various obfuscation techniques to avoid detection by IDS and anti-virus solutions. In order to detect and protect against this threat, it is crucial to understand and identify the obfuscation techniques that are unique to this exploit kit.

After cleaning up the landing page so that it is properly structured, we are still left with highly obfuscated JavaScript code.

Cleaned up Landing Page (part I):


Cleaned up Landing Page (part II):

Landing Page

Investigating the structure of the obfuscated code reveals that it actually consists of only a few parts:

  1. Some helper routines for deobfuscation
  2. Obfuscated content (uses decimal format to store the plugin detect and actual exploit part of the exploit kit)
  3. Deobfuscation routines
  4. The actual deobfuscation
  5. Running the deobfuscated JavaScript

How Nuclear Pack deobfuscation works


In essence the landing page just takes the obfuscated content, deobfuscates it, and then runs it.

One of the most unique Nuclear Pack obfuscation techniques is the use of the background color as means to obfuscate and deobfuscate certain functionality.  The original version of Nuclear Pack always sets the background color of the page to an arbitrary color. Later, the variable document.bgcolor is used to deobfuscate a number of functions, which were obfuscated with hexadecimal HTML color values.

Unique obfuscation method: <body bgcolor="#333399"> is used in the example below


Deobfuscated Content

Once the exploit kit is deobfuscated, the true functionality of the exploit kit is revealed. The deobfuscated code has four parts, and they are executed in the following order:

  1. Plugin Detect
  2. XMLDOM Information Disclosure exploit to determine whether anti-virus is running on the system
  3. Checking whether victim has vulnerable plugin version
  4. Launching appropriate exploit(s)

Nuclear Pack uses the popular PluginDetect library to fingerprint the victim. As you can see, the creators were using the latest version.



Nuclear Pack uses CVE-2013-7331 XMLDOM ActiveX control vulnerability to enumerate anti-virus software on the target system. Note that the vulnerability only affects Internet Explorer users. The use of this exploit to fingerprint the victim’s machine for anti-virus software is not unique to Nuclear Pack. It is increasingly being adopted by more and more exploit kits (including Angler and RIG). If a specific (hardcoded) anti-virus solution is detected, the infection attempt is aborted in order to avoid possible detection.

Anti-Virus Detection:

AV Check

Before launching the actual exploits, Nuclear Pack runs a check to see whether the victim has vulnerable plugin versions. As you can see below, Nuclear Pack also checks for vulnerable Java versions. That functionality is just a placeholder, however; it doesn't seem to use any Java exploits.

Vulnerable Plugin Check:

Plugin Chekc

Finally, based on the results of the previous check, the exploit kit runs the appropriate exploit or exploits.

Launching Exploits


New version of Nuclear Pack 

During December, a new version of Nuclear Pack emerged. While it has only been used on a low scale at this point, it is very likely that this new version will completely replace the old version. As with any new software release, the new version of Nuclear Pack has new features and various improvements. 

The biggest difference between the new version and its predecessor is that it uses completely different obfuscation techniques to hide malicious code from security products. 

Landing page using the new obfuscation


In addition to the complete overhaul of it's obfuscation methods, Nuclear Pack now uses a rudimentary second-layer obfuscation. In other words, there is another layer of obfuscation. It is very basic, even human-readable, but probably useful against security products that can only deal with one layer of obfuscation. To increase infection rates even further, Nuclear Pack has detection for more anti-virus products.

Second layer obfuscation and AV detection:


In the past, NuclearPack also used to use simple URL patterns specific to only this exploit kit. With the new version this is no longer the case. Also, a large chunk of the original PluginDetect library is gone, leaving only the essentials. This makes Nuclear Pack more streamlined and efficient.

The creators of NuclearPack also introduced a XOR based obfuscation method for the malware payload, which makes it significantly more difficult to detect the dropper file with IDS or anti-virus as no signatures will match on the encoded payload. Websense File Sandboxing reports the dropped executable as malicious.

Malware Payload XOR-ed with ASCII string "kFLzT" 


Websense File Sandboxing report showing detection as Malicious:


Finally, the new version only uses Flash (CVE-2014-8439) and Silverlight (CVE-2013-0074 / CVE-2013-3896) exploits. This seems to be a general trend among various exploit kits; they drop Java, Internet Explorer, and PDF exploits in favor of the more successful Flash and Silverlight exploits. There are two main reasons behind this: first, Flash and Silverlight are widely used plugins, while Java and Adobe Reader plugins are becoming less common. Also, due to the diversity of the browser market, it's becoming less profitable to use Internet Explorer exploits. Secondly, while browser security has steadily increased over the past few years, different plugins seem to lag behind in terms of security.


  • Nuclear Pack is a constantly evolving threat, which uses various exploits to compromise a large number of systems.
  • The obfuscation used by different exploit kits, while constantly changing, is unique to each kit, making fingerprinting easier.
  • Flash and Silverlight are the most commonly used exploits

For a thorough description of the underground ecosystem surrounding Exploit Kits, see Kafeine’s blog:http://malware.dontneedcoffee.com/2012/12/eyeglanceru.html


Abel Toro

Security Researcher

Abel Toro is a Security Research with Forcepoint Security Labs’ Special Investigations team, focusing on reverse engineering, malware analysis, and threat intelligence. He tracks existing threat groups and identifies new ones – focusing in particular on APTs – through analysing infrastructure,...

Read more articles by Abel Toro

About Forcepoint

Forcepoint is the leading user and data protection cybersecurity company, entrusted to safeguard organizations while driving digital transformation and growth. Our solutions adapt in real-time to how people interact with data, providing secure access while enabling employees to create value.