Malicious Office (OLE) / .XLS — malware analysis report

Static analysis result for SHA-256 95eb848f3c8c1fdd…

MALICIOUS

Office (OLE) / .XLS

180.5 KB Created: 2006-09-16 00:00:00 Authoring application: Microsoft Excel
MD5: 8f538d66b5ab773a6be4b8ec1e9fd3e0 SHA-1: e9472d7877aec7cc747d70e8ca6d9449819dc667 SHA-256: 95eb848f3c8c1fddc406491af6ec1bcfaf6d8d18ea8b567c13bc457283904490
160 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic for Applications T1204.002 Malicious File

The sample is an Excel 4.0 (XLM) macro-enabled spreadsheet. It contains an Auto_Open macro that uses dangerous functions, including RUN. The 'SE_ENABLE_LURE' heuristic indicates the document likely contains text prompting the user to enable macros. The extracted URLs suggest the macro is intended to download and execute a second-stage payload.

Heuristics 4

  • 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.
  • Macro/content-enable lure medium SE_ENABLE_LURE
    Document instructs the user to enable macros or editing — a common technique used by malware droppers to bypass Office macro security settings

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
xlm_macros.txt
917baaae0e48794e5eb73ae3d5cf93c43110b97da5df3e45bc2f236b5551c875
xlm-macro oletools.olevba.extract_all_macros (XLM macro listing) 27158 bytes
Preview script
First 1,000 lines of the extracted script
' 0085     24 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  D o c u  S i g 
' 0085     12 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, visible -  Doc
' 0085     12 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, visible -  Doc
' 0085     12 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  Doc
' 0018     31 LABEL : Cell Value, String Constant - _xlfn.BETA.INV hidden len=2 ptgErr  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x1d'
' 0018     38 LABEL : Cell Value, String Constant - _xlfn.CEILING.PRECISE hidden len=2 ptgErr  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x1d'
' 0018     32 LABEL : Cell Value, String Constant - _xlfn.F.DIST.RT hidden len=2 ptgErr  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x1d'
' 0018     23 LABEL : Cell Value, String Constant - built-in-name 1 Auto_Open len=7 ptgRef3d  Doc!CS11 
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 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
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 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
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' Sheet,Reference,Formula,Value
'  Doc,H206,"_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC(278452452478923.00000000000000000000,425)=_xlfn.CEILING.PRECISE(7842542893242349568.00000000000000000000,42)=TRUNC
... (truncated)