Malware Insights
This PDF file exhibits multiple high-severity heuristic firings related to JavaScript execution and potential exploit preparation, specifically indicating CVE-2010-0188 related activity. The presence of embedded JavaScript streams and actions, combined with a high stream count suggestive of obfuscation, points towards a malicious intent. The document also contains lures for fake invoices and callback phishing, further supporting a malicious purpose. While no specific family is identified, the techniques suggest a downloader or exploit delivery mechanism.
Machine Learning
- Nyx PDF Classifier malicious score 0.7834
Heuristics 12
-
JBIG2 + active content high PDF_JBIG2_ACTIVE_CONTENTJBIG2Decode appears with JavaScript/XFA/RichMedia — a related indicator for JBIG2 parser-exploit families including CVE-2021-30860 and CVE-2009-0658, but not a unique CVE fingerprint.
-
JavaScript action low 2 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.Matched line in script
return sString;var test = String.fromCharCode(144); -
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.
-
JBIG2Decode filter medium PDF_JBIG2JBIG2 image decoder present — historically used in zero-click exploits
-
Unusually high stream count medium PDF_MANY_STREAMSPDF contains 501+ stream objects — may indicate heap spray or heavy obfuscation
-
Callback phishing phone lure medium SE_CALLBACK_LUREDocument asks the user to call a phone number in billing, refund, subscription, fraud, or security context — consistent with callback phishing or tech-support scam patterns. Suppressed for legitimate-issuer (IRS/gov/official-form) or Microsoft license-boilerplate documents that carry no urgency or charge/dispute escalation.
-
Optional Content Group with action trigger low PDF_OPTIONAL_CONTENTOptional Content Group (layer) co-occurs with an action trigger — content can be selectively hidden from viewers or scanners while the action still fires on open
-
AcroForm button with action trigger low PDF_ACROFORM_BUTTONPDF contains a /Btn form field together with a SubmitForm/URI/Launch/JS trigger — this is the building block of fake 'Download' or 'Open' button overlays used in PDF phishing lures
-
External URI low PDF_URIPDF contains an external URL action
-
Fake invoice / payment lure low SE_INVOICE_LUREDocument contains invoice or payment language paired with an action verb — useful context when combined with link, macro, or attachment indicators
-
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://www.w3.org/1999/02/22-rdf-syntax-ns# PDF link annotation
- http://purl.org/dc/elements/1.1/PDF link annotation
- http://ns.adobe.com/xap/1.0/PDF link annotation
- http://ns.adobe.com/xap/1.0/g/img/PDF link annotation
- http://ns.adobe.com/xap/1.0/mm/PDF link annotation
- http://ns.adobe.com/xap/1.0/sType/ResourceRef#PDF link annotation
- http://ns.adobe.com/xap/1.0/t/pg/PDF link annotation
- http://ns.adobe.com/xap/1.0/sType/Dimensions#PDF link annotation
- http://ns.adobe.com/xap/1.0/g/PDF link annotation
- http://ns.adobe.com/pdf/1.3/PDF link annotation
- http://ns.adobe.com/pdfx/1.3/PDF link annotation
Extracted artifacts 32
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
javascript_obj4352_000.js |
pdf-javascript-stream | PDF /JS object 4352 at offset 0x25D3 | 178 bytes |
SHA-256: 02763d0b97f3b488fc3a30dd82817accf5fdfff6e3fe5e008636626ae4c3003f |
|||
Preview scriptFirst 1,000 lines of the extracted script
function CheckChnEng(doc, event)
{
var value = AFMergeChange(event);
if(value.charCodeAt(value.length-1)<12288 && !event.change.match("^[a-zA-Z\ ]*$"))
event.rc = false;
}
|
|||
javascript_obj4370_001.js |
pdf-javascript-stream | PDF /JS object 4370 at offset 0x29F5 | 102 bytes |
SHA-256: b81c69b1f10d6373625583e9bf50ce17cb3d0b89d1de94e8939b137c2a574be3 |
|||
Preview scriptFirst 1,000 lines of the extracted script
function GetError()
{
var errorName = this.getField("fldError").value;
return errorName;
}
|
|||
javascript_obj4375_002.js |
pdf-javascript-stream | PDF /JS object 4375 at offset 0x2B50 | 83 bytes |
SHA-256: 3308320d248e15f4247255ac71c51c1093417e81c0c9de702acea883b7fb99ea |
|||
Preview scriptFirst 1,000 lines of the extracted script
function SetError(ifldName)
{
this.getField("fldError").value = ifldName;
}
|
|||
javascript_obj4383_003.js |
pdf-javascript-stream | PDF /JS object 4383 at offset 0x2D26 | 187 bytes |
SHA-256: 9b160d19334bd56892170b86188c49574febdcb9ac509210fcaccee51ca3d16d |
|||
Preview scriptFirst 1,000 lines of the extracted script
function eSetFocus(istr)
{
if (GetError()!="" && GetError()!=istr){
this.getField(GetError()).setFocus();
return true;
}else{
return false;
}
}
|
|||
javascript_obj2181_004.js |
pdf-javascript-stream | PDF /JS object 2181 at offset 0x11D7B7 | 44 bytes |
SHA-256: 86548049d82be4d96b83581cc76ce7a2115efe2f5a25ba97b2ed9b7011876514 |
|||
Preview scriptFirst 1,000 lines of the extracted script
AFNumber_Format(2, 0, 0, 0, "\u0024", true); |
|||
javascript_obj2182_005.js |
pdf-javascript-stream | PDF /JS object 2182 at offset 0x11D80F | 47 bytes |
SHA-256: 52071427b82ab987bf3c3cc49290490c66d15eb5d6d0b1c6d352b90a8dd6d98c |
|||
Preview scriptFirst 1,000 lines of the extracted script
AFNumber_Keystroke(2, 0, 0, 0, "\u0024", true); |
|||
javascript_obj2210_006.js |
pdf-javascript-stream | PDF /JS object 2210 at offset 0x11F090 | 56 bytes |
SHA-256: 1bfd22ecd64d85c4c83389f5c321fa1df2cc7e0ada42ea8450a29bb193369ff2 |
|||
Preview scriptFirst 1,000 lines of the extracted script
AFSimple_Calculate("SUM", new Array ("Calc7", "Calc8"));
|
|||
javascript_obj2213_007.js |
pdf-javascript-stream | PDF /JS object 2213 at offset 0x11F1A8 | 64 bytes |
SHA-256: a7f5988067f8847b449a97d207d3b1c478f0dd2de9586cdde4846991ab2adc9c |
|||
Preview scriptFirst 1,000 lines of the extracted script
AFSimple_Calculate("PRD", new Array ("Calc7", "CalcSurcharge"));
|
|||
javascript_obj2277_008.js |
pdf-javascript-stream | PDF /JS object 2277 at offset 0x122A58 | 56 bytes |
SHA-256: 997963c4f8fccb6e92e4b3d8910426cbe6564e35ab8ee6c435c2449a60ed7c40 |
|||
Preview scriptFirst 1,000 lines of the extracted script
AFSimple_Calculate("PRD", new Array ("Calc1", "Calc2"));
|
|||
javascript_obj2280_009.js |
pdf-javascript-stream | PDF /JS object 2280 at offset 0x122B70 | 56 bytes |
SHA-256: 2702e0503a83182f578137dee30abefb6a6f66416c2c0e29694239d1797d12d5 |
|||
Preview scriptFirst 1,000 lines of the extracted script
AFSimple_Calculate("PRD", new Array ("Calc2", "Calc4"));
|
|||
javascript_obj2283_010.js |
pdf-javascript-stream | PDF /JS object 2283 at offset 0x122C88 | 65 bytes |
SHA-256: b37af67e1acb4037f6b73959ab0ae7b2bfecdef887d4dc7cea3f00458b77eef6 |
|||
Preview scriptFirst 1,000 lines of the extracted script
AFSimple_Calculate("SUM", new Array ("Calc3", "Calc5", "Calc6"));
|
|||
javascript_obj2294_011.js |
pdf-javascript-stream | PDF /JS object 2294 at offset 0x1236A3 | 90 bytes |
SHA-256: c812fa1f7d0804ae8135a933fd602dbf40b2a354bd7768f9a0362abc4405970f |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); KeyFilter (this, "^[0-9]+$", "^[0-9]+$", "dobMth", "dobYr"); |
|||
javascript_obj2297_013.js |
pdf-javascript-stream | PDF /JS object 2297 at offset 0x123913 | 94 bytes |
SHA-256: 91798ecd92e2f43f96a8c14669a5c168ae5a8d35171751b6a7acca9f8c50f0e6 |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change);
if (!event.change.match("^[0-9]*$")) {
event.rc = false;
}
|
|||
javascript_obj2299_014.js |
pdf-javascript-stream | PDF /JS object 2299 at offset 0x123B1D | 164 bytes |
SHA-256: ac085ba32f5bb169e82a77ad2098d0ec1d3d229aafb8828b23183b62d69055dd |
|||
Preview scriptFirst 1,000 lines of the extracted script
var alpha = this.getField("hkidAlpha");
//alpha.value = alpha.valueAsString.toUpperCase();
if (GetError()=="" || GetError()=="hkidAlpha"){
SetError("");
}
|
|||
javascript_obj2331_015.js |
pdf-javascript-stream | PDF /JS object 2331 at offset 0x125D3F | 91 bytes |
SHA-256: b21c81b444ed9d387bb3e6d106a772f560ef2836ab0c7b5fa9abd85b4fa6b93f |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); KeyFilter (this, "^[0-9]+$", "^[0-9]+$", "doiDay", "doiMth"); |
|||
javascript_obj2334_016.js |
pdf-javascript-stream | PDF /JS object 2334 at offset 0x125F9A | 90 bytes |
SHA-256: 86271fc741187a75e412a476fca5f2634e8196d231b8179c97ae8cf04b9656ca |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); KeyFilter (this, "^[0-9]+$", "^[0-9]+$", "doiMth", "doiYr"); |
|||
javascript_obj2360_017.js |
pdf-javascript-stream | PDF /JS object 2360 at offset 0x1276C9 | 49 bytes |
SHA-256: 504189b07839845a0b0a6b2fec209b98ef2ce785b9c387ad4ea61078bb8b5fbc |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); //CheckNameCap(); |
|||
javascript_obj2361_018.js |
pdf-javascript-stream | PDF /JS object 2361 at offset 0x12772B | 100 bytes |
SHA-256: a88f3ebed05f024d40c36ba90dcf67fad6e570a7de6c7711873d14d9f07821a0 |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change);
// if (!event.change.match("^[0-9]*$")) {
// event.rc = false;
// }
|
|||
javascript_obj2364_019.js |
pdf-javascript-stream | PDF /JS object 2364 at offset 0x1278A4 | 96 bytes |
SHA-256: 70bdf25ffc7ab416662e0bdf374e264c499c7df49ba0e2f2a627b89ecb45d6d1 |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change);
if (!event.change.match("^[0-9]*$")) {
event.rc = false;
}
|
|||
javascript_obj2409_020.js |
pdf-javascript-stream | PDF /JS object 2409 at offset 0x12A196 | 91 bytes |
SHA-256: 4a11062ce06fdbdf909e26403564cc72f6ea751064561e09fe6d680daa579c4b |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); KeyFilter (this, "^[0-9]+$", "^[0-9]+$", "dobDay", "dobMth"); |
|||
javascript_obj2494_021.js |
pdf-javascript-stream | PDF /JS object 2494 at offset 0x12F827 | 91 bytes |
SHA-256: a56c28cb40ebf3b49cc5189ac4f9c4a92f69e96703ff4a13e97a2dae640f2aef |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); KeyFilter (this, "^[0-9]+$", "^[0-9]+$", "doeDay", "doeMth"); |
|||
javascript_obj2497_022.js |
pdf-javascript-stream | PDF /JS object 2497 at offset 0x12FA97 | 90 bytes |
SHA-256: acbe5c98bf7357251066e74cab0cb6de5b52176b52c12738dd81d9726e1c2737 |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); KeyFilter (this, "^[0-9]+$", "^[0-9]+$", "doeMth", "doeYr"); |
|||
javascript_obj2630_023.js |
pdf-javascript-stream | PDF /JS object 2630 at offset 0x138D28 | 148 bytes |
SHA-256: 781be7cd12751af7b7c26920e3c6172f0e5b4e8848e9636dec195b34d1ceb852 |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change);
event.change = event.change.toUpperCase();
if (!event.change.match("^[aA0-9]*$")) {
event.rc = false;
}
|
|||
javascript_obj2650_024.js |
pdf-javascript-stream | PDF /JS object 2650 at offset 0x139B8F | 47 bytes |
SHA-256: 22a8d36c78278d1275f42b32c1b29d33017804950f86420201a1dea2d59bc639 |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); //CheckNameCap(); |
|||
javascript_obj2668_025.js |
pdf-javascript-stream | PDF /JS object 2668 at offset 0x13AAE1 | 97 bytes |
SHA-256: f8cbc95388aa6e8c4a785734390d3b178051fe4ef4753eed3bea7e510b074ca4 |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); KeyFilter (this, "^[0-9]+$", "^[0-9]+$", "hkidDigit", "hkidChkD") |
|||
javascript_obj2816_026.js |
pdf-javascript-stream | PDF /JS object 2816 at offset 0x141778 | 172 bytes |
SHA-256: e0ed9548de396d6e016081b2ea298f1fd9f002856f57eb29de833ef16f1ab696 |
|||
Preview scriptFirst 1,000 lines of the extracted script
var alpha = this.getField("sponHkidAlpha");
//alpha.value = alpha.valueAsString.toUpperCase();
if (GetError()=="" || GetError()=="sponHkidAlpha"){
SetError("");
}
|
|||
javascript_obj2821_027.js |
pdf-javascript-stream | PDF /JS object 2821 at offset 0x141A0B | 105 bytes |
SHA-256: caa170e76c2e8a0c908fcc40e088f18b684501e5e118f9ab0501f33a033b4efb |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); KeyFilter (this, "^[0-9]+$", "^[0-9]+$", "sponHkidDigit", "sponHkidChkD") |
|||
javascript_obj2827_028.js |
pdf-javascript-stream | PDF /JS object 2827 at offset 0x141E72 | 170 bytes |
SHA-256: aefa64db7ad230470a96a35db96b8b432480b005d52c5dc6d7f8d06c06f8e36b |
|||
Preview scriptFirst 1,000 lines of the extracted script
var alpha = this.getField("famHkidAlpha");
//alpha.value = alpha.valueAsString.toUpperCase();
if (GetError()=="" || GetError()=="famHkidAlpha"){
SetError("");
}
|
|||
javascript_obj2833_029.js |
pdf-javascript-stream | PDF /JS object 2833 at offset 0x142148 | 103 bytes |
SHA-256: 2ec0dfca0217784805ac5f7f489111af0a656dc272cccc4c3c936cb02b90e624 |
|||
Preview scriptFirst 1,000 lines of the extracted script
CheckFullSize(event.change); KeyFilter (this, "^[0-9]+$", "^[0-9]+$", "famHkidDigit", "famHkidChkD") |
|||
javascript_obj2855_030.js |
pdf-javascript-stream | PDF /JS object 2855 at offset 0x1435BF | 164 bytes |
SHA-256: 809a445cfe2ce6f5e248717d46587743f0fd9e257e02c02b36cb40329972c078 |
|||
Preview scriptFirst 1,000 lines of the extracted script
if (this.getField("chgName").isBoxChecked(0)){
StrikeThrough("btnMe2","btnChild2","","","","");
StrikeThrough("btnChild2","btnMe2","","","","");
}
|
|||
javascript_obj2937_031.js |
pdf-javascript-stream | PDF /JS object 2937 at offset 0x1493C0 | 164 bytes |
SHA-256: 4b0668787e790e8793c4a21ae1e1eae8d410b45b7ee4216b68e81a2be34fe6d5 |
|||
Preview scriptFirst 1,000 lines of the extracted script
if (this.getField("refVisa").isBoxChecked(0)){
StrikeThrough("btnMe6","btnChild6","","","","");
StrikeThrough("btnChild6","btnMe6","","","","");
}
|
|||
javascript_obj2938_032.js |
pdf-javascript-stream | PDF /JS object 2938 at offset 0x1494A1 | 164 bytes |
SHA-256: b204e6d9c037ce32d10d4b8d1b64ce99ab2c8dd376c069a4989e593ea902de1c |
|||
Preview scriptFirst 1,000 lines of the extracted script
if (this.getField("refVisa").isBoxChecked(1)){
StrikeThrough("btnMe5","btnChild5","","","","");
StrikeThrough("btnChild5","btnMe5","","","","");
}
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.