Threat in context
Java is a general-purpose programming language, but cases of this exploit are targeted against the Java plug-in for web browsers. The intent of the Java plug-in is that Java programs (or "applets") can be offered by websites, and run in a "sandbox" where the Java plug-in enforces rules on what the Java applet can do so that it cannot escape restricted environment.
What is an exploit?
Exploits are written to take advantage of weaknesses (or vulnerabilities) in legitimate software. A project called Common Vulnerabilities and Exposures (CVE) gives each vulnerability a unique number, in this case "CVE-2012-1723". The portion "2012" refers to the year the vulnerability was discovered, and "1723" is a unique ID for this specific vulnerability. You can find more information on the CVE website.
Payload
Downloads and installs files
If you visit a website containing the malicious code while using a vulnerable version of Java, Exploit:Java/CVE-2012-1723 is loaded. It then tries to download and run files from a remote host/URL, including other malware.
Additional technical details
Exploit:Java/CVE-2012-1723 uses a bug in the field access code inside of the Java Runtime Environment. The issue is in the optimization done when a field inside the class is accessed. A static field with a ClassLoader or Object type and bunch of instance-fields with custom data type is a strong indication of exploitation. A bunch of instance-fields are a buffer area where a type-confused object is retrieved. After retrieving the ClassLoader instance using type-confusion, the exploit takes these privileges and can then run outside of the sandbox.
Exploit:Java/CVE-2012-1723 attacks the security model instead of memory corruption issues. With memory corruption issues, the exploit is dependent on the specific CPU (Central Processing Unit) type and operating systems, and might be affected by mitigation technology like DEP (Data Execution Prevention) or ASLR (Address Space Layout Randomization).
Attacking the security model means that the exploit might be effective on any platform the Java interpreter is on; for example Windows, MacOS, Linux, etc.
Usually the exploits are written using a few Java classes working together. The various class files are bundled into an archive called a JAR, which uses the ZIP file format. Every JAR contains a Manifest.MF file to identify itself to the Java Runtime Environment. Since it is usually found in every JAR, it won't be listed.
Below are some examples of files that exploit the vulnerability described in CVE-2012-1723:
- 1fadb1943260992ba9ae75a0d651bf6b5b5d8b39
- bet3b5326b236b326a.class
- bet3b5326b236b326b.class
- bet3b5326b236b326c.class
- bet3b5326b236b326d.class
- bet3b5326b236b326e.class
- bet3b5326b236b326f.clas
- 2cd0734ce557dd18d3104b367a9a84df1fe9dcb3
- Abanli.class
- Ati.class
- Fonnt.class
- Grebok.class
- Ini.class
- Inttos.class
- Olya.class
- Sara.class
- Shashlik.class
- Third.class
- 37ba6cf857bd5f22c26a1e05c5ec7fd19fb40d79
- CreateClassAndExec.class
- DownloadExec.class
- main.class
- UnsafeUtil.class
- 3bce21eb8df8c8b3fc4b7f46fcbaa222efa6badf
- hit.class
- pom.class
- string.class
- weirMattesBus.class
- 8281b17676dc99f7856588bbd7fbb0f0124dd062
- main.class
- w.class
- x.class
- y.class
- z.class
- 4290441b2edc07c606ffb3b6407c6b7df99413f3
- fbeatbeb.class
- fbeatbec.class
- fbeatbed.class
- fbeatbee.class
- fbeatbef.class
- 4eb928ec636e7fbd5736f8edbc20e18e89d24076
- bet3b5326b236b326a.class
- bet3b5326b236b326b.class
- bet3b5326b236b326c.class
- bet3b5326b236b326d.class
- bet3b5326b236b326e.class
- bet3b5326b236b326f.class
- 5590352bfd98395e27da3543374491f8c729d10a
- Ati.class
- Atyans.class
- Faiibt.class
- Ini.class
- Luihbg.class
- Nata.class
- Ponos.class
- Sara.class
- Shashlik.class
- Third.class
- 8d258823317be9e09b046fb11753d105c9d5861f
- greateGamb.class
- greateGamc.class
- greateGamd.class
- greateGame.class
- greateGamf.class
- 94c61b0eb8f4cc8b0f8708267155bfdd3f5da51e
- Fire.class
- FireX.class
- Fuck.class
- sikinti.class
- ters.class
- addbe7741ab30a209d526b5da1022310a5b33f60
- ACL.class
- Cry.class
- ET.class
- ILikeIt.class
- TVSDPT.class
- TVSD.class
- Utils.class
- bd026427600dec5622f5602db2ebac93dda67802
- Fdskjfudsfqiqqi.class
- kalibton.class
- prototipe.class
- Qdsfwefw.class
- Sfjkgherilg.class
- XqxQxqX.class
- ZOOIIUUPP.class
- c81d30a6e7ffd7de97a1d008a95740592bf5947e
- b4a.class
- b4b.class
- b4c.class
- b4d.class
- b4e.class
- b4f.class
- ef082c683717465817b4a718f6975fae5850e3c3
- Epay.class
- ClLoader.class
- Clmaker.class
- News.class
- f1dd728b1ac2117e835541e8fa32e06b1b817995
- plugindetecta.class
- plugindetectb.class
- plugindetectc.class
- plugindetectd.class
- plugindetecte.class
- plugindetectf.class
Once the exploit obtains full privileges on your PC, it might:
- Run an executable file (that might be detected as malware) included in the JAR
- Run an executable file (that might be detected as malware) from a URL hard-coded in the exploit's file
- Take instructions from the HTML file (like a URL to the malware executable) that loaded them
Related information / Related references
The articles referenced below outline some of the the technical details of the weakness this vulnerability exploits:
Analysis by Jeong Wook (Matt) Oh