前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MSIDump:一款功能强大的恶意MSI安装包安全分析工具

MSIDump:一款功能强大的恶意MSI安装包安全分析工具

作者头像
FB客服
发布2023-04-18 15:43:19
8550
发布2023-04-18 15:43:19
举报
文章被收录于专栏:FreeBuf

 关于MSIDump 

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

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

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

1、快速分类诊断; 2、二进制数据提取; 3、YARA扫描;

因此,MSIDump便应运而生。

 功能介绍 

1、快速确定目标文件是否可疑; 2、可疑枚举所有MSI表并转储特定记录; 3、支持从CAB提取二进制数据和所有文件,以及从CustomActions提取脚本; 4、使用YARA规则扫描所有内部数据和记录; 5、使用file/MIME类型推导来确定内部数据类型;

 工具下载 

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

代码语言:javascript
复制
git clone https://github.com/mgeeky/msidump.git

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

代码语言:javascript
复制
cd msidump
pip install requirements.txt
代码语言:javascript
复制

 工具使用 

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

代码语言:javascript
复制
cmd> python msidump.py evil.msi -y rules.yara

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

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

代码语言:javascript
复制
python msidump.py putty-backdoored.msi -l binary -i UBXtHArj

(向右滑动、查看更多)

代码语言:javascript
复制

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

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

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

代码语言:javascript
复制
python msidump.py evil2.msi -x binary -i lmskBju -O extracted

(向右滑动、查看更多)

代码语言:javascript
复制

其中:

代码语言:javascript
复制
-x binary:该选项可以提取Binary表中的内容;
-i lmskBju:该选项指定需要提取的准确记录;
-O extracted:该选项用于设置输出目录;

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

代码语言:javascript
复制
python msidump.py [...] -o analysis.log
代码语言:javascript
复制

 工具完整使用 

代码语言:javascript
复制
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

https://github.com/mgeeky/msidump

参考资料:

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/

精彩推荐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  关于MSIDump 
  •  功能介绍 
  •  工具下载 
  •  工具使用 
  • (向右滑动、查看更多)
  • (向右滑动、查看更多)
  •  工具完整使用 
  • (向右滑动、查看更多)
  •  项目地址 
  • 参考资料:
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档