首页
社区
课程
招聘
[翻译]msi恶意软件分析
发表于: 2020-3-10 17:35 25119

[翻译]msi恶意软件分析

2020-3-10 17:35
25119

原文:https://rvsec0n.wordpress.com/2020/02/22/msi-malware-analysis/

相比较,eecb8098f5de87a26d5d1780f7552033的结构如下。

实际上,PE文件位于msi文件中的cab文件中,只是7z自动将其从cab文件中提取出来并显示了。如果使用“ 7-Zip  ->  Open archive  ->  * ”上下文菜单打开,将看到相似的结果。

下面是前面提到的800db6507256cde0514990f2bf0a414a文件。如果msi内包含的文件不在任何一个cab内,直接在msi内,将在binary table中列出。

再看d8d4facbe26427176cf8801d03c69c45文件。component table中包含cab中有函数需要被安装的文件,还有文件被释放的位置。

在下面的截图中,Action是_D7D112F049BA1A655B5D9A1D0702DEE5,Source是_D7D112F049BA1A655B5D9A1D0702DEE5。这里注意,Action可以是任意值(非exe扩展名),Source中的文件都将被执行。

当然,对大多数msi文件来说,内部的文件都有扩展名容易被识别。f9d3b6dc33077979720e149ece6bc6ac运行jjtur.js(位于Binary表),这是Source中的值。

也存在一些非常规情况。f3a20a781bcc6122981ff9caa7ed5580中只有Target没有Source,这里面包含恶意Jscript代码。这些Jscript位于_StringData文件中。(DFNLFP34314BAEL的下一行)


ExecuteScriptCode行为也常被使用。下面的例子(d8d4facbe26427176cf8801d03c69c45)中你可以在ExecuteScriptCode中看到恶意脚本代码。代码同样位于_StringData中。


每次分析恶意msi文件时,我一直对msi文件的结构和功能有很多疑惑。当然,它们中的大多数只是简单的安装器。但有时,它会有很多其它功能并且很难分析,所有我决定找一种适合的分析方法。

7z

使用7z打开800db6507256cde0514990f2bf0a414a,可以看到下图所示结构。注意,其中Binary._D7D112F049BA1A655B5D9A1D0702DEE5是一个exe,虽然没有扩展名。

相比较,eecb8098f5de87a26d5d1780f7552033的结构如下。

实际上,PE文件位于msi文件中的cab文件中,只是7z自动将其从cab文件中提取出来并显示了。如果使用“ 7-Zip  ->  Open archive  ->  * ”上下文菜单打开,将看到相似的结果。

Orca

在查看内部文件上7z很有用,但不能分析msi文件的真正功能。Orca是一个能显示msi文件各种信息的的工具。可以google “Orca msi installer” 找到它。( Orca.msi : 710ae2be53e11f3d5c5f8cfccce76a3a )
使用Ocra打开msi文件,可以看到如下表。本节,我们关注恶意软件分析有关的部分。

a. File Table

Msi文件d8d4facbe26427176cf8801d03c69c45内包含disk1.cab,下图中可以看到其中包含四个文件。如果存在内部包含文件的cab,应该是以这种文件表形式列出。

b. Binary Table

下面是前面提到的800db6507256cde0514990f2bf0a414a文件。如果msi内包含的文件不在任何一个cab内,直接在msi内,将在binary table中列出。

c. Component Table

再看d8d4facbe26427176cf8801d03c69c45文件。component table中包含cab中有函数需要被安装的文件,还有文件被释放的位置。

d. Registry Table

d8d4facbe26427176cf8801d03c69c45是个功能丰富的恶意软件。它还使用msi的Registry Table功能在注册表中注册键值HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations。

e. CustomAction Table

这是最重要的一个表。不像其它表,这个表中的每一个行为项都需要详细分析。

e.1. Custom

800db6507256cde0514990f2bf0a414a
首先,最简单的是800db6507256cde0514990f2bf0a414a。之前提过,真正的恶意代码是binary table内的_D7D112F049BA1A655B5D9A1D0702DEE5。使用7z看到的名字是Binary._D7D112F049BA1A655B5D9A1D0702DEE5。

在下面的截图中,Action是_D7D112F049BA1A655B5D9A1D0702DEE5,Source是_D7D112F049BA1A655B5D9A1D0702DEE5。这里注意,Action可以是任意值(非exe扩展名),Source中的文件都将被执行。


f9d3b6dc33077979720e149ece6bc6ac

当然,对大多数msi文件来说,内部的文件都有扩展名容易被识别。f9d3b6dc33077979720e149ece6bc6ac运行jjtur.js(位于Binary表),这是Source中的值。


f3a20a781bcc6122981ff9caa7ed5580

也存在一些非常规情况。f3a20a781bcc6122981ff9caa7ed5580中只有Target没有Source,这里面包含恶意Jscript代码。这些Jscript位于_StringData文件中。(DFNLFP34314BAEL的下一行)


除Jscript外,! _StringData文件中有几个字符串,所有使用的字符串,如Error Table中的error字符串,都存在这里。

e.2.执行脚本代码

ExecuteScriptCode行为也常被使用。下面的例子(d8d4facbe26427176cf8801d03c69c45)中你可以在ExecuteScriptCode中看到恶意脚本代码。代码同样位于_StringData中。

除VBScript外ExecuteScriptCode还可以包含Jscript(a8123c2e3a8a51685c2287ee26b28a9d)。

使用7z打开800db6507256cde0514990f2bf0a414a,可以看到下图所示结构。注意,其中Binary._D7D112F049BA1A655B5D9A1D0702DEE5是一个exe,虽然没有扩展名。

相比较,eecb8098f5de87a26d5d1780f7552033的结构如下。

实际上,PE文件位于msi文件中的cab文件中,只是7z自动将其从cab文件中提取出来并显示了。如果使用“ 7-Zip  ->  Open archive  ->  * ”上下文菜单打开,将看到相似的结果。

Orca

在查看内部文件上7z很有用,但不能分析msi文件的真正功能。Orca是一个能显示msi文件各种信息的的工具。可以google “Orca msi installer” 找到它。( Orca.msi : 710ae2be53e11f3d5c5f8cfccce76a3a )
使用Ocra打开msi文件,可以看到如下表。本节,我们关注恶意软件分析有关的部分。

a. File Table

Msi文件d8d4facbe26427176cf8801d03c69c45内包含disk1.cab,下图中可以看到其中包含四个文件。如果存在内部包含文件的cab,应该是以这种文件表形式列出。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
支持
分享
最新回复 (3)
雪    币: 2510
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
帮顶
2020-3-13 18:06
2
雪    币: 201
活跃值: (182)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
有没有CAB文件的分析器?类似PE文件的那种分析文件头的。
2021-10-19 15:20
0
雪    币: 1487
活跃值: (14662)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
4
mark
2021-10-19 16:33
0
游客
登录 | 注册 方可回帖
返回
//