freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

MSIDump:一款功能强大的恶意MSI安装包安全分析工具
2023-04-09 20:00:48
所属地 广西

关于MSIDump

MSIDump是一款功能强大的恶意MSI安装包安全分析工具,该工具还支持提取文件、数据流、二进制数据,并结合YARA扫描器来执行安全分析任务。

在启用了宏的Office文档上,我们可以快速使用oletools mraptor工具来判断哪一个文档是恶意文档。如果你想要进一步对其分析,我们还可以引入oletools olevbaoledump工具。

但如果你想要解析恶意MSI文件,到目前为止,我们可以信赖且能够可靠运行的就只有一个lessmsi工具,不过lessmsi并没有实现下列功能:

1、快速分类诊断;

2、二进制数据提取;

3、YARA扫描;

因此,MSIDump便应运而生。

功能介绍

1、快速确定目标文件是否可疑;

2、可疑枚举所有MSI表并转储特定记录;

3、支持从CAB提取二进制数据和所有文件,以及从CustomActions提取脚本;

4、使用YARA规则扫描所有内部数据和记录;

5、使用file/MIME类型推导来确定内部数据类型;

工具下载

由于该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/mgeeky/msidump.git

然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的依赖组件:

cd msidump

pip install requirements.txt

工具使用

首先,使用YARA规则对可疑MSI进行快速分类:

cmd> python msidump.py evil.msi -y rules.yara

此时,我们将能够看到输入MSI被注入了可疑的VBScript,并且其中包含许多可执行文件。

接下来,我们可以通过只提取该记录来仔细分析这个VBScript。我们从分类表中看到,它出现在Binary表中。然后运行下列命令:

python msidump.py putty-backdoored.msi -l binary -i UBXtHArj

我们可以通过名称/ID或索引号(这里应该是7)来指定要记录转储的内容:

接下来,我们可以看看另一个样例。这一次,Binary表中存储了一个可执行文件,这个可执行文件会在安装过程中被执行:

如需提取目标文件,可以直接运行下列命令:

python msidump.py evil2.msi -x binary -i lmskBju -O extracted

其中:

-x binary:该选项可以提取Binary表中的内容;

-i lmskBju:该选项指定需要提取的准确记录;

-O extracted:该选项用于设置输出目录;

如需获取最详细的输出,可以直接在终端窗口输出记录或将结果存储到文件中:

python msidump.py [...] -o analysis.log

工具完整使用

PS D:\> python .\msidump.py --help

options:

  -h, --help            显示工具帮助信息和退出

 

Required arguments:

  infile                待分析的MSI文件或目录

 

Options:

  -q, --quiet           开启静默模式

  -v, --verbose         开启Verbose模式

  -d, --debug          开启调试模式

  -N, --nocolor         不使用颜色高亮输出

  -n PRINT_LEN, --print-len PRINT_LEN

                        概览数据长度,默认为128

  -f {text,json,csv}, --format {text,json,csv}

                        输出格式:文本、JSON、CSV,默认为文本

  -o path, --outfile path

                        设置输出文件路径

  -m, --mime            嗅探内部数据类型时,报告MIME类型

 

Analysis Modes:

  -l what, --list what  列出指定的表内容

  -x what, --extract what

                        从MSI提取数据

 

Analysis Specific options:

  -i number|name, --record number|name

                        指定需要转出的记录信息

  -O path, --outdir path

                        指定输出路径以提取信息

  -y path, --yara path     YARA规则/目录路径

 

------------------------------------------------------

 

- What can be listed:

    --list CustomAction     - 列举CustomAction     

    --list Registry,File    - 列举多个表

    --list stats            - 打印MSI数据库统计信息

    --list all              -  列举所有的表及其内容

    --list olestream        - 打印所有的OLE数据

    --list cabs             - 列举嵌入的CAB文件

    --list binary           - 列举嵌入在MSI中的二进制数据

 

- What can be extracted:

    --extract all           - 提取二进制数据,从CAB中提取所有文件,从 CustomAction提取脚本

    --extract binary        - 提取二进制数据

    --extract files         - 提取文件

    --extract cabs          - 提取CAB

    --extract scripts       - 提取脚本

 

------------------------------------------------------

项目地址

MSIDump:【GitHub传送门

参考资料

https://github.com/decalage2/oletools/blob/master/oletools/mraptor.py

https://github.com/decalage2/oletools/blob/master/oletools/olevba.py

https://github.com/DidierStevens/DidierStevensSuite/blob/master/oledump.py

https://github.com/activescott/lessmsi

https://gitlab.gnome.org/GNOME/msitools

https://mgeeky.tech/msi-shenanigans-part-1/

# 恶意代码检测 # 恶意代码分析 # 恶意软件分析 # YARA
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录