Malicious PDF — malware analysis report

Static analysis result for SHA-256 15774abfde4a5777…

MALICIOUS

PDF

15.5 KB
MD5: a6078218396e33722969903912d36cf6 SHA-1: 6ab9d27ac2e6e477358919a4d3f87786b6abcd64 SHA-256: 15774abfde4a5777f2f736d3e860d99818140b7d494fcfe615ede0ad8490c0dc
184 Risk Score

Malware Insights

MITRE ATT&CK
T1059.007 JavaScript T1203 Exploitation for Client Execution T1566.001 Spearphishing Attachment

This PDF file contains embedded JavaScript that is heavily obfuscated using character codes and string concatenation. The script's primary function appears to be decoding a payload from annotation subjects and executing it. The use of `String.fromCharCode` and `eval` (implied by `app[fnc]/**/(buf)`) indicates a dynamic execution of malicious code, likely to download and run a further stage. The ML classifier and exploit cluster heuristics strongly suggest malicious intent.

Machine Learning

  • Nyx PDF Classifier malicious score 0.9999

Heuristics 7

  • 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.
  • Annotation subject hex-decoded eval stager critical PDF_ANNOT_SUBJECT_HEX_EVAL_STAGER
    PDF OpenAction JavaScript decodes a decimal char-code launcher, enumerates annotation subjects with syncAnnotScan()/getAnnots(), turns dash-delimited hex bytes into JavaScript with String.fromCharCode(), and evals the staged result. This is an exploit-kit delivery pattern and not normal PDF form logic.
  • JavaScript action low 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.
  • String.fromCharCode low PDF_FROMCHARCODE
    String.fromCharCode found — used to construct payload strings dynamically. Common in benign JavaScript libraries for codepoint manipulation, so this alone is informational; weaponised use is also caught by the dedicated fromCharCode-stage and exploit-shape rules. (matched inside decoded stream)
  • syncAnnotScan annotation-staging primitive low PDF_FOXIT_SYNCANNOTSCAN
    PDF JavaScript calls syncAnnotScan() — a no-op annotation-enumeration primitive used by exploit-kit JavaScript to stage payload reads from annotation /Subject fields before eval(). Not a vulnerable sink itself; rarely seen in legitimate PDFs. (identified after JavaScript deobfuscation)
  • 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 4

Files carved from inside the sample during analysis.

FilenameKindSourceSize
javascript_obj0004_000.js
b771a67801a2a024471cb29d8ce119b13dc98b5c56ef213dece7e1a5cc7b8bed
pdf-javascript-stream PDF /JS object 4 at offset 0xE1 1814 bytes
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 eval/decoder/string-building token(s).
numeric_charcode_stage_000.js
4718a27c2224fc36bf24f8e8e04598f1ad78adce4401c7be2708318738a6983d
deobfuscated-js numeric char-code string decoded JavaScript at offset 0xEF 469 bytes
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 eval/decoder/string-building token(s).
legacy_pdfkit_stage_000.js
3576abdfc6ff917d2206620d1bf628c90ecb0c7cefcace65a1f5096b4b365b11
deobfuscated-js repeated-marker hex decoded JavaScript at offset 0x1AC8 11971 bytes
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).
legacy_pdfkit_stage_001.js
c92aba7ec940d697d8f2ea4ad4e055a422461e9f5ed1b4fc861f08af719babbb
deobfuscated-js nested inline base-23 callee-key decoded JavaScript at offset 0x1AC8 4782 bytes